知道质数和生成器参数是否可以"hack"Diffie-Hellman?
Is it possible to "hack" Diffie-Hellman by knowing the prime number and the generator parameters?
我试图理解 Diffie-Hellman (DH) 算法,因为我想让两台计算机相互通信,但没有第三台计算机知道他们在说什么,而且还交换密钥将在不安全的频道中使用。
关键是第三个也知道DH会怎么处理,就是常量参数。更具体地说 p 和 g:
那么问题来了,如果我知道p和g,我能不能发现Bob和Alice会用8作为他们的秘密钥匙?
不可以,要计算密钥,您必须首先能够计算 a
(Alice 的密钥)或 b
(Bob 的密钥),这将要求窃听者计算 discrete logarithm 并且由于没有任何已知的有效算法可以计算出 Deffie_Hellmen
是非常安全的,并且第三方(窃听者)永远不会知道 8
是密钥。 (请注意 p
和 g
的正确选择对于进行安全密钥交换至关重要。
你要小心选择你的生成器(它必须生成整个组),以及你的号码p的选择。
在乘法群 mod p 的特殊情况下,您最有可能谈论的是:
- 你的 p 必须是 safe prime
- 你的发电机 g 必须是 primitive root mod p:
此外,您的实施可能容易受到时序和其他因素的影响side channel attacks。
换句话说:不要这样做。密码学很难。使用 library 可以为您完成。
我试图理解 Diffie-Hellman (DH) 算法,因为我想让两台计算机相互通信,但没有第三台计算机知道他们在说什么,而且还交换密钥将在不安全的频道中使用。
关键是第三个也知道DH会怎么处理,就是常量参数。更具体地说 p 和 g:
那么问题来了,如果我知道p和g,我能不能发现Bob和Alice会用8作为他们的秘密钥匙?
不可以,要计算密钥,您必须首先能够计算 a
(Alice 的密钥)或 b
(Bob 的密钥),这将要求窃听者计算 discrete logarithm 并且由于没有任何已知的有效算法可以计算出 Deffie_Hellmen
是非常安全的,并且第三方(窃听者)永远不会知道 8
是密钥。 (请注意 p
和 g
的正确选择对于进行安全密钥交换至关重要。
你要小心选择你的生成器(它必须生成整个组),以及你的号码p的选择。
在乘法群 mod p 的特殊情况下,您最有可能谈论的是:
- 你的 p 必须是 safe prime
- 你的发电机 g 必须是 primitive root mod p:
此外,您的实施可能容易受到时序和其他因素的影响side channel attacks。
换句话说:不要这样做。密码学很难。使用 library 可以为您完成。