RSA加密算法中求d

  • 1 非对称加密算法RSA密匙生成步骤
  • 2 已知n、e,如何求出d
  • 3 用一个例子说明辗转相除法

1 非对称加密算法RSA密匙生成步骤

  1. 选择两个质数 p , q
  2. 计算 n , n = p*q
  3. 计算欧拉函数值 φ(pq) = (p-1)*(q-1)
  4. 选择整数 e ,要求满足 1 < e < φ(pq)
  5. 计算 d ,要求满足 ed ≡ 1 mod φ(pq) 也就是 ed mod φ(pq) = 1
  6. 保存密匙对

从以上6个步骤中我们可以看到,一共出现了6个“字母”,分别是:p , q , n , φ(pq) , e , d
最后生成的 公匙 为:( n , e ) , 私钥 为:( n , d )

2 已知n、e,如何求出d

要求 d ,就要先知道 φ(pq) ,就要知道 p 和 q ,意思就是6个字母都知道了。
那在知道n的情况下要求 p 和 q ,就要用到因式分解,所以说要是快速因式分解算法被找到了,那 RSA 算法的安全性就要大大降低了。这里扯远了,收。

在知道公钥,也就是 n 和 e 的情况下,求 d :

  1. 通过 n 推导出 p , q (因式分解)
  2. 通过 p , q 推导出 φ(pq)
  3. 通过 e*d ≡ 1 mod φ(pq) 求得 d

前两步都很好理解,那第三步按照正常的 ed = 1 + kφ(pq) 算的话可以会把人搞䨻。所有就有了辗转相除法在这边的运用。

3 用一个例子说明辗转相除法

还是拿经典的老题目了(课上和搜的博客都是这个,故称之为老!)
例:已知(e=17,n=3233),求另一个密钥。

  1. n=3233,自己算出 3233 = 61 * 53 , 就令 p=61, q=53
  2. φ(pq)=(61-1)*(53-1)=3120
  3. 由 ed ≡ 1 mod φ(pq) 得式:17d ≡ 1 mod 3120 => d = 2753

这里 d 就是用辗转相除法求得的,具体过程如下:

序号 a b c d
0 3120 17 d0=2753
1 17 9 183 d1=2
2 9 8 1 d2=-1
3 - 1 1 d3=1

d3=1 是固定的,就是最后一行的值,d2=0-c3*d3,d1=d3-c2*d2,d0=d2-c1*d1.
d0或者a0+d0即为d. 这里要注意,当d0<0时d=a0+d0.
di = di+2 - ci+1 *di+1.

a0÷b0=c1…b1
a1=b0
a1÷b1=c2…b2

在辗转相除法表中a0就是φ(pq),b0就是e
辗转相除法的终止条件是bk=1

网上看到的
问:一个数很大的数如何快速分解成两个素数的乘积?
答:这只有硬算,没有加速算法。这没有加速算法是密码学得以成立的最根本的原因。也就是说,如果能做到这个,RSA之类的密码学就有问题了

想要更多的了解的话可以去看看这些链接
RSA算法原理

