数字签名与认证技术.ppt

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

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

1、第5章 数字签名与认证技术,哈希函数数字签名 消息鉴别 身份认证 身份认证实例Kerberos数据保护工具,目录,哈希函数概念,哈希函数,也称为单向散列函数、杂凑函数或消息摘要算法。它通过把一个单向数学函数应用于数据,将任意长度的一块数据转换为一个定长的、不可逆转的数据。哈希函数H能用于任意大小的分组,产生定长的输出;对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实际可能;单向性;弱抗冲突性;即强抗冲突性。,哈希函数必须具有的特性,单向性:给定M和H,求hH(M)容易,但反过来给定h,寻找一个M使H(M)=h在计算上是不可行的;抗弱碰撞:给定M,要寻找另一信息 M,满足 H(M

2、)H(M)在计算上不可行;抗强碰撞:要寻找不同的信息M 和M,满足 H(M)H(M)在计算上不可行。(概率论:生日攻击),生日悖论,生日问题:一个教室中,最少应有多少学生,才使至少有两人具有相同生日的概率不小于1/2?概率结果与人的直觉是相违背的.实际上只需23人,即任找23人,从中总能选出两人具有相同生日的概率至少为1/2。【分析】:生日的取值范围:1-365 不同输入的个数:23,IV:初始值,CV:链接值,Yi:第i个输入数据块,f:压缩算法,n:散列码长度,b:输入块的长度。,哈希函数的一般结构图,MD5算法,输入:任意长度的消息输出:128bit消息摘要处理:以512bit分组为处理

3、单位注:MD5 was developed by Ron Rivest(“R”of the RSA)at MIT in 1990s,MD5算法结构图,在MD5算法中的处理步骤包括以下过程:首先,需要对消息进行填充。其次,将MD缓冲初始化。当设置好这四个链接变量后,就开始进入算法的四轮循环运算,循环的次数是信息中512位信息分组的数目。输出散列值。所有L个512比特的分组处理完成后,第L阶段输出的结果便是消息M的信息摘要。,MD5算法结构图,MD5的单步操作,MD5的安全性,2004年,山东大学王小云教授证明了从理论上可以破解MD5-即找到MD5的碰撞,两个不同的文件可以产生相同的摘要。2004

4、年8月美国加州召开的国际密码学会议,王小云做了破译MD5等算法的报告,产生了很大的影响。MD5设计者说到:“这些结果无疑给人非常深刻的印象,她应当得到我最热烈的祝贺,虽然我不希望看到MD5这样倒下,但人必须尊重真理”,哈希函数数字签名 消息鉴别 身份认证 身份认证实例Kerberos数据保护工具,数字签名的引入,如何应对以下的攻击方式发送方不承认自己发送过某一报文接收方自己伪造一份报文,并声称它来自发送方某个用户冒充另一个用户接收或发送报文接收方对收到的消息进行修改数字签名可以解决以上争端,数字签名概念,数字签名就是利用一套规则对数据进行计算的结果,用此结果能确认签名者的身份和数据的完整性(美

5、国DSS对数字签名的解释),数字签名应满足三个基本条件,签名者不能否认自己的签名;接收者能够验证签名,而其他任何人都不能伪造签名;当签名的真伪发生争执时,存在一个仲裁机构或第三方能够解决争执。,数字签名根据签名方式可以分为,直接数字签名(direct digital signature)仲裁数字签名(arbitrated digital signature)。,(1)采用公开密钥的数字签名,使用发方的私钥对消息M进行数字签名(此时并没有对消息进行加密,因为任何人都可以获得公钥对消息M进行查看),直接数字签名,具有保密性的公钥数字签名,(2)具有保密功能的公钥数字签名,直接数字签名,比较,KRA

6、,(3)采用消息摘要的数字签名,M,M,A 发方,B 收方,KUA,EKRAH(M),使用消息摘要的数字签名(不需要对整个消息进行签名,速度更快),H,E,|,H,D,直接数字签名,直接数字签名方案:仅涉及通信双方。签名方案的有效性依赖于发送方的私密密钥的安全性;发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,且他人伪造了他的签名。,直接数字签名的问题,需要仲裁的数字签名,引入仲裁者来解决直接签名方案的问题。通常的做法是:所有从发送方A到接收方B的签名消息首先送到仲裁者Y,Y将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给B。

