crypto4c-ch11-消息认证和Hash函数.ppt
《crypto4c-ch11-消息认证和Hash函数.ppt》由会员分享,可在线阅读,更多相关《crypto4c-ch11-消息认证和Hash函数.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、B第第11章章 消息认证和散列函数消息认证和散列函数11.1 对认证的要求对认证的要求11.2 认证函数认证函数11.3 消息认证码消息认证码MAC11.4 散列函数散列函数11.5 散列函数和散列函数和MAC的安全性的安全性B消息消息认证认证认证和加密不同。认证和加密不同。消息认证消息认证是验证消息完整性的一种机制,能是验证消息完整性的一种机制,能发现对消息的篡改或假冒。发现对消息的篡改或假冒。使用对称算法可产生消息认证码使用对称算法可产生消息认证码MAC使用公钥算法可对消息进行签名使用公钥算法可对消息进行签名身份认证是鉴别通信对方的身份是否属实。身份认证是鉴别通信对方的身份是否属实。散列函
2、数散列函数是一个单向的消息摘要函数,在产是一个单向的消息摘要函数,在产生生MAC、签名中有重要用途。、签名中有重要用途。B11.1 认证需求认证需求对网络通信的攻击对网络通信的攻击窃听窃听流量分析流量分析伪装(假冒)伪装(假冒)篡改内容篡改内容修改顺序修改顺序修改时间(包括重放)修改时间(包括重放)发送方抵赖(拒绝承认曾发出过某消息)发送方抵赖(拒绝承认曾发出过某消息)接收方抵赖接收方抵赖B11.2 认证函数认证函数用于用于产生认证符产生认证符的函数类型的函数类型1.对称加密对称加密2.公钥加密公钥加密3.消息认证码消息认证码(MAC)4.散列函数散列函数(Hash)B对称加密能否提供认证对称
3、加密能否提供认证由于密钥没有第三方知道,所以接收方应该由于密钥没有第三方知道,所以接收方应该可以确信消息的来源真实性。可以确信消息的来源真实性。这这并不绝对并不绝对,因为存在一种可能性,是对密,因为存在一种可能性,是对密文的篡改。文的篡改。问题:对密文的篡改,能否一定被察觉?问题:对密文的篡改,能否一定被察觉?除非已知加密前明文的结构特征除非已知加密前明文的结构特征(比如是通常文比如是通常文本本),而且篡改恰好导致解密后明文丧失了原有,而且篡改恰好导致解密后明文丧失了原有特征,则可怀疑有篡改特征,则可怀疑有篡改B篡改密文,察觉?篡改密文,察觉?CBC模式加密得到密文模式加密得到密文某处被窜改,
4、导致其后续部分解密失败某处被窜改,导致其后续部分解密失败RC4加密中加密中对密文部分比特的篡改导致明文对应部分解密对密文部分比特的篡改导致明文对应部分解密错误(如何察觉?)错误(如何察觉?)随意伪造的密文有可能恰好解密为有效的随意伪造的密文有可能恰好解密为有效的明文明文结论:结论:加密并不能完全抵抗篡改或假冒加密并不能完全抵抗篡改或假冒B教训:对密文的保护教训:对密文的保护在加密之前,给明文在加密之前,给明文添加结构特征添加结构特征M|H(M)加密加密E(M|H(M),K)=C传输有可能出错或被篡改传输有可能出错或被篡改C会变为会变为C解密解密判断恢复的明文是否符合判断恢复的明文是否符合M|H
5、(M)的结构特征的结构特征B公钥加密公钥加密提供保密性提供保密性A使用使用B的公钥加密消息,这不能提供认证。的公钥加密消息,这不能提供认证。提供认证提供认证A使用自己的私钥加密消息,这不能提供保密性。使用自己的私钥加密消息,这不能提供保密性。同时提供保密性和认证同时提供保密性和认证A可以先使用自己的私钥加密消息(即签名),再可以先使用自己的私钥加密消息(即签名),再用用B的公钥加密。的公钥加密。亦需要给明文消息添加结构特征亦需要给明文消息添加结构特征B11.4 Hash函数函数输入是变长的消息输入是变长的消息M,输出是,输出是定长的散列码定长的散列码H(M),也称为散列值,不使用密钥。也称为散
6、列值,不使用密钥。Hash函数的函数的用途用途给明文增加结构特征以保护密文给明文增加结构特征以保护密文产生认证符,用于消息认证产生认证符,用于消息认证数字签名数字签名从口令衍生密钥从口令衍生密钥挑战挑战-应答认证协议中应答认证协议中也用来产生随机数也用来产生随机数B散列函数的基本用途散列函数的基本用途M|EHMDH(M)密文HM|EHMDE(K,H(M)HM|EHMDE(PRa,H(M)H(1)(2)(3)B散列函数的基本用途散列函数的基本用途M|EHMDE(PRa,H(M)HE密文DKPRaM|H|HSMH(M|S)|SM|H|HE密文DSMH(M|S)|S(4)(5)(6)B散列函数散列函
7、数 h=H(x)函数参数函数参数输入:可以任意长度输入:可以任意长度输出:固定长度输出:固定长度n比特,一般比特,一般n=128、160位位函数特性函数特性单向性单向性:给定:给定h,要找,要找x使使H(x)h是困难的是困难的抗弱碰撞性抗弱碰撞性:对于给定的对于给定的x,找找y,使,使H(y)H(x)是困难的是困难的抗强碰撞性抗强碰撞性:找找x和和y,使,使H(x)H(y)是困难的是困难的*如果碰撞则意味着数字签名容易被伪造如果碰撞则意味着数字签名容易被伪造/欺骗欺骗B单向性单向性若若h=H(M)不满足单向性,则由不满足单向性,则由h可计算出可计算出M。对于使用秘密值对于使用秘密值S的方法,攻
8、击者可通过截获消息得的方法,攻击者可通过截获消息得到到S。攻击者观察到攻击者观察到H(M|S),计算出计算出M|S,由于由于M以明文以明文形式传输,则攻击者得到形式传输,则攻击者得到S。M|H|HSMH(M|S)|SB抗弱碰撞性抗弱碰撞性若若h=H(M)不满足抗弱碰撞性,则攻击者可伪造消息不满足抗弱碰撞性,则攻击者可伪造消息而不被察觉。而不被察觉。攻击者截获传输中的消息攻击者截获传输中的消息M|E(K,H(M),由明文形由明文形式的式的M计算出计算出H(M),再伪造另一条消息,再伪造另一条消息M,使,使H(M)=H(M),再把,再把M|E(K,H(M)传给接收方。传给接收方。M|EHMDE(K
9、,H(M)HB简单散列函数简单散列函数散列函数运算过程散列函数运算过程输入:输入:n位分组的序列位分组的序列输出:输出:n位散列值位散列值每次处理一个分组,直到所有分组都被处理完每次处理一个分组,直到所有分组都被处理完最简单的散列函数最简单的散列函数将每个分组的相应位异或,即将每个分组的相应位异或,即不满足抗弱碰撞性不满足抗弱碰撞性加以改进加以改进每处理完一个分组后每处理完一个分组后将散列值移位一次将散列值移位一次B改进的简单散列函数改进的简单散列函数运算过程运算过程n位散列值的初值为位散列值的初值为0依次处理每个依次处理每个n位分组:位分组:将当前的散列值循环左移一次将当前的散列值循环左移一
10、次将该分组与散列值异或将该分组与散列值异或不满足抗弱碰撞性不满足抗弱碰撞性很容易产生一条新消息,使之与给定的消息具有很容易产生一条新消息,使之与给定的消息具有相同的散列码相同的散列码设传输中的消息为设传输中的消息为M|E(K,H(M),则攻击者由则攻击者由M计算出计算出H(M),将将H(M)循环左移一次循环左移一次,得到得到H(M),再产生一个再产生一个新分组新分组bx,使使H(M)bx=H(M)。B简单散列函数简单散列函数若对明文消息若对明文消息M和其散列值都加密,则能否保证数据和其散列值都加密,则能否保证数据完整性?完整性?下述加密方法下述加密方法:将每个分组的相应位异或,生成散列码,即将
11、每个分组的相应位异或,生成散列码,即利用利用CBC方式对消息和散列码都加密,生成密文方式对消息和散列码都加密,生成密文B生日攻击生日攻击发送方对消息发送方对消息M“签名签名”,用其私钥对用其私钥对n位散列码加密位散列码加密并将加密后的散列码附于消息之后。并将加密后的散列码附于消息之后。攻击者产生攻击者产生M的的2n/2种变式种变式,且每种变式表达相同的,且每种变式表达相同的意义。攻击者再伪造一条消息意义。攻击者再伪造一条消息M,并产生,并产生M的的2n/2种种变式,攻击者准备用变式,攻击者准备用M替代替代M。比较上述两个集合,找出产生相同散列码的一对消比较上述两个集合,找出产生相同散列码的一对
12、消息。根据息。根据生日悖论生日悖论,找到这对消息的概率大于,找到这对消息的概率大于0.5。攻击者将攻击者将M的有效变式提供给发送方签名,将该签名的有效变式提供给发送方签名,将该签名附于附于M的有效变式之后,发送给接收方。由于两个的有效变式之后,发送给接收方。由于两个变式的散列码相同,所以它们产生的签名也相同。变式的散列码相同,所以它们产生的签名也相同。B生日问题生日问题最多找最多找365+1个人,则必有至少两个人生日相同个人,则必有至少两个人生日相同问:平均找多少个人,能以问:平均找多少个人,能以1/2的概率找到两人生日相同?的概率找到两人生日相同?(不考虑(不考虑2月月29日)日)若若k个人
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- crypto4c ch11 消息 认证 Hash 函数
限制150内