我正在尝试理解Diffie-Hellman(DH)算法,因为我希望有两台计算机相互通信,但没有第三台计算机知道他们在说什么,而且还要交换他们将使用的秘密密钥。不安全的渠道。
问题是第三个也知道DH将如何处理,即常数参数。更具体地说, p 和 g :
所以问题是,如果我知道 p 和 g ,我能否发现Bob和Alice会使用8作为他们的密钥?
答案 0 :(得分:2)
否你无法计算密钥,首先必须能够计算a
(爱丽丝的秘密密钥)或b
(鲍勃的秘密)密钥)这将要求evesdropper计算discrete logarithm,因为没有任何已知的有效算法可以计算出比Deffie_Hellmen
非常安全的第三方(evesdropper)永远都不知道8
是秘密密钥。 (请注意,正确选择p
和g
对于进行安全密钥交换至关重要。)
答案 1 :(得分:0)
您必须小心选择发电机(必须生成整个组),并选择您的号码。
在乘法组mod p的特殊情况下,您最常谈论的是:
此外,您的实施可能容易受到时间和其他side channel attacks的影响。
换句话说:不要这样做。密码学很难。使用library即可为您完成此操作。