跳转到正文

ADFGVX 密码

输入方阵、换位关键词和消息,即可用 ADFGVX 密码加密或解密,也可用其 5 × 5 的前身 ADFGX。工具会展示两个阶段:把每个字符变成两个字母的波利比奥斯方阵,以及打乱这些字母的列换位。免费,无需注册,所有内容都不会离开您的浏览器。

模式

其字符会先填满方阵,且每个字符只用一次;其余字母(以及数字)依次补全。输入全部 25 或 36 个字符即可精确设定方阵。

设定第二阶段各列的顺序。相同的字母从左到右依次读取。请至少使用两个字母或数字。

方阵类型

按行填入是常见做法。实际使用的方阵是任意的混合字母表,因此无论选择哪种方式,一个完整的 25 或 36 字符关键词都能确定方阵。

只加密字母(在 6 × 6 方阵中还包括数字)。空格和标点会被去掉,结果以大写显示。密文只使用字母 A、D、F、G、X(以及 V)。

两个阶段

第一阶段——波利比奥斯方阵

每个明文字符变为两个字母:先是它所在行的标记,再是它所在列的标记。

ADFGVX
ANA1C3H
D8TB2OM
FE5WRPD
G4F6G7I
V9J0KLQ
XSUVXYZ

字符及其字母对

明文ATTACKAT1200AM
字母对ADDDDDADAGVGADDDAFDGVFVFADDX

第二阶段——列换位

把字母对按行写在换位关键词之下。按关键词字母的字母顺序为各列编号(字母相同时从左到右),然后按该顺序从上到下读取各列。

PRIVACY
4536127
ADDDDDA
DAGVGAD
DDAFDGV
FVFADDX

第一行是各列被读取的顺序。最后一行可能不满;不会补齐。

按顺序排列的字母对: ADDDDDADAGVGADDDAFDGVFVFADDX

如何使用 ADFGVX 密码工具

  1. 1. 选择 ADFGVX 或 ADFGX。 ADFGVX 使用 6 × 6 的方阵,容纳字母和数字 0–9。ADFGX 使用 5 × 5 的方阵,其中 I 与 J 共用一格,或省去 Q。
  2. 2. 设置方阵。 输入一个关键词,其余字母会依次补全;或输入全部 25 或 36 个字符以精确固定方阵,就像原始的混合字母表那样。
  3. 3. 输入换位关键词。 它决定第二阶段中各列被读取的顺序。请至少使用两个字母或数字。
  4. 4. 输入消息,然后选择加密或解密。 只有字母和数字会被加密。计算过程会显示方阵、每个字符的字母对以及换位网格。

ADFGVX 密码如何工作

ADFGVX 是一种两阶段密码。第一阶段,在行列标记为 A、D、F、G、V 和 X 的波利比奥斯方阵中,每个明文字符被转换成两个字母:先是它所在行的标记,再是它所在列的标记。这就是分数化,它使消息长度翻倍。第二阶段,这些字母对按行写在换位关键词之下。然后按关键词字母的字母顺序,从上到下读取各列,字母相同时从左到右读取,最后一行可以不满。密文只使用这六个字母。

两个阶段单独来看都不算强。普通的波利比奥斯替换会暴露字母频率,普通的换位则会保留字母本身。两者结合,就把字母对打散了,使一个字母的两半被送往不同的列。解密时则反向操作:先按关键词决定的列长把密文切开,撤销换位;再把网格按行读作字母对,并在方阵中查出每一对所对应的字符。

工作示例

维基百科的 ADFGVX 示例使用方阵 NA1C3H8TB2OME5WRPD4F6G7I9J0KLQSUVXYZ(完整输入作为关键词),换位关键词为 PRIVACY。消息为 attack at 1200am。

阶段结果
明文字符A T T A C K A T 1 2 0 0 A M
第一阶段:字母对AD DD DD AD AG VG AD DD AF DG VF VF AD DX
关键词的列顺序P R I V A C Y → 4 5 3 6 1 2 7(按 A、C、I、P、R、V、Y 的顺序读取)
第二阶段:密文DGDD DAGD DGAF ADDF DADV DVFA ADVX

第一阶段中,A 变成 AD,因为 A 位于方阵的 A 行、D 列。随后,28 个字母对填入 PRIVACY 之下的四行,按 A、C、I、P、R、V、Y 的顺序读取各列,便得到密文。工具会重现这两行结果。ADFGX 的运作方式相同,只是方阵为 5 × 5:维基百科的 ADFGX 示例将 attack at once(关键词为 CARGO)转换为 FAXDF ADDDG DGFFF AFAXA FAFX。

ADFGVX 密码的历史

ADFGVX 是第一次世界大战期间德意志帝国陆军使用的野战密码,由中尉弗里茨·内贝尔(Fritz Nebel)发明。其前身 ADFGX 于 1918 年 3 月 1 日首次在西线使用,ADFGVX 则于 1918 年 6 月 1 日启用,增加了 V 以及行与列的标记,以便传送数字。选用这些字母是因为它们在摩尔斯电码中的发音差别很大,从而减少了无线电报务员的错误。方阵和换位关键词都每天更换。

它是如何被破解的

法国密码分析员乔治·潘维安(Georges Painvin)于 1918 年破解了该密码。他从具有固定开头的电文入手,在换位中寻找规律,并利用了一个事实:当关键词长度为偶数时,各列会交替包含来自方阵行标记和列标记的字母对,而这两类字母的频率特征并不相同。法国的记载认为他的解读有助于阻止德军的春季攻势;历史学家希尔马-德特勒夫·布吕克纳(Hilmar-Detlef Brückner)则对其作用的决定性提出质疑。如今,只需一定数量的密文,计算机就能破解 ADFGVX。

这是历史密码,并非安全密码

ADFGVX 在 1918 年是一种严肃的密码,但如今远非安全。它仅可用于历史研究、谜题和教学,切勿用于任何私密内容。

常见问题

什么是 ADFGVX 密码?
ADFGVX 是德国陆军在 1918 年使用的手工密码。它用一个 6 × 6 波利比奥斯方阵中的两个字母替换每个字符,再用列换位打乱这些字母。密文只使用 A、D、F、G、V 和 X 这六个字母。
ADFGX 与 ADFGVX 有什么区别?
ADFGX 出现得更早,于 1918 年 3 月启用,使用 5 × 5 的方阵,其中 I 与 J 共用一格。ADFGVX 于 1918 年 6 月推出,采用 6 × 6 的方阵,容纳全部 26 个字母和数字 0–9,因此也能传送数字。
如何解密 ADFGVX 密码?
先撤销换位。根据关键词和消息长度算出各列的长度,按关键词的字母顺序把密文切成这些列,再写回网格中。然后按行读取网格得到字母对,并在波利比奥斯方阵中查出每一对。
为什么使用 A、D、F、G、V 和 X 这几个字母?
它们在摩尔斯电码中发送时差别很大,从而减少了无线电报务员的错误。这些字母本身没有含义,任何六个不同的字母都会得到同样的密码结构。
是谁破解了 ADFGVX 密码?
法国中尉乔治·潘维安于 1918 年破解了它。他利用了固定的电文开头,以及每个字母对中行标记和列标记两半不同的字母统计特征,先恢复换位,再恢复方阵。
ADFGVX 密码安全吗?
不安全。它在当时很强,但现代软件只需一定量的文本就能同时恢复两把钥匙。请把它当作学习和谜题用的历史密码。

相关工具

编码与密码中的更多工具