7、思考:A还能否认他的签名吗?仲裁者在这一类签名模式中扮演敏感和关键的角色。所有的通信方必须充分信任仲裁机构。,需要仲裁的数字签名,仲裁者是除通信双方之外,值得信任的公正的第三方;“公正”意味着仲裁者对参与通信的任何一方没有偏向。“值得信任”表示所有人都认为仲裁者所说的都是真实的,所做的都是正确的。举例:律师、银行、公证人(现实生活)在计算机网络中,由可信机构的某台计算机充当。,(1)对称加密,仲裁能看到消息,IDA:发送方A的标识符 签名:EKAY IDAH(M)KAY:A和Y共享的对称密钥,需要仲裁的数字签名,(1)对称加密,仲裁能看到消息解决纠纷:B:向Y发送EKYBIDA|M|EKAYI

8、DA|H(M)Y:用KYB恢复IDA,M,和签名EKAYIDA|H(M),然后 用KAY解密签名并验证哈希值,从而验证A的签名。,需要仲裁的数字签名,(2)对称加密,仲裁不能看到消息,AB之间共享的密钥KAB对消息进行加密,仲裁Y看不到消息的明文。双方仍然要高度信任Y。签名:EKAYIDAH(EKABM),需要仲裁的数字签名,(3)公开密钥加密,仲裁不能看到消息,B,IDAEKRA IDAEKUB(EKRAM),EKRY IDAEKUBEKRAMT,A,Y,仲裁Y通过 EKRA IDAEKUB(EKRAM)进行解密,可以确信消息一定来自于A(因为A才有KRA)签名:EKRA IDAEKUB(E

9、KRAM),需要仲裁的数字签名,需要仲裁的数字签名,(3)公开密钥加密,仲裁不能看到消息 本签名方案比上述两个方案具有以下优点:1、在通信之前各方之间无须共享任何信息,从而避免了结盟欺骗的发生;2、即使KRA 暴露,只要KRY 未暴露,不会有日期错误标定的消息被发送;3、从A发送给B的消息的内容对Y和任何其他人是保密的。,数字签名方案,普通数字签名体制 RSA EIGamal DSS/DSA盲签名体制,盲签名体制,盲签名是根据电子商务具体的应用需要而产生的一种签名应用。当需要某人对一个文件签名,而又不让他知道文件的内容,这时就需要盲签名。盲签名与普通签名相比有两个显著的特点:签名者不知道所签署

10、的消息内容;签名被接收者泄漏后,签名者无法追踪签名;也即,如果把签名的消息报文给签名者本人看,他只能确信是自己的签名,而无法知道什么时候、对什么样的盲消息进行了签名。应用:电子选举(投票)、电子货币(存取款、转帐),盲签名体制,接收者B首先将待签的明文消息M进行盲变换,把变换后的盲消息发送给签名者A;经过A签名后,消息发送给接收者B;接收者B对签名做去盲变换,得出的便是签名者A对原数据的盲签名。盲签名原理图,RSA盲签名算法,算法描述:(1)接收者B对待签消息M进行盲化处理:随机选择盲化参数k,1kM,并计算:T=M Ke mod n(2)B将盲化消息T发送给A(由于k未知,A无法看到明文消息

11、M)(3)A对盲消息T签名:Td=(MKe)d mod n=MdK mod n(4)A把对T的签名发送给接收者B;(5)B通过计算得到A对M的签名:S=Td/K mod n=Md mod n,哈希函数数字签名 消息鉴别 身份认证 身份认证实例Kerberos数据保护工具,概念,认证(Authentication),又称鉴别,是对用户身份或报文消息来源及内容的验证。它是防止主动攻击的重要技术,是保证信息完整性、有效性的技术,即要搞清楚与之通信的对方身份是否真实,又要证实信息在传输过程中是否被篡改、伪装、窜扰、否认。认证的主要分为两个方面:身份/实体认证,即验证信息发送者是真的,而不是冒充的,包括

