资源描述
,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,第七章 消息认证与数字签名,回顾与总结,对称密码算法,运算速度快、密钥短、多种用途、历史悠久,密钥管理困难(分发、更换),非对称密码算法,只需保管私钥、可以相当长的时间保持不变、需要的数目较小,运算速度慢、密钥尺寸大、历史短,信息安全的需求,保密性(,Confidentiality,),完整性(,Integrity,),数据完整性,未被未授权篡改或者损坏,系统完整性,系统未被非授权操纵,按既定的功能运行,可用性(,Availability,),不可否认性(,Non-repudiation,),防止源点或终点的抵赖,7.1,信息认证,保证信息的完整性和抗否认性,通过信息认证和数字签名来实现,通信系统典型攻击,窃听,消息篡改,内容修改:消息内容被插入、删除、修改。,顺序修改:插入、删除或重组消息序列。,时间修改:消息延迟或重放。,冒充:从一个假冒信息源向网络中插入消息,抵赖:接受者否认收到消息;发送者否认发送过消息。,消息认证(,Message Authentication),:,是一个证实收到的消息来自可信的源点且未被篡改的过程。(防范第三方攻击),数字签名(,Digital Signature,),是一种防止源点或终点抵赖的鉴别技术。(防范通信双方的欺骗),认证的目的,认证模型,认证函数,信息认证,认证的目的,验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等。,认证系统的组成,认证编码器和鉴别译码器可抽象为认证函数。,一个安全的认证系统,需满足,意定的接收者能够检验和证实消息的合法性、,真实性和完整性,除了合法的消息发送者,其它人不能伪造合法的消息,首先要选好恰当的鉴别函数,该函数产生一个鉴别标识,然后在此基础上,给出合理的认证协议,(Authentication Protocol),,使接收者完成消息的认证。,认证函数,可用来做鉴别的函数分为三类:,(1),消息加密函数,(Message encryption),用完整信息的密文作为对信息的鉴别。,(2),消息认证码,MAC(Message,Authentication Code),公开函数,+,密钥,产生一个固定长度的值作为鉴别标识,(3),散列函数,(Hash Function),是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。,7.1.1,消息加密,消息的自身加密可以作为一个鉴别的度量。,对称密钥模式和公开密钥模式有所不同,对称密码体制加密认证,发送者,A,,接受者,B,,双方共同拥有密钥,A,把加密过的信息传送给,B,攻击者不知道如何改变密文,B,只要能顺利解出明文,就知道信息在中途没有被人更改过。,公钥密码体制加密认证,A,用私钥对明文的信息加密,由于攻击者没有,A,的私钥,不知道如何改变密文,B,能用,A,的公钥解出明文,说明没有被人更改。,这种方式既能提供认证,又能够提供数字签名。,7.1.2,消息认证码,使用一个密钥生成一个固定大小的小数据块,附加在消息后,称,MAC,(,Message Authentication Code,),或密码校验和(,cryptographic checksum,),MAC=F,K,(M),收到消息后,只需要根据密钥和消息来计算,MAC,是否等于传过来的,MAC,。,1,、接收者可以确信消息,M,未被改变。,2,、接收者可以确信消息来自所声称的发送者;,MAC,函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少。,只提供认证,不提供保密和数字签名,Why?,为何要使用消息认证码,根本上,信息加密提供的是保密性而非真实性,加密代价大,(,公钥算法代价更大,),认证函数与保密函数的分离能提供功能上的灵活性,某些信息只需要真实性,不需要保密性,广播的信息难以使用加密,(,信息量大,),网络管理信息等只需要真实性,政府,/,权威部门的公告,7.2,散列函数,Hash Function,H(M):,输入为任意长度的消息,M;,输出为一个固定长度的散列值,称为消息摘要,(Message Digest),。,这个散列值是消息,M,的所有位的函数并提供错误检测能力:消息中的任何一位或多位的变化都将导致该散列值的变化。,又称为:哈希函数、数字指纹(,Digital finger print),、压缩(,Compression),函数、紧缩(,Contraction,)函数、数据鉴别码,DAC,(,Data authentication code,)、篡改检验码,h=H(M),H,公开,散列值在信源处被附加在消息上,接收方通过重新计算散列值来确认消息未被篡改,如果要提供保密性,需要对散列值提供另外的加密保护,5.2.1,散列函数的性质,目的:产生文件、报文或其它数据块的“指纹”,可以提供保密性、认证、数字签名的作用,如果不要求提供保密性,可以采用不对整条报文加密而只对,Hash,码(也称作报文摘要)加密的方法,基本性质,能用于任何长度的数据分组,对于任何给定的,x,H(x,),要易于计算,对于任何给定的,h,,寻找,x,都是不可能的,对于任何给定的,x,,找不到,x,不等于,y,但是,H(x,)=,H(y,),寻找任何(,x,y,),使得,H(x,)=,H(y,),在计算上不可行。,散列码的不同使用方式,使用对称密码体制对附加了散列码的消息进行加密(提供认证及保密性),使用对称密码仅对附加了散列码进行加密(提供认证),使用公钥密码体制,只对散列码进行加密(提供认证及数字签名),发送者将消息,M,与通信各方共享的一个秘密值,S,串联后计算出散列值,将此值附在消息后发出去,则攻击者无法产生假消息(提供认证),不同使用方式,提供认证,A-B:,M|H(M|S),提供认证和保密性,A-B:,E(M|H(M),K),提供认证和数字签名,A-B:,M|D(H(M),K,dA,),提供认证、数字签名和保密性,A-B:,E(M|D(H(M),K,dA,),K,),几种常用的,HASH,算法,MD5,SHA-1,RIPEMD-160,MD5,简介,Merkle,于,1989,年提出,hash function,模型,Ron,Rivest,于,1990,年提出,MD4,1992,年,MD5(RFC 1321)developed by Ron,Rivest,at MIT,MD5,把数据分成,512-bit,块,MD5,的,hash,值是,128-bit,在最近数年之前,MD5,是最主要的,hash,算法,现行美国标准,SHA-1,以,MD5,的前身,MD4,为基础,2004,年,8,月,17,日的美国加州圣巴巴拉,正在召开的国际密码学会议(,Crypto2004,)。来自山东大学的王小云教授做了破译,MD5,、,HAVAL-128,、,MD4,和,RIPEMD,算法的报告。,Secure Hash Algorithm,简介,1992,年,NIST,制定了,SHA(128,位,),1993,年,SHA,成为标准(,FIPS PUB 180,),1994,年修改产生,SHA-1(160,位,),1995,年,SHA-1,成为新的标准,作为,SHA-1(FIPS PUB180-1),SHA-1,要求输入消息长度,2,64,输入按,512,位的分组进行处理的,SHA-1,的摘要长度为,160,位,基础是,MD4,RIPEMD-160,简介,欧洲,RIPE,项目的结果,RIPEMD,为,128,位,更新后成为,RIPEMD-160,基础是,MD5,hash,函数小结,hash,函数把变长信息映射到定长信息,hash,函数不具备可逆性,hash,函数速度较快,hash,函数与对称密钥加密算法有某种相似性,对,hash,函数的密码分析比对称密钥密码更困难,hash,函数可用于消息摘要,hash,函数可用于数字签名,7.3,数字签名,digital signature,消息认证用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗。,用户,A,用户,B,MAC,用户,C,篡改、冒充,假定,A,发送一个认证的信息给,B,,双方之间的争议可能有多种形式:,A,可以否认发过该消息,,B,无法证明,A,确实发了该消息。,B,伪造一个不同的消息,但声称是从,A,收到的。,用户,A,用户,B,MAC,伪造,否认,例如:对合同书的抵赖;股票交易指令亏损后抵赖,所以用到“数字签名”这种方式,保证信息的抗否认性,SIG,A,用户,A,用户,B,无法伪造,SIG,A,无法抵赖,SIG,A,传统签名的基本特点,:,能与被签的文件在物理上不可分割,签名者不能否认自己的签名,签名不能被伪造,容易被验证,数字签名是传统签名的数字化,基本要求,:,能与所签文件,“,绑定,”,签名者不能否认自己的签名,签名不能被伪造,容易被自动验证,存在仲裁机构,签名者,时间,签名有效,源文件被修改后,签名无效,数字签名应具有的性质,必须能够验证作者及其签名的日期时间;,必须能够认证签名时刻的内容;,签名必须能够由第三方验证,以解决争议;,因此,数字签名功能包含了认证的功能,WHY?,数字签名的设计要求,依赖性:签名必须是依赖于被签名信息的一个比特模式,唯一性:签名必须使用某些对发送者是唯一的信息,以防止双方的伪造与否认;,可验性:必须相对容易识别和验证该数字签名;,抗伪造:伪造该数字签名在计算上具有不可行性,,对一个已有的数字签名构造新的消息,对一个给定消息伪造一个数字签名,可用性:在存储器中保存一个数字签名副本是现实可行的,数字签名分类,以方式分,直接数字签名,direct digital signature,仲裁数字签名,arbitrated digital signature,以安全性分,无条件安全的数字签名,计算上安全的数字签名,以可签名次数分,一次性的数字签名,多次性的数字签名,直接数字签名的缺点,验证模式依赖于发送方的保密密钥;,发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。,通常需要采用与私有密钥安全性相关的行政管理控制手段来制止这种情况,但威胁依然存在。,改进的方式,:,例如可以要求被签名的信息包含一个时间戳(日期与时间),A,的某些私有密钥确实在时间,T,被窃取,敌方可以伪造,A,的签名及早于或等于时间,T,的时间戳。,仲裁数字签名,引入仲裁者,所有从发送方,A,到接收方,B,的签名消息首先送到仲裁者,S,,,S,将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给,B,。,用户,A,用户,B,SIG,仲裁者,S,验证通过,仲裁者在这一类签名模式中扮演敏感和关键的角色。,所有的参与者必须极大地相信这一仲裁机制工作正常。(,trusted system,),仲裁者,S,7.3.2 RSA,数字签名,回顾:,RSA,的加密方法,C=M,e,mod n,M=,C,d,mod n,公钥,K,e,:,e,n,私钥,K,d,:,d,n,用户,A,对明文,M,的签名过程是:,S,A,=D(M,K,dA,)=(M,d,)mod n,实际上是用私钥解密的过程,用户,B,验证签名的过程,E(S,A,K,eA,)=(,S,A,),e,modn,=M,如果要同时确保数据的秘密性和真实性,可以采用先签名后加密的方法,实际使用过程,将要签名的消息作为散列函数的输入,产生定长的散列码,对散列码进行签名,并将签名附在消息后面,验证者解密(验证)签名,计算出消息的散列码,和解密后的数据相比较(认证),
展开阅读全文