消息认证与数字签名.ppt

上传人:牧羊曲112 文档编号:6054422 上传时间:2023-09-18 格式:PPT 页数:55 大小:612.50KB
返回 下载 相关 举报
消息认证与数字签名.ppt_第1页
第1页 / 共55页
消息认证与数字签名.ppt_第2页
第2页 / 共55页
消息认证与数字签名.ppt_第3页
第3页 / 共55页
消息认证与数字签名.ppt_第4页
第4页 / 共55页
消息认证与数字签名.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《消息认证与数字签名.ppt》由会员分享,可在线阅读,更多相关《消息认证与数字签名.ppt(55页珍藏版)》请在三一办公上搜索。

1、1,第五章 消息认证与数字签名,5.1 信息认证5.2 散列(Hash)函数5.3 数字签名体制,2,问题的提出,通信威胁1.泄露:把消息内容发布给任何人或没有合法密钥的进程。2.伪造:从一个假冒信息源向网络中插入消息。3.内容修改:消息内容被插入删除变换修改。4.顺序修改:插入删除或重组消息序列。5.时间修改:消息延迟或重放。6.否认:接受者否认收到消息,发送者否认发送过消息。,3,5.1 信息认证,回顾:前面讲述的对称密码(如DES和AES)和公钥密码体制(RSA)都是围绕信息的保密性,即防止第三方获取明文消息而展开的,但信息的完整性和抗否认性也是信息安全内容的重要特征。保证信息的完整性和

2、抗否认性是通过信息认证和数字签名来实现的。信息认证(消息认证)验证信息的完整性,当接收方收到发送方的报文时,接收方能够验证收到的报文时真实的未被篡改的。(包括顺序和及时性)它包含两方面的含义:(1)验证信息的发送者是真正的而不是冒充的,即数据起源验证;(2)验证信息在传递过程中未被篡改、重放或延迟等。,4,信息认证检验的内容:证实报文的信源和信宿、报文内容是否遭到偶然或有意地篡改、报文的序号是否正确,报文到达的时间是否在指定的期限内。这种认证只在通信的双方之间进行,而不允许第三者进行上述认证。认证不一定实时的。保密和认证同时是信息系统安全的两个方面,但它们是两个不同属性的问题,认证不能自动提供

3、保密性,而保密性也不能自然提供认证功能。一个纯认证系统的模型如下图所示:,5,认证系统的模型,6,认证函数可用来做认证的函数分为三类(1)信息加密函数(Message encryption):将明文加密后以密文作为认证(2)信息认证码MAC(Message Authentication Code):用一个密钥控制的公开函数作用后,产生固定长度的数值作为认证符,也称密码校验和。(3)散列函数(Hash Function):是一个公开的函数它将任意长的信息映射成一个固定长度的散列值,以散列值作为认证符。常见的散列函数有:MD4、MD5、SHA和 SHA-1,7,5.1.1 信息加密认证,信息加密函

4、数分两种,一种是常规的对称密钥加密函数,另一种是公开密钥的双密钥加密函数。下图的通信双方是,用户A为发信方,用户B为接收方。用户B接收到信息后,通过解密来判决信息是否来自A,信息是否是完整的,有无窜扰。1.对称密码体制加密:对称加密:具有机密性,可认证,不提供签名,8,如何自动确定是否收到的明文可解密为可懂的明文?一种解决办法是强制明文有某种结构.,差错控制:Error Control,9,2.公钥密码体制加密认证:(1)公钥加密:具有机密性,不能提供认证(任何人都可以得到公钥),(2)私钥加密:认证和签名,没有保密性,10,(3)公钥加密体制:机密性,可认证和签名,11,5.1.2 消息认证

5、码(MAC),消息认证码(MAC)是在密钥的控制下将任意长的消息映射到一个简短的定长数据分组,并将它附加在消息后。MAC进行消息的认证过程如图:,MAC的基本用法(a),12,A B:M|CK(M)即A使用双方共享的密钥K对明文进行计算,产生一个短小的数据块,即消息验证码 MAC=CK(M)。发送给接收方B时,将它附加在报文中。接收方收到报文使用相同的密钥K执行相同的计算,得到新的MAC。接收方将收到的MAC与计算得到MAC进行比较,如果相匹配,那么可以保证报文在传输过程中维持了完整性:(1)报文未被更改过(2)接收者确信报文来自真实的发送者。(无人知晓密钥)注意:上述认证过程只提供认证、不提

