エニグマ:1.59×10²⁰ 通りの鍵と一つの欠陥
エニグマは、木の箱に入ったタイプライターのように見えた。操作員がキーボードで文字を押すと、ランプ盤で別の文字が光る。二人めの操作員が光った文字を書きとめ、その文字列がモールス信号で無線送信された。受け手の側では、同じように設定した同じ機械で操作員が暗号文を打ち込み、ランプでもとの文を読んだ。
キーとランプのあいだで、電流は迷路を通った。プラグボード、中で配線が交差した三つのローター、電流を送り返すリフレクター、ふたたび三つのローター、そしてふたたびプラグボード。しかもキーを押すたびに最初のローターが一つ回り、迷路全体が変わった。
鍵を数える
ドイツ軍がエニグマを信頼したのは、設定の可能な数の多さのためだった。1939 年の陸軍型について、パスカルが教えてくれた組合せ論で数えてみよう。
ローター。 5 個入りの箱から 3 個を選び、順序も区別する。
$$5\cdot4\cdot3=60.$$初期位置。 各ローターは 26 文字のどれかから始まる。
$$26^3=17\,576.$$プラグボード。 10 本のケーブルが文字を二つずつつなぎ、入れ替える。26 文字から 10 組をつくる方法は何通りか。26 文字を $26!$ 通りのどれかの順に一列に並べ、最初の 20 文字で二つずつ組をつくる。残りの 6 文字はつながず、その順序は関係ないので $6!$ で割る。10 組の順序も関係ないので $10!$ で割る。各組の中の順序も関係ないので $2^{10}$ で割る。結果は
$$\frac{26!}{6!\cdot10!\cdot2^{10}}=150\,738\,274\,937\,250.$$合計。 かけ合わせると
$$60\cdot17\,576\cdot150\,738\,274\,937\,250\approx1.59\times10^{20}.$$ローターのリング設定を数えなくても、約 1.59×10²⁰ 通りの鍵がある。毎秒百万通り試しても、すべてを試すにはおよそ五百万年かかる。
欠陥
リフレクターには実用上の利点があった。同じ設定のまま、機械で暗号化も復号もできたのである。しかし生まれつきの欠陥ももたらした。電流はいつも別の道を通って戻ってくるので、どの文字も自分自身には暗号化されない。A はけっして A にならない。
ささいなことに見えるが、これが決定的だった。暗号解読者たちは、多くの通信に予想できる語が含まれていることを知っていて、それを crib(カンニング)と呼んだ。6 時の天気予報は WETTERVORHERSAGE で始まり、多くの報告は KEINE BESONDEREN EREIGNISSE、「特記事項なし」と書かれていた。クリブが暗号文のどこにあるかを見つけるには、それを暗号文に沿ってずらしていき、どこかの文字が真下の暗号文の文字と一致する位置をすべて捨てればよかった。
Q F Z W R W I K T Y R E S X B F O G K U H Q
W E T T E R V O R H E R S A G E ← S の上に S:ありえない
W E T T E R V O R H E R S A G E ← 一致なし:ありうる
最初の位置では、クリブの S が暗号文の S の上に来てしまうが、エニグマはけっしてそうしない。この位置は捨てられる。4 文字先では、どの文字も一致せず、この位置は候補として残る。
ボンブ
ポーランドのマリアン・レイェフスキ、イェジ・ルジツキ、ヘンリク・ジガルスキは 1932 年からエニグマの通信を読んでおり、そのための機械、ボンバもつくっていた。1939 年 7 月、ポーランド侵攻の数週間前に、彼らはそのすべてをイギリスとフランスに渡した。しかしドイツ軍はエニグマを複雑にしていて、ポーランドの方法は、ドイツ軍がやめてしまったある習慣に頼っていた。
チューリングは、クリブにもとづく、より一般的な新しい機械を設計した。考え方は論理的である。クリブをある位置に置くと、文字のあいだにつながりが課される。たとえば「A が E とつながっているなら、三歩あとでは T が R とつながっている」。こうした含意はループをつくり、まちがったローター設定はすぐに「A が A とも B とも同時につながっている」といった矛盾にいたる。ボンブは 17 576 通りのローター位置を電気的に調べ、矛盾の生じない位置でだけ止まった。ゴードン・ウェルチマンが「対角盤」を加え、探索ははるかに効率的になった。最初のボンブは 1940 年 3 月に動きだし、終戦までに二百台を超えた。
練習:ローターが 8 個なら
ドイツ海軍は 8 個入りの箱から 3 個のローターを選んだ。ローターの順序は何通りか。
$8\cdot7\cdot6=336$ で、陸軍の 60 の五倍以上である。チューリングが挑んだ海軍のエニグマがいちばん難しかったのはこのためである。
練習:ケーブル 1 本
プラグボードにケーブルを 1 本だけつなぐ方法は何通りか。2 本ならどうか。
ケーブル 1 本は文字の組を一つ選ぶことなので $\binom{26}2=\frac{26\cdot25}2=325$。2 本なら、一組めを選び、残り 24 文字から二組めを選び、ケーブルの順序は関係ないので 2 で割る。$\frac{325\cdot276}{2}=44\,850$。一般の式でも同じになる。$\frac{26!}{22!\cdot2!\cdot2^2}=44\,850$。
出典: Andrew Hodges, Alan Turing: The Enigma(1983)· Simon Singh, The Code Book(1999)· The Turing–Welchman Bombe, The National Museum of Computing。
アラン・チューリングの全トピック · ← 万能機械:プログラムもデータである · バンブリスムス:証拠をデシバンで量る →