Subexponenciální algoritmus pro faktorizaci

Podobné dokumenty
Subexponenciální algoritmus pro diskrétní logaritmus

19. a 20. přednáška z kryptografie

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie

Diskrétní logaritmus

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

Pravděpodobnostní algoritmy

BCH kódy. Alena Gollová, TIK BCH kódy 1/27

8 Kořeny cyklických kódů, BCH-kódy

Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30

Hlubší věty o počítání modulo

Hlubší věty o počítání modulo

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Řetězové zlomky. již čtenář obeznámen. Důraz bude kladen na implementační stránku, protože ta je ve

Charakteristika tělesa

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Univerzita Karlova v Praze Pedagogická fakulta

4 Počítání modulo polynom

2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi.

MPI - 7. přednáška. Hledání inverzí v Z n. Rychlé mocnění modulo n. Lineární rovnice v Z + n. Soustavy lineárních rovnic v Z + n.

5. a 6. přednáška z kryptografie

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Cyklické kódy. Definujeme-li na F [x] n sčítání a násobení jako. a + b = π n (a + b) a b = π n (a b)

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

Věta o dělení polynomů se zbytkem

5. Lokální, vázané a globální extrémy

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)

Odhady - Sdružené rozdělení pravděpodobnosti

Diskrétní matematika 1. týden

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča

Lineární algebra : Báze a dimenze

Obsah. Protokol RSA. Protokol RSA Bezpečnost protokolu RSA. 5. a 6. přednáška z kryptografie

Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.

Matematická analýza ve Vesmíru. Jiří Bouchala

1 Linearní prostory nad komplexními čísly

Soustavy lineárních rovnic

Historie matematiky a informatiky Cvičení 2

Lineární algebra : Vlastní čísla, vektory a diagonalizace

Pomocný text. Polynomy

Binární vyhledávací stromy pokročilé partie

1 Polynomiální interpolace

[1] x (y z) = (x y) z... (asociativní zákon), x y = y x... (komutativní zákon).

Matematika I A ukázkový test 1 pro 2014/2015

10. cvičení - LS 2017

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

VZOROVÝ TEST PRO 1. ROČNÍK (1. A, 3. C)

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

9.2. Zkrácená lineární rovnice s konstantními koeficienty

z nich byla poprvé dokázána v 19. století velikány analytické teorie čísel (Pafnutij Lvovič Čebyšev, Charles-Jean de la Vallée Poussin a další).

M - Kvadratické rovnice a kvadratické nerovnice

Odhad parametrů N(µ, σ 2 )

Jak funguje asymetrické šifrování?

3 Bodové odhady a jejich vlastnosti

(4x) 5 + 7y = 14, (2y) 5 (3x) 7 = 74,

vyjádřete ve tvaru lineární kombinace čtverců (lineární kombinace druhých mocnin). Rozhodněte o definitnosti kvadratické formy κ(x).

Diferenciální počet 1 1. f(x) = ln arcsin 1 + x 1 x. 1 x 1 a x 1 0. f(x) = (cos x) cosh x + 3x. x 0 je derivace funkce f(x) v bodě x0.

1 Řešení soustav lineárních rovnic

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

Lineární algebra : Násobení matic a inverzní matice

Řešení. Označme po řadě F (z) Odtud plyne, že

Principy indukce a rekursivní algoritmy

Hammingův odhad. perfektní kódy. koule, objem koule perfektní kód. triviální, Hammingův, Golayův váhový polynom. výpočet. příklad

Lineární algebra : Násobení matic a inverzní matice

Kapitola 11: Lineární diferenciální rovnice 1/15

0.1 Úvod do lineární algebry

Matematické algoritmy (11MAG) Jan Přikryl

Arnoldiho a Lanczosova metoda

3 Lineární kombinace vektorů. Lineární závislost a nezávislost

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Praha & EU: investujeme do vaší budoucnosti. Daniel Turzík, Miroslava Dubcová,

Několik aplikací. Kapitola 12

Prvočísla, dělitelnost

M - Příprava na pololetní písemku č. 1

Matematika I (KX001) Užití derivace v geometrii, ve fyzice 3. října f (x 0 ) (x x 0) Je-li f (x 0 ) = 0, tečna: x = 3, normála: y = 0

Soustavy linea rnı ch rovnic

