第17部分(第1/5 页)
解密者首先会计算出密钥的长度,这步工作甚至是在他要考虑密钥的具体内容是什么之前所要做的。
巴贝奇的独具创意的技巧开创了一片密码术的新天地,并且将数学工具引入到了以前被认为专属于文字学的领域之中。即使一种编密码系统没有明确地使用数学,但其中隐藏的格式却通常需要以数学的方式进行整理。
之后又过了九年,在一八六三年,一位业余数学爱好者、时年五十八岁的普鲁士退役炮兵少校弗里德里希·卡西斯基(Friedrich Kasiski)出版了一本小册子,名字叫《密写和破译的艺术》(Die Geheimschriften und die Dechiffrierkunst)。简单描述一下它的原理:被加密方指定的这个数列,也就是密钥,在实践中不可能是无限长的;在通常情况下,它的长度不仅不会超过明文长度,甚至往往还相当短——在斯维提斯的例子中,密钥“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 w e l l t h a n t o s a y w e l l
密文G S K X W 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可排除)。
如下面的密文:
ISYYYJKAYYEZFFSWEESSPGZXQAHF
ISTVYJOACVEHAESAZRLTPQIZMXOT
QSWMCVUDSIJGGDEUWAZRSFXWILKUEJQLDACB
GDLYJXMYLMDQKZMPLDILQEMWFSWDPAZEZQNW
DYWDZXFSAEEAZJDUELVPTMCEKWSEEFURZFSW
DPXACQAFKMXWAWVEZFSDBGDLAYUQXGDPEKWS
EEFURZFSJTQYGUVA
ZOGRJZAHQAFKTJDKAD
MNQGWDVFAHLTLL
USSPXAZPGZJGGOSDCWITL
TEZMEDAZCAYQAFJRLUQLKUQQAFJQYWHPJTFJ
FLKUQQAFJQYWHPJPZOZDZMWDUMWFSWAYWRZJ
KZMISGBTFOSEEJGGDGREDKMMFDMDPARQJAHF
UDKTZOZEZQYAITDXVFAHLTLLKZMMCWZZVDPS
YPJ
在里面重复序列有IS,BGDL,SEEFURZFSWDP,JGGC,LKUQQAFJQYWHPJ,VFAHLTLL等;
如果每个重复间隔都能被3整除,关键词应该有三个字母。
下一步,仍旧是频率分析,不过,因为关键词有三个字母,我们应分为三组进行。把第1,4,7,10,13……个字母分为一组,称之为L1,把第2,5,8,11,14……个字母又分为一组,称之为L2,余下的归另一组,称之为L3。那么每一组有169个字母。
现在先做一个标准频率分