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

下载本文档

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

文档简介

1、第第3 3章章 数据数据完整性机制完整性机制第第3 3章章 数据完整性机制数据完整性机制 主要内容主要内容3.1 网网络络安全中数据完整性概述安全中数据完整性概述3.2 数据完整性机制的数据完整性机制的评评价价标标准准3.3 网网络络安全中数据完整性安全中数据完整性验证验证机制与机制与评评价价3.4 MD5消息摘要消息摘要计计算算法与算算法与评评价价3.5 MD5算法在数据安全方面的算法在数据安全方面的应应用用实实例例第第3 3章章 数据完整性机制数据完整性机制 3.1 3.1 网络安全中数据完整性概述网络安全中数据完整性概述v数据完整性数据完整性验证验证:验证验证收到的数据是收到的数据是否与

2、原来数据之否与原来数据之间间保持完全一致的保持完全一致的证证明明手段称手段称为为数据完整性数据完整性验证验证。v数据的完整性数据的完整性验证验证是用来抗是用来抗击击主主动动攻攻击击的的篡篡改等行改等行为为。第第3 3章章 数据完整性机制数据完整性机制 数据完整性数据完整性v数据完整性数据完整性 数据完整性是数据完整性是防止防止非法非法实实体体对对交交换换数据的修改、插入、数据的修改、插入、替替换换和和删删除,或者如果被修改、插入、替除,或者如果被修改、插入、替换换和和删删除除时时可可以被以被检测检测出来出来。数据完整性可以通数据完整性可以通过过消息消息认证认证模式来保模式来保证证。第第3 3章

3、章 数据完整性机制数据完整性机制 基本思路基本思路v增加信息增加信息验证码对验证码对数据完整性数据完整性进进行行验证验证(1)发发送方根据要送方根据要发发送的原信息送的原信息M0,利用,利用验证码验证码函数函数产产生生与与M0密切相关的信息密切相关的信息验证码验证码C0;(2)发发送方把原始信息送方把原始信息M0和信息和信息验证码验证码C0合在一起,并通合在一起,并通过过网网络发络发送送给给接收方;接收方;第第3 3章章 数据完整性机制数据完整性机制 基本思路基本思路(3)接收方)接收方对对所收到的原信息和所收到的原信息和验证码进验证码进行分离,假行分离,假设设分别分别为为M1和和C1,因,因

4、为这为这两个信息可能已被被两个信息可能已被被篡篡改;改;(4)接收方使用与原始信息相同的信息)接收方使用与原始信息相同的信息验证码验证码函数(双方事函数(双方事先先约约定好的)定好的)对对收到的信息部分收到的信息部分M1计计算其自己的信息算其自己的信息验证验证码码C2;第第3 3章章 数据完整性机制数据完整性机制 基本思路基本思路(5)接收方将自己)接收方将自己计计算的接收方信息算的接收方信息验证码验证码C2同分离出来同分离出来的信息的信息验证码验证码C1进进行行对对比,如果相等,接收方断定收到的比,如果相等,接收方断定收到的信息信息M1与用与用户发户发送的信息送的信息M0是相同的,如果不相等

5、,是相同的,如果不相等,则则接接收方知道原始信息已收方知道原始信息已经经被被篡篡改改过过。第第3 3章章 数据完整性机制数据完整性机制 基本思路模型图基本思路模型图第第3 3章章 数据完整性机制数据完整性机制 3.2 3.2 数据完整性机制的评价标准数据完整性机制的评价标准v完整性完整性验证验证的安全性的安全性验证码验证码的主要功能:的主要功能:实现实现数据完整性的数据完整性的验证验证安全达到防安全达到防伪伪造、防造、防篡篡改目的。改目的。碰撞性:碰撞性:对对于两个不同的消息于两个不同的消息m1和和m2,如果它,如果它们们的的验验证码值证码值相同,相同,则则就就发发生了碰撞生了碰撞第第3 3章

6、章 数据完整性机制数据完整性机制 完整性验证的安全性完整性验证的安全性v验证码验证码函数要求函数要求满满足的条件足的条件抗弱碰撞性:抗弱碰撞性:对对于于给定给定的消息的消息m1和其和其验证码验证码H(m1),找到,找到满满足足m2m1,且,且H(m2)H(m1)的)的m2在在计计算算上不可行上不可行抗强碰撞性:找到抗强碰撞性:找到任何任何满满足足H(m1)H(m2)且)且m2m1的消息的消息对对( m1,m2 )在)在计计算上是不可行的算上是不可行的第第3 3章章 数据完整性机制数据完整性机制 完整性验证的安全性完整性验证的安全性v在数据完整性的在数据完整性的验证验证中可能受到的攻中可能受到的

7、攻击击有:有:对对截截获获的部分消息的部分消息进进行了增行了增删删改;改;攻攻击击者不能分离信息和者不能分离信息和验证码验证码,直接用自己的,直接用自己的信息整体替信息整体替换换所有的所有的发发送信息;送信息;攻攻击击者可以分析信息和者可以分析信息和验证码验证码,用自己的信息,用自己的信息只替只替换换信息部分,但无法替信息部分,但无法替换验证码换验证码攻攻击击者不者不仅仅用自己的信息替用自己的信息替换换信息部分,同信息部分,同时时重新重新计计算算验证码验证码并替并替换换之。之。第第3 3章章 数据完整性机制数据完整性机制 完整性验证中加密的安全完整性验证中加密的安全v数据完整性数据完整性验证验

