弱い公開鍵からデータを復号し、秘密鍵を回復するRSAマルチアタックツール。
このツールは、弱い公開鍵からデータを復号し、対応する秘密鍵の回復を試みるためのユーティリティです。RSA暗号を解読するための包括的な攻撃オプションを提供します。
RSAのセキュリティは整数の素因数分解の複雑さに依存しています。このプロジェクトは複数の素因数分解アルゴリズムを組み合わせて、復号能力を高めています。
注記: このツールは主に教育目的で使用されます。すべての鍵が妥当な時間内に破られるわけではありません。このツールはRSA教科書的な半素数合成モジュラス(マルチプライムではない)のみをサポートしています。
高度な素因数分解については、msieve、yafu、またはcado-nfsを検討してください。
RsaCtfTool --publickey key.pub --private # 秘密鍵を回復
RsaCtfTool --publickey key.pub --decryptfile ciphertext # ファイルを復号
RsaCtfTool --publickey key.pub --attack wiener # 特定の攻撃を使用
完全な使用方法については、RsaCtfTool --help を実行してください。
python3 -m venv venv
source venv/bin/activate
pip install -e .
docker build -t rsactftool/rsactftool .
docker run -it --rm -v $PWD:/data rsactftool/rsactftool <arguments>
RsaCtfTool --publickey key.pub --private
RsaCtfTool --publickey key.pub --decryptfile ciphertext
RsaCtfTool --publickey "*.pub" --private
RsaCtfTool --createpub -n 7828374823761928712873... -e 65537
RsaCtfTool --dumpkey --key key.pub
RsaCtfTool --dumpkey --ext --key key.pub # CRTパラメータを含む
RsaCtfTool --publickey key.pub --ecmdigits 25 --private
RsaCtfTool --publickey key.pub --attack wiener --private
RsaCtfTool --publickey key.pub --attack factordb --private
RsaCtfTool --publickey "*.pub" --private --sendtofdb
RsaCtfTool --isroca --publickey "examples/*.pub"
RsaCtfTool --convert_idrsa_pub --publickey ~/.ssh/id_rsa.pub
その他の例については、pytest tests/ --collect-only を実行して利用可能なテストを確認してください。
テストはpytestを使用し、tests/ ディレクトリにあります。
pytest tests/ # すべてのテストを実行
pytest tests/ -m "not slow" # 遅いテストをスキップ
pytest tests/ -v # 詳細モード
pytest tests/ -k "fermat" # "fermat" に一致するテストを実行
@pytest.mark.slow - 遅い素因数分解テスト@pytest.mark.network - ネットワークが必要なテスト (Factordb)@pytest.mark.attack - 攻撃統合テストコントリビューションの前に、CONTRIBUTING.md および CODE_OF_CONDUCT.md をお読みください。
元のプロジェクトはGPLv3でリリースされました。このコードはMITライセンスのもとで再ライセンスされています。
| メソッド | 説明 |
|---|
| Fermat | 近接したpとq |
| Pollard Rho | 一般的な素因数分解 |
| Elliptic Curve (ECM) | 滑らかな数 |
| Pollard p-1 | 滑らかな数 |
| Williams p+1 | 滑らかな数 |
| ROCA | 脆弱な鍵生成 |
| SQUFOF | 平方形式 |
| Quadratic Sieve | 一般的な素因数分解 |
| Dixon | ランダムな平方数 |
| Factordb | オンライン素因数分解データベース |
| 共通因子攻撃 | 因子を共有する鍵 |
| GCD攻撃 | Mersenne, Primorial, Fibonacciなど |
| ファイル | 説明 |
|---|
test_number_theory.py | 数論関数 (gcd, is_prime, phi など) |
test_algos.py | 素因数分解アルゴリズム (fermat, brent, pollard_rho など) |
test_keys_wrapper.py | PublicKey/PrivateKey クラス |
test_utils.py | ユーティリティ関数 |
test_pubkey_decode.py | RSA公開鍵のデコード |
test_attacks.py | 攻撃統合テスト |
test_regression.py | バグ修正の回帰テスト |
test_exceptions.py | カスタム例外 |
conftest.py | pytestの設定とフィクスチャ |