Bugku CRYPTO No Ciphertext RSA writeup by 树木

article/2025/9/23 0:41:12

前言

菜鸡树木出的新密码题,质量不高,大佬们不要喷呜呜呜

题目信息

题目名称:No Ciphertext RSA

题目作者:树木有点绿

描  述: The ciphertext is unknown!

解题过程

 

通过观察发现题目给了dp,那么我们可以根据dp推出p,然后根据n与pq的关系求出q

e = 65537
n = 20446305236294581881140725938833605520023786992590821920806811572505477606387830733060901955371457846738863889279107367753914707053108524516947943610226964107558978693717655472431318403586269727573489946433389159145602800207787382180423611018458189828931572992863289292613405218278949739073786959411566919119158325510346523951336418479951932209799501108477995314359188860274532542630968951457343647522078553891223764285682602714616115281040492374167771746275218863543545907073818468841626731849010162645256595641473022327747346052186526727216525426337190917106751151745388854749923598231196090790074682287345100965373
dp =  158325084409606165134868956023907667507671677832027168046364315703295407017343206432691817272550256085313093440797443736742051552429653661451417133052016647805226890534559578502154540190596419643135611407218228612201386225040438407799879719366484669372051153511312310009858718254183049095347658106745575535469
for i in range(1,65535):p=(dp*e-1)//i+1if n%p==0:break
print(p)
#176880281220421384276770426697672033095535078075714508749353553548240276323610202856692980610806418687790464096511235044404620241239340834109671075804268777866611345077962413424290036147269400193518437230146620445225908578474569771436035545465911591432888691958522976733082929634591293998871492096106249085747

然后我们使用q=n//p求出q

n=20446305236294581881140725938833605520023786992590821920806811572505477606387830733060901955371457846738863889279107367753914707053108524516947943610226964107558978693717655472431318403586269727573489946433389159145602800207787382180423611018458189828931572992863289292613405218278949739073786959411566919119158325510346523951336418479951932209799501108477995314359188860274532542630968951457343647522078553891223764285682602714616115281040492374167771746275218863543545907073818468841626731849010162645256595641473022327747346052186526727216525426337190917106751151745388854749923598231196090790074682287345100965373
p=176880281220421384276770426697672033095535078075714508749353553548240276323610202856692980610806418687790464096511235044404620241239340834109671075804268777866611345077962413424290036147269400193518437230146620445225908578474569771436035545465911591432888691958522976733082929634591293998871492096106249085747
q=n//p
print(q)
#115594033971571906870674970630915982265473520658575817480573873228902478910162856689799762790434945040173985337386002280961456435302076145225402559274043951375941233922060296662348241974538390649557790352060766898957619823324331799986614029809180092244051635825912380759159031412761681296336889781840027922959

紧接着,我们发现题目还给了leak_c1和leak_c2

 

但是题目并没有给出密文c,所以推测是要我们根据这两个已知信息求解c

这里我们用到了中国剩余定理(CRT),即p和q是互相独立的大素数,n为p*q,对于任意(m1, m2), (0<=m1< p, 0<=m2< p),这里把m1和m2替换成leak_c1和leak_c2,即可得到以下关系,我们发现这个关系完全符合以上定理

leak_c1 = c mod p
leak_c2 = c mod q

然后按照参考资料中的额Using the CTR with RSA即可根据leak_c1和leak_c2求解出c了

