RSA加密算法破解及原理

news/2024/7/1 2:50:50

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



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


0?wx_fmt=png


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


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




01




RSA算法原理



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


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


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


加密的一般过程为:

0?wx_fmt=png






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成立的条件依赖于如下等式:

  

0?wx_fmt=png



03


加密与解密


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

加密和解密的过程如下:

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


    0?wx_fmt=png

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

    0?wx_fmt=png

  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官方提供的实验结果如下:

0?wx_fmt=png

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

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


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


0?wx_fmt=jpeg

扫我关注。







http://lihuaxi.xjx100.cn/news/237970.html

相关文章

使用文本用户界面(NMTUI)进行网络配置

NetworkManager 文本用户界面&#xff08;TUI&#xff09;工具 nmtui 可提供一个文本界面配置由 NetworkManager 控制的网络。该工具包含在 NetworkManager-tui 子软件包中。写入时&#xff0c;不会默认随 NetworkManager 安装该子软件包。要安装 NetworkManager-tui&#xff0…

干货,Wireshark使用技巧-过滤规则

“介绍Wireshark抓包时使用的过滤规则。”熟练使用Wireshark&#xff0c;对协议分析大有帮助。本文介绍抓取报文时使用的过滤规则和对已有报文的显示进行控制的显示规则。01—过滤规则使用在抓取报文时使用的规则&#xff0c;称为过滤规则&#xff0c;Wireshark底层是基于Winpc…

区块链技术的未来应用

想知道更多关于区块链技术知识&#xff0c;请百度【链客区块链技术问答社区】 链客&#xff0c;有问必答&#xff01;区块链是类似Excel电子表格一样的分类帐本&#xff0c;但他们能够接受来自许多不同方的输入。分类账只能在组成员达成共识时才能更改。由于分布式账本生态系统…

mac 制作usb启动盘_如何使用Mac制作Windows 10 USB-从Mac终端构建可启动的ISO

mac 制作usb启动盘Most new PCs dont come with DVD drives anymore. So it can be a pain to install Windows on a new computer.大多数新PC不再附带DVD驱动器。 因此&#xff0c;在新计算机上安装Windows可能会很痛苦。 Luckily, Microsoft makes a tool that you can use …

MQTT 协议 Client ID 长度不能超过23个字符

今天遇到一个MQTT的问题&#xff0c;MqttException: MQIsdp ClientId > 23 bytes ClientId的长度大于23时&#xff0c;无法链接MQTT服务器。 经过查看协议发现&#xff1a;客户端标识符(Client ID)是介于1和23个字符长度,客户端到服务器的唯一标识。它必须在搜有客户端连接到…

干货:Wireshark使用技巧-显示规则

“ 介绍Wireshark对已有报文的显示进行控制的显示规则。”之前对Wireshark抓包时使用的过滤规则进行了介绍&#xff0c;本文介绍对已有报文的显示进行控制的显示规则。掌握了显示规则&#xff0c;你使用Wireshark的动作都会炫起来。点击回顾&#xff1a;过滤规则01—显示规则使…

关于共识算法和分布式账本数据结构的简要工程简介

想知道更多关于区块链技术知识&#xff0c;请百度【链客区块链技术问答社区】 链客&#xff0c;有问必答&#xff01;共识算法定义了一系列动作&#xff0c;通过这些动作&#xff0c;独立代理在分布式系统的各个部分上(至少在大多数代理中)获得了相同的观点。例如&#xff0c;这…

minecraft_我们未来的机器人影响者:尝试使用Minecraft玩的Twitch流媒体机器人

minecraftIn this article, Ill discuss how we reached young audiences by combining robotics with e-sports.在本文中&#xff0c;我将讨论如何通过结合机器人技术和电子竞技来吸引年轻观众。 到底怎么回事&#xff1f; (What on Earth?) Ever heard of anything like it…