ギリシャ語で『謎』を意味する「エニグマ」
今回は映画「イミテーション・ゲーム/エニグマと天才数学者の秘密」でも描かれた、**稀代の暗号「エニグマ暗号」**について解説する。
この記事の流れ
-
忙しい人のためのエニグマ暗号歴史まとめ
-
エニグマ暗号の基礎
3. ヴィジュネル暗号
4. ワンタイムパッドと「エニグマ」
5. エニグマの標準的な運用方法 -
エニグマ暗号の強み
4. 複数のローターの「連結」
5. 複数のローターの「並べ替え」
6. 複数のローターの「入れ替え」
7. 日毎に鍵が変わる「日鍵システム」 -
エニグマ暗号の弱点と解読
5. 2回繰り返された日鍵の伝達
6. 文章の定型性
7. 日鍵を選ぶ際の人の癖 -
最近のエニグマに関するニュース
6. エニグマのオークション
7. gitに上がったエニグマのシミュレータ -
まとめ
これは、実際にアメリカの海軍がエニグマ暗号解読に使ったと呼ばれる「ボンベ」と呼ばれるコンピュータ。ポーランドのレイフェスキらによって開発されたものである。
1. 忙しい人のための歴史まとめ
エニグマの発明
エニグマは1920年代に生まれた暗号機である。
Enigma(エニグマ)暗号機は、第1次世界大戦の終結直後にドイツの技術者「アルトゥール・シェルビウス」によって考案された。
当初、エニグマの発明者達は様々な用途を想定し、企業にも売り込みにかかったが、結局大金を払ってその機械を購入したのはドイツ軍だった。
エニグマのシステム
記号と文字が1対1対応するという単純なものではなかった。文字の対応はルールに沿って徐々に変化し、また当初は1京(1兆の1万倍)の組み合わせが可能だった(その後、さらに組み合わせ数は増加)。
エニグマでは、キーを押すたびにローターが回転し、メッセージの暗号化に使用される暗号鍵がたえず変化して、103セクスティリオン(セクスティリオンは10の21乗)通りの組み合わせを提供した。
鍵は1日ごとにドイツ軍が変えるシステムになっていた(「日鍵」)。連合軍側も早々にこの解読を諦め、ナチス・ドイツ軍は暗号漏れの心配をすることなくヨーロッパを蹂躙し始めていた。
ポーランドによるエニグマ攻略
まさにナチス・ドイツによって国が滅ぶという危機の崖っぷちに立っていた、ポーランドの暗号解読機関『ビュロ・シフルフ』はマリヤン・レイフェスキらの天才数学者達を招集、エニグマ暗号を一度は解読に成功した。しかし、その後さらに性能を高めたエニグマには対抗できなかった。
イギリスによるエニグマ攻略
イギリスの秘密暗号解読機関「ブレッチリーパーク」 は早速ポーランドのやり方を分析し、有望な数学者に加え、クロスワードの達人などを集め、さらに高度化したエニグマの解読に当たらせた。
そのとき招集されたのが天才数学者のアラン・チューリングらの精鋭達だった(Dilly Knox、Tony Kendrick、Peter Twinn、Gordon Welchman、Alan Turing)。彼らがブレッチリーパークで暗号解読に取り組み、1940年1月についにエニグマ暗号の解読に成功した。
しかし、チューリングその人は、同性愛者であること(当時の法律では禁止)が後に露見してしまい、無理矢理受けさせられた治療のせいで心と体を病み、若くして自殺してしまう。
「エニグマが解読されなかったら、第二次世界大戦は1948年まで続いただろう」と言われるように、軍司令部と戦場の間の情報伝達手段としてなくてはならないとても重要なものだった。この暗号とその解読はとてもドラマチックだったため、映画化され、多くの人がエニグマ暗号を知る機会となった。
2. エニグマ暗号の基礎
エニグマ暗号の基礎を理解するために、多表式換字暗号を少しだけ解説する。多表式換字暗号は、単表式換字暗号であるシーザー暗号の拡張である。ここでは、多表式換字暗号の1つ、「ヴィジュネル暗号」を解説する。
2.1 ヴィジュネル暗号
もっとも古い多表式換字暗号の1つは、ヴィジュネル暗号である。16世紀に考案されたヴィジュネル暗号は、「鍵が単語」であるためとても単純である。
ます鍵を決め流必要がある。ここでは「MICHAEL」という単語を鍵とする。上の画像上に書かれている、SCISHOW IS TEH GREATEST
が暗号化して送りたい平文だとする。
ヴィジュネル暗号では、上にあるような**$26 \times 26$ の変換表**を作り、平文を1文字ずつ「MICHAEL」という鍵のもとで暗号化していく。暗号化は、1文字目のS
は鍵の1文字目のM
が交差する点上にある文字を表から求めることである。表の中から、行がS
と列がM
の交差する点を探すと、E
となるので、1文字目の暗号文はE
となる。平文の2文字目であるC
は同様に、鍵の2文字目であるI
によりK
と暗号化される。これを繰り返し、平文全体を暗号化させるのが、ヴィジュネル暗号である。
実際、今回の場合、「MICHAEL」は7文字なので原文の文字はそれぞれ7パターンの文字に置き換わる。19世紀、チャールズ・バベッジが考案した周期分析を用いると、暗号文が十分な長さを持っていれば一定のパターンを見つけ出すことで暗号文を原文に戻し、この暗号方式を突破できることがわかっている。
ちなみに、本当に解読不能な暗号を作るためにはヴィジュネル暗号のような平文より短い単語を鍵とするのではなく、「ワンタイムパッド」という、原文と同じ長さの鍵を使って暗号化をする必要がある。
2.2 エニグマ暗号
上記のヴィジュネル暗号と同じ多表式換字暗号だが、圧倒的に複雑で解読が困難だったのがエニグマ暗号である。
2.3 エニグマの入力から出力までの簡単な流れ
入力から出力まで、機械の中がどのようになっているかを簡単に説明すると、図のようになる。
この図は、スクランブラーと呼ばれる表式換字暗号(つまり、アルファベットを鍵の分だけずらす暗号)を直列に複数個繋げたものである。
キーボードを押すと、まず1番目のスクランブラーが別のアルファベットに変換する。これを10回通過した電流は、リフレクターと呼ばれ、電流をさらに別の文字に入れ替える反射板に当たって、10番目のスクランブラーから1番目まで戻り、結果がランプで点灯される。同じ鍵であれば、「R」が「C」に、「C」が「R」と、1対になる仕組みになっている。つまり、同じ鍵がセットされた機械を使う(同じ設定で初期化されたマシンを使用して暗号分を入力すれば、復号化された文章が返される)、すなわち暗号化と復号を一対一で行うことができる。
> 上のエニグマ暗号詳細図の概略図:この場合**内部のスクランブラーは10枚**入っている。すなわち、キーボードからの入力は**スクランブラーによって10回表式変換**される。例えば、R -> H -> ..... -> C というように10回の変換を経たものがランプボードに出力として現れる。これは実際は概略図であり、詳細が書かれているのは下図になる。異なるところは、回転するスクランブラーであるローターと呼ばれるところと、回転には関係しないプラグボードと呼ばれる場所が存在することである。上に書いたように、ローターは送信する1文字ずつ順に回転し、同じ入力でも異なる暗号文を生成することに役立っていた。実際の機械は、ローターの前後に回転には関与しないプラグボードと呼ばれるスクランブラーが一枚ずつ挿入されていた。プラグボードは、単純に文字をずらすのではなく、一対一で単純にマッピングを行う、文字の入れ替えを担当する。
プラグボードとリフレクターは固定されているが、スクランブラーは一文字暗号化するごとに回転する。スクランブラーが回転するごとに、上図の点線部分の配線が変化し、同一の文字でも異なる文字へと変換されるようになる。一文字暗号化されると、スクランブラー1が回転し、スクランブラー1が一回りしてもとの配置に戻ると、桁が上がってスクランブラー2が回転する。スクランブラー2が一回りすると、桁が上がり、スクランブラー3が回転する。そのため、上の例では、3つのローターが内部で構成され、262626通りの換字方式が順に適用される。
リフレクターは復号化のために設置されていて、ペアをつくって配線している。上の図では、文字 "a" を入力すると、配線をたどって暗号化された文字"b"が出力される。同じスクランブラーの配置の下で、逆に文字"b"を入力するとリフレクターを経由して文字"a"が返される。
2.4 エニグマの標準的な運用方法
送信者側
- 両オペレーターが、日ごとのプラグボードやローターの設定(日鍵)が載ったコードブックに従いエニグマを設定する。
- 次に送信者が、任意の3文字(個別鍵)を2回送信する。
- ローターを個別鍵で指定したセット位置に変更し暗号文を送る。
受信者
- 個別鍵を2つの暗号文より解読する。
- その個別鍵に従いローターを再設定する。
- 送られてきた暗号文をセットし、復号する。
3. エニグマ暗号の強み
-
複数のローターの「連結」
-
複数のローターの「並べ替え」
-
複数のローターの「入れ替え」
-
日毎に鍵が変わる「日鍵システム」
3.1 複数のローターの「連結」
利用するローターが1個では多表が26と少ない欠点を持つ。
そこで3つのローターを連結して3回換字することで見かけ上、$26^3 =17,576 $ 通りの鍵空間を使うことができる。
3.2 複数のローターの「並べ替え」
複数ローターによる換字は群論でいう交換則が成立しない。つまり、2つのローターを入れ替えると、入力は異なる出力になって出てくる。よってローターを連結する順序を変えることにより、異なる多表を用意できる。
例えばA,B,Cの異なるローターが有れば、3の順列数である6通りの連結が可能であり、並び替えを考えなかった時は17,576通りだった鍵空間が、が6倍の105,456通りに増える。
3.3 複数のローターの「入れ替え」
3つのローターの並べ替え(105,456通り)でも不足ならば、新規ローターを追加配布して入れ替えることができる。
例えば異なる5つのローターA,B,C,D,Eがあれば、任意の3つを選んで60通り ($60 = _5P_3$) に並べることができるので、17,576通りが60倍の1,054,560通りに増える。
3.4 日毎に鍵が変わる「日鍵システム」
当日しか使えない「日鍵」を使ったことで、エニグマの安全性はさら堅固なものとなった。当時のマシンスペックでは、上記のローター3つのシステムでも総当たりが困難だった。しかも、日毎に鍵が変わるため、総当たりのタイムリミットは24時間と限られ、さらに解読条件が厳しくなった。
のちにナチスはシステムを強化。3つのローターシステムから、ローター数をなんと10個に増やし、総当たりの数は1京通りを超えた。それにより、24時間以内に総当たり法によりエニグマ暗号を解読することは非常に困難と考えられていた。
4. エニグマ暗号の弱点と解読
実際非常に解読困難と呼ばれたエニグマ暗号だったが、暗号解読に取り組んだ偉人たちの前で、以下の弱点に気づかれることになる。結果、彼らは暗号解読への足がかりを掴んだ。
- マリヤン・レイフェスキが注目した、「2回繰り返された日鍵の伝達」
- アラン・チューリングが注目した**「文章の定型性」**
- 日鍵を選ぶ際の**「人の癖」**
これらに注目したレイフェスキとチューリングにより、最終的にエニグマ暗号は破られた。
1つずつ具体的に説明していく。
4.1 2回繰り返された日鍵の伝達
3つのローターシステムを考える。例えば、その日のスクランブラーの位置**(日鍵)がA-A-A**であったとする。まずオペレータはその指示通りに設定を行う。
次にオペレータは、デタラメに3つのアルファベット(個別鍵)を選ぶ。仮にその日選んだのがS-E-Pだったとする。
オペレータはそのS-E-Pという文字列を、日鍵を使って暗号化する。
確実に伝達するために、3つの文字列は2回打刻する決まりだった。
例えば、**「SEPSEP」と打つと、「GEDOSO」**のように暗号化される。
エニグマはキーボードを打つたびに出力文字を変えることができたため(上記のローターの回転による)、2回連続で文字を打っても異なる文字列が出力される。
ドイツ軍は、送られてくる暗号文が6文字の時はこれが個別鍵を日鍵で暗号したものであるという合図として用いていた。つまり、6文字の暗号文が送られてくるたびに個別鍵が2回繰り返されていることを確認し、エニグマの初期設定をその度に変更していたのである。
受信したオペレータは、まず日鍵を用いてS-E-Pという文字列を解読し、
そこでスクランブラーをS-E-Pに設定しなおし解読することで、平文の文章を手に入れる。
個別鍵は人によりランダムに決定されるため、解読するのは非常に困難に思われた。
ポーランドの3人の天才達の招集
ポーランドの暗号局『ビュロ・シフルフ』は、ドイツ軍、ソビエト軍の通信監視を行なっていた暗号解読機関であり、1920年の8月だけでも、400件もの暗号を解読していた最強の暗号解読能力を持っていた部隊であった。しかしながら、
第一次世界大戦後だった1929年頃、ドイツ軍から侵攻される恐怖に脅かされていた。ポーランドは自国の存亡をかけ、ドイツ軍のエニグマ暗号を解読するため、
ポーランドポズナン大学数学科から3人の天才を招集した。彼らの名前は、
- イェジ・ルジェツキ
- ヘンリク・ジガルスキ
- マリアン・レイェフスキ
であった。
繰り返された日鍵の脆弱性を利用した解読
レイフェスキらはエニグマ暗号の解読に没頭する。
そして、彼らが膨大な量の暗号文を解析している時、たびたび6文字の暗号文が送られていることに気づいた。
それにより、以下のような事象が起きる。
例えば、 OQWNEA JVWOLA NQSJEW OUYNTM
これらは個別鍵を日鍵で2回繰り返して暗号化したもので、復号すると、
ZXCZXC DFTDFT NDONDO KKWKKW
のように個別鍵を繰り返したものになっていた。
レイフェスキらは、この6文字の暗号文の中で 1文字目と4文字目
, 2文字目と5文字目
, 3文字目と6文字目
に規則性が生まれることに気づいた。
これはもちろん同じ平文を2回繰り返しているからである。しかも、彼らはこの規則性はプラグボードに関係しないことを発見した。
これによりレイェフスキは1京通りの組み合わせに対して、馬鹿正直に突っ込むのではなくプラグボードとローターに問題を分け、各個別々に解決する手法を取った。
この手法によって、相手にすべき組み合わせを105456通りに圧縮し、厄介なプラグボードをほぼ無力化することに成功したのである。
レイフェスキらは、
- 105,456通りの暗号文をパターン化して一覧表を作成
- その一覧表をデータベースにして、スクランブラーの設定17,576通りを総当たりにチェックする装置を作成
した。ただし、この一覧表を作るだけでローター設定はA-A-AからZ-Z-Zまでの$26^3$通り、
ローター配置は1-2-3から3-2-1までの$3!$通りを手作業で分析しなければならず、その作業量は並大抵のものではなく、この対応表の完成に1年を要したのである。
彼らの貢献により、
1933年 ポーランドの暗号局がエニグマ解読に成功
難攻不落の暗号をポーランドの数学者たちが初めて解読したのであった。
ドイツ軍によるエニグマ暗号の強化
レイフェスキらは人間は計算においてマシンに勝てないことを一覧表を作成した1年間で身を以て知っていたため、苦心の末エニグマ解読機『ボンブ』を開発した。
この機械は、17576通りのローター設定の中から、正しい設定を総当り方式で特定していくといったものだった
ローターの配置は6通りなので、機械は6台設置することでエニグマ暗号を完全に攻略した。
ように思われたが、、、、
1938年、ドイツがエニグマを強化したのであった。相変わらず個別鍵を2回繰り返して送るという脆弱性には気づいておらず、そこに対策はうってこなかったものの、ローター数は3個から5個に、プラグボードで入れ替えられる文字数は6から10に増えたのであった。
それにより、初期状態の組み合わせは 158962555217826360000(約1垓5900京)通りという、気の遠くなる鍵空間数となったのであった。
この圧倒的な組み合わせを前に、ビュロ・シフルフの局員達は為す術が無かった。
『膨大な数』に対抗するため呼び出されたレイェフスキだったが、彼を負かしたものもまた『膨大な数』だったのだった。
これをきっかけにポーランドはドイツ軍の侵攻になすすべがなくなり、
1939年10月6日、ドイツ軍のポーランド侵攻が完了
これから世界は第二次世界大戦が始まったのである。
4.2 文章の定型性
連合国イギリスのエニグマ暗号解読開始
イギリスのブレッチリー・パーク政府暗号学校にて、ポーランドが一度は達成しかけたに思えたでエニグマ暗号解読のため、アラン・チューリングを筆頭にした天才達を招集していた。
チューリングはその当時イギリスでトップの数学者であり、その経歴は
- ケンブリッジ大学のキングス・カレッジに入学し、22歳で特別研究員になる
- その後渡米し、プリンストン大学にて博士号を1年半で取得
していた稀代の天才だった。
彼らは、ポーランドの解読技術は我々の10年先をいっていた、とレイェフスキらの功績をたたえつつも
「いつかはドイツ軍も反復メッセージ鍵の危険性に気づくだろう、もしその時が訪れれば、6文字暗号に依らない解読法が必ず必要になる。」
と考え、反復メッセージ鍵に頼らない暗号解読方法を模索した。
天才達が着目した「クリブ」
チューリングが着目したのは「文章の定型性」であった。
ドイツ人、しかも軍人なので、**暗号は「定時」に「定型文」**で送られることが多くあった。
暗号文中に高い確率で含まれる単語や決まり文句を『クリブ』と呼ぶが、彼らはそのクリブに着目したのである。
例えば、気象情報は「毎日午前6時」に送られ、最初の文字は「wetter(天気)」という文字で始まっていたし、ほとんどの文書に入っている『EINS』(英語でいうa,an)、文章に必ず含まれる『Heil Hitler』(ヒトラー万歳)という言葉である。
1日以内に探索する困難さ
チューリングは同じくケンブリッジ大学の天才数学者であった「ゴードン・ウェルシュマン」と組み、暗号文と平文、その中でもクリブの平文の対応から、レイフェスキらが6文字の暗号文に対して見出していたループ構造を発見するマシンの作成に成功したのである。
ただし、1つの暗号の解読に一週間近くかかってしまう。彼らはさらに探索を効率する必要に迫られていた。
そこで彼らが深い洞察力から着目したのが、**「日鍵を作るときの癖」**だった。
4.3 日鍵を選ぶ際の人の癖
日鍵に前日と同じローター配列を避けたり個別鍵にAAAを選ぶ等、人の癖が解読のヒントになることがあった。
鋭い洞察による探索空間の絞り込み
例えば、癖、心理的に省かれていた日鍵の性質は、以下のようなものである。
- 同じ位置に同じローターは、2日連続で配置されない。たとえば、前日の配置が1-2-3だった場合、今日の日鍵に1-3-4とか、5-2-4などは選ばれない。
- プラグボードは隣り合う文字は繋がない。たとえば、AがBに変換され、BがAに変換されるようなことはない。
- メッセージ鍵も『Q-W-E』とか『B-N-M』などの、キーボードで隣り合っている文字が出やすい。
チューリングらはその鋭い洞察力を生かし、ショートカットを余すこと無く利用することで少しでも鍵の探索数を減らしていったのだった。
暗号解読成功とドイツ軍の降伏
そのころ、ドイツ軍カール・デーニッツ考案の『群狼戦術』により、イギリスの船はドイツ軍の潜水艦『Uボート』により、壊滅的な攻撃を多数受けていた。
エニグマの仕様(ローター数等)や日鍵は陸海空軍、各戦線で異なった。陸軍が使っていたローターの種類は5種類だったが、海軍は8種類を使っていた。これは探索数でいうと5倍以上であり、加えてドイツ海軍は鍵の送信方法に独自の暗号手法を組み合わせていた。そのため、エニグマを解読し、さらにその独自の暗号手法を解読する必要があったため、ドイツ海軍の暗号を破るのが一番難しいと考えられていた。
チューリングらはこのドイツ海軍の**「ドルフィン」と呼ばれる暗号の解読に1941年3月に成功する**。これは暗号解読チームと敵船を拿捕し、暗号解読に役立つ情報を命がけで集めた海軍の連携によって達成されたのである。
さらに彼らは、ヒトラーと将官、 および将官と将官の通信のみに使われた、エニグマを超える最強の暗号機「タニー」も天才技術者トミー・フラワーズとの連携により破ることになる。
それがきっかけとして、イギリスらの連合軍がドイツに対して多くの作戦を成功、1945年5月8日のドイツ軍が降伏を迎えたのである。
5. 最近のエニグマに関するニュース
以上がエニグマについての解説と壮大な天才数学者、技術者達の戦いの歴史だったが、エニグマについてのニュースは最近でもいろいろある。
5.1 エニグマのオークション
連合軍にマシンを盗まれることを恐れたドイツ軍は、すべてのEnigmaを破壊するよう命じたが、実際は数百台が現存していると想定されている。このうちの1つのエニグマのオークションが開催され、
このEnigmaのオークションは、5月30日にNate D Sanders Auctionsで20万ドル(約2190万円)の値がつけられた。こちらの記事をご覧ください。
5.2 gitに上がったエニグマのシミュレータ
こちらの記事にあるように、CyberChefは、こちらのGitHubで提供されており、同アプリを通じて、Enigma、Bombe、暗号機「Typex」の各シミュレータ、およびそれらの使用説明と練習問題が入手できる。
6. まとめ
暗号を勉強する上で、歴史と(特に戦争と)非常に密接に関わっており、色々なドラマがあるため、とても面白い。
実際に興味を持った人は冒頭で紹介した映画「イミテーション・ゲーム/エニグマと天才数学者の秘密」をみると面白いと思います。
また、この記事の歴史的な部分はhttp://world-fusigi.net/archives/8919000.html に書かれている記事を大いに参考にさせていただきましたし、楽しく読ませていただきました。このように歴史を面白おかしく解説しながら書いている人がいることに大きな感謝です。
他の多くの参考文献は下にまとめました。
この記事が面白かったという方は、ぜひ「いいね」や「コメント」をよろしくお願いいたします!!
おわり。