Principy indukce a rekurentní rovnice

M - Kvadratické rovnice

Odhady Parametrů Lineární Regrese

7. Analýza rozptylu.

Lineární algebra : Lineární prostor

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

DRN: Soustavy linárních rovnic numericky, norma

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

6 Lineární geometrie. 6.1 Lineární variety

Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady.

Rekurentní rovnice, strukturální indukce

Pokročilá kryptologie

Aproximace funkcí. Numerické metody 6. května FJFI ČVUT v Praze

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.

Numerické metody a programování. Lekce 4

Lingebraické kapitolky - Počítání s maticemi

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Posloupnosti a řady. 28. listopadu 2015

Odhad parametrů N(µ, σ 2 )

0.1 Úvod do lineární algebry

M - Příprava na 1. zápočtový test - třída 3SA

Základy elementární teorie čísel

9.3. Úplná lineární rovnice s konstantními koeficienty

Transkript:

Subexponenciální algoritmus pro faktorizaci 24. a 25. přednáška z kryptografie Alena Gollová SEF 1/37

Obsah 1 2 Alena Gollová SEF 2/37

Používaná fakta SEF používá (podobně jako SEDL) y hladkost a lineární algebru nad tělesem. Časová náročnost pro faktorizaci n bude O(2 c len(n) len(len(n)) ). Tvrzení Známe-li netriviální druhou odmocninu z 1 v Zn, pak umíme faktorizovat n. Konkrétně, je-li c ±1 takové, že c 2 = 1 v Zn, pak gcd(c 1, n) 1 je faktor n. Alena Gollová SEF 3/37

(SEF) Vstup: přirozené číslo n Předpoklady pro n (zajistíme je předvýpočty, které budou časově méně náročné než vlastní algoritmus): n není prvočíslo Millerův-Rabinův test MR(, k) vyžaduje čas O( k len(n) 3 ). n není dokonalá mocnina, n m e pro m, e N Pomocí algoritmu na hledání celočíselných odmocnin najdeme m, e v čase O(len(n) 3 len(len(n))). n není dělitelné žádným prvočíslem p 1,..., p k y, kde y je parametr hladkosti (mimo jiné je n liché) Prosté dělení trvá O(k len(n) 2 ), kde k < y. = e ln(n). Alena Gollová SEF 4/37

1. fáze algoritmu SEF Nechť p 1,..., p k jsou všechna prvočísla do y, je jich tedy k. Náhodnou volbou nalezneme (k + 1) y hladkých čtverců ze Z n. Provedeme to pro každé 1 i k + 1 takto: zvol náhodně a i Z n ověř prostým dělením, zda ai 2 je y hladké, tj. zda ai 2 = p e i 1 1... p e i k k v Z n dokud ne, tak opakuj náhodnou volbu Alena Gollová SEF 5/37

2. fáze algoritmu SEF Pro 1 i k + 1 uvažujme k tice exponentů v i = (e i1,..., e ik ) jakožto vektory nad Z2. Z2 je těleso, k tice Z k 2 tvoří vektorový prostor dimenze k, našich (k + 1) vektorů tedy musí být lineárně závislých. Existují koeficienty c 1,..., c k+1 Z2, ne všechny nulové, tak, že c 1 v 1 +... + c k+1 v k+1 = (0,..., 0) v Z k 2. Podíváme-li se na tuto kombinaci nad Z, pak všechny složky výsledného vektoru jsou sudé: c 1 v 1 +... + c k+1 v k+1 = (e 1,..., e k+1 ) v Z k, 2 e i pro každé i. Koeficienty c 1,..., c k+1 nalezneme pomocí Gaussovy eliminace, která nad tělesem Z2 funguje. Alena Gollová SEF 6/37

2. fáze algoritmu SEF Uvažujme všech (k + 1) rovností tvaru ai 2 = p e i 1 1... p e i k k v Z n. Pokud každou i tou rovnost umocníme na příslušné c i a všechny rovnosti navzájem vynásobíme, získáme rovnost: a 2 = p e 1 1... pe k k v Z n, kde a = k+1 i=1 ac i i a všechna e i jsou sudá. Poznámka: c i Z2 = {0, 1}, tudíž jsme vynásobili navzájem jen ty rovnosti, pro něž je c i = 1. Rovnosti, pro něž je c i = 0, umocněním degenerují na rovnost 1 = 1. Alena Gollová SEF 7/37

