资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2020/2/2,西安电子科技大学计算机学院,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2020/2/2,西安电子科技大学计算机学院,#,单纯的加解密算法无法保证抵抗下述攻击,伪装,内容修改,顺序修改,计时修改,发送方否认,接收方否认,消息认证码,数字签名,不属于机密性范畴,属于,数据完整性,范畴,单纯的加解密算法无法保证抵抗下述攻击消息认证码数字签名不属于,Chapter 12,消息认证码,计算机与网络安全,Chapter 12,消息认证需求,消息认证函数,消息认证码,基于,Hash,函数的,MAC,基于分组密码的,MAC,:,DAA,和,CMAC,2024/11/18,西安电子科技大学计算机学院,3,消息认证需求2023/9/14西安电子科技大学计算机学院3,2024/11/18,西安电子科技大学计算机学院,4,12.1,对认证的需求,可能的攻击:,1.,泄密:将消息透漏给未授权方,2.,传输分析:分析通信双方的通信模式,3.,伪装:欺诈源向网络中插入一条消息,4.,内容修改:对消息内容的修改,5.,顺序修改:对通信双方消息顺序的修改,6.,计时修改:对消息的延时和重播,7.,发送方否认:对消息否认,8.,接收方否认:对消息否认,2023/9/14西安电子科技大学计算机学院412.1 对,2024/11/18,西安电子科技大学计算机学院,5,消息认证:验证所收到的消息,确实,是来自真实的发送方且未被修改的消息,它也可验证消息的顺序和及时性。,数字签名:是一种,认证技术,,其中的一些方法可用来抗发送方否认攻击。(接收者可验证但不能伪造),消息认证 数字签名,2023/9/14西安电子科技大学计算机学院5消息认证:验证,消息认证函数是实现消息认证的基础,其工作原理和通信领域常见的差错控制编码函数类似,都是通过对原始报文进行某种运算,产生一个定长的输出,这个输出是原始报文的“冗余信息”,即消息认证码,有时也被称为密码校验和。,2024/11/18,西安电子科技大学计算机学院,6,消息认证函数是实现消息认证的基础2023/9/14西安电子科,常用的消息认证函数包括如下两类:,利用加密函数作为消息认证函数:这种方法把原始报文加密后产生的密文作为它的消息认证码;,专用的消息认证函数:以原始报文和密钥作为输入,产生定长的输出,这个输出就是原始报文的消息认证码。可以利用运行于,CBC,模式下的常规加密算法或带密钥的,Hash,函数(,HMAC,)来构造消息认证函数。,2024/11/18,西安电子科技大学计算机学院,7,常用的消息认证函数包括如下两类:2023/9/14西安电子科,2024/11/18,西安电子科技大学计算机学院,8,12.2,认证函数,两层:产生认证符 验证,产生认证符的函数类型:,消息加密:消息的密文作为认证符。,消息认证码:消息和密钥的公开函数,产生定长的值作为认证符。,MAC:message authentication code,Hash,函数:将任意长消息映射为定长的,hash,值作为认证符。,2023/9/14西安电子科技大学计算机学院812.2 认,2024/11/18,西安电子科技大学计算机学院,9,12.2.1,消息加密,消息加密也能提供一种认证的方法,对称密码,既可以提供认证又可以提供保密性,但不是绝对的。,只有消息具有适当的结构、冗余或含有校验和,接收方才可能对消息的任何变化进行检测。,否则,认证难以完成。,严格意义上说,单独使用加密技术无法实现消息认证。(不推荐),2023/9/14西安电子科技大学计算机学院912.2.1,2024/11/18,西安电子科技大学计算机学院,10,2023/9/14西安电子科技大学计算机学院10,2024/11/18,西安电子科技大学计算机学院,11,2023/9/14西安电子科技大学计算机学院11,2024/11/18,西安电子科技大学计算机学院,12,消息加密,公钥体制中,:,加密不能提供对发送方的认证(公钥是公开的),发送方可用自己的私钥进行签名,接收方可用发送方的公钥进行验证,保密性和可认证性,2023/9/14西安电子科技大学计算机学院12消息加密公钥,2024/11/18,西安电子科技大学计算机学院,13,2023/9/14西安电子科技大学计算机学院13,2024/11/18,西安电子科技大学计算机学院,14,2023/9/14西安电子科技大学计算机学院14,2024/11/18,西安电子科技大学计算机学院,15,2023/9/14西安电子科技大学计算机学院15,2024/11/18,西安电子科技大学计算机学院,16,12.2.2,消息认证码,(MAC),一种认证技术,利用密钥来生成一个固定长度的短数据块(,MAC,),并将该数据块附加在消息之后。,MAC,的值依赖于消息和密钥,MAC=C,k,(M),=C(M,K),MAC,函数于加密类似,但,MAC,算法,不要求,可逆性,而加密算法必须是可逆的。,接收方进行同样的,MAC,码计算并验证是否与发送过来的,MAC,码相同,2023/9/14西安电子科技大学计算机学院1612.2.2,2024/11/18,西安电子科技大学计算机学院,17,MAC,特性,MAC,码是一个密码校验和,MAC=C,K,(M)=C(K,M),消息,M,的长度是可变的,密钥,K,是要保密的,且收发双方共享。,产生固定长度的认证码,MAC,算法是一个多对一的函数,多个消息对应同一,MAC,值,但是找到同一,MAC,值所对应的多个消息应该是,困难,的。,2023/9/14西安电子科技大学计算机学院17MAC 特性,2024/11/18,西安电子科技大学计算机学院,18,Message Authentication Code,2023/9/14西安电子科技大学计算机学院18Messag,2024/11/18,西安电子科技大学计算机学院,19,若相同,则有:,接收方可以相信消息未被修改。,接收方可以相信消息来自真正的发送方。,接收方可以确信消息中含有的序列号是正确的。,为什么需要使用,MAC?,有些情况只需要认证(如广播),文档的持续保护(例如解密后的保护),由于收发双方共享密钥,所以,MAC,不能提供数字签名,2023/9/14西安电子科技大学计算机学院19若相同,则有,2024/11/18,西安电子科技大学计算机学院,20,对,MACs,的要求:,抗多种攻击(例如穷举密钥攻击),且满足,:,已知一条消息和,MAC,构造出另一条具有同样,MAC,的消息是不可行的,MACs,应该是均匀分布的,MAC,应该依赖于消息的所有比特位,2023/9/14西安电子科技大学计算机学院20对MACs的,2024/11/18,西安电子科技大学计算机学院,21,2023/9/14西安电子科技大学计算机学院21,2024/11/18,西安电子科技大学计算机学院,22,2023/9/14西安电子科技大学计算机学院22,2024/11/18,西安电子科技大学计算机学院,23,12.3 HMAC,密码,hash,函数作为,MAC,:,不用分组密码,而用,hash,函数来产生,MAC,因为,hash,函数一般都较快,没有出口限制,(分组密码有出口限制),hash,函数不依赖于密钥,所以不能直接用于,MAC,建议,:,KeyedHash=Hash(Key|Message),2023/9/14西安电子科技大学计算机学院2312.3,2024/11/18,西安电子科技大学计算机学院,24,利用带密钥的,Hash,函数实现消息认证,2023/9/14西安电子科技大学计算机学院24利用带密钥的,2024/11/18,西安电子科技大学计算机学院,25,当前获得广泛应用的构造带密钥的,Hash,函数的方案是,HMAC,(,keyed-hashing for message authentication code,),它是,Bellare,等人于,1996,年提出,并于,1997,年作为,RFC2104,标准发表,并被很多因特网协议(如,IPSEC,、,SSL,)所使用。,HMAC,算法利用已有的,Hash,函数,使用不同的,Hash,函数,就可以得到不同的,HMAC,,例如选用,MD5,时的,HMAC,记为,HMAC-MD5,,选用,SHA-1,时的,HMAC,记为,HMAC-SHA1,。,2023/9/14西安电子科技大学计算机学院25当前获得广泛,HMAC,的设计目标是:,2024/11/18,西安电子科技大学计算机学院,26,可不经修改而使用现有的,Hash,函数,特别是那些易于软件实现的、源代码可方便获取且免费使用的,Hash,函数;,其中嵌入的,Hash,函数可易于替换为更快或更安全的,Hash,函数;,保持嵌入的,Hash,函数的最初性能,不因用于,HMAC,而使其性能降低;,以简单方式使用和处理密钥;,在对嵌入的,Hash,函数合理假设的基础上,易于分析,HMAC,用于鉴别时的密码强度。,HMAC的设计目标是:2023/9/14西安电子科技大学计,2024/11/18,西安电子科技大学计算机学院,27,HMAC,概览,2023/9/14西安电子科技大学计算机学院27HMAC 概,2024/11/18,西安电子科技大学计算机学院,28,2023/9/14西安电子科技大学计算机学院28,2024/11/18,西安电子科技大学计算机学院,29,HMAC,作为,RFC2104,HMAC,K,=Hash(K+XOR opad)|,Hash(K,+,XOR ipad)|M),其中,K,+,为在,K,左边填充,0,后所得的,b,位长的结果(,b,为每一消息分组的位数),opad,ipad,都是指定的填充常量,多执行了,3,次,hash,压缩函数,算法可用于,MD5,SHA-1,RIPEMD-160,中的任何一个,2023/9/14西安电子科技大学计算机学院29HMAC作为,2024/11/18,西安电子科技大学计算机学院,30,HMAC,算法的具体执行步骤如下:,在密钥,K,的右边填充一些,0,,使其成为长度为,b,比特的比特串,记为,K,+,;,计算,S,i,=,K,+,ipad,,其中,ipad,(,inner pad,)是,HMAC,算法中规定的一个长度为,b,比特的比特模式串,它等于将,00110110,(,16,进制的,36,)重复,b,/8,次后得到的比特串;,把,HMAC,的输入报文,x,=,x,1,x,2,x,L,附加在,S,i,的右端,得到,S,i,|,x,=,S,i,|,x,1,x,2,x,L,,将该比特串作为,Hash,函数,h,的输入,得到,l,比特的输出,h,(,S,i,|,x,),;,计算,S,o,=,K,+,opad,,其中,opad,(,outter pad,)是,HMAC,算法中规定的另一个长度为,b,比特的比特模式串,它等于将,01011100,(,16,进制的,5C,)重复,b,/8,次后得到的比特串;,将第,3,步得到的,h,(,S,i,|,x,),填充到,b,比特后附加在,S,o,的右端,并以该比特串作为,Hash,函数,h,的输入,得到,l,比特的输出;,将第,5,步的输出作为,HMAC,算法的最终输出结果,即为消息,x,的消息认证码,HMACk(,x,),。,2023/9/14西安电子科技大学计算机学院30HMAC算法,2024/11/18,西安电子科技大学计算机学院,31,建立在嵌入,Hash,函数基础上的所有,MAC,,其安全性在某种程度上都依赖于该,Hash,函数的强度。对于,HMAC,,可以给出,HMAC,的强度与所嵌入,Hash,函数强度之间的关系。,Bellare,等人(,1996,年)已经证明,如果攻击者已知若干(时间、消息,-MAC,)对,则成功攻击,HMAC,的概率等价于
展开阅读全文