Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
RsaCtfTool — RSA攻撃ツール(主にCTF向け) - 弱い公開鍵から秘密鍵を取得し、および/またはデータを復号する | Kitploit
ツール/GitHubGitHub/rsactftool/rsactftool
暗号化/復号化ツール脆弱性分析ハッシュ分析暗号化CTF学習と教育暗号化 第12位CTF 第4位暗号化/復号化ツール 第13位ハッシュ分析 第7位
7.1k9929220日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
GitHubrsactftool/rsactftool

RsaCtfTool

RSA攻撃ツール(主にCTF向け) - 弱い公開鍵から秘密鍵を取得し、および/またはデータを復号する

リポジトリを見る

RsaCtfTool

Test Ruff CodeQL
GitHub issues GitHub forks GitHub stars GitHub license GitHub contributors

弱い公開鍵からデータを復号し、秘密鍵を復元するRSAマルチ攻撃ツール。

概要

このツールは、弱い公開鍵からデータを復号し、対応する秘密鍵の復元を試みるために設計されたユーティリティです。RSA暗号を解読するための包括的な攻撃オプションを提供します。

RSAのセキュリティは整数因数分解の複雑さに依存しています。このプロジェクトは複数の因数分解アルゴリズムを組み合わせて復号能力を強化します。

注記: このツールは主に教育目的を意図しています。すべての鍵が妥当な時間内に破れるわけではありません。このツールはRSA教科書型の半素数合成 modulus(マルチプライムではない)のみをサポートします。

高度な因数分解には、msieve、yafu、またはcado-nfsの使用を検討してください。

使用方法

RsaCtfTool --publickey key.pub --private                   # Recover private key
RsaCtfTool --publickey key.pub --decryptfile ciphertext    # Decrypt file
RsaCtfTool --publickey key.pub --attack wiener             # Use specific attack

完全な使用方法については、次を実行してください: RsaCtfTool --help

インストール

前提条件

  • Python 3.9+
  • SageMath (オプションですが推奨)

仮想環境 (推奨)

python3 -m venv venv
source venv/bin/activate
pip install -e .

Docker

docker build -t rsactftool/rsactftool .
docker run -it --rm -v $PWD:/data rsactftool/rsactftool <arguments>

攻撃

非因数分解攻撃

  • Wienerの攻撃
  • Hastadの攻撃(小さな公開指数)
  • Boneh-Durfee(小さな秘密指数 d < n^0.292)
  • 同じ n、巨大な e
  • 小さなCRT指数
  • 部分的な q / 部分的な d
  • dp / dq の漏洩(--dp または --dq)
  • Bellcore RSA-CRTフォールト攻撃(--fault-sig と --fault-msg または --good-sig を併用)
  • 格子基底縮小

Coppersmith攻撃

Coppersmithの格子基底縮小法は、剰余多項式の小さな根を求解します(格子LLL基底縮小にはオプションのSageMath依存関係が必要です)。

攻撃必要なフラグ実行可能性の限界コマンド例
stereotyped_message--sm-len および(--sm-prefix または --sm-suffix)$e \le 17$、$X < N^{1/e}$RsaCtfTool --publickey key.pub --decryptfile cipher.bin --attack stereotyped_message --sm-prefix "FLAG:" --sm-len 16
short_pad--decryptfile c1,c2$e \le 5$、$\Delta < N^{1/e^2}$RsaCtfTool --publickey key.pub --decryptfile c1.bin,c2.bin --attack short_pad
partial_p--p-high および --p-unknown-bits$\text{unknown_bits} \le \lfloor N/4 \rfloor + 2$($\approx N^{0.25}$)RsaCtfTool --publickey key.pub --attack partial_p --p-high 0x1234... --p-unknown-bits 212 --private
partial_d--key(部分的な秘密鍵)、オプションで --d-known-bits$d$ の下位ビットが既知RsaCtfTool --key key.priv --partial --attack partial_d --d-known-bits 20
lattice--key($p$ の近似値を含む部分的な鍵)因数 $p$ の近似値RsaCtfTool --key key.priv --partial --attack lattice
smallfraction--publickey$p/q$ が小さな分数 $a/b$ に近いRsaCtfTool --publickey key.pub --attack smallfraction --private

