ADFGVX密码
ADFGVX密码是德军在第一次世界大战中使用的栏块密码。事实上,它是早先一种密码 ADFGX 的增补版。1918年3月Fritz Nebel上校发明了这种密码,并提倡使用。它结合了改良过的波利比乌斯方格替代密码与单行换位密码。这个密码以使用于密文当中的六个字母A、D、F、G、V、X命名。
ADFGX 加密操作
假设我们需要发送明文讯息 "Attack at once", 用一套秘密混杂的字母表填满 波利比乌斯方格,像是这样:
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 和 j 视为同个字,使字母数量符合 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
在实际应用中,移位钥匙字通常有两打字元那么长,且分解钥匙和移位钥匙都是每天更换的。
ADFGVX
在1918年6月,再加入一个字母V扩充。变成以6 × 6格共36个字元加密。这使得所有英文字母(不再将I和J视为同一个字母)以及数字0到9都可混合使用。这次增改是因为以原来的加密法发送含有大量数字的简短讯息有问题。
密码分析
ADFGVX是被法国陆军中尉Georges Painvin所破解的。以古典密码学的标准来说,此密码破解的工作是属于格外困难的,在这期间,Painvin更因此健康蒙受了严重损伤。他破解的方法是依靠于找到多份开头相同的讯息,这表示说它们是被相同的分解钥匙和移位钥匙加密的。
这意味著只有在讯息传输量高时才会有这种影响,但对于密码分析家来说幸运的是,这时恰好也是最重要的讯息发送的时刻。
参考资料
- Friedman, William F. Military Cryptanalysis, Part IV: Transposition and Fractionating Systems. Laguna Hills, CA: Aegean Park Press, 1992.
- General Solution of the ADFGVX Cipher System, J. Rives Childs, Aegean Park Press, ISBN 0-89412-284-3