目录

  • 题目
  • 解题思路
  • 解题脚本

题目

题目还是来源于qq群聊,是昨晚看到一个师傅问的,聊天记录中的图片如下:

这个图片还是比较容易ocr的,后面会给出解题脚本,就包括上面这些数字了。

解题思路

刚看到时我是没什么思路的,由于当时在公交车上所以也没有纸笔可以写一写看一看(数学不好暴风哭泣),然后又看到有个师傅很快回复了方法,看了才知道其实学过初中数学就可以解哎!

解题的关键是:用n分别减去(p-2)*(q-1)和(p-1)*(q-2),将得到的两个值相加再+4,得到的就是3*(p+q)的值,再除以3就得到p+q了!然后因为phi=(p-1)*(q-1)=p*q-p-q+1=n-(p+q)+1,而现在n和p+q都是已知的了,可以直接计算n-(p+q)+1得到phi。后面就是最常规的RSA解题步骤了,由e和phi求出私钥d再解密。

解题脚本

import gmpy2
from Crypto.Util.number import *
n=125152237161980107859596658891851084232065907177682165993300073587653109353529564397637482758441209445085460664497151026134819384539887509146955251284230158509195522123739130077725744091649212709410268449632822394998403777113982287135909401792915941770405800840172214125677106752311001755849804716850482011237
e=65537
c=40544832072726879770661606103417010618988078158535064967318135325645800905492733782556836821807067038917156891878646364780739241157067824416245546374568847937204678288252116089080688173934638564031950544806463980467254757125934359394683198190255474629179266277601987023393543376811412693043039558487983367289
n1=125152237161980107859596658891851084232065907177682165993300073587653109353529564397637482758441209445085460664497151026134819384539887509146955251284230125943565148141498300205893475242956903188936949934637477735897301870046234768439825644866543391610507164360506843171701976641285249754264159339017466738250 #(p-2)*(q-1)
n2=125152237161980107859596658891851084232065907177682165993300073587653109353529564397637482758441209445085460664497151026134819384539887509146955251284230123577760657520479879758538312798938234126141096433998438004751495264208294710150161381066757910797946636886901614307738041629014360829994204066455759806614 #(p-1)*(q-2)
ppq=(n-n1+n-n2+4)//3 #p+q
'''n-(p-2)*(q-1)=pq-(pq-p-2q+2)=p+2q-2 ①n-(p-1)*(q-2)=pq-(pq-2p-q+2)=2p+q-2 ②①+②:n-(p-2)*(q-1)+n-(p-1)*(q-2)=3*(p+q)-4p+q=(n-(p-2)*(q-1)+n-(p-1)*(q-2)+4)/3'''
phi=n-ppq+1 #phi=(p-1)*(q-1)=pq-(p+q)+1
d=gmpy2.invert(e,phi)
flag=long_to_bytes((pow(c,d,n)))
print(flag) #actf{tw0_equ4ti0ns_in_tw0_unkn0wns_d62507431b7e7087}

记录一道已知是n,(p-1)*(q-2)和(p-2)*(q-1)的RSA题目writeup相关推荐

  1. 2019年CTF4月比赛记录(三):SUSCTF 2nd、DDCTF、国赛线上初赛部分Web题目writeup与复现

    四月中旬以来事情还是蛮多的,先捋一捋: 首先有幸参加了东南大学承办的SUSCTF 2nd,虽然比赛的规模不是很大,但是这也是第一次以小组的方式正式参加比赛,也是对前期学习成果的检验.在同组成员的努(带 ...

  2. 建立二叉树:已知层次遍历顺序建立二叉树、已知先序遍历顺序建立二叉树

    其他二叉树知识!二叉树知识汇总 目录 前提知识: 约定: 二叉树节点的存储结构: 创建一个节点: 建立二叉树的几种方法: 一.已知先序遍历顺序,构建二叉树.(链式存储) 二.已知层次遍历顺序,构建二叉 ...

  3. 已知分布函数求概率密度例题_初二一次函数知识点及做题思路解析,一次函数不好的同学看一看...

    初二从平行四边形部分过渡到一次函数部分.很多同学明显感觉一次函数部分比前面平行四边形几何部分简单了一些.前边平行四边形几何部分没有学好的同学,这一部分只要好好学,期末还是能考一个不错的分数.虽然,感觉 ...

  4. 东方博易OJ——1005 - 【入门】已知一个圆的半径,求解该圆的面积和周长

    大家好 今天给大家带来<东方博易OJ--1005 - [入门]已知一个圆的半径,求解该圆的面积和周长> 题目: 1005 - [入门]已知一个圆的半径,求解该圆的面积和周长 题目描述 已知 ...

  5. C语言初步-顺序结构-已知三边求三角形面积-余弦定理

    已知三边求三角型的面积,作为C语言程序设计课程的一个题目,必然是不超纲的. 在数学上,学生应该能够用高中的知识加以解决. 如下图所示,已知三角形三条边a.b.c,只要知道 c 边上的高h,那么面积 s ...

  6. C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。

    1. 题目 请编写一个函数void function(Student a[], int n, Student *s),其功能时:已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中 ...

  7. c语言 已知5名同学的4门成绩,已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排 序记录...

    满意答案 anxianhao 2015.10.04 采纳率:45%    等级:12 已帮助:5464人 已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排 ...

  8. C语言编程题—结构体—设计程序,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数 fun:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分

    4 C语言编程题--结构体 **设计程序,已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中.请编写函数 fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有 ...

  9. C语言编程>第十二周 ③ 已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数。

    已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中.请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分).已给出函数的首部,请完成该函 ...

最新文章

  1. MATLAB中导入数据:importdata函数
  2. java 接口与抽象类的区别
  3. wpf中的点击窗口放大放小按钮怎么写_Python tkinter教程01:创建窗口
  4. AnnotationConfigApplicationContext容器初始化
  5. Chapter 4 Invitations——25
  6. ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘192.168.1.165‘ (113)
  7. android 日期下拉选择控件,Android 中日期控件与下拉列表的使用
  8. 双指针--无重复最长子串
  9. java gzip压缩_Java GZIP示例–压缩和解压缩文件
  10. linux下的man和info命令
  11. 使用Go语言实现简单MapReduce框架
  12. C3P0连接池的配置方式
  13. BT种子下载软件uTorrent Pro v3.5.5.45972
  14. MySQL数据库日志的查看
  15. 阿里巴巴分布式调度引擎tbschedule实战二源码环境搭建
  16. OpenContrail 体系架构文档
  17. 第11章 Java枚举与泛型总结
  18. android 动态磁贴,善用动态磁贴和Xbox游戏
  19. 干货分享 | Windows系统下载SRA数据方法——生信小白亲测可行
  20. 第一次发,可能不太好,别喷我

热门文章

  1. 跨境电商如何找代运营公司?星之河
  2. ps4帧数测试软件,《地平线:零之黎明》PS4/Pro帧数测试 优化极佳
  3. 【创新²】SERO超零协议项目进展双月报
  4. 如何固定输出每行打印的个数
  5. Java实现字数统计(中文英文韩文日文混合),类似word效果
  6. PMP项目经理常用项目管理工具分析
  7. Leetcode 1905. Count Sub Islands [Python]
  8. ActiveMQ的作用,原理是啥?
  9. 传感器实训心得体会_生产线实习心得体会范文
  10. android 数据图标的刷新通知流程