8、证的一些机制需要的一些机制需要对对其中的内容其中的内容进进行加密,如行加密,如对验证码对验证码的加密等,因此密的加密等,因此密钥钥的分的分发发,密,密钥钥空空间间的大小,加密算法的的大小,加密算法的选选取直接影响完整性取直接影响完整性验证验证的性能和安全性。的性能和安全性。第第3 3章章 数据完整性机制数据完整性机制 完整性验证算法的性能完整性验证算法的性能v数据完整性数据完整性验证验证包括包括发发送方送方计计算算验证码验证码,加密,接收方重,加密,接收方重新新计计算算验证码验证码,解密,解密,验证码验证码比比较较等。等。v影响性能的主要因素是影响性能的主要因素是计计算算验证码验证码和加解密,

9、和加解密,实际实际情况情况时时要要对对完整性完整性验证验证的安全性和性能的安全性和性能进进行折中考行折中考虑虑。第第3 3章章 数据完整性机制数据完整性机制 数据完整性验证的信息有效率数据完整性验证的信息有效率v数据完整性数据完整性验证验证的的有效率有效率是指原信息部分是指原信息部分长长度与合并后度与合并后总总信息(包括原消息和信息(包括原消息和验证码验证码)的)的长长度之比。度之比。v过长过长:增加:增加额额外的网外的网络络通信量通信量v过过短:影响完整性短:影响完整性验证验证的准确率和安全性的准确率和安全性第第3 3章章 数据完整性机制数据完整性机制 3.3 3.3 网络安全中数据完整性验

10、证机制与评价网络安全中数据完整性验证机制与评价3.3.1 3.3.1 基于数据校验的完整性验证机制与评价基于数据校验的完整性验证机制与评价v在计算机网络原理中的在计算机网络原理中的循环冗余校验循环冗余校验的检错技的检错技术,目的就是防止计算机网络中传输的数据帧术,目的就是防止计算机网络中传输的数据帧出现错误,导致发送的数据帧与接收的数据帧出现错误,导致发送的数据帧与接收的数据帧不一致不一致v 网络安全中的数据完整性验证机制与计算机网络安全中的数据完整性验证机制与计算机网络原理中的检错技术类似。网络原理中的检错技术类似。v参照参照CRCCRC冗余码冗余码第第3 3章章 数据完整性机制数据完整性机

11、制 基于数据校验的完整性验证机制基于数据校验的完整性验证机制步步骤骤1:A计计算数据算数据M0的冗余的冗余码码N0;步步骤骤2:A将将M0和和N0合在一起,通合在一起,通过过网网络发络发送送给给B;步步骤骤3:B收到合并的信息后,将二者分开,收到合并的信息后,将二者分开,设为设为M1和和N1;第第3 3章章 数据完整性机制数据完整性机制 基于数据校验的完整性验证机制基于数据校验的完整性验证机制步步骤骤4:B用与原始信息相同的循用与原始信息相同的循环环冗余方法重新冗余方法重新计计算信息算信息M1的冗余的冗余码码N2;步步骤骤5:B将将计计算的冗余算的冗余码码N2同分离的冗余同分离的冗余码码N1进

12、进行行对对比,比,如果相等,如果相等,B断定信息是完整的,如果不相等,断定信息是完整的,如果不相等,则则B断定信断定信息是不完整的。息是不完整的。第第3 3章章 数据完整性机制数据完整性机制 基于数据校验的完整性验证机制基于数据校验的完整性验证机制第第3 3章章 数据完整性机制数据完整性机制 机制评价机制评价v优优点:点:该该机制可以机制可以对对网网络络系系统统造成的数据不一致造成的数据不一致进进行行验证验证,特别是在,特别是在实现对实现对数据数据链链路路层层每个每个帧帧的数据差的数据差错检验错检验中取中取得了很好的效果。得了很好的效果。数据校验和完整性验证的区别?数据校验和完整性验证的区别?

13、第第3 3章章 数据完整性机制数据完整性机制 数据校验和完整性验证的区别数据校验和完整性验证的区别v数据校数据校验验是是为为了了检查检查出因出因为为网网络络自身的原因自身的原因导导致的数据不致的数据不一致,是由网一致,是由网络络系系统统随机随机产产生的生的v数据完整性数据完整性验证验证是是为为了了检查检查出可能的出可能的恶恶意主意主动动攻攻击击者造成者造成的数据不一致,后者会的数据不一致,后者会处处心心积虑积虑地避开完整性地避开完整性验证验证的校的校验验。第第3 3章章 数据完整性机制数据完整性机制 缺点与改进缺点与改进vCRC冗余冗余码长码长度短度短v计计算方法需改算方法需改进进,使得信息的

14、每一位都与冗余,使得信息的每一位都与冗余码码密切相关密切相关v目前常目前常见见得新的得新的计计算冗余算冗余码码的方法:的方法:MD5、SHA-1,冗余,冗余码码更名更名为为消息摘要,消息摘要,长长度分别度分别为为128、160位位第第3 3章章 数据完整性机制数据完整性机制 3.3.2 3.3.2 基于消息摘要的完整性验证机制基于消息摘要的完整性验证机制v消息摘要也称消息摘要也称为为消息的指消息的指纹纹v 消息摘要一般通消息摘要一般通过过摘要函数摘要函数H生成,摘要函数是生成,摘要函数是单单向函数向函数,不是一种加密,使用摘要函数从消息生成摘要很容易,不是一种加密,使用摘要函数从消息生成摘要很

15、容易,但是通但是通过过摘要来摘要来还还原消息却很原消息却很难难。v哈希函数是常用算法,也称哈希函数是常用算法,也称为杂为杂凑函数、散列函数、凑函数、散列函数、hash函数等函数等第第3 3章章 数据完整性机制数据完整性机制 基于消息摘要的完整性验证机制基于消息摘要的完整性验证机制v常用算法:常用算法:MD4、MD5、SHA-1v消息摘要使用散列函数把一段任意消息摘要使用散列函数把一段任意长长度的消息度的消息M映射到一映射到一个短的固定个短的固定长长的数据的数据MDv雪崩效雪崩效应应:消息摘要的每一位与原消息的每一位都关:消息摘要的每一位与原消息的每一位都关联联。第第3 3章章 数据完整性机制数

