CTFshow——funnyrsa2
题目如下:

题目分析:
发现n很小,可以考虑yafu分解n,或者使用在线网站,例如:http://factordb.com/。即得p,q,r。因为常规rsa只有p和q,则phi = (p -1) * (q - 1),而现在有3个因子,所以phi = (p - 1) * (q - 1) * (r - 1)。
phi = (p - 1) * (q - 1) * (r - 1)的原因:
根据欧拉函数,如果存在n可以分解成两个互质的整数之积,即
n = p1 * q1
则存在这样的关系:
phi(n) = phi(p1*q1) = phi(p1) * phi(q1) = (p1 - 1)* (q1 - 1)
举个例子:
n = 56,则phi(56) = phi(8 * 7) = phi(8) * phi(7) = 4 * 6 =24
求解phi(8) 即是求1到8之中有多少个与8互质的数?分别为1,3,5,7。同理得到phi(7)=6,即1,2,3,4,5,6都与7互质。
根据以上即知原因
脚本编写:
from Cryptodome.Util.number import *
import gmpy2 n = 897607935780955837078784515115186203180822213482989041398073067996023639
c = 490571531583321382715358426750276448536961994273309958885670149895389968
e = 0x10001
p = 876391552113414716726089
q = 932470255754103340237147
r = 1098382268985762240184333 phi = (p - 1) * (q - 1) * (r - 1)
t = gmpy2.gcd(e, phi)
#print(t)
d = gmpy2.invert(e, phi)
#print(d)
m = pow(c, d, n)
#print(m)
print(long_to_bytes(m))
总结:
n分解出的因子大于2个的情况下的解法
CTFshow——funnyrsa2的更多相关文章
- ctfshow之Web入门刷题记(从89开始,持续更新)
0x01Web89-99PHP特性payload Web89 include("flag.php"); highlight_file(__FILE__); if(isset($_G ...
- 关于CTFshow中Web入门42-54
0x00前记 终于把学校上学期的期末考试考完了,刚好复习的时候跟着群里的师傅写了ctfshow上Web入门的42-54的题目,其中有很多的坑,但是收获也是很多的,这里做一下总结吧!给自己挖了很多的 ...
- c通过ctfshow学习php反序列化
web254 web255 web256 web257 web258 web259 web260 web262 web263 web264 web265 web266 web254 error_rep ...
- ctfshow——web_AK赛
签到_观己 从题目描述中没发现什么有用的信息 发现文件包含 尝试使用PHP伪协议执行命令,发现无法执行 尝试使用远程文件包含,发现也未开启 尝试使用日志注入 记录了UA值,抓包写入一句话木马 使用蚁剑 ...
- ctfshow WEB入门 信息收集 1-20
web1 题目:开发注释未及时删除 查看页面源代码即可 web2 题目:js把鼠标右键和f12屏蔽了 方法一: 禁用JavaScript 方法二: url前面加上view-source: web3 题 ...
- ctfshow萌新 web1-7
ctfshow萌新 web1 1.手动注入.需要绕过函数inval,要求id不能大于999且id=1000,所以用'1000'字符代替数字1000 2.找到?id=" "处有回显 ...
- ctfshow web2 web3
ctfshow web2 1.手动注入题.先用万能密码admin' or 1=1%23,有回显 2.union select注入,2处有回显 3.依次查找数据库.表.字段 得到flag ctfshow ...
- ctfshow web入门部分题目 (更新中)
CTFSHOW(WEB) web入门 给她 1 参考文档 https://blog.csdn.net/weixin_51412071/article/details/124270277 查看链接 sq ...
- CTFshow——funnyrsa1的wp理解
题目如下: 题目分析: 拿到题,发现给的e不常规,p1和p2相等,有两个不同n,两个不同c和两个不同e.给定两个密文的情况下,通常需要找到两者之间存在的关系,"合并"密文求解才能得 ...
随机推荐
- 在Tomcat中启用虚拟线程特性
前提 趁着国庆前后阅读了虚拟线程相关的源码,写了一篇<虚拟线程 - VirtualThread源码透视>,里面介绍了虚拟线程的实现原理和使用示例.需要准备做一下前期准备: 安装OpenJD ...
- EFCore (二)之 跟踪实体
核心 SaveChanges() "已分离"和"未改变"的实体,SaveChanges()忽略: "已添加"的实体,SaveChanges( ...
- String简介
String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String实现了Serializable接口:表示字符串是支持序列化的.实现了 ...
- Dest0g3迎新赛misc部分解析
目录 1. Pngenius 2. EasyEncode 3. 你知道js吗 4. StrangeTraffic 5. EasyWord 6.4096 7.python_jail 8. codeg ...
- hyperf-搭建初始化
官方文档* https://hyperf.wiki/2.0/#/README 初步搭建1. 安装项目 composer create-project hyperf/hyperf-skeleton 2. ...
- 动词时态=>3.现在时态和过去时态构成详解
现在时态构成详解 一般现在时态 最容易构成的时态,直接加动词原形(字典当中显示的词条)就可以 第三人称"单数"的话需要加s 这是最容易出错的时态:容易将 现在的时间,和一般的状态: ...
- 6.Git忽略文件
忽略指定文件 有些文件与实际功能无关,不参与服务器上部署运行,把他们忽略调能够屏蔽ide工具之间的差异 1.在工作区目录下创建xxx.gitignore文件 (前缀名随意) 以斜杠"/&qu ...
- 16.-admin管理后台
一.admin管理后台 Django提供给了比较完善的后台管理数据库接口,可供开发过程中调用和测试使用 Django会搜集所有已注册的模型类,为这些模型类提供数据管理界面,供开发者使用 命令:py ...
- Sublime Text怎样自定义配色和主题
一.自定义配色方案 1 基础知识 配色方案[Color Scheme]文件保存在以下路径[ST安装目录]: "D:\Program Files\Sublime Text\Packages\C ...
- CentOS6/7 配置守护进程
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式. 一.相关命令 通过initctl help可以查看相关命令 [root@localhost ~ ...