Napadi na RSA kriptosustav

Σχετικά έγγραφα
7 Algebarske jednadžbe

Uvod u teoriju brojeva

Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.

Matematička analiza 1 dodatni zadaci

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

18. listopada listopada / 13

6 Polinomi Funkcija p : R R zadana formulom

TRIGONOMETRIJSKE FUNKCIJE I I.1.

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

ELEKTROTEHNIČKI ODJEL

3.1 Granična vrednost funkcije u tački

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

Neka je a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 algebarska jednadžba trećeg stupnja. Rješavanje ove jednadžbe sastoji se od nekoliko koraka.

RIJEŠENI ZADACI I TEORIJA IZ

Operacije s matricama

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

Linearna algebra 2 prvi kolokvij,

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Elementi spektralne teorije matrica

Teorem 1.8 Svaki prirodan broj n > 1 moºe se prikazati kao umnoºak prostih brojeva (s jednim ili vi²e faktora).

1 Promjena baze vektora

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

radni nerecenzirani materijal za predavanja

Riješeni zadaci: Limes funkcije. Neprekidnost

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

Teorijske osnove informatike 1

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

Linearna algebra 2 prvi kolokvij,

Numerička matematika 2. kolokvij (1. srpnja 2009.)

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

Dijagonalizacija operatora

41. Jednačine koje se svode na kvadratne

Determinante. a11 a. a 21 a 22. Definicija 1. (Determinanta prvog reda) Determinanta matrice A = [a] je broj a.

SISTEMI NELINEARNIH JEDNAČINA

Riješeni zadaci: Nizovi realnih brojeva

Uvod u teoriju brojeva. Andrej Dujella

4. poglavlje (korigirano) LIMESI FUNKCIJA

APROKSIMACIJA FUNKCIJA

Više dokaza jedne poznate trigonometrijske nejednakosti u trokutu

1.4 Tangenta i normala

Funkcije dviju varjabli (zadaci za vježbu)

( x) ( ) ( ) ( x) ( ) ( x) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

Matematičke metode u marketingumultidimenzionalno skaliranje. Lavoslav ČaklovićPMF-MO

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

Kaskadna kompenzacija SAU

Diofantske jednadžbe. Andrej Dujella

5. Karakteristične funkcije

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

Funkcija gustoće neprekidne slučajne varijable ima dva bitna svojstva: 1. Nenegativnost: f(x) 0, x R, 2. Normiranost: f(x)dx = 1.

( ) ( ) Zadatak 001 (Ines, hotelijerska škola) Ako je tg x = 4, izračunaj

IZVODI ZADACI (I deo)

MJERA I INTEGRAL 2. kolokvij 30. lipnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!)

Osnovne teoreme diferencijalnog računa

Frekvencija slova u hrvatskom jeziku (od najfrekventnijih): Frekvencija slova u engleskom jeziku (od najfrekventnijih):

MATEMATIKA Pokažite da za konjugiranje (a + bi = a bi) vrijedi. a) z=z b) z 1 z 2 = z 1 z 2 c) z 1 ± z 2 = z 1 ± z 2 d) z z= z 2

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

2.2 Srednje vrijednosti. aritmetička sredina, medijan, mod. Podaci (realizacije varijable X): x 1,x 2,...,x n (1)

POVRŠINA TANGENCIJALNO-TETIVNOG ČETVEROKUTA

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

VJEROJATNOST I STATISTIKA Popravni kolokvij - 1. rujna 2016.

Četrnaesto predavanje iz Teorije skupova

Ĉetverokut - DOMAĆA ZADAĆA. Nakon odgledanih videa trebali biste biti u stanju samostalno riješiti sljedeće zadatke.

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

PRIMJER 3. MATLAB filtdemo

III VEŽBA: FURIJEOVI REDOVI

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

INTELIGENTNO UPRAVLJANJE

Prosti brojevi. Uvod

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

numeričkih deskriptivnih mera.

TRIGONOMETRIJA TROKUTA

Deljivost. 1. Ispitati kada izraz (n 2) 3 + n 3 + (n + 2) 3,n N nije deljiv sa 18.

Eliminacijski zadatak iz Matematike 1 za kemičare

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

deljenja broja M ε sa brojem n. Ovu teoremu navodimo bez dokaza.

Algoritmi za eliptičke krivulje. Andrej Dujella

Redovi funkcija. Redovi potencija. Franka Miriam Brückler

Linearna algebra I, zimski semestar 2007/2008