16、据完整性机制 实现机制实现机制步步骤骤1:A根据要根据要发发送的消息送的消息M0,利用,利用MD5、SHA-1等哈希函等哈希函数数H(双方事先商定好的)(双方事先商定好的)产产生消息摘要生消息摘要MD0;步步骤骤2:A通通过过网网络络将将M0和和MD0一起一起发发送到送到B第第3 3章章 数据完整性机制数据完整性机制 实现机制实现机制步步骤骤3:B收到的信息收到的信息设为设为M1,摘要,摘要设为设为MD1,B重新用重新用A使使用的用的产产生摘要的函数生摘要的函数H计计算消息摘要,算消息摘要,设为设为MD2步步骤骤4:B比比较较MD2和和MD1是否相同,如果相等,是否相同,如果相等,B断定数据断

17、定数据是完整的,如果不相等,是完整的,如果不相等,则则B断定数据遭到断定数据遭到篡篡改。改。第第3 3章章 数据完整性机制数据完整性机制 评价评价v优优点:双方不需要共享密点:双方不需要共享密钥钥;v消息摘要与信息密切关消息摘要与信息密切关联联,若,若验证验证成功,接收者确信信息未被更成功,接收者确信信息未被更改改过过;v信息的有效率高。信息的有效率高。v消息摘要算法通常消息摘要算法通常产产生生长长度度为为128位或位或160位的消息摘要,即任位的消息摘要,即任何两个消息摘要相同的概率分别何两个消息摘要相同的概率分别为为2128或或2160分之一,分之一,显显然,然,这这在在实际实际上冲突的可

18、能性极小。上冲突的可能性极小。第第3 3章章 数据完整性机制数据完整性机制 评价评价v如果攻如果攻击击者同者同时时修改信息及其摘要,接收者就无法判断其修改信息及其摘要,接收者就无法判断其完整性完整性v将摘要与加密将摘要与加密结结合合v如何解决?如何解决?第第3 3章章 数据完整性机制数据完整性机制 消息摘要举例消息摘要举例v摘要类似于纵向冗余校验摘要类似于纵向冗余校验(LRC,Longitudinal Redundancy Check)和循环冗余校验和循环冗余校验(CRC,Cyclic Redundancy Check) 第第3 3章章 数据完整性机制数据完整性机制 消息摘要消息摘要v下图显示

19、了发送方的下图显示了发送方的LRC计算。计算。LRCLRC将位块组成列表将位块组成列表( (行行) ),例如,如果要发送,例如,如果要发送3232位,则位,则把其排成四行,然后计算每个列把其排成四行,然后计算每个列( (共共8 8列列) )有多少个有多少个1 1位位如果如果1 1位为奇数,则称为奇性,在阴影位为奇数,则称为奇性,在阴影LRCLRC行中用一个行中用一个1 1位表示;位表示;相反,如果相反,如果1 1位为偶数,则称为偶性,在阴影位为偶数,则称为偶性,在阴影LRCLRC行中行中用一个用一个0 0位表示位表示) )。 第第3 3章章 数据完整性机制数据完整性机制 消息摘要例子消息摘要例

20、子第第3 3章章 数据完整性机制数据完整性机制 消息摘要举例消息摘要举例v每列计算奇偶位,生成一个每列计算奇偶位,生成一个新行新行,共八个奇偶位,成为整,共八个奇偶位,成为整个块的奇偶位。这样,个块的奇偶位。这样, LRC实际上是原消息的消息摘要实际上是原消息的消息摘要。 v计算结束后将数据和计算结束后将数据和LRC发送给接收方。接收方把数据和发送给接收方。接收方把数据和LRC分开,对数据块分开,对数据块重新重新执行执行LRC运算,然后将得到的运算,然后将得到的LRC值与从发送方收到的值与从发送方收到的LRC值比较。值比较。如果两个如果两个LRC值相值相同,则可以相信发送方发来的信息没有在中途

21、发生改变。同,则可以相信发送方发来的信息没有在中途发生改变。 第第3 3章章 数据完整性机制数据完整性机制 消息摘要的思想消息摘要的思想 v消息摘要采用类似原理,但范围更大一些消息摘要采用类似原理,但范围更大一些v例如,假设数字例如,假设数字4000要用要用4除,得到除,得到1000。则。则4可以作为可以作为4000的的摘要摘要。 v一个要点是:将一个要点是:将4000除以除以4总是得到总是得到1000。如果改变。如果改变4000,则结果不再是则结果不再是4,即,即原消息改了,则摘要一定会改变原消息改了,则摘要一定会改变。第第3 3章章 数据完整性机制数据完整性机制 消息摘要的思想消息摘要的思

22、想 v另一个要点是:如果只给出数字另一个要点是:如果只给出数字4而不给出更多信息,则无而不给出更多信息,则无法追溯原来的公式法追溯原来的公式41000=4000。即即消息的摘要消息的摘要( (这里是数这里是数字字4)4)没有暴露原消息的任何信息没有暴露原消息的任何信息( (这里是数字这里是数字4000)4000),不能,不能逆向返回(单向函数,与加密不同,不能解密)逆向返回(单向函数,与加密不同,不能解密) 第第3 3章章 数据完整性机制数据完整性机制 消息摘要的思想消息摘要的思想v假设要计算数字假设要计算数字7391743的消息摘要,则可以将数字中每个的消息摘要,则可以将数字中每个位与下一个