import gmpy2
p=115594033971571906870674970630915982265473520658575817480573873228902478910162856689799762790434945040173985337386002280961456435302076145225402559274043951375941233922060296662348241974538390649557790352060766898957619823324331799986614029809180092244051635825912380759159031412761681296336889781840027922959
q=176880281220421384276770426697672033095535078075714508749353553548240276323610202856692980610806418687790464096511235044404620241239340834109671075804268777866611345077962413424290036147269400193518437230146620445225908578474569771436035545465911591432888691958522976733082929634591293998871492096106249085747
c_mod_p=116908580792713727509554342060190793142033425411766631165842865699167747112494944492849392371565838125428644563687571660329763478509815200537676368326781342382868082294015200439334832938068779547847851748337854603115134732593759473453640093195977206450633212921689957303431235603192670553553803757864481012599
c_mod_q=18319344794671185787719339480953236221170603508712466350928025351527616335735433941953520711516118072282425397883638101260674452825151245435529613074796106769481242318321469286177813223159476396555044378245229663195991557031227024085316255781963813911437991309663376270820486723382786632243229800891705679245
e=65537
phi=(p-1)*(q-1)
d=gmpy2.invert(e,phi)
def CRT(aList, mList):M = 1for i in mList:M = M * ix = 0for i in range(len(mList)):Mi = M // mList[i]Mi_inverse = gmpy2.invert(Mi, mList[i])x += aList[i] * Mi * Mi_inversex = x % Mreturn x
if __name__ == "__main__":cList = [c_mod_p,c_mod_q]nList = [p,q]c = CRT(cList, nList)print(c)
#881223005013212329516680779770112213932184717575593705059275649183771089334628141202161640442530077373534574194323145344622196586510840109564222578976180247878668441243862824751264767688497192099460387965900121726924892410031343711180815011769897015729229501184255927235055838507628915398431057531348154667508394459894331052112012032490537515446990471398370280340641701058186108963013790688209990817631026484000900586136761003829319887875321641336302671586230087977190633848648706216633068142114296047157075398888299015627324219218846601055728510906015989112340983567350225119500049135045815437014263719857972698084

完整代码如下:

import gmpy2
from Crypto.Util.number import *
e = 65537
n = 20446305236294581881140725938833605520023786992590821920806811572505477606387830733060901955371457846738863889279107367753914707053108524516947943610226964107558978693717655472431318403586269727573489946433389159145602800207787382180423611018458189828931572992863289292613405218278949739073786959411566919119158325510346523951336418479951932209799501108477995314359188860274532542630968951457343647522078553891223764285682602714616115281040492374167771746275218863543545907073818468841626731849010162645256595641473022327747346052186526727216525426337190917106751151745388854749923598231196090790074682287345100965373
dp =  158325084409606165134868956023907667507671677832027168046364315703295407017343206432691817272550256085313093440797443736742051552429653661451417133052016647805226890534559578502154540190596419643135611407218228612201386225040438407799879719366484669372051153511312310009858718254183049095347658106745575535469
for i in range(1,65535):p=(dp*e-1)//i+1if n%p==0:q=n//pbreak
c_mod_p = 116908580792713727509554342060190793142033425411766631165842865699167747112494944492849392371565838125428644563687571660329763478509815200537676368326781342382868082294015200439334832938068779547847851748337854603115134732593759473453640093195977206450633212921689957303431235603192670553553803757864481012599
c_mod_q = 18319344794671185787719339480953236221170603508712466350928025351527616335735433941953520711516118072282425397883638101260674452825151245435529613074796106769481242318321469286177813223159476396555044378245229663195991557031227024085316255781963813911437991309663376270820486723382786632243229800891705679245
phi=(p-1)*(q-1)
d=gmpy2.invert(e,phi)
def CRT(aList, mList):M = 1for i in mList:M = M * ix = 0for i in range(len(mList)):Mi = M // mList[i]Mi_inverse = gmpy2.invert(Mi, mList[i])x += aList[i] * Mi * Mi_inversex = x % Mreturn x
if __name__ == "__main__":cList = [c_mod_p,c_mod_q]nList = [p,q]c = CRT(cList, nList)m=pow(c,d,n)print(long_to_bytes(m))

参考资料

Using the CRT with RSA (di-mgt.com.au)


http://chatgpt.dhexx.cn/article/Z2xSTb6S.shtml

相关文章

某cpws - ciphertext加密与数据解密

前言 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 加密位置确定 网站 : aHR0cHMlM0EvL3dlbnNodS5jb3VydC5nb3YuY24vd2Vic2l0ZS93ZW5zaHUvMTgxMjE3Qk1US0hOVDJXMC9pbmRleC5odG1sJTNGcGFnZUlkJTNENTU2…

