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

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

間が4時間ほど余ってしまって,何かでつぶさなくてはならなかったので,局所的に流行っている映画でも見に行くことにしました.

僕は何の映画見てきたのでしょうか.これから適当にヒント出しながら書いていくんで,わかった人はニヤニヤしながら読んで下さい.

ちなみに場所は池袋.ローレライとどっちみるか迷ったんですけど,その映画,公開最終日だったんで,ローレライは来週見る事にして,その映画を見てきました.

僕はあの作品が映画化した事より,出崎監督が制作した事の方が興味ありました.果たして出崎テイストであの作品を描けるのが,それが疑問だったんですよ.実際に見てびっくり.見事に出崎テイストが主張されてました.

出崎監督と言えば,「止め絵」「透過光」「画面分割」「ゲロ」など有名ですけど,それらがあの作品内にキチンと入っていたのは大変良かったです.特にヒロインにゲロさせた所は最高でした.泣けませんでしたけど.

正直言えば今やってるTV版の方が良いですね.泣けます.しかし映画版は出崎監督ファンは見るべきです.あの作品のファンというだけなら見なくても良いです.つか見ると反感持つと思います.ストーリーも大幅に書き換えられているし.(ちなみに僕は映画の最中,頭を傾げっぱなしでした.)

朝一に行ったのに立ち見になるぐらい大量に人入っていましたよ.びっくり.さすが局所的に大人気な映画.僕は始まって2,3分遅れて入場したんですけど,なんか背広着てたせいかなんか知りませんが,映画館の人が席探してきてくれて,座ってみる事が出来ました.ありがとう.




上の話わかった人いるかな.多分,僕の知り合いの人なら数人はわかったと思いますけど.池袋という単語で.さて,今回はヴィジュネル暗号の解読というお話.前回取り上げたバベッジが如何にして解読していったのか見ていきます.


ヴィジュネル暗号なお話 その2」では,ヴィジュネル暗号の仕組みを見ました.その時出てきた例をもう一度見てみます.


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

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


鍵となる言葉を決めて,それを基にして暗号化をしてゆくのがヴィジュネル暗号というものでした.今までの換字暗号系ではtheなどの頻繁に使われる文字は暗号化されても同じ暗号文として出力されていた為,その言葉を探し出すという手法が取れたわけですが,この方法によってできなくなった事を意味します.以下例です.


以前の換字暗号系の例
「the」は「omy」に暗号化される = 文章中の他の「the」も「omy」になる
よって「omy」を見続ければ暗号の関係性を探し出しやすい

ヴィジュネル暗号の例
「the」が「daq」や「hth」や「tew」など様々な文字列に変化する
様々な文字に変化するので関係性が見つけられない



ヴィジュネル暗号について,最初の例を取ってもう一度見てみます.平文が暗号化される際には鍵の位置が変わる事によって,暗号文も変化してゆきます.


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

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


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

例「USER」を暗号化してみます.(青で着色)
U → c
S → p
E → y
R → e
「USER」→「CPYE」


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

例「USER」を暗号化してみます.(青で着色)
U → h
S → a
E → b
R → l
「USER」→「HABL」


このように,「USER」という文字は「OFMO」の他に「RMRZ」「CPYE」「HABL」という他の文字に変更される事がわかります.このように平文からいくつかの暗号文が生まれてくる事がわかります.しかし,暗号化された結果はこの場合は四つしかない事がわかります.

今までの解読手法がそのまま利用出来ないのものの,平文の単語から変更される種類が固定ならば,ヴィジュネル暗号といえども繰り返し出てくる可能性がある文字を「くさび」にして鍵語が探し出せるかもしれないと考えたわけです.

問題は,暗号化された文字列が繰り返される場合が二種類あることです.


「1.鍵語の同じ並びで暗号化された場合」
「2.全く別の平文の単語などがたまたま暗号化された結果が同じ場合」


どういう事がもう少しかみ砕いて説明しますと,鍵語「UNIX」を用いて「USER」を暗号化した場合「OFMO」という文字列が出てきます.という事は文章中にもう一回「OFMO」が出た場合,その文字列が「USER」である可能性があるのですが,もしかしたら全く別の単語,例えば「WINDOWS」という単語のたまたま暗号化された結果が「IGOFMOP」だったりするかもしれないという事です.ただ,2の問題は繰り返しの文字列が長い場合(例えば4文字以上とした場合など)は可能性として非常に小さな確立になるため,除外する事で解決が可能でした.
(「WINDOWS」の暗号化の例で鍵語「UNIX」で答えが正確に「IGOFMOP」になるかは確かめていません.あしからず.)

ヴィジュネル暗号はその性質上,鍵語さえわかってしまえば,一気に平文に戻せてしまいます.よって,解読の方法としては,繰り返しの文字の間隔を測り,可能性のある鍵語の長さを調べ,鍵語を推測して,解読する事になります.手作業でやるとなかなか大変ですが,地道にやればやれない事もないです.



と言っても,どうやって鍵語の長さや鍵語を推測すればよいかこの説明だけではよくわかりません.そこで簡単な例を出して,その方法を見ていきたいと思います.



PLIWKRHKUXLOPYICZECDDIAOZRICZECDDIXRQVWNWCXRAGVSZEC
(わかりやすくするため既に同じ並びの文字には色を付けておきます.)


まず,鍵語の長さの突き止め方について見ていきます.上の例を使う前にもうちょっと簡単な例で平文で同じ並びの文字列と鍵語の並びが同じだった場合の関係をみてみます.


平:The Sun and The Moon
鍵:day day day day dayd


