エニグマ (暗号機)

エニグマ (Enigma) とは、第二次世界大戦でナチス・ドイツが用いたローター式暗号機である。幾つかの型がある。暗号機によって作成される暗号も広義にはエニグマと呼ばれる。名称はギリシア語に由来し、「謎」を意味する。 エニグマ暗号機は、1918年にドイツの発明家アルトゥール・シェルビウスによって発明された電気機械式暗号機械で、1925年にはドイツ軍が正式に採用。続いてドイツ政府や国営鉄道なども採用し、3万台以上を販売した。 暗号方式は換字式であり、詳しくは順変多表式である。エニグマはM-209（英語版）と同様な反転暗号となり、暗号文を同じ鍵で再暗号化すると平文が得られる特徴がある。 大戦中の1939年に、イギリスはアラン・チューリングらによってエニグマの解読に成功したが、その事実は徹底して極秘事項とされ、ドイツ軍は終戦までエニグマを使用し続けた。 手前にキーボードがあり、その奥にランプボード（表示盤）、一番奥には3枚のローター（暗号円盤）が入っていて、ローターの初期状態を設定できるようにホイールの端が出ている。ローターの左にはリフレクター（反転ローター）がつけられている。キーボードの手前にはプラグボードが格納されている。 上蓋の内側の下にプラグコードが格納されている。 キーボードで平文（ひらぶん）の一文字を打ち込むと、ランプボードの一つが点灯して暗号文の一文字が得られる。暗号文を復号する際も、同様にキーボードで暗号文を打ち込むとランプボードが点灯して平文が得られる。 暗号化・復号の鍵は、いくつかあるローターのうちどの3枚を使うかの組み合わせと、ローターをセットする順序、ローターの目盛りの初期位置、およびプラグボード配線である。 内部のローターは、中の配線が暗号化機（スクランブラー）になっている。打ち込んだ文字は3枚のローターを通って変換され、反転ローターでもう一度3枚のローターを逆方向に通って再度変換されて出力される。 1文字暗号化する毎にローターが一目盛り回転し、回路が変更されるので、同じ文字を打ち込んでも前回とは別の文字に変換される。端のローターが1回転すると隣のローターが一目盛り回転するので回路の組み合わせは膨大な数になる。これは異なる換字表を1文字ごとに使っていくことと同じである。 刻み付リング, ロータが一回転したときにラッチ機構を通して隣のローターを一目盛り回転させる "A"の場所を示すドット印, 操作者がローターを組み立てるときに使う アルファベットが刻まれたリング, 文字ではなく数字がついているリングもある 端子板 端子板とピン端子を接続するワイヤ；このワイヤの接続が換字表を実現している部分である スプリング付ピン端子 スプリング付リング, アルファベットリングの位置を変更するのに使う; リバー上のピンがアルファベットリングの側面の穴に入るようになっている ハブ, 中心軸を通す Finger wheel, ローターの初期位置を手動でセットするのに使う ラッチ機構 ドイツ陸軍用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つの特徴を同時に与えた。 原字Aが暗字Bに換字されるなら (Ap=Bc)、原字Bは暗字Aとなる (Bp=Ac) 特徴を持つ。この特長により暗号文を再度暗号化すると平文が得られ、機械構造がシンプルになった。例えば反転ローターを持たないHebern rotor machineにはreciprocityはないので、作成・翻訳切り替え機構が必要である。 原字は自分自身に換字されない (Ap≠Ac) 特徴を持つ。仮にエニグマの"A"のボタンを連続して打鍵すると、その都度に異なる文字ランプが点灯するが決して"A"だけは点灯しない。これは反転ロータの構造による（26個の接点を2個ずつ結合しているから）。例えばM-209はreciprocityであるがnoncrashingではない。 これはクリブによる解読が容易である欠点となった。この特徴を利用して気象通報用エニグマ暗号文の冒頭部に対してクリブ (crib) を当てはめる場合を説明する。 暗号文の冒頭 TVQLKIGWHBSTUXNTXEYLKPEAZZNSKUFJRCADVVTI… 仮定する独語 Wetterübersicht 0600（üは暗号変換時は「ue」として扱う。英訳は「Weathersurvey 06:00」。） cribとなる文字列 WUEBYYNULLSEQSNULLNULL（Wueb=Wetterübersicht, YY=空白, Seqs=Sechs） 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部暗号局(en)の数学者マリアン・レイェフスキ（当時27歳）と、彼のポズナン大学における後輩ヘンリク・ジガルスキとイェジ・ルジツキは、1932年ころ初期型を解読した。これはフランス情報部のスパイが、ベルリン暗号局シフリーシュテーレで勤務するハンス＝ティロ・シュミット（英語版）から得た情報から推察される構造を復元したエニグマを用いて解読された。元々がエニグマ実機が敵国側に堕ちることを想定され設計された暗号機であったので、レイェフスキにより解読された時点で実質エニグマは原理的に敗北したも同然であるといえよう（実のところ、レイェフスキの上司であるランゲル少佐はフランス側からローターの日毎の配置を記したコードブックも得ていた。が、戦争激化時のスパイ行為の難しさを見越して独力で解かせることにしていたという）。レイェフスキは「ボンバ」という暗号解読機を6台制作、ジガルスキは6枚のコードシート「ジガルスキ・シート」を6枚製作して、当時のドイツが使用していたもの（基本的に3ロータで、6つのホイールオーダーを可能としていた）より複雑なエニグマでも解読できるようにまで発展させた。 ところがドイツ側はローター数やプラグ数を2つ追加、これによりホイールオーダーは原理的に6から60に増加、暗号をより強固なものとした。ポーランド暗号局は当時6台制作したボンバとジガルスキ・シートにさらにそれぞれ54台、54枚を追加しなければ太刀打ちできない状況になった。原理は同じものであるから理論的にはレイェフスキの手法で新しいエニグマの暗号解読は十分可能であったが、ドイツとの戦争が差し迫っている中、ポーランド側には54台のボンバと54枚のジガルスキ・シートを追加制作し運用するために割く時間も予算も人員も足りなかった。既にドイツの独裁者であったヒトラーはポーランドへの強硬的な発言を強めており、ポーランドでは危機感が募るばかりで、ドイツが侵攻してくればポーランド側が独自に国土防衛を行いながらボンバを用いた新エニグマ解読作戦を継続することは考えられなかった。のちにレイェフスキはこう述べている： 「僕らは新しいロータの回路をすぐに把握したが、その導入部はロータの配列が6から60に増加することを可能としていた。だからそのため解読の鍵を見つけるのにこれまでの10倍の労力が必要となってしまったわけだ。つまりこの変化というのは本質的なものではなく単に量的なものであった。だから僕らは、ボンバを運転したり、穿孔シートを製作したり、その穿孔シート操作したりするための人員をずっと増やさなければならない状況になっていたのだ。」 もはやボンバの改良や人員の強化は開戦に間に合わないと悟ったランゲル少佐は、やむなくイギリス・フランスの情報担当官を緊急でワルシャワに招き、"解読不可能"とされていたエニグマ解読の成果（bombe等）を披露し、旧式とはなっていたがドイツ軍用エニグマのレプリカを送呈した。その結果イギリスの政府暗号学校 (GC&CS) のアラン・チューリングが、1939年秋には電動式の暗号解読機「ボンブ（英語版）」の設計を行った。ポーランドのレイェフスキ・ボンバがエニグマ解読専用の設計であったのに対し、このイギリスのチューリング・ボンブはいわゆるクリブ方式の暗号一般に対応できるよう設計された。そのためには大西洋上のドイツの気象観測船を奇襲により捕獲したり、損傷して自沈のために浮上したUボートを捕獲したりしてエニグマの実物や暗号書を手に入れることが不可欠だった。 イギリスの諜報機関内で解読作業をしたグループはUltra（ウルトラ）と呼ばれ、解読情報はUltra情報と呼ばれた。Ultraの作業は戦時中はもちろん戦後も極秘とされ、1974年にその内実を記した書籍が出版されるまで世間に知られる事は無かった。そのためチューリングら関与した科学者は戦後にその功績に見合った評価や待遇を受けられず不遇の日々を送る事となった。 エニグマ解読には5つの方法、そしてモチベーションが必要とされた。どれもが重要な役割を果たし、タイムリーな解読のために相互に補完した。 群論によるローター配線解析の成功。これは解読者に数学よりも語学のセンスを要求したイギリスの方針を転換させた。 アラン・チューリングが開発した多数の暗号解読機「ボンベ (Bombe)」による総当り攻撃。 単に解読が可能になったのみならず、捕獲できなかった部分に対しての解読が容易になった。 思いついた文字やキーボードの並びから、開始符を決める悪癖。 規約更新直後のローター開始位置に無意識の偏りがあること（"Herivel tip"と呼ばれる）。 ローターを入れ替えする際に前回と同じ位置に同じローターを避ける心理。 ドイツ軍は各メッセージを一時的な鍵で暗号化し、その鍵を日鍵と呼ばれる一日変更されない鍵で暗号化してメッセージと共に送信していたが、初期は間違いを避けるため送信する鍵を反復していたこと。 無線コールサインを解析し、送信・受信者や重要度、内容までも推定すること。クリブが最大限に活用された。 フランス情報部のギュスターヴ・ベルトラン（英語版）大尉はスパイであるシュミットから以下の情報を受け取った。 ローターI,II,IIIの配列 各ローターに装着するアルファベットリングの位置。 共通鍵用のローター開始位置 プラグボード配線 ベルトラン大尉はまず自国の暗号家であるバジェールに入手した情報を見せたが、専門家の返答は「この資料だけでは何も出来ない。エニグマ模造機を作るにはローター配線情報が必須だ」と否定的な意見だった。次に当時友好的であったイギリス情報部のウィルフレッド・ダンダーデイルに話を持ち掛けたが、情報は役に立たないと判断された。最後にベルトラン大尉が相談したのがポーランドであった。解読チームBS-4の幹部ランゲルに面会したところ、ランゲルは積極的な態度を示し「我々は貴方がた（英仏解読者）とは（ドイツに対する恐怖感からの）モチベーションが違います」とコメントした。 2006年2月、未解読のままになっていた三つの暗号文の内の一つが、ドイツのアマチュア暗号解読家とインターネット上の仲間による共同プロジェクトM4 Projectによって解読された。M4 Projectは、分散コンピューティングを使用したブルートフォースアタック（総当たり攻撃）によってエニグマ暗号文を解読しようとするプロジェクトで、解読された内容はUボートが発信した「敵を追跡している」という内容のものであった。同年3月には2つ目の暗号も解読され、2013年1月には最後の暗号も解読された。 1918年 シェルビウスがエニグマの特許を出願。 1923年 Chiffriermaschinen A.G.がエニグマのA型を展示会に出品。 Scherbius特許を忠実に商品化したA型は28接点のローター4個が不規則な回転を行う。A型は大きくて不評だった。 B型は接点数を28→26字にする。 CおよびD型は3つのローター (fast,medium,slow) が距離計のように駆動、周期は 26 × 25 × 26 = 16 , 900 {\displaystyle 26\times 25\times 26=16,900} 字である（slowが駆動する時、mediumも連れ周り）。さらにHugo Kochが発明した反転ローター"Umkehrwalze"を採用。小型化に成功したD型は欧州各国で採用が広まった。 1926年 ドイツ海軍が軍用エニグマの運用を開始。これは商用D型にウムラウトを加えた29字タイプである。 1928年 ドイツ陸軍が軍用エニグマ G型の運用を開始。 1930年 ドイツ陸軍は改良したI型を本格運用。商用D型との主な違いは、 反転ローターは固定され、駆動はしない。 プラグボードの採用。商用型の被解読性にドイツも気付いた。 1931年 フランス側スパイのシュミット（独暗号局職員）が11月頃からドイツ陸軍エニグマの鍵と操作書を盗み出す。 この頃のドイツ暗号員はAAAやABCのような安易なローター開始位置を用いていた。 1932年 12月、ポーランドの解読者であるレイェフスキがシュミット情報を元に3個のローター配線を解析することに成功。これでドイツ陸軍のエニグマが読めるようになった。なおローター解析には群論を導入した。 ドイツ上層部は安易な開始位置を禁止するが今度はキーボード配列を借用したQAY, PYX等の鍵が多発する。 この頃の鍵探索法は"grill-method"と呼ばれ、プラグボードがまだ6組しか置換していないのが幸いした。 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 1934年 10月、ドイツ海軍もエニグマ I型を運用開始 1935年 8月、ドイツ空軍もエニグマ I型を運用開始 1936年 1月、ローター配列が1か月ごとに更新される（以前は3か月ごと） スペイン内戦ではイタリア軍がプラグボードのない商用エニグマを使用。ドイツ外務省はイタリアのエニグマ解読に成功する。同じ鍵系列で100通近い電文を暗号化したので古典的解読法が適用できた。この頃になるとフランスでは、商用型のローター配線がわかれば、文頭仮定語からローターの開始位置と配置順序を見つける"La Method des Batons"を編み出す。正しい位置と順序ならば、仮定語と暗号文はisomorphsを成すからである。類似の解読法をイギリスでは"Casting the rod"、アメリカでは"strip"と呼んだ。 10月、プラグボードの数が8組に増加して"grill-method"の効率が低下した。対抗策としてプラグボードには影響されない"cyclometer"および"card-catalog"が導入される。共通鍵（日鍵）は僅か12 - 20分で突き止められた。 10月、8時間ごとにローター配列が変更されるようになった。 1937年 11月、反転ローターが更新されてcard-catalogの再構築が必要となった。1年以内に完了して新しい反転ローターに追随できた。 1938年 9月15日、個別鍵の秘匿方法が変更されてcard-catalogが利用できない。そこでポーランドは2つの対抗策を編み出した。 "bombe"の構築。card-catalogと同様に全ての文字がプラグボードを通過しないことを利用していたが、より柔軟な運用ができた。bombeが稼動すると個別鍵は2時間で求まった。 Zygalskiが"perforated-sheets"を考案。これもプラグボードの影響を受けないが、シート作成に時間がかかり38年末になっても1/3しか完成しなかった。 12月、ドイツ陸軍がローターの種類を3個から5個にする。Rejewskiが追加されたローター配線も復元する。 1939年 1月1日、プラグボードが10組に増え、bombeの効率が低下した。ローター配列の規約数も増加しており、ポーランド独力ではタイムリーな解読は維持できない。 7月24日、ポーランドの解読成果が英仏に提供される。 8月16日、ポーランド製エニグマ模造機がロンドンに。 9月1日、ドイツがポーランドに侵攻、英仏は宣戦布告。 イギリスがperforated-sheetsを作成開始（60×26=1560枚）、仏に逃れていたポーランド解読者に提供されると日鍵の探索が再開された。解読には70 - 100通の電文が必要だった。しかし翌年には個別鍵秘匿方法が変更されてperforated-sheetsも役立たずになる。 1940年 1月、イギリスはドイツ空軍のエニグマを解読（紙と鉛筆による） 2月、イギリスは海軍エニグマのローター2個分をU-33から捕獲。脱出乗員がポケットにローターを入れたまま捕虜になった。 3月14日、GC&CSにボンベ初号機が導入。 5月、ドイツの偽装トロール漁船からの回収文書を利用して海軍エニグマを解読。 5月、空軍の汎用鍵システムの解読に成功。終戦まで追随できた。 8月8日、ボンブ改良機、始動。 8月、海軍エニグマの3番目のローターを捕獲成功。 9月、バトル・オブ・ブリテンでのドイツ空軍敗退決定。 12月、親衛隊の汎用鍵システムの解読に成功。 1941年 1月、アフリカ戦線での空軍鍵システムの解読に成功。 3月、ドイツ哨戒船Krebから捕獲した文書により3 - 5月分の海軍Home Water鍵を入手、この鍵はUボートも使用していた。 6月、U-110と気象観測船Münchenから1か月分の鍵を捕獲。 6月、東部戦線の陸軍鍵システムの解読に成功。 7月、気象観測船Lauenburgから1か月分の鍵を捕獲。 8月、海軍Home Water鍵（Uボート含む）を捕獲暗号鍵無しでも36時間以内に解読可能となる。これは6・7月の捕獲鍵がヒントになる。 10月、Uボート専用鍵システム (TRITON) が12 - 120時間で解読可能。 12月、アプヴェーア（国防軍情報部、カナリス提督）鍵システムの解読に成功。1944年まで追随した。 1942年 1月、空軍の鍵システムであるFliegerkorps IXとFliegerkorps Xの解読に成功。 1月、新しい海軍気象通報用鍵システムが採用されるが、クリブから解読可能となる。 2月、Uボートが4個ローターのエニグマ暗号機を採用 (SHARK)。これにてGC&CSでの対Uボート解読は振り出しに戻る。 4月、アフリカ戦線で空地連絡用鍵の解読に成功。解読は1943年9月まで追随。 10月、U-559から新しい海軍気象通報用鍵を捕獲。 10月13日、第一次遣独潜水艦伊号第三〇潜水艦がドイツからエニグマ50台を持ち帰ったが、インド洋における日独海軍の協同作戦用かこのうち10台をシンガポールで陸揚げした後、出航時に同艦は触雷沈没した。 11月、連合軍アフリカ侵攻。 12月、Uボート用鍵 (SHARK) の解読成功。気象通報用鍵がクリブとなる。解読には8日かかったが、月末には12時間に短縮した。 1943年 1月、SHARK解読に遅れ。いくつかは戦術的価値のあるうちに解読。 3月、90個のSHARK鍵を112日間で解読。 8月、SHARK解読が加速する。 1944年 6月、連合軍ノルマンディー上陸 11月、各Uボートで個別鍵を採用。 1945年 5月、ドイツ降伏 イギリスが暗号を解読するようになると「ドイツ軍の指揮官が自分達への命令を確認するため、イギリスに問い合わせた」というジョークすら生まれた。