不可否认签名ppt课件.ppt
5.8 不可否认签名,任何人都可以验证普通签名。有时候需要在签名者参加的情况下才能进行签名验证。满足这个要求的签名叫“不可否认签名”(Undeniable Signature Scheme)。例如: 1)实体A希望访问实体B控制的“安全区域”。实体B在授予实体A访问权之前,要求A对“访问时间、日期”进行签名。实体A不希望别人了解这个事实,即实体B没有A的参与不能通过出示A的签名及验证证明“实体A访问该区域”这一事实。,2)某公司A开发的一个软件包。A将软件包和他对软件包的签名卖给用户B,B当场验证其签名,以便确认软件包的真实性。用户B决定把该软件包的拷贝卖给第三者。由于没有公司A参与,第三者不能验证软件包的真实性。 下面我们介绍1989年Chaum-van Antwerpen提出的不可否认签名方案:密钥生成 选择随机素数 ,q 也是素数。在 中找 q 阶元 ,显然 是模 p的二次剩余。,由生成的群G是 的子群,它由 中全体模p 二次剩余组成。选择秘密指数 ,计算 公布 ,秘密保存私钥 。签名算法 是对消息 m 的签名.验证协议 验证者 签名者 随机选取 计算 验证 成立接受,否则拒绝。,签名者A想否认一个“由签名算法构造出来的”合法签名,其方式有1)拒绝参与验证协议;2)错误地执行验证协议;3)即使验证协议成功,也断言签名是伪造的。对于前者很明显,而后两种情况难以防范,需要否认协议。通过否认协议确定是否签名者A试图否认一个由签名算法得出的签名,还是签名是伪造的。否认协议由两遍验证协议组成。,否认协议(Disavowal Protocol) 验证者 签名者 任取 计算 计算 若 则接受是对的签名。停止协议 否则,取 计算 计算,若 则接受s是对m的签名 。停止协议 否则计算 进行一致性检验 ,若 ,则s是对m的伪造签名,若 ,则s是对m合法签名,签名者试图否认。,在上述协议中, (1)如果验证者和签名者都遵守协议(正确执行协议)必有 说明s是m的伪造签名,即 。 (2)如果 ,则“验证者把 看作对m的合法签名”的概率(3)如果s是对m的合法签名,由于签名者采取不合作的态度,致使 且 不成立,否认协议中最后 的概率为 。,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年CRYPTO82上提出“用于不可跟踪支付的盲签”一文,它是基于RSA的一种盲签方案(Blind Signature Schemes)。主要用在电子选举和电子货币中。例如顾客A得到银行B对钱款m的盲签名后,自己算出银行的真正签名 。在支付时提交出m和 ,银行不知道这是顾客A的一笔消费从而使A保持匿名状态,即消费行为不受到监控。,盲签需要以下两个组成部分:l签名者B的数字签名方案, 表示B对m的 签名; l 只有发送者知道的盲化函数 及复明函数 g。 称为被盲化的消息,要求,5.9.1基于RSA公钥密码系统的 Chaum盲签协议,密钥生成 且 ,选择 使得 B 的公钥是 私钥是盲签协议 发送者A 签名者B 随机选取与 互素的k s是B对m的签名,即,验证算法 验证 。若成立,则验证了s是B对m的 签名,否则拒绝。,5.9.2基于离散对数的盲签方案,方案一 密钥生成 签名者选择两个大素数p,q, 在 上离散对数问题是难解问题。 是 的q阶元。选取私钥x,令 , 为公钥。 盲签协议 盲签由签名者开始,签名者最终没有得到关于信息m的签名信息。,发送者 签名者 任取任取 计算计算 利用自己的私钥计算 计算 是对m的ElGamal签名。,验证算法 验证 。若成立,则接受 是对m的签名。否则拒绝。方案二除了加进一个哈希函数H外,与方案一的密钥生成阶段相同。发送者 签名者 随机选择 , 计算 随机选择 计算,随机选择计算,计算,验证若成立,计算 是对m的签名。,验证算法:,5.10 群体数字签名,1990年EUROCRYPT91由D.Chaum首次提出群体数字签名的概念和算法。群体数字签名可以与一个可信中心共同工作,它的的特点是: (1) 只有群体的成员可以代表该群体签发消息。 (2) 接收者对于收到的签名可以验证它是该群体的合 法签名。 (3) 在发生争执时,借助一个可信机构识别出签名的群 体成员。,群体数字签名算法由签名算法、验证算法、识别算法组成可信中心选取大素数p,使 上的离散对数是难解问题。g是 的生成元。群体中第i个成员有一个基本密钥 ,对应的公钥是 , 。可信中心为成员i选取随机数 作为盲化因子,并将盲化公钥 ,以随机排序后公布出去。可信中心保存一张群体成员姓名、基本公钥、盲化公钥表。,群体中第i个成员的私钥是 公钥 。可以使用EIGamal等签名算法进行签名。接收者收到消息的签名后,使用公布的每个盲化公钥进行验证,只要有一个公钥能成功就表明此签名是该群体的合法签名。 发生争执时,可信中心根据接收者提交的“通过验证的公钥”和“发送者的签名”以及自己保存的表查出真正的签名者。可信中心定期为成员更换盲化因子。,