整数分解算法对比表
| 算法名称 | 时间复杂度 | 适用位数 | 核心原理 | 优点 | 缺点 | 典型案例 |
|---|---|---|---|---|---|---|
| 试除法 | $O(\sqrt{n})$ | <15位 | 逐个试除≤$\sqrt{n}$的素数 | 实现简单 | 极慢 | $143=11\times13$ |
| 费马分解法 | $O(n)$ | 15-25位 | $n=a^2-b^2$ | 平方数附近快 | 一般情况慢 | $8051=97\times83$ |
| 连分数法(CFRAC) | $e^{O(\sqrt{\ln n \ln \ln n})}$ | 40-70位 | 连分数逼近 | 比Dixon快 | 内存大 | 50-70位分解 |
| Pollard Rho | $O(n^{1/4})$ | 15-40位 | 随机游走找循环 | 内存低 | 概率性 | $10403=101\times103$ |
| Pollard p-1 | $O(B \log B)$ | 20-50位 | 利用$p-1$平滑性 | 找特殊因子 | 依赖$p-1$性质 | RSA弱密钥 |
| Williams p+1 | 同p-1 | 20-50位 | 利用$p+1$平滑性 | 补充p-1 | 更局限 | 较少使用 |
| 欧拉分解法 | $O(n^{1/2})$ | 15-25位 | $n=a^2+b^2$ | 理论意义 | 效率低 | 教学示例 |
| SQUFOF | $O(n^{1/4})$ | 20-50位 | 连分数平方形式 | 内存极低 | 实现复杂 | $10^{15}$内数字 |
| Dixon算法 | 同CFRAC | 30-50位 | 随机平滑数 | 理论奠基 | 已被取代 | 教学使用 |
| 二次筛法(QS) | $e^{O(\sqrt{\ln n \ln \ln n})}$ | 50-100位 | 筛法找平滑数 | 百位内最佳 | >100位慢 | RSA-129 |
| MPQS | 优化QS | 50-130位 | 多项式优化 | 比QS快2倍 | 更复杂 | RSA-130 |
| SIQS | 优化QS | 50-130位 | 自初始化优化 | 最快QS变种 | 最难实现 | 挑战数字 |
| ECM | $e^{O(\sqrt{\ln p \ln \ln p})}$ | 50-200+位 | 椭圆曲线阶数 | 找小因子强 | 不保证成功 | 248位数因子 |
| GNFS | $e^{O((\ln n)^{1/3})}$ | 100+位 | 数域多项式 | 大数标准 | 需超算 | RSA-250 |
| SNFS | 优化GNFS | 100+位 | 特殊形式优化 | 比GNFS快10倍 | 仅限特例 | $2^{1039}-1$ |
| Shor算法 | $O((\log n)^3)$ | 任意位 | 量子傅里叶变换 | 理论最快 | 需量子计算机 | $15=3\times5$ |
----------------------------------
工具:
YAFU - Quadratic Sieves (SIQS/MPQS/QS), Elliptic Curve Method (ECM), P-1, P+1, Squfof, Rho, and Fast Sieve of Eratosthenes
MSIEVE - Self-Initializing Quadratic Sieve (SIQS) and Number Field Sieve (GNFS/SNFS)
GMP-ECM - Elliptic Curve Method (ECM), P-1, P+1
GGNFS - Number Field Sieve (GNFS/SNFS)
CADO-NFS -CADO-NFS是C / C ++中数字字段筛选(NFS)算法的完整实现,用于分解整数并计算有限字段中的离散对数。网址:https://cado-nfs.gitlabpages.inria.fr/ https://gitlab.inria.fr/cado-nfs/cado-nfs
网页:
https://gilchrist.great-site.net/jeff/factoring/index.html?i=2
https://www.alpertron.com.ar/JAVAPROG.HTM
2190

被折叠的 条评论
为什么被折叠?



