布莱切利园

其实英国早在1943年年底就已经成功制作出了一台含有真空管的电子计算机。不过这在当时是一个鲜为人知的秘密项目,而且它在30年之后才被公之于世。这个项目是在布莱切利镇(距离伦敦西北45英里)的一座维多利亚式红砖庄园中进行的。英国政府当时召集了一批天才和工程师,让他们在这个与外界隔绝的地方进行德军密码的破解工作。这台被称为“巨人”(Colossus)的计算机是世界上第一台全电子化和部分可编程的计算机。由于它是针对一项专门的任务而建造的,所以它不是一台通用型或者“图灵完备”的计算机,不过它身上确实体现了艾伦·图灵的烙印。

图灵在1936年秋天开始将研究重点转向密码和密码学,他当时已经来到了普林斯顿大学,而且刚刚完成了《论可计算数》的写作。他在当年10月写给母亲的一封信中表达了自己的兴趣:

对于我目前正在研究的内容,我刚刚发现了一项潜在的应用。它能够回答“最通用的一种密码是什么”这个问题,同时我可以(相当自然地)利用它创建大量独特和有趣的密码。其中一种密码在没有密钥的前提下几乎不可能被破译,而且它可以实现快速编码。我认为我可以把它们出售给英国政府,换取大笔资金,不过我很怀疑这样做是否符合道德。您是怎么看的?73

在接下来的一年中,图灵越来越担心英国与德国开战的可能性,所以他变得更加专注于对密码学的研究,也不太关心是否要利用这项技术来赚钱了。1937年年底,他在普林斯顿大学物理系大楼的机械车间制作了一台初步完成的编码机,它可以将文字转换成二进制数字,然后利用机电继电器开关将得出的加密信息乘以一个庞大的秘密数字,生成一段几乎不可能被破解的密码。

图灵在普林斯顿大学期间的其中一位导师是约翰·冯·诺依曼,这是一位来自匈牙利的伟大物理学家和数学家,他当时所在的高等研究院位于大学数学系的大楼之中。1938年春,图灵即将完成自己的博士论文,这时冯·诺依曼打算聘用他为自己的助理。虽然这个职位对于图灵来说很有吸引力,但当时的欧洲正处于战争的威胁之下,所以他觉得继续留在美国似乎是一个不够爱国的决定。于是图灵决定回国继续担任剑桥大学的研究员,随后加入了英国对德军密码的破译工作。

当时的英国政府密码学校是一个位于伦敦的情报部门,这里的工作人员主要是一些文学方面的学者,例如来自剑桥大学的古典学教授迪尔温·诺克斯,以及爱好艺术的社会名流奥利弗·斯特雷奇,他的业余爱好是弹钢琴,偶尔还会写一些关于印度的文章。图灵在1938年秋天进入政府密码学校工作,在此之前,这里的80位职员当中没有一个是数学家。不过随着英国备战工作的展开,这个部门在次年夏天开始积极招募数学家,有一次它甚至利用《每日电讯报》的填字游戏栏目作为招聘工具。在招聘工作完成之后,政府密码学校搬迁到了宁静的红砖小镇布莱切利,这个地方的主要优势是位于牛津大学——剑桥大学和伦敦——伯明翰这两条铁路的交汇处。布莱切利园是一座维多利亚哥特式风格的大型庄园,正当它的所有者准备把它拆除的时候,一支来自英国情报部门的队伍以“雷德利上校的狩猎聚会”(Captain Ridley’s Shooting Party)的名义低调地买下了这座庄园。政府密码学校的密码破译员们就在庄园里的农舍、畜棚和后来建成的活动小屋中工作。74

图灵当时被分配到了布莱切利园的“8号小屋”进行工作,专门负责破译德军的恩尼格玛密码机(Enigma)生成的密码,恩尼格玛机是一台利用机械转子和电路生成密码的便携设备。在加密军事消息的时候,它在每次键入之后都会改变密文字母的生成方式。使用这种方式生成的密码是非常难破解的,英国军方曾经甚至认为他们永远都无法做到这点。波兰的情报人员找到了破解这种密码的一个突破口,他们根据一个德军编码员俘虏提供的信息制作了一台机器,它可以破解恩尼格玛机的部分密码。然而,当波兰人向英国展示这台破译机的时候,它已经失效了,因为德国人又为恩尼格玛机增加了两个转子和两个接线板接口。