12、信源、信宿等的认证和识别;消息/报文认证,验证信息的完整性,即验证数据在传输或存储过程中未被窜改、重放或延迟等。,认证系统的模型,纯认证系统的模型,公开信道,认证函数,认证编码器和认证译码器可抽象为认证函数。认证函数产生一个认证标识(authentication identification)给出合理的认证协议(authentication protocol)接收者完成消息的认证(authentication)一个安全的认证系统,需满足(1)接收者能检验和证实消息的合法性、真实性和完整性(2)消息的发送者和接收者不能抵赖(3)除了合法的消息发送者,其它人不能伪造合法的消息,认证函数分类,认证的

13、函数分为三类:消息加密函数(Message encryption)用完整信息的密文作为对信息的认证。消息认证码MAC(Message Authentication Code)是对信源消息的一个编码函数。散列函数(Hash Function)是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。,M,E,K,EK(M),D,M,K,提供保密提供认证(仅来自Bob,传输中没有被更改)不提供签名(Bob可以否认发送过消息M),Bob,Alice,对称加密:保密性与认证,认证函数1:加密函数,认证函数1:加密函数,公钥加密:认证与签名,M,D,KRB,EKRB(M),E,M,KB,提供认证(仅B

14、ob有KRB可以进行加密 传输中没有被更改 任何一方均可以使用KUB验证签名)提供签名(Bob不可否认),Bob,Alice,公钥加密:保密、认证与签名,M,D,KUA,EKUA(DkRb(M),D,KRA,提供认证提供签名提供保密性,E,KRB,DkRB(M),DkRB(M),E,KUB,M,Bob,Alice,认证函数1:加密函数,认证函数2:消息认证码,消息认证码:使用一个密钥生成一个固定大小的短数据块,并将该数据块加载到消息后面,称MAC(或密码校验和)MACCk(M)MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少,MAC的计算,基于DES的消息认证码

15、,计算MAC值的算法O1=EK(D1)O2=EK(D2O1)O3=EK(D3O3)ON=EK(DNON-1)MAC取ON的后m比特,注 意,MAC需要对全部数据进行加密,因而计算MAC所需的时间较长,一般不会低于一次数据加密所需的时间(DES)。为此,采用更快速的哈希函数实现消息的认证。,认证函数3:hash函数,哈希函数数字签名 消息鉴别 身份认证 身份认证实例Kerberos数据保护工具,身份认证,身份认证就是确认实体是它所声明的。身份认证是最重要的安全服务之一。认证服务提供了关于某个实体身份的保证。(所有其它的安全服务都依赖于该服务)身份认证可以对抗假冒攻击的危险。,身份认证,目的:某一

16、实体确信与之打交道的实体正是所需要的实体。只是简单地鉴别实体本身的身份,不会和实体想要进行何种活动相联系。在安全体系中的作用:作为访问控制服务的一种必要支持,访问控制服务的执行依赖于确知的身份,身份认证的分类:,身份认证可以分为本地和远程两类。本地多用户认证:实体在本地环境的初始化鉴别(就是说,作为实体个人,和设备物理接触,不和网络中的其他设备通信)。远程用户认证:连接远程设备、实体和环境的实体鉴别。通常将本地鉴别结果传送到远程。身份鉴别可以是单向的也可以是双向的。单向认证是指通信双方中只有一方向另一方进行鉴别。双向认证是指通信双方相互进行鉴别。,实现身份鉴别的途径,三种途径之一或他们的组合(

17、1)所知(Knowledge):密码、口令(2)所有(Possesses):身份证、护照、信用卡、钥匙(3)个人特征:指纹、笔迹、声纹、手型、血型、视网膜虹膜、DNA以及个人动作方面的一些特征设计依据:安全水平、系统通过率、用户可接受性、成本等,第一类方法最简单,系统开销最小,但是最不安全;第二类泄漏秘密的可能性比较小,安全性比第一类高,但是认证系统相对复杂;第三类的安全性最高,但是涉及到更复杂的算法和实现技术。,认证机制,非密码的认证机制 基于密码算法的认证 零知识证明协议,1.非密码的认证机制,A.口令机制B.一次性口令机制C.询问-应答机制D.基于地址的机制E.基于个人特征的机制F.个人

18、鉴别令牌,A口令机制,常规的口令方案涉及不随时间变化的口令,提供所谓的弱认证(weak authentication)。口令或通行字机制是最广泛研究和使用的身份鉴别法。口令的选择原则:易记、难猜、抗分析能力强。口令系统有许多脆弱点:外部泄露口令猜测线路窃听危及验证者重放,常用的口令认证方案(1),使用保护口令机制:如单向函数f,方案(1)的缺陷及对策,缺陷:口令相同,则单向函数的值q也相同。攻击者很容易构造一张q与p对应的表,表中的p尽最大可能包含所期望的值。(不断猜测)对策:随机串(Salt)是使这种攻击变得困难的一种办法。在口令后使用随机数。,B一次性口令机制,近似的强认证(towards

19、 strong authentication)一次性口令机制确保在每次认证过程中所使用的口令不同,以对付重放攻击。确定口令的方法:两端共同使用一个随机序列生成器,在该序列生成器的初态保持同步;使用时戳,两端维持同步的时钟。,应用:动态口令卡,动态口令卡(智能卡的一种)是发给每个用户的动态口令发生器,通过同步信任认证算法,以时间为参数,每隔1664秒钟产生一个一次性使用的“动态口令”,其他机制,生物特征,2.基于密码算法的认证机制,ISO/IEC9798-2协议(需要会话密钥)单向认证(时间戳)双向认证(时间戳),AB:TA,IDBKAB,AB:TA,IDBKABBA:TB,IDAKAB,2.1

20、 基于对称密码的认证,2.1 基于对称密码的认证,ISO/IEC9798-2协议(需要会话密钥)单向认证(一次性随机数)双向认证(一次性随机数),1.B A:NB2.AB:NB,IDBKAB,1.B A:NB2.AB:NA,NB,IDBKAB3.BA:NB,NAKAB,ISO/IEC 9798-3 单向认证ISO/IEC 9798-3 单向认证,1.AB:TA,IDB,SigA(TA,IDB),1.BA:NB2.AB:NA,NB,SigA(NA,NB,IDB),2.基于密码算法的认证机制,2.2 基于公钥密码的认证,ISO/IEC 9798-3 双向认证ISO/IEC 9798-3 双向认证,

21、1.AB:TA,IDB,SigA(TA,IDB)2.BA:TB,IDA,SigB(TB,IDA),1.BA:NB2.AB:NA,NB,IDB,SigA(NA,NB,IDB)3.BA:NB,NA,IDA,SigB(NB,NA,IDA),2.基于密码算法的认证机制,2.2 基于公钥密码的认证,3.基于零知识证明的认证机制,通常的身份认证都要求传输口令或身份信息(尽管是加密传输),如果不传输这些信息,身份也能得到证明就好了,这就需要身份的零知识证明技术(The proof of zero knowledge)。零知识证明是这样一种技术,被认证方P掌握某些秘密信息,P想设法让认证方V相信他确实掌握那些

22、信息,但又不想让V也知道那些信息(如果连V都不知道那些秘密信息,第三者想盗取那些信息当然就更难了)。,3.基于零知识证明的认证机制,解释零知识证明的通俗例子是洞穴问题。如图:有一个洞,设P知道咒语,可打开C和D之间的秘密门,不知道者都将走入死胡同中,那么P如何向V出示证明使其相信他知道这个秘密,但又不告诉V有关咒语。,3.基于零知识证明的认证机制,P如何使V相信自己掌握了洞穴的秘密:1)V站在A点。2)P进入洞中任意一点C或D。3)当P进洞之后,V走到B点。4)V叫P:“从左边出来”或“从右边出来”。5)P按要求实现(以咒语,即解数学难题)。6)P和V重复执行(1)(5)共n次。被认证方P掌握

