资源描述:
《crypto4c-ch11-消息认证和hash函数1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章消息认证和散列函数11.1对认证的要求11.2认证函数11.3消息认证码MAC11.4散列函数11.5散列函数和MAC的安全性消息认证认证和加密不同。消息认证是验证消息完整性的一种机制,能发现对消息的篡改或假冒。使用对称算法可产生消息认证码MAC使用公钥算法可对消息进行签名身份认证是鉴别通信对方的身份是否属实。散列函数是一个单向的消息摘要函数,在产生MAC、签名中有重要用途。11.1认证需求对网络通信的攻击窃听流量分析伪装(假冒)篡改内容修改顺序修改时间(包括重放)发送方抵赖(拒绝承认曾发出
2、过某消息)接收方抵赖11.2认证函数用于产生认证符的函数类型1.对称加密2.公钥加密3.消息认证码(MAC)4.散列函数(Hash)对称加密能否提供认证由于密钥没有第三方知道,所以接收方应该可以确信消息的来源真实性。这并不绝对,因为存在一种可能性,是对密文的篡改。问题:对密文的篡改,能否一定被察觉?除非已知加密前明文的结构特征(比如是通常文本),而且篡改恰好导致解密后明文丧失了原有特征,则可怀疑有篡改篡改密文,察觉?CBC模式加密得到密文某处被窜改,导致其后续部分解密失败RC4加密中对密文部分比特的
3、篡改导致明文对应部分解密错误(如何察觉?)随意伪造的密文有可能恰好解密为有效的明文结论:加密并不能完全抵抗篡改或假冒教训:对密文的保护在加密之前,给明文添加结构特征M
4、
5、H(M)加密E(M
6、
7、H(M),K)=C传输有可能出错或被篡改C会变为C’解密判断恢复的明文是否符合M
8、
9、H(M)的结构特征公钥加密提供保密性A使用B的公钥加密消息,这不能提供认证。提供认证A使用自己的私钥加密消息,这不能提供保密性。同时提供保密性和认证A可以先使用自己的私钥加密消息(即签名),再用B的公钥加密。亦需要给明文消息添加
10、结构特征11.4Hash函数输入是变长的消息M,输出是定长的散列码H(M),也称为散列值,不使用密钥。Hash函数的用途给明文增加结构特征以保护密文产生认证符,用于消息认证数字签名从口令衍生密钥挑战-应答认证协议中也用来产生随机数散列函数的基本用途M
11、
12、EHMDH(M)密文HM
13、
14、EHMDE(K,H(M))HM
15、
16、EHMDE(PRa,H(M))H(1)(2)(3)散列函数的基本用途M
17、
18、EHMDE(PRa,H(M))HE密文DKPRaM
19、
20、H
21、
22、HSMH(M
23、
24、S))
25、
26、SM
27、
28、H
29、
30、HE密文DSM
31、H(M
32、
33、S))
34、
35、S(4)(5)(6)散列函数h=H(x)函数参数输入:可以任意长度输出:固定长度n比特,一般n=128、160位函数特性单向性:给定h,要找x使H(x)=h是困难的抗弱碰撞性:对于给定的x,找y,使H(y)=H(x)是困难的抗强碰撞性:找x和y,使H(x)=H(y)是困难的*如果碰撞则意味着数字签名容易被伪造/欺骗单向性若h=H(M)不满足单向性,则由h可计算出M。对于使用秘密值S的方法,攻击者可通过截获消息得到S。攻击者观察到H(M
36、
37、S),计算出M
38、
39、S,由于M以明文形式传输
40、,则攻击者得到S。M
41、
42、H
43、
44、HSMH(M
45、
46、S))
47、
48、S抗弱碰撞性若h=H(M)不满足抗弱碰撞性,则攻击者可伪造消息而不被察觉。攻击者截获传输中的消息M
49、
50、E(K,H(M)),由明文形式的M计算出H(M),再伪造另一条消息M’,使H(M’)=H(M),再把M’
51、
52、E(K,H(M))传给接收方。M
53、
54、EHMDE(K,H(M))H简单散列函数散列函数运算过程输入:n位分组的序列输出:n位散列值每次处理一个分组,直到所有分组都被处理完最简单的散列函数将每个分组的相应位异或,即不满足抗弱碰撞性加以改进每处
55、理完一个分组后将散列值移位一次改进的简单散列函数运算过程n位散列值的初值为0依次处理每个n位分组:将当前的散列值循环左移一次将该分组与散列值异或不满足抗弱碰撞性很容易产生一条新消息,使之与给定的消息具有相同的散列码设传输中的消息为M
56、
57、E(K,H(M)),则攻击者由M计算出H(M),将H(M)循环左移一次,得到H’(M),再产生一个新分组bx,使H’(M)⊕bx=H(M)。简单散列函数若对明文消息M和其散列值都加密,则能否保证数据完整性?下述加密方法:将每个分组的相应位异或,生成散列码,即利用CBC
58、方式对消息和散列码都加密,生成密文生日攻击发送方对消息M“签名”,用其私钥对n位散列码加密并将加密后的散列码附于消息之后。攻击者产生M的2n/2种变式,且每种变式表达相同的意义。攻击者再伪造一条消息M’,并产生M’的2n/2种变式,攻击者准备用M’替代M。比较上述两个集合,找出产生相同散列码的一对消息。根据生日悖论,找到这对消息的概率大于0.5。攻击者将M的有效变式提供给发送方签名,将该签名附于M’的有效变式之后,发送给接收方。由于两个变式的散列码相同,所以它们产生的