ワンタイムパッド
ワンタイムパッド (one time pad, OTP) とは、乱数列を高々1回だけ使う暗号の運用法である。1回限り暗号、めくり暗号などとも呼ばれる。発案は戦前であるが、戦後、クロード・シャノンにより情報理論的安全性としてその強度の概念が確立された。
通信量と同じ長さの乱数列を使用し、日めくりのように1回使った乱数表は捨てる。例えば1から26の範囲をとる乱数の場合、1つの乱数でアルファベット(A-Z)の1文字を暗号化できる。乱数の秘匿だけで暗号強度を保てるので暗号化/復号がシンプルで、手作業でも処理できる。換字表やコードブックは公知のものでもよいという利点がある。
理論的には、正しく運用された場合に解読不可能となる。たとえ総当たりで解読しようとしても、総当たりで生成される多数の文章(文字列)の中には、送信者が暗号化した文章以外にも、人間が意味を読み取れる文章(文字列)が生成されてしまう。従って、解読者には、送信者自身の文章とそれ以外の人間が意味が読み取れる文章を区別することができず、解読不可能となる。C. E. Shannon による解読不能の証明では、平文を X {\displaystyle X} 、暗号文を C {\displaystyle C} として例えば次のように記述され、いずれも暗号文を入手することで平文を特定することのアドバンテージを得られないことを意味する。
条件付き情報量表現: H ( X | C ) = H ( X ) {\displaystyle H(X|C)=H(X)}
条件付き確率表現: P r ( X | C ) = P r ( X ) {\displaystyle Pr(X|C)=Pr(X)}