Efficient polynomial time algorithms computing industrial-strength primitive roots
Résumé
E. Bach, following an idea of T. Itoh, has shown how to build a small set of numbers modulo a prime p such that at least one element of this set is a generator of $\pF{p}$\cite{Bach:1997:sppr,Itoh:2001:PPR}. E. Bach suggests also that at least half of his set should be generators. We show here that a slight variant of this set can indeed be made to contain a ratio of primitive roots as close to 1 as necessary. We thus derive several algorithms computing primitive roots correct with very high probability in polynomial time. In particular we present an $O( \sqrt{\frac{1}{\epsilon}}log^2(p) + log^4(p))$ algorithm providing primitive roots with probability of correctness greater than $1-\epsilon$ and several $O(log^\alpha(p))$, $4 \leq \alpha \leq 4.959$ algorithms computing "Industrial-strength" primitive roots with probabilities e.g. greater than the probability of "hardware malfunctions".