Harvest (IBM 7950):冷战时期NSA的密码分析超级计算机
摘要
Harvest (IBM 7950) 是IBM为NSA制造的冷战超级计算机,以其模块化协处理器和自动化磁带库开创了高速数据处理的密码分析技术。
暂无内容
查看缓存全文
缓存时间: 2026/08/26 09:26
# 秘密冷战超级计算机:专为单一使命而生
来源:https://spectrum.ieee.org/cold-war-codebreaker-nsa-ibm
工作人员在NSA总部安装Harvest(IBM 7950)。两个控制台分别配置Stretch通用大型主机和Harvest流协处理器的设置,后者专为高速分析截获信号、密码和代码而设计。
**冷战最激烈时期**,一台高度专业的计算机因保密级别极高,其存在不为世人所知。它的任务处理速度是当时任何计算机的200倍。这台机器是美国国家安全局(https://www.nsa.gov/)的核心密码处理器,自1962年古巴导弹危机(https://www.nsa.gov/portals/75/documents/news-features/declassified-documents/crypto-almanac-50th/reconsideration_of_the_role_of_sigint_part_1.pdf)时期开始运行,历经越南战争(https://www.nsa.gov/Helpful-Links/NSA-FOIA/Declassification-Transparency-Initiatives/Historical-Releases/Vietnam-Paris-Peace-Talks/)持续运作,直至1975年赫尔辛基协定(https://en.wikipedia.org/wiki/Helsinki_Accords)之后。直到机械部件彻底损耗,这台机器才停止运转。
Harvest(https://fpgacpu.ca/harvest/index.html)计算机的重要性不仅在于其运行时代,更在于其本身的设计。在长达14年的时间里,它作为引擎处理NSA最敏感的截获信息,彼时信号情报(https://www.nsa.gov/Signals-Intelligence/Overview/)的重要性几乎等同于战略武器。
Harvest由IBM(https://spectrum.ieee.org/ibm-history)为NSA(https://spectrum.ieee.org/tag/nsa)设计制造,是首批设计用于处理庞大数据流的计算机之一,是当今实时管理持续视频流(https://docs.aws.amazon.com/solutions/latest/live-streaming-on-aws/architecture-overview.html)和安全系统(https://www.microsoft.com/en-us/security/business/security-101/what-is-siem)计算机的先驱。它也是首批作为附加组件(https://ed-thelen.org/comp-hist/IBM-7030-Planning-McJones.pdf)制造的计算机之一——作为专用辅助设备,旨在极其出色地完成特定任务,安装在通用计算机上。Harvest的模块化设计类似于当今CPU用于运行高强度视频游戏和AI处理负载的图形芯片(https://cacm.acm.org/federal-funding-of-academic-research/the-origins-of-gpu-computing/)的1960年代版本。
强大的原始处理能力意味着Harvest需要不间断的数据流驱动运行。这催生了另一项开创性成就:世界上首个自动磁带库(https://dl.acm.org/doi/10.1145/3708997),能够通过机器人从设备的机架中取用数百个大型盒式磁带(https://spectrum.ieee.org/tag/magnetic-tape)中的任意一个。
鉴于Harvest前所未有的处理与存储能力,系统设计者自然需要重新思考信息处理方式。于是IBM(https://spectrum.ieee.org/tag/ibm)编写了名为Alpha(https://ethw.org/Oral-History:Frances_%22Fran%22_Allen#Working_on_Early_Supers:_%27The_Stretch/Harvest_Project)的定制编程语言,使密码破译员能够严谨描述密码学问题,正如当时科学家使用新兴的Fortran语言(https://softwarepreservation.computerhistory.org/FORTRAN/paper/p25-backus.pdf)描述方程式和数据处理算法(https://spectrum.ieee.org/tag/algorithms)。
马里兰州米德堡的NSA数据中心容纳着当时世界最快的计算机之一——尽管因涉及敏感高密级密码破解与密文搜寻工作而鲜少被提及。——美国国家密码学博物馆
通过解密文件(https://nsarchive.gwu.edu/sites/default/files/documents/3121322/Document-02.pdf)及 contemporaneous 手册与技术概述(https://fpgacpu.ca/harvest/other/60-05-03-00000-0000-The_Harvest_System.pdf)拼凑而成的Harvest故事,为计算机历史(https://spectrum.ieee.org/tag/history-of-computing)提供了全新而意外的视角。同时它也展示了国家安全需求——尤其是冷战时期——如何推动计算机技术突破非密民用计算所能达到的极限。Harvest独特的历史揭示了一种具有前瞻性的算法、编码、内存与硬件架构,其理念有时领先时代数十年。但这台机器也仅被制造过一次,专为单一特定目的而生,并最终悄然退役。
## NSA秘密机器的核心
IBM具有里程碑意义的1960年晶体管化大型主机(https://spectrum.ieee.org/tag/mainframe)IBM 7030(https://en.wikipedia.org/wiki/IBM_7030_Stretch),更广为人知的名称是Stretch,为Harvest(正式名称为IBM 7950)提供了前端。IBM在1961年至1963年间向八九位客户(https://en.wikipedia.org/wiki/IBM_7030_Stretch#Installations)交付了Stretch,主要客户为科学研究实验室。Stretch在1950年代后半期完成设计与原型制造(https://dl.acm.org/doi/pdf/10.1145/1859204.1859216),引入了如今标准的8位字节概念(https://amturing.acm.org/Buchholz_102636426.pdf)。在其运行的前三年(https://gunkies.org/wiki/IBM_7030_Stretch)里,Stretch是非密世界最快的计算机,尽管它未能达到IBM激进的目标——运行速度达到前代机型IBM 704(https://en.wikipedia.org/wiki/IBM_704)的100倍。当IBM工程师在纽约州波基普西设计制造Stretch时,公司也在秘密讨论将为NSA构建的新系统。
当时,NSA现有的密码分析计算机——需要操作员手动调度每次磁带运行的大型批处理机器——难以应对从全球涌入的海量截获通信流量。机构需要的是一台能全天候自动处理持续数据流的机器。仅这一需求就深刻塑造了Harvest的设计。
IBM/NSA Harvest计算机示意图,1962年至1976年间运行。
IBM为NSA密码破解定制的Harvest系统,将IBM 7030 Stretch大型主机与定制数据流处理器配对。Stretch处理常规计算与输入/输出,包括Tractor自动磁带库。两个单元共享两类存储器:大型主存储库和较小的高速存储库。当Stretch切换到流模式时,Harvest从内存提取P和Q两路数据流,进行并行处理,并将结果作为第三路数据流(称为R)返回。——Chris Philpot
在两次向NSA提交失败方案后,IBM终于在1958年赢得合同:基于Stretch的机器,配备定制协处理器及革命性的磁带存储系统——Tractor。
Stretch的特长是用于科学计算的浮点运算。IBM主要为从事核武器设计与气象预测(https://www.youtube.com/watch?v=9AHZnwQ2-3o)等前沿研究的实验室设计了它。相比之下,将安装在Stretch之上的定制协处理器则需帮助NSA分析师筛选字母数字字符——本质上是整数数据。
Harvest的协处理器是通用系统的反面。它实际上是一台流式计算机(https://www.cs.rice.edu/CS/Architecture/docs/spa.pdf)。它不执行长串指令,而是遵循固定的步骤序列,对流经的每一对字符应用相同序列。Harvest与Stretch主处理器(https://mark.people.clemson.edu/stretch.html)共享内存并突发运行。要么Stretch运行,要么它暂停自身,让Harvest的协处理器以极高速度处理内存中的数据。
Stretch和Harvest是首批完全由封装在电路板中的晶体管(https://spectrum.ieee.org/tag/transistors)构建的大型计算机,安装在大型冰箱大小的机柜中。1962年的Stretch技术手册(https://amturing.acm.org/Buchholz_102636426.pdf)将机器的CPU描述为划分成功能区段:指令单元、前瞻单元、(并行与串行)算术单元及内存总线单元。Harvest继承了Stretch的基本电路设计,但增加了一项非常规设计:其流处理单元通过称为流水线的重叠阶段处理数据。因此,当一对数据字节正在比较时,下一对正从内存取出。
Harvest协处理器运行时,从系统内存提取称为P和Q的两路数据流,对它们执行操作,然后将结果作为第三路数据流R写入内存。每路数据流宽度可为1至8位。Harvest的内存是可按位寻址的,这意味着可以完全忽略字边界。例如,它可以只提取5位而无需填满整个字节。数据流P、Q和R包含用于循环和复杂数据模式寻址的灵活配置——例如,允许重复从内存中提取短字符串。
P和Q的数据被送入两个功能单元。较简单的是逻辑单元,执行基本的按位运算——与今天任何程序员熟知的操作相同——并将结果写回内存。更复杂的是查表单元。它将来自P和Q的数据组合形成内存地址,该地址可用于将计数器加一、设置特定位或检索存储的值。后一个单元的功能实际上类似于当时密码编码/解码机器内部的转子轮,这类机器根据密码机的接线,电子化地将一个值替换为另一个。
Harvest的复杂性曾让NSA部分人员感到困惑。据詹姆斯·班福德(https://en.wikipedia.org/wiki/James_Bamford)2001年的NSA历史著作《秘密机构》(https://www.c-span.org/program/book-tv/body-of-secrets-national-security-agency/125593)(Doubleday出版)记载,在员工参观时,官员们会指着这台机器嘲笑:“它很漂亮,但不管用。”
不过,并非所有机构人员都被这台庞大设备吓退。班福德记述的Harvest少数已记录工作案例之一描述了该机器在近4小时内从35亿字符文本中搜索7000个目标术语。
在1972年未解密的言论中,NSA分析师罗伯特·卢尼提及Harvest处理过的一项任务——尽管他未指明最终目标或背后的密码破解工作。这项代号为“莫尔敦”的任务涉及从1100万条跨越16年的截获通信中筛选约8000个搜索词——全部在约十小时内完成。
一位女性在办公桌前的黑白肖像,桌上堆满文件,身穿条纹衬衫。IBM的弗朗西斯·艾伦帮助设计了Harvest的定制编程语言Alpha。——IBM
一位戴着眼镜、留着小胡子、身着商务西装的男性头像。IBM的詹姆斯·H·波默雷内是Harvest的首席工程师,监督了其为众多密码学作业所用算法优化的定制电路设计。——IEEE
一位戴眼镜、穿西装的男子坐在老式大型计算机设备旁。IBM的小弗雷德·布鲁克斯是Harvest硬件系统的关键联合架构师。——计算机历史博物馆(https://spectrum.ieee.org/tag/computer-history-museum)
作为一个统一系统,Harvest——即Stretch加上IBM定制的流处理器附加组件——每0.3微秒流式传输1字节数据,并拥有约800KB可寻址内存。
“在这里你可以看到一个存储组从其冷却油浴中取出。”卢尼在1972年庆祝Harvest运行十周年的讲话中说道。他举起一张Harvest磁芯存储器(https://en.wikipedia.org/wiki/Magnetic-core_memory)组的照片——六个存储组浸没在油中用于冷却。
考虑到从Tractor磁带档案提取各类数据的时间需求,有时单条Harvest“指令”无需任何人工干预即可持续数小时。
“这是一台相当令人惊叹的计算机。”IBM荣誉院士弗朗西斯·艾伦(https://www.ibm.com/history/frances-allen)在2001年的口述历史(https://ethw.org/Oral-History:Frances_%22Fran%22_Allen)中回忆道,“例如,一条指令可执行排序,并对流经的数据进行统计分析……我们当时所做的一切都处于最前沿。毫无疑问。”
艾伦于2006年获得A.M.图灵奖(https://amturing.acm.org/award_winners/allen_1012327.cfm),是参与Stretch和Harvest开发的程序员之一。艾伦指出,当她开始参与Harvest工作时,总部位于马里兰州米德堡的NSA在机密情报圈外几乎不为人知。因此她最初以为自己在参与某个未公开的海军项目。“我们以为自己在为海军船舶局工作,因为那是NSA在预算中的代号!”2020年去世的艾伦回忆道。
其他Harvest关键设计师和早期开发者最终在计算机历史进程中成为颇具影响力的人物。弗雷德里克·布鲁克斯(https://amturing.acm.org/award_winners/brooks_1002187.cfm),1999年图灵奖获得者(https://amturing.acm.org/award_winners/brooks_1002187.cfm),IBM System/360(https://spectrum.ieee.org/building-the-system360-mainframe-nearly-destroyed-ibm)硬件与软件的主要贡献者,也参与了Harvest的开发。而詹姆斯·波默雷内(https://www.computer.org/profiles/james-pomerene)在担任Harvest首席工程师之前,曾与约翰·冯·诺依曼(https://www.ias.edu/von-neumann)共同参与开创性的IAS计算机(https://www.ias.edu/electronic-computer-project)的构建。
## Tractor如何存储海量数据
IBM构建了Tractor磁带系统(IBM 7955 (https://americanhistory.si.edu/collections/object/nmah_761173#:~:text=Description:,frame%20designated%20by%20B%2D1.))以连接搭载Harvest的同一台Stretch机器,因为现有数据存储技术无法跟上这台计算机惊人的吞吐量。Stretch负责处理从库中调度磁带到驱动器的工作——使用Tractor的自动盒带处理器。Stretch还协调从Tractor读取数据和从Harvest写回结果。Harvest则在系统的共享主存上执行所有实际计算。
在1960年代初期,即使在Tractor和Harvest安装之后,硬盘数据存储仍处于初级阶段。对于Harvest处理的规模如此庞大的密码破解任务,磁盘存储在成本和物理空间上都不切实际。因此Tractor必须基于磁带存储构建。
每盘磁带密封在一个类似便携收音机的盒子里——带窗的双盒绕卷轴,配有提手——重6至7公斤,与保龄球相当。可将Tractor盒带视为十十年后出现的卡式录音磁带的放大前身,在一卷550米长的磁带上可存储约120MB数据。每个存储单元最多容纳160个这样的盒带。
一位男子手持特大盒带站在磁带机柜前。IBM技术人员手持Harvest自动Tractor磁带机使用的一个数据盒带。——IBM
1962年Harvest启动时,拥有三套自动盒带单元,每套服务两个驱动器。因此三套Tractor单元的总可用在线存储空间达到惊人的44GB。
相似文章
Holotron-12B - 高吞吐量计算机使用智能体
H 公司发布 Holotron-12B,一款采用混合 SSM 架构、针对高吞吐量推理优化的多模态计算机使用智能体。该模型基于 NVIDIA Nemotron 进行后训练,在交互式智能体工作负载中展现出卓越的效率与可扩展性。
帮助赢得二战胜利的计算机:Colossus破译了德国的加密通信
这篇IEEE Spectrum的文章讲述了Colossus的故事,它是世界上第一台大规模可编程电子数字计算机,由Tommy Flowers在二战期间建造,用于破解德国先进的Lorenz密码,并提到即将在布莱切利公园举行的IEEE里程碑奉献仪式。
IBM MCGA 门阵列逆向工程
该项目对 IBM 用于 PS/2 25 型和 30 型中的 MCGA 门阵列进行逆向工程,揭示了详细的电路图和新功能,例如 genlock 能力和未公开的寄存器。
桑迪亚国家实验室 SA3000 8085 CPU
文章描述了桑迪亚国家实验室在20世纪80年代初开发的SA3000,这是一种抗辐射CMOS版本的Intel 8085 CPU,用于武器和太空任务,如伽利略探测器。
HPSC为何对太空探索至关重要
NASA的高性能太空飞行计算(HPSC)处理器是一款抗辐射、高性能的系统,旨在将航天器的计算能力提升百倍以上,从而在太空任务中实现更高水平的自主性和AI工作负载。