Subexponenciální algoritmus pro diskrétní logaritmus

Podobné dokumenty
Subexponenciální algoritmus pro faktorizaci

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

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry

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

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

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

Diskrétní logaritmus

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

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

Pravděpodobnostní algoritmy

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Soustavy linea rnı ch rovnic

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

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

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.

Úvod do lineární algebry

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

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

1 Determinanty a inverzní matice

Charakteristika tělesa

1 Zobrazení 1 ZOBRAZENÍ 1. Zobrazení a algebraické struktury. (a) Ukažte, že zobrazení f : x

grupa těleso podgrupa konečné těleso polynomy komutativní generovaná prvkem, cyklická, řád prvku charakteristika tělesa

VĚTY Z LINEÁRNÍ ALGEBRY

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

1 Báze a dimenze vektorového prostoru 1

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

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

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

7. Lineární vektorové prostory

Okruh Lineární rovnice v Z m Těleso Gaussova eliminace (GEM) Okruh Z m. Jiří Velebil: X01DML 19. listopadu 2007: Okruh Z m 1/20

8 Matice a determinanty

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

1 Soustavy lineárních rovnic

Základní pojmy teorie množin Vektorové prostory

DEFINICE Z LINEÁRNÍ ALGEBRY

ALGEBRA. Téma 5: Vektorové prostory

1 Vektorové prostory.

Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Lineární algebra : Báze a dimenze

1 Linearní prostory nad komplexními čísly

Matematika B101MA1, B101MA2

PROSTORY SE SKALÁRNÍM SOUČINEM. Definice Nechť L je lineární vektorový prostor nad R. Zobrazení L L R splňující vlastnosti

Řešení. Hledaná dimenze je (podle definice) rovna hodnosti matice. a a 2 2 1

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

Lineární algebra : Metrická geometrie

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

Lineární zobrazení. 1. A(x y) = A(x) A(y) (vlastnost aditivity) 2. A(α x) = α A(x) (vlastnost homogenity)

Báze a dimenze vektorových prostorů

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Základy matematiky pro FEK

7. Důležité pojmy ve vektorových prostorech

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

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

Matematika 2 pro PEF PaE

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

Soustavy lineárních rovnic

Obsah. Lineární rovnice. Definice 7.9. a i x i = a 1 x a n x n = b,

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava luk76/la1

ftp://math.feld.cvut.cz/pub/olsak/linal/

z textu Lineární algebra

4 Počítání modulo polynom

EUKLIDOVSKÉ PROSTORY

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

Matematika B101MA1, B101MA2

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

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.

Základy matematiky pro FEK

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

Lineární algebra - I. část (vektory, matice a jejich využití)

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.

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

Lineární algebra Operace s vektory a maticemi

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

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

Lineární prostory. - vektorové veličiny(síla, rychlost, zrychlení,...), skládání, násobení reálným číslem

(Cramerovo pravidlo, determinanty, inverzní matice)

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)

Lineární algebra : Lineární prostor

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.

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA II, letní semestr 2000/2001 Michal Marvan. 14.

10. Vektorové podprostory

Vlastní čísla a vlastní vektory

Cvičení z Lineární algebry 1

Matematika. Kamila Hasilová. Matematika 1/34

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

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

Pavel Horák, Josef Janyška LINEÁRNÍ ALGEBRA UČEBNÍ TEXT

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017

Fakt. Každou soustavu n lineárních ODR řádů n i lze eliminací převést ekvivalentně na jednu lineární ODR

2. kapitola: Euklidovské prostory

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

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

Soustavy lineárních rovnic a determinanty

Výběr báze. u n. a 1 u 1

Transkript:

Subexponenciální algoritmus pro diskrétní logaritmus 22. a 23. přednáška z kryptografie Alena Gollová SEDL 1/33

Obsah 1 Využívaná fakta y-hladká čísla 2 3 Alena Gollová SEDL 2/33

y-hladká čísla Subexponenciální složitost (SEDL) používá y hladkost čísel a lineární algebru nad tělesem Zp. Funguje tedy pro podgrupy grupy Z p. Exponenciální složitost: O(n) = O(2 len(n) ) Subexponenciální složitost: O(2 f (len(n)) ), kde f (x) o(x), tj. lim x f (x) x = 0. Algoritmus SEDL bude mít složitost O(2 c len(n) len(len(n)) ). Například pro n = 2 256 vychází čas O(2 256 8 ). = O(2 47 ). Alena Gollová SEDL 3/33

