トップページの「もふねこの暗号ボックス」でシーザー暗号を体験してみたかな? アルファベットや文字をズラすだけで暗号が作れる、シンプルで楽しい仕組みだよね。でも実は、シーザー暗号には根本的な弱点があって、暗号の世界では「初歩的な暗号」として扱われているんだ。今回は「なぜ解読できてしまうのか」を2つの手法で体験しながら学ぼう!
❶ 総当たり攻撃(Brute Force Attack)
シーザー暗号の「鍵」は、「文字を何文字ずらすか」という数字だけ。英語なら A〜Z の 25通りしかない(ずらし数ゼロは元と同じだから除く)。
つまり、暗号文さえ手に入れれば、全パターンを順番に試せば必ず元のメッセージが見つかるのだ。これが「総当たり攻撃(Brute Force Attack)」の基本的な考え方だ。
25通りなら、人間が手で試しても数分でぜんぶ確認できちゃうね。コンピュータなら一瞬だよ🐾
🔓 総当たり攻撃シミュレーター
英語の暗号文を入力すると、鍵1〜25のすべての解読結果を一覧表示します。意味のある英語を探してみよう!
❷ 頻度解析(Frequency Analysis)
総当たり攻撃は「鍵の数が少ない」という弱点を突くもの。では文字数が多い暗号はどうする? そこで登場するのが「頻度解析」という手法だ。
英語の文章では、文字の出現頻度に統計的な偏り(パターン)がある。例えば:
| 文字 | 英語文章での出現頻度 |
|---|---|
| E | 約 12.7%(最多!) |
| T | 約 9.1% |
| A | 約 8.2% |
| O | 約 7.5% |
| Z, Q, X | 約 0.1〜0.2%(最少) |
シーザー暗号は文字を一定数ずらすだけなので、この頻度パターンが保たれる。だから、暗号文の中で最も多く登場する文字=元の「E」」と推測できる。そのズレ数が鍵になる!
📊 頻度解析ツール
英語の暗号文を入力すると、各文字の出現頻度をグラフで表示します。最も多い文字が「E」(鍵=0のとき)のはずなので、そのズレが鍵になります。
❸ シーザー暗号から学べる教訓
シーザー暗号は「弱い」と言われるけど、それを知ることが現代の強い暗号を理解する土台になる。実際、大学の情報セキュリティ講義でも「暗号の弱点を教える教材」として使われているんだ。
😰 弱点
- 鍵の種類が25通りしかなく、総当たり攻撃で即解読
- 文字の頻度パターンが変わらないため頻度解析に弱い
- 単純な線形変換のため解読が容易
😊 優れている点
- 暗号文の情報量的な冗長性がない(文字数は変わらない)
- 暗号化・復号の計算量が極めて少ない
- アルゴリズムを公開しても、鍵さえ共有できれば通信可能という原則を体現
💡 「欠点から学ぶ」が暗号の進化の歴史
- 「鍵の種類を増やせ」→ 複雑な換字暗号・エニグマ機へ
- 「頻度パターンを壊せ」→ ヴィジュネル暗号(ランダムな多段シフト)へ
- 「解読不可能な数学的根拠を持て」→ RSA・AES・楕円曲線暗号へ
シーザー暗号の弱点を一つひとつ「直した」ものが、現代暗号の進化の歴史なんだ!
📅 暗号史の中のシーザー暗号(BC1世紀〜)
シーザー暗号が使われたのは紀元前1世紀のローマ帝国。その後も人類は暗号の解読と開発を繰り返してきた。