21

RSA kriptosustav i metode faktorizacije

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RSA kriptosustav i metode faktorizacije

Sveu£ili²te Josipa Jurja Strossmayera u Osijeku

Odjel za matematiku

Sveu£ili²ni preddiplomski studij matematike

Sanja Renduli¢

Kriptogra�ja i metode faktorizacije

Zavr²ni rad

Osijek, 2015.

Page 2: RSA kriptosustav i metode faktorizacije

Sveu£ili²te Josipa Jurja Strossmayera u Osijeku

Odjel za matematiku

Sveu£ili²ni preddiplomski studij matematike

Sanja Renduli¢

Kriptogra�ja i metode faktorizacije

Zavr²ni rad

Mentor:

doc.dr.sc. Ivan Mati¢

Osijek, 2015.

Page 3: RSA kriptosustav i metode faktorizacije

Saºetak

Komunikacija izme�u dvije osobe nije uvijek dobro osigurana te nesiguran komunikacijski

kanal moºe prouzrokovati mnoge probleme prilikom slanja povjerljivih informacija. Osnovna

je ideja prenijeti poruku s jednog mjesta na drugo na na£in da bude nerazumljiva osobama

kojima nije namijenjena, a da imaju nadzor nad komunikacijskim kanalom kojim se poruka

kre¢e. Kori²tenje kriptosustava s javnim klju£em je jedan od na£ina kako rije²iti ovaj pro-

blem. Najpoznatiji takav kriptosustav je RSA, s kojim ¢emo se detaljnije baviti u nastavku.

Zapo£et ¢emo s upoznavanjem znanstvene discipline, kriptogra�je, te njenog razvoja kroz

povijest pa sve do nastanka RSA kriptosustava. Drugo poglavlje se uglavnom temelji na os-

novnim pojmovima vezanim uz kriptogra�ju, de�niciji kriptosustava te podjeli kriptosustava

s obzirom na tajnost, odnosno javnost klju£a. Nakon upoznavanja s osnovnim pojmovima,

u preostalim ¢e poglavljima biti detaljno opisana tema zavr²nog rada, RSA kriptosustav te

metode faktorizacije.

Klju£ne rije£i:

Kriptogra�ja, po²iljatelj, primatelj, otvoreni tekst, ²ifriranje, enkripcijski eksponent, de²i-

friranje, dekripcijski eksponent, ²ifrat, tajni klju£, javni klju£, modul, faktorizacija, prosti

brojevi, razlika kvadrata, potpun kvadrat.

Page 4: RSA kriptosustav i metode faktorizacije

Abstract

Communication between two people is not always well secured. An insecure communica-

tion line can cause many problems while sending con�dential information. The basic idea is

to transmit a message from one place to another in a way that is incomprehensible to people

for whom it is not intended and to have control over the communication line in which the

message is sent. Using a public key cryptosystem is one way to solve this problem. The best

known cryptosystem of this kind is the RSA, which will be explained in detail later on.

We start with the introductions of the scienti�c discipline of cryptography and its de-

velopment throughout history all the way to the formation of the RSA cryptosystem. The

second chapter is mainly based on the basic concepts of cryptography, cryptosystem de�ni-

tion and division of cryptosystem depending on the public or private key. After mastering

the basic concepts the remaining chapters will focus on describing the topic od this paper in

detail which are the RSA cryptosystem and factorization methods.

Key words:

Cryptography, sender, receiver, plaintext, encryption, encryption exponent, decryption, de-

cryption exponent, cypher, secret key, public key, modulus, factorization, prime numbers,

di�erence of squares, perfect square.

Page 5: RSA kriptosustav i metode faktorizacije

Sadrºaj

1. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2. Kriptosustavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3. RSA kriptosustav . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3.1. RSA algoritam . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3.2. Implementacija i sigurnosni problemi . . . . . . . . . . . . . . . 10

4. Metode faktorizacije . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.1. Pollardova p− 1 metoda . . . . . . . . . . . . . . . . . . . . . . 12

4.2. Faktorizacija razlikom kvadrata . . . . . . . . . . . . . . . . . . 14

5. Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Page 6: RSA kriptosustav i metode faktorizacije

1. UVOD

Potreba za sigurnom razmjenom informacija proteºe se gotovo kroz cijelu povijest £ovje£ans-

tva. Odgovor na pitanje kako uspostaviti sigurnu komunikaciju preko nesigurnog komunika-

cijskog kanala daje nam znanstvena disciplina koja se naziva kriptografija. Rije£ dolazi od

gr£kog pridjeva kriptós � skriven, i glagola grafo � pisati. Zadatak je kriptogra�je omogu¢a-

vanje komunikacije izme�u po²iljatelja i primatelja (u kriptografskoj literaturi poznati kao

Alice i Bob), na na£in da njihov protivnik (Eva ili Oskar) ne mogu razumjeti njihove poruke.

