BUUCTF rsa

 


前言

基本的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_云云不知所云的博客-CSDN博客 

gmpy2 python 扩展库的用法笔记_EI Olam的博客-CSDN博客

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值