BUUCTF·[NCTF2019]babyRSA·wp
BUUCTF在线评测 (buuoj.cn)
附件
from Crypto.Util.number import *
from flag import flagdef nextPrime(n):n += 2 if n & 1 else 1while not isPrime(n):n += 2return np = getPrime(1024)
q = nextPrime(p)
n = p * q
e = 0x10001
d = inverse(e, (p-1) * (q-1))
c = pow(bytes_to_long(flag.encode()), e, n)# d = 19275778946037899718035455438175509175723911466127462154506916564101519923603308900331427601983476886255849200332374081996442976307058597390881168155862238533018621944733299208108185814179466844504468163200369996564265921022888670062554504758512453217434777820468049494313818291727050400752551716550403647148197148884408264686846693842118387217753516963449753809860354047619256787869400297858568139700396567519469825398575103885487624463424429913017729585620877168171603444111464692841379661112075123399343270610272287865200880398193573260848268633461983435015031227070217852728240847398084414687146397303110709214913
# c = 5382723168073828110696168558294206681757991149022777821127563301413483223874527233300721180839298617076705685041174247415826157096583055069337393987892262764211225227035880754417457056723909135525244957935906902665679777101130111392780237502928656225705262431431953003520093932924375902111280077255205118217436744112064069429678632923259898627997145803892753989255615273140300021040654505901442787810653626524305706316663169341797205752938755590056568986738227803487467274114398257187962140796551136220532809687606867385639367743705527511680719955380746377631156468689844150878381460560990755652899449340045313521804
分析
根据代码可以得到e、d、c,根据e、c可以算出n
有 c d e 我们知道ed %([p-1)(q-1)]= 1 则ed-1 = k* (p-1)*(q-1)
取k的范围 ed - 1是2063到2064位 、(p-1)(q-1)是1024+1024位 则k取215~216
import gmpy2
import Crypto.Util.number
import sympy
d = 19275778946037899718035455438175509175723911466127462154506916564101519923603308900331427601983476886255849200332374081996442976307058597390881168155862238533018621944733299208108185814179466844504468163200369996564265921022888670062554504758512453217434777820468049494313818291727050400752551716550403647148197148884408264686846693842118387217753516963449753809860354047619256787869400297858568139700396567519469825398575103885487624463424429913017729585620877168171603444111464692841379661112075123399343270610272287865200880398193573260848268633461983435015031227070217852728240847398084414687146397303110709214913
c = 5382723168073828110696168558294206681757991149022777821127563301413483223874527233300721180839298617076705685041174247415826157096583055069337393987892262764211225227035880754417457056723909135525244957935906902665679777101130111392780237502928656225705262431431953003520093932924375902111280077255205118217436744112064069429678632923259898627997145803892753989255615273140300021040654505901442787810653626524305706316663169341797205752938755590056568986738227803487467274114398257187962140796551136220532809687606867385639367743705527511680719955380746377631156468689844150878381460560990755652899449340045313521804
e = 0x10001
for i in range(1000,3000):if e*d-1 > 2**i and e*d-1<2**(i+1):print(i)break
for k in range(2**15,2**16):if (e*d-1) % k==0:p = sympy.prevprime(gmpy2.iroot((e*d-1)//k,2)[0]) q = gmpy2.next_prime(p)if (e*d-1)//k == (q-1)*(p-1):break
n = q * p
m = pow(c ,d ,n )
print(Crypto.Util.number.long_to_bytes(m))
BUUCTF·[NCTF2019]babyRSA·wp相关推荐
- BUUCTF·[MRCTF2020]babyRSA·WP
BUUCTF在线评测 (buuoj.cn) 附件 import sympy import random from gmpy2 import gcd, invert from Crypto.Util.n ...
- buu [NCTF2019]babyRSA 1
buu [NCTF2019]babyRSA 1 题目描述: 题目分析: 首先明确两个公式: e*d = 1 mod (p-1)(q-1) ed1 = e*d - 1 = k(p-1)(q-1) 想要解 ...
- BUUCTF Crypto [GUET-CTF2019]BabyRSA wp
这题RSA非常简单,给出了p+q和(p+1)*(q+1)的值,通过简单的拼凑就可以得到n和欧拉函数phin的值,直接求得flag出来,脚本如下 // python2 import gmpy2 a =0 ...
- BUUCTF PWN rip1 WP
BUUCTF PWN rip 1 这是一个WP,也是一个自己练习过程的记录. 先把文件放入pwn机中检查一下,发现并没有开启保护,所以应该是一道简单题 我们运行一下试试,它让你输入一段字符然后 ...
- BUUCTF·[AFCTF2018]Vigenère·WP
BUUCTF在线评测 (buuoj.cn) 附件 Yzyj ia zqm Cbatky kf uavin rbgfno ig hnkozku fyyefyjzy sut gha pruyte gu f ...
- BUUCTF [NCTF2019]childRSA(费马小定理)
[NCTF2019]childRSA(费马小定理) 题目 from random import choice from Crypto.Util.number import isPrime, sieve ...
- [NCTF2019]babyRSA
这道题虽然说是babyrsa,并不难,但是还是学了不少东西,理解更深了一步 之前一直不知道rsa中n是1024位还是2048位这个位到底指的是什么,也没有用到过,已知模棱两可,知道今天可算是知道了 f ...
- buu [NCTF2019]babyRSA
题目; from Crypto.Util.number import * from flag import flagdef nextPrime(n):n += 2 if n & 1 else ...
- qsnctf babyrsa wp
下载附件 给了p+q,e,d,c,(p+1)(q+1) 我们可以通过(p+1)(q+1)-p*q-1求出N 得出 N=57781903220726608495841176404144399752917 ...
最新文章
- Git Fetch vs Pull:Git Fetch和Git Pull命令之间有什么区别?
- ARM7与ARM9的区别
- Mysql HA实现MYSQL的高可用(上)
- H.264软件解码器在PXA270平台上的优化
- ARM七种异常源和异常处理流程(四大步三小步)
- ElementUI Button按钮样式
- 【5】天猫精灵开放平台实验—基于天气查询模板创建开发屏显页面技能
- FigDraw 11. SCI 文章绘图之小提琴图 (ViolinPlot)
- 吉林省注册公司流程:第一步 企业名称预先核准流程。
- 切换页面导致计时器停止,JS暂停!
- 什么是SEO网站快速排名?
- crh寄存器_STM32的CRH、CRL、ODR和IDR寄存器的使用总结
- 手机闪存速度排行_有关手机闪存类型的一些知识
- python qrcode 二维码中间贴图彩色
- 基于北斗RDSS短报文的海洋浮标在线水质/气象综合监测系统
- 局域网内抢网速_为什么4G的网速越来越慢?
- 微信小程序(第二十四章)- 数据交互前置
- mysql not exists 用法_mysql 子查询 exists 和 not exists使用方法和实例
- 照相制版技术与图形转移技术
- 『福利』免费领取官方提供的Atlas云托管MongoDB
热门文章
- 【论文阅读记录】基于视觉SLAM建图的无人机路径规划 作者:王海
- 永中office之在线编辑(java版)
- 我的世界java版怎么tp坐标_我的世界tp指令坐标
- Pi主网功能上线,等待起飞
- 创新线上带货运营,佛山环球港助力“88购物狂欢节”
- 让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer
- 网红、科技大佬、作家,跨界喜剧王罗永浩才是打造个人IP的典范
- Matlab:线条动画
- 初学c语言中的一些常见代码
- excel删除无尽空白行_Excel数据联动word整理技巧,双向复制粘贴,快捷转换