![](http://oztni9daw.bkt.clouddn.com/e5271927dfd0beac56760e0dcdf81116.png)
# Description
**CTF-RSA-tool** 是一款基于`python`以及`sage`的小工具,助不熟悉RSA的CTFer在CTF比赛中快速解决RSA相关的 **基本题型** 。
# Requirements
- requests
- gmpy2
- pycrypto
- libnum
- sagemath(optional)
# Installation
- 安装libnum
```
git clone https://github.com/hellman/libnum.git
cd libnum
python setup.py install
```
- 安装gmpy2,参考:
`easy_install gmpy2`
如果不行,可以尝试我的安装过程:https://3summer.github.io/2018/01/24/CTF-RSA-tool-install/
- 克隆仓库,安装依赖
```
git clone https://github.com/3summer/CTF-RSA-tool.git
cd CTF-RSA-tool
pip install -r "requirements.txt"
```
- 安装sagemath(非必须)
> 安装sagemath的以支持更多的算法,提高解题成功率,嫌麻烦也可以不安装
官网:http://www.sagemath.org
我的安装过程:https://3summer.github.io/2017/12/06/sage/
# Usage
### 查看全部参数及帮助
`python solve.py -h`
### 列举几个实用的小功能(解题的例子见下面)
- 输入N与e创建公钥
`python solve.py -g --createpub -N your_modulus -e your_public_exponent -o public.pem`
- 查看密钥文件
`python solve.py -g --dumpkey --key examples/smallfraction.pub`
- 将加密文件转为十进制(方便写入文本,配合`-i`需要)
`python solve.py -g --enc2dec examples/jarvis_oj_hardRSA/flag.enc`
# Examples
> 非 --input(文本文档自动识别攻击) 的情况下,请至少选择 --private(打印得到的私钥) 或 --decrypt(解密一个加密的文件) 或 --decrypt_int(解密一个十进制数) 中的一个,不然程序不会干什么事,具体参考example.txt
大多数情况下,只用使用 `python solve.py -i rsa.txt` 指定一个txt文本,txt的内容为你从题目获取的变量,如
```
n = **********
e = **********
c = **********
```
用`-i`指定这个文本文档就行了,这样就不用用命令行去一个个指定参数,弄的终端看着很乱。
这个txt的编写规范参看`examples/input_example.txt`
# Tips
每次使用都要找到项目目录很麻烦,可以做个符号链接,链接solve.py到bin目录下,如在我的MACos中
`ln -s /Users/3summer/Documents/code/CTF-RSA-tool/solve.py /usr/local/bin/rsa_solve`
之后,就能直接在终端输入`rsa_solve -i rsa.txt`去快速秒简单题了
# How does it work
根据题目给的参数类型,自动判断应该采用哪种攻击方法,并尝试得到私钥或者明文,从而帮助CTFer快速拿到flag或解决其中的RSA考点
### 大体思路
- 判断输入
首先,识别用户的输入,可以是证书 *pem* 文件,也可以通过命令行参数指定`n`,`e`等变量的值,甚至可以通过命令行指定题目所给的txt文件并自动识别里面的变量(见examples)
- 判断攻击方法
根据取到的参数类型及数量,选取可能成功的方法并采用一定的优先级逐个尝试。
如常见的题型:给了一个公钥和一个加密的密文,我们需要先分解大整数N,然后得到私钥再去解密。考点在于大整数分解,脚本会挨个尝试下面 **已实现的攻击方法** 中列举出的关于分解大整数的方法,直到分解成功。
- 选择输出
CTFer可以通过命令行选择是输出私钥还是输出解密后的密文,还是一起输出
### 已实现的攻击方法
主要参考[ctf-wiki](https://ctf-wiki.github.io/ctf-wiki/crypto/asymmetric/rsa/rsa_index.html)和[RsaCtfTool](https://github.com/Ganapati/RsaCtfTool)及自己平时遇见的一些题型
- 大整数分解
- 检查过去的ctf比赛中出现的素数
- Gimmicky Primes method
- Wiener's attack
- factordb在线分解N
- Small q (q < 100,000)
- 费马分解(p&q相近时)
- Boneh Durfee Method (d < n^0.292)
- Small fractions method when p/q is close to a small fraction
- Basic Broadcast Attack
- Known High Bits Factor Attack
- Common factor between ciphertext and modulus attack
- 小公钥指数攻击
- Rabin 算法
- 模不互素
- 共模攻击
- d泄露攻击
# Reference
- [ctf-wiki](https://ctf-wiki.github.io/ctf-wiki/crypto/asymmetric/rsa/rsa_index.html)
- [RsaCtfTool](https://github.com/Ganapati/RsaCtfTool)
- [jarvisoj](https://www.jarvisoj.com/)
- [RSA-and-LLL-attacks](https://github.com/mimoo/RSA-and-LLL-attacks)
- [rsa-wiener-attack](https://github.com/pablocelayes/rsa-wiener-attack)
- [rsatool](https://github.com/ius/rsatool)
# TODO
- 更多有关Coppersmith的攻击
- https://ctf-wiki.github.io/ctf-wiki/crypto/asymmetric/rsa/rsa_coppersmith_attack.html
- http://inaz2.hatenablog.com/entries/2016/01/20
- 改善RsaCtfTool中几个没加进去的方法(我觉得不太ok的暂时没加进来)
- https://github.com/Ganapati/RsaCtfTool
- 寻找更多题型来丰富攻击方法
- google
- github
- baidu
- ......
没有合适的资源?快使用搜索试试~ 我知道了~
ctf密码学工具大合集
共269个文件
dll:65个
jar:27个
md:26个
需积分: 0 17 下载量 106 浏览量
更新于2024-05-19
4
收藏 363.96MB ZIP 举报
各种加密解密都有,包含RSA-tools,toolsfx,随波逐流,yafu,ctf-tool,cyberchef
收起资源包目录
ctf密码学工具大合集 (269个子文件)
ToolsFx-1.17.0-withjre-win-x64.7z 98.73MB
ADDITIONAL_LICENSE_INFO 2KB
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ADDITIONAL_LICENSE_INFO 49B
ASSEMBLY_EXCEPTION 1KB
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ASSEMBLY_EXCEPTION 44B
ToolsFx.bat 2KB
fontconfig.bfc 5KB
cacerts 172KB
blocked.certs 2KB
jvm.cfg 29B
CHANGES 49KB
small_exponent.cipher 513B
common_factor.cipher 128B
classlist 79KB
dictionary.conf 1KB
main.css 561KB
siqs.dat 4.75MB
public_suffix_list.dat 226KB
tzdb.dat 101KB
jvm.dll 13.18MB
awt.dll 1.4MB
ucrtbase.dll 1.07MB
fontmanager.dll 817KB
msvcp140.dll 558KB
freetype.dll 526KB
mlib_image.dll 489KB
lcms.dll 236KB
splashscreen.dll 206KB
javajpeg.dll 167KB
java.dll 108KB
vcruntime140.dll 95KB
jli.dll 78KB
zip.dll 77KB
api-ms-win-crt-private-l1-1-0.dll 72KB
nio.dll 68KB
jsound.dll 50KB
net.dll 48KB
verify.dll 44KB
vcruntime140_1.dll 36KB
api-ms-win-crt-multibyte-l1-1-0.dll 28KB
api-ms-win-crt-math-l1-1-0.dll 28KB
api-ms-win-crt-runtime-l1-1-0.dll 24KB
api-ms-win-core-file-l1-1-0.dll 24KB
api-ms-win-crt-convert-l1-1-0.dll 24KB
api-ms-win-crt-string-l1-1-0.dll 24KB
api-ms-win-crt-stdio-l1-1-0.dll 24KB
jimage.dll 23KB
api-ms-win-core-console-l1-1-0.dll 20KB
api-ms-win-core-synch-l1-2-0.dll 20KB
api-ms-win-core-profile-l1-1-0.dll 20KB
api-ms-win-core-localization-l1-2-0.dll 20KB
api-ms-win-core-file-l2-1-0.dll 20KB
api-ms-win-core-interlocked-l1-1-0.dll 20KB
api-ms-win-core-processthreads-l1-1-1.dll 20KB
api-ms-win-core-processthreads-l1-1-0.dll 20KB
api-ms-win-core-heap-l1-1-0.dll 20KB
api-ms-win-core-memory-l1-1-0.dll 20KB
api-ms-win-core-debug-l1-1-0.dll 20KB
api-ms-win-core-errorhandling-l1-1-0.dll 20KB
api-ms-win-core-rtlsupport-l1-1-0.dll 20KB
api-ms-win-core-synch-l1-1-0.dll 20KB
api-ms-win-core-timezone-l1-1-0.dll 20KB
api-ms-win-crt-process-l1-1-0.dll 20KB
api-ms-win-core-fibers-l1-1-0.dll 20KB
api-ms-win-core-datetime-l1-1-0.dll 20KB
api-ms-win-core-namedpipe-l1-1-0.dll 20KB
api-ms-win-core-file-l1-2-0.dll 20KB
api-ms-win-crt-heap-l1-1-0.dll 20KB
api-ms-win-core-util-l1-1-0.dll 20KB
api-ms-win-core-processenvironment-l1-1-0.dll 20KB
api-ms-win-crt-environment-l1-1-0.dll 20KB
api-ms-win-crt-locale-l1-1-0.dll 20KB
api-ms-win-core-string-l1-1-0.dll 20KB
api-ms-win-crt-conio-l1-1-0.dll 20KB
api-ms-win-core-libraryloader-l1-1-0.dll 20KB
api-ms-win-crt-filesystem-l1-1-0.dll 20KB
共 269 条
- 1
- 2
- 3
资源推荐
资源预览
资源评论
2018-11-02 上传
146 浏览量
2021-04-06 上传
5星 · 资源好评率100%
2024-01-04 上传
2021-10-24 上传
160 浏览量
121 浏览量
112 浏览量
170 浏览量
107 浏览量
5星 · 资源好评率100%
186 浏览量
2022-02-17 上传
5星 · 资源好评率100%
172 浏览量
2020-09-21 上传
150 浏览量
5星 · 资源好评率100%
2023-10-01 上传
132 浏览量
5星 · 资源好评率100%
144 浏览量
197 浏览量
资源评论
Dr@w
- 粉丝: 16
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 全自动冲孔机设备工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- 球体自动发射机机械设计结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- 先下载此软件,不要管名字.apk.1
- 通过Starter修改项目版本和设备版本的具体方法(英文版).pdf
- 毕设和企业适用springboot智慧城市管理类及机器人平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧教育平台类及金融交易平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧教育平台类及教学资源共享平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧城市管理类及酒店管理平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧城市管理类及金融数据分析平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧城市管理类及客户服务平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧城市管理类及客户服务智能化平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧城市管理类及区块链平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧城市管理类及区块链交易平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧城市管理类及人工智能客服平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧城市管理类及食品配送平台源码+论文+视频.zip
- 毕设和企业适用springboot智慧城市管理类及团队协作平台源码+论文+视频.zip
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功