资源预览内容
第1页 / 共63页
第2页 / 共63页
第3页 / 共63页
第4页 / 共63页
第5页 / 共63页
第6页 / 共63页
第7页 / 共63页
第8页 / 共63页
第9页 / 共63页
第10页 / 共63页
亲,该文档总共63页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七章第七章 数字签名数字签名 1 1、 数字签名的基本原理数字签名的基本原理 2 2、 RSA RSA 数字签名数字签名 3 3、 ELGamal ELGamal 数字签名数字签名 4 4、 数字签名标准数字签名标准 DSS DSS 5 5、附加功能的数字签名与数字签名的应用附加功能的数字签名与数字签名的应用 7. 1 7. 1 数字签名的基本原理数字签名的基本原理 在密码学中利用数字签名和认证技术来实现信息在密码学中利用数字签名和认证技术来实现信息完整性、认证性和不可否认性等。完整性、认证性和不可否认性等。 假定假定 A A 发送一个对消息发送一个对消息 M M 的数字签名给的数字签名给 B B , A A 的数字签名应该满足下述三个条件:的数字签名应该满足下述三个条件: (1 1)B B 能够证实能够证实 A A 对消息对消息 M M 的签名;的签名; (可验证性)(可验证性) (2 2)任何人都不能伪造任何人都不能伪造 A A 的签名;的签名; (不可伪造性)(不可伪造性) (3 3)如果如果 A A 否认对消息否认对消息MM的签名,可通过仲裁解决的签名,可通过仲裁解决 A A 与与 B B 之间的争议。(不可否认性、可仲裁性)之间的争议。(不可否认性、可仲裁性)Digital SignatureDigital SignatureDigital Signature利用对称钥利用对称钥加密加密可以实现签名,但需要一个可信第三方可以实现签名,但需要一个可信第三方(TTPTTPTrusted Third PartyTrusted Third Party)所以所以一般的签名指得是公钥体制实现的签名:一般的签名指得是公钥体制实现的签名:利用私钥签名;利用公钥验证。利用私钥签名;利用公钥验证。 可以利用加密方案实现签名,也可以直接设计签名。可以利用加密方案实现签名,也可以直接设计签名。知道知道A和和B的密钥!的密钥!利用公钥利用公钥加密加密可实现签名:可实现签名:条件:当解密和加密变换可以交换顺序时;条件:当解密和加密变换可以交换顺序时;ABE是加密变换是加密变换D是解密变换是解密变换一般的数字签名方案为:直接构造的公钥签名体制。一般的数字签名方案为:直接构造的公钥签名体制。除了基本的签名以外,还有附加功能的签名,用于各种场合,除了基本的签名以外,还有附加功能的签名,用于各种场合,例如:例如:盲签名电子现金(匿名性);盲签名电子现金(匿名性);群签名匿名选举、拍卖;群签名匿名选举、拍卖;代理签名公司文件、代办业务;代理签名公司文件、代办业务;门限签名秘密分享;门限签名秘密分享;一次性签名身份认证等。一次性签名身份认证等。等等。等等。通常数字签名方案包括三个部分:通常数字签名方案包括三个部分:(1 1)密钥生成)密钥生成:生成签名者所需的密钥;生成签名者所需的密钥;(2 2)签名过程)签名过程:签名者选择签名者选择 mmMM,利用密钥进行签名利用密钥进行签名 s=S(m)s=S(m), 输出输出( (m,s)m,s);(3 3)验证过程验证过程:验证者获得验证函数(方程),验证签名,验证者获得验证函数(方程),验证签名, 如果验证方程成立,则承认该签名;否则拒绝。如果验证方程成立,则承认该签名;否则拒绝。假定用户假定用户 A A 的公开钥是的公开钥是 ,秘密钥是,秘密钥是 则则 A A 发送的对消息发送的对消息 M M 的签名是的签名是验证者收到后,可用验证者收到后,可用 A A 的公开钥恢复的公开钥恢复 MM 7. 27. 2、 RSA RSA 数字签名数字签名如果要求向如果要求向 B B 传送加密消息的签名,则传送加密消息的签名,则 A必须发送必须发送(1)若你截获由)若你截获由A发给发给B的密文的密文C=86,试求明文试求明文M;(2)若若A对消息对消息M进行签名进行签名S,并发给并发给B,试求签名试求签名S;(3)若若B收到了加密的签名收到了加密的签名 ,求原来的明文和求原来的明文和 签名是什么?如何判断它的正确性?签名是什么?如何判断它的正确性?在一个在一个RSA公钥密码体制中,已知公钥密码体制中,已知A的公开密钥是的公开密钥是B的公开密钥是的公开密钥是例:例:解:(解:(1)(注意:为防止算错,应对求逆结果进行验证!)(注意:为防止算错,应对求逆结果进行验证!)(2)(3)(2)如果消息)如果消息 的签名分别是的签名分别是 ,则任何知道,则任何知道 的人都可以伪造对于消息的人都可以伪造对于消息 的签名的签名RSARSA签名的安全性:签名的安全性:(1) (1) 对于任意对于任意 ,任何人都可以计算,任何人都可以计算所以任何人都可以伪造对于随机消息所以任何人都可以伪造对于随机消息 x x的签名;的签名;(3)当消息较大时,先将消息进行)当消息较大时,先将消息进行hash函数变换。同样函数变换。同样 前两项的问题,也可以利用前两项的问题,也可以利用hash函数函数来解决来解决。7. 37. 3、ELGamal ELGamal 数字签名数字签名一、密钥生成算法一、密钥生成算法产生一个随机大素数产生一个随机大素数 p p,和一个乘法群和一个乘法群 的生成元的生成元g g;选择一个随机数选择一个随机数 x x ,1 x p-21 x p-2,计算计算y y 是公开密钥(或者(是公开密钥(或者(p p,g g,y y););私钥是私钥是 x x 。二、签名算法二、签名算法设设 m m 是待签名的消息,选择秘密随机数是待签名的消息,选择秘密随机数k k对消息对消息m m的签名为的签名为三、签名验证算法三、签名验证算法对于消息对于消息如果如果则签名为有效签名。则签名为有效签名。例:例:设设p11,g2是是Z11的本原元,选的本原元,选x8,则则若若A对消息对消息m=5进行签名,秘密选取进行签名,秘密选取k=9签名为(签名为(6,3):):B验证签名:验证签名:Schnorr签名(签名(Elgamal变形)变形)密钥生成算法a.选择素数q,p,q|(p1)为整数;b.选择的唯一一个阶为q的循环群 的生成元 选择元素 ,计算 如果 1则重选。c选择随机整数a,1aq1d.计算e.公钥为(p,q, ,y),私钥为a。签名算法: a.选择随机整数k,1kq1 b.计算 c.A对m的签名为(s,e)。验证算法 a.获得A的可信的公钥 (p,q, ,y); b.计算; c.当且仅当 e=e 接受该签名。验证方程正确性的证明:如果签名是A产生的,则7.4、数字签名标准、数字签名标准DSS美国NIST公布的联邦信息处理标准FIPS186,称为数字签名标准(DSS),DSS使用hash算法SHA,给出一种新的数字签名方法,即数字签名算法DSA。DSS最初提出于1991年,根据公众对于其安全性的反馈意见,1993年和1996年分别作了两次修改。2000年颁布了该标准的扩充版FIP186-2,它的新版本中包括基于RSA和椭圆曲线密码的数字签名方案。本节主要讨论数字签名算法DSA。DSA签名算法的过程kp q gx q rs f2 f1MHMsrf3Hq f4y q gv比较图8.3DSA的框图 7.4小节为:基于离散对数问题的一般数字签名方案小节为:基于离散对数问题的一般数字签名方案说明签名有多种变化形式。说明签名有多种变化形式。7.4离散对数签名方案7. 4 基于离散对数问题的一般数字签名方案基于有限域上离散对数问题的一般数字签名方案描述如下:选取大素数p 和q, q|(p - 1). 选取1 g p 满足 p 和q 以及g 都公开.Alice 选取1 x q,计算 ,x 保密, y 公开签名过程:Alice 秘密随机选取整数1 k q, 首先计算再计算满足 的s,则(r; s) 就是Alice 对消息m 的签名签名验证过程:如果 成立,则Bob 确认(r; s) 就是Alice 对消息m 的有效签名7.5俄罗斯数字签名标准俄罗斯数字签名标准l1994年俄罗斯颁布了自己的数字签名标准(GOST),1995年启用,官方称为GOSTR34.1094。GOST算法使用的单向Hash函数H(x)是在分组密码算法GOSY78147.89基础上建立的l(1)算法参数:DSA使用的参数如下使用的参数如下俄罗斯数字签名标准俄罗斯数字签名标准l(2)签名算法:设要签名的消息为设要签名的消息为M,签名,签名过程如下过程如下俄罗斯俄罗斯数字签名标准数字签名标准l(3)验证算法:接收者收到(接收者收到(M,r,s)后,)后,按以下步骤验证签名的有效性按以下步骤验证签名的有效性签名应用数字签名(DigitalSignature)又称公钥数字签名、电子签章,是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现。数字签名是用于鉴别数字信息的一种方法,一套数字签名通常定义两种互补的运算:一个用于签名,另一个用于验证。一般来说,数字签名是附加在数据单元上的一些数据,这些数据是对数据单元所作的数据变换。这种数据变换后的数据允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并可以保护数据以防止被人(例如接收者)篡改伪造。数字签名目前主要基于公钥密码体制,包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir、Des/DSA以及椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等。数字签名与具体应用环境密切相关,甚至美国联邦政府制定了自己的数字签名标准DSS。个人安全邮件证书个人安全邮件证书是数字签名功能的一种典型应用。个人安全电子邮件证书是依据x.509标准创建的数字安全证书,包含证书持有人的电子邮件地址、证书持有人的公钥、颁发者(CA)以及颁发者对该证书的签名。它通过结合数字证书和S/MIME技术对普通电子邮件做加密和数字签名处理,从而确保电子邮件内容的安全性、机密性、发件人身份确认性和不可抵赖性(不可伪造性)。个人安全邮件证书功能的实现决定于用户使用的邮件系统是否支持相应功能。目前,MSOutlook、OutlookExpress、Foxmail及CA安全电子邮件系统均支持相应功能。个人安全邮件证书手机软件数字签名技术手机软件数字签名技术智能手机的普及,随之而来的是恶意软件的危害问题。某些恶意软件一旦植入智能手机中,有可能无法正常卸载而让手机无法使用,而只好选择重装操作系统,而手机操作系统安装不像普通电脑操作安装那么方便。手机操作系统安装可以通过“刷机”方式来操作,但其操作有危险性,刷机操作的不正确往往导致手机报废。正是考虑到此问题的严重性,某些手机操作系统(如Symbian、WindowsMobile)提供商如采用数字签名机制来确保手机的安全。手机软件签名Symbian(“塞班”)S60V3版开始强制要求软件数字签名,手机软件签名相当于手机软件实名制。通过软件数字签名,一旦用户发现软件有问题就可以找手机软件开发商(软件签名者);否则一旦手机软件有问题,将由于无法证明软件的来源而使得用户没有任何证据来向软件开发商索赔。数字签名机制可以保证手机用户的合法权益,又在一定程度上保护了手机软件开发商的利益。但由于手机软件签名使用较为麻烦,影响手机用户体验,也常常受到一些使用者的反对。手机软件签名USBKEYUSBKey身份认证方式是近几年发展起来的一种方便、安全的身份认证技术。它采用软硬件相结合、一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。USBKey作为一种USB接口的硬件设备,内置了单片机或智能卡芯片,有一定的存储空间,可以存储用户的密钥或数字证书,利用USBKey内置的密码算法实现对用户身份的认证。由于用户私钥保存在密码锁中,理论上使用任何方式都无法读取;如果用户密码被泄漏,只要USBKey本身不被盗用也是安全的。基于USBKey身份认证系统主要有两种应用模式:一是基于挑战/响应的认证模式;二是基于PKI体系的认证模式,该模式目前广泛运用在电子政务、网上银行等领域。7.5 7.5 附加功能的数字签名附加功能的数字签名存在多种附加不同功能的签名方案,如盲签名、代理签名、群签名等等,数字签名的作用强大和灵活,对于它的研究和应用是一个非常活跃领域。 下面介绍几种。(1)盲签名(blind signature):a、接受者首先将消息进行盲变换,再将变盲的消息送给签名者;b、签名者对盲消息进行签名,送给接受者;c、接受者对签名进行脱盲变换,得到对原来消息的签名。盲签名就像将消息放在一个信封里,送给签名者签名,签名者在信封上用复写纸签名,之后将信纸取出,得到签名。盲签名可实现消息的匿名性,用于电子现金和选举等。ChaumCha82在1982年提出盲签名思想,其形式由三个函数组成:一个签名函数s和其逆s,s(s(x)=x,签名函数只有签名者知道,其逆是公开的;一个计算函数c和其逆c,二者只有消息提供者知道,且c(s(c(x)=s(x),c(x)和s不暴露x的任何信息;一个检查冗余的谓词r,用以检查充分的冗余性,以使搜索有效签名是不可实现的。盲签名的过程为: 消息提供者P随机选择x,使r(x)成立,将c(x)交给签名者S;S用s对c(x)签名,将s(c(x)交给P; P应用c脱盲,产生c(s(c(x)=s(x); 任何人可以用S的公钥s检验s(x)是S的签名,检查r(s(s(x)成立。 其结果是:S不知道签名是何时所签。例如:基于基于RSA的盲签名的盲签名假设签名者为B,消息提供者为A。对消息m,签名子者B一无所知。签名后B对消息m和签名同样一无所知。B的RSA的公钥为(n,e),私钥为d,k是A选择的秘密值,盲签名过程为:1、盲化:A计算并送给B;2、签名:B计算并送给A;3、脱盲:A计算得到B关于m的盲签名。(2)onetime签名这种签名方案至多只能签一个消息。否则签名将能被伪造。签名产生和验证很有效,适用于计算量小的场合,如chipcards。(3)不可否认签名(undeniable ) 这种签名的验证过程需要签名者参加。如软件公司对产品的不可否认签名,只有公司参加才能证明可信性。(4)多重签名(multi ) 这是多个签名者对同一个消息共同进行签名,可以是有序的;也可以是同时的。(5)代理签名:一个被称为原始签名人的用户,可将他的签名的权利委托给一个被成为代理签名人的用户。代理签名人可代表原始签名人对消息签名。同一般签名一样,代理签名可公开验证。(6)群签名:一个群成员可代表整个群对消息进行签名,可 用群公钥公开验证,但不知道哪个群成员签的名。只有群管理者(被授权者)可以确定签名的成员。群签名的定义群签名的定义比较完整的群签名方案包括以下步骤AM02:系统建立:一个概率算法,输入安全参数,输出初始群公钥和群管理者GM的私钥;加入:用户与GM之间的协议。用户U从GM获取关系证书,成为群成员,并保存关系证书的秘密。GM刷新确定群状态的信息;撤销:一个确定算法,输入需撤销的用户关系证书,输出GM的刷新信息;刷新:一个确定算法,当有加入和撤销发生时,群成员做刷新工作;签名:一个概率算法,输入消息、群公钥、关系证书和相应的成员秘密,输出群成员对消息的签名;验证:一个确定算法,验证者用群公钥验证群签名的有效性;打开:一个确定算法,输入消息、有效群签名、群公钥和GM的私钥,确定签名者的身份。群签名方案的安全要求有:正确性:每一个由群成员经“签名”步骤产生的群签名,必须被“验证”步骤接受;不可伪造性:只有群成员可以以群的名义签名;匿名性:给出一个有效群签名,除了GM,其他任何人确定实际的签名者是计算困难的(非分离的情况);不可连接性:除了GM,其他任何人确定两个群签名是否由同一个成员产生,是计算困难的;不可诬陷性: GM和不诚实成员子集的合作,不能以一个诚实成员名义产生签名;可跟踪性:GM总能够确认一个有效群签名的实际签名者(非分离的情况);抗合谋性:群成员的合谋子集不能产生一个GM不能跟踪的签名。群签名举例群签名举例这个群签名方案有以下几个特点:群签名依赖所有成员。若缺少任何一个会员的合作,则无法生成合法的群签名。群签名的长度不会受全体成员人数的影响,为一固定值。验证群签名的计算量也不会随成员人数的增减而变化。数字签名的应用数字签名的应用1、基本方案的应用 公开密钥加密方法的一个主要优点是提供了数字签名的实现手段。数字签名将签名者身份和消息绑定在一起,使得信息的接收者能够验证信息来源的真实性,还能够验证信息是否完整。因此,公钥数字签名可以提供身份验证和数据完整性保证。数字签名还提供了不可抵赖的特性,该特性能够保证信息的发送者无法否认自己确实发送了这个信息。这些特性如同加密功能一样是整个密码系统的最基本功能。 其中数字签名最主要的应用之一是大规模网络中公钥证书,证书是TTP将用户身份和公钥绑定的一种手段,这样在其后某个时间,其他用户可以确定一个公钥而不需TTP的协助。 数字签名的目的和手写签名一样,然而手写签名很容易仿造,数字签名和手写签名相比的优势在于它几乎不可能被仿造,而且它在确认签名者身份的同时还能保证信息内容的完整性。2、附加功能的数字签名有各自的用处。例如:盲签名用于电子现金、选举;不可否认签名用于产权保护;多重签名用于合同签署;群签名用于拍卖等。实际上正是由于不同的实际需求,产生了不同功能的数字签名。电子现金系统简介:电子现金系统简介: 电子现金系统涉及消费者(customer)、银行(bank)、商家(shop)和/或可信第三方(trusted third party-TTP)。取款者和商家在银行都有合法帐户,系统建立安全参数和各方的公私密钥对,合法用户都能够证明自己的身份。基本的电子现金系统包括以下三个子协议: (1)取款子协议Withdrawal(C,B):涉及消费者和银行。消费者从银行取出电子现金,(一般每次取款都是固定值的钱数),银行从消费者帐户中减去一项;(2)支付子协议Payment(C,S,(B):涉及消费者和商家,而离线离线系统不涉及银行,在线在线系统涉及银行的参与。消费者将钱币即电子现金交给商家,商家验证有效性,以某种公平交换方式将货物发送给消费者。(3)存款子协议Deposit(S,B):涉及商家和银行。商家将电子现金提交给银行,银行进行有效性和是否重复花费的检查,合格后在商家帐户上增加一项。实用中的考虑实用中的考虑实用中还防止双方的互相欺骗行为。(1)、防止签名重用。接受方可重用签名,所以签名 要加时间戳;(2)、当消息比较长时,经过hash函数只对报头签名 (3)、抗抵赖和数字签名。Alice故意暴露签名钥,并 且无人能阻止她。加时间戳等。 (4)、对公钥密码的攻击。在上面公钥密码协议中, 回避了Alice怎么得到Bob的公钥这件事。这是公 钥建立的问题。第七章第七章 数字签名数字签名 至此结束!至此结束!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号