Potřebujeme číselnou operaci,
která je jednoduchá v jednom směru a obtížná v opačném.
To nás přivádí k modulární aritmetice,
kterou dobře známe z principu fungování hodin.
Například ...
Abychom našli 46 modulo 12,
tak vezmeme provázek dlouhý 46 jednotek
a obalíme ho okolo hodin, které mají obvod 12 jednotek ...
Čemuž se říká modulus.
... a tam, kde provázek končí, leží řešení.
Takže 46 modulo 12 je kongruentní s 10.
Jednoduché.
Aby postup fungoval, tak musíme použít jako modulus prvočíslo.
Například 17.
Pak najdeme primitivní kořen sedmnácti.
V tomto případě je to 3 a má jednu důležitou vlastnost,
protože všechny mocniny budou rovnoměrně rozmístěny na hodinách.
Primitivnímu kořenu 3 se říká generátor.
Pokud ji umocníme jakýmkoliv exponentem 'x',
tak bude pro každé číslo mezi 0 a 17 stejně pravděpodobné, že bude řešením.
Inverzní operace je ale náročná.
Například ...
Jakou mocninu tří potřebujeme, aby nám vyšlo číslo 12?
Toto je takzvaný problém diskrétního logaritmu.
Nyní máme vhodnou jednosměrnou funkci.
Snadno proveditelnou v jednom směru, ale náročnou v opačném.
S daným číslem 12 bychom museli hledat výsledek metodou pokus-omyl.
Jak těžké by to bylo?
S malými čísly to je jednoduché,
ale pokud si vezmeme prvočíselný modulus, který má stovky cifer,
tak řešení metodou pokus-omyl bude prakticky nemožné.
I kdybyste mohli využít veškerou výpočetní kapacitu na Zemi,
tak by trvalo tisíce let, než byste prošli všechny možnosti.
Takže síla jednosměrné funkce je založena na čase potřebném pro získání její inverze.