此问题与SSL / TLS协议中使用的会话发送和接收密钥有关。我的理解是,此密钥使用对称加密(DES,AES,BlowFish等)。我想知道,在密钥交换安全性方面,公私密钥对是否优于对称密钥,为什么不对会话使用非对称加密?密钥也是吗?

这是对现有问题的扩展:PKI的安全性,证书,证书颁发机构,前向保密性

#1 楼

3个原因(现在):



非对称加密比对称加密更慢,更慢。数量级较慢。
由于密钥长度相同,所以不对称比对称逐位弱得多。因此,您需要更大的密钥才能提供等效的保护。这也导致了1..br中提到的缓慢。(根据@ThomasPornin的评论:)非对称加密会增加输出大小。例如,如果使用RSA,则加密数据比明文至少大10%。另一方面,即使加密千兆字节的数据,对称加密也具有固定大小的开销。


评论


另一个重要的一点是,非对称加密意味着数据长度的增加。例如,如果使用RSA,则加密数据比明文至少大10%。另一方面,即使加密千兆字节的数据,对称加密也具有固定大小的开销。

–托马斯·波宁(Thomas Pornin)
2011年5月8日12:06

B.Schneier认为,非对称加密的速度要慢1000倍左右。 math.uchicago.edu/~mann/encryption.pdf

–ling
2014年11月27日在8:52

@ThomasPornin,那不是第一点的一部分吗?

–起搏器
15年3月28日在21:04

@AviD,所以您的三点意思是:1)慢,2)慢,3)慢

–起搏器
15年3月28日在21:06

@Pacerier嘿,不,我会说更多1)开销,2)不够强大和3)开销:-)

–AVID♦
15年3月29日在7:45

#2 楼

非对称加密算法的效率远低于对称算法。因此,基本上所有通过非对称密钥进行加密的使用都涉及对对称会话密钥进行加密,并以此对实际消息进行加密。

除了AviD关于密钥长度的有用注释之外,请注意,如果量子计算攻击变得可行,它们将使所有主流的公钥算法(以及SSL / TLS)失效。但是即使受到量子计算机的攻击,直接的AES-256仍然可以保持强大的性能。请参阅
密钥大小-量子计算攻击的影响-维基百科。然后问题就回到了如何交换那些密钥并建立对它们的信任。

评论


大声笑,虽然这是真的,但量子计算总是让我发笑...虽然我当然意识到这可能只是时间问题...

–AVID♦
2011年5月8日在7:20

Shor的算法听起来非常出色!维基百科文章上的最佳报价:解释Shor算法的另一种方法是注意到它只是变相的量子相位估计算法……当然! :-)

–Rory Alsop♦
2011年5月10日晚上8:23

读了大约17个月后,我今天早上刚读到,在澳大利亚新南鲸鱼大学,量子计算机的生产取得了重大突破。据说,关键组件已经使用半导体行业使用的现有开发方法成功设计了

–fkl
2012年9月30日19:51



@fayyazkl,哦,天哪,三年后现在进展如何?

–起搏器
15年3月28日在21:07

@Pacerier好点。我并不是说,如果量子计算破坏了公钥加密技术,那么当前的SSL / TLS设计就可以使用。我编辑了答案。

–nealmcb
15年3月29日在16:30

#3 楼

这是一种标准方法,称为混合密码系统。对称密码学和非对称密码学各有优缺点。特别是:


非对称加密技术允许任何人加密只有一个参与者才能解密的消息,并允许任何人验证只有一个参与者可以签名的消息。
对称密码比非对称密码快得多。确实很多。

在对称和非对称密码之间进行选择时,安全性并不是真正的问题。非对称密码学解决了对称密码学无法解决的问题;对于其他所有事物,都使用对称密码,因为它的速度要快得多。

(由于速度更快,对称密码的确具有更高的安全裕度:通用密钥大小— 128位AES —足够大,除非有全新的数学突破,否则只要宇宙存在,地球上目前存在的所有计算机都将只有很小的机会破解加密技术,由于性能不佳,非对称密码技术的利润空间较小并且破解方法有时会有数学上的改进,使常用的密钥大小可以使用几年,但不一定可以使用几十年。但这是与功能/性能替代方法相比的次要问题。)

混合密码系统仅在需要的地方使用非对称密码技术来解决难题:


要验证消息的签名,请对该消息进行哈希处理,并使用非对称密码技术进行验证。仅用于哈希,不能直接用于可变长度消息。
要加密某些数据,将生成对称的会话密钥。非对称密码用于在参与者(客户端和服务器)之间共享此对称密钥。使用此对称密钥对“真实”数据进行加密和身份验证。

在HTTPS(通常在网络上使用)中,服务器具有公钥,但客户端没有-任何浏览器都可以与服务器联系,服务器不在乎客户端是谁。 (在有意义的地方使用客户端证书。)HTTPS会话建立的非常高级且不完整的视图是:服务器将其证书发送给客户端。证书包含服务器的公共密钥,以及证书颁发机构对该公共密钥的签名。客户端验证证书颁发机构是已知的(浏览器附带证书颁发机构的公钥列表)。
客户端和服务器安排选择对称密钥,这样攻击者就不会仅通过检查流量甚至通过修改流量即可重构密钥(或至少将检测到活动的攻击者,然后客户端或服务器将中止会话)。 Diffie-Hellman密钥交换加上服务器的签名(以使客户端验证该交换是通过服务器而不是中间人攻击者进行的)是生成对称密钥的一种可能性。也可以仅依靠服务器的私钥(以不确保向前保密为代价)。
所有后续通信都使用该对称密钥。

请注意,我做了很多简化以上。有关更多详细信息,请阅读:


SSL / TLS如何工作?
观察建立的HTTPS连接的人们怎么可能不知道如何解密它?