攻防世界crypto【江苏工匠杯】rsarsa

2 篇文章 0 订阅

与 鹤城杯2021#3 babyrsa 很像

需要正确计算3次整数m的值,以下为sage代码,请在sage shell或者sage notebook中运行。

有时候会出现无法求解p的情况,建议多试几次或者重启远端的靶机环境。

p1= 962995651028784056228967211189298603501600247761455347639544685569393219476504898551748733
ct= 53692868731001626333440793541878974197039413877018388507320606323515264945427751
n= 13584890220251264218145775170856639490650517128337616575834960469001489208134004876538465671824104012713357630552766538943902688318740738013506759557154024608216331001923510277085255016894517573218226070793817136622540614343717167314933886251019143584715403066869488344399918685900745858044531169029610061736593670069813018722602125858468578670551068901858471742223308582893605096903512791990246746639102996749737502078430290734498984203569950519004546666774922244514553604367334742539881958665924058301543953380087523937366841425277988667401595750158847916087310792164881378525163440959041067401255177462658854441691
c= 3594292739649962962399237162835969086717092012634077792124941757513923539040859603396238208231740284046155922589708530902151863477538208711513769173565881219100257782683392861990412731220124359397529374519375481227241284649475552799861274599374021246649243557193472317297773304929852765637737898203421168909638647235781036853684379367083578777948146478186458404592367724189342507409293493070188455919471183759323808539786090537512771480003660364283098077787431095007304551965180332432089099594792658608843614964130676738688316332519202007665842218549463300088010745100574994675049478716900346984060092628067775596441
mod=pow(2,265)
# p0=n*invert(q0,mod)%mod
pbar=(p1<<724)+ct
PR.<x> = PolynomialRing(Zmod(n))
for i in range(32):
    f=pbar+x*mod*32
    f=f.monic()
    pp=f.small_roots(X=2^454,beta=0.4)
    if(pp):
        break
    pbar+=mod
assert pp
p=pbar+pp[0]*32*mod
print(p,type(p))
print(len(str(p)))
print(n//Integer(p))
q=n//Integer(p)
e=65537
phi=(p-1)*(q-1)
# d = gmpy2.invert(e, (p - 1) *(q - 1))
# m = powmod(c, d, n)
d = inverse_mod(e, phi)
m = pow(c, d, n)
print(m)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值