浅析DES、AES、RSA、MD5加密算法及其应用场景
对称加密算法
DES 算法:一种典型的块加密方法,将固定长度的明文通过一系列复杂的操作变成同样长度的密文,块的长度为64位。同时,DES 使用的密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。 DES 的密钥表面上是64位的,实际有效密钥长度为56位,其余8位可以用于奇偶校验。
DES 现在已经不被视为一种安全的加密算法,主要原因是它使用的56位密钥过短。为了提供实用所需的安全性,可以使用 DES 的派生算法 3DES 来进行加密
AES 算法:在密码学中又称 Rijndael 加密法,用来替代原先的 DES,已经被多方分析且广泛使用。
非对称加密算法
RSA算法:1977年由 MIT 的 Ron Rivest、Adi Shamir 和 Leonard Adleman 一起提出,以他们三人姓氏开头字母命名,是一种获得广泛使用的非对称加密算法。对极大整数做因数分解的难度决定了 RSA 算法的可靠性。换言之,对一个极大整数做因数分解愈困难,RSA 算法就愈可靠。假如有人找到一种快速因数分解的算法的话,那么用 RSA 加密的信息的可靠性就肯定会极度下降。目前看来找到这样的算法的可能性非常小。
散列算法
在信息安全领域,将源数据经过散列算法计算出数据指纹,用于识别经过传播途径得到的数据是否有误 ,以保证数据的来源真实性。
MD5算法:MD5 即 Message‐Digest Algorithm 5 ,是计算机广泛使用的散列算法之一,经常用于确保信息传输的完整性和一致性 。MD5 输入不定长度信息,经过程序流程,生成四个32位数据,最后联合起来输出固定128bit长度的信息摘要。计算的基本过程为:求余、取余、调整长度、与链接变量进行循环运算、得出结果。MD5 的前身有 MD2、MD3 和 MD4。
应用场景
DES/AES加密速度快,适合大量数据,处理数据后可复原。
RSA用于保密性时,就是公钥加密,私钥解密。 因为公钥是可以公开了, 那么任何人都可以使用公钥对信息进行加密,但是只有持有私钥的人才能正确解密。这样就保证了信息的保密性,因为只有私钥持有者才能正确解密。
RSA用于认证性时,比如数字签名,即私钥持有者对信息进行签名,验证者可以根据公开的公钥进行验证签名是否正确和有效,即实现了认证性,以及不可抵赖性。
MD5用于完整性,确保信息在传输过程保持一致性;用于密码加密,数据库中不存储密码明文,而是存储其散列值,校验时比较散列值是否相同
组合使用
采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,使用散列函数进行数据摘要。