|
|
エニグマ (Enigma) |
エニグマは第二次世界大戦でドイツ軍が使用した暗号システムです。
簡単な暗号機で極めて複雑な暗号を作ることができたので、
ドイツ軍の無線通信に使用され、大戦初期の快進撃に貢献しました。
ドイツ軍の潜水艦、 U ボートは、 連合国軍の船団に壊滅的ともいえる損害を与えていました。
ドイツ軍はエニグマに絶大の自信を持っていたため、
これが連合軍に解読されるとは夢にも思っていませんでしたが、 1930年代にはポーランドで解読に成功、
次いでイギリスでも、チューリング (Alan Turing) らによってエニグマが解読されました。
エニグマの解読によって戦局は一変し、
1944年6月のノルマンディ上陸作戦にも寄与しました。
歴史に "もし" は禁物とはいえ、
エニグマがもし解読されていなければ、
第二次世界大戦の終結はずっと遅れたか、 あるいは、 連合国の勝利さえ危うかった(?)かもしれません。
下図は、 ものすごく単純にした、 暗号機のイメージです。
(アルファベットは A から F までの 6 文字しかないものとします。)
スイッチとランプと、暗号機の心臓部、スクランブラーがあります。
スイッチをマウスでクリックすると、 暗号化された文字のランプが点灯します。
(同じ文字のランプが点灯する場合もあります。
ボタンをクリックすれば条件が変わります。)
キーを押して、光ったランプの文字を書き写す。
これなら戦場でも、 素早く、 正確に暗号文を作ることができます。
あとはスクランブラーの部分を複雑にして、 敵に解読されないようにすればいいのですが…。
エニグマで暗号文を作るには、まず定められたとおりにローターを設定します。
この設定は毎日変わります。
(下図では各ローターの上のボタンをクリックするとローターの設定ができます。)
あとは、キーボードのキーを押すだけです。
エニグマではキーボードとランプボードは独立していますが、
上の Java アプレットでは合体させています。
キーをクリックすると暗号化された経路が表示されます。
マウスのボタンを放すと経路の表示は消えて、ローターが 1 文字分だけ回転します。
暗号化文は右下のボタンをクリックするとクリアされます。
キーの配列はパソコンのものと少し違いますが、エニグマの配列にあわせてあります。
すこし打ちにくいかもしれません。
暗号文は、ローターの設定を元に戻して、暗号文をタイプすれば平文化できます。
例えば、ローターを左から順に、12, 3, 25 に設定して "HELLO" と打つと、
"PJMCP" と暗号化されます。
ローターは少し回転しているので、 元に戻して "PJMCP" とタイプすると、
"HELLO" という平文を得ることができます。
| 【注1】 | このページの Java applet は、エニグマの原理を説明するためのもので、
エニグマの動きをシュミレートするものではありません。 プラグボードで任意の文字の接続を変更する機能や、 ローターを自由に交換できる機能などを省略しています。 エニグマのシュミレータ には Enigma などがあります。興味のある方はご覧下さい。 |
| 【注2】 | このページは、
Enigma and the Turing Bombe を参考にして作成しました。 エニグマの写真は University of North Dakota の Crypto Drop Box から許可を得て引用しています。 下の 「自由利用マーク」 は本文および Java Applet に対してつけたもので、 これら著作権が他にあるもののお取り扱いについてはご注意下さい。 |