Pollard的Python中的Rho启发式

时间:2011-06-03 16:36:04

标签: python

这是一个有问题的本土功能。我的猜测是我在循环中的某处捏造了。它没有给出一致的答案 - 我知道这就是“启发式”的意思,但我认为这应该没问题,比如,n == 57。

def Rho_Heuristic(n):
    import random
    cum_d = 1
    x = random.randint(0, n-1)
    y = x
    k = 2
    i = 1
    while not(cum_d == n):
      i = i + 1
        x = (x*x-1)%n
        d = GCD(y-x, n)
       if (not(d == 1) and not(d == n)):
           print d
           cum_d = (d * cum_d)
       if i==k:
           y = x
           k = 2*k;

2 个答案:

答案 0 :(得分:2)

Pollard的Rhos启发式是一种启发式方法。返回的因子总是正确的,它很少会返回所有因子。如果您需要找到具有某些特征的因素,PRH是好的。当我实施概念证明RSA攻击时,我一直运行它直到我得到有意义的素数。

答案 1 :(得分:0)

如果您想要任何给定输入的确定性输出,请致电:

random.seed(0) 

当你开始你的程序时。