2. fáze algoritmu SEF e 12 ek Položme b = p1... p 2 k Z rovnosti: dostáváme rovnost: v Z n, přičemž e i 2 N. a 2 = b 2 v Z n (ab 1 ) 2 = 1 v Z n Našli jsme druhou odmocninu z jedné v Z n, a to c = ab 1. Pokud je c ±1, najdeme faktor gcd(c 1, n) čísla n. Pokud je c = ±1, ohlásíme neúspěch. Alena Gollová SEF 8/37

for i 1 to k + 1 do repeat c choose a i Z n at random m i ai 2 in Z n test if m i is y smooth (trial division) until m i = p ei 1 1... p ei k k for some e i1,..., e ik Z v i (e i1,..., e ik ) in Z k enddo apply Gaussian elimination over Z 2 to find c 1,..., c k+1 Z 2, not all zero, such that c 1 v 1 +... + c k+1 v k+1 = (0,..., 0) in Z k 2 for j 1 to k do e j k+1 i=1 c ie ij in Z enddo a k+1 i=1 aci i, b p e1 2 1... p ek 2 k, c ab 1 in Z n if c = ±1 then output failure else output gcd(c 1, n) endif Alena Gollová SEF 9/37

Příklad Faktorizujte n = 77 a zvolte parametr hladkosti y = 5. (77 není mocnina prvočísla, ani není dělitelné prvočísly 2, 3, 5 y.) 1.fáze - počítáme v Z 77, náhodnou volbou získáme rovnosti: R 1 : 59 2 = 16 = 2 4, odtud v 1 = (4, 0, 0). R 2 : 3 2 = 9 = 3 2, odtud v 2 = (0, 2, 0). R 3 : 37 2 = 60 = 2 2 3 5, odtud v 3 = (2, 1, 1). R 4 : 13 2 = 15 = 3 5, odtud v 4 = (0, 1, 1). 2.fáze - počítáme nad Z2, kde c 1 v 1 + c 2 v 2 + c 3 v 3 + c 4 v 4 = ō dává: c 1 (0, 0, 0) + c 2 (0, 0, 0) + c 3 (0, 1, 1) + c 4 (0, 1, 1) = (0, 0, 0) Netriviální řešení je např. c 1 = c 2 = 0, c 3 = c 4 = 1. Alena Gollová SEF 10/37

Příklad - pokračování kompletování výpočtů - počítáme v Z 77, R 0 1 R0 2 R1 3 R1 4 = R 3 R 4 dává rovnost: (37 13) 2 = 2 2 3 2 5 2, tj. 19 2 = 30 2 v Z 77, c = 19 30 1 = 34 je netriviální druhá odmocnina z 1. Odtud gcd(c 1, n) = gcd(33, 77) = 11 je faktor čísla n = 77. Poznámka: Netriviální řešení c 1 = c 3 = c 4 = 0, c 2 = 1 by vedlo k rovnosti R 2 : 3 2 = 3 2 v Z 77, c = 3 3 1 = 1 je triviální druhá odmocnina z 1. Algoritmus by ohlásil neúspěch. Alena Gollová SEF 11/37

Tvrzení Pravděpodobnost, že algoritmus SEF ohlásí neúspěch, je nejvýše 1 2. Důkaz Rovnice x 2 = 1 má v Zn, pro liché n = r i=1 pe i i, právě 2 r řešení. Lze dokázat, že každé řešení může být nalezeno algoritmem SEF se stejnou pravděpodobností. Pak P[neúspěch] = 2 2 = 1 1 r 2 r 1 2 díky předpokladu, že r 2. Alena Gollová SEF 12/37

Očekávaný čas algoritmu SEF 1. fáze SEF: Označme σ pravděpodobnost, že náhodný čtverec ze Z n je y hladký. Pak očekávaný počet cyklů pro nalezení jednoho y hladkého čtverce je 1 σ. V každém cyklu dělíme všemi k prvočísly do y (y < n). Těchto y hladkých čtverců potřebujeme najít (k + 1). E(TIME1) = O( k2 σ len(n)2 ) 2. fáze SEF: Gaussova eliminace na matici typu (k, k + 1) vyžaduje zhruba k 3 operací v Z2 a její čas bude dominantní pro druhou fázi. TIME2 = O(k 3 len(n) 2 ) Očekávaný čas pro SEF: E(TIME) = O(( k2 σ + k3 ) len(n) 2 ) Alena Gollová SEF 13/37