IZRAČUNAVANJE KONAČNIH SUMA METODIMA DIFERENTNOG RAČUNA

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića

MATEMATIKA 1 8. domaća zadaća: RADIJVEKTORI. ALGEBARSKE OPERACIJE S RADIJVEKTORIMA. LINEARNA (NE)ZAVISNOST SKUPA RADIJVEKTORA.

9. GRANIČNA VRIJEDNOST I NEPREKIDNOST FUNKCIJE GRANIČNA VRIJEDNOST ILI LIMES FUNKCIJE

RSA algoritam za šifrovanje i dešifrovanje podataka

16 Lokalni ekstremi. Definicija 16.1 Neka je A R n otvoren, f : A R i c A. Ako postoji okolina U(c) od c na kojoj je f(c) minimum

4.7. Zadaci Formalizam diferenciranja (teorija na stranama ) 343. Znajući izvod funkcije x arctg x, odrediti izvod funkcije x arcctg x.

k a k = a. Kao i u slučaju dimenzije n = 1 samo je jedan mogući limes niza u R n :

1 Aksiomatska definicija skupa realnih brojeva

ZBIRKA POTPUNO RIJEŠENIH ZADATAKA

Transcript:

Napadi na RSA kriptosustav Andrej Dujella PMF - Matematički odjel Sveučilište u Zagrebu, Hrvatska e-mail: duje@math.hr URL: http://web.math.hr/~duje/

Kako uspostaviti sigurnu komunikaciju preko nesigurnog komunikacijskog kanala? Metode za rješavanje ovog problema proučava znanstvena disciplina koja se zove kriptografija. Osnovni zadatak kriptografije je omogućavanje komunikacije dvaju osoba (zovemo ih pošiljalac i primalac - u kriptografskoj literaturi za njih su rezervirana imena Alice i Bob) na takav način da treća osoba (njihov protivnik - u literaturi se najčešće zove Eva ili Oskar), koja može nadzirati komunikacijski kanal, ne može razumjeti njihove poruke. 1

Poruku koju pošiljalac želi poslati primaocu zovemo otvoreni tekst. Pošiljalac transformira otvoreni tekst koristeći unaprijed dogovoreni ključ K. Taj se postupak zove šifriranje, a dobiveni rezultat šifrat. Nakon toga pošiljalac pošalje šifrat preko nekog komunikacijskog kanala. Protivnik prisluškujući može saznati sadržaj šifrata, ali kako ne zna ključ, ne može odrediti otvoreni tekst. Za razliku od njega, primalac zna ključ kojim je šifrirana poruka, pa može dešifrirati šifrat i odrediti otvoreni tekst. shema simetrične kriptografije 2

Definicija: Kriptosustav je uredena petorka (P, C, K, E, D), gdje je P konačan skup svih otvorenih tekstova, C konačan skup svih šifrata, K konačan skup svih mogućih ključeva, E skup svih funkcija šifriranja i D skup svih funkcija dešifriranja. Za svaki K K postoji e k E i odgovarajući d K D. Pritom su e K : P C i d K : C P funkcije sa svojstvom da je d K (e K (x)) = x za svaki x P. Shema koju smo u uvodu opisali predstavlja tzv. simetrični kriptosustav. Funkcije koje se koriste za šifriranje e K i dešifriranje d K ovise o ključu K kojeg Alice i Bob moraju tajno razmjeniti prije same komunikacije. Kako njima nije dostupan siguran komunikacijski kanal, ovo može biti veliki problem. Diffie i Hellman (1976): protokol za razmjenu ključeva, zasnovan na činjenici da je u nekim grupama potenciranje puno jednostavnije od logaritmiranja (problem diskretnog logaritma). 3

Diffie i Hellman se smatraju začetnicima kriptografije javnog ključa. Ideja javnog ključa se sastoji u tome da se konstruiraju kriptosustavi kod kojih bi iz poznavanja funkcije šifriranja e K bilo praktički nemoguće (u nekom razumnom vremenu) izračunati funkciju dešifriranja d K. Tada bi funkcija e K mogla biti javna. Dakle, u kriptosustavu s javnim ključem svaki korisnik K ima dva ključa: javni e K i tajni d K. Ako Alice želji poslati Bobu poruku x, onda je ona šifrira pomoću Bobovog javnog ključa e B, tj. pošalje Bobu šifrat y = e B (x). Bob dešifrira šifrat koristeći svoj tajni ključ d B, d B (y) = d B (e B (x)) = x. Uočimo da Bob mora posjedovati neku dodatnu informaciju (tzv. trapdoor - skriveni ulaz) o funkciji e B, da bi samo on mogao izračunati njezin inverz d B, dok je svima drugima (a posebno Evi) to nemoguće. Takve funkcije čiji je inverz teško izračunati bez poznavanja nekog dodatnog podatka zovu se osobne jednosmjerne funkcije. 4

