版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章数字签名和认证
本章导读1.Hash算法2.数字签名技术3.身份认证4.PKI5.PMI第3章数字签名和认证
3.1Hash算法3.1.1Hash函数的定义Hash函数是将任意长的消息(明文)m,压缩成一个固定长度的散列值的函数,以h(m)表示。Hash函数也称为“散列函数”或“杂凑函数”。3.1.2Hash函数的分类单向Hash函数按其是否使用密钥控制可划分为两类,即带密钥控第3章数字签名和认证
制的单向Hash函数h(k,m)和不带密钥控制的单向Hash函数h(m)。无密钥控制的单向Hash函数,其Hash值只是输入字串的函数,任何人都可以计算,因而不具有身份认证功能,只用于检测接收数据的完整性。如窜改检测码MDC,在安全的Hash标准中就采用了这种技术。而带密钥控制的单向Hash函数,其Hash值不仅与输入有关,而且与密钥有关,只有具有密钥的人才能计算出相应的Hash值,因此具有身份验证的功。第3章数字签名和认证
3.1.3Hash函数的安全性Hash函数的安全性取决于抗及各种攻击的能力。攻击者的主要目标是找到一对或更多对碰撞消息。一般假定攻击者知道单向Hash函数的算法。对单向Hash函数的主要攻击方法是生日攻击。3.1.4安全Hash函数的一般结构这个结构是由Merkle提出的,是一个迭代结构。目前所使用的大多数Hash函数均为这种结构。Hash函数接收一个输入消息,并把输入信息分为L-1个固定长度为b位的分组。若第L-1个分组不足b第3章数字签名和认证
位,则将其充填为b位,然后再附加一个表示该Hash函数输入的总长度值。包含这个长度值将增加攻击的难度,因为攻击者必须找出两个具有相同长度和相同Hash值的消息,或者找出两条长度不等但加入各自的长度后Hash值相同的消息。3.1.5MD5算法MD5的全称是Message-digestAlgorithm5(信息-摘要算法),用于确保信息传输完整一致。在90年代初由MITLaboratoryfor第3章数字签名和认证
ComputerScience和RSADataSecurityInc,的RonaldL.Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或第3章数字签名和认证多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。3.1.5.1算法描述在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(BitsLength)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。第3章数字签名和认证3.1.5.3MD5的安全性MD5有这样一个性质,即杂凑码中的每一个比特是所有输入比特的卤数,因此获得了很好的混淆效果,从而使得不可能随机选择两个具有相向杂凑值的消息。Rivest猜想作为128比特长的杂凑值来说,MD5的强度达到了最大,比如说找出具有相同杂凑值的两个消息需执行O(2128)次运算,而寻找具有给定杂凑值的一个消息需要执行O(264)次运算。目前对MD5的攻击已取得以下结果:第3章数字签名和认证①对单轮MD5使用差分密码分析,可在合理的时间内找出具有相同杂凑值的两个消息。但这种攻击还未能成功地推广到4轮MD5。②可找出一个消息分组和两个相关的链接变量(即缓冲区变量ABCD),使得算法产生出相同的输出。目前这种攻击还未能成功地推广到整个算法。③对单个512比特长的消息分组己成功地找出了碰撞,即可找出另一个消息分组,使得算法对两个消息分组第3章数字签名和认证的128比特长的输出相同。目前这种攻击还未成功推广到在有初值IV时对整个消息运行该算法。3.1.6SHA算法安全杂凑算法SHA(SecureHashAlgorithm)由美国NIST设计,于1993年作为联邦信息处理标准(FIPSPUBl80)公布。SHA是基于MD4算法,其结构与MD4非常类似。3.1.6.1算法描述第3章数字签名和认证算法的处理过程有以下几步:第1步(对消息填充):与MD5的第1步完全相同。第2步(附加消息的长度):与MD5的第2步类似,不同之处在于以big-endian方式表示填充前消息的长度。即第1步留出的64比特当作64比特长的无符号整数。第3步(对MD缓冲区初始化):算法使用160比特长的缓冲区存储中间结果和最终杂凑值,缓冲区可表示为五个32比特长的寄存器(A,B,C,D,E),每个寄存器第3章数字签名和认证都以big-endian方式存储数据,其初始值分别为A=67452301,B=EFCDAB89.C=98BADCFB,D=10325476,E=C3D2E1F0。第4步(以分组为单位对消息进行处理):每一分组Yq都经一压缩函数处理,压缩函数由4轮处理过程(如图3-2所示)构成,每一轮又由20次迭代组成。4轮处理过程结构一样,但所用的基本逻辑函数不同,分别表示为ƒ1,ƒ2,ƒ3,ƒ4,。每轮的输入为当前处理的消息分组Yq和缓冲区的当前值A、B、C、D、E,输出仍放在缓冲第3章数字签名和认证区以替代A、B、C、D、E的旧值.每轮处理过程还需加上一个加法常量K1,其中o≤t≤79表示迭代的次数。80个常量中实际上只有4个不同取值,如表3-1所示,其中[]为x的整数部分。第4轮的输出(即第80次迭代的输出)再与第t轮的输入CVq,相加,以产生CVq+1,其中加法是缓冲区中5个字中的每—个字与CVq中相应的字模232相加。第5步(输出):消息的L个分组都被处理完后,最后一个分组的输出即为160比特的消息摘要。第3章数字签名和认证3.1.6.2SHA与MD5的比较大于MD5使用的缓冲区(128比特),因此在相同硬件上实现时,SHA的速度慢于MD5的速度。④简洁与紧致性:两个算法描述起来都较为简单,实现起来也较为简单,都不需要大的程序和代换表。⑤数据的存储方式:MD5使用little-endian方式,SHA使用big-endian方式。两种方式相比看不出哪个更具优势,之所以使用两种不同的存储方式是因为设计者最初实现各自的算法时,使用的机器的存储方式不同。第3章数字签名和认证①抗穷搜索攻击的强度:由于SHA和MD5的消息摘要长度分别为160和128,所以用穷搜索攻击寻找具有给定消息摘要的消息分别需做O(2160)和O(2128)次运算,而用穷搜索攻击找出具有相同消息摘要的两个不向消息分别需做O(280)和O(264)次运算。因此SHA抗击穷搜索攻击的强度高于MD5抗击穷搜索攻击的强度。②抗击密码分析攻击的强度:由于SHA的设计准则未被公开,所以它抗加密码分析攻击的强度较难判断,似乎高于MD5的强度。第3章数字签名和认证③速度:由于两个算法的主要运算都是模232加法,因此都易于在32位结构上实现。但比较起来SHA的迭代次数(80次)多于MD5的迭代次数(64次),所用的缓外区(160比特)3.2数字签名技术3.2.1数字签名基础数字签名(DigitalSignature)就是只有信息发送第3章数字签名和认证者使用公开密钥算法的主要技术产生的别人无法伪造的一段数字串。发送者用自己的私有密钥加密数据传给接收者,接收者用发送者的公钥解开数据后,就可确定消息来自于谁,同时也是对发送者所发送信息真实性的一个验证。数字签名必须保证以下几点:(1)接收者能够核实发送者对报文的答名。(2)发送者事后不能抵赖对报文的签名。(3)接收者不能伪造对报文的签名。第3章数字签名和认证3.2.2数字签名基本原理在公钥密码体制实现数字签名的基本原理很简单,假设A要发送—个电子文件给B,A、B双方只需经过下面三个步骤即可。(1)A用其私钥加密文件,这便是签名过程。(2)A将加密的文件发送给B。(3)B用A的公钥解开A送来的文件这样的签名方法是符合可靠性原则的,即:(1)签名是可以被确认的。第3章数字签名和认证(2)签名是无法被伪造的。(3)签名是无法重复使用的。(4)文件被签名以后是无法被篡改的。(5)签名具有不可否认性。3.2.3数字签名加密算法1.Hash签名2.DSA和RSA签名3.2.4数字签名中的问题与改进数字签名在具体应用中还存在一些问题第3章数字签名和认证需要解决。(1)签字后的文件可能被接收方重复使用。如果签字后的文件是一张支票,接收方很容易多次用该电子支票兑换现金,为此发送方需要在文件中加上一些该支票的特有凭证,如时间戳(但时间戳会有一个时间是否同步的问题)等,以防止上述情况发生。(2)数字签名应用很多的RSA算法是基于大数的因子分解难题,由于计算水平的提高,人们逐渐可以用计算机分解更大的数。因此RSA算法的密钥也就越来越第3章数字签名和认证长,在使用GPG(GnuPG)时至少要选择700比特以上的密钥。(3)公钥算法的效率是相当低的,不易用于长文件的加密,所以采用Hash函数,将原文件P通过个单向(one-way)的Hash函数作用,生成相当短的(仅几十或几百位)的输出H,即Hash(P)=H,这里由P可以很快生成H,但由于H几乎不可能生成P,然后再将公钥算法作用在H上生成“签字”S,记为Ek1(H)=S,k1为A的公钥,A将第3章数字签名和认证(P,S)传给B,B收到(P,S)后,需要验证S是A的签字。若有H1=H2,即Dk2(S)=Hash(P),才能确认为S就是A的签字。(4)如果在Hash签名使用一个密钥k,让只有知道此密钥k的人才能使用Hash,即用H(m,k)代替H(m),则可以增强Hash加密的安全性。以上方法实际上就是把签字过程从对原文件转移到一个很短的Hash值上,大大地提高了效率,可以在现代的电子商务中被广泛地使用。第3章数字签名和认证3.3身份认证3.3.1身份认证基础身份认证对于提供安全服务有如下作用:作为访问控制服务的一种必要文持,访问控制服务的执行依赖于确知的身份;作为提供数据源认证的一种可能方法(当它与数据完整性机制结合起来使用时);作为对责任原则的一种直接支持,例如,在审计追踪过程中做记录时,提供与某一活动相联系的确知身份。第3章数字签名和认证一般来说,一个身份认证系统应该满足如下要求:验证者正确识别合法示证者的概率极大化;不可传递性,验证者不可能重用示证者提供给他的信息来伪装示证者,以实现成功地骗取他人的验证,从而得到信任;攻击者伪装示证者骗取验证者成功的概率要小到可以忽略的程度,特别是能够抵抗已知密文攻击,即能够抵抗攻击者在截获到示证者和验证者多次通信内容第3章数字签名和认证后,伪装示证者骗取验证者的信任;计算有效件,即实现身份认证所需的计算量要尽可能小;通信的有效性,即实现身份认证所需通信次数和数据量要尽可能小;秘密参数能够安全存储;交互识别,在某此应用中,有通信双方能够互相进行身份认证的需求;第三方的实时参与,如在线公钥检索服务;第3章数字签名和认证第三方的可信赖性;可证明安全件3.3.2KerberosKerberos是为TCP/IP网络设计的可信第三方认证协议。Kerberos基于对称密码学,它与网络上的每个实体分别共享一个不同的密钥.是否知道该密钥便是身份的证明。Kerberos最初是在麻省理工学院(MIT)为Athena项目而第3章数字签名和认证开发的,Kerberos模型基于Needham、Schroeder的可信方协议。广泛使用的Kerberos的版本是第4版和第5版,第5版弥补了第4版中存在的一些安全漏洞,已经发布为Internet协议标准(RFCl510)。Kerberos支持这三种安全要求,它基于一个分布的客户/服务器结构,用多个Kerberos服务器提供认证服务。为此,对Kerberos提出如下需求:●安全:非法用户不能伪装成合法用户来窃听有关信第3章数字签名和认证息,即Kerberos应提供强大的安全机制来防止潜在的非法入侵者发现脆弱的链路。●可靠:用户依靠Kerberos提供的服务来取得进行访问控制所需的服务。因此,要求Kerberos具有高可靠性,采用分布式的服务器结构,随时对系统进行备份,否则,用户得不到Kerberos的服务,就无法获得所要求的服务。●透明:为方便用户,整个系统对用户来说应该是透明的。除第3章数字签名和认证了需要输入一个口令外,用户感觉不到认证服务的发生。●可扩缩:Kerberos应该采用模块化、分布式结构,能够支持大量客户和服务器。Kerberos系统采用一个协议来提供可信的第三方认证服务,客户和服务器都信任Kerberos对它们之间的仲裁。因此,只要Kerberos服务器本身是安全的,那么认证服务就是安全的。第3章数字签名和认证3.3.3X.509为了在开放网络上实现远程的网络用户身份认证,ITU于1988年制定了认证体系标准:“开放性系统互连——目录服务:认证体系x.509”。X.509主要内容包括:简单认证(SimpleAuthentiCAtion)程序:在此部分,X.509建议了安全度较低的身份认证程序,此部分所定义的验证程序使用最常见的口令(Password)认证的技术来识别通信双方。只要用户可以提供正确的口令,就认为他/她是合法用户。该认第3章数字签名和认证证体系仪能提供较简单、有限的保护,以防止未授权的存取访问。强认证(StrongAuthentiCAtion)程序:该程序提出了一个高安全度的身份认证机制。其验证程序是使用公开密钥密码学的技术来识别通信双方。强认证可分为“单向的”、“双向的”及“三向的”三种认证方式,分别提供不同安全层次的安全认证。对于公开密钥证书的使用有详细的定义,以强化其认证能力。第3章数字签名和认证密钥及证书管理:因为强认证程序中需要公开密钥密码系统的支持来实现其认证目的,这部分内容就是针对密钥以及证明密钥正确性的证书管理。证书扩充及证书吊销列表扩充(CertifiCAteandCRLExtensions):由于1988年版的X.509中对于证书及证书吊销列表的定义并不是很完善,所以在1995年,针对这些问题,提出X.509修正案,对这两部分作了一些修正与补充,以弥补旧版X.509的不足,最终于1997年6月将这两部分合二为一,为最新版的X.509文件。第3章数字签名和认证3.3.3.1简单认证过程X.509提供的简单认证有下列三种运行方式:(1)用户将其口令及用户ID未做任何加密保护,直接以明文方式传送给接收端。(2)用户将其个人口令、用户ID、一个随机数和/或时间戳在经过一单向函数保护后,传送至接收端。(3)用户用以上第(2)种方式所述的方法,先第3章数字签名和认证经一次单向函数保护所有数据,然后再连同另一组随机数和/或时间戳,再经过第二次的单向函数保护后,传送至接收端。3.3.3.2强认证过程X.509以公开密钥密码的技术能够让通信双方容易共享密钥的特点,并利用公钥密码系统中数字签名的功能,强化网络上远程认证的能力,定义出强认证程序,以达到所谓“强认证”的目的。第3章数字签名和认证3.4PKI3.4.1PKI概念PKI是一种遵循标准的密钥管理平台,它能够为所有网络应用透明地提供采用加密和数字签名等密码服务所必需的密钥和证书管理,实现和管理不同实体之间的信任关系。概括地说,PKI是一个用公钥密码理论与技术建立的提供安全服务的普适性基础设施。第3章数字签名和认证3.4.2PKI提供的服务PKI技术能够满足人们对网络通信中信息安全保障的需求;能提供如下四种基本的信息安全保障:①信息的机密性。②信息的完整性。③身份认证:为对付假冒攻击而提供对某个实体身份的真实性认证,实现有效鉴别通信双方的身份。第3章数字签名和认证④信息的不可否认性:文件传输一旦完成,发送方不能否认他发送的信息,接收方也不能否认他所收到的信息。3.4.3PKI组成完整的PKI包括认证政策的制定(包括遵循的技术标准、各CA之间的上下级或同级关系、安全策略、安全程度、服务对象、管理原则和框架等)、认证规则、运作制度的制定、所涉及的各方法律关系内容以及技术的实现。一个典型、完整、有效的PKI应用系统至少应具有以下几部分:第3章数字签名和认证1、认证中心CA2、注册机构RA3、业务受理点4、LDAP目录服务器3.4.4PKI功能一个典型、完整、有效的PKI应用系统至少应具有以下功能:公钥证书管理、黑名单的发布和管理、密钥的备份和恢复、自动更新密钥、自动管理历史密钥和支第3章数字签名和认证持交叉认证。以下根据PKI组成.分别介绍PKI的功能。1、RA功能受理用户证书业务;审核用户身份;向CA中心申请签发证书;将证书和私钥写入IC卡后分发给受理中心、受理点或用户;管理本地在线证书状态协议(OCSP)服务器,并提供证书状态的实时查询;第3章数字签名和认证管理本地用户资料。2、CA功能证书管理包括的内容十分广泛,大致可分为证书的存取、证书验证、证书链校验以及交叉认证等方面。(1)证书的存取(2)证书验证(4)交叉认证(3)证书链校验第3章数字签名和认证4、密钥管理在PK1体系中,密钥的管理主要包括密钥产生、密钥备份和恢复、密钥更新、密钥销毁和归档处理等(1)密钥产生(2)密钥备份和恢复(3)密钥更新(4)密钥销毁和归档处理3.4.5信任模型第3章数字签名和认证选择信任模型(TrustModel)是构筑和运作PKI所必需的一个环节。选择正确的信任模型以及与它相应的安全级别是非常重要的,同时也是部署PKI所要做的较早和基本的决策之一。信任模型主要阐述了以下几个问题:一个PKI用户能够信任的证书是怎样被确定的?这种信任是怎样被建立的?在一定的环境下,这种信任如何被控制?第3章数字签名和认证3.4.5.1认证机构严格的层次结构模型层次结构中,上层的CA既可以认证其他CA也可以认证终端实体。虽然在现有的PKI标准中并没有排除这一点,但是在文献中层次结构往往都是假设一个给定的CA要么认证终端实体要么认证其他CA.但不能两者都认证。我们将遵循这个惯例,但不应该认为这是有限制的。)这个层次结构按如下规则建立:第3章数字签名和认证1、根CA认证(更准确地说是创立和签署证书)直接连接在它下面的CA。2、每个CA都认证零个或多个直接连接在它下面的CA。(注意:在一些认证机构的严格3、倒数第二层的CA认证终端实体。3.4.5.2分布式信任结构模型与在PKI系统中的所有实体都信任惟一一个CA的严格层次结构相反,分布式信任结构把信任分散在两个或多个CA上。也就是说,A把CAl作为他的信任锚,而B可以把CA2做为他的信任锚。第3章数字签名和认证3.4.5.3Web模型Web模型在方便性和简单互操作性方面有明显的优势,但是也存在许多安全隐患。例如,因为浏览器的用户自动地信任顶安装的所有公钥,所以即使这些根CA中有一个是“坏的”(例如,该CA从没有认真核实被认证的实体),安全性将被完全破坏。3.4.5.4以用户为中心的信任模型因为要依赖于用户自身的行为和决策能力,因此以用户为中心的模型在技术水平较高和利害关系高度一致的群体中是可行的,但第3章数字签名和认证是在一级的群体(它的许多用户有极少或者没有安令及PK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 秋季学习型组织建设与发展计划
- 基于大数据的智能物流管理系统合同(04版)2篇
- 工作效率的提升措施计划
- 保安工作与危机沟通的策略计划
- 打造亲密同事关系的措施计划
- 城市地铁线路施工招标合同三篇
- 2024年人力资源培训计划:打造核心竞争力
- 管理人员聘用合同书范本
- 预算执行与监控策略计划
- 福建省事业单位聘用协议书
- 2024年中核粒子医疗科技有限公司招聘笔试参考题库含答案解析
- 《学校卫生基本要求》课件
- 消防培训市场分析报告
- 实验教学中学生实践能力的培养与实践
- 《国有企业采购操作规范》【2023修订版】
- 人工智能导论-课件 第1章 人工智能的前世今生
- 《身边的化学》高中化学校本课程
- (完整版)【部编版】九年级下册《词四首》-默写、赏析、练习题
- (完整文本版)《英语听力教程3》听力原文与答案
- 2023年《快乐的泼水节》说课稿
- 冬季高血压病的预防保健
评论
0/150
提交评论