23、的秘密信息可以是某些长期没有解决的猜想问题的证明,如:费尔玛最后定理,图的三色问题,也可以是缺乏有效算法的难题解法,如:大数因式分解等,信息的本质是可以验证的,即可通过具体的步骤来检测它的正确性。,哈希函数数字签名 消息鉴别 身份认证 身份认证实例Kerberos(自学)数据保护工具,身份认证存在问题,工作站存在三种威胁:一个工作站上一个用户可能冒充另一个用户操作;一个用户可能改变一个工作站的网络地址,从而冒充另一台工作站工作;一个用户可能窃听他人的信息交换,并用回放攻击获得对一个服务器的访问权或中断服务器的运行。,Kerberos提供一个中心认证服务器,实现用户到服务器和服务器到用户的认证服

24、务。三种可能的安全认证方案:第一种是系统相信每一个单独的客户工作站可以保证对其用户的识别,并依赖于每一个服务器强制实施一个基于用户标识的安全策略。第二种方案是要求客户端系统将它们自己向服务器作身份认证,但相信客户端系统负责对其用户的识别。第三种方案要求每一个用户对每一个服务证明其标识身份,同样要求服务器向客户端证明其标识身份。,Kerberos的解决方案,在一个分布式的client/server体系机构中采用一个或多个Kerberos服务器提供一个认证服务。Kerberos系统应满足安全性、可靠性、透明性、可伸缩型的要求。,Kerberos Version4,简单身份认证对话过程,身份认证中的

