1857年8月5日のこと、
大西洋を横切る 長さ4300kmのケーブルが敷設された。
これにより英国と米国が結ばれ、
社交と経済の連携が強化された。
今や情報は、電気の変化のしかたで
表されるものとなり、
即座に世界中へ伝えられるものになった。
ウェスタン・ユニオンが、これを応用して
株価表示器やお金のやり取りなど、
営利目的に使えるようにした。
これによりグローバル・コミュニケーションの
新時代が幕を開けた。
重大なニュースです。
ドイツがポーランドに攻め込み、
多くの都市を爆撃しました。
イギリスとフランスの兵が総動員されています。
結果として、この国はドイツと戦争することとなった。
世界を巻き込んだこの戦争は、
全ての人類の自由をおびやかすことになる。
(イタリア語)
(日本語)
日本がハワイの真珠湾を空爆したとー
ルーズベルト大統領が発表しました。
(ドイツ語)
第二次世界大戦中、ドイツ・イタリア・日本は
連合国に対して兵力で大きく劣っていた。
彼らが勝つために唯一残された手段は
広範囲にわたる不意打ちを成し遂げることだった。
よって暗号技術の目標は、
暗号機械を用いてワンタイムパッドを
自動で生み出すこととされた。
理想的には、この機械は文字の入力を受けて、
ランダムなシフトを作り出し、暗号化された文字を出力する。
しかし、機械の動き方はいつも同じだ。
ある初期設定(これを「状態」という) から始まり、
何らかの入力を受け、
演算処理の後、出力する。
初期状態から終了状態までの演算は
必ず予測可能で、繰り返しになる。
そこでランダム個分のシフトをし、
しかも、なかなか繰り返し部分が現れないような
理想的な機械の開発が目標になった。
そして、アリスとボブは次の方法で
理想的なシフト数列を生成できるようになった。
まず理想的な機械を共有し、
その初期状態を決める。
これを「鍵設定」という。
2台で同じ初期状態に設定した後は、
理想的な機械の演算によって
理想的な数列を得る。
当時、理想に最も近い暗号機械といえば
ローター式のものだった。
この技術的な仕組みは、
今の車の走行距離計とよく似ていて、
1周するまでに時間がかかる。
走行距離計のホイールに書かれた数字を
デタラメに変えるとしよう。
回転を進めた時、
各ローターの数の和によって
新たなシフト数を決める。
これがローター式暗号機械のおおよその仕組みだ。
例えば 「Attack Northwest」という命令文を
暗号化するとこのようになる(画面右)。
1文字毎に異なるシフト数が
適用される点に注意しよう。
3つのローターそれぞれに 26個の数があるから、
数列に繰り返しが現れるまで、26×26×26個の数がある。
これをシフト数列に換算すると、
17576個もの数を用いるに等しい。
ローターの状態は、
シフト数列中の数の1つと対応する。
機械の初期状態を「鍵設定」と言い、
とり得る[鍵設定」の集合を
「鍵空間」と言う。
「鍵空間」は、
機械の初期設定のやり方が増えると大きくなる。
例えばローターの配置を入れ替えられるなら、
その並べ方は6通りある。
ここで「鍵空間」を図で表そう。
まず6通りあるローターの配置から1つを選び、
次にローターの数字を選んで初期状態とする。
すると 10万通り以上の「鍵設定」からなる「鍵空間」が得られる。
あらゆる機械の設定が、この空間の中の
1点と対応することに注意しよう。
「鍵設定」を決めるというのは
この空間から初期位置を選ぶ事でもある。
そこからシフト数列が定まる。
「鍵設定」情報が漏洩すると、
必要な数列が全て知られてしまう。
ローター式機械のセキュリティ強度は、
「鍵空間」の大きさと
「鍵設定」のランダムさに依存する。
第二次世界大戦中、
ドイツ軍が用いた最も重要なー
暗号技術の1つをエニグマという。
エニグマは電気式のローター機械で、
第一次世界大戦の終盤にドイツの技術者が発明した。
各ローターの両端は、内部の複雑なー
配線によって電気的に繋がれていた。
よって、ローターがどの位置にあっても、入力文字と
出力文字を繋ぐ電気の経路が形成された。
ローターが回転すると、
1文字毎に全く新しい回路が形成された。
戦時中、
暗号を強固にするために、エニグマの「鍵空間」は
何度も大きくされた。
例えば、4つ目のローターを
追加することで、
ローターの配置の仕方を60通りに
増やすことができる。
これにより「鍵空間」は膨大な広さになった。
戦争の終盤には
エニグマに設定できるパターンが
1500兆の100倍通りを超えた。
暗号文からキーセッティングを予測するのは
26個のサイコロを振った結果を予測するようなものだ。
だからドイツ人には自信があった。
例え連合国がエニグマを手にしても、
全ての「鍵設定」を試してみるのは不可能なのだ。
2つの団体がエニグマを使って通信するには、
最初に日別の「鍵設定」を共有する必要があった。
これにより機械を同じ状態にセットする。
「鍵設定」の共有方法は戦時中何度も変更されたが、
前もって「鍵」が書かれた紙を全使用者に配布することが
多かった。
毎日、使用者は日別のセッティング表を切り分けて、
ローターの順序や番号などを
書いてある通りに設定したのだろう。
「鍵設定」表は使用後に処分された。
しかし、使用者にはもう1つ重要な手順が課された。
通信前にランダムな初期位置を選ぶ必要が
あるのだが、
倦怠な使用者がここで
ごく些細なミスを犯した。
現代に例えるなら、自転車の鍵の暗証番号を
セットする時にありがちなミスだ。
初期位置から2〜3回しか
番号を回さないとか、
分かりやすいパスワードを使い回すミスだ。
これによりローターの
初期の位置分布の均一性が崩れてしまった。
そこで連合国は敵のエニグマを
何度も観察し、
ローターの配線を完璧に突き止めることが出来た。
2つ目のミスは手順ミスではなく、
デザイン上のミスだ。
エニグマは、入力文字と
出力文字が決して同じにならないようになっている。
だから暗号化された文字、例えば L では、
暗号化前の文字が L である可能性を
除外できる。
当時 強みと考えられた特徴は、
実はデザイン上の弱点だったのだ。
この弱点をもとに、暗号解読機が開発された。
最初にポーランドが考案し、
後にイギリスとアメリカによって改善された。
複数のエニグマローターを繋いだ Bombe という機械で、
様々な「鍵設定」を素早く試すことができる。
原文の中に たいてい含まれてる単語、
例えば 天気を表す単語などを利用して解析する。
このヒントとなる語を「クリプト」(暗号の手がかり)という。
暗号解読機に「クリプト」を入力すると、
ローターの位置や配列を
あらゆる限り調べ上げ、
およそ数分で
「鍵設定」の候補を絞り込む。
連合国は、この機械を使って
ドイツ軍の命令文を
発行から数時間以内に解読できた。
これが国の戦術に革命的な影響をもたらした。
連合国は、前もって敵の動きを対策できたのだ。
結局、
ワンタイムパッドを自動生成するという
最初の試みは失敗に終わった。
もし使用者がローターの初期位置を決める時に
サイコロを使っていたなら、
初期状態のパターン分布は
完全に均一になったというのに。
そうしなかったばかりに、
ローターの配線が解析されてしまった。
そして もし、エニグマの入力文字と
出力文字が同じになれたなら、
Bombeは「クリプト」を活かすことができず、
連合国による解読は不可能だっただろう。
全ての「鍵空間」を調べるのは、
最速のコンピュータでも不可能なのだ。
しかし 以上のミスで、
「鍵空間」が狭くなってしまった。
もしこれがなければ、
第二次世界大戦の結果は
劇的に変わっていたかもしれない。