‘壹’ 密码破译的密码破译方法
通常,密码破译方法可以分为以下四类。 在不知其钥匙的情况下,利用数学方法破译密文或找到钥匙的方法,称为密码分析(Cryptanalysis)。密码分析有两个基本的目标:利用密文发现明文;利用密文发现钥匙。根据密码分析者破译(或攻击)时已具备的前提条件,通常将密码分析攻击法分为4种类型。
(1)惟密文破解(Ciphertext-only attack)。在这种方法中,密码分析员已知加密算法,掌握了一段或几段要解密的密文,通过对这些截获的密文进行分析得出明文或密钥。惟密文破解是最容易防范的,因为攻击者拥有的信息量最少。但是在很多情况下,分析者可以得到更多的信息。如捕获到一段或更多的明文信息及相应的密文,也是可能知道某段明文信息的格式。
(2)已知明文的破译(Known-plaintext attack)。在这种方法中,密码分析员已知加密算法,掌握了一段明文和对应的密文。目的是发现加密的钥匙。在实际使用中,获得与某些密文所对应的明文是可能的。
(3)选定明文的破译(Chosen-plaintext attack)。在这种方法中,密码分析员已知加密算法,设法让对手加密一段分析员选定的明文,并获得加密后的密文。目的是确定加密的钥匙。差别比较分析法也是选定明文破译法的一种,密码分析员设法让对手加密一组相似却差别细微的明文,然后比较他们加密后的结果,从而获得加密的钥匙。
(4)选择密文攻击(Chosen-ciphertext attack)。密码分析者可得到所需要的任何密文所对应的明文(这些明文可能是不明了的),解密这些密文所使用的密钥与解密待解的密文的密钥是一样的。它在密码分析技术中很少用到。
上述四种攻击类型的强度按序递增,如果一个密码系统能抵抗选择明文攻击,那么它当然能够抵抗惟密文攻击和已知明文攻击。 除密钥的穷尽搜索和密码分析外,实际生活中,破密者更可能真对人机系统的弱点进行攻击,而不是攻击加密算法本身。
利用加密系统实现中的缺陷或漏洞等都是破译密码的方法,虽然这些方法不是密码学所研究的内容,但对于每一个使用加密技术的用户来说是不可忽视的问题,甚至比加密算法本身更为重要。常见的方法有:
(1)欺骗用户口令密码
(2)在用户输入口令时,应用各种技术手段,“窥视”或“偷窃”密钥内容。
(3)利用加密系统实现中的缺陷。
(4)对用户使用的密码系统偷梁换柱。
(5)从用户工作生活环境获得未加密的保密信息。如进行的“垃圾分析”。
(6)让口令的另一方透露密钥或相关信息。
(7)威胁用户交出密码。 防止密码破译,除去我们要从思想上加以重视外,采取的具体措施如下:
(1)强壮加密算法。通过增加加密算法的破译复杂程度和破译的时间,进行密码保护。如加长加密系统的密钥长度,一般在其他条件相同的情况下,密钥越长破译越困难,而且加密系统也就越可靠。
(2)动态会话密钥。每次会话所使用的密钥不相同。
(3)定期更换加密会话的密钥。
密码分析(英语:cryptanalysis,来源于希腊语kryptós,即“隐藏”,以及analýein,即“解开”),是一门研究在不知道通常解密所需要的秘密信息的情况下对信息进行解密的学问。通常,这需要寻找一个秘密的钥匙。用不是很正规的话来说,这就是所谓的破解密码。
中文名
密码分析
外文名
cryptanalysis
提出者
William Friedman
提出时间
1920年
学科
密码学
快速
导航
经典密码分析
现代密码分析
密码分析的后果
成功密码分析的类别
概述
密码分析这个词有时也被用来指广义上的绕开某个密码学算法或密码协议的尝试,而不仅仅是针对加密算法。但是,密码分析通常不包括并非主要针对密码算法或协议的攻击。
虽然密码分析的目标在密码学的历史上从古至今都一样,但是实际使用的方法和技巧则随着密码学变得越来越复杂而日新月异。密码学算法和协议从古代只利用纸笔等工具,发展到第二次世界大战时的恩尼格玛密码机(又称“谜”,德语:Enigma),直到目前的基于电子计算机的方案。而密码分析也随之改变了,无限制地成功破解密码已经不再可能。事实上,只有很少的攻击是实际可行的。在上个世纪70年代中期,公钥密码学作为一个新兴的密码学分支发展起来了,而用来破解这些公钥系统的方法则和以住完全不同,通常需要解决精心构造出来的纯数学问题,其中最着名的就是大数的质因数分解。
经典密码分析
尽管密码分析这个词是晚近出现的(1920年由William Friedman确立),但破解密码和密码机的方法却已经存在很久了。世界上最早的破解密码方法的文字记录可以追溯到九世纪阿拉伯通才Al Kindi所着《破解密码信息》(A Manuscript on Deciphering Cryptographic Messages),这篇文章论述了一个频率分析的方法。
相关图书
频率分析是破解经典密码的一个基本方法。在自然语言里,字母表里的有些字母比其它的字母出现得更频繁。例如,在英语里,字母E很有可能是在任何文字样本里出现频率都最高的字母。同样的,TH这两个字母连起来是最有可能出现的字母对。频率分析法假设密码没有隐藏这样的统计信息。例如,在简单的替换密码中,每个字母只是简单地被替换成另一个字母,那么在密文中出现频率最高的字母就最有可能是E[1] 。
频率分析法除了需要用到统计学外,也需要用到语言学。但随着密码算法的日渐复杂,密码分析也渐渐变得主要依赖数学方法。这个改变在第二次世界大战时最为明显。那时,为了破解轴心国的密码,需要发展更加复杂的数学方法。而且,自动计算也头一次被应用到密码分析中,如密码炸弹(Bomba)以及最早的计算机之一——巨人计算机(Colossus)。
现代密码分析
尽管第二次世界大战时计算机的运用使得密码分析更加容易,这同时也使得新的密码学方案的复杂程度上升了好几个数量级。总体来说,破解密码在现代比起只用纸和笔的年代来说要困难得多了。似乎密码学对纯密码分析来说已经占了上风。美国历史学家卡恩(David Kahn)这样说道:“今天,由数百个商家提供的很多密码系统都不能被已知的密码分析方法来破解。确实,在这样的密码系统中,即使用选择明文攻击,也就是攻击者可以选择明文并比对相应的密文,也不能找出可以用来解开其它加密信息的钥匙。从某种意义上来说,密码分析已经死了。但是,故事还没有结束。密码分析也许是死了,但是,打个不恰当的比方,其实条条大道通罗马。”(2002年11月1日在美国国家安全局50周年纪念会上的讲话)。卡恩接着又提到,其它的攻击方式的可能性增加了。例如拦截攻击,窃听,边信道攻击,以及用量子计算机来代替传统计算机做密码分析。
‘叁’ 密码分析学包括哪几类
对于密码分析的结果来说,其有用的程度也各有不同。密码学家Lars Knudsen于1998年将对于分组密码的攻击按照获得的秘密信息的不同分为以下几类:
完全破解 -- 攻击者获得秘密钥匙。 全局演绎 -- 攻击者获得一个和加密和解密相当的算法,尽管可能并不知道钥匙。 实例(局部)演绎 -- 攻击者获得了一些攻击之前并不知道的明文(或密文)。 信息演绎 -- 攻击者获得了一些以前不知道的关于明文或密文的香农信息。 分辨算法 -- 攻击者能够区别加密算法和随机排列。 对于其它类型的密码学算法,也可以做出类似的分类。
可将密码分析分为以下五种情形。
(1)惟密文攻击(Ciphertext only)
对于这种形式的密码分析,破译者已知的东西只有两样:加密算法、待破译的密文。
(2)已知明文攻击(Known plaintext)
在已知明文攻击中,破译者已知的东西包括:加密算法和经密钥加密形成的一个或多个明文—密文对,即知道一定数量的密文和对应的明文。
(3)选择明文攻击(Chosen plaintext)
选择明文攻击的破译者除了知道加密算法外,他还可以选定明文消息,并可以知道对应的加密得到的密文,即知道选择的明文和对应的密文。例如,公钥密码体制中,攻击者可以利用公钥加密他任意选定的明文,这种攻击就是选择明文攻击。
(4) 选择密文攻击(Chosen ciphertext)
与选择明文攻击相对应,破译者除了知道加密算法外,还包括他自己选定的密文和对应的、已解密的原文,即知道选择的密文和对应的明文。
(5)选择文本攻击(Chosen text)
选择文本攻击是选择明文攻击与选择密文攻击的结合。破译者已知的东西包括:加密算法、由密码破译者选择的明文消息和它对应的密文,以及由密码破译者选择的猜测性密文和它对应的已破译的明文。
很明显,惟密文攻击是最困难的,因为分析者可供利用的信息最少。上述攻击的强度是递增的。一个密码体制是安全的,通常是指在前三种攻击下的安全性,即攻击者一般容易具备进行前三种攻击的条件。