wustctf2021 Crypto RSA1_c = pow(bytes_to_long(flag),e,n)-程序员宅基地

技术标签: 密码学CTF  Crypt  

描述

from Crypto.Util.number import bytes_to_long, getPrime
from secret import flag
p, q = getPrime(1024), getPrime(1024)
n = p * q
e = 0x10001
s = pow(1314*p - 520*q, n - p - q, n)
c = pow(bytes_to_long(flag), e, n)
print(f'n = {n}')
print(f's = {s}')
print(f'c = {c}')
# n = 26305215103655644423271873654270896239286789695124090349749665534703077917412304839568833642664450313935099298310980853882272879981733372730292018544572625316902809164514982172181951319743072017697845536018391193871280565807620618786757590917994266113737303548654644579447152708491947981939693209377062932887079053535685222915049638973744785910187846488048054614595896905717548173503097932486976548606688284094985163387830871173351156872303901802063874643159872076045421856161697020709841563253543301088673347562874178275457662923268303751458373213379823091743254295392098852050657389100668196543581156089543387981749
# s = 4323761888398018609852335503896306767680254689118307249919076945474100280053222216117890335097280655812579700210142850972114032619375512508094444700268269861295454361479936323488734938967486887087065985770337167952405916865514342667568344884512919390473013721005783345127779614050256684329541419938215219111638334871769224566807758669615177139619330644265349270609231736366888506999373399354453570974856230273436956657673552797254044789898850371608837651642705304346761776584170067536342839950077554921714223414452726231759701672899981770205900654174771977192152231671555687060576625055995576371428030016472160229195
# c = 18524879875046454765780419291902161505187119049317257440202645362184543856980037891446139747396472606884190295519693050825702398302375035356073354030439092479076493350280491879942676232543272035009619776448668367631674751270025422471697604807309328948811730211796077194562605273068248003067084062604953180981092602825269082443194821795267533259542345280789423885313715011198756408238675212294964169231866750121782891392974982538883759460499654964916672646713561365268497621669918260512318121987464087203488943192447244656120553657904643768811055634526867642121977282747786019413676386087742587120310706285467632914627

今天刚刚学了欧拉定理,运用到这题,结果寄了,还是不会用,最后还是学长救的我,我的涵神!!

利用欧拉定理求1314*p - 520*q

 所以EXP,也是引用学长的wp

from gmpy2 import *
from libnum import *
from sympy import Symbol, solve
n = 26305215103655644423271873654270896239286789695124090349749665534703077917412304839568833642664450313935099298310980853882272879981733372730292018544572625316902809164514982172181951319743072017697845536018391193871280565807620618786757590917994266113737303548654644579447152708491947981939693209377062932887079053535685222915049638973744785910187846488048054614595896905717548173503097932486976548606688284094985163387830871173351156872303901802063874643159872076045421856161697020709841563253543301088673347562874178275457662923268303751458373213379823091743254295392098852050657389100668196543581156089543387981749
s = 4323761888398018609852335503896306767680254689118307249919076945474100280053222216117890335097280655812579700210142850972114032619375512508094444700268269861295454361479936323488734938967486887087065985770337167952405916865514342667568344884512919390473013721005783345127779614050256684329541419938215219111638334871769224566807758669615177139619330644265349270609231736366888506999373399354453570974856230273436956657673552797254044789898850371608837651642705304346761776584170067536342839950077554921714223414452726231759701672899981770205900654174771977192152231671555687060576625055995576371428030016472160229195
c = 18524879875046454765780419291902161505187119049317257440202645362184543856980037891446139747396472606884190295519693050825702398302375035356073354030439092479076493350280491879942676232543272035009619776448668367631674751270025422471697604807309328948811730211796077194562605273068248003067084062604953180981092602825269082443194821795267533259542345280789423885313715011198756408238675212294964169231866750121782891392974982538883759460499654964916672646713561365268497621669918260512318121987464087203488943192447244656120553657904643768811055634526867642121977282747786019413676386087742587120310706285467632914627
s = invert(s, n)
p = Symbol('p')
q = Symbol('q')
p, q = solve([p*q-n, 1314*p-520*q-s], [p, q])[1]
p = int(p)
q = int(q)
e = 0x10001
d = invert(e, (p-1)*(q-1))
print(n2s(int(pow(c, d, n))))

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a257131460266666/article/details/124518297

智能推荐

wxWidgets:常用表达式_wxwidget 正则表达式 非数字字符-程序员宅基地

文章浏览阅读282次。wxWidgets:常用表达式wxWidgets:常用表达式不同风味的正则表达式转义Escapes元语法匹配限制和兼容性基本正则表达式正则表达式字符名称wxWidgets:常用表达式一个正则表达式描述字符的字符串。这是一种匹配某些字符串但不匹配其他字符串的模式。不同风味的正则表达式POSIX 定义的正则表达式 (RE) 有两种形式:扩展正则表达式(ERE) 和基本正则表达式(BRE)。ERE 大致是传统egrep 的那些,而 BRE 大致是传统ed 的那些。这个实现增加了第三种风格:高级正则表达式_wxwidget 正则表达式 非数字字符

