88 根琴键决定了无线电:1942 年那份被军方退回来的专利

1942 年 8 月 11 日,美国专利局发出一份编号 2,292,387 的专利证书,标题是「Secret Communication System」。

发明人栏里写着两个名字:Hedy Kiesler Markey,和 George Antheil。

第一个名字你大概认识——她后来改名叫海蒂·拉玛,好莱坞最漂亮的女人之一。

第二个名字稍微冷一些:先锋派作曲家,《机械芭蕾》的作者,史上第一个在作品里用飞机螺旋桨的严肃作曲家。

这份专利要做的事是这样的:让一台无线电发射机和一个鱼雷上的接收机,按照一卷打孔的钢琴纸带的指引,在一堆频率之间来回跳。敌人想干扰,得先猜中你现在在哪个频率;敌人想截获,得先破译那卷纸带上孔的排法。

当时正值二战。鱼雷是二战后期最重要的武器之一,而无线电制导鱼雷是各国都在啃的硬骨头。

海蒂·拉玛是在一个派对上遇到安塞尔的。两人聊起无线电制导鱼雷,拉玛说:跳频不就行了?安塞尔提供了那卷纸带怎么同步的答案——他刚在《机械芭蕾》里干过类似的事。

1940 年代的无线电实验室:真空管发射机、纸带机构、暖色钨丝光

1940 年 12 月,他们把方案递交给了国家发明家委员会(National Inventors Council)。委员会问的第一件事不是技术,是:你为什么不直接去卖战争债券?

专利照交。1941 年 6 月 10 日申请,1942 年 8 月 11 日授权。然后海军把它退回来了。

理由很干脆:太大了,塞不进鱼雷。

这个理由在后来的半个世纪里被反复引用,但很少有人真的去查专利书原文。而原文里写的东西,比这个理由有意思得多。

# 一、先把专利书读完

专利的图示实施例里,发射站有一个载波振荡器,外加一排可以切换的调谐电容——不是 88 台电台,是 1 台电台配 7 个电容。

打孔纸带有 8 行,编号 A 到 H:

发射端调谐电容        7 个   ← 行 A~G 控制
接收端调谐电容        4 个   ← 行 D~G 能收
假信道                3 个   ← 行 A/B/C,接收端根本收不到
指示灯                1 路   ← 行 H

专利原文说得很直白:信道 A、B、C 用来 "permit the sending of false impulses to confuse the enemy"——发假指令,骗敌人。

而这个指示灯也很贴心:发射端一旦停在假信道上,灯就亮,提醒操作员"这一下是白发的"。

这是一个用三分之二吞吐量换取敌方困惑度的设计。 在 1942 年,这大概是相当激进的想法。

按键只有两个:左(L)和右(R)。按下 L,载波被 100 周的音调制;按下 R,500 周。接收端用滤波器把这两个音分开,然后驱动左右舵机。每一个收到的脉冲,只让鱼雷转一个增量——专利里特意强调:"one increment only in response to each separate impulse irrespective of the length of the impulse",防止一个长脉冲被算成好几个命令。

打孔纸带通过黄铜控制头:吸力活塞、弹簧、供纸盘与收纸盘

那 88 是哪来的?

专利原文说,一张"such a record would permit the use of 88 different carrier frequencies"——因为标准钢琴有 88 个键,自动钢琴的纸带就有 88 行。

所以这个数字从头到尾不是无线电工程算出来的。它是安塞尔从《机械芭蕾》那儿搬过来的副产品——那部作品要 16 台自动钢琴同步演奏。

而这 88 在专利书里只是个理论上限。真正画出来的实施例是 7 个信道。这个差别很要紧,我后面会用到。

# 二、同步:一个被低估的难题

专利里最要命的一句,是这句:

The two records may be synchronized by driving them with accurately calibrated constant-speed spring motors.

两卷纸带,一卷在母舰,一卷在鱼雷里(或者观察机里),靠两只发条马达匀速拉动。两卷纸带的孔必须严格对位——错开一个孔,接收端就在错误的频率上,命令全丢。

这里有个我一开始没算到的矛盾:跳频越快,抗干扰越好;但跳频越快,同步越难。

