SSL为什么不直接用公钥加密数据?

当网站安装SSL证书后,建立连接的过程会发生改变,安全性大幅提高,其原理就是利用非对称加密传输会话密钥,再通过会话密钥加密客户端与服务器之间传输的数据。

问题来了,为什么不直接使用公钥加密数据,而是先用公钥加密会话密钥,再通过会话密钥加密数据呢?岂不是画蛇添足,多此一举。

我们先来看看网站安装SSL证书后,客户端与服务器建立连接的过程。

图片

1.客户端提交https请求

2.服务器响应请求,把证书公钥发给客户端

3.客户端验证证书公钥的有效性

4.验证通过后,生成一个会话密钥

5.使用SSL证书的公钥,加密该会话密钥,并发送给服务器

6.服务器收到加密数据后,使用私钥解密,得到会话密钥

7.客户端与服务器利用该会话密钥,加密要传输的数据,进行通信

当客户端成功验证了SSL证书公钥的有效性后,便可以直接通过该公钥加密数据,与服务器传输数据,为什么还需要多出很多步骤出来呢?

其实这主要是为了解决速率太慢的问题。

RSA公钥算法的签名算法、验证算法耗时以及每秒所能完成的计算量如下图:

我们以RSA 2048为例,普通电脑完成一次签名操作需要4.097毫秒,也就是说一秒钟可以完成的加密了为244.1*2048=499916.8bit/second=499.917kbps。

如此慢的速率,用户肯定无法接受。

非对称加密虽然安全性很高,但速率太

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值