Očekávaný čas algoritmu SEF Odhadneme k a σ jako u SEDL s následujícím doplněním: Umíme odhadnou počet y hladkých čísel do n. Díky předpokladu, že žádné p i y nedělí n, jsou všechna tato y hladká čísla v Z n. Problém: V SEF hledáme náhodně y hladké čtverce. Kolik je y hladkých čísel mezi čtverci v Z n? Odpověď: Zhruba stejně husto. Lze dokázat analogický odhad pro počet y hladkých čtverců do n jako jsou odhad pro Ψ(y, n). Odtud: Předpokládejme, že y = e ln(n)λ+o(1), kde 0 < λ < 1. σ = Ψ(y,n) Z n Ψ(y,n) n e ( 1+o(1)) ln(n) ln(y) ln(ln(n)) Dle Čebyševovy věty je k = Θ( y ln(y) ), odtud k = e(1+o(1)) ln(y). len(p) 2 = e o(1) ln(y) díky našemu předpokladu pro y. Alena Gollová SEF 14/37

Očekávaný čas algoritmu SEF Dosadíme do E(TIME) = O(( k2 σ + k3 ) len(p) 2 ) a získáme odhad: ln(n) (1+o(1)) max{ ln(ln(n))+2 ln(y);3 ln(y)} E(TIME) e ln(y) Odhad bude minimální pro y = e 1 2 ln(n) ln(ln(n)) (výpočet stejný jako u SEDL). Při tomto y bude očekávaný čas algoritmu SEF E(TIME) e (2 2+o(1)) ln(n) ln(ln(n)), tedy subexponenciální s konstantou 2 2. = 2, 828 v exponentu. Alena Gollová SEF 15/37

Věta Pokud y = y(x) splňuje y Ω(ln(x) 1+ɛ ) pro nějaké ɛ > 0 ln(y) a lim x ln(x) = 0, pak Očekávaný čas algoritmu SEF ln(x) ln(x) ( 1+o(1)) ln( Ψ(y, x) = x e ln(y) ln(y) ). Konstantu v exponentu je možné zmenšit na 2, 0, použijeme-li přesnější odhad počtu y hladných čísel (viz věta výše). Pro y = e 1 2 ln(n) ln(ln(n)) bude očekávaný čas algoritmu SEF E(TIME) e (2+o(1)) ln(n) ln(ln(n)). Alena Gollová SEF 16/37

Kvadratické síto (QSF) s použitím kvadratického síta Zrychlení algoritmu SEF získáme, když y hladké čtverce v 1. fázi algoritmu nebudeme hledat náhodně, ale pomocí kvadratického síta. Konstanta v exponentu klesne na 1, 0. Budeme potřebovat dva parametry: parametr hladkosti y parametr síta z Budeme předpokládat, že pro oba platí: y, z = e ln(n) 1 2 +o(1). = e ln(n) Alena Gollová SEF 17/37

Kvadratické síto (QSF) s použitím kvadratického síta Chceme faktorizovat n, které je liché, není to prvočíslo, ani mocnina prvočísla, není dělitelné žádným prvočíslem p i y, kterých je celkem k. Kdybychom v 1. fázi algoritmu SEF volili všechna a i < n, pak bychom z y hladkých čtverců a 2 i < n získali v závěru rovnost a 2 = a 2 v Zn (počítání modulo by se neprojevilo). Našli bychom druhou odmocninu z jedné c = 1 a algoritmus by ohlásil neúspěch. Aby měl algoritmus šanci na úspěch, musí volit aspoň některá a i větší než n. Alena Gollová SEF 18/37

Kvadratické síto (QSF) Hledání y hladkých čtverců Položme m = n, tedy m N je takové, že m 2 n < (m + 1) 2. Uvažujme celočíselný polynom: F (x) = (x + m) 2 n Pro 1 s z platí (díky předpokladu z. = e ln(n) ): 1 F (s) z 2 + 2z n = n 1 2 +o(1) Aneb n < (s + m) 2 n + n 1 2 +o(1), F (s) je zbytek po vydělení čísla (s + m) 2 číslem n, tedy F (s) je čtverec v Zn. Alena Gollová SEF 19/37

