在说维吉尼亚加密法的破解方法之前,有必要来回顾一下它的加密原理。
维吉尼亚加密法是由26套密码组成的表,我们默认要用多套密码给原文加密的时候,具体操作中密文的每个字母由哪套密码来加密,是由钥匙规定的。钥匙最初都是一个正常的单词,原文很长,钥匙最初很短,为了让原文和钥匙一一对应,就反复使用钥匙。比如钥匙是boy,只有3个字母,我们可以boyboyboy这样一直循环下去,和原文中每个字母一一对应。
我们先来看一个例子,在这个例子里,原文是“the sun and the man in the moon”,钥匙是KING,用维吉尼亚加密法加密之后,密码文是一串看起来没什么规律的字母。我们把钥匙、原文和密文的内容依次记录下来。
![](https://img.haomeiwen.com/i11483301/eda1206a5d18702d.png)
原文的内容中,有3个定冠词the,变成密文后,the变成了两种样子,第一种是DPR,第二和第三种是BUK。第一个我们不管,关键点就在于——
第二个和第三个竟然加密成了相同的密文。
为什么会出现这种情况,这是巧合吗?
不是的。我们可以看钥匙单词KING,它由4个字母组成。我们再看密文中,后两个代表the的BUK,间隔了8个字母,间隔距离正好是钥匙长度的2倍。也就是说,正好在KING这个钥匙循环到整数倍的时候,如果也正好赶上出现了同样的原文,那巧合就出现了——原文就会被加密成相同的密文。
根据这个规律,我们就能确定钥匙的长度。
比如有这样一段密文:
DYDUXRMHTVNQDQNDYDUXRMHARTJGWNQD
其中,两个DYDUXRMH的出现相隔了15个字母。因此,可以假定钥匙的长度是15的约数,即长度为15、5或3。而两个NQD则相距20个字母,意味着钥匙长度应为20、10、5、4或2。取两者的交集,则可以基本确定钥匙长度为5。
这一步,就是破解维吉尼亚加密法的关键一步。
接下来,我们已经知道钥匙的长度是5了,那就意味着在原文中第1、第6、第11、第16……,这些字母单独挑出来放在一组叫作A组。A组可是由维吉尼亚密码表中,同一行移位的字母加密得到的结果。我们再把第2、第7、第12、第17……,这些字母挑出来放在一起称作B组,它们又是用另一行移位字母加密得到的。
我们把这些按组别归纳起来:
A组:第1、第6、第11、第16……
B组:第2、第7、第12、第17……
C组:第3、第8、第13、第18……
D组:第4、第9、第14、第19……
F组:第5、第10、第15、第20……
这就相当于,将原来的密文分解成了五组新的密文,每一组都是由维尼尼亚加密法中的单独一行加密而成,也即单套密码加密。
单套密码加密怎么破解?我们之前介绍过的——频率分析法。
所以,我们来总结一下维吉尼亚加密法的步骤:
第一步,是从密文中找出拼写完全相同的字母串;
第二步,计算出钥匙的长度;
第三步,将密文分析成若干组(与钥匙长度对应);
第四步,分别对每组密文用频率分析法破解。
在20世纪之前,人们一直以为这套方法是普鲁士少校卡西斯基在1863年发明的,所以一直以来这套破解法叫作“卡西斯基试验法”。但是后来更多的资料公布,发现剑桥大学的英国科学家巴贝奇在9年前就已经写下了解法,这位巴贝奇也是后世认为的计算机创造者之一。
发明者受委屈,这既是密码学领域的特点,又是密码学研究者躲不过的委屈。
不论是剑桥大学的巴贝奇,还是普鲁士军官卡西斯基,虽然他们破解了维吉尼亚密码法,但他们在世的时候,始终都不知道自己其实已经在密码学上引起了一场革命。
往期文章:
本人是官方授权简书会员推广专员,点击会员专属通道成为简书会员,您将会获得简书钻奖励及诸多权益!
网友评论