テキストパラメータ(--sm-prefix、--sm-suffix)に関する注意: 0x または 0X で始まる値は16進バイト文字列として解析され、それ以外の文字列入力はすべてUTF-8 / ASCIIテキストのバイト列として解析されます。

整数因数分解手法

手法説明
Fermatp と q が近い場合
Pollard Rho一般的な因数分解
楕円曲線法(ECM)滑らかな数
Pollard p-1滑らかな数
Williams p+1滑らかな数
ROCA脆弱な鍵生成
SQUFOF平方形式
二次篩法一般的な因数分解
Dixonランダム平方
Factordbオンライン因数分解データベース
共通因数攻撃因数を共有する鍵
GCD攻撃メルセンヌ数、素数階乗、フィボナッチ数など

CTF固有の手法

  • Noveltyprimes
  • 過去のCTF素数
  • 仕掛けのある素数
  • 非RSA(b^x形式)
  • Z3定理証明器
  • Wolfram Alpha

例

秘密鍵の復元

RsaCtfTool --publickey key.pub --private

ファイルを復号する

RsaCtfTool --publickey key.pub --decryptfile ciphertext

複数のキーへの攻撃

RsaCtfTool --publickey "*.pub" --private

n と e から公開鍵を作成する

RsaCtfTool --createpub -n 7828374823761928712873... -e 65537

キーパラメータのダンプ

RsaCtfTool --dumpkey --key key.pub
RsaCtfTool --dumpkey --ext --key key.pub  # Include CRT parameters

ECMによる因数分解

RsaCtfTool --publickey key.pub --ecmdigits 25 --private

特定の攻撃を使用する

RsaCtfTool --publickey key.pub --attack wiener --private
RsaCtfTool --publickey key.pub --attack factordb --private

結果をFactordbに送信する

RsaCtfTool --publickey "*.pub" --private --sendtofdb

ROCA 脆弱性のチェック

RsaCtfTool --isroca --publickey "examples/*.pub"

SSH キーを PEM に変換

RsaCtfTool --convert_idrsa_pub --publickey ~/.ssh/id_rsa.pub

その他の例については、pytest tests/ --collect-only を実行して利用可能なテストを確認してください。

テスト

テストは pytest を使用しており、tests/ にあります。

テストの実行

pytest tests/                 # Run all tests
pytest tests/ -m "not slow"   # Skip slow tests
pytest tests/ -v              # Verbose mode
pytest tests/ -k "fermat"     # Run tests matching "fermat"

テストマーカー

  • @pytest.mark.slow - 低速な因数分解テスト
  • @pytest.mark.network - ネットワーク(Factordb)を必要とするテスト
  • @pytest.mark.attack - 攻撃の統合テスト

テストファイル

ファイル説明
test_number_theory.py数論関数(gcd、is_prime、phi など)
test_algos.py因数分解アルゴリズム(fermat、brent、pollard_rho など)
test_keys_wrapper.pyPublicKey/PrivateKey クラス
test_utils.pyユーティリティ関数
test_pubkey_decode.pyRSA 公開鍵のデコード
test_attacks.py攻撃の統合テスト
test_regression.pyバグ修正のリグレッションテスト
test_exceptions.pyカスタム例外
conftest.pypytest の設定とフィクスチャ

コントリビューション

コントリビューションを行う前に、ガイドラインについては CONTRIBUTING.md を、CODE_OF_CONDUCT.md をお読みください。

ライセンス

元のプロジェクトは GPLv3 の下でリリースされていました。このコードは MIT License の下で再ライセンスされています。

謝辞

ツールをダウンロード