RSA 加密系统:分解方法与安全攻防
1. 其他分解方法概述
在整数分解领域,有多种不同的方法,它们各自有其特点和运行时间。通常,分解算法的运行时间依赖于特定的假设和参数,例如二次筛法中因子基的大小选择,这使得对其运行时间的分析往往只能是启发式的。
一般来说,某种分解方法的成功概率和运行时间之间存在权衡。以二次筛法为例,选择较大的因子基 $B$ 会增加找到 $B$ - 平滑值 $\sigma(x)$ 的概率,从而提高成功分解 $n$ 的概率。但另一方面,因子基越大,得到的同余式就越多,求解相应同余方程组所需的时间也就越长。
通过应用某些数论结果并做出一些有用的假设,可以得出二次筛法处理输入 $n$ 的时间复杂度为 $O\left(e^{(1 + o(1))\sqrt{\ln n \ln \ln n}}\right)$,其中 $\ln n$ 表示 $n$ 的自然对数。特别地,利用素数定理可以估计因子基的大小,即 $\vert\vert B \vert\vert = 1 + \pi(B) \approx B / \ln B$,这里 $B$ 是预先指定的界限,$\pi(B)$ 表示小于等于 $B$ 的素数的个数。
以下是一些选定分解算法处理输入 $n$ 的最佳已知运行时间总结:
| 算法 | 运行时间 |
| — | — |
| Pollard 的 $p - 1$ 算法 | $O(B \log B(\log n)^2 + (\log n)^3)$ |
| 二次筛法 | $O\left(e^{(1 + o(1))\sqrt{\ln n \ln \ln n}}\right)$ |
| 数域筛法 | $O\left(e^{
超级会员免费看
订阅专栏 解锁全文
1075

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