Java中普通for循环和增强for循环的对比_for循环10万数据需要时间-程序员宅基地

文章浏览阅读3.4k次,点赞5次,收藏11次。Java中普通for循环和增强for循环的对比_for循环10万数据需要时间

学习PCB设计前的知识扫盲_pcb端子设计基础知识-程序员宅基地

文章浏览阅读2.7k次,点赞13次,收藏97次。0.工厂制作PCB线路板流程1.PCB的结构铜层阻焊丝印本质(PCB画电路板到底在画什么)基础工艺指标2.PCB图中的元素元素布局布线叠层设计3.PCB的设计依据原理图原理图元件库4.PCB的设计流程——总结_pcb端子设计基础知识

Python读取Excel内容;将读取的数据转换为list类型便于切片处理;列表的操作方法;pandas处理DataFrame类型数据;pandas操作;Python几种取整的方法_pandas excel list-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏19次。Python读取Excel内容;将读取的数据转换为list类型便于切片处理;列表的操作方法;pandas处理DataFrame类型数据_pandas excel list

nginx日志与监控,日志分析_nginx的日志分析-程序员宅基地

文章浏览阅读4.6k次。在分析服务器运行情况和业务数据时,nginx日志是非常可靠的数据来源,而掌握常用的nginx日志分析命令的应用技巧则有着事半功倍的作用,可以快速进行定位和统计。下面是自己在分析nginx日志时常用命令的一些总结。1.利用grep ,wc命令统计某个请求或字符串出现的次数比如我要统计GET /task/showContent接口在某天的调用次数,则可以使用如下命令: cat _nginx的日志分析

ECharts--中国地图(无敌详细)_echarts中国地图-程序员宅基地

文章浏览阅读5.4w次,点赞64次,收藏262次。使用Echarts绘制中国地图,其中地图点信息由JSON文件编写,前端html直接从JSON文件中读取地区数据,渲染到前端即可。详细介绍用到的各个功能!代码直接复制运行即可!_echarts中国地图

随便推点

三级嵌入式准备(二)_八个gpio引脚最多构成几个按键-程序员宅基地

文章浏览阅读435次,点赞3次,收藏7次。转载来源为https://blog.csdn.net/ReCclay/article/details/79439686 1、嵌入式系统的CPU主要使用的有DSP、ARM以及FPGA。2、DSP适用于数字信号处理的微处理器支持单指令多数据(DIMD)并行处理的指令显著提高音频、视频等数字信号的数据处理效率3、片上系统SOC已成为嵌入式处理器芯片的主流发展趋势它是..._八个gpio引脚最多构成几个按键

OpenStack的容器服务体验-程序员宅基地

文章浏览阅读70次。magnum 是用于 OpenStack 的容器服务。它有以下特点:抽象的容器、节点、服务等集成了用于容器技术的Kubernetes和Docker集成了多租户安全的 Keystone继承了k8s多租户网络安全的 Neutron环境准备在VMware Workstations建台虚拟机,Ubuntu 14.04 LTS,..._openstack 安装好没有容器服务

HDU - 2209 翻纸牌游戏(贪心)_hdu 2209-程序员宅基地

文章浏览阅读420次。 HDU - 2209 翻纸牌游戏 当前的这张牌是否翻转取决于它的前一张牌是否朝上,如果朝上,不翻转,朝下,则翻转,这是贪心的思想,但是,对于第一张牌来说,它的前面没有牌了,所以可以翻转,也可以不翻转,分两种情况来判断,参考的别人的代码 #include<stdio.h>#include<algorithm>#include<string.h>u..._hdu 2209

mysql异常代码c0000005_win7系统因0xc0000005错误导致应用程序无法正常启动的解决方法...-程序员宅基地

文章浏览阅读2k次。很多小伙伴都遇到过win7系统因0xc0000005错误导致应用程序无法正常启动的困惑吧,一些朋友看过网上零散的win7系统因0xc0000005错误导致应用程序无法正常启动的处理方法,并没有完完全全明白win7系统因0xc0000005错误导致应用程序无法正常启动是如何解决的,今天小编准备了简单的解决办法,只需要按照1、右键点击要运行的软件或游戏,在右键菜单中选择“兼容性疑难解答”; 2、让系..._mysql 0xc0000005

UNIX环境高级编程_标准io创建空头文件-程序员宅基地

文章浏览阅读492次。unix环境高级编程笔记_标准io创建空头文件

apt-get update 报错:*** Error in `appstreamcli‘: double free or corruption (fasttop)_sudo apt-get update error in appstreamcli-程序员宅基地

文章浏览阅读1.3k次。环境:ubuntu 16.04在执行apt-get update时直接报错了,错误信息如下:从返回的错误信息可以看出,问题出在“appstreamcli”上。通过以下命令可以解决:sudo apt install appstream/xenial-backportssudo appstreamcli refresh –force亲测可行。..._sudo apt-get update error in appstreamcli