您好,欢迎访问三七文档
5.8不可否认签名任何人都可以验证普通签名。有时候需要在签名者参加的情况下才能进行签名验证。满足这个要求的签名叫“不可否认签名”(UndeniableSignatureScheme)。例如:1)实体A希望访问实体B控制的“安全区域”。实体B在授予实体A访问权之前,要求A对“访问时间、日期”进行签名。实体A不希望别人了解这个事实,即实体B没有A的参与不能通过出示A的签名及验证证明“实体A访问该区域”这一事实。2)某公司A开发的一个软件包。A将软件包和他对软件包的签名卖给用户B,B当场验证其签名,以便确认软件包的真实性。用户B决定把该软件包的拷贝卖给第三者。由于没有公司A参与,第三者不能验证软件包的真实性。下面我们介绍1989年Chaum-vanAntwerpen提出的不可否认签名方案:密钥生成选择随机素数,q也是素数。在中找q阶元,显然是模p的二次剩余。12qp*pZ)1(由α生成的群G是的子群,它由中全体模p二次剩余组成。选择秘密指数,计算公布,秘密保存私钥。签名算法是对消息m的签名.验证协议验证者签名者随机选取计算验证成立接受,否则拒绝。*pZ*pZ11qaa),,(yppyamodpmsamodpysceemod21pcdqamodmod1pdmeemod21*21,qZeecd签名者A想否认一个“由签名算法构造出来的”合法签名,其方式有1)拒绝参与验证协议;2)错误地执行验证协议;3)即使验证协议成功,也断言签名是伪造的。对于前者很明显,而后两种情况难以防范,需要否认协议。通过否认协议确定是否签名者A试图否认一个由签名算法得出的签名,还是签名是伪造的。否认协议由两遍验证协议组成。否认协议(DisavowalProtocol)验证者签名者任取计算计算若则接受是对的签名。停止协议否则,取计算计算pyszxxmod21}1,,2,1{,21qxxzpzwamod1pmwxxmod21w}1,,2,1{,21qxxpyszxxmod21zpzwamod1pmwxxmod21若则接受s是对m的签名。停止协议否则计算进行一致性检验,若,则s是对m的伪造签名,若,则s是对m合法签名,签名者试图否认。wpwCxxmod12pwCxxmod12CCCC在上述协议中,(1)如果验证者和签名者都遵守协议(正确执行协议)必有说明s是m的伪造签名,即。(2)如果,则“验证者把看作对m的合法签名”的概率(3)如果s是对m的合法签名,由于签名者采取不合作的态度,致使且不成立,否认协议中最后的概率为。pmsamodpmsamod~CCq1pmwxxmod21pmwxxmod21CC)1(1qs~5.9盲签方案发送者A送消息M给签名者B,B签名之后再还给A。A可以从B对M的签名计算出B对m的签名。在签名完成时B既不知道m也不知道自己对m的签名是什么。由此看出盲签的目的是防止签名者B看到签名的内容m及B自己对m的签名。正因为如此,其后签名者B无法把被签名的信息m与发送者A联系在一起。D.Chaum在1982年CRYPTO’82上提出“用于不可跟踪支付的盲签”一文,它是基于RSA的一种盲签方案(BlindSignatureSchemes)。主要用在电子选举和电子货币中。例如顾客A得到银行B对钱款m的盲签名后,自己算出银行的真正签名。在支付时提交出m和,银行不知道这是顾客A的一笔消费从而使A保持匿名状态,即消费行为不受到监控。)(mSB)(mSB盲签需要以下两个组成部分:l签名者B的数字签名方案,表示B对m的签名;l只有发送者知道的盲化函数及复明函数g。称为被盲化的消息,要求)(mSBf)(mf)()))(((mSmfSgBB5.9.1基于RSA公钥密码系统的Chaum盲签协议密钥生成且,选择使得B的公钥是私钥是盲签协议发送者A签名者B随机选取与互素的ks是B对m的签名,即qpnB)(1BBnb1),gcd(BBnb)(1BBna),(BBbnBa)(mod1BBBnbaBbnkmmBmod~BanmsBmod~~Bnsksmod~1m~BanmsBmods~Bn验证算法验证。若成立,则验证了s是B对m的签名,否则拒绝。BbnsmBmod5.9.2基于离散对数的盲签方案方案一密钥生成签名者选择两个大素数p,q,在上离散对数问题是难解问题。是的q阶元。选取私钥x,令,为公钥。盲签协议盲签由签名者开始,签名者最终没有得到关于信息m的签名信息。)1(|pq*pZ*pZpyxmodyqp,,,发送者签名者任取任取计算计算利用自己的私钥计算计算是对m的ElGamal签名。*~qZkqZba,prkmod~~prrbamod~qrrammmod~~1qbmrrssmod)~~(1qmkrxsmod)~~~(~),(srr~m~s~验证算法验证。若成立,则接受是对m的签名。否则拒绝。方案二除了加进一个哈希函数H外,与方案一的密钥生成阶段相同。发送者签名者随机选择,计算随机选择计算prymrsmod),(sr*qZtpmmtmod0qZs0mpasmod0pmbsmod00pmzxmod00随机选择计算*pZuqZv000,,zbapaauvmod)(0pmbbuvtmod)(/10qbazmHcmod),,,(quccmod/0tzz/10)(0c0rxcsr00计算验证若成立,计算是对m的签名。000crya00000crzbmquvrrmod)(0),,,(rbaz验证算法:craycrbzm5.10群体数字签名1990年EUROCRYPT’91由D.Chaum首次提出群体数字签名的概念和算法。群体数字签名可以与一个可信中心共同工作,它的的特点是:(1)只有群体的成员可以代表该群体签发消息。(2)接收者对于收到的签名可以验证它是该群体的合法签名。(3)在发生争执时,借助一个可信机构识别出签名的群体成员。群体数字签名算法由签名算法、验证算法、识别算法组成可信中心选取大素数p,使上的离散对数是难解问题。g是的生成元。群体中第i个成员有一个基本密钥,对应的公钥是,。可信中心为成员i选取随机数作为盲化因子,并将盲化公钥,以随机排序后公布出去。可信中心保存一张群体成员姓名、基本公钥、盲化公钥表。pZ*pZispgismodni1*piZrpgiirsmodni1群体中第i个成员的私钥是公钥。可以使用EIGamal等签名算法进行签名。接收者收到消息的签名后,使用公布的每个盲化公钥进行验证,只要有一个公钥能成功就表明此签名是该群体的合法签名。发生争执时,可信中心根据接收者提交的“通过验证的公钥”和“发送者的签名”以及自己保存的表查出真正的签名者。可信中心定期为成员更换盲化因子。)1(modpsriipgiirsmod
本文标题:5.8不可否认签名
链接地址:https://www.777doc.com/doc-4795526 .html