Diffie-Hellman でのパラメータの選択
-
18-09-2019 - |
質問
ここでこの質問をするのはあまり適切ではないかもしれません...とにかく、DH の実装に gmp ライブラリを使用しようとしていますが、ここで発生した問題は次のとおりです。
かつて、出力を観察するテストを実行していたとき、プライムキーと秘密キーの大きな値が選択されていました。
- p は 10 進数で約 300 桁以上の長さでした
- a、b は約 100 桁の長さでした
最後に、非常に小さい、おそらく 10 進数で 10^8 より小さい共有秘密キーを取得しました...
この問題は何度も発生したわけではなく、実際、観察全体で発生したのは 1 回だけでした...それでも、これはあまり良くありませんでした。
そこで、これを回避する方法はあるのでしょうか...どうもありがとう
解決
のDiffie-Hellman鍵交換は、共有秘密鍵を生成するように設計されています。
P、a、bの大きな値を使用することで、潜在的な共有キーのプールは非常に大きなものであることを確認します。
ただし、共有キーの実の値は、そのプール内のいずれかの値とすることができます。その結果、それはゼロからの範囲であることができた(P - 1)、キーがあるので...それはです。
G^(ab) mod p
そのため、あなたはG^(ab)
がp
の複数の値に近い、ひいてはmod
が低い数であるとき、あなただけのインスタンスを見て...ここでの問題を発見していない。
他のヒント
D-Hの点の一部は、秘密鍵があり得ることであるのいずれか Pで指定された範囲内の値。少なくとも理論的には、それらのいくつかの可能性を排除することはない、よりそう、それは安全性の低いなるだろう(現実的には、限り、あなたは鍵の十分に大きなプールを残すように、それは少し本当の違いが)。
のは、攻撃者は、キー枯渇(ブルートフォース)攻撃をしようとすることを決めた、と0から開始し、ちょうどカウントアップし、彼らは比較的すぐにこの1をヒットしたい場合には事実です。あなたには、いくつかの他の下限とを決定した場合は、再度、再交渉され、それがその下にバインドされた場合、キーは、それがどんな良い実をしないだろう(たとえば) - ではなく0から始まるのは、攻撃者がで開始します下限指定された、とあなたは何を得ていないと思います。