シーザー暗号

文字の順番をいくつか右にずらして書き、決めたルールを知っている人だけが読めるようにした秘密の手紙です。

定義 シーザー暗号(カエサル暗号)は、文字の並びを一定の数だけ後ろへずらして別の文字に置き換える、最も歴史が古く基礎的な暗号方式です。一見すると意味の通らない文字の羅列に見えますが、何文字ずらしたかさえ知っていれば、誰でも簡単に元の文に戻して読むことができます。

文字の並びを横にずらす「秘密の手紙」

友だちと秘密の手紙をやり取りするとき、ひらがなを1文字ずつ後ろにずらして書く約束をしたと想像してみてください。「あ」の代わりに「い」、「か」の代わりに「き」と書くようなルールです。これを使うと「ねこ」という言葉は「のは」のようになり、他の人には意味が伝わらなくなります。

古代ローマの軍司令官ジュリアス・シーザー(ユリウス・カエサル)は、戦場で部下に重要な作戦命令を送る際にまさにこの方法を使いました。アルファベットの文字を右へ3文字ずつ後ろにずらして秘密の手紙を書いたのです。

例えば「A」は「D」になり、「B」は「E」になります。アルファベットの最後にある「Z」は先頭に戻って「C」になります。このように文字の位置を別の文字へ1対1で置き換える方式を単一換字式暗号と呼びます。手紙を届ける使者が敵軍に捕らえられても、内容が漏洩しないようにするための知恵でした。

シーザー暗号円盤と3文字シフト原理 A B C D E F G H I J K L D E F G H I J K L A B C 外側円盤(平文) A 3文字移動 内側円盤(暗号文) D A→D(1:1置換) B→E,C→F規則

ひとつの鍵で施錠と解錠をする「共通鍵」の元祖

暗号の世界では、誰でも読める元の文を「平文(ひらぶん)」、読めないように変換した文を「暗号文」と呼びます。平文を暗号文に変える処理を「暗号化」、再び元の文に戻す処理を「復号」と呼びます。

シーザー暗号で最も重要な鍵となるのは、「文字を何文字ずらしたか」というルールです。暗号学ではこのずらした数を暗号を解くための鍵(シークレットキー)と呼びます。鍵が「3」なら3文字ずらし、鍵が「5」なら5文字ずらして文字を変換します。

手紙を送る側と受け取る側は、あらかじめ同じ鍵の数字を共有していなければなりません。3文字ずらして暗号化したなら、受け取る側は逆に3文字戻して復号することで内容を読めるようになります。このように送信者と受信者が同じ鍵を使うという点で、現代でも広く使われている共通鍵暗号方式(対称鍵暗号)の最も原始的な先祖といえます。

もう少し詳しく:なぜ現代では使われないのか?

もう少し正確にいうと、シーザー暗号は現代のコンピュータ環境においてはまったく安全ではありません。英文字のアルファベットは全部で26文字しかないため、文字をずらすパターンの数が1文字分から25文字分までの「たった25通り」しかないからです。

攻撃者はコンピュータを使わずとも、紙の上に25通りの候補をひとつずつ書き出してみるだけで、わずか5分もあれば暗号を解読できてしまいます。このようにあり得るすべての可能性をしらみつぶしに試して鍵を見つけ出す手法を総当たり攻撃(ブルートフォース攻撃)と呼びます。

仮に文字数が多い言語であっても安全ではありません。日常の言語には頻出する文字の偏りがあるため、暗号文の中で最も多く現れる文字を調べる頻度分析を使えば、あっという間に元の文章が特定されてしまいます。そのため現代の暗号技術は、文字を単に横にずらすのではなく、解読が困難な高度な数学的アルゴリズムと天文学的な長さの暗号鍵を用いています。

🤔 よくある誤解

✕ 誤解

シーザー暗号はコンピュータがなかった古代においては、絶対に解読できない完璧な暗号だった。

✓ 事実

アルファベットの場合、ずらせるパターンは25通りしかないため、手作業でひとつずつ試したり、よく使われる文字の出現頻度を分析したりすれば、コンピュータがなくても簡単に解読できました。

🧺 日常で出会う場面

1 鍵が「3」のとき、英単語の「CAT」を3文字ずつ後ろにずらして「FDW」に変換する処理です。
2 ネット掲示板などでネタバレを防ぐために文字を13文字ずらす「ROT13」ルールも、シーザー暗号の一種です。
💡 つまり ひとことで

シーザー暗号は、文字の並びを決まった数だけずらして隠す、最も基礎的な共通鍵暗号方式です。