23、位相乘位与下一个位相乘(是是0时排除时排除),忽略乘积中的第一位。,忽略乘积中的第一位。v这样,我们对数据块进行散列运算这样,我们对数据块进行散列运算(或消息摘要算法或消息摘要算法),得,得到其散列或到其散列或消息摘要要比原消息小得多消息摘要要比原消息小得多。 第第3 3章章 数据完整性机制数据完整性机制 一个简单消息摘要简例一个简单消息摘要简例第第3 3章章 数据完整性机制数据完整性机制 两个消息摘要相同的概率两个消息摘要相同的概率v前面考虑的是非常简单的消息摘要。例如,如果前两位篡前面考虑的是非常简单的消息摘要。例如,如果前两位篡改为改为9999,则摘要的结果不变,即两个不同的消息有相同的

24、,则摘要的结果不变,即两个不同的消息有相同的摘要,而且很容易求出摘要,而且很容易求出v实际上,消息摘要的计算没有这么简单。消息摘要通常占实际上,消息摘要的计算没有这么简单。消息摘要通常占128位以上位以上,选择这么长的消息摘要是有目的的,是为了减,选择这么长的消息摘要是有目的的,是为了减少两个消息摘要相同的范围。少两个消息摘要相同的范围。第第3 3章章 数据完整性机制数据完整性机制 消息摘要要求消息摘要要求 (1)给定某个消息,消息摘要应该相同。即同一个消息不能有给定某个消息,消息摘要应该相同。即同一个消息不能有不同的摘要。不同的摘要。(2)(2)两个不同的原消息两个不同的原消息很难求很难求出

25、相同的摘要出相同的摘要(3)给定消息摘要,应该很难求出原先的消息,即,消息摘要给定消息摘要,应该很难求出原先的消息,即,消息摘要不能反向求出(单向函数),否则就会出现通过摘要暴露不能反向求出(单向函数),否则就会出现通过摘要暴露原消息的情况原消息的情况第第3 3章章 数据完整性机制数据完整性机制 消息摘要要求消息摘要要求v冲突的概念冲突的概念如果两个消息得到相同的消息摘要,则会违背上述原如果两个消息得到相同的消息摘要,则会违背上述原则,称为则,称为冲突冲突(collision)。如果两个消息摘要发生冲突,如果两个消息摘要发生冲突,则表示其摘要相同。消息摘要算法通常产生长度为则表示其摘要相同。消

26、息摘要算法通常产生长度为128位位或或160位的消息摘要,即任何两个消息摘要相同的概率分位的消息摘要,即任何两个消息摘要相同的概率分别为别为2128或或2160分之一,显然,这在实际上可能性极小。分之一,显然,这在实际上可能性极小。第第3 3章章 数据完整性机制数据完整性机制 3.3.3 3.3.3 基于消息摘要与对称密钥加密的基于消息摘要与对称密钥加密的完整性验证机制完整性验证机制A用消息摘要算法用消息摘要算法H计计算信息算信息M0的消息摘要的消息摘要MD0A将将M0和和MD0和在一起,并使用和在一起,并使用K加密合并的消息,并加密合并的消息,并通通过过网网络发络发送送给给BB收到加密的消息

27、后,用同一密收到加密的消息后,用同一密钥钥K把密文解密,并将二把密文解密,并将二者分开,分别者分开,分别设为设为M1和和MD1第第3 3章章 数据完整性机制数据完整性机制 基于消息摘要与对称密钥加密的完整性基于消息摘要与对称密钥加密的完整性验证机制验证机制B用与原始信息相同的消息摘要用与原始信息相同的消息摘要计计算方法算方法H重新重新计计算算M1的的消息摘要消息摘要MD2B将将计计算的消息摘要算的消息摘要MD2与分离出来的消息摘要与分离出来的消息摘要MD1进进行行对对比,如果相等,比,如果相等,B断定信息是完整的;如果不相等,断定信息是完整的;如果不相等,B就断定信息遭到就断定信息遭到篡篡改改

28、第第3 3章章 数据完整性机制数据完整性机制 机制评价机制评价v优优点:点:防止攻防止攻击击者者篡篡改消息改消息防止攻防止攻击击者同者同时时把信息部分和消息摘要部分替把信息部分和消息摘要部分替换换并同并同时时保持它保持它们们之之间间的匹配关系的攻的匹配关系的攻击击第第3 3章章 数据完整性机制数据完整性机制 机制评价机制评价v缺点:缺点:双方需共享密双方需共享密钥钥K,存在密,存在密钥钥的的发发布布问题问题如何改进?如何改进?第第3 3章章 数据完整性机制数据完整性机制 3.3.4 3.3.4 基于非对称密钥和对称密钥结合基于非对称密钥和对称密钥结合的完整性验证机制的完整性验证机制v步步骤骤1

29、:A计计算信息算信息M0的消息摘要(的消息摘要(MD0)v步步骤骤2:A选选定一次性定一次性对对称密称密钥钥K1,用完即放弃,防止重放攻,用完即放弃,防止重放攻击击;v步步骤骤3:A取一次性取一次性对对称密称密钥钥(K1),用,用B的公的公钥钥(K2)加密加密K1,结结果果设为设为Bk2(K1)。这这个个过过程称程称为对为对称密称密钥钥的密的密钥钥包装包装(key wrapping);第第3 3章章 数据完整性机制数据完整性机制 基于非对称密钥和对称密钥结合的完整基于非对称密钥和对称密钥结合的完整性验证机制性验证机制v步步骤骤4 A将将M0和和MD0合在一起,并使用合在一起,并使用对对称密称密

30、钥钥(K1)加密合加密合并后的数据,并后的数据,结结果果设为设为:Ak1(M0+MD0),并通,并通过过网网络络将将Bk2(K1)+Ak1(M0+MD0)发发送送给给B;v步步骤骤5:B用用A所用的非所用的非对对称密称密钥钥算法和自己的私算法和自己的私钥钥(K3)解密解密Bk2(K1),这这个个过过程的程的输输出是出是对对称密称密钥钥K1;第第3 3章章 数据完整性机制数据完整性机制 基于非对称密钥和对称密钥结合的完整基于非对称密钥和对称密钥结合的完整性验证机制性验证机制v步步骤骤6:B用用A所用的所用的对对称密称密钥钥算法和算法和对对称密称密钥钥K1解密解密Ak1(M0+MD0),并将二者分

31、开,),并将二者分开,设为设为M1和和MD1;v步步骤骤7:B用与原始信息相同的消息摘要用与原始信息相同的消息摘要计计算方法重新算方法重新计计算算信息信息M1的的消息摘要的的消息摘要MD2第第3 3章章 数据完整性机制数据完整性机制 基于非对称密钥和对称密钥结合的完整基于非对称密钥和对称密钥结合的完整性验证机制性验证机制v步步骤骤8:B将将计计算的的消息摘要算的的消息摘要MD2同分离的消息摘要同分离的消息摘要MD1进进行行对对比,如果相等,比,如果相等,B断定信息是完整的,如果不相等,断定信息是完整的,如果不相等,则则B断定信息遭到断定信息遭到篡篡改。改。第第3 3章章 数据完整性机制数据完整

