-
Avem nevoie de o procedura numerică care este ușoară într-o direcție,
-
și grea în cealaltă.
-
Asta ne duce cu gândul la aritmetica modulară sau aritmetica ceasului.
-
De ex: pentru a găsi modulul lui 46 din 12, luăm o sfoară cu lungimea de 46 de unități,
-
și o înfășurăm 12 unități, ce se cheamă modulator, în jurul ceasului ,
-
și unde sfoara se sfârșește, acolo este soluția.
-
Deci spunem că modulul lui 46 din 12 este congruent cu 10.
-
Ușor.Acum, pentru a funcționa, vom folosi un modulator prim ca 17.
-
Apoi gasim gasim rădăcina primitivei 17, în acest caz 3.
-
Care are această importantă proprietate ca atunci când ridicată la diferite puteri,
-
soluția se distribuie uniform în jurul ceasului.
-
3 este cunoscut ca generator. Dacă ridicăm 3 la oricare putere x,
-
atunci soluția este la fel de probabil să fie orice număr întreg dintre 0 și 17.
-
Acum, procedura inversă este grea.
-
Să zicem, dat fiind 12, găsiți puterea la care trebuie ridicat 3.
-
Acesta se numește problema Logaritmului Discret.
-
Și acum noi avem funcția noastră unidirecțională.
-
Ușor de realizat, dar greu de refăcut.
-
Se dă 12, noi vom trebui sa re-sortăm prin încercare și eroare pentru a găsi puterile potrivite.
-
Cât de greu este?
-
Ei bine, cu numere mici este ușor, dar dacă folosim modulatori primi cu lungimea de sute de digiți,
-
devine ne-practică rezolvarea sa.
-
Chiar dacă ai avea acces la toată puterea de calcul de pe Pământ, ar putea dura mii de ani
-
pentru a calcula toate posibilitățile.
-
Așadar puterea funcției unidirecționale se bazează pe timpul necesar pentru a o reface.