无需登录 数据私有 本地保存

ADFGVX密码模拟 - 一战德军密码

13
0
0
0

ADFGVX 密码模拟器

一战德军高级野战密码 · 1918年

6×6 波利比奥斯方阵
ADFGVX
密钥用于列置换,字母顺序决定读取顺序
自动过滤空格和无效字符,仅保留方阵中的字母与数字
--

关于 ADFGVX 密码

ADFGVX 密码是第一次世界大战期间(1918年3月)德军在西线使用的高级野战密码系统。它由德军密码学家弗里茨·内贝尔(Fritz Nebel)设计,是原有 ADFGX 密码的扩展版本。

该密码结合了波利比奥斯方阵替换和列置换两种加密方法,是当时非常先进的密码系统。其名称来源于加密后密文中仅出现的6个字母:A、D、F、G、V、X。选择这6个字母是因为它们在莫尔斯电码中区别明显,不易混淆,适合无线电传输。

法国密码学家乔治·潘万(Georges Painvin)花费大量精力最终破解了该密码,对一战进程产生了重要影响。

第一步:波利比奥斯方阵替换

使用一个 6×6 的方阵(包含26个字母A-Z和10个数字0-9,共36个字符),行列标签为 A、D、F、G、V、X。明文中每个字符被替换为其在方阵中的行列坐标对(两个字母),得到中间密文。

例如:如果字母 H 位于方阵的第 D 行、第 F 列,则 H → DF

第二步:列置换

使用一个密钥词(如 BATTLE),将中间密文按行填入矩阵,然后按密钥字母的字母顺序重新排列列,最后按列读取得到最终密文。

这种双重加密使得该密码在当时极难破解,直到法国密码学家潘万找到突破口。

这6个字母在莫尔斯电码中的表示差异很大:

  • A:·− (点划)
  • D:−·· (划点点)
  • F:··−· (点点划点)
  • G:−−· (划划点)
  • V:···− (点点点划)
  • X:−··− (划点点划)

在当时的无线电通信条件下,信号容易受到干扰。使用莫尔斯电码差异明显的字母可以减少传输错误,提高通信可靠性。这是德军密码设计中的一个巧妙考虑。

ADFGX 是原始版本(1918年3月首次投入使用),使用 5×5 方阵,仅包含25个字母(I和J合并),行列标签为 A、D、F、G、X。密文只包含这5个字母。

ADFGVX 是升级版本(1918年6月推出),扩展为 6×6 方阵,加入了数字0-9和字母V作为行列标签。这使得德军可以直接加密数字坐标等信息,无需先将数字转换为文字。

升级的原因是德军需要在密码中直接传输地图坐标和数字情报,而ADFGX无法直接处理数字。

法国密码学家乔治·潘万在1918年6月成功破解了ADFGVX密码,这是密码学史上的传奇故事:

  1. 他首先发现密文中某些字母组合频繁出现,推测这些对应常见字母对。
  2. 通过频率分析和德文语言特征(如常见的CH、EN等组合),他逐步推断出部分方阵内容。
  3. 最关键的是,他发现不同密文消息中相同位置的字母呈现出统计相关性,从而推断出列置换的结构。
  4. 在1918年6月,他破解了一条关键密文,发现内容是"速运弹药,即使白天也停"——这揭示了德军即将发动大规模进攻。

潘万的工作帮助协约国预判了德军的进攻方向,堪称密码学改变战争进程的经典案例。