RSA加密算法是一种非对称加密算法,目前被广泛应用。本文介绍RSA算法的基本原理和破解方法。

RSA在互联网上被广泛应用,典型的如各个网站的证书。

很多应用数据的加密也是使用RSA。

本文介绍RSA算法的原理,并介绍其破解方法和工具。

01

RSA算法原理

RSA加密算法是一种非对称加密算法,它能抵抗目前绝大多数密码攻击。RSA算法基于以下事实:

两个大素数相乘十分容易,但是对其乘积进行因式分解却极其困难,因此,RSA的安全性取决于对极大整数做因数分解的难度。

RSA加密体制中,有两个密钥,即一个公钥,一个私钥,它们组成一对密钥,公钥用来加密,私钥用来解密,公钥被公开,私钥要藏好了,如果私钥泄漏或者被爆破,则这对密钥就基本没用了。

加密的一般过程为:

02

公钥和私钥

RSA公钥与私钥的生成过程如下:

  1. 随机选定两个大素数p, q。

  2. 计算公钥和私钥的公共模数 n = pq。

  3. 计算模数n的欧拉函数φ(n)=lcm(p-1,q-1).(即最小公倍数) 。

  4. 选定一个正整数e,使1 < e < φ(n) , 且e与φ(n)互质。

  5. 计算e关于φ(n)的模反元素d, 满足de ≡ 1 (mod φ(n) ). (计算方法de=xφ(n) +1)。

  6. 公钥为(e,n),私钥为(n,d)。

RSA成立的条件依赖于如下等式:

03

加密与解密

在RSA中,Bob想给Alice发一个消息X,Alice公钥为(e,n),私钥为(n,d)。

加密和解密的过程如下:

  1. Bob先把X转换为一个大数m < n, 再用Alice的公钥(e,n)把m加密为另一个大数:

  2. Alice收到Bob发来的大数c, 进行解密。 通过自己的私钥(p,q,d)得到大数m:

  3. 再把m转换为X, Alice即得到Bob的原始消息,转换方法二人提前约定。

04

RSA暴力破解

RSA暴力破解,简单理解,就是根据公钥(e,n)获取私钥(n,d)的方法。

对一个RSA证书来说,公钥是公开的,e及n值可以使用openssl库进行获取,重要的是模数n值,假设公钥文件问pub.pem,则模数n值其获取命令如下:

openssl rsa -in pub.pem -pubin -modulus -noout

RSA爆破就是对大数n值使用工具分解成pq的过程,得到pq,就得到了d。

RSA爆破,是根据数学原理,按数学步骤进行一步步计算,不是使用openssl这类通用的工具进行的,具体的步骤,太专业了,这里不做描述。

目前,RSA-220 即729位的数,已经有破解成功的案例。对RSA-155即512位的数,使用服务器集群很快就能得到结果。而对RSA-1024而言,已经不够安全了,所以现在SSL证书都升级到了2048位。

在互联网大发展的时代,最幸福的是,目前已经有很多开源的爆破工具供我们使用。

05

RSA爆破工具

RSA爆破的工具有很多,如:CADO-NFS,ggnfs,MSIEVE,yafu、sage等,还有在线破解的网站如cocalc.com。

有的工具可以在Linux,有的可以在Windows下使用。在线破解工具则是大伙玩的,实用性有限。

在爆破工具的选择上,如果需要分解的数字不大,可以使用yafu等工具,如果需要爆破的是大数,则需要使用CADO-NFS这类Linux平台下可以并行运算的爆破工具。

如CADO-NFS官方提供的实验结果如下:

实际上,如果服务器够多,CPU够多,破解速度会更快。

当然,对协议分析而言,如果需要爆破,则这个数不会小,我推荐的爆破工具肯定就是CADO-NFS啦。

如果在RSA爆破过程中需要获取帮助,可以留言找我进行了解。

扫我关注。

