您好,欢迎访问山东渔翁信息技术股份有限公司官方网站
渔翁信息

专注密码硬件研发生产定制

咨询热线: 400-6686-188

产品中心

热门产品

联系我们

咨询热线:400-6686-188

市场合作:孙经理:13806311977

售后服务:房经理:0631-5651692

邮箱:support@fisherman-it.com

地址:济南市高新区齐鲁软件园F座

新闻中心 您的位置:首页 > 新闻中心 >

ElGamal数字签名

文章出处:渔翁信息作者:渔翁信息人气:发表时间:2019-03-21 13:39

ElGamal数字签名算法需要使用随机数,它是一种非确定性的签名方案,但它的运算过程并非是ElGamal加密算法的逆过程。

1.用户选择密钥

系统先选取一个大素数p及p的本原根a,用户A选择一个随机数x(1xp-1)作为自己的私钥,计算y=axmod p,将y作为自己的公钥。整个系统公开的参数有大素数p、本原根a以及每个用户的公钥;而每个用户的私钥x则严格保密。

2.签名过程

给定消息M,用户A进行下述计算来实现签名。

(1)选择随机数k∈Zp*,且k与p-1互素(注意:随机数k需要保密)。

(2)签名方A对消息M进行散列压缩后得到消息散列码H(M),再计算

r=ak mod p

s=(H(M)-xr)k-1mod(p-1)

将(r,s)作为用户A对消息M的数字签名,与消息M一起发送给接收方。

3.验证签名的过程

接收方B在收到消息M与数字签名(r,s)后,先计算消息M的散列码H(M)。然后计算

yrrs mod p=aH(M) mod p

如果上式成立,则可确信(r,s)为有效签名,否则认为签名是伪造的。

4.证明验证签名的正确性

若(r,s)为合法用户采用 ElGamal数字签名算法对消息M的签名,则

yrrs=(ax)r(ak)s=axr+ksmod p

又因为

s=(H(M)-xr)k-1mod(p-1)

两边乘k再移项得

ks+xr=H(M)mod(p-1)

根据模运算规则有

axr+ks=aH(M)mod pmod p

由费马定理的推论,ak=ak mod(p-1)mod p,将k替换成H(M),有

axr+ks=aH(M)mod p

因此有

yrrs=aH(M)mod p


  1. 一键分享到

返回顶部