Najpoznatiji kriptosustav s javnim ključem je RSA kriptosustav iz 1977. godine, nazvan po svojim tvorcima Ronaldu Rivestu, Adi Shamiru i Leonardu Adlemanu. Njegova sigurnost je zasnovana na prvenstveno na teškoći faktorizacije velikih prirodnih brojeva. Parametri RSA kriptosustava su modul n koji je produkt dva velika prosta broja p i q, te eksponenti e i d koji se koriste za šifriranje i dešifriranje. Ronald Rivest Adi Shamir Leonard Adleman 5

RSA kriptosustav: Neka je n = pq, gdje su p i q prosti brojevi. Neka je P = C = Z n, te K = {(n, p, q, d, e) : n = pq, de 1 (mod ϕ(n))}. Za K K definiramo e K (x) = x e mod n, d K (y) = y d mod n. Vrijednosti n i e su javne, a vrijednosti p, q i d su tajne, tj. (n, e) je javni, a (p, q, d) je tajni (privatni) ključ. Ovdje je ϕ(n) = (p 1)(q 1) = n p q + 1 Eulerova funkcija. Iz njezinog svojstva da je a ϕ(n) 1 (mod n) za nzd(a, n) = 1, slijedi da su funkcije e K i d K jedna drugoj inverzne. Standardna verzija RSA: - p i q imaju približno jednaki broj bitova, - e < n. 6

Sigurnost RSA kriptosustava leži u pretpostavci da je funkcija e K (x) = x e mod n jednosmjerna. Dodatni podatak ( trapdoor ) koji omogućava dešifriranje je poznavanje faktorizacije n = pq. Zaista, onaj tko zna faktorizaciju broja n, taj može izračunati ϕ(n) = (p 1)(q 1), te potom dobiti eksponent d rješavajući linearnu kongruenciju de 1 (mod ϕ(n)) (pomoću proširenog Euklidova algoritma). No, otvoreno je pitanje je li razbijanje RSA kriptosustava, tj. odredivanje x iz poznavanja x e mod n, ekvivalentno faktorizaciji od n. 7

Izbor parametara: 1. Tajno izaberemo dva velika prosta broja p i q slične veličine (recimo 512 bitova). Najprije generiramo slučajan prirodan broj m sa željenim brojem bitova, pa zatim pomoću nekog testa prostosti (npr. Miller-Rabinovog) tražimo prvi prost broj veći ili jednak m. Treba paziti da n = pq bude otporan na metode faktorizacije koje su vrlo efikasne za brojeve specijalnog oblika. Tako bi brojevi p±1 i q±1 trebali imati barem jedan veliki prosti faktor, jer postoje efikasne metode za faktorizaciju brojeva koji imaju prosti faktor p takav da je jedan od brojeva p 1, p + 1 gladak, tj. ima samo male proste faktore. Takoder, p i q ne smiju biti jako blizu jedan drugome, jer ih se onda može naći koristeći činjenicu da su približno jednaki n. 2. Izračunamo n = pq i ϕ(n) = (p 1)(q 1) = n p q + 1. 8

3. Izaberemo broj e takav da je nzd(e, ϕ(n)) = 1, te pomoću proširenog Euklidova algoritma izračunamo d takav da je de 1 (mod ϕ(n)). Obično se uzima da je e < ϕ(n). Broj e se može izabrati slučajno, a ima smisla izabrati ga i što manjim, tako da bi šifriranje x e mod n (tzv. modularno potenciranje) bilo što brže. Broj operacija u šifriranju ovisi o veličini broja e, te o broju jedinica u binarnom zapisu od e. Stoga je dugo vremena e = 3 bio popularan izbor. No, vidjet ćemo da izbor vrlo malog eksponenta e predstavlja opasnost za sigurnost, te se danas preporuča izbor e = 2 16 + 1 = 65537. 4. Stavimo ključ za šifriranje (n, e) u javni direktorij. 9