Kvadratické síto (QSF) Hledání y hladkých čtverců Spočteme hodnoty F (s) pro všechna s = 1,..., z. Pokud je nějaké F (s) y hladké číslo, pak jsme našli y hladký čtverec v Z n. Když F (s) = (s + m) 2 n = p e 1 1... pe k k v Z, pak (s + m) 2 = p e 1 1... pe k k v Z n. Faktorizace tohoto čtverce odpovídá jeho zbytku modulo n a díky předpokladu, že p i n pro každé i, je čtverec invertibilní. Zbývá otázka, jak volit z, abychom mohli mezi hodnotami F (s) najít dostatečný počet y hladkých čtverců. Alena Gollová SEF 20/37

Kvadratické síto (QSF) Hledání y hladkých čtverců Hustota y-hladkých čísel kolem n je větší než kolem n. Pravděpodobnost, že některá z hodnot F (s) je y hladká je větší než pravděpodobnost, že náhodný čtverec ze Z n je y hladký. Nechť σ je pravděpodobnost, že náhodné číslo do n je y hladké, σ je pravděpodobnost, že náhodné číslo do n je y hladké. ln( n) ( 1+o(1)) ln( ln( n) ln(y) ln(y) ) = σ = Ψ(y, n) n = e = e ( 1 ln(n) +o(1)) 4 ln(y) ln(ln(n)) ln(n) ( 1+o(1)) > σ = e ln(y) ln(ln(n)) Použili jsme přesnější odhad pro Ψ(y, n) a předpoklad y. = e ln(n). Už toto zaručí zrychlení 1. fáze algoritmu. Alena Gollová SEF 21/37

Kvadratické síto (QSF) Určení parametru z Parametr z stanovíme tak, abychom měli šanci najít mezi hodnotami F (1),..., F ( z ) celkem k + 1 y hladkých čtverců. Je-li σ pravděpodobnost, že náhodné číslo do n je y hladké, ( σ také odhaduje pravděpodobnost, že náhodný čtverec kolem n je y hladký), pak k nalezení jednoho y hladkého čtverce potřebujeme prozkoumat průměrně 1 σ čísel tvaru F (s). Položíme tedy z = k σ. Pokud bychom nenašli dostatek y hladkých čtverců, tak parametr z zdvojnásobíme a budeme pokračovat v hledání. Alena Gollová SEF 22/37

Kvadratické síto (QSF) Určení parametru z Poznámka: V našem odhadu parametru z je podfuk. My přece nevolíme čísla náhodně!!! Ve skutečnosti nevíme, kolik je y hladkých čísel mezi hodnotami našeho polynomu F (x) (neexistuje rigorózní důkaz). Algoritmus faktorizace pomocí kvadratického síta tedy může ohlásit neúspěch už během 1. fáze, protože nenajde dostatek y hladkých čtverců. Zkušenost přesto ukazuje, že algoritmus QSF funguje a dokonce v očekávaném čase (heuristické ověření). Alena Gollová SEF 23/37

Kvadratické síto (QSF) Sítovací procedura Další zrychlení 1. fáze algoritmu zajistí sítovací procedura. Ověřování, zda je F (s) y hladké, nebudeme dělat pro každé F (s) zvlášť, ale uděláme je pro všechna F (1),..., F ( z ) najednou. Vytvoříme pole V délky z, které inicializujeme: V [s] F (s) pro všechna s = 1,..., z (Aneb bude zde subexponenciální prostorová složitost.) Pokud vydělíme každé V [s] všemi prvočísly p 1,..., p k y tolikrát, kolikrát to půjde beze zbytku, tak nám y hladká čísla propadnou sítem: F (s) je y hladké, právě když po dělení vš. p i y je V [s] = 1. Alena Gollová SEF 24/37

Kvadratické síto (QSF) Sítovací procedura Urychlení spočívá v tom, že libovolným prvočíslem p y budeme dělit jen ta F (s) (resp. V[s]), která jimi dělitelná jsou: p F (s), právě když F (s) = 0 v Zp, což nastane, právě když s (resp. [s] p Zp) je kořenem F (x), který chápeme jako polynom nad Zp. Kvadratický polynom F (x) = (x + m) 2 n může mít v tělese Zp nejvýše dva kořeny, označme je s 1, s 2. Prvočíslem p jsou dělitelná právě ta F (s), pro něž s = s j + lp, kde s j {s 1, s 2 } a l N libovolné takové, aby vyšlo s z. (Zapamatujeme si též kolikrát lze F (s) dělit tímto p, kvůli prvočíselnému rozkladu.) Alena Gollová SEF 25/37