设两只马达各有速率误差 ε(相对值),纸带以 f 跳/秒 前进。经过 t 秒,两卷纸带错开 ε · f · t 个孔位。接收端必须落在正确信道上,容差取半个孔:

漂移预算  T_max = 0.5 / (ε · f)

代进去:

马达速率误差     f = 1 跳/s    f = 10 跳/s    f = 100 跳/s
------------  ----------    -----------    -----------
ε = 1e-2           50 s          5 s             1 s
ε = 1e-3          500 s         50 s             5 s
ε = 1e-4          1.4 h          500 s           50 s
ε = 1e-5         13.9 h         1.4 h           500 s

(ε 的取值是我设的:1e-2 是"两只普通发条马达 + 温差",1e-4 已经接近石英钟的量级,1942 年的机械件做不到。)

相邻两列差 10 倍——跳频快 10 倍,同步窗口就短 10 倍。这两件事在 1942 年是一对互相掐着脖子的矛盾。

而专利给出的解法是:"periodically correct the position of the record at the receiving station by transmitting synchronous impulses"——每隔一阵发一个同步脉冲,接收端据此把纸带位置拉回去。

这很聪明,因为同步脉冲的残余滑移是 ε · K(K 是同步间隔),跟跳频速率无关:

马达误差     同步间隔     两次同步间的残余滑移    同步脉冲占用信道比例
----------  ----------  -------------------  --------------------
ε = 1e-2     50 跳          0.500 孔              2.00 %
ε = 1e-2    200 跳          2.000 孔              0.50 %
ε = 1e-3     50 跳          0.050 孔              2.00 %
ε = 1e-3    200 跳          0.200 孔              0.50 %
ε = 1e-3   1000 跳          1.000 孔              0.10 %

同步脉冲占掉 0.1% 到 2% 的信道,换来的是把漂移压回可控范围。这是一个用带宽换相位的闭环。

# 三、16 架钢琴:一个失败作品的算术

现在回到《机械芭蕾》。

安塞尔这部作品要 16 台自动钢琴同步演奏,外加两台三角钢琴、四个大鼓、七口火警铃、警笛、木琴、钟,以及三个飞机螺旋桨。

1924 年在巴黎首演,现场发生骚乱——据说有观众朝台上扔东西。1927 年在卡内基音乐厅演出,彻底失败,被迫改写成"一台自动钢琴加几个真人钢琴家"。

技术原因被记作一句话:16 卷纸带无法同时控制。

现在用同一套模型算一算。16 台各自的发条马达,速率误差独立,标准差 σ。纸带以 f 孔/秒 前进。

16 台自动钢琴堆在舞台上的超现实场景

纸带速度     单台累计滑移    两台之间 RMS 滑移    错开 1 个音所需时间
---------  ------------  -----------------  -------------------
2 孔/秒        1.8 孔           2.5 孔            5.9 min
8 孔/秒        7.2 孔          10.2 孔            1.5 min
20 孔/秒       18.0 孔          25.5 孔             35 s

(σ = 1e-3 是我设的。)

整首曲子约 15 分钟。在 8 孔/秒下,最慢和最快的那台钢琴,结尾时已经差出十几个音。

于是这里出现了一个特别值得琢磨的对照:

音乐会 无线电
机制 16 卷纸带 + 16 只发条马达 2 卷纸带 + 2 只发条马达
需要同步吗 需要 需要
有反馈通道吗 没有 有(同步脉冲)
结果 演砸 能用

同一个机制,一个有反馈通道,一个没有,结局差得这么远。

音乐会的钢琴之间隔着一段空气,没有任何东西能告诉"第 3 台,你快了 8 个孔"。无线电的接收端却能通过导线收到一个脉冲,把自己拽回去。

所以安塞尔在 1941 年做的事,不只是把《机械芭蕾》的技术搬到了电台里——他顺手补上了那部作品当年缺的东西:一个纠偏回路。

当然,1942 年的方案也没有真的解决同步问题。它只是把问题从"做不到"变成了"工程上很难"。1957 年,西屋(Sylvania)的工程师做了一个全电子晶体管版本;1962 年古巴导弹危机期间,美国海军舰船开始用改型后的系统做保密通信——那时候专利已经过期三年了。