25、各个步骤会话内容分别如下:(1)C-AS:IDC|PC|IDV(2)AS-C:Ticket(3)C-V:IDC|TicketTicket=EKVIDC|ADC|IDV存在两个主要问题:一是系统需要用户输入口令的次数较多;另一个问题是输入的口令以明文传送,中间可能会被第三者窃听。,改进的身份认证会话过程,引入票据服务器TGS,身份认证中的各个步骤会话内容分别如下:每次用户登录执行步骤(1)、(2):(1)C-AS:IDC|Idtgs(2)AS-C:EKCTickettgs 每次请求一种类型的服务时执行步骤(3)、(4)、(5):(3)C-TGS:IDC|IDv|Tickettgs(4)TGS-C

26、:TicketVC每次请求一个服务,TGS分配一个TicketV(5)C-V:IDC|TicketVTickettgs=EKtgsIDC|ADC|IDtgs|TS1|Lifetime1TicketV=EKVIDC|ADC|IDv|TS2|Lifetime2,哈希函数数字签名 消息鉴别 身份认证 身份认证实例Kerberos数据保护工具,HashCalc,HashCalc 可以计算一个文件、文本串和十六进制串的信息摘要、校验码和HMAC,使用的哈希算法和校验码算法包括:MD5、SHA1、CRC32、MD4、SHA256、SHA384、SHA512、RIPEMD160、PANAMA、TIGER等。

27、,HashCalc 主要功能有,(1)支持目前流行的12种哈希和校验算法:MD2,MD4,MD5,SHA1,SHA256,SHA384,SHA512,RIPEMD160,PANAMA,TIGER,ADLER32,CRC32;(2)在很多P2P2应用中(如:eDonkey,eMule)支持MD4哈希算法;(3)支持HASH/CHECKSUM和HMAC两种计算模式;(4)支持三种输入数据格式:文件类型、字符串、十六进制串;(5)可以支持处理大文件的哈希和校验码计算。,HashCalc对话框,SSO Plus,SSO(Single Sign-On,单点登录),所谓单点登录是指用户只需在网络中主动地进

28、行一次身份认证,随后便可以访问其被授权的所有网络资源,而不需要再主动参与其它的身份认证过程。,SSO Plus的功能是帮助用户记住和管理各种类型应用的口令,目前SSO Plus支持的应用有:通过IE浏览器访问的Web帐号(如:电子银行帐号、电子商务帐号等);Lotus Notes帐号;大多数基于Windows桌面的应用帐号。,SSO Plus口令管理系统界面,小结,本章围绕四种类型的信息安全服务:保密性、鉴别性、完整性和不可否认性,主要介绍应用于信息安全服务的哈希函数、数字签名、消息鉴别、身份认证等四个方面的技术,以及一个身份认证的实例。最后介绍了两种类型的简单数据保护工具:哈希函数工具HashCalc和身份认证工具SSO Plus。,作业,利用本章所学知识,设计一个协议,使得A,B双方之间相互发送消息,协议能够保证消息的机密性、不可否认性,消息完整性和鉴别性课后实验:下载身份认证工具SSO Plus和信息摘要工具Hash Calc,学会使用这些工具,增强对本章知识的理解和掌握。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号