常见加密算法介绍
常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。
1.对称加密
指加密和解密使用相同密钥的加密算法,这种加密方法称为对称加密,也称为单密钥加密。
优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。
缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥,如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为重大负担。
常见的对称加密算法:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
其中RC4(Rivest Cipher 4):算法简单,运行速度快,且密钥长度可变,安全性不高。
DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。
2.非对称加密
指加密和解密使用不同密钥的加密算法,也称为公私钥加密。
优点:如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。
缺点:加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比非对称加密慢上1000倍。
常见的非对称加密算法:RSA、ECC、El Gamal、DSA和Diffie-Hellman
其中RSA:是目前最有影响力的公钥加密算法,支持变长密钥,处理速度较慢。
DSA(Digital Signature Algorithm):数字签名算法,是一种标准的数字签名标准。
ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学,抗攻击性强,处理速度快,带宽要求低,ECC 被广泛认为是在给定密钥长度的情况下,最强大的非对称算法。
3.Hash算法
Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
4.加密算法选择
由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。
对称加密算法不能实现签名,因此签名只能非对称算法。
由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,可以考虑采用非对称加密算法。
在实际的操作过程中,通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。