web-dev-qa-db-ja.com

2つのキーDESアルゴリズムが80ビットのセキュリティしか提供しない理由

Wikiリンクでは、「選択平文」または「既知の暗号」攻撃のために、2つのキーDESは80ビットのセキュリティしか提供しないと述べられています。

私の質問は、これらの攻撃がどのように機能し、NSITが2 <80>ビットのセキュリティをどのように考案したかです。

1
Rohit Jindal

Double-DESで何が起こるかを理解するには、 中間者攻撃 (「 中間者攻撃 "とはまったく関係ありません)」を検討してください。

セットアップ:ダブルDESがあり、データブロックはキーKで暗号化されます1、そして再びK2。攻撃者は2つの平文/暗号文ブロックにアクセスできる可能性があります。攻撃者は[〜#〜] a [〜#〜][〜#〜]を知っています。 b [〜#〜]C = EK2(EK1(A))およびD = EK2(EK1(B))

次に、攻撃者はすべてのEを計算できますK(A)[〜#〜] k [〜#〜]のすべての値(2つあります56 そのうちの)。次に、彼はすべてのDを計算することもできますK '(C)K 'のすべての値(ここでも、256 試すキー)。その時点で、彼は約2を持っているでしょう48(Kの候補1、K2ペア:これらはすべてのペア(K、K ')であり、EK(A)= DK '(C)。 「248"は64ビットブロックを暗号化しているという事実から来ているので、256ごとに約1つのブロック値がEの1つですK(A)値なので、256ごとに約1つの値K 'が一致するDになりますK '(C)

248 次に、候補は平文[〜#〜] b [〜#〜]と暗号文[〜#〜] d [〜#〜 ];正しいものだけがそのテストに合格することが期待されます。

コスト:257 DESの呼び出し(さらに平均248 候補の検証のためですが、それはごくわずかです)、および2を保持できるいくつかのメモリストレージ56 中間値、およびソート済み。値はソートされているため、それぞれが前の値と平均で8ビットだけ異なりますが、対応する[〜#〜] k [〜#〜]も格納する必要があります。したがって、実際の実装では値ごとに10バイトを使用するとします。それは10 * 2です56 ストレージのバイト数。これはかなり大きいですが(約65万テラバイト)、既存のテクノロジーで想定できます(ただし、安くはありません)。ソートステップは、「アカデミック」な方法で最大のコストになります(約264 比較)しかし257 DES呼び出しは、実際には、さらにコストがかかります。

ここに「80ビット」は表示されません。実際、Double-DESのセキュリティは「57ビット」に近いと見なす必要があります。ストレージ要件により、単純な「57ビットブロック暗号」よりも解読が困難になりますが、80ビットブロック暗号ほど難しくはありません。

(同様の方法が3DESでも機能します。つまり、3DESは、168ビットのキーにもかかわらず「約112ビット」のセキュリティを備えています。)

4
Thomas Pornin

80ビットのセキュリティを備えたものは、Double-DESには適用されませんが、3DESの1つのオプションに適用されます。

3つの異なるキーで3DESを使用すると、Thomas Porninが回答で述べた中間一致攻撃のために、112(168ではなく!)ビットのセキュリティが得られます。

K_1 = k_3で3DESを使用し、いくつかの仮定を入れると、80ビットになります。

ウィキペディアは、NISTによるこのPDFを次のように参照しています: http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57-Part1-revised2_Mar08-2007.pdf

0
HorstKevin