RSA加密算法已知公钥对,求d相关推荐

  1. c++已知2点求中垂线_呆哥数学函数合集——函数的概念【2】

    高中数学函数基本概念,学好函数还是要先懂概念再做题. 下面是呆哥给你们整理好的基本知识要点. 不懂的可以找我私聊,在线帮你解答. 多看我专栏发的每日一题和解析,会对你们有用的 . 加油哈!离高考还有一 ...

  2. 高斯投影坐标计算例题_测量学高斯投影已知横坐标如何求在第几度带投影计算而得的?例如:...-y坐标的自然值怎么算-数学-莫囤料同学...

    概述:本道作业题是莫囤料同学的课后练习,分享的知识点是y坐标的自然值怎么算,指导老师为甘老师,涉及到的知识点涵盖:测量学高斯投影已知横坐标如何求在第几度带投影计算而得的?例如:...-y坐标的自然值怎 ...

  3. 已知经纬度坐标求两点间距离,用python表示

    已知经纬度坐标求两点间距离,用python表示 已知地球上任意两点(lon1, lat1),( lon2, lat2)的经纬度坐标,求两点间的距离用haversine表示: 1.首先先将经纬度坐标的角 ...

  4. python坐标表示_已知经纬度坐标求两点间距离,用python表示

    已知经纬度坐标求两点间距离,用python表示 已知地球上任意两点(lon1, lat1),( lon2, lat2)的经纬度坐标,求两点间的距离用haversine表示: 1.首先先将经纬度坐标的角 ...

  5. matlab已知三点求夹角,已知3点如何求其中两点对第3点的夹角

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:已知3点如何求其中两点对第3点的夹角? 问题详情:有3个问题:1)已知3点如何求其中两点对第3点的夹角?2)如何回答:1)已知3点求 ...

  6. 已知网络号求子网掩码c语言,已知ip地址求子网掩码 - 已知ip地址求子网掩码_已知ip地址和子网掩码求网络号、子网号和主机号...

    已知ip地址求子网掩码的方法: 方法一:利用子网数来计算: 1.首先,将子网数目从十进制数转化为二进制数: 2.接着,统计得到的二进制数的位数,设为N: 3.最后,先求出此IP地址对应的地址类别的子网 ...

  7. matlab已知随机变量分布律求期望/已知概率密度求期望与方差

    本博文源于matlab基础,主要讲述已知随机变量分布律求期望还有已知随机变量的概率密度求期望与方差. 例子:设随机变量X的分布律如下表所示: X 10 30 50 70 90 Pk 1/2 1/3 1 ...

  8. 已知年月,求该年该月有多少天

    已知年月,求该年该月有多少天 #include <stdio.h> int main() {int year,month,leap;scanf("%d,%d",& ...

  9. 给定数组,每个元素代表一个木头的长度,木头可以任意截断, 从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m)

    给定数组,每个元素代表一个木头的长度,木头可以任意截断, 从这堆木头中截出至少k个相同长度为m的木块,已知k,求max(m) [9, 4, 3, 10, 7] k = 5 max(m) = ? pub ...

最新文章

  1. LTE PUCCH Format1
  2. python程序实例教程基础-Python程序设计案例教程——从入门到机器学习(微课版)...
  3. 《深入浅出设计模式-中文版》读书笔记-工厂模式(五)
  4. centos7 hive mysql_CentOS7搭建Hive1.2.2+mysql5.7
  5. AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)
  6. 我在华为做Android外包的真实经历!吊打面试官系列!
  7. 从 0 到 300,Instagram 创始人 CTO 分享工程团队成长的经验
  8. tensorrt轻松部署高性能dnn推理_基于TensorRT车辆实时推理优化
  9. 【跨域问题】Vue简单封装axios—解决post请求后端接收不到参数问题
  10. 爬虫入门之urllib库详解(二)
  11. 美团外卖特征平台的建设与实践
  12. FreeType字体程序库介绍
  13. [c++]平均成绩、从尾到头打印链表、整数从大到小排序、二分法查找、斐波那契数列
  14. arcgis server发布自定义打印模板及利用ArcGIS API javascript使用自定义打印服务打印地图
  15. linux系统安装word,如何在Linux中安装FreeOffice 2018
  16. github windows系统监控_谷歌发布Flutter Alpha:支持Windows
  17. Python地学分析 — 建立矢量数据缓冲区 06
  18. C语言练习:该存多少钱
  19. 如何通过百度搜索的下拉词和相关搜索找长尾关键词?
  20. 超详细!linux系统nlg-eval安装指南

热门文章

  1. php开源商城系统排名,开源商城系统排名哪个好?
  2. 分布式事务seata整合nacos+openfeign
  3. 软件开发需求分析究竟应该由谁来做
  4. Plupload和错误生成
  5. Linux-CentOS7系统服务中systemctl命令介绍
  6. 用python整个活(2)——用numpy做一个蜘蛛纸牌
  7. arma模型_R语言: GARCH模型股票交易量的研究道琼斯股票市场指数
  8. brpc学习笔记(1)
  9. 每个程序员应该知道的计算机网络知识
  10. activiti 工作流会签 / 多人审批时若一人通过即可