y-hladká čísla y-hladká čísla Definice Buď y 0 reálné číslo. Přirozené číslo m 1 je y hladké, jestliže každé prvočíslo, které dělí m, je menší rovno y. Nechť 0 y x jsou reálná čísla. Označme Ψ(y, x) počet všech y hladkých čísel do x (včetně). Příklady Čísla 4, 27, 24, 9216 = 3 2 2 10 jsou 3 hladká. Ψ(2, 10) = 4, neboť 2 hladká čísla do 10 jsou 1, 2, 4 a 8. Ψ(3, 10) = 7, neboť 3 hladká čísla do 10 jsou 1, 2, 3, 4, 6, 8 a 9. Zřejmě Ψ(n, n) = n pro n N. Alena Gollová SEDL 4/33

y-hladká čísla y-hladká čísla Věta 1 ln(x) Pokud y = y(x) splňuje lim x y pak platí: Poznámka = 0 a lim x ln(y) ln(x) = 0, ln(x) ( 1+o(1)) Ψ(y, x) x e ln(y) ln(ln(x)) Připomeňme, že f o(g), když lim x f (x) g(x) = 0. Symbol o(1) representuje nějakou funkci f (x), pro níž lim x f (x) = 0. Alena Gollová SEDL 5/33

y-hladká čísla y-hladká čísla Věta 2 Pokud y = y(x) splňuje y Ω(ln(x) 1+ɛ ) pro nějaké ɛ > 0 ln(y) a lim x ln(x) = 0, pak platí ln(x) ln(x) ( 1+o(1)) ln( Ψ(y, x) = x e ln(y) ln(y) ) Poznámka y hladká čísla hrají významnou roli v následujících subexponenciálních algoritmech. Tyto odhady jejich počtu budeme potřebovat při určování očekávaného času běhu algoritmů. Alena Gollová SEDL 6/33

y-hladká čísla Nad tělesem (nad Zp) lze dělat lineární algebru stejně jako nad R. Lineární prostor nad tělesem Lineární prostor nad tělesem (T, +, ) je množina L spolu s operací sčítání : L L L a akcí číselného násobku : T L L, pro které platí: (L, ) je komutativní grupa s neutrálním prvkem ō; Pro všechny α, β T a všechny ū, v L: α (ū v) = (α ū) (α v) (α + β) ū = (α ū) (β ū) (α β) ū = α (β ū) 1 ū = ū Prvky z L se nazývají vektory, prvky z T jsou skaláry. Alena Gollová SEDL 7/33

y-hladká čísla Lineární prostory nad tělesem Podprostor lineárního prostoru L je neprázdná podmnožina P L, která je uzavřená na sčítání a číselné násobky. Báze lineárního podprostoru P je jeho lineárně nezávislá podmnožina B = { b 1,..., b n }, která generuje podprostor P, tj. ū P, právě když ū = n i=1 a i b i, přičemž n-tice koeficientů (a 1... a n ) T n je určena jednoznačně. Tato n-tice koeficientů se nazývá souřadnice vektoru ū vzhledem k (uspořádané) bázi B. Počet prvků libovolné báze podprostoru P se nazývá dimenze podprostoru P, zde dim P = n. Alena Gollová SEDL 8/33

y-hladká čísla Lineární prostory nad tělesem Vektory ū 1,..., ū m jsou lineárně závislé, pokud existují koeficienty c 1,..., c m T, kde aspoň jedno c i 0, takové, že c 1 ū 1 +... c m ū m = ō, (existuje jejich netriviální kombinace rovná nulovému vektoru). V lineárním prostoru dimenze n je libovolných m > n vektorů lineárně závislých. Speciálně množina T n všech n tic nad tělesem T tvoří lineární prostor dimenze n, tudíž libovolných n + 1 vektorů v něm tvoří lineárně závislou množinu. Alena Gollová SEDL 9/33

y-hladká čísla Soustavy lineárních rovnic nad tělesem Nad tělesem T funguje Gaussova eliminační metoda. Místo dělení rovnice vedoucím pivotem používá násobení k němu inverzním prvkem. (V tělese T má každé nenulové číslo inverzní prvek.) Poznámka: Nad okruhem (nad Zn, kde n není prvočíslo) obecně Gaussova eliminace nefunguje, protože vedoucí pivoty nemusí být invertibilní. Soustava může mít jedno řešení, žádné řešení, nebo T k různých řešení, kde k je počet proměnných, které smíme volit libovolně v T. Alena Gollová SEDL 10/33