# 四、抗干扰的三笔账

跳频到底抗不抗干扰?分三种情况算。

# 账一:敌方用固定频率的窄带干扰机

敌方不知道你在哪,只堵死一个信道。

系统                  信道数    被干扰掉的占比      仍然可用
------------------  ------  ----------------  --------------
1942 专利 · 纸带上限       88        1.14 %           98.86 %
1942 专利 · 图示实施例      7       14.29 %           85.71 %
蓝牙 BR/EDR (1999)       79        1.27 %           98.73 %
802.11 FHSS (1997)       79        1.27 %           98.73 %

跳频对"不知道你在哪"的干扰非常有效。

但注意第二行:图示实施例只有 7 个信道,比 88 排纸带的方案差 12.6 倍。 88 这个数虽然只是上限,但它确实是这个方案里最好的部分——而画在纸上的那版,把这个优势扔了。

# 账二:敌方是"跟频干扰机"

侦测到你,跟着调谐,再开火。这就是所谓的 follower jamming。

系统                  驻留时间      跟频所需窗口        1942 年敌方         当代敌方
------------------  -----------  --------------  -------------------  -----------------
蓝牙 BR/EDR (1999)   625 µs        < 625 µs         机械 (0.5 s):跟不上   SDR (1 µs):跟得上
802.11 FHSS (1997)   400 ms        < 400 ms         机械 (0.5 s):跟不上   SDR (1 µs):跟得上

(敌方重调谐时间是我设的:1942 年要转动旋钮、锁定信号、重新调谐;当代 SDR 换信道是一微秒级。)

结论:跳频赢在"敌人反应慢"。

1942 年敌方要人转旋钮,慢得离谱,所以哪怕 1 跳/秒的纸带都绰绰有余——鱼雷跑一趟要十几分钟,敌人手动跟频根本来不及。

但今天不一样了。SDR 跟频只要一微秒,蓝牙 625 微秒的驻留时间它跟得上。

这才是 FHSS 在 1999 年被 802.11b 抛弃的真正原因之一。 802.11-1997 的 FHSS 最高只有 2 Mbps——它同时输给了速率和抗干扰能力两项。

# 账三:敌方不玩躲猫猫,直接铺满整个频段

阻塞式干扰(barrage jamming):不管你在哪,整段频带全是噪声。

系统                  抗干扰手段    被阻塞掉的比例
------------------  ----------  ------------------
1942 专利 · 纸带上限      跳频         100 %
1942 专利 · 图示实施例     跳频         100 %
蓝牙 BR/EDR (1999)      跳频         100 %
802.11 FHSS (1997)      跳频         100 %

跳频对宽带阻塞式干扰完全无效。这是它的天花板。

所以 802.11b 转向 DSSS(直接序列扩频):不跑,用 11 位 Barker 码做相关解扩,把窄带干扰的能量摊薄到整个带宽里。

处理增益 = 10 · log10(11) = 10.41 dB

10.4 dB 听起来不多,但这是"不依赖频率 agility、不需要跟踪、不怕跟频"的 10.4 dB。DSSS 不需要跑,所以没有序列可跟。

频谱瀑布图上跳动的跳频信号

有意思的是,蓝牙至今还用 FHSS,因为它面对的主要敌人不是恶意干扰机,而是 2.4 GHz 频段里一堆素不相识的邻居。跳到别处去,比硬扛邻居要省事。

# 五、被丢掉的那一半

现在回到最值得琢磨的地方。

海蒂·拉玛和安塞尔在 1942 年做的,其实是一个同时解决两个问题的系统:

  1. 抗干扰——频率不停变,敌人抓不住
  2. 防截获——敌人不但抓不住频率,就算截到了信号也看不懂

第 2 点靠什么?靠那卷纸带。纸带上的孔位排法就是密钥,敌人不知道排法,就分不清哪个频率上有真指令、哪个是假指令。

所以纸带本身就是密钥。 这是 1941 年的密钥分发方案:

