エニグマって知ってる?
ナチスドイツが開発した、絶対に解読できないと
言われてきた暗号機だ。
しかし、最終的には連合軍に解読されてしまうのだが、
その原因が通信員の怠慢と癖という、なんとも人間的な
ものだったのだ。
沈没したUボートから機械と暗号キーの表を押収したのだが、
どの暗号キーを使っているかまではわからない。
ドイツ軍は毎日決められた時間に暗号キーを変更するなど
徹底していた。
100個程度なら片っ端から試せばいいのだが、
辞書一冊分くらいあるのだ。
ドイツ軍は初めから機械と表はいずれ奪われる、と
想定しており、キーを片っ端から試しても
とてつもない時間がかかるようにしていたのだ。
ちょっと計算しても年単位の時間だ。
しかしいるんだよ、どこにも怠慢なヤツが。
その怠慢な通信員が変更を怠り、
「こいつはいつもキーに『アドルフ』を使う」
という癖まで把握されてしまったらしい。
「するとその次は当然『ヒトラー』だよね?」となる。
それを見つけた連合国の執念たるや、すごいものがあるね。
この装置は三つのシリンダーと、置き換えソケットで出来ているのだが、
構造がかなり複雑なので、解説は専門のサイトを参照してください。
私はそれを読んでもわかりませんでした(笑)。
そのエニグマをJAVAでシミュレーションできるのだ。
http://enigmaco.de/enigma/enigma.htmlというサイトだ。
どのような経路で暗号が作成されるか、目で見てわかるように
解説されたサイトだ。
Inputに"HELLO"と入力するとOutputに"KXNCC"と出力される。
これが暗号だ。
これのすごいところは、最初の"L"と二つ目の"L"が違う文字に変換
されているというところだ。
シリンダーのキー(青く反転してるところ)はいじらないでね。
そしてInputに"KXNCC"と入力するとOutputに"HELLO"と表示される。
復号されたわけだ。
同じキーを入力してある機械でのみ復号が可能であるわけだ。
例によって「それで?」と突っ込んでみる。
まあいいじゃないの。タダだし。
けっこういじれるところが一杯ある。
色々いじって試してみると面白いよ。
あっそうそう、当たり前だが日本語には対応していない(笑)。