主题:【原创】被征服的谜――ENIGMA的故事(四):波兰人的绝地反击(中下) -- 1001n
事实上,如前文所述,ENIGMA本身就是一种既有单字替代,又有多表替代的复合加密方式。这里再简单回顾一下,为什么要采取复合加密。
单字替代,容易被频率分析击破。
多表替代,可以根据特定的方法,计算出密钥的长度。这个算法有点象猜长度,但是这个猜不是瞎猜,而是有公式的,公式的提出者就是那个退役的普鲁士少校。
他证明了,在密文中重复重现的字母组合,比如UVXTT这个组合,它们之间的“距离”――举例来说,MDASA UVXTT CUAMGABLZKB UVXTT AOIT(为了看的清楚,在没有空格的密文处加了空格分隔一下)……的距离就是CUAMGABLZKBU,共12个字母――这个距离就是密钥字数长度的倍数。
当然了,这个重复会出现某种“假重复”,即完全巧合的重复而不是规律性的重复。为此,就必须统计密文中所有重复的字母组合之间的距离,尽量排除假重复。如果能找到明确的距离,密钥的长度就被基本猜出来了――刚才的例子中,密钥的长度应该就是12的因子,也就是2、3、4、6、12中的一个――总不会有人就用1位密钥加密吧――其实6或12可能性大一些,太单薄的密钥太容易被破掉了――这样,多表替代就败在了数学的手下。
从道理上讲,将单字替代的结果用多表替代再加密一次,其目的就是为了掩盖单字替代可能出现的频率分布规则化的问题。但是,只用一次多表替代,掩盖的效果并不好,举例来说,最高频字母E和最低频字母Z之间的差别还是太大。这样,ENIGMA才开始使用了三次多表替代,以图彻底打乱这个规律。
从三次多表替代的结果看,应该还是比较理想的。如您所建议的,文中再次使用多表替代或其它方法,我个人猜测,应该不会使总体加密水平达到更高更难以破解的程度――毕竟,最后破解的办法不是用零碎的一层层破解,而是直接用数学方式整体破解。
当然,这样肯定是有好处的。即便半截电文被破,另外半截电文依然是乱码。但是这个乱码也是乱在已经清晰的半截电文加密方式的基础上的。这时候,只要不再次用ENIGMA加密,应该很容易就用普通方式予以击破的。何况,半截电文的破解已经说明,破解思路是对头的,密钥也找对了――ENIGMA级别的加密都破了,更传统的方式还逃的过这一劫么?
最后就是,如果按照您所建议的方法,那么无论发送方还是接收方,都必须在拥有ENIGMA密码本的前提下,还拥有另外一个密码本――并且,这第二个密码本只能保证电文的部分安全――如果还用更多的办法交替进行,那就得拥有相应数量的密码本――在战争时期这样做,更多的密码本带来的究竟是更加安全还是解码的更加繁琐,会不会因此贻误战机――也就成了一个问题了:)
- 相关回复 上下关系4
压缩 2 层
😅问的犀利啊 1001n 字954 2005-04-30 05:10:20
🙂刚看到这个帖子,问题解决了吗? 祈甦 字0 2006-01-22 01:11:53
俺思量着要是波兰人不知道头六位是密钥,有可能 混天球 字196 2005-05-01 10:35:47
从理论上,的确是这样的:)也稍微详细说一下