从维吉尼来加密法被破解一直到1920年,大约有60余年的时间里,加密一方一直被解密一方压制。
到了1920年,加密法终于扳回了劣势。
之前我们讲破解维吉尼亚密码的时候就知道,它的缺陷在于钥匙的循环,破解了钥匙的长度就相当于破译工作大功告成了一半。
假如一个钥匙有5个字母,那对应的密文,每逢5个字母就会用到同一套密码加密。所以只要知道钥匙的长度,再分别对5套密码用频率分析法,维吉尼亚加密法就破解了。
那么如果想对维吉尼亚加密法进行改进,就要想办法弥补或是消除这个缺陷。
方法其实很简单,就是增加钥匙的长度。
比如说一篇文章有1000个字母,如果钥匙的长度是5,也就是说用了5套加密法,那么每套加密法会匀到200个字母。
对于频率分析法来说,要想把字母出现的频率统计准确,有一个必要条件——字母足够多才行。
200个字母还是可供分析的,但一个ok、no这样的短消息,什么频率特征都体现不出来。而这,正是加密者希望出现的局面。
那么现在,还是那篇1000个字母的文章,我们的钥匙长度从5增加到50的话,每套加密法匀到的字母只有20个了,连26个字母每个出现一次的量都没到,这样的量几乎就不会表现出字母的频率特征。
如果再继续增加钥匙长度呢?比如说钥匙文和原文等长,也是1000个字母,那之前破解维吉尼亚加密法的所有方法都会失效了。
这时候钥匙又要怎么设计呢?一般是用一首诗或者一篇其他文章当做钥匙,这样方便大家约定规则。
这种加密法,我们可以把它当做维吉尼亚加密法的2.0版本。
不过这个版本,还是有破解方法。
之所以能破解,就是因为为了方便,人们往往会使用一首诗或者一篇文章当钥匙。而一首诗、一篇文章是有意义的单词组成的,它们的字母排列一定是符合拼读规律的。
有规律可循,就可能被破解。
破解的方法,是先假设原文中一定会出现常用的单词,然后拿它去和密文对照,倒推钥匙的单词是什么。
原文中短小的词假设它是个什么呢?最好的选择就是定冠词the,或者at、in,这些总会用到的单词。
比如,假设原文中任何三个相连的字母都可能是the,在我们已经知道密文是什么,又假设了原文是the的情况下,我们去对照维吉尼亚的字母表,对应的钥匙是哪三个字母也就确定了。
不断的把the放在所有位置上,然后去观察钥匙的样子,有时候钥匙就会呈现出一些符合单词拼写规律的样子。
反正这个方法就是先假设原文里一定有the这样的词,然后还有一个前提,就是假设钥匙是像一篇文章或者一首诗那样有规律的单词拼写成的。
在假设原文有the,手中又有密文的基础上,求出the对应的钥匙字母就不难了。
看看这部分算出的字母,是不是也符合单词拼写规律。如果符合,很可能这部分钥匙字段你就猜对了;如果不符合,就说明猜得还不对。
这种方法完全避开使用频率分析法,不需要有足够大量的字母出现,都可以分析出原文。只是除了规定步骤外,还要有很好的猜字谜的功底和一点点运气,总体来说属于体力活。
到此为止,维吉尼亚加密法的第一个改进版2.0版,也就是把钥匙长度增加到和原文一样长的方法,也被破解了。
往期文章:
本人是官方授权简书会员推广专员,点击会员专属通道成为简书会员,您将会获得简书钻奖励及诸多权益!