第四章 比尔密码之谜
字,计算机测出各种给该文编号的策略。一种策略是给每个单词的第一个字母进行编号,就像比尔给《独立宣言》编号一样。另一种方式是给每个字母编号。每种策略在文中各种标点处开始反复尝试。每种方式得出字母数字间的不同分配,然后计算机将之应用到密码文中去以图推断出一段英语文字来。
由于计算机不会读英文,鲍德温和舍曼不得不设计一种能辨出抽出的文字是毫无意义的,还是有意义的方法。他们通过让它做统计试验而做到了这一点。计算机计算抽出的文字中某些字母对的频率,并将这种频率与已知的英语频率进行比较。如果频率相近,计算机则将抽出的文字贮存起来以供比它更有文化的主人细读。
到目前为止,一切顺利。但该系统的成功有赖于鲍德温和舍曼用正确的密钥文打字。关于这一点,他们即使拥有现代密码学的一切手段也不会比沃德干得好多少。实际上,沃德本能更轻易地做到这一点,只因为在1820年时出版的文献较少,因而可供选择的候选密钥文也较少。不过,霍兰公布了几个秘密线索:“3.19”和“如果你知道它以C打头,它会有助于你吗?”这第一条线索想必是卡尔·萨根(Carl Sagan)姓名中的大写字母,因为 C是字母表中的第三个字母而S是第十九个字母。第二条线索适用于一书,因为它是以C字母开头的。时间一日一日地过去,仍没人破译出“密码员”。于是霍兰不断地透露出有用的线索,供给并鼓励人们给出难题者打热线电话。
“1985年3月初,”,鲍德温回忆说,“霍兰透露出一条线索:密钥是第六章一个首字母系列。我们推断出他说的是单词的首字母,因为没有足够的行或句来构成由那些行或句的首字母组成的密钥。我们雇了个人打印这一章,到3月中旬我们一直在进行这个项目,但我们一直未获得相对应的文字。我们试了试霍兰实际上所用的策略:从第一个单词的第一个字母开始,编号为l,以此类推。到第二百五十六个单词时我们都很顺利,第二百五十六个单词是c,它是circa(大约)的缩略语。我们想,既然它代表着一个单词,霍兰一定会把这个c.算上的。而实际上他把它省略了,这意味着我们编号的其余每个字母都差一个数,这一微小差别产生出毫无意义的文字。”
“还有其他一些特别的东西。萨根在某处写了 Jet Propulsion Laboratory(喷气推进试验室)的缩写JPL。这个JPL是算1个词还是算3个词呢?霍兰却把它删去了。这个c.,JPL以及其他一些混杂的东西——首字母缩略词、脚注、图片说明、用连字号连接的词以及文中的数字——打破了我们的程序。当我们开始时,我们把密钥文想象成与《独立宣言》相类似的东西,《独立宣言》不同于那样的现代文献,很少有那种混杂的文字。直到这种游戏的最后我们才感觉良好,看!我们的程序倍加小心地对数千个不同策略进行尝试——选择每个元音之后的字母或其他我们所能想出的不可思议之物,但它却不特别善于对该文进行处理,不善于确定什么是单词及什么不是单词。我们发现,处理首字母缩略语、脚注、用连结号连接的单词及其他混杂的词有大约60种不同的方法。我们没有指定这个程序做这些,我们也不打算用手将它们全部试一遍。”
3月27日,舍曼和鲍德温设计出一种方法,能巧妙地识别信息部分与一部分密钥文的对应,这种方法避免了如何处理该文的特殊文字中出现的问题。他们注意到,在密码文中的许多地方,毗邻的密码符号号码数相近。比方说,在某处有这样一组号:867、877和860。其间最大差为17。把没有混杂的密钥文中的17个连续词(从860—877)集中起来,并依次将它们编上号,这样,他们就能推导出867、877和