自学内容网 自学内容网

《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(23):密钥协商算法(续)

《深入浅出HTTPS​​​​​​​​​​》读书笔记(23):密钥协商算法(续)

【DH密钥协商算法】

 Diffie-Hellman算法,简称DH算法。

而DH算法确切地说,实现的是密钥交换或者密钥协商,DH算法在进行密钥协商的时候,通信双方的任何一方无法独自计算出一个会话密钥,通信双方各自保留一部分关键信息,再将另外一部分信息告诉对方,双方有了全部信息才能共同计算出相同的会话密钥。

DH算法处理过程

◎通信双方的任何一方可以生成公共参数p和g,这两个数是公开的

◎客户端连接服务器端,服务器端将参数发送给客户端。

◎客户端根据公开参数生成一个随机数a,这个随机数是私钥,只有客户端知道,且不会进行发送,然后计算Yc = (g ^ a) mod p, Yc就是公钥,需要发送给服务器端。

◎服务器端根据公开参数生成一个随机数b,这个随机数是私钥。计算Ys = (g ^ b) mod p, Ys是公钥,需要发送给客户端。

◎客户端发送Yc数值给服务器端,服务器端计算Z = (Yc ^ b) mod p。

◎服务器端发送Ys数值给发送方,客户端计算Z = (Ys ^ a) mod p。

◎服务器端和客户端生成的Z就是会话密钥,协商完成。

只要私钥不发生泄露,攻击者即使有了Ys和Yc也不会计算出会话密钥。

【DH算法分类】

DH算法分为两种类型,分别是静态DH算法和临时DH算法。

1)静态DH算法(DH算法)

静态DH算法,p和g两个参数永远是固定的,而且服务器的公钥(Ys)也是固定的。静态DH算法的好处就是避免在初始化连接时服务器频繁生成参数p和g,因为该过程是非常消耗CPU运算的

2)临时DH算法(EDH算法)

在每次初始化连接的时候,服务器都会重新生成DH密钥对。


原文地址:https://blog.csdn.net/earthzhang2021/article/details/144802492

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!