RsaCtfTool是一个可以可以通过public key恢复private key的工具,也可以用来进行解密,CTF比赛中偶尔会用到,下面是安装过程。
注意,以下顺序不能错,不然很容易导致奇怪的问题。
1、首先需要安装mpfr,需要注意的是,如果wget mpfr失败,可能是版本更新了,可以到官网下载相关的bz2的压缩包,设定v为特定的版本,直接跳过wget的步骤,压缩安装即可。
v=4.0.2
wget https://www.mpfr.org/mpfr-current/mpfr-${v}.tar.bz2
tar -jxvf mpfr-${v}.tar.bz2 && cd mpfr- ${v}
./configure
make && make install
2、然后安装mpc
v=1.1.0
wget ftp://ftp.gnu.org/gnu/mpc/mpc-${v}.tar.gz
tar -zxvf mpc-${v}.tar.gz && cd mpc-${v}
./configure
make && make install
3、然后下载安装RsaCtfTool
git clone https://github.com/Ganapati/RsaCtfTool.git
cd RsaCtfTool
pip install -r requirements.txt
完成安装即可,以下是几个官网的简单使用例子:
Uncipher file :
./RsaCtfTool.py --publickey ./key.pub --uncipherfile ./ciphered\_file
Print private key :
./RsaCtfTool.py --publickey ./key.pub --private
Attempt to break multiple public keys with common factor attacks or individually - use quotes around wildcards to stop bash expansion
./RsaCtfTool.py --publickey "*.pub" --private
Generate a public key :
./RsaCtfTool.py --createpub -n 7828374823761928712873129873981723...12837182 -e 65537
Dump the parameters from a key:
./RsaCtfTool.py --dumpkey --key ./key.pub
Factor with ECM when you know the approximate length in digits of a prime:
./RsaCtfTool.py --publickey key.pub --ecmdigits 25 --verbose --private