加载中…
个人资料
张永强
张永强
  • 博客等级:
  • 博客积分:0
  • 博客访问:225,820
  • 关注人气:16
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

RSA算法举例

(2019-09-15 16:45:03)
分类: 软件开发
一、生成公钥和私钥
选取两个大素数:p=3、q=11
计算两个大质数p、q的积:n=p*q=33
欧拉函数:φ(n) = φ(p)φ(q) = (p-1)*(q-1) = 20
随机取公钥e=3 ,e和 φ(n) 互质
那么一定可以找到整数d=e^-1 mod φ(n) = 7,使得ed-1被φ(n)整除,扩展欧几里得算法。
d=e^-1 mod (p-1)(q-1)
7=3^-1 mod 20
3*7 = 1 mod 20
最终:p=3、q=11、n=33、φ(n) =20、e=3、d=7
(n,e)=(33,3)是公钥,(n,d)=(33,7) 是私钥。将p和q的记录销毁。

二、加密解密
明文A = 29
密文B = A^e mod n = 29 ^ 3 % 33 = 24389 % 33 = 2
明文A = B^d mod n = 2 ^  7 % 33 = 128 % 33 = 29
 
公钥加密体制中,一般用公钥加密,私钥解密。在签名的场景下,用私钥签名,公钥验签。
使用私钥加密的数据,利用公钥进行解密,e和d可以互换使用。

三、参考文献
https://www.cnblogs.com/NathanYang/p/9182929.html
https://blog.csdn.net/kikajack/article/details/80703894

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有