Skip to content

Latest commit

 

History

History
173 lines (138 loc) · 4.15 KB

File metadata and controls

173 lines (138 loc) · 4.15 KB

RSA CTF工具集 - GUI使用指南

🚀 快速开始

1. 安装依赖

# 激活虚拟环境
source venv/bin/activate

# 安装所有依赖
pip install -r requirements.txt

2. 启动GUI界面

# 方法1:使用启动脚本(推荐)
python3 run_gui.py

# 方法2:直接运行GUI
python3 rsa_gui.py

📋 功能模块

🚀 快速解密

  • 功能:自动识别和解密RSA密文
  • 输入:公钥文件、密文文件
  • 支持:自动在线分解、多种密文格式
  • 使用场景:CTF比赛中的快速解题

操作步骤:

  1. 选择RSA公钥文件(.pub, .pem格式)
  2. 选择密文文件(.b64, .txt格式)
  3. 可选:手动输入RSA参数
  4. 点击"开始解密"按钮
  5. 查看解密结果

⚔️ RSA攻击

  • 功能:多种经典RSA攻击方法
  • 包含攻击
    • 小指数攻击 (e=3)
    • Wiener攻击(低私钥指数)
    • 共模攻击
    • Håstad广播攻击
    • 费马分解攻击
    • 低私钥指数攻击

操作步骤:

  1. 选择攻击方法
  2. 输入相应的RSA参数
  3. 点击"执行攻击"或"运行演示"
  4. 查看攻击结果

🧮 因数分解

  • 功能:分解RSA模数n
  • 支持方法
    • 在线分解(FactorDB)
    • 试除法
    • 费马分解
    • Pollard's Rho算法
    • 自动选择

操作步骤:

  1. 输入要分解的数字
  2. 选择分解方法
  3. 调整参数设置
  4. 点击"开始分解"
  5. 查看分解结果

🔧 RSA工具集

  • 功能:完整的RSA加密解密工具
  • 包含功能
    • 生成RSA密钥对
    • 加密消息
    • 解密消息
    • 分析公钥

操作步骤:

  1. 选择要执行的功能
  2. 设置相关参数
  3. 输入必要的数据
  4. 点击"执行"
  5. 查看执行结果

📚 使用示例

  • 功能:详细的使用教程和示例
  • 包含内容
    • 快速开始指南
    • 各种攻击方法示例
    • 常见问题解答
    • 注意事项

💡 使用技巧

1. 快速解密技巧

  • 支持拖拽文件到输入框
  • 自动检测文件格式
  • 支持多种编码格式(base64, hex, int)
  • 自动尝试在线分解

2. 攻击方法选择

  • 小指数攻击:适用于e=3且消息很小
  • Wiener攻击:适用于私钥指数d相对较小
  • 共模攻击:需要两个使用相同n的密文
  • 广播攻击:需要多个使用相同e不同n的密文

3. 分解方法选择

  • 在线分解:快速,适用于已知的分解
  • 试除法:适用于有小质因数的情况
  • 费马分解:适用于两个质因数接近的情况
  • 自动选择:推荐,会依次尝试各种方法

🔍 故障排除

1. 依赖问题

# 如果PyQt6安装失败,尝试:
pip install PyQt6 --index-url https://pypi.org/simple/

# 如果gmpy2安装失败,尝试:
# macOS:
brew install gmp mpfr libmpc
pip install gmpy2

# Ubuntu:
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev
pip install gmpy2

2. 文件权限问题

# 给脚本添加执行权限
chmod +x run_gui.py

3. 模块导入问题

  • 确保所有Python文件都在同一目录
  • 检查虚拟环境是否正确激活
  • 验证所有依赖是否正确安装

⚠️ 注意事项

  1. 合法使用:本工具仅供学习和合法的CTF比赛使用
  2. 网络连接:在线分解功能需要网络连接
  3. 性能考虑:大数分解可能需要较长时间
  4. 文件安全:不要使用真实的私钥文件进行测试

🔧 高级配置

自定义分解限制

在因数分解工具中,可以调整各种算法的迭代限制:

  • 试除法限制:控制检查的质数范围
  • 费马迭代限制:控制费马分解的最大迭代次数
  • Pollard's Rho限制:控制概率算法的尝试次数

自定义密钥长度

在RSA工具集中,可以生成不同长度的密钥:

  • 512位:测试用,不安全
  • 1024位:较快,安全性一般
  • 2048位:推荐,平衡安全性和性能
  • 4096位:高安全性,但速度较慢

📞 技术支持

如果遇到问题,请检查:

  1. Python版本是否为3.7+
  2. 所有依赖是否正确安装
  3. 文件权限是否正确
  4. 网络连接是否正常

更多帮助请参考项目README.md文件。