シーザー暗号なお話 | もっとコンピュータが好きになるblog

シーザー暗号なお話

期連載をしたいと言っていましたが,「エニグマ」に関してやってみたいと思っていまして,折角長期の連載にするなら,エニグマ導入から解読までの一貫した話を書きたいと思います.一応エニグマ知らない人の為に簡単な説明をしますが,エニグマとは,第二次世界大戦中にナチスドイツで用いられた二十世紀最強暗号(機)の事です.

エニグマ自体の話は暗号の歴史を学ぶ上でも最高に面白いポイントではあるのですが,エニグマ自体が20世紀以前の様々な暗号を参考にしながら制作されていますので,エニグマを学ぶ上で,過去にさかのぼって様々な暗号を紹介しなければ,エニグマの話をいきなりやっても面白みが半減してしまいます.

そこで,長期連載エニグマに関して書く前に,いくつか過去の暗号の話をしてゆきたいと思います.でも,エニグマの話が始まるまでひたすら暗号の話をするわけではなく,いつも通りの進行の中にいくつか暗号の話を入れてゆくだけですから,暗号に興味ない人も安心して読みに来てくださいませ.



今回取り上げるシーザー暗号は「単一換字式暗号」という種類の中の「シフト暗号」のカテゴリに属する暗号です.カエサルシフト(カエサル暗号)とも呼ばれるもので,暗号の中でも最も古いものの一つと言えます.最もわかりやすい暗号とも言えるので,よく暗号を解説する際には一番最初に教わります.

シーザー暗号はガリア戦記などの文献に登場する暗号で,紀元前1世紀ごろから用いられるようになったと呼ばれています.仕組みはとても単純で,文字をシフト(ずらす)事で暗号化します.例えばこんな感じです.


前 後
A → B
B → C


上の例では,一つしかずらしていませんが,これもシーザー暗号を用いた暗号化となります.もう少し具体的な暗号化してみますか.こちらも簡単にする為にシフトの回数は1にします.


A MAD TEA PARTY

B NBE UFB QBSUZ


実際に暗号化してみたい人はこちらのページで遊んでみるとよいかもしれません.

- シーザー暗号

上の画像は15世紀,レオン・アルベルティが作った暗号円盤というもので,シーザー暗号を作る際に用いられたものです.実際に南北戦争などに用いられたそうです.暗号化された文章を読む際に,内側の文字をシフトしたぶん回転させて,外側の文字と対応させて読みます.


このシーザー暗号,先ほどの例からも明かなようにとても単純であるため,解読もあっという間に出来てしまいます.まず真っ先にやられるのが,同じ文字の繰り返しです.例えばこんな暗号文があるとします.


QEB PBZOBQ FP QEB MOFPLKBO


この中で繰り返し出てきている文字があります.それは「QEB」です.英語の中で最も頻繁に出てくる三文字の単語は「THE」であるという統計上のデータが昔からありまして,何度も繰り返される三文字は「THE」であると思えというのは解読の常識となっています.また,もう一つ手がかりにしやすいのは「E」というアルファベットは最も頻繁に出てくるアルファベットなので,暗号化されたアルファベットでも頻繁に出てくる文字が「E」であると仮定出来るのです.この文章中では「B」ですね.これを頻度解析と呼びます.しばしば解読の話をする際には出てきます.

では,先ほどの暗号文を「QEB」を「THE」に置き換え「B」を「E」に置き換えてみましょうか.


QEB PBZOBQ FP QEB MOFPLKBO

THE PEZOEQ FP THE MOFPLKEO


ここまで来れば,はっきりいって解けたも同然ですね.「B」が「E」なら3回シフトされていますので,それに従えば,「P」は「S」,「Z」は「C」とどんどんやってゆけますので.


QEB PBZOBQ FP QEB MOFPLKBO

THE SECRET IS THE PRISONER


となります.またシフトの代わりに,対応付けにとって換字している暗号もあります.たとえば.「A」は「G」に,「K」を「W」にといった感じです.この方法も基本の解読方法はシーザー暗号と全く変わりません.


シーザー暗号は仕組みが恐ろしく簡単であるため,その後長きにわたり利用されてきました.先ほど解読の例を示しましたが,シーザー暗号単体の暗号化というレベルでは,既にその存在は全くの無価値と化しています.ですが,友達同士のちょっとした遊びの伝言や,遊びで名前を付ける際などに用いられてきました.

遊びで名前を付けるとはどういうことかと言いますと,最も有名な例は「2001年宇宙の旅」に登場する人工知能「HAL」です.HALはシーザー暗号が使われた名前で,「IBM」をシフトしたものです.このような例は我々の身近にもあって,良い例は「Winny」です.WinnyはWinMXというファイル交換ソフトの次のソフトウェアという意味合いで「WinMX」の「MX」をシフトして「NY」になりました.

シーザー暗号はコンピュータを扱うものにとって,なにか洒落た名前を付けるときには必要な道具の一つだったりします.覚えてそんはないかと思いますよ.