用RSA进行加解密和数字签名

这篇具有很好参考价值的文章主要介绍了用RSA进行加解密和数字签名。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RSA加解密过程

1.选择一对素数p,q

2.n=p*q

3.φ(n)=(n-1)(q-1)

4.找e(加密秘钥encrypt),使e与φ(n)互质且 1<e<φ(n)

5.计算d(解密密钥decrypt),d * e ≡ 1 mod φ(n), ≡为互余符号,即 (d * e) mod φ(n)= 1

6.公钥(e,n) 私钥(d,n)

7.设明文m,密文c,明文加密,密文c = m^e mod n

8.密文解密,明文m = c^d mod n

例:e=3 p=5 q=11 m=14

解:n=p*q=55 φ(n)=(n-1)(q-1)=40

3*d mod 40=1 d=27

公钥(n,e)=(55,3) 得到密文c=m^e mod 55=14^3 mod 55=49

私钥(n,d)=(55,27) 得到明文m=c^d mod 55=49^27 mod 55=14

RSA数字签名过程

RSA签名的过程是使用私钥对消息加密,验证过程是使用公钥进行解密验签

依据 ≡ m (mod n),以及杂凑计算 消息m 的摘要 h = H(m)。签名计算 s = mod n

h:消息m的短指纹。

s:签名者的签名

基本RSA签名生成 输入:RSA公钥(n, e) 、RSA私钥d、明文m

输出:签名s

过程:

1.计算 h = H(m),其中 H 是一个杂凑函数

2.计算 s = mod n

3.返回s

基本RSA签名验证 输入:(n,e),消息m,签名s

输出:验签通过?

过程:

1.计算 h = H(m)

2.由于验签是计算 s = mod n,则 = mod n ≡ h mod n,则 h’= mod n

3.若 h’= h 验签通过

例:e=5 p=5 q=7 h=2

解:n=p*q=35 φ(n)=(n-1)(q-1)=24

5*d mod 24=1 d=5

私钥(n,d)=(35,5) 得到签名s=h^d mod 35=2^5 mod 35=32

公钥(n,e)=(55,3) 验证签名h=s^e mod 35=32^5 mod 35=2文章来源地址https://www.toymoban.com/news/detail-494831.html

到了这里,关于用RSA进行加解密和数字签名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包