Kvadratické síto (QSF) Kořeny kvadrátu nad Zp Chceme najít kořeny polynomu F (x) = (x + m) 2 n v tělese Zp. Nad Z2 je F (x) = x 2 + m 2 n, kde n je liché (předpoklad). Pro m sudé je F (x) = x 2 1 a má dvojnásobný kořen 1 Z2. Pro m liché je F (x) = x 2 a má dvojnásobný kořen 0 Z2. Nad Zp pro p > 2 je F (x) = 0, právě když (x + m) 2 = n v Zp. Není-li n čtverec v Z p, pak F (x) nemá kořen v Zp. Je-li n = (±d) 2 čtverec v Z p, pak F (x) má dva kořeny v Zp, a to m ± d. (Přitom n Z p díky předpokladu p n.) Alena Gollová SEF 26/37

Kvadratické síto (QSF) Kořeny kvadrátu nad Zp Pro hledání kořenů v Zp, kde p > 2 je prvočíslo, potřebujeme: 1 Umět poznat čtverce v Z p: Eulerovo kritérium: a Z p je čtverec, jen když a p 1 2 = 1 v Zp. 2 Umět počítat druhé odmocniny v Z p: Je-li p 3 (mod 4), pak čtverec a Z p má druhé odmocniny ±b = ±a p+1 4 v Z p. Pro libovolné p existuje algoritmus na hledání druhých odmocnin v Z p, který pracuje v čase O(len(p) 3 + h len(h) len(p) 2 ) O(len(p) 3 len(len(p))), kde p 1 = 2 h m, m je liché. Alena Gollová SEF 27/37

Sítovací procedura Let p 1,..., p k are all primes upto y. for s 1 to z do V [s] F (s) for i 1 to k do find roots of F (x) in Z pi for every root s j do enddo (there are at most two of them) s s j while s z do e 0 repeat V [s] V [s] p i, e e + 1 until p i V [s] put in list of divisors D[s] for s prime power pi e s s + p i enddo enddo, enddo F (s) is y smooth iff V [s] = 1 Alena Gollová SEF 28/37

Kvadratické síto (QSF) Čas běhu sítovací procedury Předpokládáme, že y, z = e ln(n) 1 2 +o(1). = e ln(n). Odtud len(y). = len(n) 1 2. Inicializace pole V trvá O(z len(n) 2 ). Výpočet kořenů polynomů F (x) nad všemi Zp i (všech prvočísel p i y je k, tedy k < y =. z) trvá zhruba O(k len(y) 4 ) = O(k len(n) 2 ). Vlastní sítování trvá O( p y z p len(p) len(n)2 ), což je zhruba O(z len(n) 3 ). To je čas dominantní nad předchozími časy. Alena Gollová SEF 29/37

Kvadratické síto (QSF) Čas běhu sítovací procedury Podívejme se podrobněji na odhad času pro sítování. Pro každé prvočíslo p i y najdeme nejvýše dva kořeny s 1, s 2 a každý kořen dá z p i hodnot F (s) dělitelných p i. Přitom jedno F (s) lze dělit číslem p i nejvýše log pi (F (s)) krát, což je O(len(n)) dělení. Pro p i potřebujeme čas O( z p i len(p i ) len(n) 2 ) = O( z p i len(n) 2,5 ). Sečteme časy pro všechna p i : O( k i=1 z p i len(n) 2,5 ) = O(z len(n) 3 ). Odhadli jsme sumu integrálem: p i y 1 p i y 1 1 ỹ dỹ = [ln ỹ]y 1 = ln y O(len(n) 1 2 ) Alena Gollová SEF 30/37

