ctfshow crypto funnyrsa3 RSA之dp泄露
给出了n,c,e,dp,我们可以借助这些来求解pq
网上看了不少wp,对于有关dp的推导总感觉写的不是非常透彻,自己动手写一下,有助于理解。
一开始我以为dp的意思是d*p,那样n=p*q,求n/d*p就等于p*q/d*p=q/d,用fractions函数里的Fraction理论上就能把q和d求出来,但是做不出来,网上查了wp发现原来dp的意思是
dp=d%(p-1)
好家伙,根据这个式子可以往下推导(纯纯的数学运算了):
变换一下得到
在rsa中定义
所以
变换得到
我们令X=[k2*(q-1)-k1]+1,所以该式即为
根据 dp=d%(p-1)可知,dp是余数,所以dp<p-1,相应的e>X
所以我们爆破X在(1,e+1)之间,当X满足(dp*e-1)%X==0时,p=(dp*e-1)//X+1
因为符合条件的x有很多,求出来的p不一定符合条件,所以需要进一步验证n%p=0
上代码:
import gmpy2
from Crypto.Util.number import long_to_bytes
e = 65537
n = 13851998696110232034312408768370264747862778787235362033287301947690834384177869107768578977872169953363148442670412868565346964490724532894099772144625540138618913694240688555684873934424471837897053658485573395777349902581306875149677867098014969597240339327588421766510008083189109825385296069501377605893298996953970043168244444585264894721914216744153344106498382558756181912535774309211692338879110643793628550244212618635476290699881188640645260075209594318725693972840846967120418641315829098807385382509029722923894508557890331485536938749583463709142484622852210528766911899504093351926912519458381934550361
dp = 100611735902103791101540576986246738909129436434351921338402204616138072968334504710528544150282236463859239501881283845616704984276951309172293190252510177093383836388627040387414351112878231476909883325883401542820439430154583554163420769232994455628864269732485342860663552714235811175102557578574454173473
c = 6181444980714386809771037400474840421684417066099228619603249443862056564342775884427843519992558503521271217237572084931179577274213056759651748072521423406391343404390036640425926587772914253834826777952428924120724879097154106281898045222573790203042535146780386650453819006195025203611969467741808115336980555931965932953399428393416196507391201647015490298928857521725626891994892890499900822051002774649242597456942480104711177604984775375394980504583557491508969320498603227402590571065045541654263605281038512927133012338467311855856106905424708532806690350246294477230699496179884682385040569548652234893413for x in range(1,e+1):if (dp*e-1)%x==0:p=(dp*e-1)//x+1if n%p==0:q=n//pphi=(p-1)*(q-1)d=gmpy2.invert(e,phi)m=pow(c,d,n)print(long_to_bytes(m))
解的flag{dp_i5_1eak}
ctfshow crypto funnyrsa3 RSA之dp泄露相关推荐
- RSA的dp泄露 —— 【WUST-CTF2020】leak
文章目录 题目 RSA的dp泄露 gmpy2安装 题目 附件给了一个名为flag的文件,不知道是什么类型文件 放进kali,file flag查看文件类型 发现是文本,于是cat 命令查看 RSA的d ...
- ctfshow crypto部分wp
目录 密码学签到 crypto2 crypto3 crypto4 crypto5 crypto6 crypto7 crypto8 crypto9 crypto10 crypto11 crypto0 ...
- N等于三个质数求解题目--dp泄露研究--题目(m的高位攻击刷题)--大小循环统计出现次数题--Dvwa文件上传(2级)
目录 N等于三个质数求解题目 dp泄露研究 题目(m的高位攻击刷题) 大小循环统计出现次数题 Dvwa文件上传(2级) N等于三个质数求解题目 分析题目发现有三个质数,三个质数之间并有什么关系.n等于 ...
- 关于Crypto.PublicKey.RSA,在generate后无法被赋值问题
前言 最近做题的时候有遇到一个问题,就是去利用求解出来的rsa的私钥去生成pem格式的私钥文件.找到网上用的都是先令RSA去generate,然后分别给RSA的n,e,d,p,q参数赋值,再导出私钥. ...
- 2022年 HSC-1th中CRYPTO的RSA
2022年 HSC-1th中CRYPTO的RSA 照例下载附件,是 py 文件: import gmpy2 import sympy from Crypto.Util.number import *f ...
- PwnTheBox(Crypto篇)---Rsa(爆破e)
PwnTheBox(Crypto篇)-Rsa(爆破e) 文章目录 PwnTheBox(Crypto篇)---Rsa(爆破e) 题目描述 rsa基础 直接分解 n 爆破 e 怎么从A绕出? x,y p, ...
- 使用Crypto实现RSA算法的数字签名和检验
总的来说,需要用到的对象有三个: Crypto.PublicKey.RSA:用来生成RSA算法的密钥对象 Crypto.Hash.SHA384:用来获取信息的摘要对象 Crypto.Signature ...
- 【Crypto】RSA
目录 1.已知(p,q,e),求d 2.已知(p,q,e,c),求m 3.已知(p,q,dp,dq,c),求m 4.已知(e,dp,n,c),求m 5.已知(n,e1,e2,c1,c2),求m 6.已 ...
- python使用密钥加密的表述_python 利用Crypto进行RSA解密加密文件
背景:工作需要,部分数据进行了加密传输,对方使用了RSA对密码进行了加密,需要获取到解密的数据. 目标:在已知公钥,私钥的情况下,使用python对其进行解密. RSA加密 一.遇到的问题 收到加密的 ...
最新文章
- 【硬件基础】有源蜂鸣器与无源蜂鸣器
- ArrayList与LinkedList区别
- DeepI2P:基于深度分类的图像对点云配准
- 阿里云双十一1折,1C2G 1年仅99 !!一起来拼团!
- python 中sys.stdout.write 和 print sys.stdout的区别(转)
- strncmp函数——比较特定长度的字符串
- 企业级java springcloud b2bc商城系统开源源码二次开发-hystrix 请求缓存
- ML之回归预测:利用两种机器学习算法(LiR,XGBoost(调优+重要性可视化+特征选择模型))对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值
- Java中定义实例变量时指定初始化值顺序
- 业务id转密文短链的一种实现思路
- linux 复制 链接文件,Linux硬链接、软连接和复制的区别
- 卸载anaconda
- nodejs pm2的简单应用
- 二分法和牛顿迭代实现开根号函数:OC的实现
- 工业设备数据采集系统-采集精灵
- vim字符串替换命令
- 计算机科学与技术导论课论文题目,优秀计算机专业导论论文题目 计算机专业导论论文题目哪个好...
- 全行业产业链图示(摘自企查查)
- 时间管理类APP分析:拇指时间
- UC手机浏览器(U3内核)相关文档整理
热门文章
- 一切钻空子的行为最后都会惨淡收场
- GIS——地图比例尺
- VS Code配置C/C++环境
- 【Matlab图像去噪】小波滤波(硬阙值+软阙值)+中值滤波图像去噪【含源码 462期】
- 三星S7 Edge怎么打开usb调试呢
- 怎么用python画世界地图_用Python画世界地图
- 去掉CAJViewer广告的方法
- 从一个class文件深入理解Java字节码结构
- Latex修改局部字体大小
- lol云顶之奕助手_LOL云顶之弈助手app下载-LOL云顶之弈助手官网版下载v1.1.2-FC游戏网...