32、性机制 机制评价机制评价v优优点:点:这这个机制防止了攻个机制防止了攻击击者替者替换换和和篡篡改信息的攻改信息的攻击击外,外,解决了密解决了密钥钥的的发发布布问题问题,A随机随机选选定一次性定一次性对对称密称密钥钥K1,用完即放弃,防止了重放攻用完即放弃,防止了重放攻击击。第第3 3章章 数据完整性机制数据完整性机制 机制评价机制评价v缺点:缺点: 需要保需要保证证公公钥钥的真的真实实可信性可信性 是需要是需要计计算信息摘要,可以算信息摘要,可以简简化化验证验证的步的步骤骤,不用,不用计计算算信息摘要,一个最直接的方法是直接用加密方法信息摘要,一个最直接的方法是直接用加密方法实现实现数数据完整

33、性据完整性验证验证第第3 3章章 数据完整性机制数据完整性机制 3.3.5 3.3.5 基于对称密钥直接加密原消息的基于对称密钥直接加密原消息的完整性验证机制与评价完整性验证机制与评价v加密本身提供一种消息完整性加密本身提供一种消息完整性验证验证方法,假方法,假设设A、B双方共享密双方共享密钥钥K,并且,并且发发送的是有意送的是有意义义的消息,的消息,则则直接加密原消息也可以起到完整性直接加密原消息也可以起到完整性验证验证的作用。的作用。v由于攻由于攻击击者不知道密者不知道密钥钥K,因此攻,因此攻击击者就不知道如者就不知道如何改何改变变密文中的消息位才能在明文中密文中的消息位才能在明文中产产生

34、生预预期的改期的改变变。接收方可以根据解密后的明文是否有意。接收方可以根据解密后的明文是否有意义义来来进进行完整性行完整性验证验证。第第3 3章章 数据完整性机制数据完整性机制 实现机制实现机制vA使用使用对对称密称密钥钥机密机制加密机密机制加密M0,并通,并通过过网网络发络发送送给给BvB收到加密的信息后,用同一密收到加密的信息后,用同一密钥钥解密解密vB根据解密后的明文是否有意根据解密后的明文是否有意义义来判断消息是否完整,如来判断消息是否完整,如果有意果有意义义,B认为认为数据是完整的,如果是无意数据是完整的,如果是无意义义的乱的乱码码,B就就认为认为数据遭到数据遭到篡篡改。改。第第3

35、3章章 数据完整性机制数据完整性机制 机制评价机制评价v优优点:点:不增加不增加额额外的外的验证码验证码,数据完整性的信息有效,数据完整性的信息有效率高率高具有保密性和完整性具有保密性和完整性验证验证的双重功能的双重功能v缺点:缺点:密密钥钥的的发发布布问题问题v改改进进:与非与非对对称密称密钥钥加密体制加密体制结结合来解决密合来解决密钥钥的的发发布布第第3 3章章 数据完整性机制数据完整性机制 3.3.6 3.3.6 基于基于RSARSA数字签名的完整性验证机制数字签名的完整性验证机制步步骤骤1:A用自己的私用自己的私钥钥加密消息加密消息M,用,用EA私私(M)表示;)表示;步步骤骤2:把加

36、密的消息:把加密的消息发发送送给给B;步步骤骤3:B接收到加密的消息后用接收到加密的消息后用A的公的公钥钥解密,用公式解密,用公式DA公公(EA私私(M))表示;表示;第第3 3章章 数据完整性机制数据完整性机制 3.3.6 3.3.6 基于基于RSARSA数字签名的完整性验证机制数字签名的完整性验证机制v步步骤骤4:B根据解密后的明文是否有意根据解密后的明文是否有意义义来来进进行消息完整性行消息完整性验证验证,如果有意,如果有意义义,B认为认为数据是完整的,如果是无意数据是完整的,如果是无意义义的的乱乱码码,则则B认为认为的数据遭到的数据遭到篡篡改。改。第第3 3章章 数据完整性机制数据完整

37、性机制 机制评价机制评价v优优点:点: 在本机制中,参照物的依据就是解密后的信息是否有意在本机制中,参照物的依据就是解密后的信息是否有意义义。 解决了密解决了密钥钥的分的分发问题发问题。 在完整性在完整性验证验证方面,即使攻方面,即使攻击击者者C在中途截在中途截获获了加密消息了加密消息,能够用,能够用A的公的公钥钥解密消息,然后解密消息,然后篡篡改消息,也没法达到改消息,也没法达到任何目的任何目的第第3 3章章 数据完整性机制数据完整性机制 机制评价机制评价v缺点:缺点: 加密的速度慢;加密的速度慢; 第二个缺点是第二个缺点是发发送的明文必送的明文必须须是有意是有意义义的明文,在某些的明文,在

