您好,欢迎访问三七文档
当前位置:首页 > 法律文献 > 理论/案例 > 网络安全-技术与实践06
网络安全—技术与实践(第2版)刘建伟王育民编著清华大学出版社2012-10-09普通高等教育“十一五”国家级规划教材教育部2011年精品教材课件制作人声明n 本课件总共有17个文件,版权属于刘建伟所有,仅供选用此教材的教师和学生参考。n 本课件严禁其他人员自行出版销售,或未经作者允许用作其他社会上的培训课程。n 对于课件中出现的缺点和错误,欢迎读者提出宝贵意见,以便及时修订。课件制作人:刘建伟2012年2月8日 消息认证与杂凑函数信息加密能保证真实性吗二三一杂凑(Hash)函数什么是认证一四消息认证码五应用杂凑函数的基本方式攻击者类型信息产生、处理、传输、存储的各个环节都有安全问题隐患。被动攻击(passiveattacks)信道窃听盗取存储数据主动攻击(activeattacks)假冒消息窜改消息截留消息修改数据……一、什么是认证(authentication)n 消息的内容不希望他人知道l 数据加密n 消息内容的完整性n 消息内容的真实性n 消息来源的真实性n 实体身份的真实性l 认证机制机密性(confidentiality)真实性(authenticity)认证方式的分类n 双方相互信任的认证(如企业内部人员之间)l 对称认证(symmetricauthentication)l 针对第三方的攻击,例如查验文件是否被人修改过n 双方相互不信任的认证(如商业伙伴之间)l 非对称认证(asymmetricauthentication)l 针对来自对方的攻击,例如查验对方的文件是否真实二、信息加密即保证真实吗?n 对称认证:保护消息的真实性l 保护信息来源(dataoriginauthentication)l 保护信息不被修改(theintegrityoftheinformation)n 直到1970年代末人们相信:l 如果解密后得到符合语义的消息,即可断定消息来源的真实l 因为这意味密文经过真实密钥加密而来,而掌握密钥的人是可靠的n 事实上,保证真实性不仅要求加密算法安全,还取决使用密码的模式。反例1:对称加密不能保证真实性例1.流密码:主动攻击者可以通过置乱相应密文比特,来达到改变任意明文比特的目的。例2.ECB模式分组密码:主动攻击者可以记录一些密文分组信息,用来替代其它分组。如果分组之间不相关,完全不可能检测到攻击;除非明文之间有关联(利用冗余性质)。…,m3,m2,m1…,c3,c2,c1…,k3,k2,k1…,M3,M2,M1…,C3,C2,C1KE反例2:公钥加密不能保证真实性n 使用公钥加密可以提供保密性,但不能提供认证。n 发送方A采用接收方B的公钥kBP对消息m进行加密,由于只有B知道自己的私钥kBS,所以只有B能对收到的消息准确解密。n 但是,任何人可以假冒A,用B的公钥对消息m加密,所以这种方法不能保证真实性。保证完整性的方式-1n 类似于对称密码,数据的真实性依赖于一个短密钥的保密性和真实性。首先计算:MAC=hash(m||k)l 信息的真实性依赖密钥的保密性与真实性l {m||MAC}n 消息认证码MAC:MessageAuthenticationCodel 在计算Hash值过程中,有密钥的参与。保证完整性的方式-2n 篡改检测码MDC:ManipulationDetectionCode首先计算:MDC=hash(m)l 在计算hash的过程中,没有密钥的参与。n 信息的真实性基于MDC的真实性l 例如,针对所有重要文件计算MDC,文件将发往异地的朋友,其中MDC通过电话传输。电话信道的真实通过语音识别保障。n 增加冗余并不充分保证提高抗攻击的等级l 可能发起重放攻击l 双方共享密钥,完全对等l 仅提供不可否认(non-repudiation),但实际操作也很困难注意:上述方法的前提是发送者(sender)和(receiver)要相互信任,出现纠纷无法判决三、杂凑(Hash)函数n 信息的真实性通过验证秘密的保护,以及一个短烙印(imprint)或Hash值的真实性来确认n Hash函数来源于计算机技术:将任意串压缩成固定长的比特串n 我们讨论的是密码意义的Hash函数(cryptographichashfunctions)l hashcode,hashtotal,hashresult,imprint,(cryptographic)checksum,compression,compressedencoding,authenticator,fingerprint,MessageIntegrityCode(MIC),messagedigest.1.单向杂凑(Hash)函数n 杂凑(Hash)函数是将任意长的数字串m映射成一个较短的定长输出数字串的函数,我们关心的通常是单向杂凑函数;n 分类:强单向杂凑与弱单向杂凑(无碰撞性collision-free);n 单向杂凑函数的设计理论;n 杂凑函数除了可用于数字签名方案之外,还可用于其它方面,诸如消息的完整性检测、消息的源点认证检测等。2.什么是杂凑函数n 函数y=H(x),要求将任意长度的x变换成固定长度的y,并满足:l 1.单向性:任给y,由y=H(x)计算x困难l 2.快速性:任给x,计算y=H(x)容易l 3.无碰撞:寻找x1≠x2,满足H(x1)=H(x2)是困难的。n 常用的hash函数有MD5,SHA,以及采用分组密码算法构造的hash函数(也叫做杂凑函数)等。单向杂凑函数—One-wayHashFunctionn 算法特点:不定长度输入,固定长度输出(MD5输出为16字节、SHA-1输出长度为20字节)n 雪崩效应:输入很小的变动可引起输出较大变动n 完全单向:已知输出无法推算出输入,已知两个输出的差别无法推算出输入的差别uyge7#@4*HASH算法Hi,DearLi:IhavelivedinBeijingfor10years…..…………...3.杂凑函数应满足的条件1. 函数的输入可以是任意长度;2. 函数的输出是固定长度;3. 已知x,求H(x)较为容易,可用硬件或软件实现;4. 已知h,求使得H(x)=h的x在计算上是不可行的,这一性质称为函数的单向性,称H(x)为单向杂凑函数;5. 已知x,找出y(y≠x),使得H(y)=H(x)在计算上是不可行的。6. 找出任意两个不同的输入x和y,使得H(y)=H(x)在计算上是不可行的。7. 第 给出了杂凑函数无碰撞的概念。4、Hash码的分类n 校验和:CyclicRedundancyCheck(CRC)n 消息认证码:MAC算法是使用密钥的算法n 消息检测码:MDC是无密钥算法l 单向Hash函数(one-wayhashfunction,OWHF)l 抗碰撞Hash函数(collisionresistanthashfunction,CRHF)。注:CRHF是更好的强单向Hash函数n 无碰撞性Hash函数(collisionfreehashfunction)l 无碰撞的hash函数存在l 但很难找到它们。5、单向Hash函数(OWHF)l 1.变量X可以是任意的长度,而h(X)的结果具有固定的长度nbits(64...80)l 2.抗原象攻击:已知一个杂凑值h,找一个输入串x,使得h=h(x),这在计算上是不可行的。l 3.抗碰撞攻击:找两个输入x和y(x≠y),使得h(x)=h(y),这在计算上是不可行的。定义1:单向杂凑函数满足以下条件:16、抗碰撞Hash函数(CRHF)l 1.变量X可以是任意长度,而h(X)值具有固定的nbits(128...160)长度。l 2.杂凑函数必须是单向的。l 3.杂凑函数必须是抗碰撞的:这意味着很“难”找到两个不同的消息x和y,杂凑后得到相同的值h(x)=h(y)。定义2:抗碰撞的杂凑函数满足以下条件:27、杂凑函数在密码学中的应用n 在数字签名中,杂凑函数一般用来产生“消息摘要”或“消息指纹”。这种用法是为将要签署的消息增加一个可以验证的冗余,以便这个杂凑消息包含可以识别的信息。n 在具有实用安全性的公钥密码系统中,杂凑函数被广泛地用于实现密文正确性验证机制。n 在需要随机数的密码学应用中,杂凑函数被广泛地用作实用的伪随机函数。这些应用包括:密钥协商,认证协议,电子商务协议,知识证明协议。四、消息认证码MACn MAC也称为密码校验和,它由下述函数产生:l MAC=h(M||K)l 其中,M是一个变长的消息,K是收发双方共享的密钥,h(M||k)是定长的认证符。n 在实际应用中,发送者将消息M和此认证符一起发给接收者:l (M,h(M||k))n 接收者在收到消息后,计算:MAC’=h(M||K)l 比较MAC’=MAC?l 若相等,则说明消息未被篡改;l 若不等,则说明消息被改动了。五.构造MAC的几种方法l 用分组密码构造的MAC,例如采用分组密码的CBC工作模式l 基于杂凑函数构造的MAC算法l 定制设计的MAC算法l 利用MD4,MD5,SHA等构造MAC举例说明Hash函数应用之一:构造MACn 无保密功能,只能用来认证;n MAC:为了保护消息的真实性,我们可以首先计算MAC=h(k||m),然后将其附着在信息的后面,即{m,h(k||m)}。n 现在消息的真实性依赖于共享密钥的真实性和保密性。任何拥有这一密钥的人均可以验证该消息的真实性。n 因此,对消息真实性的保护已经转化成安全地在通信双方之间建立共享密钥的问题。Hash函数应用之二:构造MDCn MDC:如果采用MDC,消息的真实性就转化成检验一个固定长度的比特串的真实性(优点:不需共享密钥),即MDC=h(m)n 需要认证信道传输MDC,也就是说,发送者需要将MDC通过一特定的信道传送给对方。例如,发送者可以打电话告诉对方MDC值。而这个消息的真实性依赖于电话中对于发送者声音的确认。n 为避免纠纷,h应为抗碰撞的杂凑函数(CRHF)l 发送者发送:ml 接收者验证:h(m’)=h(m)?MDC数学表示n 信息X被分为t个分组:X1,X2,…,Xt(如必要,需padding)计算:H0=IV,Hi=f(Xi,Hi-1),…,h(X)=g(Ht)l h为Hash函数,f为轮函数,g为输出变换l IV(Hash函数的部分)和padding(填充)将对安全有重要影响。迭代Hash函数六.应用杂凑函数的基本方式kEk[M||H(M)]kH(M)MHEDMH比较||1.既提供保密性,又提供消息认证2.仅提供消息认证MH||EkEk[H(M)]Dk比较MH3.MD系列杂凑函数介绍RonRivest设计的系列杂凑函数系列:MD4[Rivest1990,1992,1995;RFC1320]MD5是MD4的改进型[RFC1321]MD2[RFC1319],已被Rogier等于1995年攻破较早被标准化组织IETF接纳,并已获得广泛应用安全性介绍3.MD系列杂凑函数介绍(续)RonRivest设计的系列杂凑函数系列:MD2[RFC1319],已被Rogier等于1995年攻破MD4[RFC1320],已被攻破;MD5是MD4的改进型[RFC1321],被山东大学王小云攻破。Hash值长度为128bits。MD5被标准化组织IETF接纳并获得广泛应用;但是,目前MD5已经过时,不能再使用。SHA和SHA-1NIST和NSA为配合DSS,设计了安全杂凑标准(SHS),其算法为SHA[FIPSPUB180],修改的版本被称为SHA-1[FIPSPUB180-1]。SHA/SHA-1采用了与MD4相似的设计准则,其结构也类似于MD4,但其输出为160bit。王小云声称,SHA-1已经破了一半,因此世界上正在转向采用SHA-256和SHA-512。SHA与MD4和MD5的比较MD4SHAMD
本文标题:网络安全-技术与实践06
链接地址:https://www.777doc.com/doc-5719894 .html