2017-04-23 81 views
0

基于RFC 2631和RFC 3526.如何选择实施的Diffie-Hellman密钥交换

正如你可以在RFC 3526看到我目前正在写代码来实现的Diffie-Hellman密钥交换壮年,还有很多基团如 1536位MODP组// 2048位MODP组// 3072位MODP组// 4096位MODP组// 6144位MODP组// 8192位MODP组

从这些群组中选择一个群组时,应该基于什么?

你能告诉我如何从Diffie-Hellman密钥交换和原因中选择一组来进行Diffie-Hellman密钥交换吗?

+0

您可以查看以下查询:https://security.stackexchange.com/questions/5263/where-do-i-get-prime-numbers-for-diffie-hellman-can-i-use-他们-两次。 –

回答

0

您应该注意的第一件事是使用来自标准carries some risk的固定素数。话虽如此,我相信国家安全局不能破解其中的任何一项,但这并不意味着他们将无法达到XXX年后的最小规模。

您选择的关键尺寸都取决于您所需的安全性。我们知道的用于突破Diffie Hellman的最佳算法与我们用于保理的最佳算法并无太大差别。简而言之,1024位及以下是不可能的,但2048位及以上的时间不会很快降临(除非有数学突破或量子计算机变得实用,如果后者发生,那么DH完全注定)。

那么我们知道什么是可破解的?

  • 2010年,a 768-bit number was factored。作者总结说:“我们的工作的另一个结论是,我们可以自信地说,如果我们将自己限制在一个开放的社区,学术努力与我们一样,除非在因子分析中发生了戏剧性的变化,我们将无法将1024位RSA模数在接下来的五年内(参见[30])。之后,所有投注都关闭。“
  • 今年,一个768-bit prime discrete logarithm was computed(证明768位DH是易碎的)。作者写道:“另外,我们在第3节 中明确说明,继续使用1024位素数字段ElGamal或DSA密钥比1024位RSA(全部仍然普遍使用)风险大得多,因为一旦成功已经针对一个精心挑选的主要领域进行了攻击,所有这个主要领域的用户都会受到额外的额外努力的影响。“

正如您所看到的,没有迹象表明1536位接近被攻击,这可能表明任何密钥大小都可以。但是,鉴于我们所了解的使用硬编码素数的危险性,您可能需要在安全方面犯错,并至少使用2048位。

诚实地说,我不会为超越这个而感到恐慌。是的,有很多人认为应该使用至少4096位或更高。但是,我还没有看到任何这些人理解打破这些算法的数学。最大的讽刺之处在于,当那些人推荐使用4096位RSA或DH交换256位AES密钥时,并没有意识到他们降低了AES密钥的安全性。如Unbelievable Security Matching AES security using public key systems所述,“使用公钥系统匹配AES-192或AES-256安全级别需要的公钥大小远远超过当前常用的任何值。”即192比特的AES密钥对应于7000比特的RSA/DH,而256比特的AES对应于16000比特的RSA/DH。底线:使用2048位MODP群组,不要惊慌。你更有可能拥有打破你的密码的implementation problems,而不是根据其大小来破解数字。