① 通常攻击密码都有什么方法
攻击密码系统的方法大概可以分为三种对密码进行分析的尝试称为攻击。Kerckhoffs最早在19世纪阐明密码分析的一个基本假设,这个假设就是秘密必须完全寓于密钥中。Kerckhoffs假设密码分析者已有密码算法及其实现的全部详细资料。
密码分析者攻击密码系统的方法主要有以下三种。
穷举攻击
所谓穷举攻击是指密码分析者采用依次试遍所有可能的密钥,对所获密文进行解密,直至得到正确的明文;或者用一个确定的密钥对所有可能的明文进行加密,直至得到所获得的密文。显然,理论上对于任何实用密码,只要有足够的资源都可以用穷举攻击将其攻破。
穷举攻击所花费的时间等于尝试次数乘以一次解密(加密)所需的时间。显然可以通过增大密钥量或者加大解密(加密)算法的复杂性来对抗穷举攻击。当密钥量增大时,尝试的次数必然增大。当解密(加密)算法的复杂性增大时,完成一次解密(加密)所需的时间增大,从而使穷举攻击在实际上不能实现。穷举攻击是对密码的一种最基本的攻击方法。
统计分析攻击
所谓统计分析攻击就是指密码分析者通过分析密文和明文的统计规律来破译密码。统计分析攻击在历史上为破译密码做出过极大的贡献。许多古典密码都可以通过分析密文字母和字母组的频率和其他统计参数而破译。对抗统计分析攻击的方法是设法使明文的统计特性不带入密文。这样密文不带有明文的痕迹,从而使统计分析攻击成为不可能。能够抵抗统计分析攻击已成为近代密码的基本要求。
数学分析攻击
所谓数学分析攻击是指密码分析者针对加解密算法的数学基础和某些密码学特性,通过数学求解的方法来破译密码。数学分析攻击是对基于数学难题的各种密码的主要威胁。为了对抗这种数学分析攻击,应当选用具有坚实数学基础和足够复杂的加解密算法。
② 密码分析学的攻击类型
不同的密码分析攻击有不同的效力,对于实际的密码系统的威胁也不尽相同。有的时候,对于某个密码系统的攻击只是停留在理论上,对于任何实际的密码系统可能并不适用。这就是所谓的“证书式弱点”(certificational weakness)。现代密码分析的学术研究结果大部分都属于这一类。从根本上说,某种攻击方式在实际中的有效性取决于它对于以下几个问题给出的答案:
这个攻击需要何种知识及能力? 通过攻击可获得多少新的秘密信息? 这个攻击需要花多少工夫?(它的计算复杂度为何?) 在攻击中,通过观察或研究目标系统,多少会获得关于这个系统的信息。随着能够获得信息多少的假设不同,密码分析的方法也不尽相同。在密码分析中最基本的一点,就是假设攻击者能够知道系统所用的算法。这也就是“敌人了解系统”的所谓柯克霍夫原则。这个假设在实际中是合理的。从古至今,有无数的秘密算法最后终为人所知,而其途径多种多样,包括间谍,叛变,以及逆向工程。在一些不多见的情况下,密码机也能够通过纯粹的推演而被重建。例如德国的洛仑兹密码机(Lorenz Cipher)和日本的PURPLE密码机,以及其它很多经典密码。
另外,我们通常用攻击模式来描述攻击者可以获得关于系统信息的方式。攻击模式包括以下几种:
唯密文攻击:攻击者仅能获得一些加密过的密文。 已知明文攻击:攻击者有一些密文并且知道相对应的明文。 选择明文攻击:攻击者在开始攻击之前可以选择一些明文并从系统中获得相对应的密文。如果攻击者在攻击中途可以根据已经获得的信息选择新的明文并获得对应的密文,则称为适应性选择明文攻击。 选择密文攻击:攻击者在开始攻击之前可以选择一些密文并从系统中获得相对应的明文。如果攻击者在攻击中途可以根据已经获得的信息选择新的密文并获得对应的明文,则称为适应性选择密文攻击。 相关钥匙攻击:与选择明文(或密文)攻击类似。不同的是,攻击者可以得到被两个不同的钥匙所加密(或解密)得到的密文(或明文)。攻击者不知道这两个钥匙的数值,但知道这两个钥匙之间的关系,比如两个钥匙之间相差一个比特。 显然,这些不同种类的攻击在实际中可能出现的机会也大不相同。尽管有些攻击比其它的较为常见,密码学家在设计算法时通常会采取保守的方式看待安全问题,总是假设最坏的情形。理由是,如果一个算法连不现实的攻击都可以承受,那么它自然也可以抵抗实际可行的密码分析。
事实上,这些假设虽然初看上去不切实际,但其实不然。例如在已知明文攻击中,密码分析者很有可能能够知道或猜出明文的一部分。比方说,一封加密过的信有可能是以“敬启者”开头,而一个电脑会话则有可能以“用户名:”开头。选择明文攻击在密钥密码中较为少见,但也并非不可能。而在公钥密码中,选择明文攻击人人都可做到,因为加密用的钥匙通常是公开或已知的。相关钥匙攻击通常只是在理论上的讨论,但在实际中也会被用到,例如对WEP的攻击。 对于密码分析的结果来说,其有用的程度也各有不同。密码学家Lars Knudsen于1998年将对于分组密码的攻击按照获得的秘密信息的不同分为以下几类:
完全破解 -- 攻击者获得秘密钥匙。 全局演绎 -- 攻击者获得一个和加密和解密相当的算法,尽管可能并不知道钥匙。 实例(局部)演绎 -- 攻击者获得了一些攻击之前并不知道的明文(或密文)。 信息演绎 -- 攻击者获得了一些以前不知道的关于明文或密文的香农信息。 分辨算法 -- 攻击者能够区别加密算法和随机排列。 对于其它类型的密码学算法,也可以做出类似的分类。
③ 密码攻击通常都使用什么信息来攻击
根据密码分析者可利用的数据资源来分类
可将破译密码的类型分为以下几种。
唯密文攻击
所谓唯密文攻击是指密码分析者有一些消息的密文,这些消息都用同一种加密算法加密。密码分析者的任务是恢复尽可能多的明文,最好是能够推算出加密密钥,以便可以使用该密钥解密出其他被加密的消息。因为密码分析者所能利用的数据资源仅有密文,因此这是对密码分析者最不利的情况。
已知明文攻击
所谓已知明文攻击是指密码分析者不仅可以得到一些消息的密文,而且也知道这些消息的明文。分析者的任务就是利用这些信息,推导出加密的密钥或者导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密。
例如密码分析者可能知道,从终端送到计算机的密文数据以一个标准词“LOGIN”开头。又例如,加密成密文的计算机程序文件特别容易受到这种攻击。这是因为诸如“BEGIN”,“END”,“IF”,“THEN”,“ELSE”等词的密文有规律地在密文中出现,密码分析者可以据此合理地猜测它们。近代密码学认为,能够抵抗已知明文攻击是密码的最起码的要求。
选择明文攻击
所谓选择明文攻击是指密码分析者不仅可得到一些消息的密文及对应的明文,而且他们也可选择被加密的明文。这比已知明文攻击更有效。因为密码分析者可以选择特定的明文去加密,据此可能得到更多的关于密钥的信息。这是对密码分析者十分有利的情况。分析者的任务是推出用来加密的密钥或者导出一个算法,此算法可以对用同一密钥加密的任何新的消息进行解密。
自适应选择明文攻击
这是选择明文攻击的特殊情况。密码分析者不仅能选择被加密的明文,而且可以基于以前加密的结果修正这个选择。在选择明文攻击中,密码分析者可以选择一大块被加了密的明文。而在自适应选择明文攻击中,它可以选择较小的明文块,然后再基于第一块的结果选择另一明文块,依此类推。
选择密文攻击
所谓选择密文攻击是指密码分析者可以选择不同的密文,并获得相应的解密明文。密码分析者的任务是推导出密钥。
选择密钥攻击
这种攻击并不表示密码分析者能够选择密钥,它只表示密码分析者具有不同密钥之间的关系的有关知识。这种方法有点奇特晦涩,不是很实际。
非技术攻击手段
密码分析者威胁、勒索,或者折磨某人,直到他给出密钥为止。行贿有时称为购买密钥攻击。这些非技术手段是非常有效的攻击,并且经常是破译算法的最有效途径→_→ 恩,我觉得这是最高效的方法。
④ 什么是密码分析,其攻击类型有哪些
答:密码分析是指研究在不知道密钥的情况下来恢复明文的科学。攻击类型有只有密文的攻击,已知明文的攻击,选择明文的攻击,适应性选择明文攻击,选择密文的攻击,选择密钥的攻击,橡皮管密码攻击。S盒是DES算法的核心。其功能是把6bit数据变为4bit数据。