2021-工业互联网内部预选-Crypto_crackCipher

news/2024/9/20 6:59:56/文章来源:https://www.cnblogs.com/qihumuyang/p/18337127

Crypto_crackCipher

考点:RSA、共模攻击、小明文攻击

#题目
n:
31934670515243135376544494777800167818741680889482357476043664101552263846965902709062687560949362947553749723524721435747896957912492147193043671762758273928557874925637788128125234989097054621581308987239271864314404632159582139228882592627148471549398446422733460548334634327481394478107361389915143539547418985910098660767096947132861742818924085617776838873128115919283348588325931648893539577018391628362088644594757514603575697434296673391737253417736818781989856674787549446853432501840734261821542854584122792474217519456831119992972697291491227130606752323868696432108995904433
c1:
30844012039330070258536456143761809358862057797854053892630858440607549827193033460787087324464139605654012890812030144340209360634997046801933769493806658354096950161853154223654732670515647323259883550654904887690895032316338986275991996131184156035865626736143044052392910180192210388125839151242363611250480493837180613620038095895598448681833958215693745432776287627165112688548348416744866588794033023405575776579986490123103992662714442506606093897670878390187671611825093216814851078943446973697872672875998366847057357888052222683069587610459869062116880896250860882626078292958
c2:
29376289618101477573845080776626444563736469597151865167336042485301759536784462783567968526685694047477189187540318949323788697287596715848087482575926380828996111996259334495315493477987062604746359839578403800720962544133144995430614683984221525578746985707910306870258697864507359761731111650008286206169103341385599663639278442098324437911561465817861903840747109977213158732239774315834302674212907532925861990950343686568112047401696595811630295514183756734449163322948609350655620291947803969755100787417081253273154808178944403727535343569940717056601055016711889950898679773833
e1*e2=3087

(1)⾸先根据俩e 俩c 只有⼀个n,想到考点为共模攻击

共模攻击条件为俩e互质,那么分解e,选取互质的两个进⾏解题

import gmpy2
from Crypto.Util.number import *n:...
c1:...
c2:...
ee = 3087for e1 in range(1, ee):if ee % e1 == 0:e2 = ee // e1if gmpy2.gcd(e1,e2)==1: # 检查e1 , e2 是否互质,不互质就往下⾛,互质就重新循环。_, r, s = gmpy2.gcdext(e1, e2)m = pow(c1, r, n) * pow(c2, s, n) % nprint (long_to_bytes(m))

3组结果均不正确,明显非正确答案

image-20240729104435720

(2)考虑e非互质情况

小明文

若e1,e2不互质,可令e1=kE1,e2=kE2 (E1,E2互质)

分别是以下⼏种情况。

k = 3, E1 = 1, E2 = 343, e1 = 3, e2 = 1029

k = 7, E1 = 1, E2 = 63, e1 = 7, e2 = 441

k = 7, E1 = 7 E2 = 9, e1= 49, e2 = 63

可以发现,e此时非常小,可以通过爆破得到k值

⽤到的公式为m^e=k*n+m

通俗的讲就是,原本共模攻击条件是俩e互质,但是现在不互质了,就相当于原来的k次⽅,需要找到k 开k次⽅还原回去

image-20240801115928277

import gmpy2
from Crypto.Util.number import *n = ...
c1 = ...
c2 = ...for e1 in range(1, 3087):if 3087 % e1 == 0:e2 = 3087 // e1if gmpy2.gcd(e1,e2)==1: # 检查e1 , e2 是否互质,不互质就往下⾛,互质就重新循环。_, r, s = gmpy2.gcdext(e1, e2)# m = pow(c1, r, n) * pow(c2, s, n) % n# print (long_to_bytes(m))continue  #因为上边分析,互质就是正常共模了,但是此题不是正常共模,互质解出来不对,才考虑不正常共模,也就是不互质的情况up, s, t = gmpy2.gcdext(e1, e2) # 扩展欧几里得算法m = pow(c1, s, n) * pow(c2, t, n) % n# else:#     print(e1)#     print(e2)#小明文攻击for k in range(1000):temp = m+k*ntempRes = gmpy2.iroot(temp,up) #返回⼀个元组 (x, y),其中 x 为 temp 开 up次⽅的值,y 是判断 x 是否为整数的布尔型变量if tempRes[1] == True and b'flag' in long_to_bytes(tempRes[0]):print(k)print(long_to_bytes(tempRes[0]))

image-20240801141207704

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

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

相关文章

使用ossfs将Bucket挂载到统信UOS系统本地目录

