9. PKI - 三种**交换算法详解(RSA& DHE& ECDHE)及他们在SSL/TLS协议中的应用

**交换算法的介绍稍稍来迟了一些,**交换算法应该在介绍SSH、SSL/TLS协议之前优先介绍。不过
Latter better than nerver !

RSA**交换算法

RSA算法流程文字描述如下:

(1)任意客户端对服务器发起请求,服务器首先发回复自己的公钥到客户端(公钥明文传输)。

(2)客户端使用随机数算法,生成一个**S,使用收到的公钥进行加密,生成C,把C发送到服务器。

(3)服务器收到C,使用公钥对应的私钥进行解密,得到S。

(4)上述交换步骤后,客户端和服务器都得到了S,S为**(预主**)。

9. PKI - 三种**交换算法详解(RSA& DHE& ECDHE)及他们在SSL/TLS协议中的应用
SSL协议中,服务器发送的公钥在SSL中是通过certificate报文发送的,certificate中的包含了公钥。C是通过Client key exchange报文发送的。

DHE**交换算法

DHE算法流程文字描述如下:

(1):客户端计算一个随机值Xa,使用Xa作为指数,即计算Pa = q^Xa mod p,其中q和p是全世界公认的一对值。客户端把Pa发送至服务器,Xa作为自己私钥,仅且自己知道。

(2):服务器和客户端计算流程一样,生成一个随机值Xb,使用Xb作为指数,计算

Pb = q^Xb mod p,将结果Pb发送至客户端,Xb仅自己保存。

(3):客户端收到Pb后计算Sa = Pb ^Xa mod p;服务器收到Pa后计算Sb = Pa^Xb mod p

(4):算法保证了Sa = Sb = S,故**交换成功,S为**(预主**)。

9. PKI - 三种**交换算法详解(RSA& DHE& ECDHE)及他们在SSL/TLS协议中的应用
SSL协议中,上图中DHE参数和Pb都是通过server key exchange发送给客户端,Pa通过client key exchange发送给服务器。server key exchange的结尾处需要使用服务器私钥对该报文本身进行签名,以表明自己拥有私钥(图中为了表明私钥没有参与**计算,没有画出,但不影响理解DHE算法)。

ECDHE**交换算法

ECDHE算法流程文字描述如下:

(1):客户端随机生成随机值Ra,计算Pa(x, y) = Ra * Q(x, y),Q(x, y)为全世界公认的某个椭圆曲线算法的基点。将Pa(x, y)发送至服务器。

(2):服务器随机生成随机值Rb,计算Pb(x,y) = Rb * Q(x, y)。将Pb(x, y)发送至客户端。

(3):客户端计算Sa(x, y) = Ra * Pb(x, y);服务器计算Sb(x, y) = Rb *Pa(x, y)

(4):算法保证了Sa = Sb = S,提取其中的S的x向量作为**(预主**)。

9. PKI - 三种**交换算法详解(RSA& DHE& ECDHE)及他们在SSL/TLS协议中的应用
SSL协议中,上图中椭圆曲线名和Pb通过server key exchange报文发送;Pa通过client key exchange报文发送。

参考

SSL中的RSA、DHE、ECDHE、ECDH流程与区别

相关文章:

  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2022-01-22
  • 2021-06-23
  • 2021-10-20
  • 2021-11-01
  • 2021-07-18
猜你喜欢
  • 2021-10-31
  • 2021-05-08
  • 2021-05-19
  • 2021-11-10
  • 2021-09-07
相关资源
相似解决方案