RSA密钥交换
1)客户端发起密钥交换请求,服务端返回自己公钥P_s。
2)客户端使用随机数发生器,产生共享密钥k,通过服务端公钥P_s进行加密处理。并将加密密文D_k发送给服务端。
3)服务端收到D_k后,通过私钥解密,得到共享密钥k,完成密钥分发。
DHE密钥交换协议
1)客户端产生随机数X_c,计算P_c=q^{x_c}modp,将P_c发送到服务端。
2)服务端产生随机数X_s,计算P_s=q^{x_s}modp,将P_s发送到客户端。
3)服务端和客户端计算共享信息S=P_c*P_s=q^{x_c*x_s}modp。
ECDHE密钥交换协议
1)客户端产生随机数k_c,并且计算M_c(x,y)=k_c*G,并将M_c(x,y)发送至服务端。
2)服务端产生随机数k_s,并且计算M_s(x,y)=k_s*G,并将M_s(x,y)发送至客户端。
3)服务端和客户端计算共享信息S=k_s*M_c(x,y)=k_c*M_s(x,y)=k_c*k_s*G。
评论区