加密算法 |
概要介绍 |
算法简要描述 |
优缺点 |
破解方式 |
使用场景 |
安全性 |
DES |
1,对称加密; 2,数据分组(64位)用秘钥(64位,其中56位有效,8位校验)行加密; 3,算法公开,对秘钥保护; |
1,根据用户输入取得一个64位秘钥,然后进行等分、移位、选取和迭代形成一套16个加密秘钥,分别提供每轮运算使用; 2,对64位明文分组M进行操作,M经过初期置换IP,置换为m0,将m0分为左右各32位长,并进行16轮相同的运算(迭代),每轮运算都和相应的秘钥结合; 3,在每一轮中,密码位移位,从秘钥的56位中选出48位,通过一个扩展置换将数据右半边扩展成48位,并通过异或操作替代成新的48位,压缩至32位,并通过一个异或与左半边结合,其结果为右半边,原来的右半边称为左半边,该操作执行16次; 4,经过16轮迭代,左右部分合在一起进行一个末置换(数据整理),完成加密过程; 5,解密算法适用同样此算法。 |
优点: 算法公开、计算量小、加密速度快、效率高; 缺点: 1,如果双方都持有秘钥,安全无法保证; 2,秘钥安全保护成本高,管理困难; |
暴力破解、穷举 |
普通数据加密 |
低 |
3DES(DESede) |
1,三重des加密算法; 2,每个数据块用三次des加密; 3,是des想aes过渡的加密算法; 3,对称加密; |
加密过程:C=Ek3(Dk2(Ek1(P))) 解密过程:P=Dk1(Ek2(Dk3(C))) |
同上 |
难度大 |
同上 |
较高 |
AES |
1,对称加密; 2,基于排列置换; 3,软硬件实现; 4,分组密码体制; 5,取代原来的DES; |
1,对数据进行128位(16字节)进行分组加密,每次对一组数据加密需要多轮; 2,输入秘钥长度为:128、192、256,如果不够则补齐; 3,加密基本流程: 1),生成各轮的扩展秘钥,存在key数组中,包含用户输入秘钥和扩展秘钥; 2),待加密数组与第一组秘钥异或; 3),最后一轮前的变换操作: SubBytes(state) 对数据进行S字节变换 ShiftRows(state) 进行行变换 MixColumns(state) 进行列混合变换 AddRoundKey(state, Keys[ 当前轮密钥组] ) 与当前轮的密钥进行异或 4),最后一轮变换操作 invShiftRows(state) 进行反行变换 invSubBytes(state) 对数据进行反S字节变换 AddRoundKey(state, Keys[ 第一组] ) 与第一组密钥进行异或 4,解密流程: 与加密相反 5,分组模式 1),ECB 优点:简单、并行计算、误差不会传递; 缺点:不能隐藏明文模式、可能对明文主动攻击; 2),CBC(密码分组链接) 优点:不容易主动攻击,安全性好于ECB,适合传输较长报文,是SSL,IPSec的标准; 缺点:不利于并行计算、误差传递、需要初始化向量; 3),CFB(密码反馈模式) 优点:隐藏明文模式、分组密码转化为流模式、可以及时加密传送小分组的数据; 缺点:不利于并行计算、误差传递、唯一的IV; 4),OFB 优点:隐藏明文、分组密码转化流模式、可以及时加密传送小分组的数据 缺点:不利于并行计算、最明文产生主动攻击、误差传递; 5),CTR(技术模式) 优点:并行计算、简化仅要求实现加密算法而无需解密算法、无填充可高效作为流程加密 4,常用填充方式 NoPadding-不填充 ZerosPadding-0填充 PKCS5Padding-每个填充都记录了填充的总数 |
优点: 1,分组模式选择多,加密安全; 缺点: 1,同DES类似,密码管理都是问题; |
暴漏过线性密码攻击、查封密码攻击,难度大 |
同上 |
较高 |
BASE64 |
1,64个可打印字符来表示二进制数据的表示方法; 2,算法简单; |
1,64个字符标示:A-Z、a-z、0-9、+/; 2,BASE64的单元为6bit,也即是3个字节=4个此单元; 3,源数据依次去除3个字节并进行计算并参照64个字符输出直至完成。 |
优点:简单; 缺点:不适合做复杂加密 |
简单 |
1,二进制转换为字符; 2,http协议中方便把二进制数据转换完放到URL或隐藏域中 |
低 |
MD5 |
1,信息摘要算法; 2,压缩性:任意长度的数据,算出固定长度; 2,容易计算:从原数据计算md5很容易; 3,抗修改性:对原数据修改1个字节,md5值变化都很大; 4,强碰撞性,找一个具有相同md5值得数据(伪造)比较困难; 5,不可逆; |
1,按照512位分组处理,每一个分组分为16个32位子分组,处理后输出4个32位分组组成,将这4个分组级联后生成128位散列值,详细算法省略; 2,算法改进 MD5加密后值有16位和32位之分,分别为: MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d)) 32位 MD5=LCase(WordToHex(b) & WordToHex(c)) 16位 |
优点:简单、伪造难 缺点:潜在的冲突 |
有破解的案例 |
1,登录密码保护; 2,文件防止篡改; 3,HTTP传输内容加密防篡改; 4,数字签名; |
较高 |
RSA |
1,非对称加密; 2,密钥长度决定了其复杂度; 3,简单原理:公钥加密私钥解密,私钥做签名公钥公钥解密验证; |
1,随意选择两个大的质数p和q,p不等于q,计算N=pq; 2, 根据欧拉函数,求得r = (p-1)(q-1) ; 3,选择一个小于 r 的整数 e,求得 e 关于模 r 的模反元素,命名为d。(模反元素存在,当且仅当e与r互质) 4,将 p 和 q 的记录销毁。 (N,e)是公钥,(N,d)是私钥 |
优点:原理简单; 缺点:产生密钥麻烦,受到素数产生技术的限制,因此难做到一次一密; 分组长度太大,不利于数据格式标准化; |
难度大 |
1,数字签名; 2,公钥加密; 3,防止数据篡改; 4,通讯领域较多; |
高 |
SHA1 |
1,消息摘要算法; 2,签名算法、数据完整性; 3,算法不可逆; 4,消息算法:512 补位; 5,sha256,sha384,sha512 |
把原始信息变换成位(二进制)字符串,5个步骤计算: 1),补位:消息满足长度在对512取模后余数是448,否则补位; 2),补长度:原始数据长度补到补位操作的后面,若果大于512,补成512倍数; 3),使用常量; 4),相关的函数; 5),计算消息摘要; 对于SHA256,SHA384,SHA512。用相似的办法来计算消息摘要。对消息进行补位的算法完全是一样的。 |
优点:保密性强 缺点:效率相比低 |
难度大 |
1,数字签名; 2,数据完整性; |
高 |
常用加密算法概述、比较及使用场景说明
版权声明:本文为博主原创文章,转载需注明出处。 https://blog.csdn.net/david_pfw/article/details/82918698
猜你喜欢
转载自blog.csdn.net/david_pfw/article/details/82918698
今日推荐
周排行