通过攻击可获得多少新的秘密信息?
这个攻击需要花多少工夫?(它的计算复杂度为何?)
密码分析中的情形
在攻击中,通过观察或研究目标系统,多少会获得关于这个系统的信息。随着能够获得信息多少的假设不同,密码分析的方法也不尽相同。在密码分析中最基本的一点,就是假设攻击者能够知道系统所用的算法。这也就是“敌人了解系统”的所谓柯克霍夫原则。这个假设在实际中是合理的。从古至今,有无数的秘密算法最后终为人所知,而其途径多种多样,包括间谍,叛变,以及逆向工程。在一些不多见的情况下,密码机也能够通过纯粹的推演而被重建。例如德国的洛仑兹密码机(Lorenz Cipher)和日本的PURPLE密码机,以及其它很多经典密码。
另外,我们通常用攻击模式来描述攻击者可以获得关于系统信息的方式。攻击模式包括以下几种:
唯密文攻击:攻击者仅能获得一些加密过的密文。
已知明文攻击:攻击者有一些密文并且知道相对应的明文。
选择明文攻击:攻击者在开始攻击之前可以选择一些明文并从系统中获得相对应的密文。如果攻击者在攻击中途可以根据已经获得的信息选择新的明文并获得对应的密文,则称为适应性选择明文攻击。
选择密文攻击:攻击者在开始攻击之前可以选择一些密文并从系统中获得相对应的明文。如果攻击者在攻击中途可以根据已经获得的信息选择新的密文并获得对应的明文,则称为适应性选择密文攻击。
相关钥匙攻击:与选择明文(或密文)攻击类似。不同的是,攻击者可以得到被两个不同的钥匙所加密(或解密)得到的密文(或明文)。攻击者不知道这两个钥匙的数值,但知道这两个钥匙之间的关系,比如两个钥匙之间相差一个比特。
显然,这些不同种类的攻击在实际中可能出现的机会也大不相同。尽管有些攻击比其它的较为常见,密码学家在设计算法时通常会采取保守的方式看待安全问题,总是假设最坏的情形。理由是,如果一个算法连不现实的攻击都可以承受,那么它自然也可以抵抗实际可行的密码分析。
事实上,这些假设虽然初看上去不切实际,但其实不然。例如在已知明文攻击中,密码分析者很有可能能够知道或猜出明文的一部分。比方说,一封加密过的信有可能是以“敬启者”开头,而一个电脑会话则有可能以“用户名:”开头。选择明文攻击在密鈅密码中较为少见,但也并非不可能。而在公钥密码中,选择明文攻击人人都可做到,因为加密用的钥匙通常是公开或已知的。相关钥匙攻击通常只是在理论上的讨论,但在实际中也会被用到,例如对WEP的攻击。
成功密码分析的类别
对于密码分析的结果来说,其有用的程度也各有不同。密码学家Lars Knudsen于1998年将对于分组密码的攻击按照获得的秘密信息的不同分为以下几类:
完全破解 -- 攻击者获得秘密钥匙。
全局演绎 -- 攻击者获得一个和加密和解密相当的算法,尽管可能并不知道钥匙。
实例(局部)演绎 -- 攻击者获得了一些攻击之前并不知道的明文(或密文)。
信息演绎 -- 攻击者获得了一些以前不知道的关于明文或密文的香农信息。
分辨算法 -- 攻击者能够区别加密算法和随机排列。
对于其它类型的密码学算法,也可以做出类似的分类。
2/2 首页 上一页 1 2 |