映画『2001年宇宙の旅』のトリビア(IBM→HAL)
SF映画の金字塔『2001年宇宙の旅』に登場するAI「HAL9000」。実はこの名前、コンピュータ会社「IBM」の各文字をアルファベット順で「1つ前にずらした」ものだという説をご存知ですか?(H←I, A←B, L←M)。 真偽はともかく、これは今回紹介する「シーザー暗号(シフト暗号)」そのものです。単純ですが、私たちの身の回りにはこうした「ずらし」の遊び心が溢れています。
この「ずらす」という行為、実は数学的には非常に重要な意味を持っています。
ちなみに、星のカービィを作った、”HAL研究所“の正式な由来は、これだけではないですが、この逸話を創業当初のメンバー前任天堂社長の岩田聡さんも知っており、ベンチャー精神を込めて、”IBMの一歩先を行く“とあえて採用したと語っていました。
社長が訊く「wii U」: https://www.nintendo.co.jp/wiiu/interview/hardware/vol8/index2.html
実用的なシーザー暗号の歴史
シーザー暗号は、有名でありちょっとした創作の小ネタだけであるだけでなく、実際に実用的?に利用されてきた歴史があります。その例を2つ挙げます。
「ブルータス、お前もか」で有名な古代ローマの英雄ジュリアス・シーザー(ユリウス・カエサル)。彼はガリア遠征の際、軍事機密が敵に漏れるのを防ぐため、手紙の文字を「3つずらして」書いたと言われています。これが、スライド式の換字暗号がシーザー暗号と呼ばれている由来です。
2006年、イタリアン・マフィアのボス、ベルナルド・プロベンツァーノが逮捕されました。彼は40年以上も警察の目をごまかし続けましたが、その連絡手段は「シーザー暗号」で書かれたメモでした。(これは実用的な例ではあるもののあまり褒められた内容ではないですね。)
このようにシーザー暗号は古代の敵から情報を守ったり、現代の捜査網を攪乱することも可能な有用暗号として知られています。
シーザー暗号の仕組みと数学
シーザー暗号(Caesar Cipher)は、平文の各文字を辞書順に \(k\) 文字分だけシフト(移動) させる暗号です。

シーザー暗号の定義
アルゴリズム
文字をアルファベット順に\(k\)個ずらす
例 (\(k=3\) の場合):
- A \(\to\) D
- B \(\to\) E
- …
- X \( \to \) A (末尾は先頭に戻る)
※シーザー暗号では、k=-2 = (25 -2) となるので、プラス側だけで表記することが多いです。
数学的にシーザー暗号を記述
アルファベットA〜Zを、0〜25の数字に置き換えます(A=0, B=1, …, Z=25)。
すると、シーザー暗号は以下の数式で表せます。
合同式 (Mod)を用いて、
\[E(x) = (x + k) \mod{n}\]
- \(x\): 平文の文字(0から始まる番号)
- \(k\): 鍵(ずらす数)
- \(n\): アルファベットなどの文字数
- \(\mod{26}\): 「26で割った余り」という意味。
シーザー暗号の安全性
さて、文字を置き換えたことで、前回の「転置式暗号」の弱点は克服できたのでしょうか?
メリット:
- 文字そのものが変わるため、パッと見で意味を推測するのは不可能になりました。
致命的な弱点: しかし、現代の基準で見ると安全性は 「皆無」 です。なぜなら、「鍵のパターンが少なすぎる」 からです。
- ずらす数は 1〜25 の 25通り しかありません。
- つまり、全パターン試せば(ブルートフォース攻撃)、人間でも数分で解読できてしまいます。
また、「文字の頻度」そのものの形は変わりません(Eが一番多いなら、3つずらしたHが一番多くなるだけ)。統計的な解析にも依然として無力です。
シーザー暗号の解読(ブルートフォース:総当たり)
シーザー暗号では、取れる鍵が英語ならせいぜい25個なので、総当たり的に全部試しても、余裕で計算できてしまいます。日本語で漢字含めたりしたらちょっと大変かもしれませんが、現実的な計算時間で解けます。
ブルートフォースで解読
暗号文に対して、総当たり的に文字を置き換えて、英文として正しそうかどうかで、暗号解読を自動化できます。
Q.例題:”Rfc kyega umpbq ypc qoscykgqf mqqgdpyec” これはシーザー暗号です、解読せよ。
(プログラムでも、メモでもいいので手元で試してみてください。)答えは記事下の方にあります。
まとめ
シーザー暗号は、アルファベットを数字とみなし、計算によって暗号化する「数理暗号」の始祖です。 しかし、鍵の少なさ(25通り)ゆえに、現代のコンピュータの前では無力どころか、紙とペンだけでも破られてしまいます。
シーザー暗号では、換字位置をずらすだけでしたが、換字位置を掛け算と組み合わせてもっとパターンを増やすとどうでしょうか?
次回は、乗算型の換字式暗号について紹介します。アフィン変換型の換字式暗号編でお会いしましょう。
換字式暗号 -シーザー暗号より強い、アフィン変換型の換字式暗号-【ANGOUのすゝめ】#4
シーザー暗号は「足し算」でしたが、「掛け算」を使うとどうなる?乗算型暗号の仕組みと、鍵の条件「互いに素」、鍵の個数を導く「オイラーのφ関数」を解説。さらに両者を組み合わせた「アフィン暗号」の強度に迫ります。
おまけ:ちょっと面白い換字式暗号
シーザー暗号では、スライドする幅さえ分かってしまうと解けてしまうという弱さがありましたが、”ふくざつ”な変換表を用いれば、解読が難しい換字式暗号をつかえます。しかし、この暗号表を毎回送ったり覚えるのは大変であり、これが漏洩したら元も子もありません。
そこで、特定のキーワードとルールを用いれば、この変換表を伝えられる換字式暗号があります。
【鍵配列暗号】その合言葉が鍵になる。 -鍵配列型の換字式暗号-【ANGOUのすゝめ】オマケ#1
合言葉(キーワード)を使ってアルファベットを混ぜる「鍵配列型」の換字式暗号を解説。シーザー暗号より強力で、スパイのように記憶だけで運用できる暗号の作り方と仕組みを、パズル感覚で楽しく学びましょう。
5 記事
ANGOUのすゝめ 一 ─暗号の始まりと転置─
暗号の分類と転置暗号を理解する
例題解答
問題文:”Rfc kyega umpbq ypc qoscykgqf mqqgdpyec” これはシーザー暗号です、解読せよ。
これは、k = -2 のスライドでした。 2つだけ進めると、読める英文になります。
解答は、”The magic words are squeamish ossifrage”です。
この意味は、「魔法の言葉は「気難しいヒゲワシ」だ。」です。
これは1977年にRSA暗号の開発者たちが提示した「RSA-129チャレンジ(解読懸賞金付き問題)」の実際の答えです。当時は「解読に4000兆年かかる」と言われていましたが、1994年に世界中のボランティアの計算能力を結集して解読されました。