Úvod do kryptologie. 6. března L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března / 41

Podobné dokumenty
Historie matematiky a informatiky Cvičení 1

MFF UK Praha, 22. duben 2008

RSA. Matematické algoritmy (11MA) Miroslav Vlček, Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. čtvrtek 21.

Hledání rekordně velkých prvočísel

Úvod. Karel Klouda c KTI, FIT, ČVUT v Praze 18. dubna, letní semestr 2010/2011

Jak funguje asymetrické šifrování?

RSA. Matematické algoritmy (11MAG) Jan Přikryl. Ústav aplikované matematiky ČVUT v Praze, Fakulta dopravní. verze: :01

Čínská věta o zbytcích RSA

Matematické algoritmy (11MAG) Jan Přikryl

Složitost a moderní kryptografie

Prvočísla, dělitelnost

Historie matematiky a informatiky 2 8. přednáška

Matematické algoritmy (11MAG) Jan Přikryl. verze: :29

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

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

Historie matematiky a informatiky 2 7. přednáška

Matematika pro informatiku 12

Historie matematiky a informatiky Cvičení 4

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.

Historie matematiky a informatiky Cvičení 2

Úvod RSA Aplikace, související témata RSA. Ing. Štěpán Sem Festival Fantazie, Štěpán Sem

Testování prvočíselnosti

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

Pokročilá kryptologie

Asymetrické šifry. Pavla Henzlová FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

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

Protokol RSA. Tvorba klíčů a provoz protokolu Bezpečnost a korektnost protokolu Jednoduché útoky na provoz RSA Další kryptosystémy

Zbytky a nezbytky Vazební věznice Orličky Kondr (Brkos 2010) Zbytky a nezbytky / 22

Šifrová ochrana informací věk počítačů PS5-2

Matematika pro informatiku 10

ZÁPADOČESKÁ UNIVERZITA V PLZNI

ElGamal, Diffie-Hellman

Diskrétní matematika 1. týden

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

Diffieho-Hellmanův protokol ustanovení klíče

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

Modulární aritmetika, Malá Fermatova věta.

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

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

asymetrická kryptografie

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

Prvočíslo a Ulamova spirála

Kryptografie založená na problému diskrétního logaritmu

Správa přístupu PS3-2

Generátory náhodných a

Jihomoravske centrum mezina rodnı mobility. T-exkurze. Teorie c ı sel, aneb elektronicky podpis a s ifrova nı

becvar

Algoritmy okolo teorie čísel

Šifrová ochrana informací věk počítačů PS5-2

Algoritmy okolo teorie čísel

Trocha teorie Ošklivé lemátko První generace Druhá generace Třetí generace Čtvrtá generace O OŠKLIVÉM LEMÁTKU PAVEL JAHODA

Eliptické křivky a RSA

Základy elementární teorie čísel

Diskrétní logaritmus

Charakteristika tělesa

Základy elementární teorie čísel

Matematika IV - 5. přednáška Polynomy

Miroslav Kureš. Aplikovaná matematika Ostravice workshop A-Math-Net Sít pro transfer znalostí v aplikované matematice

Karel Klouda c KTI, FIT, ČVUT v Praze 28. února, letní semestr 2010/2011

O dělitelnosti čísel celých

příklad Steganografie Matematické základy šifrování šifrování pomocí křížů Hebrejské šifry

Čínská věta o zbytcích RSA

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

Kvantová informatika pro komunikace v budoucnosti

Úvod do teorie her

Asymetrická kryptografie

Matematika IV - 5. přednáška Polynomy

Matematické důkazy Struktura matematiky a typy důkazů

[1] Definice 1: Polynom je komplexní funkce p : C C, pro kterou. pro všechna x C. Čísla a 0, a 1,..., a n nazýváme koeficienty polynomu.

Modulární aritmetika, Malá Fermatova věta.

Pravděpodobnostní algoritmy

ZÁPADOČESKÁ UNIVERZITA V PLZNI

Prvočísla: 2, 3, 5, 7, 11, 13,... Základní věta aritmetiky. Jestliže. kde p 1 < p 2 < < p r, q 1 < q 2 < < q s jsou prvočísla a

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

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)

