web-dev-qa-db-ja.com

プレーンテキストドキュメントをパッドとして使用するワンタイムパッドを暗号化分析するにはどうすればよいですか?

ワンタイムパッドが本当に安全であるためには、パッド自体がランダムデータでなければならないことを読みました。安全なランダムパッドを共有することの実際的な難しさを考えると、現在Webから入手できる膨大な数のプレーンテキストドキュメントを使用することの問題は何でしょうか。

たとえば、ボブとアリスの間でドキュメントを選択するための事前に準備されたパターンがある場合です。 Boxは、Webからのそのようなドキュメントの1つ、たとえばプロジェクトグーテンベルクファイルを使用し、メッセージ(UTF8)にそのドキュメントを埋め込み、暗号化されたファイルをアリスに送信します。

Eveはメッセージを復号化するためにどのようなプロセスを使用できますか?

パッドがメッセージよりも長く、ボブとアリスの間の他のメッセージが同じパッドを使用していないが、相互に合意した他のWebドキュメントを使用していると仮定します。

膨大な数のテキストを考えると、これはワンタイムパッドの実用的な情報源になる可能性があるようです。しかし、私はパッドの基本的な言語パターンが問題を引き起こす可能性があるのではないかと疑っています。

1
Walter Anderson

まず、プロジェクトGutenbergのファイルの数は、人間の基準では膨大ですが、コンピューターにとっては非常に少ないので、すべてを試すだけで実行できます。

その発言とは別に、ランダムでないパッドデータはバイアスを意味します。平文とパッドの両方が「自然言語テキスト」である場合、質問は次のようになります。givenmXORm '、ここでmm 'は「テキスト」ですが、mをどのように回復できますかm '?この問題は、悪名高い「2回パッド」と同等です。ここで、(真に)ランダムなパッドpが使用されましたが、残念ながら2回使用され、2つの異なるメッセージmm '。「2回パッド」の問題では、攻撃者はmXORpおよびm 'XORp;これら2つの値をXORすることにより、攻撃者はmXORm 'そしてそれから進みます。あなたの場合、暗号化されたテキストはすでにmXORm 'なので、同じ攻撃方法が適用されます。

詳細については、 this および that を参照してください。

5
Tom Leek