第03章 数据完整性机制_第1页
第03章 数据完整性机制_第2页
第03章 数据完整性机制_第3页
第03章 数据完整性机制_第4页
第03章 数据完整性机制_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章数据完整性机制主要内容3.1网络安全中数据完整性概述3.2数据完整性机制的评价标准3.3网络安全中数据完整性验证机制与评价3.4MD5消息摘要计算算法与评价3.5MD5算法在数据安全方面的应用实例3.1网络安全中数据完整性概述数据完整性验证:验证收到的数据是否与原来数据之间保持完全一致的证明手段称为数据完整性验证。数据的完整性验证是用来抗击主动攻击的篡改等行为。数据完整性数据完整性数据完整性是防止非法实体对交换数据的修改、插入、替换和删除,或者如果被修改、插入、替换和删除时可以被检测出来。数据完整性可以通过消息认证模式来保证。基本思路增加信息验证码对数据完整性进行验证(1)发送方根据要发送的原信息M0,利用验证码函数产生与M0密切相关的信息验证码C0;(2)发送方把原始信息M0和信息验证码C0合在一起,并通过网络发送给接收方;基本思路(3)接收方对所收到的原信息和验证码进行分离,假设分别为M1和C1,因为这两个信息可能已被被篡改;(4)接收方使用与原始信息相同的信息验证码函数(双方事先约定好的)对收到的信息部分M1计算其自己的信息验证码C2;基本思路(5)接收方将自己计算的接收方信息验证码C2同分离出来的信息验证码C1进行对比,如果相等,接收方断定收到的信息M1与用户发送的信息M0是相同的,如果不相等,则接收方知道原始信息已经被篡改过。基本思路模型图3.2数据完整性机制的评价标准完整性验证的安全性验证码的主要功能:实现数据完整性的验证安全达到防伪造、防篡改目的。碰撞性:对于两个不同的消息m1和m2,如果它们的验证码值相同,则就发生了碰撞完整性验证的安全性验证码函数要求满足的条件抗弱碰撞性:对于给定的消息m1和其验证码H(m1),找到满足m2≠m1,且H(m2)=H(m1)的m2在计算上不可行抗强碰撞性:找到任何满足H(m1)=H(m2)且m2≠m1的消息对(m1,m2)在计算上是不可行的完整性验证的安全性在数据完整性的验证中可能受到的攻击有:对截获的部分消息进行了增删改;攻击者不能分离信息和验证码,直接用自己的信息整体替换所有的发送信息;攻击者可以分析信息和验证码,用自己的信息只替换信息部分,但无法替换验证码攻击者不仅用自己的信息替换信息部分,同时重新计算验证码并替换之。完整性验证中加密的安全数据完整性验证的一些机制需要对其中的内容进行加密,如对验证码的加密等,因此密钥的分发,密钥空间的大小,加密算法的选取直接影响完整性验证的性能和安全性。完整性验证算法的性能数据完整性验证包括发送方计算验证码,加密,接收方重新计算验证码,解密,验证码比较等。影响性能的主要因素是计算验证码和加解密,实际情况时要对完整性验证的安全性和性能进行折中考虑。数据完整性验证的信息有效率数据完整性验证的有效率是指原信息部分长度与合并后总信息(包括原消息和验证码)的长度之比。过长:增加额外的网络通信量过短:影响完整性验证的准确率和安全性3.3网络安全中数据完整性验证机制与评价3.3.1基于数据校验的完整性验证机制与评价在计算机网络原理中的循环冗余校验的检错技术,目的就是防止计算机网络中传输的数据帧出现错误,导致发送的数据帧与接收的数据帧不一致网络安全中的数据完整性验证机制与计算机网络原理中的检错技术类似。参照CRC冗余码基于数据校验的完整性验证机制步骤1:A计算数据M0的冗余码N0;步骤2:A将M0和N0合在一起,通过网络发送给B;步骤3:B收到合并的信息后,将二者分开,设为M1和N1;基于数据校验的完整性验证机制步骤4:B用与原始信息相同的循环冗余方法重新计算信息M1的冗余码N2;步骤5:B将计算的冗余码N2同分离的冗余码N1进行对比,如果相等,B断定信息是完整的,如果不相等,则B断定信息是不完整的。基于数据校验的完整性验证机制机制评价优点:该机制可以对网络系统造成的数据不一致进行验证,特别是在实现对数据链路层每个帧的数据差错检验中取得了很好的效果。数据校验和完整性验证的区别?数据校验和完整性验证的区别数据校验是为了检查出因为网络自身的原因导致的数据不一致,是由网络系统随机产生的数据完整性验证是为了检查出可能的恶意主动攻击者造成的数据不一致,后者会处心积虑地避开完整性验证的校验。缺点与改进CRC冗余码长度短计算方法需改进,使得信息的每一位都与冗余码密切相关目前常见得新的计算冗余码的方法:MD5、SHA-1,冗余码更名为消息摘要,长度分别为128、160位3.3.2基于消息摘要的完整性验证机制消息摘要也称为消息的指纹消息摘要一般通过摘要函数H生成,摘要函数是单向函数,不是一种加密,使用摘要函数从消息生成摘要很容易,但是通过摘要来还原消息却很难。哈希函数是常用算法,也称为杂凑函数、散列函数、hash函数等基于消息摘要的完整性验证机制常用算法:MD4、MD5、SHA-1消息摘要使用散列函数把一段任意长度的消息M映射到一个短的固定长的数据MD雪崩效应:消息摘要的每一位与原消息的每一位都关联。实现机制步骤1:A根据要发送的消息M0,利用MD5、SHA-1等哈希函数H(双方事先商定好的)产生消息摘要MD0;步骤2:A通过网络将M0和MD0一起发送到B实现机制步骤3:B收到的信息设为M1,摘要设为MD1,B重新用A使用的产生摘要的函数H计算消息摘要,设为MD2步骤4:B比较MD2和MD1是否相同,如果相等,B断定数据是完整的,如果不相等,则B断定数据遭到篡改。评价优点:双方不需要共享密钥;消息摘要与信息密切关联,若验证成功,接收者确信信息未被更改过;信息的有效率高。消息摘要算法通常产生长度为128位或160位的消息摘要,即任何两个消息摘要相同的概率分别为2128或2160分之一,显然,这在实际上冲突的可能性极小。评价如果攻击者同时修改信息及其摘要,接收者就无法判断其完整性将摘要与加密结合如何解决?消息摘要举例摘要类似于纵向冗余校验(LRC,LongitudinalRedundancyCheck)和循环冗余校验(CRC,CyclicRedundancyCheck)

