首页
社区
课程
招聘
[原创]RSA弱公钥公因数漏洞介绍与解题
发表于: 2017-9-22 07:24 9706

[原创]RSA弱公钥公因数漏洞介绍与解题

2017-9-22 07:24
9706

这篇文章记录的是关于RSA的弱公钥漏洞,并利用漏洞解题。

这篇文章我还发在C博客上,博主名字还是samohyes。如有雷同,并非抄袭。。。哈哈哈

英文论文的原文是《Mining your Ps and Qs: Detection of Widespread Weak Keys in Network Devices》。

接触这个的原因是课程中第一个关于密码学的大作业中有3个hard级别的题目。我解决了两个,还有一个是我的队友做出来的,我没细看。我解决的一个是padding oracle,这个内容网上有不少,我当时也是看了中文文献才懂的。看英文的有点吃不消,看了几篇没懂后来就去看中文的了。而这个Ps and Qs 我查了后发现没有什么中文资料,硬啃英文文献加上理解才了解并解出来。所以这里就做一个简单的介绍和做题过程,一方面自己加以记录,一方面给别人以参考。这里的介绍会比较简单,因为还有个课程项目等我做。

 

Part1: 原理介绍

首先RSA原理具体不介绍了,阮一峰的博客上有这样一段,直接搬过来吧。


这里我们知道公钥是(n,e)私钥是(n,d)要想知道d那么就是要分解n。但是n很大,人类目前分解不了1024位的大数。那怎么办呢?虽然我们分解不了一个大数,但是如果我们要找两个大数的最大公约数(GCD)却相对比较简单。所以,如果我们拿到一大堆的n,也就是moduli我们是不是可以两两找他们的最大公约数,如果找到了,我们就可以分解了。不过这个漏洞并不是RSA自身算法的漏洞,只是我们没有产生足够随机的n罢了。不过,这还是可以被我们利用起来,找到私钥!

 

Part2: 解题流程

课程提供了:

1.获得GCD


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (12)
雪    币: 155
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
前排膜拜大神,虽然看不明白,但是还是有所启发啊,---我真弱
2017-9-22 08:05
0
雪    币: 6525
活跃值: (3423)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3

好像mp1里没东西,是个空的
2017-9-22 09:53
0
雪    币: 85
活跃值: (101)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
Kisesy 好像mp1里没东西,是个空的
sorry,现在好了~
2017-9-22 10:32
0
雪    币: 85
活跃值: (101)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
sadanlasi 前排膜拜大神,虽然看不明白,但是还是有所启发啊,---我真弱
我其实很弱,刚接触不久哈哈
2017-9-22 10:33
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持!
2017-9-22 19:49
0
雪    币: 221
活跃值: (2326)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
这样就不用分解N,有成功的案例?
2017-9-24 08:07
0
雪    币: 85
活跃值: (101)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
lhglhg 这样就不用分解N,有成功的案例?
是的,你看下那篇mining  your  Ps  and  Qs  的论文,google一下,本质上不是RSA的漏洞
2017-9-25 12:16
0
雪    币: 221
活跃值: (2326)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
如果有个N  (1024bit)如何产生moduli.hex  ?
2017-9-25 21:47
0
雪    币: 221
活跃值: (2326)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
"如果我们拿到一大堆的n,也就是moduli  "  这个不会操作。一个大数,如何产生一大堆的n  ?
2017-9-26 19:57
0
雪    币: 85
活跃值: (101)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
你拿到的拿个N是1024bit的二进制数啥的吧,转化成16进制就好,python转换下很快的。不过这里后面这几个n反正都是转化成10进制求最大公因数的没必要转16进制。至于如何获得,你看下那个论文,我记得他们说是在网络上扫描得来的,具体方法我也没细看。
2017-9-26 21:05
0
雪    币: 221
活跃值: (2326)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
从网络上扫描得来的,在论文中哪个部分?
2017-9-26 22:38
0
雪    币: 85
活跃值: (101)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
lhglhg 从网络上扫描得来的,在论文中哪个部分?
我记得是开头有提到,具体哪里我也忘了,你仔细看下应该就有。
2017-9-26 23:36
0
游客
登录 | 注册 方可回帖
返回
//