建立方法
Diffie-Hellman是由Whitfield Diffie和Martin Hellman在1976年公布的一种密钥一致性算法。Diffie-Hellman是一种建立密钥的方法,而不是加密方法。然而,它所产生的密钥可用于加密、进一步的密钥管理或任何其它的加密方式。Diffie-Hellman密钥交换算法及其优化首次发表的公开密钥算法出现在Diffie和Hellman的论文中,这篇影响深远的论文奠定了公开密钥的密码编码学。1
定义由于Diffie-Hellman算法本身限于密钥交换的用途,被许多商用产品用作密钥交换技术,因此该算法通常可以被称为Diffie-Hellman密钥交换(简写为DH算法,基于DH算法的密钥交换通常也被称为DH交换)2。这种密钥交换技术的目的在于使得两个用户安全地交换一个秘密密钥以便用于以后的报文加密. Diffie-Hellman密钥交换算法的有效性依赖于计算离散对数的难度.简言之,可以如下定义离散对数:首先定义一个素数p的原根,为其各次幂产生从1 到p-1的所有整数根,也就是说,如果a是素数p的一个原根,那么数值 a mod p,a2 mod p,...,ap-1 mod p 是各不相同的整数,并且以某种排列方式组成了从1到p-1的所有整数. 对于一个整数b和素数p的一个原根a,可以找到惟一的指数i,使得 b = a^i mod p 其中0 ≤ i ≤ (p-1)指数i称为b的以a为基数的模p的离散对数或者指数。
算法描述基于原根的定义及性质,可以定义Diffie-Hellman密钥交换算法。该算法描述如下:
1,有两个全局公开的参数,一个素数q和一个整数a,a是q的一个原根。
2,假设用户A和B希望交换一个密钥,用户A选择一个作为私有密钥的随机数XA(XA