消息摘要下图显示了发送方的LRC计算。LRC将位块组成列表(行),例如,如果要发送32位,则把其排成四行,然后计算每个列(共8列)有多少个1位如果1位为奇数,则称为奇性,在阴影LRC行中用一个1位表示;相反,如果1位为偶数,则称为偶性,在阴影LRC行中用一个0位表示)。消息摘要例子消息摘要举例每列计算奇偶位,生成一个新行,共八个奇偶位,成为整个块的奇偶位。这样,LRC实际上是原消息的消息摘要。

计算结束后将数据和LRC发送给接收方。接收方把数据和LRC分开,对数据块重新执行LRC运算,然后将得到的LRC值与从发送方收到的LRC值比较。如果两个LRC值相同,则可以相信发送方发来的信息没有在中途发生改变。

消息摘要的思想

消息摘要采用类似原理,但范围更大一些例如,假设数字4000要用4除,得到1000。则4可以作为4000的摘要。

一个要点是:将4000除以4总是得到1000。如果改变4000,则结果不再是4,即原消息改了,则摘要一定会改变。消息摘要的思想

另一个要点是:如果只给出数字4而不给出更多信息,则无法追溯原来的公式4×1000=4000。即消息的摘要(这里是数字4)没有暴露原消息的任何信息(这里是数字4000),不能逆向返回(单向函数,与加密不同,不能解密)

消息摘要的思想假设要计算数字7391743的消息摘要,则可以将数字中每个位与下一个位相乘(是0时排除),忽略乘积中的第一位。这样,我们对数据块进行散列运算(或消息摘要算法),得到其散列或消息摘要要比原消息小得多。

