1975年,John M. Pollard提出了第二种因数分解的方法。Pollard rho因数分解方法基于下列几点:

(1) 假定有两个整数[ZZ]Pollard Rho算法思想 和[ZZ]Pollard Rho算法思想 使得p可以整除[ZZ]Pollard Rho算法思想-[ZZ]Pollard Rho算法思想,但是n不能整除[ZZ]Pollard Rho算法思想 。

(2) 可以证明[ZZ]Pollard Rho算法思想 。因为p可以整除[ZZ]Pollard Rho算法思想[ZZ]Pollard Rho算法思想,可以写成[ZZ]Pollard Rho算法思想 。但是,因为n不能整除[ZZ]Pollard Rho算法思想-[ZZ]Pollard Rho算法思想,很明显q不能整除n。这就表明[ZZ]Pollard Rho算法思想 既可以是1也可以是n的一个因数。

下列算法重复选择[ZZ]Pollard Rho算法思想[ZZ]Pollard Rho算法思想,直到求出一个合适的对。

(1) 选择[ZZ]Pollard Rho算法思想,一个小的随机整数称为种子。

(2) 运用函数算出[ZZ]Pollard Rho算法思想,使得n不能整除[ZZ]Pollard Rho算法思想 。这里所用的一个函数也许就是[ZZ]Pollard Rho算法思想 = [ZZ]Pollard Rho算法思想 (a通常选作1)。

(3) 计算[ZZ]Pollard Rho算法思想 。如果它不是1,结果是n的一个因数;如果它是1,返回到步骤1并用[ZZ]Pollard Rho算法思想重复这个过程。现在我们计算[ZZ]Pollard Rho算法思想 。注意,在下一轮中,我们以[ZZ]Pollard Rho算法思想开始,如此这般。如果我们运用Pollard rho算法列出x的值,就会发现最终要重复的这个值,创建一个和希腊字母rho ([ZZ]Pollard Rho算法思想 )一样的形状,如图9-3所示。

[ZZ]Pollard Rho算法思想
图9-3 Pollard rho连续数

为了减少反复的次数,算法做了一些改进。该算法用数对([ZZ]Pollard Rho算法思想 , [ZZ]Pollard Rho算法思想)开始,并且用[ZZ]Pollard Rho算法思想 ,迭代计算[ZZ]Pollard Rho算法思想 。在每一次迭代中,我们都应用上述函数式运算(从第二步)第一次计算数对中的第一个元素,第二次计算数对中的第二个元素(参看算法9.6)。

算法 9.6 Pollard rho方法的伪代码

[ZZ]Pollard Rho算法思想

复杂度 这种方法需要算术运算[ZZ]Pollard Rho算法思想 。不过,因为我们希望p小于或等于[ZZ]Pollard Rho算法思想 ,我们希望做[ZZ]Pollard Rho算法思想 算术运算。这就是说比特操作复杂度是[ZZ]Pollard Rho算法思想 ,它是指数增长的。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-05
  • 2022-12-23
  • 2021-12-04
  • 2021-10-06
猜你喜欢
  • 2021-10-20
  • 2022-01-07
  • 2022-02-22
  • 2022-12-23
  • 2022-12-23
  • 2021-09-05
  • 2021-11-22
相关资源
相似解决方案