38、某些场场合下,有意合下,有意义义的明文并不好判断。因此二的明文并不好判断。因此二进进制文件需制文件需要通要通过过增加增加额额外外验证码验证码来来进进行完整性行完整性验证验证。 由于由于A的公的公钥钥是公开的,任何人都可以解密是公开的,任何人都可以解密A加密的消加密的消息,因此息,因此该该机制不具有保密作用。机制不具有保密作用。第第3 3章章 数据完整性机制数据完整性机制 3.3.7 3.3.7 加密原消息作为验证码的完整性验证机制加密原消息作为验证码的完整性验证机制vA使用使用对对称密称密钥钥加密机制加密加密机制加密M0,设为设为EK(M0),作作为验证码为验证码vA将将M0和和EK(M0)合

39、在一起,并通合在一起,并通过过网网络发络发送送给给BvB收到数据后,将两者分开,收到数据后,将两者分开,设设原消息原消息为为M1(可能可能已被已被篡篡改改),用同一密,用同一密钥钥K解密解密验证码验证码,解密的,解密的结结果果设为设为M2vB将将M2与与M1进进行行对对比,如果相等,比,如果相等,B断定信息是断定信息是完整的;如果不相等,完整的;如果不相等,B就断定信息遭到就断定信息遭到篡篡改。改。第第3 3章章 数据完整性机制数据完整性机制 机制评价机制评价v优优点:点:不需要不需要额额外算法去外算法去产产生生验证码验证码,只需把加密的原消息作,只需把加密的原消息作为验证码为验证码(篡篡改、

40、替改、替换换)v缺点:缺点:验证码验证码太大太大没有保密作用没有保密作用第第3 3章章 数据完整性机制数据完整性机制 3.3.8 3.3.8 基于消息认证码的数据完整基于消息认证码的数据完整性验证机制性验证机制v如果攻如果攻击击者同者同时时修改摘要及信息,并使他修改摘要及信息,并使他们们相匹配,相匹配,则则接接收者无法判断其完整性,收者无法判断其完整性,为为此将摘要与加密此将摘要与加密结结合,合,这这种技种技术术称称为为消息消息鉴鉴别别码码(Message Authentication Code, MAC)第第3 3章章 数据完整性机制数据完整性机制 基于消息认证码的数据完整性验证基于消息认证

41、码的数据完整性验证机制机制实现实现机制机制v步步骤骤1:A根据要根据要发发送的消息送的消息M0,利用密,利用密钥钥K通通过过MAC产产生生函数函数C产产生生MAC0=Ck(M0);v步步骤骤2:A将将M0和和MAC0合在一起,并通合在一起,并通过过网网络发络发送到送到B;v步步骤骤3:B收到信息后,并将二者分开,收到信息后,并将二者分开,设为设为M1和和MAC1;第第3 3章章 数据完整性机制数据完整性机制 基于消息认证码的数据完整性验证基于消息认证码的数据完整性验证机制机制v步步骤骤4:B利用密利用密钥钥K对对收到的信息收到的信息M1用与用与A相同的相同的MAC产产生函数生函数C重新重新计计

42、算算M1的的验证码验证码,设为设为MAC2v步步骤骤5:B比比较较MAC2和和MAC1是否相同,如果相等,是否相同,如果相等,B断定断定数据是完整的,如果不相等,数据是完整的,如果不相等,则则B断定数据遭到断定数据遭到篡篡改。改。第第3 3章章 数据完整性机制数据完整性机制 机制评价机制评价v优优点:点: 这这种机制使接收者确信信息未被更改种机制使接收者确信信息未被更改过过 防止消息被整体替防止消息被整体替换换,因,因为为攻攻击击者替者替换换了消息,并了消息,并计计算算自己的自己的MAC,由于不知道,由于不知道K,无法再次生成正确的,无法再次生成正确的MAC。 具有身份具有身份鉴鉴别的作用,其

43、他人不能假冒别的作用,其他人不能假冒 信息有效率高信息有效率高第第3 3章章 数据完整性机制数据完整性机制 消息认证码(消息认证码(MACMAC)的计算)的计算眼熟么?眼熟么?取左边取左边n n位位第第3 3章章 数据完整性机制数据完整性机制 消息认证码(消息认证码(MACMAC)的计算)的计算v典型的典型的鉴鉴别别码码生成算法主要基于生成算法主要基于DES的的认证认证算法,算法,该该算法算法采用采用CBC模式。模式。v最后一最后一轮轮迭代迭代结结束后,取束后,取结结果的左果的左边边n位作位作为鉴为鉴别别码码。v信息的有效率信息的有效率为为m/L,其中,其中m为为信息信息长长度,度,n为鉴为鉴

