6、原根:如果a是素数p的一个原根,那么数值:a mod p,a^2 mod p,…,a^(p-1) mod p是各不相同的整数,且以某种排列方式组成了从1 到p-1 的所有整数。2)离散对数:如果对于一个整数b和素数p的一个原根a,可以找到一个唯一的指数i,使得b =(a^i)modp,其中0≦i≦p-1,那么指数i称为b的以a为基数的模p的离散对数。2.算法有效性Diffie-Hellman 算法的有效性依赖于计算离散对数的难度,其含义是:当已知大素数p和它的一个原根a后,对给定的b,要计算 i ,被认为是很困难的,而给定 i 计算b 却相对容易
7、。3.Diffie-Hellman算法:假如用户A和用户B希望交换一个密钥。取素数p和整数a,a是p的一个原根,公开a和p。1)A选择大的随机数RA(0<=RA<=p-2),并计算SA=(a^RA)modp,并且把SA发送给用户B。2)B选择随机数RB(0<=RB<=p-2),并计算SB=(a^RB)modp,并且把SB发送给用户A。3)A计算密钥的方式是:K=(SB)^RAmod p,B计算密钥的方式是:K=(SA)^RBmod p,证明: (SB)^RAmod p =(a^RBmod p)^RAmod p =(a^RB)^R
8、Amod p =(a^RA)^RBmod p (--密钥即为a^(RA*RB)mod p) =(a^RAmod p