T

Text Machine

強力なテキストツールを、ブラウザで

シーザー暗号

古典的なシーザー暗号(シフト暗号)でテキストを暗号化・復号し、解読することもできます。1〜25の任意のシフト量を選んだり、ROT13・ROT5・ROT47に切り替えたり、解読モードで25通りのシフトをすべて試して最も可能性の高いものを自動検出したりできます。すべての処理はブラウザ上で実行されます。

シフト

3
平文
暗号文

上にテキストを入力すると、結果がここに表示されます。

アルファベット対応表

平文

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

暗号文

D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C

シーザー暗号 の使い方

  1. 1

    暗号化・復号・解読を選ぶ

    平文を暗号文に暗号化したり、暗号文を平文に復号したり、シフト量がわからないメッセージを解くときは解読に切り替えたりします。

  2. 2

    シフト量またはプリセットを選ぶ

    プラスとマイナスのボタンで1〜25の任意のシフト量を設定するか、プリセットをタップします。古典的な13文字シフトはROT13、数字はROT5、印字可能なすべての記号はROT47です。

  3. 3

    テキストを入力する

    メッセージを入力または貼り付けてください。入力すると同時に暗号が自動で適用され、各アルファベットを設定した分だけアルファベット順に移動させ、数字や記号はそのまま通過します。

  4. 4

    キーなしでメッセージを解読する

    解読モードで暗号文を貼り付けると、ツールが25通りのシフトすべてで復号し、文字頻度分析を使って最も可能性の高い平文を強調して表示します。

  5. 5

    コピー・ダウンロード・共有する

    結果をクリップボードにコピーしたり、テキストファイルとしてダウンロードしたり、入力したテキストと設定をそのまま再現するリンクで共有したりできます。

シーザー暗号を理解する

シーザー暗号とは何ですか?

シーザー暗号は、すべての文字をアルファベット順に決まった数だけずらすことでメッセージを暗号化する換字式暗号です。私的な書簡や軍事通信を守るためにシフト量3を用いたと伝えられるローマの将軍ユリウス・カエサルにちなんで名付けられました。各文字が常に同じ文字に置き換えられるため、シーザー暗号は古典暗号のうちで最も単純かつ最も広く教えられる例であり、暗号化の仕組みを学ぶ出発点として今なお最適です。

今日のシーザー暗号は、パズルや脱出ゲーム、CTFのチャレンジ、初心者向けのプログラミング演習に登場します。最も有名な変種であるROT13は、ネタバレやオチ、答えを見える場所に隠すために、今もウェブ全体で使われています。

シーザー暗号の暗号化の仕組み

暗号化するには、鍵と呼ばれるシフト量を1から25の間で選びます。するとメッセージの各文字がその数だけアルファベットを前へ進み、末尾を越えるとZから先頭のAへ回り込みます。復号はこの手順を逆にたどり、各文字を同じ数だけ後ろへずらします。スペースや数字、記号は通常そのまま残されるため、元のメッセージの形や長さが暗号文にそのまま現れます。

たとえばシフト量3では、文字AはDに、BはEになり、単語HELLOはKHOORになります。メッセージを読むには、受け取る側はたった一つのシフト量を知り、すべての文字を3つ後ろへ動かすだけで済みます。

実例: シフト量3

古典的な一文 ATTACK AT DAWN に、カエサル自身のシフト量3を当てはめてみましょう。AはDに、TはWに、CはFに、KはNに対応し、このように進めて暗号文 DWWDFN DW GDZQ が生まれます。スペースはそのままの位置に残り、同じ文字は常に同じ文字に暗号化されるため、ATTACKの連続した二つのTは二つのWになります。シフトを逆にたどれば、DWWDFN DW GDZQ はそのまま ATTACK AT DAWN へ戻ります。

シーザー暗号の計算式

数学的には、各文字は0から25までの数として扱われ、Aが0、Zが25です。暗号化は E(x) = (x + n) mod 26、復号は D(x) = (x - n) mod 26 と書き、xは文字の位置、nはシフト量です。mod 26 の演算がアルファベットを回り込ませるので、Yを3つずらすとアルファベットの末尾を越えずにBに着きます。

