首页 > 其他 > 详细

RSA数字签名

时间:2019-10-22 12:49:16      阅读:92      评论:0      收藏:0      [点我收藏+]

一 用RSA生成签名

在RSA中,被签名的消息、密钥以及最终生成的签名都是以数字形式表示的。在对文本进行签名时,需要事先对文本编码成数字。用RSA生成签名的过程可用下列公式来表述:

技术分享图片

这里所使用的D和N就是签名者的私钥。签名就是对消息的D次方求mod N的结果,也就是说将消息和自己相乘D次,然后再除以N求余数,最后求得的余数就是签名。

生成签名后,发送者就可以将消息和签名发送给接收者了。

二 用RSA验证签名

RSA的签名验证过程可用下列公式来表述:

 技术分享图片

这里所使用的E和N就是签名者的公钥。接收者计算签名的E次方并求mod N,得到“由签名求得的消息”,并将其与发送过来的“消息”内容进行对比,如果两者一致,则签名验证成功,否则签名验证失败。

RSA的签名生成和验证过程见下表:

 技术分享图片

三 实战

我们通过具体的数字,用RSA来实际生成和验证签名。

公钥:E=5;N=323

私钥:D=29;N=323

由于N为323,因此消息需要为0~322这个范围内的整数。在这里假设我们需要对123这个消息进行签名。

1 生成签名

下面用私钥(D,N)=(29,323)来生成消息123的签名。

消息的D次方 mod N= 123的29次方 mod 323 =157

签名是157.向接收者发送的内容为:

(消息,签名)=(123,157)这两个数字。

2 验证签名

接收者收到的内容为:

(消息,签名)=(123,157)

用公钥(E,N)=(5,323)来计算由签名求得的消息。

签名的E次方 mod N = 157的5次方 mod 323=123

我们得到的消息123与发送者直接发过来的消息123是一致的,因此签名验证成功。
————————————————
版权声明:本文为CSDN博主「cakincqm」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chengqiuming/article/details/82831835

RSA数字签名

原文:https://www.cnblogs.com/yangguanglei/p/11718515.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!