虽然索利斯的密码被破译了,但他并不打算就此放弃对通灵术的测试。事实上,索利斯已经对这种情况做好了准备。在索利斯的论文中,还有一个名为“附属测试”的附录部分,索利斯在该部分写下了以下内容:
虽然我不相信会出现这样的情况,但是从理论上讲,仍然不能排除以下可能:如果一位破译技术足够高的密码专家愿意花极大的精力来攻克这段密码,他有可能会在不知道关键词的前提下就破解我的这段密码。因为,虽然我的密码很短,从而给破译带来了难以逾越的障碍,但是这种加密系统在理论上并不是“不可破译的”。因此,我认为有必要增添第二段密码,这段密码是用一种绝对不可能被破译的加密系统加密的。也就是说,在不知道关键词的情况下,即使完全了解这种加密系统,也不可能破译出密码的内容。因此,我需要一个满足上述条件的加密系统,同时还要保证这个加密系统的关键词传递起来非常容易,满足这两个条件的加密系统不可能非常简单。接下来,我会给出加密的信息,并解释这种加密系统的原理。我还会描述我死后将会通过通灵的方式向大家提示关键词的性质。
索利斯在密码B中使用的加密系统与被破译的密码A中使用的加密系统完全不同。我将密码B的密文复制如下 :
INXPH CJKGM JIRPR FBCVY WYWES NOECN SCVHE GYRJQ TEBJM TGXAT TWPNH CNYBC FNXPF LFXRV QWQL
公布密码A的时候,索利斯并没有透露他加密的方法,但是在公布密码B的时候,他却解释了密码B的加密方式。密码B的加密方式基于一种16世纪的加密系统,被称为“维吉尼亚密码”(Vigenère cipher),但布莱兹·德维热内尔(Blaise de Vigenère,1523—1596,也被译为布莱兹·德·维吉尼亚)却并不是这种密码的真正发明者。我们将在本书的第9章中详细讨论维吉尼亚密码的解法,但在本章中,读者只要理解经索利斯修改后的维吉尼亚密码就足够了。
在经索利斯修改后的系统中,他将某种已经发表的作品作为密钥。索利斯从这部作品中挑选出一串单词,如果这串单词的后部有前部已出现过的单词,就将这些重复的单词删去。索利斯挑选的单词串必须足够长,使删除重复的字母以后至少剩余74个不同的单词——这是因为索利斯想要加密的信息一共有74个字母,而每加密一个字母需要用到单词串中的一个单词。
那么,如何用一个单词来加密一个字母呢?第一步是把每个单词转化成一个数字。这一步需要我们把这个单词中的每一个字母都转化成一个数字,转化的规则是 A=1 , B=2 , C=3 ,…, Z=26 。然后,我们把单词中每个字母对应的数值加在一起,得到一个总和,比如“ BACON ”(熏肉)这个单词对应的数字就是 2+1+3+15+14=35 。如果某个单词对应的数值大于或等于26,索利斯就把这个数值减去26。因此,“ BACON ”这个单词对应的最终数值是 35–26=9 。当一个单词比较长时,可能需要多次从这个总和中减去26。用数学术语来描述,这个过程叫作用单词对应的总数去“模除26”,简称“模26”(mod 26)。用一个数字去模除26相当于把这个数字除以26,然后取余数(除法的商则不是我们关心的问题)。在对每一个单词进行上述操作以后,索利斯就会得到一串数字,在这串数字中,每一个数字的值都在0~25之间(包括0和25)。假设索利斯想要加密的原始信息是:“ GREETINGS FROM THE DEAD ”(来自死者的问候),而他从某部作品中取得的单词串所产生的密钥是: 14 , 8 , 21 , 5 , 2 , 11 ……那么在加密的时候就要把这段信息和这串密钥一一对齐如下:
接下来,我们把这段信息中的每个字母都往字母表的后方移动几步,具体步数等于这个字母下方的数字。完成这个步骤以后,我们就得到:
U Z Z J V T E …
在上面列出的这串字母中,最后一个字母的加密方式是 N+17=E ,对于这种操作,我有必要做一些解释。如果我们从字母 N 开始数,数到 12 的时候就已经到达字母表的最后一个字母 Z 了。在 Z 之后再也没有其他字母了,于是,我们就重新回到字母表的开头,从第一个字母 A 开始继续数下去,一直数到17,我们正好到达字母 E 处,所以 N+17=E 。我们还可以通过另一种方式来理解上述操作,那就是把整个字母表想象成一个巨大的圆环,就像一面钟上的数字一样。当我们在某个字母上加上一个数字时,钟面上的指针就从这个字母开始向前移动一定的步数,指针停止的地方就是这个字母对应的密文。
为了将加密的规则定义得更加明确,索利斯规定,在产生密钥的过程中,“用连字符(-)连在一起的两个单词一律被视作两个分开的单词”。 这条规则无意中为密码的破译者提供了一条小小的线索。如果索利斯选作密钥的这串单词中根本没有连字符的话,索利斯就完全没有必要引入这条规定了。因此,这条规定是否意味着他所选择的密钥单词串中包含连字符呢?
此外我们还可以假设,密码B中的信息可能也引自莎士比亚的作品。但是,在打开《莎士比亚全集》寻找含有连字符的句子之前,我们首先看看索利斯论文中的以下段落:
我没必要针对原始信息给出任何提示。一段密码的破译方法是无穷的,但是以下事实可以帮助我们区分正确和错误的解法:在正确的解法中,作为密钥的单词串必须是能够从一本印刷作品中找到的一段话(当然,接下来需要对这段话进行上述一系列操作)。我认为,在印刷作品中无法找到多条能将密码破译成有意义信息的密钥串——这种情况发生的概率几乎为零。我的目标是:我在死后会通过通灵术告诉大家密钥串究竟来自哪一部作品中的哪一段话。
从上面这段话中,我们可以看出索利斯不相信密码B会产生多种解法,因为“这种情况发生的概率几乎为零”。这就意味着密码B的明文不应该引自莎士比亚的作品。但是索利斯也不太可能挑选一本特别不出名的作品作为密钥串的来源。因为如果索利斯打算在死后将这部作品的题目告诉某人的话,他肯定希望此人能够比较轻松地找到它,解开索利斯留下的密码,从而证实死者确实可以与这个世界交流。
索利斯希望其他人也用和他一样的方法创造密码,以便共同验证通灵术是否真的存在。然而,德尼斯·帕森斯认为,密码B所用的加密方法计算量太大,许多人根本没有能力完成这种加密工作。因此,帕森斯建议普通人使用一种更加简单的加密方法。在这种加密方法下,只需要选择某部作品中的一段话作为密钥,但不需要用到密钥中的所有字母(在第8章中,我将向读者介绍这种“滚动密钥加密系统”)。加密者只需要每隔两个字母挑出一个字母来,然后把这些字母转化成数字,就可以用与密码B最后一步的相同方式来加密信息了。
索利斯认识到,如果从一段有意义的文字中每隔两个字母挑出一个字母来,所得到的结果不会是随机的字母串,而会是一串与正常英语的字母概率一致的字母串。然而,索利斯错误地认为,双字母组合或者三字母组合的概率会“接近随机,因此不能帮助破译者破译密码”。 而此前破译过索利斯密码的那位不愿具名的密码专家则认为,这种简化的加密系统“安全性相当低”。
此时,索利斯并没有提供C计划或者密码C,来应对密码A和密码B都被破解的情况。但是索利斯这样做并不是因为他对密码A和密码B的安全性特别有信心。索利斯写道:“我认为这样做会降低实验成功的概率,因为要记住第3个关键词对于我的记忆力而言会是一个负担。”
虽然索利斯认为3个关键词太多了,但他似乎又认为至少需要两个关键词。在密码A被破译以后,索利斯又提出了一条新密码来取代密码A,我们将这段密码称为密码C。在密码A被破译以后,索利斯立刻在一篇1948年的论文中提出了密码C。
密码A使用的是普莱费尔加密系统,而密码C使用的是普莱费尔加密系统的升级版,这种加密系统被称为“双重普莱费尔加密系统”(double Playfair cipher)。 在双重普莱费尔加密系统下,加密者首先要使用普莱费尔加密方法,根据某个关键词把字母表打乱放入网格中,但是在完成上述步骤以后,双重普莱费尔加密系统还要求加密者继续完成更多的加密步骤。在第一步以后,加密者要把某个特定的字母放到密文的最前面和最后面,然后再次使用普莱费尔加密系统对修改后的密文进行第二次加密,但第二次加密必须使用和第一次加密不同的关键词来打乱字母表。之所以要在进行第二次加密前在密文的最前面插入一个字母,是为了打破之前字母两两配对的方式。而在密文的最后插入一个字母,则是为了让密文的字母总数是偶数。插在密文最前面的字母并不一定要和插在密文最后面的字母相同,但是在这种加密系统的规则中,上述两个字母正好是相同的,这就使得这种加密系统出现了一个弱点!不管怎么说,当索利斯用上述步骤将他的原始信息加密以后,他得到的最终密文如下 :
BTYRR OOFLH KCDXK FWPCZ KTADR GFHKA HTYXO ALZUP PYPVF AYMMF SDLR UVUB
这就是索利斯发表的最后一段密码,我将这段密码称为密码C。随着时间的流逝,密码B和密码C都没有被破译出来。索利斯最终于1984年逝世,享年90岁。此时,真正的挑战,或者说真正的实验终于开始了。
所有试图从已逝的索利斯那里获得密钥的努力都以失败告终,我想索利斯的亲朋好友以及和他一起进行心灵学研究的同事应该都很失望吧。又过了许多年,最终在1996年,詹姆斯·J. 吉洛格利和拉里·哈尼施(Larry Harnisch)终于找到了索利斯密码C的密钥。吉洛格利和哈尼施宣布,在这个密码中,两轮普莱费尔加密过程的关键词分别是“ BLACK ”(黑色)和“ BEAUTY ”(美丽)。第一轮加密结束后插入密码头尾的字母是 T 。密码的明文是:
THIS IS A CIPHER WHICH WILL NOT BE READ UNLESS I GIVE THE KEYWORD.
(这是一条没有人能读懂的密码,除非能得到我提供的关键词。)
吉洛格利和哈尼施在他们发表的论文中解释了如何找出关键词的方法。这篇论文的最后一段写道:
生存研究基金提供了1 000美元的赏金,奖给第一个解出密码B或者密码C的关键词的人。可惜悬赏期已经于1987年截止,而在1987年时,东芝牌笔记本电脑还没有通灵的本事(甚至还根本没有被制造出来)。我们就把这次成功的电脑通灵当作我们获得的奖赏吧。
假如读者已经忘记了吉洛格利的名字,我有必要提醒你们一下:在《未解之谜(上)》第5章中我们曾经讨论过吉洛格利成功破译IRA密码的故事。他是一名密码学家,而不是灵媒。随着密码C被解开,从1996年开始,索利斯只剩下最后一件工具可以用来证明他死后仍然有知,并且能与这个世界进行通信——他生前留下的密码B。
虽然吉洛格利和哈尼施优雅漂亮地解出了密码C,但他们却无法破译密码B。他们写道:他们“相信要想破译密码B,必须首先找到正确的文本”。 吉洛格利和哈尼施也花了不少精力试图破译密码B,他们对数百本书中的文字进行了测试,但是索利斯选择的密钥串显然并不在这几百本书中。也许,研究者可以从一种心理学的角度来试图破译索利斯创造的密码C,如果能够对索利斯的个性有足够深的了解,就有可能猜出他会从什么样的作品选取用于构建密钥的单词串。
1948年,索利斯显然无法猜到未来的计算机会具有如此强大的计算能力,更加不可能猜到未来的密码专家能够利用这种强大的计算能力来破译密码。随着科技的发展,未来又会出现什么样的新工具呢?