機械式暗号

**機械式暗号**（**きかいしきあんごう**）とは、機械によって実装された暗号化アルゴリズムである。暗号化アルゴリズムを実装した機械を**暗号機**という。

筆記による暗号と比べると、複雑な手順を間違いなくかつ高速に実行できるという利点があった。

## 概要
16世紀から19世紀にかけて、暗号解読技術の進歩と普及により単純な暗号は次々と解読されたため、暗号は次第に複雑な手順を行わざるを得なくなった。一方で、外交や軍事などで安全で簡易な暗号が必要とされ、20世紀初に発明されたのがロータマシンと呼ばれる暗号機である。第一次世界大戦から第二次世界大戦にて各国で広く使用された。20世紀後半、電子計算機や集積回路が発明されると暗号もこれらの技術を使って実装されるようになり、機械式暗号は役割を終えた。

## 学理的な分類
機械的な構造などによる分類もあり、運用上はそちらも重要であるが、ここでは学理的な暗号の分類に沿って、数理論理的な観点からの分類について述べる。

まず雑多な事項だが、以下のような強度を増す（ものと当時考えられ実施された）技巧がある。
* 利用できる表の絶対数を増やす
* 表のパターンを不規則にする
* 表の切り替えを不規則に、また周期を長くする
* 表の相互の関係を秘匿する
* 表を盗まれる、あるいは解析されることを想定し、差替を容易にする。また差替の実施を想定し運用に組込む
* 暗号機自体を2次暗号化に用いる (enciphered code)
* その他の（強度を高める）アタッチメント（「エニグマ」のプラグボードなど）

### 換字式と転置式
* 実用化された機械式暗号は凡そ換字式暗号である。
* 転置式暗号の機械化は機械式暗号の時代には広まらず、電子機械化・コンピュータ化以後であった。

### cipher式とenciphered code式
* cipher式は暗号機自体で1次暗号化のみをするもので、多くの暗号機がcipher式を前提に設計されている。
* encipherd code式は別の機械や手作業にてコード (code) で1次暗号化され、ついで機械式暗号で2次暗号化するもの。
** 1次暗号に秘匿性が無いのはテレプリンター暗号機が該当する
** 1次暗号に秘匿性が有るのは独海軍のエニグマが該当する。
** 本来は1次暗号用に開発されたが、強度に不安があって2次暗号用（乱数生成）に転用された日本陸軍の一式一号印字機もある。

### 単表換字式と多表換字式
* 単表換字式 (monoalphabetic) にはタイプライターのキーキャップを取り替えて使用する等の原始的なものが該当する。
* 多表式 (polyalphabetic) には殆どの凡ての機械式暗号機、アルベルティの暗号円盤からエニグマまでが該当する。

### 多表式と組み合わせ多表式
* 多表を1組しか持たないものにはアルベルティの暗号円盤やハーゲリンマシン (M-209) が該当する。
* 2組以上の多表を持ち、ある多表で換字した後に別の多表で換字する事により「見かけ上」膨大な多表を利用するものにはエニグマやパープルが該当する。

### 順変多表式と乱変多表式
* 秘匿された多数の多表を順繰りに切り替える順変多表式 (alphabet generators) にはエニグマやパープルが該当する。
* 一定少数の多表を擬似ランダムに切り替える乱変多表式 (key generators) にはクリハ、ハーゲリンマシンやバーナムが該当する。

### 多表内部の関係有無
* 関係が有るものにはスライド式、ディスク式、ハーフローター式そしてローター（鼓胴）式がある。
** スライド式、ディスク式、ハーフローター式は名称や見た目が異なるが多表の生成原理は同一である。多表自体の秘匿性は乏しく乱変多表式に利用される。
** ローター式は見た目には関係ないように見えるが内部配線は固定されているために「斜行特性」が残る。しかしスライド式に比べて多表の秘匿性が高いので順変多表式に利用される。
* 関係が無いものはロータリーラインスイッチ式があり、順変多表式であるパープルが該当する。

### 換字制限の有無
* 制限の無いものが通常である。いかなる原字もいかなる暗字に換字されその逆も然りである。
* 制限があるものは少数である。利便性と引き換えになっているものが殆どである。
** 反転ローターを持つエニグマは原字と暗字が同一にならないが、暗号化/翻訳化の切り替え機構が不要になった。
** 母音と子音を別の多表で換字するレッドやパープルは、電報料金の安い暗号電報を利用可能になった。
** 原字のZをスペースで代用したM-209は、翻訳文に単語間スペースが入り読み易くなった（原文から欠損したZは受信者が判読する）

### 多表（配線）固定式、多表差替式
多表自体の秘匿が重要な順変式多表暗号機に関わる分類である。順変式多表暗号機のアキレス腱ともなる項目であり、日本陸軍が暗号機採用に消極的であった理由でもある。
* 多表固定式が通常であり、組み合わせ多表においても個々の多表は固定されている。
* 多表差替式は少数であり、新規ローターを追加配布したエニグマが該当する。しかし新規ローターの作成と配布にも限界があり、旧ローターを破棄しないと強度は低下する。
* 末端ユーザーが指示により多表構成を自分で変更できるのが理想であるが実現化した暗号機は無い。なおプラグボードは多表差替の範疇には入らないので注意が必要である。