Šifrování veřejným klíčem

Kongruence na množině celých čísel

ALGORITMY TEORIE ČÍSEL

Y36BEZ Bezpečnost přenosu a zpracování dat. Úvod. Róbert Lórencz. lorencz@fel.cvut.cz

Učební texty k státní bakalářské zkoušce Matematika Algebra. študenti MFF 15. augusta 2008

Rekurentní rovnice, strukturální indukce

ALGORITMY TEORIE ČÍSEL

Pokročilá kryptologie

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

Kvantové algoritmy a bezpečnost. Václav Potoček

4 Počítání modulo polynom

Digitální podepisování pomocí asymetrické kryptografie

Aritmetické funkce. Pepa Svoboda

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

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

DVA POHLEDY NA JEDNU APLIKACI TEORIE ČÍSEL

)(x 2 + 3x + 4),

Informatika Ochrana dat

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

Asymetrická kryptografie a elektronický podpis. Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz

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

Dokonalá čísla, zvláště to páté

Arnoldiho a Lanczosova metoda

ALGORITMY TEORIE ČÍSEL

Transkript:

Testování prvočíselnosti L ubomíra Balková Úvod do kryptologie 6. března 2014 L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 1 / 41

Problémy 1 Primality problem: Rozhodni, zda je dané n N prvočíslo. 2 Factoring problem: Najdi prvočíselný rozklad daného n N. po staletí jen teoretický význam v současnosti obrovský praktický význam díky kryptologii L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 2 / 41

Algoritmus RSA Rivest, Shamir, Adleman 1978 Definice: ϕ(n) = počet čísel {1,2,...,n 1} nesoudělných s n ϕ(p) = p 1 pro p P POZN.: ϕ(p q) = (p 1)(q 1) pro p,q P Věta (Eulerova Fermatova): Necht m,n N. NSD(m,n) = 1 m ϕ(n) mod n = 1. 1 generování kĺıče Primality problem Bob generuje velká p,q P, n := pq... modul RSA zvoĺı 1 < e < ϕ(n) = (p 1)(q 1) a NSD(e,ϕ(n)) = 1 Eukleidovým algoritmem najde jediné 1 < d < ϕ(n)... soukromý kĺıč ed mod ϕ(n) = 1, tj. ed = ϕ(n)k +1 pro k N zveřejní (n, e)... veřejný kĺıč 2 šifrování Alice vyhledá v databázi Bobův kĺıč (n,e) odešle c = m e mod n, kde m < n a NSD(m,n) = 1 3 dešifrování Bob spočte m = c d mod n L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 3 / 41

Algoritmus RSA Rivest, Shamir, Adleman 1978 Definice: ϕ(n) = počet čísel {1,2,...,n 1} nesoudělných s n Věta (Eulerova Fermatova): Necht m,n N. NSD(m,n) = 1 m ϕ(n) mod n = 1. dešifrování Bob spočte c d mod n c d mod n = (m e ) d mod n = m ed mod n = m ϕ(n)k+1 mod n = m (m ϕ(n) ) k mod n = m kryptoanalýza Factoring problem rozklad n = pq L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 4 / 41

Program 1 Eratosthenovo síto 2 Fermatův test 3 Pravděpodobnostní testy Rabinův Millerův test Solovayův Strassenův test 4 Deterministické testy Lucasův Lehmerův test AKS test 5 Fermatova faktorizace L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 5 / 41

Eratosthenovo síto Program 1 Eratosthenovo síto 2 Fermatův test 3 Pravděpodobnostní testy Rabinův Millerův test Solovayův Strassenův test 4 Deterministické testy Lucasův Lehmerův test AKS test 5 Fermatova faktorizace L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 6 / 41

Eratosthenovo síto Eratosthenovo síto Eratosthenes z Kyrény (276 194 př.n.l.) L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 7 / 41

Fermatův test Program 1 Eratosthenovo síto 2 Fermatův test 3 Pravděpodobnostní testy Rabinův Millerův test Solovayův Strassenův test 4 Deterministické testy Lucasův Lehmerův test AKS test 5 Fermatova faktorizace L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 8 / 41

