第六章 天才的密码少女
的复杂性,却令其等到十九世纪才流行起来。很多年以来,维吉尼亚密码都被认为是不可破解的。不过,也是在十九世纪,查尔斯·巴贝奇——一个性情古怪的天才将其破译了。让我们来看看解密的过程:
这个人也因为其在计算机科学领域方面所进行的先锋性工作而被世人所熟悉。巴贝奇(Babbage)通过寻找重复的字母段破解了这个密码系统。当然,维热纳尔密码的优势在于这种密码被假定为它将不同位置的字母进行不同的加密。比如同一段文字中的“t”会用“B”来进行编码,而第三个“t”也同样是用“B”来编码。发生这种情况是因为第三个“thE”后面第二十一个字母,而三字密钥BIG会在重复七次之后又回到了最开始。在任何比密钥要长得多的加密信息中,都会不可避免地出现类似这样的重复。而一个解密者应该如何才能揭示加密文件的真正面目呢?比如,如果加密文字“UPK”出现了两次,中间隔着21个字母,那么他就可以推断出密钥的长度是21的整除数。或者换种说法,他可以推断出21是密钥的倍数。(约数或称除数是一个数字被除之后不会有余数。比如21的除数就是1、3、7和21。)如果获得了足够多类似的线索,解密者就可以知道密钥的确切长度。一旦他知道了密钥长度,他就可以对加密信息进行日常频率分析。注意,数学在解密工作中总是放在首位的:解密者首先会计算出密钥的长度,这步工作甚至是在他要考虑密钥的具体内容是什么之前所要做的。
巴贝奇的独具创意的技巧开创了一片密码术的新天地,并且将数学工具引入到了以前被认为专属于文字学的领域之中。即使一种编密码系统没有明确地使用数学,但其中隐藏的格式却通常需要以数学的方式进行整理。
之后又过了九年,在一八六三年,一位业余数学爱好者、时年五十八岁的普鲁士退役炮兵少校弗里德里希·卡西斯基(Friedricen und die Dec)。简单描述一下它的原理:被加密方指定的这个数列,也就是密钥,在实践中不可能是无限长的;在通常情况下,它的长度不仅不会超过明文长度,甚至往往还相当短——在斯维提斯的例子中,密钥“Emily”的长度是五位,也就是说,每加密五个明文字母,就要循环使用“Emily”,对后面的明文字母继续加密。
“循环使用密钥进行加密”——整个多表替代的破绽和死穴,也正在这里。
首先,破译的第一步就是寻找密文中出现超过一次的字母。有两种情况可能导致这样的重复发生。最有可能的是明文中同样的字母序列使用密钥中同样的字母加了密;另外还有一种较小的可能性是明文中两个不同的字母序列通过密钥中不同部分加了密,碰巧都变成了密文中完全一样的序列。假如我们限制在长序列的范围内,那么第二种可能性可以很大程度地被排除,在这种情况下,我们多数考虑到四个字母或四个以上的重复序列。
破译的第二步是确定密钥的长度,先看看这一段:
关键词F O R E S t F O R E S t F O R E S t F O R E S t F O R
明文b e t t e r t o d o o s a y w e l l
密文G S K X K Y C U S O X Q Z K L S G Y C J E Q P J Z C
第一个YC出现后到第二个YC的结尾一共有12个字母(USOXQZKLSGYC),
那么密钥的长度应是12的约数——1,2,3,4,6,12之中的一个(其中,1可排除)。
如下面的密文:
ISZPNQCKMYYYJK