1941年夏天,英国无线电监听员在德军频率中听到一种“奇怪的新音乐”——不是熟悉的摩斯密码滴答声,而是一种高速二进制电传码的节奏性颤音。这标志着德国工程师发明了一种远超Enigma的全新加密系统。为了破解它,工程师Tommy Flowers建造了Colossus,世界上第一台大规模可编程电子数字计算机。这台重约一吨、占满整个房间的机器,后来被IEEE评为里程碑。但它的故事远不止于此:它不仅是密码破译的利器,更在计算机架构上开创了多个先河。

从“奇怪的音乐”到Tunny密码机

德国使用的这种新加密机器由柏林工程公司C. Lorenz制造,英国代号“Tunny”(金枪鱼)。与Enigma(恩尼格玛,二战德军常用的转子密码机)不同,Tunny有12个旋转轮,每个轮周围有可调引脚,引脚位置决定加密时贡献1还是0。这种设计使得密钥空间巨大,且操作员会定期重置引脚设置。英国密码破译人员面临巨大挑战:不知道机器工作原理,也没有密钥。

幸运的是,Bletchley Park的研究主管John Tiltman截获了两条几乎相同的消息——第二条是第一条的重发,仅标点和缩写略有差异。他利用猜测和直觉,成功破译了这两条密文,得到了约1200对明文-密文对应关系。这成为破解Tunny的关键突破口。

随后,年轻的密码破译员Bill Tutte花了数周分析这些对应关系,准确推断出Tunny机器的内部结构——包括12个轮子的齿数、引脚排列方式等。他的描述后来被证实几乎完全正确。

图灵的“差分法”与Tutte的统计革命

知道机器结构还不够,还需要知道每次通信时发送方轮子的具体设置(引脚位置和起始位置)。Alan Turing(艾伦·图灵,英国数学家,Enigma破解的核心人物)发明了一种巧妙的方法,称为“Turingery”(图灵方法)。其核心是“delta-ing”(差分法),即对二进制序列进行相邻位异或运算(例如对ABCD做delta得到A⊕B、B⊕C、C⊕D)。通过比较密文的差分结果,可以推断出轮子引脚的信息,而不需要知道起始位置。

Turingery依赖德国操作员犯错——重复使用相同的轮子设置来加密不同消息。随着德军安全措施加强,这种错误越来越少,Turingery逐渐失效。同时,每条消息开头的12个名字列表(用于告知接收方轮子起始位置)也突然消失,手工破译陷入困境。

此时,Bill Tutte再次出手。他发明了一种基于统计的新方法:利用Tunny机器本身的统计特性,直接从密文中推断轮子信息,无需任何额外线索。但这个方法需要海量的二进制计数和比较,手工计算一条消息可能需要数月。

Colossus:用真空管加速计算

为了将Tutte的统计方法付诸实践,最初计划建造一台基于电磁继电器的机器,辅以少量真空管加速计数。但继电器逻辑单元存在电路设计问题。Tommy Flowers(汤米·弗劳尔斯,英国邮政局研究站的工程师)被图灵推荐来解决问题。Flowers此前已经设计过包含数千真空管的实验交换设备,他深知真空管的特性:频繁开关会导致灯丝损坏,但持续通电反而比继电器更可靠。

Flowers提出建造一台全电子化的机器,包含约2000个真空管。Bletchley Park的顾问们认为这不可能可靠工作,但Flowers自信地回到伦敦实验室,与一小队工程师日夜奋战10个月,秘密建造了Colossus。

1944年1月,Colossus被装在一辆卡车上运到Bletchley Park,约两周后组装完成。1944年2月5日,它成功破译了第一条德国消息。Colossus从打孔纸带(一种存储数据的纸带,通过孔洞表示二进制位)光电读取密文,输出轮子信息到一台改装打字机(通过继电器自动按键)。密码破译员们震惊了:“他们直到真正看到机器才明白我提议的是什么,”Flowers后来回忆。

Colossus II在1944年6月D-Day前建成,拥有2400个真空管,处理速度达到每秒25000字符——这个时钟频率甚至接近30年后Intel 4004微处理器的性能。Flowers在Colossus中实现了时钟脉冲(同步电路的基本节拍)、位流生成器(产生二进制序列)、控制电路(实现条件跳转和循环)、计数器、移位寄存器(存储和移动二进制数据)、中断(暂停当前任务处理紧急事件)、并行处理等现代计算机的核心概念。

战争中的“超级计算机”与遗产

Colossus每天24小时运行,到战争结束时共有10台, housed in two bombproof buildings。它们为盟军提供了德军高层指挥通信的实时情报,包括希特勒本人签署的命令。据估计,如果Colossus将战争缩短哪怕6个月,拯救的生命就数以百万计。

战后,英国当局决定保持绝对机密,除两台外所有Colossus被拆解,工程师们被告知如果保密解除,他们可以告诉孙辈“那些在银色轮子上旋转的纸带”。直到1970年代,Colossus的故事才逐渐公开。

对于今天的开发者,Colossus的故事有多重启示:第一,当算法遇到计算瓶颈时,专用硬件加速可以带来数量级提升——Tutte的统计方法如果手工计算需要数月,Colossus将其缩短到小时级。第二,可靠性不是绝对的,通过工程手段(如持续通电)可以克服组件的固有缺陷。第三,敢于挑战主流观点:当时所有人都认为真空管大规模使用不可靠,Flowers用实验证明了自己。第四,Colossus的架构设计——时钟、控制电路、中断、并行——至今仍是计算机体系结构的基础。

Colossus不仅是一台密码破译机,更是现代计算机的鼻祖。它用2000个真空管证明了:只要设计得当,电子计算机可以可靠地完成海量计算。当我们今天使用GPU集群训练大模型、用FPGA加速网络处理时,Colossus的精神依然在延续。

阅读原文 → 返回 AI 技术文档

内容与图片版权归原作者所有 · 原文: https://spectrum.ieee.org/colossus-computer-ieee-milestone