Ideja: izabrati parametre RSA kriptosustava tako da jedan od eksponenata e ili d bude mali. Budući da je broj operacija za modularno potenciranje linearan u broju bitova eksponenta, to bi moglo smanjiti vrijeme potrebno za šifriranje, odnosno dešifriranje. To bi posebno moglo biti od interesa u situacijama kad postoji veliki nesrazmjer u snazi dvaju uredaja koji sudjeluju u komunikaciji, kao što je npr. slučaj kad pametna kartica komunicira s centralnim računalom. U toj situaciji bilo bi poželjno da: - kartica ima mali tajni eksponent d, - računalo ima mali javni eksponent e, da bismo minimizirali onaj dio računanja koje treba provesti kartica. 10

Wiener (1990) - napad na RSA s malim eksponentom d: ed kϕ(n) = 1 ϕ(n) n k d e n Pretpostavimo da je p < q < 2p. Ako je d < 1 3 n 0.25, tada je k d e n < 1 2d 2. Po klasičnom Legendreovom teoremu iz diofantskih aproksimacija, d mora biti nazivnik neke konvergente p m /q m u razvoju u verižni razlomak broja e/n, pa se stoga d može efikasno izračunati iz javnog ključa (n, e). Ukupan broj konvergenti je reda O(log n), a svaka konvergenta se može testirati u polinomijalnom vremenu. 11

Primjer: Pretpostavimo da su u RSA kriptosustavu zadani modul javni eksponent n = 7978886869909, e = 3594320245477, te da je poznato da tajni eksponent d zadovoljava d < 1 3 n0.25 < 561. Da bismo primijenili Wienerov napad, računamo razvoj broja n e u verižni razlomak (pomoću Euklidovog algoritma). Dobivamo: [0; 2, 4, 1, 1, 4, 1, 2, 31,...] = 2 + 1 1 4 +... Potom računamo pripadne konvergente: 0, 1 2, 4 9, 5 11, 9 20, 41 91, 50 111, 141 313, 4421 9814,.... Konačno, provjeravamo koji od nazivnika 2, 9, 11, 20, 91, 111, 313 zadovoljava kongruenciju (x e ) d x (mod n) za npr. x = 2. Tako dobivamo da je tajni eksponent d = 313. 12.

Verheul - van Tilborg (1997): Proširenje Wienerovog napada koje je primjenjivo kada d ima nekoliko bitova više od n 0.25. Za d > n 0.25, njihov napad koristi pretraživanje grubom silom za 2t + 8 bitova (uz izvjesne pretpostavke na parcijalne kvocijente u verižnom razlomku), gdje je t = log 2 (d/n 0.25 ). Boneh - Durfee (1999), Blömer - May (2001): Napadi nasnovani na Coppersmithovoj tehnici koja koristi LLL-algoritam za nalaženje malih korijena modularnih polinomijalnih jednadžbi. Ovi napadi su heuristički, te u praksi rade zadovoljavajuće ako je d < n 0.292. Smatra se da bi trebalo koristi tajni eksponent d > n, jer je poznato da su svi ovi gore spomenuti napadi sasvim neprimjenjivi u toj situaciji. 13

D. (2004): Mala modifikacija Verheul - van Tilborgovog napada, zasnovana na Worleyevom resultatu (1981) iz diofantskih aproksimacija, koji povlači da svi racionalni brojevi p/q koji zadovoljavaju nejednakost α p q < c q 2, za neki pozitivan realan broj c, imaju oblik p q = rp m+1 ± sp m rq m+1 ± sq m za neki m 1 i nenegativne cijele brojeve r i s takve da je rs < 2c. D. - Ibrahimpašić (2008): Worleyev rezultat je najbolji mogući, u smislu da se uvjet rs < 2c ne može zamijeniri sa rs < (2 ε)c za ε > 0. 14

U oba spomenuta proširenja Wienerovog napada, kandidati za tajni eksponent su oblika d = rq m+1 + sq m. Testiraju se sve mogućnosti za d, a broj svih mogućnosti je ugrubo (broj mogućnosti za r) (broj mogućnosti za s), što je O(D 2 ), gdje je D = d/n 0.25. Preciznije, broj mogućih parova (r, s) u Verheul - van Tilborgovom napadu je O(D 2 A 2 ), gdje je A = max{a i : i = m+1, m+2, m+3}, dok je u mojoj varijanti iz 2004. godine O(D 2 log A) (a i su parcijalni kvocijenti u razvoju u verižni razlomak). Novu modifikaciju Verheul - van Tilborgovog napada su predložili Sun, Wu i Chen (2007). Ona zahtijeva (heuristički) pretraživanje grubom silom za 2t 10 bitova, pa je i njena složenost takoder O(D 2 ). Drastično poboljšanje se ne može očekivati, budući da su Steinfeld, Contini, Wang i Pieprzyk (2005) pokazali da u medu algoritmima ovog tipa ne postoji algoritam sa subeksponencijalnom ovisnošću o D. 15