《A Traceable and Revocable Ciphertext-Policy Attribute-based Encryption Scheme Based》属性加密机制

《基于隐私保护的可追溯性和可撤销的密文策略属性加密》 论文链接&#xff1a;A Traceable and Revocable Ciphertext-Policy Attribute-based Encryption Scheme Based 1.可追踪和可撤销指的是什么&#xff1f; 可撤销性 用户撤销&#xff1a;撤销特定用户的所有属性&…

属性基加密仿真及代码实现(CP-ABE)论文:Ciphertext-Policy Attribute-Based Encryption

1、仿真论文&#xff1a;Ciphertext-Policy Attribute-Based Encryption 2、使用库&#xff1a;JPBC lombok 3、目录结构&#xff1a; 3.1 essay&#xff1a;论文 3.2 lib&#xff1a;jpbc库 3.3 params&#xff1a;椭圆曲线参数 3.4 src&#xff1a;源码 attribute&…

论文翻译—Ciphertext-Policy Attribute-Based Encryption

Abstract 在一些分布式系统中&#xff0c;只有当用户拥有一组特定的凭证或属性时&#xff0c;用户才能访问数据。目前&#xff0c;实施这种策略的唯一方法是使用一个受信任的服务器来存储数据并协调访问控制。但是&#xff0c;如果存储数据的任何服务器被泄露&#xff0c;那么数…

华为实习密文cipherText破解

很多小伙伴找我破解密文&#xff0c;但是最近比较忙&#xff0c;所以决定公布破解密文的程序。 连接如下&#xff1a;华为实习密文cipherText破解 分割线以下为之前的内容 前段时间面试了华为实习生&#xff0c;还在等待offer中。 之前一直可以通过一个网址查看进展&#x…

某某行政处罚文书网 (请求参数: ciphertext)

前言 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 浅聊一下 该网站文书列表页请求时,会携带一个post参数ciphertext,这个参数在一定时间范围内是不变的,但是是有实效性的, 有效期大概在两个小时…

十七届全国大学生智能车竞赛华南赛区开幕式议程

十七届全国大学生智能车竞赛 华南赛区开幕式议程 开幕式时间&#xff1a;2022年7月25日&#xff0c;上午8&#xff1a;30开幕式地址&#xff1a;哈尔滨工业大学&#xff08;深圳&#xff09;活动中心 开幕式议程&#xff1a; 一、介绍参加会议的嘉宾二、奏国歌三、嘉宾致辞 …

全国大学生智能车竞赛 |掀桌子的时候

01 掀桌子 又到了掀桌子的时候了 一、掀桌子 每年一度的全国大学生智能车竞赛竞赛到了这个时候&#xff0c;  都开始进入掀桌子的周期了。 参加过一届比赛的同学开始纷纷给组委会提出比赛内容的建议。  这不&#xff0c; 刚刚看到同学在后台的一个留言&#xff0c;  着实把我…

第十五届全国大学生智能车竞赛各分赛区赛道数量以及比赛系统数量

作者:卓晴博士 全国大学生智能车竞赛秘书处 2020-07-26 Sunday □ 各分赛区赛道数量 赛区比赛时间东北8月15-17日华北8月11-13日华东8月23-26日华南8月15-20日西部8月12-14日安徽11月前后山东8月12-15日浙江8月9-11日 □ 各分赛区所需要比赛系统数量 今年举办集中线下比赛的赛区…

时雨月五| AI机器学习实战の电磁导航智能车中神经网络应用的问题与思考

“不愤不启&#xff0c;不悱不发。举一隅不以三隅反&#xff0c;则不复也”。 – 《论语述而》 再次将论语中的这句“不愤不启&#xff0c;不悱不发”引用在这里&#xff0c;说明学生的学习的活动部分来自老师&#xff0c;大部分来自于自己主动的“愤”“悱”&#xff0c;否则…

第十五届全国大学生智能车竞赛室外光电创意组别进入线下比赛的队伍名单

