第五题(共享素数)

题目:

from Crypto.Util.number import *flag = 'flag{************}'n1 = 17469717225290839083886059660020772742752375617155018341273892047793372744698410821267578073551552960524963665346449077758814068409306299412121230890087243994934069424664432952179673373660893792217836744393273253287054105453944786491111611018381399413055687027276149402575363263508501697421923860136883159522462486705426786971861204711000357141974615132983241706819782064010684249986143619837319638462611244019548080721568640157757452792099219878124106822180849990920724795130168065140032361525100465973966351865345187438555526309456171790787512162222789257642406653299062020398590522979322440558869763617971453838719
n2 = 26003912920102200626674342598145088129242820638824288661394208334288121066586487824985483915912517168372493192861480006105302583771770728732856519603501910380886078536543990958186081526731614103590837760509828365323919632719381267900922037358547541657031543146649339524322620742094140727038642854222912828245926421695701845318877839619205619442516015608195328935459679721941573194042411797135071760645847904306959431926926019519673538902724356189146612439668424002323682236113831302090436737186448211852381301723292350822048243490872739727586950330041508367718922118212985327100110454116948665292834214136538859224239
e = 65537
m = bytes_to_long(flag.encode())
c = pow(m, e, n1)
c = pow(c, e, n2)print("n1 = %d" % n1)
print("n2 = %d" % n2)
print("c = %d" % c)c = 11057883693890837338174128348933052959786731674341613869367586389254581134077700610057794325023315850008627176352238740298325291834687337419279898907670619950922544933327181200926995298850433647383924732342920115209742179573692089499577464749662959143551579540225455975207003441088069286946693999743580682375867917614077862266832016811708458208309180853612015014815074281750947018418802159591276175839910706356088278622349017258609321802811977781923918556805378593196318887889506937072890312829618526207657892903899022311929750871095724484100777147412831411048910532329541086455636749690305225945392315234589313487863

看到n1 n2我们联想到共享素数,gcd求p

之后按照加密反解即可

EXP:

import sympy
from gmpy2 import *
from Cryptodome.Util.number import *
from gmpy2 import gmpy2
n1 = 17469717225290839083886059660020772742752375617155018341273892047793372744698410821267578073551552960524963665346449077758814068409306299412121230890087243994934069424664432952179673373660893792217836744393273253287054105453944786491111611018381399413055687027276149402575363263508501697421923860136883159522462486705426786971861204711000357141974615132983241706819782064010684249986143619837319638462611244019548080721568640157757452792099219878124106822180849990920724795130168065140032361525100465973966351865345187438555526309456171790787512162222789257642406653299062020398590522979322440558869763617971453838719
n2 = 26003912920102200626674342598145088129242820638824288661394208334288121066586487824985483915912517168372493192861480006105302583771770728732856519603501910380886078536543990958186081526731614103590837760509828365323919632719381267900922037358547541657031543146649339524322620742094140727038642854222912828245926421695701845318877839619205619442516015608195328935459679721941573194042411797135071760645847904306959431926926019519673538902724356189146612439668424002323682236113831302090436737186448211852381301723292350822048243490872739727586950330041508367718922118212985327100110454116948665292834214136538859224239
e = 65537
c=11057883693890837338174128348933052959786731674341613869367586389254581134077700610057794325023315850008627176352238740298325291834687337419279898907670619950922544933327181200926995298850433647383924732342920115209742179573692089499577464749662959143551579540225455975207003441088069286946693999743580682375867917614077862266832016811708458208309180853612015014815074281750947018418802159591276175839910706356088278622349017258609321802811977781923918556805378593196318887889506937072890312829618526207657892903899022311929750871095724484100777147412831411048910532329541086455636749690305225945392315234589313487863p=gmpy2.gcd(n1,n2)
print("p=",p)
p=173093341112798259024469937305970180846643931042298341778489790645813680013718052291530319129475958193128519333519299519736429611708180109701722070642448727446733472219173494777805858265327626213789490519307792366105074487761113125330113444028655460008029657651522737527116146259119771332511700814108255885863
q1=n1//p
q2=n2//p
print("q1=",q1)
print("q2=",q2)
q1=100926570097843900809206410500637072300412074137011494491523038241152279272620031031157241127131498479442479528630275933695651730892955373620309333605182433180779040498736351119636772511698698500220488442973261833602498276449780372421949038096840770284821966511126944985758721960941157651944451130186815457513
q2=150230579367905625102800082596304584479758516629133987242392798153894193738688627428008530016776116781906875637596575745459813902820163296857373809744377860334369452087620488016363677053614113702931805387944157180803257674842661390702543334041285835664908993319263489920911555225046214164067500663413845034553
phi1=(p-1)*(q1-1)
phi2=(p-1)*(q2-1)
d2=gmpy2.invert(e, phi2)
m2=pow(c, d2,n2)
print("m2=",m2)
m2=14142386367379562849939290220467629174612579063641461250646098632119449286897897959375900927723377891257052805351859462246496854807986453193206986942768604889794857846161987312838452977453144003178615599582443582052372054985927275324393219825626200473521948238357436830409816234739217367293686629960539780554721684435764064006380183979257777838951320885636283946008705870365596872831577279574697662988124034989935671788095877064426207586747242638434800517824356554342957545074354732168085929086450174232243031624329999058051035708920696278089498777422113241431724707565608890735195361880089214750166906278226177298062
print(long_to_bytes(m2))
d1=gmpy2.invert(e, phi1)
m1=pow(m2, d1,n1)
print("m1=",m1)
print(long_to_bytes(m1))

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

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

