资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第八章 信息认证和散列函数,(,Message Authentication and Hash Functions),1,信息认证,网络系统安全要考虑两个方面。一方面,用密码保护传,送的信息使其不被破译;另一方面,就是防止对手对系统进,行主动攻击,如伪造,篡改信息等。认证(,authentication,),则是防止主动攻击的重要技术,它对于开放的网络中的各种,信息系统的安全性有重要作用。认证的主要,目的,有二:,第一,验证信息的发送者是真正的,而不是冒充的,此,为信源识别;第二,验证信息的完整性,在传送或存储过,程中未被篡改,重放或延迟等。,保密和认证同时是信息系统安全的两个方面,但它们,是两个不同属性的问题,认证不能自动提供保密性,而,保密性也不能自然提供认证功能。一个纯,认证系统,的模,型如下图所示:,窜扰者,信宿,信源,认证编码器,认证译码器,信道,安全信道,密钥源,在这个系统中的发送者通过一个公开的无扰信道将消息,送给接收者,接收者不仅想收到消息本身,而且还要验证消,息是否来自合法的发送者及消息是否经过篡改。系统中的密,码分析者不仅要截收和破译信道中传送的密报,而且可伪造,密文送给接收者进行欺诈,将其称为系统的窜扰者,(tamper),更加合适。实际认证系统可能还要防止收方、发方之间的相,互欺诈。,上述标出的认证编码器和认证译码器可抽象为认证函数。,一个安全的认证系统,首先要选好恰当的,认证函数,,然后在,此基础上,给出合理的,认证协议,(Authentication Protocol),。,2,认证函数,(,Authentication Functions),可用来做认证的函数分为三类:,(1),信息加密函数,(Message encryption),用完整信息的密文作为对信息的认证。,(2),信息认证码,MAC,(Message Authentication Code),是对信源消息的一个编码函数。,(3),散列函数,(Hash Function),是一个公开的函数,它将任意长的信息映射成一个固定长度的信息,。,对于(,1,),,,用信息加密函数作认证的方式,教材,P,239-242,,给出明白的叙述。信息加密函数分二种,一种,是常规的对称密钥加密函数,另一种是公开密钥的双密,钥加密函数。下图的通信双方是,用户,A,为发信方,用户,B,为接收方。用户,B,接收到信息后,通过解密来判决信息,是否来自,A,,信息是否是完整的,有无窜扰。,信源,信宿,M,E,E,k,(M),D,M,A,方,B,方,k,k,D,k,(E,k,(M),(a),常规加密:具有机密性,可认证,KUb(B,方的公钥,),M,E,E,KUb,(M),D,M,A,方,B,方,D,k,R,b,(b),公钥加密:具有机密性,M,E,E,kRa,(M),D,M,A,方,B,方,KRa,KUa,(c),公钥加密:认证和签名,M,E,E,kRa,(M),E,E,KUb,(E,kRa,(M),A,方,KR,a,KU,b,D,E,kRa,(M),D,M,B,方,KR,b,KU,a,(d),公钥加密:机密性,可认证和签名,对于(,2,),,信息认证码,(MAC),设,S,为通信中的发方,A,发送的所有可能的信源集合。,为了达到防窜扰的目的,发方,A,和收方,B,设计一个编码法,则。发方,A,根据这个法则对信源,S,进行编码,信源经编码,后成为消息,,M,表示所有可能的消息集合。发方,A,通信时,,发送的是消息。用简单的例子说明:设,S=0,1,M=00,01,10,11,定义四个不同的编码法则,e0,e1,e2,e3:,00 01 10 11,e0 0 1,e1 0 1,e2 0 1,e3 0 1,这样就构成一个认证码,MAC,。发方,A,和收方,B,在通信前先,秘密约定使用的编码法则。例如,若决定采用,e0,,则以,发送消息,00,代表信源,0,;发送消息,10,代表信源,1,,我们称,消息,00,和,10,在,e0,之下是合法的。而消息,01,和,11,在,e0,之下不,合法,收方将拒收这二个消息。,信息的认证和保密是不同的两个方面,一个认证码,可具有保密功能,也可没有保密功能。,认证编码的基本方法是要在发送的消息中引入多余,度,使通过信道传送的可能序列集,Y,大于消息集,X,。对于,任何选定的编码规则,(,相应于某一特定密钥,):,发方从,Y,中选,出用来代表消息的,许用序列,,即,码字,;收方根据编码规,则唯一地确定出发方按此规则向他传来的消息。窜扰者,由于不知道密钥,因而所伪造的假码字多是,Y,中的,禁用序,列,,收方将以很高的概率将其检测出来而被拒绝。认证,系统设计者的任务是构造好的,认证码,(Authentication Code),使接收者受骗概率极小化。,令,x X,为要发送的消息,,k K,为发方选定的密钥,,y=A(x,k)Y,是表示消息,X,的,认证码字,,,A,k,=y=A(x,k)|x,X,为,认证码,。,A,k,是,Y,中的,许用,(,合法,),序列集,,易见,Y=A,k,A,k,。接收者知道认证编码,A(.,.),和密钥,k,故从收到,的,y,唯一确定出消息,x,。窜扰者虽然知道,X,Y,y,A(.,.),但不,知具体密码,k,他的目的是想伪造出一个假码字,y*,,使,y*,Ak,以使接收者收到,y*,后可用密钥,k,解密,得到一个合,法的消息,x*,。这样,窜扰者欺诈成功。,消息认证,消息认证是使意定的消息接收者能够检验收到的消,息是否真实的方法。检验内容应包括:,(1),证实报文的源和宿;,(2),报文内容是否曾受到偶然的或有意的篡改;,(3),报文的序号和时间栏。,总之,消息认证使接收者能识别:,消息的源,,,内容的真伪,,,时间性和意定的信宿,。,这种认证只在相应通信的双方之间进行,而不允许,第三者进行上述认证。认证不一定是实时的。,可用消息认证码,MAC,对消息做认证。,.,利用函数,f,和密钥,k,,对要发送的明文,x,或密文,y,变换成,r bit,的消息认证码,f(k,x)(,或,f(k,y),,将其称为认证符附加在,x(,或,y),之后发出,以,x/As(,或,y/As),表示,其中“,/”,符号表示数字的链接。接收者收到发送的消息序列后,按发方同样的方法对接收的数据,(,或解密后,),进行计算,应得到相应的,r bit,数据。,两种实用的,MAC,算法,(,一,),十进制移位加,MAC,算法,Sievi,于,1980,年向,ISO,提出一项消息认证法的建议,Davies,等,1984,,这种认证法称为,十进制移位加算法,(Decimal Shift and Add Algorithm),,简记为,DSA,。它特别适用于金融支付中的数值消息交换业务。,消息按十位十进制数字分段处理,不足十位时在右边以,0,补齐,下面举例说明。令,x,1,=1583492637,是要认证的第一组消息,令,b,1,=5236179902,和,b,2,=4893524771,为认证用的密钥。,DSA,算法是以,b,1,和,b,2,并行对,x,1,进行运算。,先算,x,1,+b,1,x,1,+b,2,(mod 10,10,),而后根据,b,2,的第一位数值,4,对,x,1,+b,2,循环左移,4,位,记作,R(4)(x,1,+b,1,),再与,(x,1,+b,1,),相加得,R(4)(x,1,+b,1,)+(x,1,+b,1,),P,1,(mod 10,10,),类似地,右路在,b1,的第一位数值,5,控制下运算结果为,R(5)(x,1,+b,2,)+(x,1,+b,2,)=Q,1,(mod 10,10,),表:左路 右路,第,b,1,=5236179902 b,2,=4893224771,一,+x,1,=1583492637 +x,1,=1583492637,轮,b1+x1=6819672539 b2+x1=6477017408,+R(4)(b1+x1)=2539681976 +R(5)(b2+x1)=1740864770,P1=9359354506 Q1=8217882178,第,+x2=5283586900 +x2=5283586900,二,P1+x2=4642941406 Q1+x2=3501469078,轮,+R(8)(P1+x2)=4294140646 +R(9)(Q1+x2)=7835014690,P2=8937082052 Q2=1336483768,.,.,第,P10=7869031447 Q10=3408472104,十,P10+Q10=1277403551 (mod 10,10,),轮,403551,+1277,认证符,404828(mod 10,10,),将第二组消息,x,2,=528358586900,分别与,P1,和,Q1,相加,其,结果又分别以,P1,和,Q1,的第一位控制循环移位后进行相加,得到,P2,和,Q2,,依此类推。直至进行十轮后得,P10,和,Q10,。,计算,P10+Q10(mod 10,10,),并将结果的后,6,位数与前,4,位数在,(mod 10,10,),下相加,得,6,位认证符!,(,二,),采用,DES,的认证算法,:,有二种基于,DES,的认证算法,一种按,CFB,模式,一种,按,CBC,模式运行。在,CBC,模式下,消息按,64bit,分组,不,足时以,0,补齐,送入,DES,系统加密,但不输出密文,只取,加密结果最左边的,r,位作为认证符。,(64bit),x1,.xn,As (24bit or 32bit),64,比特寄存器,DES,选左,r,位,+,y1,y2,yn(64bit,数组,),y,n,利用,CBC,模式下,DES,的认证法,r,取大小可由通信双方约定。美国联邦电信建议采用,24bit,见,FTSC-1026,而美国金融系统采用,32bit ABA,1986,64bit,寄存器,DES,选左边,k,位,选左边,r,位,As,+,y,i,x,i,利用工作于,CFB,模式下,DES,k,对于(,3,),,,散列函数,(Hash Function),若对相当长的文件通过签名认证怎么办?如一个合法文件有数兆字节长。自然按,160,比特分划成一块一块,用相同的密钥独立地签每一个块。然而,这样太慢。,解决的办法,:引入可公开的密码散列函数,(Hash function),。它将取任意长度的消息做自变量,结果产生规定长度的消息摘要。,如,使用数字签名标准,DSS,,消息摘要为,160,比特,,然后签名消息摘要。对数字签名来说,散列函数,h,是这样使用的:,消息:,x,任意长,消息摘要:,Z=h(x)160bits,签名:,y=sig,k,(Z)320 bits,(,签名一个消息摘要,),验证签名,:(x,y),其中,y=sig,k,(h(x),,使用公开的散列函数,h,,重构作,Z=h(x),。然后检验,V,erk,(Z,y),来看,Z,=Z,。,(,一,),无碰撞的散列函数,用以认证的散列函数,能否减弱认证方案的安全性?这个问题是要分析的。签名的对象由完整消息变成消息摘要,这就有可能出现伪造。,(a),伪造方式一:,Oscar,以一个有效签名,(x,y),开始,此处,y=sig,k,(h(x),。首先他计算,Z=h(x),,并企图找到一个,x=x,满足,h(x)=h(x),。若他做到这一点,则,(x,y),也将为有效签名。为防止这一点,要求函数,h,具有无碰撞特性。,定义,1(,弱无碰撞,),,,散列函数,h,称为是弱无碰撞的,是指对给定消息,x X,,在计算上几乎找不到异与,x,的,x X,使,h(x)=h(x),。,(b),伪造方式二:,Oscar,首先找到两个消息,x=x,满足,h(x)=h(x),然后,Oscar,把,x,给,Bob,且使他对,x,的摘要,h(x)
展开阅读全文