作者:卓晴博士&#xff0c;清华大学自动化系 更新时间&#xff1a;2020-08-05 Wednesday 第十五届全国大学生智能车竞赛组委会在7月4日公布了室外光电ROS预赛方案 &#xff0c;截止到7月20日&#xff0c;公布到213支队伍的の报名信息&#xff0c;经过核实去重之后&#xff0c;最…

国赛来咯,全国大学生智能汽车竞赛百度赛道正式开启

「第17届全国大学生智能汽车竞赛—完全模型组竞速赛」1月15日全面启航&#xff01;大赛组委会秘书长卓晴教授届时将亲临百度飞桨直播间&#xff0c;和同学们一起聊备赛&#xff0c;话今年。 01 竞赛简介 「全国大学生智能汽车竞赛」是教育部倡导的大学生科技A类竞赛&#xff…

电解电容为什么会爆炸?

关注星标公众号&#xff0c;不错过精彩内容 作者 | 卓晴 来源 | TsinghuaJoking 一、电解电容 电解电容是通过电解质作用在电极上形成的氧化层作为绝缘层的电容&#xff0c;通常具有较大的容量。电解质是液体、胶冻状富含离子的物质&#xff0c;大多数电解电容都是有极性的&…

从150kHz 到 150MHz漫谈智能车竞赛中的无线导航技术

简 介&#xff1a; 这个文章来自于太原理工大学萧老师给智能车竞赛无线导航方案的建议。 关键词&#xff1a; 智能车竞赛&#xff0c;导航&#xff0c;无线电&#xff0c;萧老师 卓晴老师你好&#xff01; 节能信标组利用信标发出的信号对信标定位。用摄像头定位比较容易实现。…

Bootstrapvalidator表单验证+ 模态框 Ajax请求 Demo

BooStrapValidator网络引用地址:http://www.bootcdn.cn/bootstrap-validator/ BooStrapValidator文件下载 gitHub地址https://github.com/nghuuphuoc/bootstrapvalidator/ 这里模拟了一个后台数据返回,即请求url 为 validator.json&#xff0c;该文件内容为 false&#xff0c;…

一位刚刚成功上岸的智能车队员对于参赛经历总结与对比赛的建议

简 介&#xff1a; 尊敬的卓晴老师您好&#xff0c;我是江苏理工学院2017级本科毕业生&#xff0c;也是北京科技大学2021级研究生&#xff0c;本科期间做了整整四年智能车&#xff0c;分享一些比赛经历和对十七届全国大学生智能汽车竞赛的建议。 关键词&#xff1a; 智能车竞赛…

2022新生相关工作

简 介&#xff1a; 本文给出2022年新生相关工作的重点内容。 关键词&#xff1a; 2022&#xff0c;新生 #mermaid-svg-AUYC0UwdrejLh3M9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-AUYC0UwdrejLh3M9 .error-ico…

信号采样混叠/混频

信号采样混叠 0、使用AD5933分析复阻抗的时钟频率设置_卓晴的博客-CSDN博客 频率混叠是怎样产生的&#xff0c;有什么解决办法&#xff1f; 答&#xff1a;(1)当采用过大的采样间隔&#xff34;&#xff53;对两个不同频率的正弦波采样时&#xff0c;将会得到一组相同的采样…

第十七届全国大学生智能汽车竞赛东北赛区 开幕式会序

第十七届全国大学生智能汽车竞赛东北赛区 开幕式会序 一、时 间 2022年7月29日&#xff08;星期五&#xff09;8:30 二、会议形式 腾讯会议&#xff1a;714-279-XXX 三、特邀嘉宾 沈阳航空航天大学党委副书记、校长 孙小平清华大学自动化系党委书记 张 佐全国大学生智…

如何备赛?智能车完全模型组怎么比?明天和卓老师一起聊聊吧

明晚七点&#xff0c;在百度飞桨B站直播间&#xff0c;全国大学生智能汽车竞赛组委会秘书长卓晴教授&#xff0c;将与完全模型组的工程师们一起&#xff0c;为同学答疑解惑&#xff0c;更有丰富礼物陪同学们一起过假期&#xff01; 扫码进群&#xff0c;重要信息/资料不错过&am…