Problemom sigurne komunikacije bavili su se ve¢ Egip¢ani i Indijci prije vi²e od 3000

godina. Prve kori²tene metode zapo£ete su kori²tenjem alternativnih jezika poznatih malom

broju ljudi. Razvoj pisma omogu¢io je da se bilo koja informacija prikaºe odre�enim brojem

znakova koje bi, nakon upotrebe odre�enog klju£a, transformirali u izvornu poruku. Oko

1900. godine pr. Kr. u Egiptu je nastao natpis koji se danas smatra prvim dokumentarnim

primjerom pisane kriptogra�je. Iz doba starog vijeka kao zna£ajnije ²ifre moºemo izdvojiti

jednu od hebrejskih ²ifri koje su u to vrijeme kori²tene, poznate kao ATBASH te Cezarovu

²ifru. ATBASH je jednostavna ²ifra koja izvr¢e abecedu naopako dok Cezarova ²ifra pomi£e

sva slova za tri mjesta naprijed. U srednjem je vijeku kriptogra�ja £esto kori²tena u sluºbi

Crkve. Jedan od primjera je nomenklator � kombinacija malog koda i supstitucije abecede.

Iako su u me�uvremenu stvorene i sigurnije ²ifre, nomenclator je ostao u upotrebi sljede-

¢ih 450 godina, zasigurno zbog jednostavnosti. U 20. stolje¢u kriptogra�ja igra zna£ajnu

ulogu u 2 svjetska rata i mnogo raznih sukoba. Pojam kriptoanaliza prvi uvodi William

Frederick Friedman, kasnije poznat kao otac ameri£ke kriptoanalize. Nakon 2. Svjetskog

rata razvoj ra£unala daje novi zamah kriptogra�ji. 1970. godine IBM razvija ²ifru poznatu

pod nazivom Lucifer koja 1976. poti£e stvaranje DES (Data Encryption Standard) ²ifre.

1976. se tako�er javlja ideja javnih klju£eva. Whit�eld Di�e i Martin Hellman objavljuju

rad pod nazivom New Directions in Cryptography. Ovaj rad uveo je koncept kriptogra�je

s javnim klju£em kroz upotrebu asimetri£nih klju£eva i algoritama za rad s istim. Godinu

dana kasnije Ronald Rivest, Adi Shamir i Leonard Adleman stvaraju algoritam koji se po

prvim slovima njihovih prezimena naziva RSA algoritam. To je ²ifra s javnim klju£em £ija

je sigurnost zasnovana na te²ko¢i faktorizacije velikih prirodnih brojeva.

1

Page 7: RSA kriptosustav i metode faktorizacije

2. KRIPTOSUSTAVI

Osnovni algoritam kriptogra�je glasi: po²iljatelj ²ifrira podatke te ih po²alje primatelju.

Podaci dolaze do protivnika koji promatra kodirane informacije i poku²ava ih de²ifrirati

bez klju£a. Me�utim, primatelj prima informacije, de²ifrira ih te razumije poruku. Da bi

ovaj algoritam funkcionirao, potrebno je da po²iljatelj i primatelj imaju isti klju£. Poruku

koju po²iljatelj ºeli poslati primatelju zovemo otvoreni tekst. �ifriranje je transformacija

otvorenog teksta koriste¢i unaprijed dogovoreni klju£, a dobiveni rezultat nazivamo ²ifrat.

De²ifriranje je postupak kojim se ²ifrat transformira u izvorne podatke, odnosno u otvoreni

tekst.

I otvoreni tekst i ²ifrat sastoje se od elemenata odre�enih, ne nuºno jednakih, alfabeta.

Naj£e²¢e se alfabet otvorenog teksta sastoji od slova abecede i znamenki, ponekad i in-

terpunkcijskih znakova, dok se alfabet ²ifrata £esto sastoji samo od znamenki. Klju£ je

uglavnom jednak nekom odabranom slovu abecede, broju ili nekoj klju£noj rije£i.

�ifra je ure�en par dvije funkcije, od kojih prva sluºi za ²ifriranje, a druga za de²ifriranje.

Navedene funkcije £esto ovise o unaprijed dogovorenom klju£u koji je poznat po²iljatelju i

primatelju poruke.

