加密算法
对称密钥算法
对称密钥算法(Symmetric-key algorithm)也称对称加密、私钥加密、共享密钥加密。这类算法在加密和解密时使用相同的密钥,或者是使用两个可以简单地相互推算的密钥。
常见算法
优点
- 效率高,速度比非对称加密快很多
- 算法简单
- 系统开销小
- 适合加密大量数据
缺点
- 安全性差,需要双方获取相同的密钥
公开密钥密码学
公开密钥密码学(Public-key cryptography)也称非对称式密码学(Asymmetric cryptography)或非对称加密。该类算法使用两个密钥,一个是公开密钥(可以公开),一个是私有密钥(不能公开,用户必须自行严格秘密保管,绝不透过任何途径向任何人提供,也不会透露给被信任的要通信的另一方);公钥用作加密,私钥用作解密。使用公钥加密的数据只有对应的私钥才能解密。
基于这种特性,该类算法还能提供数字签名的功能。
常见算法
- RSA:两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。(应用场景: 由于 RSA 算法的加密解密速度要比对称算法速度慢很多,在实际应用中,通常数据本身的加密和解密使用对称加密算法(AES)。 用 RSA 算法加密并传输对称算法所需的密钥。)
- DSA:数字签名算法,仅能用于签名,不能用于加解密
优点
- 安全性高
缺点
- 速度慢
- 系统开销大