44、别别码长码长度度,L=m+nv缺点是:缺点是:验证验证过过程需要加密。程需要加密。第第3 3章章 数据完整性机制数据完整性机制 机制评价机制评价v缺点:缺点: 没有保密作用,只有完整性没有保密作用,只有完整性验证验证作用作用 密密钥钥的的发发布布问题问题(共享密(共享密钥钥K)第第3 3章章 数据完整性机制数据完整性机制 算法改进算法改进v对对于密于密钥钥的的发发布布问题问题,可以采用基于哈希函数的完整性,可以采用基于哈希函数的完整性验验证证机制来改机制来改进进v哈希函数的哈希函数的计计算类似算类似MAC,但不需要双方共享密,但不需要双方共享密钥钥第第3 3章章 数据完整性机制数据完整性机制

45、hashhash与与MACMAC的区别的区别vMAC在在产产生消息生消息认证码时认证码时需要需要对对全部数据全部数据进进行加密,速度行加密,速度慢;慢;vHash是一种直接是一种直接产产生生认证码认证码的方法,不需要双方共享密的方法,不需要双方共享密钥钥vHash可以用于数字可以用于数字签签名名第第3 3章章 数据完整性机制数据完整性机制 MACMAC函数与加密函数的联系与区别函数与加密函数的联系与区别vMAC函数与加密函数类似,需要明文、密函数与加密函数类似,需要明文、密钥钥和算法的参与和算法的参与vMAC算法不要求可逆性,而加密算法必算法不要求可逆性,而加密算法必须须是可逆的。是可逆的。第

46、第3 3章章 数据完整性机制数据完整性机制 复习复习v简简述基于数据校述基于数据校验验的完整性的完整性验证验证机制机制v简简述基于消息摘要与述基于消息摘要与对对称密称密钥钥加密的完整性加密的完整性验证验证机制机制v简简述基于非述基于非对对称密称密钥钥和和对对称密称密钥结钥结合的完整性性合的完整性性验证验证机制机制第第3 3章章 数据完整性机制数据完整性机制 3.4 MD5消息摘要计算算法与评价消息摘要计算算法与评价 v消息摘要能够完成完整性验证必须满足的要求:消息摘要能够完成完整性验证必须满足的要求: 两个不同的原消息很难求出相同的摘要两个不同的原消息很难求出相同的摘要 给定消息摘要,很难求出

47、原来的消息给定消息摘要,很难求出原来的消息第第3 3章章 数据完整性机制数据完整性机制 3.4.1 MD5概述概述 vMD5消息摘要算法是消息摘要算法是9090年代初由年代初由Ron Rivest开发的。开发的。MD5的全称是的全称是message-digest algorithm 5(信息信息-摘要算法)摘要算法),作用是,作用是把把一个一个随机长度随机长度的信息变化产生一个的信息变化产生一个128位的信息位的信息摘要。摘要。第第3 3章章 数据完整性机制数据完整性机制 MD5 概述概述 vMD5根源于一系列消息摘要算法,都是由根源于一系列消息摘要算法,都是由Ron Rivest开发开发的。

48、的。v原先的消息摘要算法称为原先的消息摘要算法称为MD,很快进入下一版很快进入下一版MD2,但但很脆弱。很脆弱。Ron Rivest开始开发开始开发MD3,结果失败了结果失败了(因此没有因此没有发布发布)。v后来,后来,RonRivest开发了开发了MD4,但很快发现其还是不理想,但很快发现其还是不理想,因此最终推出了因此最终推出了MD5。 第第3 3章章 数据完整性机制数据完整性机制 MD2MD2简介简介vRivest在在1989年开发出年开发出MD2算法。算法。v在这个算法中,首先对信息进行数据补位,使信在这个算法中,首先对信息进行数据补位,使信息的字节长度是息的字节长度是16的倍数。的倍

49、数。v然后,以一个然后,以一个16位的检验和追加到信息末尾,并位的检验和追加到信息末尾,并且根据这个新产生的信息计算出散列值。且根据这个新产生的信息计算出散列值。v后来,后来,Rogier和和Chauvaud发现如果忽略了检验发现如果忽略了检验将和将和MD2产生冲突。产生冲突。MD2算法加密后结果是唯一算法加密后结果是唯一的。的。 第第3 3章章 数据完整性机制数据完整性机制 MD4MD4简介简介vRivest在在1990年又开年又开发发出出MD4算法。算法。vDen boer和和Bosselaers以及其他人很快的以及其他人很快的发现发现了了攻攻击击MD4版本中第一步和第三步的漏洞。版本中第

50、一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的个人向大家演示了如何利用一部普通的个人电脑电脑在几分在几分钟钟内找到内找到MD4完整版本中的冲突。毫无完整版本中的冲突。毫无疑疑问问,MD4就此被淘汰掉了。就此被淘汰掉了。 v尽管尽管MD4算法在安全上有个算法在安全上有个这这么大的漏洞,但它么大的漏洞,但它对对在其后才被开在其后才被开发发出来的好几种信息安全加密算法出来的好几种信息安全加密算法的出的出现现却有着不可忽却有着不可忽视视的引的引导导作用。作用。 第第3 3章章 数据完整性机制数据完整性机制 MD5MD5简介简介v1991年,年,Rivest开发出技术上更为趋近成熟

51、的开发出技术上更为趋近成熟的md5算法。算法。v它在它在MD4的基础上增加了的基础上增加了“安全安全-带子带子”(safety-belts)的)的概念。虽然概念。虽然MD5比比MD4复杂度大一些,但却更为安全。这复杂度大一些,但却更为安全。这个算法很明显的由四个和个算法很明显的由四个和MD4设计有少许不同的步骤组成设计有少许不同的步骤组成v在在MD5算法中,信息算法中,信息-摘要的大小和填充的必要条件与摘要的大小和填充的必要条件与MD4完全相同。完全相同。Denboer和和Bosselaers曾发现曾发现MD5算法中的假算法中的假冲突(冲突(pseudo-collisions),但除此之外就没

52、有其他被发),但除此之外就没有其他被发现的加密后结果了。现的加密后结果了。 第第3 3章章 数据完整性机制数据完整性机制 MD5MD5算法的目的算法的目的v在验证数据完整性方面是安全的:在验证数据完整性方面是安全的:找到两个具有找到两个具有相同摘要的消息在相同摘要的消息在计算上是不可行的(不是理论上计算上是不可行的(不是理论上不可行)不可行)。v直接安全性:直接安全性:算法不基于任何安全性假设,例如算法不基于任何安全性假设,例如因子分解难度。因子分解难度。v算法有效率高:算法有效率高:算法基于算法基于3232位的简单操作,适于位的简单操作,适于高速软件实现。高速软件实现。v算法简单:算法简单:

