CTF Crypto---RSA N不互素
N不互素
两个n里使用有相同的素数p或q
在CTF中,同样一个e(一般为65537)和m, 有两个或多个n和c时,那么n之间可能是共享素数
题目
n1 = 103835296409081751860770535514746586815395898427260334325680313648369132661057840680823295512236948953370895568419721331170834557812541468309298819497267746892814583806423027167382825479157951365823085639078738847647634406841331307035593810712914545347201619004253602692127370265833092082543067153606828049061
n2 = 115383198584677147487556014336448310721853841168758012445634182814180314480501828927160071015197089456042472185850893847370481817325868824076245290735749717384769661698895000176441497242371873981353689607711146852891551491168528799814311992471449640014501858763495472267168224015665906627382490565507927272073
e = 65537
m = bytes_to_long(flag)
c = pow(m, e, n1)
c = pow(c, e, n2)print("c = %d" % c)output
c = 60406168302768860804211220055708551816238816061772464557956985699400782163597251861675967909246187833328847989530950308053492202064477410641014045601986036822451416365957817685047102703301347664879870026582087365822433436251615243854347490600004857861059245403674349457345319269266645006969222744554974358264
解题脚本
此题相较于标准的N不互素题目略有改动,只给了一个密文c。
所以我们需要在给定的c2基础上解出c1,再根据解出的c1以及n不互素的特质求出的p,q1解出phi_n1和d,进而求出m
from Crypto.Util.number import *
import gmpy2
n1 = 103835296409081751860770535514746586815395898427260334325680313648369132661057840680823295512236948953370895568419721331170834557812541468309298819497267746892814583806423027167382825479157951365823085639078738847647634406841331307035593810712914545347201619004253602692127370265833092082543067153606828049061
n2 = 115383198584677147487556014336448310721853841168758012445634182814180314480501828927160071015197089456042472185850893847370481817325868824076245290735749717384769661698895000176441497242371873981353689607711146852891551491168528799814311992471449640014501858763495472267168224015665906627382490565507927272073
e = 65537
c2 = 60406168302768860804211220055708551816238816061772464557956985699400782163597251861675967909246187833328847989530950308053492202064477410641014045601986036822451416365957817685047102703301347664879870026582087365822433436251615243854347490600004857861059245403674349457345319269266645006969222744554974358264p = gmpy2.gcd(n1,n2)
q1 = n1//p
q2 = n2//p
phi_n1 = (p-1)*(q1-1)
phi_n2 = (p-1)*(q2-1)
d1 = gmpy2.invert(e,phi_n1)
d2 = gmpy2.invert(e,phi_n2)
c1 = pow(c2,d2,n2)
m = pow(c1,d1,n1)
flag = long_to_bytes(m)
print(flag)
flag:
SangFor{qSccmm1WrgvIg2Uq_cZhmqNfEGTz2GV8}
【别质疑,先相信。】
CTF Crypto---RSA N不互素相关推荐
- CTF ——crypto ——RSA原理及各种题型总结
RSA原理及各种题型总结 Table of Contents 一,原理: 信息传递的过程: rsa加密的过程: 二,CTF 中的 常见的十种类型: 1,已知 p ,q,e 求 d? 2,已知 n( ...
- CTF Crypto RSA合集(新生赛难度)
食用简介 下面是本人新生赛时遇到的一些RSA密码题,题目名后大概写有类型便于查找 题目较多可以选择性食用 1.buuctf RSA 题目:在一次RSA密钥对生成中,假设p=473398607161,q ...
- CTF Crypto中涉及的AES题目
CTF Crypto中涉及的AES题目 单独涉及AES_ECB模式 单独涉及AES_CBC模式 ProblemProblemProblem AnalysisAnalysisAnalysis Solvi ...
- CTF CRYPTO从零开始的RSA2
题源:BUUCTF RSA2 题目 e = 65537 n = 24825400785152624117772152669890180298583276617622160961225887737162 ...
- 基于Python实现的CTF Crypto加密解密工具
纯小白,记录一下自己小学期内做的项目.基于Python实现一个能够对凯撒密码.维吉尼亚密码.栅栏密码.摩斯密码.Base64编码.Ascii编码.AES.DES.RSA.RC4的加密解密以及维吉尼亚密 ...
- x509: certificate signed by unknown authority (possibly because of “crypto/rsa: verification error“
执行下面命令初始化k8s集群时 kubeadm init --pod-network-cidr 10.21.0.0/16 \--image-repository registry.cn-hangzho ...
- BugKu CTF(Crypto篇)---where is flag 5
BugKu CTF(Crypto篇)-where is flag 5 文章目录 BugKu CTF(Crypto篇)---where is flag 5 题目描述 首先一看就是base64 解码内容好 ...
- CTF 中RSA的常见解析
0x01 前言 这里就不讨论数论的基础了,进行RSA的题目解答,至少要懂得基本的数论知识的,如果不了解数论的基本知识的话,网上相关内容还是挺多的. RSA基于一个简单的数论事实,两个大素数相乘十分容易 ...
- 密码学--CTF Crypto 总结
密码学简介 密码学(Cryptography)一般可分为古典密码学和现代密码学. 其中,古典密码学,作为一种实用性艺术存在,其编码和破译通常依赖于设计者和敌手的创造力与技巧,并没有对密码学原件进行清晰 ...
- [CTF密码学]RSA相关题目解题方法与python脚本总结(附例题)
目录 RSA算法概述 思路一.分解n得到p,q 例题:BUUCTF:[WUSTCTF2020]babyrsa 思路二.低加密指数攻击(e很小) 例题:BUUCTF DangrousRSA 思路三.低指 ...
最新文章
- web前端(13)—— 了解JavaScript,JavaScript的引入方式
- redhat-problem to be research
- 浅析自助式商城网站的制作步骤——简单易上手
- 两种富文本编辑器-ckeditor和ueditor
- AMD宣布裁员7% 约710员工将失去工作
- 百度元宇宙产品“希壤”将于12月27日发布
- ORA-00904: NAME: 标识符无效
- Android FloatingActionButton(FAB) 悬浮按钮
- 【目标检测】mAP评价标准
- wordpress知更鸟begin主题添加菜单字体图标
- 关于商业计划书(Business Project,以下简称BP)写作那些事儿(一)
- python电脑版微信-微信PC版的API接口 | 可通过Python调用微信功能
- 白帽黑客必备的网络安全基础问答
- 每日10行代码82:网上购物活动满减凑单计算器
- iOS 如何判断静音开关是否打开
- 一个包含30行代码的Python项目:如何在您最喜欢的Twitcher流式传输时设置SMS通知...
- 电力负荷预测三篇综述总结
- R语言读取文件报错之二:Error in read.table(“xxxx.txt“, header = TRUE) : 列的数目比列的名字要多
- 强化学习之迷宫Q-Learning实践笔记——入门篇
- 世界上最神奇的数字是: 142857