来源:"信息化与信息社会"系列丛书----密码学-密码算法与协议.
设p是一个素数,GF(p)*上的离散对数是困难的,设g为其生成元,为达到通信双方共享密钥的目的,通信双方A和B分别进行如下操作。
(1) A进行如下两步操作
随机选取一个整数xA,0≤xA<p-1
计算yA=gxamod p,将yA发送给B
(2) B进行如下两步操作
随机选取一个整数xB,0≤xB<p-1发送给A
计算yB= gxbmod p,将yB发送给A
(3)A计算kA = yBxa,B计算KB = yAxbmod p,容易验证KA=KB,从而达到A与B之间建立共享密钥的目的。但是在上述过程中,A与B之间并没有预先共享的秘密参数。