整数分解算法:Pollard’s p - 1与平方差分解法
1. 引言
在密码学领域,尤其是RSA加密系统中,大整数的分解问题至关重要。一方面,RSA系统的运行需要大素数;另一方面,其安全性依赖于分解大整数的困难性。接下来,我们将详细介绍两种重要的整数分解算法:Pollard’s p - 1分解算法和平方差分解法。
2. Pollard’s p - 1分解算法
2.1 算法原理
假设我们要分解的数为 (N = pq),目标是找出素因子 (p) 和 (q)。若能找到一个整数 (L),使得 (p - 1) 能整除 (L),而 (q - 1) 不能整除 (L),即存在整数 (i)、(j) 和非零整数 (k) 满足 (L = i(p - 1)) 和 (L = j(q - 1) + k)。
取一个随机整数 (a) 并计算 (a^L),根据费马小定理:
- (a^L = a^{i(p - 1)} = (a^{p - 1})^i \equiv 1^i \equiv 1 \pmod{p})
- (a^L = a^{j(q - 1) + k} = a^k(a^{q - 1})^j \equiv a^k \cdot 1^j \equiv a^k \pmod{q})
由于 (k \neq 0),(a^k) 模 (q) 同余于 1 的概率很小。所以,大概率有 (p) 整除 (a^L - 1),而 (q) 不整除 (a^L - 1)。这样,我们就可以通过计算 (\gcd(a^L - 1, N)) 来得到 (p)。
Pollard 观察到,如果 (p - 1) 是许多小素数的乘积,那么它会整除某个不太
超级会员免费看
订阅专栏 解锁全文
88

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



