维吉尼亚2.0版本被破解后,加密一方继续改进,改进的方向就是修补了2.0版本的漏洞。
之前我们说过,维吉尼亚2.0版本的漏洞,就在于钥匙是一段完全符合拼写规律的文字。
如果钥匙根本不是一首诗、一篇文章,而是一大段完全随机的字母,那顺着上一版的方法,接下来的任务就是猜测随机字母是哪些,这实在是个不可能完成的任务。
而且不光是听着不能完成,之后有数学家分析了整个过程,证明了这种把钥匙编成随机字母的方法,在数学理论上就是不可破解的。
这个方法在第一次世界大战后出现,后来就被叫做“单次钥匙簿密码法”,也叫做“一次性密码本”。我们可以认为它是维吉尼亚加密法的3.0版本。
那么这个版本是如何加密的呢?这里我们引入一个数学中“模运算”的概念。
模运算很像我们看手表的思路。比如晚上22点再过3小时是几点呢?结果不是25点,而是1点,所以钟表就是一个模等于24的体系。我们可以任意规定模的大小,比如在模是7的体系里,2+3=5 (mod7),2+6=1 (mod7)。
乘法也一样可以用模运算,比如在模为13的体系中,11×9等于多少呢?加入不考虑模,我们知道结果等于99。可是在模等于13的表盘里没有99,所以数字的增加只能等同于不断的转圈,99相当于转了7圈后又走了8格。所以在模13的体系中,11×9=8 (mod13)。
举个例子,若要加密讯息“This is an example”,而用以加密的一次性密码本内容为:
MASKLNSFLDFKJPQ
则利用模运算的方法,可分别将两者给做以下的转换:
This is an example → 19 7 8 18 8 18 0 13 4 23 0 12 15 11 4
MASKL NSFLD FKJPQ → 12 0 18 10 11 13 18 5 11 3 5 10 9 15 16
两者依序相加后得到的讯息如下:
31 7 26 28 19 31 18 18 15 26 5 22 24 26 20
将以上得到的讯息模26后可得:
5 7 0 2 19 5 18 18 15 0 5 22 24 0 20
它也就变成了:
FHACTFSSPAFWYAU
从第一代隐藏法到现在,这是我们所说的第一个绝对安全的加密法。
但实际情况是,它几乎就从没在实战中规范使用过。原因有两个:
一、它的效率异常的低,根本就无法用在需要大量通信的领域。
当时的具体操作是这样,每位通讯员都要有一本厚厚的随机钥匙字母,大约几百页,加密一页就撕掉销毁一页,再用下一页的随机钥匙,这在战争中不仅时间繁琐,也不方便携带。
再比如像一战那样几万个发报机,每个人都要有一份钥匙簿,该用哪一页做钥匙,这个统一就是个难度。
二、产生随机字母排序,是一件几乎不可能的事。
只有在大自然中,一些已经被证明是随机的量子物理过程,才是真的随机。
比如说一种半导体管叫齐纳管,它被电流击穿后产生的白噪音是真随机。或者有些放射线的原子,在衰变的时候会向外辐射α粒子,如果把α粒子一个个射出来的时间间隔记录下来,这些间隔的数字是真随机的。
所以,对于人来说,真随机是一个很难获得的东西。
而我们脑中以为的随机,比如随机字母、或者我的双手在键盘上一通乱敲,那其实都不是真随机。
你信不信,只要敲的数量足够多,大数据是可以从中分析出来的。不同的人乱敲的“笔迹”,是不一样的。小明乱敲的模式和阿花乱敲的模式也是不一样的,于是就可以从中找出规律。
而这种规律,就可以当做是一种类似于一首诗、一篇文章那样的拼写规律,那么破解维吉尼亚加密法2.0的方法就还是可以用上。
所以,虽然理论上说单次钥匙簿密码法是不可破解的,安全性没有破绽,但真的随机是很难轻易获得的,而获得了以后又很难大规模使用,效率极为低下。所以这种方法,几乎没有在真正的战场上使用过。
而实际上,在维吉尼亚3.0版本正处于尴尬之时,第四代加密法——恩尼格玛机已经问世了。
往期文章:
本人是官方授权简书会员推广专员,点击会员专属通道成为简书会员,您将会获得简书钻奖励及诸多权益!
网友评论