ALGORITAM FAKTORIZACIJE GNFS

Similar documents
TEORIJA SKUPOVA Zadaci

Prsten cijelih brojeva

ZANIMLJIV NAČIN IZRAČUNAVANJA NEKIH GRANIČNIH VRIJEDNOSTI FUNKCIJA. Šefket Arslanagić, Sarajevo, BiH

SITO POLJA BROJEVA. Dario Maltarski PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad. Voditelj rada: Doc. dr. sc.

Algoritam za množenje ulančanih matrica. Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

Hornerov algoritam i primjene

Mathcad sa algoritmima

Projektovanje paralelnih algoritama II

PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Marina Zrno KOMUTATIVNI PRSTENI. Diplomski rad. Voditelj rada: prof.dr.sc.

Ariana Trstenjak Kvadratne forme

PRIPADNOST RJEŠENJA KVADRATNE JEDNAČINE DANOM INTERVALU

Uvod u relacione baze podataka

Maja Antolović Algoritmi u teoriji brojeva

Metode izračunavanja determinanti matrica n-tog reda

Kvaternioni i kvaternionsko rješenje kvadratne jednadžbe

Pellova jednadžba. Pell s equation

Funkcijske jednadºbe

Geometrijski smisao rješenja sustava od tri linearne jednadžbe s tri nepoznanice

Red veze za benzen. Slika 1.

Karakteri konačnih Abelovih grupa

Nilpotentni operatori i matrice

Slika 1. Slika 2. Da ne bismo stalno izbacivali elemente iz skupa, mi ćemo napraviti još jedan niz markirano, gde će

Mersenneovi i savršeni brojevi

Ivan Soldo. Sažetak. U članku se analiziraju različiti načini množenja matrica. Svaki od njih ilustriran je primjerom.

Fibonaccijev brojevni sustav

SHEME DIGITALNOG POTPISA

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku DIOFANTSKE JEDNADŽBE

Sveučilište J.J.Strossmayera u Osijeku Odjel za matematiku. Sveučilišni preddiplomski studij matematike

BROJEVNE KONGRUENCIJE

Pitagorine trojke. Uvod

Sveučilište Josipa Jurja Strossmayera u Osijeku Odjel za matematiku

Matrične dekompozicije i primjene

pretraživanje teksta Knuth-Morris-Pratt algoritam

A Beginner s Guide To The General Number Field Sieve

HRVATSKA MATEMATIČKA OLIMPIJADA

Asimetrični kriptografski RSA algoritam

Vedska matematika. Marija Miloloža

Šime Šuljić. Funkcije. Zadavanje funkcije i područje definicije. š2004š 1

ELIPTIČKE KRIVULJE I KRIPTIRANJE. Zdravko Musulin PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad

Položaj nultočaka polinoma

DISKRETNI LOGARITAM. 1 Uvod. MAT-KOL (Banja Luka) ISSN (p), ISSN (o) Vol. XVII (2)(2011), 43-52

Simetrične matrice, kvadratne forme i matrične norme

U čemu je snaga suvremene algebre?

KVADRATNE INTERPOLACIJSKE METODE ZA JEDNODIMENZIONALNU BEZUVJETNU LOKALNU OPTIMIZACIJU 1

Uvod u numericku matematiku

Metode praćenja planova

NTRU KRIPTOSUSTAV. Valentina Pribanić PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad

Metoda parcijalnih najmanjih kvadrata: Regresijski model

Matrice traga nula math.e Vol. 26. math.e. Hrvatski matematički elektronički časopis. Matrice traga nula. komutator linearna algebra. Sažetak.

Linearni operatori u ravnini

Matematika (PITUP) Prof.dr.sc. Blaženka Divjak. Matematika (PITUP) FOI, Varaždin

DES I AES. Ivan Nad PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad. Voditelj rada: doc.dr.sc.

Fajl koji je korišćen može se naći na

Mirela Nogolica Norme Završni rad

NIZOVI I REDOVI FUNKCIJA

Quasi-Newtonove metode

POLINOMNE VARIJANTE DIOFANTOVA PROBLEMA

Linearno programiranje i primjene

PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK BINARNI POLINOMI. Diplomski rad. Voditelj rada: doc. dr. sc. Goranka Nogo. Zagreb, 2017.

Asocijativna polja POGLAVLJE Ključevi kao cijeli brojevi

Matrice u Maple-u. Upisivanje matrica

AKSIOM IZBORA I EKVIVALENCIJE

KRITERIJI KOMPLEKSNOSTI ZA K-MEANS ALGORITAM

ALGORITMI PODIJELI PA VLADAJ

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni nastavnički studij matematike i informatike. Mirjana Mikec.

Matea Ugrica. Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni diplomski studij matematike i računarstva

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku

O aksiomu izbora, cipelama i čarapama

Algoritmi za mnoºenje i dijeljenje velikih. brojeva. Marko Pejovi UNIVERZITET CRNE GORE. Prirodno-matemati ki fakultet Podgorica. Podgorica, 2018.

Pogled u povijest razvoja algoritama

Konstrukcija i analiza algoritama

Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni preddiplomski studij matematike. Ivana Oreški REKURZIJE.

Iskazna logika 1. Matematička logika u računarstvu. oktobar 2012

Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku. Velibor Gojić. Blok dizajni. Diplomski rad. Osijek, 2014.

KLASIFIKACIJA NAIVNI BAJES. NIKOLA MILIKIĆ URL:

ZANIMLJIVI ALGEBARSKI ZADACI SA BROJEM 2013 (Interesting algebraic problems with number 2013)

Rešenja zadataka za vežbu na relacionoj algebri i relacionom računu

Modified Zagreb M 2 Index Comparison with the Randi} Connectivity Index for Benzenoid Systems

Rekurzivni algoritmi POGLAVLJE Algoritmi s rekurzijama