一个简单消息摘要简例两个消息摘要相同的概率前面考虑的是非常简单的消息摘要。例如,如果前两位篡改为99,则摘要的结果不变,即两个不同的消息有相同的摘要,而且很容易求出实际上,消息摘要的计算没有这么简单。消息摘要通常占128位以上,选择这么长的消息摘要是有目的的,是为了减少两个消息摘要相同的范围。消息摘要要求

(1)给定某个消息,消息摘要应该相同。即同一个消息不能有不同的摘要。(2)两个不同的原消息很难求出相同的摘要(3)给定消息摘要,应该很难求出原先的消息,即,消息摘要不能反向求出(单向函数),否则就会出现通过摘要暴露原消息的情况消息摘要要求冲突的概念如果两个消息得到相同的消息摘要,则会违背上述原则,称为冲突(collision)。如果两个消息摘要发生冲突,则表示其摘要相同。消息摘要算法通常产生长度为128位或160位的消息摘要,即任何两个消息摘要相同的概率分别为2128或2160分之一,显然,这在实际上可能性极小。3.3.3基于消息摘要与对称密钥加密的完整性验证机制A用消息摘要算法H计算信息M0的消息摘要MD0A将M0和MD0和在一起,并使用K加密合并的消息,并通过网络发送给BB收到加密的消息后,用同一密钥K把密文解密,并将二者分开,分别设为M1和MD1基于消息摘要与对称密钥加密的完整性验证机制B用与原始信息相同的消息摘要计算方法H重新计算M1的消息摘要MD2B将计算的消息摘要MD2与分离出来的消息摘要MD1进行对比,如果相等,B断定信息是完整的;如果不相等,B就断定信息遭到篡改机制评价优点:防止攻击者篡改消息防止攻击者同时把信息部分和消息摘要部分替换并同时保持它们之间的匹配关系的攻击机制评价缺点:双方需共享密钥K,存在密钥的发布问题如何改进?3.3.4基于非对称密钥和对称密钥结合的完整性验证机制步骤1:A计算信息M0的消息摘要(MD0)步骤2:A选定一次性对称密钥K1,用完即放弃,防止重放攻击;步骤3:A取一次性对称密钥(K1),用B的公钥(K2)加密K1,结果设为Bk2(K1)。这个过程称为对称密钥的密钥包装(keywrapping);基于非对称密钥和对称密钥结合的完整性验证机制步骤4A将M0和MD0合在一起,并使用对称密钥(K1)加密合并后的数据,结果设为:Ak1(M0+MD0),并通过网络将Bk2(K1)+Ak1(M0+MD0)发送给B;步骤5:B用A所用的非对称密钥算法和自己的私钥(K3)解密Bk2(K1),这个过程的输出是对称密钥K1;基于非对称密钥和对称密钥结合的完整性验证机制步骤6:B用A所用的对称密钥算法和对称密钥K1解密Ak1(M0+MD0),并将二者分开,设为M1和MD1;步骤7:B用与原始信息相同的消息摘要计算方法重新计算信息M1的的消息摘要MD2基于非对称密钥和对称密钥结合的完整性验证机制步骤8:B将计算的的消息摘要MD2同分离的消息摘要MD1进行对比,如果相等,B断定信息是完整的,如果不相等,则B断定信息遭到篡改。机制评价优点:这个机制防止了攻击者替换和篡改信息的攻击外,解决了密钥的发布问题,A随机选定一次性对称密钥K1,用完即放弃,防止了重放攻击。机制评价缺点:需要保证公钥的真实可信性是需要计算信息摘要,可以简化验证的步骤,不用计算信息摘要,一个最直接的方法是直接用加密方法实现数据完整性验证3.3.5基于对称密钥直接加密原消息的完整性验证机制与评价加密本身提供一种消息完整性验证方法,假设A、B双方共享密钥K,并且发送的是有意义的消息,则直接加密原消息也可以起到完整性验证的作用。由于攻击者不知道密钥K,因此攻击者就不知道如何改变密文中的消息位才能在明文中产生预期的改变。接收方可以根据解密后的明文是否有意义来进行完整性验证。实现机制A使用对称密钥机密机制加密M0,并通过网络发送给BB收到加密的信息后,用同一密钥解密B根据解密后的明文是否有意义来判断消息是否完整,如果有意义,B认为数据是完整的,如果是无意义的乱码,B就认为数据遭到篡改。机制评价优点:不增加额外的验证码,数据完整性的信息有效率高具有保密性和完整性验证的双重功能缺点:密钥的发布问题改进:与非对称密钥加密体制结合来解决密钥的发布3.3.6基于RSA数字签名的完整性验证机制步骤1:A用自己的私钥加密消息M,用EA私(M)表示;步骤2:把加密的消息发送给B;步骤3:B接收到加密的消息后用A的公钥解密,用公式DA公(EA私(M))表示;3.3.6基于RSA数字签名的完整性验证机制步骤4:B根据解密后的明文是否有意义来进行消息完整性验证,如果有意义,B认为数据是完整的,如果是无意义的乱码,则B认为的数据遭到篡改。机制评价优点:在本机制中,参照物的依据就是解密后的信息是否有意义。解决了密钥的分发问题。在完整性验证方面,即使攻击者C在中途截获了加密消息,能够用A的公钥解密消息,然后篡改消息,也没法达到任何目的机制评价缺点:加密的速度慢;第二个缺点是发送的明文必须是有意义的明文,在某些场合下,有意义的明文并不好判断。因此二进制文件需要通过增加额外验证码来进行完整性验证。由于A的公钥是公开的,任何人都可以解密A加密的消息,因此该机制不具有保密作用。3.3.7加密原消息作为验证码的完整性验证机制A使用对称密钥加密机制加密M0,设为EK(M0),作为验证码A将M0和EK(M0)合在一起,并通过网络发送给BB收到数据后,将两者分开,设原消息为M1(可能已被篡改),用同一密钥K解密验证码,解密的结果设为M2B将M2与M1进行对比,如果相等,B断定信息是完整的;如果不相等,B就断定信息遭到篡改。机制评价优点:不需要额外算法去产生验证码,只需把加密的原消息作为验证码(篡改、替换)缺点:验证码太大没有保密作用3.3.8基于消息认证码的数据完整性验证机制如果攻击者同时修改摘要及信息,并使他们相匹配,则接收者无法判断其完整性,为此将摘要与加密结合,这种技术称为消息鉴别码(MessageAuthenticationCode,MAC)基于消息认证码的数据完整性验证机制实现机制步骤1:A根据要发送的消息M0,利用密钥K通过MAC产生函数C产生MAC0=Ck(M0);步骤2:A将M0和MAC0合在一起,并通过网络发送到B;步骤3:B收到信息后,并将二者分开,设为M1和MAC1;基于消息认证码的数据完整性验证机制步骤4:B利用密钥K对收到的信息M1用与A相同的MAC产生函数C重新计算M1的验证码,设为MAC2步骤5:B比较MAC2和MAC1是否相同,如果相等,B断定数据是完整的,如果不相等,则B断定数据遭到篡改。机制评价优点:这种机制使接收者确信信息未被更改过防止消息被整体替换,因为攻击者替换了消息,并计算自己的MAC,由于不知道K,无法再次生成正确的MAC。具有身份鉴别的作用,其他人不能假冒信息有效率高消息认证码(MAC)的计算眼熟么?取左边n位消息认证码(MAC)的计算典型的鉴别码生成算法主要基于DES的认证算法,该算法采用CBC模式。最后一轮迭代结束后,取结果的左边n位作为鉴别码。信息的有效率为m/L,其中m为信息长度,n为鉴别码长度,L=m+n缺点是:验证过程需要加密。机制评价缺点:没有保密作用,只有完整性验证作用密钥的发布问题(共享密钥K)算法改进对于密钥的发布问题,可以采用基于哈希函数的完整性验证机制来改进哈希函数的计算类似MAC,但不需要双方共享密钥hash与MAC的区别MAC在产生消息认证码时需要对全部数据进行加密,速度慢;Hash是一种直接产生认证码的方法,不需要双方共享密钥Hash可以用于数字签名MAC函数与加密函数的联系与区别MAC函数与加密函数类似,需要明文、密钥和算法的参与MAC算法不要求可逆性,而加密算法必须是可逆的。复习简述基于数据校验的完整性验证机制简述基于消息摘要与对称密钥加密的完整性验证机制简述基于非对称密钥和对称密钥结合的完整性性验证机制3.4MD5消息摘要计算算法与评价

