# 激活虚拟环境
source venv/bin/activate
# 安装所有依赖
pip install -r requirements.txt# 方法1:使用启动脚本(推荐)
python3 run_gui.py
# 方法2:直接运行GUI
python3 rsa_gui.py- 功能:自动识别和解密RSA密文
- 输入:公钥文件、密文文件
- 支持:自动在线分解、多种密文格式
- 使用场景:CTF比赛中的快速解题
操作步骤:
- 选择RSA公钥文件(.pub, .pem格式)
- 选择密文文件(.b64, .txt格式)
- 可选:手动输入RSA参数
- 点击"开始解密"按钮
- 查看解密结果
- 功能:多种经典RSA攻击方法
- 包含攻击:
- 小指数攻击 (e=3)
- Wiener攻击(低私钥指数)
- 共模攻击
- Håstad广播攻击
- 费马分解攻击
- 低私钥指数攻击
操作步骤:
- 选择攻击方法
- 输入相应的RSA参数
- 点击"执行攻击"或"运行演示"
- 查看攻击结果
- 功能:分解RSA模数n
- 支持方法:
- 在线分解(FactorDB)
- 试除法
- 费马分解
- Pollard's Rho算法
- 自动选择
操作步骤:
- 输入要分解的数字
- 选择分解方法
- 调整参数设置
- 点击"开始分解"
- 查看分解结果
- 功能:完整的RSA加密解密工具
- 包含功能:
- 生成RSA密钥对
- 加密消息
- 解密消息
- 分析公钥
操作步骤:
- 选择要执行的功能
- 设置相关参数
- 输入必要的数据
- 点击"执行"
- 查看执行结果
- 功能:详细的使用教程和示例
- 包含内容:
- 快速开始指南
- 各种攻击方法示例
- 常见问题解答
- 注意事项
- 支持拖拽文件到输入框
- 自动检测文件格式
- 支持多种编码格式(base64, hex, int)
- 自动尝试在线分解
- 小指数攻击:适用于e=3且消息很小
- Wiener攻击:适用于私钥指数d相对较小
- 共模攻击:需要两个使用相同n的密文
- 广播攻击:需要多个使用相同e不同n的密文
- 在线分解:快速,适用于已知的分解
- 试除法:适用于有小质因数的情况
- 费马分解:适用于两个质因数接近的情况
- 自动选择:推荐,会依次尝试各种方法
# 如果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# 给脚本添加执行权限
chmod +x run_gui.py- 确保所有Python文件都在同一目录
- 检查虚拟环境是否正确激活
- 验证所有依赖是否正确安装
- 合法使用:本工具仅供学习和合法的CTF比赛使用
- 网络连接:在线分解功能需要网络连接
- 性能考虑:大数分解可能需要较长时间
- 文件安全:不要使用真实的私钥文件进行测试
在因数分解工具中,可以调整各种算法的迭代限制:
- 试除法限制:控制检查的质数范围
- 费马迭代限制:控制费马分解的最大迭代次数
- Pollard's Rho限制:控制概率算法的尝试次数
在RSA工具集中,可以生成不同长度的密钥:
- 512位:测试用,不安全
- 1024位:较快,安全性一般
- 2048位:推荐,平衡安全性和性能
- 4096位:高安全性,但速度较慢
如果遇到问题,请检查:
- Python版本是否为3.7+
- 所有依赖是否正确安装
- 文件权限是否正确
- 网络连接是否正常
更多帮助请参考项目README.md文件。