T

Text Machine

強力なテキストツールを、ブラウザで

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 桁を取ります。

5
9
6
1
3
2
8
4
7
0
A
T
O
N
E
S
I
R
6
B
C
D
F
G
H
J
K
L
M
8
P
Q
U
V
W
X
Y
Z
.
/

VIC暗号 の使い方

  1. 1

    エンコードかデコードを選ぶ

    メッセージを VIC 暗号文に変えるにはエンコードを、メッセージを復元するにはデコードを選びます。デコードには、エンコードに使われたのとまったく同じ日付・鍵フレーズ・個人番号・キーグループが必要です。

  2. 2

    日付を設定する

    日付を数字として入力します。例えば 139195 のようにします。最初の 5 桁がキーイングチェーンを開始し、6 桁目が完成したメッセージのどこにキーグループを隠すかを決めます。

  3. 3

    鍵フレーズと個人番号を設定する

    20 文字以上の覚えやすいフレーズと、1 から 99 までの小さな個人番号を入力します。これらは両方の通信者があらかじめ合意しておく固定の秘密です。

  4. 4

    キーグループを設定する

    ランダムな 5 桁のキーグループを入力するか、ランダムを押して生成します。キーグループはインジケーターです。メッセージごとに変わり、暗号文の中に隠されて送られます。

  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 暗号は 1950 年代のソ連の紙と鉛筆による暗号で、これまでに使われた中で最も複雑な手動暗号としばしば呼ばれます。ストラドリング・チェッカーボードと 2 つの縦列転置(2 つ目は撹乱されたもの)を組み合わせ、そのすべてが日付、暗記したフレーズ、個人番号、ランダムな 5 桁のキーグループから鍵付けされます。その名は、コードネームを VICTOR としていたソ連のエージェント Reino Häyhänen にちなんでいます。
なぜ VIC 暗号と呼ばれるのですか?
VIC は VICTOR の略で、これはニューヨークで活動中にこの暗号を使った KGB エージェント Reino Häyhänen のコードネームです。彼が 1957 年に亡命してアメリカの諜報機関にそのシステムを説明した後、分析官たちは彼にちなんでそれを命名しました。VICTOR 暗号、あるいは発見された経緯から中空ニッケル暗号とも呼ばれることがあります。
VIC 暗号はどのように動作しますか?
まずキーイングチェーンが 4 つの鍵要素をチェッカーボードのヘッダーと 2 つの転置鍵へと展開します。次にメッセージがストラドリング・チェッカーボードで数字に変えられ、そこではよく使う文字が 1 桁、それ以外が 2 桁を取ります。それらの数字は 2 つの縦列転置によってかき混ぜられ、2 つ目は予約された三角形の領域によって撹乱されます。そして最後に、キーグループが日付によって定まる位置で暗号文に挿入されます。
キーイングチェーンとは何ですか?
キーイングチェーンは、4 つの鍵要素を暗号に必要なすべてへと変える数字操作の連続です。キーグループから日付を引き、鍵フレーズの文字に番号を付け、チェーン加算(繰り上がりのない遅延ランニングサム)を繰り返して 50 桁のブロックを成長させます。そのブロックから、チェッカーボードのヘッダー行と、2 つの転置鍵とその幅を読み取ります。
ストラドリング・チェッカーボードとは何ですか?
ストラドリング・チェッカーボードは、文字を数字に変える小さな表です。8 個のよく使う文字が最上行にあってそれぞれ 1 桁に符号化され、残りの文字、ピリオド、数字シフト記号は下の 2 つの行にあって 2 桁を取ります。これにより暗号文が短くなり、単純な換字なら明らかにしてしまう文字頻度が隠されます。
撹乱転置とは何ですか?
VIC の 2 つ目の転置は撹乱されています。グリッドの三角形の領域が、鍵によって定まる階段状のパターンで予約されます。メッセージはまず三角形の外側のセルをすべて埋め、それから戻って三角形を埋め、列は鍵付きの順序で読み出されます。これにより通常の転置の規則的な列が崩され、VIC をこれほど解読しにくくした要因の大部分を占めています。
中空ニッケル事件とは何でしたか?
1953 年、ブルックリンの新聞配達の少年が、数字の列のマイクロ写真を収めた中空の 5 セント硬貨を見つけました。FBI はその暗号化されたメッセージを読めず、1957 年にソ連のエージェント Reino Häyhänen が亡命して VIC 暗号を明かすまで未解決のままでした。この事件は Rudolf Abel のスパイ網の摘発に役立ち、冷戦期スパイ活動の最もよく知られた物語の一つになりました。
VIC のメッセージをどうやってデコードしますか?
ツールをデコードに切り替え、暗号化に使われたのとまったく同じ日付・鍵フレーズ・個人番号・キーグループを入力してから、暗号文を数字のグループとして貼り付けます。すると元のメッセージが現れます。4 つの鍵要素がすべて揃わなければメッセージは復元できません。なぜなら、それぞれがチェッカーボードと転置を組み立てるキーイングチェーンに入力されるからです。
キーグループ、すなわちインジケーターとは何ですか?
キーグループは、メッセージごとに新しく選ばれるランダムな 5 桁の数字です。これがキーイングチェーンの種となるため、各メッセージは実質的に異なる鍵で暗号化されます。そして日付の 6 桁目によって定まる位置で完成した暗号文の中に隠されます。受信者はそれを取り出し、キーイングチェーンを繰り返すことで、メッセージを復号できます。
VIC 暗号はどれくらい安全でしたか?
手動暗号としては傑出していました。チェッカーボードが文字頻度を取り除き、2 つの転置(2 つ目は撹乱されたもの)が、より単純なシステムを分析官に破らせてしまうパターンを破壊します。傍受だけからは一度も破られず、エージェントが亡命したときにのみ危殆化しました。とはいえ、現代のコンピューターに対しては実質的な安全性を提供しないため、歴史的・教育的な暗号として扱うべきです。
私のテキストはサーバーにアップロードされますか?
いいえ。暗号化と復号はすべてブラウザ内で完結するため、あなたのテキストや鍵がアップロードされたり、記録されたり、保存されたりすることは決してありません。共有リンクでさえ、あなたのデータを URL のハッシュ以降の部分に保持します。ブラウザはこの部分をサーバーに送信することはないため、あなたが共有することを選ぶまでプライバシーは保たれます。

関連ツール

こちらの便利なツールもどうぞ

ストラドリング・チェッカーボード

バズリー暗号

シーザー暗号

ヴィジュネル暗号

アトバシュ暗号

レールフェンス暗号