图灵和他的团队开始研制一种更为高级的破译机,这种被称为“炸弹机”(the bombe)的机器可以破译经过升级的恩尼格码机加密信息——特别是用于破解德国海军对U型潜艇的部署命令,避免英国的补给船队再次遭到德军潜艇的大肆攻击。炸弹机在破译密码的时候利用了恩尼格玛机在加密过程中出现的一些漏洞,例如经过加密转换的字母肯定会跟原文的字母不一样,还有德军会反复使用某些特定的语句。图灵的团队在1940年8月建造了两台可以正常运行的炸弹机,它们总共破解了178条加密信息。到了“二战”快要结束的时候,他们已经建造了接近200台炸弹机。

图灵设计的炸弹机并非计算机技术的一项显著进步。它只是一种由继电器开关和机械转子组成的机电装置,没有采用任何的真空管和电路。但是在布莱切利园诞生的下一台机器——“巨人”计算机却是一个重要的里程碑。

英国对巨人计算机的需求来源于德国开始对重要的信息进行加密,例如来自希特勒和他的最高统帅部的命令,这些加密信息是通过一种电子数字设备生成的。由于这种设备在加密信息的时候采用了二进制系统和12个大小不一的编码轮,所以由图灵设计的机电炸弹机也对此无能为力。这种高难度的密码需要使用高速的电子电路才有可能破解。

负责巨人项目的团队被分配到了“11号小屋”进行工作,因为这个项目的主管是剑桥大学的数学教授麦克斯·纽曼,所以他的团队也被称为“纽曼军”。纽曼正是在大约10年前向图灵介绍希尔伯特问题的导师。这个项目的总工程师是电子学天才汤米·弗劳尔斯,这位真空管先驱当时正在位于伦敦郊区多利斯山的邮政研究站工作。

虽然图灵不属于纽曼的团队,但他确实向他们提出了一种叫作“图灵法”的统计方法,这种方法可以对在一连串密文当中均匀分布的文字进行筛选,并从中找出任何可疑的地方。纽曼军根据图灵提供的方法做出了一台机器,它可以使用光电传感器扫描两组打孔纸带,然后比对这两组信息中所有可能出现置换的地方。这台机器被命名为“希思·罗宾逊”(Heath Robinson),这是一位英国漫画家的名字,他和美国的鲁布·戈德伯格一样都擅长于绘制极端复杂的机械装置。

弗劳尔斯对于使用真空管(他和其他英国人将其称为“阀门”——valve)制作的电子电路的研究已有接近10年的时间。1934年,时任英国邮政局电话部门工程师的弗劳尔斯制作了一个含有超过3 000个真空管的实验系统,用于控制1 000条电话线之间的连接。他同时也是率先将真空管应用于数据储存的人。图灵曾经邀请弗劳尔斯到布莱切利园协助炸弹机的研发,后来还向纽曼推荐了他。

弗劳尔斯意识到仅仅依靠对比分析两组打孔纸带是无法快速破解德军的加密信息的,唯一可行的方法是将至少一组加密信息流储存在机器内部的电子存储器当中,这项功能将需要使用1 500个真空管才能实现。布莱切利园的主管们起初对这个方案的可行性表示怀疑,但是弗劳尔斯一直在全力推进这个项目。仅仅经过了11个月之后,他在1943年12月制成了第一台巨人计算机。1944年6月1日,一台含有2 400个真空管的改进版巨人计算机也开始投入使用。它成功解密的首批情报对当时正蓄势待发的诺曼底登陆发挥了重大的作用,德怀特·艾森豪威尔上将根据巨人计算机和其他来源的信息了解到希特勒没有在诺曼底部署更多的兵力,从而坚定了发动诺曼底登陆的决心。另外8台巨人计算机在接下来的一年之内陆续制成。

这就意味着远在ENIAC之前(它直到1945年11月才完全投入运作),英国的密码破译员就已经制作出了一台完全电子化和数字化(真正采用二进制)的计算机。在1944年6月制成的改进版巨人计算机甚至可以实现部分的条件分支功能。但是跟含有10倍真空管数量的ENIAC不一样的是,巨人计算机只是一种专门用于破译密码的机器,而不是通用型的计算机。由于它的可编程性有限,所以它也不能像ENIAC那样(在理论上)可以根据指令执行所有类型的计算任务。

《创新者:一群技术狂人和鬼才程序员如何改变世界》