ASIMETRIČNI KRIPTOSUSTAV NTRU

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Preddiplomski sveučilišni studij matematike. Završni rad. Tema : Vedska matematika

Neke klase maksimalnih hiperklonova

Dr. Željko Jurić: Matematička logika i teorija izračunljivosti Radna skripta za istoimeni kurs na Elektrotehničkom fakultetu u Sarajevu.

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni nastavnički studij matematike i informatike. Sortiranje u linearnom vremenu

HIBRIDNI KRIPTOSUSTAVI

Teorem o reziduumima i primjene. Završni rad

Metrički prostori i Riman-Stiltjesov integral

Zanimljive rekurzije

1 Pogreške Vrste pogrešaka Pogreške zaokruživanja Pogreške nastale zbog nepreciznosti ulaznih podataka

Racionalne Diofantove šestorke

Vektori u ravnini i prostoru. Rudolf Scitovski, Ivan Vazler. 10. svibnja Uvod 1

Tina Drašinac. Cramerovo pravilo. Završni rad

Sveučilišni studijski centar za stručne studije. Zavod za matematiku i fiziku. Uvod u Matlab. Verzija 1.1

Uvod u analizu (M3-02) 05., 07. i 12. XI dr Nenad Teofanov. principle) ili Dirihleov princip (engl. Dirichlet box principle).

Diferencijska evolucija

Keywords: anticline, numerical integration, trapezoidal rule, Simpson s rule

Sveučilište J.J. Strossmayera u Osijeku. Odjel za matematiku. David Komesarović. Mooreovi grafovi. Diplomski rad. Osijek, 2017.

Iterativne metode za rješavanje linearnih sustava

ALGORITMI ZA ISPITIVANJE DJELJIVOSTI

ODREĐIVANJE DINAMIČKOG ODZIVA MEHANIČKOG SUSTAVA METODOM RUNGE-KUTTA

Transcription:

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ALGORITAM FAKTORIZACIJE GNFS Ivan Fratrić Seminar iz predmeta Sigurnost računalnih sustava ZAGREB,

Sažetak Faktorizacija brojeva jedan je od značajnijih problema u teoriji brojeva, ali i u kriptoanalizi jer se sigurnost popularnog RSA kriptografskog algoritama zasniva na nemogućnosti napadača da faktorizira velike brojeve u prihvatljivom vremenu. GNFS (engl. General Number Field Sieve) je trenutno najučinkovitiji algoritam za faktorizaciju velikih brojeva i do sada je bio uspješno korišten za faktorizaciju 64-bitnoga broja. U sklopu ovoga rada biti će opisani postupci faktorizacije brojeva razlikom kvadrata, biti će opisani osnovni pojmovi i objašnjeni postupci na kojima se zasniva GNFS algoritam te će biti opisan i sam GNFS algoritam. Također će na jednostavnom primjeru fakotorizacije relativno maloga broja biti pokazani postupci u GNFS algoritmu.

Sadržaj Sadržaj... 3. Uvod... 4. Kriptografski algoritam RSA... 5 3. Faktorizacija razlikom kvadrata... 6 3.. Dixonov algoritam... 6 3.. Algoritam kvadratnog sita... 7 4. GNFS algoritam... 8 4.. Prsten Z[θ]... 8 4.. Glatkost u Z[θ]... 9 4.3. Nalaženje kvadrata umnoškom glatkih brojeva... 5. Sažetak GNFS algoritma... 3 6. Primjer faktorizacije GNFS algoritmom... 4 7. Zaključak... 8 Literatura... 9 Prilog A. Rječnik matematičkih pojmova... 3

. Uvod Faktorizacija velikih brojeva jedan je od problema iz područja teorije brojeva za koji još uvijek ne postoji učinkovit algoritam koji bi se mogao izvršavati na klasičnom računalu. Shorov algoritam za faktorizaciju brojeva [] nalazi rješenje u polinomijalnom vremenu, no za izvršavanje tog algoritma potrebno je kvantno računalo sa dovoljnim brojem qubita za pohranu broja koji će se faktorizirati. Osim u teoriji brojeva, problem faktorizacije velikih brojeva od iznimne je važnosti u području informacijske sigurnosti jer se sigurnost nekih kriptografskih algoritama, od kojih je najpoznatiji RSA, temelji upravo na nemogućnosti napadača da faktorizira velike brojeve. GNFS (engl. General Number Field Sieve) je trenutno najučinkovitiji algoritam faktorizacije koji se može izvršiti na klasičnom računalu. Korištenjem ovog algoritma 5. godine uspješno je faktoriziran 64-bitni broj [] koji je firma RSA zadala kao izazov uz nagradu od. USD. Cilj ovoga rada je dati uvod u osnovne koncepte potrebne za razumijevanje rada ovog algoritma te opisati sam GNFS algoritam. U poglavlju ukratko će biti opisan RSA kriptografski algoritam i značaj faktorizacije za njegovo razbijanje. U poglavlju 3 biti će opisan algoritam kvadratne faktorizacije (Quadratic sieve), na čiju se osnovnu ideju naslanja i GNFS algoritam. U poglavlju 4 biti će opisani osnovni pojmovi i postupci potrebni za razumijevanje rada GNFS algoritma. U poglavlju 5 sažeto će biti prikazan GNFS algoritam. U poglavlju 6 biti će prikazan primjer rada algoritma za faktorizaciju maloga broja. Prilogu A sadrži riječnik matematičkih pojmova koji će biti korišteni u ostatku rada. 4

