《数字签名与认证技术.ppt》由会员分享,可在线阅读,更多相关《数字签名与认证技术.ppt(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章 数字签名与认证技术 l哈希函数哈希函数l数字签名数字签名 l消息鉴别消息鉴别 l身份认证身份认证 l身份认证实例身份认证实例Kerberosl数据保护工具数据保护工具目录 哈希函数概念 l哈希函数哈希函数,也称为单向散列函数、杂凑函数或,也称为单向散列函数、杂凑函数或消息摘要算法。它通过把一个单向数学函数应消息摘要算法。它通过把一个单向数学函数应用于数据,将任意长度的一块数据转换为一个用于数据,将任意长度的一块数据转换为一个定长的、不可逆转的数据。定长的、不可逆转的数据。l哈希函数哈希函数H H能用于任意大小的分组,产生定长能用于任意大小的分组,产生定长的输出;对任何给定的的输出;对任
2、何给定的x x,H(xH(x)要相对易于计要相对易于计算,使得硬件和软件实现成为实际可能;单向算,使得硬件和软件实现成为实际可能;单向性;弱抗冲突性;即强抗冲突性。性;弱抗冲突性;即强抗冲突性。哈希函数必须具有的特性u单向性单向性:给定M和H,求hH(M)容易,但反过来给定h,寻找一个M使H(M)=h在计算上是不可行的;u抗弱碰撞抗弱碰撞:给定M,要寻找另一信息M,满足H(M)H(M)在计算上不可行;u抗强碰撞抗强碰撞:要寻找不同的信息M和M,满足H(M)H(M)在计算上不可行。u(概率论:生日攻击生日攻击)生日悖论 生日问题:生日问题:一个教室中,最少应有多少学生,才一个教室中,最少应有多少
3、学生,才使使至少有两人至少有两人具有相同生日的概率不小于具有相同生日的概率不小于1/21/2?概率结果与人的直觉是相违背的概率结果与人的直觉是相违背的.实际上只需实际上只需2323人人,即任找即任找2323人,从中总能选出两人具有相同生日的概率至人,从中总能选出两人具有相同生日的概率至少为少为1/21/2。【分析分析】:生日的取值范围:生日的取值范围:1-3651-365 不同输入的个数:不同输入的个数:2323IV:初始值,:初始值,CV:链接值,:链接值,Yi:第:第i个输入数据块,个输入数据块,f:压缩算法,:压缩算法,n:散列码长度,:散列码长度,b:输入块的长度。:输入块的长度。哈希
4、函数的一般结构图MD5算法算法输入:任意长度的消息输出:128bit消息摘要处理:以512bit分组为处理单位注:MD5wasdevelopedbyRonRivest(“R”oftheRSA)atMITin1990sMD5算法结构图算法结构图 在MD5算法中的处理步骤包括以下过程:l首先,需要对消息进行填充。l其次,将MD缓冲初始化。l当设置好这四个链接变量后,就开始进入算法的四轮循环运算,循环的次数是信息中512位信息分组的数目。l输出散列值。所有L个512比特的分组处理完成后,第L阶段输出的结果便是消息M的信息摘要。MD5算法结构图 MD5的单步操作的单步操作 MD5的安全性l2004年,
5、山东大学王小云教授证明了从理论上可年,山东大学王小云教授证明了从理论上可以破解以破解MD5-即找到即找到MD5的碰撞,两个不同的文的碰撞,两个不同的文件可以产生相同的摘要。件可以产生相同的摘要。l2004年年8月美国加州召开的国际密码学会议,王月美国加州召开的国际密码学会议,王小云做了破译小云做了破译MD5等算法的报告,产生了很大的等算法的报告,产生了很大的影响。影响。lMD5设计者说到:设计者说到:“这些结果无疑给人非常深刻这些结果无疑给人非常深刻的印象,她应当得到我最热烈的祝贺,虽然我不的印象,她应当得到我最热烈的祝贺,虽然我不希望看到希望看到MD5这样倒下,但人必须尊重真理这样倒下,但人
6、必须尊重真理”l哈希函数哈希函数l数字签名数字签名 l消息鉴别消息鉴别 l身份认证身份认证 l身份认证实例身份认证实例Kerberosl数据保护工具数据保护工具数字签名的引入数字签名的引入l如何应对以下的攻击方式如何应对以下的攻击方式l发送方不承认自己发送过某一报文发送方不承认自己发送过某一报文l接收方自己伪造一份报文,并声称它来自发送方接收方自己伪造一份报文,并声称它来自发送方l某个用户冒充另一个用户接收或发送报文某个用户冒充另一个用户接收或发送报文l接收方对收到的消息进行修改接收方对收到的消息进行修改l数字签名可以解决以上争端数字签名可以解决以上争端数字签名概念 l数字签名就是利用一套规则
7、对数据进行计算的结果,用此结果能确认签名者的身份和数据的完整性l(美国DSS对数字签名的解释)数字签名应满足三个基本条件数字签名应满足三个基本条件l签名者不能否认自己的签名;l接收者能够验证签名,而其他任何人都不能伪造签名;l当签名的真伪发生争执时,存在一个仲裁机构或第三方能够解决争执。数字签名根据签名方式可以分为数字签名根据签名方式可以分为l直接数字签名直接数字签名(direct digital signature)(direct digital signature)l仲裁数字签名仲裁数字签名(arbitrated digital signature)(arbitrated digital
8、signature)。(1 1)采用)采用公开密钥公开密钥的数字签名的数字签名MMMEDA发方发方B收方收方KRAKUADKRA(M)使用发方的私钥对消息M进行数字签名(此时并没有对消息进行加密,因为任何人都可以获得公钥对消息M进行查看)直接数字签名直接数字签名 具有保密性的公钥数字签名(2 2)具有)具有保密功能的公钥数字签名保密功能的公钥数字签名MMMEA发方发方B收方收方KRAKUAEKUBDKRA(M)EDDKRBKUB签名签名签名签名加密加密加密加密解密解密解密解密验证签名验证签名验证签名验证签名直接数字签名直接数字签名比较比较KRA(3 3)采用消息摘要的数字签名)采用消息摘要的数
9、字签名MMA发方发方B收方收方KUAEKRAH(M)使用消息摘要的数字签名(不需要对整个消息进行签名,速度更快)HE|HD直接数字签名直接数字签名直接数字签名方案直接数字签名方案:仅涉及通信双方。签名方案的有效性依赖于发送方的私密密钥的安全性;发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,且他人伪造了他的签名。直接数字签名的问题直接数字签名的问题需要仲裁的数字签名需要仲裁的数字签名 引入引入仲裁者仲裁者来解决直接签名方案的问题。来解决直接签名方案的问题。通常的做法是通常的做法是:所有从发送方所有从发送方A A到接收方到接收方B B的签名消的签名消息首先送到仲裁者息首先送到仲裁者Y
10、 Y,Y Y将消息及其签名进行一系列将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给并与已被仲裁者验证通过的指示一起发给B B。思考:思考:A还能否认他的签名吗?还能否认他的签名吗?仲裁者在这一类签名模式中扮演敏感和关键的角仲裁者在这一类签名模式中扮演敏感和关键的角色。所有的通信方必须充分信任仲裁机构。色。所有的通信方必须充分信任仲裁机构。需要仲裁的数字签名需要仲裁的数字签名l仲裁者是除通信双方之外,仲裁者是除通信双方之外,值得信任的公正的第三方值得信任的公正的第三方;l“公正公正”意味着仲裁者
11、对参与通信的任何一方没有偏意味着仲裁者对参与通信的任何一方没有偏向。向。l“值得信任值得信任”表示所有人都认为仲裁者所说的都是真表示所有人都认为仲裁者所说的都是真实的,所做的都是正确的。实的,所做的都是正确的。l举例:举例:l律师、银行、公证人(现实生活)律师、银行、公证人(现实生活)l在计算机网络中,由可信机构的在计算机网络中,由可信机构的某台计算机某台计算机充当。充当。(1 1)对称加密,仲裁能看到消息)对称加密,仲裁能看到消息 YABMEKAYIDAH(M)EKYBIDAMEKAYIDAH(M)T IDA:发送方A的标识符 签名:EKAY IDAH(M)KAY:A和Y共享的对称密钥需要仲
12、裁的数字签名需要仲裁的数字签名(1 1)对称加密,仲裁能看到消息)对称加密,仲裁能看到消息解决纠纷:B:向Y发送EKYBIDA|M|EKAYIDA|H(M)Y:用KYB恢复IDA,M,和签名EKAYIDA|H(M),然后 用KAY解密签名并验证哈希值,从而验证A的签名。需要仲裁的数字签名需要仲裁的数字签名(2 2)对称加密,仲裁不能看到消息)对称加密,仲裁不能看到消息BIDAEKABMEKAYIDAH(EKABM)EKYBIDAEKABMEKAYIDAH(EKABM)TAYAB之间共享的密钥KAB对消息进行加密,仲裁Y看不到消息的明文。双方仍然要高度信任Y。签名:EKAYIDAH(EKABM)
13、需要仲裁的数字签名需要仲裁的数字签名(3 3)公开密钥加密,仲裁不能看到消息)公开密钥加密,仲裁不能看到消息 BIDAEKRAIDAEKUB(EKRAM)EKRYIDAEKUBEKRAMTAY仲裁Y通过 EKRA IDAEKUB(EKRAM)进行解密,可以确信消息一定来自于A(因为A才有KRA)签名:EKRA IDAEKUB(EKRAM)需要仲裁的数字签名需要仲裁的数字签名需要仲裁的数字签名需要仲裁的数字签名(3)公开密钥加密,仲裁不能看到消息)公开密钥加密,仲裁不能看到消息 本签名方案比上述两个方案具有以下优点:本签名方案比上述两个方案具有以下优点:1、在通信之前各方之间无须共享任何信息,从
14、而避免了、在通信之前各方之间无须共享任何信息,从而避免了结盟欺骗的发生;结盟欺骗的发生;2、即使、即使KRA 暴露,只要暴露,只要KRY 未暴露,不会有日期错误标未暴露,不会有日期错误标定的消息被发送;定的消息被发送;3、从、从A发送给发送给B的消息的内容对的消息的内容对Y和任何其他人是保密的。和任何其他人是保密的。数字签名方案数字签名方案l普通数字签名普通数字签名体制体制l RSA RSAl EIGamalEIGamall DSS/DSA DSS/DSAl盲签名盲签名体制体制盲签名体制盲签名体制l l盲签名是根据电子商务具体的应用需要而产生的盲签名是根据电子商务具体的应用需要而产生的一种签名
15、应用。当需要某人对一个文件签名,而一种签名应用。当需要某人对一个文件签名,而又不让他知道文件的内容,这时就需要盲签名又不让他知道文件的内容,这时就需要盲签名。l盲签名与普通签名相比有两个显著的特点:l签名者不知道所签署的消息内容;l签名被接收者泄漏后,签名者无法追踪签名;也即,如果把签名的消息报文给签名者本人看,他只能确信是自己的签名,而无法知道什么时候、对什么样的盲消息进行了签名。l应用:电子选举(投票)、电子货币(存取款、转帐)盲签名体制盲签名体制l接收者B首先将待签的明文消息M进行盲变换,把变换后的盲消息发送给签名者A;l经过A签名后,消息发送给接收者B;l接收者B对签名做去盲变换,得出
16、的便是签名者A对原数据的盲签名。l盲签名原理图RSA盲签名算法盲签名算法l算法描述:(1)接收者B对待签消息M进行盲化处理:随机选择盲化参数k,1kM,并计算:T=MKemodn(2)B将盲化消息T发送给A(由于k未知,A无法看到明文消息M)(3)A对盲消息T签名:Td=(MKe)dmodn=MdKmodn(4)A把对T的签名发送给接收者B;(5)B通过计算得到A对M的签名:S=Td/Kmodn=Mdmodnl哈希函数哈希函数l数字签名数字签名 l消息鉴别消息鉴别 l身份认证身份认证 l身份认证实例身份认证实例Kerberosl数据保护工具数据保护工具概念概念 认认证证(Authenticat
17、ionAuthentication),又又称称鉴鉴别别,是是对对用用户户身身份份或或报报文文消消息息来来源源及及内内容容的的验验证证。它它是是防防止止主主动动攻攻击击的的重重要要技技术术,是是保保证证信信息息完完整整性性、有有效效性性的的技技术术,即即要要搞搞清清楚楚与与之之通通信信的的对对方方身身份份是是否否真真实实,又又要要证证实实信信息息在在传传输过程中是否被篡改、伪装、窜扰、否认。输过程中是否被篡改、伪装、窜扰、否认。认证的主要分为两个方面:认证的主要分为两个方面:l身身份份/实实体体认认证证,即即验验证证信信息息发发送送者者是是真真的的,而而不不是是冒冒充的,包括信源、信宿等的认证和
18、识别;充的,包括信源、信宿等的认证和识别;l消消息息/报报文文认认证证,验验证证信信息息的的完完整整性性,即即验验证证数数据据在在传传输或存储过程中未被窜改、重放或延迟等。输或存储过程中未被窜改、重放或延迟等。认证系统的模型认证系统的模型认证编码器认证编码器认证译码器认证译码器信源信源A密钥源密钥源窜扰者窜扰者安全信道安全信道信宿信宿B纯认证系统的模型 公开信道公开信道认证函数认证函数认证编码器和认证译码器可抽象为认证编码器和认证译码器可抽象为认证函数认证函数。l认证函数认证函数l产生一个产生一个认证标识(认证标识(authentication identification)l给出合理的给出合
19、理的认证协议认证协议(authentication protocol)l接收者完成消息的接收者完成消息的认证(认证(authentication)l一个安全的认证系统,需满足一个安全的认证系统,需满足(1)接收者能检验和证实消息的合法性、真实性和完整性)接收者能检验和证实消息的合法性、真实性和完整性(2)消息的发送者和接收者不能抵赖)消息的发送者和接收者不能抵赖(3)除了合法的消息发送者,其它人不能伪造合法的消息)除了合法的消息发送者,其它人不能伪造合法的消息认证函数分类认证函数分类l认证的函数分为三类:认证的函数分为三类:l消息加密函数消息加密函数(Message encryption)l用
20、完整信息的密文作为对信息的认证。用完整信息的密文作为对信息的认证。l消息认证码消息认证码MAC(Message Authentication Code)l是对信源消息的一个编码函数。是对信源消息的一个编码函数。l散列函数散列函数(Hash Function)l是一个公开的函数,它将任意长的信息映射成是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。一个固定长度的信息。MEKEK(M)DMK提供保密提供保密提供认证(提供认证(仅来自Bob,传输中没有被更改)不提供签名不提供签名(Bob可以否认发送过消息M)BobAlice对称加密:保密性与认证对称加密:保密性与认证认证函数认证函数1:
21、加密函数:加密函数认证函数认证函数1:加密函数:加密函数公钥加密:认证与签名公钥加密:认证与签名MDKRBEKRB(M)EMKB提供认证提供认证(仅Bob有KRB可以进行加密 传输中没有被更改 任何一方均可以使用KUB验证签名)提供签名提供签名(Bob不可否认不可否认)BobAlice公钥加密:保密、认证与签名公钥加密:保密、认证与签名MDKUAEKUA(DkRb(M)DKRA提供认证提供认证提供签名提供签名提供保密性提供保密性EKRBDkRB(M)DkRB(M)EKUBMBobAlice认证函数认证函数1:加密函数:加密函数认证函数认证函数2:消息认证码:消息认证码l消息认证码:l使用一个密
22、钥生成一个固定大小的短数据块,并将该数据块加载到消息后面,称MAC(或密码校验和)MACCk(M)lMAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少MAC的计算的计算l基于DES的消息认证码KTime=1DESO1(64bits)Time=2DESKTime=NDESKMAC(16to64bits).(16=mAS:IDC|PC|IDV(2)AS-C:Ticket(3)C-V:IDC|TicketTicket=EKVIDC|ADC|IDVl存在两个主要问题:一是系统需要用户输入口令的次数较多;另一个问题是输入的口令以明文传送,中间可能会被第三者窃听。改进的身份认
23、证会话过程改进的身份认证会话过程 l引入票据服务器TGSCVAS(1)(2)(3)TGS(4)(5)Kerberosl身份认证中的各个步骤会话内容分别如下:每次用户登录执行步骤(1)、(2):(1)C-AS:IDC|Idtgs(2)AS-C:EKCTickettgs每次请求一种类型的服务时执行步骤(3)、(4)、(5):(3)C-TGS:IDC|IDv|Tickettgs(4)TGS-C:TicketVC每次请求一个服务,TGS分配一个TicketV(5)C-V:IDC|TicketVTickettgs=EKtgsIDC|ADC|IDtgs|TS1|Lifetime1TicketV=EKVID
24、C|ADC|IDv|TS2|Lifetime2l哈希函数哈希函数l数字签名数字签名 l消息鉴别消息鉴别 l身份认证身份认证 l身份认证实例身份认证实例Kerberosl数据保护工具数据保护工具HashCalc lHashCalc可以计算一个文件、文本串和十六进制串的信息摘要、校验码和HMAC,使用的哈希算法和校验码算法包括:MD5、SHA1、CRC32、MD4、SHA256、SHA384、SHA512、RIPEMD160、PANAMA、TIGER等。HashCalc 主要功能有主要功能有l(1)支持目前流行的12种哈希和校验算法:MD2,MD4,MD5,SHA1,SHA256,SHA384,S
25、HA512,RIPEMD160,PANAMA,TIGER,ADLER32,CRC32;l(2)在很多P2P2应用中(如:eDonkey,eMule)支持MD4哈希算法;l(3)支持HASH/CHECKSUM和HMAC两种计算模式;l(4)支持三种输入数据格式:文件类型、字符串、十六进制串;l(5)可以支持处理大文件的哈希和校验码计算。HashCalc对话框对话框 SSOPlus lSSO(SingleSign-On,单点登录),所谓单点登录是指用户只需在网络中主动地进行一次身份认证,随后便可以访问其被授权的所有网络资源,而不需要再主动参与其它的身份认证过程。lSSOPlus的功能是帮助用户记住
26、和管理各种类型应用的口令,目前SSOPlus支持的应用有:通过IE浏览器访问的Web帐号(如:电子银行帐号、电子商务帐号等);LotusNotes帐号;大多数基于Windows桌面的应用帐号。SSO Plus口令管理系统界面口令管理系统界面 小结小结l本章围绕四种类型的信息安全服务:保密性、鉴别性、完整性和不可否认性,主要介绍应用于信息安全服务的哈希函数、数字签名、消息鉴别、身份认证等四个方面的技术,以及一个身份认证的实例。最后介绍了两种类型的简单数据保护工具:哈希函数工具HashCalc和身份认证工具SSOPlus。作业作业1.利用本章所学知识,设计一个协议,使得A,B双方之间相互发送消息,协议能够保证消息的机密性、不可否认性,消息完整性和鉴别性2.课后实验:下载身份认证工具SSOPlus和信息摘要工具HashCalc,学会使用这些工具,增强对本章知识的理解和掌握。