当前位置: 首页 > news >正文

buu [ACTF新生赛2020]crypto-rsa3 1

题目描述:

from flag import FLAG
from Cryptodome.Util.number import *
import gmpy2
import random
e=65537
p = getPrime(512)
q = int(gmpy2.next_prime§)
n = p*q
m = bytes_to_long(FLAG)
c = pow(m,e,n)
print(n)
print( c )
n = 177606504836499246970959030226871608885969321778211051080524634084516973331441644993898029573612290095853069264036530459253652875586267946877831055147546910227100566496658148381834683037366134553848011903251252726474047661274223137727688689535823533046778793131902143444408735610821167838717488859902242863683
c = 1457390378511382354771000540945361168984775052693073641682375071407490851289703070905749525830483035988737117653971428424612332020925926617395558868160380601912498299922825914229510166957910451841730028919883807634489834128830801407228447221775264711349928156290102782374379406719292116047581560530382210049

题目分析:

  • 这题已知量:n,c,e
  • 利用 分解n得p,q的在线网站 即可得到 p 与 q
  • 此时便可得到 d = gmpy2.invert(e,(p-1)*(q-1))
  • 然后便可得到明文 m = pow(c,d,n)
  • 最后在转化为字符串即可
  • 代码如下:
import gmpy2
import libnum
n = 177606504836499246970959030226871608885969321778211051080524634084516973331441644993898029573612290095853069264036530459253652875586267946877831055147546910227100566496658148381834683037366134553848011903251252726474047661274223137727688689535823533046778793131902143444408735610821167838717488859902242863683
c = 1457390378511382354771000540945361168984775052693073641682375071407490851289703070905749525830483035988737117653971428424612332020925926617395558868160380601912498299922825914229510166957910451841730028919883807634489834128830801407228447221775264711349928156290102782374379406719292116047581560530382210049
e = 65537
p = 13326909050357447643526585836833969378078147057723054701432842192988717649385731430095055622303549577233495793715580004801634268505725255565021519817179231
q = 13326909050357447643526585836833969378078147057723054701432842192988717649385731430095055622303549577233495793715580004801634268505725255565021519817179293
phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi)
m = pow(c,d,n)
print(libnum.n2s(int(m)))

收获与体会:

这是很基础也很简单的一道题,但重点是要记得公式 (我一开始便有个字母记错了,然后怎么也找不到正确的答案)

http://www.lryc.cn/news/15060.html

相关文章:

  • 知识库:在医疗行业的知识管理有着怎样的意义与实际影响?
  • 带你一步步搭建Web自动化测试框架
  • Redis进阶-缓存问题
  • VS Code Spring 全新功能来了!
  • 关于大数据导入流程引擎ccflow的方案
  • AI 生成二次元女孩,免费云端部署(仅需5分钟)
  • 掌握MySQL分库分表(六)解决主键重复问题--Snowflake雪花算法
  • Melis4.0[D1s]:1.启动流程(与adc按键初始化相关部分)跟踪笔记
  • GNU make 中文手册 第三章:Makefile 总述
  • 简历的专业技能怎么写?排版需要注意的事项
  • 【Git】为什么需要版本控制?版本控制工具有那些?
  • SSH远程执行Python3 Error: UnicodeEncodeError: ‘ascii‘ codec
  • 极简TypeScript教程--面向对象
  • java TCP/UDP、Socket、URL网络编程详解
  • 【C语言】宏
  • 【测试面试】自我分析+功能+接口自动化+性能测试面试题(大全),知己知彼百战百胜......
  • ASE4N65SE-ASEMI高压MOS管ASE4N65SE
  • MyBatis概述环境搭建(一)
  • 3.8国际妇女节即将到来,跨境卖家如何做好选品和营销?
  • Glue Connector 和 Connection 的关系与区别
  • 如何使用ngxin的 upstream
  • Java数组,超详细整理,适合新手入门
  • 1.3数据传输控制方式:IO数据传输控制方式、程序控制(查询)方式、程序中断方式、DMA方式、通道方式、I/O处理机
  • Linux 设置语言
  • Python基础-数据类型之集合
  • [Css]Grid属性简单陈列(适合开发时有基础的快速过一眼)
  • 100种思维模型之启发式偏差思维模型-017
  • 微服务 feign远程调用时 显示服务不可用 timed-out and no fallback
  • 第一个Java程序(初识Java)
  • vulnhub LordOfTheRoot_1.0.1