首页 理论教育 数字签名标准简介

数字签名标准简介

时间:2023-07-02 理论教育 版权反馈
【摘要】:数字签名标准是美国NIST于1991年8月公布的数字签名标准。DSS的核心是数字签名算法,它实际上是El-Gamal的变形,设计中使用了SHA-1算法。DSS的签名与验证过程如图6-10所示。1)DSS的安全性也是乘法群上的求离散对数的困难性,其安全性与RSA相比差不多。3)DSS签名算法也是一个非确定性的数字签名算法,对消息M的签名依赖于随机数r,这样相同的消息就可能产生不同的签名。

数字签名标准简介

数字签名标准(Digital Signature Standard,DSS)是美国NIST于1991年8月公布的数字签名标准。DSS的核心是数字签名算法(Digital Signature Algorithm,DSA),它实际上是El-Gamal的变形,设计中使用了SHA-1算法。DSS的安全性还是基于求解离散对数的困难性。DSS的签名与验证过程如图6-10所示。

1.DSS签名的生成与验证算法

(1)参数定义和密钥生成

x是随机或者伪随机整数,满足0<xq

p是一个满足2L-1p<2L的大素数,其中L为512~1024bit且是64的倍数;

q是长160bit的素数,满足q|(p-1);

ghp-1)/q(mod p),其中h满足1<hp-1,因此hp-1)/q(mod p)>1;

●计算

ygx(mod p

取公钥k1=(pqgy);私钥k2=x

978-7-111-37285-1-Chapter06-31.jpg

图6-10 DSS签名与验证过程

(2)签名算法

签名者选取一个随机或者伪随机整数k,满足0<kq;拥有私钥x;使用SHA-1算法计算出消息摘要hm);进一步使用签名算法生成的签名为(rs)。

这里

rgk(mod p)(mod q

s≡(hm)+xrk-1(mod q

(3)验证算法

验证者拥有公钥k1=(pqgy),收到的明文m和签名(rs),验证

978-7-111-37285-1-Chapter06-32.jpg

其中

978-7-111-37285-1-Chapter06-33.jpg(www.xing528.com)

若等式成立,则签名有效;否则,签名无效。

实际上,由k≡(hm)+xrs-1(mod q)知

978-7-111-37285-1-Chapter06-34.jpg

【例6-3】 在DSS中,假设取q=101,p=78×101+1=7879,h=3,所以

g≡378(mod 7879)≡170

又假设x=75,则

ygx(mod 7879)≡4567

如果发送者A想签名的消息摘要为hm)=1234,且他选择了随机值k=50,可算得

k-1(mod 101)≡99

计算签名得

978-7-111-37285-1-Chapter06-35.jpg

所以签名为(94,97),A将签名发送给接收者B。

接收者B收到签名后计算

978-7-111-37285-1-Chapter06-36.jpg

v=r,验证了该签名的有效性。

2.DSS的安全性

DSS的公布引起了学术界和商业界的强烈反应:赞成的人认为它长度小、速度快、成本低,对金融业特别有用;反对的人则认为它不与国际标准(以RSA为标准的ISO、CCITT、SWIFT等)兼容。从技术上讲,DSS的安全性体现在以下方面。

1)DSS的安全性也是乘法群上的求离散对数的困难性,其安全性与RSA相比差不多。但DSS将两个素数公开,这样,当使用别人的pq时,即使不知道私钥,也能确认它们是否是随机产生的,还是做了手脚,RSA签名却做不到这一点。

2)鉴于有限域上计算离散对数问题的进展,一般认为512bit的DSS无法提供长期的安全性,而1024bit DSS的安全性值得信赖。

3)DSS签名算法也是一个非确定性的数字签名算法,对消息M的签名依赖于随机数r,这样相同的消息就可能产生不同的签名。因求r的模指数运算rgk(mod p)(mod q)与待签的消息无关,所以用户可预先计算出很多rk-1以备以后的签名使用,从而大大加快产生签名的速度。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