7.6几个著名数字签名体制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六节几个著名数字签名体制
1
RSA (大数分解)
ElGamal(离散对数)
Schnorr(离散对数)
DSA (离散对数)
2
3
RSA 数字签名体制
设n = pq , p 和q 是两个大素数,令n M G Z ==,随机选e ,1()e n ϕ<<,使gcd(,())1e n ϕ=,1(mod ())ed n ϕ≡,公开n 和e , 保密p , q , d 。对消息n m Z ∈,定义
()(mod )d
k s Sig m m n =≡ 为m 的签名。
4
对给定的m 的签名s ,可按以下验证条件验证其真假:
(,)(mod )e
k Ver m s true m s n =⇔≡
基于离散对数的数字签名体制
基于求解有限域上离散对数的困难性而设计的数字签名体制统称为离散对数数字签名体制。著名的体制有ElGamal体制,Schnorr 体制,DSS 数字签名标准。
5
ElGamal数字签名体制
ElGamal数字签名体制是由T. ElGamal于1985年提出的既可用于加密又可用于签名的密码体制, 其修正形式已被美国NIST(美国国家标准技术研究所)作为数字签名标准. 该体
上离散对数的困难性, 且制的安全性基于求F
p
是一种非确定性公钥体制.
6
7
对于K = (p , α, x , β)和一个秘密的随机数k ∈Z p −1*, 其中, p 为素数, α为Z p 的本原元, β= αx (mod p )为公钥, x 为私钥.
定义消息m 的签名为Sigk (m , k ) = (s ,t ) , 其中s = αk (mod p ) , t = (m −xs )k -1(mod p −1).
对m ,s ∈Z p *和t ∈Z p −1, 签名的验证定义如下:Verk (m , (s , t )) = true ⇔βs s t = αm (mod p )
8
在使用ElGamal 数字签名体制时, 我们还应当注意:
1) 签名者不能泄露签某个消息的随机数k . 否则, 可以由签名解出用户的私人密钥x .
2) 签名者也不能用同一个随机数k 来签两个不同的消息m 1和m 2.
数字签名标准(DSS)
DSA数字签名体制是1991年8月由美国NIST 公布1994年12月1日正式采用的美国联邦信息处理标准DSS(Digital Signature Standard)。
这个签名标准有较大的兼容性和适用性,已成为网络中安全体系的基本构件之一。
9
DSS中所采用的签名算法简记为
DSA(Digital Signature Algorithm),此算法是D.W.Kravits于1993年设计的。算法中使用的单向HASH函数为SHA-1。
DSA是基于离散对数的签名体制。DSA使*的一个q元子群。在DSA中,要求q是用了Z
p
160比特的素数,p是长为L比特的素数,其中L≡0(mod64)且512 ≤L ≤1024。
10
11
DSA 还规定了在消息被签名之前,要用SHA-1算法将消息压缩。结果是160比特的消息摘要有320比特的签名,并且计算是在Z p 和Z q 上进行的。
DSA 与ElGamal 体制相比,签名长度缩短,计算速度加快。
数字签名标准(DSS)-签名算法
对于K= (p, q, α, x, β)和一个秘密的随机数k,
(m, k) = (r, s),其中
1 ≤k ≤q−1,定义Sig
k
r= αk(mod p) (mod q)
s= k −1(SHA−1(m) + xr) (mod q)
(如果r = 0或s = 0,应该为k另选一个随机数)
12
13
对于m ∈{0, 1}*和s, r ∈Z q *,验证是通过下面
的计算来完成的:
计算e 1= SHA-1(m )s -1(mod q )
e 2= r s -1(mod q )
Ver K (m, (r, s ))= true ⇔(αe 1βe 2)(mod p )(mod
q )= r
数字签名标准(DSS)-验证算法
r = αk (mod p ) (mod q )
s = (SHA-1(m ) + xr ) k -1(mod q )
椭圆曲线DSA
在2000年, 椭圆曲线数字签名算法(ECDSA, Elliptic curves digital signature algorithm)作为FIPS 186-2得到了批准.
14
设p是一个素数或2的幂次方, E是定义在F
p 的椭园曲线. 设α是E上阶数为q的一个点, 使得在<α>上的离散对数问题是难处理的. 定义
K= {(p, q, E,α,a,β)}
其中1≤a≤q−1, 值p, q, e和α是公钥, a为私钥.
15
对于{(p, q, E,α,a,β)}和一个秘密的随机数k,
(m, k) = (r|| s), 其中
1≤k≤q −1, 定义Sig
k
kα= (u, v), r= u(mod q)
s = k-1(h(m) + ar) (mod q)
这里HASH函数采用SHA-1(如果r= 0或s= 0, 应该为k另选一个随机数).
16