6、供保密性。,13,MAC的基本用法(b),提供消息认证与保密,认证码与明文连接Provides authentication-only A and B share K1Provides confidentiality-only A and B share KK2 2,A B:EK2(M|CK1(M),14,MAC的基本用法(c),提供消息认证与保密,认证码与密文连接Provides authentication-Using K1Provides confidentiality-Using K2,A B:EK2(EK2(M)|CK1(EK2(M),15,消息认证 VS 常规加密,MAC函数类似于

7、加密函数,主要区别在于MAC函数不需要可逆而加密函数必须是可逆的,因此,认证函数比加密函数更不易破解。保密性与真实性是两个不同的概念根本上,信息加密提供的是保密性而非真实性加密代价大(公钥算法代价更大)认证函数与保密函数的分离能提供功能上的灵活性某些信息只需要真实性,不需要保密性 广播的信息难以使用加密(信息量大)网络管理信息等只需要真实性 政府/权威部门的公告,16,5.2 散列(Hash)函数,散列函数(又称杂凑函数)是对不定长的输入产生定长输出的一种特殊函数:h=H(M)M:变长消息 h=H(M)是定长的散列值(或称消息摘要)H:散列函数,是公开的;H(M)又称为:哈希函数、数字指纹(D

8、igital finger print)、压缩(Compression)函数、数据鉴别码(Dataauthentication code)等散列值在信源处被附加在消息上,接收方重新计算散列值来确认消息未被篡改。由于函数本身公开,传送过程中需要对散列值加密保护(如果没有对散列值的保护,篡改者可以在修改消息的同时修改散列值,从而使散列值的认证功能失效)。,17,5.2.1 散列函数的性质,散列函数的目的是为文件、消息或其他的分组数据产生“指纹”。用于消息认证的散列函数H具有如下性质:(1)H能用于任何大小的数据分组,都能产生定长的输出。(2)对于任何给定的x,H(x)要相对易于计算。(3)对任何给

9、定的散列码h,寻找x使得H(x)=h在计算上不可行(单向性)。(4)对任何给定分组x,寻找不等于x的y,使得H(x)=H(y)在计算上不可行(弱抗冲突)。(5)寻找任何的(x,y),使得H(x)=H(y)在计算上不可行(强抗冲突)。,18,注意:前两个性质使得散列函数用于消息认证成为可能。第二和第三个性质保证H的单向性,保证攻击者无法通过散列值恢复消息。第四个性质保证了攻击者无法在不修改散列值的情况下替换消息而不被察觉。第五个性质比第四个更强。保证了一种被称为生日攻击的方法无法凑效。生日问题:一个教室中,最少应有多少学生,才使至少有两人具有相同生日的概率不小于1/2?实际上只需23人,即任找2

10、3人,从中总能选出两人具有相同生日的概率至少为1/2。,19,通过以下方式使用散列函数常提供消息认证,(1)使用对称加密算法对附加消息摘要的报文进行加密A B:EK(M|H(M)提供保密、认证(2)使用对称加密方法对消息摘要加密A B:M|EK(H(M)提供认证(3)使用发方的私钥对消息摘要进行加密A B:M|EKRa(H(M)提供数字签名、认证(4)在(3)的基础上,使用对称加密方法进行加密A B:EK(M|EKa(H(M)提供数字签名、认证和保密(5)假定双方共享一个秘密值S,与消息M串接,计算散列值A B:M|(H(M|S)提供认证(6)假定双方共享一个秘密值S,使用散列函数,对称加密方

11、法A B:EK(M|H(M|S)提供数字签名、认证和保密,20,认证和保密,认证,认证和数字签名,21,认证保密和数字签名,认证,S:双方共享的秘密值,认证保密和,22,Hash vs MAC,MAC需要对全部数据进行加密MAC速度慢Hash是一种直接产生认证码的方法,23,5.2.2 散列函数的结构,为了对不定长的输入产生定长的输出,并且最后的结果要与所有的字节有关,大多数的散列函数的结构都采用了分块填充链接的模式,其结构是迭代型的。以MD4为例讲解散列函数的结构 MD4散列函数将输入数据分为L个固定长度为b比特的分组。输入数据包括:消息、填充数据和消息的长度值(消息长度值用64比特表示)。

12、说明:填充数据的目的是使输入数据为b比特的倍数;增加消息长度值将增加攻击者攻击的难度。散列函数的结构如图所示:,24,迭代型散列函数的结构,MD4算法如下:CV0=ViCVi=f(CVi-1,Yi-1)h=H(M)=CVL=f(CVL-1,YL-1)Vi:初始链接变量CVi-1:连接变量;f:压缩函数(由若干轮处理组成);通常bn,25,5.2.3 MD5算法,Ron Rivest于1990年提出了一个称为MD4的散列函数。他的设计没有基于任何假设和密码体制,不久,他的一些缺点也被提出。为了增强安全性和克服MD4的缺陷,Rivest于1991年对MD4作了六点改进,并将改进后的算法称为MD5.

13、MD5算法:将明文按512比特进行分组,即MD5中的b=512bit,经填充后信息长度为512的倍数(包括64比特的消息长度)。填充:首位为1,其余补0至满足要求,即填充后的比特数为512的整数倍减去64,或使得填充后的数据长度与448模512同余。,26,MD5的框图,27,5.2.4 安全散列算法(SHA),举例:MD5算法:已知消息为“河北工业大学分校电子Z08级的信息安全技术是一门专业基础课,我们必须学好。”计算填充长度为多少?(标点符号为全角)(392),目前,MD5被认为是易受攻击的(很容易遭遇强碰撞的生日攻击),因此,有必要用一个具有更长散列码和更能抗击已知密码分析攻击的散列函数

14、来代替现在流行的MD5。现在已经有两个散列码长度为160比特的替代者SHA-1和RIPEMD-160。我们了解SHA-1即可。,28,29,安全散列算法SHA(Secure Hash Algorithm)是由美国国家标准和技术协会提出的,并作为联邦信息处理标准在1993年公布。1995年又发布了一个修订版,通常称为SHA-1。SHA是基于MD4算法的。MD5与SHA-1对比 MD5 SHA-1消息长度 128bit 160bit分组长度 512bit 512bit步骤数 64 80消息最大长度 264-1速度 较快 慢,30,Hash 函数,MD5:对输入消息(任意长)按照 512位进行分组处

15、理,输出128位消息摘要SHA-1:输入长度小于264位消息,按 512位进行分组处理,输出160位消息摘要。RIPEMD-160:对输入消息(任意长)按照 512位进行分组处理,输出160位消息摘要,31,5.3 数字签名体制,数字签名是电子商务安全的一个非常重要的分支,在大型网络安全通信中的密钥分配、安全认证、防否认等方面具有重要作用。1999年美国参议院已通过了立法,规定数字签名与手写签名的文件、邮件在美国具有同等的法律效力。前面我们讲述的消息认证是保护通信双方之间不受第三方的攻击,但却无法防止通信双方中一方对另一方的欺骗。如A伪造一个消息并使用与B共享的密钥产生该消息的认证码,然后声称

16、该消息来自于B,同样,B也可以对自己给A发送的消息予以否认。因此,除了认证之外还需要其他机制来防止通信双方的抵赖行为,最常见的是数字签名技术。,32,5.3.1 数字签名原理,传统的军事、政治、外交活动中的文件、命令和条约及商业中的契约等需要人手工完成签名或印章,以表示确认和作为举证等。随着计算机通信网络的发展,人们更希望通过电子设备实现快速、远距离交易,数字签名就由此应运而生,并被用于商业通信系统。数字签名:在公钥体制下的签名,用户用自己的私钥对原始数据的哈希摘要进行加密,然后信息接收者使用信息发送者的公钥对附在原始信息后的数字签名进行解密后获得哈希摘要,并通过与用自己收到的原始数据产生的哈

17、希摘要对照,便可确信原始信息是否被篡改,这样就保证了数据传输的不可否认性。,33,案例 中国首例电子邮件案例,1996年7月9日,北京市海淀区法院审理国内第一起电子邮件侵权案。此案的原、被告均系北大心理学系93级女研究生。4月9日。原告薛燕戈收到美国密执安大学教育学院通过互联网发给她的电子邮件。内容是该学院将给她提供1.8万美元金额奖学金的就学机会,她非常高兴。因为这是唯一一所答应给她奖学金美国名牌大学。此后,她久等正式通知,但杳无音训,蹊跷之中委托在美国的朋友去密执安大学查询。4月27日朋友告知,密执安大学收到一封北京时间4月12日10时16分发出的署名薛燕戈的电子邮件,表示拒绝该校的邀请。

18、因此密执安大学以将原准备给薛的奖学金转给他人。,34,法庭上,薛燕戈说,密执安大学发来的电子邮件,是她和被告张男一起去北大心理学认知心理学实验室看到的,并且存放在张男的电子信箱里。薛燕戈认为,是张男在4月12 日10时16分用薛的名义给密执安大学发了一封邮件,谎称薛已接受其他学校的邀请,故不能去该校学习。薛从北大计算中心取得4月12日的电子邮件记录,与美国取证回来的材料完全吻合。因此,薛提出诉讼请求:被告承认并公开道歉,又被告承担原告的调查取证以及和美国学校交涉的费用、医疗费和营养费用、精神损失补偿等人民币1.5万元。张男在法庭上称,事实上她从未以薛的名义给密执安大学发过电子邮件,对此事没有丝

19、毫责任。,35,此案在开庭审理后,尽管到底谁借原告之名向密执安大学发出拒绝接受入学邀请的电子邮件,使原告丧失了一次出国深造的机会,并没有得出确切结论。但是在休庭之后,被告终于向原告承认,该电子邮件时她所为,并愿意就此向原告道歉并赔偿因其侵权行为给原告造成的精神及财产损失。经过法院调解,原、被告双方当事人自愿达成协议:被告以书面形式向原告赔礼道歉,并赔偿原告精神损害、补偿经济损失共计1.2万元。如果邮件的发送附加了可防伪 和可追踪的数字签名,也许本案就不会发生了。,36,1.数字签名的设计要求,依赖性:签名必须是依赖于被签名信息的比特模式(依赖性)唯一性:签名必须使用某些对发送者是唯一的信息,以

20、防止双方的伪造与否认可用性:必须相对容易生成该数字签名,在存储器中保存一个数字签名副本是现实可行的可验证:必须相对容易识别和验证该数字签名,抗伪造:伪造该数字签名在计算上具有不可行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个数字签名,37,2.数字签名与手写签名的区别,签名:手签是被签文件的物理组成部分,而数字签名不是被签文件的物理组成部分,因而需要将签名连接到被签文件上。验证:手写签名是通过将它与真实的签名进行比较来验证;而数字签名是利用已经公开的算法来验证。数字签名消息的复制品与其本身是一样的;而手写签名的复制品与原品是不同的。,38,3.数字签名应满足的基本条

21、件,签名者不能否认自己的签名接收者能够验证签名,而其他任何人都不能伪造签名当关于签名的真伪发生争执时,存在一个仲裁机构或第三方能够解决争执,39,4.数字签名的分类,按明文、密文对应关系划分:确定性数字签名(RSA体制)和非确定数字签名(ElGamal体制)按照签名方式:直接数字签名和需仲裁的数字签名按照签名内容的多少划分:对整个消息签名和对压缩消息的签名安全性:无条件安全的数字签名和计算上安全的数字签名可签名次数:一次性的数字签名和多次性的数字签名。,40,直接数字签名,直接数字签名可通过四种方法实现 直接数字签名仅涉及通信方。假设接收方知道发方的公钥。数字签名通过使用发方的私钥对整个消息进

22、行加密或使用发方的私钥对消息的散列码(消息摘要)进行加密来产生。(1)AB:EKRaM提供了认证与签名只有A具有KRa进行加密;传输中无法被篡改需要某些格式信息/冗余度任何第三方可以用KUa 验证签名,41,直接数字签名,(2)AB:EKUb EKRa(M)提供了保密(KUb)、认证与签名(KRa)(3)AB:M|EKRaH(M)提供认证及数字签名-H(M)受到密码算法的保护-只有A 能够生成EKRaH(M)4)AB:EKM|EKRaH(M)提供保密性、认证和数字签名,42,直接数字签名的缺点,验证模式依赖于发送方的保密密钥(1)发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而

23、他人伪造了他的签名。(2)通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在。(3)改进的方式:例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心。X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的签名及早于或等于时间T的时间戳,43,仲裁数字签名,引入仲裁者 通常的做法是所有从发送方X到接收方Y的签名消息首先送到仲裁者A,A将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给Y。仲裁者在这一类签名模式中扮演敏感和关键的角色 所有的参与者必须极大

24、地相信这一仲裁机制工作正常(trusted system),44,仲裁数字签名技术,单密钥加密方式仲裁者可以看见消息X与A之间共享密钥Kxa,Y与A之间共享密钥Kay;X:准备消息M,计算其散列码H(M),用X的标识符IDx和散列值构成签名,并将消息及签名经Kxa加密后发送给A;A:解密签名,用H(M)验证消息M,然后将Idx,M,签名和时间戳一起经Kay加密后发送给Y;Y:解密A发来的信息,并可将M和签名保存起来。,45,解决纠纷:,Y:向A发送EKayIDx|M|EKxaIDx|H(M)A:用Kay恢复IDx,M 和签名(EKxaIDx|H(M)),然后用Kxa解密签名并验证散列码注意:在

25、这种模式下Y不能直接验证X的签名,Y认为A的消息已认证,只因为它来自A,因此双方都需要高度相信A:X必须信任A没有暴露Kxa 并且没有生成错误的签名,EKxaIDx|H(M)Y必须信任A仅当散列值正确并且签名确实是X产生的情况下才发送的EKayIDx|M|EKxaIDx|H(M)|T双方都必须信任A处理争议是公正的。,46,解决纠纷:,只要A遵循上述要求,则X相信没有人可以伪造其签名;Y相信X不能否认其签名。上述情况还隐含着A可以看到X给Y的所有信息,因而所有的窃听者也能看到。,47,(b)单密钥加密方式,仲裁者不可以看见消息在这种情况下,X与Y之间共享密钥Kxy,X:将标识符IDx,密文EK

26、xyM,以及对IDx和密文消息的散列码用Kxa加密后形成签名发送给A。A:解密签名用散列码验证消息,这时A只能验证消息的密文,而不能读取其内容,然后A将来自X的所有信息加上时间戳并用Kay加密后发送给Y。(a)和(b)共同存在一个共性问题:A和发送方联手可以否认签名的信息;A和接收方联手可以伪造发送方的签名;,48,(c)双密钥加密方式仲裁者不可以看见消息X:对消息M双重加密:首先用X的私有密钥KRx,然后用Y的公开密钥Kuy。形成一个签名的、保密的消息。然后将该信息以及X的标识符一起用KRx签名后与Idx一起发送给A。这种内部、双重加密的消息对A以及对除Y以外的其它人都是安全的。A:检查X的

27、公开/私有密钥对是否仍然有效,是,则认证消息。并将包含Idx、双重加密的消息和时间戳构成的消息用KRa签名后发送给Y。,49,本模式比上述两个模式具有以下好处:1 在通信之前各方之间无须共享任何信息,从而避免了联手作弊。2 即使KRx暴露,只要KRa未暴露不会有错误标定日期的消息被发送;3 从X发送给Y的消息的内容对A和任何其他人是保密的。,50,5.3.2 RSA数字签名体制,RSA是最流行的一种加密标准,许多产品的内核都有RSA的软件和类库,RSA与Microsoft、IBM、Sun和Digital都签订了许可协议,使其在生产线上加入了类似的签名特性。与DSS不同,RSA既可用于加密数据,

28、也可用于身份认证。,51,RSA数字签名体制,h=H(M)S=Sig(h)=hdmodnM|Sig(h)h=H(M)h=semodnh?=h对照数字签名的各项要求,RSA数字签名体制体现了数字签名的各项要求:散列函数取得消息的信息摘要,从而使对摘要进行加密而产生的签名依赖于消息;(依赖性)RSA私钥的保密性使得签名是唯一的(唯一性)信息摘要的字节数很少(SHA的160比特),因而产生签名相对简单,同样的,签名的识别与证实 也相对简单。(可用性)散列函数的单向性以及RSA私钥的保密性,使得伪造数字签名不可行。(抗伪造性),52,签名与加密,53,5.3.4 数字签名标准DSS,DSS是由美国国家标准化研究院和国家安全局共同开发的,被美国NIST作为DSS(Digital Signature Standard)数字签名标准。主要用于与美国政府做生意的公司,其他公司则较少使用,它只是一个签名系统,而且美国政府不提倡使用任何削弱政府窃听能力的加密软件,认为这才符合美国的国家利益。,54,55,Endthank you!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号