SIGMA-SE Tech Blog

SIGMA-SE Tech Blog


当サイトは、過去に運営していた別ドメイン(unisia-se.com)から sigma-se.com へ移行した技術ブログです。
旧サイトの記事をもとに、内容の精査・加筆・最新化を行い再構成しています。
正確で実用的な情報提供を目的としています。

情報セキュリティ - 暗号技術:6/10 機械暗号と暗号解読の仕組み

概要

エニグマを中心に、機械暗号がどのように文字を変換し、どのように解読の手がかりを与えたかを説明する。

古典暗号では、文字の置き換えや並べ替えを手作業で行うことが多かった。
一方、機械暗号では、ローター、スイッチ、コードブック、通信運用などを組み合わせ、文字ごとに変換ルールを変化させるようになる。

この記事で扱うこと

  • 機械暗号が軍事通信で重要になった理由。
  • エニグマ、ローレンツ暗号、パープル暗号、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枚のローターを逆向きに戻り、最後にプラグボードをもう一度通って、別の文字のランプを点灯させる。

    pid76_1

    図では説明用に A を押すと K のランプが点く例としている。
    ここで重要なのは、ローターが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 / 九七式欧文印字機)

    パープル暗号は、日本の外務省が使っていた機械式暗号となる。

    ローターではなく、電話交換機などで使われるステッピング・スイッチに近い仕組みを利用していた点が特徴となる。
    アメリカ側はこの暗号の仕組みを解析し、実機を持たない状態で同じような動きをする復元機を作った。

    パープル暗号の解読により、日本の外交通信の一部が連合国側に読まれるようになった。

  • パープル暗号の仕組み

    パープル暗号は、入力したアルファベットを別のアルファベットへ置き換える換字式暗号の一種となる。
    ただし、単純な対応表ではなく、内部のスイッチが動くことで対応関係が変化する。

    考え方を単純化すると、次のようになる。

    1文字目の対応 : A -> Q
    2文字目の対応 : A -> M
    3文字目の対応 : A -> X
    

    同じ A でも、スイッチの状態が変わることで別の文字に変換される。
    そのため、固定された換字表だけでは読めず、機械がどの順番で状態を変えるかを理解する必要があった。

  • JN-25

    JN-25 は、日本海軍が使っていたコードブックベースの暗号となる。

    コードブックでは、単語や地名、部隊名などを数字の組に置き換える。
    さらに、その数字に別の数を加えることで、単純にコードブックを持っているだけでは読みにくい形にしていた。

    JN-25 は、ミッドウェー海戦をめぐる情報分析でも重要な役割を持ったとされる。
    ここでは、暗号そのものだけでなく、通信量、繰り返し表現、作戦上の文脈なども解読の手がかりになった。

  • JN-25 の仕組み

    JN-25 は、まず単語や地名をコードブックで数字に置き換える。

    例えば、説明用に次のようなコードブックがあるとする。

    言葉 コード
    攻撃31425
    ミッドウェー80612
    明日55201

    ただし、コードに置き換えただけでは、コードブックを入手されると読まれてしまう。
    そこで、さらに加算表の数字を足して、別の数字列に変える。
    下の例では、各桁を足したときに \(10\) 以上になっても繰り上がりは無視する。

    コード      : 31425
    加算表      : 48291
    送信する値  : 79616
    

    受信側は同じ加算表を使って逆に戻し、コードブックで元の言葉を読む。
    つまり、JN-25 はコードブックによる置き換え数字の加算による隠蔽を組み合わせた方式となる。

    pid76_2

