第15讲 认证理论与技术—数字签名(续1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19
Payment_inf={bank ID, amount, currency, nCoins, timestamp, merchant- Ids, h(description), h (payer_code) } 在支付过程中,银行不能知道description的信息,只能知道 description的hash值。 具体支付协议如下: (1)电子现金支付者计算 payment={payment_inf, {nCoins,merchant_Ids}PKbank} 发送payment到电子现金接收者。其中{nCoins, merchant_Ids}PKbank表示用PKbank加密{nCoins,merchant_Ids}。
应 用 密 码 学
张仕斌 万武南 张金全 孙宣东编著
西安电子科技大学出版社 二00九年十二月
2014-2-13 1
第7章 认证理论与技术 —数字签名
2014-2-13
2
知识点:
◇ 数字签名的原理及分类 ◇ RSA及ElGamal数字签名算法
◇ 数字签名标准DSS
◇ 其他数字专用签名方案 ◇ 盲签名方案及其应用
2014-2-13 11
•
下面来体会一下这个签名方案为什么叫做盲签名方案。
签名者看到的信息是 α,根据 α, e, n,签名者显然不能计算出 h(m) 来,因为还有一个变量 r(盲化因子),即所签消息的内容对 签名人是盲的,即签名人Bob签名时不能看见消息的具体内容; 在Alice得到Bob的签名后,Bob即使看到了自己的签名(m, s), 仍 然不能把它与签名时的 α联系起来,即盲签名的第二个性质,不可 追踪性。
金额amount、币种currency、电子现金个数nCoins、时戳
timestamp、接收者身份merchant_Ids与其银行帐户对应、交易描 述description以备将来解决支付者和接收者的可能争议, 支付者的
秘密随机数payer_code也用来解决支付者和接收者的可能争议。
2014-2-13
(2)门限签名:在有n个成员的群体中,至少有t个成员才能代 表群体对文件进行有效的数字签名。 门限签名通过共享密钥方法实现,它将密钥分为n份,只有当将 超过t份的子密钥组合在一起时才能重构出密钥。门限签名在密钥 托管技术中得到了很好的应用, 某人的私钥由政府的n个部门托管 , 当其中超过t个部门决定对其实行监听时,便可重构密钥,实现 监听。 (3)代理签名 1996 年,Mambo、Usuda 和Okamoto提出了代理签名的概念 。代理签名允许密钥持有者授权给第三方, 获得授权的第三方能 够代表签名持有者进行数字签名。 代理签名相当于一个人把自己的印章托付给自己信赖的人,让 他代替自己行使权力。由于代理签名在实际应用中起着重要作用, 所以代理签名一提出便受到关注,被广泛研究。 2014-2-13 5
2014-2-13 6
⑤ 防陷害攻击,包括群管理人在内的任何人都不能以其他
群成员的名义产生合法的群签名; ⑥ 抗联合攻击,即使一些群成员串通在一起也不能产生一 个合法的不能被跟踪的群签名。 在D.Chaum和E.van Heyst提出群数字签名的定义,并给出
了四个实现方案后,由于群签名的实用性,人们对群签名加以了
(4)群签名
允许一个群体中的成员以整个群体的名义进行数字签名, 并且 验证者能够确认签名者的身份。
一个好的群签名方案应满足以下的安全性要求:
① 匿名性,给定一个群签名后,对除了唯一的群管理人之外的 任何人来说,确定签名人的身份在计算上是不可行的; ② 不关联性,在不打开签名的情况下,确定两个不同的签名是 否为同一个群成员所做在计算上是困难的; ③ 防伪造性,只有群成员才能产生有效的群签名; ④ 可跟踪性,群管理人在必要时可以打开一个签名以确定出签 名人的身份,而且签名人不能阻止一个合法签名的打开;
2014-2-13 12
7.6.2 基于离散对数难题的盲签名
基于离散对数难题的盲签名出现的时间相对比较晚。 1994 年, J.Camenisch 在 DSA 和 Nyberg-Rueppel 方案的基 础上,各提出了一个盲签名方案。
后来,随着研究进展,出现了强盲签名和弱盲签名的分化
,再后来出现了跟其他签名结合的签名方案,如盲代理签名,
一般来说,盲签名的协议有如下几个步骤:初始化过程,盲化
过程,签名过程,脱盲过程,验证过程。
2014-2-13
9
7.6.1 基于整数分解难题的盲签名
1.RSA盲数字签名描述
(1)参数选择 ① 选择两个满足需要的大素数p和q,计算n=p×q,φ(n)= (p1)×(q-1),其中φ(n)是n的欧拉函数值。 ② 选 一 个 整 数 e, 满 足 1<e<φ(n) , 且 gcd(φ(n),e)=1 。 通 过
百度文库
- 补充(选讲):
1、不可否认签名方案
1989年Chaum和Antwerpen提出了不可否认签名方案。其 实质是在没有签名者合作时不可能验证签名,从而可防止复制 或散布签名消息。显然,这一签名方案的目的是阻止签名文件
的随便复制、任意散布。这在电子出版物的知识产权保护方面
具有相当的应用前景。
(1)不可否认签名的基本原理
3.支付协议
用户支付Coin时, 不能让接收者看到Coin. eCashTM 为了保证这 点, 银行使用了一个用来完成支付的公钥PK bank , 用户支付时用PK
bank对Coin加密,
保证了只有电子现金拥有者在申请后和银行在电
子现金拥有者完成支付时才能看到它。 假定电子现金支付者和接收者商定了支付银行bankID、支付
盲签名技术除了实现匿名电子现金支付外,还可以用于匿名电 子选举,匿名电子拍卖等等方面。 前面我们介绍的RSA盲签名和Schnorr盲签名在实际使用时,对 于某些利用这种渠道进行洗钱等非法活动的行为无法进行追踪,从
而提出了在授权的情况下,银行和监督部门可以揭开盲签名,实现
对电子现金的追踪,这就是公平盲签名。关于公平盲签名方案的内 容,请查阅相关文献。
2014-2-13
8
7.6 盲签名方案
1983年,Chaum提出了盲签名概念,在此基础上提出了一个盲 签名方案,并指出盲签名应该满足如下两个性质: (1)盲性,所签消息的内容对签名人是盲的,即签名人签名时不 能看见消息的具体内容;
(2)不可追踪性,即使在盲签名公开后,签名者仍然不能跟踪
消息-签名对,即不能把签名和其在签名时的看到的信息联系起来 。
盲群签名等。
下面选择Schnorr盲签名算法来学习基于离散对数难题的 盲签名。
2014-2-13
13
2014-2-13
14
可以看到,在该算法中,同样满足盲签名的两个特征,
即签名者在签名时不知道所签消息的内容,事后即使看到了签
名(m, c, s),也不能把它与签名时收到的消息v联系起来,从而
实现了盲签名。
2014-2-13
3
7.5 其他专用数字签名方案
针对实际应用中大量特殊场合的签名需要, 数字签名领域也转向 了针对特殊签名的广泛研究阶段。 (1)盲签名 用户需要让签名者对明文消息文件进行数字签名,而又不希望签 名者知晓明文消息文件的具体内容,这就需要盲数字签名,简称盲签 名(Blind Signature) 。盲签名是一种特殊的数字签名方法,相对于一 般的数字签名而言还应当具有下列2个特性: ① 盲性:所签消息的内容对签名人是盲的,即签名人签名时不能 看见消息的具体内容; ② 不可追踪性:即使在盲签名公开后,签名者仍然不能跟踪消息签名对,即不能把签名和其在签名时的看到的信息联系起来。 盲签名主要用于基于Internet的匿名金融交易,如匿名电子现金支 付系统、匿名电子拍卖系统等应用中。 2014-2-13 4
设需要签名的消息为m,请求签名者Alice随机选择一个整数r作 为盲化因子,然后进行如下计算:α≡re· h(m) mod n,然后发送α给
签名者Bob。
(3)签名过程 Bob在收到α后,计算 t≡αdmod n ,然后把t发送给Alice。 (4)脱盲过程 Alice接收到t后,计算s≡t·r-1mod n. 就得到了消息m 的签名(m, s)。 (5)验证过程 通过如下计算,任何人都可以验证签名的有效性:se≡h(m) mod n是否成立,若成立,则发送方的签名有效。
更加广泛的研究。提出了分级多群签名、群盲签名、多群签名、 满足门限性质的群签名、前向安全的群签名等。
2014-2-13
7
(5)前向安全的数字签名方案
普通数字签名具有如下局限性:若签名者的密钥被泄漏,那么 这个签名者所有的签名(过去的和将来的)都有可能泄漏,前向安全 的数字签名方案主要思想是当前密钥的泄露并不影响以前时间段签 名的安全性。 在提出以上这些签名之后,研究者们根据不同的需要,又给出 了一些综合以上性质的签名,如前向安全的群签名、盲代理签名、 代理门限签名、代理多重签名、公平盲签名等。
(2)电子现金接收者验证payment_inf,发送payment给银行
; (3)银行验证{nCoins,merchant_Ids }PKbank确信Coins没有 重复花费,把nCoins列入已花费的 coins, 给merchant_Ids账户上加 2014-2-13 20 上一定金额,否则支付失败。
1.一个电子现金支付系统通常包括三个参与方:银行,电子现金 eCashTM系统相关的参数
取。
2014-2-13 17
•2.电子现金提取协议 这里使用的是一个单位面值的电子现金,即对给定消息m,约 定h(m)的e次根,即d次幂值为一个单位面值。 用户提取电子现金的协议如下: (1)Alice选取随机数r,serial#,计算b≡ re *h(serial#)modn, 发送b, 账号NA和身份IDA给银行。其中serial#表示选取的电子现金 的面值,这里仅指一个单位面值; (2)银行验证身份IDA的合法性,若合法,计算B≡bdmodn, 在用户账户上减掉一个单位面值的电子现金,发送B给Alice; (3)Alice计算S≡B/r mod n。 于是用户Alice获得了银行发行一个的单位面值的电子现金 Coin={ serial#,S}。 在这里使用了盲签名技术,实现了用户Alice的电子现金的不可 2014-2-13 18 追踪性。
2014-2-13
15
7.6.3 盲签名的应用
著名密码学家David Chaum 1982 年首次提出了利用盲签字实现
电子现金的方法,DigiCash 是Divid Chaum 发起的提供电子支付系 统的专业公司,eCashTM是DigiCash开发的用软件实现的第一个完 全匿名的在线电子现金系统, 它的基本算法是RSA 盲签名算法。 1995 年Mark Twain 银行就开始发行Internet 网上电子现金。
一个电子现金支付系统通常包括三个参与方:银行,电子现金
支付者,电子现金接收者。
在电子货币支付时,电子现金支付者从银行取出他的电子货币, 然后将电子货币支付给接收者,接收者将收到的电子货币存入银行。 其关系可以用下页图表示,其中箭头方向表示了电子货币的流向。
2014-2-13 16
支付者,电子现金接收者。在电子货币支付时,电子现金支付者从 设银行的签名公钥为e, 支付公钥PK bank , 秘密钥为d, 模为n, 采 银行取出他的电子货币,然后将电子货币支付给接收者,接收者将 用安全单向函数为 h( . ). h ( . ) 的使用使伪造电子现金的变得不可行 收到的电子货币存入银行。 银行的公开信息是{e, n, h(.)}, 支付公钥PK bank ; 秘密信息是{d, p, q, n=p*q}, p, q 是安全素数,使得分解大整数 n是困难的。 系统假设用户Alice已经在银行里存了一笔钱在账户NA上以备提
d×e≡1modφ(n),计算出d。
③ 以{e, n}为公开密钥,{d, n}为秘密密钥。选择安全的单向 hash函数h(· )。 仍然把Bob作为签名者,则Bob知道秘密密钥{d, n};所有人 都知道公开密钥{e, n}和算法中选择的hash函数h(· ).
2014-2-13 10
(2)盲化过程