Content deleted Content added
→Algorithm: a^(p-1) = 1, which is what we want since g() and h() are exponents. |
Ciphergoth (talk | contribs) Remove markup that assumes the group is the multiplicative one mod N; this applies also to eg elliptic curves |
||
Line 1:
'''Pollard's rho algorithm for logarithms''' is an algorithm for solving the [[discrete logarithm]] problem analogous to [[Pollard's rho algorithm]] for solving the [[Integer factorization]] problem.
The goal is to compute <math>\gamma</math> such that <math>\alpha ^ \gamma = \beta
To find the needed <math>a</math>, <math>b</math>, <math>A</math>, and <math>B</math> the algorithm uses [[Floyd's cycle-finding algorithm]] to find a cycle in the sequence <math>x_i = \alpha^{a_i} \beta^{b_i}</math>, where the function <math>f: x_i \mapsto x_{i+1}</math> is assumed to be random-looking and thus is likely to enter into a loop after approximately <math>\sqrt{\frac{\pi n}{2}}</math> steps. One way to define such a function is to use the following rules: Divide <math>G</math> into three subsets (not necessarily [[subgroup]]s) of approximately equal size: <math>G_0</math>, <math>G_1</math>, and <math>G_2</math>. If <math>x_i</math> is in <math>G_0</math> then double both <math>a</math> and <math>b</math>; if <math>x_i \in G_1</math> then increment <math>a</math>, if <math>x_i \in G_2</math> then increment <math>b</math>.
|