使い捨てパッド暗号



使い捨てパッド(one time pad)について

使い捨てパッドとは

使い捨てパッドとは、平文と乱数(ランダムはビット列)でXOR論理演算をするだけの暗号です。

ただし、乱数は平文と同じ文字列長を使用し、1回使った乱数表は捨てることが条件となります。

総当たり(ブルートフォースアタック)で解読を試みても、絶対に解読できないことが証明されている暗号方式です。


「Vernam's One-time Pad(バーナム使い捨て鍵方式あるいはバーナム使い捨て鍵暗号)」や「バーナム暗号」とも呼ばれます。


使い捨てパッドが解読できない理由

使い捨てパッドが解読できない理由は、復号化した平文が正しいか証明できない点にあります。

解読を試みても、解読した文章の中には本来秘匿された文章以外にも意味を読み取れる文字列が生成されてしまう可能性が生まれます

これにより、暗号化された目的の文章がどれであるかを判定することができなくなります。


例えば「str」という三文字を暗号化した暗号文を解読しても、「abc」や「wto」などといった一般的に意味を持つ文字列に復号できてしまうと、平文としての正当性を証明することができなくなります。

つまり、正しく復号する鍵を判定することが不可能となってしまいます。


使い捨てパッドの仕組み

平文をasciiコードのビット列として、乱数を鍵として用います。

乱数の秘匿だけで暗号強度を保てるので、暗号化/復号が手作業でも処理できるほど単純といえます。


暗号化はXOR演算を行い、暗号文を作成します。

平文      :s(115)    t(116)    r(114)
            01110011  01110100  01110010
乱数鍵    : 01100010  01001010  11011010
----------------------------------------- XOR演算
暗号文    : 00010001  00111110  10101000

復号化は暗号文と乱数で生成した鍵とします。

暗号文    : 00010001  00111110  10101000
乱数鍵    : 01100010  01001010  11011010
----------------------------------------- XOR演算
平文      :s(115)    t(116)    r(114)
            01110011  01110100  01110010

使い捨てパッドの欠点

使い捨てパッドは鍵となる乱数の秘匿で暗号強度を保っています。

暗号の運用方法を徹底できない場合、暗号強度は保証されなくなります。

以下の問題を考慮する必要があります。


関連ページ




スポンサード リンク