buu Crypto学习记录(32) [BJDCTF 2nd]rsa1

题目链接:[BJDCTF 2nd]rsa1

在这里插入图片描述

先得到p和q

import z3
e = 9694057
a = 221377440242298719950608446309409320981489337628158261184768927773937200895914051844937837116910821071926070818733832212830481195803671240652905409062651904286896425051912898609594888803228282027904730424675294764089369264305231756666089371388657783917427713711043633396988739065186370415055847196357178453658
b = 2288395242404508004160605354407303307639322383848638016637804104669828295112694746200605372098555639995167249415599610396317691240513083746349049628650140
c = 66805697072517715654457148785067220174586984490856439514277974772710001947519278510800396890681741549934589320907955040309094381824019497963938649362303091214450164296697211842660706678522670252296503517617892443590775238703910733318855469986671501281769947510608019145390807035628508526614193256063583983961

p = z3.Int('p')
q = z3.Int('q')
z3.solve(p*p+q*q == a,p-q==b)

再得到flag

import gmpy2
e = 9694057
c = 66805697072517715654457148785067220174586984490856439514277974772710001947519278510800396890681741549934589320907955040309094381824019497963938649362303091214450164296697211842660706678522670252296503517617892443590775238703910733318855469986671501281769947510608019145390807035628508526614193256063583983961
q = 9314269375675656652917215211734394205647175467287482229090450294575318042491531532394709966892290237028953762347702239387523099972446145960653584136672757
p = 11602664618080164657077820566141697513286497851136120245728254399245146337604226278595315338990845877024121011763301849783840791212959229707002633765322897
n = p * q
phi_n = (p-1) * (q-1)
d = gmpy2.invert(e, phi_n)
m = pow(c,d,n)
flag = bytes.fromhex(hex(m)[2:])
print(flag)

flag:flag{7f2b6f6a-b267-45b6-91a3-384062c0970a}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值