根据密钥类型不同将现代密码技术分为两类: 对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。
对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的隐秘。 非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。
对称加密算法:
- DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
- 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高
- AES(Advanced EncryptionStandard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高
非对称算法:
- RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。
- DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准)
- ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
散列算法:
- MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法。
- SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值。
著名的密码学算法库还有 OpenSSL 。OpenSSL 为网络通信提供安全及数据完整性的一种安全协议 ,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及 SSL 协议,并提供了丰富的应用程序供测试或其它目的使用。通过比较 Crypto++ 和 Openssl,我们可以发现 Crypto++ 支持的算法比 Openssl 多。