ADFGVX暗号と分画化
第一次世界大戦中のドイツのADFGVX暗号を学び、置換と転置を組み合わせて連合国の暗号解読者を翻弄した仕組みを理解します。
「ADFGVX暗号と分画化」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
第一次世界大戦期のドイツ軍通信の安全性
1918年までに、ドイツ軍は重大な問題に直面していました。連合国の暗号解読者が、野戦暗号を新しいものに置き換えるよりも速く解読していたのです。1918年の春季攻勢に向けて、より強力な新しい暗号が緊急に必要とされました。
Colonel Fritz Nebelは、軍事暗号ではそれまで使われたことのなかった方法で、2つの古典的な技法を組み合わせたADFGVX暗号を開発しました。
ADFGVXで使われるアルファベットの選択
この暗号は、暗号文に使う6つの文字、A、D、F、G、V、Xにちなんで名付けられています。これらの文字は、それぞれのモールス符号表現が大きく異なるよう意図的に選ばれました。
これにより、野戦無線での送信エラーを最小限に抑えました。ある文字を別の文字と取り違えるとメッセージ全体が壊れる可能性があるため、設計者はモールス符号のパターンが最大限に区別できる文字を選びました。
手順1:Polybius方陣
最初の手順は、6x6のPolybius方陣を使った置換です。36個のセルには、26個のアルファベットと数字0〜9が、鍵に基づく順序で配置されます。行と列の見出しには、A、D、F、G、V、Xの6文字を使います。
平文の各文字は、そのセルの行見出しと列見出しという2文字に置き換えられます。たとえば、HがA行F列にある場合は、「AF」になります。
手順2:列転置
置換後、2文字に分割された暗号文を、鍵の長さと同じ数の列を持つグリッドに書き込みます。2つ目のキーワードによって列の順序が決まります。
列は、キーワードに含まれる文字をアルファベット順に並べた順序で読み出します。これにより置換後のペアの順序が入れ替わり、残っていたパターンが崩され、頻度分析とパターン照合の両方に強い暗号になります。
分割化とは
分割化とは、平文の各文字を複数の暗号文記号に分けてから転置する技法です。ADFGVXでは、各文字が2つの記号(行と列)になり、それらが別々に並べ替えられます。
つまり、1つの平文文字に由来する2つの「部分」が最終的な暗号文の異なる位置に移動するため、置換と転置を別々に分析することができなくなります。
置換と転置の組み合わせ
純粋な置換暗号(Playfairなど)は頻度分析に弱く、純粋な転置暗号(レールフェンス暗号など)はアナグラム化に弱いという特徴があります。両者を組み合わせることで、これらの弱点に対処できます。
ADFGVXは、置換された記号を分割化して転置することで、頻度分析を難しくします。転置を解くには置換の鍵を知る必要があり、逆も同様です。
Georges PainvinによるADFGVXの解読
フランスの暗号解読者Georges Painvinは、1918年6月にADFGVX暗号を解読しました。それは、この暗号が守るはずだったドイツ軍の攻勢のわずか数日前のことでした。これは第一次世界大戦における最も輝かしい暗号解読の成果の1つとされています。
Painvinの手法は、同じ日に同じ鍵で送信されたメッセージ内のパターンを利用しました。長さが似た暗号文を比較することで、列の境界を特定し、転置を逆方向にたどることができました。
第一次世界大戦におけるADFGVXの影響
Painvinの突破口によって、連合国はドイツ軍の春季攻勢の勢いを削ぐのに役立つ情報を得ました。ADFGVXの解読によって得られた情報面での優位性が、攻勢の失敗の一因となりました。
この出来事は、巧妙な暗号設計であっても、運用上のセキュリティが不十分であれば破られることを示しました。ドイツ軍は鍵を再利用し、短期間にあまりにも多くのメッセージを送信したため、Painvinに必要な材料を与えてしまいました。
列転置の解説
列転置では、キーワードの下に平文を行ごとに書き、そのキーワードの文字をアルファベット順に並べた順序で列を読み取ります。キーワード「KEY」では、E、K、Yの順になるため、列の順序は2-1-3になります。
出力された列は、元のテキストを局所的なパターンが崩れるように入り組ませます。復号するには、同じ順序で暗号文を列に書き戻し、行ごとに読み取ります。
古典暗号を重ねると強くなる理由
古典暗号の各層は、それぞれ異なる弱点に対処します。置換は文字の正体を隠し、転置は文字の位置を隠します。両者を組み合わせることで、2つの層を同時に攻撃しなければならない暗号が作られます。
この「攪乱(置換)」と「拡散(転置)」を組み合わせる原理は、後にClaude Shannonによって体系化され、AESのような現代のブロック暗号の理論的基盤となりました。
ADFGX:ADFGVXの前身
ADFGVX以前、ドイツ軍はADFGXを使用していました。これはポリュビオス方陣に数字を含めない、より単純な5文字の変種でした。ADFGVXでは方陣を6x6に拡張して10個すべての数字を含められるようにし、数値データも暗号化できるようになりました。
ADFGXからADFGVXへの拡張は、連合国がADFGXに対して部分的な成功を収めたことへの対応でした。数字を追加することで鍵空間が広がり、パターンをより多くの記号ペアに分散できたため、二字組の頻度分析が難しくなりました。
分割化クイズ
ADFGVXにおける分割化についての理解度を確認します。
要点:ADFGVXと分割化
ADFGVXは、ポリュビオス方陣による換字と列転置を組み合わせ、分割化によって両者を交互に適用しました。6文字のアルファベットは、モールス信号の送信エラーを最小限に抑えるために選ばれました。
その高度な仕組みにもかかわらず、Painvinは鍵の再利用を利用してこれを解読しました。この暗号は、古典的な技法を組み合わせる強力さと、運用上のセキュリティが極めて重要であることの両方を示しました。
よくある質問
「ADFGVX暗号と分画化」レッスンは無料ですか?
はい。「ADFGVX暗号と分画化」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「ADFGVX暗号と分画化」で何を学びますか?
第一次世界大戦中のドイツのADFGVX暗号を学び、置換と転置を組み合わせて連合国の暗号解読者を翻弄した仕組みを理解します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ADFGVX暗号と分画化」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。