- 加密算法的种类
主要包含:单项加密、对称性加密、非对称加密
-
- 单项加密
单向加密又称为不可逆加密算法,在加密过程中不使用密钥,明文由系统加密处理成密文,密文无法解密。一般适合于验证,在验证过程中,重新输入明文,并经过同样的加密算法处理,得到相同的密文并被系统重新认证。广泛使用于口令加密。
主要的加密方式:base64、md5、sha1
base64 严格来说并不是一种加密算法,而是一种编码/解码的实现方式.(因为Base64算法的计算方式和码表都是公开的,比较容易被破解)
MD5被广泛用于各种软件的密码认证和钥匙识别上。。
-
- 对称加密
采用单钥的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
主流的加密方式:AES、DES、3DES
DES是一种分组数据加密技术(先将数据分成固定长度的小数据块,之后进行加密),速度较快,适用于大量数据加密,而3DES是一种基于DES的加密算法,使用3个不同密匙对同一个分组数据块进行3次加密,如此以使得密文强度更高。
AES相较于DES和3DES算法而言,有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密标准。
优点:算法公开、计算量小、加密速度快、加密效率高。
缺点:是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
-
- 非对称加密
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
主流的加密方式:RSA、DSA
RSA 加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个能同时用于加密和数宇签名的算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多
优点:由于公钥是公开的,而私钥则由用户自己保存,所以对于非对称密钥,其保密管理相对比较简单
缺点:因为复杂的加密算法,使的非对称密钥加密速度慢,成本高,同时不能用于大数据量加密
- 加密算法的选择
由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。过程如下:
明文+对称密钥=对称加密后的明文
对称密钥+非对称公钥=非对称加密后的对称密钥
非对称私钥+非对称加密后的对称密钥=对称密钥
对称密钥+对称加密后的明文=明文
注意:对称密钥是一次性的,每次操作都会生成新的对称密钥对明文进行加密