プレイフェア暗号(Playfair cipher)

プレイフェア暗号はイギリス人サー・チャールズ・ホイートストン(Sir Charles Wheatstone)により開発されライアン・プレイフェア(Lyon Playfair)が普及させました。プレイフェア暗号を用いて暗号化するとき、まずキーワードまたはキーフレーズをあらかじめ決めておきます。仮にキーワードをPlayfairとします。次にこのキーワードをアルファベットが重複することなく下の5×5の表に入れていきます。

P
L
A
Y
F
I
R
 
   
         
         
         

ここで残りのセルに余ったアルファベットを挿入していくわけですが、アルファベットは26文字あって5×5では一字余ります。そこで I と J は同じセルに入れるとあらかじめ決めておきます。そこで新たに作られた表が下のようになります。

P
L
A
Y
F
I/J
R
B
C
D
E
G
H
K
M
N
O
Q
S
T
U
V
W
X
Z

準備ができたところで、次のメッセージを暗号化してみましょう。

メッセージ Abandon hope, all ye who enter here.

このメッセージをまず二文字ずつ区切っていきます。

Ab-an-do-nh-op-ea-ll-ye-wh-oe-nt-er-he-re

ここで7番目に ll と同じ文字が重複しているので間に x を入れます。

Ab-an-do-nh-op-ea-lx-ly-ew-ho-en-te-rh-er-e

そうすると最後に e が一つ余ります。ここにもやはり x を入れておきます。

Ab-an-do-nh-op-ea-lx-ly-ew-ho-en-te-rh-er-ex

まず最初の二文字 ab を暗号化してみましょう。ab は先ほど作った表では同じ列にあります。このときは ab の列のすぐ下の文字で置き換えます。

P
L
A
Y
F
I/J
R
B
C
D
E
G
H
K
M
N
O
Q
S
T
U
V
W
X
Z

つまり ab は BH に変わります。ただし一番下の文字例えば w は一番上の文字 A に変換されます。

同様に同じ行に入る二文字も出てきたとします。例えば ap などは右隣の文字に置き換えます。

P
L
A
Y
F
I/J
R
B
C
D
E
G
H
K
M
N
O
Q
S
T
U
V
W
X
Z

つまり ap は YL になるわけですね。この場合も一番右の文字例えば f は一番左の文字 p に変換されます。

最後に行も列も違う二文字が出てきた場合は次のようにします。例えば an を考えます。下の表のように a n それぞれの行および列を塗り分け、その交点となる文字を見ます。この場合、P と Q になります。

P
L
A
Y
F
I/J
R
B
C
D
E
G
H
K
M
N
O
Q
S
T
U
V
W
X
Z

そこで a は、a h と同じ行の P に、n は、n と同じ行の Q に変換します。つまり、

do → RT

nh → QE

op → NL

となるわけです。このルールに従って、先ほどのメッセージを暗号化すると、

平文  Ab-an-do-nh-op-ea-lx-ly-ew-ho-en-te-rh-er-ex

暗号文 BH PQ RT QE NL HP YV AF HU GQ NU NM BG GI KU

これでプレイフェア暗号による暗号化が終了したわけです。

この暗号はイギリスがボーア戦争(ブール戦争 BoreWar)で使用したといわれています。

 プレイフェア暗号(Playfair cipher)