算法逆向6——RSA识别

本文介绍了RSA算法的基本原理,包括互素关系、乘法逆元和欧拉函数等数论概念,并详细阐述了RSA加密算法的密钥生成、加密和解密过程。此外,还分享了RSA24程序的逆向分析,提到了在线分解质因数工具和Python的gmpy2模块在RSA中的应用。
摘要由CSDN通过智能技术生成

本文原创作者:i春秋作家——icq5f7a075d

1. 算法介绍 

RSA算法是一种用数论构造的、基于大合数因子分解困难性的公开密钥密码。由于RSA密码既可用于加密,又可用于数字签名,安全、易懂,因此RSA密码已成为目前应用最广泛的公开密钥密码。许多勒索软件就是使用RSA加密,在没有私钥的情况下很难恢复数据。
在正式介绍RSA加密算法前,我们还需要知道一些数论的概念:
(1)互素关系(互质关系):如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互素关系(互质关系);
(2)乘法逆元(模反元素):如果两个正整数a和n互质,那么一定可以找到整数b,使得ab-1被n整除,或者说ab被n除的余数是1。这时,b就叫做a的乘法逆元(模反元素)。
(3)欧拉函数;任意给定正整数n,计算小于n的正整数中与n互质的数的数目的方式就叫做欧拉函数,以φ(n)表示。如果n是质数,则 φ(n)=n-1 ,因为质数与小于它的每一个数,都构成互质关系。如果n可以分解成两个互质的整数之积,n = p1 × p2,则φ(n) =φ(p1p2) = φ(p1)φ(p2)=(p1-1)*(p2-1)。
(4)欧拉定理:如果两个正整数a和n互质,则n的欧拉函数φ(n)可以让下面的等式成立:
a^φ(n)=1 (mod n)

有了以上数论的知识,我们就可以理解RSA加密算法了。

加密算法描述 :

(1)密钥的产生
a.选两个保密的大素数(素数又称质数)p和q;
b.计算n=p*q,φ(n) =(p-1)(q-1);
c.选一整数e,满足1<e<φ(n),且φ(n)与e互质;
d.计算d,满足d*e=1 (mod φ(n)),即d是e在φ(n)下的乘法逆元,因e与φ(n)互素,由模运算可知,它的乘法逆元一定存在;
e.以{e,n}为公开钥,{d,n}为秘密钥;
(2)加密
加密时首先将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log 2 n,然后对每个明文分组m,作加密运算:c=m^e mod n &#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值