2.1.4 密码分析
密码分析是在不知道密钥的情况下,通过密文获得明文信息或密钥信息。密码分析也称为对密码体制的攻击。攻击者Eve主要使用以下三种手段对密码体制进行攻击。
1.穷举攻击
穷举攻击又称为蛮力攻击,是指攻击者依次尝试所有可能的密钥对所截获的密文进行解密,直至得到正确的明文。1997年6月18日,美国科罗拉多州Rocket Verser工作小组宣布,通过网络利用数万台计算机历时4个多月以穷举攻击方式攻破了DES。
2.统计分析攻击
统计分析攻击是指攻击者通过分析密文和明文的统计规律来攻击密码系统。统计分析攻击在历史上为破译密码作出过极大的贡献。许多古典密码都可以通过分析密文字母和字母组的频率及其他统计参数而破译。抵抗统计分析攻击的方式是在密文中消除明文的统计特性。
3.数学分析攻击
数学分析攻击是指攻击者针对加密算法的数学特征和密码学特性,通过数学求解的方法来破译密码。按照从密文推导明文的方式,数学分析攻击包括:唯密文攻击、已知明文攻击、选择明文攻击、自适应选择明文攻击、选择密文攻击和自适应选择密文攻击(如表2-3所示)。
表2-3 数学分析攻击的类型
攻击密码体制就是为了从密文中恢复明文,或者恢复密钥。衡量密码体制安全性的方法有三种。
第一种方法是计算安全性(Computational Security),又称实际保密性(Practical Secrecy)。如果一种密码系统最有效的攻击算法至少是指数时间的,则称这个密码体制是计算安全的。实际上,人们经常通过穷尽密钥搜索攻击来研究计算上的安全性。然而还没有一个已知的实际密码系统能被证明是计算上安全的。人们说一个密码系统是计算上安全的,意思是利用已有的最好的方法破译该系统所需要的努力超过了攻击者的破译能力(如时间、空间和资金等资源)。
第二种方法是可证明安全性(Provable Security)。如果密码体制的安全性可以归结为某个NP(Nondeterministic Polynomial)完全问题,则称其是可证明安全的。例如,RSA密码可以归结为分解大整数问题。计算机可以在多项式时间复杂度内解决的问题称为P类问题,计算机在多项式时间复杂度内不可以解决的问题称为NP类问题,NP类问题中最困难的问题称为NP完全问题,简称为NPC(NP Complete)问题。Shannon曾指出,设计一个安全的密码本质上要寻找一个难解的问题。
第三种方法是无条件安全性(Unconditional Security)或者完善保密性(Perfect Secrecy)。假设存在一个具有无限计算能力的攻击者,如果密码体制无法被这样的攻击者攻破,则称其为无条件安全的。Shannon证明了一次一密系统具有完善的保密性,即从密文中得不到关于明文或者密钥的任何信息。