密钥的物理形态      两卷打孔纸带(必须完全一致)
分发方式          实物:母舰一卷、鱼雷一卷
同步方式          发射时导线断开,两只电磁铁同时释放起始孔
密钥长度          纸带长度(孔位数)
需要人工参与       裁纸、穿孔、装带、逐一核对

发射时的那一下很巧妙:母舰和鱼雷里的两只电磁铁串在同一条导线上,发射瞬间导线断开,两只电磁铁同时失电,两卷纸带的起始孔同时被释放——所以它们从第一孔起就严格同相。

这套流程有多重?鱼雷跑一趟要十几分钟,10 跳/秒的话需要 9600 个孔。按 3 毫米的孔距,纸带长 28.8 米。50 跳/秒的话是 144 米。

"Too bulky to fit into a torpedo" 这句话的真实含义,大概不是电台太大,而是整套密钥分发流程太大。 不是发射机装不进去,是没法在战备状态下裁出两卷一模一样的 29 米纸带、装进两台机器、还得保证它们一个孔都不差。

然后是那个残酷的对照:

系统        密钥分发
--------  ------------------------------
现代蓝牙      跳频序列由主设备时钟 + BD_ADDR 推出,两样都不保密
现代 Wi-Fi   密钥由四次握手协商,全程无线完成
差距        从"裁两卷纸"到"发四个包"

现代跳频继承了第 1 样,丢掉了第 2 样。

蓝牙的跳频序列是从主设备的时钟和地址算出来的,地址是公开广播的,时钟也能被观察到。所以现代 FHSS 的"频谱不可预测"是假的——它防的是干扰,不是窃听。

保密这件事,被完整地交给了上层:蓝牙用 AES-CCM,Wi-Fi 用 AES 加密的四次握手。现代密码学用数学替代了纸带。 1976 年 Diffie-Hellman 之后,"怎么让两个素不相识的设备共享一个秘密"再也不是一个需要裁纸的问题。

所以最后这个对照其实很公平:

  • 1942 年:机制和密钥都是物理的。防截获能力是内生的——因为敌人没有纸带。
  • 今天:机制是数学的(电子学 + 伪随机序列),密钥是数学的(椭圆曲线 + AES)。防截获能力仍然内生,但长在了完全不同的层。

中间这段路,是被一份被退回来的专利铺出来的。

# 六、那束光

1940 年代夜间甲板上的鱼雷,拖着无线电导线沉入黑暗的海水

专利最后还写了一句我觉得很值得留着的话:

it is quite possible to so arrange the records that the receiver is never twice tuned to the same frequency.

可以安排纸带,让接收端永远不会两次调到同一个频率。

这是一个很干净的承诺:在密钥耗尽之前,频率一次都不重复。跳频序列被用成了一次性密码本——用完就扔,换新纸带。

对照现代:蓝牙的 79 个信道会反复转圈,802.11 的 79 个也一样。现代系统为了"带宽效率",放弃了"永不重复"这个漂亮性质。

海蒂·拉玛 2000 年 1 月 19 日去世,终身没有从这份专利里拿到一分钱——它在 1959 年就过期了,而军方真正用上已经是 1962 年。2014 年,她和安塞尔一起被追列入美国国家发明家名人堂。1997 年,EFF 把先锋奖给了这份工作。

安塞尔 1959 年就死了——和专利过期是同一年。他一辈子最重要的作品是那部没演成的芭蕾。

而那部没演成的芭蕾,失败的原因(16 卷纸带同步不了),和那份改变了无线电的专利的核心机制,是同一个东西。

这大概是历史上最漂亮的一次复用了:一个失败作品的零件,被装进了另一台机器里,还顺手补上了原作品缺的那个零件。

# 资料与复现

# 图片版权

本文配图由 MiniMax 图像模型生成,均裁切或缩放为 1200×675:

  • 封面:1940 年代无线电实验室与打孔纸带机构。
  • 图 1:打孔纸带通过黄铜控制头的机构特写。
  • 图 2:舞台上堆叠的自动钢琴(《机械芭蕾》场景再现)。
  • 图 3:频谱瀑布图上的跳频信号。
  • 图 4:夜间甲板上的鱼雷与无线电导线。