. Kriptografski algoritam RSA RSA, nazvan prema prvim slovima prezimena svojih autora (Ron Rivest, Adi Shamir i Leonard Adleman), jedan je od najpoznatijih algoritama za kriptografiju javnog ključa. Algoritam stvara par ključeva, javni ključ i tajni ključ. Javni ključ, kako mu i samo ime sugerira, može biti javno obznanjen, a poruke kriptirane javnim ključem trebala bi moći dekriptirati samo osoba koja posjeduje odgovarajući tajni ključ. Postupci generiranja ključeva, kriptiranja i dekriptiranja biti će objašnjeni u nastavku. Ključevi u RSA algoritmu generiraju se slijedećim postupkom: Odaberu se dva velika prosta broja, p i q Izračuna se njihov umnožak, n = p q. Operacije kriptiranja i dekriptiranja obavljati će se u modulo n aritmetici. Izračuna se Eulerova funkcija od n. Budući da je n umnožak dva prosta broje, φ(n) = (p - ) (q - ). Odabere se broj e, < e < φ(n), takav da je relativno prost sa φ(n) Izračuna se d tako da vrijedi de (mod φ(n)). Javni ključ tada čini par (e, n), a tajni ključ par (d, n). Kriptiranje podatka m javnim ključem obavlja se tako da se izračuna c = m e (mod n). Kriptirani podatak c dekriptira se javnim ključem tako da se izračuna c d = m (mod n). Ova jednakost temelji se na Eulerovom teoremu: Teorem : Eulerov teorem: Za pozitivan cijeli broj n i pozitivan cijeli broj a relativno prost s n vrijedi Primijenimo li Teorem na RSA dekriptiranje, dobivamo a φ(n) (mod n) () c d ( m e ) d m ed m k ( n) m k ( n) k m m m(modn) () Premda općenito Eulerov teorem vrijedi samo kada su m i n relativno prosti, može se pokazati da se u ovom slučaju isti krajnji rezultat dobiva i kada to nije slučaj. Ukoliko bi napadač mogao faktorizirati n, tada bi na temelju javnoga ključa (e, n) mogao izračunati tajni ključ (d, n) i dekriptirati poruke kriptirane javnim ključem. 5

3. Faktorizacija razlikom kvadrata Osnovna ideja faktorizacije razlikom kvadrata potječe od Fermata i temelji se na zapažanju da ako postoje dva cijela broja x i y takva da x y (mod n) i x y (mod n) (3) tada postoji velika vjerojatnost da su gcd(x y, n) i gcd(x + y, n) netrivijalni faktori od n. Ovo je vidljivo iz slijedećeg razmatranja. Pretpostavimo da je n = pq, gdje su p i q prosti brojevi. Iz jednadžbe 3 slijedi da x y dijeli n, iz čega, preko razlike kvadrata, slijedi da (x - y)(x + y) dijeli n. Iz faktorizacije n slijedi da (x - y)(x + y) dijeli p i (x - y)(x + y) dijeli q. Koristeći rezultat iz teorije brojeva da, ako ab dijeli c i gcd(b, c) = tada a dijeli c, dolazimo do slijedećih zaključaka I) x + y dijeli p ili x y dijeli p II) x + y dijeli q ili x y dijeli q Sve moguće kombinacije ovih slučajeva raspisane su u tablici. p x+y p x-y q x+y q x-y gcd(n,x+y) gcd(n,x-y) Uspješna faktorizacija NE DA NE DA n NE NE DA DA NE q p DA NE DA DA DA q n DA DA NE NE DA p q DA DA NE DA NE n NE DA NE DA DA n q DA DA DA NE DA p n DA DA DA DA NE n p DA DA DA DA DA n n NE Tablica : Mogući slučajevi za x y (mod n) Ukoliko pretpostavimo da su svi događaji jednako vjerojatni, tada ukoliko nađemo brojeve x i y tako da vrijedi x y (mod n) postoji vjerojatnost od /3 da smo faktorizirali n. 3.. Dixonov algoritam Dixonov algoritam [3] je jedan od postupaka za nalaženje brojeva x i y koji zadovoljavaju jednadžbu 3. Za objašnjenje ovog algoritma potrebno je uvesti pojmove faktorske baze i glatkih brojeva, koji će također biti potrebni za objašnjenje GNFS algoritma. Faktorska baza F je neprazan skup prostih brojeva. Broj k je gladak u faktorskoj bazi F ako su, u njegovoj jedinstvenoj faktorizaciji, svi faktori iz F. Na primjer, skup brojeva {, 3, 5} čine faktorsku bazu. Broj 45 je gladak po toj bazi jer je njegova jedinstvena faktorizacija 3 5. Broj 4 nije gladak po toj bazi jer je njegova jedinstvena faktorizacija 3 7, a broj 7 nije u faktorskoj bazi. Dixonov algoritam fiksira faktorsku bazu F = {p, p, p 3,, p m } i zatim slučajnim odabirom traži brojeve r i za koje vrijedi da je f(r i ) = r i (mod n) gladak u bazi F. Kada nađemo dovoljno ovakvih brojeva (više od m), možemo naći njihov podskup U takav da je umnožak brojeva iz U kvadrat nekog broja, tj vrijedi 6