### 鍵系列の配布式、合成式
多表を切り替えていく順序（鍵系列）を指示する乱変式多表暗号に関わる分類である。
* 鍵系列自体をそのまま配布使用する方式には穿孔テープを用いるバーナム暗号が該当する。
* 初期状態のみを鍵として配布して鍵自体は機械内部で合成させる方式にはピンホイールとラグゲージを用いるM-209が該当する。

### アタッチメントの追加
暗号強度に不足（不安）が生じた場合に追加使用するものでプラグボードやエニグマのUHRボックスが該当する。なお運用途中から追加した場合には暗号強度が低下する。

## 種類
* ドイツ
** エニグマ
* ポーランド
** Lacida/LCD
* 日本
** パープル暗号
** ジェイド暗号
** コーラル暗号
** 九七式印字機
*** など（詳細は日本の機械式暗号を参照）
* アメリカ
** Hebern rotor machine
** M-94 - 1917年に開発、1922年に採用され、1943年まで使用
** M-138
** M-209/CSP-1500 (C-38)
** M-325 (SIGFOY) - 1936に設計
** SIGGOO/M-229
** ECM Mark II/M-134 (SIGABA) - 1950年頃まで使用
** TSEC/KL-7 (ADONIS) - 1950年代に導入
* スイス
** NEMA - 1947年から導入
* イギリス
** TypeX - 1937年から導入
* ロシア
** Fialka (M-125)
*** など
* HX-63 - 1952年設計

## 歴史
### 暗号機の先祖
回転機構（ロータマシン）を使った暗号機として最も古いのは、最初の多表式換字暗号の考案者でもあるレオン・バッティスタ・アルベルティの暗号円盤だとされる。1460年代に考案されたこの暗号機は、大小2つの円盤にアルファベットを刻み、中心をピンで留めたもので、内側の円盤を回転させることで2つの円盤のアルファベットの対応を任意の文字数だけシフトできる。例えばアルファベット順に文字を刻み、3文字シフトした状態に固定すればシーザー暗号用の換字表になる。当時、シーザー暗号などの単純な暗号には安全性の問題があると指摘されていた。そこでアルベルティは換字表を複数用意して1文字ごとに切り替えて使用することを考案した。アルファベット26文字を刻んだ暗号円盤を1文字暗号化する毎に回転させれば、26個の換字表を順次変更しながら暗号化できる。これがシンプルとはいえ、多表式換字暗号のはじまりであった。その後、多表式暗号はヴィジュネル暗号へと進化したが、1854年には解読法が発見され、安全ではなくなった。

暗号円盤によって実現できる暗号は初歩的な暗号であるが、アメリカでは南北戦争などでも使用された。

### 暗号機の発明
1918年、ドイツのアルトゥール・シェルビウスによってエニグマが発明された。これは円盤に相当するローター（内部に電気的な配線をもつ鼓胴）が複数枚ついていて、それらが個別に回転するので、より複雑な暗号であった（詳しくはエニグマの項を参照）。筆記とは比べ物にならない速さで暗号化することができ、安全性も確保した。しかし、イギリスは解読に成功し、末期にはコンピュータの原型となる機械によって高速に解読されていた。

日本も第二次世界大戦時には、諸外国の暗号機を参考にしてパープル暗号機などを開発した。当時の軍や政府は、その暗号強度に絶大な自信を持ち、絶対解読不可能と信じ込んでいたが、実際はアメリカによって解読されていた。

アメリカは、電気を使わない小型の暗号機M-209（英語）を使用していた。スウェーデン人のボリス・ハーゲリンによる暗号機を改良したものであった。ドイツは、1943年に解読に成功している。日本でも、釜賀一夫たちが解読していたといわれている。

### 暗号機の後継
コンピュータの発明によって計算によって暗号化することが主流になった。これにより、暗号機の行う作業をコンピュータが事実上行うことになる。また、例えば暗号機をより複雑化するためにローターを増やしたいなどというときに、暗号機ならば本物のローターをつけなくてはならないが、コンピュータではプログラムを改変するだけで済み、経済的にも有用である。さらに、機械自体の運搬は必要なく、プログラムの輸送で事足りるという利点がある。

### 暗号機の問題点
* 機械式暗号とは紙と鉛筆で暗号化できる作業を機械化した事に他ならない。解読者側では同じ暗号機が手元に無くても解読は可能であり、解読を機械化する際にもオリジナルと同一である必要は無い。しかしながら運用側には「機械式暗号は、暗号機が盗まれない限り解読できない。」という誤謬が生じ、被解読性の評価を心理的に妨げてきた。
* 他にも機械式暗号を運用する場合の欠点はある。
** 融通が利かない。暗号事故等で暗号機自体の強度に疑義が生じても鍵規約の変更頻度を上げるしかない場合が多い。例えば手書きの乱数式暗号ならば、乱数表を逆向きに読み取る、縦読みする等と応急処置が可能である。
** 暗号強度に見合ったサイズと重量を提供するとは限らない。野戦用、艦艇用暗号機は小型化や軽量化が工夫されるが、それでも同じ重量の暗号書や乱数表の方が暗号強度的に優れている可能性もある。
** 破棄処分が困難。敵襲や艦船沈没といった緊急時に暗号機を完全に処分するのは容易でない。ハンマーで砕いてからテルミットで焼却する等の事例もある。

## 関連項目
* 日本の機械式暗号
* 暗号史
* 暗号