前言
基本的rsa加密规则了解
一、rsa基本算法(非对称加密)
主要有四个重要的参数
p q为两个较大的素数
p*q=n n为pq的乘积
phin(欧拉函数)=(p-1)*(q-1)
e(1<e<phin) 满足于phin互相为素数 e作为加密的公钥
d是e在phin的域上的逆元 满足(e*d)mod phin=1 d作为加密的私钥
加密方式 使用公钥e进行加密 明文使用x作为表示 加密后的密文使用y进行表示
y=x^e mod n
解密方式 使用公钥d进行解密 明文使用x作为表示 加密后的密文使用y进行表示
x=y^d mod n
可以简单的认为是公钥加密,私钥解密。
二、分析题目
1.分析文件作用
文件有两个 很明显可以发现是flag为加密后的明文,pub.key是使用的公钥,所以我们的整体思路就是推出私钥进行对明文的解密。
这里是公钥,但是如果只知道公钥是没法直接做题的,所以这里借助工具对公钥进行公钥分析。(SSL在线工具-公钥解析 (hiencode.com))
2.分析数据
我们现在得到了e和n的数值,根据之前的rsa的算法分析,可以知道n的值为pq的乘积 所以我们可以通过n获得pq的具体的值 也就获得了phin的值 factordb.com 这个工具可以快捷的对n的值进行分析,快速的获得pq的值。
获得了pq的值 因为e*d mod phin=1我们对d的值进行计算 就可以获得d的值
得到了所有的关键数据我们就可以进行解密
脚本
脚本中使用了 库rsa 和 库gmpy2,是为了简便计算 详细的用法可以了解大佬的博客
python rsa模块学习笔记_import rsa_云云不知所云的博客-优快云博客
gmpy2 python 扩展库的用法笔记_EI Olam的博客-优快云博客