De�nicija 2.1. Kriptosustav je ure�ena petorka (P,C,K,ε,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, εskup svih funkcija ²ifriranja i D skup svih funkcija de²ifriranja. Za svaki K ∈ K postoji eK∈ ε i odgovaraju¢i dK ∈ D. Pritom su eK : P → C i dK : C → P funkcije sa svojstvom da

je dK(eK(x)) = x za svaki x ∈ P.

Kriptosustave dijelimo na one s tajnim i one s javnim klju£em. Kriptosustavi s tajnim

klju£em koriste isti klju£ za ²ifriranje i de²ifriranje poruka (ili se klju£ za de²ifriranje moºe

lako odrediti poznavaju¢i klju£ za ²ifriranje i obratno). Ovakvi kriptosustavi se nazivaju

simetri£ni kriptosustavi. U slu£aju kriptosustava s javnim klju£em prakti£ki je nemogu¢e

odrediti klju£ za de²ifriranje (u nekom razumnom vremenu), usprkos tomu ²to poznajemo

klju£ za ²ifriranje. Ovakve kriptosustave nazivamo asimetri£ni kriptosustavi.

2

Page 8: RSA kriptosustav i metode faktorizacije

3. RSA KRIPTOSUSTAV

3.1. RSA algoritam

RSA kriptosustav je najpoznatiji kriptosustav s javnim klju£em koji sadrºi sljede¢e parame-

tre:

• modul n koji je produkt neka dva prosta broja p i q, po mogu¢nosti ²to ve¢a

• eksponent e koji se koristi za ²ifriranje

• eksponent d koji se koristi za de²ifriranje

De�nicija 3.1.1. Neka je n = p · q, gdje su p i q prosti brojevi. Neka je P = C = Z/nZ =

{ 0, 1, . . . , n - 1 }, te

K = {(n, p, q, d, e) : n = p · q, d · e ≡ 1 (mod ϕ(n))}

Za K ∈ K de�niramo

eK(x) = xe mod n, dK(y) = yd mod n.

Algoritam:

• Tajno odaberemo dva velika prosta broja p i q.

• Izra£unamo n = p · q i ϕ(n)=(p−1)(q−1)= n−p−q+1. Ovdje je ϕ(n) Eulerova funkcija.

• Odabiremo enkripcijski eksponent e takav da je (e, ϕ(n))=1.

• Iz (e, ϕ(n))=1 slijedi da postoji multiplikativni inverz d od e modulo ϕ(n), tj e · d ≡ 1(mod

ϕ(n)). Broj d se naziva dekripcijski eksponent. Multiplikativni inverz d se moºe odrediti iz

Euklidovog algoritma, jer ima svojstvo da postoji neki cijeli broj u za koji je ed + uϕ(n) =

1.

• Neka je x dio otvorenog teksta koji treba ²ifrirati. Uzimamo da je x < n. Odgovaraju¢i

dio ²ifrata dobivamo pomo¢u ft(x) = xe mod n. No, ako je y dio ²ifrata dekripcija se obavlja

pomo¢u gt(y) = yd mod n. U oba slu£aja t je jednak (n, e).

Parametar (n, e) je javni klju£ poznat svima, dok su faktorizacija n = p · q i eksponent

d su tajni i poznati samo po²iljatelju i primatelju poruke.

Teorem 3.1.1. Za 1 ≤ x < n vrijedi gt(ft(x)) = x, gdje je t = (n,e), uz uvjet (e, ϕ(n))=1.

Dokaz. O£ito je gt(ft(x)) = xed (mod n). Kako je d multiplikativni inverz od e modulo

ϕ(n), imamo e · d ≡ 1(mod ϕ(n)) odakle slijedi da postoji a ∈ N takav da je ed = a · ϕ(n)+ 1. Odatle je

xed = x · (xϕ(n))a.

3

Page 9: RSA kriptosustav i metode faktorizacije

Razlikujemo nekoliko mogu¢nosti:

• (n, x) = 1: sada je xϕ(n) ≡ 1 (mod n) pa je xed ≡ x (mod n)

• (n, x) = p : u ovom slu£aju je xed ≡ 0 (mod p) i

xed ≡ x · (xq−1)(p−1)a ≡ x (mod q)

zbog (x, q) = 1, ²to slijedi iz £injenica da je x < n i p | x. Iz dobivenog sustava kongruencija

se lako vidi da je xed ≡ x (mod n)

• (n, x) = q : na isti na£in kao u prethodnom slu£aju zaklju£ujemo da je xed ≡ x (mod n).

Iz dobivene kongruencije slijedi da je x = xed mod n, jer je x < n. Dakle, funkcije su

me�usobno inverzne.

RSA algoritam ¢emo ilustrirati na sljede¢em primjeru. Ovakav primjer nije siguran jer

¢emo raditi s manjim numeri£kim vrijednostima. Sigurniju provedbu RSA algoritma nam

daje odabir ve¢eg broja za modul.

Primjer 3.1.1.

Kreiranje RSA klju£a

• Kreiranje RSA klju£a zapo£inje tako da Bob odabire dva tajna prosta broja. Neka su to

p = 353 i q = 419. Zatim ra£una njihov produkt n = p · q = 353 · 419 = 147907.

• U sljede¢em koraku Bob odabire javni enkripcijski eksponent e = 25841 sa svojstvom da

je (e, ϕ(n)) = 1. Kako je ϕ(n) = (p − 1)(q − 1) = 352 · 418 = 147136, vidimo da vrijedi

(25841, 147136) = 1.

�ifriranje

• Alice transformira svoju poruku u broj f = 113625 koji zadovoljava svojstvo da je 1 ≤ f

< n. Zatim koristi Bobov javni klju£ (n, e) = (147907, 25841) kako bih izra£unala h ≡ f e

(mod n).

h ≡ 11362525841 ≡ 84295 (mod 147907)

• Alice ²alje ²ifrirani tekst h = 84295 Bobu.

De²ifriranje

• Po²to Bob poznaje ϕ(n) = 147136, iz (e,ϕ(n)) = 1 slijedi da je e · d ≡ 1 (mod ϕ(n)).

4

Page 10: RSA kriptosustav i metode faktorizacije

Kongruencija 25841 · d ≡ 1 (mod 147136) daje Bobu mogu¢nost da izra£una d, odnosno de-

kripcijski eksponent. Kao ²to smo naveli u algoritmu RSA kriptosustava, d se moºe odrediti

iz Euklidovog algoritma, zbog svojstva da postoji neki cijeli broj u za koji je ed + uϕ(n) =

1, odnosno 25841 · d + 147136 · u = 1.

Primjenimo Euklidov algoritam:

147136 = 25841 · 5 + 17931

25841 = 17931 · 1 + 7910

17931 = 7910 · 2 + 2111

7910 = 2111 · 3 + 1577

2111 = 1577 · 1 + 534

1577 = 534 · 2 + 509

534 = 509 · 1 + 25

509 = 25 · 20 + 9

25 = 9 · 2 + 7

9 = 7 · 1 + 2

7 = 2 · 3 + 1

2 = 1 · 2 + 0.

i -1 0 1 2 3 4 5 6 7 8 9 10 11qi 5 1 2 3 1 2 1 20 2 1 3di 0 1 -5 6 -17 57 -74 205 -279 5785 -11849 17634 -64751

Dakle, d ≡ - 64751 ≡ 82385 (mod 147136).

• Kada je prona²ao d, Bob uzima ²ifrirani tekst h = 84295 te ra£una hd (mod n).

8429582385 ≡ 113625 (mod 147907)

Izra£unata vrijednost je upravo Alicina poruka f = 113625.

5

Page 11: RSA kriptosustav i metode faktorizacije

Napomena 3.1.1. Sasvim je jasno da se ²ifriranje moºe izvesti u£inkovitije ako je en-

kripcijski eksponent e manji broj, te analogno, de²ifriranje je u£inkovitije ako je dekripcijski

eksponent d tako�er manji broj.

Bob ne moºe izabrati oba eksponenta kao manje brojeve. Budu¢i da je jedan od njih ve¢

odabran, drugog odre�uje kongruencija e · d ≡ 1 (mod ϕ(n)). Prethodna tvrdnja nije nuºno

to£na. U slu£aju da Bob odabere e = 1, tada je tako�er d = 1. Vidimo da su oba eksponenta

mali brojevi. No, tada su otvoreni tekst i ²ifrirana poruka identi£ni, te zaklju£ujemo da je

odabir jedinice za enkripcijski eksponent poprili£no lo²a ideja.

Primjetimo da Bob ne moºe odabrati e = 2. Razlog tome je uvjet da e mora zadovoljavati

(e, ϕ(n)) = 1. Tako najmanja mogu¢a vrijednost za e je 3.

Napomena 3.1.2. U idu¢im primjerima ¢e nam biti potreban engleski alfabet. Svakom

slovu ¢emo pridruºiti jedan numeri£ki ekvivalent po£ev²i od 1 pa sve do 26:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21A B C D E F G H I J K L M N O P Q R S T U

22 23 24 25 26V W X Y Z

Primjer 3.1.2. Primjenom RSA kriptosustava s javnim klju£em (55, 7) ²ifrirajte poruku

TEORIJA u engleskom alfabetu.

Koriste¢i tablicu iz Napomene 3.1.2. dobivamo:

T E O R I J A20 5 15 18 9 10 1

Vidimo da je t = (n, e) = (55, 7), te koristimo funkciju ft(x) = xe (mod n).

x = 20: ft(20) = 207 (mod 55) = 15 T → 15

x = 5: ft(5) = 57 (mod 55) = 25 E → 25

x = 15: ft(15) = 157 (mod 55) = 5 O → 5

x = 18: ft(18) = 187 (mod 55) = 17 R → 17

x = 9: ft(9) = 97 (mod 55) = 4 I → 4

x = 10: ft(10) = 107 (mod 55) = 10 J → 10

6

Page 12: RSA kriptosustav i metode faktorizacije

x = 1: ft(1) = 17 (mod 55) = 1 A → 1

Dakle, traºeni ²ifrat glasi: 15 25 5 17 4 10 1.

Primjer 3.1.3. De²ifrirajte poruku 18 17 60 10 11 56 koja je ²ifrirana u RSA kriptosustavu

s javnim klju£em (55, 7) nad engleskim alfabetom.

Iz t = (n, e) vidimo da je n = 55, te e = 7. Trebamo prona¢i dekripcijski eksponent d.

Prvo ra£unamo ϕ(n) = ϕ (55) = ϕ (5 · 11) = 4 · 10 = 40. Kada znamo ϕ(n), iz (e, ϕ(n))

= (7, 40) = 1 slijedi da je e · d = 1 (mod ϕ(n)). Pomo¢u svojstva da postoji cijeli broj u za

koji je e · d + u · ϕ(n) = 7 · d + 40 · u = 1 te primjenom Euklidovog algoritma dolazimo do d.

40 = 7 · 5 + 5

7 = 5 · 1 + 2

5 = 2 · 2 + 1

2 = 1 · 2 + 0.

i -1 0 1 2 3qi 5 1 2di 0 1 -5 6 -17

Dakle, d ≡ - 17 ≡ 23 (mod 40).

Kada smo prona²li dekripcijski eksponent, de²ifriramo poruku pomo¢u funkcije gt (y) = yd

(mod n) te koriste¢i tablicu iz Napomene 3.1.2. svakom izra£unatom broju pridruºimo po

jedno slovo engleskog alfabeta.

y = 18: gt (18) = 1823 (mod 55) = 2 2 → B

y = 17: gt (17) = 1723 (mod 55) = 18 18 → R

y = 60: gt (60) = y23 (mod 55) = 15 15 → O

7

Page 13: RSA kriptosustav i metode faktorizacije

y = 10: gt (10) = y23 (mod 55) = 10 10 → J

y = 11: gt (11) = y23 (mod 55) = 11 11 → K

y = 56: gt (56) = y23 (mod 55) = 1 1 → A

Zna£i, traºena poruka glasi: BROJKA.

Primjer 3.1.4. U kriptosustavu s javnim klju£em (n,e) = (2047, 411) de²ifrirajte poruku

PB u engleskom alfabetu.

Prvo faktoriziramo broj n = 2047. Dakle, n = 2047 = 23 · 89. Zatim ra£unamo ϕ(n) =

ϕ(2047) = ϕ(23 · 89) = 1936.

Iz (e, ϕ(n)) = (411, 1936) = 1 slijedi da postoje d, u ∈ Z takvi da je e · d + ϕ(n) · u =

1, odnosno 411 · d + 1936 · u = 1. Kao ²to smo vidjeli u prethodnim primjerima, moºemo

pisati i 411 · d = 1 (mod 1936). Zatim primjenimo Euklidov algoritam:

1936 = 411 · 4 + 292

411 = 292 · 1 + 119

292 = 119 · 2 + 54

119 = 54 · 2 + 11

54 = 11 · 4 + 10

11 = 10 · 1 + 1

10 = 1 · 10.

i -1 0 1 2 3 4 5 6qi 4 1 2 2 4 1di 0 1 -4 5 -14 33 -146 179

Iz tablice moºemo vidjeti da je d = 179. Sada ²ifratu PB pridruºujemo numeri£ki ekvivalent

16 2 i de²ifriramo pomo¢u funkcije gt(y) = yd (mod n).

8

Page 14: RSA kriptosustav i metode faktorizacije

Dobivamo:

y = 16: gt (16) = 16179 (mod 2047) = 2 2 → B

y=2: gt (2) = 2179 (mod 2047) = 8 8 → H

pa je otvoreni tekst jednak BH.

Ako bi htjeli ²ifrirati, koristili bi funkciju ft (x) = xe (mod n).

Dobivamo:

x=2: ft (2) = 2411 (mod 2047) = 16 16 → P

x = 8: ft (8) = 8411 (mod 2047) = 2 2 → B

pa je ²ifrat jednak PB.

9

Page 15: RSA kriptosustav i metode faktorizacije

3.2. Implementacija i sigurnosni problemi

Kroz sljede¢e ¢emo primjere vidjeti da osiguravanje komunikacijskog sustava nije toliko jed-

nostavno koliko se £ini. Tako�er, upoznat ¢emo se s nekim sigurnosnim pitanjima vezanim

uz implementaciju RSA kriptosustava.

Primjer 3.2.1 (Woman-in-the-Middle Attack). Pretpostavimo da Eva nije samo obi£an

prislu²kiva£, nego ima £itavu kontrolu nad Alicinim i Bobovim komunikacijskim kanalom. U

ovom slu£aju, ona moºe pokrenuti takozvani man-in-the-middle attack.

Alice ²alje Bobu vrijednost U = zu i Bob ²alje Alice vrijednost V = zv te se ra£unanje

odvija u kona£nom polju s p elemenata Fp. Ono ²to Eva radi jest da odabire svoj tajni eks-

ponent f , ra£una vrijednost F = zf , zatim presre¢e Alicinu i Bobovu komunikaciju. Umjesto

slanja U Bobu i V Alice, Eva ²alje oboma broj F dok Alice i Bob vjeruju da su razmijenili

vrijednosti me�usobno.

Pretpostavimo da Alice i Bob koriste navodno tajni klju£ za ²ifriranje te si me�usobno

po²alju poruke. Primjerice, Alice ²ifrira otvoreni tekst m koriste¢i F u kao tajni klju£. Eva

presre¢e Alicinu poruku, de²ifrira ju koriste¢i U f kao klju£ te je u mogu¢nosti razumjeti

ju. Zatim poruku ponovno ²ifrira koriste¢i V f kao klju£ i ²alje Bobu. Budu¢i da Bob

moºe de²ifrirati poruku koriste¢i F v kao klju£, nije svjestan da postoji rupa u sigurnosti

komunikacijskog kanala.

Primjer 3.2.2. Pretpostavimo da Eva moºe uvjeriti Alice da de²ifrira 'slu£ajnu' RSA po-

ruku koriste¢i svoj privatni klju£. Jedan na£in za Alice da dokaºe svoj identitet kao vlasnik

javnog klju£a (n, e) je pokazati da zna kako de²ifrirati poruke.

Pokaºimo kako Eva moºe iskoristiti Alicinu velikodu²nost. Pretpostavimo da Eva pre-

sre¢e ²ifrat h kojeg je Bob poslao Alice. Zatim bira slu£ajnu vrijednost g i ²alje Alici 'poruku'

h′ ≡ ge · h (mod n).

Alice de²ifrira h′ i vra¢a dobiveni m′ Evi, gdje je

m′ ≡ (h′)d ≡ (ge · h)d ≡ (ge ·me)d ≡ g · m (mod n).

Tako Eva saznaje koliko iznosi g · m (mod n). Budu¢i da poznaje g, dolazi do Bobovog

otvorenog teksta m.

10

Page 16: RSA kriptosustav i metode faktorizacije

Primjer 3.2.3. Pretpostavimo da Alice objavljuje dva razli£ita eksponenta e1 i e2 za kori-

²tenje s javnim modulom n te Bob ²ifrira otvoreni tekst m koriste¢i oba Alicina eksponenata.

Ako Eva presretne ²ifrate

h1 ≡ me1 (mod n)

i

h2 ≡ me2 (mod n)

moºe upotrijebiti rje²enje jednadºbe e1 · a + e2 · b = (e1, e2) za ra£unanje

ha1 · hb

2 ≡ (me1)a · (me2)b ≡ me1·a+e2·b ≡ m(e1,e2) (mod n).

Ako se dogodi da je (e1,e2) = 1, Eva ¢e razumjeti otvoreni tekst.

Op¢enitije, Bob ²ifrira poruku koriste¢i nekoliko eksponenata e1, e2, . . . , er. Eva razumije

otvoreni tekst ako je (e1, e2, . . . , er) = 1. Poanta ovog primjera leºi u tome da Alice mora

koristiti najvi²e jedan enkripcijski eksponent za dani modul ukoliko ºeli da Eva ne otkrije

poruku koju ºeli poslati Bobu.

11

Page 17: RSA kriptosustav i metode faktorizacije

4. METODE FAKTORIZACIJE

4.1. Pollardova p− 1 metoda

Je li neki veliki broj prost, relativno je lako provjeriti. To nam ide u prilog jer RSA kripto-

sustav zahtjeva velike proste brojeve kako bi mogao funkcionirati. S druge strane, sigurnost

RSA kriptosustava se oslanja na o£igledne pote²ko¢e kod faktorizacije velikih brojeva. RSA

paradoks, kako bi RSA bio ²to u£inkovitiji, je da uzmemo ²to manji mogu¢i modul n = p ·q. No, ako protivnik moºe faktorizirati n, onda na²e ²ifrirane poruke nisu sigurne. Dakle,

bitno je razumjeti kako je te²ko faktorizirati velik broj, a osobito dobro shvatiti mogu¢nosti

razli£itih algoritama koji se trenutno koriste za faktorizaciju.

Sada ¢emo upoznati neke od poznatih metoda za faktorizaciju velikih cijelih brojeva.

Zapo£nimo s algoritmom poznatim pod nazivom Pollardova p-1 metoda. Iako nije korisna

za sve brojeve, navedena metoda je za odre�ene vrste brojeva poprili£no u£inkovita. Ona

nam pokazuje da postoje nesigurni RSA moduli koji se na prvi pogled £ine sigurnima. Dakle,

predstavili smo se brojem n = p · q i na² je zadatak utvrditi proste faktore p i q.

Teorem 4.1.1. (Mali Fermatov teorem) Neka je p prost broj i a cijeli broj. Tada je ap ≡ a

(mod p) te ako p ne dijeli a vrijedi i ap−1 ≡ 1 (mod p).

Pretpostavimo da sre¢om ili nekom metodom uspijemo na¢i cijeli broj C sa svojstvom

da p − 1 dijeli C i q − 1 ne dijeli C. Zna£i da postoje cijeli brojevi i,j i k, k 6= 0, koji

zadovoljavaju C = i · (p− 1) i C = j · (q − 1) + k.

�to bi se dogodilo da uzmemo nasumi£no odabrani prirodni broj a i izra£unamo aC? Mali

Fermatov teorem nam kaºe da

aC = ai(p−1) = (ap−1)i ≡ 1i ≡ 1 (mod p),

aC = aj(q−1)+k = ak(aq−1)j ≡ ak · 1j ≡ ak (mod q).

Eksponent k nije jednak 0, pa je vrlo mala vjerojatnost da ¢e ak biti kongruentno 1 modulo

q. Tako smo utvrdili da p dijeli aC - 1 i q ne dijeli aC - 1. Sada moºemo prona¢i p preko

jednostavnog ra£unanja najve¢eg zajedni£kog djelitelja, tj. p = (aC - 1, n).

Postavljamo si pitanje je li mogu¢e prona¢i eksponent C kojeg dijeli p−1 i ne dijeli q−1?

Pollard je uo£io da ako se dogodi da je p− 1 produkt puno manjih prostih brojeva, onda ¢e

on dijeliti t! za neku ne preveliku vrijednost t. Prema tome, ideja glasi: za svaki broj t = 2,

12

Page 18: RSA kriptosustav i metode faktorizacije

3, 4, . . . mi izaberemo vrijednost a te izra£unamo (at! - 1, n).

Ako je najve¢i zajedni£ki djelitelj jednak 1, onda prelazimo na sljede¢u vrijednost od t.

Ako je najve¢i zajedni£ki djelitelj jednak n, onda nemamo sre¢e. Ako dobijemo broj koji se

nalazi strogo izme�u 1 i t, tada imamo netrivijalan faktor od n te smo gotovi.

Napomena 4.1.1. Recimo, za a=2 i t=100 nije ba² ostvarivo precizno izra£unati at! -

1. Doista, broj 2100! ima vi²e od 10157 znamenki, ²to je ve¢e od broja elementarnih £estica

u poznatom svemiru. Sre¢om, nema potrebe ra£unati do kraja. Nas zanima samo najve¢i

zajedni£ki djelitelj od at! - 1 i n, stoga je dovoljno izra£unati at! - 1 (mod n) te uzeti najve¢i

zajedni£ki djelitelj sa n. Tada ne¢emo morati raditi s brojevima ve¢im od n.

Tako�er napomenimo da ne moramo ra£unati eksponent t!. Umjesto toga, pretpostav-

ljaju¢i da smo ve¢ izra£unali at! mod n u prethodnom koraku, sljede¢u vrijednost moºemo

izra£unati kao

a(t+1)! ≡ (at!)t+1 (mod n).

Primjer 4.1.1. Koristimo Pollardovu p-1 metodu kako bi faktorizirali broj n = 16463719.

Zapo£injemo sa (25! � 1, n) te u nastavku uzimamo sve ve¢e faktorijele u eksponentu.

25! - 1 = 11473486 (mod 16463719), (25! - 1, 16463719) = 1

26! - 1 = 3979548 (mod 16463719), (26! - 1, 16463719) = 1

27! - 1 = 13254507 (mod 16463719), (27! - 1 , 16463719) = 1

28! - 1 = 1934966 (mod 16463719), (28! - 1, 16463719) = 1

29! - 1 = 1859621 (mod 16463719), (29! - 1, 16463719) = 1

210! - 1 = 6461138 (mod 16463719), (210!-1, 16463719) = 4201

Posljednji korak nam daje prost faktor p = 4201 od n. Drugi faktor q, koji je tako�er prost,

dobijemo tako da n podijelimo s p.

q =n

p=

16463719

4201= 3919

Razlog za²to ba² za eksponent 10! ovaj primjer funkcionira je taj da je p - 1 u rastavu na

proste faktore produkt manjih prostih brojeva, p - 1 = 4200 = 23 · 3 · 52 · 7. S druge strane,

faktor q zadovoljava q - 1 = 3918 = 2 · 3 · 653 te vidimo da nije produkt malih prostih brojeva.

13

Page 19: RSA kriptosustav i metode faktorizacije

Primjer 4.1.2. U ovom primjeru ¢emo ra£unati s ve¢im brojem. Neka je to n= 168441398857

te zapo£injemo sa (250! - 1, n).

250! - 1 = 114787431143 (mod n), (250! - 1, n) = 1

251! - 1 = 36475745067 (mod n), (251! - 1, n) = 1

252! - 1 = 67210629098 (mod n), (252! - 1 , n) = 1

253! - 1 = 8182353513 (mod n), (253! - 1, n) = 350437

Dakle, prona²li smo p = 350437. Drugi prosti faktor je q = 480661. Naravno, p - 1 je produkt

malih prostih brojeva.

p - 1 = 350436 = 22 · 3 · 19 · 29 · 53

4.2. Faktorizacija razlikom kvadrata

Najmo¢nije poznate metode faktorizacije danas oslanjaju se na jedan od najjednostavnijih

identiteta u cijeloj matematici, a to je x2 � y2 = (x + y)(x - y). Ova jednostavna formula

nam govori da je razlika kvadrata na lijevoj strani jednaka produktu na desnoj. Kako bi

faktorizirali broj n, traºimo cijeli broj b takav da je n + b2 potpun kvadrat, recimo n + b2

je jednak a2. Tada imamo n = a2 - b2 = (a - b)(a + b) te smo izvr²ili faktorizaciju od n.

Primjer 4.2.1. Faktorizirat ¢emo broj n = 21509 tako da prvo na�emo cijeli broj b takav

da je n + b2 potpun kvadrat:

21509 + 12 = 21510 nije potpun kvadrat,

21509 + 22 = 21513 nije potpun kvadrat,

21509 + 32 = 21518 nije potpun kvadrat,

21509 + 42 = 21525 nije potpun kvadrat,

21509 + 52 = 21534 nije potpun kvadrat,

21509 + 62 = 21545 nije potpun kvadrat,

21509 + 72 = 21558 nije potpun kvadrat,

21509 + 82 = 21573 nije potpun kvadrat,

21509 + 92 = 21590 nije potpun kvadrat,

21509 + 102 = 21609 = 1472 potpun kvadrat.

14

Page 20: RSA kriptosustav i metode faktorizacije

Zatim ra£unamo 21509 = 1472 � 102 = (147 + 10)(147 - 10) = 157 · 137. Tako smo dobili

faktorizaciju od n.

Ako je n veliki broj, onda je mala vjerojatnost da ¢e n + b2 za slu£ajno odabranu vrijed-

nost b biti potpun kvadrat. Moramo prona¢i pametan na£in za odabrati b. Bitna primjedba

je da ne trebamo nuºno pisati n kao razliku dva kvadrata. �esto je dovoljno napisati neki

vi²ekratnik kn od n kao razliku dva kvadrata, budu¢i da je kn = a2 - b2 = (a + b)(a - b) te

postoji mogu¢nost da n ima netrivijalan zajedni£ki faktor sa svakim od a + b i a - b. Tada

je jednostavno prona¢i faktore ra£unanjem (n, a + b) i (n, a - b). U idu¢em primjeru ¢emo

primijeniti ovaj postupak.

Primjer 4.2.2. Faktorizirajmo broj n = 203299. Ako napravimo listu od n + b2 za vrijed-

nosti b = 1, 2, 3 ... recimo do b = 100, ne¢emo prona¢i potpun kvadrat. Stoga, idu¢e ²to

poku²avamo je na¢i vrijednost od 3n + b2:

3 · 203299 + 12 = 609898 nije potpun kvadrat,

3 · 203299 + 22 = 609901 nije potpun kvadrat,

3 · 203299 + 32 = 609906 nije potpun kvadrat,

3 · 203299 + 42 = 609913 nije potpun kvadrat,

3 · 203299 + 52 = 609922 nije potpun kvadrat,

3 · 203299 + 62 = 609933 nije potpun kvadrat,

3 · 203299 + 72 = 609946 nije potpun kvadrat,

3 · 203299 + 82 = 609961 = 7812 potpun kvadrat.

Prema tome je 3 · 203299 = 7812 - 82 = (781 + 8)(781 - 8) = 789 · 773. Kada izra£u-

namo (203299, 789) = 263 i (203299, 773) = 773, pronalazimo proste faktore od n. Stoga,

faktorizacija od n je 203299 = 263 · 773.

15

Page 21: RSA kriptosustav i metode faktorizacije

5. LITERATURA

[1] A. Dujella; Uvod u teoriju brojeva; PMF - Matemati£ki odjel; Zagreb; skripta; 2008.

[2] J. Ho�stein, J. Pipher, J. H. Silverman; An Introduction to Mathematical Cryptography;

Springer International Editions; New York; 2008.

[3] I. Mati¢; Uvod u teoriju brojeva; Odjel za matematiku; Osijek; skripta; 2013.

16