エニグマ (暗号機)

エニグマ (Enigma) とは、第二次世界大戦でナチス・ドイツが用いたローター式暗号機である。幾つかの型がある。暗号機によって作成される暗号も広義にはエニグマと呼ばれる。名称はギリシア語に由来し、「謎」を意味する。
エニグマ暗号機は、1918年にドイツの発明家アルトゥール・シェルビウスによって発明された電気機械式暗号機械で、1925年にはドイツ軍が正式に採用。続いてドイツ政府や国営鉄道なども採用し、3万台以上を販売した。
暗号方式は換字式であり、詳しくは順変多表式である。エニグマはと同様な反転暗号となり、暗号文を同じ鍵で再暗号化すると平文が得られる特徴がある。
大戦中の1939年に、イギリスはアラン・チューリングらによってエニグマの解読に成功したが、その事実は徹底して極秘事項とされ、ドイツ軍は終戦までエニグマを使用し続けた。
構造.
手前にキーボードがあり、その奥にランプボード（表示盤）、一番奥には3枚のローター（暗号円盤）が入っていて、ローターの初期状態を設定できるようにホイールの端が出ている。ローターの左にはリフレクター（反転ローター）がつけられている。キーボードの手前にはプラグボードが格納されている。
上蓋の内側の下にプラグコードが格納されている。
キーボードで平文（ひらぶん）の一文字を打ち込むと、ランプボードの一つが点灯して暗号文の一文字が得られる。暗号文を復号する際も、同様にキーボードで暗号文を打ち込むとランプボードが点灯して平文が得られる。
暗号化・復号の鍵は、いくつかあるローターのうちどの3枚を使うかの組み合わせと、ローターをセットする順序、ローターの目盛りの初期位置、およびプラグボード配線である。
内部のローターは、中の配線が暗号化機（スクランブラー）になっている。打ち込んだ文字は3枚のローターを通って変換され、反転ローターでもう一度3枚のローターを逆方向に通って再度変換されて出力される。
1文字暗号化する毎にローターが一目盛り回転し、回路が変更されるので、同じ文字を打ち込んでも前回とは別の文字に変換される。端のローターが1回転すると隣のローターが一目盛り回転するので回路の組み合わせは膨大な数になる。これは異なる換字表を1文字ごとに使っていくことと同じである。
エニグマ換字の原理.
ドイツ陸軍用I型のエニグマ暗号機は理論上3つの換字要素、ローター、反転ローターおよびプラグボードから構成されている。
ローター.
A - Zのアルファベットによる多表式暗号であれば、多表の数は理論上26! = 403,291,461,126,605,635,584,000,000 通り得られる。もしローターの代わりにプラグボードを利用すればこの多表全てを所望の順番で変更利用できるが、1文字を暗号化する度にプラグの差し替えが必要であり実用性に乏しい。そこで多表数をアルファベット数と同じ数（エニグマは26表）で妥協する代わりに、機械的に多表を逐次変更する方法の一つとしてローター式（鼓胴とかドラム式とも呼ばれる）暗号機が登場した。
ローターには、その内部配線により26!通りの中から所望の単文字換字表を1つだけ設定することができる。よって「動かないローター」は「挿しっぱなしのプラグボード」と等価である。配線の変更作業は端末ユーザーには事実上不可能であり、配線内容が敵に漏洩した場合は別配線の新規ローターを全ユーザーに配布・交換する必要がある。
ローターを駆動することにより、そのローターの単文字換字表から関連付けられた26の多表を切り替えて利用できる。26の多表はローター固有の表であり、変更することは出来ない。よって1文字換字する度にローターを駆動させ、どの表を利用するかが重要となるが、エニグマはローターの多表が秘匿されていることを前提にした順変多表式であり、1文字換字毎に1/26段階ずつ駆動させている。つまり多表を頭から順繰りに切り替えていく。
しかし利用するローターが1個では多表が26と少ない欠点を持つ。そこで3つのローターを連結して3回換字することで見かけ上、263=17,576表を利用できる。ローターによる換字は群論でいう交換則が成立しない。よってローターを連結する順序を変えることにより、異なる多表を用意できる。例えばA,B,Cの異なるローターが有れば、3の順列数である6通りの連結が可能であり、17,576表が6倍の105,456表に増える。
3つのローターの並べ替え（105,456表）でも不足ならば、新規ローターを追加配布して入れ替えることができる。例えば異なる5つのローターA,B,C,D,Eがあれば、任意の3つを選んで60通り (60=5P3) に並べることができるので、17,576表が60倍の1,054,560表に増える。
反転ローター.
電気的閉回路を構成する反転ローターの採用は、エニグマ換字に、反転性 (reciprocity) とある種の不完全性 (noncrashing) と言う2つの特徴を同時に与えた。
反転性 (reciprocity).
原字Aが暗字Bに換字されるなら (Ap=Bc)、原字Bは暗字Aとなる (Bp=Ac) 特徴を持つ。この特長により暗号文を再度暗号化すると平文が得られ、機械構造がシンプルになった。例えば反転ローターを持たないにはreciprocityはないので、作成・翻訳切り替え機構が必要である。
ある種の不完全性 (noncrashing).
原字は自分自身に換字されない (Ap≠Ac) 特徴を持つ。仮にエニグマの"A"のボタンを連続して打鍵すると、その都度に異なる文字ランプが点灯するが決して"A"だけは点灯しない。これは反転ロータの構造による（26個の接点を2個ずつ結合しているから）。例えばM-209はreciprocityであるがnoncrashingではない。
これはクリブによる解読が容易である欠点となった。この特徴を利用して気象通報用エニグマ暗号文の冒頭部に対してクリブ (crib) を当てはめる場合を説明する。
暗号文の冒頭
仮定する独語
cribとなる文字列
crib（クリブ）
暗号文とcribを重ね合わせ、上下で同じ文字（暗字=原字）になった場合は、誤った位置として棄却できる。エニグマ暗号文には、こうしてcribを当てはめることが可能である。この例では2番目、5番目および10番目にcribがある可能性がある。
 TVQLKIGWHBSTUXNTXEYLKPEAZZNSKUFJRCADVVTI
 WUEBYYNULLSEQSNULLNULL ←棄却
 WUEBYYNULLSEQSNULLNULL ←正解候補
 WUEBYYNULLSEQSNULLNULL ←棄却
 WUEBYYNULLSEQSNULLNULL ←棄却
 WUEBYYNULLSEQSNULLNULL ←正解候補
 WUEBYYNULLSEQSNULLNULL ←棄却
 WUEBYYNULLSEQSNULLNULL ←棄却
 WUEBYYNULLSEQSNULLNULL ←棄却
 WUEBYYNULLSEQSNULLNULL ←棄却
 WUEBYYNULLSEQSNULLNULL ←正解候補
 WUEBYYNULLSEQSNULLNULL ←棄却
