Algoritmus COS (Coppersmith, Odlyzhko, Shreppel) je subexponenciální diskrétní logaritmický algoritmus v kruhu zbytků modulo prvočíslo. To bylo navrženo v roce 1986 .
Nechť je uvedeno srovnání
((jeden)) |
Je třeba najít přirozené číslo x , které vyhovuje srovnání (1).
Fáze 1. Nechat
Vytvořme sadu
kde q jsou jednoduché.
Fáze 2. Pomocí nějakého prosévání hledáme páry takové, že , a
(uvažuje se absolutně nejmenší srážka). Zároveň od , tehdy
navíc se jedná o absolutně nejmenší zbytek v této třídě a má hodnotu . Proto je pravděpodobnost jeho hladkosti vyšší než u libovolných čísel menších než p -1.
Vezmeme-li logaritmus v základu a , dostaneme vztah
Můžeme také předpokládat, že a je hladké, tj.
kde
Fáze 3. Po zadání velkého množství rovnic ve 2. fázi vyřešíme výslednou soustavu lineárních rovnic a najdeme .
Fáze 4. Abychom našli x , zavedeme novou hranici hladkosti . Náhodným výčtem najdeme jednu hodnotu w , která vyhovuje vztahu
u jsou prvočísla "průměrné" velikosti.
Fáze 5 Pomocí metod podobných krokům 2 a 3 najdeme logaritmy prvočísel u , které se objevily v kroku 4.
Fáze 6 Najdeme odpověď:
Tento algoritmus má složitost aritmetických operací. Předpokládá se, že pro čísla je tento algoritmus efektivnější než síto číselného pole.