对称加密+非对称加密+5大安全算法
- 格式:docx
- 大小:114.79 KB
- 文档页数:8
对称加密算法:采用单钥密码的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
常用的单向加密算法:1、DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位(实际用到了56位,第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),其算法主要分为两步:1)初始置换其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位......依此类推,最后一位是原来的第7位。
L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50......D8;R0=D57D49 (7)2)逆置换经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。
此算法是对称加密算法体系中的代表,在计算机网络系统中广泛使用。
2、3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;3DES(即Triple DES)是DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。
是DES的一个更安全的变形。
它以DES为基本模块,通过组合分组方法设计出分组加密算法。
比起最初的DES,3DES更为安全。
该方法使用两个密钥,执行三次DES算法,加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。
3DES加密过程为:C=Ek3(Dk2(Ek1(P)))3DES解密过程为:P=Dk1(EK2(Dk3(C)))采用两个密钥进行三重加密的好处有:①两个密钥合起来有效密钥长度有112bit,可以满足商业应用的需要,若采用总长为168bit的三个密钥,会产生不必要的开销。
②加密时采用加密-解密-加密,而不是加密-加密-加密的形式,这样有效的实现了与现有DES系统的向后兼容问题。
因为当K1=K2时,三重DES的效果就和原来的DES一样,有助于逐渐推广三重DES。
③三重DES具有足够的安全性,还没有关于攻破3DES的报道。
3、AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持128、192、256、512位密钥的加密;4、Blowfish对称加密的算法特征:1、加密方和解密方使用同一个密钥;2、加密解密的速度比较快,适合数据比较长时的使用;3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;优缺点:对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。
其次如果一方的秘钥被泄露,那么加密信息也就不安全了。
另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
简述:优点:算法简单,加密解密容易,效率高,执行快。
缺点:相对来说不算特别安全,只有一把钥匙,密文如果被拦截,且密钥也被劫持,那么,信息很容易被破译。
非对称加密算法:对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
(1)密钥分配简单。
(2)密钥的保存量少。
(3)可以满足互不相识的人之间进行私人谈话时的保密性要求。
(4)可以完成数字签名和数字鉴别。
但在实际应用中,公钥密码体制并没有完全取代私钥密码体制,这是因为公钥密码体制在应用中存在以下几个缺点:(1)公钥密码是对大数进行操作,计算量特别浩大,速度远比不上私钥密码体制。
(2)公钥密码中要将相当一部分密码信息予以公布,势必对系统产生影响。
(3)在公钥密码中,若公钥文件被更改,则公钥被攻破。
简述:优点:安全,即使密文被拦截、公钥被获取,但是无法获取到私钥,也就无法破译密文。
作为接收方,务必要保管好自己的密钥。
缺点:加密算法及其复杂,安全性依赖算法与密钥,而且加密和解密效率很低。
5种加密策略数字摘要数字摘要也称为消息摘要,它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash函数对消息进行计算而产生。
如果消息在传递的途中改变了,接收者通过对收到消息采用相同的Hash重新计算,新产生的摘要与原摘要进行比较,就可知道消息是否被篡改了,因此消息摘要能够验证消息的完整性。
消息摘要采用单向Hash函数将需要计算的内容"摘要"成固定长度的串,这个串亦称为数字指纹。
这个串有固定的长度,且不同的明文摘要成密文,其结果总是不同的(相对的),而同样的明文其摘要必定一致。
这样这串摘要便可成为验证明文是否是"真身"的"指纹"了。
MD5MD5即Message Digest Algorithm 5(信息摘要算法5),是数字摘要算法一种实现,用于确保信息传输完整性和一致性,摘要长度为128位。
MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性,该算法因其普遍、稳定、快速的特点,在产业界得到了极为广泛的使用,目前主流的编程语言普遍都已有MD5算法实现。
MD5 算法底层原理:简单概括起来,MD5 算法的过程分为四步:处理原文,设置初始值,循环加工,拼接结果。
•第一步:处理原文首先,我们计算出原文长度(bit)对512 求余的结果,如果不等于448,就需要填充原文使得原文对512 求余的结果等于448。
填充的方法是第一位填充1,其余位填充0。
填充完后,信息的长度就是512*N+448。
之后,用剩余的位置(512-448=64 位)记录原文的真正长度,把长度的二进制值补在最后。
这样处理后的信息长度就是512*(N+1)。
•第二步:设置初始值MD5 的哈希结果长度为128 位,按每32 位分成一组共4 组。
这4 组结果是由4 个初始值A、B、C、D 经过不断演变得到。
MD5 的官方实现中,A、B、C、D 的初始值如下(16 进制):A=0x01234567B=0x89ABCDEFC=0xFEDCBA98D=0x76543210•第三步:循环加工这一步是最复杂的一步,我们看看下面这张图,此图代表了单次A,B,C,D 值演变的流程。
A,B,C,D 就是哈希值的四个分组。
每一次循环都会让旧的ABCD 产生新的ABCD。
一共进行多少次循环呢?由处理后的原文长度决定。
假设处理后的原文长度是M主循环次数= M / 512每个主循环中包含512 / 32 * 4 = 64次子循环。
上面这张图所表达的就是单次子循环的流程。
下面对图中其他元素一一解释:1.绿色F图中的绿色F,代表非线性函数。
官方MD5 所用到的函数有四种:F(X, Y, Z) =(X&Y) | ((~X) & Z)G(X, Y, Z) =(X&Z) | (Y & (~Z))H(X, Y, Z) =X^Y^ZI(X, Y, Z)=Y^(X|(~Z))在主循环下面64 次子循环中,F、G、H、I 交替使用,第一个16 次使用F,第二个16 次使用G,第三个16 次使用H,第四个16 次使用I。
2.红色“田”字很简单,红色的田字代表相加的意思。
3.MiMi 是第一步处理后的原文。
在第一步中,处理后原文的长度是512 的整数倍。
把原文的每512 位再分成16 等份,命名为M0~M15,每一等份长度32。
在64 次子循环中,每16 次循环,都会交替用到M1~M16 之一。
4.Ki一个常量,在64 次子循环中,每一次用到的常量都是不同的。
5.黄色的<<<S左移S 位,S 的值也是常量。
“流水线”的最后,让计算的结果和B 相加,取代原先的B。
新ABCD 的产生可以归纳为:新A = 原d新B = b+((a+F(b,c,d)+Mj+Ki)<<<s)新C = 原b新D = 原c•第四步:拼接结果把循环加工最终产生的A,B,C,D 四个值拼接在一起,转换成字符串即可。
SHASHA的全称是Secure Hash Algorithm,即安全散列算法。
1993年,安全散列算法(SHA)由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准(FIPS PUB 180)公布,1995年又发布了一个修订版FIPS PUB 180-1,通常称之为SHA-1。
SHA-1是基于MD4算法的,现在已成为公认的最安全的散列算法之一,并被广泛使用。
SHA-1算法生成的摘要信息的长度为160位,由于生成的摘要信息更长,运算的过程更加复杂, 在相同的硬件上,SHA-1的运行速度比MD5更慢,但是也更为安全。
二、对称加密对称加密算法是应用较早的加密算法,技术成熟。
在对称加密算法中,数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,生成复杂的加密密文进行发送,数据接收方收到密文后,若想读取原文,则需要使用加密使用的密钥及相同算法的逆算法对加密的密文进行解密,才能使其恢复成可读明文。
在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥对数据进行加密和解密,这就要求加密和解密方事先都必须知道加密的密钥。
DESDES算法属于对称加密算法,明文按64位进行分组,密钥长64位,但事实上只有56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文和56位的密钥按位替代或交换的方法形成密文。
由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解,因此演变出了3DES算法。
3DES是DES 向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密,是DES的一个更安全的变形。
AESAES的全称是Advanced Encryption Standard,即高级加密标准,该算法由比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,又称Rijndael加密算法, 是美国联邦政府采用的一种对称加密标准,这个标准用来替代原先的DES算法,已经广为全世界所使用,已然成为对称加密算法中最流行的算法之一。