ADFGVX密码加密/解密

密钥
关键字
ADFGVX密码是德军在第一次世界大战中使用的栏块密码。事实上,它是早先一种密码 ADFGX 的增补版。1918年3月Fritz Nebel上校发明了这种密码,并提倡使用。它结合了改良过的Polybius方格替代密码与单行换位密码。这个密码以使用于密文当中六个字母 A, D, F, G, V, X命名。ADFGVX 是被法国陆军中尉 Georges Painvin 所破解的。以古典密码学的标准来说,此密码破解的工作是属于格外困难的,在这期间,Painvin 更因此健康蒙受了严重损伤。他破解的方法是依靠于找到多份开头相同的讯息,这表示说它们是被相同的分解钥匙和移位钥匙加密的。

加密操作

假设我们需要发送明文讯息 "Attack at once", 用一套秘密混杂的字母表填满 Polybius 方格,像是这样:

A
D
F
G
X
A
b
t
a
l
p
D
d
h
o
z
k
F
q
f
v
s
n
G
g
j
c
u
x
X
m
r
e
w
y
i 和 l 视为同个字,使字母数量符合 5 × 5 格。之所以选择这五个字母,是因为它们译成摩斯密码时不容易混淆,可以降低传输错误的机率。使用这个方格,找出明文字母在这个方格的位置,再以那个字母所在的栏名称和列名称代替这个字母。可将该讯息可以转换成处理过的分解形式。
A
T
T
A
C
K
A
T
O
N
C
E
AF
AD
AD
AF
GF
DX
AF
AD
DF
FX
GF
XF
下一步,利用一个移位钥匙加密。假设钥匙字是“CARGO”,将之写在新格子的第一列。再将上一阶段的密码文一列一列写进新方格里。
C A R G O
_________
A F A D A
D A F G F
D X A F A
D D F F X
G F X F X
最后,按照钥匙字字母顺序「ACGOR」依次抄下该字下整行讯息,形成新密文。如下:
FAXDF ADDDG DGFFF AFAXX AFAFX
在实际应用中,移位钥匙字通常有两打字符那么长,且分解钥匙和移位钥匙都是每天更换的。
在 1918年 6月,再加入一个字 V 扩充。变成以 6 × 6 格共 36 个字符加密。这使得所有英文字母(不再将 I 和 J 视为同一个字)以及数字 0 到 9 都可混合使用。这次增改是因为以原来的加密法发送含有大量数字的简短信息有问题。

密码分析

ADFGVX 是被法国陆军中尉 Georges Painvin所破解的。以古典密码学的标准来说,此密码破解的工作是属于格外困难的,在这期间,Painvin 更因此健康蒙受了严重损伤。他破解的方法是依靠于找到多份开头相同的讯息,这表示说它们是被相同的分解钥匙和移位钥匙加密的。
这意味着只有在讯息传输量高时才会有这种影响,但对于密码分析家来说幸运的是,这时恰好也是最重要的讯息发送的时刻。