GPT-6 Astra破解一战德国无线电密码
Scienceblogs.de是一个德语科学博客门户,其中包含一份相对著名的50个未解密码清单,涵盖从连环杀手发布的密码到著名的伏尼契手稿。
中文
复制

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

2026年9月17日

德国科学博客门户 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页):

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页。用这个加密词可得到如下表格:

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

然后将“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 日抵达塞瓦斯托波尔,依据是其原始航海日志:

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

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