ECDHE算法加密的TLS

DH算法

非对称加密算法,核心思想离散对数

对数是指数的逆运算,再加上模运算之后,在知道模的情况下,可以通过指数和底数算出真数,而很难通过真数和底数反推指数

DH的密钥交换:

先确定底数和模数,这是公开的双方都知晓的

双方再各自生成一个随机数作为私钥,记为a和b

双方使用底数和模数,以私钥作为指数计算出真数作为公钥A和B

此时双方就可以交换公钥了,即便外人知道公钥也没法推出私钥

此时A拥有了P G a A B ,B拥有了P G b A B

由于对数幂运算有交换率,因此 B ^ a ( mod P )的结果和 A ^ b ( mod P )的结果相同,双方就计算得到了对称密钥K

DHE算法

e的意思是ephemeral(临时性的),双方每次计算都随机生成私钥,避免固定的私钥泄露,就具备了向前安全性

ECDHE算法

有抢跑的特征

第一次握手

clienthello,包含客户端随机数c,版本号和支持的密码套件列表

第二次握手

serverhello,包含服务器随机数s,版本号和选择的密码套件列表,这里使用ECDHE算法

Certificate,数字证书

Server Key Exchange,选择了x25519的椭圆曲线,生成随机数作为私钥,根据椭圆曲线基点G和私钥计算出服务器椭圆曲线公钥发送给客户端

server hello done

目前客户端和服务端通过明文共享了这几个信息:Client Random、Server Random 、使用的椭圆曲线、椭圆曲线基点 G、服务端椭圆曲线的公钥

第三次握手

Client Key Exchange,客户端也生成一个随机数作为私钥,通过椭圆曲线信息生成一个客户端椭圆曲线公钥,发送

根据椭圆曲线和公私钥,双方能够计算出一个点(x,y),其中x是相同的,再通过客户端随机数+服务端随机数+x得到一个真正的会话密钥

计算好之后客户端发送Change Cipher SpecEncrypted Handshake Message

第四次握手

服务端也会有一个同样的操作,发Change Cipher SpecEncrypted Handshake Message

posted on 2025-07-31 16:07  chycal  阅读(54)  评论(0)    收藏  举报