2022_easyRSA

news/2025/10/5 15:17:22/文章来源:https://www.cnblogs.com/JasonJHu/p/19126613

Tags:RSA,二项式,模运算

0x00. 题目

task.py

from Crypto.Util.number import *
from secret import flagp = getPrime(512)
q = getPrime(512)
r = getPrime(512)
n = p * q * r
e = 2 * 65537
m = bytes_to_long(flag)
hint1 = (p ** e - q ** e) % n
hint2 = ((2022 * p - q) ** e) % n
c = pow(m, e, n)print('hint1=', hint1)
print('hint2=', hint2)
print('n=', n)
print('c=', c)'''
hint1= 52281369398119567600662410538274474517133545222909276138391564372588246951556629434770221234458474257377439969412704841500791846456027747748203669565548168914696425764936947122334706087984219346335163813276457066769423286733899273378368331536658499951445074723593154096302551355270335147373146189656941967028635503538514210591235797153127984090571130062808740480476891179648059623308845204047386245441238990490866887541280568559745952068080120249721728494529636
hint2= 812269801039413894591278079358829428758036232534135221906772873437636744333426585293727772709659955393324539345478442177306013153481675848440757037566170549490328554607077425823712672804058633402840402515101422958294631642070495372150426904944019441161167313930360440965481038384894804006149168592608984721191275623676598184353692459825319078000352713036259410561499975902803368237100174518148748647427461636349234848907856305248267315083901505095210729966773183
n= 882982249031535548330341246528720199440543946466957383057449513412150447193779757566762076728954117460898887428970617025549995668574636502129794163201567120705719942956794531213763808011596771145684829464604133585457655671694348466503187597400178190815156787162601224605024975743048127298195836665757113897601684518911541677609207386837648455363901768673522248501745633727556776748089329944749837984699389705838494543515399498025589804347229817239564237664909983
c= 175198543718411501549855635400850806059246384562505102614089769131268222450487690256679800266279485952557651309227097624656742869561093126023345189879810915190851567171378500242734898632986941052386989869840615936880252213276789842406696336114243246106091230988556639836826748025596025629542690565576037754055447000774583245251787101189971189153349018453500714541907146003648880552573318011434078436075687038897589887765173313894962578176499867707815372313130165

0x01. WP

1. 分析

是对于二项式定理+模运算的运用
我们的hint2是$$(2022*p-q)^e$$

这个第一项为$$ (2022*p)^e $$

最后一项是$$ q^e $$

中间的项都会有 $$p*q = n$$

然后我们又模上了n所以我们的除了第一项和第二项其他项都变成0了,所以我们化简得到$$hint2 = (2022^e * p^e + q^e) \ mod \ n$$

而$$hint1 = (p^e - q^e) \ mod \ n$$

所以此时我们就可以通过hint1+hint2消去了我们的qe,也就是得到$$hint1+hint2 \ = \ (p^e * (2022^e + 1)) \ mod \ n$$

然后此时我们与n求公约数,就可以得到我们的p

同理求q,

\[\begin{align*} hint1 * (2022^e \ mod \ n) - hint2 &= ((2022^e * p^e - 2022^e * q^e) \ mod \ n) - ((2022^e * p^e + q^e) \ mod \ n) \\&= - (2022^e + 1) * q^e \ mod \ n \end{align*}\]

那么此时就可以再次与n求公约数就可以得到q,然后我们p和q都能够得到,r也能够得到,就是基本的rsa解密即可。

2. 解题脚本

rsa_exp.py

from Crypto.Util.number import *
from gmpy2 import iroote = 2 * 65537
n= 882982249031535548330341246528720199440543946466957383057449513412150447193779757566762076728954117460898887428970617025549995668574636502129794163201567120705719942956794531213763808011596771145684829464604133585457655671694348466503187597400178190815156787162601224605024975743048127298195836665757113897601684518911541677609207386837648455363901768673522248501745633727556776748089329944749837984699389705838494543515399498025589804347229817239564237664909983
c= 175198543718411501549855635400850806059246384562505102614089769131268222450487690256679800266279485952557651309227097624656742869561093126023345189879810915190851567171378500242734898632986941052386989869840615936880252213276789842406696336114243246106091230988556639836826748025596025629542690565576037754055447000774583245251787101189971189153349018453500714541907146003648880552573318011434078436075687038897589887765173313894962578176499867707815372313130165
hint1= 52281369398119567600662410538274474517133545222909276138391564372588246951556629434770221234458474257377439969412704841500791846456027747748203669565548168914696425764936947122334706087984219346335163813276457066769423286733899273378368331536658499951445074723593154096302551355270335147373146189656941967028635503538514210591235797153127984090571130062808740480476891179648059623308845204047386245441238990490866887541280568559745952068080120249721728494529636
hint2= 812269801039413894591278079358829428758036232534135221906772873437636744333426585293727772709659955393324539345478442177306013153481675848440757037566170549490328554607077425823712672804058633402840402515101422958294631642070495372150426904944019441161167313930360440965481038384894804006149168592608984721191275623676598184353692459825319078000352713036259410561499975902803368237100174518148748647427461636349234848907856305248267315083901505095210729966773183
p = GCD(hint2 + hint1, n)
q = GCD(pow(2022,e,n)*hint1 - hint2, n)
r = n//p//q
print(p)
print(q)
print(r)# e和phi_n不互素
d = inverse(e//2, (p-1)*(q-1)*(r-1))
m = pow(c,d,n)
m = iroot(m, 2)
print(m)
print(long_to_bytes(m[0]))'''
9951851693926734122204885773440606711225146718418816630948014628251654669566935310890011180360685809386930879429133384666673283554214583913815724275938051
7030660157484773380116614561054346882089481536450893122555110279684781394375939332209487058879079838868654293601696448575381595159076960524521837483498403
12619785453570495374065523344444796126905094383485861073203532738997237786783550021232802382619177408410525411941402829367881010898541086580457280030762311
(mpz(56006392793427939732268117824970988440550584336175941119946527412330890939459882377157957948129108861), True)
b'flag{b710a7fc-0c92-b542-6d54-4dcf1cd02d3c}'
'''

最终得到flag为flag{b710a7fc-0c92-b542-6d54-4dcf1cd02d3c}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服装搭配网站建设策划书如何判断网站做的关键词

Flutter 可用于开发 mobile, desktop, backend, Or compile to JavaScript for the web. PATH 环境变量 PATH 环境变量 - 知乎 一文搞懂Path环境变量 “环境变量”和“path环境变量”其实是两个东西! 环境变量:是操作系统提供给应用程序访问的简单 key / value字符串;windo…

网站开发前期准备响应式模板

文章目录1. 创建项目2.配置3. 加载tomcat4. 完成5. 启动项目6. 效果图7. 修改访问路径1. 创建项目 2.配置 3. 加载tomcat 4. 完成 5. 启动项目 6. 效果图 7. 修改访问路径

2025电缆厂家最新推荐排行榜:深度解析青岛一缆等六家优质企业实力,助力精准选购

在工业生产与民生建设中,电缆作为关键载体,其品质直接关乎工程安全稳定运行。当前电缆市场制造商数量繁杂,产品质量参差不齐,部分企业为降成本忽视原材料与工艺把控,导致产品存在诸多安全隐患。且不同场景对电缆功…

目录锁1. 锁的分类1.1 自旋锁1.2 互斥锁手撕读写锁1. 读写锁的原理2. 读写锁的实现2.1 读写锁的接口设计2.2 读写锁的实现 锁 1. 锁的分类 1.1 自旋锁 自旋锁是一种忙等待锁,当线程获取锁失败时,会一直循环等待,直到…

1 洛谷题解修正器

写了个有意思的小工具

防止语言模型性能倒退的新方法

本文介绍了一种防止自然语言处理模型更新时出现性能倒退的新方法,通过知识蒸馏和约束优化来确保新模型在提升整体准确率的同时,不会在特定任务上出现性能衰退,涵盖了负翻转率测量和模型选择策略等技术细节。确保新版…

本站3天更换一次域名yw网络营销策划课程

BUFF,DEBUFF: 增益状态,包括自己或者队友施加的,例如骑士的祝福,牧师的耐力精神,小德的爪子DEBUFF就是减益状态,例如你PK的时候法师的寒冰箭减速,盗贼的毒药,SS的腐蚀等等NPC: NPC就…

南宁工程造价建设信息网站易企网站建设

源代码index.js里包含2部分① 业务逻辑代码 1mb② 引入(如lodash包)的代码 1mb若更新了业务逻辑代码,但在浏览器运行时每次都下载2mb的index.js显然不合理,第三方包是不会变的 手动拆分 webpack.base.js entry: {main: path.re…

RAG入门 - Retriever(1) - 指南

RAG入门 - Retriever(1) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

毕业生就业推荐表模板网站开发制作网站的过程细节

什么是机器视觉 近年来,人工智能渐渐成为一个热点话题。作为人工智能领域的一个分支,图像处理技术也随之发展到了一个新的高度,各种新的软件工具、算法库、开源资料不断涌现,各行各业也渐渐开始进行技术变革。比较典型的例子是&a…

Delphi 解决IniFiles中文乱码

使用 AnsiToUtf8 方法转换一下就可以了procedure TForm1.LoadSettingsFromIni; varIniFile: TIniFile; beginIniFile := TIniFile.Create(FIniFilePath);tryUserNameEdit.Text := AnsiToUtf8((IniFile.ReadString(Sett…

180天做180个网站百度网盘官网网页版

最近朋友买了新手机,可是她又是电脑白痴,告诉她要她用百度搜,硬是没找到,百般无奈我千挑万选,找到了这个网站,让方便也同样带给同样不知道怎么用百度的朋友了5230主题下载网址:http://d.958shop…

礼泉做网站网站设计师主要做什么的

为 IoT 而生的鸿蒙操作系统,其优势与特点几乎都是围绕「万物互联」展开的。在曝光两年之后,华为的鸿蒙系统终于正式和用户见面了。6 月 2 日,华为鸿蒙操作系统及华为全场景新品发布会开启,正式推出 HarmonyOS 2.0,并发…

网站的域名空间网站的设计公司

讲正文之前,推荐一个连接:http://wuxinaiaman928.blog.163.com/blog/static/64932144200811911233198/ 里面比较详细的介绍了Vmware中三种不同的连接方式:桥连接,NAT,使用主机网络,有助于理解简单来讲&…

Web前端为什么要打包?Webpack 和 Vite 如何助力现代开发? - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

常州网站关键词优化软件建站系统是什么

作为一个程序员,选择职业赛道就像是在一座迷宫中探索前端的美丽花园,后端的黑暗洞穴,还有数据科学的神秘密室。每一条赛道都充满了挑战和机遇,而选择哪一条赛道将直接影响到你未来的职业发展和成就。对于每一位准备投身或已经在编…

淄博网站制作托管优化师德师风建设网站

参考链接 Cplus plus参考链接numeric_limits<double>::max ()是函数&#xff0c;返回编译器允许的 double 型数 最大值。类似的 numeric_limits<int>::max () 返回 编译器允许的 int 型数 最大值。需包含头文件 #include <limits> imits是STL提供的头文件&…

在哪做网站关键词官方网站下载打印机的驱动

研究经济学的理由就是【为了避免被经济学家欺骗】——琼罗宾逊 以前看见过一句话&#xff1a;大学生的钱是最好赚的。为什么&#xff1f;因为大学生要面子、没有经历过赚钱的心酸以及思想单纯容易被骗。最近一件事情让我感触很深&#xff0c;前几天室友将学校的水果店给投诉了…

分布式微服务系统架构第142集:全栈构建

分布式微服务系统架构第142集:全栈构建pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…