![]()
2007年11月,英国布莱切利园内(布莱切利园是一座位于英格兰米尔顿凯恩斯布莱切利镇内的宅第。在第二次世界大战期间,这里曾经是英国政府进行密码解读的主要战场)的一个房间里,一条打孔纸带在读带机前飞快掠过。纸带旁边,是一台占满整面墙的Colossus重建机[1],约2500个电子管在机架上亮着。
![]()
▲庞大机器的另一边,德国程序员约阿希姆·舒特也在处理同一类洛伦兹密文。他用的是一台个人电脑和自己编写的程序。
Colossus用了三个半小时,舒特只用了四十六秒。
布莱切利园内的国家计算博物馆后来把结果称为“一次令人愉快的讽刺”:战争年代,英国人建造Colossus读取德国最高统帅部的秘密;六十多年后,一名德国程序员用个人电脑抢先解出了同一场挑战中的洛伦兹密文。舒特赢得太快,反而让那面墙显得更有分量。当年必须为这项工作专门造一台机器,如今它已经能在个人电脑上完成。
重发的电报
故事要从66年前说起。
1941年8月底,德军最高统帅部两个部门之间发送了一封很长的电报。接收端没有收全,请求再发一次。按规定,发报员应该更换密钥设置,他却沿用了原来的设置,还顺手把第二遍电文中的一些词改成了缩写。
这两个错误碰到一起,给英国密码分析人员留下了一道裂缝。同一串密钥被用于两份略有差异的明文,只要比较两份密文,原本相互遮蔽的信息就可能露出来。约翰·蒂尔特曼用纸和笔算了十天,恢复出了大段内容和密钥流。
可英国人仍然没有见过制造这些密文的机器。
![]()
▲恩尼格玛(Enigma)和洛伦兹(Lorenz)是第二次世界大战期间纳粹德国使用的两种核心密码加密系统,图为一台恩尼格玛机。布莱切利园没有照片、图纸或缴获的样机,只有截获的乱码和蒂尔特曼从两次发报中剥出的线索。比尔·塔特接手后,把密文、明文和密钥流摊在纸上,追踪字符之间反复出现的偏差。
这有点像隔着一堵墙听钟表走动:你看不见里面的零件,却要从滴答声猜出有多少齿轮、各自多长、什么时候转动。塔特最后在纸上重建出了十二个轮子的逻辑结构。战争后期,盟军见到真正的洛伦兹机,实物与他的推导所差无几[2]。
纸上的机器已经有了,剩下的问题是速度。每批截获电文都要检验大量可能的轮位,通信越多,纸笔越跟不上。英国数学家马克斯·纽曼先设计了机电装置“希思·罗宾逊”,让两条纸带同步运行。它确实能工作,但纸带稍有不同步,结果就会漂掉。
![]()
▲曾在布莱切利园工作过的“众生相”
电子管接过纸笔
1943年,英国邮政总局工程师汤米·弗劳斯提出,把容易失步的机械环节尽量拿掉,改用约1500个电子管承担主要逻辑。但电子管是出了名地娇气,一台机器里放进上千个,似乎随时会被故障拖垮。好在弗劳斯维护过电话交换系统,知道电子管最怕频繁开关;只要持续通电,避免反复冷热变化,它们比传闻中可靠。
1944年2月,第一台Colossus投入运行。高速纸带把密文送进机器,电传打字机输出统计结果。Colossus不懂德语,也不会自己发明破译方法。它做的是把塔特、纽曼等人设计的检验高速重复,把大片错误答案先排除掉。
战争期间共建成十台Colossus,约550人与它们一起工作,处理了6300万字符的德军高级通信。截获信号、打孔、校带、运行检验、分析输出,每一步都有人接手。电子计算大幅缩短了搜索时间,却没有取消判断,机器筛出的候选仍要放回语言和军事行动的上下文里核对。
从今天的标准看,Colossus是一台专用机,也没有用我们熟悉的方式存储程序。布莱切利园内的国家计算博物馆称它为“世界第一台电子计算机”,同时也说明它的可编程能力按现代标准十分有限。相比争论它在计算机历史上排第几位,弗劳斯完成的工程更值得注意:他把一套原本来不及手算的检验,做成了一台能在战争中连续工作的电子机器。
![]()
▲Colossus的前身Bombe
重建Colossus
战争结束后,Colossus没有走进大学或公司。机器被拆毁,大部分官方图纸也被销毁,参与者受《官方保密法案》约束,不能公开谈论这段经历。有关材料直到1975年才开始解密,弗劳斯等人的工作也晚了几十年才被公众知道。
![]()
▲布莱切利园的主楼,这里是情报局最早开始破译密码工作的地方
1993年,工程师托尼·塞尔决定重建Colossus。他手里的材料少得可怜:八张照片、十张被工程师私留下来的电路图,还有弗劳斯本人的记忆。照片能告诉他机架长什么样,残存图纸却覆盖不了全部线路。许多细节只能从当事人的回忆和设备留下的痕迹中倒推。
从1993年起,塞尔和志愿者一边查证资料,一边重新接线、安装电子管,让重建机逐步恢复运行,并在十四年后完成全部重建。机器被放回当年九号Colossus所在的位置。塞尔2011年去世,享年80岁;生命最后几年,他仍常常待在机器旁。
2007年参加挑战、用三个半小时读出洛伦兹密文的,正是这台被塞尔和志愿者带回来的Colossus。
![]()
1940年代的人们必须先看穿机器的结构,再把纸上的检验变成可靠的电路。六十多年后,舒特的四十六秒里,有更快的芯片、更大的存储和几十年后才会出现的编程工具,也有他为洛伦兹密码重新写下的程序。两者相隔的不只是机器速度,还有六十多年积累下来的方法。
今天,一块芯片已经把Colossus远远甩在身后。但当成千上万块芯片同时挤进数据中心,计算又开始受制于另一批很具体的东西:内存、封装、冷却和电力。
注释:
[1] Colossus是英国邮政总局工程师汤米·弗劳斯及其团队为布莱切利园密码分析工作研制的电子计算系统,用于辅助分析洛伦兹密文。
[2] 德军使用的是洛伦兹SZ40及后续的SZ42系列,英国人给这套通信系统起了一个代号:“金枪鱼”。机器内部有十二个轮子;将十二个轮子的起始位置数量相乘,组合约为1.6×10¹⁹种。它连接电传打字系统,把字符变成电脉冲,再与轮子产生的密钥流混合。接收端使用相同设置,就能把文字还原。
后续故事,请听明日分解。
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.