第5章 面对面的办公室(2)
四、Station X.Site Y.
二战的爆发给英国白金汉郡的布莱切利镇带来了一点可喜的新鲜,一万多人连夜从大城市挤火车逃难到这个平庸乏味的小镇,可是不久大部分又挤火车回去了:宁愿被炸弹炸死,也不要在这小地方无聊死。艾伦·图灵却逆着人潮,搬到了这无聊小镇最无聊郊区的一家最最无聊的小旅馆里,每天骑车三英里去镇中心的布莱切利园上一个谁都不知道在瞎搞什么的班,下班回来还自愿给冷冷清清的旅馆酒吧打杂。旅馆老板娘看着这个闲得发慌的小伙直摇头:健健康康的大男人,怎么不去打仗呢?
可是,图灵正在打仗。他的敌人:哑谜。看似死水一潭的布莱切利园,此时已有了军事代号:Station X,保密等级:绝密。这里是英国政府密码学校的驻地,海陆空和军情六处的情报组织各占一隅。几百名工作人员日夜不停地破解德国人的无线电报,为了最大限度保密,大部分职员根本不知道工作的真正目的,除了几个核心解密成员:象棋冠军、填字游戏高手、数学家。27岁的图灵很快在这个核心团队里有了绰号:教授。
此时的欧洲上空,无数来自德军的电波正以摩斯码的形式来回穿梭。这些摩斯码发出前由一种称作“哑谜机”的加密器加密,在接收方又由同样的“哑谜机”解密。直到二战结束,德军从未怀疑过哑谜机的坚不可摧,所有军种所有级别电报,一律用哑谜机加密,加密电报中放心大胆地沟通了所有军事信息:潜艇位置、军队人数、攻击路线、伤亡报告……德军的信心源于哑谜机复杂的加密方法。虽然每个军种对商用的哑谜机都略有改进,不过所有哑谜机基本构造相同:键盘、接线板、多个转子、指示灯。当密码操作员在键盘上按下一个字母(比如字母A),电流会通过一个可自行改接的接线板,启动一个或者多个转子转动,同时点亮某个字母指示灯(比如字母L),于是字母A被加密成字母L。哑谜机精巧的设计使得在下一次按下字母A时,它将被加密成另一个不同的字母(比如字母P)。更巧妙的是,当且仅当发送端和接收端的哑谜机拥有同样的初始设定时(同样的接线板、同样的转子排列、同样的转子初始位置),密码L才可以被接收端的哑谜机还原成A。而对于不知道初始设定的敌方,他们面对的可能情况多达10114种!
雪上加霜的是,德军每个军种所用的哑谜机略有不同,相对于三个转子的陆军哑谜机,海军五转子的哑谜机要复杂得多。在布莱切利园只有两个人相信这层层加密状如天书的密码可以被破解:一个是布莱切利园的老大,因为“海军电报必须被破解”,否则被德军潜艇战封锁的英国将坐以待毙;另一个是“教授”图灵,因为“如果海军电报能破解,那实在太好玩了”。
“教授”发现,在加密文件中找规律的本质是重复搜索,而搜索是一种机器可以代替人脑的工作。当时,布莱切利园从曾经研究过哑谜机的波兰数学家那里继承了一种叫“炸弹”的原始解密仪器,每一个“炸弹”模仿一个哑谜机的转子,许多“炸弹”相连接来模拟一种哑谜机的初始设定生成可能的电报。简而言之,这是一种穷举搜寻答案的算法,需要遍历所有可能排列,费时费力。图灵洞察到,只要运用几个简单的事实——比如,一个字母的密码不可能是其本身;原始文本中一些字母(比如s)的出现频率一定高于另一些字母(比如x);一些固定词语(比如“元首”)将高频出现——就能大大改进波兰人的笨法子,来快速寻找最有可能的转子设定。用现在的算法语言来说,他将“穷举法”改良成了“贪心算法”。“贪心算法”改进后的“炸弹”对抗五转子的海军哑谜机大获成功。每次一方发出电报后,德军的接收方过几分钟将发一封短电报表示“收讫”。许多回,电波中还未监测到“收讫”电报,图灵的“炸弹”机已经将密码还原成了原文,可见“炸弹”的解密速度常常比预知原始设定的德军都快!布莱切利园的研究人员自豪地说,德国人真该问“教授”他们的电报到底讲了什么。
可是,随着战争深入,转子更多的哑谜机不断投入运用,最后竟出现了十二转子的密码机。面对十二转子,即使图灵改进过的“炸弹”都需要十几天时间才能解密。战场瞬息万变,布莱切利园急需更快速的机器。很显然,提高速度的关键在于把机械构造的“炸弹”机改成更快速的电路装置。1943年,在图灵的鼓励下,布莱切利园工程师弗拉沃斯(Tommy Flowers)设计了一台叫作Colossus的巨型机器,在战时充裕的经费支持下,Colossus实体机很快获准建造。
这就是世界上第一台计算机,电子化、数字化、程序化。它利用光学在长条纸带上读取电报原文,经过一千五百个真空管的电路计算,将解密结果输出到电传打字机上。1944年6月1日,经过完善的Colossus二号机抵达布莱切利园。离诺曼底登陆只有五天。
诺曼底登陆,这个在欧洲开辟第二战场的唯一方法,无疑是一场豪赌。盟军三百万主力兵力要从海上和空中登陆易守难攻的诺曼底,很可能伤亡惨重。为了保存兵力,盟军的情报网精心编造了一则假情报故意透露给敌方,希望德军以为在诺曼底将有一次只是“小规模”的军事转移。而德军能不能上当则唯有通过由Colossus解密的德军电报检验。幸亏有快速的电子计算机,解密很顺利,德军的电报显示只有一小支部队被派往诺曼底。更幸运的是,电报还详细说明了军事安排、物资转移、军种调遣,德军手中的牌一览无余。
6月6日凌晨3点,Colossus破解了一条德军自诺曼底刚发出的绝望的电报。“天啊,天上怎么来了那么多伞兵?”随着这些伞兵安然降落,二战的转折点到来了。
大西洋的另一边,1943年秋。
威斯康星大学麦迪逊分校数学教授乌拉姆的办公室里闯进了一个女学生。学期只过了一半,她却要求提前完成期末考试,以便“为战争服务”。她坐在办公室的地板上,答完了教授在信封背面临时写下的几道题,然后消失,谁都不知道去哪儿了。
这几天,乌拉姆身边有许多朋友消失了。在食堂打照面的同事、物理教授、自己带的研究生,他们打了个“为战争服务”的假条,就神秘莫测地走了。乌拉姆心里痒痒,写信给自己朋友中人脉最广的冯·诺伊曼,询问是否有能为战争服务的工作。他回信了,说自己忙得很,不如某月某日在芝加哥火车站见面——他在那里正好有两个小时的转车时间。乌拉姆在站台见到了风风火火的冯·诺伊曼,以及——他身后的两位保镖,这才意识到他朋友正在忙活的事对大战意义重大。冯·诺伊曼神秘地表示:有一件很重要的项目也许能让乌拉姆帮忙,不过他还不能说是什么事,在哪里,有谁。
几周后,乌拉姆收到了一封政府委派信,要求他去新墨西哥州的一个小镇。他从来没听说过这个荒僻之地,就去图书馆借新墨西哥州地图册。于是他惊喜地发现,在地图册的借书卡上,整齐地排列着之前消失的所有熟人的名字。他们都消失到了这个前所未闻之地。
火车在一个荒凉的车站停下,黄沙遍野,峭壁陡崖,像时间尽头一样死寂。这里就是Site Y,刚刚起步的研究项目叫Project Y,保密等级:绝密。战争结束后,前者将被称为洛斯阿拉莫斯国家实验,后者便是鼎鼎大名的曼哈顿计划。在这片萧索瑰丽的沙漠中,聚集了一群活力旺盛的年轻人,平均年龄二十五岁。他们是那么青春,喜欢派对交际,第一年就添了八十多个小宝宝,不断造新宿舍都满足不了这个蓬勃的小定居点。他们的领袖奥本海默三十八岁,他们的信使冯·诺伊曼三十九岁。他们的任务:制造摧毁一切活力和生命的超级武器——原子弹。
四年前,爱因斯坦和西拉德上书美国总统罗斯福:物理学的推进已经使得通过核裂变获得巨大能量指日可待,只要德国人愿意,他们有知识和能力发明这种武器,美国必须赶在纳粹德国之前掌握核技术。随着美国正式参战,核技术的研究越来越紧迫。一个名字被提出来:罗伯特·奥本海默,聪明果敢,当机立断。另一个名字被提出来:约翰·冯·诺伊曼,因为他已经坐镇另外十几个军事项目,正好能眼观六路,耳听八方。
冯·诺伊曼教授是军方最喜爱的合作人。犹太人的身份让他对纳粹嫉恶如仇,为了替关在集中营的朋友报仇,他渴望和手段强硬的人合作,醉心于各种新式武器。作为数学家,他认为只有当数学有应用价值时,数学才能以最快的速度发展。少时在父亲逼迫之下学习的化学工程意外地派上了用场,他很容易明白物理学家和化学家的讨论,再用数学的语言解释给数学家听。他最擅长把一项看似庞大无解的任务庖丁解牛,分拆成小零件委派他人,让底下每个人觉得自己拿到的那部分恰好是最擅长的本职。他是天生的领袖和传令官,坐镇导弹研究实验室、美国数学学会战争委员会、国家防御研究委员会……不像大多数为了保密而被强制定居在洛斯阿拉莫斯的科研者,他进出自由。日理万机的冯·诺伊曼教授哟,他穿梭在普林斯顿、波士顿、费城、华盛顿、芝加哥、洛斯阿拉莫斯实验室、阿伯丁兵器试验中心……全美的战时科研进展他一清二楚,人家刚跟他讲了两句,他就能接上来,“某某在芝加哥也做这事”,“哈佛的某某已经搞出来了”。
曼哈顿计划最大的困难不是制造出核裂变反应,而是控制原子弹的威力。爆炸的冲击波将反复震荡叠加,最终的力量难以预测。曼哈顿计划的高度机密性和核试验的昂贵成本使得大规模试验不可能经常进行,而人力又难以计算如此多的非线性方程。如何提高计算能力成了当务之急。
事实上,计算能力这个瓶颈也困扰着其他军方科研项目。于是,1943年,当听说宾夕法尼亚大学的一群工程师为了计算导弹轨道(另一种典型的非线性方程)而开始建造一台名为ENIAC的巨型机器时,冯·诺伊曼立即敏锐地想到:也可以用这台机器去计算原子弹冲击波的能量。在他的牵头下,ENIAC建完后第一项测试任务居然不是导弹轨道而成了核弹方程,整个测试将原本几个月的人力计算缩短到了几天。完成测试后他脸色苍白地回到普林斯顿家里倒头睡了十个小时,醒来后不吃不喝,久久才向妻子吐出一句话:“我们造了一头怪兽。”怪兽,他指的不是核弹,而是计算机。
看到了ENIAC的广阔前景后,冯·诺伊曼毛遂自荐要做ENIAC的数学顾问,让发明者埃克特(Presper Eckert)和莫持利(John Mauchly)受宠若惊。他们亲自领冯·诺伊曼参观机器,在一间两百平方米的大房间里,两个工程师指给他看:这里是一万八千根真空管、这里是电源、这里是读卡器、这里是维修站……可是,人家的设计冯·诺伊曼却看得比设计者还清楚,他一回去就写了份百余页的报告:“一台计算机的基础组成是:存储器、控制器、运算器、输入输出设备。”至今,世界上的大部分电脑仍在沿用这著名的“冯·诺伊曼结构”。当同事们纷纷以“计算机之父”赞扬冯·诺伊曼时,平素并不谦虚的他却不断向大家推荐图灵1936年的论文,他老老实实地说,“计算机的基础概念要归功于图灵。”
1945年5月,德国投降,证据显示德国当时的科研进展还未能制造出原子弹。7月,洛斯阿拉莫斯第一颗原子弹试射成功。8月,在新上任的杜鲁门总统的授意下,两颗本为抵御德国人的原子弹投向日本广岛和长崎,造成二十余万人死亡。8月15日,日本投降。第二次世界大战结束。
五、MANIAC在二战的巨大压力下,英美两国独立制造出了最原始的计算机,Colossus和ENIAC。它们惊人地相似:都利用打孔卡输入,都运用真空管计算,都体积庞大,都对二战胜利功勋卓著。二战史学家普遍认为,布莱切利园的工作使欧洲战场的战事缩短了一年半到两年的时间,并直接切断了“沙漠之狐”隆美尔将军在北非的补给线;而曼哈顿计划则终结了太平洋战场。现在,在这个戏剧性的擂台上,两个核心人物图灵和冯·诺伊曼都决心改进这两台原始机器相似的缺陷:只为专门目的设计,不能储存程序。改进的方向很明显,一如图灵在1936年的论文中所预言的那样,造一台能完成任何目的的图灵通用机。
二战结束了,冷战的阴影旋即逼近。核威慑成了一扇关不上的门,在间隔重重的美苏关系中,美国很快发现要求自保只能继续扩大核优势。氢弹的研究成了攻坚关键,而如何提高计算能力又成了重中之重。要造一台好机器!冯·诺伊曼教授对此深信不疑。