Theの部分と鍵の並びが同じ事がわかります.最初のTheの頭(T)から二番目のTheの間は9文字の開きがあります.もし9文字の開きがある場合に鍵語が同じならびになる可能性は,1文字の鍵語,3文字の鍵語,9文字の鍵語の可能性がある事がわかるでしょうか.こういう事です.


平:The Sun and The Moon
(数字は鍵語の長さだと思ってください)
1:aaa aaa aaa aaa aaaa (鍵語「a」)
3:day day day day dayd (鍵語「day」)
9:tra nsp ort tra nspo (鍵語「transport」)


一文字の鍵語という事はありえませんので,必然的に鍵語は3文字か9文字になります.対象となる暗号文が長ければ同じ並びの文字列がヒットする可能性も多くなるので,鍵語の長さの判別は容易になってきます.

それでは,最初の例を元に鍵語の長さの可能性を見てみます.



PLIWKRHKUXLOPYICZECDDIAOZRICZECDDIXRQVWNWCXRAGVSZEC

DDI            :12文字の開き:可能性→2文字,3文字,4文字,6文字,12文字 
ZEC(一つ目と二つ目):12文字の開き:可能性→2文字,3文字,4文字,6文字,12文字
ZEC(二つ目と三つ目):20文字の開き:可能性→2文字,3文字,4文字,5文字,10文字,20文字



上の例から,およその鍵の長さが判明しました.2,3,4文字の長さの鍵語のようです.今回の文は少々短かったので,完全に判断しきれなかったのですが,もう少し長い例文だった場合はもうちょっと絞り込む事ができます.例を簡単にするため,ここでは4文字の鍵語であることがわかった事として話を進めます.



鍵語の長さが判別出来たら,今度は鍵語の推測をします.ヴィジュネル暗号では鍵語によって暗号化をしていますが,4文字の鍵語であった場合,1文字目,5文字目,9文字目の文字...といった感じで見ていけば単に今までの換字暗号系と同じ手法で暗号化されているのがわかります.これは2文字目,6文字目,10文字目...3文字目,7文字目,11文字目...4文字目,8文字目,12文字目...も同様に同じ事が言えます.

つまり,鍵語の長さがわかった今では,「シーザー暗号なお話」でも出てきた頻度を調べる方法を応用することによって調べる事が可能です.



PLIWKRHKUXLOPYICZECDDIAOZRICZECDDIXRQVWNWCXRAGVSZEC 


一文字目の頻度を調べてみると「Z」の頻度が高い事がわかります.正確に調べるにはそれなりの頻度分布表が必要なわけですが,ここでは簡略化の為省きます.アルファベット中,「A」「E」「T」あたりが頻繁に利用される文字なのですが,頻度分布のと比較によって,ここでも説明省略の為,「Z」は「D」ではないかという推測が出たとします.
(似た長さの平文文章などから頻度分布をした結果と照らし合わせると出やすいです.また例えば,海軍から出た暗号文である事がわかっているならば,同じ海軍の他の平文文章の頻度分布と照らし合わせるなどすればよりヒット率は高くなるはずです.例ではどうしても平文での頻度分布を出しづらいので省略してしまいます.)

「Z」が「D」と推測するならば.鍵語の一文字目は「W」であることがわかります.


平:abcdefghigklmnopqrstuvwxyz
暗:wxyzabcdefghigklmnopqrstuv


これを,同様に二文字目,三文字目,四文字目に対して与えてやると,次のようにわかったとします.


二文字目:高頻度文字「E」:予想平文字「A」:予想鍵語「E」
三文字目:高頻度文字「I」:予想平文字「E」:予想鍵語「E」
四文字目:高頻度文字「D」:予想平文字「T」:予想鍵語「K」


という事で,頻度分布から鍵語は「WEEK」であると推測出来たとします.この鍵語を元にして先ほどの暗号文を解読してゆけば,



PLIWKRHKUXLOPYICZECDDIAOZRICZECDDIXRQVWNWCXRAGVSZEC
The Monday The Tuesday The Wednesday The Thursday The Friday


と読むことが出来ました.



ヴィジュネル暗号解読は大体今の例のような感じで行われました.ちなみにその3で取り上げたバベッジが上のように解読していったのですが,この解読については何も発表などしなかったそうです.20世紀になってバベッジのメモの中でこの解読法について書いてあるのを見つけてバベッジが解いた事がわかりました.
(余談ですが,後にカシスキーという人がバベッジと同様の方法でヴィジュネル暗号を解読しています.)




ようやくヴィジュネル暗号終わりました~.半月かかってしまいました~.しかも,結構長いですしねぇ.

それから,一番上の画像の解説.以前Kryptosという彫刻について説明したと思いますが,それと同じくサンボーンという人の彫刻でCyrillic Projectorと言います.ノースカロライナ大学にあります.これらの彫刻に関しては解読しようとする人たちが結構いて,解読結果(または途中)を公開しているページもあります.興味あれば,こちらをどうぞ.

- Elonka's Kryptos Page
- The Cyrillic Projector Code - Cracked!
- Cyrillic Projector & Spinning Top


これから書いてゆく事になるエニグマに関してもこのヴィジュネル暗号の考え方や解読の考え方が生きている所があるので,ここら辺がわかれば,エニグマについてもっと詳しくわかるのではないかと思います.

ただ,やっぱり,上の例だけでは,わかりにくいかもしれません.質問などコメントなどで書いてもらえるとフォロー出来ると思います.(でも,ヴィジュネル暗号なんて,学校の授業でも教えている先生いるのかなぁ~とか考えてしまいます.)

さて,次回からは暗号の話とは別の話を数回やってから,エニグマについて書いていきます.