[LitCTF 2023]yafu (中级) (素数分解)

题目:

from Crypto.Util.number import *
from secret import flagm = bytes_to_long(flag)
n  = 1
for i in range(15):n *=getPrime(32)
e = 65537
c = pow(m,e,n)
print(f'n = {n}')
print(f'c = {c}')n = 15241208217768849887180010139590210767831431018204645415681695749294131435566140166245881287131522331092026252879324931622292179726764214435307
c = 12608550100856399369399391849907846147170257754920996952259023159548789970041433744454761458030776176806265496305629236559551086998780836655717

题目叫yafu,我们知道yafu是用来分解大素数的,故我们将n分解。

法一:我们可以采用在线网站分解factordb.com

分解之后我们直接将挨个输如到EXP中,然后计算phi:(p1-1)*(p2-1)*....*(pn-1).最后正常解出即可。

法二:我们使用python脚本分解

f_list=libnum.factorize(n)

输出结果如下

冒号前的数是分解出来的素数,第二个数是该数出现的次数。

然后我们利用欧拉函数计算phi:若n = p^k,其中 p 是质数,k 是正整数,那么 φ(n) = p^(k-1) * (p-1)。当出现次数为1时,即k=1,p^(k-1)=1.与一般式同

EXP:

from Cryptodome.Util.number import *
import libnum
from gmpy2 import gmpy2e = 65537
n = 15241208217768849887180010139590210767831431018204645415681695749294131435566140166245881287131522331092026252879324931622292179726764214435307
c = 12608550100856399369399391849907846147170257754920996952259023159548789970041433744454761458030776176806265496305629236559551086998780836655717
f_list=libnum.factorize(n)
print(f_list)
phi=1
for f in f_list:phi*=(f-1)*f**(f_list[f]-1)
d=gmpy2.invert(e,phi)
print(long_to_bytes(pow(c,d,n)))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/19422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D模型展示适合哪些类型的产品?

3D模型展示特别适合那些需要全面展示产品细节和特性的商品,产品3D交互展示具有直观性、动态性、交互性等显著优势,可以通过51建模网一站式完成商品3D建模、3D展示、3D定制、AR试穿等功能,以下是一些适合使用3D模型展示的产品类型:…

Compose第三弹 列表

目标: 1.根据列表数据,生成列表 一、列表控件 使用 Compose 的 LazyColumn 和 LazyRow。这些可组合项只会呈现屏幕上显示的元素,因此,对于较长的列表,使用它们会非常高效。 LazyListScope.items会延迟创建列表视图&…

npm镜像源管理、nvm安装多版本node异常处理

查看当前使用的镜像源 npm config get registry --locationglobal 设置使用官方源 npm config set registry https://registry.npmjs.org/ --locationglobal 设置淘宝镜像源 npm config set registry https://registry.npm.taobao.org/ --locationglobal 需要更改淘宝镜像源地址…

Java培训后找不到工作,现在去培训嵌入式可行吗?

最近java 工作还是比较好找,不知道你是对薪资要求太高,还是因为其他原因,如果你真的面试了很多都还找不到工作,那么一定要知道找不到工作的原因是啥,一定不是因为java 太卷,你说那个行业,那个职…

多用户协作与实时渲染:3D开发工具HOOPS助力汽车行业CAD可视化

在当今汽车行业,计算机辅助设计(CAD)可视化是产品设计和开发过程中不可或缺的一环。随着汽车设计复杂性的增加,CAD可视化不仅仅是一个设计工具,更是一个沟通和协作的平台。然而,尽管技术不断进步&#xff0…

Vue3实战笔记(51)—Vue 3封装带均线的k线图

文章目录 前言带均线的k线图总结 前言 继续封装一个封装带均线的k线图 带均线的k线图 EChartsCandlestickSh.vue&#xff1a; <template><div ref"chartContainer" style"width: 100%; height: 500px"></div></template><scr…

西湖大学提出AIGC检测框架,精准识别AI撰写的文稿

近年来人工智能技术突飞猛进&#xff0c;尤其是大语言模型的出现&#xff0c;让AI具备了创作文章、小说、剧本等内容的能力。 AI代写&#xff0c;已经逃不过老师、编辑、审稿人的火眼金睛了。但让AI仅改写部分片段&#xff0c;就安全了么&#xff1f; 针对检测AI改写的片段&a…

CentOS7 升级 openssh

一、准备环境 1、准备一台CentOS7系统的虚拟机 2、 配置好网络和YUM源 3、安装版本确认 openssh升级到9.7 zlib 使用 1.3.1 openssl 使用 1.1.1.w 二、升级openssh 1、安装编译环境基础 yum -y install build-essential perl gcc gcc-c make pam-devel 2、编译安装zl…

嵌入式 - 高电平脉冲触发

