VIC 暗号
スパイ Reino Häyhänen が携えた手強いソ連の手動暗号、VIC 暗号でエンコード・デコードします。日付、暗記したフレーズ、個人番号、そして 5 桁のキーグループから、ストラドリング・チェッカーボードと 2 つの縦列転置(2 つ目は撹乱されたもの)を導き出します。すべてはブラウザ内で動作します。
VIC 暗号は冷戦期で最も複雑な手動暗号でした。日付、暗記したフレーズ、個人番号、5 桁のキーグループという 4 つの小さな秘密から、長いキーイングチェーンがストラドリング・チェッカーボードと 2 つの縦列転置(2 つ目は撹乱されたもの)を組み立てます。下で 4 つの鍵要素を設定してから、エンコードまたはデコードしてください。処理されるのは文字・数字・ピリオドだけで、それ以外はすべて無視されます。デコードには同じ 4 つの鍵要素を使います。
モード
日付(6 桁以上)
数字で記した日付で、例えば 139195 のようにします。最初の 5 桁がキーイングチェーンの起点となり、6 桁目はメッセージのどこにキーグループを隠すかを決めます。
鍵フレーズ(20 文字以上)
歌詞など、覚えやすい一節のテキストです。最初の 20 文字が使われ、スペースや句読点は無視されます。
個人番号
両方の通信者が暗記する、1 から 99 までの小さな数字です。
キーグループ(5 桁)
メッセージごとに異なる、ランダムな 5 桁のグループです。平文のまま暗号文の中に隠されて運ばれます。
上にテキストを入力すると、ここに VIC の結果が表示されます。
鍵がどのように導出されるか
キーイングチェーン
各行はその上の行から組み立てられます。A はキーグループ、B は日付、C は A から B を引いたものです。E.1 と E.2 は鍵フレーズから得られます。チェーンはそこから数字を加算・順位付け・結合していき、チェッカーボードのヘッダーである S と、2 つの転置鍵まで導きます。
A
72401
B
13919
C
69592
E.1
8017942653
E.2
6013589427
F.1
6959254417
G
4966196060
H
3288628787
J
3178429506
ブロック(K–P)
K
5064805552
L
5602850077
M
1620350748
N
7823857125
P
5051328370
S
5961328470
チェッカーボードのヘッダー(S)
5961328470
転置 1 の幅
13
転置 2 の幅
6
転置 1 の鍵
0668005552551
転置 2 の鍵
758838
インジケーター位置
5
ストラドリング・チェッカーボード
最上行には、ニーモニック AT ONE SIR の下に 8 個の高頻度文字が並びます。2 つの空白列のヘッダー数字が、下の行の接頭辞になります。よく使う文字は 1 桁、それ以外の文字はすべて 2 桁を取ります。
VIC暗号 の使い方
- 1
エンコードかデコードを選ぶ
メッセージを VIC 暗号文に変えるにはエンコードを、メッセージを復元するにはデコードを選びます。デコードには、エンコードに使われたのとまったく同じ日付・鍵フレーズ・個人番号・キーグループが必要です。
- 2
日付を設定する
日付を数字として入力します。例えば 139195 のようにします。最初の 5 桁がキーイングチェーンを開始し、6 桁目が完成したメッセージのどこにキーグループを隠すかを決めます。
- 3
鍵フレーズと個人番号を設定する
20 文字以上の覚えやすいフレーズと、1 から 99 までの小さな個人番号を入力します。これらは両方の通信者があらかじめ合意しておく固定の秘密です。
- 4
キーグループを設定する
ランダムな 5 桁のキーグループを入力するか、ランダムを押して生成します。キーグループはインジケーターです。メッセージごとに変わり、暗号文の中に隠されて送られます。
- 5
メッセージを入力して結果を読み取る
テキストを入力または貼り付けます。暗号化されるのは文字・数字・ピリオドだけで、それ以外はすべて無視されます。結果をコピーまたはダウンロードするか、正確な鍵とテキストでツールを開き直すリンクを共有します。
VIC 暗号を理解する
VIC 暗号とは何か?
VIC 暗号は、1950 年代にソ連の諜報機関が使用した紙と鉛筆による暗号で、これまでに実戦投入された中で最も複雑な手動暗号と広く見なされています。その名は、コードネームを VICTOR としていた KGB のエージェント、Reino Häyhänen にちなんでいます。鉛筆、紙、そしていくつかの暗記した秘密以外には何も使わないにもかかわらず、このシステムは換字と転置を非常に徹底的に組み合わせていたため、アメリカの暗号解読者は、Häyhänen 自身が亡命してその仕組みを説明するまで、傍受したメッセージを 1 通も解読できませんでした。
VIC が注目に値するのは、機械暗号の強さを、エージェントが頭の中だけで完全に持ち運べる手順に凝縮している点です。短いキーイングの手順が、日付、暗記したフレーズ、個人番号、ランダムな 5 桁のグループを、暗号に必要なすべての材料へと変えます。すなわち、文字を数字に変えるためのストラドリング・チェッカーボードと、結果をかき混ぜるための 2 つの縦列転置(2 つ目は撹乱されたもの)です。このツールはその全過程を再現し、各ステップが進む様子を表示します。
VIC 暗号の仕組み
VIC でメッセージを暗号化するには 3 つの段階があります。まずキーイングチェーンです。これは単純な数字操作の連続で、繰り上がりのない加算、繰り下がりのない減算、そして順位付けによって、4 つの鍵要素をチェッカーボードのヘッダー行と、幅を伴う 2 つの転置鍵へと展開します。次に、メッセージがストラドリング・チェッカーボードを使って数字に変換されます。これは、最も一般的な文字が 1 桁、残りが 2 桁を取るコンパクトな表です。最後に、それらの数字が 2 つの縦列転置によってかき混ぜられます。
巧妙なのは 2 つ目の転置で、これは撹乱されています。グリッドの三角形の領域があらかじめ予約され、他の部分が埋まった後にだけ埋められることで、通常の転置暗号を攻撃しやすくしている整然とした列が崩されます。最後の最後に、ランダムなキーグループが日付によって定まる位置で暗号文の中に差し戻されるため、受信者はインジケーターを復元してキーイングチェーンを繰り返すことができます。その結果は、元の言語のパターンを何も漏らさない数字グループの羅列となります。
キーイングチェーン
VIC のすべてはキーイングチェーンから流れ出します。5 桁のキーグループが行 A となり、日付の最初の 5 桁が行 B となります。A から B を繰り下がりなしで引くと行 C が得られます。鍵フレーズはさらに 2 つの行を供給します。その最初の 10 文字と次の 10 文字を、それぞれアルファベット順に番号付けして行 E.1 と E.2 を作ります。続いて行 C は、チェーン加算(各新しい桁が以前の 2 つの桁の和となる、遅延を伴う処理)によって引き延ばされ、フレーズの行と結合してさらに多くの桁を生み出します。
これらから、チェーンは再びチェーン加算によって 50 桁のブロックへと成長します。そのブロックの最終行に番号を付けると行 S が得られ、これがストラドリング・チェッカーボードのヘッダーになります。ブロックから取り出した 2 つの桁を個人番号に加えると、2 つの転置の幅が定まり、ブロックを鍵付きの順序で列ごとに読み取ると、2 つの転置鍵そのものが生み出されます。このツールのリアルタイムの図は、これらの行を一つ残らず並べて表示するので、4 つの秘密から完成した鍵に至るまでの導出をたどることができます。
ストラドリング・チェッカーボード
ストラドリング・チェッカーボードは、文字と数字を数字の連なりに変える小さな表です。その 10 個の列はヘッダー行 S によってラベル付けされます。最上行には、あらかじめ合意したニーモニック(ここでは古典的な AT ONE SIR)の下に 8 個の高頻度文字が配置され、その 2 つのスペースが空白のままにする列を示します。それら 2 つの空白列のヘッダー数字が、その下の 2 つの行の接頭辞になり、それらの行には残りのアルファベット、ピリオド、そして数字シフト記号が収まります。
よく使う文字は最上行にあるため、それぞれ 1 桁だけで符号化される一方、あまり使われない文字は 2 桁、すなわち行の接頭辞に続いて列ラベルを取ります。この不揃いで自己同期する符号は、暗号文を短く保ち、単純な換字なら漏らしてしまう明白な文字頻度を取り除きます。メッセージ中の数字は、数字シフト記号で示される数字モードで送られ、各数字は文字の符号と混同されないように 3 回ずつ書かれます。
2 つの転置
メッセージが数字の連なりになると、VIC はそれを 2 度かき混ぜます。1 つ目の転置は通常の縦列転置です。数字は固定幅の行に書き込まれ、その後、1 つ目の転置鍵によって定まる順序で列が読み出されます。これだけでも数字はよく混ざりますが、縦列転置だけでは、特に複数のメッセージが鍵を共有する場合、熟練の暗号解読者に突かれうる規則性が残ります。
2 つ目の転置は撹乱されることでその隙を塞ぎます。グリッドの三角形の領域が、2 つ目の転置鍵によって定まる階段状のパターンで予約されます。メッセージはまずそれらの三角形の外側のセルだけを埋め、それから戻って三角形そのものを埋めます。列を鍵付きの順序で読み出すと 2 つの埋め込みが交互に織り込まれるため、最終的な数字は徹底的にかき混ぜられます。チェッカーボードと 1 つ目の転置の上に重ねられたこの撹乱こそが、VIC にその手強い評判を与えたのです。
Reino Häyhänen と中空ニッケル事件
VIC 暗号は、冷戦期スパイ活動の最も有名な出来事の一つを通じて明るみに出ました。1953 年、ブルックリンの新聞配達の少年が 5 セント硬貨を落とすと、それが二つに割れ、中から数字の列を写した小さな写真が現れました。FBI はそのメッセージを読めず、中空のニッケル硬貨は 4 年間にわたり未解決の謎として残りました。突破口は 1957 年に訪れます。コードネーム VICTOR でニューヨークに駐在していたソ連のエージェント、Reino Häyhänen がアメリカに亡命し、その暗号を詳細に説明したのです。
Häyhänen の情報は、彼の上司である、Rudolf Abel として知られた上級非合法工作員の摘発にも役立ちました。Abel は後に、アメリカの U-2 偵察機パイロット Francis Gary Powers と交換されました。Häyhänen が明かした暗号はあまりに精巧だったため、分析官たちは彼にちなんでそれを命名し、NSA は長きにわたり、手動暗号がいかに強力になりうるかの実例としてそれを掲げました。その秘密が安全だったのは、メッセージが解読されたからではなく、ただ一人の男が歩み出てそれを引き渡したからにすぎなかったのです。
VIC 暗号はどれくらい安全か?
手動暗号の基準で言えば、VIC は例外的でした。ストラドリング・チェッカーボードを 2 つの転置(うち 1 つは撹乱されたもの)の上に重ねることで、文字頻度が取り除かれ、より単純なシステムを分析官に攻撃させてしまう列構造が破壊されます。メッセージごとに新しいランダムなキーグループを使い、エージェントが覚えておくだけでよい秘密から鍵を組み立てたことで、それは当時の暗号解読に完全に抵抗しました。このシステムが破られたのは亡命者によってであり、暗号解読によってではありません。
とはいえ、現代のコンピューターに対しては、VIC は実質的な保護を提供しません。その鍵空間は、手作業の人間にとっては大きくとも、機械が探索するには取るに足らず、根底にある操作もよく理解されています。Enigma 機械やあらゆる古典的システムと同様に、今日では歴史として、そして換字、転置、そして入念な鍵管理がどのように組み合わさるかを示す美しい実演として楽しむのが最も良いでしょう。本物の情報を守るには、常に AES のような十分に検証された現代のアルゴリズムを使うべきです。
よくある質問
VIC 暗号とは何ですか?
なぜ VIC 暗号と呼ばれるのですか?
VIC 暗号はどのように動作しますか?
キーイングチェーンとは何ですか?
ストラドリング・チェッカーボードとは何ですか?
撹乱転置とは何ですか?
中空ニッケル事件とは何でしたか?
VIC のメッセージをどうやってデコードしますか?
キーグループ、すなわちインジケーターとは何ですか?
VIC 暗号はどれくらい安全でしたか?
私のテキストはサーバーにアップロードされますか?
関連ツール
こちらの便利なツールもどうぞ