buu [NCTF2019]childRSA

查看题目
在这里插入图片描述
恩总结不会,愉快的找wp去
这一道RSA打开加密算法乍一看感觉没有问题,N特别大,除了p和q的生成算法啥都没给,
查了一下 Crypto.Util.number 中的sieve_base,发现这是前10000个素数的生成列表,我们再去查一下第10000个素数的值为104729
不过就算我们知道了这个值的大小似乎还是得不到结果,从这个p,q的生成算法中,我们可以知道其是由小于104729的素数随机组合生成的.
为小于p的任何数的倍数,即我们可以将这10000个素数乘起来就为p-1的倍数,于是尝试用费马小定理,即是a^(t*(p-1))-1为p的倍数,t*(p-1)通过上述算法得出即可

// python2
from Crypto.Util.number import sieve_base as primes
import gmpy2
n = 328497181973375818230022437170576592185025190043869966608851005928722019488341555431259243956149289627505796673462794567106337745014072924730063125377238942217176380590587966796869535644719940092853847984504937569004592250403604308472409756784501715510487838186424675067114240278487783674273386472824286673932411571516754106610150446332820640568009132820163634152021719260892934310123792615850785663010601736893283636966998111235920902045780982767048774086885256187328488176238798996286293003857903443660466418255077677092766226928353932198112832443038998504837486517223369961647245533640970664939531271530669705946384919501996057
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值