攻撃者は、従来の暗号化キーをクラックしたことをどのようにして知るのですか?
ウィキペディア 説明 ワンタイムパッド:
ブルートフォース攻撃を受けた140文字のワンタイムパッドエンコードされた文字列は、最終的には正解を含む可能なすべての140文字の文字列を明らかにします。 1。
では、OTPをいつ解決したかわからない場合、従来の暗号化キーを解決した場合の景品とは何でしょうか。
暗号化されたデータは(疑似)ランダムデータです。つまり、最大のエントロピー(ゼロに近いパターン)があります。
140文字の文字列。市販の特別な圧縮アルゴリズムでは、英語を108〜110文字に圧縮できます。誤って復号化された140文字の文字列は、138〜140文字に圧縮される可能性があります。
(ちなみに、108-110は無作為に選択されていません。実際に前の回答の段落の140文字でこれを試しました。長いテキストは明らかにそれよりも大幅に小さく圧縮されます。テキストは通常、元のサイズの約1/4になります。 、および実行可能ファイルや画像などの他の「有用な、ランダムでないデータ」は、元のサイズに応じて、元のサイズの30〜70%になります。)
これにより、正しい暗号化キーが見つかった場合の識別がかなり簡単になります(実際にはfindingこれは別の問題です。256ビットはもちろん、128ビットキーをブルートフォースで試してみてください。 -ビットキー-頑張ってください)。
OTPの問題は、相関関係が不明瞭であるにもかかわらずsomeが存在するブロック暗号またはストリーム暗号とは異なり、伝達関数が完全にランダムである可能性があることです(キーはランダムである必要があるため)。基本的に何でも。
つまり、対応するキーを入力し、それが正しいかどうかを知る方法がない場合、OTPからすべての回答を得ることができるということです。すべての順列は等しく可能性が高く、メッセージ内のどのビットも(メッセージまたはキー内の)他のビットに関連していません。
制限内他の暗号化システムについても同じことが主張できます(2以降)128 選択肢は膨大な数であり、ほとんどの目的でほとんど「無限」です)が、実際にはそうではありません。順列の数は比較的少ない(たとえば、2と比較して)1120)、およびメッセージ内のビットは互いに独立しておらず、キーの他のビットからも独立していません。ちなみに、OTPでanyビットを反転すると、1文字で1ビット反転します。ただし、ブロック暗号で1ビットを反転すると、50%の確率ですべてのビットを反転します。それらはnot独立しています!
つまり、膨大な数の出力があるにもかかわらず、実際に意味があるのはごく少数(多くの場合1つだけ)であり、エントロピーによってそれらを識別できます。
ワンタイムパッドを使用して何かを暗号化する場合、パッドのビットを変更することで、同じ長さの任意の値に復号化できます。たとえば、5バイトの暗号文を16進数でe0306814d4にエンコードするとします。暗号化は単純に平文をキーでxorすることで機能するため、簡単にキーを作成して暗号文を任意の平文に復号化できます。
e0306814d4 xor 88550478bb = 68656c6c6f ("hello" in ASCII)
e0306814d4 xor 885f0475f5 = 686f6c6121 ("hola!" in ASCII)
e0306814d4 xor a9101f7dba = 492077696e ("I win" in ASCII)
キーを作成して同じ長さのすべての可能な値を生成できるため、正しい値がどれであるかを知る方法はありません。
これは、固定長の「通常の」対称暗号には当てはまりません。攻撃者が平文について何か知っている場合、彼らが推測したキーが正しい可能性が高いかどうかをテストすることができます。
例として140文字の文字列を使用してみましょう。140ASCII文字です。ASCIIは7ビットしか使用しないため、上位ビットは常に0です。キーが正しいかどうかを確認する簡単なテストがあります。上位ビットの1が多いほど、ASCIIである可能性は低くなります(ただし、UTF-8またはその他のエンコーディング)。
AES-128を使用しているとしましょう。128 可能なキー、つまり2128 暗号化された値を復号化できるさまざまなプレーンテキスト。 「完全な」暗号であると仮定すると、それぞれの異なる鍵が50%の確率で各ビットを反転し、その値がわかっている140ビットがあります。つまり、2128/2140 ≈暗号テキストを有効な値に解読するキーが存在する可能性は0.02%ですASCIIランダムな偶然により、暗号テキストからASCIIを生成するキーが見つかった場合、解読された値も有効な英語(または他の言語)であることが判明した場合、それが正しいキーではない可能性は天文学的に低いです。
つまり、プレーンテキストについて何かを知る必要があります。これは、特定の値がプレーンテキストの先頭にあること(ほとんどのファイル形式で非常に一般的)であることを知っていたり、プレーンテキストに何らかのパターンが存在することを知っていることと同じくらい単純なものです。
OneTimePadsでは、キーはメッセージと同じ長さである必要があります。鍵ベースの暗号化のほとんどの使用では、メッセージは鍵よりも長くなります。したがって、後続の暗号化されたデータを使用して、推測を再確認できます。
たとえば、プレーンテキストRob the bank at 10am on the 12th of June
One Time Padを使用すると、OneTimePadキーを推測してRob the bank at 10am on the 19th of June
日付が正しく復号化されたことを示すものはありません。
ただし、8ビットのASCII ASCII英語の10MBのtarファイルと128ビットのキーがある場合、キーの1ビットが間違っていると、検出可能なエラーが多数発生します。 (平文で何が期待できるかについて事前の知識があると仮定します)。