Fermatův test Pierre de Fermat (1601 1665) fr. právník a matematik-amatér teorie čísel Velká a Malá Fermatova věta teorie pravděpodobnosti spolu s Pascalem jejím zakladatelem předchůdce diferenciálního počtu L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 9 / 41

Fermatův test Malá Fermatova věta Malá Fermatova věta: Necht p je prvočíslo, a {1,2,...,p 1}. Pak a p mod p = a nebo ekvivalentně a p 1 mod p = 1. L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 10 / 41

Fermatův test Malá Fermatova věta Malá Fermatova věta: Necht p je prvočíslo, a {1,2,...,p 1}. Pak a p mod p = a nebo ekvivalentně a p 1 mod p = 1. Důkaz[Golombův]: náhrdelníky složené z p perel o a barvách počet a p p prvočíslo otáčením náhrdelníku dostaneme opět stejný náhrdelník pouze, je-li složený z perel stejné barvy počet náhrdelníků z perel stejné barvy je a všechny náhrdelníky, co nejsou složené z jedné barvy (těch je a p a), dostaneme otáčením určitého počtu k z nich p-krát o jednu pozici závěr: a p a = kp, a tedy a p mod p = a L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 11 / 41

Fermatův test Algoritmus Fermatova testu testujeme, zda n je prvočíslo bereme libovolné a < n a počítáme a n 1 mod n pokud nevyjde 1 n je složené pokud vyjde 1 nic s jistotou nevíme L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 12 / 41

Fermatův test Carmichaelova čísla Definice: Složená čísla n taková, že pro každé a < n a NSD(a,n) = 1 platí a n 1 mod n = 1, nazýváme Carmichaelova. nejmenší 561 = 3 11 17 Chernik 1939: (6k +1)(12k +1)(18k +1) je Carmichaelovo číslo, pokud je každý faktor prvočíslem Alford, Ganville, Pomerance 1994: existuje -mnoho Carmichaleových čísel Důsledek: Fermatův test nedostatečný k testování prvočíselnosti! L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 13 / 41

Pravděpodobnostní testy Program 1 Eratosthenovo síto 2 Fermatův test 3 Pravděpodobnostní testy Rabinův Millerův test Solovayův Strassenův test 4 Deterministické testy Lucasův Lehmerův test AKS test 5 Fermatova faktorizace L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 14 / 41

Pravděpodobnostní testy Rabinův Millerův test Princip Rabinova Millerova testu pravděpodobnostní rychlý, v praxi nejvíce užívaný n liché prvočíslo a n 1 = 2 k t Malá Fermatova věta pro každé a < n platí 0 = (a n 1 1) mod n = (a 2kt 1) mod n n nutně děĺı aspoň jednu ze závorek: (a 2k 1t 1)(a 2k 1t +1) = (a 2k 2t 1)(a 2k 2t +1)(a 2k 1t +1) = = (a t 1)(a t +1)...(a 2k 2t +1)(a 2k 1t +1) n složené číslo, pak existuje a < n, pro které n neděĺı žádnou ze závorek (takových a jsou aspoň 3/4, tj. 3(n 1) 4 ) L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 15 / 41

Pravděpodobnostní testy Rabinův Millerův test Algoritmus Rabinova Millerova testu testujeme, zda liché n je prvočíslo rozložíme n 1 = 2 k t bereme libovolná a 1,a 2,...,a r {2,...,n 1} kontrolujeme NSD(a i,n) = 1 klademe b i = a t i pokud pro některé b i platí: b i mod n ±1, b 2j i mod n 1 pro každé j {1,...,k 1}, n je složené jinak je n prvočíslo s pravděpodobností 1 1 4 r L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 16 / 41

Pravděpodobnostní testy Rabinův Millerův test Příklad: Rabinův Millerův test testujeme, zda 49 je prvočíslo rozložíme 49 1 = 2 4 3 a 1 := 2 kontrolujeme NSD(2, 49) = 1 klademe b 1 = 2 3 = 8 b 1 mod 49 ±1, protože 8mod 49 = 8 b1 2 mod 49 1, protože 8 8mod 49 = 64mod 49 = 15 b1 22mod 49 1, protože (b2 1 )2 mod 49 = 15 2 mod 49 = 45 5 mod 49 = ( 4) 5mod 49 = 29 b1 23mod 49 1, protože ((b2 1 )2 ) 2 mod 49 = ( 20) 2 mod 49 = 8 49 je složené L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 17 / 41

