ヴィジュネル暗号なお話 その2 | もっとコンピュータが好きになるblog

ヴィジュネル暗号なお話 その2

,書いているエニグマまでの連載ですが,これ終わったら,また何か他の題材で連載してみたいなあとか考えています.なにか良い題材ないかなとか考えています.今歴史関連の話ばっかりなので,少し実用的な話をした連載でもしてみますかね.



ヴィジュネル暗号の二回目です.前回はヴィジュネル暗号が生まれた背景についてみてみました.よくよく考えると,換字,転字の暗号が生まれてから数百年以上経っていて,かつ,強力な暗号が必要な事もわかっていたのに.なかなか次の暗号が生まれてこず,ヴィジュネル暗号が生まれる16世紀までかかってしまったというのはなかなか興味深いです.

案外暗号を利用していた昔の人たちの中には「傍受,解読出来るのが当たり前」という心理があったのかもしれませんね.そこまで深く調べていないのでなんとも言えませんけど.

さて本題の話に戻して,第二回目では,ヴィジュネル暗号とはどんなものであったのかを解説していきたいと思います.ちょっと難しいかもしれませんが,出来るだけわかりやすく書きたいと思いますので,がんばって読んで頂ければと思います.



前回の終わりにアルベルティの暗号を紹介しました.ちょっとおさらいまでにもう一回どんなものだったか紹介します.


変換表
平 :ABCDEFGHIJKLMNOPQRSTUVWXYZ
暗1:ZCNKLXHIVBAQOEFTSRMPWGDUJY
暗2:YZCNKLXHIVBAQOEFTSRMPWGDUJ

例「THIS IS A PEN」→「PHVR VR Z FLO」


このように,アルベルティの暗号の暗号では,二つの暗号アルファベットを交互に利用する事によって,一般的な換字暗号よりもはるかに高い暗号強度を持つことが出来ました.

これは,例えば「THIS IS A PEN」という文章は「PHVR VR Z FLO」という文章にも「MIIM IM Y TKE」という文章にも暗号化される可能性があり,簡単に出現頻度の高い文字が暗号化された文章を見つけだすのが難しくなっているという事になります.

ここの意味がよくわからない人は「シーザー暗号なお話」で暗号解読の仕方について書いた箇所があるので,そこをご覧下さい.



ブレーズ・ド・ヴィジュネルはこのアルベルティの考え方を継承し,さらに発展させました.それがヴィジュネル暗号です.アルベルティの暗号では二つの暗号アルファベットを利用しました.しかし,ヴィジュネル暗号では,アルファベットの数,つまり26個の暗号アルファベットを利用して暗号化することにより暗号の強度を上げています.

もうすこし具体的につっこんでいきましょう.ヴィジュネル暗号では,次の様なシートを利用して暗号化します.


平 :ABCDEFGHIGKLMNOPQRSTUVWXYZ
1 :bcdefghigklmnopqrstuvwxyza
2 :cdefghigklmnopqrstuvwxyzab
3 :defghigklmnopqrstuvwxyzabc
4 :efghigklmnopqrstuvwxyzabcd
5 :fghigklmnopqrstuvwxyzabcde
6 :ghigklmnopqrstuvwxyzabcdef
7 :higklmnopqrstuvwxyzabcdefg
8 :igklmnopqrstuvwxyzabcdefgh
9 :gklmnopqrstuvwxyzabcdefghi
10:klmnopqrstuvwxyzabcdefghig
11:lmnopqrstuvwxyzabcdefghigk
12:mnopqrstuvwxyzabcdefghigkl
13:nopqrstuvwxyzabcdefghigklm
14:opqrstuvwxyzabcdefghigklmn
15:pqrstuvwxyzabcdefghigklmno
16:qrstuvwxyzabcdefghigklmnop
17:rstuvwxyzabcdefghigklmnopq
18:stuvwxyzabcdefghigklmnopqr
19:tuvwxyzabcdefghigklmnopqrs
20:uvwxyzabcdefghigklmnopqrst
21:vwxyzabcdefghigklmnopqrstu
22:wxyzabcdefghigklmnopqrstuv
23:xyzabcdefghigklmnopqrstuvw
24:yzabcdefghigklmnopqrstuvwx
25:zabcdefghigklmnopqrstuvwxy
26:abcdefghigklmnopqrstuvwxyz


このシートをヴィジュネル方陣と言います.ただ,ヴィジュネル暗号では.アルベルティの暗号のように,ただこのヴィジュネル方陣を上から順番に使って暗号化していく暗号ではなくて,さらにもう一工夫されています.



それが鍵の存在です.つまり,方陣をそのまま上から順々に使って暗号化していったのではヴィジュネル暗号が使っている事さえわかっているなら,ほとんどシーザー暗号(カエサル暗号)と同じ要領で簡単に解かれてしまいます.

しかし,上から順番ではなく,バラバラの順番の列の暗号アルファベットを利用して暗号化したらどうなるでしょうか.例えば,元の文(平文)の一文字目は5行目の暗号アルファベットを利用して暗号化,2文字目は20行目の暗号アルファベットを利用化....といった感じで行ったとします.

解読者はどんな順番で暗号アルファベットを利用していったのかわからない限り,たとえヴィジュネル暗号が利用されている事がわかったとしてもそう簡単に解読するのが難しくなりました.

もうすこし具体的に見ていきましょう.例えば鍵語「UNIX」とします.すると利用される暗号アルファベットは以下のようになります.


平 :ABCDEFGHIGKLMNOPQRSTUVWXYZ
20:uvwxyzabcdefghigklmnopqrst
13:nopqrstuvwxyzabcdefghigklm
8 :igklmnopqrstuvwxyzabcdefgh
23:xyzabcdefghigklmnopqrstuvw
鍵語:「UNIX」

例「USER」を暗号化してみます.(青で着色)
U → o
S → f
E → m
R → o
「USER」→「OFMO」


このように平文の一文字目は20行目の暗号アルファベットを利用して,二文字目は13行目,以降,三文字目は8行目,四文字目は23行目,5文字目は戻って20行目を利用して暗号化してゆきます.

暗号化プロセスは,アルベルティの暗号とかわりありません.



この鍵を利用するアイデアはアルベルティの暗号の暗号よりもより強固であることを示しています.先ほども述べたように,鍵語がわからなければ,解読は難しい事はわかりますし,何より,鍵語の文字数を増やせば,26行の暗号アルファベットを利用するどころか,1000行,10000行の暗号アルファベットを利用することも可能になるんですね.

たとえ,出現頻度の高い文字を文章中から探そうとしても,利用されているだとうと推測される文字を探そうとしても,同じようには暗号化されて出てこないのですから,容易ではなくなりました.

コンピュータの「コ」の字もなかった時代ですから,解読の困難さは火を見るより明らかだったわけです.その後約300年間,ヴィジュネル暗号は最強の暗号として君臨することになりました.



ちなみに上の画像,アメリカはCIA本部にある「クリプトス」という彫刻です,よくよくみると,これはヴィジュネル方陣なんです.何でCIAに?と疑問を持たれる方も多いことと思います.興味を持たれた方は次のリンクをたどってみてください.

- CIA本部に据えられた暗号彫刻『クリプトス』の謎


さて,次回三回目は,一気に進んで19世紀まで飛び,このヴィジュネル暗号と対決する事になる人について紹介します.大変にすごい人です.この人がいなければ今のコンピュータはあと100~200年ぐらい出来るの遅かったんじゃないかなと,個人的に思っています.

次は,コンピュータ好きなら暗号抜きにしてもぜひ読んで頂きたいかも.