卷首语
【画面:1971 年 4 月的北京通信技术研究院第 9 实验室,26 岁的程序员小王趴在 “长城 - 1 型” 小型计算机前,手指在自制键盘上敲击,绿色荧光屏显示的二进制代码在日光灯下闪烁。这台占地 2 平方米的国产计算机由 640 个晶体管组成,机柜侧面贴着 “1969 年全国电子工业展览会” 的红色标签,旁边散落着《54 式密码本算法解析》油印本,纸页上的钢笔批注被修正液覆盖了三次。他的白大褂口袋里露出半截长城牌铅笔,笔杆上刻着 “代码即密码” 的小字,与机柜顶部 “自主创新” 的红色横幅遥相呼应。字幕浮现:1971 年春,当国产小型计算机的继电器还在为乘法运算发出咔嗒声,通信加密领域的技术人员已在二进制代码与汉字密码的鸿沟间架设桥梁。小王和团队用穿孔纸带传递算法指令,在寄存器的脉冲与密码本的置换表中寻找契合点,于晶体管的热噪声与代码的逻辑门中编织数字密网 —— 那些被反复调试的移位寄存器、写满补丁的汇编程序、在保密室度过的千个昼夜,终将在 “长城 - 1 型” 的荧光屏上,映出计算机加密时代的第一缕曙光。】
1971 年 4 月 5 日,通信技术研究院的加密实验室里,老王将《国产计算机加密可行性报告》摔在布满划痕的工作台上,23 页论证材料中 “算法适配度不足 40%” 的结论让 23 岁的小王手中的穿孔纸带突然滑落。“苏联专家说我们的计算机算个乘法都要 3 秒,” 他敲了敲 “长城 - 1 型” 的机柜,“还想跑‘54 式’的三重置换算法?” 小王蹲下身捡起纸带,上面歪扭的机器码记录着他前夜尝试的密钥生成程序,第 17 行的逻辑错误被红笔圈成靶心。
一、穿孔纸带上的算法迁徙
根据《1971 年通信加密计算机应用档案》(档案编号 JM-JS-1971-04-01),团队的首要任务是将 “54 式密码本” 的汉字置换算法转化为计算机可执行的代码。小王发现,传统密码本的 “偏旁部首置换表” 包含 128 组对应关系,而 “长城 - 1 型” 的寄存器仅能处理 32 位数据,相当于用小箩筐装大西瓜。“得把置换表拆成四块。” 他在黑板上画出 “分段处理流程图”,将每个汉字的区位码拆分为四个 8 位数据块,分别存入不同寄存器。
首次代码调试在 4 月 10 日凌晨展开。小王将穿孔纸带插入读带机,当计算机开始执行置换程序,机柜里的继电器发出密集的咔嗒声,像极了 1958 年他在电报大楼听到的发报机节奏。但 10 分钟后,打印机吐出的密文出现连续 9 处错误,他发现是寄存器切换时的时序混乱导致数据错位,就像接力赛中接棒失误。
二、寄存器间的时序战争
4 月 15 日,小王带着示波器监测寄存器电压,发现置换操作时的时钟脉冲存在 50ns 的抖动,这在密码学中足以导致密钥流泄露。他想起在清华大学修收音机的经历,给时钟电路加装了磁芯滤波装置,用漆包线在磁环上绕制 20 圈,这个土法改进让脉冲抖动降至 10ns。“就像给时钟戴上防震手套。” 他在调试日志中画下磁环的简易图,旁边标注着从《无线电》杂志学来的 LC 滤波公式。