单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,现代密码学理论与实践-11,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,现代密码学理论与实践-11,*,2024/11/18,现代密码学理论与实践-11,1,/35,网络信息平安Chapter 11 Message Authentication and Hash Functions,2024/11/18,现代密码学理论与实践-11,2,/35,本章要点,消息认证是用来验证消息完整性的一种机制或效劳。消息认证确保收到的数据确实和发送时的一样(即没有修改、插入、删除或重放),且发送方声称的身份是真实有效的。,对称密码在那些相互共享密钥的用户间提供认证。用消息发送方的私钥加密消息也可提供一种形式的认证。,用于消息认证的最常见的密码技术是消息认证码和平安散列(hash)函数。,MAC是一种需要使用秘密密钥的算法,以可变长的消息和秘密密钥作为输入,产生一个认证码。拥有秘密密钥的接收方产生一个认证码来验证消息的完整性。,散列函数将可变长度的消息映射为固定长度的散列值,或叫消息摘要。对于消息认证码,平安散列函数必须以某种方式和秘密密钥捆绑起来。,2024/11/18,现代密码学理论与实践-11,3,/35,报文认证,Message Authentication,消息认证(报文认证)关心的问题是,保护消息的完整性,验证发起方身份,消息源的不可否认(解决分歧),消息认证要考虑平安需求,三种消息认证的方法,消息加密,消息认证码(MAC),哈希函数,2024/11/18,现代密码学理论与实践-11,4,/35,11.1,对认证的要求,可能有下述攻击,泄密,Disclosure,,将消息透露给没有合法身份的第三方,传输分析,Traffic analysis,,分析双方通信模式,伪装,Masquerade,,欺诈源向网络中插入一条消息,内容篡改,Content modification,,对消息内容的修改,顺序篡改,Sequence modification,,对消息顺序的修改,计时篡改,Timing modification,,对消息的延时和重放,信源抵赖,Source repudiation,发送方否认发送过某消息,信宿抵赖,Destination repudiation,,接收方否认接收过某消息,2024/11/18,现代密码学理论与实践-11,5,/35,11.2,认证函数,11.2.1,消息加密,消息加密本身提供了一种认证手段,对称加密,接收方可以确信消息是由发送方产生的,因为除了接收方以外只有发送方拥有加密密钥,产生出用此密钥可以解密的密文,如果消息可以是任意的位模式,接收方无法确定收到的消息是合法明文的密文。因此,通常不管密文的值是什么,如果解密后得到的明文有合法明文的位模式,接收方都会作为真实的密文接收。,2024/11/18,现代密码学理论与实践-11,6,/35,2024/11/18,现代密码学理论与实践-11,7,/35,解决解密所得消息是否具有可读性的问题,要求明文具有某种易于识别的结构,如在加密前对每个消息附加一个帧校验序列,FCS,FCS,和加密函数执行的顺序很重要,2024/11/18,现代密码学理论与实践-11,8,/35,假设要提供认证,发送方用自己的私钥对消息加密,接收方用发送方的公钥解密(验证),就提供了认证功能。,如果发送方用私钥加密消息,再用接收方的公钥加密,就实现了既保密又认证的通信,既保密又认证的通信的代价是需要执行四次复杂的公钥算法而不是两次。,公钥加密作为认证手段,2024/11/18,现代密码学理论与实践-11,9,/35,11.2.2,消息认证码,MAC,使用密钥产生短小的定长数据分组,即所谓的密码检验MAC,将它附加在报文中。通信双方A和B共享密钥K,报文从A发往B,A计算MAC=CK(M),附在报文后发给B。B对接收到的报文重新计算MAC,并与接收到的MAC比较。如果只有收发双方知道密钥且两个MAC匹配,那么:,接收方可以确信报文未被更改;,接收方可以确信报文来自声称的发送者;,接收方可以确信报文序号正确,如果有的话。,报文认证不提供保密,MAC函数类似加密,但非数字签名,也无需可逆,将MAC直接与明文并置,然后加密传输比较常用,2024/11/18,现代密码学理论与实践-11,10,/35,MAC加密所得的消息校验和,MAC=CK(M),使用一个秘密密钥K,浓缩一个变长的消息M,产生一个固定长度的认证子,MAC是一种多对一的函数,定义域由任意长的消息组成,值域由所有可能的MAC和密钥组成。假设使用n位长的MAC,那么有2n个可能的MAC,有N条可能的消息,N2n.假设密钥长度为k,那么有2k种可能的密钥。,如N为100,n为10,共有2100不同的消息,210种不同的MAC,平均而言同一MAC可由2100/210=290条不同的消息产生。假设密钥长度为5,那么从消息集合到MAC值的集合有25=32不同映射。,可以证明,由于认证函数的数学性质,与加密相比,认证函数更不易被攻破,MAC:,消息认证码的特点,2024/11/18,现代密码学理论与实践-11,11,/35,2024/11/18,现代密码学理论与实践-11,12,/35,2024/11/18,现代密码学理论与实践-11,13,/35,散列函数,Hash Function,一个散列函数以变长的报文M作为输入,产生定长的散列码H(M),作为输出,亦称作报文摘要Message Digest.散列码是报文所有比特的函数值,具有过失检测能力,报文任意一比特的改变都将引起散列码的改变,不同的散列码使用方式,对附加了散列码的报文进行加密,使用常规加密方法仅对散列码加密,使用公开密钥方法仅对散列码加密,提供数字签名,同时提供保密和签名,可以分别使用常规方法加密报文及使用公开密钥方法加密散列码,其他,对防止加密的方法重视的原因,加密过程很慢,硬件开销大,2024/11/18,现代密码学理论与实践-11,14,/35,2024/11/18,现代密码学理论与实践-11,15,/35,2024/11/18,现代密码学理论与实践-11,16,/35,2024/11/18,现代密码学理论与实践-11,17,/35,11.3,消息认证码,MAC,对MAC的要求,假设攻击者M和C(K,M),那么构造满足C(K,M)=C(K,M)的消息M在计算上是不可行的,C(K,M)应该是均匀分布的,即对任何随机选择的消息M和M,C(K,M)=C(K,M)的概率是2-n,其中n是MAC的位数,设M是M的某个的变换,即M=f(M),如f可能表示逆转M的一位或多位,那么PrC(K,M)=C(K,M)的概率是2-n.,基于DES的消息认证码 FIPS PUB 113,该算法定义为以密码分组链接(CBC)为操作方式的用0作为初始化向量的DES,2024/11/18,现代密码学理论与实践-11,18,/35,2024/11/18,现代密码学理论与实践-11,19,/35,使用消息认证码的几种情形,相同报文进行多点播送,以明文加对应MAC的形式进行播送,接收者负责鉴别,不正确时发出告警,接收方无法对所有收到的报文进行解密工作,那么可以进行有选择地鉴别,对报文作随机检查,对明文形式的计算机程序进行鉴别,检查完整性,某些应用不关注报文的保密而更重视鉴别报文的真实性,如SNMPv3,将保密与鉴别分开,保密函数与鉴别函数的别离能提供结构上的灵活性,如在应用层完成鉴别而在较低层加密,MAC不提供数字签名,因为双方共享密钥。,2024/11/18,现代密码学理论与实践-11,20,/35,11.4,散列函数,散列函数,一个散列函数以变长的报文M作为输入,产生定长的散列码H(M),作为输出,亦称作报文摘要Message Digest.散列码是报文所有比特的函数值,具有过失检测能力,报文任意一比特的改变都将引起散列码的改变。h=H(M),报文摘要的根本原理,对任意长度的明文m,经由哈希函数(杂凑函数)h产生固定长度的哈希值h(m),用来对明文作鉴别(authentication)或数字签名(digital signature)。哈希函数值是对明文的一种“指纹(finger print)或是摘要(digest)。对哈希函数值的数字签名,就是对此明文的数字签名,可以用来提高数字签名的效率。,2024/11/18,现代密码学理论与实践-11,21,/35,2024/11/18,现代密码学理论与实践-11,22,/35,1.H,可以应用于任意大小的数据块,2.H,产生固定长度的输出,3.,对任意给定的明文,x,,计算,H(x),容易,可由硬件或软件实现,4.,对任意给定的散列码,h,,找到满足,H(x)=h,的,x,,在计算上不可行,,单向性,5.,对任何给定的分组,x,,找到满足,y,x,且,H(x)=H(y),的,y,,在计算上不可行,,抗弱碰撞性,6.,找到任何满足,H(x)=H(y),的偶对,(x,y),,,在计算上不可行,,抗强碰撞性,对散列函数的要求,h=H(M),2024/11/18,现代密码学理论与实践-11,23,/35,条件1,2,3是所谓单向性问题(One-way),条件4,5是对使用的哈希值的数字签名方法所做的平安保障,否那么攻击者可由的明文及相关的数字签名任意伪造对其他明文的签名,条件6主要用于防范所谓的生日攻击法,能满足条件1-5的,称为弱哈希函数(Weak Hash Function),能同时满足条件6的,称为强哈希函数(Strong Hash Function),应用在数字签名上的哈希函数必须是强哈希函数,强哈希函数,