这个问题涉及 SSL/TLS 协议中使用的会话发送和接收密钥。我的理解是这个密钥使用对称加密(DES、AES、BlowFish 等)我想知道,如果公钥-私钥对在密钥交换安全性方面优于对称密钥,为什么不对会话使用非对称加密钥匙也是?
这是现有问题的扩展:PKI 的安全性、证书、证书颁发机构、前向保密
这个问题涉及 SSL/TLS 协议中使用的会话发送和接收密钥。我的理解是这个密钥使用对称加密(DES、AES、BlowFish 等)我想知道,如果公钥-私钥对在密钥交换安全性方面优于对称密钥,为什么不对会话使用非对称加密钥匙也是?
这是现有问题的扩展:PKI 的安全性、证书、证书颁发机构、前向保密
3个原因(现在):
非对称加密算法的效率远低于对称算法。因此,基本上所有通过非对称密钥加密的使用都涉及加密对称会话密钥,实际消息是用它加密的。
除了 AviD 关于密钥长度的有用说明外,请注意,如果量子计算攻击变得可行,它们将使所有主流公钥算法(以及 SSL/TLS)失效。但即使受到量子计算机攻击,直接的 AES-256 仍将保持强大。请参阅 密钥大小 - 量子计算攻击的影响 - 维基百科。然后问题将回到如何交换这些密钥并建立对它们的信任。
这是一种标准方法,称为混合密码系统。对称密码学和非对称密码学各有优缺点。特别是:
在对称和非对称密码学之间进行选择时,安全性并不是真正需要考虑的问题。非对称密码学解决了对称密码学无法解决的问题;对于其他一切,使用对称加密,因为它要快得多。
(由于速度更快,对称密码学确实往往具有更高的安全裕度:通用密钥大小——128 位 AES——足够大,除非有一个全新的数学突破,否则地球上目前存在的所有计算机都可以工作很长时间因为宇宙已经存在,所以破解加密的机会很小。非对称密码学由于其性能不佳而运行在较小的边际上,并且在破解方法上偶尔会有数学改进,使常用的密钥大小可以使用几年但不一定几十年。但与功能/性能替代方案相比,这是次要问题。)
混合密码系统通过仅在需要的地方使用非对称密码来解决这个难题:
在 Web 上常用的 HTTPS 中,服务器有一个公钥,但客户端没有——任何浏览器都可以联系服务器,服务器不关心客户端是谁。(在有意义的地方使用客户端证书。)HTTPS 会话建立的一个非常高级且不完整的视图是:
请注意,我在上面做了很多简化。有关更多详细信息,请阅读: