我们知道,移位法和替代法之所以被破解,是因为每个字母的使用频率不同,运用频率分析法,统计密文中哪个符号出现的比例最高,那个字符大概就是字母e。对于频率相近的符号,可以再结合拼写规律进行试错,顺藤摸瓜,最终就会破解出全部密文。
所以频率分析法解密的关键就在于,找出符号的频率特征,从而大幅降低字母排列组合的可能性。
那么对抗频率分析法的思路就有了,即想办法消除符号出现的频率特征。怎么办呢?
可以采用多套符号替代的办法,比如字母e的出现频率最高,那我们用8套符号来替代它,频率次高的字母用套符号来替代它,依此类推,如此操作之后,字母原本暴露的频率特征就会变得混乱和复杂,从而给破解增加难度。
而且这种多套符号加密法并没满足于2-3套,后来典型使用的是26套。
这种用了26套字符的方法,就是第三代密码“维吉尼亚加密法”。就是它,成功压制了解密一方的频率分析法。
“维吉尼亚加密法”另一个重大的意义在于,“钥匙”,作为一个密码学中重要的概念登上了历史舞台。
“维吉尼亚加密法”属于一种多表密码。多表密码最早由文艺复兴时期意大利诗人莱昂提出,他使用了一个金属密码盘来切换密码表,只是这个系统只能做些有限的转换。
到了1508年时,德国密码学家特里特米乌斯发明了一种表格法(tabula recta),当时此方法只能对密码表做一些简单的、可预测的切换,这成为了维吉尼亚密码的关键部分。
“维吉尼亚加密法”真正出现是在意大利密码学家贝拉索于1553年所著的《吉奥万·巴蒂斯塔·贝拉索先生的算术》一书中,他以特里特米乌斯的表格法为基础,同时引入了密钥的概念。
但“维吉尼亚加密法”的发明者却记在了法国外交官维吉尼亚的名头上,这是因为他在1586年发明了更为简单却又更有效的自动密钥密码,而贝拉索的方法却被误认为是由维吉尼亚首先发明,这也是密码学史上的一个争议之一。
争议归争议,“维吉尼亚加密法”在安全性上确实极高。它是一个表格,第一行代表原文的字母,下面每一横行代表原文分别由哪些字母代替,每一竖列代表我们要用第几套字符来替换原文。一共26个字母,一共26套代替法,所以这个表是一个26×26的表。
假设我要给“Fountain”加密,用以前单套符号加密的思路,我们可以指定这个表里任意一横行,比如指定第g行符号的意思就是说,原文中的字母替换成第g行中对应的字母,只使用这一行的规则,“Fountain”就变成了“LUATZGOT”。
如果要换成“维吉尼亚加密法”,用多套符号来对“Fountain”进行加密,就可以这样指定:
第一个字母用第g套密码代替,第二个字母用第m套密码代替,第三个字母用第f套密码代替,第四个字母用第j套密码代替,第五个字母用第h套密码代替,第六个字母用第c套密码代替,第七个字母用第x套密码代替,第八个字母用第s套密码代替。
按照这个指定,从表中找到对应的加密符号,我们就可以得到“Fountain”加密后的密文“LAZWACFF”。
这样加密后的密文毫无规律可言,安全性极高,但也有一个问题,就是太麻烦了。
具体每个字母移动多少位竟然要单独指定,如果原文只是Fountain这种单词还好,要是一封信的话,一个字母一个字母的规定用哪套加密字符替代,不但加密费劲,解读也费劲。
只能单独再写一本说明书出来,照着它一个字母一个字母的还原,费时费力、容易出错不说,连加密的初衷都实现不了。
因为这份说明书的文字量比原文还要多得多,而且这个说明书还必须以谁都可以看懂的方式书写。想让收信方看明白,必须要送一本加密说明书给对方,如果说明书被截获,内容也就白加密了。
所以,为了解决这个问题,“维吉尼亚加密法”在真实使用时,人们事先规定每个字母用哪套字符替代,并不是毫无规律的瞎指定,而是要约定一个规则,这个规则就叫作 “钥匙”。
最开始的时候“钥匙”多为一个单词,比如我们把“BTC”作为“钥匙”,用它来加密Fountain。
根据“维吉尼亚加密法”的表格,我们就可以知道,Fountain的第一个字母用B套符号加密,第二个字母用T套符号加密,第三个字母用C套符号加密。到第四个字母时,“钥匙”长度用完了,就再从头开始循环,直至把原文都加密完。
这样,在“钥匙”是BTC的情况下,Fountain就被我们加密成了GHWOMCJG。
这样的好处是,原文里同一个字母会被加密成不同字符,fountain中的两个“n”分别变成了O和G;而且密文中同样的字符也可能代表不同的原文,密文中的两个“G”分别对应原文中的F和n。原文和密文中的字符根本就没有一个固定的关系。
同样的原文对应上亿种密文,相同的密文也一样对应上亿种原文,这就是维吉尼亚加密法难以破解的关键。
“维吉尼亚加密法”的安全性确实强悍,它诞生之后200多年都未被破解。
不过未被破解的原因很尴尬——因为在它诞生后的200多年时间里,几乎没有人使用。
之前我们提到过,真正好用的密码,是在安全性和效率上找到平衡点。
但“维吉尼亚加密法”是一套26×26的表格,而且还有长短不一的钥匙。每加密一个字母,都要在表格里找来找去,就算是在熟练操作的情况下,加密一个字母也得要3秒钟的时间。写完一篇500字的短文,要3个多小时的高强度工作。慢还不说,这样来回来去的查和写,十分容易出错。
直到1861年到1865年美国南北战争时期,“维吉尼亚加密法”才被广泛使用。
因为那时候不但已经有了蒸汽机,也有了电动机,加密解密的工作已经可以由机械来完成。这种有规律的体力活儿机器是最擅长干的,既不会抱怨累,也不太会出错。
因此,“维吉尼亚加密法”才得到了大放异彩的机会,甚至在美国南北战争中对北军的取胜也起到了重要的作用。
下一次,我们就来聊聊如此困难和复杂的“维吉尼亚加密法”是如何被破解的。
往期文章:
本人是官方授权简书会员推广专员,点击会员专属通道成为简书会员,您将会获得简书钻奖励及诸多权益!