Chapter11消息认证和Hash函数《密码编码学与网络安全》2020/2/242§11.1对认证的需求可能的攻击:1.泄密2.传输分析3.伪装4.内容修改5.顺序修改6.计时修改7.发送方否认8.接收方否认2020/2/243消息认证:验证所收到的消息确实是来自真实的发送方且未被修改的消息,它也可验证消息的顺序和及时性。数字签名:是一种认证技术,其中的一些方法可用来抗发送方否认攻击。(接收者可验证但不能伪造)消息认证数字签名2020/2/244§11.2认证函数两层:产生认证符+验证产生认证符的函数类型:消息加密:消息的密文作为认证符。消息认证码:消息和密钥的公开函数,产生定长的值作为认证符。MAC:messageauthenticationcodeHash函数:将任意长消息映射为定长的hash值作为认证符。2020/2/245消息加密消息加密也能提供一种认证的方法对称密码,既可以提供认证又可以提供保密性,但不是绝对的。只有消息具有适当的结构、冗余或含有校验和,接收方才可能对消息的任何变化进行检测。否则,认证难以完成。2020/2/246P2312020/2/247消息加密公钥体制中:加密不能提供对发送方的认证(公钥是公开的)发送方可用自己的私钥进行签名接收方可用发送方的公钥进行验证保密性和可认证性2020/2/248P233-2342020/2/249消息认证码(MAC)一种认证技术利用密钥来生成一个固定长度的短数据块(MAC),并将该数据块附加在消息之后。MAC的值依赖于消息和密钥MAC=Ck(M)MAC函数于加密类似,但MAC算法不要求可逆性,而加密算法必须是可逆的。接收方进行同样的MAC码计算并验证是否与发送过来的MAC码相同2020/2/2410MAC特性MAC码是一个密码校验和MAC=CK(M)消息M的长度是可变的密钥K是要保密的,且收发双方共享。产生固定长度的认证码MAC算法是一个多对一的函数多个消息对应同一MAC值但是找到同一MAC值所对应的多个消息应该是困难的。2020/2/2411MessageAuthenticationCode2020/2/2412若相同,则有:接收方可以相信消息未被修改。接收方可以相信消息来自真正的发送方。接收方可以确信消息中含有的序列号是正确的。为什么需要使用MAC?有些情况只需要认证(如广播)以明文形式认证计算机程序……由于收发双方共享密钥,所以MAC不能提供数字签名2020/2/2413对MACs的要求:抗多种攻击(例如穷举密钥攻击)且满足:1.已知一条消息和MAC,构造出另一条具有同样MAC的消息是不可行的2.MACs应该是均匀分布的3.MAC应该依赖于消息的所有比特位2020/2/24142020/2/24152020/2/2416用对称密码产生MACs采用分组密码的链接工作模式,并把最后分组作为MACDataAuthenticationAlgorithm(DAA)是一个广泛使用的数据认证算法,基于DES-CBC(FIPSPUB113,ANSIX9.17)IV=0且最后一个分组用0填充其后以补足64位分组用DES的密文分组链接模式CBC加密消息把最后一个分组作为MAC发送或者取最后分组的左边Mbits(16≤M≤64)但是对于安全性来说,最终的MAC还是太小了2020/2/2417DataAuthenticationAlgorithm2020/2/2418Hash函数浓缩任意长的消息M到一个固定长度的取值h=H(M)通常假设hash函数是公开的且不使用密钥(MAC使用密钥)Hash函数用户检测对消息的改变多种方式工作方式常用于产生数字签名2020/2/24192020/2/24202020/2/2421Hash函数和数字签名2020/2/24222020/2/2423对Hash函数的要求1.可用于任何尺寸的消息M2.产生固定长度的输出h3.对任何消息M,计算h=H(M)是容易的。4.给定h,计算满足H(x)=h的x在计算上是不可行的•单向性5.给定x,计算满足H(y)=H(x)的y在计算上是不可行的•抗弱碰撞性(weakcollisionresistance)6.找到任何满足H(y)=H(x)的偶对(x,y),在计算上是不可行的。•抗碰撞性(strongcollisionresistance)2020/2/2424简单Hash函数举例ci——散列码的第i位,i∈[1,n]m——n位输入分组的个数bij——第i个分组的第j位imi3i2i1ib...bbbC2020/2/2425生日攻击也许认为64-bit的hash已经是安全的,但生日悖论的结果告诉我们,不!生日攻击:攻击者产生消息的2m/2种变体,且每一种具有同样含义。攻击者还可以产生一个伪造消息的2m/2种变体两个集合进行比较以发现具有同样Hash的一对消息(根据生日悖论,找到这对消息的概率大于0.5)攻击者将该有效变式提供给发送方签名,将签名附于伪造消息的有效变式后,发送给预期的接收者。结论就是用更多比特位的MAC/hash2020/2/2426小结消息认证的方法消息加密MACsHash函数安全讨论(略)2020/2/2427第11章作业思考题:11.6