简述HTTPS(二):混合加密机制

一、对称加密

加密和解密同用一个密钥的方式就叫对称加密,也称为共享密钥加密
例如:A和B是进行通信的双方
假设A手握一把密钥 key1,那么A需要克隆一把相同的密钥 key1'
在第一次通信中,A将报文连同 key1'一起发送给B
此后:A和B则分别使用 key1、key1' 分别对接收/发送的报文进行解密/加密

对称密钥加密的优点在于:
加密算法公开、计算量小、加密速度快
缺点在于:
1、转发密钥的通信若被监听,则密钥可能落入攻击者之手
2、通信双方需要使用其他人不知道的密钥,这会使得双方持有的钥匙数量巨大,难以管理和维护

二、非对称加密

通信双方使用一把私有密钥和一把公开密钥,也称为公开密钥加密

顾名思义:任何人都可以获得公开密钥,但私有密钥不能让其他人知道

例如:B希望自己发送给A的报文被加密
假设A手握公钥 key2 和私钥 key2'
首先,A将报文主体连同 key2 一起发送给B
此后,B向A发送的报文都将使用 key2 加密
而被 key2 上锁的报文 只有A手上的 key2' 才能解密

同理:当A想要回复B时,正好相反
此时A就使用B的公钥对数据进行加密
而B就用自己的私钥进行解密

非对称加密很好地解决了对称加密的问题:
它消除了通信双方交换密钥的需要,进一步保证了通信的安全性
然而,非对称加密的加密解密速度非常慢,算法复杂
HTTPS采用的混合加密机制 则充分利用了两者的优势

三、混合加密机制

在交换密钥的环节使用非对称加密,之后的通信则使用对称加密
例如:A手握一对非对称密钥(公钥key3、私钥key3'),B手握一对对称密钥(key4、key4')

阶段1:交换密钥-使用非对称加密

1、A将公钥 key3 发送给B
2、B将下一阶段加密/解密用的 key4' 放在报文中,并使用公钥 key3 对报文进行加密
3、A使用私钥 key3' 解密报文,得到 key4'

阶段2:数据通信-使用对称加密

A和B分别使用 key4' 和 key4对接收/发送的报文进行解密/加密


一方面,第一阶段的非对称加密 保证了对称密钥的安全性
另一方面,第二阶段的对称加密 可以提高加密/解密处理的速度,提高数据传输的效率


然而,这种混合加密机制还是存在一些问题
那就是:无法证明第一阶段派发的公钥 是货真价实的公钥
解决方式:请看 简述HTTPS(三):数字证书

原文地址:https://www.cnblogs.com/baebae996/p/13789552.html