Pravděpodobnostní testy Solovayův Strassenův test Kvadratické reziduum Definice: Necht p je liché prvočíslo. Pak a N\pN nazveme kvadratické reziduum, pokud a = x 2 mod p pro nějaké x {1,2,...,p 1}. V opačném případě nazveme a kvadratické nereziduum. např. p = 7, pak 1 = 1 2 mod 7 (= 6 2 mod 7) 2 = 3 2 mod 7 (= 4 2 mod 7) 4 = 2 2 mod 7 (= 5 2 mod 7) L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 18 / 41

Pravděpodobnostní testy Solovayův Strassenův test Legendrův symbol Definice: Necht p je liché prvočíslo a a N. Pak definujeme ( ) a = p Jak spočíst Legendrův symbol 0, je-li a násobkem p, 1, je-li a kvadratické reziduum mod p, 1, je-li a kvadratické nereziduum mod p. ( a p)? L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 19 / 41

Pravděpodobnostní testy Solovayův Strassenův test Vlastnosti Legendrova symbolu ( Eulerova věta: Necht p je liché prvočíslo a a N. Pak a p) = a (p 1)/2 mod p. ( ( ) a p) = a mod p p ( ) ( ) ab p = a b p)( p (speciálně když b není násobek p, pak ( ) ( ) 1 p = 1, 1 p = ( 1) p 1 2 ( 2 p) = ( 1) p2 1 8, ( ) ab 2 p ( ) = a p ) ( ( tj. 2 p) = 1 pro p = ±3 mod 8 a 2 p) = 1 pro p = ±1 mod 8 Zákon ( kvadratické reciprocity: ( Necht p, q jsou lichá prvočísla, pak q p) = ( 1) (q 1)(p 1) 4 p q), ( ) ( ( ) tj. q p) = ( p q pro p = q = 3 mod 4 a q p) = p q jinak. L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 20 / 41

Pravděpodobnostní testy Solovayův Strassenův test Jacobiho symbol Definice: Necht n > 1 je liché přirozené číslo a jeho prvočíselný rozklad má tvar n = p α 1 1 pα 2 2...pαr r. Pak definujeme ( ( ) a a α1 ( ) a α2 ( ) a αr =.... n) p 1 vlastnosti Legendrova symbolu platí i pro Jacobiho symbol rychlý výpočet Jacobiho symbolu p 2 p r L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 21 / 41

Pravděpodobnostní testy Solovayův Strassenův test Princip Solovayova Strassenova testu n je liché prvočíslo pro každé a < n platí ( ) n 1 a n = a n je složené číslo existuje a < n, pro které ( a n (takových a je aspoň 1/2, tj. n 1 2 ) 2 mod n ) n 1 a 2 mod n L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 22 / 41

Pravděpodobnostní testy Solovayův Strassenův test Algoritmus Solovayova Strassenova testu testujeme, zda liché n je prvočíslo bereme libovolná a 1,a 2,...,a r {2,...,n 1} kontrolujeme NSD(a i,n) = 1 spočteme ( ) n 1 a i n a a 2 i mod n pro nějaké a i neplatí ( ) n 1 a i = a 2 pro všechna a i platí ( a i n s pravděpodobností 1 1 2 r n i ) = a n 1 2 i mod n n složené mod n n prvočíslo L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 23 / 41

Pravděpodobnostní testy Solovayův Strassenův test Logická otázka Kolik náhodných přirozených čísel je třeba otestovat, než najdeme prvočíslo? Definice: π(n) = počet prvočísel n Prime Number Theorem: π(n) n lnn Důsledek: vybereme-li p náhodně mezi 1 a n, pak pravděpodobnost, že p je prvočíslo 1 lnn Příklad Náhodné číslo o 512 bitech je prvočíslo s pravděpodobností 1. ln2 = 1 2 512 355. Stačí uvažovat jen lichá čísla pravděpodobnost 355. L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 24 / 41

Deterministické testy Program 1 Eratosthenovo síto 2 Fermatův test 3 Pravděpodobnostní testy Rabinův Millerův test Solovayův Strassenův test 4 Deterministické testy Lucasův Lehmerův test AKS test 5 Fermatova faktorizace L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 25 / 41

Deterministické testy Lucasův Lehmerův test Marin Mersenne (1588 1648) fr. matematik (teorie čísel), fyzik (mechanika, optika) mnich (řád minimů): le bon père Mersenne, Maxime de Minimes v jeho pařížském bytě schůzky učenců (Descartes, Pascal) založení Akademie věd roku 1666 arxiv 17. století korespondence se 78 učenci (Descartes, Huyghens, Fermat, Galilei, Torricelli, Komenský) L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 26 / 41

Deterministické testy Lucasův Lehmerův test Mersennova prvočísla Definice: Necht p je prvočíslo. Pak M p = 2 p 1 nazýváme Mersennovo číslo, případně Mersennovo prvočíslo. 2 mn 1 = (2 m ) n 1 = (2 m 1)(1+2 m +2 2m + +2 (n 1)m ) Mersenne není první (před ním Regius, Cataldi) Mersenne tvrdí v roce 1644, že M p prvočíslo pro p = 2,3,5,7,13,17,19,31,67,127,257 M p složené číslo pro ostatní p < 257 v seznamu chybí 61, 89, 107 a přebývá 67, 257 Coleova přednáška beze slov v roce 1903, dk., že M 67 není prvočíslo University of Illinois nalezeno 23. Mersennovo prvočíslo, na počest vydána poštovní známka L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 27 / 41

Deterministické testy Lucasův Lehmerův test Lucasův Lehmerův test Definujme y 1 := 4, y k+1 := yk 2 2 pro k = 1,2,... Věta: Necht p je liché prvočíslo. Pak M p = 2 p 1 je Mersennovo prvočíslo M p /y p 1. menší složitost než u všech ostatních testů, včetně pravděpodobnostních největší známá pročísla jsou Mersennova ovšem testujeme jen část prvočísel jen Mersennova nemožnost využití v kryptografii Lucas (1842 1891) fr. profesor ma na gymnáziu, pomocí testu ukázal, že 2 127 1 je prvočíslo (největší prvočíslo nalezené bez PC) Lehmer (1905 1991) am. matematik, Lehmerův generátor náhodných čísel, 1. numerické výpočty ENIAC, CALDIC L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 28 / 41

Deterministické testy Lucasův Lehmerův test Algoritmus Lucasova-Lehmerova testu necht p liché prvočíslo, testujeme, zda M p = 2 p 1 je prvočíslo klademe y 1 := 4 a spočteme y k := (y 2 k 1 2)mod M p pro k = 2,...,p 1 pokud y p 1 = 0 M p je prvočíslo jinak je M p složené číslo L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 29 / 41

Deterministické testy Lucasův Lehmerův test GIMPS GIMPS = Great Internet Mersenne Prime Search http://www.mersenne.org/ založen 1996 Georgem Woltmanem, programy od firmy Scotta Kurowského 1998 19-letý student Clarkson objevil M(37) = M 3021377, které má > 900000 cifer odměny od Electronic Frontier Foundation 150 000 USD za Mersennovo prvočíslo s > 10 8 ciframi, 250 000 USD s > 10 9 ciframi ze 48 známých Mersennových prvočísel v projektu GIMPS nalezeno 14 L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 30 / 41

Deterministické testy Lucasův Lehmerův test Dokonalá čísla Definice: Necht n N. Pak n nazveme dokonalé, pokud n = d/n,d<n d. Příklad 6 = 1+2+3, 28 = 1+2+4+7+14, 496, 8128 (už staří Řekové) Věta(Eukleidés 300 př.n.l., Euler 18.stol. ): Necht n je sudé přirozené číslo. Pak n je dokonalé n = 2 p 1 (2 p 1), kde p je prvočíslo a M p = 2 p 1 je prvočíslo. Důsledek: nové Mersennovo prvočíslo nové sudé dokonalé číslo L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 31 / 41

Deterministické testy Lucasův Lehmerův test Dokonalá čísla otevřené problémy 1 Existuje mnoho Mersennových prvočísel (a tedy mnoho sudých dokonalých čísel)? 2 Existuje liché dokonalé číslo? Pokud ano, pak 1 > 10 300 2 má aspoň 9 různých prvočinitelů 3 z nich aspoň jeden > 10 20 atd. 3 Existuje mnoho složených Mersennových čísel? L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 32 / 41

Deterministické testy AKS test Agrawal Kalyan Saxena 2002 PRIMES is in P Manindra Agrawal, Neeraj Kayal, Nitin Saxena from the Indian Institute of Technology Kanpur složitost polynomiální O (log 6 n) L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 33 / 41

Deterministické testy AKS test Hlavní myšlenka Věta Necht n 2 a a {1,2,...,n 1} nesoudělné s n. Pak n P (x a) n x n amod n. výpočet n 1 koeficientů náročné zjednodušení: volba vhodného r tak, že (ne)splnění identity (x a) n x n a mod (x r 1),n pro málo hodnot a rozhodne o tom, zda n P L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 34 / 41

Deterministické testy AKS test Volba r chceme, aby multiplikativní řád nmod r byl > log 2 n najdeme minimální takové r B := log 5 n a A := n logb log 2 n i=1 (n i 1) r := nejmenší přirozené číslo, které neděĺı A snadno se ověří, že 1 NSD(r,n) = 1 2 r B 3 o r (n) > log 2 n L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 35 / 41

Deterministické testy AKS test Algoritmus AKS 1 if n = a b pro a N a b > 1 n složené 2 najdi nejmenší r tak, že o r (n) > log 2 n 3 if 1 < NSD(a,n) < n pro nějaké a r n složené 4 if n r n prvočíslo 5 for a = 1 to ϕ(r)logn if (x a) n x n amod n(x r 1),n n složené 6 n prvočíslo L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 36 / 41

Deterministické testy AKS test Náznak důkazu - sporem předpokládejme, že n je složené a přesto output prvočíslo konec krokem 6 uvažujme p/n a p > r a l := ϕ(r)logn množina G prvků kmod r, pro které (x a) k x k a mod (x r 1),n pro všechna a < l tvoří grupu o velikosti aspoň log 2 n množina produktů (x a) k mod h(x),p pro a < l, kde h(x) je vhodně zvolený ireducibilní faktor x r 1, je také grupa G lze určit horní a dolní odhady na velikost grupy G ( ) #G +l #G n #G, #G 1 které se ale vylučují, pokud n není p b pro nějaké b > 1 SPOR L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 37 / 41

Deterministické testy AKS test Složitost algoritmu nejdelší částí je ověření, zda (x a) n x n amod (x r 1),n pro všechna a l jednoduchá analýza O (log 21/2 n) jemnější analýza O (log 15/2 n) se změnou v algoritmu O (log 6 n) stále mnohem pomalejší než Rabin-Miller L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 38 / 41

Fermatova faktorizace Program 1 Eratosthenovo síto 2 Fermatův test 3 Pravděpodobnostní testy Rabinův Millerův test Solovayův Strassenův test 4 Deterministické testy Lucasův Lehmerův test AKS test 5 Fermatova faktorizace L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 39 / 41

Fermatova faktorizace Hlavní myšlenka Příklad necht n = pq, a = p+q 2, b = p q 2, pak p = a+b, q = a b, n = a 2 b 2, tj. každé složené číslo je rozdílem kvadrátů pro p. = q efektivní test (také pro p. = 2q, p. = 3q) n = 200819, pak [ n]+1 = 449 449 2 n = 782 není čtverec 450 2 n = 1681 = 41 2, a tedy a = 450, b = 41, p = 491, q = 409 L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 40 / 41

Fermatova faktorizace Zobecnění pomocí kongruencí hledáme a,b a 2 = b 2 mod n, a ±b mod n pak n (a 2 b 2 ) = (a+b)(a b), ale n (a b) a n (a+b) NSD(n,a+b) > 1 a NSD(n,a b) > 1 Příklad n = 4633 118 2 = 5 2 mod n, 118 ±5 mod n NSD(4633,118 +5) = 41 NSD(4633,118 5) = 113 L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března 2014 41 / 41