f ri U e e e3 em e e e3 em ( ri ) p p p3... pm ( p p p3... pm ) (4) gdje su potencije e i. Uzimajući e e e3 em x r i y p p p... p (5) ri U dobivamo željeni rezultat jer vrijedi i 3 m x ru i r i ru i f ( r ) i y (modn) (6) 3.. Algoritam kvadratnog sita Algoritam kvadratnog sita [3] proširenje je Dixonovog algoritma i dugo vremena bio je najefikasniji algoritam faktorizacije. Još uvijek je to najčešće korišten algoritam za brojeve sa između 5 i znamenaka [4]. Razlika između Dixonovog algoritma i algoritma kvadratnog sita je u korištenju f(r i ) = r i n umjesto f(r i ) = r i (mod n). Lako je provjeriti da izrazi 4, 5 i 6 vrijede za ovakav f(r i ) u identičnom obliku. Ubrzanje u odnosu na Dixonov algoritam postiže se zbog jednostavnijeg ispitivanja je li neki broj gladak. Ispitivanje glatkosti u Dixonovom algoritmu postiže se pokušajima dijeljenja ispitivanog broja sa svim brojevima iz faktoske baze, što je dugotrajan proces. S druge strane, f(r i ) = r i n ima svojstvo da, ukoliko neki prost broj p iz faktorske baze dijeli f(r i ), tada on dijeli i f(r i + kp) gdje je k neki cijeli broj. Ovo se može pokazati kao i f ( r kp) r rkp ( kp) n r n (mod p) (7) i i Ovo svojstvo možemo iskoristiti za nalaženje glatkih brojeva u nekom rasponu α r i β na slijedeći način. Izaberemo α i β tako da u intervalu [α, β] očekujemo više od m glatkih brojeva. Alociramo polje veličine β - α + i u svaki element polja upišemo odgovarajuću vrijednost f(r i ). Tada za svaki prost broj p iz faktorske baze riješimo jednadžbu r i n (mod p). Za sve cijele brojeve k za koje je r i + pk u intervalu [α, β] podijelimo odgovarajuću vrijednost u polju s p. Na taj način djelimo s p samo one elemente polja za koje smo sigurni da su zaista djeljivi s p i time izbjegavamo nepotrebna dijeljenja. Nakon što smo ovo učinili za sve proste brojeve iz faktorske baze, jednostavno pogledamo za koje vrijednosti r i je odgovarajući element u polju. Za takve r i vrijedi da je f(r i ) gladak u bazi F. U praksi se u polje spremaju logaritmi odgovarajućih vrijednosti kako bi se uštedjelo na prostoru potrebnom za pohranu polja. U tom slučaju umjesto dijeljenja vrijednosti u polju s prostim brojem p, oduzimamo od vrijednosti u polju logaritam od p. log n log log n Složenost algoritma kvadratnog sita je O ( e ). i 7

4. GNFS algoritam Prsten je algebarska struktura koja se sastoji od skupa i dvaju binarnih operacija, koje se obično nazivaju zbrajanje i množenje. Ove operacije imaju svojstvo da dva elementa iz skupa preslikavaju u treći element iz toga skupa. Potpuni popis uvjeta koje ove operacije moraju zadovoljavati naveden je u prilogu A. Algoritam kvadratnog sita traži glatke brojeve u prstenu Z (prsten cijelih brojeva), a Dixonov algoritam u prstenu Z/nZ (prsten brojeva u modulo n aritmetici, vidi prilog A). Osnovna ideja GNFS algoritma [4, 5] je ta da možda postoje drugi prsteni osim Z i Z/nZ u kojima bismo našli više glatkih brojeva nego u Z i Z/nZ. Ukoliko postoji neki takav prsten R, i postoj homomorfizam Φ: R Z/nZ između toga prstena i prstena Z/nZ pomoću kojega možemo preslikati kvadrat elementa iz R u kvadrat elementa iz Z/nZ, tada je moguće iskoristiti ovo preslikavanje da bi smo pronašli razliku kvadrata na slijedeći način: x ( ) ( ) y (modn) (8) GNFS algoritam koristi prsten Z[θ]. Ovaj prsten biti će objašnjen u slijedećem poglavlju. 4.. Prsten Z[θ] Pretpostavimo da smo odabrali polinom f stupnja d s cjelobrojnim koeficijentima. Neka je θ korijen polinoma f (θ može biti kompleksan broj). Skup svih brojeva oblika a d d d ad... a a (9) gdje su koeficijenti a j cijeli brojevi, s operacijama zbrajanja i množenja koje su definirane kao zbrajanje i množenje polinoma, čini prsten Z[θ]. Na primjer, neka je f(x) = x 5. Jedan korijen ovog polinoma je 5. Tada broj 7 5 3 pripada prstenu Z[θ]. Na prvi pogled, može se činiti da ovako definiran skup ne čini prsten jer množenje dvaju polinoma stupnja manjeg d može dati polinom većeg stupnja, no pogledajmo slijedeće razmatranje: Neka su a(x) i b(x) dva polinoma s cjelobrojnim koeficijentima stupnja manjeg od d i vrijedi a(θ) = A i b(θ) = B. Očito su A i B elementi Z[θ]. Prema algoritmu dijeljenja poligona a(x)b(x) = e(x)f(x) + c(x), gdje je stupanj polinoma c manji od d. Ako je c(θ) = C vrijedi AB a( x) b( x) e( x) f ( x) c( x) e( ) f ( ) C e( ) C C () x x x Budući da je stupanj c manji od d, C je također element Z[θ]. Ovaj rezultat sugerira da se množenje poligona u prstenu Z[θ] obavlja po modulu f(x): x x x a ( x) b( x) a( x) b( x) (mod f ( x)) () Da bismo mogli proizvesti razliku kvadrata kao u jednadžbi 8 potreban nam je još homomorfizam koji preslikava iz Z[θ] u Z/nZ. 8