目录简介功能原理运行环境安装ossfs安装依赖源码下载执行脚本编译安装安装验证ECS挂载OSS配置账号访问信息创建挂载目录挂载单个bucket挂载多个bucket指定挂载bucket和路径卸载OSS 简介 对于那些需要直接读写本地文件的应用程序,ossfs 提供了一种方便的解决方案,使应用程序在…

Pixel Aligned Language Models论文阅读笔记

Motivation & Abs 近年来,大语言模型在视觉方面取得了极大的进步,但其如何完成定位任务(如word grounding等)仍然不清楚。本文旨在设计一种模型能够将一系列点/边界框作为输入或者输出。当模型接受定位信息作为输入时,可以进行以定位为condition的captioning。当生成位…

Pytorch笔记|小土堆|P1-5

Pytorch环境安装及配置 1、创建conda环境,名为pytorch conda create -n pytorch python=3.10 2、在任务管理器的性能中确认显卡,是否支持CUDA。其次,确认显卡驱动,cuda9.2支持396.26以上的驱动,可以在命令行使用 nvidia-smi 来看自己驱动是否满足要求,如果低于396.26,可…

Cortex-M3初探

关于Cortex-M3初探索目录寄存器组R0-R12:通用寄存器R13:两个堆栈指针 SPR14:连接寄存器 LRR15:程序计数寄存器 PC特殊功能寄存器xPSR寄存器PRIMASK寄存器FAULTMASK寄存器BASEPRI寄存器CONTROL寄存器操作模式与特权级别用户级切换为特权级的流程内建的嵌套向量中断控制器 NV…

OpenSSH秘钥指纹图像生成算法

使用 SSH 秘钥生成时产生疑惑,它的 fingerprint randomart image 是如何生成的?对此进行了探索和研究,意外的简单OpenSSH秘钥指纹图像生成算法使用 SSH 秘钥生成时产生疑惑,它的 randomart image 是如何生成的?下面进行了探索和研究 引入 生成位数为 4096 位的 rsa 公私钥…

检测Linux服务器CPU、内存、负载、IO读写、机房带宽和服务器类型的脚本

脚本内容: #!/usr/bin/env bash # # # #RED=\033[0;31m GREEN=\033[0;32m YELLOW=\033[0;33m SKYBLUE=\033[0;36m PLAIN=\033[0mabout() {echo ""echo " ========================================================= "echo " \ Supe…

拖拽式操作也能制作中国式报表了?

报表作为企业经营和决策的重要工具,其重要性不言而喻。中国式报表,不仅要求数据的精准呈现,还需要在格式上保持高度的灵活性,以满足不同场景下的需求。中国式报表以独特的复杂性和信息量大而著称,而这种复杂性也带来了制作和维护上的挑战,使得许多企业在处理中国式报表时…

STM32G030F6P6TR_IAP

bootloader程序 STM32FLASH读写1 /**2 ******************************************************************************3 * @file stmflash.c4 * @brief 读写STM32内部flash(STM32G030F6P6TR)5 **********************************************************…

XALM基本语法

1.同一个UI可以有不同的实现如上图所示,可以存在以下两种不通的实现: 实现一: 实现二:2.对对象属性赋值: 两种语法:使用字符串进行简单赋值;使用属性元素进行复杂赋值; 一.简单赋值: 二.使用属性元素赋值: 3.简化XAML得技巧 精简后如下: 4.对于复杂的绘图和动画制作…

8月8日在线研讨会 | 如何快速开发量产级别功能安全应用软件

本次研讨会经纬恒润将结合自身控制器产品研发及国内外功能安全开发、集成、测试、咨询的实践经验,重点基于功能的应用监控软件,从需求定义、架构设计、单元设计及测试验证等多个环节,分享功能安全量产软件实施的方案、加速实施过程的方法,以推动客户汽车量产级别软件功能安…

vue集成svg大图拖拽无限放大缩小

vue项目中根据实际CAD图为参考,以及参看项目实际现场,手动绘制了一张线体、堆垛机、库区货架svg图,集成到vue页面中,svg图中可以交互接收C#发送过来的singalR实时数据。接收singalR的实时数据并显示到vue中,这里不作展开讲,可以参看笔者另一篇文章《vue若依集成C#的singa…

积目社交app应用深度剖析:定位、功能与用户生态

一、产品概述 积目是一款主打青年文化领域的陌生人社交App,成立于2016年9月。它致力于提高用户质量,为青年群体提供基于兴趣的社交服务。积目的业务涵盖了看照滑卡牌、青年社区、共鸣匹配、线下活动等多个方面,旨在打造一个全方位的社交娱乐平台。二、用户分析 用户特征: 积…