《消息认证技术》PPT课件.ppt

上传人:小飞机 文档编号:5676251 上传时间:2023-08-08 格式:PPT 页数:44 大小:397KB
返回 下载 相关 举报
《消息认证技术》PPT课件.ppt_第1页
第1页 / 共44页
《消息认证技术》PPT课件.ppt_第2页
第2页 / 共44页
《消息认证技术》PPT课件.ppt_第3页
第3页 / 共44页
《消息认证技术》PPT课件.ppt_第4页
第4页 / 共44页
《消息认证技术》PPT课件.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《《消息认证技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《消息认证技术》PPT课件.ppt(44页珍藏版)》请在三一办公上搜索。

1、4.1 Hash函数4.2 消息认证码4.3 MD5算法4.4 SHA-1算法4.5 Hash函数的攻击分析小结习题,消息摘要函数、散列函数或杂凑函数,记为h=H(M)。我们把Hash函数值h称为输入数据M的“数字指纹”。Hash函数的这种单向性特征和输出数据长度固定的特征使得它可以用于检验消息的完整性是否遭到破坏。如果消息或数据被篡改,那么数字指纹就不正确了。,4.1 Hash函数,用做消息认证的Hash函数具有如下一些性质:(1)消息M可以是任意长度的数据。(2)给定消息M,计算它的Hash函数值h=H(M)是很容易的。(3)任意给定,则很难找到M使得h=H(M),即给出Hash函数值,要

2、求输入M在计算上是不可行的。这说明Hash函数的运算过程是不可逆的,这种性质被称为函数的单向性。(4)给定消息M和其Hash函数值H(M),要找到另一个M,且MM,使得H(M)=H(M)在计算上是不可行的,这条性质被称为抗弱碰撞性。,抗弱碰撞性保证对于一个消息M及其Hash函数值,无法找到一个替代消息M,使它的Hash函数值与给定的Hash函数值相同。这条性质可用于防止伪造。抗强碰撞性对于消息Hash函数的安全性要求更高。这条性质保证了对生日攻击方法的防御能力。,碰撞性是指对于两个不同的消息M和M,如果它们的摘要值相同,则发生了碰撞。虽然可能的消息是无限的,但可能的摘要值却是有限的。如Hash

3、函数MD5,其Hash函数值长度为128位,不同的Hash函数值个数为2128。因此,不同的消息可能会产生同一摘要,碰撞是可能存在的。但是,Hash函数要求用户不能按既定需要找到一个碰撞,意外的碰撞更是不太可能的。显然,从安全性的角度来看,Hash函数输出的比特越长,抗碰撞的安全强度越大。,4.1.1 一个简单的Hash函数基于安全强度的需要,现有的Hash函数一般都十分复杂。本节我们介绍一个简单的Hash函数,便于建立对Hash函数的感性认识。对于明文m,按每组n比特进行划分,如果最后一组长度不够,则补充0。不妨设划分为r组,mi=mi1,mi2,min,1ir,mij=0或1,然后将各分组

4、逐比特进行模2加运算,则输出为h=h1,h2,hn,其中h1=m11+m21+mr1(mod 2),hn=m1n+m2n+mm(mod 2)。从定义可见,hi表示所有分组的第i比特进行模2加,因此,若消息改变,摘要值也会随之改变。,一个例外的情况是,若消息出错,而摘要值仍然不变的概率为2-n。当n充分大时,出错的概率或者说消息被篡改的概率非常小,视为小概率事件,可忽略不计。,4.1.2 完整性检验的一般方法消息完整性检验的一般机制如图4-1-1所示。无论是存储文件还是传输文件,都需要同时存储或发送该文件的数字指纹;验证时,对于实际得到的文件重新产生其数字指纹,再与原数字指纹进行对比,如果一致,

