4

我一直在浏览示例代码,展示如何执行 DH 密钥交换。超级简单,我理解。但是,我不知道 p 和 q 的适当大小应该是多少。在样本中,数字非常小。但我假设,在实践中,它们应该更大。大多少?16-22 位素数就足够了吗?

4

2 回答 2

5

为 DH 选择安全组需要的不仅仅是使用足够大的素数。由于素数可以重复使用,因此可以重复使用预先计算的参数。例如, IETF RFC 3526有许多提议的组。第 8 节估计了每个提议组的安全性。

另请注意,Diffie-Hellman 实现通常会避免使用小 q(不幸的是 SquareRootOfTwentyThree 提出的)。原因是亚群限制攻击。已选择上述 IETF 组来避免此类攻击。

于 2013-02-04T13:44:43.490 回答
2

假设q表示子组模p的大小,2013 年的一些安全值是前者的 224 位和后者的 2048 位。就十进制数字而言,分别表示 68 和 309。

一个检查关于加密密钥长度的各种意见的好网站是(不开玩笑)http://www.keylength.com。在您的情况下,关于离散对数的那些与您相关。

于 2013-01-30T22:10:43.250 回答