プラグボード.
各ローターの多表は固定されており、野戦で使用される暗号機は盗まれたり鹵獲されたりする可能性がある。そこでプラグボードが追加された。プラグボードはキーボード・ランプボードとローター換字部の間に挿入され、単文字換字を行う。アルファベット26個分の入出力端子があり、任意の2つのアルファベットをバナナプラグの付いた1組のケーブルで入れ替えることができる。右の写真では"A"と"J"、"S"と"O"が入れ替えてある。なおプラグの刺さっていないアルファベットは入出力が短絡された状態である（例えば"W"は"W"になる）
ドイツ軍は初めは3組（3.5×106通り）、後に10組（1.5×1014通り）のアルファベットを入れ替えた。ローターの並べ替え・入れ替えに比べ、桁違いの鍵規約数を末端ユーザーが利用できるのが特徴である。しかし頻繁にプラグを入れ替えることは困難であり、実際には1日毎（後に8時間毎）の入れ替えとなった。ポーランドの解読者は暗号解読に群論を初めて導入し、プラグボードの影響を排除してローター多表の解析に成功したことがエニグマ解読の重要な一歩となった。
解読.
1920年代にドイツ軍は3ロータ型のエニグマを運用開始し、1930年代に入るとイギリス、アメリカ、フランスがこの3ロータ型のエニグマ解読を試みたが不成功に終わった。
1932年、ポーランド軍参謀本部第2部暗号局()の数学者マリアン・レイェフスキ（当時27歳）と、彼のポズナン大学における後輩ヘンリク・ジガルスキとイェジ・ルジツキは、1932年ころ初期型を解読した。これはフランス情報部のスパイが、ベルリン暗号局シフリーシュテーレで勤務するから得た情報から推察される構造を復元したエニグマを用いて解読された。元々がエニグマ実機が敵国側に堕ちることを想定され設計された暗号機であったので、レイェフスキにより解読された時点で実質エニグマは原理的に敗北したも同然であるといえよう（実のところ、レイェフスキの上司であるランゲル少佐はフランス側からローターの日毎の配置を記したコードブックも得ていた。が、戦争激化時のスパイ行為の難しさを見越して独力で解かせることにしていたという）。レイェフスキは「ボンバ」という暗号解読機を6台制作、ジガルスキは6枚のコードシート「ジガルスキ・シート」を6枚製作して、当時のドイツが使用していたもの（基本的に3ロータで、6つのホイールオーダーを可能としていた）より複雑なエニグマでも解読できるようにまで発展させた。
ところがドイツ側はローター数やプラグ数を2つ追加、これによりホイールオーダーは原理的に6から60に増加、暗号をより強固なものとした。ポーランド暗号局は当時6台制作したボンバとジガルスキ・シートにさらにそれぞれ54台、54枚を追加しなければ太刀打ちできない状況になった。原理は同じものであるから理論的にはレイェフスキの手法で新しいエニグマの暗号解読は十分可能であったが、ドイツとの戦争が差し迫っている中、ポーランド側には54台のボンバと54枚のジガルスキ・シートを追加制作し運用するために割く時間も予算も人員も足りなかった。既にドイツの独裁者であったヒトラーはポーランドへの強硬的な発言を強めており、ポーランドでは危機感が募るばかりで、ドイツが侵攻してくればポーランド側が独自に国土防衛を行いながらボンバを用いた新エニグマ解読作戦を継続することは考えられなかった。のちにレイェフスキはこう述べている：
もはやボンバの改良や人員の強化は開戦に間に合わないと悟ったランゲル少佐は、やむなくイギリス・フランスの情報担当官を緊急でワルシャワに招き、"解読不可能"とされていたエニグマ解読の成果（bombe等）を披露し、旧式とはなっていたがドイツ軍用エニグマのレプリカを送呈した。その結果イギリスの政府暗号学校 (GC&CS) のアラン・チューリングが、1939年秋には電動式の暗号解読機「」の設計を行った。ポーランドのレイェフスキ・ボンバがエニグマ解読専用の設計であったのに対し、このイギリスのチューリング・ボンブはいわゆるクリブ方式の暗号一般に対応できるよう設計された。そのためには大西洋上のドイツの気象観測船を奇襲により捕獲したり、損傷して自沈のために浮上したUボートを捕獲したりしてエニグマの実物や暗号書を手に入れることが不可欠だった。
イギリスの諜報機関内で解読作業をしたグループは（ウルトラ）と呼ばれ、解読情報はUltra情報と呼ばれた。Ultraの作業は戦時中はもちろん戦後も極秘とされ、1974年にその内実を記した書籍が出版されるまで世間に知られる事は無かった。そのためチューリングら関与した科学者は戦後にその功績に見合った評価や待遇を受けられず不遇の日々を送る事となった。
エニグマ解読には5つの方法、そしてモチベーションが必要とされた。どれもが重要な役割を果たし、タイムリーな解読のために相互に補完した。
学理的な解読.
群論によるローター配線解析の成功。これは解読者に数学よりも語学のセンスを要求したイギリスの方針を転換させた。
機械による解読.
アラン・チューリングが開発した多数の暗号解読機「ボンベ (Bombe)」による総当り攻撃。
スパイや捕獲による暗号機（書）の入手.
単に解読が可能になったのみならず、捕獲できなかった部分に対しての解読が容易になった。
交信解析.
無線コールサインを解析し、送信・受信者や重要度、内容までも推定すること。クリブが最大限に活用された。
解読のきっかけとなった「モチベーション」.
フランス情報部の大尉はスパイであるシュミットから以下の情報を受け取った。
ベルトラン大尉はまず自国の暗号家であるバジェールに入手した情報を見せたが、専門家の返答は「この資料だけでは何も出来ない。エニグマ模造機を作るにはローター配線情報が必須だ」と否定的な意見だった。次に当時友好的であったイギリス情報部のウィルフレッド・ダンダーデイルに話を持ち掛けたが、情報は役に立たないと判断された。最後にベルトラン大尉が相談したのがポーランドであった。解読チームBS-4の幹部ランゲルに面会したところ、ランゲルは積極的な態度を示し「我々は貴方がた（英仏解読者）とは（ドイツに対する恐怖感からの）モチベーションが違います」とコメントした。
64年ぶりの解読.
2006年2月、未解読のままになっていた三つの暗号文の内の一つが、ドイツのアマチュア暗号解読家とインターネット上の仲間による共同プロジェクトM4 Projectによって解読された。M4 Projectは、分散コンピューティングを使用したブルートフォースアタック（総当たり攻撃）によってエニグマ暗号文を解読しようとするプロジェクトで、解読された内容はUボートが発信した「敵を追跡している」という内容のものであった。同年3月には2つ目の暗号も解読され、2013年1月には最後の暗号も解読された。
歴史.
 Q W E R T Z U I O
 A S D F G H J K
 P Y X C V B N M L
余談.
イギリスが暗号を解読するようになると「ドイツ軍の指揮官が自分達への命令を確認するため、イギリスに問い合わせた」というジョークすら生まれた。