高脉冲触发器是一种数字信号&#xff0c;用于在信号从低电平状态&#xff08;通常为 0 伏或接地&#xff09;变为高电平状态&#xff08;通常为正电压&#xff0c;如 5V 或 3.3V&#xff0c;具体取决于系统&#xff09;时启动动作或事件。这种从低到高的转变也称为上升沿&#…

新版IDEA没有办法选择Java8版本解决方法

2023年11月27日后&#xff0c;spring.io 默认不再支持创建jdk1.8的项目 解决方法就是把 Spring的Server URL 改为阿里的。 阿里的Server URL https://start.aliyun.com/ 默认的Server URL https://start.spring.io 阿里的Server URL https://start.aliyun.com/

Linux Kernel入门到精通系列讲解(RV-U-boot 篇) 4.1 RISC-V快速移植启动一个U-boot

1. 概述 OpenSBI已经被我们成功突破了,然后就来到了BL3 uboot阶段了,没学会OpenSBI的可以先跳回去学,因为它们是互相依赖的关系。我们用的是最新的2024-4版本,需要的可以到u-boot官网自行下载,也可以使用我们的git仓库中的源码。 U-boot 下载地址 2. U-boot简单描述 在…

Linux自动重启系统脚本测试工具

前言 脚本允许用户指定重启的次数和重启间隔时间&#xff0c;并自动生成相应的定时任务。通过使用这个脚本&#xff0c;系统管理员可以轻松地设置重启测试。每次重启操作都会被记录下来&#xff0c;以便用户随时了解测试情况。 一、脚本 #!/bin/bashif [ "$1" &qu…

OLED写入指令和数据

1.OLED写命令 写命令/数据的代码 / * 1. start() 2. 写入 b0111 1000 0x78 3. ACK 4. cotrol byte: (0)(0)000000 写入命令 (0)(1)000000写入数据 5. ACK 6. 写入指令/数据 7. ACK 8. STOP */ void Oled_Write_Cmd(char dataCmd)5.1.4 OLED的寻址模式 如何显示一个点&#x…

YOLOv5改进 | 注意力机制 | 添加双重注意力机制 DoubleAttention【附代码/涨点能手】

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 在图像识别中&#xff0c;学习捕捉长距离关系是基础。现有的CNN模型通常通过增加深度来建立这种关系&#xff0c;但这种形式效率极低。因此&…

电脑msvcp140_atomic_wait.dll丢失的高效率解决方法,快速的一键修复

我们常常遇到各种不可预见的电脑故障问题&#xff0c;msvcp140_atomic_wait.dll丢失是一个常见的系统错误&#xff0c;它通常发生在Windows操作系统中&#xff0c;特别是当用户尝试运行依赖于Microsoft Visual C Redistributable的应用程序时。该问题可能导致程序崩溃或无法启动…

摸鱼大数据——Hive表操作——分桶表

1、介绍 分桶表特点: 会产生分桶文件。 效率上注意: 查询数据的时候如果使用了分桶字段那么会提升数据查询效率&#xff08;数据过滤where、join、分组、抽样查询&#xff09;&#xff1b;否则会进行全表扫描 分桶与分区的区别: 1- 分桶字段必须是原有的字段名称 2-…

动手学深度学习(Pytorch版)代码实践 -深度学习基础-02线性回归基础版

02线性回归基础版 主要内容 数据生成&#xff1a;使用线性模型 ( y X*w b ) 加上噪声生成人造数据集。数据读取&#xff1a;通过小批量读取数据集来实现批量梯度下降&#xff0c;打乱数据顺序并逐批返回特征和标签。模型参数初始化&#xff1a;随机初始化权重和偏置&#x…

Linux驱动开发笔记(二) 基于字符设备驱动的GPIO操作

文章目录 前言一、设备驱动的作用与本质1. 驱动的作用2. 有无操作系统的区别 二、内存管理单元MMU三、相关函数1. ioremap( )2. iounmap( )3. class_create( )4. class_destroy( ) 四、GPIO的基本知识1. GPIO的寄存器进行读写操作流程2. 引脚复用2. 定义GPIO寄存器物理地址 五、…

应急通信保障之多链路聚合通信设备在应急救援实施中的解决方案

在当今信息化社会&#xff0c;应急通信保障已成为各类救援任务中不可或缺的一环。尤其在复杂多变的应急救援现场&#xff0c;如何确保通信畅通、信息传递及时&#xff0c;直接关系到救援行动的成败。近年来&#xff0c;多链路聚合通信设备以其独特的优势&#xff0c;逐渐在应急…

Go语言-big.Int

文章目录 Go 语言 big.Int应用场景&#xff1a;大整数位运算使用举例&#xff1a; go sdk中crypto/ecdsa 椭圆曲线生成私钥相关结构中就有使用 Go 语言 big.Int Go 语言 big.Int 参考URL: https://blog.csdn.net/wzygis/article/details/82867793 math/big 作为 Go 语言提供的…