- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章数字签名与消息认证
第10章 数字签名与消息认证 ;10.1 数 字 签 名
;; 数字签名是利用密码运算实现“手写签名”效果的一种技术,它通过某种数学变换来实现对数字内容的签名和盖章。在ISO7498-2标准中,数字签名的定义为“附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性,并保护数据,防止被人伪造”。
一个数字签名方案一般由签名算法和验证算法两部分组成。要实现“手写签名”的效果,数字签名应具有不可伪造、不可抵赖和可验证的特点。; 对于数字签名方案的攻击主要是想办法伪造签名。按照方案被攻破的程度,可以分为三种类型,分别是:① 完全伪造,即攻击者能计算出私钥或者能找到一个能产生合法签名的算法,从而可以对任何消息产生合法的签名;② 选择性伪造,即攻击者可以实现对某一些特定的消息构造出合法的签名;③ 存在性伪造,即攻击者能够至少伪造出一个消息的签名,但对该消息几乎没有控制力。;10.1.2 基本签名算法
数字签名方案一般利用公钥密码技术来实现,其中私钥用来签名,公钥用来验证签名。比较典型的数字签名方案有RSA算法(R. L. Rivest, A. Shamir, and L. M. Adleman, 1978)、ElGamal 签名(T. ElGamal, 1985)、Schnorr签名(C. P. Schnorr, 1989)和DSS签名(NIST, 1991)。我们这里仅给出ElGamal签名方案和Schnorr签名方案。 ;1.? ElGamal签名方案
假设p是一个大素数,g是GF(p)的生成元。Alice的公钥为y = gx mod p, g,p私钥为x。
签名算法:
Alice首先选一个与p-1互素的随机数k
Alice计算a = gk mod p
Alice对b解方程M = x*a + k*b (mod p-1).
Alice对消息M的签名为(a,b)
验证算法:
检查yaab mod p = gM mod p是否成立
例如:; p = 11, g = 2,Bob 选 x = 8为私钥
y = 28 mod 11 = 3
公钥: y = 3, g = 2, p = 11
Bob要对M = 5进行签名
选k = 9 (gcd(9, 10) = 1)
a = 29 mod 11 = 6,b=3
读者可检查yaab mod p = gM mod p是否成立。
上述方案的安全性是基于如下离散对数困难性问题的:已知大素数p、GF(p)的生成元g和非零元素y ? GF(p),求解唯一的整数k, 0≤k≤p – 2,使得y ? gk(mod p),k称为y对g的离散对数。; 目前对离散对数最有效的攻击方法是指数演算攻击,其计算量为
在1996年的欧洲密码学会(Proceedings of EUROCRYPT 96)上,David Pointcheval和Jacques Stern给出一个ElGamal签名的变体,并基于所谓分叉技术证明了在随机预言模型下所给方案是安全的(在自适应选择消息攻击下能抗击存在性伪造)。
; 2.Schnorr签名方案
Schnorr签名方案是一个短签名方案,它是ElGamal签名方案的变形,其安全性是基于离散对数困难性和hash函数的单向性的。
假设p和 q是大素数,是q能被p-1整除,q是大于等于160 bit的整数,p是大于等于512 bit的整数,保证GF(p)中求解离散对数困难;g是GF(p)中元素,且gq?1 mod p;Alice公钥为y ? gx (mod p),私钥为x,1xq。; 签名算法:
Alice首先选一个与p-1互素的随机数k
Alice计算r = h(M, gk mod P)
Alice计算s = k + x*r( mod q)
验证算法:
计算gk mod P=gsyr mod P.
验证r = h(M, gk mod P)
Schnorr签名较短,由?|q|?及?|H(M)|?决定。在Schnorr签名中,r=gk mod p可以预先计算,k与M无关,因而签名只需一次mod q乘法及减法。所需计算量少,速度快,适用于智能卡。 ;10.1.3 特殊签名算法
目前国内外研究重点已经从普通签名转向具有特定功能、能满足特定要求的数字签名。如适用于电子现金和电子钱包的盲签名、适用于多人共同签署文件的多重签名、限制验证人身份的条件签名、保证公平性的同时签名以及门限签名、代理签名、防失败签名等。盲签名是指签名人不知道签名内容的一种签名,可用于电子现金系统,实现不可追踪性。如下是D
文档评论(0)