45
Enigma是以字母为单位进行加密,一个明文字母,必然对应一个密文字母,这是一个流水式连续加密的过程。艾伦·图灵想到,抛开机器的加入提高了效率之外,整个过程其实包含了数步到数十步的工作,不管最后的结果有多复杂,每一步不就像论文中提到了能够高效完成单一任务的“虚拟机器”吗?既然如此,倘若能制造出“万能虚拟机器”,对Enigma的工作进行模仿,将所有的可能性跑一遍,其中必定有正确的结果。
艾伦眼睛一亮,心中默算了一遍:Enigma最常使用3个转轮,有60种排列变化,理论上需要把17576种可能性跑上60次。假设机器“跑”一步需要半秒,“跑”完一种特定排列需要146.5分钟,“跑”完60种可能需要146个小时。
说干就干,一到布莱切利庄园,艾伦就向斯图亚特说了自己的想法。这想法新颖而别致,为令人焦头烂额的破解Enigma密码任务寻找到了一条光明大道。146小时,与之前预计的两千万年,有天壤之别。而且,长期的情报分析经验告诉斯图尔特:运气一般不会那么差,“跑”最后一种排列组合才是正确的。因为有大量样本,还有气象短电报这种捷径,破译密匙的平均时间,应该会减少一半,大约73个小时,也就是3天左右,而这已经是可以接受的范围了。
参考波兰人送来的Bomba的设计图纸,艾伦·图灵和八号棚屋的同伴们一起设计了“破解单元”。Bomba虽然败于升级版的Enigma,但它“机械化计算”的思路却是正确的。同Bomba类似,“破解单元”也可以看成是逆向运转的Enigma。但艾伦他们做了很大的改进,把每一个破解单元进行横向并联。这样,它们工作时不会彼此干扰,一旦某个单元计算中正确的结果,所有的单元都会停下来。这样的破解单元一共并联了36个,可以同时模仿36台Enigma,这样“跑”完60种排列组合,只需要4个小时多一点点。
1939年12月份,布莱切利庄园筹集了10万英镑——这可不是一个小数目——委托不列颠制表机公司,专门制造艾伦·图灵设计的机器。密码专家兼工程师哈罗德·“博士”·肯恩作为项目负责人,带领一个工作小组常驻不列颠制表机公司,与工人一起,研究制造新机器遇到的一切问题。
1940年3月18日,一个值得纪念的日子,不列颠制表机公司成功制造出世界上第一台用于破解Enigma的机器。从图纸到成品,花了四个多月的时间。这台机器宽2.1米,厚0.6米,高2米,与小巧精致的Enigma相比,简直是一个庞然大物。有一个很具体的数据可以说明:它的体积是世界上第一台Enigma的25倍。
这台机器被命名为“Bombe”,是根据波兰语Bomba翻译成的英文。翻译成“炸弹”,用“炸弹”去破解巨大的“谜”,确实是恰如其分的命名;如果翻译成“冰淇淋球”,艾伦也能从中体会到马里安·雷耶夫斯基的幽默与天真。
需要说明的问题还有两个。
其一,Bombe与艾伦的论文有什么关系呢?
1936年,24岁的艾伦·图灵发表了他一生中最为重要的论文——《论可计算数及其在判定问题上的应用》。这篇里程碑似的论文直接奠定了艾伦在数学界的历史地位。在这篇论文中,艾伦指出,存在许多——可能是无限多——可以进行特定计算的“虚拟机器”,这些机器的功能非常单一,比如只能做加法,或者只能做减法。然后,艾伦明确指出,理论上存在着一种“万能虚拟机器”,可以通过不断改造它的内部结构,模拟任意一台功能单一的虚拟机器,从而完成任意复杂的工作。这篇论文最厉害之处在于,它从纯逻辑角度的角度出发,认定万事万物不管多么复杂,都可以细分为最简单的计算,认为能够造出根据不同的需求改变配置,胜任一切信息运算的“万能虚拟机器”,认定存在一种可以随心所欲变化,可以随时变成使用者最需要的那一种工具的“元机器”。
Bombe可以看作是上述想法的实体化。破解单元每一次只能执行一项任务,跑一种排列,可以看成是论文中提到的“虚拟机器”。把36组破解单元并联成的Bombe,可以看作是简化版的“万能虚拟机器”。艾伦·图灵把自己纯粹的数学逻辑推理出来的结论,以Bombe的形式变成现实。
这篇论文——《论可计算数及其在判定问题上的应用》——为后来的电脑等人工智能提供了极其重要的理论依据。如果你知道当时连晶体管都没有,更不要说集成电路了,你就知道图灵的思想有多超前了。
其二,Bombe或者工作人员是怎么知道计算结果是正确的?
艾伦·图灵进驻布莱切利庄园的时候,监听组截获的德军电报已经堆积如山。但这些德军电报全部是由毫无意义的字母组合而成,没有相应的密匙,就不可能将这些字母还原为可以理解的内容。面对海量然而神秘的德军电报,英国情报分析人员一筹莫展,然而他们还是做了大量的工作。其中一个叫玛格丽特·罗克发现了一个规律:每天早晨6点05分,都能截获长度大致相等的内容也不算多的电报。什么样的电报需要每天准点发布呢?玛格丽特推测,正确的答案只有一个:天气预报。此时德军是在欧洲和亚洲的广阔地域作战,后来还要加上非洲和大西洋,不管在哪里,前线将士都需要知道当天及今后的天气情况。而天气预报的内容就相对简单,除去时间和地点,就涉及阴、晴、云量、温度、风力、风向等指标。通过分析大量的天气预报,完全可以逆推出德国人是如何加密的。玛格丽特的发现,为破译德军的Enigma找到了一条捷径。
Bombe通过对大量气象短电报进行分析,得出了可以理解的明文,也就找到了当时的密匙。气象短电报,还有其他的事项,比如德国国防军的缩写,希特勒的名字,某些德军发报员长期的发报习惯,成为辨别Bombe是否计算出密匙的重要标准。
“Bombe”只是起步,而且它本身并不完美。在实际运转中,它的效率并不如想象中那样高效,不但反复出错,机器零件还经常损坏。
数学家戈登·威尔斯曼对Bombe的算法提出了修改意见,用新增“对角线板”办法,消除了错误连接,同时又不会漏算任何一个结果,大大提高了“Bombe”的效率。1940年8月8日,新型Bombe问世,被命名为“Agnes”。这款“Bombe”,解决3个转轮的Enigma,只需要15分钟就能解决问题,实在是惊人。换而言之,德军刚刚更换密匙,借助改进型Bombe的强大模仿能力,15分钟后布莱切利庄园的主管就能知道那密匙的详细内容,那么当天德军的所有加密电报对盟军都不再是秘密。横亘在轴心国与同盟国之间的长墙被艾伦的Bombe炸毁了,战场呈现出对同盟国单方面透明的态势,在Enigma被破解的那一刻,第二次世界大战的结局已经决定了。
此后,根据实际情况,更多改进型号的Bombe陆续诞生,以应对更加复杂的解码任务,因为Enigma也在不断升级。这简直就像是一场无穷无尽的升级大战啊。1941年底,Bombe有16台在忙碌,到1945年3月,有211台Bombe在夜以继日地工作。
关于成功破解Enigma之后的战例,有许多飘渺而无法考证的江湖传闻。因为情报工作的特殊性,像敌方密码已经被破解了这样的大事件,不但不能大肆宣扬,反而要全力掩盖,以保证敌方继续肆无忌惮地使用已经被破解的密匙,从而继续把情报源源不断地“送”到布莱切利庄园来。1941年3月28日,在地中海的马达潘角,英国海军舰队伏击了意大利海军舰队,击沉一艘重巡洋舰和两艘驱逐舰,重伤旗舰,意大利海军分舰队司令以下3014人阵亡,而英军仅一艘巡洋舰受伤,两架舰载机被击落。像这种交战双方实力旗鼓相当,结果却令人大跌眼镜的战例,背后就是密码被破解的事实。但对外宣传,却只能说“英国的雷达先进”,“战术训练到位”,甚至“上帝站在英国这一边”。
当时的英国首相丘吉尔曾经这样形容布莱切利庄园的密码破译团队:“一群从不呱呱叫,但是会下金蛋的鹅。”