Diffie-Hellman

算法描述:
假如Alice和Bob在不安全的网络上进行协议共同的密码:
1.Alice和Bob先说好一个大素数p和它的原始根a 
2.Alice随机产生一个数x,
计算X = a x mod p,然后把X发给Bob; 
3. Bob秘密产生一个随机数y,计算Y = a y mod p,然后把Y发给Alice; 

4.Alice计算k = Y x mod p; 


5.Bob计算 k * = X y mod p;  


因为

k = Y x mod p =(a yx mod p =(a xy mod p = X y mod p = k *


所以  k = k *

x、y分别为私钥

X、Y分别为公钥

最后得到的k为共享密钥。

例子:

考虑公共素数q=11本原根α=2的Diffie-Hellman方案:

a.如果用户A有公钥Y(A)=9,请问A的私钥X(A)是什么? 
b.如果用户B有公钥Y(B)=3,请问共享的密钥K是什么
解:
a.由Y(A)=a^X(A)mod p,
即9=2^X(A)mod11 
 所以X(A)=6
b.同上一问求得X(B)=8,
共享密钥K=Y(A)^X(B)mod p,
即K=9^8mod11=3

你可能感兴趣的:(网络安全学习笔记)