ADFGVX暗号 (ADFGVX cipher)

20世紀の戦時暗号の中で有名なものにADFGVX暗号があります。この暗号が1918年ドイツ軍に使用されるまでは、新しい暗号が開発されても、解読者によって解読されるということが繰り返し行われていました。ドイツ軍はこのADFGVX暗号を第一次世界大戦中、広く使用していました。普仏戦争で敗北を喫したフランス軍は、(必要に迫られて)ヨーロッパ最強の暗号解読チームを擁して第一次世界大戦に参戦しました。当時、非常に安全と批評されていたADFGVX暗号はフランスの暗号解読者、ジョルジュ・パンヴァン(Georges Painvin)によって解読されることになります。

ADFGVX暗号で平文を暗号化する場合、まず次のような表を作ります。

 
A
D
F
G
V
X
A
 
 
 
     
D
           
F
           
G
           
V
           
X
           

ここで36個のセルにaからzまでの26個すべてのアルファベットと、0から9までの10個の数字をランダムに入れていきます。

 
A
D
F
G
V
X
A
j
3
h
n
u
b
D
w
p
1
q
t
2
F
4
e
a
s
8
k
G
d
y
z
l
5
f
V
6
g
v
7
r
9
X
o
m
0
i
c
x

この表より例えば

a → FF

b → AX

c → XV

などと暗号化されます。これで第一段階が終了です。次のメッセージを暗号化してみましょう。

メッセージ I think, therefore I am.

平文     I  T  H  I  N  K  T  H  E  R  E  F  O  R  E  I  A  M

暗号文  XG DV AF XG AG FX DV AF FD VV FD GX XA VV FD XG FF XD

このままでは単純な換字式暗号なので the などの頻度分析により容易に解読ができます。

次に第二段階として転置式暗号を用います。つまりADFGVX暗号は換字式暗号と転置式暗号を併用したものなのです。ここでキーワードかキーフレーズを使用します。仮にキーワードをPainvinとします。これを重複することなく各アルファベットを並べると

PAINV

となります。次に下に示すような表を作成します。

P
A
I
N
V
X
G
D
V
A
F
X
G
A
G
F
X
D
V
A
F
F
D
V
V
F
D
G
X
X
A
V
V
F
D
X
G
F
F
X
D
       

この表は最上段の行にPAINVを挿入し、以下の行には左上から第一段階で作成した暗号文を次々に入れていきます。

さらにここで、転置を行います。PAINVのそれぞれの行をアルファベット順に左から並べ替えていきます。

A
I
N
P
V
G
D
V
X
A
X
G
A
F
G
X
D
V
F
A
F
D
V
F
V
D
G
X
F
X
V
V
F
A
D
G
F
F
X
X
     
D
 

このようにして完成された表をもとに、アルファベットを書き出していきます。

暗号文 GDVXAXGAFGXDVFAFDVFVDGXFXVVFADGFFXXD

これでADFGVX暗号による暗号化が完成したわけです。

ADFGVX暗号のADFGVXの6つのアルファベットはどのように選ばれたかといいますと、当時は暗号文をモールス信号を使用して通信していました。このときADFGVXの6つのアルファベットは互いに区別しやすいということで採用されたようです。

 ADFGVX暗号 (ADFGVX cipher)