消息摘要能够完成完整性验证必须满足的要求:两个不同的原消息很难求出相同的摘要给定消息摘要,很难求出原来的消息3.4.1MD5概述

MD5消息摘要算法是90年代初由RonRivest开发的。MD5的全称是message-digestalgorithm5(信息-摘要算法),作用是把一个随机长度的信息变化产生一个128位的信息摘要。MD5概述

MD5根源于一系列消息摘要算法,都是由RonRivest开发的。原先的消息摘要算法称为MD,很快进入下一版MD2,但很脆弱。RonRivest开始开发MD3,结果失败了(因此没有发布)。后来,RonRivest开发了MD4,但很快发现其还是不理想,因此最终推出了MD5。

MD2简介Rivest在1989年开发出MD2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到信息末尾,并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现如果忽略了检验将和MD2产生冲突。MD2算法加密后结果是唯一的。

MD4简介Rivest在1990年又开发出MD4算法。Denboer和Bosselaers以及其他人很快的发现了攻击MD4版本中第一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的个人电脑在几分钟内找到MD4完整版本中的冲突。毫无疑问,MD4就此被淘汰掉了。尽管MD4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。MD5简介1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了“安全-带子”(safety-belts)的概念。虽然MD5比MD4复杂度大一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成在MD5算法中,信息-摘要的大小和填充的必要条件与MD4完全相同。Denboer和Bosselaers曾发现MD5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。