Uzmimo cijeli broj m za koji vrijedi f(m) = (mod n). Može se pokazati da je preslikavanje Φ: Z[θ] Z/nZ koje preslikava θ u m i za koje vrijedi Φ() = homomorfizam među prstenovima. Sada, ako nađemo skup U parova cijelih brojeva (a, za koje vrijedi U ( a b ) i ( a bm) y () U i uvrstimo ovo u jednadžbu 8 dobivamo razliku kvadrata i s vjerojatnosti /3 možemo faktorizirati broj n. 4.. Glatkost u Z[θ] Da bismo mogli naći kvadrate u Z[θ] strategijom koja je korištena u algoritmu kvadratnog sita, potrebno je proširiti koncept faktorske baze i glatkih brojeva na prsten Z[θ]. Ekvivalent faktorske baze u prstenu Z[θ] je algebarska faktorska baza. Algebarska faktorska baza je skup brojeva oblika a + bθ Z[θ], gdje su a i b cijeli brojevi, za koje vrijedi da se ne mogu rastaviti kao umnožak neka druga dva elementa iz Z[θ], tj ne postoje c, d Z[θ] tako da c d = a + bθ. Broj a + bθ Z[θ] koji zadovoljava ovo svojstvo naziva se prosti ideal, što je ekvivalent prostog broja u prstenovima koji nisu Z i Z/nZ. Sada se može definirati gladak broj na sličan način kao u Z: Element l iz Z[θ] je gladak u algebarskoj faktorskoj bazi A ako postoji podskup od A, W A tako da (c,d)w (c + dθ) = l. Brojeve iz Z[θ] je teško predstaviti na računalu. Međutim, slijedeći teorem omogućuje nam da umjesto s brojevima iz Z[θ] radimo s parovima cijelih brojeva: Teorem : Neka je f(x) polinom s cjelobrojnim koeficijentima i θ C korijen od f(x). Tada je skup parova cijelih brojeca {(r, p)} gdje je p prost broj, a r Z/nZ, f(r) (mod p) u bijektivnom odnosu sa skupom brojeva a + bθ Z[θ] koji zadovoljavaju uvjete da budu algebarska faktorska baza. Ovaj teorem nam omogućuje da svaki broj iz algebarske faktorske baze zapišemo kao par (r, p). Slijedeća tri teorema omogućuju nam, uz ovakav zapis algebarske faktorske baze, nanlaženje glatkih brojeva u Z[θ] prosijavanjem tj. na sličan način kao u algoritmu kvadratnog sita. Teorem 3: Neka je c + dθ broj u algebarskoj faktorskoj bazi predstavljen parom (r, p). c + dθ dijeli a + bθ Z[θ] ako i samo ako a -br (mod p). Teorem 4: Konačan skup U parova (r, p) predstavlja potpunu faktorizaciju a + bθ Z[θ] ako i samo ako vrijedi p i ( ri, pi ) U d ( f ( a / (3) gdje je d stupanj polinoma f koji definira psten Z[θ]. Teorem 5: Prost broj q dijeli a + bm ako i samo ako je a -bm (mod q) 9

Ova tri teorema omogućuju nalaženje brojeva a + bθ koji su glatki u algebarskoj faktorskoj bazi A i brojeva a + bm koji su glatki u faktorskoj bazi R slijedećim algoritmom. Fiksirati ćemo b na neku vrijednost, a a ćemo varirati od N do N. Kreirati ćemo dva polja, jedno će sadržavati sve vrijednosti a + bθ u ovom rasponu, a drugo sve vrijednosti a + bm u ovom rasponu: N b N bm ( N ) b ( N ) bm ( N ) b N b ( N ) bm N bm I) Za svaki q i iz R: q i dijeli sve a + bm za koje a -bm (mod q i ). Potrebno je naći sve vrijednosti a u intervalu N do N za koje postoji neki k tako da a = bm + kq i i zabilježiti ih u drugom polju. II) Za svaki (r i, p i ) iz A: (r i, p i ) dijeli sve a + bθ za koje a -br i (mod p i ). Potrebno je naći sve vrijednosti a u intervalu N do N za koje postoji neki k tako da a = br i + kp i i zabilježiti ih u prvom polju. Nakon što prođemo kroz sve faktore iz obje faktorske baze, možemo odrediti koji su elementi polja u potpunosti faktorizirani. Za polje brojeva oblika a + bm to možemo lako učiniti budući da smo za svaki element polja zapisali članiove faktorske baze koji taj element dijele: te članove faktorske baze samo je potrebno pomnožiti i vidjeti dobiva li se odgovarajući član polja. Da bismo provjerili je li neki broj oblika a + bθ u potpunosti faktoriziran iskoristiti ćemo pravilo iz teorema 4. Na kraju samo trebamo izvući parove (a, takve da su a + bm i a + bθ istovremeno glatki tj. da je su i a + bm i a + bθ u potpunosti faktorizirani. (4) 4.3. Nalaženje kvadrata umnoškom glatkih brojeva U Dixonovom algoritmu i algoritmu kvadratnog sita, bilo je potrebno je umnoškom glatkih brojeva doći do broja koji je kvadrat. Ovo je također potrebno u GNFS algoritmu. Prvo će ovaj postupak biti pokazan za cijele brojeve (prsten Z), a zatim za prsten Z[θ]. U skupu cijelih brojeva, neki broj je kvadrat ako i samo ako, u njegovoj jedinstvenoj faktorizaciji, svi faktori imaju potencije koje su djeljive s dva ili jednake nuli. Dakle, imamo li faktorku bazu {p, p, p 3,, p m }, za neki broj gladak u toj zabi vrijediti će da je kvadrat ako e e e3 em je njegova faktorizacija p p p3... pm gdje za svaki e i vrijedi e i (mod ). Nama je na raspolaganju skup glatkih brojeva, g,..., g n, od kojih se svaki može prikazati kao e, j e, j e3, j em, j g j = p p p3... pm. Na primjer, imamo li faktorsku bazu {, 3, 5} i u njoj glatke brojeve 6 i 5, oni se mogu prikazati kao 6 = 3 5 i 5 = 3 5. Ukoliko pomnožimo dva glatka broja, g i i g j, njihovu faktorizaciju dobivamo tako da zbrojimo odgovarajuće potencije faktora, e, i e, j e, i e, j em, i em, j g i g j = p p... pm. Nama je cilj naći takav podskup U skupa glatkih brojeva, { g,..., g n } da je njihov produkt kvadrat, što je ekvivalentno rješavanju slijedeće jednadžbe u modulo aritmetici:

e e e,, m, e e e,, m, e e e, n, n m, n a a (mod ) an (5) Ova jednadžba je rješiva ukoliko je na raspolaganju barem toliko glatkih brojeva koliko je članova u faktorskoj bazi. Jednom kada nađemo njeno rješenje (vektor a) podskup glatkih brojeva čiji umnožak je kvadrat tvorimo tako da uzmemo samo one glatke brojeve g j za koje vrijedi da je a j =. U prstenu Z[θ] koristi se isti princip, no uvjet da je neki broj kvadrat je složeniji od onoga u prstenu Z. Slijedeća dva teorema omogućuju provjeru je li neki broj kvadrat u Z[θ]: e Teorem 6: Neka l Z[θ] ima faktorizaciju e l ( a b ) ( a b ) gdje za svaki j a j b j zadovoljava uvjet da bude član algebarske faktorske baze. Ako je l kvadrat u Z[θ] tada za svaki i vrijedi e i (mod ). Ovaj teorem daje nužan uvjet koji svaki kvadrat u Z[θ] mora zadovoljavati, no svi brojevi koji zadovoljavaju taj uvjet nisu nužno kvadrati (obrat teorema ne vrijedi). Slijedeći teorem daje dodatan uvjet. Prije nego bude dan teorem, prvo je potrebno definirati Legendreov simbol. Legendreov simbol a p za a Z i p prost broj je definiran kao a p ako ako ako x x a(mod p) a(mod p) p dijeli a ima rješenje nema rješenje (6) Teorem 7: Neka je U skup parova (a, tako da je ( a b ) kvadrat u Z[θ]. Tada za bilo U koji par (s, q) gdje je q prost broj, a (s, q) predstavlja neki broj koji zadovoljava uvjet da bude u algebrskoj faktorskoj bazi (vidi teorem ) i da (s, q) ne dijeli niti jedan (a, U, mora vrijediti U a bs q (7) Teorem 7 implicira da a -bs (mod q) što znači da q ne dijeli a + bs jer bi, u protivnom, odgovarajući Legendreov simbol bio. Teoremi 6 i 7 omogućuje ispitivanje je li neki broj kvadrat u Z[θ] sa određenom vjerojatnošću. Još uvijek nije moguće sa sigurnošću utvrditi je li neki broj kvadrat ili ne, no ispitivanje prvo uvjeta iz teorema 6, a zatim uvjeta iz teorema 7 sa velikim skupom Q parova

(s, q) omogućuje da sa ovo utvrdimo s dovoljno velikom vjerojatnošću za primjenu u GNFS algoritmu. U GNFS algoritmu potrebno je, za nađeni skup glatkih brojeva, pronaći njegov podskup V, a bm a b kvadrat u Z[θ]. Ovo se obavlja tako da vrijedi da je kvadrat u Z, a V V po istom principu kao u jednadžbi 5, no ovu jednadžbu je potrebno prošitriti da bi se obuhvatili dodatni uvjeti da broj bude kvadrat u Z[θ] i obuhvatio slučaj kada su neki a + bm negativni. Pretpostavimo da faktorska baza R ima k članova, algebarska faktorska baza A ima l članova, te da smo odabrali skup Q parova (s, q) za ispitivanje kvadrata po teoremu 7 i da taj skup ima u članova. Svaki par (a, za koji vrijedi da je a + bm gladak u Z, a a + bθ gladak u Z[θ] predstaviti ćemo kao vektor stupac sa dimenzijom + k + l + u. Prvi član ovoga vektora biti će ako je a + bm pozitivan i inače. Vrijednosti slijedećih k članova vektora će biti ako ako odgovarajući element faktorske baze dijeli a + bm, inače. Vrijednosti slijedećih l članova vektora će biti ako ako odgovarajući element algebarske faktorske baze dijeli a + bθ, inače. Posljednjih u elemenata ovog vektora imati će vrijednost ako za odgovarajući a bs par (s, q) vrijedi, inače. q Neka je faktorska baza R = {t, t,... t k }, a algebarska faktorska baza A = {(r, p ), (r, p ), (r l, e e e3 ek p l ), }. Broj a + bm je gladak u bazi R i ima faktorizaciju t t t3... tk Broj a + bθ je gladak u f f fl algebarskoj faktorskoj bazi A i ima faktorizaciju ( r, p) ( r, p)...( rl, pl ). Vektor stupac x koji predstavlja par (a, biti će, a bm x, inace e (mod ) e (mod ) f (mod ) a bs, q inace, f (mod ) e a bs, q inace, k f l (mod ) (mod ) a bsm, q m inace, T (8) Pretpostvimo da je prosijavanjem nađeno y parova (a, takvih da je a + bm gladak u Z, a a + a bm kvadrat bθ gladak u Z[θ]. Tada će nalaženje njihovog podskupa V takvog da je u Z, a a b V V kvadrat u Z[θ] ekvivalentno rješavanju slijedeće jednadžbe a a x y (9) ay x x (mod) Ova jednadžba ima rješenje za y + k + l + u.

5. Sažetak GNFS algoritma ) Odabrati m Z i polinom f za koji vrijedi da je f(m) (mod n). Ovo je najlakše učiniti rastavljanjem n po bazi m. ) Definirati faktorsku bazu R koja se sastoji od k prostih brojeva. 3) Definirati algebarsku faktorsku bazu A koja se sastoji od l parova (r, p), takvih da je p prost i vrijedi f(r) (mod p). 4) Definirati skup Q koji se sastoji od u parova (s, q) takvih da je q prost i vrijedi f(s) (mod q). Provjeriti da niti jedan element iz Q ne dijeli niti jedan element iz algebarske faktorske baze A. 5) Fiksirati vrijednost b i stvoriti polja brojeva a + bm i a + bθ varirajući a od -N do N, kako je opisano u poglavlju 4.. Naći brojeve u poljima koji su istovremeno glatki u Z i Z[θ] postupkom opisanim u poglavlju 4.. i za svaki gladak broj zabilježiti njegove faktore iz faktorske baze i algebarske faktorske baze. Neka je broj nađenih glatkih brojeva y. Ponavljati postupak dok nije nađeno više od + k + l + u glatkih brojeva. 6) Svaki gladak broj zapisati u obliku vektora x kako je opisano u poglavlju 4.3. 7) Riješiti jednadžbu a a x y () ay x x (mod) Neka skup V čine oni parovi (a, za koje je odgovarajući a j =. Vrijedi da a bm a b kvadrat u Z[θ]. je kvadrat u Z, a V V 8) Vrijedi a b a bm (modn) () V V Koristeći jednadžbu 8 moguće je producirati jednakost x y (mod n) uvrštavajući x a b i y a bm V V () i sa vjerojatnosti /3 faktorizirati n (vidi tablicu ). Ukoliko faktorizacija nije uspjela vratiti se na korak. (log n) (log log n) Složenost GNFS algoritma je O ( e ) / 3 / 3 3

