Beaufort暗号とランニングキー暗号
Beaufort暗号や理論上解読不能なランニングキー暗号など、Vigenère暗号の派生方式を学びます。
「Beaufort暗号とランニングキー暗号」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
Beaufort暗号
Beaufort暗号は、暗号化の式が異なるVigenère暗号の変種です。Vigenèreでは C = (P + K) mod 26 を計算するのに対し、Beaufortでは C = (K - P) mod 26 を計算します。
この小さな変更により、Beaufort暗号には注目すべき性質が生まれます。それは、自分自身が逆変換になることです。同じ鍵で同じ操作を行うことで暗号化と復号の両方ができ、この性質は相反暗号であることと呼ばれます。
Beaufortの相反性
Beaufortでは暗号化と復号が同じ操作であるため、この暗号は「自己相反的」または「対合的」と呼ばれます。復号するには、暗号化に使用した手順とまったく同じ手順を実行します。
これはコンピューター以前の時代には実用的でした。軍の運用担当者は、暗号化と復号という別々の手順を2つ覚える代わりに、1つの手順だけを学べばよく、訓練時間と人的ミスを減らせたためです。
オートキー暗号
オートキー暗号は、Vigenèreの鍵の繰り返しという弱点に対処します。鍵は短い種鍵語から始まり、その後続鍵として平文自体を追加します。
つまり、鍵はメッセージと同じ長さになり、繰り返されることはありません。ただし、巧妙な攻撃には弱いという問題があります。平文の単語を推測できれば、それが鍵の一部として現れているかを検証し、推測が正しいかどうかを体系的に確認または棄却できます。
ランニングキー暗号の概念
ランニングキー暗号は、事前に合意した長い文章(特定の書籍など)を鍵として使用することで、オートキーの考え方をさらに発展させたものです。鍵はメッセージと同じ長さで、一見ランダムに見える情報源から取得します。
送信者と受信者は、鍵となる文章の同じコピーを持ち、開始位置について合意しておく必要があります。その後の暗号化はVigenère暗号と同じですが、鍵は繰り返されません。
ランニングキーが理論上解読不能である理由
ランニングキーの文章が真にランダムである場合(本質的にはワンタイムパッドの場合)、ランニングキー暗号は情報理論的に安全です。鍵なしでは、暗号文から平文を特定するための情報が十分に得られません。
Claude Shannonはこれを証明しました。暗号が完全秘匿性を持つには、鍵のエントロピーがメッセージのエントロピー以上でなければなりません。メッセージと同じ長さの真にランダムな鍵は、この条件を満たします。
ランニングキーの実用上の弱点
実際には、書籍の文章はランダムではありません。自然言語に見られる統計的パターンをすべて含む英語の散文です。攻撃者はさまざまな書籍と開始位置を試し、そこから得られた鍵と平文の両方が自然言語らしく見えるかどうかを検証できます。
この「二つのテキスト」特性、つまり平文と鍵の両方が有効な言語でなければならないという性質によって、ランニングキー暗号は皮肉にも、短くても真にランダムな鍵を使う暗号より実際には弱くなります。
Bellasoとその暗号
Giovan Battista Bellasoは、1550年代に複数の多表式暗号の設計を発表しました。後にその業績はBlaise de Vigenèreのものと誤って考えられ、Vigenère暗号の歴史的な誤命名につながりました。
Bellasoの暗号には、Beaufort暗号の先駆けとなる相反型も含まれていました。多表式暗号の分野における彼の貢献は大きなものでしたが、現代の歴史研究によって記録が訂正されるまで、十分な評価を受けていませんでした。
多表式暗号と一致指数
多表式暗号は、鍵に基づいて複数の換字アルファベットを切り替えながら使用します。これにより暗号文の文字頻度分布が平坦化され、単純な頻度分析では解読できなくなります。
一致指数(IC)は、頻度分布がどの程度平坦かを測定します。英語の文章のICは約0.065です。完全にランダムな換字では、ICは約0.038です。多表式暗号の値は、鍵の長さに応じてこの2つの値の間になります。
鍵長を求めるFriedmanテスト
William Friedmanは、暗号文だけから多表式暗号の鍵長を特定するための統計的テストを開発しました。n文字おきに取り出した各部分集合のICを分析することで、鍵の周期を特定できました。
周期が分かると、暗号は複数の独立した単純換字に分解でき、それぞれを頻度分析で解読できます。この手法により、VigenèreとBeaufortは実際に解読可能になりました。
古典暗号時代の終わり
20世紀初頭までに、Caesar暗号からVigenère、Beaufortに至るすべての古典暗号は、頻度分析、Kasiskiテスト、またはFriedmanのIC法によって体系的に解読されていました。
機械式暗号(Enigma、SIGABA)の登場、そして最終的なコンピューターの登場によって、暗号技術は根本的に変化しました。古典暗号は、実用的なセキュリティ機構ではなく、歴史的な珍品や学習用の教材になりました。
ワンタイムパッド:理論上完全な暗号
ワンタイムパッドは、正しく使用すれば、数学的に完全性が証明されている唯一の暗号です。メッセージと同じ長さの真にランダムな鍵を用意し、それを1回だけ使用して、完全に秘密に保管する必要があります。
ランニングキー暗号はこの理想に近いものですが、自然言語の鍵はランダムではないため成立しません。書籍の文章を鍵にしたワンタイムパッドは、鍵と平文の両方が自然な英語でなければならず、暗号解析に利用できる統計的な手がかりが生じるため、脆弱です。
Beaufort暗号クイズ
Beaufort暗号とその性質についての知識を確認します。
要点:Beaufortとランニングキー
Beaufort暗号は、同じ鍵とアルゴリズムで暗号化と復号を行える、自己相反的なVigenèreの変種です。ランニングキー暗号は長い文章を鍵として使用し、鍵がランダムであれば理論上は完全秘匿性を実現できます。
実際には、自然言語の鍵は利用可能な統計的特徴を持ちます。FriedmanのICテストとKasiskiテストによって、多表式暗号の鍵長を特定し、解読可能な単純換字に分解できます。
よくある質問
「Beaufort暗号とランニングキー暗号」レッスンは無料ですか?
はい。「Beaufort暗号とランニングキー暗号」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「Beaufort暗号とランニングキー暗号」で何を学びますか?
Beaufort暗号や理論上解読不能なランニングキー暗号など、Vigenère暗号の派生方式を学びます。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「Beaufort暗号とランニングキー暗号」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Playfair暗号
- ADFGVX暗号と分画化
- Beaufort暗号とランニングキー暗号
- Feistelネットワーク:現代暗号の構成要素