Caesar cipherには2,000年以上の歴史があります。ユリウス・カエサルは、各文字をアルファベット上で3つ先へずらし、秘密の軍事メッセージを送ったとされています。現在は主にパズル、ゲーム、暗号技術の基礎学習に使われます。安全ではありませんが、暗号化の仕組みを学ぶ出発点として適しています。
Caesar cipherの仕組み
Caesar cipherは、各文字をアルファベット上で一定数だけ前後にずらした別の文字へ置き換えます。たとえばシフト3では、AはD、BはEになり、Zは先頭へ戻ってCになります。この位置数をシフトまたは鍵と呼び、メッセージのエンコードとデコードで同じシフトを使います。
Caesar cipherでメッセージをエンコードする方法
- シフト数を選びます。たとえば3(古典的なCaesarシフト)または13(ROT13)です。
- メッセージ内の各文字を、選んだ数だけアルファベット上で先へずらします。
- 空白、数字、句読点は変更しません。
- その結果がエンコード済みのメッセージです。
- 次のツールを使うと テキスト暗号化 任意のシフト値で自動的に処理できます。
Caesar cipherメッセージをデコードする方法
Caesar cipherをデコードするには、シフトを逆方向へ戻します。シフト3でエンコードしたなら、各文字を3つ前へ戻します。シフトが不明でも、25通りすべてを試せば、どれか一つが読める文章になります。この方法は総当たり攻撃と呼ばれ、Caesarシフトが25通りしかないため成立します。
ROT13とは何か、Caesar cipherとの関係
ROT13は、シフトを13に固定したCaesar cipherです。英語のアルファベットは26文字なので、13文字のシフトを2回適用すると元の位置へ戻ります。つまりエンコードとデコードは同じ操作で、結果へROT13をもう一度適用すれば原文になります。オンラインではネタバレや軽いジョークを隠すために使われますが、本当の安全性はありません。
Caesar cipherは本当に安全ですか?
いいえ。Caesar cipherは簡単に破れます。シフトは25通りしかなく、すべて試しても数秒です。頻度分析にも弱く、英語ではEが最も多いため、暗号文で最頻の文字がEを変換したものだと推測できます。本当に守りたい情報へCaesar cipherを使ってはいけません。実際の安全性が必要なら次を使います テキスト暗号化 同じツール内で利用できます。
Caesar cipherは学習、パズル、ゲームに最適です。置換暗号の仕組みをわかりやすく体験でき、より強力な暗号方式を学ぶ前の第一歩として役立ちます。