Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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