y-hladká čísla Soustavy lineárních rovnic nad tělesem Struktura množiny všech řešení soustavy A x T = b T pro n neznámých nad tělesem T : Všechna řešení homogenní soustavy A x T = ō T tvoří podprostor v T n dimenze k, kde k je počet proměnných, které smíme volit libovolně v T. Každé řešení (ne)homogenní soustavy rovnic A x T = b T je součtem partikulárního řešení této soustavy a nějakého řešení přidružené homogenní soustavy. Alena Gollová SEDL 11/33

y-hladká čísla Maticový počet nad tělesem Maticový počet nad tělesem T funguje jako nad R - lze analogicky definovat determinant i hodnost, či počítat inverzní matice. Maticový počet nad okruhem lze dělat s jistými zvláštnostmi - např. řádková hodnost se nemusí rovnat sloupcové hodnosti (neboť nefunguje Gaussova eliminace). Determinant definovat lze, invertibilní matice jsou právě ty matice, které mají invertibilní determinant. Alena Gollová SEDL 12/33

Algoritmus SEDL Representace prvku v grupě Nechť G je cyklická grupa řádu n s generátorem a, prvek b G. Representace prvku g G vzhledem ke generátoru a a prvku b je každá dvojice (s, t) Zn Zn taková, že g = a s b t v G. Je-li navíc t Z n, pak mluvíme o netriviální representaci. Tvrzení 1 Pro každé t Zn existuje právě jedno s Zn tak, že (s, t) je representace prvku g vzhledem ke generátoru a a prvku b. 2 Známe-li netriviální representaci (s, t) prvku 1 vzhledem ke generátoru a a prvku b, pak umíme spočítat diskrétní logaritmus: dlog a (b) = st 1 v Zn. Alena Gollová SEDL 13/33

Algoritmus SEDL (SEDL) Vstup: p, q, a, b, kde G = a je podgrupa řádu q v grupě Z p, p, q jsou prvočísla, a je generátor grupy G, b G. Předpokládejme navíc, že Z p = p 1 = qm, kde q m. (Jak postupovat bez tohoto předpokladu, si řekneme později.) Výstup: x = dlog a (b), nebo hláška neúspěch. Algoritmus SEDL hledá netriviální representaci prvku 1 vzhledem ke generátoru a a prvku b. Pokud ji nalezne, spočte z ní diskrétní logaritmus. Alena Gollová SEDL 14/33

Algoritmus SEDL Tvrzení Nechť Z p = qm, kde p, q jsou prvočísla a q m, a nechť G je podgrupa řádu q a H je podgrupa řádu m v grupě Z p. Pak Z p = G H je vnitřní direktní součin podgrup G a H, tj. G H = {1} GH = Z p Aneb G H Z p a každý prvek z Z p lze jednoznačně napsat ve tvaru z = gh, kde g G a h H. Tvrzení Nechť Z p = qm, kde p je prvočíslo, a nechť H je podgrupa řádu m v grupě Z p. Pak pro libovolný prvek z Z p je z q H. Alena Gollová SEDL 15/33

Algoritmus SEDL 1. fáze algoritmu SEDL Budeme používat y hladkost, vhodnou volbu parametru y < p budeme diskutovat později. 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 čísel ze Z p tvaru a s i b t i h i, kde a s i b t i = g i G, h i H. Provedeme to pro každé 1 i k + 1 takto: zvol náhodně s i, t i Zq a h i Z p, spočti h i = h q i H ověř prostým dělením, zda a s i b t i h i je y hladké, tj. zda a s i b t i h i = p e i 1 1... p e i k k v Z p dokud ne, tak opakuj náhodnou volbu Alena Gollová SEDL 16/33

Algoritmus SEDL 1. fáze algoritmu SEDL Poznámka: Pro fungování algoritmu by stačilo najít (k + 1) y hladkých čísel z podgrupy G tvaru a s i b t i, ale neuměli bychom odhadnout očekávaný čas hledání (očekávaný počet cyklů pro každé i), protože nevíme, kolik je y hladkých čísel v podgrupě G. Umíme odhadnout jen počet y hladkých čísel do p, tedy v Z p, proto volíme náhodná čísla tvaru a s i b t i h i = g i h i Z p. Alena Gollová SEDL 17/33

Algoritmus SEDL 2. fáze algoritmu SEDL Budeme používat lineární algebru nad tělesem Zq, kde q = G. Víme, že q je prvočíslo, proto Zq je těleso. V 1. fázi jsme nalezli (k + 1) rovností tvaru: a s i b t i h i = p e i 1 1... p e i k k v Z p Pro 1 i k + 1 uvažujme k tice exponentů v i = (e i1,..., e ik ) jakožto vektory nad Zq. Množina Z k q všech k tic nad Zq tvoří lineární prostor dimenze k. Našich (k + 1) vektorů tedy musí být lineárně závislých, aneb existuje jejich netriviální kombinace rovná nulovému vektoru. Alena Gollová SEDL 18/33

