POLLARDŮV ρ ALGORITMUS PRO FAKTORIZACI PŘIROZENÝCH ČÍSEL ÚVOD

Podobné dokumenty
Jak funguje asymetrické šifrování?

Diskrétní matematika 1. týden

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

Základy elementární teorie čísel

Základy elementární teorie čísel

Univerzita Karlova v Praze Pedagogická fakulta

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

Matematické algoritmy (11MAG) Jan Přikryl

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

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

MFF UK Praha, 22. duben 2008

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

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

Prvočísla, dělitelnost

Co víme o přirozených číslech

4 Počítání modulo polynom

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

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

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

1 Mnohočleny a algebraické rovnice

Historie matematiky a informatiky Cvičení 1

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

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

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

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

1 Polynomiální interpolace

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

Základy matematické analýzy

2.8.6 Čísla iracionální, čísla reálná

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

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

Matematika IV - 3. přednáška Rozklady grup

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

Správa přístupu PS3-2

Prvočísla a čísla složená

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ší).

1 Mnohočleny a algebraické rovnice

Pravděpodobnost a její vlastnosti

Co víme o přirozených číslech

Náhodný vektor a jeho charakteristiky

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Největší společný dělitel

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

pro každé i. Proto je takových čísel m právě N ai 1 +. k k p

2.7.6 Rovnice vyšších řádů

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.

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

DVA POHLEDY NA JEDNU APLIKACI TEORIE ČÍSEL

Testování prvočíselnosti

Eliptické křivky a RSA

Matematika IV - 3. přednáška Rozklady grup

Datové struktury 2: Rozptylovací tabulky

Dělitelnost přirozených čísel. Násobek a dělitel

Moravské gymnázium Brno s.r.o.

Problematika převodu zprávy na body eliptické křivky

Diskrétní matematika. DiM /01, zimní semestr 2016/2017

3. Podmíněná pravděpodobnost a Bayesův vzorec

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

Svobodná chebská škola, základní škola a gymnázium s.r.o. Dušan Astaloš. samostatná práce, případně skupinová práce. čísla soudělná a nesoudělná

1. 1 P Ř I R O Z E N Á Č Í S L A

Diskrétní logaritmus

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

Náhodná veličina a její charakteristiky. Před provedením pokusu jeho výsledek a tedy ani sledovanou hodnotu neznáte. Proto je proměnná, která

Cykly a pole

Úvod do informatiky. Miroslav Kolařík

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

MATEMATIKA. Diofantovské rovnice 2. stupně

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

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

Úlohy krajského kola kategorie C

Fibonacciho čísla na střední škole

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Kritéria dělitelnosti Divisibility Criterions

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

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

South Bohemia Mathematical Letters Volume 23, (2015), No. 1, DĚLENÍ KRUHU NA OBLASTI ÚVOD

Algebraické rovnice. Obsah. Aplikovaná matematika I. Ohraničenost kořenů a jejich. Aproximace kořenů metodou půlení intervalu.

Pomocný text. Polynomy

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

GEOMETRICKÁ MÍSTA BODŮ V MATEMATICE ZŠ ÚVOD

Příklad. Řešte v : takže rovnice v zadání má v tomto případě jedno řešení. Pro má rovnice tvar

Kritéria dělitelnosti

Důkazové metody v teorii čísel

GRAFICKÉ ŘEŠENÍ ROVNIC A JEJICH SOUSTAV

Teorie pravěpodobnosti 1

online prostředí, Operační program Praha Adaptabilita, registrační číslo CZ.2.17/3.1.00/31165.

)(x 2 + 3x + 4),

Matematická analýza pro informatiky I. Limita posloupnosti (I)

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

Řešení 1. série. Řešení S-I-1-1 Nejdříve si uvědomme, že platí následující vztahy. h = 1 2 v d, h = 1 2 s k,

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

Principy indukce a rekursivní algoritmy

Riemannův určitý integrál

Úvod do teorie dělitelnosti

Inženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti.

0.1 Úvod do lineární algebry

stránkách přednášejícího.

Základy teorie množin

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

Cyklické grupy a grupy permutací

Transkript:

