书城科普读物探索未知-恩尼格玛的兴衰
45056600000005

第5章 灭亡(1)

整整13年里,英国人和法国人都以为ENIGMA是不可破译的,波兰人的成功重新鼓起了他们的勇气。虽然德国人已经加强了密码机的安全性能,但是波兰人的实践表明,ENIGMA绝非坚不可破。波兰密码局的经验也表明,数学家在密码分析中能够起到多么重要的作用。在英国密码局(40局),以往都是由精于文字的语言学家或作家来担负起密码分析的重任,此后40局开始通过局内人际关系向牛津大学和剑桥大学招聘数学家和数学系学生。

英国的政府代码及加密学校是40局新设的机构,它的的总部坐落在白金汉郡的布莱切利公园里,40局新招聘的密码分析专家就在那里学习和工作。布莱切利公园的中心是一座歌特都铎式的城堡,19世纪时由金融家赫伯特·莱昂)爵士建造,GC&CS的领导机构就设立在它的图书馆、宽大的餐厅以及装饰得富丽堂皇的舞厅里。从城堡的底层望出去,外面是宽阔的花园。不过在1939年的秋天,那里的风景可不怎么样,花园里戳满了新建的小木屋,那是密码分析人员的工作场所,各种信息在担负不同任务的小木屋进进出出。比方说,6号木屋是负责破译德军ENIGMA电报的,从那里出来的明文由3号木屋翻译并进行综合情报分析;8号木屋专门负责对付德国海军的ENIGMA,这是一种特别复杂的ENIGMA机,和普通型不同,它有四个转子,在这里破译的情报由4号木屋中的情报人员翻译和分析。一开始在布莱切利公园工作的只有大约200人,可是到了五年后战争结束时,城堡和小木屋中已经多达7000人!

英国数学家和其他密码分析人员很快就掌握了波兰人进攻ENIGMA的技巧和方法。布莱切利公园拥有比波兰密码处多得多的人员和资金,所以足以对付由于德国人对ENIGMA的改动而增加到原来十倍的破译工作量。和在波兰密码处的情景一样,布莱切利公园的男女们日夜紧张工作,为的就是找到德国人当天的密钥。一到午夜,转子和连线板的设置就会变动,一切又要重新开始。

由此而破译的情报极其珍贵。如果布莱切利公园能够及时得到德军的情报,德国人的计划和行动就会暴露无遗。如果德军计划一次进攻,英军就可以采取相应的增援或撤退措施;更妙的是,如果德国将军在他们的电报中争论己方的弱点,英国军队就可以采取德国人最担心的计划。1940年4月德国入侵丹麦和挪威,布莱切利公园取得了一份详细的军事计划。同样在英伦战役之初,密码分析人员准确预告了德军轰炸的准确时间和地点,并且取得了德国空军极为宝贵的情报,比如飞机的损失情况,新飞机的补充数量和速度等。这些情报被送往M16的总部,再由那里转送战争部、空军部和海军部。

布莱切利公园的密码分析专家们有时也有点空余时间,最受欢迎的消遣活动是圆场棒球,球赛就在那座城堡前的草坪上举行。和自自在在的大学生一样,这些肩负着重任的男女也经常为一个有争议的球严肃地争论得面红耳赤。

在掌握了波兰人对付ENIGMA的手段后,英国密码分析专家也开始摸索出自己独特的方法。在正式用“炸弹”开始系统搜索当日密钥以前,他们总要试一遍“投机取巧”的门道。根据德军通讯的规定,每一条电文都要随机选择三个不同的字母组合,但是在激战之时,德军指挥官经常顾不上“随机”,往往在键盘上敲上三个相邻的字母了事,比方说DFG或者VBN,有时甚至重复使用某三个字母的组合来当密钥。英国密码分析专家把这样的密钥叫“西尔丝”,即三字母组合CIL的读音,大概来源于哪位倒霉德国军官的女友的名字。

“西尔丝”并非ENIGMA本身的弱点,而是ENIGMA使用者的弱点。另一种更为严重的人为使用错误是密钥本编制者对密钥使用过分严格的规定。为了强调密钥的不可预见性,他们规定每天在三个放置转子的位置上,不得有和昨天放在此位置上相同的转子。比如说每台ENIGMA机一共配备编号为1、2、3、4、5的五个转子,而前一天所使用的转子顺序为134,那么第二天可以使用例如215这样的转子顺序,但是214这样的顺序是不允许的,因为和前一天相比较,在第三个位置上都是4号转子。看起来这样交叉使用转子是个好主意,避免了像上面所说的重复使用某个密钥的过失,但是如果过分强调这一点,却会使英国密码分析专家的工作量减小一半,因为在开始分析当日密钥前,他们就可以把所有至少有一个转子处在前一日位置上的那些转子的排列排除在外了。德军密钥编制的另一条规定是,在连接板上不允许把两个相邻的字母连接起来。直觉似乎告诉人们不该使用这样简单的字母交换,但是这样的规则搞得太严格过了头,也就反而会帮对手的忙,对手根本就不用考虑这样的可能性了。