通信を守る連合国側の暗号技術

  • SIGABA(アメリカ)

    SIGABA は、アメリカで使われた高度なローター式暗号機となる。

    エニグマと同じくローターを使うが、ローターの動き方をより複雑にすることで安全性を高めていた。
    当時の代表的な暗号機の中でも非常に強力な方式とされ、戦争中に実用的に解読されなかった暗号機として知られている。

  • SIGABA の仕組み

    SIGABA もローター式暗号機だが、エニグマと大きく違う点は、ローターの動き方を別のローター群で制御するところにある。

    簡単に言うと、SIGABA では次のような役割分担を行う。

    • 文字を変換するローター
    • ローターの動きを制御するローター
    • 制御結果をさらに選別するローター

    エニグマでは、ローターの回転に比較的規則性があった。
    一方、SIGABA ではローターの進み方そのものが複雑になるため、「次にどの対応表になるか」を予測しにくくなる。

    つまり、SIGABA は文字の置き換えだけでなく、置き換え表の変化の仕方も守ることで安全性を高めていた。

  • Typex(イギリス)

    Typex は、イギリスで使われたローター式暗号機となる。

    ドイツのエニグマと似た考え方を持つが、より多くのローターや追加の仕組みによって安全性を高めていた。
    連合国側の機密通信を守るために使われ、軍事通信や政府通信で重要な役割を持った。

  • Typex の仕組み

    Typex は、基本的にはエニグマと同じように、入力文字をローターの配線を通して別の文字へ変換する。

    ただし、ローターの数や構成を増やすことで、単純なエニグマ型よりも設定の組み合わせを増やしていた。
    入力された文字は、複数のローターを通るたびに少しずつ別の文字へ置き換えられる。

    入力 A
      -> ローター群で変換
      -> 出力 K
    

    同じローター式でも、ローター数、配線、初期位置、追加設定が変わると、暗号文は大きく変わる。
    Typex は、エニグマ型の考え方を連合国側の通信保護に合わせて強化した暗号機と考えると分かりやすい。

  • ナバホ・コードトーカー

    ナバホ・コードトーカーは、機械ではなく、人の言語を利用した暗号通信の例となる。

    アメリカ海兵隊では、ナバホ語をもとにした音声コードを太平洋戦線で使用した。
    ナバホ語を理解できる人が限られていたことに加え、軍事用語を独自の言葉に置き換えたため、敵側が短時間で解読することは非常に難しかった。

    これは、暗号技術が必ずしも機械だけで成り立つわけではないことを示している。

  • ナバホ・コードトーカーの仕組み

    ナバホ・コードトーカーでは、軍事用語をナバホ語の言葉に置き換えて送信する。

    例えば、説明用に次のような対応を決めたとする。

    軍事用語 置き換えの考え方
    戦闘機鳥を表す言葉に置き換える。
    潜水艦魚を表す言葉に置き換える。
    部隊人や集団を表す言葉に置き換える。

    さらに、地名や人名などはアルファベット単位で伝えるためのコードも使われた。
    そのため、単にナバホ語を知っているだけでなく、軍事用語との対応表も知らなければ正しく読めない。

    つまり、ナバホ・コードトーカーは、自然言語の希少性専用コード表を組み合わせた暗号通信となる。

解読を機械化したボンブとコロッサス

  • 暗号解読の考え方

    機械暗号の解読では、暗号文だけを眺めるのではなく、通信の運用や人間のミスも重要な手がかりになった。

    例えば、次のような情報が解読の助けになる。

    • 同じ形式の通信が繰り返される
    • 天気、挨拶、定型文などの予測しやすい語句が含まれる
    • 鍵や初期設定の使い回しが発生する
    • 通信量の変化から作戦の準備が推測できる

    暗号機が複雑でも、運用が不適切であれば解読の入口が生まれる。

  • ボンブ(Bombe)

    ボンブは、エニグマ暗号の候補設定を高速に調べるための機械となる。

    エニグマの設定候補は非常に多いため、人手だけですべて試すことは現実的ではない。
    そこで、既知または推測可能な平文の一部を手がかりに、矛盾する設定を機械的に除外していった。

  • ボンブの仕組み

    ボンブは、すべての設定を最後まで復号して読む機械ではなく、あり得ない設定を高速に捨てていくための機械となる。

    例えば、暗号文の一部に天気報告や決まった挨拶が含まれていると推測できる場合、その推測した平文を手がかりにする。
    そして、エニグマの設定候補を試しながら、矛盾が起きるものを除外する。

    設定候補を作る
      -> 推測した平文と照合する
      -> 矛盾する設定を捨てる
      -> 残った設定を詳しく調べる
    

    これにより、人間が調べるべき候補を大きく減らすことができた。

  • コロッサス(Colossus)

    コロッサスは、ローレンツ暗号の解読を支援するために作られた電子式の計算機となる。

    暗号文の統計的な特徴を調べ、鍵の候補を絞り込むために使われた。
    現代の汎用コンピュータとは異なるが、電子計算機によって暗号解読を高速化した重要な例となる。

  • コロッサスの仕組み

    コロッサスは、ローレンツ暗号の鍵候補を調べるために、暗号文のパターンを高速に計算する。

    ローレンツ暗号では、機械が作る鍵の符号と平文の符号を組み合わせて暗号文を作る。
    そのため、鍵の候補が正しければ、暗号文から見える統計的な偏りが説明しやすくなる。

    コロッサスは、紙テープから読み取った暗号文に対して、多数の鍵候補を高速に試し、確からしい候補を探した。
    人間がすべてを手計算するのではなく、機械に大量の照合を任せた点が重要となる。

