数字签名过程

来源:互联网 发布:ppt数据分析图 编辑:程序博客网 时间:2024/06/06 00:32

DSA参数的产生:
每个用户的安全参数产生如下:
(1)选择160比特的素数q和1024比特的素数p,满足q|(p-1)|;
(2)在有限域中寻找q阶循环子群的生成元g,具体方法是在有限域中选取元素h计算g=h^(p-1)/q mod p,当g!=1
时机找到满足要求的g.
(3)域参数就是p,q,g
DSA秘钥对的产生:
每个拥有与参数p,q和g进行如下操作:
(1)选择随机或伪随机数x满足1<x<p-1
(2)计算y=g^x mod p
(3)用户的私钥是x,公钥是y
DSA签名过程:
(1)选择随机或伪随机数k满足1<k<p-1
(2)计算X=g^k mod p,r=X mod q,若r=0则返回第一步
(3)计算k^-1 mod q
(4)计算e=sha-1(m)
(5)计算s=k^-1(e+xr) mod q
(6)对消息m的签名就是(r,s)
DSA签名的验证:
为了验证(r,s)是对m的签名,需要使用签名者的域名参数(p,q,g)和公钥y进行如下运算:
1.验证r,s在区间[1,q-1]中
2.验证e=sha-1(m);
3.计算w=s^-1 mod q
4.计算u1=ew mod q和u2=rw mod q
5.计算X=g^u1y^u2 mod p及v=X mod q;
6.如果v=r则认可此签名。

用私钥进行签名,用公钥进行验证

0 0
原创粉丝点击