コンテンツへ移動
解説 · コードと暗号のラボ

古典的な暗号:シーザー暗号、ROT13、アトバッシュ暗号、アフィン暗号

シーザー暗号、ROT13、アトバッシュ暗号、アフィン暗号、キーワード暗号の仕組み、文字数を数えて解読する方法、そしてなぜこれらの暗号は現代では安全ではないのかを解説します。対象年齢:12歳以上/大人。

4分で読めます公開:

人々は、2000年以上前から、誰の目にも見える場所にメッセージを隠してきました。初期の暗号化手法は、あらかじめ決められたルールに従って、各文字を別の文字に置き換えるという単純なものでした。これらは使いやすく、暗号学の学習を始めるには最適な方法ですが、根気強い攻撃者には簡単に解読されてしまいます。このガイドでは、5つの古典的な暗号化手法の仕組みと、なぜそれらが現代では役に立たないのかを解説します。

平文、暗号文、および鍵

元のメッセージが平文です。暗号化されたものが暗号文です。暗号とは、一方をもう一方に変えるルールで、鍵とは、どの暗号化方法を使うかを正確に決める秘密の情報です。

1800年代から続くよい習慣は、敵が暗号の方法を知っていて、秘密なのは鍵だけだと考えることです。以下のすべては、その基準で判断すべきです。つまり、相手があなたのしたことを知っていても、鍵を知らなければ、メッセージを読めないでしょうか?

シーザー暗号:アルファベットをずらす

シーザーシフトは、各文字を一定の数だけ前にずらします。シフトを3にすると、AはD、BはEと書き、Zは一周してCに戻ります。ローマの作家スエトニウスは、ユリウス・カエサルが軍事文書でこれを使ったと記しています。

ずらす場所の数が鍵になります。それを知っている人なら、逆向きにずらせます。問題は、鍵の数がとても少ないことです。使えるシフトは25通りしかありません。攻撃者はすべて試せばよく、これは総当たり検索と呼ばれます。手作業でも1分、コンピューターなら一瞬で終わります。

ROT13

ROT13は、シーザーシフトを13文字に固定します。アルファベットは26文字なので、13文字のシフトを2回行うと最初に戻ります。暗号化と復号は同じ操作です。フォーラムではネタバレを隠すために使われました。何かを守れるからではなく、何気なく見ただけでは読めなくなるからです。

Atbash:鏡のように反転するアルファベット

Atbashでは、アルファベットを下に逆順で並べます。AはZ、BはY、CはXというように対応します。これはヘブライ語のアルファベットに由来し、古代の文書にも登場します。

ROT13と同じように、鍵がまったくありません。しかも、自分自身を元に戻します。鏡をもう一度見るように変換すれば、元の状態に戻ります。つまり、これは錠前ではなくパズルです。誰かがパターンに気づけば、これで書かれたすべてのメッセージを読めてしまいます。

アフィン暗号:掛けてからずらす

各文字に数を割り当てます。A = 0からZ = 25までです。アフィン暗号では、その数に a を掛け、b を足して、26で折り返します。

E(x) = (a·x + b) mod 26

a = 1にすると、普通のシーザーシフトに戻ります。掛け算によって隣り合う文字が遠くに離れるので、より複雑に見えます。

ただし、注意点があります。復号するには、暗号文の各文字が元の文字1つだけから生まれていなければなりません。それが起きるのは、a と26に共通の約数がない場合だけです。だから a = 3と a = 5は使えますが、a = 2や a = 13は使えません。異なる2つの文字が同じ場所に送られてしまうからです。a は12通りだけ使え、b の26通りと組み合わせると鍵は312個です。25個よりはよいですが、コンピューターにとってはまだ少なすぎます。

キーワード置換:どんな並べ替えでも

すべての文字をルールに従って動かすのはなぜでしょう? 置換暗号では、鍵にどんな並べ替えアルファベットでも使えます。覚えやすくするには、まずキーワードを書き、重複する文字を取り除き、そのあと使っていない文字を順番に加えます。キーワード ZEBRAS を使うと、鍵アルファベットは ZEBRASCDFGHIJKLMNOPQTUVWXY になります。つまり、A は Z に、B は E に、C は B に変わり、そのように続きます。

可能な並べ替えの数は 26 の階乗で、約 4 × 10²⁶ 通りです。すべてを試すのは不可能なので、置換暗号は何世紀もの間、解読不可能に見えました。しかし、実際はそうではありません。

ライブラボ 暗号化を体験できるインタラクティブなラボです。ホイールを回してメッセージを暗号化し、その後、それを解読してみてください。 コードと暗号のラボラボをすべて見る →

これらが今では安全ではない理由

置換暗号には致命的な特徴があります。文字はいつも同じ文字に変わるのです。そのため、言語の 特徴 が残ります。英語では E が最も多く現れ、次に T、A、O が続きます。一方、Q と Z はめったに現れません。イスラム世界の学者たちは、9世紀ごろに 周波数分析 を説明しました。暗号文の文字を数え、最も多い文字を E に対応させ、単語のパターン(1文字だけの単語はおそらく A または I)を使って残りを埋めていく方法です。

長いメッセージほど統計が正確になるため、鍵の候補がどれほど多くても役に立ちません。現代の暗号は、暗号文にこのようなパターンが現れないように設計されており、安全性は推測するにはあまりにも大きな鍵に基づいています。本当に大切な情報には、十分にテストされた現代のツールを使い、自分で暗号方式を作らないでください。

ラボでこれを探究する方法

暗号と暗号解読ラボでは、回して使える暗号ホイールに加え、文字を数えたり、推測を試したりするツールが使えます。無料で遊べる最初のワールドは、次の順で進めるのがおすすめです。

  1. シーザーシフトから始めて、暗号を1つ解いてみましょう。
  2. ROT13で自分自身が逆操作になる挙動を見てから、アトバシュ暗号に進みましょう。
  3. アフィン暗号:掛け算してからシフトで、どの倍率が使えるか試しましょう。
  4. キーワード置換で、文字を入れ替えた鍵を作りましょう。

これは歴史上の暗号を簡略化した学習モデルです。鍵や攻撃について直感を養うためのもので、実際のメッセージを守るためのものではありません。

要点
  • 鍵が並べ替えを決めます。攻撃者は方法を知っていると仮定しましょう。
  • シーザー暗号には使える鍵が 25 個しかなく、ROT13 と Atbash には秘密の鍵がありません。
  • アフィン暗号の乗数は 26 と共通の因数を持ってはいけないため、使える値は 12 個です。
  • キーワード置換には非常に多くの鍵の候補がありますが、文字の周波数分析で解読できます。
無料レッスン · コードと暗号のラボ

シーザー暗号

すべての文字が同じ距離だけ移動します。. 約6分です。 無料で、アカウント不要。ブラウザですぐに使えます。

無料レッスンを始める
共有XLinkedInFacebookRedditメール

間違いを報告

何が問題ですか?
0 / 2000 · 10文字以上
レポートと一緒に送信されます
  • ページ
  • 対象 Classic Ciphers: Caesar, ROT13, Atbash and Affine · caesar-cipher-rot13-atbash-affine-explained
ブラウザの種類も入力してください。報告はサポートシステムに送られます。プライバシーに関するお知らせをご覧ください。

Novarekaのシミュレーションは、学習用にわざと簡略化したモデルです。アイデアがどのように動くかを示すもので、専門家、医療、工学に関するアドバイスの代わりにはなりません。