我对Diffie Hellman参数有一般性问题

时间:2017-04-27 15:16:34

标签: security aes diffie-hellman

我目前正在进行Diffie-Hellman密钥交换,并使用密钥对进行AES。

Q1)当我从RFC 3526中选择Diffie-Hellman的素数时,如1536年,2048年,3072个MODP群,是更大的素数更安全吗?你能解释一下吗?

Q2)每组都有2的生成器,如果我使用RFC3526中的标准素数组,我应该总是使用2作为生成器吗?

Q3)我使用Diffie-Helman的密钥对进行AES。我知道AES的密钥长度可以是128,192或256位。我应该在Diffie-Hellman中选择特定的质数或发生器来满足AES的128,192或256位的密钥长度

抱歉在一篇文章中提出三个问题,但我相信这些都是相关的问题。谢谢!

1 个答案:

答案 0 :(得分:1)

RFC 3528中,他们在第8节“安全注意事项”中解决了您的问题。我将尝试在此重申/解释答案:

  1. 简而言之,是的,更大的素数是“更安全”。假设Diffie-Hellman没有从根本上被打破,“破解”交换的难度,即找出交换所建立的共享密钥,直接与所使用的素数的大小成比例。然而,在AES术语中,一个额外的素数不等于“关键强度”的一个额外位。这是因为,简单地说,不是每个数字都是素数。例如,在AES-128中,我们期望密钥是128个随机位的字符串,这意味着密钥可以是2 ^ 128种可能中的任何一种。然而,我们永远不会在Diffie-Hellman(或RSA,或任何需要素数的其他任何东西)中使用128位素数,因为只有少于2 ^ 128个素数长度为128位。因此,如果我们使用128位素数,攻击者就不必尝试所有2 ^ 128种可能性,他们只需要尝试更少数量的128位素数。因此,为了说我们具有与AES-x相同的“关键强度”,我们需要使用更多,更大的素数,以便我们在2 ^ x的范围内有许多可能的素数。
  2. 我会说是的。如有疑问,请遵循参考实施;在这种情况下,使用2作为生成器。
  3. 第8节中的表格显示了所提供的各种主要群体的“强度估计”;我总是会低估他们的实力。因此对于AES-128,至少使用3072位组;对于AES-192,至少是8192位组。
相关问题