知道质数和生成器参数是否可以"hack"Diffie-Hellman?

Is it possible to "hack" Diffie-Hellman by knowing the prime number and the generator parameters?

我试图理解 Diffie-Hellman (DH) 算法,因为我想让两台计算机相互通信,但没有第三台计算机知道他们在说什么,而且还交换密钥将在不安全的频道中使用。

关键是第三个也知道DH会怎么处理,就是常量参数。更具体地说 pg:

那么问题来了,如果我知道pg,我能不能发现Bob和Alice会用8作为他们的秘密钥匙?

不可以,要计算密钥,您必须首先能够计算 a(Alice 的密钥)或 b(Bob 的密钥),这将要求窃听者计算 discrete logarithm 并且由于没有任何已知的有效算法可以计算出 Deffie_Hellmen 是非常安全的,并且第三方(窃听者)永远不会知道 8 是密钥。 (请注意 pg 的正确选择对于进行安全密钥交换至关重要。

你要小心选择你的生成器(它必须生成整个组),以及你的号码p的选择。

在乘法群 mod p 的特殊情况下,您最有可能谈论的是:

  1. 你的 p 必须是 safe prime
  2. 你的发电机 g 必须是 primitive root mod p:

此外,您的实施可能容易受到时序和其他因素的影响side channel attacks

换句话说:不要这样做。密码学很难。使用 library 可以为您完成。