Testiranje Dvije su glavne metode za testiranje: 1) izračunamo p i q uz pretpostavku da je testirana konvergenta jednaka d/k: ϕ(n) = (de 1)/k, p + q = n + 1 ϕ(n), (q p) 2 = (p + q) 2 4n, p = ((p+q) (q p))/2, q = ((p+q)+(q p))/2; 2) za testirani d, testiramo je li zadovoljena kongruencija recimo za x = 2. (x e ) d x (mod n), 16

Prikazat ćemo novu ideju, a to je primjena metode susret u sredini (meet-in-the-middle) na ovaj drugi test. Želimo testirati je li 2 e(rq m+1+sq m ) 2 (mod n). Primijetimo da je indeks m skoro fiksiran. Naime, ako je m najveći neparan prirodan broj takav da je p m > e q m n + 2.122e n n, onda je m {m, m + 1, m + 2}. 17

Uvedimo oznake: 2 eq m+1 mod n = a, (2 eqm ) 1 mod n = b. Tada zapravo možemo testirati kongruenciju a r 2b s (mod n). To možemo napraviti tako da izračunamo a r mod n za sve r, sortiramo rezultate, a potom računamo 2b s mod n redom za svaki s i provjeravamo pojavljuje li se rezultat u prethodno dobivenoj sortiranoj listi. Na ovaj način broj koraka u testiranju postaje ugrubo (broj mogućnosti za r) + (broj mogućnosti za s). Preciznije, vremenska složenost faze testiranja smanjuje sa O(D 2 ) na O(D log D) (uz prostornu složenost O(D)). 18

Gore opisani napad smo implementirali u programskom paketu PARI i C++ (uz pomoć V. Petričevića), te pokazali da napad radi efikasno za vrijednosti od D do 2 30, tj. za d < 2 30 n 0.25. Za veće vrijednosti od D zahtjevi na memoriju (na standardnim računalima) postaju preveliki. log 2 n log 2 (2 30 n 0.25 ) log 2 (n 0.292 ) 512 158 150 768 222 224 1024 286 299 2048 542 598 Moguće je smanjiti zahtjev na memoriju uz povećanje vremena izvršavanja (space-time tradeoff), koristeći asimetrične varijante Worleyevog rezultata (s različitim ogradama za r i s). 19

ograda za r ograda za s vjerojatnost uspjeha 4D 4D 98% 2D 2D 89% D D 65% D 4D 86% 4D D 74% D/2 2D 70% 2D D/2 47% D/4 4D 54% 4D D/4 28% Daljnje mogućnosti za poboljšanja: - korištenje još boljih aproksimacija za k d nego što je n e, npr. e n+1 2 n, - korištenje hash funkcija umjesto sortiranja. S tim poboljšanjima, za 1024-bitni RSA modul n, raspon u kojem se ovaj novi napad može primijeniti je praktički isti kao najbolji poznati napadi zasnovani na LLL-algoritmu. 20

Neka je zadan polinom f(x) Z[x] stupnja δ i neka je poznato da postoji malo rješenje kongruencije f(x) 0 (mod N), tj. rješenje x 0 za koje vrijedi x 0 < N 1/δ. Pitanje je možemo li efikasno naći x 0. Coppersmith je pokazao da je odgovor na ovo pitanje potvrdan. Ideja: konstruirati novi polinom h(x) = h 0 + h 1 x + + h n x n Z[x] za kojeg će takoder vrijediti h(x 0 ) 0 (mod N), ali koji će imati male koeficijente, tj. za koga je norma h(x) := ( ni=0 h 2 ) 1/2 i mala. Tada se može iskoristiti sljedeća jednostavna činjenica: ako za prirodan broj X vrijedi h(xx) < N n i x 0 < X zadovoljava kongruenciju h(x 0 ) 0 (mod N), onda je x 0 nultočka polinoma h, tj. vrijedi ne samo kongruencija, već i jednakost h(x 0 ) = 0. Polinom h(x) s traženim svojstvom može se naći pomoću LLL-algoritma, koji nalazi male vektore u rešetki (A. K. Lenstra, H. W. Lenstra, L. Lovász (1982)). 21

