A和B若想共享一个密钥,可通过以下方法:
A和B找到一个大素数n和Zn中的一个生成元g达成一致意见(公开)
A选择一个随机数x,并向B发送: a=g^x mod n
B选择一个随机数y,并向A发送: b=g^y mod n
A计算 KA=b^x mod n
B计算 KB=a^y mod n
显示KA=KB,可以充当对称密钥