11

検索したところ、DiffieHellmanアルゴリズムでPとGを使用していることに混乱しました。Pが素数であり、GがPの原始根であるという要件があります。

セキュリティは、2つの非常に大きな素数の結果を因数分解することの難しさに基づいていることを理解しているので、問題はありません。ただし、GがPの原始根である目的については、入手可能な情報がほとんどないようです。この要件が存在する理由を誰かが答えることができますか(可能な場合は参照してください)。セキュリティを強化するだけですか?共有キーは明らかにpとgの任意の組み合わせで作成できることを考えると、素数でないものであっても、これは興味深いと思います。それは確かにセキュリティのためだけである可能性がありますか?もしそうなら、それはどのようにそれを増やしますか?

前もって感謝します

ダニエル

4

3 に答える 3

16

gがpの原始根でない場合、gはGFpの部分群のみを生成しますこれは、システムのセキュリティプロパティに影響を及ぼします。システムのセキュリティは、GF pの完全な順序に比例するのではなく、GFpのgの順序にのみ比例します

簡単な例を挙げると、 p =13およびg =3を選択します。

GF_13の3の順序は3です(3 ^ 1 = 3、3 ^ 2 = 9、3 ^ 3 = 1)。

Diffie-Hellmanの通常の手順に従って、アリスとボブはそれぞれ1からp -1までの整数abを選択し、それぞれを計算する必要があります。A = gaおよびB = gb_ _ これを総当たり攻撃するには、攻撃者は、A(またはB )を生成する値が見つかるまで、1からp -1までのa(またはb)のすべての可能な値を試すことを期待する必要があります。しかし、gはpを法とする原始根ではなかったので、解a'を見つけるために、値1、2、および3を試すだけで済みます。A = ga '。そして、秘密はs = g ab = (g ab = (g a'b = g a'b = (g ba' = B a'であり、攻撃者はこれを計算できます。

于 2011-04-15T10:51:53.167 に答える
6

Diffie-Hellman に使用されるジェネレータ g がプリミティブ ルートである必要はなく、一般的な選択でもありません。より一般的なのは、素数次部分群を生成するように g を選択することです。つまり、g の位数は素数 q であり、これは p-1 の大きな素因数です。

たとえば、IKEに提案された Diffie-Hellman グループは、p が安全な素数であり、g が次数 (p-1)/2 のサブグループを生成するように選択されています。

大きな素数次部分群の生成元として g を選択する動機の 1 つは、これにより決定的な Diffie-Hellman 仮定が可能になることです。g が原始根である場合、この仮定は成り立たないため、実装されたプロトコルの分析が多少難しくなります。

于 2011-05-09T20:47:18.300 に答える
5

Diffie-Hellman の安全性は、因数分解の難しさに基づいていません。これは、一般的な離散対数を計算する (想定される) 難しさに基づいています。

アルゴリズムが正しく使用可能であるためには、 gがpの原始根でなければなりません。これにより、すべての数値0 <= x < p に対して、 g x mod pの個別の値が存在することが保証されます。つまり、gが有限体のすべての値を「生成」できることを保証します。

于 2011-04-15T04:38:24.393 に答える