相关文章

Flutter Android 调试桥 (adb)

客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。 守护程序adbd:用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。 服务器:用于管理客户端与守护程序之间的通信。服务器在开…

Ubuntu常见命令解释

编译类命令 sudo ./configure/sudo make/sudo make install 参考博客这几条命令常见于安装 sudo./configure 命令就是执行当前目录名为configure的脚本,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足安装软件的依赖关系。 sudo make 命…

移动端的HSR技术

overdraw问题: overdraw顾名思义就是过度绘制,就是在渲染过程中**绘制一帧FBO(或者RenderTarget)**超过一次相同像素的现象!这个是CG的问题!特别在是用来大量的透明混合的情况下会产生的,当然客户端andrio…

mysql分析常用锁、动态监控、及优化思考

这里写自定义目录标题 1.未提交事物,阻塞DDL,继而阻塞所有同表的后续操作,查看未提交事务的进程2.存着正在进行的线程数据。3.根据processlist表中的id杀掉未释放的线程4.查看正在使用的表5.mysql为什么state会有waiting for handler commit6.什么情况导…

jetson nano + IMX219采raw图

研究了一圈,想直接采集raw图,很难。淘宝上直接买的模组,几乎都是直接出isp过后的图,至少有个去马赛克的过程,这就很难采raw了。淘宝上几乎是只能定制。想不到,不需要isp功能的相机模组反而非常难找。通过开…

【深度学习】交叉熵和MSE的理解

先说结论: 原来,他们与维度无关, 只要维度合适,都能计算。哈哈哈哈 测试代码: model Net(10,128,Config.num_output_feat)inputs torch.randn(3,5,10)res model(inputs)# 3X5print(res)label torch.randn(3,5)# lo…

高效开发与调试 RK3568 上的 Android 11:全面指南

目录 介绍环境准备1. 硬件准备2. 软件准备 环境搭建1. 下载并编译 Android 11 源码2. 烧写 Android 11 到 RK3568 高效开发与调试1. 使用 ADB 进行调试USB 连接无线调试 2. 使用 Android Studio 进行开发与调试配置 Android Studio使用 Logcat 查看日志断点调试 3. 使用其他工具…

【Android面试八股文】你能说说View的绘制流程是从Activity的哪个生命周期方法开始执行的?

文章目录 View绘制流程与Activity生命周期详细代码解释总结View绘制流程与Activity生命周期 在Android中,View的绘制流程确实与Activity的生命周期密切相关。 具体来说,视图的绘制通常会在onResume()之后开始,这意味着绘制过程正式启动是在Activity的onResume()方法完成后…