South Bohemia Mathematical Letters Volume 5, (017), No. 1, 34-38. POLLARDŮV ρ ALGORITMUS PRO FAKTORIZACI PŘIROZENÝCH ČÍSEL JAROSLAV HORA ABSTRAKT. S rozvojem moderních šifrovacích metod jde ruku v ruce i zvýšený zájem o moderní algoritmy pro hledání rozkladu složeného čísla v součin prvočísel. Faktorizační metoda, navržená J. M. Pollardem v r. 1975, byla svého času nejlepším známým algoritmem pro rozklad složených přirozených čísel. Jde o metodu využívající pravděpodobnost a lze ji vysvětlit i studentům středních škol. ÚVOD Je dobře známo, že v posledních desetiletích velmi vzrostl zájem o problematiku rozkladu (faktorizace) přirozených čísel a o další otázky z oblasti teorie čísel, a to zejména v souvislosti s moderním šifrováním zpráv (RSA šifrovací metoda). Běžná metoda pokusného dělení (trial division) vyžaduje při hledání případných vlastních dělitelů přirozeného čísla N zkoušet (prvo)číselné dělitele od až do N. Nejsou li žádní, je N prvočíslem, jinak jsme nalezli vlastní dělitel složeného čísla N. Metoda pokusného dělení je tedy zároveň testem prvočíselnosti i technikou pro nalezení vlastního dělitele přirozeného čísla N. Pro účely běžné školní výuky, kdy volíme malá přirozená čísla N, je dobře využitelná: známe seznam několika malých prvočísel a požadovaných pokusných dělení nebývá mnoho. Je li ale N velké přirozené číslo, vyjeví se nevýhody metody my lidé (ale ani počítače) nemáme v paměti dostatečně velký seznam prvočísel, a hlavně je zřejmé, že testovacích dělení bude muset proběhnout velice mnoho. Ukazuje se, že metoda opakovaného dělení je pomalá a pro velká N ji nelze nechat v úplnosti proběhnout. Seznamme se tedy s jinou faktorizační metodou, kterou navrhl John Pollard již v roce 1975, tedy před nástupem počítačové techniky. Jde o metodu Monte Carlo, tj. postup využívající pravděpodobnosti. Idea metody je dostupná středoškolským studentům. 1. NAROZENINOVÝ PARADOX Příklad 1.: Sešla se skupina n osob, n. Vypočtěte pravděpodobnost, že alespoň dva z nich budou mít narozeniny stejný den v roce. (Pro jednoduchost předpokládejme, že rok má 365 dní, tj. nebereme v úvahu přestupné roky). Řešení: Určeme pravděpodobnost komplementárního jevu A, že žádné dvě osoby z n zúčastněných nebudou mít narozeniny týž den v roce. Spočtěme nejprve, kolik je všech možných případů pro data narození těchto n osob. Pro den narození první osoby je 365 možností, pro dvě osoby je tedy 365 možností, pro n osob 365 n možností. Vypočtěme dále, kolik z těchto případů je příznivých. První osoba se může narodit kterýkoli den v roce. Je -li ale již známo její datum narození a nemá -li druhá osoba mít narozeniny týž den, zbývá pro její datum narození již jen 365 1 = 364 možností. Nemá -li datum narození Key words and phrases. Faktorizace přirozených čísel, metoda opakovaného dělení, narozeninový paradox, Pollardův ρ algoritmus. 34

POLLARDŮV RHO ALGORITMUS 35 žádných dvou osob z n zúčastněných připadnout na stejný den v roce, je 365.364.....(365 n + 1) příznivých případů. Proto 365. 365 1. 365... 365 n 1 P(A) = (1) 365 n je pravděpodobnost jevu, že žádné dvě osoby z n zúčastněných nebudou mít narozeniny týž den v roce. Výpočet numerické hodnoty P(A) pro jednotlivé hodnoty n je vhodné přenechat nějakému pomocníku. V devadesátých letech minulého století jsme s oblibou používali grafické kalkulátory třídy TI 9 či program Derive, nyní je k dispozici řada dalších programů. OBR. 1 OBR. Pro n = 3 je P(A) = 0,4970, tj. pravděpodobnost jevu, že mezi 3 osobami nemají žádné dvě narozeniny týž den v roce, je již menší než 50. Je tedy pravděpodobnější, že nastane jev komplementární, tj. že aspoň dva lidé z této skupiny slaví narozeniny týž den v roce. Dále je možné si nechat několik hodnot vypsat do tabulky. Obr. 3 zachycuje displej kalkulátoru, na němž je uvedeno několik hodnot P(A) z (1) pro n = 19, 0,..., 5. Proč se mluví o narozeninovém paradoxu, když výpočet je korektní a nic paradoxního na něm není? Kdybychom o předpověď výsledku požádali nematematika, Hilbertova OMZU, obyčejného muže z ulice, dočkali bychom se asi o hodně vyššího odhadu čísla n. Celou věc si můžeme představit ještě jedním způsobem. Kdybychom házeli nikoli běžnou hrací kostkou, ale pravidelným mnohostěnem o 365 stěnách, pak jsme určili pravděpodobnost, že dojde k opakování již hozeného čísla. K opakování dojde brzy a právě tato skutečnost se s výhodou využije v Pollardově ρ algoritmu. K jeho popisu teď přistoupíme.. VSAĎ VYHRAJEŠ SNAD! Podle vyprávění mých rodičů byl tento slogan prvorepublikovým reklamním heslem jisté loterie. (Heslo bylo vcelku korektní, v dnešní době je třeba vzbudit zájem publika enormními výhrami pro náhodného jednotlivce a dosáhnout dojmu, že taková výhra čeká na každého). Ale i když je Pollardův ρ algoritmus metodou Monte Carlo, tedy pravděpodobnostní, je vymyšlen korektně a vyhrajeme skoro vždy. Máme faktorizovat složené přirozené číslo N, které není mocninou prvočísla. (Poslední podmínka se zřejmě snadno otestuje a rovněž existují testy na složenost přirozeného čísla). n Zkonstruujeme jistou posloupnost x přirozených čísel takto. Buď x 0 libovolné přirozené číslo. Další členy posloupnosti počítejme z kongruence x i+1 x i + 1 (mod N).

