介紹
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 更因此健康蒙受了嚴重損傷。他破解的方法是依靠於找到多份開頭相同的訊息,這表示說它們是被相同的分解鑰匙和移位鑰匙加密的。
這意味著只有在訊息傳輸量高時才會有這種影響,但對於密碼分析家來說幸運的是,這時恰好也是最重要的訊息傳送的時刻。