两种加密方式
- 对称加密:常用的对称加密算法有 DES 和 AES,对称加密算法可以保证传输数据的安全,并且运算速度较快,但是不能解决密钥配送的问题。
- 非对称加密:常用的非对称加密算法有 RSA,非对称加密算法虽然可以解决密钥配送的问题,但是它的加密速度比较慢,并且无法抵御中间人攻击。
混合密码系统
单独使用对称加密算法或者非对称加密算法都有缺陷,但是将对称加密算法和非对称加密算法结合起来互相取长补短,就得到了一种既不用配送密钥,加密速度又快的密码系统。著名的 SSL/TLS 协议就是这样的加密系统,这样的系统就叫做混合加密系统。
在混合密码系统中,我们用非对称加密来传输对称加密的密钥,使用对称加密密钥加密数据。
加密解密过程
- 接收者生成非对称加密的公钥和私钥,保存私钥、公开公钥。
- 发送者生成对称加密的密钥。
- 发送者使用对称加密密钥加密明文,生成密文。
- 发送者使用公钥加密对称加密的密钥。
- 将加密过后的对称加密密钥和密文合并,组成混合过后的密文。
- 发送给接收者。
- 接收者收到组合过后的密文,根据约定分别得到加密过后的对称加密密钥和密文。
- 接受者使用自己的私钥解密加密过后的对称加密密钥,得到密钥。
- 接受者使用对称加密密钥解密密文,得到明文。