36 JAROSLAV HORA Jak se uvádí v : The choice of this iteration function is black magic, but linear polynomials do not work, and higher degree polynomials are more costly to evaluate, and one cannot prove more about them than about x + 1. Nyní již můžeme přistoupit k formulaci Pollardovy metody. Nechť N je přirozené číslo, které chceme faktorizovat. Zvolme přirozené číslo x 0 a vypočtěme jistý počet členů posloupnosti nezáporných celých čísel x i, definovaných následovně: x i+1 x i + 1 (mod N). Předpokládejme, že prvočíslo p je nejmenším prvočíselným dělitelem čísla N. Dále předpokládejme, že x i je posloupností pseudonáhodných čísel modulo p. Dále, nechť pro jisté dva členy x n, x m, n m této posloupnosti platí, že x n x m (mod p). (Příklad 1 nám dává naději, že na výskyt takovýchto členů posloupnosti x i nebudeme muset čekat dlouho). Platí tedy p (x n x m ), p N, tedy největší společný dělitel D(x n x m, N) 1. Pokud zároveň x n x m (mod N), je D(x n x m, N) N a nalezli jsme netriviální vlastní dělitel čísla N. Navíc je výhodné, že tento dělitel lze nalézt Eukleidovým algoritmem, což je velice efektivní metoda. Krajně neuspokojivé by ale bylo, kdybychom vskutku museli počítat D(x n x m, N) pro všechny dvojice n, m N, n m. Objem výpočtů by narostl tak, že by to zcela znehodnotilo praktické využití navrhované metody. Naštěstí lze velkou část těchto propočtů ušetřit. Postačí totiž testovat jen dvojice x i, x i, i N, jak posléze ukážeme. Nyní zapišme nástin algoritmu pro Pollardovu metodu a pro malý kalkulátor: Je dáno přirozené číslo N, které chceme rozložit. 1. Zvolme přirozené číslo x 0.. Vypočtěme x i+1 x i + 1 (mod N), i = 0, 1,... 3. Pro jistý počet i N vypočtěme D(x i x i, N). 4. Opakujme to do té doby, než D(x i x i, N) je netriviálním dělitelem čísla N úspěch. Pokud proces běží přes daný časový limit neúspěch. Příklad : Rozložme číslo N = 57 pomocí Pollardovy metody. Řešení: Volme kupř. x 0 = 3 a vypočtěme dalších deset členů posloupnosti x i. Máme x 1 = 10, x = 101, x 3 = 189, x 4 = 413, x 5 = 349, x 6 = 65, x 7 = 10, x 8 = 101, x 9 = 189, x 10 = 413. Dále D(x x 1, N) = D(101 10, 57) = 1, D(x 4 x, N) = D(413 101, 57) = 1, D(x 6 x 3, N) = D(65 189, 57) = 31. Nalezli jsme netriviální dělitel čísla N = 57, je 57 = 31. 17. Teď také vidíme, odkud se vzalo písmeno v názvu metody. První člen x 0 = 3 tvoří předperiodu, pak dochází k zacyklení, neboť x 1 = x 7 = 10. Kdybychom si získanou posloupnost zakreslili na papír ve tvaru uzlového grafu, dostali bychom zřejmě obrázek, který připomíná řecké písmeno. (Jindy může být předperioda delší a podobnost grafického znázornění členů posloupnosti s písmenem výraznější). Pro úspěch metody je rozhodující snížení výpočetní náročnosti, kdy nemusíme testovat počítat D(x n x m, N) pro všechny dvojice n, m N, n m, ale jen pro dvojice tvaru x i, x i, i N. To souvisí s tzv. Floydovým trikem pro hledání cyklu, který se v posloupnosti x i mod p objeví. Věta: Nechť p je prvočíslo dělící číslo N a nechť x 0 je dané přirozené číslo. Nechť v posloupnosti x i, kde x i+1 x i (mod p), i = 0, 1,..., existují taková m, n N, m n, že x n x m (mod p). Potom pro jisté t N platí x t x t (mod p). Návod k důkazu: Postupujme podle tohoto schématu:

