この実験について
何千年もの間、人々は文字を並べ替えてメッセージを隠してきました。ユリウス・カエサルはアルファベット上で各文字を3つ先にずらしました。その後、秘密のキーワードを使って文字を置き換える暗号や、文字ごとにずらす数を変える暗号が登場しました。こうした暗号はどれも、最終的には解読されました。多くの場合、それぞれの文字が現れる頻度を数える方法が使われました。自分のメッセージを暗号化・復号し、文字を一つずつ追って暗号化の手順を確かめたら、頻度分析を使って秘密の文章を解読してみましょう。
学習目標
- シーザー暗号、キーワード置換暗号、ヴィジュネル暗号でメッセージを暗号化・復号する
- アルゴリズムと鍵の違いを説明する
- それぞれの暗号で使える鍵の数を比較し、それが総当たり攻撃にどのような影響を与えるかを考える
- 文字の出現頻度を使ってシーザー暗号を解読する
- 現代の暗号化に、単なる文字の置換以上のものが必要な理由を説明する
使い方
- 1サンプルメッセージを、3文字ずらすシーザー暗号で暗号化します。文字を一つずつ追いながら、それぞれの文字が円盤の周りをどう動くか確認しましょう。
- 2「結果を入力として使用」を押して復号します。シフト3を元に戻すには、どのシフトを使えばよいでしょうか?シフト13を2回適用した場合はどうでしょうか?
- 3シーザー暗号で使える鍵は25通りしかありません。すべてを手作業で試すにはどれくらいかかるでしょうか?コンピューターならどうでしょうか?
- 4キーワード暗号に切り替えます。キーワードから暗号アルファベットはどのように作られるでしょうか?なぜ使える鍵の数が大幅に増えるのでしょうか?
- 5鍵をLEMONにして、ヴィジュネル暗号でメッセージを暗号化します。メッセージ内で繰り返し使われている文字のうち、暗号化すると異なる2つの文字になるものを見つけましょう。これが頻度分析への対抗にどう役立つのでしょうか?
- 6「解読」を開きます。輪郭が棒グラフと一致するまでシフトを動かします。復号された文章が意味をなしていることを確認します。
- 7「解読」にとても短い暗号文を貼り付けます。短い文章では、なぜ頻度分析の効果が下がるのでしょうか?
モデル
前提条件
- 教室で使う暗号と同様に、暗号化されるのは A から Z までの26文字だけです。大文字・小文字はそのまま保持され、それ以外の文字は変更されずにコピーされます。
- 英語の文字頻度には、公表されている標準値を使用します。頻度分析では、隠されたテキストが通常の英語であることを前提とします。
- キーワード暗号では、キーワードを重複する文字なしで書き、その後に残りのアルファベットを順番に並べます。
- キーワード暗号の鍵の数は、アルファベットのあらゆる並べ替えの数、つまり 26! ≈ 4 × 10²⁶ です。
授業で試してみましょう
- Q1シフトが3のシーザー暗号、KHOOR ZRUOG を解読してください。
- Q2シフトが26だと役に立たないのはなぜですか?
- Q3キーワード暗号には約 4 × 10²⁶ 通りの鍵がありますが、簡単に解読できます。どのように解読できるか説明してください。
- Q4ヴィジュネル暗号がシーザー暗号よりも文字頻度を隠しやすいのはなぜですか?
- Q5コードと暗号の違いを説明してください。
よくある質問
この実験が英語のテキストでしか機能しないのはなぜですか?
これらの歴史的な暗号は、26文字のラテンアルファベットを使っており、解読ツールは文字の出現回数を英語と比較します。他の言語では文字の出現頻度が異なり、中国語や日本語などの文字体系にはまったく別の手法が必要です。
ヴィジュネル暗号はどのように解読されたのですか?
1850年代から1860年代にかけて、チャールズ・バベッジとフリードリッヒ・カシスキは、文字の繰り返しの並びから鍵の長さが分かることを発見しました。長さが分かれば、m文字ごとの文字はそれぞれ単純なシーザー暗号となり、頻度分析で解読できます。
これはインターネットで使われている暗号化とどう違うのですか?
AESなどの現代の暗号は文字ではなくビットを扱い、それらを何度も混ぜ合わせるため、文字の出現回数から情報が漏れることはありません。また、RSAなどの公開鍵方式を使えば、二人が直接会うことなく鍵を共有できます。