- 1 st stage m n, F (x) = (x + m) 2 n repeat use the sieving procedure with parameter z (it creates fields V and D of length z ) z 2z until V [s] = 1 for at least k + 1 different values of s for the first k + 1 values of s such that V [s] = 1 do a i s + m find in D[s] the factorization of ai 2 = p ei 1 1... p ei k k in Z n v i (e i1,..., e ik ) in Z k enddo 2. fáze je stejná jako v SEF - Gaussova eliminace nad Z 2 a dopočítání druhé odmocniny z 1. Pokud je tato různá od ±1, najdeme faktor n. Alena Gollová SEF 31/37

Očekávaný čas algoritmu QSF 1. fáze QSF: E(TIME1) = O(z len(n) 3 ) = O( k σ len(n)3 ) 2. fáze QSF: TIME2 = O(k 3 len(n) 2 ) Očekávaný čas pro QSF: E(TIME) = O(( k σ + k3 ) len(n) 3 ) Dosadíme-li za k a σ (podobně jako v SEF), získáme odhad: E(TIME) e (1+o(1)) max{ 1 ln(n) ln(ln(n))+ln(y);3 ln(y)} 4 ln(y) Alena Gollová SEF 32/37

Volba parametru y Chceme zvolit parametr hladkosti y tak, aby byl odhad minimální. Označme µ = ln(y), A = ln(n) ln(ln(n)). Chceme najít minimim pro funkci f (µ) = max{ 1 A 4 µ + µ; 3µ}. Funkce f 1 (µ) = 1 A 4 µ + µ nabývá minima v bodě µ = A 2, hodnota minima je A. Funkce f 2 (µ) = 3µ nabývá v tomto bobě hodnoty 3 2 A > A. Protože je funkce f 2 (µ) rostoucí, bude bod minima funkce f (µ) = max{f 1 (µ); f 2 (µ)} před bodem minima funkce f 1 (µ), bude to bod, v němž se grafy těchto funkcí protínají: f 1 (µ) = f 2 (µ) pro µ = 1 2 2 A 3 Hodnota minima funkce f (µ) je 2 2 A. Alena Gollová SEF 33/37

Očekávaný čas algoritmu QSF Volíme parametr hladkosti: y = e 1 2 A 1 2 = e 2 2 ln(n) ln(ln(n)) Potom bude parametr síta: z = k σ = e( 3 2 2 +o(1)) ln(n) ln(ln(n))) (Všimněme si, že y i z splňují předpoklady našeho výpočtu.) Při těchto y a z bude očekávaný čas algoritmu QSF E(TIME) e ( 3 2 2 +o(1)) ln(n) ln(ln(n)), tedy subexponenciální s konstantou 3 2 2. = 1, 061 v exponentu. Alena Gollová SEF 34/37

Očekávaný čas algoritmu QSF Při určování parametru y nás vlastně zdržela Gaussova eliminace. Matice, kterou eliminujeme, je řídká - obsahuje exponenty prvočísel ve faktorizaci nalezených y hladkých čtverců. Použijeme-li speciální algoritmy pro řešení soustavy k rovnic o (k + 1) neznámých s řídkou maticí, půjde to v čase O(k 2+o(1) ). Potom bude funkce f 2 (µ) = 2µ a nalezený bod minima µ = funkce f 1 (µ) je zároveň bodem minima funkce f (µ). Hodnota minima bude A. V tomto případě bude pro y = e 1 2 ln(n) ln(ln(n)) očekávaný čas algoritmu QSF: E(TIME) e (1+o(1)) ln(n) ln(ln(n)) A 2 Alena Gollová SEF 35/37

Dodatek Další subexponenciální algoritmy na faktorizaci Algoritmus používající síto nad číselným tělesem pracuje v očekávaném čase E(TIME) e (c+o(1)) ln(n) 1 3 ln(ln(n)) 23, kde zatím známá nejmenší konstanta c = 1, 902 (heuristicky ověřeno). Faktorizace přes eliptické křivky má očekávaný čas E(TIME) e ( 2+o(1)) ln(p) ln(ln(p)) ln(n) O(1), kde p je nejmenší prvočíslo, které dělí n (heuristicky ověřeno). Tento algoritmus má, na rozdíl od ostatních, polynomiální prostorovou náročnost. Alena Gollová SEF 36/37

a QSF Literatura Shoup: A Computational Introduction to Number Theory and Algebra. Kapitola 15. Lineární prostory nad tělesem najdete tamtéž v kapitole 13. http://shoup.net/ntb/ Alena Gollová SEF 37/37