6. Primjer faktorizacije GNFS algoritmom U ovome primjeru biti će pokazana faktorizacija GNFS algoritmom za broj n = 37 x 6 = 57. U kontekstu faktorizacije brojeva, ovaj broj je vrlo mali i u praksi bi ga bilo bolje faktorizirati nekom jednostavnijom metodom zbog složenosti svih pripremnih radnji u GNFS algoritmu, no na ovakvom broju moguće je na jednostavan način pokazati postupke iz GNFS algoritma. Korak. Prvo je potrebno odabrati broj m i naći polinom f(x) tako da je f(m) (mod n). Odaberimo m = 47. Rastavljanjem broja n po bazi m dobivamo 57 47 što znači da kao polinom f(x) možemo uzeti f ( x) x 47 x Izbor broja m nije definiran samim algoritmom. Metode odabira broja m koje bi vodile velikom broju glatkih brojeva u koraku 5 još uvijek su predmet istraživanja [4]. Odabirom prevelikog m stupanj polinoma f(x) postaje premali (stupanj polinoma f(x) mora biti najmanje kako bi brojevi oblika a + bθ bili elementi Z[θ]). S druge strane, odabirom premalog m, stupanj polinoma postaje prevelik što umanjuje vjerojatnost nalaženja glatkih brojeva kasnije u algoritmu. U praksi se pokazalo da je optimalan stupanj polinoma 3 za brojeve s između 5 i 8 znamenaka, 4 za brojeve s između 8 i znamenaka i 5 za brojeve s više od znamenaka [4], a kao broj m dobro je uzeti broj približno jednak n /d, gdje je d stupanj polinoma. Budući da u ovom primjeru broj n ima mnogo manje od 5 znamenaka, optimalan stupanj polinoma je, a optimalna vrijednost m približno je jednaka 57 / 47. Korak. Faktorsku bazu F načiniti ćemo tako da uzmemo 5 najmanjih prostih brojeva F, 3, 5, 7, Broj elemenata faktorske baze također nije unaprijed određen i obično se bira se na temelju iskustva. Manji broj elemenata faktorske baze smanjuje vjerojatnost nalaženja brojeva glatkih u toj faktorskoj bazi. S druge strane, povećanje broja elemenata faktorske baze povećava vjerojatnost nalaženja glatkih brojeva u toj bazi, ali veći broj elemenata faktorske baze također povećava i broj glatkih brojeva koje je potrebno naći kako bi jednadžba 9 imala rješenje. Korak 3. Algebarsku faktorsku bazu A načiniti ćemo uzimajući proste brojeve p od manjih prema većima i za svaki p tražiti r tako da je f(r) (mod p). Ovim postupkom naći ćemo 5 parova (r, p) Dobivamo A (, 3), (, 7), (4, 7), (3,3), (9, 3) Za veličinu algebarske faktorske baze A vrijede ista razmatranja kao i za veličinu cjelobrojne faktorske baze F. 4

