【セキュリティ】文字をずらして作る古典暗号!シーザー暗号(シフト暗号)|情報処理問題1000本ノック
歴史上最も有名な暗号の一つ、シーザー暗号。アルファベットを一定の数だけ「ずらす」というシンプルなルールですが、現代の暗号理論の基礎となる考え方が詰まっています。
1. 問題:アルファベットを指定数だけ移動させる暗号
【 問題 】 暗号化の方式のうち、アルファベットなどの文字を、あらかじめ決めておいた一定の数だけ順方向に、あるいは逆方向にずらす(シフトさせる)方式を何と呼ぶでしょうか?
① 転置式暗号 ② シーザー暗号(シフト暗号) ③ ワンタイムパッド ④ 公開鍵暗号
2. 正解:暗号化方式の分類に関する正解
正解: ② シーザー暗号(シフト暗号)
3. 解説:ずらすだけのシンプルなルール
シーザー暗号は、古代ローマの軍事指導者ジュリアス・シーザーが使用したとされる暗号です。例えば「3文字ずらす」というルールなら、「A」は「D」に、「B」は「E」に変換されます。このように、特定の規則で文字を置き換えるため、大きな分類では「単一換字式暗号」に属します。
[ シーザー暗号のポイント ]
・仕組み:文字をアルファベット順に一定数(鍵の値)だけ移動させます。末尾の「Z」を超えた場合は「A」に戻ってループします。
・脆弱性:ずらすパターンは25通り(英文字の場合)しかないため、すべて試す「総当たり攻撃」で簡単に解読されてしまいます。
[ 関連用語の整理 ]
★ ROT13:シーザー暗号の一種で、ちょうど半分の「13文字」ずらすもの。2回施すと元の文に戻る性質があります。
★ 総当たり攻撃(ブルートフォース攻撃):考えられるすべての鍵を片っ端から試す解読手法。
・仕組み:文字をアルファベット順に一定数(鍵の値)だけ移動させます。末尾の「Z」を超えた場合は「A」に戻ってループします。
・脆弱性:ずらすパターンは25通り(英文字の場合)しかないため、すべて試す「総当たり攻撃」で簡単に解読されてしまいます。
[ 関連用語の整理 ]
★ ROT13:シーザー暗号の一種で、ちょうど半分の「13文字」ずらすもの。2回施すと元の文に戻る性質があります。
★ 総当たり攻撃(ブルートフォース攻撃):考えられるすべての鍵を片っ端から試す解読手法。
1. 理解のコツ: 「ずらす数」が共通の「鍵」になります。送信者と受信者が「今回は3文字ずらそう」と事前に決めておく必要があるため、現代でいう「共通鍵暗号」の極めて原始的な形と言えます。
2. 試験対策の視点: 「単一換字式暗号」の具体例として登場します。また、暗号の強度を議論する際の例として、「鍵空間(鍵の候補数)が極めて小さいため現代では安全ではない」という文脈で引き合いに出されることが多いです。
4. まとめ
「アルファベットを一定数だけずらして作る」。これがシーザー暗号(シフト暗号)の核となる定義です。シンプルゆえに解読も容易ですが、暗号化の基本原理を学ぶには最適なアルゴリズムです。
PR