#rsa-key #rsa #public-key #ctf #cracker #private-key #encryption-key

bin+lib rsacracker

适用于CTF的强大RSA破解工具。支持PEM和DER格式的RSA、X509、OPENSSH。

16个版本

0.6.8 2024年7月9日
0.6.6 2024年2月9日
0.6.4 2023年9月11日
0.4.0 2023年7月2日

#220 in 加密学

Download history 23/week @ 2024-04-15 5/week @ 2024-04-22 7/week @ 2024-04-29 9/week @ 2024-05-13 12/week @ 2024-05-20 23/week @ 2024-05-27 37/week @ 2024-06-03 6/week @ 2024-06-10 144/week @ 2024-06-24 13/week @ 2024-07-01 126/week @ 2024-07-08 9/week @ 2024-07-15 3/week @ 2024-07-22 27/week @ 2024-07-29

165 每月下载量

MIT/ApacheLGPL-3.0+

225KB
5.5K SLoC

RSA求解器

Build Crate.io codecov

适用于CTF的强大RSA破解工具。支持PEM和DER格式的RSA、X509、OPENSSH。

RsaCracker提供了简单的接口来破解RSA密钥和解密。拥有数千种攻击方法,没有任何密钥能够逃脱RsaCracker的攻击!

安装

从crates.io安装

cargo install rsacracker

注意:要在Windows上构建,您需要使用MSYS2。这是由于对rug的依赖。有关更多信息,请参阅在Windows上构建

使用方法

Usage: rsacracker [OPTIONS]

Options:
  -c, --cipher <CIPHER>            Cipher message: the message to uncipher
  -f, --cipherfile <CIPHERFILE>    Cipher message file: the file to uncipher
  -n <N>                           Modulus
  -e <E>                           Public exponent. Default: 65537 [default: 65537]
  -p <P>                           Prime number p
  -q <Q>                           Prime number q
  -d <D>                           Private exponent
      --phi <PHI>                  Phi or Euler's totient function of n. (p-1)(q-1)
      --dp <DP>                    dP or dmp1 CRT exponent. (d mod p-1)
      --dq <DQ>                    dQ or dmq1 CRT exponent. (d mod q-1)
      --qinv <QINV>                qInv or iqmp CRT coefficient. (q^-1 mod p)
      --pinv <PINV>                pInv or ipmq CRT coefficient. (p^-1 mod q)
      --sum-pq <SUM_PQ>            The sum of the two primes p and q
      --dlog                       Discrete logarithm attack. When c and e are swapped in the RSA encryption formula. (e^c mod n)
  -k, --key <KEY>                  Public or private key file. (RSA, X509, OPENSSH in PEM and DER formats.)
      --password <PASSWORD>        Private key password/passphrase if encrypted
      --public                     Print the public key in PEM format
      --private                    Print the private key in PEM format
      --addpassword <ADDPASSWORD>  Add a password/passphrase to the private key
      --dump                       Print all the input parameters
      --dumpkey                    Print the private RSA key variables n, e, p, q and d
      --dumpextkey                 Print the extended RSA key variables n, e, p, q, d, dP, dQ, pInv and qInv
      --factors                    Print all factors of n
  -t, --threads <THREADS>          Number of threads to use. Default: number of CPUs [default: 12]
  -a, --attack <ATTACK>            Specify attacks to run. Default: all. (e.g. --attacks ecm,wiener,sparse)
      --exclude <EXCLUDE>          Specify attacks to exclude. Default: none. (e.g. --exclude ecm,wiener,sparse)
      --list                       List all available attacks
  -h, --help                       Print help
  -V, --version                    Print version

示例

从公钥解密消息

$ rsacracker --key public.pem -c 0xdeadbeef

从n和e解密消息

$ rsacracker -c 0xdeadbeef -n 123...789 -e 65537

从n、e和其他已知值解密消息

$ rsacracker -c 0xdeadbeef -n 123...789 -e 65537 --phi 123 --dp 123 --dq 123 --qinv 123 --pinv 123

从公钥解密文件

$ rsacracker --key public.pem -f secret.txt.enc

使用参数运行特定攻击

$ rsacracker --attack known_phi -n 123...789 -e 65537 --phi 0xdeadbeef

从公钥生成私钥

$ rsacracker --key public.pem --private

从e和n生成公钥

$ rsacracker -e 65537 -n 0xdeadbeef --public

导出私钥的秘密

$ rsacracker --key private.pem --dumpkey
$ rsacracker --key private.pem --dumpextkey

从私钥中移除密码

$ rsacracker --key private.pem --password R54Cr4ck3R --private

向私钥添加密码

$ rsacracker --key private.pem --addpassword R54Cr4ck3R --private

显示n的所有因子

$ rsacracker -n 123...789 --factors

运行离散对数攻击:当c和e在RSA加密公式(e^c mod n)中交换位置时

$ rsacracker --key public.pem -c 0xdeadbeef --dlog

Docker

从dockerhub获取

docker pull skyf0l/rsacracker
docker run -it --rm -v $PWD:/data skyf0l/rsacracker [args]

或自行构建

DOCKER_BUILDKIT=1 docker build . --file Dockerfile -t rsacracker
docker run -it --rm -v $PWD:/data rsacracker [args]

许可证

许可方式为以下之一

任选其一。

贡献

除非您明确声明,否则您有意提交以包含在作品中的任何贡献,根据Apache-2.0许可证定义,应双重许可如上,不附加任何额外条款或条件。

依赖关系

~30–41MB
~788K SLoC