在整个战争过程中,ENIGMA机被不断改善,所以这样的“投机取巧”也变得十分重要,密码分析专家可以通过对密钥的猜测来推断出密码机新的变动,从而相应地改善“炸弹”的设计,使用新的策略。英国人能够在战争期间成功地持续破解ENIGMA密码,和小木屋里各种各样不同寻常的怪才的努力分不开。他们之中有数学家,各类科学家,语言学家,象棋冠军,填字游戏高手……一个难题经常从一只手传到另一只手,直到它最终得到解决;也有可能一个人解决一点,再由另一个人解决另一部分……按照6号木屋的负责人戈尔登·魏齐曼的话来说,这是“一群想方设法嗅出一条线索的猎犬”。

在布莱切利公园有一大群为破译ENIGMA作出了卓越贡献的人们。但是如果只能选择性地讲述一个人的功绩,那么这个人无论如何应该是阿兰·图灵。

图灵1912年6月23日在伦敦出生,他的父亲是当时英国殖民地印度南部的行政官员。他的父母为了使儿子在英国出生,暂时从印度回到了英国。图灵出生后不久他父亲重新回到印度,15个月后他的母亲也离开英国返回印度,把图灵一个人留在伦敦,由保姆和朋友抚养长大,一直到了图灵上寄宿学校的年纪。

1926年,14岁的图灵进入了雪伯恩学校就读。上学的第一天恰好碰上罢工,为了不错过就学典礼,图灵从南安普敦到雪伯恩一气骑了100公里的自行车,为此他上了当地的报纸。在学校里一年下来,他给人的印象是个爱害羞,做事笨手笨脚的男孩,但是在自然科学方面充满才华。雪伯恩学校是培养为大英帝国效力的男子汉的地方,图灵的性格却似乎于此不合拍,所以那几年他的学校生涯不免有些难捱。

在学校里他唯一的朋友是一个名叫克里斯多夫·莫尔贡的男孩。他俩都热爱科学,经常在一起谈论最新的科学发现,做各种科学小实验。这段友谊激发了图灵对科学的兴趣,他对莫尔贡的感情似乎也超出了朋友的范围,成为一种依恋。但是莫尔贡永远不会知道这点了,在他们认识的第四年,1930年的2月13日,他死于突发性结核病。这对图灵是一个巨大的打击,他失去了唯一的朋友。似乎是为了让自己代替朋友活着,他学习更加努力。在去世前莫尔贡已经取得了一份剑桥大学的奖学金,图灵决定自己也将进入剑桥大学学习,去完成亡友的未竟事业。

1931年图灵如愿以偿地进入剑桥大学国王学院。当时的数理逻辑学界正热烈地讨论着20世纪最伟大的数学发现之一——昆特·哥德尔的不完全性定理。在那以前,数学家们总以为,一个数学问题,虽然要找到回答也许很困难,但是理论上总有一个确定的答案。一个数学命题,要么是真的,要么是假的。但是哥德尔的不完全性定理指出,在一个稍微复杂一点的数学公理系统中,总存在那样的命题,我们既不能证明它是真的,也不能证明它是假的。数学家们大吃一惊,发现以往大家认为绝对严明的数学中原来有如此令人不安的不确定性。

每个逻辑学家都在苦苦思索,试图替陷入了危机的数学找到一条出路,他们包括当时在剑桥的贝特朗·罗素、阿尔弗雷德·怀特海、路德维格·维特根斯坦这样著名的逻辑学家。在这种环境下,图灵作出了他一生中最重要的科学贡献,在他著名的论文《论可计算数》中,他提出了日后以他名字命名的虚拟计算机器——图灵机。

图灵设想的虚拟机器拥有一条无限长的纸带、一个读写头,和一个控制装置。控制装置具有有限个内部状态,它能够根据这些内部状态来控制读写头作出相应的动作,比如说沿着纸带前后移动,在纸带上记录改变或抹去信息,或者读取纸带上的信息并据此改变自己的内部状态。你可以把纸带上的信息看作是指令或者数据,读写头根据这些指令和数据来完成一系列的动作。图灵提出了各种各样这样的机器,有些能做加法(只要在纸带上先写好两个数,然后让图灵机运行,最后机器停止时写在纸条上的那个数就是起先两数的和),有些能做乘法,等等等等。当然有些似乎什么也不做,或者在纸带上乱涂乱画,而另外有一些,好像永远也不停下来。这就是在信息科学史上和“冯·诺依曼机器”齐名的“图灵机”。