Boneh i Durfee su opisali jedan napad na RSA ovakvog tipa koji je primjenjiv u slučaju da je d < n 0.292. Slično kao kod Weinerova napada, kreće se od jednakosti ed kϕ(n) = 1, koja se može zapisati i kao ed k(n + 1 p q) = 1. Stavimo s = p+q, a = n+1. Sada je nalaženje malog tajnog eksponenta d, recimo d < n δ, ekvivalentno nalaženju malih rješenja k i s kongruencije f(k, s) = k(s a) 1 (mod e). Zaista, za s i k imamo sljedeće ocjene: s < 3 n e 0.5, k < de ϕ(n) eδ. Dakle, situacija je slična kao kod gore navedenog Coppersmithova rezultata, samo što se ovdje radi o polinomu od dvije varijable, pa se Coppersmithov teorem ne može direktno primijeniti da bi se strogo dokazala korektnost ovog napada. Ipak, pokazalo se da on u praksi radi sasvim zadovoljavajuće. 22

Napad za RSA s malim javnim eksponentom e: Neka je e = 3. Pretpostavimo da imamo tri korisnika s različitim vrijednostima javnog modula n 1, n 2, n 3, te pretpostavimo da svi oni koriste isti javni eksponent e = 3. Nadalje, pretpostavimo da im netko želi poslati identičnu poruku m. Tada njihov protivnik može doznati sljedeće šifrate: c 1 m 3 (mod n 1 ), c 2 m 3 (mod n 2 ), c 3 m 3 (mod n 3 ). Nakon toga, on može, koristeći Kineski teorem o ostatcima, naći rješenje sustava linearnih kongruencija x c 1 (mod n 1 ), x c 2 (mod n 2 ), x c 3 (mod n 3 ). Na taj način, dobit će broj x sa svojstvom x m 3 (mod n 1 n 2 n 3 ). No, kako je m 3 < n 1 n 2 n 3, zapravo vrijedi jednakost x = m 3, pa protivnik može izračunati originalnu poruku m tako na nade treći korijen iz x. 23

Upravo opisani napad može se izbjeći tako da se porukama prije šifriranja doda neki slučajni dodatak (engl. random pad). Na taj način, nikad nećemo različitim primateljima slati potpuno identične poruke. No, postoje napadi (zasnovani na gore spomenutom Coppersmithovom rezultatu i LLL-algoritmu) koji pokazuju da ni u tom slučaju RSA kriptosustav s vrlo malim eksponentom e nije siguran. Preciznije, koristi se sljedeći Coppersmithov rezultat (1997): Neka je f Z[x] normirani polinom s stupnja δ, te n N. Ako postoji x 0 takav da je f(x 0 ) 0 (mod n) i x 0 X = n 1/δ ε, onda se x 0 može naći u vremenu koje je polinomijalno u log n i 1/ε. 24

Hastadov napad (1985): Pretpostavimo da je, prije šifriranja, na početku svake poruke dodan neki podatak ovisan o korisniku. Npr. c i = (i 2 h + m) e mod n i, i = 1,..., k. Dakle, imamo k polinoma g i (x) = (i 2 h + x) e c i, te tražimo m sa svojstvom da je g i (m) 0 (mod n i ). Neka je n = n 1 n 2 n k. Pomoću Kineskog teorema o ostacima možemo naći t i tako da je g(x) = k i=1 t i g i (x) i g(m) 0 (mod n) (t i 1 (mod n i ), t i 0 (mod n j ) za j i). Polinom g je normiran i stupnja e. Ako je k > e, tj. imamo više korisnika (presretnutih šifrata) nego što je javni eksponent, onda je m < min i n i < n 1/k < n 1/e, pa se m može efikasno naći primjenom gore navedenog Coppersmithovog rezultata. 25

Može se preporučiti uporaba eksponenta e = 65537, koji je dovoljno velik da bi onemogućio sve poznate napade na RSA s malim eksponentom, a prednost mu je vrlo brzo šifriranje jer ima malo jedinica u binarnom zapisu. Naime, 65537 = 2 16 + 1. 26

Možemo zaključiti da i nakon tri desetljeća intenzivnog proučavanja, još uvijek nije pronadena metoda koja bi razbila RSA kriptosustav. Svi poznati napadi na RSA zapravo samo pokazuju na što treba paziti i što treba izbjegavati kod izbora parametara i implementacije RSA. Zasad se, uz korektnu implementaciju, RSA može smatrati sigurnim kriptosustavom. 27