暗号機・コードブック・音声コードを比較する

  • 代表的な暗号機と技術

    ここまでの内容をまとめると、次のようになる。

    名称 国・地域 種類 主な用途 特徴
    エニグマドイツローター式暗号機軍事通信ローターとプラグボードで文字を変換する。
    ローレンツ暗号ドイツテレタイプ暗号機軍上層部の通信TUNNY と呼ばれ、コロッサスによる解読支援の対象となった。
    パープル暗号日本機械式外交暗号外交通信ステッピング・スイッチに近い仕組みを使う。
    JN-25日本コードブック暗号海軍通信コードブックと加算表を組み合わせる。
    SIGABAアメリカローター式暗号機軍事・政府通信ローター制御が複雑で、非常に高い安全性を持った。
    Typexイギリスローター式暗号機軍事・政府通信エニグマに近い方式を強化した暗号機。
    ナバホ・コードトーカーアメリカ音声コード戦場での即時通信ナバホ語と専用語彙を利用した。

違いを整理する

比較する項目 整理するポイント
エニグマとローレンツ暗号エニグマは主に現場部隊のローター式暗号、ローレンツ暗号は上層部のテレタイプ通信向け暗号。
暗号機とコードブック暗号機は機械内部の状態で変換し、コードブックは語句をコード番号に置き換える。
強い暗号と安全な運用暗号機が強くても、鍵の使い回しや定型文があると解読の手がかりになる。
解読機械の役割ボンブやコロッサスは、候補を絞り込む計算を高速化するための機械として理解する。

実務とのつながり

  • 鍵管理
    暗号方式だけでなく、鍵の生成、配布、更新、廃棄までを含めて安全性を考える必要がある。
  • 運用設計
    定型文や使い回しは、現代のシステムでも攻撃の手がかりになる。
  • 自動化と監視
    暗号処理やログ分析は、人手だけでなく機械的な照合や監視と組み合わせて扱うことが多い。

現代暗号へのつながり

  • 機械暗号から計算機暗号へ

    この時期の機械暗号は、現代暗号そのものではないが、暗号技術が機械化・自動化されていく大きな流れを示している。

    特に、暗号の安全性が「仕組みを秘密にすること」だけではなく、鍵の管理、運用、計算量、解読に必要な時間といった要素に関係することが明確になった。

  • 運用の重要性

    強力な暗号機を使っていても、鍵を使い回したり、定型文を繰り返したりすると、解読の手がかりを与えてしまう。

    これは現代の情報セキュリティにもつながる。
    暗号方式そのものが強くても、鍵管理や運用が不適切であれば、安全性は大きく下がる。

まとめ

  • エニグマ、ローレンツ暗号、パープル暗号、JN-25 など、多様な暗号技術が使われた。
  • 連合国側も、SIGABA、Typex、ナバホ・コードトーカーなどを使って通信を守った。
  • 暗号解読では、暗号機の仕組みだけでなく、通信運用や人間のミスも重要な手がかりになった。
  • この時期の暗号技術は、現代の暗号技術や情報セキュリティにおける鍵管理・運用管理の考え方につながる。


Copyright SIGMA-SE All Rights Reserved.
s-hama@sigma-se.jp