第二层加密——乱数添加本。”
“这是一本包含数十万个随机五位数字的册子。发报员在发送‘49321’之前,会从乱数本中随机抽取一个五位数字,比如‘71452’。”
分析员在黑板上列出一个加法竖式。
“他们将这两个五位数字进行相加。但这种相加,采用的是特殊的无进位加法。即每一位数字独立相加,满十不进位。”
4 9 3 2 1
7 1 4 5 2
= 1 0 7 7 3
“最终,通过无线电波发送出去的密文是‘10773’。接收方在收到密文后,使用同一本乱数本中的同一个数字,进行无借位减法,还原出基础代码‘49321’,再通过密码本查出‘战列舰’的明文。”
分析员放下粉笔,转身看着众人。
“这种双重加密,在数学理论上产生了几十亿种排列组合。每次发送同样的词汇,因为选用的乱数不同,产生的密文也完全不同。传统的频率分析法在这里彻底失效。”
一名年轻的数学员推了推眼镜,提出了疑问。
“主管。如果乱数本足够庞大且绝对随机,这种密码在物理上是无法破译的。除非我们拿到密码本的实物。”
“理论上是这样。”主管点了点头,“但在实际的工程操作中,人类的系统总是存在漏洞。日本海军的通讯量太庞大了。每天有成千上万份电报在空中飞行。为了保证通讯效率,他们的乱数本不可能无限大,且必须定期更换。在更换周期内,几十万个乱数必然会被重复使用。”
主管走到一台庞大的穿孔卡片分类机前。
“我们的突破口,就在于寻找‘重叠’。也就是寻找两份使用了同一段乱数的密文。”
“当两个不同的基础代码,加上了同一个乱数。如果我们把这两段密文进行无借位减法,乱数就会被抵消。剩下的,就是两个原始基础代码的差值。”
“只要我们积累了足够多的这种差值数据,我们就能通过多维度的矩阵方程,逆向剥离出乱数本的结构,进而还原出底层的密码本词汇。”
这是一项浩大的、挑战人类算力极限的工程。
在没有电子计算机的时代,大西北利用自身的机电制造能力,仿制并改进了大量类似于IBM霍列瑞斯制表机的穿孔卡片处理设备。
每一份截获的日军五位数字密文,都会被操作员用打孔机打在一张标准尺寸的硬纸卡片
本章未完,请点击下一页继续阅读!