GPT-6 Astra破解一战德国无线电密码

Scienceblogs.de是一个德语科学博客门户,其中包含一份相对著名的50个未解密码清单,涵盖从连环杀手发布的密码到著名的伏尼契手稿。

中文
复制
GPT-6 Astra Solves a WWI German Radio Cipher 的题图

GPT-6 Astra 破解了一战德军无线电密码

prinz's avatar

prinz

2026年9月17日

image

德国科学博客门户 Scienceblogs.de 上流传着一份相当有名的50个未解密码清单,从连环杀手公布的密码到著名的伏尼契手稿,无所不包。

其中包含一组一战时期的德军无线电报文,采用 ADFGVX 方法加密。

以“HOUSE”为密钥的示例如下:

    A D F G V X
A   H O U S E A
D   B C D F G I
F   J K L M N P
G   Q R T V W X
V   Y Z 0 1 2 3
X   4 5 6 7 8 9

可以看到,ADFGVX 同时用于横向和纵向,为表格中的每个“单元格”赋予一个值。例如在这段文本中,“AA”对应字母 H,“AD”对应字母 O,“DA”对应字母 B,依此类推。那么“PRINZ”一词会被编码为:

FX GD DX FV VD

换一个加密词而非“HOUSE”,得到的表格会完全不同。

德军加密这些无线电报文所用的已知密钥有一份清单,其中数百条报文已被破译,包括密码破译专家 George Lasry 的成果。但仍有十几条至今无人解开,据我所知就包括下面这条,原报文发送于1918年11月27日(第217页):

image

GPT-6 Astra 破解了这条密码,认为原文如下:

EIN ENGLISCHER KREUZER EINLIEG X SEWASTOPOL X S4STEN X EIN GESCHWADER DER X ALLIIERTEN FOLGT 26STEN X

译成英文即:

AN ENGLISH CRUISER ARRIVED AT SEVASTOPOL ON THE ?4TH AN ALLIED SQUADRON FOLLOWS ON THE 26TH

模型使用的加密词是“TRUPPENVERSCHIEBUNG”,见 J. Rives Childs《The History and Principles of German Military Ciphers, 1914–1918》第214–215页。用这个加密词可得到如下表格:

image

使用这张表之前,需要先重新排列“TRUPPENVERSCHIEBUNG”中的字母,使其按字母表顺序排列(例如 T 排第 16,R 排第 13)。

image

然后将“TRUPPENVERSCHIEBUNG”横向写出,并在下方逐行填入密文中的字母,每行 19 个(共 170 个字符,因此得到 8 行 19 个符号,再加 1 行 18 个符号)。这意味着有 18 列各含 9 个符号,另有 1 列含 8 个符号(即“G”列)。由于 T 位于第 16 列,其前面有 14 个 9 符号列,外加 1 个 8 符号的 G 列;9×14 + 1×8 = 134,因此“T”对应密文中接下来的第 135 个符号,即“A”。同理,下一个字母“R”对应字母“V”(因为 R 在字母表中排第 13,其前面有 11×9 + 1×8 = 107 个符号;密文中的第 108 个符号是“V”)。

在上表中,“AV”对应“E”,即“EIN”的第一个字母。重复这一过程,直到整条消息解码完毕。

(哇。)

Astra 推测这条消息此前一直未被破译,是因为“TRUPPENVERSCHIEBUNG”作为密钥从 1918 年 12 月 9 日才开始使用——而如上所述,这条消息发送得更早,是 1918 年 11 月 27 日。这一出入的原因不明。

Astra 觉得有必要核对自己的结论,结果发现,英国巡洋舰 HMS Canterbury 确实于 1918 年 11 月 24 日抵达塞瓦斯托波尔,依据是其原始航海日志:

image

……而一支盟军分舰队确实于 11 月 26 日随后抵达(见第 11 行正下方,那里写着有一支盟军分舰队抵达):

image

我之前没见过有人成功解码这条特定的信息,所以在这里分享一下——算是个小成果(但我觉得相当酷),也顺便展示一下这个模型的能力。

来源: prinz← 返回首页