在Diffie-Hellman密钥交换期间协商使用哪个DH组是否常见?

时间:2013-07-31 22:46:18

标签: cryptography diffie-hellman

当我阅读关于DH密钥交换如何工作的描述时,没有提到密钥交换者如何就哪个" group"达成协议。 (pg参数)应用于计算公共和私有值。看RFC 5114,似乎有很多选择。

我想知道这种谈判是否通常在交换本身期间完成,如果没有,是否有关于算法如果包含该步骤将如何不同的说明。

感谢阅读。

1 个答案:

答案 0 :(得分:1)

p和g值可以安全地通过未加密。如果客户端/服务器在网络上,则客户端或服务器会生成p / g值并通过网络套接字传递它们。只要每个客户端/服务器的密码保密(duh ..),Diffie-Hellman交换可以说是安全的,因为攻击者必须计算g ^(ab)mod p = g ^(ba) mod p(由于p值足够大,导致无限量的解决方案无法计算)。

基本上最基本的D-H交换如下:

甲方生成p,g,a值。其中g是基数/发生器,p是素数模,a是秘密能力。

乙方(同时)生成秘密值b。

甲方计算g ^ a mod p(此后我们将此值称为A)

甲方并在传输介质上发送p,g和A.

乙方收到p,g,A。

乙方计算g ^ b mod p(之后我们将此值称为B)。

乙方通过传输介质发送B.

甲方收到B.

甲方计算B ^ a mod p并获得共享秘密。

乙方(同时)计算A ^ b mod p并获得共享秘密。

注意:如果p值太小,从0到p - 1迭代可能会更便宜,但这一切都取决于生成公共秘密后的操作。