Korak 4. Potrebno je još naći skup Q parova (s, q) za ispitivanje je li neki broj kvadrat u Z[θ]. Ove parove naći ćemo identično kao algebarsku faktorsku bazu, s time da ćemo preskočiti proste brojeve koji se već nalaze u algebarskoj faktorskoj bazi. Naći ćemo 3 para (s, q). Dobivamo Q (7,9), (,9), (5, 3) Povećanjem broja elemenata skupa Q povećava se broj glatkih brojeva koje je potrebno naći u koraku 5. Smanjenjem broja elemenata skupa Q povećava se vjerojatnost pogreške prilikom provjere je li neki broj kvadrat u Z[θ]. Korak 5. Na temelju dimanzionalnosti faktorske baze, algebarske faktorske baze i skupa Q dobivamo 5 + 5 + 3 + = 4, što znači da će biti potrebno naći barem 4 parova (a, tako da vrijedi da je a + bm gladak u Z i istovremeno a + bθ gladak u Z[θ]. Postupak ćemo provesti tako da ćemo b varirati u rasponu [, ], za svaku vrijednost b stvoriti ćemo polje brojeva a + bm i polje brojeva a + bθ varirajući b u rasponu [-4, 4], te konačno naći istovremeno glatke brojeve postupcima opisanima u poglavlju 4.. Ovim postupkom dobivamo slijedeći skup parova (a, koji predstavljaju glatke brojeve ( 3,), (,), (, 3), (, 4), (7, 5), (,7), ( 7, (,), (,), (3,), (7,), (, ), (7, 8), (49, 35) 7), (7, 7), (4, Ovaj skup sastoji se od 6 parova, što znači da bismo trebali imati dovoljno parova da nađemo razliku kvadrata i faktoriziramo broj n. Lako se može provjeriti da je svaki od brojeva koje predstavljaju gornji parovi gladak. Na primjer, za par (-3, ) vrijedi a + bm = 44 =. Za broj -3 + θ. vrijedi da ga dijeli element algebarske faktorske baze (3, 3). Prema teoremu 3, da bi (r, p) dijelio (a,, mora vrijediti a -br (mod p), što je ovdje slučaj jer -3-3 (mod 3). Prema teoremu 4, par (3, 3) ujedno predstavlja potpunu faktorizaciju broja -3 + θ jer vrijedi 3 = (-) f(3) = 3 + 3 + = 3. 7), 5

6 Korak 6. Svaki gladak broj potrebno je zapisati u obliku vektora kao u jednadžbi 8. Kada se ovi vektori urede u matricu, za glatke brojeve iz ovoga primjera dobiva se slijedeći prikaz T X gdje svaki redak matrice X T odgovara jednom glatkom broju. Na primjer, prvi redak matrice odgovara paru (-3, ). Korak 7. Da bi se dobila razlika kvadrata potrebno je riješiti jednadžbu (mod ) A X Ova jednadžba se u praksi rješava Wiedemannovim ili Lanczosovim algoritmom (ne može se upotrijebiti klasična metoda Gaussove eliminacije zbog toga što je rezultat nul-vektor i jer se računanje obavlja u konačnom polju Z/Z). Budući da matrica X ima više stupaca nego redaka, postoji više rješenja jednadžbe. Jedno od rješenja je T A Ovaj vektor ima jedinice na pozicijama koji odgovaraju slijedećim parovima (a, 7) (4, 3),, ( (7,),,), ( V

Korak 8. Umnožak brojeva predstavljenih gornjim parovima mora biti ujedno kvadrat u Z i kvadrat u Z[θ]. Dobivamo a bm V 38976 76 Također je lako pokazati da, u skladu s množenjem brojeva u Z[θ] vrijedi iz čega se vidi da ( )(7 ) 5 34 4 35 ( 3 )(4 7 ) 35 4 4 35 V a b ( 4 35) Brojeve x i y za koje vrijedi x y (modn) dobivamo kao x V a b 4 35 63 y V a bm 76 Računamo gcd( 76 63,57) 6 gcd( 76 63,57) 37 Brojevi 6 i 37 su upravo faktori broja 57, što znači da je faktorizacija izvedena uspješno. 7

7. Zaključak GNFS algoritam je trenutno najučinkovitiji algoritam za faktorizaciju velikih brojeva. Algoritam se temelji na od prije poznatim principima faktorizacije razlikom kvadrata, no odnos prstenova Z/nZ i Z[θ] omogućuje ovom algoritmu da, umjesto da sve operacije obavlja u skupu cijelih brojevaa, dio operacija radi s brojevima u Z[θ], što u konačnici omogućuje učinkovitije dobivanje razlike kvadrata. Ovaj algoritam je u praksi uspješno korišten za faktorizaciju velikih brojeva, kao što je 64- bitni broj kojega je tvrtka RSA postavila kao izazov za faktorizaciju. 8

Literatura [] Matthew Hayward, Quantum Computing and Shor's Algorithm, http://alumni.imsa.edu/~matth/quant/99/paper/ [] http://www.crypto-world.com/announcements/rsa64.txt [3] Eric Landquist: The Quadratic Sieve Factoring Algorithm,. [4] Matthew E. Briggs: An Introduction to the General Number Field Sieve, Master thesis, Virginia Polytechnic Institute and State University, 998. [5] Michael Case: A Beginner s Guide to the General Number Field Sieve, Oregon State University, 3. [6] Peter Stevenhagen: The arithmetic of number rings, Algorithmic Number Theory, Volume 44, 8. [7] Gareth A. Jones, Josephine M. Jones: Elementary Number Theory, Springer, 998. 9

Prilog A. Rječnik matematičkih pojmova Abelova grupa skup A zajedno s binarnom operacijom koji zadovoljavaju slijedeća svojstva - za a i b iz A, a b je također iz A - za a, b i c iz A, vrijedi a (b c)=(a c - postoji element identiteta e tako da vrijedi a e = e a = a - za svaki a iz A postoji b iz A tako da vrijedi a b = b a = e - za svaki a i b iz A vrijedi a b = b a Algebarska faktorska baza - skup brojeva oblika a + bθ Z[θ], gdje su a i b cijeli brojevi, sa svojstvom da ne postoje c, d Z[θ] tako da c d = a + bθ. Eulerova funkcija Faktorska baza Gladak broj Homomorfizam Funkcija koja, za neki broj n, daje broj brojeva manjih od n koji su relativno prosti sa n. neprazan skup prostih brojeva Broj k je gladak u faktorskoj bazi F ako su, u njegovoj jedinstvenoj faktorizaciji, svi faktori iz F. preslikavanje između dvije algebarske strukture koje čuva njihovu strukturu. Vidi homomorfizam među prstenovima. Homomorfizam među prstenovima funkcija među prstenovima R i S, f: R S koja zadovoljava svojstva - f(a + = f(a) + f( za a, b iz R - f(a = f(a) f( za a, b iz R - f() = Legendreov simbol Monoidna grupa Prost broj Prost ideal a p a p za a Z i p prost broj je definiran kao ako x a(mod p) ima rješenje ako x a(mod p) nema rješenje ako p dijeli a skup S zajedno s binarnom operacijom koji zadovoljavaju slijedeća svojstva - za a i b iz S, a b je također iz S - za a, b i c iz S, vrijedi a (b c)=(a c - postoji element e u S tako da vrijedi a e = e a = a broj koji je djeljiv samo s i sa samim sobom, npr, 3, 5, 7, itd. ekvivalent prostom broju u prstenovima koji nisu Z i Z/nZ.

Prsten prsten Z/nZ algebarska struktura koja se sastoji od skupa R i dvaju binarnih operacija, operacije zbrajanja + : R R R i operacije množenja : R R R. Da bi se smatrao prstenom, (R, +, ) mora zadovoljavati slijedeća svojsva - (R, +) je Abelova grupa - (R, ) je monoidna grupa - Vrijedi zakon distribucije: za a, b i c iz R vrijedi a (b+c) = (a + (a c) za a, b i c iz R vrijedi (a+ c = (a + (a c) prsten brojeva u modulo n aritmetici. Na primjer, prsten Z/3Z čine brojevi,,. U ovom prstenu je + = jer je + (mod 3) Relativno prosti brojevi - dva broja su relativno prosta ako im je najveći zajednički djelitelj.