5、则说明文件是完整的,否则,是不完整的。,图 4-1-1 消息完整性检验的一般机制,在4.1节中我们简单介绍了消息的完整性检验,这只能检验消息是否是完整的,不能说明消息是否是伪造的。因为,一个伪造的消息与其对应的数字指纹也是匹配的。消息认证具有两层含义:一是检验消息的来源是真实的,即对消息的发送者的身份进行认证;二是检验消息是完整的,即验证消息在传送或存储过程中未被篡改、删除或插入等。,4.2 消 息 认 证 码,产生消息的数字指纹的方法很多。当需要进行消息认证时,仅有消息作为输入是不够的,需要加入密钥K,这就是消息认证的原理。能否认证,关键在于信息发送者或信息提供者是否拥有密钥K。消息认证码(

6、Message Authentication Code,MAC)通常表示为MAC=CK(M)其中:M是长度可变的消息;K是收、发双方共享的密钥;函数值CK(M)是定长的认证码,也称为密码校验和。MAC是带密钥的消息摘要函数,即一种带密钥的数字指纹,它与不带密钥的数字指纹是有本质区别的。,1.消息认证认证码被附加到消息后以MMAC方式一并发送,接收方通过重新计算MAC以实现对M的认证,如图4-2-1所示。,图 4-2-1 消息认证,假定收、发双方共享密钥K,如果接收方收到的MAC与计算得出的MAC一致,那么可以得出如下结论:(1)接收方确信消息M未被篡改。此为完整性验证。(2)接收方确信消息来自

