整数分解与离散对数算法解析
1. 整数分解算法
1.1 SQUFOF 算法
SQUFOF 算法是目前最强大的算法之一。对于一个待分解的数 $a$,该算法的运行时间约为 $a^{1/4}$。虽然这仍然是指数级的(以 $a$ 的位数衡量),但比其他方法要好一些。
1.2 椭圆曲线分解法(ECM)
1.2.1 原理
椭圆曲线分解法(ECM)的工作原理与 Pollard 的 $p - 1$ 算法类似,不同之处在于,它使用基于随机选择的椭圆曲线的椭圆曲线群,而不是模 $p$ 的整数域。由于许多相同的原理适用于椭圆曲线群,Pollard 的 $p - 1$ 算法背后的思想在这里同样适用。其优势在于操作往往耗时更少(椭圆曲线所需的较小数字的乘法和加法比基于指数的群乘法中的较大数字更容易)。
1.2.2 步骤
假设我们有一个小于某个界限 $B$ 的所有素数列表 ${p_1, p_2, p_3, …}$,以下是 ECM 算法的具体步骤:
1. 生成随机数 $A$ 和 $B$,满足 $0 \leq A < a$ 且 $0 \leq B < a$,从而得到椭圆曲线 $y^2 = x^3 + Ax + B \pmod{a}$。
2. 在椭圆曲线上选择一个非无穷远点 $P$。例如,选择一个小于 $a$ 的随机正整数 $x$,将其代入 $x^3 + Ax + B$ 并求解平方根以得到 $y$ 值。
3. 计算判别式 $(4A^3 + 27B^2)$ 与 $a$ 的最大公约数 $g$。如果 $g = a$,则生成新的 $A$、$B$ 和 $P$ 并重新尝试;如果 $g \n
超级会员免费看
订阅专栏 解锁全文
44

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



