数字签名过程

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值