機械式暗号(きかいしきあんごう)とは、機械によって実装された暗号化アルゴリズムである。暗号化アルゴリズムを実装した機械を暗号機という。
筆記による暗号と比べると、複雑な手順を間違いなくかつ高速に実行できるという利点があった。
16世紀から19世紀にかけて、暗号解読技術の進歩と普及により単純な暗号は次々と解読されたため、暗号は次第に複雑な手順を行わざるを得なくなった。一方で、外交や軍事などで安全で簡易な暗号が必要とされ、20世紀初に発明されたのがロータマシンと呼ばれる暗号機である。第一次世界大戦から第二次世界大戦にて各国で広く使用された。20世紀後半、電子計算機や集積回路が発明されると暗号もこれらの技術を使って実装されるようになり、機械式暗号は役割を終えた。
機械的な構造などによる分類もあり、運用上はそちらも重要であるが、ここでは学理的な暗号の分類に沿って、数理論理的な観点からの分類について述べる。
まず雑多な事項だが、以下のような強度を増す(ものと当時考えられ実施された)技巧がある。
多表自体の秘匿が重要な順変式多表暗号機に関わる分類である。順変式多表暗号機のアキレス腱ともなる項目であり、日本陸軍が暗号機採用に消極的であった理由でもある。
多表を切り替えていく順序(鍵系列)を指示する乱変式多表暗号に関わる分類である。
暗号強度に不足(不安)が生じた場合に追加使用するものでプラグボードやエニグマのUHRボックスが該当する。なお運用途中から追加した場合には暗号強度が低下する。
回転機構(ロータマシン)を使った暗号機として最も古いのは、最初の多表式換字暗号の考案者でもあるレオン・バッティスタ・アルベルティの暗号円盤だとされる。1460年代に考案されたこの暗号機は、大小2つの円盤にアルファベットを刻み、中心をピンで留めたもので、内側の円盤を回転させることで2つの円盤のアルファベットの対応を任意の文字数だけシフトできる。例えばアルファベット順に文字を刻み、3文字シフトした状態に固定すればシーザー暗号用の換字表になる。当時、シーザー暗号などの単純な暗号には安全性の問題があると指摘されていた。そこでアルベルティは換字表を複数用意して1文字ごとに切り替えて使用することを考案した。アルファベット26文字を刻んだ暗号円盤を1文字暗号化する毎に回転させれば、26個の換字表を順次変更しながら暗号化できる。これがシンプルとはいえ、多表式換字暗号のはじまりであった。その後、多表式暗号はヴィジュネル暗号へと進化したが、1854年には解読法が発見され、安全ではなくなった。
暗号円盤によって実現できる暗号は初歩的な暗号であるが、アメリカでは南北戦争などでも使用された。
1918年、ドイツのアルトゥール・シェルビウスによってエニグマが発明された。これは円盤に相当するローター(内部に電気的な配線をもつ鼓胴)が複数枚ついていて、それらが個別に回転するので、より複雑な暗号であった(詳しくはエニグマの項を参照)。筆記とは比べ物にならない速さで暗号化することができ、安全性も確保した。しかし、イギリスは解読に成功し、末期にはコンピュータの原型となる機械によって高速に解読されていた。
日本も第二次世界大戦時には、諸外国の暗号機を参考にしてパープル暗号機などを開発した。当時の軍や政府は、その暗号強度に絶大な自信を持ち、絶対解読不可能と信じ込んでいたが、実際はアメリカによって解読されていた。
アメリカは、電気を使わない小型の暗号機M-209(英語)を使用していた。スウェーデン人のボリス・ハーゲリンによる暗号機を改良したものであった。ドイツは、1943年に解読に成功している。日本でも、釜賀一夫たちが解読していたといわれている。
コンピュータの発明によって計算によって暗号化することが主流になった。これにより、暗号機の行う作業をコンピュータが事実上行うことになる。また、例えば暗号機をより複雑化するためにローターを増やしたいなどというときに、暗号機ならば本物のローターをつけなくてはならないが、コンピュータではプログラムを改変するだけで済み、経済的にも有用である。さらに、機械自体の運搬は必要なく、プログラムの輸送で事足りるという利点がある。