免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 24613300 | 回复: 24613300

[算法] RSA算法的破解 [复制链接]

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-03-10 06:20:00每日论坛发贴之星
日期:2016-03-10 06:20:00程序设计版块每日发帖之星
日期:2016-03-12 06:20:00
发表于 2016-03-10 19:33 |显示全部楼层
一.什么是RSA算法
    RSA公钥加密算法是1977年由罗纳德•李维斯特(Ron Rivest)、阿迪•萨莫尔(Adi Shamir)和伦纳德•阿德曼(Leonard Adleman)一起提出的。
    RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
   正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。

二.我们的破解思路
    以往的破解思路都在关注大数分解,理论证明这是极难的。在分解大数没有结果的情况下我们就得换思路进行破解。
    我们先看MD5的破解,MD5HASH值不可逆,但仍然可以破解,基于的是彩虹表破解法,就是先用MD5工具算大量的明文的MD5值,然后储存起来。破解时对比MD5值,相同时就被破解。
    那么,我们破解RSA算法也可以这样,先算大量素数,然后对比是不是在素数表中,这样就能找到了。当然计算需要强大的计算能力,用天河这样的超级计算机比较合适。
    那么有朋友可能要问了,最一般的RSA1024的素数也有2^512大小,穷举的时间也是天河计算机不可接受的。我们的理论来了:
    受到素数产生技术的限制,能产生的素数较少。
    也就是说我们用一般的素数生成工具不断产生素数,用超算算一定时间后就有一个很大的素数集合了。那些素数生成工具不会产生的素数,我们同样也不用计算。这样我们就可以用彩虹表进行破解了

                                        湖南长沙 左远
                                                   2016/3/10

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
发表于 2016-03-10 20:27 |显示全部楼层
zuoyuanturing 发表于 2016-03-10 19:33
一.什么是RSA算法
    RSA公钥加密算法是1977年由罗纳德•李维斯特(Ron Rivest)、阿迪•萨莫尔 ...



> 我们先看MD5的破解,MD5HASH值不可逆,但仍然可以破解,基于的是彩虹表破解法,就是先用MD5工具算大量的明文的MD5值,然后储存起来。破解时对比MD5值,相同时就被破解。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2016-03-11 08:18 |显示全部楼层
精神病人思维广,
弱智儿童欢乐多.

评分

参与人数 1可用积分 +5 收起 理由
windoze + 5 赞一个!

查看全部评分

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2016-03-11 09:29 |显示全部楼层
回复 1# zuoyuanturing


    要确定一个数是不是素数,和找到那个确定的素数,难度能一样?

   

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-03-10 06:20:00每日论坛发贴之星
日期:2016-03-10 06:20:00程序设计版块每日发帖之星
日期:2016-03-12 06:20:00
发表于 2016-03-11 10:57 |显示全部楼层
本帖最后由 zuoyuanturing 于 2016-03-11 11:25 编辑

现在的RSA的密钥在最普通的PC上一分钟能生成 是个速度很快的找素数的方法 只要找到的是素数 大小符合要求就行 大量的素数是用快速方法找不到的
也就是说 产生的素数是个小的集合 而且生成速度很快 2007年的一篇论文测试产生一个2^512的素数用两种方法在一台PC 上大约需要1秒和4秒的时间 天河是300万个计算核心 而且CPU更快 所以能产生大量的素数 剩下的就是估算下通用算法能产生的素数有多少 就能判断大约需要多少时间了
对于RSA 只要一个素数被算到 也就是破解了

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-03-10 06:20:00每日论坛发贴之星
日期:2016-03-10 06:20:00程序设计版块每日发帖之星
日期:2016-03-12 06:20:00
发表于 2016-03-11 11:52 |显示全部楼层
如果是对抗全世界的计算量 RSA1024 估计是不够的 估计任何找素数的方法估计都不行 要多少位 要看总计算量

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-03-10 06:20:00每日论坛发贴之星
日期:2016-03-10 06:20:00程序设计版块每日发帖之星
日期:2016-03-12 06:20:00
发表于 2016-03-11 21:30 |显示全部楼层
本帖最后由 zuoyuanturing 于 2016-03-11 21:47 编辑

htt p://ww w.csdn.ne t/article/2012-02-15/311821
700万份密钥中有27000分重复 设总数为M 则M大约满足 (7000000-27000)/M=27000/(7000000-27000)
得M大约为18*10^8
假设天河一核心1秒可算1个密钥对 5分钟大约能算出来一半

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
发表于 2016-03-11 21:42 |显示全部楼层
lz又来了……上次和你说的遍历2^1024个数字要多久你忘了?哦,你还要把算出来的素数都存起来…………

I服了U

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-03-10 06:20:00每日论坛发贴之星
日期:2016-03-10 06:20:00程序设计版块每日发帖之星
日期:2016-03-12 06:20:00
发表于 2016-03-11 21:49 |显示全部楼层
本帖最后由 zuoyuanturing 于 2016-03-11 21:55 编辑

上次没说对 这次没有错
受到素数产生技术的限制,能产生的素数较少。700万密钥有27000分重复的不是我的数据吧

这是原话:
摘要:一组研究人员发现,使用RSA算法对敏感在线交流与交易进行加密生成的公开密钥中存在一个漏洞。 通过对700万样本研究,研究人员发现其中27000份样本的公开密钥并非随机生成。也就是说,可能有人算出用于创建公开密钥的秘密素数。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
发表于 2016-03-11 22:09 |显示全部楼层
RSA 的 vulnerable public keys 早就有人研究过,这是论文:
https://factorable.net/paper.html

Mining Your Ps and Qs: Detection of Widespread Weak Keys in Network Devices

Abstract
RSA and DSA can fail catastrophically when used with malfunctioning random number generators, but the extent to which these problems arise in practice has never been comprehensively studied at Internet scale. We perform the largest ever network survey of TLS and SSH servers and present evidence that vulnerable keys are surprisingly widespread. We find that 0.75% of TLS certificates share keys due to insufficient entropy during key generation, and we suspect that another 1.70% come from the same faulty implementations and may be susceptible to compromise. Even more alarmingly, we are able to obtain RSA private keys for 0.50% of TLS hosts and 0.03% of SSH hosts, because their public keys shared nontrivial common factors due to entropy problems, and DSA private keys for 1.03% of SSH hosts, because of insufficient signature randomness. We cluster and investigate the vulnerable hosts, finding that the vast majority appear to be headless or embedded devices. In experiments with three software components commonly used by these devices, we are able to reproduce the vulnerabilities and identify specific software behaviors that induce them, including a boot-time entropy hole in the Linux random number generator. Finally, we suggest defenses and draw lessons for developers, users, and the security community.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP