对称密钥密码体系
对称密钥密码体系是指消息发送方和消息接收方必须使用相同的密钥,该密钥必须保密。发送方用该密钥对待发消息进行加密,然后将消息传输至接收方,接收方再用相同的密钥对收到的消息进行解密。
优点
计算量小,算法速度快,加密效率高
缺点
密钥容易泄漏。不同的会话需要不同的密钥,管理起来很费劲
常用算法
DES,3DES,IDEA,CR4,CR5,CR6,AES
应用场景
- https的流程,客户端和服务端拥有同一个会话秘钥,这样两者就2可以通过这个秘钥加密会话,进行安全传输。
- 一般用于对效率有要求的实时数据加密通信。
非对称密钥密码体系
非对称密钥密码体系又叫公钥密码体系,它使用两个密钥:一个公共密钥PK和一个私有密钥SK。这两个密钥在数学上是相关的,并且不能由公钥计算出对应的私钥,同样也不能由私钥计算出对应的公钥。
优点
安全,不怕泄漏
缺点
速度慢
常用算法
RSA,ECC,DSA
应用场景
- 数字证书。
- 加解密:比如常见的https中,服务端先给客户端发送一个公钥,客户端通过公钥解密一些信息(比如客户端生成的会话秘钥),发送给服务端,服务端通过自己的私钥解密,达到信息安全传输的目的。
RSA
RSA算法之一种非对称加密算法。具体的加密过程如下:
- 随意选择两个大的质数p和q,p不等于q,计算N = pq。
- 根据欧拉函数,求得r=φ(N)=φ§φ(q)=(p-1)(q-1)。
- 选择一个小于r的整数e,是e与r互质。并求得e关于r的模反元素,命名为d。(求d令ed≡1(mod r))。(模反元素存在,当且仅当e与r互质)
- 将p和q的记录销毁。
至此完成计算,其中(N,e)是公钥,(N,d)是私钥。
在RSA私钥和公钥生成的过程中,共出现过p,q,N,φ(N),e,d,其中(N,e组成公钥),其他的都不是公开的,一旦d泄露,就等于私钥泄露。然而,只有将N质因数分解,才能算出d。也就意味着私钥破译。但是,大整数的质因数分解是非常困难的,因此RSA是比较可靠的。