密码破译的密码破译方法
通常,密码破译方法可以分为以下四类。 在不知其钥匙的情况下,利用数学方法破译密文或找到钥匙的方法,称为密码分析(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)定期更换加密会话的密钥。