DH密钥交换协议
DH 密钥交换协议
在基于对称加密进行安全通信的过程中,通信双方需要持有一个共享的密钥。只有这样,由任何一方加密的信息才能由另一方使用相同的密钥解密。但是在能够安全的通信之前,通信双方应该如何约定一个共享的密钥呢?这就是安全中的经典问题:密钥配送问题(Key Distribution Problem[1])。
Diffe-Hellman密钥交换协议只是其中一种约定功能共享密钥的方式,
DHKE协议简介
DHKE是一种通过公共通道安全地交换加密密钥的数学方法,以Whitfield Diffie和Martin Hellman的名字命名。
数学原理
$c=G^e mod P(0<=c<P)$
G是P的原根,满足条件
{g1modp,g2modp,g3modp,…,gp−1modp}={1,2,3,…,p−1}
DHKE协议的过程
客户端和服务端生成协商大素数P及其原根G
客户端生成私钥和公钥a和A
A=Ga mod p
将公钥A发送给服务端
服务端生成私钥b和公钥B
$B=G^b mod P$
服务端将公钥B发送给客户端
客户端已知G,P,A,a,B计算密钥S1
$S1=B^a mod P$
服务端已知A B b G P计算共享密钥
$S2=A^b mod p$
- 客户端和服务端共享密钥S
$S=S1=B^a mod P=(G^b) mod p=A^b mod P=S2$
可以知道共享密钥的原理,
DH密钥交换协议
http://example.com/2024/12/23/DH 密钥交换协议/