7、所声称的发送者,因为没有其他人知道这个共享密钥,所以其他人也就不可能为消息M附加合适的MAC。此为消息源验证。,2.消息认证与保密在消息认证中,消息以明文方式传送,这一过程只提供认证而不具备保密性。如图4-2-2所示提供了一种既加密又认证的方式,发送方发送EK2(M)CK1(M)。该种处理方式除具备息认证的功能外,还具有保密性。,图 4-2-2 消息认证与保密,3.密文认证改变消息认证与保密中加密的位置,得到另外一种消息保密与认证方式,即密文认证,如图4-2-3所示。该种处理方式先对消息进行加密,然后再对密文计算MAC,传送EK2(M)CK1(EK2(M)给接收方。接收方先对收到的密文进行认证

8、,认证成功后,再解密。,图 4-2-3 密文认证,MD表示消息摘要(Message Digest,MD)。MD4算法是1990年由Ron Rivest设计的一个消息摘要算法,该算法的设计不依赖于任何密码体制,采用分组方式进行各种逻辑运算而得到。1991年MD4算法又得到了进一步的改进,改进后的算法就是MD5算法。MD5算法以512 bit为一块的方式处理输入的消息文本,每个块又划分为16个32 bit的子块。算法的输出是由4个32 bit的块组成的,将它们级联成一个128 bit的摘要值。MD5算法如图4-3-1所示,包括以下几个步骤。,4.3 MD5算法,图 4-3-1 MD5算法,(1)填

9、充消息使其长度正好为512 bit的整数倍L。首先在消息的末尾处附上64 bit的消息长度的二进制表示,大小为n(mod 264),n表示消息长度。然后在消息后面填充一个“1”和多个“0”,填充后的消息恰好是512 bit的整数倍长L。Y0,Y1,YL-1表示不同的512 bit长的消息块,用M0,M1,MN1表示各个Yq中按32 bit分组的字,N一定是16的整数倍。,(2)初始化缓冲区。算法中使用了128 bit的缓冲区,每个缓冲区由4个32 bit的寄存器A、B、C、D组成,先把这4个寄存器初始化为A=01 23 45 67 B=89 AB CD EFC=FE DC BA 98D=76

10、54 32 10,(3)处理512 bit消息块Yq,进入主循环。主循环的次数正好是消息中512 bit的块的数目L。先从Y0开始,上一循环的输出作为下一循环的输入,直到处理完YL-1为止。消息块Yq的处理,以当前的512 bit数据块Yq和128 bit缓冲值A、B、C、D作为输入,并修改缓冲值的内容。消息块的处理包含4轮操作,每一轮由16次迭代操作组成,上一轮的输出作为下一轮的输入,如图4-3-2所示。4轮处理具有相似的结构,但每轮处理使用不同的非线性函数,如图4-3-3所示。,图 4-3-2 消息块处理的主循环,图 4-3-3 某一轮的执行过程,4个非线性函数分别为F(X,Y,Z)=(X

11、Y)(Z)G(X,Y,Z)=(XZ)(Y)H(X,Y,Z)=XYZI(X,Y,Z)=Y(X)各种运算符号的含义:XY表示X与Y按位逻辑“与”;XY表示X与Y按位逻辑“或”;XY表示X与Y按位逻辑“异或”;表示X按位逻辑“补”;X+Y表示整数模232加法运算;Xs表示将X循环左移s个位置。,常数表Ti(1i64)共有64个元素,每个元素长为32 bit,Ti232ABS(sin(i),其中i是弧度。处理每一个消息块Yi时,每一轮使用常数表Ti中的16个,正好用4轮。(4)输出。每一轮不断地更新缓冲区A、B、C、D中的内容,4轮之后进入下一个主循环,直到处理完所有消息块为止。最后输出的就是运算结束

12、时缓冲区中的内容。,图 4-4-1 SHA1算法,(1)填充消息。首先将消息填充为512的整数倍,填充方法与MD5算法相同。与MD5算法不同的是SHA-1的输入为长度小于264 bit的消息。(2)初始化缓冲区。初始化160 bit的消息摘要缓冲区(即设定IV值),该缓冲区用于保存中间和最终摘要结果。每个缓冲区由5个32 bit的寄存器A、B、C、D、E组成,初始化为 A=67 45 23 01 B=EF CD AB 89 C=98 BA DC FE D=10 32 54 76 E=C2 D2 E1 F0,(3)处理512 bit消息块Yq,进入主循环。主循环的次数正好是消息中512 bit的

13、块的数目L。先从Y0开始,以上一循环的输出作为下一循环的输入,直到处理完YL-1为止。主循环有4轮,每轮20次操作(MD5算法有4轮,每轮16次操作)。每次操作对A、B、C、D和E中的3个做一次非线性函数运算,然后进行与MD5算法中类似的移位运算和加运算。,四个非线性函数为ft(X,Y,Z)=(XY)(Z)(0t19)ft(X,Y,Z)=XYZ(20t39)ft(X,Y,Z)=(XY)(XZ)(YZ)(40t59)ft(X,Y,Z)=XYZ(60t79)该算法使用了常数序列Kt(0t79),分别为Kt=5a827999(0t19)Kt=6ed9eba1(20t39)Kt=8f1bbcdc(40

14、t59)Kt=ca62c1d6(60t79),用下面的算法将消息块从16个32 bit子块变成80个32 bit子块(W0到W79):Wt=Mt(0t15)Wt=(Wt-3Wt-8Wt-14Wt-16)1(16t79),该算法主循环4轮,每轮20次,0t79,每一次的变换的基本形式是相同的:A(E+ft(B,C,D)+(A5)+Wt+KtB=AC=(B30)D=CE=D其中:(A5)表示寄存器A循环左移5 bit,(B30)表示寄存器K循环左移30 bit。80次处理完后,处理下一个512 bit的数据块,直到处理完YL-1为止。最后输出ABCDE级联后的结果。SHA-1算法与MD5算法的比较

15、如表4-4-1所示。,表4-4-1 SHA-1算法与MD5算法的比较,Hash函数须满足4.1节的5条性质,然而,抗强碰撞性对于消息Hash函数的安全性要求是非常高的。例如,MD5算法输出的Hash函数值总数为2128,SHA-1算法输出的Hash函数值总数为2160,这说明可能Hash函数值是有限的,而输入的消息是无限的,因此,函数的碰撞性是可能存在的。评价Hash函数的一个最好的方法是看攻击者找到一对碰撞消息所花的代价有多大。一般地,假设攻击者知道Hash函数,攻击者的主要目标是找到一对或更多对碰撞消息。目前已有一些攻击Hash函数的方案和计算碰撞消息的方法,这些方法中的生日攻击方法可用于

16、攻击任何类型的Hash函数方案。,4.5 Hash函数的攻击分析,生日攻击方法只依赖于消息摘要的长度,即Hash函数值的长度。生日攻击给出消息摘要长度的一个下界。一个40 bit长的消息摘要是很不安全的,因为仅仅用220(大约一百万)次Hash函数值的随机计算就可至少以1/2的概率找到一对碰撞。为了抵抗生日攻击,通常建议消息摘要的长度至少应为128 bit,此时生日攻击需要约264次Hash函数值的计算。,除生日攻击法外,对一些类型的Hash函数还有一些特殊的攻击方法,例如,中间相遇攻击法、修正分组攻击法和差分分析法等。值得一提的是,山东大学王小云教授等人于2004年8月在美国加州召开的国际密

17、码大会(Crypto2004)上所做的Hash函数研究报告中指出,他们已成功破译了MD4、MD5、HAVAL128、RIPEMD128等Hash算法。最近国际密码学家Lenstra利用王小云等人提供的MD5碰撞,伪造了符合X.509标准的数字证书,这就说明了MD5算法的破译已经不仅仅是理论破译结果,而是可以导致实际的攻击,MD5算法的撤出迫在眉睫。他们的研究成果得到了国际密码学界专家的高度评价,他们找到的碰撞基本上宣布了MD5算法的终结,这一成就或许是近年来密码学界最具实质性的研究进展。,在MD5算法被以王小云为代表的中国专家攻破之后,世界密码学界仍然认为SHA-1算法是安全的。2006年2月

18、,美国国家标准技术研究院发表申明,SHA-1算法没有被攻破,并且没有足够的理由怀疑它会很快被攻破,开发人员在2010年前应该转向更为安全的SHA-256和SHA-512算法。然而,一周之后,王小云就宣布了攻破SHA-1算法的消息。因为SHA-1算法在美国等国家有更加广泛的应用,密码被破的消息一出,在国际上的反响可谓石破天惊。换句话说,王小云的研究成果表明了电子签名从理论上讲是可以伪造的,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。,(1)用做消息认证的摘要函数具有单向性、抗碰撞性。单向函数的优良性质,使其成为公钥密码、消息压缩的数学基础。(2)消息认证码特指使用

19、收、发双方共享的密钥K和长度可变的消息M,输出长度固定的函数值MAC,也称为密码校验和。MAC就是带密钥的消息摘要函数,或称为一种带密钥的数字指纹,它与普通摘要函数(Hash函数)是有本质区别的。,小 结,(3)消息完整性校验的一般准则是将实际得到的消息的数字指纹与原数字指纹进行比对。如果一致,则说明消息是完整的,否则,消息是不完整的。因产生数字指纹不要求具有可逆性,加密函数、摘要函数均可使用,且方法很多。(4)MD5和SHA-1算法都是典型的Hash函数,MD5算法的输出长度是128 bit,SHA-1算法的输出长度是160 bit。从抗碰撞性的角度来讲,SHA-1算法更安全。为了抵抗生日攻

20、击,通常建议消息摘要的长度至少应为128 bit。,一、填空题1.2004年8月,山东大学王小云教授等人在美国加州召开的国际密码大会上首次宣布他们已成功破译了、HAVAL-128、RIPEMD-128等4个著名的密码算法。2.消息认证具有两层含义:一是检验消息的 是真实的,即对的身份进行认证;二是检验消息是,即验证消息在传送或存储过程中未被篡改、删除或插入等。,习 题,3.Hash函数的输入长度是,输出长度是,这个定长的Hash值称为输入数据的Hash值或消息摘要。4.消息完整性校验的一般准则是将消息的数字指纹与原数字指纹进行比对。如果一致,则说明消息是,否则,消息是。,二、简答题1.什么是MAC?2.MD5算法和SHA-1算法的区别是什么?,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号