53、算法中没有大型数据结构和复杂的程算法中没有大型数据结构和复杂的程序。序。第第3 3章章 数据完整性机制数据完整性机制 基本概述基本概述vMD5以以512位分位分组组来来处处理理输输入的信息,且每一分入的信息,且每一分组组又被划分又被划分为为16个个32位子分位子分组组v经过经过了一系列的了一系列的处处理后,算法的理后,算法的输输出由出由四个四个32位位分分组组组组成,将成,将这这四个四个32位分位分组组连接连接后将生成一个后将生成一个128位位消息摘要消息摘要。 v每组:每组: 512 128,位数是原来的位数是原来的1/4,不是指所有,不是指所有信息的长度,是指每组的信息的长度,是指每组的5

54、12位被缩减到原来的位被缩减到原来的1/4,原消息额可以任意长。,原消息额可以任意长。第第3 3章章 数据完整性机制数据完整性机制 MD5MD5工作的第工作的第1 1步:填充步:填充vMD5的第的第1步是在原消息中增加填充位,目的是使原消息步是在原消息中增加填充位,目的是使原消息长长度等于一个度等于一个值值,即比,即比512的倍数少的倍数少64位位(64位留下来放原位留下来放原消息的长度)消息的长度)v例如,如果原消息例如,如果原消息长长度度为为1000位,位,则则要填充多少位?要填充多少位?v512*3-64-1000=472第第3 3章章 数据完整性机制数据完整性机制 MD5MD5工作的第

55、工作的第1 1步:填充步:填充v填充填充对对是由一个是由一个1和多个和多个0组组成的位串。成的位串。v注意填充注意填充总总是增加是增加,即使消息,即使消息长长度已度已经经是比是比512的倍数少的倍数少64。v因此,如果消息因此,如果消息长长度已度已经经是是448,则则要填充要填充512位,使位,使长长度度变变成成960位。因此,位。因此,填充填充长长度度为为1512的的值值。第第3 3章章 数据完整性机制数据完整性机制 填充过程填充过程第第3 3章章 数据完整性机制数据完整性机制 第第2 2步:添加长度步:添加长度v增加填充位后,下一步要增加填充位后,下一步要计计算算消息原消息原长长,这这个消

56、息原个消息原长长表表示示为为64位位值值,添加到加,添加到加进进填充后的消息末尾。填充后的消息末尾。v先先计计算消息算消息长长度,度,不包括填充位不包括填充位(即增加填充位前的即增加填充位前的长长度度)。例如,如果原消息例如,如果原消息为为1000位,位,则则填充填充472位,但位,但长长度度为为1000,而不是,而不是1472。第第3 3章章 数据完整性机制数据完整性机制 第第2 2步:添加长度步:添加长度v注意注意:如果消息如果消息长长度超度超过过264位位(即即64位无法表示,因位无法表示,因为为消消息太息太长长),则则只用只用长长度的低度的低64位位,即等于,即等于计计算算length

57、 mod 264。v我我们们看到,看到,这时这时消息消息长长度度为为512的倍数的倍数。第第3 3章章 数据完整性机制数据完整性机制 第第2 2步:添加长度步:添加长度第第3 3章章 数据完整性机制数据完整性机制 第第3 3步:将输入分成步:将输入分成512512位的块位的块第第3 3章章 数据完整性机制数据完整性机制 第第4 4步:初始化链接变量步:初始化链接变量vA,B,C,D都是都是32位的链接变量(位的链接变量(Chaining Variable),实际是常量实际是常量,A=0 x01234567,B=0 x89abcdef,C=0 xfedcba98,D=0 x76543210。第第

58、3 3章章 数据完整性机制数据完整性机制 第第5 5步:处理块步:处理块v预处理结束后,开始实际的计算,对消息中的每个预处理结束后,开始实际的计算,对消息中的每个512512位块位块计算计算4 4轮,在每一轮中每个小块按不同的顺序参与运算轮,在每一轮中每个小块按不同的顺序参与运算v4 4轮的第一步进行不同的轮的第一步进行不同的P P处理,其他步骤相同。处理,其他步骤相同。第第3 3章章 数据完整性机制数据完整性机制 第第5 5步:处理块步:处理块1 1、将四个链接变量复制到四个变量中、将四个链接变量复制到四个变量中v使使a=a=A A,b b= =B B,c c= =C C,d d=D=D,实

59、际上,这个算法将实际上,这个算法将a a、b b、c c、d d组合成组合成128128位位寄存器寄存器( (abcdabcd) ),寄存器寄存器( (abcdabcd) )在实际算法运算在实际算法运算中保存中间结果和最终结果中保存中间结果和最终结果。第第3 3章章 数据完整性机制数据完整性机制 第第5 5步:处理块步:处理块2 2、将当前、将当前512512位块分解为位块分解为1616个个子块,子块,每个子块为每个子块为3232位位3 3、四轮四轮的每一轮有的每一轮有1616次迭代(共次迭代(共6464次迭代),每一次迭代处次迭代),每一次迭代处理一个块中的理一个块中的1616个子块。个子块

60、。第第3 3章章 数据完整性机制数据完整性机制 第第5 5步:处理块步:处理块v每一轮(每一轮(1616次迭代)的输入如下:次迭代)的输入如下:( (a)16a)16个子块个子块(32(32位位) ) M0,M1,M15 ( (b)b)变量变量a,b,c,da,b,c,d(每个每个3232位)位)( (c)c)常量常量t t(16/6416/64个,每个个,每个3232位)位) 表示为表示为tk,其中其中k为为164。由于有四。由于有四轮轮,因此每,因此每一一轮轮用用64个个t值值中的中的16个个( (d)Sd)S ( (循环左移循环左移S S位位) )第第3 3章章 数据完整性机制数据完整性

温馨提示

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

评论

0/150

提交评论