密码学提供如下服务:
加密 Encryption
哈希 Hash functions
讯息鉴别码 Message Authentication codes (MAC)
数字签名 Digital Signatures
密码学要达成的目标是:
机密性 Confidentiality
数据完整性 Data Integrity
认证 Authentication
不可否认性 Non-repudiation
下表说明了各种服务能达成什么样的目标
加密 | 哈希 | 讯息鉴别码 | 数字签名 | |
机密性 | √ | |||
数据完整性 | 某些时候 | √ | √ | |
认证 | √ | √ | ||
不可否认性 | 某些时候 | √ |
机密性讨论
我们在构建密码系统的时候,需要考虑可能受到的攻击。
从不同的角度又不同的攻击分类方法。
根据攻击者的行动(action)我们把攻击分成被动式攻击(passive)跟主动式攻击(active)
被动式攻击
在没有授权的情况下访问信息(注意区分主动式,注意访问,不是改变)。例如截击跟偷听就是被动式的攻击。被动式攻击不会影响原有的信息,也不会打扰原有的连接。
主动式攻击
这种攻击不同于被动式,它会以某种形式改变原有的信息
根据攻击的方法学(Methodolgy)我们有可以把攻击分为如下的类别:
纯秘文攻击 (Cipertext-only Attack - COA)
攻击者仅通过访问秘文集就可以得到相应的明文。偶尔攻击者还能获得密钥。
已知明文攻击 (Known Plaintext Attack - KPA)
攻击者知道一部分秘文的明文,根据这个攻击者破解其他秘文。
选择明文攻击 (Chosen Plaintext Attack - CPA)
攻击者掌握他选择的明文/密文对,分析出密钥。RSA就易于找到此攻击。
字典攻击 (Dictionary Attack)
攻击者建立明文与相应密文的字典,遇到密文就在字典中查询。这类攻击有很多变种。
暴力攻击 (Brute Force Attack - BFA)
攻击者在知道算法和密文的后,尝试各种密钥的可能性,直至破解。
生日攻击 (Birthday Attack)
用于hash破解,是暴力破解的变种。
中间人攻击 (Man in Middle Attack -MIM)
可用于公钥的攻击。A与B通信,A向B请求公钥,攻击者居中把自己的公钥发给A再获得B的公钥。然后居中维持通信获取信息。
旁路攻击 (Side Channel Attack - SCA)
用于获取密钥系统物理实现弱点,来进行攻击。
时序攻击 (Timing Attack)
旁路攻击的一种。试图通过分析算法的执行时间来破解算法。
功耗分析攻击 (Power Analysis Attack)
通过获取功耗数据来进行攻击。
故障分析攻击 (Fault analysis Attack)
通过分析故障进行攻击
现代加密技术
对称加密技术可分为块加密跟流加密。
块加密(Block Ciper)。每次对固定块数据进行加密。不足的要进行填充(Padding)。
这些技术有:DES (Digital Encryption Standard), Triple DES, AES (Advanced Encryption Standard), IDEA, Twofish, Serpent等。
其中DES是基于Feistel Block Ciper 模型开发的。
其他模型还有 Electronic Block Ciper Mode, Ciper Block Chaining Mode, Ciper Feedback Mode, Output Feedback Mode, Counter Mode。
非对称加密技术有三种方案:
RSA (三作者首字母)
ElGamal
Elliptic Curve Cryptography (ECC)
数据完整性讨论
同样也面对着被动跟主动两种攻击。
解决技术有 哈希功能应用。
哈希技术有: MD(Message Digest), SHA, RIPEMD, Whirlpool.
信息认证讨论
信息认证使用户可以确定信息的发起者。
信息鉴别码 (Message Authenticaton Code - MAC)
MAC算法是使用对称加密方式实现
https://www.tutorialspoint.com/cryptography/cryptography_quick_guide.htm