MD5算法的目的在验证数据完整性方面是安全的:找到两个具有相同摘要的消息在计算上是不可行的(不是理论上不可行)。直接安全性:算法不基于任何安全性假设,例如因子分解难度。算法有效率高:算法基于32位的简单操作,适于高速软件实现。算法简单:算法中没有大型数据结构和复杂的程序。基本概述MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组连接后将生成一个128位消息摘要。

每组:512

128,位数是原来的1/4,不是指所有信息的长度,是指每组的512位被缩减到原来的1/4,原消息额可以任意长。MD5工作的第1步:填充MD5的第1步是在原消息中增加填充位,目的是使原消息长度等于一个值,即比512的倍数少64位(64位留下来放原消息的长度)例如,如果原消息长度为1000位,则要填充多少位?512*3-64-1000=472MD5工作的第1步:填充填充对是由一个1和多个0组成的位串。注意填充总是增加,即使消息长度已经是比512的倍数少64。因此,如果消息长度已经是448,则要填充512位,使长度变成960位。因此,填充长度为1——512的值。填充过程第2步:添加长度增加填充位后,下一步要计算消息原长,这个消息原长表示为64位值,添加到加进填充后的消息末尾。先计算消息长度,不包括填充位(即增加填充位前的长度)。例如,如果原消息为1000位,则填充472位,但长度为1000,而不是1472。第2步:添加长度注意:如果消息长度超过264位(即64位无法表示,因为消息太长),则只用长度的低64位,即等于计算lengthmod264。我们看到,这时消息长度为512的倍数。第2步:添加长度第3步:将输入分成512位的块第4步:初始化链接变量A,B,C,D都是32位的链接变量(ChainingVariable),实际是常量, A=0x01234567, B=0x89abcdef, C=0xfedcba98, D=0x76543210。第5步:处理块预处理结束后,开始实际的计算,对消息中的每个512位块计算4轮,在每一轮中每个小块按不同的顺序参与运算4轮的第一步进行不同的P处理,其他步骤相同。第5步:处理块1、将四个链接变量复制到四个变量中使a=A,b=B,c=C,d=D,实际上,这个算法将a、b、c、d组合成128位寄存器(abcd),寄存器(abcd)在实际算法运算中保存中间结果和最终结果。第5步:处理块2、将当前512位块分解为16个子块,每个子块为32位3、四轮的每一轮有16次迭代(共64次迭代),每一次迭代处理一个块中的16个子块。第5步:处理块每一轮(16次迭代)的输入如下:(a)16个子块(32位)M[0],M[1],…,M[15]