ROT13・ROT5・ROT47の解説

ROT13は、シフト量を13に固定したシーザー暗号です。13はちょうど26の半分なので、ROT13を2回適用すると元のテキストに戻り、一度の操作で符号化と復号の両方ができます。ROT5は同じ発想を0から9までの10個の数字に適用するため、数字を隠すのに便利で、ROT47は印字可能な94個のASCII文字すべてをまとめて回転させ、アルファベットと数字、記号を一度にかき混ぜます。これらはいずれも自己反転であり、まさにその点が、短いテキストをすばやく隠したり明かしたりするのにこれほど便利な理由です。

シーザー暗号を破る方法

シーザー暗号は可能な鍵が25通りしかないため、ごく簡単に破れます。最も直接的な方法は総当たり攻撃で、メッセージを1から25までのすべてのシフトで復号し、意味の通る結果を読み取るだけです。より賢い方法は頻度分析で、各候補の文字分布を英語の典型的な頻度と比較します。英語ではE、T、Aが最もよく現れる文字であり、その中から最も近いものを自動で選び出します。このツールの解読モードはその両方を行い、25通りの復号結果をすべて並べ、カイ二乗スコアを使って最も可能性の高い答えを強調して表示します。

シーザー暗号の短い歴史

この暗号はユリウス・カエサルにちなんで名付けられました。歴史家スエトニウスによれば、彼は紀元前50年頃、メッセージを秘密に保つために各文字を3つずらしたといいます。後継者のアウグストゥスは、シフト量1を用いる似た方式を使ったと伝えられます。何世紀もの間、単純な文字のずらしで十分に安全でしたが、それは主に、文字を読める人がごくわずかで、ましてや暗号化されたメッセージを分析できる人はさらに少なかったためです。その弱点は9世紀には理解されており、このときアラブの数学者アル・キンディーが頻度分析を記述しました。それこそが、今日この暗号を数秒で破る、まさにその手法なのです。

シーザー暗号は安全ですか?

いいえ。鍵が25通りしかないシーザー暗号は、手作業でも数分で、コンピューターなら一瞬で破れるため、本当に秘密にすべきものには何の保護も与えません。今日のその価値は、教育的かつ娯楽的なものです。平文、暗号文、鍵、暗号化、暗号解読といった暗号学の語彙を学ぶ理想的な方法であり、パズルやゲーム、コーディングのプロジェクトのための楽しい構成要素でもあります。本当の安全性のためには、代わりにAESのような現代のアルゴリズムが使われます。

シーザー暗号対照表: 25通りのシフトすべて

この対照表は、1から25までのすべてのシーザーシフトに対応する暗号文アルファベットを一覧にしたものです。左の列で目的のシフト量を見つけ、その行を横に読むと、平文のAからZがそれぞれ何に変わるかがわかります。強調された行はROT13で、暗号化と復号の両方を行うシフト量13です。

シフト量暗号文アルファベット (A to Z)
1BCDEFGHIJKLMNOPQRSTUVWXYZA
2CDEFGHIJKLMNOPQRSTUVWXYZAB
3DEFGHIJKLMNOPQRSTUVWXYZABC
4EFGHIJKLMNOPQRSTUVWXYZABCD
5FGHIJKLMNOPQRSTUVWXYZABCDE
6GHIJKLMNOPQRSTUVWXYZABCDEF
7HIJKLMNOPQRSTUVWXYZABCDEFG
8IJKLMNOPQRSTUVWXYZABCDEFGH
9JKLMNOPQRSTUVWXYZABCDEFGHI
10KLMNOPQRSTUVWXYZABCDEFGHIJ
11LMNOPQRSTUVWXYZABCDEFGHIJK
12MNOPQRSTUVWXYZABCDEFGHIJKL
13 · ROT13NOPQRSTUVWXYZABCDEFGHIJKLM
14OPQRSTUVWXYZABCDEFGHIJKLMN
15PQRSTUVWXYZABCDEFGHIJKLMNO
16QRSTUVWXYZABCDEFGHIJKLMNOP
17RSTUVWXYZABCDEFGHIJKLMNOPQ
18STUVWXYZABCDEFGHIJKLMNOPQR
19TUVWXYZABCDEFGHIJKLMNOPQRS
20UVWXYZABCDEFGHIJKLMNOPQRST
21VWXYZABCDEFGHIJKLMNOPQRSTU
22WXYZABCDEFGHIJKLMNOPQRSTUV
23XYZABCDEFGHIJKLMNOPQRSTUVW
24YZABCDEFGHIJKLMNOPQRSTUVWX
25ZABCDEFGHIJKLMNOPQRSTUVWXY

