免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: keymirage
打印 上一主题 下一主题

[其他] rsa:大整数相乘的问题 [复制链接]

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

RSA算法的破解
一.什么是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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP