Generatori liniari congruențiali, acea clasă de generatoare pseudoaleatoare cu regulă recursivă
$x_{n+1}\equiv a\cdot x_n +b\ \ (\mod m)$, $a,b,x_n\în Z/mZ$, $m,n\în N$
sunt considerate inapte pentru utilizare în criptografie, ca constante $a$, $b$ poate fi dedus dintr-un set mic de rezultate $x_n$. Acum, când alegi $m=p-1$ pentru un prim ciudat $p$, secvența $(x_n)_{n\în N}$ poate trăi ca exponenți ai unui generator $g$ a grupului ciclic multiplicativ $Z/pZ^*$, la fel de $y_n:=g^{x_n}, n\în N$:
$y_{n+1}\equiv g^{x_{n+1}}\equiv g^{a\cdot x_n+b}\equiv (g^{x_n})^a\cdot g^b\equiv y_n ^a\cdot g^b\ (\mod p)$
Aceasta este o serie de puteri echivalente.
Distribuția egală vine cu o perioadă maximă. Conditii pentru perioada maxima $m$ a secvenței $(y_n)_{n\în N}$ sunt date de teorema lui Knuth
- $gcd(m,b)=1$
- Pentru descompunerea primului $m=:\prod p_i^{\alpha_i}$ și toți factorii primi $p_i$: $\ \ \ p_i/(a-1)$
- $m\equiv 0\ (\mod 4) \implies a-1\equiv 0\ (\mod 4)$
La fel de $m=p-1$ este par și există foarte puține numere prime cu formă $p=2^k+1$, cea mai ușoară compoziție comună a $p-1$ din numere prime ar fi $p-1=2^k\cdot p'$, $k\geq 1$ cu $p'$ alt prim.
Conform a 2-a condiție cea mai mică alegere de $a$ este de $a-1=2\cdot p'$.
Pentru a evita cazurile banale $a-1=m$, $k\geq 2$ este necesar. Cu aceasta ajungem în a treia condiție, astfel încât $a-1$ are un factor de cel puțin două ori mai mare $2$.
Din nou, evitarea cazului trivial necesită $k\geq 3$.
Acum, o pereche primară $(p,p')$ potrivirea ecuaţiei liniare $p=8p'+1$ permite alegeri non-triviale $a-1=4p'$ iar cu aceasta seria de putere $(y_n)$ poate avea o perioadă maximă $m$.
Întrebare: Deoarece avem 3 parametri ascunși $g, g^a,g^b$ iar găsirea de logaritmi în grupuri multiplicative este considerată dificilă, poate succesiunea aleatorie $(y_n){n\în N}$ să fie considerat sigur pentru utilizare în criptografie; există alegeri mai bune pentru constantă $a$?
EDITAȚI | × $g$ de fapt, nu este important ca parametru, deoarece creștem puterile $a$, unde în plus $p$ nu este cunoscut din ieșire, adică parametrii necunoscuți sunt $(p, a, g^b)$ .