RSA加密算法破解及原理相关推荐

  1. 【数据结构与算法】之深入解析RSA加密算法的实现原理

    一.密码学历史 密码学的历史大致可以追溯到两千年前,相传古罗马名将凯撒大帝为了防止敌方截狱情报,用密码传送情报.凯撒的做法很简单,就是对二十几个罗马字母建立一张对应表,这样,如果不知道密码本,即使截获 ...

  2. RSA加密算法的数学原理

    文章目录 RSA数学原理 获取两个不相等的质数pq 把p和q相乘,得到n 计算出小于n的自然数中,有多少数与n互质(欧拉函数) 在1和φ(n)之间,选取一个随机质数e 求e和φ(n)的模反元素d(裴蜀 ...

  3. RSA加密算法原理及RES签名算法简介(转载)

    第一部分:RSA算法原理与加密解密 一.RSA加密过程简述 A和B进行加密通信时,B首先要生成一对密钥.一个是公钥,给A,B自己持有私钥.A使用B的公钥加密要加密发送的内容,然后B在通过自己的私钥解密 ...

  4. RSA加密算法原理及其Java实现

    RSA加密算法原理及其Java实现 RSA加密算法的基本原理 主要步骤 解密过程证明 java实现 简单介绍了RSA加密算法的原理及其Java实现:原文过长时,进行了分段加密. RSA加密算法的基本原 ...

  5. android支付宝rsa加密算法,支付宝支付流程与RSA算法原理

    RSA加密算法的原理 支付宝的三种支付流程 1.所有的支付逻辑处理,全在服务器完成,现在被淘汰了 原理就是电商App吧所有的信息提交给电商服务器,然后又电商服务器与支付宝服务器进行交互 2.所有的支付 ...

  6. RSA加密算法,从实际应用到基础原理(一)

    RSA加密算法,从实际应用到基础原理(二)https://blog.csdn.net/mashiqing/article/details/127042988 日常的基础应用,登录远程服务器 在使用ss ...

  7. RSA 加密算法原理简述

    概述 本文旨在说明RSA加密算法的原理及实现,而其相关的数学部分的证明则不是本文内容. 版权说明 著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:Q-WHai 发表日期: ...

  8. 用实例给新手讲解RSA加密算法

    用实例给新手讲解RSA加密算法 2009年06月24日14:04 来源: 我有话说 查看评论(2) 好文我顶(3) 图为 RSA公开密钥算法的发明人,从左到右Ron Rivest, Adi Shami ...

  9. 常见加密算法分类,用途,原理以及比较

    摘自:http://blog.csdn.net/zuiyuezhou888/article/details/7557048   密码学简介 据记载,公元前400年,古希腊人发明了置换密码.1881年世 ...

最新文章

  1. html中透明度怎么写,css中控制透明度
  2. 忘掉 Java 并发,先听完这个故事。。。
  3. 斗地主程序设计c语言,C语言斗地主游戏v0.1
  4. CONVERSION_EXIT_SDATE_OUTPUT
  5. Mysql索引使用情况_介绍mysql索引失效的情况
  6. 微信小程序销毁某一注册函数_微信小程序云开发API 删除一条记录
  7. php 执行mysql查询_php中执行mysql的常用操作
  8. 一个长方体玻璃容器从里面量长宽_养观赏鱼用玻璃鱼缸吗?3种常见养鱼容器,另外2种养鱼效果不差...
  9. 禁用计算机外部设备,在桌面办公系统中, ()能够阻止外部主机对本地计算机的端口扫描。...
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上二手车交易系统
  11. C#反编译工具ilspy下载地址
  12. 当初我要是这么学习操作系统就好了(附带思维导图)
  13. 颠覆性创新:未来人人都可以构建一个元宇宙
  14. 永远做重要而不紧急的事
  15. Pandas数据可视化怎么做?用实战案例告诉你!
  16. 用技术支点撬开“掘金池”,多多云能否成为中国版VMWare?
  17. java 红外光谱数据库_【分享】免费的20个谱图数据库 - 晶体 - 小木虫 - 学术 科研 互动社区...
  18. Artemis资源限制(17)
  19. NRF52832学习笔记(19)——TWI(I2C)接口使用
  20. Visio—“信号波形”

热门文章

  1. 1小时学会:最简单的iOS直播推流(五)yuv、pcm数据的介绍和获取
  2. JS获取当月每天的日期,JS获取本周每天的日期
  3. 通用权限管理系统组件 (GPM - General Permissions Manager) 权限管理以前我们都是自己开发,可是到下一个系统又不适用,又改,加上人员流动大,管理很混乱...
  4. iOS 设置View阴影
  5. MP实战系列(二)之集成swagger
  6. Nagios之事件处理
  7. P1214 等差数列
  8. centos6.5 rsync+inotify同步配置笔记
  9. Struts1.x系列教程(4):标签库概述与安装
  10. 使用wget在linux服务器上下载oracle软件