(b)变量a,b,c,d(每个32位)(c)常量t(16/64个,每个32位)表示为t[k],其中k为1~64。由于有四轮,因此每一轮用64个t值中的16个(d)S(循环左移S位)常量数组t的构成常量数组t的构成是:t[i]=int(232xabs(sin(i)))=int(4294967296

xabs(sin(i)))为32位整型数。函数sin(i)中i取弧度。其作用是随机化32位整型量,消除输入数据的规律性。每一轮的输入第1轮的输入内容变量a、b、c、d参加16个子块的运算的顺序按子块序号的递增顺序参加,即:M[1]、M[2]、……M[16]64个常量数组元素的前16个元素参加运算,即:t[1]、t[2]、……t[16]第1轮的输入内容每一轮的每次运算结果循环左移S位,S在不断变化,分别是7、12、17、22,重复四次,一共是16次。每一次新的操作前a、b、c、d循环右移一位见P66,表3-9第1轮输入的内容第2轮的输入内容变量a、b、c、d参加16个子块参加的运算的顺序按近似递增等差数列参加,公差为5,下标为:1,6,11,0,5,10,15,4,9,14,3,8,13,2,7,1264个常量数组元素的第2组16个元素参加运算,即:t[17]、t[18]、……t[32]第2轮的输入内容第二轮的每次运算结果循环左移S位,S在不断变化,分别是5、9、14、20,重复四次,一共是16次。每一次新的操作前a、b、c、d循环右移一位见P67,表3-10第2轮的输入内容第3轮的输入内容变量a、b、c、d参加16个子块参加的运算的顺序按近似递增等差数列参加,公差为3,下标为:5,8,11,14,1,4,7,10,13,0,3,6,9,12,15,264个常量数组元素的第三组16个元素参加运算,即:t[33]、t[34]、……t[48]第3轮的输入内容每一轮的每次运算结果循环左移S位,S在不断变化,分别是4、11、16、23,重复四次,一共是16次。每一次新的操作前a、b、c、d循环右移一位见P68,表3-11第3轮的输入内容第4轮的输入内容变量a、b、c、d参加16个子块参加,运算的顺序按近似递增等差数列参加,公差为7,下标为:0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,964个常量数组元素的第四组16个元素参加运算,即:t[49]、t[50]、……t[64]第4轮的输入内容每一轮的每次运算结果循环左移S位,S在不断变化,分别是6、10、15、21,重复四次,一共是16次。每一次新的操作前a、b、c、d循环右移一位见P69,表3-12第4轮的输入内容每一轮的操作(压缩操作)(1)处理P首先处理b、c、d,这个处理P在四轮中不同。(32位)(2)变量a加进处理P的输出(即寄存器abcd)。(3)消息子块M[i]加进第2步输出。(4)常量t[k]加进第3步输出。每一轮的操作(压缩操作)(5)第4步的输出(即寄存器abcd内容)循环左移S位(S值不断改变)。(6)变量b加进第5步输出(即寄存器abcd)。(7)第6步的输出(即寄存器abcd内容)赋值给变量a(8)第7步的输出成为下一步的新abcd。(128位)(9)新一轮迭代之前,abcd循环右移一位每一轮的操作处理P轮次处理P1(bANDc)OR(NOTb)AND(d))2(bANDd)OR(cAND(NOTd))3bXORcXORd4cXOR(bOR(NOTd))MD5算法评价该机制将要输入的信息分割成等长的512的块,每一块计算出自己的摘要,并将每块的摘要参与到下一块摘要的计算中,这种链接模式使最后一块的摘要(整个消息的摘要)跟原信息的每一块都关联,思路与CBC思路类似。MD5满足的要求在验证数据完整性方面是安全的算法效率高算法简单MD5算法的核心处理是重复进行位逻辑运算,使得最终输出的摘要中每一位与输入消息中所有位相关,因此达到很好的混淆效果,具有雪崩现象。MD5的破解在2004年8月17日美国加州圣巴巴拉召开的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破解MD5算法的报告。国内有些媒体甚至认为这一破解会导致数字签名安全大厦的轰然倒塌。MD5的破解一个安全散列算法的安全性是基于这样的假设:知道一个信息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论