同じワンタイムパッドでの暗号化がうまくいかないのはなぜですか?


20

ワンタイムキーメッセージを暗号化するには、 ます。 K E N C M 1K = M 1Km1kEnc(m1,k)=m1k

あなたは同じ使用している場合は異なるメッセージを暗号化するためにあなたが得る 、あなたが2つの暗号文の排他的論理和を実行する場合は、あなたが得る M 2 E N C M 2K = M 2K M 1K M 2K = M 1M 2km2Enc(m2,k)=m2k

(m1k)(m2k)=m1m2

そう、OK、を学習するため、情報漏洩がありますが、なぜ安全ではないのですか?私は、(例えば)を学習する方法がありません私が知っている限り。では、なぜ 2回使用するのが間違っているのでしょうか?、M 1 、M 2 Km1m2m1m2k


はい、これは種まきです。主に、crypto.seとcs.seの間の境界線に関する議論の種をまく。
ランG.

使用されるタグの説明については、こちらをご覧ください。
ラファエル

私はそれを本当に明確にする視覚化を見たのを覚えていますが、今はそれを見つけることができません。誰かが私が話していることを知っていますか?(ECB linux-pinguinなどの別の暗号画像と混同しないことを願っています)
Ran G.

1
@RanG。:正しい-対応するcrypto.seの質問は、ワンタイムパッドキーの再利用の活用ですか?
デビッドケーリー

回答:


14

私は、(例えば)を学習する方法がありません私が知っている限り。m 2m1m2

それはまさに問題です-あなたが同じキーを再利用し、誰かが平文と暗号化された形式の両方で暗号化した1つのメッセージにアクセスできる場合、彼らはそれを使ってあなたのキーを見つけることができます:

(m2k)m2=k

代替シナリオとして、同じキーを何度も使用すると、攻撃者はさまざまな暗号化されたメッセージの一部だけを推測でき、推測が成功するたびにキー一部が明らかになるため、時間の経過とともにますます多くのキーが公開されます。k

暗号システムを破るためのこの一般的な戦略は、既知の平文攻撃として知られてます。AESやRSAなどの多くのシステムは、これらの攻撃に対して安全であると考えられています。ただし、すべての暗号化に新しいパッドが使用されない限り、ワンタイムパッドは完全に安全ではなくなります。そのため、「ワンタイムパッド」と呼ばれます。


11

あなたが言及した理由のために正確にそれは安全ではありません-いくつかの情報漏洩があります。

基本的に、プレーンテキスト(英語のテキスト、既知の構造を持つファイルなど)について仮定がある場合、簡単な統計分析につながります。おそらく2回使用しても攻撃の実用性は大きく変わりませんが、非ランダムなプレーンテキストで何度も使用すると、最終的にキーを回復するのに十分な情報が明らかになります。

あなただけそれを使用する能力があれば最後に、二回を、あなたもそれだけを使用する能力持って一度に -制限が回数に損傷を与える、これらのワンタイムパッドは潜在的に不明と時間をかけて使用しないことです。

あなたがいること(平文知られている)を認識しております場合は、1つの極端では、パッドの長さのちょうどヌル文字列である、あなたはキー前コンピューティングへの攻撃を手渡してきた。m 2m1m2

既知のプレーンテキスト攻撃はかなり一般的で、暗号化メカニズムを強制的にアプリオリに知っているものを暗号化するのはかなり簡単です。そうでない場合、通常、合理的な統計的仮定を行うことができます。


さらに、ワンタイムパッドには、暗号文と平文の一部さえ知っていれば、キーの対応する部分をすぐに回復できるという特性があります。つまり、同じパッドで暗号化された将来のすべてのメッセージの一部は、クリア(平文を推測しやすくし、より多くのキーを明らかにするなど)。電子メールやHTTPリクエストなどの多くのものを暗号化している場合、攻撃者はこれらのプロトコルの構造だけでプレーンテキストの一部をほとんど常に知ることができます。
ベン

6

(m1k)(m2k)=m1m2

英語のテキストには、1文字あたり1.3ビットのようなエントロピーがあります。2つのメッセージのXORは、文字ごとに2.6ビットです。アルファベットには26個の文字があるため、ビット/文字になります。これは、2つの英語のテキストのXORをとっても、これらのテキストの両方をデコードするのに理論的に十分な情報がまだあることを意味します。さらに、私は暗号解読者が実際にそれを行うことができることを読んだと確信しています。log226=4.7

ワンタイムパッドを2回使用する場合は、最初にメッセージを圧縮する必要があります。その場合でも、ほぼ完璧な圧縮アルゴリズムを使用せず、ワンタイムパッドを複数回使用すると、理論的にメッセージを回復するのに十分なエントロピーが残ります。実際にどれほど難しいかわかりません。


4

m1m2m1m2

実際、多くの場合、非常に簡単です。 これは簡単な視覚化です。


2

これは、数学に頼らずにアプローチを表現する直観的な方法です。同じワンタイムパッドで暗号化された2つの暗号化されたメッセージがあるとします。

  1. メッセージの1つに含まれている可能性のある単語またはフレーズを推測します。「天気予報」というフレーズを言いましょう
  2. メッセージ1から開始して、「天気予報」が最初の文字位置にあると仮定します。
  3. ワンタイムパッドの最初の14文字を逆算します。
  4. 逆算されたOTPを使用して、メッセージ2の最初の14文字を解読します。
  5. プレーンテキストがgobble-di-gookのように見える場合は、手順2に戻って2文字目の位置で繰り返します。ただし、意味のあるテキスト(「おはようございます」など)を受け取ったら、おめでとうございます。OTPの最初の14文字(および各文字の最初の14文字)を作成しました。
  6. ランダムな文字以外をスローせずにメッセージ1の最後に到達した場合、メッセージ1で「天気予報」というフレーズは発生していないと結論付けることができます。 」
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.