Algoritmus SEDL 2. fáze algoritmu SEDL Existují koeficienty c 1,..., c k+1 Zq, ne všechny nulové, tak, že c 1 v 1 +... + c k+1 v k+1 = ō = (0,..., 0) v Z k q. Podíváme-li se na tuto kombinaci nad Z, pak všechny složky výsledného vektoru jsou dělitelné číslem q: c 1 v 1 +... + c k+1 v k+1 = (e 1,..., e k ) v Z k, q e i pro každé i. Koeficienty c 1,..., c k+1 nalezneme pomocí Gaussovy eliminace, která nad tělesem Zq funguje. (Budeme řešit homogenní soustavu k rovnic pro (k + 1) neznámých nad Zq. Stačí najít jedno netriviální řešení.) Alena Gollová SEDL 19/33

Algoritmus SEDL 2. fáze algoritmu SEDL Uvažujme opět (k + 1) rovností tvaru a s i b t i h i = p e i 1 1... pe i k k v Z p. 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 s b t h = p e 1 1... pe k k v Z p, kde s = k+1 i=1 c is i, t = k+1 i=1 c it i, h = k+1 i=1 hc i i. Přitom ne všechna c i jsou nulová, tedy může vyjít s 0, t 0. Navíc víme, že q e i pro každé i, tudíž p e i i H pro každé i. Alena Gollová SEDL 20/33

Algoritmus SEDL 2. fáze algoritmu SEDL Nyní máme rovnost a s b t = h 1 p e 1 1... pe k k v Z p, kde prvek nalevo je z podgrupy G a prvek napravo z podgrupy H. Jelikož ale G H = {1} (viz náš předpoklad navíc), tak musí být tento prvek roven 1. Našli jsme representaci prvku 1 vzhledem ke generátoru a a prvku b, a s b t = 1 v G Z p. Pokud je t 0, spočteme dlog a (b) = st 1 v Zq. Pokud je t = 0, tak ohlásíme neúspěch. Alena Gollová SEDL 21/33

Algoritmus SEDL for i 1 to k + 1 do repeat c choose s i, t i Z q, h c i Z p at random h i h q i, zi as i b t i h i in Z p test if z i is y smooth (trial division) until z 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 q to find c 1,..., c k+1 Z q, not all zero, such that c 1 v 1 +... + c k+1 v k+1 = (0,..., 0) in Z k q s k+1 i=1 c is i, t k+1 i=1 c it i in Z q if t = 0 in Z q then output failure else x ( st 1 ) in Z q and output x endif Alena Gollová SEDL 22/33

Algoritmus SEDL Příklad G = 4 je podgrupa řádu 11 v grupě Z 23, Z 23 = 2 11, tedy H = {±1}. Spočtěte dlog 4 (12) v Z 23 a zvolte parametr hladkosti y = 4. (Pozn.: 12 11 = 1 v Z 23, tedy 12 G a dlog 4(12) je definován.) 1.fáze - počítáme v Z 23, náhodnou volbou získáme rovnosti: R 1 : 4 5 12 7 1 = 8 = 2 3, odtud v 1 = (3, 0). R 2 : 4 4 12 9 1 = 12 = 2 2 3 1, odtud v 2 = (2, 1). R 3 : 4 3 12 5 1 = 2 = 2 1, odtud v 3 = (1, 0). Pozn.: Volba 4 3 12 5 ( 1) = 21 = 3 7 byla neúspěšná. Alena Gollová SEDL 23/33

Algoritmus SEDL Příklad - pokračování 2.fáze - počítáme nad Z11, Gaussovou eliminací získáme pro c 1 (3, 0) + c 2 (2, 1) + c 3 (1, 0) = (0, 0) netriviální řešení c 1 = 1, c 2 = 0, c 3 = 3 = 8. kompletování výpočtů - R1 1 R0 2 R8 3 dává rovnost: 4 29 12 47 1 = 2 11 = 1 v Z 23, přitom 4, 12 G, tedy v exponentu počítáme modulo 11: 4 7 12 3 = 1 v Z 23 je netriviální representace 1. Odtud 3x + 7 = 0 v Z11, x = 7 3 1 = 5. Diskrétní logaritmus dlog 4 (12) = 5. Alena Gollová SEDL 24/33

