遇见数据集

enigma

收藏
Hugging Face2026-06-15 更新2026-06-16 收录
官方服务:

资源简介:

该数据集是一个用于解决特定RSA因数分解挑战的软件解决方案包,旨在破解一个460位(约139位十进制数字)的RSA半素数。它针对在线挑战平台设计,需在4小时计算时限和256 MB临时存储空间约束下运行。解决方案基于CADO-NFS工具包,采用General Number Field Sieve(GNFS)算法,流程包括轻量级算法尝试、GMP-ECM预测试和完整的CADO-NFS步骤(如多项式选择、格筛等)。包中包含主程序脚本(breaking_rsa.py)、Dockerfile和平台接口代码,通过智能存储策略应对有限资源挑战。适用于密码学研究和教育,演示大规模整数因数分解算法在实际约束下的实现。

This dataset is a software solution package for addressing a specific RSA factorization challenge, which aims to crack a 460-bit (roughly 139 decimal digits) RSA semi-prime. It is tailored for online challenge platforms, and is required to operate under the constraints of a 4-hour computation time limit and 256 MB of temporary storage. The solution is built upon the CADO-NFS toolkit, leveraging the General Number Field Sieve (GNFS) algorithm. Its workflow encompasses lightweight algorithm trials, GMP-ECM pre-tests, and full CADO-NFS procedures including polynomial selection, lattice sieving, and more. The package contains the main program script (breaking_rsa.py), Dockerfile, and platform interface code, and tackles limited resource constraints via intelligent storage strategies. It is applicable to cryptography research and education, showcasing the implementation of large-scale integer factorization algorithms under practical operational constraints.

创建时间:
2026-06-09
原始信息汇总

数据集概述:Breaking RSA — GNFS (CADO-NFS) solver

这是一个针对 Enigma SN63 Breaking RSA 挑战的专用解决方案,旨在解决 460-bit(约139位十进制数字) 的RSA挑战。该方案特别针对现有方案(YAFU SIQS)在4小时时限内无法完成的问题而设计。

核心特性

  • 算法:采用通用数域筛法(GNFS),相较于现有方案(YAFU SIQS)使用的二次筛法(QS),在100-110位以上的数字上性能显著提升,是139位RSA挑战的当前最优算法。
  • 目标:在给定硬件约束(24核CPU、约85GB RAM、无root权限、256MB可写tmpfs)下,于4小时内完成460位RSA分解。

算法流水线