图灵机的个数是可数无限个,所以我们可以用自然数把所有的图灵机都标上号。图灵发现了这样一种图灵机,它能够做到任何一台图灵机能办到的事情,只要在纸带上首先标出想要模拟的图灵机的号码,然后给出相应的输入,最后它的输出将是号码被指定的那台图灵机的输出。可以说这是一台“万能”图灵机,当然它只是一种理想的计算模型,或者说是一种理想中的计算机。事实上我们平时使用的计算机就可以被看作是这样一台“万能”图灵机(只是它没有一条无限长的纸带,也就是内存。不过如今内存便宜得这个模样,对于一般的问题来说,差不多可以说有无穷的内存了),纸带上的那些指令就相当于程序和数据,如果程序不同,计算机可以完成的任务也不同。

图灵发现,有些问题是这台“万能”图灵机也不能回答的。比如说著名的“停机问题”:给定一台图灵机的编号,和纸带上的输入,是否总能回答它最终是否会停下来?不能。这是和哥德尔不完全性定理密切相关的,图灵的结果从另一个侧面支持了数学中的“不确定性”。但是和不完全性定理不同的是,图灵的成果给数学家指出了一条具体构造这样一台“万能机器”的途径。虽然那还是在20世纪30年代,当时的技术能力还不能将图灵的设想变为现实,但是他毫不怀疑自己的设想能够实现。这无疑是20世纪科学理论最重要的发展之一,在计算机被广泛应用,甚至影响到我们每个人的日常生活的今天来看,尤其如此。当年,图灵年仅26岁。

这是图灵事业最为辉煌的时期,他在国王学院取得了教职,在剑桥过着平静的学术生活。1938年迪斯尼公司著名的动画片《白雪公主和七个小矮人》上映,图灵兴冲冲地跑去看。在后来的一些日子里,他的同事听见他不停地哼哼电影中巫婆王后泡制毒苹果时的歌:“毒液浸透苹果,如睡之死渗入。”

图灵喜欢他在剑桥的岁月,成功的事业,活跃和宽容的环境。大学并不对同性恋大惊小怪,他可以和几个人同时结交而不用担心谁在背后叽叽喳喳。但是在1933年他的学院生涯突然中断了,他受代码及加密学校的邀请成为一个密码分析专家。1939年9月4日,就在首相张伯伦向德国宣战的第二天,图灵离开了剑桥,来到离布莱切利公园五公里的雪纳利布鲁克恩德居住。他每天骑自行车到布莱切利公园上班。因为患有对花粉过敏的鼻炎,图灵就常常戴个防毒面具骑车上班,招摇过市。

在布莱切利公园里,每天他花一部分时间和其他人一样在小木屋里进行破译密码的工作,而另一些时间他就呆在被称为“智慧水箱”,原来用来放水果的储藏室里。在那里密码分析专家思考在未来日子里有可能碰到的难题以及它们的解决方法。

直到当时,对ENIGMA的破译都采用雷杰夫斯基的方法,即利用每条密文最开始重复的密钥。如果此电文的密钥为YGB,那么电文开头就是六个由YGBYGB加密而成的字母,德国人以此来预防可能的传送错误。但是这是ENIGMA使用中的一个重大弱点,德国人很可能会发觉这一点并取消这种重复,这样就会使英国密码分析专家的破译手段变得毫无用处。图灵的任务就是要找到另一种不必利用重复密钥的破译方法。

在分析了以前大量德国电文后,图灵发现许多电报有相当固定的格式,他可以根据电文发出的时间、发信人、收信人这些无关于电文内容的信息来推断出一部分电文的内容。比方说,德国人每天的天气预报总在早上六点左右发出,要是在六点零五分截获了一份德国电报,它里面八成有Wetter这个词,也就是德文中的“天气”。根据在此之前德国人天气预报电文的死板格式,图灵甚至能相当准确地知道这个词具体在密文的哪个位置。这就使得图灵想到了用“候选单词”这一方法来破译ENIGMA电文,在英语中,图灵把这些“候选单词”叫做Cribs。

如果在一篇密文中,图灵知道Wetter这个词被加密成了ETJWPX,那么剩下的任务就是要找到将Wetter加密成ETJWPX的初始设置。如果采用一个一个试过去的暴力破解法,那就会碰到1590亿种组合这个大问题。但是雷杰夫斯基的天才思想告诉图灵,必须把转子方向变化造成的问题和连接板交换字母造成的问题分开来考虑。如果他能够像雷杰夫斯基那样发现在Cribs中某些不随连接板上连线方式变化的特性,他就可以最多只用尝试1054560次(60种转子放置方法乘以17576种转子初始方向)便可找到正确的转子设置。