mysql数据库中给表创建数据

mysql数据库中给表创建数据 1、操作流程 1、连接数据库 2、拿到查询游标 3、创建sql 4、运行sql 5、关闭游标2、通用代码 import pymysqldef createData(dataDict,tableName):"""给数据表创建数据:param dataDict: 字典:param tableName: 表名:return: "…

intouch的报警怎么发到企业微信机器人

厂务报警通知系列博客目录 intouch的报警怎么发到微信上 intouch的报警怎么发到邮件上 intouch的报警怎么发到短信上 intouch的报警怎么发到企业微信机器人 intouch的报警怎么发到飞书机器人 intouch的报警怎么用语音通知到手机用户 创建企业微信群机器人 打开企业微信客…

【AI-6】算力和带宽

上述为大模型训练的显卡选项 tensor fp16 算力是什么? Tensor FP16(Float16)算力是指GPU在执行深度学习的张量计算时,使用float16(半精度浮点)数据类型所能达到的性能指标。 为什么要使用Tensor FP16? 提升计算效率: float16数据类型的存储和计算开销比float32…

网格布局之跨行越列

网格布局之跨行越列 欢迎关注:xssy5431 小拾岁月 参考链接:https://mp.weixin.qq.com/s/xStfSmewncTW49N0Y_Vhow 点击查看 使用场景 在常见的页面布局中,我们往往会遇到那种类似合并单元格的布局。比如:成绩排名、产品排名等等…

食品安全管理员题库

31.获准使用绿色食品标志的产品,( )加贴绿色食品标志防伪标签。 A.必须 B.自愿 答案:A 32.绿色食品生产企业重新通过产品认证,可继续使用绿色食品标志,标志上的编号( )。 A.不变 B.需要更…

第10关:视图1 、第11关:视图2 、第12关:用户。

目录 第10关:视图1 任务描述 知识补充 答案 第11关:视图2 任务描述 知识补充 答案 第12关:用户 任务描述 知识补充 答案 本篇博客声明:所有题的答案不在一起,可以去作者博客专栏寻找其它文章。 第10关&…

计算机网络(物理层)

物理层 物理层最核心的工作内容就是解决比特流在线路上传输的问题 基本概念 何为物理层?笼统的讲,就是传输比特流的。 可以着重看一下物理层主要任务的特性 传输媒体 传输媒体举例: 引导型传输媒体 引导型传输媒体指的是信号通过某种…

调试器烧录失败的几种常见解决办法

目录 1. 检查接线、Keil配置是否正确 2. 降低下载速度 3. SWD引脚被禁用或被复用为其他功能 4. 使用CubeMX生成的工程,无法调试? 5. 能识别到芯片但是下载时弹出报错对话框(Command not supported) 6. 内部flash锁死&#x…

深入解析Linux Bridge:原理、架构、操作与持久化配置

一、引言 在计算机网络中,桥接技术扮演着至关重要的角色,它能够实现不同网络设备之间的数据交换与共享。Linux Bridge作为Linux内核提供的一种网络功能,允许用户通过软件方式将多个网络接口桥接在一起,形成一个透明的二层网络。本…

python的os包总结

Python 的 os 模块提供了一系列与操作系统交互的功能,使你可以使用Python代码来执行许多与操作系统相关的任务,比如文件和目录操作、环境变量处理、进程管理等。以下是对 os 模块的一些详细介绍和常见用法。 导入 os 模块 import os文件和目录操作 获…

空间复杂度 线性表,顺序表尾插。

各位少年,大家好,我是那一脸阳光,本次分享的主题是时间复杂度和空间复杂度 还有顺序表文章讲解和分享,如有不对可以评论区指导。 时间复杂度例题 // 计算斐波那契递归Fib的时间复杂度? long long Fib(size_t N){if(N…

java:CompletableFuture的简单例子

java:CompletableFuture的简单例子 package com.chz.myTest;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import java.util.concurrent.ExecutionException; import java.uti…