1.题目

import gmpy2
import libnum
p = 165671388464282893752584125326556029512354679397368368220857653376434416617078001900277406804267355663751513682840337558216904117069008267677893985727230492593325173603042964427743989984503434019470910507115109513170452698000355325984181538737533266814217005071768519044490852862204995798270365958824235849109
q = 175651490687332204443530543796451733955950430025312028126121651885555378220332519727808277499974413469921166403868820510889929291685634889104148327524274922826871445228415469568630177323596856932622756981153120631004723510221017019084277515594390301668628385485041270510393136114778320441820348165683480429509
e = 867
c = 6660001775826165629475223259336063470824903598186378856629188913679962282858793440376297567100421858667621016533483512334538109479346679782212732404845310757840479720395378527082706256828554622756778693485769299876503864622653683484618754126624570844775655043102572727811993886306928017735680155402682728596637511542728152370291378415159847960544753739367663869108893974077536246398983936117278361731006622247248095303296948707291551372192438544963005437790454911837030171627510656854263564906498378877435418362195839052305558446674564302895256267149210518288365132749899457979906841577497745489758722670048505543942
n = p * q
phi_n = (p - 1) * (q - 1)
d = gmpy2.gcd(e // 6, phi_n)
m = pow(c, d, n)
#niyuan = gmpy2.invert(e, phi_n)
print(m)
print(libnum.n2s(int(m)))

2.e和phi不互素思路

首先我们要对RSA有基本的认知,私钥如何求解d ≡ e⁻¹ mod phi,那么如果gcd(e,phi)\neq1,不就是代表逆元不存在吗?解密也就无法进行下去了。

假设gcd(e,phi)=t =>gcd(e//t,phi)=1由t=gcd(e,phi),得出t1=e//t即gcd(t1,phi)=1所以私钥dt1=invert(t1,phi)根据这个求出c=m^(e)%n=>c=m^(t1*t)%n=>c=(m^t)^(t1)%n,满足gcd(t,phi)=1=>mt=c^(d1)%n,这里的mt=m^t最后开方求出m即可

3.解题脚本

import gmpy2 
import libnum  p = 165671388464282893752584125326556029512354679397368368220857653376434416617078001900277406804267355663751513682840337558216904117069008267677893985727230492593325173603042964427743989984503434019470910507115109513170452698000355325984181538737533266814217005071768519044490852862204995798270365958824235849109
q = 175651490687332204443530543796451733955950430025312028126121651885555378220332519727808277499974413469921166403868820510889929291685634889104148327524274922826871445228415469568630177323596856932622756981153120631004723510221017019084277515594390301668628385485041270510393136114778320441820348165683480429509
e = 867  # 公钥指数(注意:与φ(n)不互质)
c = 6660001775826165629475223259336063470824903598186378856629188913679962282858793440376297567100421858667621016533483512334538109479346679782212732404845310757840479720395378527082706256828554622756778693485769299876503864622653683484618754126624570844775655043102572727811993886306928017735680155402682728596637511542728152370291378415159847960544753739367663869108893974077536246398983936117278361731006622247248095303296948707291551372192438544963005437790454911837030171627510656854263564906498378877435418362195839052305558446674564302895256267149210518288365132749899457979906841577497745489758722670048505543942n = p * q  
phi = (p - 1) * (q - 1)# 处理e与φ(n)不互质的情况
t = gmpy2.gcd(e, phi)  # 计算e和φ(n)的最大公约数
print(f"gcd(e,phi) = {t}")  # 调试输出:查看gcd值t1 = e // t  # 将e分解为t和t1
assert gmpy2.gcd(t1, phi) == 1  # 验证t1与φ(n)互质(关键检查点)# 第二步:对互质部分进行正常RSA解密
dt1 = gmpy2.invert(t1, phi)  # 计算t1的模逆元(即d1 = t1^-1 mod φ(n))
mt1 = pow(c, dt1, n)  # 部分解密得到m^t mod n(因为c = (m^t)^t1 mod n)
print(f"m^t mod n = {mt1}") # 第三步:解决不互质部分(开t次方)
s, is_exact = gmpy2.iroot(mt1, t)  # 对m^t开t次方求m
assert is_exact  # 确保能完整开方(验证m^t < n)
print(f"m = {s}")  # 调试输出:查看解密后的明文数值flag = libnum.n2s(int(s))
print("Flag:", flag)  

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

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

相关文章

基于单片机蒸汽压力检测/蒸汽余热回收

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;单片机作品题目速选一览表&#x1f680; &#x1f449;&#x1f449;&#x1f449;&#x1f449;单片机作品题目功能速览&#x1f680; &#x1f525;更多文章戳&#x1f449;小新单片机-CSDN博客&#x1f68…

https 协议与 wss 协议有什么不同

HTTPS 是用于网页数据传输的安全协议&#xff0c;而 WSS 是用于实时双向通信&#xff08;如聊天、直播&#xff09;的安全协议&#xff0c;二者的设计目标、应用场景、底层逻辑均存在本质区别。以下从 7 个核心维度展开对比&#xff0c;并补充关键关联知识&#xff0c;帮助彻底…

主流分布式数据库集群选型指南

以下是关于主流分布式可扩展数据库集群的详细解析&#xff0c;涵盖技术分类、代表产品及适用场景&#xff0c;帮助您高效选型&#xff1a;一、分布式数据库核心分类 1. NewSQL 数据库&#xff08;强一致性 分布式事务&#xff09;产品开发方核心特性适用场景TiDBPingCAPHTAP架…

#T1359. 围成面积

题目描述编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示&#xff0c;在1010的二维数组中&#xff0c;有“*”围住了15个点&#xff0c;因此面积为15。输入1010的图形。输出输出面积。样例输入数据 10 0…

Hive on Tez/Spark 执行引擎对比与优化

在大数据开发中,Hive 已经成为最常用的数据仓库工具之一。随着业务数据规模的不断扩大,Hive 默认的 MapReduce 执行引擎 显得笨重低效。为了提升查询性能,Hive 支持了 Tez 和 Spark 作为底层执行引擎。本文将带你对比 Hive on Tez 与 Hive on Spark 的区别,并分享调优经验。…

深入理解 Next.js 的路由机制

深入理解 Next.js 的路由机制 作者&#xff1a;码力无边在上一篇文章中&#xff0c;我们成功创建并运行了第一个 Next.js 应用。当你打开项目文件夹时&#xff0c;你可能会注意到一个名为 pages 的目录。这个目录看似普通&#xff0c;但它却是 Next.js 路由系统的核心。今天&am…

modbus_tcp和modbus_rtu对比移植AT-socket,modbus_tcp杂记

modbus_rtu通信时没有连接过程&#xff0c;主机和从机各自初始化自身串口就行了&#xff0c;而rtu需要确定从机ID。注:在TCP连接中&#xff0c;不同的网卡有不同的IP&#xff0c;port对应具体的程序。/* 先读取数据 */for (i 0; i < len; i){if (pdPASS ! xQueueReceive(re…

Docker Compose 详解:从安装到使用的完整指南

在现代容器化应用开发中&#xff0c;Docker Compose 是一个不可或缺的工具&#xff0c;它能够帮助我们轻松定义和运行多容器的 Docker 应用程序。 一、什么是 Docker Compose&#xff1f; Docker Compose 是 Docker 官方提供的一个工具&#xff0c;用于定义和运行多容器 Dock…

springboot配置多数据源(mysql、hive)

MyBatis-Plus 不能也不建议同时去“控制” Hive。它从设计到实现都假定底层是 支持事务、支持标准 SQL 方言 的 关系型数据库&#xff08;MySQL、PostgreSQL、Oracle、SQL Server 等&#xff09;&#xff0c;而 Hive 两者都不完全符合。如果操作两个数据源都是mysql或者和关系数…

2025年上海市星光计划第十一届职业院校技能大赛高职组“信息安全管理与评估”赛项交换部分前6题详解(仅供参考)

1.北京总公司和南京分公司有两条裸纤采用了骨干链路配置,做必要的配置,只允许必要的Vlan 通过,不允许其他 Vlan 信息通过包含 Vlan1,禁止使用 trunk链路。 骨干链路位置​​:总公司 SW 与分公司 AC 之间的两条物理链路(Ethernet 1/0/5-6 必要 VLAN​​: •总公司:Vlan…

学习nginx location ~ .*.(js|css)?$语法规则

引言 nginx作为一款高性能的Web服务和反向代理服务&#xff0c;在网站性能优化中扮演着重要的角色。其中&#xff0c;location指令的正确配置是优化工作的关键之一。 这篇记录主要解析location ~ .*\.(js|css)?$这一特定的语法规则&#xff0c;帮助大家理解其在nginx配置中的…

Nmap网络扫描工具详细使用教程

目录 Nmap 主要功能 网络存活主机发现 (ARP Ping Scan) 综合信息收集扫描 (Stealth SYN Service OS) 全端口扫描 (Full Port Scan) NSE 漏洞脚本扫描 SMB 信息枚举 HTTP 服务深度枚举 SSH 安全审计 隐蔽扫描与防火墙规避 Nmap 主要功能 Nmap 主要有以下几个核心功能…

Spring Boot 3.x 的 @EnableAsync应用实例

语法结构使用 EnableAsync 其实就像为你的应用穿上一件时尚的外套&#xff0c;简单又高效&#xff01;只需在你的配置类上添加这个注解&#xff0c;轻松开启异步之旅。代码如下&#xff1a;想象一下&#xff0c;你的应用一瞬间变得灵活无比&#xff0c;像一个跳舞的机器人&…

Nginx Tomcat Jar包开机启动自动配置

一、Nginx配置1、创建systemd nginx 服务文件vi /usr/lib/systemd/system/nginx.service### 内容[Unit] DescriptionThe nginx HTTP and reverse proxy server Afternetwork.target[Service] Typeforking ExecStartPre/mnt/nginx/sbin/nginx -t ExecStart/mnt/nginx/sbin/nginx…

修订版!Uniapp从Vue3编译到安卓环境踩坑记录

Uniapp从Vue3编译到安卓环境踩坑记录 在使用Uniapp开发Vue3项目并编译到安卓环境时&#xff0c;我遇到了不少问题&#xff0c;现将主要踩坑点及解决方案整理如下&#xff0c;供大家参考。 1. 动态导入与静态导入问题 问题描述&#xff1a; 在Vue3项目中使用的动态导入语法在Uni…

零售消费企业的数字化增长实践,2025新版下载

当下零售消费行业&#xff0c;早不是有货就好卖的时代了。一方面&#xff0c;前两年消费市场的热度催生出大批新品牌入场&#xff0c;供给端瞬间拥挤&#xff1b;另一方面&#xff0c;消费者获取信息越来越容易&#xff0c;新潮流、新观念几天一个变化。企业想稳住增长、必须要…

[网鼎杯 2020 青龙组]AreUSerialz

BUUCTF在线评测BUUCTF 是一个 CTF 竞赛和训练平台&#xff0c;为各位 CTF 选手提供真实赛题在线复现等服务。https://buuoj.cn/challenges#[%E7%BD%91%E9%BC%8E%E6%9D%AF%202020%20%E9%9D%92%E9%BE%99%E7%BB%84]AreUSerialz启动靶机&#xff0c;页面显示php代码 <?phpincl…

贵州移动创维E900V22F-S905L3SB-全分区备份

贵州移动创维E900V22F-S905L3SB-全分区备份刷机教程&#xff1a;请查看压缩包内教程&#xff01;下载地址&#xff1a;链接: https://pan.baidu.com/s/1EyYgLNZlxv-UvHpmTRxA_g?pwd5v8w 提取码: 5v8w链接&#xff1a;https://www.123pan.com/s/Jbe8Vv-dTMN 提取码:0123备用链接…

springboot redis 缓存入门与实战

Spring Boot3 Redis 项目地址https://gitee.com/supervol/loong-springboot-study&#xff08;记得给个start&#xff0c;感谢&#xff09;Redis 介绍Redis 是一款高性能的 内存数据库&#xff08;支持持久化&#xff09;&#xff0c;兼具缓存、NoSQL 存储、分布式锁等核心能力…

Redis缓存三大经典问题:雪崩、穿透、击穿详解

在高并发系统中&#xff0c;Redis作为高性能的内存缓存数据库&#xff0c;缓存可能会引发一系列严重问题——缓存雪崩、缓存穿透、缓存击穿。一、缓存雪崩&#xff08;Cache Avalanche&#xff09;1. 什么是缓存雪崩&#xff1f;缓存雪崩是指大量缓存数据在同一时间集中失效&am…