POLLARDŮV RHO ALGORITMUS 37 1. Pišme n = m + d, d 1. Ukažme, že x m+1 x m + d + 1 (mod p) a dále indukcí, že x m+r x m + d + r (mod p) pro všechna r N.. Mezi čísly m, m + 1,..., m + d 1 je právě jedno násobkem čísla d. Předpokládejme, že k je ten index z množiny 0, 1,..., d 1, pro který d m + k. Potom m + k = d. e pro jisté e N, x ed x m+k x m+k + d x ed + d ( mod p). 3. Dokažme, že obdobně platí x ed x ed + d (mod p), x ed x ed + 3d (mod p),..., x ed x ed + ed x ed (mod p). Položíme -li nyní t = ed, máme x t x t (mod p), což bylo dokázati. Jak jsme naznačili, existují případy, kdy Pollardova metoda selže. Příklad 3: Pokusme se rozložit N = 141 s tím, že x 0 = 6. Řešení: Napišme několik prvních členů posloupnosti x i : x 0 = 6, x 1 = 37, x = 19, x 3 = 509, x 4 = 954, x 5 = 464, x 6 = 604, x 7 = 104, x 8 = 19, x 9 = 509, x 10 = 954, x 11 = 464, x 1 = 604, x 13 = 104, x 14 = 19, x 15 = 509, x 16 = 954 atd. Dále D(x x 1, 141) = D(19 37, 141) = 1, D(x 4 x, 141) = D(954 19, 141) = 1, D(x 6 x 3, 141) = D(604 509, 141) = 1, D(x 8 x 4, 141) = D(19 954, 141) = 1, D(x 10 x 5, 141) = D(954 464, 141) = 1. Poté ale D(x 1 x 6, 141) = D(145 145, 141) = 141. Následuje D(x 14 x 7, 141) = D(19 104, 141) = 1, D(x 16 x 8, 141) = D(954 19, 141) = 1, D(x 18 x 9, 141) = D(604 509, 141) = 1, D(x 0 x 10, 141) = D(19 954, 141) = 1, D(x x 11, 141) = D(954 464, 141) = 1. Poté opět D(x 4 x 1, 141) = D(604 604, 141) = 141 a začíná být patrné, že existují (vcelku vzácné) případy, kdy Pollardova metoda neposkytne výsledek. Kdybychom ale volili x 0 = 7, dostali bychom x 1 = 50, x = 19, x 3 = 36, x 4 = 740, x 5 = 30, x 6 = 639, x 7 = 33, x 8 = 1090, x 9 = 464, x 10 = 604, x 11 = 104, x 1 = 19, x 13 = 509, x 14 = 954. Poté máme D(x x 1, 141) = D(19 50, 141) = 1, D(x 4 x, 141) = D(740 19, 141) = 1, D(x 6 x 3, 141) = D(639 36, 141) = 1, D(x 8 x 4, 141) = D(1090 740, 141) = 1, D(x 10 x 5, 141) = D(604 30, 141) = 1, D(x 1 x 6, 141) = D(19 639, 141) = 17. Snadno se zjistí, že 141 = 17.73 je hledaný rozklad. Změna čísla x 0 tedy pomohla. Pollardova metoda by mohla být v případě malých N dostupná i pro žáky ZŠ, protože vyžaduje provádění operací s přirozenými čísly, které jsou žákům známy. Studentům SŠ se zájmem o výpočetní techniku a programování by mohla poskytnout pokročilejší podněty. Závěrem poznamenejme, že začátkem osmdesátých let minulého století byla Pollardova metoda nejlepším dostupným algoritmem pro faktorizaci přirozených čísel. V roce 1981 se např. Brentovi a Pollardovi zdařilo pomocí této metody rozložit osmé Fermatovo číslo 8 F 8 = + 1 = p 16.p 6, tedy v součin dvou prvočísel, majících 16, resp. 6 cifer. Je známo (viz 1 ) i porovnání časové náročnosti metody opakovaného dělení a Pollardovy metody: je li n (zhruba) počet cifer čísla N, je časová náročnost metody opakovaného dělení úměrná n 4, kdežto u Pollardova postupu n a to je pro velká n významný rozdíl. ZÁVĚR Dnes jsou k dispozici lepší faktorizační metody jenže jsou složité a asi je nebudeme moci vysvětlit našim žákům. LITERATURA [1] von zur Gathen, J, Gerhard, J.: Modern Computer Algebra, Cambridge University Press, 1999.

38 JAROSLAV HORA [] Childs, L. N.: A Concrete Introduction to Higher Algebra, Springer, New York, third ed., 009. KATEDRA MATEMATIKY, FYZIKY A TECHNICKÉ VÝCHOVY FPE ZČU PLZEŇ, ČESKÁ REPUBLIKA E-mail address: horajar@kmt.zcu.cz