Algoritmus SEDL Zobecnění algoritmu SEDL Algoritmus SEDL lze upravit tak, aby počítal diskrétní logaritmus v podgrupě G řádu q e grupy Z p, kde p, q jsou prvočísla, Z p = q e m, q m. Buď H podgrupa řádu m v Z p. Algoritmus bude fungovat, protože i teď je Z p = G H. První fáze proběhne stejně, ve druhé fázi budeme řešit homogenní soustavu rovnic nad okruhem Zq e. Gaussova eliminace nad okruhem obecně nefunguje, ale v tomto případě ji lze upravit tak, abychom pomocí ní nakonec našli netriviální řešení, tj. koeficienty c 1,..., c k+1 Zqe, které nejsou všechny nulové, dokonce ani nejsou všechny dělitelné číslem q. Pak může vyjít t invertibilní v Zqe, tj. q t, tedy SEDL může najít netrivální representaci prvku 1, ze které dopočte diskrétní logaritmus. Alena Gollová SEDL 25/33

Algoritmus SEDL Cvičení Předpokládejme, že umíme pomocí algoritmu SEDL spočítat diskrétní logaritmus v podgrupě G řádu q e grupy Z p, kde Z p = p 1 = q e m, q m. Navrhněte algoritmus, který vždy spočte diskrétní logaritmus v podgrupě G řádu q grupy Z p, kde q p 1 (bez dalších předpokladů pro q). Vstup: generátor a grupy G, prvek b G, prvočísla p, q. Výstup: x = dlog a (b) v G. Nápověda: Uvědomte si, že G G. Nalezněte generátor c grupy G, spočtěte dlog c (a), dlog c (b) v grupě G a z nich dopočtěte x. Alena Gollová SEDL 26/33

Vraťme se k základní variantě algoritmu SEDL. Počítáme diskrétní logaritmus z prvku b v podgrupě G = a řádu q grupy Z p, kde p, q jsou prvočísla, Z p = p 1 = qm, q m. Chceme analyzovat výstup algoritmu a očekávaný čas jeho běhu. Tvrzení Pravděpodobnost, že algoritmus SEDL ohlásí neúspěch, je 1 q. Lze dokázat, že každé t Zq může být nalezeno algoritmem SEDL se stejnou pravděpodobností. Pak P[neúspěch] = 1 q. Alena Gollová SEDL 27/33

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

Očekávaný čas algoritmu SEDL Odhadneme k a σ pomocí y. Předpokládejme, že y = e ln(p)λ+o(1), 0 < λ < 1, abychom mohli použít větu odhadující počet y hladkých čísel do p. σ = Ψ(y,p 1) p 1 Ψ(y,p) p ln(p) ( 1+o(1)) e ln(y) ln(ln(p)) Podle Čebyševovy věty je k = Θ( y ln(y) ). Odtud lze odvodit (pro jakékoli y), že 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á SEDL 29/33

Očekávaný čas algoritmu SEDL Dosadíme do E(TIME) = O(( k2 σ + k3 ) len(p) 2 ) a získáme odhad: ln(p) (1+o(1)) max{ ln(ln(p))+2 ln(y);3 ln(y)} E(TIME) e ln(y) Nyní chceme zvolit parametr hladkosti y tak, aby byl odhad očekávaného času minimální. Označme µ = ln(y), A = ln(p) ln(ln(p)). Chceme najít minimim pro funkci f (µ) = max{ A µ + 2µ; 3µ}, použijeme základní kalkulus (nulová první derivace). Alena Gollová SEDL 30/33

Očekávaný čas algoritmu SEDL Funkce f 1 (µ) = A µ + 2µ má f 1 (µ) = A + 2 = 0 pro µ = ± µ 2 A Lokální minimum je v bodě µ = 2, hodnota minima je 4 A Funkce f 2 (µ) = 3µ nabývá v tomto bobě hodnoty 3 A Tudíž µ = 2 je bodem minima pro f (µ) = max{f 1(µ); f 2 (µ)} a hodnota minima je 4 A 2. (pozn. - nakreslete si grafy těchto funkcí) A 2. A 2. 2. Alena Gollová SEDL 31/33

Očekávaný čas algoritmu SEDL A Volíme parametr hladkosti y = e 2 = e 1 ln(p) ln(ln(p)) 2 (všimněme si, že splňuje předpoklady našeho výpočtu). Při tomto y bude očekávaný čas algoritmu SEDL E(TIME) e (2 2+o(1)) ln(p) ln(ln(p)), tedy subexponenciální s konstantou 2 2. = 2, 828 v exponentu. Očekávaný čas algoritmu SEF 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 2). Alena Gollová SEDL 32/33

Algoritmus SEDL 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á SEDL 33/33