迪菲-赫尔曼密钥交换(Diffie–Hellmankeyexchange,简称“D–H”)是一种安全协议。
它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥。
这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。
假如用户g和用户B希望交换一个密钥。
取素数p和整数g,g是p的一个原根,公开g和p。
g选择随机数Xg<p,并计算Yg=g^Xgmodp。
B选择随机数XB<p,并计算YB=g^XBmodp。
每一方都将X保密而将Y公开让另一方得到。
g计算密钥的方式是:K=(YB)^XgmodpB计算密钥的方式是:K=(Yg)^XBmodp