シーザー暗号の仕組み|作り方・解き方・弱点
シーザー暗号の仕組み|作り方・解き方・弱点
シーザー暗号は、文字を一定数だけずらして置き換える単一換字式暗号の古典例です。紙と鉛筆でアルファベットを円に描き、3文字ぶんずらしてHELLOを追いかけてみると、この暗号が「難しそう」に見えて、実は手でちゃんと作れる仕組みだとすぐ腑に落ちます。
シーザー暗号は、文字を一定数だけずらして置き換える単一換字式暗号の古典例です。
紙と鉛筆でアルファベットを円に描き、3文字ぶんずらしてHELLOを追いかけてみると、この暗号が「難しそう」に見えて、実は手でちゃんと作れる仕組みだとすぐ腑に落ちます。
この記事では、その基本の仕組みから、HELLOがKHOORになる作り方と、KHOORをHELLOへ戻す解き方を順にたどります。
あわせて、英字26文字では実質25通りしか試せない総当たりや、文字の偏りを見る頻度分析でなぜ破られるのか、さらにROT13がシーザー暗号の仲間としてどう位置づくのかまで整理します。
古典暗号を学びたい人、謎解きやプログラミングの入口として触れてみたい人には、シーザー暗号は手触りのある入門教材になります。
その一方で、現代では歴史的方式として扱うべきもので、安全目的の暗号としては推奨できません。
この暗号が生まれた背景
古代ローマでの使用伝承と人物名を明記
シーザー暗号の名前は、古代ローマの政治家・将軍であるガイウス・ユリウス・カエサル(Gaius Julius Caesar)に結びついています。
より丁寧に言えば、この方式の最初期の記録された使用例としてカエサルの名が挙がる、という位置づけです。
カエサルに結びつけて語られるとき、代表的なシフト数は3です。
たとえば A を D に、B を E に、C を F に置き換えていき、末尾まで来たら Z の先で止まらず A に戻る循環で処理します。
前のセクションで触れたHELLO→KHOORも、この3文字シフトの典型例です。
紙にアルファベットを二列書いて一方を3つずらすだけで形になるので、軍事や政治の現場で「すぐ使える記号的な工夫」として想像しやすいのも、この暗号の面白いところです。
人物名があると記憶に残りやすく、カエサルという固有名が出ることで単なる文字遊びではなく「通信を隠す必要があった時代の道具」として輪郭が出てきます。
仕組みが手作業で追える点も、歴史の逸話と暗号の構造を結びつけやすくします。
用語整理
ここで用語を一度そろえておくと、全体像がすっきりします。
シーザー暗号は英語で Caesar cipher と呼ばれ、シフト暗号の一種です。
シフト暗号は英語で shift cipher といい、文字ごとに対応先を固定して置き換える単一換字式暗号の仲間に入ります。
単一換字式暗号は英語で substitution cipher と呼ばれます。
つまり分類をたどると、「単一換字式暗号」という大きな箱の中に「シフト暗号」があり、その代表例として「シーザー暗号」がある、という並びです。
ただし、このあたりは資料ごとに言い方が少し揺れます。
広い意味では、アルファベットを一定数ずらす方式全般をシーザー暗号と呼ぶことがあります。
一方で、狭い意味ではカエサルにちなむ3文字シフトだけをシーザー暗号と呼び、ほかのシフト量は「シフト暗号」と分ける整理もあります。
実務の暗号技術ではなく、教育やパズルの文脈で語られることが多い題材なので、この用語ゆれはわりと頻繁に出会います。
記事を読む側としては、「固定シフトで文字をずらす方式を指しているのか」「その中でも3シフトを特に指しているのか」を見分ければ十分です。
もう一つ押さえておきたいのが、古典暗号という歴史的な分類です。
シーザー暗号は、現代暗号のように計算量や鍵管理を前提に設計されたものではなく、文字の置き換えそのものを工夫する時代の発想に属します。
そのため、暗号史の文脈では代表的な古典暗号として扱われます。
いっぽう現代のセキュリティの観点では、これは歴史的方式です。
英字26文字なら実質的なシフト候補は25通りしかなく、総当たりでも試せますし、単一換字式暗号として文字頻度の偏りも残ります。
学ぶ価値は大きいのに、守る力は今の基準では足りない。
このギャップこそ、シーザー暗号を学ぶ面白さでもあります。
関連語としてROT13に触れる場面もありますが、これはシフト量を13に固定した特別な例です。
2回適用すると元に戻るという性質があり、軽い難読化やネタバレ隠しで見かけます。
ここでも「固定シフト」という骨格は同じで、シーザー暗号の発想がそのまま残っています。
本筋から少し外れますが、ローマにまつわるいくつかの逸話が伝わっています。
たとえば一部資料ではアウグストゥスが右に1文字シフトする方法を用いたという記述や、末尾の扱いに関する慣習(X を AA と表す等)の伝承が見られます。
ただしこれらは史料が限られるため伝承として扱うのが適切です。
💡 Tip
アウグストゥスに関する逸話は一部の伝承であり、史料が限られているため学術的に確定していません。一次史料が乏しい点に留意してください。参考として英語版 Wikipedia の該当ページを挙げます。本文では本筋を優先し、こうした脇道は短く触れる形に留めています。
固定シフトという考え方
シーザー暗号の芯は、アルファベットを毎回同じ数だけ横にずらすことです。
たとえばシフト3なら、A は D、B は E、C は F に置き換わります。
途中で規則が変わることはなく、平文の各文字に同じ操作を繰り返します。
だからHELLOなら、H が K、E が H、L が O、L が O、O が R になって、KHOORという形になります。
ここは頭の中だけで理解するより、紙に二段の対応表を書いたほうが一気に腑に落ちます。
上の段に A から Z、下の段に3文字ずらした D から Z、そして A、B、C と並べてみると、H の真下が K になっているのを指で追うだけで、変換の感覚がつかめます。
筆者は古典暗号を説明するとき、この「指でなぞる」作業をよく勧めます。
文字が計算式ではなく、ちゃんと動く部品として見えてくるからです。
シフト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 |
この表を見ると、前半は単純な横ずれですが、X 以降で X が A、Y が B、Z が C へつながります。ここにシーザー暗号らしい「循環」の発想があります。
円環で見るアルファベット
対応表が一直線の定規だとしたら、円環の図は回転するダイヤルです。
A から Z までの26文字を円に並べ、たとえば H を起点にして右へ3つ進む弧矢印を描けば、到着点が K になると一目でわかります。
さらに Z から右へ1つ進むと A に戻る絵にしておくと、巻き戻りの処理が「例外」ではなく、最初から円の上の通常動作だと見えてきます。
本文中に図を置くなら、26文字を時計盤のように配置した円環に、スタートとゴールを色分けして示す構成が向いています。
H から K への短い弧矢印と、Y から B、Z から C の弧矢印を添えると、末尾をまたぐ動きまで直感で追えます。
直線の表だけだと Z の先で急に折り返すように感じる人もいますが、円にすると「もともと輪になっていた」と理解できます。
この見方は、復号を考えるときにも効きます。
暗号化では右に3つ進み、復号では左に3つ戻るだけです。
K から左へ3つたどれば H に戻るので、暗号化と復号が互いに逆向きの移動だと見て取れます。
古典暗号の説明で図が強いのは、文字列を「記号」ではなく「位置」として扱えるからです。
鍵=シフト数と25通りの理由
この暗号でいう鍵は、どれだけずらすかを表すシフト数です。
シフト3なら A は D に、シフト13ならROT13になります。
鍵といっても長い文字列ではなく、英字26文字の世界では 0 から 25 のどれだけ回すか、という単純な指定です。
ここで見逃せないのが、英字では実質の候補が25通りだという点です。
理由は、シフト0は何も変えず、シフト26も1周して元の位置に戻るので、結果が同じになるからです。
つまり「ずらさない」と「26文字ぶんずらす」は区別になりません。
こうして候補は 1 から 25 までに縮みます。
前のセクションで触れた総当たりが通用する背景も、この鍵空間の小ささにあります。
数式で最小限だけ表すなら、A を 0、B を 1、…、Z を 25 と番号づけして、平文を P、暗号文を C、鍵を k とすると、暗号化は C = (P + k) mod 26、復号は P = (C − k) mod 26 です。
ここでの mod 26 は、26に達したら先頭へ戻るという円環の動きを、そのまま数式にしたものです。
図で見た回転が、そのまま式にもなっているわけです。
筆者はこの段階で、式を丸暗記するより「円の上を何歩進むか」と考えるほうが、初学者にはずっと入りやすいと感じます。
手書きの対応表で H から K を追い、円環で Z から A へ戻る様子を見てから数式に触れると、記号だけが浮かずに済みます。
シーザー暗号は、図と式がきれいに重なる珍しい入門題材です。
作り方:HELLO を KHOOR にしてみる
前提と表記
ここでは平文を HELLO、鍵を k=3 として、1文字ずつ暗号化していきます。
表記は前のセクションとそろえて、英字を A=0, B=1, ... , Z=25 と数えます。
つまり H は 7、E は 4、L は 11、O は 14 です。
この番号に鍵の 3 を足し、末尾を越えたら先頭へ戻す、という動きをそのまま文字に戻すと暗号文になります。
筆者はこの段階になると、紙にアルファベットを一列に並べるだけでなく、余白に自分の名前も書いて試したくなります。
26文字を手書きすると、暗号が急に「知識」ではなく「作業」になるからです。
小さな課題ボックスを作るなら、紙に A から Z を書き、自分の名前を k=3 で変換してみる、という一問だけでも十分に盛り上がります。
文字を目で追い、指でずらしていくと、HELLO が KHOOR になる道筋と同じ感覚がそのまま移ります。
図版を入れるなら、二段の対応表のうえで H と K、E と H、L と O、O と R を色で結び、1文字ずつトレースする小さな図が向いています。
円環の図でも構いませんが、この場面では「左の文字が右で何になるか」を順番に追える並列表のほうが手順の再現には向いています。
逐次変換ステップ
では、HELLO を先頭から順に変えていきます。
1文字目の H は 3つ進めると K です。
2文字目の E は H になります。
3文字目の L は O、4文字目の L も同じく O、5文字目の O は R です。
こうして H→K、E→H、L→O、L→O、O→R と並び、暗号文は KHOOR になります。
この流れは、慣れるまでは文字だけで追うより、番号にして確かめると頭が整理されます。検算を兼ねたミニ表にすると、次の通りです。
| 文字 | 位置番号 | +3 | mod 26 の結果 | 暗号文字 |
|---|---|---|---|---|
| H | 7 | 10 | 10 | K |
| E | 4 | 7 | 7 | H |
| L | 11 | 14 | 14 | O |
| O | 14 | 17 | 17 | R |
各文字ごとに同じ足し算を繰り返しているだけです。
シーザー暗号の気持ちよさはこの一定さにあります。
文章でも単語でも、文字ごとの処理がぶれません。
謎解きイベントでこの手順を説明するとき、筆者は「五つの文字に五回同じ動作をするだけ」と言い換えます。
すると、急に計算問題ではなく、同じ型を反復するパズルとして見えてきます。
空白・記号の扱い
実際の文字列を扱うときに迷いやすいのが、空白や記号や数字です。
歴史的なシーザー暗号は英字を対象に考えるのが標準で、空白や句読点までそろって処理する前提ではありません。
この記事では実装例として、英大文字だけを変換し、それ以外はそのまま残す 形で考えます。
たとえば HELLO, WORLD! 2024 なら、英大文字だけがずれて KHOOR, ZRUOG! 2024 という扱いです。
カンマ、感嘆符、空白、数字は動きません。
このルールにしておくと、単語の切れ目や文のリズムが残るので、読者が手で追うときにも混乱が少なくなります。
古典暗号としての雰囲気を保ちつつ、現代の文字列にもそのまま当てはめやすい折衷案です。
もちろん、空白を消して HELLOWORLD のように詰めて扱う流儀もあります。
ただ、HELLO を KHOOR にしてみる入門段階では、「変える文字」と「変えない文字」を分けておくほうが作業の見通しが立ちます。
英字だけがレールの上を動き、記号は背景に残る、と考えると手順が崩れません。
鍵を変えたら何が起きるか
鍵 k を変えると、同じ HELLO でも別の暗号文になります。
たとえば k=1 なら IFMMP、k=5 なら MJQQT です。
素材は同じでも、何文字ずらすかで見た目がまるごと変わるわけです。
この違いを見ると、シーザー暗号の鍵が「別の規則」ではなく「同じ規則の回転量」だとつかめます。
k=3 はその代表例ですが、k=1 なら一歩だけずらす控えめな変換になり、k=5 なら少し離れた文字へ飛びます。
どの鍵でもやること自体は変わらず、各文字の位置に同じ数を足していくだけです。
この感覚をつかむと、暗号文を見たときにも発想が逆向きに働きます。
KHOOR が見えたら、「これは右に 3 進めた結果かもしれない」と考えられるようになるからです。
作る手順を一度きちんと体験しておくと、解く手順に入ったときの景色がぐっと良くなります。
解き方:KHOOR を HELLO に戻す
逆シフトの直感
作るときに右へ3文字ぶん進めたなら、戻すときは左へ3文字ぶん戻します。
シーザー暗号の復号は、暗号化の動きをそのまま逆再生する感覚です。
HELLOをKHOORにした手順が H から K、E から H、L から O、L から O、O から R だったので、解くときはその逆に、K から H、H から E、O から L、O から L、R から O とたどれば元の語に戻ります。
実際にKHOORを先頭から追うと、1文字目の K は3つ戻して H、2文字目の H は E、3文字目の O は L、4文字目の O も L、5文字目の R は O です。
こうして K→H、H→E、O→L、O→L、R→O となり、平文は HELLO です。
暗号化で足した 3 を、復号では引く 3 に置き換えているだけなので、規則そのものは変わっていません。
この対称性が、シーザー暗号のおもしろいところです。
暗号化を +k と書くなら、復号は −k です。
アルファベットを輪として見るなら、左へ k 戻す代わりに右へ 26−k 進んでも同じ場所に着きます。
たとえば k=3 の復号は、左へ3戻すのと右へ23進めるのが同じです。
計算の書き方は違っても、円環の上では同じ点に着地します。
筆者はここを説明するとき、よく「エレベーターで3階上がったなら、戻るには3階下がる」と言い換えます。
行きと帰りで別の魔法があるわけではなく、同じ距離を逆向きに動いているだけです。
この感覚が入ると、暗号文を見たときに構えすぎなくなります。
文字列を前にしても、やることは一文字ずつ静かに戻す作業だとわかるからです。
この段階では、自分で短い暗号文を1語だけ選んで遊ぶと感覚が定着します。
筆者なら5文字前後の語を紙に書き、左へ1、左へ2、と順にずらしていきます。
実質的な候補は25通りあるので、逆方向に試していくとどこかで読める英単語らしい姿が立ち上がります。
KHOORなら3回戻したところでHELLOに当たるので、k=3 が体でつかめます。
答えを先に知っていても、この「読めない列が急に言葉へ戻る瞬間」は毎回ちょっと気持ちがいいものです。
空白や記号の扱いも、復号では暗号化と同じ発想です。
英字だけをレールの上で左へ動かし、空白、カンマ、感嘆符、数字はその場に残します。
たとえば英字と記号が混じった暗号文でも、動かすのはアルファベットだけです。
単語の切れ目や記号の位置が保たれるので、手作業でも追いかけやすくなります。
シフト3以外でも考え方は同じです。
k=1 で作られた暗号文なら1つ戻し、k=5 なら5つ戻します。
ROT13のように13文字ずらす型は少し見た目が独特ですが、復号でやることはやはり同じで、13戻すだけです。
鍵の数字が変わっても、戻し方の骨格はまったくぶれません。
mod 26を数字で確かめる
文字を数字に置き換えると、復号はさらに見通しがよくなります。
アルファベットは 26文字なので、A=0 から Z=25 まで番号を振り、復号は P = (C − k)mod 26 で表せます。
P が平文の位置番号、C が暗号文の位置番号です。
暗号化が足し算なら、復号は引き算になっているだけです。
1文字ぶんだけ手で計算すると、K は 10 です。
ここから 3 を引くと 7 になります。
7 に対応する文字は H なので、K は H に戻ります。
KHOORの先頭がHELLOの先頭へ戻る流れを、数字でもそのまま確認できます。
同じことを続けると、H は 7 なので 7−3=4 で E、O は 14 なので 14−3=11 で L、もう一つの O も同じく L、R は 17 なので 17−3=14 で O です。
文字で追った K→H、H→E、O→L、O→L、R→O が、数字の引き算としてきれいに並びます。
暗号化と復号の対称性は、ここでもそのまま見えています。
mod 26 でひっかかりやすいのは、引き算の結果が負になる場面です。
このときは 26 を足して、0 から 25 の範囲へ戻します。
たとえば C は 2 です。
k=3 で復号すると 2−3=-1 になりますが、このままではアルファベットの番号になりません。
そこで 26 を足して 25 に戻すと、25 は Z です。
つまり C を3つ左へ戻すと Z になります。
アルファベットの端をまたいで巻き戻る動きが、数字ではこの +26 に当たります。
この「負になったら 26 を足す」というひと手間は、文字の輪を数字で表現しただけです。
左へ進みすぎて先頭を越えたら、末尾側へ回り込む。
紙に円を書いて考えても、式で考えても、中身は同じです。
復号を手で再現したいときは、まず文字で戻してみて、迷った文字だけ数字で検算すると流れが止まりません。
パズルとして楽しむなら、その往復がちょうどいいテンポです。
鍵がわからないときの解き方:総当たりと頻度分析
総当たり25通りの使い分け
シーザー暗号は、鍵がわからなくても正面突破できます。
理由は単純で、アルファベットは26文字でも、0文字ずらしと26文字ずらしは元文と同じだからです。
つまり試す価値がある鍵候補は実質25通りしかありません。
ここが、シーザー暗号が単一換字式暗号のなかでもとくに弱いところです。
文字対応の自由度が大きい一般的な換字式暗号は 26! 通りの対応表を持てますが、シーザー暗号は「何文字ずらすか」しか選べません。
教育用やパズルとして親しまれる一方で、秘匿の手段としては心もとないのはこのためです。
短い暗号文では、この25通りを上から順に試していくだけで、意外なくらい早く答えに届きます。
人間の目は、意味の通る語や文脈を見つけるのが得意です。
英単語が現れるか、語尾や前置詞の並びが自然か、文として読めるかといった手がかりを見るだけで、候補のふるい分けが進みます。
たとえば1語や短いフレーズなら、総当たりの一覧を眺めた瞬間に「これだけ急に読める」とわかることが珍しくありません。
短文の総当たりには、オンラインツールdCodeなどが便利です(例:
たとえば暗号文を KHOOR として、復号候補を k=1 から 6 までだけ並べると、見え方はこんな具合です。
| 鍵 k | 復号候補 |
|---|---|
| 1 | JGNNQ |
| 2 | IFMMP |
| 3 | HELLO |
| 4 | GDKKN |
| 5 | FCJJM |
| 6 | EBIIL |
この表では、k=3 の HELLO だけが自然な英単語として立ち上がります。
実際の探索ではこの先も続きますが、25行すべてを紙面に出さなくても、考え方は十分つかめます。
短文なら、こうした一覧を見て「意味のある文」を拾うだけで解ける場面が多いわけです。
頻度分析の基本
暗号文が長くなると、総当たりは依然として有効でも、人の目だけで眺めるより統計を見るほうが早くなります。
ここで効いてくるのが頻度分析です。
シーザー暗号は文字を一定量ずらすだけなので、どの文字が多く現れるかという偏り自体は消えません。
英語なら E や T のような頻出文字が目立ちますが、暗号化すると「多い文字」が別の文字へ丸ごと移るだけです。
暗号文でいちばん多い文字が、平文の E に対応しているのではないか、と読むことでシフト量の見当がつきます。
長めの英語の文章では、ある文字だけが不自然に多く出ているなら、その文字を E と仮定して逆向きにずらしてみる、次に T や A も候補にしてみる、という流れです。
単語の切れ目や二文字・三文字の並びも合わせて見ると、推定はさらに安定します。
シーザー暗号は単一換字式暗号の一種なので、平文の統計的な癖がそのまま残りやすく、頻度分析に対して脆いのです。
しかもその単一換字のなかでも、対応表が「一定シフト」に固定された特に単純な型なので、崩し方もぐっと素直です。
この弱さは、情報量の観点から見ても説明できます。
英語の単一換字式暗号では、一意性距離の目安が 27.6文字 とされます。
これは、そのあたりの長さを超えると理論上は鍵が一つに絞れそうな情報量が見えてくる、という感覚に近い数字です。
実務的にはもう少し余裕を見て、約50文字以上あると頻度分析や文脈判断がぐっと効きやすくなります。
シーザー暗号は鍵空間そのものが小さいので、この文字数に届くころには「候補を全部回す」「頻度を見る」「意味の通る文を選ぶ」がきれいに噛み合います。
短文と長文での戦略の違い
暗号文の長さによって、解き方の主役は少し入れ替わります。
短文では総当たりが前面に出ます。
1語や短い文なら、25通りを順に見て、人間の直感で当たりを拾うほうが速いからです。
そこでは英単語の出現、ありがちな語尾、自然なフレーズかどうかが決め手になります。
たとえば挨拶語、曜日、地名のように候補が頭に浮かびやすい題材なら、統計を持ち出す前に片がつきます。
反対に、長文では頻度分析の比重が上がります。
文字数が増えるほど、英語の頻度特性が安定して見えてくるためです。
E に相当する文字、T に相当する文字、よく出る二文字連接などを追うと、鍵候補が急に絞れます。
しかもシーザー暗号では候補が25しかないので、頻度分析で見当をつけたあとに総当たりで確認する流れがきれいにはまります。
言い換えると、短文は「一覧を見て意味を拾う」ゲームで、長文は「統計で狙いを定めて答え合わせする」ゲームです。
筆者の感覚では、この違いを知っているだけで暗号文への向き合い方が変わります。
短文なのに頻度表を細かく作ると、手間のわりに得るものが少ないことがあります。
逆に長文をひたすら目で追うと、見えている規則を活かしきれません。
シーザー暗号は単純だからこそ、文の長さに応じて道具を持ち替えるだけで、解読のテンポがぐっと整います。
教育用の暗号として扱いやすいのも、この「総当たり」と「頻度分析」の両方を小さな題材で体験できるからです。
安全性と弱点を数で捉える
25通りの限界
シーザー暗号の安全性を数字で見ると、まず目に入るのが鍵空間の小ささです。
英字は26文字ありますが、シフト量として意味があるのは実質 25通り です。
0文字ずらしは平文そのままですし、26文字ずらしても一周して元に戻るので、新しい鍵にはなりません。
代表例として知られるのは +3、ROT13は 13 だけずらす固定形ですが、どちらも同じ「25通りの輪」の中にあります。
この数字は、紙の上で眺めるだけでも妙に生々しく感じられます。
筆者は鍵空間の小ささを説明するとき、0から25まで書いたカードを机に並べる見せ方をよく使います。
横一列に置いてみると、「これで全部です」と言えてしまう規模感が一目で伝わるからです。
暗号と聞くと金庫のダイヤルのようなものを想像しがちですが、シーザー暗号はその印象とは逆で、候補が机の上に並び切ってしまいます。
ここまで候補が少ないと、機械的な総当たりはほとんど障害になりません。
前の節で見た通り、人間が一覧を目で追っても当たりを拾えますし、プログラムなら25個の候補を順番に出すだけです。
現代の安全用途で評価すると、セキュリティ状態は historical と見るのが妥当です。
歴史や教育、パズルとしては魅力がありますが、守るべき情報を預ける方式ではありません。
頻度分析に弱い理由も、同じ単純さから説明できます。
シーザー暗号は文字の並びを横にずらすだけなので、平文の文字頻度分布がそのまま暗号文へ移ります。
英語で E が多ければ、暗号化後も「E に対応するどれかの文字」が多いままです。
図にするなら、「平文の頻度棒グラフを右へそのままスライドさせたものが暗号文の棒グラフになる」と考えると腑に落ちます。
簡易的には、平文側で E の棒が高く、T と A がそれに続き、暗号文側ではその高い棒の位置だけが横に移動している棒グラフを添えると、この弱点が視覚で伝わります。
26!との対比
同じ単一換字式暗号でも、世界はもう少し広いです。
26文字の対応表を好きなように入れ替える一般形では、鍵空間は 26!通り あります。
A を Q に、B を M に、C を Z に、と全体の対応を丸ごと決める方式で、シーザー暗号よりずっと自由度が高いわけです。
ここで見えてくるのは、シーザー暗号が単一換字式暗号の「代表」ではあっても、「広い一族のごく特殊な一角」にすぎないという位置づけです。
シーザー暗号で許される対応は、アルファベット順を保ったまま全体を一定量ずらす形だけです。
つまり、26!通りある単一換字のうち、シーザー暗号として現れるのは実質25通りだけです。
ランダムな置換が無数にある大海原の中で、一直線に並んだ細い航路だけを使っているようなものです。
もっとも、一般的な単一換字式暗号も現代基準では安全とは言えません。
文字頻度が保存されるという弱点は共通しているからです。
英語の単一換字式暗号では、一意性距離が 27.6文字、実務上は 約50文字 あると解読側が統計を効かせやすくなる、という目安があります。
シーザー暗号はその単一換字式暗号をさらに制限した型なので、崩れるまでの道筋がもっと短いと考えたほうが自然です。
鍵空間でも統計的弱点でも、守りの厚みは期待できません。
重ね掛けでは強くならない
直感に反して見落としやすいのが、シーザー暗号は重ね掛けしても強くならないことです。
たとえば +3 したあとにさらに +5 しても、結果は +8 を一度かけたのと同じです。
途中で二段階の処理を挟んでも、外から見えるのは結局ひとつのシフトだけです。
これは、シフトという操作が足し算としてまとまるからです。
アルファベットを円環として見ると、3歩進んでから5歩進むのは、最初から8歩進むのと区別がつきません。
暗号を二重にしたつもりでも、鍵候補は増えず、25通りの世界から出られないわけです。
むしろ「二回かけたから複雑だろう」という思い込みのほうが危うく、攻撃側から見ると相変わらず総当たりと頻度分析の対象にすぎません。
この性質はROT13を見るといっそう印象に残ります。
13文字ずらす操作をもう一度行うと、合計で26文字ぶん進んで元の文に戻ります。
重ねると別の暗号になるどころか、場合によっては元に戻ってしまうわけです。
シーザー暗号は仕組みがきれいに閉じていて、教材としては面白いのですが、その閉じ方自体が安全性の限界でもあります。
歴史的暗号として学ぶ価値は十分にありますが、現代の安全用途に置き換える対象ではありません。
ROT13との違いと共通点
ROT13の性質
ROT13は、シフト量を13に固定したシーザー暗号で、英字26文字のちょうど半分だけ回転させる方式です。
対応関係もきれいに左右対称で、A↔N, B↔O, C↔P と続いていきます。
1行だけ書くなら、A↔N, B↔O, C↔P, ... , M↔Z です。
シーザー暗号の表を横にずらして眺めると、ROT13だけはちょうど真ん中で折り返す感覚があり、この対称性がそのまま性質のわかりやすさにつながっています。
用途も独特です。
ROT13は情報を本気で守るための暗号というより、見たくない人には一瞬だけ読みにくくするための軽い難読化で使われてきました。
掲示板やSNSで、映画やゲームのネタバレ、パズルの答え、ちょっと露骨な単語をそのまま見せたくない場面に置かれるのが典型です。
たとえばUsvyre vf gur xvyyreのような投稿を見かけたら、ROT13だと気づいた人だけが頭の中で戻せます。
読める人には読めるし、目に入った瞬間に内容が露出しない。
この「カーテンを1枚だけ引く」くらいの加減が、ROT13らしい立ち位置です。
筆者はこの種の文字列を掲示板やSNSで見かけると、つい紙の端で1文字ずつ対応を書いてしまいます。
spoilerめいた文がROT13で伏せられていると、AとN、BとOの対応を頼りに手で戻せるので、暗号というよりちょっとした言葉遊びに近い手触りがあります。
シーザー暗号との共通点は固定シフトにありますが、ROT13は鍵を選ぶ余地がないぶん、学習教材や文化的なお約束として定着した存在だといえます。
2回適用で元に戻る理由
ROT13がよく知られているいちばんの理由は、2回かけると元に戻ることです。
これは13文字ずつ2回進めると、合計で26文字ぶん進むからです。
英字は26文字で1周するので、1周した時点で出発点に戻ります。
シーザー暗号では通常、暗号化と復号で逆向きのシフトを使いますが、ROT13では同じ操作をもう一度するだけで復号になります。
自分自身が逆変換になっているわけです。
1行のデモなら、HELLO → URYYB → HELLO で十分に伝わります。
HはUへ、EはRへ、LはYへ移り、もう一度同じ規則を当てると元の位置に帰ってきます。
これはA↔Nのように文字がペアで結ばれているからでもあります。
AにROT13をかけるとNになり、NにROT13をかけるとAに戻る。
BとO、CとPも同じです。
片道切符ではなく、同じ券で往復できる仕組みだと考えると印象に残ります。
ここは実際に手で試すと腹落ちします。
たとえばSNSで見かけそうなFcnvyreのような短い語を紙に書き、1回目でSpa...と対応を追い、もう1回同じ規則を当てると元の綴りに戻ります。
筆者も最初にこれを手でやったとき、復号という別作業が要らないことに妙な快感がありました。
暗号を解いているというより、裏返したカードをもう一度裏返して表に戻す感覚です。
この性質は、シーザー暗号との違いを整理するうえでも象徴的です。
共通点はどちらも固定シフトであること、違いはシーザー暗号が複数のシフト候補を持つ一般形であるのに対し、ROT13は13に固定されていて一般化の余地がないことです。
だからこそ扱いは軽快で、ネタバレ隠しや軽い難読化にはちょうどよい一方、解く側にとっては規則が最初から見えているのとほぼ同じです。
ここで見えてくるのは、ROT13が「暗号の仲間」ではありつつ、文化的には「読める人だけ読んでください」という合図として機能してきた、少しユーモラスな存在だということです。
なぜ現代の暗号の出発点として重要か
アルゴリズムと鍵の分離
シーザー暗号が現代の暗号を学ぶ入口としてよくできているのは、仕組みそのものと秘密にする値を、手で触れるレベルまでくっきり分けて見せてくれるからです。
やっている操作は「文字を一定数ずらす」という公開された規則で、隠すのはそのずらし量だけです。
ここで見えてくるのが、暗号は「方法を秘密にする」のではなく、「方法は共有しても、鍵がなければ読めない形を目指す」という発想です。
現代の暗号でも、この分離は土台のまま残っています。
歴史的にはシーザー暗号そのものは素朴ですが、学習効果はむしろそこにあります。
箱の中身が見えるので、「どこまでが設計で、どこからが鍵か」が曖昧になりません。
筆者も暗号を初めて人に説明するときは、まずこの一点を体感してもらいます。
規則は黒板に書いてしまってよく、隠すのは数字だけ。
その整理が頭に入ると、後で登場するもっと複雑な暗号も、見た目ほど遠い話ではなくなります。
同時に、ここから現代暗号との距離も見えてきます。
前のセクションまでで触れた通り、シーザー暗号は固定シフトの単一換字式で、現代の安全な暗号とは役割がまったく異なります。
AESはNISTが2001年に標準化した共通鍵ブロック暗号で、128ビットのブロックを扱い、鍵長は128・192・256ビットです。
発想の芯に「鍵」がある点はつながっていますが、そこへ至る道筋は、手作業の換字から、機械化された処理、さらに数学的な設計へと伸びていきました。
シーザー暗号は現役の防具ではなく、暗号という道具がどう進化してきたかを示す最初の足場です。
その進化を一言でいえば、鍵空間を広げ、規則性を見えにくくしてきた流れでもあります。
固定シフトでは規則が一列に並んでしまうので、攻撃側はそこを足がかりにできます。
そこで次の発想として出てくるのが、「毎回同じずらし方をしない」ことです。
ここで単純な円盤遊びが、次の時代の暗号へつながっていきます。
ヴィジュネル暗号への橋渡し
シーザー暗号を一歩だけ先へ進めると、「文字ごとにシフト量を変えたらどうなるか」という発想にたどり着きます。
これがVigenère cipher、つまりヴィジュネル暗号への橋です。
固定の1つのシフトで全文を押し通すのではなく、短いキーワードに応じてシフトを並べ、平文の各文字に順番に当てていく。
見た目は少し凝っていますが、部品はシーザー暗号のままです。
言い換えれば、シーザー暗号を1本ではなく何本も連結したものとして理解できます。
この導線が美しいのは、読者が「急に別の暗号が出てきた」と感じにくいところです。
たとえば平文がHELLOで、鍵語がKEYなら、鍵はKEYKEと並びます。
ここで筆者はよく、K、E、Y、K、E と1文字ずつ指で追ってもらいます。
すると「HにはKぶん、EにはEぶん、LにはYぶんずらすのか」と、固定シフトが波打ち始める感覚が一気に出てきます。
たった1行手で追うだけで、単純な換字から多表式換字へ景色が切り替わります。
この変化は、安全性の考え方にも直結します。
単一換字式では、ある平文文字はいつも同じ暗号文字に化けます。
ところがヴィジュネル暗号では、同じ文字でも位置によって別の文字になるので、単純な頻度の偏りがそのまま見えにくくなります。
シーザー暗号の「Lは毎回同じだけずれる」という感覚に慣れた直後だと、この差は手触りとしてよくわかります。
固定の色ガラスを1枚通して見るのがシーザー暗号なら、ヴィジュネル暗号は色の違うガラスを順番に差し替えながら見るイメージです。
もちろん、これで現代の安全水準に届くわけではありません。
ヴィジュネル暗号も、鍵が短ければ繰り返しが生まれ、そこから鍵長を推定できます。
短い鍵では鍵空間もまだ小さく、たとえば鍵長5なら 26 の5乗で 11,881,376 通りです。
数字だけ見ると増えた感じはありますが、現代の計算機にとっては手の届く範囲です。
ここで見えてくるのは、暗号の進化が「少し複雑にした」で止まらず、鍵空間の拡大、統計的な偏りの抑制、機械で高速に回せる構造、そして厳密な数学的設計へと進んでいったことです。
その意味で、シーザー暗号は古いから価値があるのではありません。
暗号の成長方向が、最も小さな模型として見えるから価値があるのです。
固定シフトを理解すると、なぜ人々が多表式へ進んだのかがわかる。
多表式を見ると、なぜそれでも足りず、さらに現代暗号へ進んだのかが見えてくる。
シーザー暗号は出発点にすぎませんが、その出発点がはっきりしているからこそ、暗号史全体の地図が頭の中でつながります。
まとめ
シーザー暗号の芯は、文字を同じ幅だけずらし、端では巻き戻るという単純さにあります。
作るときはHELLOがKHOORになる流れを追い、解くときは逆向きに戻すか、アルファベット上の循環として考えれば迷いません。
弱点は候補が少なく、総当たりや頻度の偏りに耐えられない点で、ここがROT13との関係も見えるところです。
ROT13はその特別版で、同じ操作をもう一度かけると元に戻ります。
筆者はこの手の古典暗号を説明するとき、紙の上で一度手を動かした人ほど仕組みを自分の言葉で話せるようになると感じています。
💡 Tip
演習を3つ終えたら、自分の名前を k=3 で暗号化したか、任意の暗号文を全候補で当たったか、ROT13を2回かけて元に戻るのを確かめたか、この3点を見直してみてください。
次に手を動かすなら、自分の名前で試し、短い暗号文を総当たりで崩し、ROT13の往復を確認する順番がちょうどいいです。
そのあとに単一換字式暗号やVigenère cipherへ進むと、固定シフトがどこで限界を迎えるのかが自然につながります。
現代の安全用途には向かず、学ぶための模型やパズルとして触れるのが、この暗号にいちばん似合う付き合い方です。
関連記事
換字式暗号と転置式暗号の違い|仕組み・例・解読
紙とペンを手にCATと書き、その場で二通りいじってみると、古典暗号の景色が一気に開けます。文字そのものを別の文字に替えれば換字になり、同じ三文字のまま並びだけを入れ替えれば転置になる――同じ平文でも、前者ではFDWのように姿が変わり、後者ではTCAのように位置だけが動きます。
ピッグペン暗号とは?フリーメイソンの記号暗号の仕組み
ピッグペン暗号は、図形記号を使う単一換字式暗号です。筆者も最初は紙に二つの3×3格子と二つのX字を書き、HELLOを一文字ずつ記号に置き換えてみましたが、読めない形が並んでいるのに自分だけは意味を知っている、その妙な手応えが強く残りました。
スキュタレー暗号とは?仕組み・歴史と弱点
古代スパルタで使われたと伝えられるスキュタレーは、棒に細長い帯を巻いて文字を書き、ほどくと読めなくなる道具であり、そのまま方式名としても語られる古典暗号です。文字を別の文字に置き換えるのではなく、順序だけを入れ替える転置式暗号で、鍵になるのは送受信者が同じ直径の棒、
エニグマ暗号機の仕組み|構造・暗号化・解読を図解
映画で見た光るランプの列を思い出しながら、筆者が紙の上で追ってみると、エニグマの1文字は右から左へ進み、反射して、また左から右へ戻る小さな旅をしています。その往復のあいだに、キーボード、プラグボード、ローター、リフレクター、ランプがどう噛み合うのかまで見えてくると、この機械は「複雑な箱」ではなく、