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

BUUCTF re rsa做法(提供enc和key)

首先我们需要安装个一些东西,即gmpy2,Linux安装流程如下

首先安装依赖库

gmp库:apt-get install libgmp-dev

mpfr库:apt-get install libmpfr-dev

mpc库:apt-get install libmpc-dev

安装gmpy2:pip install gmpy2

个别人可能会报错,输入:sudo apt-get install libmpc-de   进行依赖库更新和检查

首先对文件进行解压,得到 pub.key和flag.enc两个文件,第一步进行openssl的使用,从pub.key

文件中提取出数字n和e(后文会将讲sa算法原理)

输入:openssl rsa -pubin -text -modulus  -in pub.key

得出e=6557,n=0xC0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD

我们此时需要将n变成十进制,利用python进行变化,得到

n=86934482296048119190666062003494800588905656017203025617216654058378322103517

然后将n拆成两个p和q,这边进入网站factordb.com进行拆分,得到

p=285960468890451637935629440372639283459

q=304008741604601924494328155975272418463

此后还需要下载一个rsatool工具,下载完之后,我们如下操作

先是cd rsatool进入该文件夹,然后输入

python3 rsatool.py -f PEM -o private.pem -p 285960468890451637935629440372639283459 -q 304008741604601924494328155975272418463 -e 65537

就可以得到一个私钥文件,后缀是pem,如下图所示

即为创建成功,最后将pub.key,flag.enc和private.pem放入rsatool文件夹中,

输入:openssl pkeyutl -decrypt -in flag.enc -inkey private.pem -out flag.txt

最后,输入:ls  ,在输入:cat flag.txt   就能得到flag{decrypt_256}

先来个小总结:

当解压为两个附件时,一个为enc还有一个key,首先一段指令,得到e和n,然后再将n拆成p和q

然后生成一个pem文件,然后将这些文件放一起,最后得出flag.txt文件

RSA算法原理:(脚本解密原理)

信息接收方产生公钥pl和私钥sk,公钥可以给任何人,私钥自己保存

信息发送方将要发送的信息m和公钥pk一起用特定的算法进行加密,即密文

信息接收方接收到密文c,用私钥sk进行特定的解密算法回复明文

RSA算法流程

选择两个质数p和q,算出乘积n=p*q,算出对应的欧拉函数

选择一个e,使其与算出来的欧拉函数对应

e,n为公钥,d,n为私钥,明文长度小于n

加密,密文=pow(m,e)%n

解密,明文=pow(c,d)%n

如何辨别rsa算法呢?

在加密函数中看是否出现pow(a,b)%c

解法

找密文c

找n=p*q,

找到公钥e

解密操作


http://www.kler.cn/news/365205.html

相关文章:

  • 安全见闻(2)——开阔眼界,不做井底之蛙
  • SpringBoot支付回调枚举+策略+工厂模式
  • 数组类型应用举例
  • VSCode编译器改为中文
  • Redis批量获取缓存的方法
  • 【32】C++流
  • 【Linux】守护进程与作业控制:进程组、会话与控制终端
  • micro-app【微前端实战】主应用 vue3 + vite 子应用 vue3+vite
  • 【Python】相等性比较运算(==, is)的学习笔记
  • 认识ldconfig,不仅仅可以用于查看库的版本
  • 力扣143:重排链表
  • 高可用之限流 09-guava RateLimiter 入门使用简介 源码分析
  • Linux系统下kazam生成的.mp4文件无法用window打开
  • 学习游戏测试需要掌握哪些基础技术?
  • django5入门【01】环境配置
  • 五大场景实践 深度解读指标平台业务价值
  • ffmpeg视频滤镜:平均模糊
  • 【系统架构设计师】一、绪论
  • 第五届光学与图像处理国际学术会议(ICOIP 2025)征稿中版面有限!
  • Android——应用安装
  • Paramiko实现SSH自动化实战教程
  • 2024-09学习笔记
  • TCP/UDP 通用通信代码库(C语言实现)
  • java高性能处理10G大文件
  • 使用Vue.js构建响应式Web应用
  • [DB] NSM