加密算法
公钥私钥体系
现代加密算法的典型组件包括:加解密算法、公钥、私钥。
加密过程中,通过加密算法和公钥,对明文进行加密,获得密文。
解密过程中,通过解密算法和私钥,对密文进行解密,获得明文。
根据公钥和私钥是否相同,算法可以分为对称加密和非对称加密。两种模式适用于不同的需求,恰好形成互补,很多时候也可以组合使用,形成组合机制。
对称加密
顾名思义,公钥和私钥是相同的。
优点是加解密速度快,空间占用小,保密强度高。
缺点是参与多方都需要持有密钥,一旦有人泄露则安全性被破坏;另外如何其它分发密钥也是个问题。
代表算法包括 DES、3DES、AES、IDEA 等。
适用于大量数据的加解密,不能用于签名场景。
非对称加密
顾名思义,公钥和私钥是不同的。
公钥一般是公开的,人人可获取的,私钥一般是个人自己持有,不能被他人获取。
优点是公私钥分开,容易管理,并且容易完成密钥分发。
缺点是加解密速度慢。
代表算法包括:RSA、ElGamal、椭圆曲线系列算法。
一般适用于签名场景或密钥协商,不适于大量数据的加解密。
组合机制
即先用计算复杂度高的非对称加密协商一个临时的对称加密密钥(会话密钥),然后双方再通过对称加密对传递的大量数据进行加解密处理。