名词解释
迪菲-赫尔曼密钥交换(英语:Diffie–Hellman key exchange,缩写为DH
) 是一种密钥交换协议(不是加密算法),双方使用DH确定对称密钥后,要使用加密算法实现加密和解密。
前向保密(英语:Forward Secrecy,FS
),指的是如果长期使用的密钥泄漏了,不会导致过去的会话被解密。比如你的一对公钥/私钥泄漏了,过去的会话就可以被解密出来。
DH原理
图示.pngg一般是2或者5,p是一个质数。一般来讲服务端
持有g与p,g与p一般放在xxx.dh文件中
如何生成dh文件
2048代表p是一个2048位的大数,可以指定:
openssl dhparam -5 -out redis.dh 2048
或
openssl dhparam -2 -out redis.dh 2048
密钥交换步骤:
- 服务端生成一个自然数a=6(保密的,不传输),并传输以下三个值给客户端
- A = 56 mod 23 = 8
- g = 5
- p = 23
- 客户端生成一个自然数b=15(保密的,不传输),并传输以下一个值给服务端
- B = 515 mod 23 = 19
- 服务端计算key = Ba mod p
- 196 mod 23 = 2
- 客户端计算key = Ab mod p
- 815 mod 23 = 2
- 双方均获得密钥 key = 2
数学原理
(ga mod p )b mod p 等价于 gab mod p
(gb mod p )a mod p 等价于 gba mod p
所以服务端与客户端计算得到的密钥是相同的。
redis应用DH配置实践
网友评论