日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CTF-RSA-tool 安装全过程

發布時間:2025/4/16 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CTF-RSA-tool 安装全过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前提:
安裝的機子可以連接外網
機子安裝了python2.7
機子安裝了pip

1、安裝引導

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和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
RsaCtfTool
jarvisoj
RSA-and-LLL-attacks
rsa-wiener-attack
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

轉載自原網站:
https://github.com/3summer/CTF-RSA-tool/blob/master/readme.md

2、安裝過程

1)安裝libnum
安裝命令

pip install libnum
  • 1

如果報錯,試下下面的

pip install --target=E:/python2.7/site-packages libnum
  • 1

(報錯上會有相應的地址)

2)安裝gmpy2

pip install wheel
  • 1

安裝vc++9.0 for python2.7(移步我資源列表下載)
exe文件安裝gmpy2
(文件下載地址:https://download.csdn.net/download/xuhc25/14919865

3)安裝CTF-RSA-tool
cd CTF-RSA-tool(你工具解壓的路徑)
文件下載地址:移步我資源列表下載
翻我資源鏈接

pip install -r "requirements.txt" 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的CTF-RSA-tool 安装全过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。