对称加密

加密密钥和解密密钥相同的加密方式。
(或者加密密钥可以从解密密钥推出,解密密钥可以从加密密钥推出)

例如:DES,3DES,RC4,RC5,AES等都是对称加密算法

非对称加密

利用公钥和私钥的机制,发送端利用接收端的公开密钥进行加密,接收端利用只有自己有的私有密钥进行加密。

攻击方在已知加密算法的情况下,即使获取了公钥,也无法推算出私钥。

对比分析

对称加密的速度比较快,非对称加密的速度比较慢。

https的应用

既使用了对称加密,又使用了非对称加密。

https过程

1.客户端:发起URL请求

2.服务器:返回使用的对称加密算法的种类、服务器的公开密钥等信息

3.客户端:浏览器检查CA证书是不是由可以信赖的CA机构颁发的,确认证书的有效性,并验证此证书是归属于此网站的。
如果验证CA证书失败,则客户端进行告警,阻止访问,并询问是否继续进行。

4.客户端:接收到信息后,客户端生成随机的对称密钥,并用公钥进行加密,发送到服务端。

5.服务器:利用自己的私钥进行解密,解密出客户端发送的对应的对称加密算法的密钥,利用密钥解密客户端对称加密的数据。

6.服务器:利用接收到的对称密钥加密数据,再返回给客户端。

分析

非对称加密速度比较慢,可以用来传递对称加密的密钥,少量数据(对称加密的密钥数据)利用非对称加密算法传递,时间开销不会很多,也可以实现身份认证等过程,保证传递的密钥数据不会被其他人所知。

安全的传输对称加密密钥之后,可以保证只有双方知晓密钥,利用对称密钥进行数据的加密和解密,效率很高,因此可以保证https的速度不会比http慢太多。