バーナム暗号

バーナム暗号 (バーナムあんごう、) はギルバート・バーナムが発明した暗号機械システムおよびその暗号方式（機械式暗号）である。
当時ニューヨークAT&Tに所属していた(1890–1960) が開発し1918年に特許を出願、1919年に取得（U.S. Patent 1,310,719）された。以下、この特許明細に基づいて解説するものとし、現代的な暗号学の観点からの考察については基本的には節を分けてまとめることとする。
概要.
当時の電報などのデータ通信システムにおいて、テレタイプ端末の入出力バッファ等で使用していた鑽孔紙テープ、およびそれに鑽孔されるコードを前提としているが、同じ暗号原理が現代のディジタル媒体や通信にも応用可能である。
送信側と受信側の双方において、あらかじめ同じ位置に穴を開けてあるテープ（ciphering tape）を鍵として共有しておく。送信側では、原文から作られたテープと ciphering tape とから、穴を開けない (0)／開ける (1) について排他的論理和（XOR）をとって、暗文に相当するテープを作成し、それを送信する。受信側では、受信したテープに対して、あらかじめ共有された ciphering tape と排他的論理和をとると、原文が復元される。送信側と受信側の操作は、同じである。
 暗号化
 　通信文 P 01001011
 　　鍵　 K 00011101
 　暗号文 C 01010110
 復号
 　暗号文 C 01010110
 　　鍵　 K 00011101
 　通信文 P 01001011
上式で、⊕ はビットごとの排他的論理和を表している。K の各ビットの値が 0 であっても 1 であっても、(K ⊕ K) = 0 になる。
運用.
ciphering tapeが真の乱数から作られたものであれば、原理的にどのような「解読」結果も同程度に確からしくなること（後年確立された理論の用語を使えば、情報理論的安全性）から、解読不可能という特長があるが、通信量と同量の秘密情報をあらかじめ共有する必要がある点、また運用上は同期がズレる可能性も問題である。そのため、ごく特殊な目的でしか使用されなかったものと考えられている。たとえば、米ソホットラインで使用されたとされている。
現代暗号の観点.
ciphering tapeについて、特許の文面中には、（3頁、13～20行目）For ciphering and deciphering the message the ciphering devices at the opposite ends of the line are provided with identical sections of tape upon which are recorded a series of code signals which are preferably selected at random but if desired may themselves represent a predetermined series of letters or words.とある。「random」を擬似乱数列のこととすれば、現代のストリーム暗号の運用と同じものと解釈できなくもないが、擬似乱数という概念が確立されたのは後年のことであり、また「predetermined series」でもよい、としている点は推測可能性に不安もある。よって基本的には、当初提案されたものは、排他的論理和をとる、といったような装置の原理などについてのみが現代のストリーム暗号と共通するものであった、と解釈するのが無難であろう。
暗号システム中の「推測不可能な乱数」として真の乱数を使い、一度使った値は二度と使わない、というワンタイムパッドのアイディアは、バーナム暗号より古いが（ を参照）、そのアイディアをバーナム暗号と組み合わせることについては、Vernamと同じくAT&TのJoseph Oswald Mauborgne（ (1881–1971)）との共同で、1920年代の提案とされている（英語版の を参照。特許を取得した、とあるが、要出典となっている）。
ciphering tapeとして真の乱数を使用した場合のバーナム暗号のような暗号の、数理から見た安全性（学理的強度）については、後に（やはりAT&Tの）シャノンが、情報理論的安全性として、その理論を確立した。
なお、現代のストリーム暗号が専ら、短い鍵のみを秘密情報として共有し、それから生成される擬似乱数列を使用することから、真の乱数（ワンタイムパッド）を使用するものを「バーナム暗号」として言及されていることがあるが、前述のように原文献とされる特許の明細には、真の乱数の使用を示すような明確な記述は無い。
また、暗号化量子通信プロトコルのYuen 2000（Y-00）などに関して、バーナム暗号やワンタイムパッドという語を散りばめた解説が見られるが、