概要
エニグマを中心に、機械暗号がどのように文字を変換し、どのように解読の手がかりを与えたかを説明する。
古典暗号では、文字の置き換えや並べ替えを手作業で行うことが多かった。
一方、機械暗号では、ローター、スイッチ、コードブック、通信運用などを組み合わせ、文字ごとに変換ルールを変化させるようになる。
この記事で扱うこと
- 機械暗号が軍事通信で重要になった理由。
- エニグマ、ローレンツ暗号、パープル暗号、JN-25 の違い。
- SIGABA、Typex、ナバホ・コードトーカーが通信保護で果たした役割。
- ボンブやコロッサスが、暗号解読を機械化した意味。
- 現代の鍵管理や運用管理につながる考え方。
機械暗号が通信を変えた理由
- 概要
1939年から1945年頃の戦時通信では、軍事命令、外交通信、作戦連絡などを守るために暗号が使われた。
通信内容が敵に読まれると、作戦の場所、時刻、部隊の配置などが知られてしまう。
そのため、各国は暗号機や暗号書を使い、平文を読みにくい暗号文へ変換していた。
- 機械暗号の特徴
機械暗号では、人が文字を一つずつ置き換えるのではなく、機械の内部設定によって文字の変換規則を変化させる。
例えば、ローター式暗号機では、キーを押すたびにローターが回転し、同じ文字を入力しても異なる文字へ変換される場合がある。
これにより、単純な換字式暗号よりも解読が難しくなる。\[ {\small C_i = E_{K_i}(P_i) } \]ここで、\(P_i\) は \(i\) 文字目の平文、\(C_i\) は \(i\) 文字目の暗号文、\(K_i\) はその時点の機械設定を表す。
つまり、機械暗号では、文字ごとに変換ルールが変化することが重要となる。
ローターとテレタイプで変換するドイツ軍の暗号
- エニグマ(Enigma)
エニグマは、ドイツ軍で広く使われたローター式暗号機となる。
キーボードで文字を入力すると、複数のローターと配線を通って別の文字に変換される。
ローターは入力のたびに回転するため、同じ文字を続けて入力しても、毎回同じ暗号文になるとは限らない。エニグマの強さは、主に次のような要素の組み合わせにあった。
- ローターの種類と並び順
- ローターの初期位置
- リング設定
- プラグボードによる文字の入れ替え
これらを組み合わせることで、非常に多くの鍵候補を作ることができた。
- エニグマの仕組み
エニグマは、文字を「一度だけ置き換える」のではなく、電気信号が機械内部を通る経路によって文字を変換する。
実機を上から見ると、手前側にプラグボード、中央にキーボードとランプボード、奥側にローターの窓がある。
操作者はキーボードで平文の文字を押し、点灯したランプの文字を暗号文として記録する。例えば
Aを押すと、Aがそのまま出力されるわけではない。
電気信号はプラグボードで一度入れ替えられ、3枚のローターを順に通り、反射板で折り返す。その後、同じ3枚のローターを逆向きに戻り、最後にプラグボードをもう一度通って、別の文字のランプを点灯させる。図では説明用に
Aを押すとKのランプが点く例としている。
この例では、キーボードで押すAが平文の1文字で、ランプボードで点灯するKが暗号文の1文字となる。
ここで重要なのは、ローターが6枚あるのではなく、3枚のローター → 反射板 → 同じ3枚のローターの順に信号が通る点となる。さらに、1文字入力するたびに右側のローターが少し進む。
そのため、次に同じAを押しても、内部の対応関係が変わり、別のランプが点く場合がある。つまり、エニグマの暗号化では、ローターの位置が変わるたびに文字の対応表も変わるということになる。
- ローレンツ暗号(Lorenz SZ40/42)
ローレンツ暗号は、ドイツ軍上層部の通信で使われた暗号機となる。
エニグマが主に現場部隊の無線通信で使われたのに対し、ローレンツ暗号は高官や司令部の通信に使われた。
イギリス側では、この通信を TUNNY と呼んでいた。ローレンツ暗号はテレタイプ通信と結び付いた暗号であり、エニグマよりもさらに複雑な仕組みを持っていた。
そのため、解読には人手だけでなく、後述するコロッサスのような専用機械が必要になった。
- ローレンツ暗号の仕組み
ローレンツ暗号では、文字をそのまま扱うのではなく、まずテレタイプ用の符号に変換する。
テレタイプでは、文字を複数のビットの組として扱う。
例えば説明用に、ある文字が次のような符号で表されるとする。種類 ビット列 役割 平文の符号 1 0 1 1 0 送信したい文字を符号にしたもの。 鍵の符号 0 1 1 0 1 暗号機が作る組み合わせ用の符号。 暗号文 1 1 0 1 1 平文の符号と鍵の符号を組み合わせた結果。 このように、平文の符号に機械が作る鍵の符号を組み合わせて暗号文を作る。
受信側は同じ鍵の符号を再び組み合わせることで、元の平文の符号に戻す。ローレンツ暗号の難しさは、鍵の符号を作るためのホイールが多く、組み合わせが非常に複雑だった点にある。
機械式暗号とコードブックを使う日本軍の暗号
- パープル暗号(PURPLE / 九七式欧文印字機)
パープル暗号は、日本の外務省が使っていた機械式の外交暗号である。
エニグマのようなローター式ではなく、電話交換機で使われるステッピング・スイッチに近い仕組みを使っていた。
ざっくり言うと、文字を別の文字へ置き換える暗号なのだが、置き換え表が毎回同じではない。内部のスイッチが進むことで、同じAを入力しても、タイミングによって別の文字に変わる。考え方だけを小さくすると、次のようなイメージになる。
入力位置 入力 出力 ポイント 1文字目 A Q 最初のスイッチ状態で変換する。 2文字目 A M スイッチが進み、対応が変わる。 3文字目 A X さらに次の状態で変換する。 ここで大事なのは、「A は必ず Q になる」という固定表ではないことだ。
暗号文を読むには、文字の対応だけでなく、機械がどの順番で状態を変えていくかも追う必要がある。アメリカ側が実機を持たないまま復元機を作った、という話がすごいのは、この「機械の動き」まで推定しなければならなかったからである。
- JN-25
JN-25 は、日本海軍が使っていたコードブックベースの暗号である。
パープル暗号が「文字を機械で変換する」方式だとすると、JN-25 はまず「言葉を数字に置き換える」方式に近い。
たとえば、説明用に次のようなコードブックがあるとする。言葉 コード 攻撃 31425 ミッドウェー 80612 明日 55201 この表だけなら、「攻撃」を
31425と書くだけで済む。
ただし、それではコードブックを入手された瞬間に読まれてしまう。そこで JN-25 では、コードの数字に加算表の数字を足して、送信する値をもう一段変える。下の例では、各桁を足したときに \(10\) 以上になっても繰り上がりは無視する。種類 値 意味 コード 31425 コードブックで「攻撃」を数字にしたもの。 加算表 48291 送信前に足すための数字列。 送信する値 79616 各桁を足して作る実際の送信値。 受信側は同じ加算表を使って逆に戻し、コードブックで元の言葉を読む。
つまり JN-25 は、コードブックで言葉を数字にするところと、加算表でその数字をさらに隠すところの二段構えで理解するとわかりやすい。ミッドウェー海戦をめぐる情報分析でも、JN-25 は重要な役割を持ったとされる。ここで効いてくるのは、暗号そのものだけではない。通信量が増えたタイミング、繰り返し出てくる表現、作戦上の文脈なども、断片をつなぐ手がかりになった。
通信を守る連合国側の暗号技術
- SIGABA(アメリカ)
SIGABA は、アメリカで使われた高度なローター式暗号機となる。
エニグマと同じくローターを使うが、ローターの動き方をより複雑にすることで安全性を高めていた。
当時の代表的な暗号機の中でも非常に強力な方式とされ、戦争中に実用的に解読されなかった暗号機として知られている。
- SIGABA の仕組み
SIGABA もローター式暗号機だが、エニグマと大きく違う点は、ローターの動き方を別のローター群で制御するところにある。
簡単に言うと、SIGABA では次のような役割分担を行う。
- 文字を変換するローター
- ローターの動きを制御するローター
- 制御結果をさらに選別するローター
エニグマでは、ローターの回転に比較的規則性があった。
一方、SIGABA ではローターの進み方そのものが複雑になるため、「次にどの対応表になるか」を予測しにくくなる。つまり、SIGABA は文字の置き換えだけでなく、置き換え表の変化の仕方も守ることで安全性を高めていた。
- Typex(イギリス)
Typex は、イギリスで使われたローター式暗号機となる。
ドイツのエニグマと似た考え方を持つが、より多くのローターや追加の仕組みによって安全性を高めていた。
連合国側の機密通信を守るために使われ、軍事通信や政府通信で重要な役割を持った。
- Typex の仕組み
Typex もエニグマと同じく、文字をローターに通して別の文字へ変換する暗号機である。
ただし、Typex は「エニグマをそのままコピーしたもの」というより、同じ発想を連合国側の通信向けに強化したものとして見ると分かりやすい。ローター式暗号では、文字そのものよりも、どのローターを使うか、どの順番で並べるか、最初にどの位置へ合わせるかが重要になる。
Typex は以下のような設定の選択肢を増やすことで、同じローター式でも候補を絞り込みにくくしていた。- ローターの種類
どの配線パターンを使うかが変わる。 - ローターの順番
同じローターでも並び順が変わると結果が変わる。 - 初期位置
通信開始時点の対応表が変わる。 - 追加設定
単純なエニグマ型よりも設定候補を増やす。
例えば、同じ
Aを入力しても、ローターの順番や初期位置が違えば、出力はKではなく別の文字になる。
つまり Typex の強さは、「A を K に変える」という1回の変換だけではなく、その変換表を作るための設定が多いところにある。 - ローターの種類
- ナバホ・コードトーカー
ナバホ・コードトーカーは、機械ではなく、人の言語を利用した暗号通信の例となる。
アメリカ海兵隊では、ナバホ語をもとにした音声コードを太平洋戦線で使用した。
ナバホ語を理解できる人が限られていたことに加え、軍事用語を独自の言葉に置き換えたため、敵側が短時間で解読することは非常に難しかった。これは、暗号技術が必ずしも機械だけで成り立つわけではないことを示している。
- ナバホ・コードトーカーの仕組み
ナバホ・コードトーカーでは、軍事用語をナバホ語の言葉に置き換えて送信する。
例えば、説明用に次のような対応を決めたとする。
軍事用語 置き換えの考え方 戦闘機 鳥を表す言葉に置き換える。 潜水艦 魚を表す言葉に置き換える。 部隊 人や集団を表す言葉に置き換える。 さらに、地名や人名などはアルファベット単位で伝えるためのコードも使われた。
そのため、単にナバホ語を知っているだけでなく、軍事用語との対応表も知らなければ正しく読めない。つまり、ナバホ・コードトーカーは、自然言語の希少性と専用コード表を組み合わせた暗号通信となる。
解読を機械化したボンブとコロッサス
- 暗号解読の考え方
機械暗号の解読では、暗号文だけを眺めるのではなく、通信の運用や人間のミスも重要な手がかりになった。
例えば、次のような情報が解読の助けになる。
- 同じ形式の通信が繰り返される
- 天気、挨拶、定型文などの予測しやすい語句が含まれる
- 鍵や初期設定の使い回しが発生する
- 通信量の変化から作戦の準備が推測できる
暗号機が複雑でも、運用が不適切であれば解読の入口が生まれる。
- ボンブ(Bombe)
ボンブは、エニグマ暗号の候補設定を高速に調べるための機械となる。
エニグマの設定候補は非常に多いため、人手だけですべて試すことは現実的ではない。
そこで、既知または推測可能な平文の一部を手がかりに、矛盾する設定を機械的に除外していった。
- ボンブの仕組み
ボンブは、すべての設定を最後まで復号して読む機械ではなく、あり得ない設定を高速に捨てていくための機械となる。
例えば、暗号文の一部に天気報告や決まった挨拶が含まれていると推測できる場合、その推測した平文を手がかりにする。
そして、エニグマの設定候補を試しながら、矛盾が起きるものを除外する。- 設定候補を作る。
- 推測した平文と照合する。
- 矛盾する設定を捨てる。
- 残った設定を詳しく調べる。
これにより、人間が調べるべき候補を大きく減らすことができた。
- コロッサス(Colossus)
コロッサスは、ローレンツ暗号の解読を支援するために作られた電子式の計算機となる。
暗号文の統計的な特徴を調べ、鍵の候補を絞り込むために使われた。
現代の汎用コンピュータとは異なるが、電子計算機によって暗号解読を高速化した重要な例となる。
- コロッサスの仕組み
コロッサスは、ローレンツ暗号の鍵候補を調べるために、暗号文のパターンを高速に計算する。
ローレンツ暗号では、機械が作る鍵の符号と平文の符号を組み合わせて暗号文を作る。
そのため、鍵の候補が正しければ、暗号文から見える統計的な偏りが説明しやすくなる。コロッサスは、紙テープから読み取った暗号文に対して、多数の鍵候補を高速に試し、確からしい候補を探した。
人間がすべてを手計算するのではなく、機械に大量の照合を任せた点が重要となる。
暗号機・コードブック・音声コードを比較する
- 代表的な暗号機と技術
ここまでの内容をまとめると、次のようになる。
名称 国・地域 種類 主な用途 特徴 エニグマ ドイツ ローター式暗号機 軍事通信 ローターとプラグボードで文字を変換する。 ローレンツ暗号 ドイツ テレタイプ暗号機 軍上層部の通信 TUNNY と呼ばれ、コロッサスによる解読支援の対象となった。 パープル暗号 日本 機械式外交暗号 外交通信 ステッピング・スイッチに近い仕組みを使う。 JN-25 日本 コードブック暗号 海軍通信 コードブックと加算表を組み合わせる。 SIGABA アメリカ ローター式暗号機 軍事・政府通信 ローター制御が複雑で、非常に高い安全性を持った。 Typex イギリス ローター式暗号機 軍事・政府通信 エニグマに近い方式を強化した暗号機。 ナバホ・コードトーカー アメリカ 音声コード 戦場での即時通信 ナバホ語と専用語彙を利用した。
違いを整理する
| 比較する項目 | 整理するポイント |
|---|---|
| エニグマとローレンツ暗号 | エニグマは主に現場部隊のローター式暗号、ローレンツ暗号は上層部のテレタイプ通信向け暗号。 |
| 暗号機とコードブック | 暗号機は機械内部の状態で変換し、コードブックは語句をコード番号に置き換える。 |
| 強い暗号と安全な運用 | 暗号機が強くても、鍵の使い回しや定型文があると解読の手がかりになる。 |
| 解読機械の役割 | ボンブやコロッサスは、候補を絞り込む計算を高速化するための機械として理解する。 |
実務とのつながり
- 鍵管理
暗号方式だけでなく、鍵の生成、配布、更新、廃棄までを含めて安全性を考える必要がある。 - 運用設計
定型文や使い回しは、現代のシステムでも攻撃の手がかりになる。 - 自動化と監視
暗号処理やログ分析は、人手だけでなく機械的な照合や監視と組み合わせて扱うことが多い。
まとめ
- エニグマ、ローレンツ暗号、パープル暗号、JN-25 など、多様な暗号技術が使われた。
- 連合国側も、SIGABA、Typex、ナバホ・コードトーカーなどを使って通信を守った。
- 暗号解読では、暗号機の仕組みだけでなく、通信運用や人間のミスも重要な手がかりになった。
- この時期の暗号技術は、現代の暗号技術や情報セキュリティにおける鍵管理・運用管理の考え方につながる。