常用算法
1、古典加密算法
古典密码(classical cryptography)编码方式归根结底主要就是置换和代换.
置换:已知明文字母集S={a,b},置换后的密码可以是S’={b,a},即将明文字符位置发生变化后形成的密码就是置换密码.
代换:已知明文集S1={a,b,c},S2={1,2,3},将S1中的字符代换为S2中对应位置的字符,那么S1将代换后的密码为S’={1,2,3},即将明文信息替换为另一个字符集中的字符形成的密码称为代换密码.
古典密码因其加密过程过于简单:加密过程本质就是从明文字母表到密文字母表的一一映射,这样很不安全,在实际的应用中基本不使用.
2、DES加密算法
DES加密算法是一个利用64位的密钥对以64位为单位的块数据进行加解密。 对称加密算法是应用最早的加密算法,技术成熟,在进行对称加密的过程中,发送方将明文信息和加密秘钥一起进行加密处理后,将生成的密文信息发送给接收方,接收方收到密文后,使用已知的秘钥对其进行解密,才能得到正确的明文信息.
3、AES加密算法
AES即高级加密标准,是新一代的数据加密标准,是对DES的升级,加密效果更好,破解难度更大,安全性更好. AES是常用的分组(128位)、对称加密算法,采用相同秘钥对明文进行加解密,他的速度比RSA算法要快很多,一般在数据加解密和文件加解密过程中使用。
4、RSA加密算法
RSA是目前最流行的非对称加解密算法之一,也被称为公钥加密算法,即加密秘钥和解密秘钥是不相同的.
使用RSA加密的时候,会产生一对密钥对,公钥和私钥,公钥是大家都可以知道的,私钥是只有信息的发送方和接收方知道的,其他任何第三方都不能知道的,即必须保证私钥的私有性和安全性.通常情况下,当数据在网络中传输时,私钥是不会和数据一起传送,这样就减少了秘钥泄露的可能性.
通常情况下,对于大数据的加密,采用DES或AES进行加密,然后使用RSA对加密秘钥进行加密,数据发送之后,接收方使用RSA解密秘钥对DES或AES的秘钥进行解密,然后用解密出来的秘钥对数据进行解密.
5、哈希加密算法
5.1 MD5加密算法
MD5(message-digest algorithm 5 )算法模型是一个安全的散列算法,输入两个不同的信息一般情况下不会得到相同的输出值,即两个不同的明文信息经过MD5加密之后不会得到相同的密文;反过来,根据密文信息,不能得到原始的明文信息,即MD5加密过程不可逆. 如果要破解MD5加密的密文,目前没有现成的算法,只能通过“撞库”.
MD5加密特点 ①长度固定;②计算简单;③抗修改性;④不可逆性.
5.2 SHA加密算法
SHA1和SHA2,常用的有SHA512、SHA256算法等,其中SHA256与MD5类似,但是安全性更高。
6、其他加密算法
椭圆加密算法;
总结:性能排名:AES、MD5、SHA-256、DES、RSA。具体分析如下:
1、AES:凭借分组整体替换,每次循环处理更多原文数据,即使需要密钥参与运算,还是能和MD5速度处于同一水平线上甚至略胜一点点。
2、MD5:虽然哈希算法里每次是3个32位字的原文与缓存值进行运算,虽然不需要密钥参与运算,但性能并没有与AES拉开差距,主要原因是每次处理的原文没有AES多。
3、SHA-256:和MD5相比,每次处理的字数不变,缓存值更多,算法更复杂,比MD5慢是正常的。
4、DES:由于没有分组处理,仅仅是按位替换,每次循环处理的原文数据少,再加上密钥需要参与运算,比不可逆算法慢是正常的。
5、RSA:基本符合预期,数据量少计算量小,凭借最简洁的运算,耗费时间少,但数据量一大,运算量大,就被拉开明显差距了。
安全
这里先讨论下各算法根据密文得到原文的加密或解密次数。
MD5:该算法不可逆,破解只能靠穷举法,而且原文越大,时间越长些,密文输出128bit,范围是2的128次方,即最长需要穷举原文加密次才能破解。
SHA-256:与MD5类似,破解只能靠穷举法,密文输出256bit,范围是2的256次方,即最长需要穷举原文加密次才能破解。
DES:该算法密钥只有56位有效,有密文后解密速度恒定,需要穷举密钥解密次才能破解。
AES:该算法密钥有128、192、256位,再只有密文的情况下,这三种密钥都得穷举,最长得解密才破解。
RSA:该算法密钥有512、1024、2048位,光穷举密钥就得运行次,再加上该算法加密解密耗时长,破解异常困难。
以上算法安全性是:RSA>SHA-256=>AES>MD5>DES。
运用
MD5:由于速度快,雪崩效应,返回值固定。常用于文件或数据校验。
SHA-256:由于速度比MD5稍慢,雪崩效应,返回值固定,且安全性远大于MD5,也不担心密钥暴露。可用于文件或数据校验,保存密码。
DES:该算法已淘汰,速度慢,安全性差,现在基本没有运用了。
AES:由于速度快,算法可逆,安全性高(不暴露密钥的话),可用于加密传输信息。文章来源:https://www.toymoban.com/news/detail-854189.html
RSA:由于安全性高,算法可逆,有公钥和私钥,但大量数据下加密解密慢,可用于验签、加密传输少量信息。文章来源地址https://www.toymoban.com/news/detail-854189.html
到了这里,关于【大全】常用加解密算性能、安全对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!