よくある質問

シーザー暗号とは何ですか?
シーザー暗号は、知られている最も古い暗号方式の一つで、軍事メッセージの保護にこれを用いたユリウス・カエサルにちなんで名付けられました。各アルファベットを、決まった数だけ後ろにずらした別のアルファベットに置き換えます。たとえばシフト量3ならAはD、BはEになり、Zを過ぎると先頭のAに戻ります。
ROT13とは何ですか?
ROT13はシフト量が13のシーザー暗号です。アルファベットは26文字なので、13だけ2回ずらすと元のテキストに戻り、同じ操作で暗号化と復号の両方ができます。本格的なセキュリティ目的というより、オンラインでネタバレやオチ、パズルの答えを隠すためによく使われます。
ROT5とROT47とは何ですか?
ROT5は数字の0から9を5つずらし、アルファベットはそのままにするため、数字を隠すのに便利です。ROT47はアルファベット・数字・記号を含む94個の印字可能なASCII文字すべてを47だけずらします。どちらもROT13と同じく自己反転で、同じ操作で暗号化と復号の両方ができます。
シフト量がわからないときは、どうやってメッセージを復号しますか?
解読モードに切り替えて暗号文を貼り付けてください。ツールが1〜25のすべてのシフトで復号して結果を順位付けし、文字頻度分析を使って最も可能性の高い平文を強調します。シフトは25通りしかないため、シーザー暗号はこの方法ですばやく簡単に破れます。
自動解読はどのように動作しますか?
解読機能は、可能な25通りのシフトそれぞれについてテキストを復号し、カイ二乗スコアを使ってその文字分布が通常の英語にどれだけ近いかを測定します。復号結果が最も英語らしく見えるシフトが、最有力候補として表示されます。テキストが多いほど、検出はより信頼できるものになります。
数字やスペース、記号も変換されますか?
標準のシーザー暗号とROT13モードではAからZまでのアルファベットだけがシフトされ、それぞれ大文字・小文字の形を保ち、数字・スペース・記号は変換されずに通過します。ROT5は数字だけをシフトし、ROT47はアルファベット・数字・記号をあえてまとめてシフトします。
シーザー暗号の計算式は何ですか?
暗号化は E(x) = (x + n) mod 26、復号は D(x) = (x - n) mod 26 で、x は 0 から 25 までの文字の位置、n はシフト量です。mod 26 が結果をアルファベットの範囲内に収め、これによって文字が Z を過ぎると A に戻ります。
シフトは何通りあり、安全ですか?
シフト量0や26はテキストを変えないため、役に立つシフトは25通りしかありません。この鍵空間の小ささは、誰でも数秒ですべて試せることを意味するので、今日のシーザー暗号は実質的な安全性をまったく持たず、遊びや学習、パズル用のツールとして扱うのが最適です。
ユリウス・カエサルはなぜシフト量3を使ったのですか?
ローマの歴史家スエトニウスによれば、カエサルは自分の書簡を隠すために各文字を3つずらしました。ほとんどの敵が暗号解読どころか文字さえ読めなかった時代には、固定のシフト量3で十分であり、だからこそこの単純な方式は二千年たった今も彼の名を留めているのです。
入力したテキストはサーバーに送信されますか?
いいえ。すべての暗号化・復号・解読はブラウザ内だけで実行されるため、入力したテキストがアップロード・記録・保存されることはありません。共有リンクでさえ、テキストをURLのハッシュ以降の部分に保持しますが、ブラウザはこの部分をサーバーに送信しないため、自分で共有するまで非公開のまま保たれます。
あるメッセージがシーザー暗号かどうかは、どうすればわかりますか?
シーザー暗号は元の単語の長さや区切り、記号をそのまま保つため、文字が入れ替わっただけの本物の言語のように見えます。強い手がかりは文字頻度のパターンです。すべての文字が同じ量だけ移動するため、英語のいつもの頻度の曲線がアルファベットに沿ってそのまま滑り、その結果、本来Eが占めるはずの位置を別の一文字が支配することになります。解読モードに切り替えて25通りのシフトをすべて試したとき、ちょうど一つのシフトでだけ読めるテキストが現れるなら、それはほぼ間違いなくシーザー暗号でした。どのシフトでもうまくいかない場合、そのメッセージはVigenère暗号や混合換字式暗号といった別の方式を使っているかもしれません。
シーザー暗号とROT13の違いは何ですか?
ROT13は、シフト量を13に固定しただけのシーザー暗号です。一般的なシーザー暗号は1から25までの任意のシフト量を選べますが、ROT13は常に13を使います。13はちょうど26の半分なので、ROT13は自分自身が逆変換になります。つまりテキストを2回通すと元に戻るため、一つの操作で暗号化と復号の両方ができます。ほかのシフト量を使うシーザー暗号は、復号するのに反対方向のシフト量が必要です。
シーザー暗号とVigenère暗号の違いは何ですか?
シーザー暗号はメッセージ全体に一つの固定シフトを使うため、可能な鍵は25通りしかなく、簡単に破られます。Vigenère暗号はキーワードを使って各文字に順番に異なるシフトを適用するため、文字頻度のパターンを隠し、はるかに破りにくくなります。実質的にVigenèreは鍵の文字を循環させながら適用する一連のシーザー暗号であり、だからこそ長らく le chiffre indéchiffrable、すなわち解読不能な暗号と呼ばれていました。
答え付きのシーザー暗号の例を見せてもらえますか?
シフト量3では、HELLOはKHOORになり、メッセージ ATTACK AT DAWN は DWWDFN DW GDZQ になります。カエサルの座右の銘 VENI VIDI VICI は YHQL YLGL YLFL に暗号化され、フレーズ ET TU BRUTE は HW WX EUXWH になります。これらのいずれかを復号するには、復号モードで反対方向にシフト量3を適用するか、暗号文を解読モードに貼り付けてソルバーにシフト量を見つけさせてください。
シーザー暗号にはほかにどんな呼び名がありますか?
シーザー暗号は、各文字が一定量だけずれることから、シフト暗号、シーザーシフト、カエサルのコード、あるいは単にシーザーコードとも呼ばれます。特定のシフト量には独自の名前があります。シフト量13はROT13で、シフト量1はカエサルの後継者Augustusにちなんでaugust cipherと呼ばれることもあり、固定回転暗号というより広い一族はROT-Nと表記されます。これらはすべて同じ仕組みで動作し、このツールで解読できます。
シーザー暗号はコードでどう書きますか?
このアルゴリズムはどの言語でも短く書けます。各文字を順にたどって、それが文字かどうかを確かめ、文字であればAのコードを引いて0から25までの数を得てからシフト量を足し、アルファベットが回り込むように26で割った余りを取り、そのあとAのコードを足し直して数を文字に変えます。文字でないものはそのままコピーして通します。Pythonではordとchrの関数がこの変換を担い、JavaScriptではcharCodeAtとfromCharCodeが同じことをします。これこそが、このブラウザ内ツールの動作のしかたそのものです。

関連ツール

こちらの便利なツールもどうぞ

ヴィジュネル暗号

アトバシュ暗号

レールフェンス暗号

プレイフェア暗号

アフィン暗号

ベーコン暗号