阶段 方法 目的
0 试除法、完全平方检验、有界Pollard ρ(Brent)、短Pollard p−1 快速处理小规模或退化输入
0.5 短GMP-ECM预测试(ECM_PRETEST 低成本的保险措施,用于处理意外小或不平衡的因子
1 CADO-NFS(多项式选择→格筛→过滤→线性代数→平方根) 针对真实挑战规模的核心引擎

关键挑战与解决方案:256MB可写空间

该方案面临的主要瓶颈是验证器提供仅256MB的可写/tmp(tmpfs),而139位GNFS需要数GB的临时空间。为此引入了三级暂存空间方案:

  1. CADO_WORKDIR:用户显式覆盖设置(例如使用主机挂载的ramdisk),最可靠。
  2. 现有大tmpfs:自动检测并使用已有的、空间充足的tmpfs(如/dev/shm/tmp)。
  3. 自建RAM tmpfs:通过unsharemount无root权限地在内存中创建一个大尺寸tmpfs(默认60GB)。这是唯一无需root权限获取大容量可写空间的方法,但依赖于验证器主机对无特权用户命名空间和tmpfs挂载的支持。

GPU支持

  • 主要瓶颈(筛选阶段,耗时70-85%)为CPU密集型任务,GPU不加速此阶段。
  • GPU(如RTX PRO 6000)可辅助多项式选择阶段,通过设置USE_GPU_POLYSELECT=1启用,但这属于可选的增强功能。

环境变量

变量 默认值 说明
CADO_NFS /opt/cado-nfs/cado-nfs.py CADO主程序路径
CADO_THREADS os.cpu_count() CADO工作线程数
CADO_WORKDIR 自动(RAM) 强制指定暂存工作目录
CADO_EXTRA_ARGS 传递给cado-nfs.py的额外参数
CADO_TIMEOUT CADO运行的软超时时间(秒)
SCRATCH_MIN_GB 3 信任现有tmpfs所需的最小可用空间(GB)
RAMDISK_SIZE_GB 60 自建tmpfs的大小(GB)
USE_USERNS_RAMDISK 1 是否尝试使用无特权用户命名空间创建ramdisk
USE_GPU_POLYSELECT 0 是否使用CADO的CUDA多项式选择
ECM_PRETEST / ECM_CURVES / ECM_B1 1 / 40 / 250000 阶段0.5的ECM参数
RHO_BUDGET 2000000 Pollard ρ算法的预算

构建与测试

  • 构建:使用Docker构建,并会克隆GMP-ECM和CADO-NFS官方仓库,在构建时执行CADO的烟雾测试以验证正确性。
  • 本地测试
    • 管线与小型N测试:直接运行breaking_rsa.py脚本,用于验证输入解析、阶段0分解、输出协议等。
    • 工作台测试:使用Enigma仓库的workbench模块,可指定不同难度进行模拟测试。

当前状态

  • ✅ 封装逻辑、输入输出协议、自验证、阶段0和0.5、降级处理及暂存空间逻辑均已实现并通过本地测试。
  • ⚠️ 尚未在真实硬件上验证
    1. 在24核CPU上,460位的CADO-NFS能否在4小时内完成。
    2. 无权限的RAM-tmpfs方案是否被验证器沙箱允许。使用CADO_WORKDIR可规避风险。
搜集汇总
数据集介绍
enigma 数据集图片
构建方式
enigma数据集围绕破解460位RSA挑战而构建,其核心解法基于通用数域筛法(GNFS),以替代在此规模下效率不足的二次筛法(SIQS)。构建过程采用分阶段流水线设计:阶段0集成试除法、完全平方检测、Brent改进的Pollard ρ算法及短Pollard p−1方法,用于快速处理小规模或退化输入;阶段0.5引入简短的GMP-ECM预测试,以低成本排除意外的小因子或不平衡因子;阶段1则部署CADO-NFS工具链,涵盖多项式选择、格筛、过滤、线性代数与平方根等完整流程,作为应对实际挑战规模的核心引擎。此外,数据集通过Dockerfile封装GMP-ECM与CADO-NFS的构建环境,并嵌入平台接口代码,确保求解器在验证环境中的可移植性与一致性。
使用方法
使用enigma数据集时,可通过Docker构建可复现环境,指定CADO-NFS与GMP-ECM的版本标签,并完成构建时正确性验证。本地测试分为两级:小规模测试直接运行`breaking_rsa.py`并传入60位难度参数,仅调用阶段0即可快速验证输入解析、输出协议与自验证逻辑;全规模测试则需使用Enigma工作台,以`--mode docker --difficulty 460`参数启动,要求验证器提供24核CPU、85 GB内存及支持用户命名空间的内核配置。关键环境变量如`CADO_WORKDIR`、`RAMDISK_SIZE_GB`与`USE_USERNS_RAMDISK`可调整存储策略,而`CADO_THREADS`和`ECM_PRETEST`等参数则用于优化计算资源分配。GPU的利用为可选增强,通过设置`USE_GPU_POLYSELECT=1`启用CUDA加速多项式选择,但核心筛法仍依赖CPU。
背景与挑战
背景概述
Enigma数据集由研究者针对RSA密码破解挑战构建,其核心任务在于分解460比特(约139位十进制)的半素数,以验证大规模整数分解算法的实际效能。该数据集创建于现代密码学安全性评估的背景下,聚焦于超越传统二次筛法(SIQS)能力边界的难题,旨在推动通用数域筛法(GNFS)在受限资源环境下的工程化部署。研究人员通过整合CADO-NFS与GMP-ECM工具链,设计了一套可复现的解决方案,重点解决了高难度RSA挑战中存储空间与时间窗口的双重瓶颈。该数据集对密码学社区的影响深远,为评估分解算法的实用边界提供了标准化测试平台,同时暴露了资源受限环境中高性能计算与密码分析之间的现实矛盾。
当前挑战
Enigma数据集面临的核心挑战源于其研究问题本身的高难度特性:在460比特尺度上,半素数分解已远超出经典二次筛法的可行范围,而通用数域筛法虽为理论最优解,却因计算资源需求巨大而难以在4小时时限内完成。构建过程中的关键困难在于存储限制——验证环境仅提供256MB可写tmpfs,而GNFS在139位数字的分解过程中需生成数GB的中间文件,导致直接运行即告失败。为克服此障碍,研究者设计了分层临时存储机制,优先尝试使用主机挂载的RAM盘或现有tmpfs,最终依赖未提权用户命名空间自建RAM tmpfs,但该方案受到容器沙箱策略的严格制约,若seccomp规则禁止mount系统调用,则需人工调整CADO_WORKDIR路径。此外,GPU在GNFS流程中的加速作用有限,因筛法阶段(占工作量的70-85%)依赖CPU,仅多项式选择等少数阶段可利用CUDA优化,实践表明CPU-only的CADO基线方案更加稳健。
常用场景
经典使用场景
在密码学与信息安全领域,enigma数据集专为破解460比特(约139位十进制数)RSA模数而设计。其经典用途是作为通用数域筛法(GNFS)求解器的高效实现,通过CADO-NFS工具链完成大整数分解任务。该数据集封装了完整的分解流水线,涵盖从试除、Pollard ρ算法到ECM预测试,直至核心的GNFS多项式选择、格筛、过滤、线性代数和平方根阶段。它特别适用于评估和验证在严格资源约束下(如4小时时限、256 MB临时空间)对中等规模RSA模数的破解能力,为密码学研究者提供了可复现的基准测试平台。
解决学术问题
enigma数据集直击大整数分解这一计算数论与密码学的核心难题。它通过实现比二次筛法(QS)渐近效率更高的GNFS算法,将可分解模数的阈值从约100-110位十进制数提升至139位,突破了传统方法在中等规模RSA挑战中的性能瓶颈。该数据集解决了在有限时间窗口和存储资源下,如何利用算法跃迁实现高质量分解的学术问题,为评估RSA密码系统实际安全性提供了量化依据。其意义在于揭示了现代分解工具(如CADO-NFS)在合理计算预算下的潜力,推动了对RSA密钥长度与安全裕度关系的重新审视。
实际应用
在实际应用中,enigma数据集主要用于密码系统的安全审计与强度验证。安全分析师可借助该数据集模拟攻击者视角,测试不同长度RSA密钥(特别是接近460比特)能否在规定时间内被分解,从而评估组织部署的RSA模数是否满足安全策略要求。此外,该数据集还可作为高性能计算环境下密码破解挑战赛的基准,用于比较不同分解工具(如YAFU、CADO-NFS)的效能差异。其提供的Docker容器化封装降低了部署复杂度,使得安全团队能在标准硬件上复现攻击实验,为密码策略制定提供实证数据支持。
数据集最近研究
最新研究方向
该数据集聚焦于大整数分解的前沿挑战,针对460位(约139十进制位)RSA模数的破解任务,创新性地提出了基于通用数域筛法(GNFS)的高效求解方案,以替代传统二次筛法(SIQS)在突破百位后性能骤降的困境。研究核心在于突破计算资源的物理瓶颈,通过自举临时文件系统或宿主挂载的RAM磁盘,巧妙规避验证环境仅256MB可写空间的严格限制,使得GNFS流水线得以在内存中完整运行。这一进展不仅直接回应了当前密码学社区对于后量子时代前RSA安全边界的探求,也与全球范围内关于大整数分解极限的热点讨论紧密相连——当此前YAFU SIQS需要数日才能完成的计算被压缩至4小时可行窗口内,实质性地推动了因子分解领域的状态跃迁,对密码系统强度评估与安全参数重定义具有深远意义。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务