五千年(敝帚自珍)

主题:【原创】被征服的谜――ENIGMA的故事(四):波兰人的绝地反击(中下) -- 1001n

共:💬32 🌺46
分页树展主题 · 全看首页 上页
/ 3
下页 末页
        • 家园 俺思量着要是波兰人不知道头六位是密钥,有可能

          您想,如果全文都是一种密码体系,那还有系统的方法来破译.如果全文是用两种编码体系,比如头一百个字母用ENIGMA,后一百个字母用循环表法或其他方法,交替进行,那就要难破一些,许多统计规律被再一次的扭曲.不知对不?

          • 家园 从理论上,的确是这样的:)也稍微详细说一下

            您想,如果全文都是一种密码体系,那还有系统的方法来破译.如果全文是用两种编码体系,比如头一百个字母用ENIGMA,后一百个字母用循环表法或其他方法,交替进行,那就要难破一些,许多统计规律被再一次的扭曲.不知对不?

            事实上,如前文所述,ENIGMA本身就是一种既有单字替代,又有多表替代的复合加密方式。这里再简单回顾一下,为什么要采取复合加密。

            单字替代,容易被频率分析击破。

            多表替代,可以根据特定的方法,计算出密钥的长度。这个算法有点象猜长度,但是这个猜不是瞎猜,而是有公式的,公式的提出者就是那个退役的普鲁士少校。

            他证明了,在密文中重复重现的字母组合,比如UVXTT这个组合,它们之间的“距离”――举例来说,MDASA UVXTT CUAMGABLZKB UVXTT AOIT(为了看的清楚,在没有空格的密文处加了空格分隔一下)……的距离就是CUAMGABLZKBU,共12个字母――这个距离就是密钥字数长度的倍数。

            当然了,这个重复会出现某种“假重复”,即完全巧合的重复而不是规律性的重复。为此,就必须统计密文中所有重复的字母组合之间的距离,尽量排除假重复。如果能找到明确的距离,密钥的长度就被基本猜出来了――刚才的例子中,密钥的长度应该就是12的因子,也就是2、3、4、6、12中的一个――总不会有人就用1位密钥加密吧――其实6或12可能性大一些,太单薄的密钥太容易被破掉了――这样,多表替代就败在了数学的手下。

            从道理上讲,将单字替代的结果用多表替代再加密一次,其目的就是为了掩盖单字替代可能出现的频率分布规则化的问题。但是,只用一次多表替代,掩盖的效果并不好,举例来说,最高频字母E和最低频字母Z之间的差别还是太大。这样,ENIGMA才开始使用了三次多表替代,以图彻底打乱这个规律。

            从三次多表替代的结果看,应该还是比较理想的。如您所建议的,文中再次使用多表替代或其它方法,我个人猜测,应该不会使总体加密水平达到更高更难以破解的程度――毕竟,最后破解的办法不是用零碎的一层层破解,而是直接用数学方式整体破解。

            当然,这样肯定是有好处的。即便半截电文被破,另外半截电文依然是乱码。但是这个乱码也是乱在已经清晰的半截电文加密方式的基础上的。这时候,只要不再次用ENIGMA加密,应该很容易就用普通方式予以击破的。何况,半截电文的破解已经说明,破解思路是对头的,密钥也找对了――ENIGMA级别的加密都破了,更传统的方式还逃的过这一劫么?

            最后就是,如果按照您所建议的方法,那么无论发送方还是接收方,都必须在拥有ENIGMA密码本的前提下,还拥有另外一个密码本――并且,这第二个密码本只能保证电文的部分安全――如果还用更多的办法交替进行,那就得拥有相应数量的密码本――在战争时期这样做,更多的密码本带来的究竟是更加安全还是解码的更加繁琐,会不会因此贻误战机――也就成了一个问题了:)

分页树展主题 · 全看首页 上页
/ 3
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河