当前位置: 首页 > ops >正文

第二届parloo杯的RSA_Quartic_Quandary

(害,还是太菜了,上去秒了一道题之后就动不了了,今晚做个记录,一点点的往回拾起吧) 

# from Crypto.Util.number import getPrime, bytes_to_long
# import math
#
# FLAG = b'**************'
#
#
# def generate_parameters(bit_length=512):
#     p = getPrime(bit_length)
#     q = getPrime(bit_length)
#     n = p * q
#     e = 65537
#     phi = (p - 1) * (q - 1)
#     d = pow(e, -1, phi)
#     s = p ** 4 + q ** 4
#     return n, e, d, s, p, q
#
#
# def main():
#     n, e, d, s, p, q = generate_parameters()
#     c = pow(bytes_to_long(FLAG), e, n)
#
#     with open('output.txt', 'w') as f:
#         f.write(f"n = {n}\n")
#         f.write(f"e = {e}\n")
#         f.write(f"c = {c}\n")
#         f.write(f"s = {s}\n")
#
#     print("[+] Parameters saved to output.txt")
#
#
# if __name__ == "__main__":
#     main()
#     n = 125997816345753096048865891139073286898143461169514858050232837657906289840897974068391106608902082960171083817785532702158298589600947834699494234633846206712414663927142998976208173208829799860130354978308649020815886262453865196867390105038666506017720712272359417586671917060323891124382072599746305448903
#     e = 65537
#     c = 16076213508704830809521504161524867240789661063230251272973700316524961511842110066547743812160813341691286895800830395413052502516451815705610447484880112548934311914559776633140762863945819054432492392315491109745915225117227073045171062365772401296382778452901831550773993089344837645958797206220200272941
#     s = 35935569267272146368441512592153486419244649035623643902985220815940198358146024590300394059909370115858091217597774010493938674472746828352595432824315405933241792789402041405932624651226442192749572918686958461029988244396875361295785103356745756304497466567342796329331150560777052588294638069488836419744297241409127729615544668547101580333420563318486256358906310909703237944327684178950282413703357020770127158209107658407007489563388980582632159120621869165333921661377997970334407786581024278698231418756106787058054355713472306409772260619117725561889350862414726861327985706773512963177174611689685575805282

  zip里就这些东西,然后我把他们都放到.py里边了,要原来的文件的可以上网找找

  这道题我也没想到这么简单,我就按我的做题思路:先去factordb里分解,如果成了就结束了这道题;如果没有成功,那么再去看题想办法

 然后这道题就让我分解了!!!然后就根据我的思路来,直接解就完了。

(最后解完之后,看了他还给了s这个条件,其实没有用哈)

from Cryptodome.Util.number import long_to_bytes
from gmpy2 import gmpy2n = 125997816345753096048865891139073286898143461169514858050232837657906289840897974068391106608902082960171083817785532702158298589600947834699494234633846206712414663927142998976208173208829799860130354978308649020815886262453865196867390105038666506017720712272359417586671917060323891124382072599746305448903
e = 65537
c = 16076213508704830809521504161524867240789661063230251272973700316524961511842110066547743812160813341691286895800830395413052502516451815705610447484880112548934311914559776633140762863945819054432492392315491109745915225117227073045171062365772401296382778452901831550773993089344837645958797206220200272941
s = 35935569267272146368441512592153486419244649035623643902985220815940198358146024590300394059909370115858091217597774010493938674472746828352595432824315405933241792789402041405932624651226442192749572918686958461029988244396875361295785103356745756304497466567342796329331150560777052588294638069488836419744297241409127729615544668547101580333420563318486256358906310909703237944327684178950282413703357020770127158209107658407007489563388980582632159120621869165333921661377997970334407786581024278698231418756106787058054355713472306409772260619117725561889350862414726861327985706773512963177174611689685575805282
p=9886283652121924227364367891763650443585646023924602862402832944457976031272516261452668401020850156092802805016302198750132659632249261237412357024908843
q=12744709820126371501672538820972733986675228838744099116170499394098621931788837908787562175058998307224041741444921422195431949471972242197577242845982421
phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi)
m = gmpy2.powmod(c,d,n)
flag1 = long_to_bytes(m)#正常RSA解法
print(flag)
palu{This_is_a_fake_flag_change_it_for_real_use}
http://www.xdnf.cn/news/7272.html

相关文章:

  • JAVA Web 期末速成
  • 题目练习之综合运用
  • el-tree结合el-tree-transfer实现穿梭框里展示树形数据
  • 电子电路:什么是静态工作点Q点?
  • 零基础设计模式——大纲汇总
  • 【Dify 前端源码解读系列】聊天组件功能分析文档
  • EtherCAT通讯框架
  • Node-Red通过Profinet转ModbusTCP采集西门子PLC数据配置案例
  • 开源表单设计器FcDesigner配置多语言教程
  • Go内存管理
  • 项目中把webpack 打包改为vite 打包
  • [CSS3]属性增强2
  • iOS热更新技术要点与风险分析
  • k8s节点维护的细节
  • SEO长尾词与关键词优化策略
  • Uniapp中动态控制scroll-view滚动的方式
  • Spring IOCDI————(1)
  • AG-UI 协议是什么?MCP、A2A 后,AI 领域又新增 AG-UI 协议
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Progress Steps (步骤条)
  • Windows环境安装LibreOffice实现word转pdf
  • Python----目标检测(PASCAL VOC数据集)
  • 艾默生流量计与Profibus DP主站转Modbus RTU/TCP网关通讯案例
  • Linux利用多线程和线程同步实现一个简单的聊天服务器
  • 数据库中的属性列数和元组
  • Java POJO接收前端null值设置
  • java+selenium专题->启动浏览器下篇
  • 1.portainer
  • Unity editor文件数UI(支持勾选框)
  • 从 Word2Vec 到 BERT:AI 不止是词向量,更是语言理解
  • 带你搞懂@Valid和@Validated的区别