P. 1
Kriptografija_Dujella

Kriptografija_Dujella

5.0

|Views: 271|Likes:
Published by Darko Šimunić

More info:

Published by: Darko Šimunić on Jun 20, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/25/2014

pdf

text

original

Teorija brojeva u kriptografiji

Andrej Dujella
Poslijediplomski kolegij 2003/2004.
Poglavlje 1
Kriptografija javnog kljuˇca
1.1 Kratki uvod u kriptografiju
Kako uspostaviti sigurnu komunikaciju preko nesigurnog komunikacijskog
kanala? Metode za rjeˇsavanje ovog problema proˇcava znanstvena disciplina
koja se zove kriptografija (ili tajnopis). Osnovni zadatak kriptografije je
omogu´cavanje komunikacije dvaju osoba (zovemo ih poˇsiljalac i primalac
- u kriptografskoj literaturi za njih su rezervirana imena Alice i Bob) na
takav naˇcin da tre´ca osoba (njihov protivnik - u literaturi se najˇceˇs´ce zove
Eve ili Oskar), koja moˇze nadzirati komunikacijski kanal, ne moˇze razumjeti
njihove poruke.
Poruku koju poˇsiljalac ˇzeli poslati primaocu zovemo otvoreni tekst. Poˇsi-
ljalac transformira otvoreni tekst koriste´ci unaprijed dogovoreni kljuˇc K. Taj
se postupak zove ˇsifriranje, a dobiveni rezultat ˇsifrat. Nakon toga poˇsiljalac
poˇsalje ˇsifrat preko nekog komunikacijskog kanala. Protivnik prisluˇskuju´ci
moˇze saznati sadrˇzaj ˇsifrata, ali kako ne zna kljuˇc, ne moˇze odrediti otvoreni
tekst. Za razliku od njega, primalac zna kljuˇc kojim je ˇsifrirana poruka, pa
moˇze deˇsifrirati ˇsifrat i odrediti otvoreni tekst.
Ove pojmove ´cemo formalizirati u sljede´coj definiciji.
Definicija 1.1. Kriptosustav je uredena petorka ({, (, /, c, T), gdje je {
1
Teorija brojeva u kriptografiji 2
konaˇcan skup svih otvorenih tekstova, ( konaˇcan skup svih ˇsifrata, / konaˇcan
skup svih mogu´cih kljuˇceva, c skup svih funkcija ˇsifriranja i T skup svih
funkcija deˇsifriranja. Za svaki K ∈ / postoji e
k
∈ c i odgovaraju´ci d
K

T. Pritom su e
K
: { → ( i d
K
: ( → { funkcije sa svojstvom da je
d
K
(e
K
(x)) = x za svaki x ∈ {.
Shema koju smo u uvodu opisali predstavlja tzv. simetriˇcni ili konven-
cionalni kriptosustav. Funkcije koje se koriste za ˇsifriranje e
K
i deˇsifriranje
d
K
ovise o kljuˇcu K kojeg Alice i Bob moraju tajno razmjeniti prije same
komunikacije. Kako njima nije dostupan siguran komunikacijski kanal, ovo
moˇze biti veliki problem.
Godine 1976. Diffie i Hellman su ponudili jedno mogu´ce rjeˇsenje prob-
lema razmjene kljuˇceva, zasnovano na ˇcinjenici da je u nekim grupama po-
tenciranje puno jednostavnije od logaritmiranja. O ovom algoritmu ´cemo
detaljnije govoriti u jednom od sljede´cih poglavlja.
Diffie i Hellman se smatraju zaˇcetnicima kriptografije javnog kljuˇca. Ideja
javnog kljuˇca se sastoji u tome da se konstruiraju kriptosustavi kod kojih
bi iz poznavanja funkcije ˇsifriranja e
K
bilo praktiˇcki nemogu´ce (u nekom
razumnom vremenu) izraˇcunati funkciju deˇsifriranja d
K
. Tada bi funkcija
e
K
mogla biti javna. Dakle, u kriptosustavu s javnim kljuˇcem svaki koris-
nik K ima dva kljuˇca: javni e
K
i tajni d
K
. Ako Alice ˇzelji poslati Bobu
poruku x, onda je ona ˇsifrira pomo´cu Bobovog javnog kljuˇca e
B
, tj. poˇsalje
Bobu ˇsifrat y = e
B
(x). Bob deˇsifrira ˇsifrat koriste´ci svoj tajni kljuˇc d
B
,
d
B
(y) = d
B
(e
B
(x)) = x. Uoˇcimo da Bob mora posjedovati neku dodatnu
informaciju (tzv. trapdoor - skriveni ulaz) o funkciji e
B
, da bi samo on mo-
gao izraˇcunati njezin inverz d
B
, dok je svima drugima (a posebno Eve) to
nemogu´ce. Takve funkcije ˇciji je inverz teˇsko izraˇcunati bez poznavanja nekog
dodatnog podatka zovu se osobne jednosmjerne funkcije.
Napomenimo da su kriptosustavi s javnim kljuˇcem puno sporiji od mod-
ernih simetriˇcnih kriptosustava (DES, IDEA, AES), pa se stoga u praksi ne
koriste za ˇsifriranje poruka, ve´c za ˇsifriranje kljuˇceva, koji se potom koriste
u komunikaciji pomo´cu nekog simetriˇcnog kriptosustava.
Druga vaˇzna primjena kriptosustava s javnim kljuˇcem dolazi od toga da
oni omogu´cavaju da se poruka ”digitalno poptiˇse”. Naime, ako Alice poˇsalje
Bobu ˇsifrat z = d
A
(e
B
(x)), onda Bob moˇze biti siguran da je poruku poslala
Alice (jer samo ona zna funkciju d
A
), a takoder jednakost e
A
(z) = e
B
(x)
predstavlja i dokaz da je poruku poslala Alice, pa ona to ne moˇze kasnije
zanijekati.
Teorija brojeva u kriptografiji 3
1.2 Kriptosustavi zasnovani na problemu faktor-
izacije
U konstrukciji kriptosustava s javnim kljuˇcem, tj. osobnih jednosmjernih
funkcija, obiˇcno se koriste neki ”teˇski” matematiˇcki problemi. Jedan od
takvih problema je problem faktorizacije velikih prirodnih brojeva. O meto-
dama faktorizacije ´cemo detaljno govoriti kasnije. Za sada kaˇzimo da je danas
praktiˇcki nemogu´ce rastaviti na faktore paˇzljivo odabran broj s viˇse od 200
znamenaka.
Najpoznatiji kriptosustav s javnim kljuˇcem je RSA kriptosustav iz 1977.
godine, nazvan po svojim tvorcima Rivestu, Shamiru i Adlemanu. Njegova
sigurnost je zasnovana upravo na teˇsko´ci faktorizacije velikih prirodnih bro-
jeva. Slijedi precizna definicija RSA kriptosustava.
RSA kriptosustav: Neka je n = pq, gdje su p i q prosti brojevi.
Neka je { = ( = Z
n
, te
/ = ¦(n, p, q, d, e) : n = pq, de ≡ 1 (mod ϕ(n))¦.
Za K ∈ / definiramo
e
K
(x) = x
e
mod n, d
K
(y) = y
d
mod n, x, y ∈ Z
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 kljuˇc.
Ovdje je ϕ(n) Eulerova funkcija. U naˇsem sluˇcaju je ϕ(n) = ϕ(pq) =
(p −1)(q −1) = n −p −q + 1.
U dokazu da je d
K
inverz od e
K
koristimo Eulerov teorem:
x
ϕ(n)
≡ 1 (mod n), za (x, n) = 1.
Uvjerimo se da su funkcije e
K
i d
K
jedna drugoj inverzne.
Imamo: d
K
(e
K
(x)) ≡ x
de
(mod n). Iz de ≡ 1 (mod ϕ(n)) slijedi da
postoji prirodan broj k takav da je de = kϕ(n) + 1. Pretpostavimo da je
(x, n) = 1. Sada je
x
de
= x
kϕ(n)+1
= (x
ϕ(n)
)
k
x ≡ x (mod n)
(prema Eulerovom teoremu). Ako je (n, x) = n, onda je x
de
≡ 0 ≡ x
(mod n). Ako je (n, x) = p, onda je x
de
≡ 0 ≡ x (mod p) i x
de
= (x
q−1
)
(p−1)k

x ≡ x (mod q), pa je x
de
≡ x (mod n). Sluˇcaj (n, x) = q je potpuno analo-
gan. Prema tome, zaista je x
de
≡ x (mod n), ˇsto znaˇci da je d
K
(e
K
(x)) = x.
Sigurnost RSA kriptosustava leˇzi u pretpostavci da je funkcija e
K
(x) =
x
e
mod n jednosmjerna. Dodatni podatak (trapdoor) koji omogu´cava deˇsi-
friranje je poznavanje faktorizacije n = pq. Zaista, onaj tko zna faktorizaciju
Teorija brojeva u kriptografiji 4
broja n, taj moˇze izraˇcunati ϕ(n) = (p−1)(q−1), te potom dobiti eksponent
d rjeˇsavaju´ci linearnu kongruenciju
de ≡ 1 (mod ϕ(n))
(pomo´cu Euklidovog algoritma).
Postoji i efikasan (vjerojatnosni) algoritam koji iz poznavanja tajnog
eksponenta d, raˇcuna faktorizaciju n = pq. Opiˇsimo ukratko ideju tog algo-
ritma. Za paran broj m = ed − 1 vrijedi a
m
≡ 1 (mod n) za sve m ∈ Z

n
,
tj. takve da je (m, n) = 1. Moˇze se pokazati da je a
m/2
≡ ±1 (mod n) za
barem 50% svih a ∈ Z

n
. Ako je a jedan takav broj, onda je (a
m/2
− 1, n)
netrivijalni faktor od n.
No, otvoreno pitanje je da li je razbijanje RSA kriptosustava, tj. odredi-
vanje x iz poznavanja x
e
mod n, ekvivalentno faktorizaciji od n.
Recimo sada nekoliko rijeˇci o izboru parametara u RSA kriptosustavu.
1. Izaberemo tajno dva velika prosta broja p i q sliˇcne veliˇcine (oko 100
znamenaka). To radimo tako da najprije generiramo sluˇcajan prirodan
broj m s traˇzenim brojem znamenaka, pa zatim pomo´cu nekog testa
prostosti traˇzimo prvi prosti broj ve´ci ili jednak m. (Po teoremu o
distribuciji prostih brojeva, moˇzemo oˇcekivati da ´cemo trebati testirati
pribliˇzno ln m brojeva dok ne nademo prvi prosti broj.) Treba paziti
da n = pq bude otporan na metode faktorizacije koje su vrlo efikasne
za brojeva 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 jako blizu jedan drugome, jer ih se onda
moˇze na´ci koriste´ci ˇcinjenicu da su pribliˇzno jednaki

n.
2. Izraˇcunamo n = pq i ϕ(n) = (p −1)(q −1) = n −p −q + 1.
3. Izaberemo broj e takav da je (e, ϕ(n)) = 1, te pomo´cu Euklidovog
algoritma izraˇcunamo d takav da je de ≡ 1 (mod ϕ(n)). Obiˇcno se
uzima da je e < ϕ(n). Broj e se moˇze izabrati sluˇcajno, a ima smisla
izabrati ga i ˇsto manjim, tako da bi ˇsifriranje x
e
mod n (tzv. modularno
popenciranje) bilo ˇsto brˇze. Broj operacija u ˇsifriranju ovisi o veliˇcini
broja e, te o broju jedinica u binarnom zapisu od e. Stoga je dugo
vremena e = 3 bio popularan izbor. No, vidjet ´cemo da izbor vrlo
malog eksponenta e predstavlja opasnost za sigurnost, te se danas
preporuˇca izbor e = 2
16
+ 1 = 65537.
4. Stavimo kljuˇc za ˇsifriranje (n, e) u javni direktorij.
Teorija brojeva u kriptografiji 5
Usko povezan s problemom faktorizacije je problem raˇcunanja kvadratnog
korijena u Z
n
. Neka je n = pq, gdje su p, q prosti brojevi. Za 1 ≤ a ≤ n −1
treba na´ci x ∈ Z takav da je x
2
≡ a (mod n), uz pretpostavku da takav
x postoji, tj. da je a kvadratni ostatak modulo n. Vidjet ´cemo da pos-
toji efikasan algoritam za rjeˇsavanje kongruencije x
2
≡ a (mod p). Algori-
tam je posebno jednostavan ako je p ≡ 3 (mod 4). Naime, tada je rjeˇsenje
x ≡ ±a
(p+1)/4
(mod p). Zaista, x
2
≡ a
(p+1)/2
= a
(p−1)/2
a ≡ a (mod p),
po Eulerovom kriteriju za kvadratne ostatke. Kombiniraju´ci dva rjeˇsenja
±r kongruencije x
2
≡ a (mod p) i dva rjeˇsenja ±s kongruencije x
2
≡ a
(mod q), po Kineskom teoremu o ostatcima dobivamo cetiri rjeˇsenja kon-
gruencije x
2
≡ a (mod pq).
Obrnuto, ako znamo rijeˇsiti problem kvadratnog korijena, onda znamo
rijeˇsiti i problem faktorizacije. Neka je dan sloˇzen broj n. Odaberimo sluˇcajan
broj x takav da je (x, n) = 1 (ako je (x, n) > 1, onda smo naˇsli faktor od n)
i izraˇcunajmo a = x
2
mod n. Primijenimo algoritam za problem kvadratnog
korijena na broj a. Tako dobijemo broj y. Ako je y ≡ ±x (mod n), onda
biramo novi x. Ako je y ≡ ±x (mod n), onda iz n[(x − y)(x + y) slijedi da
je (x −y, n) netrivijalni faktor od n. Kako postoje ˇcetiri kvadratna korijena
od a modulo n, to je vjerojatnost uspjeha ovog algoritma u jednom koraku
1/2, a oˇcekivani broj potrebnih koraka je dva.
Rabinov kriptosustav (Rabin, 1979.) zasnovan je na teˇsko´ci raˇcunanja
kvadratnog korijena modulo fiksni sloˇzeni broj.
ˇ
Stoviˇse, za njega vrijedi da
je njegovo razbijanje ekvivalentno rjeˇsavanju problema kvadratnog korijena,
pa je, u skladu s gore pokazanim, ekvivalentno i problemu faktorizacije. Ova
ˇcinjenica pokazuje jednu, barem teoretsku, prednost ovog kriptosustava pred
RSA kriptosustava.
Rabinov kriptosustav: Neka je n = pq, gdje su p i q prosti
brojevi takvi da je p ≡ q ≡ 3 (mod 4). Neka je { = ( = Z
n
, te
/ = ¦(n, p, q) : n = pq¦.
Za K ∈ / definiramo
e
K
(x) = x
2
mod n, d
K
(y) =

y mod n.
Vrijednost n je javna, a vrijednosti p i q su tajne.
Ovdje a =

b mod n znaˇci da je a
2
≡ b (mod n). Uvjet p ≡ q ≡ 3
(mod 4) se moˇze izostaviti. No, uz ovaj uvjet je deˇsifriranje jednostavnije i
efikasnije.
Jedan nedostatak Rabinovog kriptosustava je da funkcija e
K
nije in-
jekcija. Naime, postoje ˇcetiri kvadratna korijena modulo n, pa deˇsifriranje
Teorija brojeva u kriptografiji 6
nije mogu´ce provesti da jednoznaˇcan naˇcin (osim ako je otvoreni tekst neki
smisleni tekst, a to nije sluˇcaj kod razmjene kljuˇceva, za ˇsto se kriptosus-
tavi s javnim kljuˇcem prvenstveno koriste). Jedan naˇcin za rjeˇsavanje ovog
problema je da se u otvoreni tekst na umjetan naˇcin ubaci izvjesna pravil-
nost. To se moˇze napraviti npr. tako da se posljednja 64 bita dupliciraju
(ponove). Tada moˇzemo oˇcekivati da ´ce samo jedan od 4 kvadratna korijena
dati rezultat koji ima zadanu pravilnost.
Williams je 1980. dao jednu modifikaciju Rabinovog kriptosustava kojom
se takoder eliminira ovaj nedostatak. U toj modifikaciji se kre´ce od prostih
brojeva p, q sa svojstvom p ≡ 3 (mod 8), q ≡ 7 (mod 8). Tada je Jacobijev
simbol (
2
pq
) = −1, pa se svojstva Jacobijevog simbola mogu iskoristiti za
identifikaciju ”pravog” kvadratnog korijena.
1.3 Kriptosustavi zasnovani na problemu diskretnog
logaritma
Neka je G konaˇcna abelova grupa. Da bi bila prikladna za primjene u krip-
tografiji javnog kljuˇca, grupa G bi trebala imati svojstvo da su operacije
mnoˇzenja i potenciranja u njoj jednostavne, dok je logaritmiranje (inverzna
operacija od potenciranja) vrlo teˇsko. Takoder bi trebalo biti mogu´ce gene-
rirati sluˇcajne elemente grupe na gotovo uniforman naˇcin. Ipak, centralno
pitanje jest koliko je teˇzak tzv. problem diskretnog logaritma u grupi G.
Problem diskretnog logaritma: Neka je (G, ∗) konaˇcna grupa,
g ∈ G, H = ¦g
i
: i ≥ 0¦ podgrupa od G generirana s g, te h ∈ H.
Treba na´ci najmanji nenegativni cijeli broj x takav da je h = g
x
,
gdje je g
x
= g ∗ g ∗ ... ∗ g
. .. .
x puta
. Taj broj x se zove diskretni logaritam i
oznaˇcava se s log
g
h.
ˇ
Cinjenicu da postoje grupe u kojima je problem diskretnog logaritma
teˇzak, iskoristili su Diffie i Hellman u svom rjeˇsenju problema razmjene
kljuˇceva.
Pretpostavimo da se Alice i Bob ˇzele dogovoriti o jednom tajnom sluˇcaj-
nom elementu u grupi G, kojeg bi onda poslije mogli koristi kao kljuˇc za
ˇsifriranje u nekom simetriˇcnom kriptosustavu. Oni taj svoj dogovor moraju
provesti preko nekog nesigurnog komunikacijskog kanala, bez da su prethodno
razmjenili bilo kakvu informaciju. Jedina informacija koju imaju jest grupa
G i njezin generator g (pretpostavimo zbog jednostavnosti da je grupa G
cikliˇcka).
Slijedi opis Diffie-Hellmanovog protokola. Sa [G[ ´cemo oznaˇcavati broj
elemenata u grupi G.
Teorija brojeva u kriptografiji 7
Diffie-Hellmanov protokol za razmjenu kljuˇceva:
1. Alice generira sluˇcajan prirodan broj a ∈ ¦1, 2, ..., [G[ − 1¦.
Ona poˇsalje Bobu element g
a
.
2. Bob generira sluˇcajan prirodan broj b ∈ ¦1, 2, ..., [G[ − 1¦, te
poˇsalje Alice element g
b
.
3. Alice izraˇcuna (g
b
)
a
= g
ab
.
4. Bob izraˇcuna (g
a
)
b
= g
ab
.
Sada je njihov tajni kljuˇc K = g
ab
.
Njihov protivnik (Eve), koji moˇze prisluˇskivati njihovu komunikaciju
preko nesigurnog komunikacijskog kanala, zna sljede´ce podatke: G, g, g
a
, g
b
.
Eve treba iz ovih podataka izraˇcunati g
ab
(kaˇze se da Eve treba rijeˇsiti Diffie-
Hellmanov problem (DHP)). Ako Eve iz poznavanja g i g
a
moˇze izraˇcunati
a (tj. ako moˇze rijeˇsiti problem diskretnog logaritma (DLP)), onda i ona
moˇze pomo´cu a i g
b
izraˇcunati g
ab
. Vjeruje se da su za ve´cinu grupa koje
se koriste u kriptografiji ova dva problema, DHP i DLP, ekvivalentni (tj. da
postoje polinomijalni algoritmi koji svode jedan problem na drugi).
U originalnoj definiciji Diffie-Hellmanovog protokola za grupu G se uzima
multiplikativna grupa Z

p
svih ne-nul ostataka modulo p, gdje je p dovoljno
velik prost broj. Poznato je da je grupa Z

p
cikliˇcka. Generator ove grupe se
naziva primitivni korijen modulo p. Broj g ∈ ¦1, 2, ..., p − 1¦ je primitivni
korijen modulo p ako je g
p−1
najmanja potencija broja g koja daje ostatak
1 pri djeljenju s p.
Sada ´cemo opisati ElGamalov kriptosustav iz 1985. godine, koji zasnovan
na teˇsko´ci raˇcunanja diskretnog logaritma u u grupi (Z

p
,
p
).
Pokazuje se da je ovaj problem pribliˇzno iste teˇzine kao problem fakto-
rizacije sloˇzenog broja n (ako su p i n istog reda veliˇcine), a i neke od metoda
koje koriste u najboljim poznatim algoritmima za rjeˇsavanje tih problema
su vrlo sliˇcne.
ElGamalov kriptosustav: Neka je p prost broj i α ∈ Z

p
primi-
tivni korijen modulo p. Neka je { = Z

p
, ( = Z

p
Z

p
i
/ = ¦(p, α, a, β) : β ≡ α
a
(mod p)¦.
Vrijednosti p, α, β su javne, a vrijednost a je tajna.
Za K ∈ / i tajni sluˇcajni broj k ∈ ¦0, 1, . . . , p −1¦ definiramo
e
K
(x, k) = (α
k
mod p, xβ
k
mod p).
Za y
1
, y
2
∈ Z

p
definiramo
d
K
(y
1
, y
2
) = y
2
(y
a
1
)
−1
mod p.
Teorija brojeva u kriptografiji 8
Mogli bismo re´ci da se otvoreni tekst x ”zamaskira” mnoˇze´ci s β
k
. Onaj
tko poznaje tajni eksponent a moˇze iz α
k
izraˇcunati β
k
i ”ukloniti masku”.
Da bi eksponent a stvarno bio tajan, prost broj p mora biti dovoljno
velik da bi u Z

p
problem diskretnog logaritma bio praktiˇcki nerjeˇsiv. Stoga
se danas preporuˇca koriˇstenje prostih brojeva od oko 1024 bita. Takoder bi,
zbog razloga koje ´cemo kasnije objasniti, red grupe, tj. broj p − 1, trebao
imati barem jedan veliki prosti faktor (od barem 160 bitova).
No, nije Z

p
jedina grupa kod koje je potenciranje puno lakˇse od loga-
ritmiranja. Dapaˇce, ima grupa, poput grupe eliptiˇcke krivulje nad konaˇcnim
poljem, kod kojih je razlika u teˇzini ova dva problema (potenciranja i loga-
ritmiranja) joˇs ve´ca.
Ideju o tome da bi eliptiˇcke krivulje mogle biti korisne u konstrukciji
kriptosustava s javnim kljuˇcem prvi su javno iznijeli Koblitz i Miller 1985.
godine.
Definicija 1.2. Neka je K polje karakteristike razliˇcite od 2 i 3. Eliptiˇcka
krivulja nad poljem K je skup svih uredenih parova (x, y) ∈ K K koji
zadovoljavaju jednadˇzbu
E : y
2
= f(x) = x
3
+ax +b,
gdje su a, b ∈ K i polinom f(x) nema viˇsestrukih korijena, zajedno s ”toˇckom
u beskonaˇcnosti” koju ´cemo oznaˇcavati sa O. Taj skup oznaˇcavamo s E(K).
Vrlo sliˇcno se definira eliptiˇcka krivulja i nad poljima karakteristike 2
ili 3.
Jedno od najvaˇznijih svojstava eliptiˇckih krivulja jest da se na njima
moˇze, na prirodan naˇcin, uvesti operacija uz koju one postaju abelove grupe.
Da bi to objasnili, uzmimo da je K = R polje realnih brojeva. Tada eliptiˇcku
krivulju E(R) (bez toˇcke u beskonaˇcnosti) moˇzemo prikazati kao podskup
ravnine.
Definirat ´cemo operaciju zbrajanja na E(R). Neka su P, Q ∈ E(R).
Povucimo pravac kroz toˇcke P i Q. On sijeˇce krivulju E u tri toˇcke. Tre´cu
toˇcku oznaˇcimo s P ∗ Q. Sada definiramo da je P +Q osnosimetriˇcna toˇcka
toˇcki P∗Q s obzirom na os x. Ako je P = Q, onda umjesto sekante povlaˇcimo
tangentu kroz toˇcku P. Po definiciji stavljamo da je P + O = O + P = P
za svaki P ∈ E(R).
Pokazuje se da skup E(R) uz ovako definiranu operaciju zbrajanja postaje
abelova grupa. Oˇcito je O neutralni element, dok je −P osnosimetriˇcna toˇcka
toˇcki P u odnosu na os x. Moˇzemo zamiˇsljati da je O tre´ca toˇcka presjeka
od E s (vertikalnim) pravcem kroz P i −P. Komutativnost je takoder oˇcita,
a najteˇze je provjeriti asocijativnost.
Analitiˇcka geometrija nam omogu´cava da operaciju zbrajanja, koju smo
definirali geometrijski, zapiˇsemo pomo´cu algebarskih formula. Te formule
Teorija brojeva u kriptografiji 9
nam omogu´cavaju da definiramo zbrajanje toˇcaka na eliptiˇckoj krivulji nad
proizvoljnim poljem K (uz malu modifikaciju za sluˇcaj polja s karakteris-
tikom 2 i 3). Ponovo je skup E(K), uz tako definirano zbrajanje, abelova
grupa.
Za primjene eliptiˇckih krivulja u kriptografiji posebno je vaˇzan sluˇcaj
kada je polje K = Z
p
, ili op´cenitije kada je K konaˇcno polje. Medu konaˇcnim
poljima, pored polja Z
p
, najvaˇzija su polja karakteristike 2. O svojstvima
eliptiˇckih krivulja nad konaˇcnim poljem ´cemo kasnije govoriti opˇsirnije. Vid-
jet ´cemo takoder da eliptiˇcke krivulje imaju vaˇznu primjenu i na probleme
koje smo spominjali u prethodnom poglavlju, a to su faktorizacija i dokazi-
vanje prostosti.
Svi kriptosustavi koji u svojoj originalnoj definiciji koriste grupu Z

p
,
kao ˇsto je npr. ElGamalov, mogu se vrlo lako modificirati tako da ko-
riste grupu E(Z
p
). No, doslovno prevodenje ElGamalovog kriptosustava u
eliptiˇcke krivulje ima nekoliko nedostataka.
Prvi je da prije ˇsifriranja moramo elemente otvorenog teksta prebaciti
u toˇcke na eliptiˇckoj krivulji. Za to ne postoji zadovoljavaju´ci determin-
istiˇcki algoritam. No, postoji vjerojatnosni algoritam, koji koristi ˇcinjenicu
da kvadrati u konaˇcnom polju predstavljaju 50% svih elemenata. To znaˇci
da s pribliˇznom vjerojatnoˇs´cu 1−
1
2
k
moˇzemo oˇcekivati da ´cemo iz k pokuˇsaja
prona´ci broj x takav da je x
3
+ax +b kvadrat u Z
p
. Za k = 30 to je sasvim
zadovoljavaju´ca vjerojatnost. Pretpostavimo sada da su nam osnovne je-
Teorija brojeva u kriptografiji 10
dinice otvorenog teksta cijeli brojevi izmedu 0 i M. Pretpostavimo nadalje
da je p > Mk. Sada otvorenom tekstu m pridruˇzujemo toˇcku na eliptiˇckoj
krivulji E(Z
p
) na sljede´ci naˇcin. Za brojeve x oblika mk +j, j = 1, 2, . . . , k
provjeravamo da li je x
3
+ ax + b kvadrat u Z
p
. Kad nademo takav broj,
izraˇcunamo y koji zadovoljava da je y
2
≡ x
3
+ ax + b (mod p), te broju m
pridruˇzimo toˇcku (x, y) na E(Z
p
). Obrnuto, iz toˇcke (x, y) pripadni otvoreni
tekst m moˇzemo dobiti po formuli
m =

x −1
k
¸
.
Drugi problem je da se ˇsifrat jednog elementa otvorenog teksta kod ove
varijante ElGamalovog kriptosustava sastoji od uredenog para toˇcaka na
eliptiˇckoj krivulji. To znaˇci da, prilikom ˇsifriranja, poruka postane otprilike
4 puta dulja.
Navest ´cemo jednu varijantu ElGamalovog kriptosustava koja koristi
eliptiˇcke krivulje. Zove se Menezes-Vanstoneov kriptosustav. U njemu se
eliptiˇcke krivulje koriste samo za ”maskiranje”, dok su otvoreni tekstovi
i ˇsifrati proizvoljni uredeni parovi elemenata iz polja (a ne nuˇzno parovi koji
odgovaraju toˇckama na eliptikoj krivulji). Kod ovog kriptosustava, ˇsifrirana
poruka je (samo) 2 puta dulja od originalne poruke.
Menezes-Vanstoneov kriptosustav: Neka je E eliptiˇcka krivulja
nad Z
p
(p > 3 prost), te H cikliˇcka podgrupa od E generirana s α.
Neka je { = Z

p
Z

p
, ( = E Z

p
Z

p
i
/ = ¦(E, α, a, β) : β = aα¦,
gdje aα oznaˇcava α+α+ +α (a puta), a + je zbrajanje toˇcaka
na eliptiˇckoj krivulji.
Vrijednosti E, α, β su javne, a vrijednost a je tajna.
Za K ∈ / i tajni sluˇcajni broj k ∈ ¦0, 1, . . . , [H[ − 1¦, te za x =
(x
1
, x
2
) ∈ Z

p
Z

p
definiramo
e
K
(x, k) = (y
0
, y
1
, y
2
),
gdje je y
0
= kα, (c
1
, c
2
) = kβ, y
1
= c
1
x
1
mod p, y
2
= c
2
x
2
mod p.
Za ˇsifrat y = (y
0
, y
1
, y
2
) definiramo
d
K
(y) = (y
1
(c
1
)
−1
mod p, y
2
(c
2
)
−1
mod p),
gdje je ay
0
= (c
1
, c
2
).
Teorija brojeva u kriptografiji 11
Kao ˇsto smo ve´c spomenuli, glavni razlog za uvodenje eliptiˇckih krivulja
u kriptografiju javnog kljuˇca jest taj da je problem diskretnog logaritma u
grupi E(Z
p
) joˇs teˇzi od problema diskretnog logaritma u grupi Z

p
.
To pak znaˇci da se ista sigurnost moˇze posti´ci s manjim kljuˇcem. Tako
je npr. umjesto kljuˇca duljine duljine 1024 bita, dovoljan kljuˇc duljine 160
bitova. To je osobito vaˇzno kod onih primjena (kao ˇsto su npr. ˇcip-kartice)
kod kojih je prostor za pohranu kljuˇceva vrlo ograniˇcen.
Multiplikativna grupe konaˇcnog polja i grupa toˇcaka na eliptiˇckoj krivulji
nad konaˇcnim polje su dva najvaˇzija tipa grupa koje se koriste u kriptografiji
javnog kljuˇca. Pored njih, joˇs su dva tipa grupa prouˇcavana u ovom kontek-
stu. Prvi tip su grupe klasa ideala u imaginarnim kvadratnim poljima (ili,
ˇsto je ekvivalentno, grupe klasa pozitivno definitnih kvadratnih formi). No,
nakon ˇsto je McCurley 1989. godine pronaˇsao efikasan algoritam za problem
diskretnog logaritma u njima, interes za primjenu ovih grupa u kriptografiji
je znatno smanjen.
Drugi tip su tzv. Jacobijani hipereliptiˇckih krivulja, o kojima ˇcemo poku-
ˇsati neˇsto re´ci.
Hipereliptiˇcka krivulja genusa (roda) g nad poljem K ima jednadˇzbu
C : y
2
+h(x)y = f(x),
gdje je f normirani polinom stupnja 2g + 1, a h polinom stupnja najviˇse g.
Polinomi f i h imaju koeficijente u polju K. Ako je K karakteristike 2, onda
moˇzemo uzeti da je h = 0. Dakle, eliptiˇcke krivulje moˇzemo shvatiti kao
krivulje genusa 1. Za razliku od eliptiˇckih krivulja, na toˇckama na krivulji
genusa ve´ceg od 1, ne moˇzemo da prirodan naˇcin uvesti grupovnu strukturu.
Ipak, hipereliptiˇckim krivuljama moˇzemo pridruˇziti jednu vaˇznu grupu, tzv.
Jacobijan, koja se moˇze shvatiti kao analogon grupe toˇcaka na eliptiˇckoj
krivulji.
Jacobijan J
K
(C) krivulje C nad poljem K se moˇze opisati na viˇse naˇcina.
Mi ´cemo ovdje dati prikaz koji vodi k efikasnom algoritmu za grupovnu
operaciju. Takoder ´cemo pretpostaviti da je K karakteristike razliˇcite od 2.
Elemente grupe J
K
(C) ´cemo reprezentirati s parom (a, b) polinoma a, b ∈
K[x], takvih da je deg b < deg a ≤ g i b
2
≡ f (mod a).
Cantor-Koblitzov algoritam za zbrajanje u Jacobijanu:
Algoritam raˇcuna (a
3
, b
3
) = (a
1
, b
1
) + (a
2
, b
2
).
Dvostrukom primjenom Euklidovog algoritma izraˇcunaj
d = gcd(a
1
, a
2
, b
1
+b
2
) = s
1
a
1
+s
2
a
2
+s
3
(b
1
+b
2
)
a
3
= a
1
a
2
/d
2
b
3
= (s
1
a
1
b
2
+s
2
a
2
b
1
+s
3
(b
1
b
2
+f))/d mod a
3
while (deg a
3
> g) ¦
a
3
= (f −b
2
3
)/a
3
b
3
= −b
3
mod a
3
¦
Teorija brojeva u kriptografiji 12
Pokazuje se da je J
K
(C) uz ovako definirano zbrajanje abelova grupa.
Kao i u sluˇcaju eliptiˇckih krivulja, najteˇze je dokazati asocijativnost. Neu-
tralni element je par (1, 0).
Druga interpretacija Jacobijana je pomo´cu tzv. divizora. Divizor na
krivulji je formalna suma toˇcaka
D =
¸
P∈C(K)
n
P
P,
gdje su n
P
cijeli brojevi i svi osim konaˇcno mnogo od njih su jednaki 0.
Uz zbrajanje po komponentama, skup svih divizora postaje grupa, koju
oznaˇcavamo sa Div(C). Veza izmedu gornjeg prikaza Jacobijana i divizora
je sljede´ca. Ako su a i b polinomi kao gore, te ako su x
1
, ..., x
t
nultoˇcke od
a, onda toˇcke (x
i
, b(x
i
)) leˇze na krivulji C, pa paru (a, b) moˇzemo pridruˇziti
divizor
div(a, b) =
t
¸
i=1
(x
i
, b(x
i
)).
Ako je g = 1, onda je deg a = 1, deg b = 0, pa elemente Jacobijana eliptiˇcke
krivulje moˇzemo identificirati s toˇckama na eliptiˇckoj krivulji.
Ako za K uzmemo konaˇcno polje s q elemenata, onda je red od J
K
(C)
pribliˇzno jednak q
g
. U usporedbi s eliptiˇckim krivuljama, to znaˇci da za
manje vrijednosti od q moˇzemo dobiti grupe dovoljno velikog reda, da bi
problem diskretnog logaritma u J
K
(C) bio teˇzak. S druge strane, grupovna
operacija na eliptiˇckoj krivulji je puno jednostavnija za implementaciju, i to
je glavni razlog ˇsto da za sada u praksi ne preporuˇca primjena hipereliptiˇckih,
umjesto eliptiˇckih krivulja.
1.4 Ostali kriptostavi s javnim kljuˇcem
U ovom poglavlju ´cemo vrlo kratko spomenuti joˇs neke kriptosustave s
javnim kljuˇcem, te takoder ukratko opisati matematiˇcke probleme na ko-
jima se oni zasnivaju. Recimo odmah da se, zbog razliˇcitih razloga, ovi krip-
tosustavi u praksi upotrebljavaju puno rjede nego kriptosustavi opisani u
prethodna dva poglavlja.
Merkle-Hellmanov kriptosustav (Merkle i Hellman, 1978) za osnovu ima
tzv. problem ruksaka. Pretpostavimo da imamo n predmeta s volumenima
v
1
, v
2
, ... , v
n
s kojima ˇzelimo napuniti ruksak volumena V . Dakle, ˇzelimo
na´ci J ⊆ ¦1, 2, . . . , n¦ tako da je
¸
j∈J
v
j
= V (ako takav podskup postoji).
Ekvivalentna formulacija je:
Problem ruksaka: Za dani skup ¦v
1
, v
2
, . . . , v
n
¦ od n prirodnih
brojeva i prirodan broj V , na´ci niz m = (ε
1
, ε
2
, . . . , ε
n
) od n binarnih
znamenaka (ε
i
∈ ¦0, 1¦) tako da je
ε
1
v
1

2
v
2
+ +ε
n
v
n
= V,
Teorija brojeva u kriptografiji 13
ako takav m postoji.
Poznato je da je ovaj op´ci problem ruksaka vrlo teˇzak. On spada u tzv.
NP-potpune probleme. To, pored ostalog, znaˇci da nije poznat polinomijalni
algoritam za njegovo rjeˇsavanje. Medutim, jedan njegov specijalni sluˇcaj,
tzv. superrastu´ci problem ruksaka, je puno lakˇsi. To je sluˇcaj kad je niz v
1
,
v
2
, ... , v
n
rastu´ci i vrijedi
v
j
> v
1
+v
2
+ v
j−1
za j = 2, 3, ..., n.
Primjer superrastu´ceg niza je niz v
i
= 2
i−1
. Jasno je da u sluˇcaju super-
rastu´ceg niza, u svakom koraku u ruksak moramo staviti najve´ci predmet
koji u njega stane. To vodi do sljede´ceg algoritma:
Algoritam za superrastu´ci problem ruksaka:
for (n ≥ i ≥ 1) ¦
if (V ≥ v
i
) then V = V −v
i
; ε
i
= 1
else ε
i
= 0 ¦
if (V = 0) then (ε
1
, . . . , ε
n
) je rjeˇsenje
else nema rjeˇsenja
Ideja Merkle-Hellmanovog kriptosustava je ”zamaskirati” superrastu´ci
niz tako da izgleda kao sasvim sluˇcajan niz. Onaj kome je poruka namjen-
jena (Bob) zna kako ukloniti masku, pa moˇze proˇcitati poruku rjeˇsavaju´ci
supperrastu´ci problem ruksaka. Svi drugi moraju rjeˇsavati, puno teˇzi, op´ci
problem ruksaka, pa ne mogu proˇcitati poruku. ”Maskiranje” se provodi
pomo´cu modularnog mnoˇzenja.
Merkle-Hellmanov kriptosustav: Neka je v = (v
1
, v
2
, . . . , v
n
)
superrastu´ci niz prirodnih brojeva, te neka je p > v
1
+v
2
+ +v
n
prost broj i 1 ≤ a ≤ p −1. Za i = 1, 2, . . . n, definiramo
t
i
= av
i
mod p
i oznaˇcimo t = (t
1
, t
2
, . . . , t
n
). Neka je
{ = ¦0, 1¦
n
, ( = ¦0, 1, . . . , n(p −1)¦ i / = ¦(v, p, a, t)¦,
gdje su v, p, a i t konstruirani na gore opisani naˇcin.
Za K ∈ / definiramo
e
K
(x
1
, x
2
, . . . , x
n
) = x
1
t
1
+x
2
t
2
+ +x
n
t
n
.
Za 0 ≤ y ≤ n(p −1) definiramo z = a
−1
y mod p, rijeˇsimo (super-
rastu´ci) problem ruksaka za skup ¦v
1
, v
2
, . . . , v
n
, z¦ i tako dobivamo
d
K
(y) = (x
1
, x
2
, . . . , x
n
).
Vrijednost t je javna, dok su vrijednosti p, a i v tajne.
Teorija brojeva u kriptografiji 14
Merkle-Hellmanov kriptosustav je imao jednu vrlo veliku prednost u
odnosu na ostale kriptosustave s javnim kljuˇcem. Naime, ˇsifranje pomo´cu
njega je znatno brˇze, te je on po brzini bio usporediv s najboljim simetriˇcnim
kriptosustavima. No, godine 1982. je usljedilo razoˇcaranje, kad je Shamir
pronaˇsao polinomijalni algoritam za razbijanje Merkle-Hellmanovog kripto-
sustava. Pokazalo se da se ovako jednostavnim maskiranjem vrlo specijanog
niza ipak ne dobiva sasvim sluˇcajan niz. U razbijanju se koriste algoritmi
za diofantske aproksimacije (veriˇzni razlomci i LLL-algoritam) koje ´cemo
kasnije detaljno opisati. Prema tome, ovaj sustav se ne moˇze viˇse smatrati
sigurnim kriptosustavom. Ipak, ideja na kojoj je zasnovan je vrlo zanimljiva.
Ta ideja je koriˇstenje u deˇsifriranju nekog jednostavnog specijalnog sluˇcaja
nekog teˇskog (NP-potpunog) problema, s time da se taj specijalni sluˇcaj
prikrije tako da izgleda kao op´ci.
Ova ideja se koristi i u McElieceovom kriptosustavu (McEliece, 1978).
Ovdje je pripadni NP-potpuni problem dekodiranje op´cih linearnih kodova
za ispravljanje greˇsaka. Kao osnova u ovom kriptosustavu koristi se speci-
jalna klasa tzv. Goppa kodova za koje postoji polinomijalni algoritam za
dekodiranje.
Neka su k i n prirodni brojevi, k ≤ n. Linearni [n, k]-kod je k-dimenzional-
ni potprostor od Z
n
2
. Generiraju´ca matrica za linearni kod C je kn matrica
G ˇciji redci tvore bazu za C.
Za x = (x
1
, . . . , x
n
), y = (y
1
, . . . , y
n
) ∈ Z
n
2
, definiramo Hammingovu
udaljenost sa
d(x, y) = [¦i : 1 ≤ i ≤ n, x
i
= y
i
¦[,
tj. kao broj koordinata u kojima se x i y razlikuju. Neka je C neki linearni
[n, k]-kod. Definiramo udaljenost od C sa
d(C) = min¦d(x, y) : x, y ∈ C, x = y¦.
Tada za C kaˇzemo da je [n, k, d]-kod.
Primjer jednog [7, 4, 3]-koda dan je sljede´com matricom:
G =

¸
¸
¸
1 0 0 0 1 1 0
0 1 0 0 1 0 1
0 0 1 0 0 1 1
0 0 0 1 1 1 1
¸

Svrha kodova za ispravljanje greˇsaka jest da isprave sluˇcajne greˇske
koje mogu nastati prilikom prenoˇsenja binarnih podataka preko kanala sa
”ˇsumom”. Neka je G generiraju´ca matrica za [n, k, d]-kod C. Pretpostavimo
da je x binarna k-torka koju Alice ˇzeli prenijeti Bobu preko kanala sa ˇsumom.
Tada Alice kodira x kao n-torku y = xG, te poˇsalje y preko kanala. Bob primi
n-torku r koja se, budu´ci da kanal ima ˇsum, ne mora podudarati sa y. Da
Teorija brojeva u kriptografiji 15
bi dekodirao r, Bob traˇzi element (”kodnu rijeˇc”) y

∈ C koja ima najmanju
Hammingovu udaljenost od r, te potom izraˇcuna k-torku x

takvu da je
y

= x

G. Tada Bob moˇze oˇcekivati da je y

= y, pa onda i x

= x, tj. da
je uspio ispraviti sve greˇske nastale prilikom prijenosa. Nije teˇsko vidjeti da
ukoliko broj greˇsaka nije ve´ci od (d − 1)/2, onda se na ovaj naˇcin mogu
ispraviti sve greˇske.
Pokazuje se da je problem nalaˇzenja najbliˇze kodne rijeˇci vrlo teˇzak prob-
lem za op´ce linearne kodove. No, postoje kodovi za koje postoje efikasni al-
goritmi za dekodiranje. McEliece je 1978 predlozio da se jedna klasa takvih
kodova, tzv. Goppa kodovi, iskoriste u konstrukciji kriptosustava s javnim
kljuˇcem. Parametri Goppa kodova imaju oblik
n = 2
m
, d = 2t + 1, k = n −mt.
McEliece je predloˇzio koriˇstenje Goppa kodova s parametrima [1024, 524, 101].
Otvoreni tekst je binarna 524-torka, a odgovaraju´ci ˇsifrat je binarna 1024-
torka. Javni kljuˇc je 524 1024 binarna matrica. Do danas nije poznat niti
jedan efikasan napad na McEliecov kriptosustav. Medutim, ovaj kriptosus-
tav nije koriˇsten u praksi, prvenstveno zbog ogromne veliˇcine javnog kljuˇca.
Jedan od najzanimljivijih novijih kriptosustava, koji je joˇs uvijek pred-
met intenzivnog prouˇcavanja, je NTRU kriptosustav, koji su 1997. godine
predloˇzili Hoffstein, Pipher i Silverman. (Skra´cenica NTRU dolazi od ”Num-
ber Theory Research Unit”). U ovom se kriptosustavu kod ˇsifriranja ko-
riste polinomi, preciznije koristi se prsten R = Z[X]/(X
n
− 1). Na elemen-
tima od R definira se operacija cikliˇcke konvolucije, tj. za F =
¸
n−1
i=0
F
i
x
i
,
G =
¸
n−1
i=0
G
i
x
i
, definira se H = F G sa
H
k
=
¸
i+j≡k (mod n)
F
i
G
j
.
Pored toga koristi se redukcija ovako dobivenih polinoma modulo dva rela-
tivno prosta broja p i q. Sigurnost ovog kriptosustava se upravo zasniva na
”nezavisnosti” te dvije redukcije.
ˇ
Sifriranje i deˇsifriranje kod NTRU kriptosustava je znatno brˇze nego
kod npr. RSA kriptosustava, ˇsto svakako predstavlja jednu njegovu poten-
cijalnu prednost. No, poznato je nekoliko mogu´cih napada na NTRU koji
koriste LLL-algoritam za nalaˇzenje najkra´ceg elementa u reˇsetki. Za sada
nije sasvim jasno koliko su ti napadi ozbiljna prijetnja na sigurnost ovog
kriptosustava. Svakako ´ce na to pitanje trebati dati odgovor, prije nego ˇsto
dode do eventualnog ulaska ovog kriptosustava u najˇsiru uporabu.
Poglavlje 2
Osnovni algoritmi u teoriji
brojeva
2.1 Sloˇzenost algoritama
Do sada smo viˇse puta za odredene matematiˇcke probleme govorili da su
”laki” ili ”teˇski”. Da bi mogli formalizirati te vrlo neformalne tvrdnje, tre-
bamo imati naˇcin za usporedbu efikasnosti razliˇcitih algoritama.
Pod algoritmom smatramo metodu (proceduru) za rjeˇsavanje neke klase
problema, koja za ulazne podatke odredenog tipa daje odgovor (izlazne po-
datke) u konaˇcnom vremenu.
Algoritme ´cemo usporedivati s obzirom na broj ”osnovnih koraka” potreb-
nih za njihovo izvrˇsavanje, te ponekad i s obzirom na potreban prostor (me-
moriju). Pod osnovnim korakom podrazumjevamo jednu ”bitnu operaciju”,
tj. logiˇcku operaciju disjunkcije, konjukcije ili negacije na bitovima - nulama
i jedinicama. Veliˇcinu ulaznih podataka ´cemo mjeriti brojem bitova potreb-
nih za njihov prikaz. Na primjer, veliˇcina prirodnog broja N je log
2
N| +1.
ˇ
Cesto je teˇsko, pa i nemogu´ce, izvesti egzaktnu formulu za broj operacija
nekog algoritma. Zato prouˇcavamo asimptotsko ponaˇsanje broja operacija
kad veliˇcina ulaznih podataka neograniˇceno raste. Pritom koristimo sljede´cu
notaciju.
Definicija 2.1. Neka su f, g :→ R dvije funkcije. Tada piˇsemo:
(1) f(n) = O(g(n)) ako postoje B, C > 0 tako da je [f(n)[ ≤ C[g(n)[
za sve n > B;
(2) f(n) ∼ g(n) ako je lim
n→∞
f(n)
g(n)
= 1;
(3) f(n) = o(g(n)) ako je lim
n→∞
f(n)
g(n)
= 0.
Kod ocjene broja operacija, razlikujemo ocjene za
16
Teorija brojeva u kriptografiji 17
• broj operacija u najloˇsijem sluˇcaju (za proizvoljan input) - to ´cemo
zvati sloˇzenost algoritma;
• prosjeˇcan broj operacija (prosjek za sve inpute fiksne duljine) - to ´cemo
zvati prosjeˇcna sloˇzenost algoritma.
Definicija 2.2. Polinomijalan algoritam je algoritam ˇciji je broj operacija
u najloˇsijem sluˇcaju funkcija oblika O(n
k
), gdje je n duljina ulaznog podatka
(u bitovima), a k je konstanta. Algoritme koji nisu polinomijalni, zovemo
eksponencijalni.
ˇ
Cesto za polinomijalne algoritme kaˇzemo da su ”dobri” ili ”efikasni”, dok
za eksponencijalne algoritme kaˇzemo da su ”neefikasni”. Ipak, kod praktiˇcnih
primjena (npr. u kriptografiji) treba imati u vidu da je stupanj polinoma
(konstanta k) jako vaˇzan. Na primjer, iako je algoritam sloˇzenosti O(n
ln lnn
)
asimptotski sporiji od algoritma sloˇzenosti O(n
100
), za praktiˇcne vrijednosti
od n onaj prvi algoritam ´ce biti brˇzi. Pored toga, kod primjena u kriptografiji
ˇcesto je vaˇzniji prosjeˇcan broj operacija od broja operacija u najloˇsijem
sluˇcaju. Naime, ˇzelimo da nam kriptosustav bude zasnovan na problemu
koji je teˇzak u prosjeˇcnom sluˇcaju (ili, joˇs bolje, u svakom sluˇcaju), a ne
samo u nekim izoliranim sluˇcajevima.
Definicija 2.3. Subeksponencijalni algoritam je algoritam ˇcija je sloˇzenost
funkcija oblika O(e
o(n)
), gdje je n duljina ulaznog podatka.
Najbolji poznati algoritmi za faktorizaciju prirodnog broja N su subek-
sponencijalni i njihova sloˇzenost je funkcija oblika
L
N
(v, c) = O

e
c(ln N)
v
(ln ln N)
1−v

za v =
1
2
ili v =
1
3
. Uoˇcimo da za v = 0 imamo L
N
(0, c) = O((ln N)
c
),
dok za v = 1 imamo L
N
(1, c) = O(N
c
). Dakle, subeksponencijalni algoritmi
koji odgovaraju vrijednostima v, 0 < v < 1, su asimptotski sporiji od poli-
nomijalnih, ali su brˇzi od totalno eksponencijalnih, tj. onih ˇcija je sloˇzenost
funkcija oblika O(e
n
k
).
Do sada smo promatrali algoritme i dijelili ih ugrubo na efikasne i neefika-
sne. Sada bi htjeli same probleme koje rjeˇsavaju ti algoritmi podijeliti (opet
ugrubo) na lake i teˇske. Zbog jednostavnosti, promatrat ´cemo takozvane
probleme odluke, tj. probleme na koje je odgovor DA ili NE.
Definicija 2.4. Klasa sloˇzenosti P se sastoji od svih problema odluke
za koje postoji polinomijalni algoritam. Klasa sloˇzenosti NP se sastoji od
svih problema odluke za koje se odgovor DA moˇze provjeriti u polinomijal-
nom vremenu koriˇstenjem neke dodatne informacije, tzv. certifikata. Klasa
sloˇzenosti co-NP se definira na isti naˇcin za odgovor NE.
Teorija brojeva u kriptografiji 18
Primjer 2.1. Neka je n prirodan broj. Promotrimo sljede´ci problem odluke:
”Je li broj n sloˇzen?”
Vidjet ´cemo kasnije da je pitanje pripada li ovaj problem klasi P vrlo
teˇsko i zanimljivo pitanje. No, vrlo lako se vidi da ovaj problem pripada klasi
NP. Zaista, certifikat je u ovom sluˇcaju bilo koji netrivijalni djeljitelj od n.
To takoder pokazuje da problem odluke ”Je li broj n prost?” pripada
klasi co-NP.
Jasno je vrijedi P ⊆ NP i P ⊆ co-NP. Op´ce prihva´cena slutnja je da
vrijedi P = NP. To se smatra jednim od najvaˇzijih nerjeˇsenih matematiˇckih
problema i spada medu sedam tzv. Millenium Prize Problems.
Definicija 2.5. Neka su L
1
i L
2
dva problema odluke. Kaˇzemo da se L
1
moˇze u polinomijalnom vremenu reducirati na L
2
, i piˇsemo L
1

P
L
2
, ako
postoji polinomijalni algoritam za rjeˇsavanje L
1
koji koristi kao potprogram
(oracle) algoritam za rjeˇsavanje problema L
2
, pri ˇcemu je broj poziva tog
potprograma takoder polinomijalan.
Neformalno reˇceno, ako je L
1

P
L
2
, onda L
1
nije bitno teˇzi od L
2
.
Primjer 2.2. Neka je L
1
= ”Za polinom p(x) s cjelobrojnim koeficijen-
tima, postoji li interval na kojem p(x) pada?”, L
2
= ”Za polinom q(x) s
cjelobrojnim koeficijentima, postoji li interval na kojem je q(x) negativan?”.
Tada je L
1

P
L
2
. Zaista, dovoljno je izraˇcunati q(x) = p

(x) i na q(x)
primjeniti potpogram za L
2
.
Primjer 2.3. Neka je L
1
= ”Na´ci netrivijalan faktor M prirodnog broja
N ili zakljuˇciti da takav faktor ne postoji.”, L
2
= ”Ima li prirodan broj N
faktor M takav da je 2 ≤ M ≤ k?”.
Pokazat ´cemo da je L
1

P
L
2
i L
2

P
L
1
, tj. da su ovi problemi
(raˇcunski) ekvivalentni. Uoˇcimo da je L
2
problem odluke, dok L
1
to nije.
Rjeˇsenje: Pokaˇzimo najprije da je L
2

P
L
1
. Primjenimo algoritam
za L
1
na broj N. Tako dobijemo faktor M. Potom ponovo primjenimo isti
algoritam na brojeve M i N/M, itd. sve dok N ne prikaˇzemo kao produkt
prostih brojeva. Pogledamo je li najmanji prosti faktor od N manji ili jednak
k i rijeˇsimo problem L
2
.
Pokaˇzimo sada da je L
1

P
L
2
. Na´ci ´cemo faktor od N bit po bit,
krenuvˇsi od vode´ceg bita, pomo´cu tzv. binarnog pretraˇzivanja. Neka je n
broj bitova od N. Najprije primjenimo algoritam L
2
za k = 2
n−1
−1. Ako je
odgovor NE, onda znamo da je N prost i problem je rijeˇsen. Ako je odgovor
DA, onda primjenimo algoritam L
2
za k = 2
n−2
− 1. Ako je odgovor NE,
onda N ima faktor oblika 1 2
n−2
+ ε
n−3
2
n−3
+ ε
0
, a ako je odgovor DA,
onda N ima faktor oblika 0 2
n−2

n−3
2
n−3

0
. Da bi odredili sljede´ci
bit, primijenimo L
2
za 2
n−2
+ 2
n−3
− 1 ako je odgovor bio NE, odnosno
2
n−3
−1 ako je odgovor bio DA. Ako sada odgovor bude NE, onda uzimamo
Teorija brojeva u kriptografiji 19
ε
n−3
= 1, dok u protivnom uzimamo ε
n−3
= 0. Nastavljaju´ci ovaj postupak,
u n poziva algoritma L
2
nalazimo netrivijalni faktor od N.
Ilustrirajmo gornji dokaz na konkretnom primjeru N = 91. U pozivima
algoritma za L
2
, pitamo se redom: Ima li 91 faktor izmedu 2 i 63 (DA),
izmedu 2 i 31 (DA), izmedu 2 i 15 (DA), izmedu 2 i 7 (DA), izmedu 2 i 3
(NE), izmedu 2 i 5 (NE), izmedu 2 i 6 (NE). Zakljuˇcujemo da je broj 91 ima
faktor ˇciji je binarni zapis 000111, tj. da je 7 faktor od 91.
Definicija 2.6. Problem odluke L je NP-potpun ako je L ∈ NP i L
1

P
L
za svaki L
1
∈ NP. Klasa svih NP-potpunih problema oznaˇcava se s NPC.
Moˇzemo re´ci da su NP-potpuni problemi najteˇzi problemi u klasi NP.
Jedan primjer NP-potpunog problema je problem ruksaka koji smo ve´c
ranije susreli. Drugi primjer je problem trgovaˇckog putnika koji treba na´ci
najkra´cu rutu koja prolazi kroz sve gradove na njegovoj karti. Primjer NP-
potpunog problema je takoder i bojanje geografske karte s tri boje.
Postojanje polinomijalnog algoritma za bilo koji od NP-potpunih prob-
lema povlaˇcilo bi da vrijedi P = NP. Kao ˇsto ve´c napomenuli, vjeruje se
ta ova jednakost ne vrijedi, pa je stoga i postojanje takvog polinomijalnog
algoritma jako malo vjerojatno.
Hipotetski, odnos promatranih klasa izgleda ovako:
Do sada promatrani algoritmi su bili deterministiˇcki, ˇsto znaˇci da za isti
input uvijek slijede isti niz operacija. Za razliku od njih, tzv. randomizirani
(vjerojatnosni) algoritmi prilikom izvodenja rade neke sluˇcajne izbore.
Definicija 2.7. Kaˇzemo da je problem odluke L rjeˇsiv u vjerojatnosno
(randomizirano) polinomijanom vremenu, i piˇsemo L ∈ RP, ako postoji
polinomijalni algoritam koji ukljuˇcuje sluˇcajan izbor jednog ili viˇse cijelih
brojeva, i ovisno o tom izboru, daje odgovor DA ili NE, s time da je odogovor
DA sigurno toˇcan, dok je odgovor NE toˇcan s vjerojatnoˇs´cu barem 1/2.
Ako je L ∈ RP, onda uzimaju´ci k nezavisnih iteracija dobivamo algori-
tam za koga je odgovor NE toˇcan s vjerojatnoˇs´cu ve´com od 1 −2
−k
.
Teorija brojeva u kriptografiji 20
2.2 Mnoˇzenje prirodnih brojeva
Prije prouˇcavanja algoritama iz teorije brojeva, recimo neˇsto o sloˇzenosti
osnovnih raˇcunskih operacija s prirodnim brojevima.
Iz same definicije bitnih operacija, jasno je da se zbrajanje i oduzimanje
dvaju prirodnih brojeva x i y takvih da je x, y ≤ N moˇze obaviti u O(ln N)
bitnih operacija. Neka su x = (x
n
, . . . , x
1
, x
0
)
b
i y = (y
n
, . . . , y
1
, y
0
)
b
dva
prirodna broja zapisana u bazi b. Tada prikaz broja x +y = (w
n+1
, w
n
, . . . ,
w
1
, w
0
)
b
u bazi b raˇcunamo na sljede´ci naˇcin (oduzimanje je vrlo sliˇcno):
Algoritam za zbrajanje:
c = 0
for (0 ≤ i ≤ n) ¦
if (x
i
+y
i
+c < b) then w
i
= x
i
+y
i
+c; c = 0
else w
i
= x
i
+y
i
+c; c = 1 ¦
w
n+1
= c
Algoritmi za ”ˇskolsko” (ili ”naivno”) mnoˇzenje i dijeljenje imaju sloˇzenost
O(ln
2
N). Podsjetimo se tih algoritama. Neka je x = (x
n
, . . . , x
0
)
b
, y =
(y
t
, . . . , y
0
)
b
.
ˇ
Zelimo izraˇcunati x y = (w
n+t+1
, . . . , w
0
)
b
.
Algoritam za ”ˇskolsko” mnoˇzenje:
for (0 ≤ i ≤ n +t + 1) w
i
= 0
for (0 ≤ i ≤ t) ¦
c = 0
for (0 ≤ i ≤ t) ¦
(uv)
b
= w
i+j
+x
j
y
i
+c; w
i+j
= v; c = u ¦
w
n+t+1
= u ¦
Neka su x i y kao gore i pretpostavimo da je n ≥ t ≥ 1.
ˇ
Zelimo na´ci
kvocijent q = (q
n−t
, . . . , q
0
)
b
i ostatak r = (r
t
, . . . , r
0
)
b
pri dijeljenju broja x
s y, tj. brojeve q i r koji zadovoljavaju x = qy +r, 0 ≤ r < y.
Algoritam za dijeljenje s ostatkom:
for (0 ≤ i ≤ n −t) q
j
= 0
while (x ≥ yb
n−t
) q
n−t
= q
n−t
+ 1; x = x −yb
n−t
for (n ≥ i ≥ t −1) ¦
if (x
i
= y
t
) then q
i−t−1
= b −1
else q
i−t−1
= (x
i
b +x
i−1
)/y
t
|
while (q
i−t−1
(y
t
b +y
t−1
) > x
i
b
2
+x
i−1
b +x
i−2
)
q
i−t−1
= q
i−t−1
−1
x = x −q
i−t−1
yb
i−t−1
if (x < 0) x = x +yb
i−t−1
; q
i−t−1
= q
i−t−1
−1 ¦
r = x
Teorija brojeva u kriptografiji 21
Za razliku od zbrajanja i oduzimanja, kod mnoˇzenja i dijeljenja pos-
toje algoritmi koji su, barem teoretski, puno efikasniji od gore navedenih
”ˇskolskih” algoritama. Najbolji poznati algoritmi za mnoˇzenje i zbrajanje
imaju sloˇzenost
O(ln N(ln ln N)(ln ln ln N))
(Sch¨onhage-Strassenov algoritam iz 1971. godine). Uoˇcimo da je
ln N(ln ln N)(ln ln ln N) = O((ln N)
1+ε
) za svaki ε > 0.
Dakle, moˇzda pomalo i iznenaduju´ce, mnoˇzenje je tek neznatno sloˇzenije od
zbrajanja. No, to je ipak teoretski zakljuˇcak koji ignorira ogromnu konstantu
koja se krije iza ”velikog O”. Ti (teoretski) najbolji poznati algoritmi koriste
brzu Fourierovu transformaciju (FFT). Njihova primjena je od praktiˇcne
vaˇznosti tek za brojeve od nekoliko tisu´ca znamenaka. No, postoje algoritmi
koji su bolji od ”ˇskolskog”, a koji imaju praktiˇcnu vaˇznost za brojeve od
stotinjak znamenaka, kakvi se danas uglavnom rabe u kriptografiji.
Opisat ´cemo tzv. Karacubinu metodu (iz 1962. godine) za mnoˇzenje
prirodnih brojeva.
Neka su x = (x
2n−1
, . . . , x
1
, x
0
)
2
i y = (y
2n−1
, . . . , y
1
, y
0
)
2
dva 2n-bitna
prirodna broja. Zapiˇsimo ih u obliku
x = 2
n
u
1
+u
0
, y = 2
n
v
1
+v
0
(u
1
i v
1
su ”lijeve polovice”, a u
0
i v
0
”desne polovice” od x, odnosno y).
Sada je
x y = 2
2n
u
1
v
1
+ 2
n
(u
1
v
0
+u
0
v
1
) +u
0
v
0
.
Za sada nemamo nikakvu prednost od ovakvog zapisa – umjesto jednog pro-
dukta 2n-bitnih brojeva, trebamo izraˇcunati ˇcetiri produkta n-bitnih bro-
jeva. Medutim, i to je glavna poanta Karacubine metode, u stvari je dovoljno
izraˇcunati samo 3 produkta, jer vrijedi
u
1
v
0
+u
0
v
1
= u
1
v
1
+u
0
v
0
−(u
1
−u
0
)(v
1
−v
0
).
Dakle,
x y = (2
2n
+ 2
n
)u
1
v
1
+ 2
n
(u
1
−u
0
)(v
0
−v
1
) + (2
n
+ 1)u
0
v
0
.
Ovaj proces sada moˇzemo nastaviti rekurzivno, tj. tri nova produkta moˇzemo
raˇcunati na isti naˇcin, tako da svaki faktor rastavimo na dva dijela podjed-
nake veliˇcine.
Postavlja se pitanje koliko je ovakav algoritam efikasniji od ”naivnog”
mnoˇzenja. Oznaˇcimo s T(n) broj bitnih operacija potrebnih za mnoˇzenje
dvaju n-bitnih brojeva Karacubinom metodom. Tada vrijedi
T(2n) ≤ T(n) +cn (2.1)
Teorija brojeva u kriptografiji 22
za neku konstantu c. Iz (2.1) slijedi da, uz dovoljno veliku konstantu C,
vrijedi
T(2
k
) ≤ C(3
k
−2
k
), (2.2)
za k ≥ 1. Zaista, neka je konstanta C ≥ c odabrana tako da (2.2) vrijedi
k = 1, te pretpostavimo da (2.2) vrijedi za neki k ∈ N. Tada imamo:
T(2
k+1
) ≤ 3T(2
k
) +c 2
k
≤ C 3
k+1
−3C 2
k
+c 2
k
≤ C(3
k+1
−2
k+1
),
pa tvrdnja vrijedi po principu matematiˇcke indukcije. Sada je
T(n) ≤ T(2
log
2
n
) ≤ C

3
log
2
n
−2
log
2
n

< 3C 3
log
2
n
= 3Cn
log
2
3
.
Stoga je sloˇzenost Karacubinog algoritma O(n
log
2
3
), tj. brojevi x, y ≤ N se
mogu pomnoˇziti uz O((ln N)
log
2
3
) bitnih operacija. U usporedbi s ”naivnim”
mnoˇzenjem, umjesto (ln N)
2
imamo pribliˇzno (ln N)
1.585
.
2.3 Modularno mnoˇzenje i potenciranje
U ve´cini kriptosustava s javnim kljuˇcem, ˇsifriranje i deˇsifriranje je opisano
pomo´cu operacija u prstenu Z
m
, za neki veliki prirodni broj m. Zbrajanje u
Z
m
je vrlo jednostavno. Naime, za x, y ∈ Z
m
, shvatimo x i y kao nenegativne
cijele brojeve manje od n, i tada je
x +
m
y =

x +y ako je x +y < m,
x +y −m ako je x +y ≥ m.
S druge strane, mnoˇzenje u Z
m
nije tako jednostavno. Posebno, ono je
bitno kompliciranije od obiˇcnog mnoˇzenja prirodnih brojeva, zato ˇsto pored
mnoˇzenja ukljuˇcuje i (netrivijalnu) modularnu redukciju.
Direktna metoda za raˇcunanje produkta x
m
y u Z
m
je da, pomo´cu algori-
tama iz prethodnog poglavlja, izraˇcunamo najprije xy, a potom izraˇcunamo
ostatak r pri djeljenju x y s m. Tada je x
m
y = r.
Postoji nekoliko poboljˇsanja ove metode. Opisat ´cemo tzv. Montgomery-
jevu redukciju (iz 1985. godine) ˇcija je glavna ideja izbjegavanje klasiˇcne
modularne redukcije (tj. dijeljenja).
Neka su m, R i T prirodni brojevi takvi da je R > m, (m, R) = 1 i
0 ≤ T < mR. Ako je m prikazan u bazi b i ima u tom prikazu n znamenaka,
onda se obiˇcno uzima R = b
n
. Pokazat ´cemo da se TR
−1
mod m moˇze
izraˇcunati bez klasiˇcnog dijeljenja. Preciznije, dijeljenje s m zamjenjuje se
puno jednostavnijim dijeljenjem s R, koje je zapravo jednostavni pomak za
n znamenaka.
Lema 2.1. Neka je m

= −m
−1
mod R, te U = Tm

mod R. Tada je V =
(T +Um)/R cijeli broj i V ≡ TR
−1
(mod m). Nadalje, TR
−1
mod m = V
ili TR
−1
mod m = V −m.
Teorija brojeva u kriptografiji 23
Dokaz: Iz definicije brojeva m

i U slijedi da postoje k, l ∈ Z
m
takvi da
je mm

= −1 +kR, U = Tm

+lR. Sada je
T +Um
R
=
T +Tmm

+lRm
R
=
T +T(−1 +kR) +lRm
R
= kT +lm ∈ Z.
Oˇcito je V ≡ (T + Um)R
−1
≡ TR
−1
(mod m). Konaˇcno, iz T < mR i
U < R slijedi 0 ≤ V < (mR + mR)/R = 2m, pa iz V ≡ TR
−1
(mod m)
slijedi V −(TR
−1
mod m) = 0 ili m.
Izraz TR
−1
mod m zove se Montgomeryjeva redukcija od T modulo m u
odnosu na R, dok se xR mod m naziva Montgomeryjev prikaz od x. Mon-
gomeryjev produkt brojeva x i y je broj Mont(x, y) = xyR
−1
mod m. Ovo je
dobro definirano, jer je xy < m
2
< mR. Vrijedi:
Mont(xR mod m, yR mod m) = (xR)(yR)R
−1
= xyR mod m.
Dakle, za brojeve u Montgomeryjevom prikazu, modularno mnoˇzenje se
moˇze provesti bez modularne redukcije modulo m. Naravno, modularnu re-
dukciju trebamo da bi uop´ce dobili Montgomeryjev prikaz. No, ukoliko viˇse
puta koristimo jedan te isti broj, kao ˇsto je sluˇcaj kod potenciranja, Mont-
gomeryjeva metoda je znatno efikasnija od obiˇcne modularne redukcije.
Jedna od mogu´cnosti za pojednostavljenje modularne redukcije je izbor
modula specijalnog oblika. Tu se ponovo koristi ˇcinjenica da je dijeljenje
s brojevima oblika b
n
vrlo jednostavno. Zato se (ako je to u konkretnoj
situaciji mogu´ce) biraju moduli oblika m = b
n
− a, gdje je a mali prirodni
broj. Tada se x mod m moˇze izraˇcunati pomo´cu ovog algoritma:
q
0
= x/b
n
|; r
0
= x −q
0
b
n
; r = r
0
; i = 0
while (q
i
> 0) ¦
q
i+1
= q
i
a/b
n
|; r
i+1
= q
i
a −q
i+1
b
n
;
i = i + 1; r = r +r
i
¦
while (r ≥ p) r = r −p
U najpopularnijim kriptosustavima s javnim kljuˇcem (RSA, ElGamal)
ˇsifriranje se provodi pomo´cu modularnog potenciranja, tj. funkcije oblika
x
n
mod m.
ˇ
Stoviˇse, ˇcinjenica da se takva funkcija moˇze puno efikasnije izra-
ˇcunati od njezinog inverza predstavlja osnovu za koriˇstenje problema diskretnog
logaritma u kriptografiji.
Modularno potenciranje predstavlja specijalni sluˇcaj potenciranja u abe-
lovim grupama. Stoga ´cemo re´ci neˇsto o op´cim metodama za raˇcunanje
potencije x
n
u abelovoj grupi G. Naravno, trivijalni algoritam u kojem bi
x
n
izraˇcunali kao x x x pomo´cu n −1 mnoˇzenja vrlo je neefikasan.
Teorija brojeva u kriptografiji 24
Najjednostavnija i najstarija medu efikasnim metodama je tzv. binarna
metoda ili metoda uzastopnog kvadriranja (joˇs se naziva i metoda ”kvadriraj
i mnoˇzi” ili ”binarne ljestve”) koja koristi binarni zapis broja n. Recimo da
ˇzelimo izraˇcunati x
13
. Binarni zapis od 13 je (1 1 0 1)
2
. Sada x
13
moˇzemo
izraˇcunati kao
x
13
= x (x
2
)
2
((x
2
)
2
)
2
.
Mogli bi re´ci da smo binarni zapis ˇcitali s desna na lijevo. Ako isti zapis
proˇcitamo s lijeva na desno, onda imamo
x
13
= x ((x x
2
)
2
)
2
.
Dakle, imamo sljede´ca dva algoritma za raˇcunanje z = x
n
, gdje je n =
(n
d
, . . . , n
0
)
2
.
Binarna metoda (s desna na lijevo):
z = 1; y = x
for (0 ≤ i ≤ d −1) ¦
if (n
i
= 1) then z = z y
y = y
2
¦
z = z y
Binarna metoda (s lijeva na desno):
z = x
for (d −1 ≥ i ≥ 0) ¦
z = z
2
if (n
i
= 1) then z = x z ¦
Obje varijante binarne metode imaju isti broj operacija: d kvadriranja,
te mnoˇzenja onoliko koliko ima jedinica u binarnom zapisu od n (ˇsto je
≤ d + 1, a u prosjeˇcnom sluˇcaju je oko d/2) Dakle, u sluˇcaju modularnog
potenciranja sloˇznost je O(ln nln
2
m) (ako za sloˇzenost mnoˇzenja i dijeljenja
brojeva manjih od m uzmemo da je O(ln
2
m), ˇsto ´cemo i ubudu´ce raditi).
Prednost druge varijante (s lijeva na desno) je u tome da se u koraku
z = z x mnoˇzi uvijek s istim brojem x.
ˇ
Cesto je u primjenama taj x mali
(ˇcak jednak 2), pa je u tom sluˇcaju ova operacija vrlo brza. Ova prednost je
tim ve´ca, ˇsto je ve´ci broj jedinica u binarnom zapisu od n.
Jedno poboljˇsanje binarne metode sastoji se u promatranju grupa bi-
narnih znamenaka (tzv. ”prozora”). Na primjer, ako gledamo grupe od po
dvije znamenke (tj. radimo u bazi 4), onda ´cemo prethodno izraˇcunati x,
x
2
, x
3
, pa potom npr. x
79
moˇzemo izraˇcunati kao
x
79
= x
3
((x
4
)
4
x
3
)
4
.
Teorija brojeva u kriptografiji 25
U primjenama u kriptografiji, ˇcesto su ili baza x ili eksponent n fiksni.
U tim situacijama mogu´ca su dodatna poboljˇsanja.
U sluˇcaju fiksne baze x, unaprijed izraˇcunamo x
i
= x
2
i
, te x
n
raˇcunamo
kao x
n
=
¸
d
i=0
x
n
i
i
. Ako umjesto baze 2 koristimo bazu b, onda se unaprijed
izraˇcunaju vrijednosti x
ij
= x
j·b
i
, 1 ≤ j ≤ b − 1, 1 ≤ i ≤ d. Sada se x
n
raˇcuna kao x
n
=
¸
d
i=0
x
in
i
, ˇsto znaˇci uz d ∼ (ln n)/(ln b) mnoˇzenja.
U sluˇcaju fiksnog eksponenta, jedna ideja za mogu´ce poboljˇsanje je kori-
ˇstenje tzv. ”lanca zbrojeva”. To je niz u
0
, u
1
, . . . , u
s
s pridruˇzenim nizom
w
1
, . . . , w
s
parova w
i
= (i
1
, i
2
), sa svojstvom da je
u
0
= 1, u
s
= u, u
i
= u
i
1
+u
i
2
, za 1 ≤ i ≤ s.
Npr. za n = 15, jedan lanac zbrojeva je u
0
= 1, u
1
= 2, u
2
= 3, u
3
= 6,
u
4
= 12, u
5
= 15. Ako je poznat lanac zbrojeva za n duljine s, onda se x
n
moˇze izraˇcunati uz s mnoˇzenja: x
0
= x, x
i
= x
i
1
x
i
2
za i = 1, . . . , s, pa je
x
s
= x
n
.
Sve ˇsto smo do sada rekli o potenciranju, odnosi se na potenciranje u bilo
kakvoj abelovoj grupi. Kao ˇsto smo ve´c prije spomenuli, jedan od naˇcina za
dodatno poboljˇsanje modularnog potenciranja jest koriˇstenje Montromery-
jeve redukcije. Montgomeryjevu redukciju moˇzemo kombinirati s bilo kojom
od metoda za potenciranje koje smo ranije naveli. Prikaˇzimo to na primjeru
binarne metode (s lijeva na desno).
Montgomeryjevo potenciranje
y = Mont(x, R
2
mod m); z = R mod m
for (d ≥ i ≥ 0) ¦
z = Mont(z, z)
if (n
i
= 1) then z = Mont(z, y) ¦
z = Mont(z, 1)
Zaista, y = xR mod m pa se u petlji izraˇcuna x
n
R mod m, dok je
Mont(x
n
R mod m, 1) = x
n
mod m.
Za primjene u kriptografiji, pored grupe Z

m
, jedna od najvaˇznijih je
grupa toˇcaka na eliptiˇckoj krivulji nad konaˇcnim poljem, uz operaciju zbra-
janja toˇcaka. Jedna od specifiˇcnosti ove grupe je da u njoj inverzna operacija
(oduzimanje) nije nimalo kompliciranija od originalne grupovne operacije
(zbrajanja). Ova ˇcinjenica se moˇze iskoristiti za efikasnije potenciranje (kod
aditivnog zapisa ´cemo govoriti – multipliciranje). Glavna ideja je zamjena bi-
narnog zapisa sa zapisom u kojem su dopuˇstene znamenke −1, 0, 1. Prikaz
broja n u obliku n =
¸
d
i
0
s
i
2
i
, s
i
∈ ¦−1, 0, 1¦, zovemo SD (signed digit)
Teorija brojeva u kriptografiji 26
prikaz od n. Jasno je da SD prikaz nije jedinstven. Naime, imamo 3
d+1
kom-
binacija, a samo 2
d+1
−1 brojeva koji se mogu prikazati s d+1 znamenkom.
Npr. 3 = (0 1 1) = (1 0 -1). Ova viˇseznaˇcnost nam sugerira da pokuˇsamo
izabrati prikaz koji ´ce imati ˇsto viˇse nula, a to ´ce rezultirati efikasnijim
multipliciranjem.
Re´ci ´cemo da je SD prikaz rijedak ili nesusjedan (non-adjacent form,
kra´ce: NAF prikaz) ako nema susjednih znamenaka razliˇcitih od 0, tj. ako
je s
i
s
i+1
= 0 za svaki i. Moˇze se pokazati da svaki prirodan broj n ima
jedinstveni NAF prikaz. Nadalje, NAF ima najmanju teˇzinu (broj znamenki
razliˇcitih od 0) medu svim SD prikazima od n, a najviˇse za jednu znamenku
je dulji od najkra´ceg SD prikaza od n.
Oˇcekivana (prosjeˇcna) teˇzina NAF prikaza je d/3, za razliku od binarnog
prikaza kod kojeg je oˇcekivana teˇzina d/2.
Sljede´ci algoritam iz poznatog binarnog zapisa (n
d−1
, . . . , n
0
)
2
broja n
raˇcuna njegov NAF prikaz (s
d
, . . . , s
0
).
Algoritam za NAF prikaz
c
0
= 0
for (0 ≤ i ≤ d) ¦
c
i+1
= (n
i
+n
i+1
+c
i
)/2|
s
i
= n
i
+c
i
−2c
i+1
¦
Umjesto formula iz ovog algoritma, moˇzemo koristiti sljede´cu tablicu
koja za sve mogu´ce vrijednosti ulaznih podataka u i-tom koraku (n
i
, c
i
, n
i+1
)
daje odgovaraju´ce vrijednosti izlaznih podataka (c
i+1
, s
i
).
n
i
0 0 0 0 1 1 1 1
c
i
0 0 1 1 0 0 1 1
n
i+1
0 1 0 1 0 1 0 1
c
i+1
0 0 0 1 0 1 1 1
s
i
0 0 1 -1 1 -1 0 0
Sve metode za potenciranje zasnovane na binarnom prikazu, mogu se
jednostavno modificirati za NAF prikaz. Prikaˇzimo to za binarnu metodu (s
lijeva na desno).
Binarna metoda s predznakom (aditivna verzija):
z = x
for (d −1 ≥ i ≥ 0) ¦
z = z +z
if (n
i
= 1) then z = z +x
if (n
i
= −1) then z = z −x ¦
Teorija brojeva u kriptografiji 27
2.4 Euklidov algoritam
Razmotrit ´cemo sada problem nalaˇzenja najve´ceg zajedniˇckog djelitelja dva
cijela broja a i b, u oznaci (a, b). Jedna, naivna, mogu´cnost jest faktorizacija
brojeva a i b na proste faktore. Ako je a =
¸
p
p
α(p)
, b =
¸
p
p
β(p)
, onda je
(a, b) =
¸
p
p
min(α(p),β(p))
.
No, kako je teˇsko´ca faktorizacije velikih prirodnih brojeva jedna od najvaˇzijih
ˇcinjenica u algoritamskoj teoriji brojeva, jasno je da trebamo bolju metodu
za raˇcunanje najve´ceg zajedniˇckog djelitelja.
Problem koji je usko povezan s ovim, jest problem raˇcunanja modu-
larnog inverza x
−1
mod m, tj. broja y ∈ ¦1, . . . , m−1¦ takvog da je xy ≡ 1
(mod m). (Taj problem smo ve´c susreli kod RSA kriptosustava, gdje su eks-
ponenti d i e povezani relacijom de ≡ 1 (mod ϕ(n)).) Veza izmedu ova dva
problema dolazi preko sljede´ceg teorema.
Teorem 2.2. Postoje cijeli brojevi x, y takvi da je ax +by = (a, b).
Dokaz: Neka je g najmanji prirodan broj oblika ax + by, x, y ∈ Z.
Tvrdimo da je g = (a, b). Jasno je da svaki zajedniˇcki djelitelj od a i b
dijeli ax+by = g. Stoga (a, b)[g. Pretpostavimo da g a. Tada je a = qg +r,
0 < r < g. No, r = (1 − qx)a − qyb, pa smo dobili kontradikciju s min-
imalnoˇs´cu od g. Dakle, g[a i sasvim isto zakljuˇcujemo da g[b. Stoga je
g ≤ (a, b), pa zakljuˇcujemo da je g = (a, b).
Sada je jasna veza s traˇzenjem inverza. Ako su a i b relativno prosti cijeli
brojevi, onda postoje cijeli brojevi x, y takvi da je
ax +by = 1
i pritom je x mod b = a
−1
mod b, dok je y mod a = b
−1
mod a.
Euklidov algoritam je jedan od najstarijih, ali ujedno i jedan od naj-
vaˇznijih algoritama u teoriji brojeva. Zasnovan je na ˇcinjenici da je (a, b) =
(b, a mod b).
Kako je (a, b) = ([a[, [b[), moˇzemo pretpostaviti da a > b ≥ 0.
Euklidov algoritam:
while (b > 0) (a, b) = (b, a mod b)
return a
Da bi analizirali sloˇzenost ovog algoritma, raspiˇsimo ga po koracima:
a = q
1
b +r
1
b = q
2
r
1
+r
2
.
.
.
r
n−3
= q
n−1
r
n−2
+r
n−1
r
n−2
= q
n
r
n−1
Teorija brojeva u kriptografiji 28
Ocijenimo broj koraka, tj. broj n, u najloˇsijem sluˇcaju. Neka su a i b prirodni
brojevi takvi da Euklidov algoritam za (a, b) treba n koraka. Tada je a ≥
F
n+2
, b ≥ F
n+1
, gdje F
k
oznaˇcava k-ti Fibonaccijev broj (podsjetimo se
definicije Fibonaccijevi brojeva: F
0
= 0, F
1
= 1, F
n
= F
n−1
+F
n+2
za n ≥ 2).
Dokaˇzimo to matematiˇckom indukcijom po n. Za n = 1 je b ≥ 1 = F
2
,
a ≥ 2 = F
3
. Pretpostavimo da tvrdnja vrijedi za n−1 koraka. Za brojeve b i
r
1
Euklidov algoritam treba n−1 koraka. Stoga je po pretpostavci indukcije
b ≥ F
n+1
, r
1
≥ F
n
. No, tada je a = q
1
b +r
1
≥ b +r
1
≥ F
n+2
.
Budu´ci da je F
k+1
/F
k
| i F
k+1
mod F
k
= F
k−1
, to su svi kvocijenti u
Euklidovom algoritmu za F
n+2
i F
n+1
jednaki 1 i algoritam treba toˇcno n
koraka. Odatle i iz Binetove formule za Fibonaccijeve brojeve
F
n
=
1

5

1 +

5
2

n

1 −

5
2

n

slijedi
Teorem 2.3. Neka su a, b ≤ N. Tada je broj koraka u Euklidovom algoritmu
za raˇcunanje (a, b) manji ili jednak

ln(

5N)
ln((1 +

5)/2)
¸
−2 ≈ 2.078 ln N + 1.672 .
Moˇze se pokazati da je prosjeˇcan broj koraka u Euklidovom algoritmu
za brojeve a i b iz skupa ¦1, . . . , N¦ pribliˇzno jednak
12 ln 2
π
2
ln N + 0.14 ≈ 0.843 ln N + 0.14 .
Pojednostavljeno reˇceno, broj koraka je O(ln N). Kako svaki korak Eu-
klidovog algoritma zahtjeva jedno dijeljenje brojeva ≤ N, dobivamo da je
sloˇzenost Euklidovog algoritma O(log
3
N). Ovu ocjenu moˇzemo poboljˇsati
ako uoˇcimo da u svakom koraku radimo sa sve manjim brojevima. Tako da
je broj operacija
O(ln a ln q
1
+ ln b ln q
2
+ ln r
1
ln q
3
+ + ln r
n−2
ln q
n
)
= O(ln N (ln q
1
+ ln q
2
+ + ln q
n
))
= O(ln N ln(q
1
q
2
q
n
)) = O(ln
2
N)
(posljednju jednakost dobijemo mnoˇze´ci sve lijeve i sve desne strane u jed-
nakostima u Euklidovom algoritmu).
Euklidov algoritam se moˇze iskoristiti i za nalaˇzenje cijelih brojeva x, y
takvih da je ax + by = (a, b). Dakle, moˇzemo ga koristiti za rjeˇsavanje
linearnih Diofantskih jednadˇzbi. Kao ˇsto smo ve´c vidjeli, u sluˇcaju da je
(a, b) = 1 na taj se naˇcin moˇze dobiti modularni inverz.
Teorija brojeva u kriptografiji 29
Proˇsireni Euklidov algoritam:
(x, y, g, u, v, w) = (1, 0, a, 0, 1, b);
while(w > 0) ¦
q = g/w|;
(x, y, g, u, v, w) = (u, v, w, x −qu, y −qv, g −qw) ¦
return (x, y, g)
Prikazat ´cemo joˇs jedan algoritam za raˇcunanje najve´ceg zajedniˇckog dje-
litelja, tzv. ”binarni gcd algoritam”. Kod njega se umjesto dijeljenja koriste
samo operacije oduzimanja i pomaka (dijeljenja sa 2). Kao rezultat dobivamo
algoritam koji ima ve´ci broj koraka, ali su ti koraci jednostavniji. U samom
algoritmu susre´cemo dvije ideje. Prva je da iako smo u poˇcetku rekli da
je faktorizacija brojeva teˇzak problem, izdvajanje potencija broja 2 je vrlo
jednostavno. Druga ideja je zamjena dijeljenja oduzimanjem, a povezana
je s ˇcinjenicom da u originalnom Euklidovom algoritmu vrlo ˇcesto umjesto
dijeljenja zapravo imamo oduzimanje, jer je pripadni kvocijent jednak 1.
Moˇze se pokazati da vjerojatnost da je Euklidov kvocijent jednak q iznosi
P(q) = log
2

1 −
1
(q + 1)
2
−1

.
Tako je P(1) ≈ 0.415, P(2) ≈ 0.170, P(3) ≈ 0.093, ... . Dakle, u 41.5%
sluˇcajeva kvocijent je jednak 1. Ovi rezultati su u uskoj vezi s ranije nave-
denim prosjeˇcnim brojem koraka u Euklidovom algoritmu.
Oznaˇcimo s v
2
(k) najve´cu potenciju broja 2 koja dijeli k.
Binarni gcd algoritam:
β = min¦v
2
(a), v
2
(b)¦
a = a/2
v
2
(a)
; b = b/2
v
2
(b)
while(a = b)
(a, b) = (min¦a, b¦, [b −a[/2
v
2
(b−a)
)
return 2
β
a
2.5 Kineski teorem o ostatcima
Kineski teorem o ostatcima govori o rjeˇsenju sustava linearnih kongruencija.
Ime mu se vezuje uz kineskog matematiˇcara iz prvog stolje´ca Sun-Tsua.
Smatra se da je taj teorem koriˇsen ve´c u to vrijeme u kineskoj vojsci za
prebrojavanje vojnika. Recimo da treba prebrojiti grupu od pribliˇzno 1000
vojnika. Vojnici se rasporede npr. u 3, 4, 5 i 7 kolona, te se zabiljeˇzi koliko je
vojnika ostalo kao ”viˇsak” u zadnjem redu. Tako dobivamo sustav od ˇcetiri
kongruencije s modulima 3, 4, 5 i 7, a taj sustav prema sljede´cem teoremu
ima jedinstveno rjeˇsenje izmedu 800 i 1200.
Teorija brojeva u kriptografiji 30
Teorem 2.4. Neka su m
1
, . . . , m
k
u parovima relativno prosti prirodni bro-
jevi, tj. (m
i
, m
j
) = 1 za i = j. Tada za proizvoljne cijele brojeve x
1
, . . . , x
k
postoji cijeli broj x takav da vrijedi
x ≡ x
i
(mod m
i
), i = 1, . . . , k.
Broj x je jedinstven modulo M = m
1
m
k
.
Broj x iz teorema moˇzemo na´ci na sljede´ci naˇcin. Neka je M
i
=
M
m
i
. Kako
je (M
i
, m
i
) = 1, to pomo´cu Euklidovog algoritma moˇzemo na´ci a
i
takav da
je a
i
M
i
≡ 1 (mod m
i
). Sada
x =
k
¸
i=1
a
i
M
i
x
i
mod m
zadovoljava uvjete teorema.
Sloˇzenost algoritma kojeg smo upravo opisali je O(ln
2
M).
Kineski teorem o ostatcima ima brojne primjene. Jedan od razloga jest
to da on omogu´cava da se raˇcunanje po jednom velikom modulu zamjeni s
nekoliko neovisnih raˇcunanja po puno manjim modulima, ˇsto je jako dobra
osnova za ”paralelizaciju” raˇcunanja.
U primjenama su ˇcesto m
i
-ovi fiksni, dok x
i
-ovi variraju. U takvoj situaciji
dobro je onaj dio algoritma koji ne ovisi o x
i
-ovima izraˇcunati unaprijed.
Sljede´ci algoritam koristi tu ideju, a takoder vodi raˇcuna o racionalnom
koriˇstenju brojeva M
i
koji mogu biti jako veliki (za razliku od brojeva a
i
koji su sigurno manji od m
i
).
Garnerov algoritam za CRT:
for (1 ≤ i ≤ k −1) ¦
µ
i
=
¸
j = 1
i
m
j
;
c
i
= µ
−1
i
mod m
i+1
¦
M = µ
k−1
m
k
x = x
1
for (1 ≤ i ≤ k −1) ¦
y = ((x
i+1
−x)c
i
) mod m
i+1
;
x = x +yµ
i
¦
x = x mod M
Ovaj algoritam ”rjeˇsava” module jedan po jedan. Tako da nakon i-tog
koraka u petlji, x zadovoljava x ≡ x
j
(mod m
j
) za j = 1, 2, . . . , i + 1.
Ukoliko treba rjeˇsiti neki jednokratni problem, onda naravno nema ko-
risti od prethodnog raˇcunanja s m
i
-ovima. U takvoj se situaciji preporuˇca
Teorija brojeva u kriptografiji 31
induktivna uporaba originalnog algoritma za sustav od dvije kongruencije.
Naime, ako ˇzelimo rijeˇsiti sustav
x ≡ x
1
(mod m
1
), x ≡ x
2
(mod m
2
),
onda jednom primjenom Euklidovog algoritma dobivamo oba ˇzeljena inverza
iz um
1
+vm
2
= 1. Tada je x = um
1
x
2
+vm
2
x
1
mod m
1
m
2
rjeˇsenje sustava.
Induktivni algoritam za CRT:
m = m
1
; x = x
1
for (2 ≤ i ≤ k) ¦
nadi u, v takve da je um+vm
i
= 1;
x = umx
i
+vm
i
x;
m = mm
i
;
x = x mod m ¦
Moˇzda je zanimljivo za spomenuti da je ”obrnuti” problem od onog koji
se razmatra u Kineskom teoremu o ostatcima puno teˇzi od originalnog prob-
lema. Preciznije, moˇze se pokazati da je problem odluke ”Za danih k parova
(x
1
, m
1
), . . . , (x
k
, m
k
), odrediti postoji li x takav da x ≡ x
i
(mod m
i
) za
i = 1, . . . , k.” NP-potpun.
2.6 Veriˇzni razlomci
U ovom poglavlju vidjet ´cemo joˇs jednu primjenu Euklidovog algoritma. Iz
prvog koraka u Euklidovom algoritmu imamo
a
b
= q
1
+
1
b/r
1
.
Drugi korak nam daje
a
b
= q
1
+
1
q
2
+
1
r
1
/r
2
.
Na kraju dobivamo prikaz racionalnog broja a/b u obliku
a
b
= q
1
+
1
q
2
+
1
q
3
+
.
.
.
+
1
q
n
.
Teorija brojeva u kriptografiji 32
Ovaj se prikaz naziva razvoj broja a/b u jednostavni veriˇzni razlomak. Op´cenito,
za α ∈ R se prikaz broja α u obliku
α = a
0
+
1
a
1
+
1
a
2
+
.
.
.
,
gdje je a
0
∈ Z, te a
1
, a
2
, . . . ∈ N, zove razvoj broja α u jednostavni veriˇzni (ili
neprekidni) razlomak. Veriˇzni razlomak kra´ce zapisujemo kao [a
0
; a
1
, a
2
, . . .].
Brojevi a
0
, a
1
, a
2
, . . . se zovu parcijalni kvocijenti, a definiraju se na sljede´ci
naˇcin:
a
0
= α|, α = a
0
+
1
α
1
, a
1
= α
1
|, α
1
= a
1
+
1
α
2
, a
2
= α
2
|, . . . .
Postupak se nastavlja sve dok je a
k
= α
k
. Razvoj u jednostavni veriˇzni
razlomak broja α je konaˇcan ako i samo ako je α racionalan broj.
Kao ˇsto smo vidjeli gore, razvoj u veriˇzni razlomak racionalnog broja
moˇze se izraˇcunati pomo´cu Euklidovog algoritma. Kod iracionalnog broja,
mi najˇceˇs´ce znamo samo njegovu racionalnu aproksimaciju (obiˇcno binarni
ili decimalni zapis s fiksnim brojeva toˇcnih znamenaka). To znaˇci da ´ce i u
njegovom razvoju biti toˇcni samo neki poˇcetni a
i
-ovi.
Primjer 2.4. Izraˇcunati razvoj u jednostavni veriˇzni razlomak broja

101,
ali tako da u svim raˇcunima koristimo samo 10 najznaˇcajnijih decimalnih
znamenaka. Dobije se

101 = 10.04987562 = [10; 20, 20, 20, 8, 6, 1, . . .].
Postavlja se pitanje koji su od ovih a
i
-ova stvarno toˇcni. Kao ˇsto ´cemo uskoro
vidjeti

101 = [10; 20, 20, 20, 20, 20, 20, . . .].
ˇ
Zeljeli bi da nam algoritam za raˇcunanje veriˇznog razlomka kaˇze kada
toˇcno treba stati. Neka je dan α ∈ R, te racionalni brojevi a/b i a

/b

takvi
da je
a
b
≤ α ≤
a

b

.
Sljede´ci algoritam raˇcuna razvoj od α i staje toˇcno onda kada viˇse nije
mogu´ce odrediti sljede´ci a
i
iz a/b i a

/b

(pripadni a
i
-ovi u razvojima od a/b
i a

/b

se ne podudaraju), te takoder daje gornju i donju ogradu za taj a
i
.
Razvoj u veriˇzni razlomak
i = 0
q = a/b|; r = a −bq; r

= a

−b

q
Teorija brojeva u kriptografiji 33
while (0 ≤ r

< b

and b = 0) ¦
a
i
= q
i = i + 1;
a = b; b = r; a

= b

; b

= r

;
q = a/b|; r = a −bq; r

= a

−b

q ¦
if (b = 0 and b

= 0) then return [a
0
; a
1
, . . . , a
i
]
if (b = 0 and b

= 0) then return [a
0
; a
1
, . . . , a
i−i
], a
i
≥ q
q

= a

/b

|
if (b = 0 and b

= 0) then return [a
0
; a
1
, . . . , a
i−i
], a
i
≥ q

if (bb

= 0) then return [a
0
; a
1
, . . . , a
i−i
], min¦q, q

¦ ≤ a
i
≤ max¦q, q

¦
U sluˇcaju kada je α kvadratna iracionalnost, tj. iracionalan broj koji
je rjeˇsenje neke kvadratne jednadˇzbe s racionalnih koeficijentima, tada je
njegov razvoj u jednostavni veriˇzni razlomak periodiˇcan. Razvoj se moˇze
dobiti sljede´cim algoritmom. Prikaˇzemo α u obliku
α = α
0
=
s
0
+

d
t
0
,
gdje su d, s
0
, t
0
∈ Z, t
0
= 0, d nije potpun kvadrat i t
0
[(d−s
2
0
). Zadnji uvjet se
uvijek moˇze zadovoljiti mnoˇzenjem brojnika i nazivnika s prikladnim cijelim
brojem. Sada parcijalne kvocijente a
i
raˇcunamo rekurzivno na sljede´ci naˇcin:
a
i
= α
i
|, s
i+1
= a
i
t
i
−s
i
, t
i+1
=
d −s
2
i+1
t
i
, α
i+1
=
s
i+1
+a
0
t
i+1
.
Uoˇcimo da iako je α iracionalan broj, ovaj algoritam radi samo s cijelim
brojevima. Moˇze se pokazati da su s
i
-ovi i t
i
-ovi ograniˇceni, pa stoga mogu
poprimiti samo konaˇcno mnogo vrijednosti. To znaˇci da postoje indeksi j, k,
j < k, takvi da je s
j
= s
k
i t
j
= t
k
. No, tada je α
j
= α
k
, ˇsto znaˇci da je
α = [a
0
; a
1
, . . . , a
j−1
, a
j
, a
j+1
, . . . , a
k−1
],
gdje povlaka oznaˇcava blok koji se periodiˇcki ponavlja.
U sluˇcaju, koji je najvaˇzniji za primjene, kada je α =

d moˇze se re´ci i
preciznije kako izgleda razvoj u veriˇzni razlomak. Naime, vrijedi

d = [a
0
; a
1
, a
2
, . . . , a
r−1
, 2a
0
],
gdje je a
0
=

d|, a a
1
, . . . , a
r−1
su palidromni, tj. a
i
= a
r−i
za i =
1, 2, . . . , r −1. Na primjer,

101 = [10; 20],

13 = [3; 1, 1, 1, 1, 6],

113 = [10; 1, 1, 1, 2, 2, 1, 1, 1, 20].
Moˇze se pokazati da za duljinu perioda r vrijedi da je r = O(

d log d).
Teorija brojeva u kriptografiji 34
Racionalne brojeve
p
k
q
k
= a
0
+
1
a
1
+
1
a
2
+
.
.
.
+
1
a
k
= [a
0
; a
1
, . . . , a
k
]
zovemo konvergente veriˇznog razlomka. Brojnici i nazivnici konvergenti zado-
voljavaju sljede´ce rekurzije:
p
0
= a
0
, p
1
= a
0
a
1
+ 1, p
k+2
= a
k+2
p
k+1
+p
k
,
q
0
= 1, q
1
= a
1
, q
k+2
= a
k+2
q
k+1
+q
k
.
Indukcijom se lako dokazuje sljede´ca vaˇzna relacija:
q
k
p
k−1
−p
k
q
k−1
= (−1)
k
. (2.3)
Relacija (2.3) povlaˇci da je
p
2k
q
2k
≤ α i α ≤
p
2k+1
q
2k+1
za svaki k. Nadalje, ako je
α iracionalan, onda je lim
k→∞
p
k
q
k
= α.
Racionalni brojevi
p
k
q
k
jako dobro aproksimiraju α. Preciznije,

α −
p
k
q
k

<
1
q
2
k
.
Vrijedi i svojevrsni obrat ove tvrdnje. Ako je
p
q
racionalan broj koji zado-
voljava nejednakost

α −
p
q

<
1
2q
2
,
onda je
p
q
=
p
k
q
k
za neki k.
Konvergente se javljaju i kod rjeˇsavanja nekih diofantskih jednadˇzbi.
Posebno je vaˇzna njihova uloga u rjeˇsavanju Pellovih jednadˇzbi. To su jed-
nadˇzbe oblika x
2
−dy
2
= 1, gdje je d prirodan broj koji nije potpun kvadrat.
ˇ
Cesto se uz ovu jednadˇzbu promatra i jednadˇzba x
2
−dy
2
= −1. Ako sa
p
k
q
k
oznaˇcimo konvergente u razvoju u veriˇzni razlomak broja

d, onda vrijedi
p
2
k
−dq
2
k
= (−1)
k+1
t
k+1
,
gdje je niz (t
k
) definiran u algoritmu za razvoj od

d. Odavde se lako dobije
da jednadˇzba x
2
− dy
2
= 1 uvijek ima (beskonaˇcno) rjeˇsenja u prirodnim
brojevima, dok jednadˇzba x
2
− dy
2
= −1 ima rjeˇsenja ako i samo ako je
duljina perioda r u razvoju od

d neparna. Ako je (X, Y ) najmanje rjeˇsenje
u prirodnim brojevima jednadˇzbe x
2
−dy
2
= 1, onda je (X, Y ) = (p
r−1
, q
r−1
)
ili (p
2r−1
, q
2r−1
) u ovisnosti o tome je li duljina perioda r parna ili neparna.
Teorija brojeva u kriptografiji 35
Zavrˇsit ´cemo ovo poglavlje s jednom primjenom veriˇznih razlomaka. Ve´c
je Fermat znao da se neparan prost broj moˇze prikazati kao zbroj kvadrata
dva cijela broja ako i samo ako je p ≡ 1 (mod 4). Medutim, ostaje pitanje
kako za dani prosti broj p oblika 4k + 1 na´ci cijele brojeve x, y takve da
je x
2
+ y
2
= p. Pokazat ´cemo dvije konstrukcije koje obje koriste veriˇzne
razlomke.
1. konstrukcija (Hermite)
Neka je z neko rjeˇsenje kongruencije z
2
≡ −1 (mod p) (o rjeˇsavanju
ovakvih kongruencija bit ´ce rijeˇci u sljede´cem poglavlju). Dakle, z
2
+ 1 je
neki viˇsekratnik od p kojeg znamo prikazati kao zbroj dva kvadrata.
ˇ
Zelimo
pomo´cu njega na´ci prikaz broja p u tom obliku. Promotrimo veriˇzni razlomak
z
p
= [a
0
; a
1
, . . . , a
m
].
Postoji jedinstveni cijeli broj n takav da je q
n
<

p < q
n+1
. Budu´ci da
z
p
leˇzi izmedu susjednih konvergenti
p
n
q
n
i
p
n+1
q
n+1
, to je

z −
p
n
q
n

<

p
n
q
n

p
n+1
q
n+1

=
1
q
n
q
n+1
.
Dakle,
z
p
=
p
n
q
n
+
ε
q
n
q
n+1
, gdje je [ε[ < 1. Odavde je zq
n
− pp
n
=
εp
q
n+1
, pa je
(zq
n
−pp
n
)
2
<
p
2
q
2
n+1
< p. Konaˇcno,
(zq
n
−pp
n
)
2
+q
2
n
≡ q
2
n
(z
2
+ 1) ≡ 0 (mod p) i 0 < (zq
n
−pp
n
)
2
+q
2
n
< 2p,
ˇsto povlaˇci da je (zq
n
−pp
n
)
2
+q
2
n
= p.
2. konstrukcija (Legendre)
Promotrimo Pellovu jednadˇzbu x
2
− py
2
= 1. Kao ˇsto smo ve´c rekli,
ona ima beskonaˇcno mnogo rjeˇsenja u prirodnim brojevima. Neka je (X, Y )
najmanje takvo rjeˇsenje. Iz (X+1)(X−1) = pY
2
slijedi da je X+1 = ab
2
p,
X−1 = ac
2
ili X+1 = ab
2
, X−1 = ac
2
p, gdje je a = (X+1, X−1) = 1 ili
2, a b, c su neki prirodni brojevi. Odavde je c
2
−pb
2
= −
2
a
ili b
2
−pc
2
=
2
a
.
Zbog minimalnosti od (X, Y ), otpada mogu´cnost a = 2 u drugoj jednadˇzbi.
Dakle, imamo
c
2
−pb
2
= −1, c
2
−pb
2
= −2 ili b
2
−pc
2
= 2.
Ako je p ≡ 1 (mod 4), onda je c
2
−pb
2
≡ 0, 1 ili 3 (mod 4), pa stoga mora
vrijediti c
2
− pb
2
= −1 jer su druga i tre´ca jednadˇzba nemogu´ce modulo 4.
No, nuˇzan i dovoljan uvjet da bi jednadˇzba c
2
− pb
2
= −1 imala rjeˇsenja
je da period u razvoju u veriˇzni razlomak broja

p bude neparan. Dakle,
imamo

p = [a
0
; a
1
, . . . , a
n
, a
n
. . . , a
1
, 2a
0
].
Teorija brojeva u kriptografiji 36
Broj α
n+1
=
s
n+1
+

p
t
n+1
je ˇcisto periodiˇcan (nema pretperioda) i period mu je
palidroman. Neka je α

n+1
=
s
n+1


p
t
n+1
njegov konjugat. Nije teˇsko za vidjeti
da je razvoj od −
1
α

n+1
takoder ˇcisto periodiˇcan, s time da se parcijalni kvo-
cijenti unutar perioda pojavljuju u obrnutom redosljedu od onih kod α
n+1
.
Kako je period od α
n+1
palidroman, zakljuˇcujemo da je −
1
α

n+1
= α
n+1
.
Stoga je
α

n+1
α
n+1
=
s
2
n+1
−p
t
2
n+1
= −1,
tj. p = s
2
n+1
+t
2
n+1
.
2.7 Kvadratne kongruencije
Definicija 2.8. Neka su a i mrelativno prosti cijeli brojevi i m ≥ 1. Kaˇzemo
da je a kvadratni ostatak modulo m ako kongruencija x
2
≡ a (mod m) ima
rjeˇsenja. Ako ova kongruencija nema rjeˇsenja, onda kaˇzemo da je a kvadratni
neostatak modulo m.
S kongruencijom x
2
≡ a (mod m) i pitanjem ima li ona rjeˇsenje i ako
ima, kako ih na´ci, susreli smo se ranije kod Rabinovog kriptosustava.
Pretpostavimo sada da je modul komgruencije neparan prost broj p.
Tada kvadratnih ostataka modulo p ima jednako mnogo kao i kvadratnih
neostataka, tj. (p − 1)/2. Ova tvrdnja neposredno slijedi iz ˇcinjenice da je
grupa (Z
p
,
p
) cikliˇcka. To znaˇci da postoji element g ∈ Z
p
ˇciji je red jednak
p − 1. Taj element g se naziva primitivni korijen modulo p. Sada je jasno
da su g
0
, g
2
, g
4
, . . . , g
p−3
kvadratni ostatci, a g
1
, g
3
, g
5
, . . . , g
p−2
kvadratni
neostatci.
Kad smo se ve´c podsjetili definicije primitivnog korijena, recimo neˇsto
o tome kako se on nalazi. Moˇzemo krenuti redom i testirati da li je g = 2,
g = 3, . . . primitivni korijen. Pritom ne treba testirati brojeve oblika g
k
0
,
k ≥ 2, jer ako g
0
nije primitivni korijen, onda to ne moˇze biti ni g
k
0
. Samo
testiranje da li je g primitivni korijen se zasniva na sljede´coj oˇcitoj ˇcinjenici:
g je primitivan korijen ako i samo ako za svaki prosti faktor q od p−1 vrijedi
g
(p−1)/q
≡ 1 (mod p).
Moˇze se postaviti pitanje kolika je vjerojatnost da ve´c g = 2 bude primi-
tivni korijen. S tim u vezi spomenimo poznatu Artinovu slutnju koja kaˇze
da za prirodan broj a, koji nije potencija nekog prirodnog broja, vrijedi
ν
a
(N) ∼ A π(N),
gdje je π(N) broj prostih brojeva ≤ N, ν
a
(N) broj prostih brojeva ≤ N za
koje je a primitivni korijen, dok je A Artinova konstanta
¸
p

1 −
1
p(p−1)


0.3739558. Poznato je (Hooley, 1967) da tzv. generalizirana Riemannova
Teorija brojeva u kriptografiji 37
slutnja (GRH) povlaˇci Artinovu slutnju. GRH takoder povlaˇci da je naj-
manji primitivni korijen modulo p reda veliˇcine O(ln
6
p).
Vratimo se sada kvadratnim ostatcima modulo p.
Definicija 2.9. Neka je p neparan prost broj. Legendreov simbol (
a
p
) jednak
je 1 ako je a kvadratni ostatak modulo p, jednak je −1 ako je a kvadratni
neostatak modulo p, a jednak je 0 ako je a ≡ 0 (mod p).
Vidimo da je broj rjeˇsenja kongruencije x
2
≡ a (mod p) jednak 1 + (
a
p
).
Postavlja se pitanje kako izraˇcunati Legendreov simbol. Jedna mogu´cnost
je pomo´cu tzv. Eulerovog kriterija koji glasi:

a
p

≡ a
(p−1)/2
(mod p).
Budu´ci da smo ve´c vidjeli kako se moˇze efikasno potencirati, Eulerov kri-
terij nam omogu´cava da Legendreov simbol izraˇcunamo uz O(ln
3
p) bit-
nih operacija. No, postoji i efikasniji algoritam ˇcija je sloˇzenost O(ln
2
p), a
koji je vrlo sliˇcan Euklidovom algoritmu. Taj algoritam je zasnovan na tzv.
Gaussovom zakonu reciprociteta, koji glasi

p
q

q
p

= (−1)
(p−1)(q−1)/4
za razliˇcite proste brojeve p i q. Dakle, ovaj zakon nam omogu´cava da (
p
q
) za-
mijenimo sa (
q
p
), ˇsto je posebno korisno ukoliko je p < q. Medutim, za prim-
jenu ovog zakona oba parametra moraju biti prosti brojevi, ˇsto dolazi od
zahtjeva u definiciji Legendreovog simbola da jedan od parametara (donji)
bude prost. To nas vodi do potrebe uvodenja poop´cenja Legendreovog sim-
bola kod kojeg parametri ne´ce morati biti prosti.
Definicija 2.10. Neka je m neparan prirodan broj i m =
¸
p
α
i
i
njegov
rastav na proste faktore, te neka je a proizvoljan cijeli broj. Jacobijev simbol
(
a
m
) se definira sa

a
m

=
¸

a
p
i

α
i
,
gdje (
a
p
i
) predstavlja Legendreov simbol.
Jasno je da ako je m prost, onda se Jacobijev i Legendreov simbol po-
dudaraju. Ako je (a, m) > 1, onda je (
a
m
) = 0. Ako je a kvadratni ostatak
modulo m, onda je a kvadratni ostatak modulo p
i
za svaki i. Zato je (
a
p
i
) = 1
za svaki i, pa je i (
a
m
) = 1. Medutim, (
a
m
) = 1 ne povlaˇci da je a kvadratni
ostatak modulo m. Da bi a bio kvadratni ostatak modulo m nuˇzno je i do-
voljno da svi (
a
p
i
) budu jedanki 1. Spomenimo da postoji i op´cenitiji pojam,
tzv. Kroneckerov simbol (
a
b
), koji se definira za proizvoljne cijele brojeve a
i b (b moˇze biti paran i negativan).
Teorija brojeva u kriptografiji 38
Navodimo osnovna svojstva Jacobijevog simbola koja se koriste u nje-
govom raˇcunanju:
1) a ≡ b (mod m) =⇒

a
m

=

b
m

.
2)

ab
m

=

a
m

b
m

,

a
mn

=

a
m

a
n

3)

−1
m

= (−1)
(m−1)/2
,

2
m

= (−1)
(m
2
−1)/8
4)

m
n

n
m

= (−1)
(m−1)(n−1)/4
ako su m i n relativno prosti
Teorija brojeva u kriptografiji 39
Algoritam za raˇcunanje Jacobijevog simbola (
a
m
)
a = a mod m
t = 1
while (a = 0) ¦
while (a paran) ¦
a = a/2;
if (m ≡ 3, 5 (mod 8)) then t = −t ¦
(a, m) = (m, a)
if (a ≡ m ≡ 3 (mod 4)) then t = −t
a = a mod m ¦
if (m = 1) then return t
else return 0
Vidimo da je ovaj algoritam vrlo sliˇcan Euklidovom algoritmu. Jedina
bitna razlika je u posebnom tretiranju faktora 2, kojeg moramo izluˇciti prije
nego ˇsto zamjenimo gornji i donji parametar.
Pretpostavimo sada da je (
a
p
) = 1. To znaˇci da postoji cijeli broj x takav
da je
x
2
≡ a (mod p) . (2.4)
Postavlja se pitanje kako na´ci taj broj x, tj. kako efikasno izraˇcunati kvadratni
korijen od a modulo p. Ako je p vrlo mali, to moˇzemo napraviti tako da ispi-
tamo redom sve mogu´ce ostatke modulo p. No, za imalo ve´ce p-ove, to je
vrlo neefikasan algoritam.
Odgovor na postavljeno pitanje je vrlo lak za brojeve specijalnog oblika.
Zapravo, mogli bi re´ci da taj oblik i nije jako specijalan, budu´ci da pola
prostih brojeva ima takav oblik.
Propozicija 2.5. Ako je p ≡ 3 (mod 4), onda je x = a
(p+1)/4
rjeˇsenje
kongruencije (2.4).
Dokaz: Budu´ci da je a kvadratni ostatak modulo p, iz Eulerovog kriterija
imamo a
(p−1)/2
≡ 1 (mod p), pa je
x
2
≡ (a
(p+1)/2
) ≡ a a
(p−1)/2
≡ a (mod p).
Prethodnu propoziciju je mogu´ce modificirati i na preostale proste bro-
jeve, uz poznavanje barem jednog kvadratnog neostatka modulo p. Ako je
p ≡ 5 (mod 8), onda je broj 2 kvadratni neostatak modulo p. Upravo ta
ˇcinjenica se koristi u sljede´coj propoziciji.
Propozicija 2.6. Ako je p ≡ 5 (mod 8), onda je jedan brojeva a
(p+3)/8
i
2
(p−1)/4
a
(p+3)/8
rjeˇsenje kongruencije (2.4).
Teorija brojeva u kriptografiji 40
Dokaz: Ako je p = 8k+5, onda je a
4k+2
≡ 1 (mod p). Odavde je a
2k+1

±1 (mod p), pa je a
2k+2
≡ ±a (mod p). Ako u posljednjoj kongruenciji
imamo predznak +, onda je x = a
k+1
= a
(p+3)/8
rjeˇsenje kongruencije (2.4).
Ukoliko imamo predznak −, onda iskoristimo ˇcinjenicu da je (
2
p
) = −1.
To povlaˇci da je 2
4k+2
≡ −1 (mod p), pa za x = 2
(p−1)/4
a
(p+3)/8
vrijedi
x
2
≡ 2
4k+2
a
2k+2
≡ (−1)(−a) ≡ a (mod p).
Preostao je sluˇcaj p ≡ 1 (mod 8). Taj sluˇcaj je i najteˇzi, zato ˇsto ne
moˇzemo eksplicitno napisati jedan kvadratni neostatak modulo p (iako znamo
da ih ima ”puno”, tj. (p−1)/2). Opisat ´cemo Tonellijev algoritam za nalaˇzenje
kvadratnog korijena u tom sluˇcaju. Pretpostavimo da nam je poznat jedan
kvadratni neostatak d modulo p. Ovo je teoretski najproblematiˇcniji dio
algoritma. Naime, nije poznat niti jedan (bezuvjetni) deterministiˇcki poli-
nomijalni algoritam na nalaˇzenje kvadratnog neostatka. Pretpostavimo li
da vrijedi tzv. proˇsirena Riemannova slutnja (ERH), onda postoji kvadratni
neostatak manji od 2 ln
2
p, pa nam jednostavno pretraˇzivanje daje polinomi-
jalni algoritam. U praksi ovo nije problem, jer je vjerojatnost da je sluˇcajno
izabrani broj kvadratni neostatak jednaka 1/2. Tako je vjerojatnost da od
20 sluˇcajno izabranih brojeva niti jedan nije kvadratni neostatak manja od
10
−6
.
Neka je p = 2
s
t+1, gdje je t neparan. Prema Eulerovom kriteriju imamo:
a
2
s−1
t
≡ 1 (mod p), a
2
s−2
t
≡ ±1 (mod p), d
2
s−1
t
≡ −1 (mod p).
Dakle, postoji t
2
≥ 0 takav da je
a
2
s−2
t
d
t
2
2
s−1
≡ 1 (mod p), a
2
s−3
t
d
t
2
2
s−2
≡ ±1 (mod p).
Analogno zakljuˇcujemo da postoji t
3
≥ 0 takav da je
a
2
s−3
t
d
t
3
2
s−2
≡ 1 (mod p), a
2
s−4
t
d
t
3
2
s−3
≡ ±1 (mod p).
Nastavljaju´ci ovaj postupak, na kraju dobijemo t
s
≥ 0 takav da je
a
t
d
2t
s
≡ 1 (mod p),
pa je x = a
(t+1)/2
d
t
s
rjeˇsenje kongruencije (2.4).
Spojivˇsi gornje dvije propozicije i Tonellijev algoritam, dobivamo sljede´ci
algoritam za raˇcunanje rjeˇsenja kongruencije x
2
≡ a (mod p).
Teorija brojeva u kriptografiji 41
Kvadratni korijen modulo p
a = a mod p
if (p ≡ 3, 7 (mod 8)) then ¦
x = a
(p+1)/4
mod p;
return x ¦
if (p ≡ 5 (mod 8)) then ¦
x = a
(p+3)/8
mod p;
c = x
2
mod p;
if (c = a mod p) then x = x 2
(p−1)/4
mod p;
return x ¦
Nadi broj d ∈ ¦2, 3, , p −1¦ takav da je

d
p

= −1
Prikaˇzi p −1 = 2
s
t, t neparan
A = a
t
mod p
D = d
t
mod p
m = 0
for (0 ≤ i ≤ s −1) ¦
if ((AD
m
)
2
s−1−i
≡ −1 (mod p)) then m = m+ 2
i
¦
x = a
(t+1)/2
D
m/2
mod p
return x
Neka je d prirodan broj, te p neparan prost broj. Promotrimo diofantsku
jednadˇzbu
x
2
+dy
2
= p.
Zanima nas ima li ova jednadˇzba rjeˇsenja u cijelim brojevima, te ako ih
ima, kako ih na´ci. Ovaj problem se izmedu ostalog pojavljuje kod prim-
jene eliptiˇckih krivulja u testiranju prostosti. Specijalni sluˇcaj d = 1 smo
ve´c obradili u poglavlju o veriˇznim razlomcima, gdje smo pokazali dvije
konstrukcije za rjeˇsavanje problema zbroja kvadrata. Sada ´cemo navesti
jednu modifikaciju prve konstrukcije, tzv. Cornacchia-Smithov algoritam,
koja rjeˇsava ovaj op´cenitiji problem.
Nuˇzan uvjet za postojanje rjeˇsenja je da je −d kvadratni ostatak modulo
p. Zaista, iz x
2
+ dy
2
= p slijedi (xy
−1
)
2
≡ −d (mod p). Napomenimo da
obrat op´cenito ne vrijedi (osim u sluˇcaju kada je tzv. broj klasa h(−4d)
jednak 1, tj. kada su sve binarne kvadratne forme s distriminantom −4d
medusobno ekvivalentne). Neka je dakle z cijeli broj takav da je
z
2
≡ −d (mod p)
i neka je
p
2
< z < p. Primijenjujemo Euklidov algoritam na (p, z) sve dok ne
dodemo do ostatka r <

p. Promotrimo broj t = (p −r
2
)/d. Ako je t = s
2
za neki s ∈ Z, onda je p = r
2
+ds
2
. U protivnom jednadˇzba nema rjeˇsenja.
Teorija brojeva u kriptografiji 42
Cornacchia - Smithov algoritam
if ((
−d
p
) = −1) then return nema rjeˇsenja
z =

−d mod p;
if (2z < p) then z = p −z
(a, b) = (p, z)
c =

p|
t = p −b
2
if (t ≡ 0 (mod d)) then return nema rjeˇsenja
if (t/d nije potpun kvadrat) then return nema rjeˇsenja
return (b,

t/d)
2.8 Kvadrati i kvadratni korijeni
U ovom poglavlju razmatramo pitanje kako za dani prirodni broj n ˇsto
efikasnije odrediti da li je n potpun kvadrat ili nije, te ako jest potpun
kvadrat, kako izraˇcunati njegov kvadratni korijen. Op´cenitije, pitamo se kako
za proizvoljni prirodni broj n izraˇcunati cjelobrojni dio kvadratnog korijena
od n, tj. broj

n|. Ove probleme smo ve´c susreli u Cornacchia-Smithovom
algoritmu.
Algoritam za raˇcunanje

n| je zapravo varijanta poznate Newtonove
iterativne metode za pribliˇzno raˇcunaje korijena jednadˇzbe. Podsjetimo se na
se u Newtovoj metodi aproksimacije rjeˇsenja jednadˇzbe f(x) = 0 raˇcunanju
po formuli
x
k+1
= x
k

f(x
k
)
f

(x
k
)
.
Kod nas je f(x) = x
2
−n, a algoritam ´cemo modificirati tako da radi samo
s cijelim brojevima.
Algoritam za

n
x = n
y = (x +n/x|)/2|
while (y < x) ¦
x = y; y = (x +n/x|)/2| ¦
return x
Dokaˇzimo da ovaj algoritam stvarno raˇcuna

n|. Neka je q =

n|.
Budu´ci da je
1
2
(t +
n
t
) ≥

n, za svaki pozitivan broj t, imamo da je x ≥ q u
svim koracima algoritma. U zadnjem koraku imamo y = (x +n/x|)/2| =
(x +
n
x
)/2| ≥ x.
ˇ
Zelimo dokazati da je x = q. Pretpostavimo suprotno, tj.
da je x ≥ q + 1. Tada je
y −x =

x +
n
x
2
¸
−x =
n
x
−x
2
¸
=

n −x
2
2x
¸
.
Teorija brojeva u kriptografiji 43
Iz x ≥ q + 1 >

n slijedi n −x
2
< 0 i y −x < 0, ˇsto je kontradikcija.
Sloˇzenost ovog algoritma je O(ln
3
n). Efikasnost algoritma se moˇze po-
boljˇsati ako se za inicijalnu vrijednost, umjesto x = n, uzme broj koji
bolje aproksimira (odozgo) broj

n. Na primjer, ako je 2
e
≤ n < 2
e+1
,
onda moˇzemo uzeti x = 2
(e+2)/2
. Tako se moˇze dobiti algoritam sloˇzenosti
O(ln
2
n).
Neka je sada n prirodan broj.
ˇ
Zelimo testirati da li je n potpun kvadrat ili
nije. Jedna mogu´cnost je izraˇcunati

n| i provjeriti je li q
2
jednako n. No,
”ve´cina” prirodnih brojeva nisu kvadrati. Stoga bi bilo dobro barem neke od
tih ”nekvadrata” eliminirati na neki jednostavniji naˇcin. Ideja je iskoristiti
ˇcinjenicu da ako je n potpun kvadrat, onda je n kvadratni ostatak modulo m
za svaki m koji relativno prost s n. Dakle, ako je n kvadratni neostatak po
nekom modulu, onda n sigurno nije kvadrat. Ova ideja se u praksi realizira
tako da se izabere nekoliko konkretnih modula, te se unaprijed izraˇcunaju
kvadrati u pripadnom prstenu.
Za modul m, generiramo pripadnu tablicu qm ovako:
for (0 ≤ k ≤ m−1) qm[k] = 0
for (0 ≤ k ≤ m/2|) qm[k
2
mod m] = 1
Jedna preporuˇcena kombinacije modula je 64, 63, 65, 11. Broj kvadrata u
Z
64
, Z
63
, Z
65
, Z
11
je redom 12, 16, 21, 6. Budu´ci da je
12
64

16
63

21
65

6
11
=
6
715
< 0.01 ,
vidimo da na ovaj naˇcin za viˇse od 99% brojeva ne moramo raˇcunati kvad-
ratni korijen da bi zakljuˇcili da nisu kvadrati. Redoslijed kojim testiramo
module dolazi od
12
64
<
16
63
<
21
65
<
6
11
,
tako da ´ce se za ve´cinu prirodnih brojeva program zaustaviti ve´c nakon prvog
testa modulo 64. Naravno da su mogu´ci i drugi izbori modula.
Algoritam za detekciju kvadrata
t = n mod 64
if (q64[t] = 0) then return n nije kvadrat
r = n mod 45045
if (q63[r mod 63] = 0) then return n nije kvadrat
if (q65[r mod 65] = 0) then return n nije kvadrat
if (q11[r mod 11] = 0) then return n nije kvadrat
q =

n| if (n = q
2
) them return n nije kvadrat
else return n je kvadrat;

n = q
Poglavlje 3
Eliptiˇcke krivulje
3.1 Grupovni zakon
Kada smo govorili o kriptosustavima zasnovanima na problemu diskretnog
logaritma, spomenili smo da je grupa toˇcaka na eliptiˇckoj krivulji nad konaˇc-
nim poljem jedna od najvaˇznijih grupa koje se koriste u kriptografiji. Pored
toga, eliptiˇcke krivulje igraju vaˇznu ulogu kod faktorizacije, te dokazivanja
prostosti, ˇsto su takoder vaˇzne teme u kriptografiji.
Neka je K polje. Op´cenito, eliptiˇcka krivulja nad K je nesingularna
kubna krivulja. Dakle, ona ima jednadˇzbu oblika
F(x, y) = ax
3
+bx
2
y +cxy
2
+dy
3
+ex
2
+fxy +gy
2
+hx +ix +j = 0,
gdje su koeficijenti a, b, c, . . . , j ∈ K, a nesingularnost znaˇci da je u svakoj
toˇcki na krivulji F(x, y) = 0, promatranoj nad algebarskim zatvorenjem od
K, barem jedna parcijalna derivacija funkcije F razliˇcita od 0. Svaka takva
jednadˇzba moˇze se biracionalnim transformacijama (racionalnim transfor-
macijama ˇciji je inverz takoder racionalna transformacija) svesti na oblik
y
2
+a
1
xy +a
3
y = x
3
+a
2
x
2
+a
4
x +a
6
,
koji zovemo Weierstrassova forma. Nadalje, ako je karakteristika polja K
razliˇcita od 2 i 3 (tj. 1 +1 = 0 i 1 +1 +1 = 0), onda se ova jednadˇzba moˇze
transformirati u oblik
y
2
= x
3
+ax +b,
koji zovemo kratka Weierstrassova forma. Uvjet nesingularnosti je sada da
kubni polinom f(x) = x
3
+ ax + b nema viˇsestrukih nultoˇcaka (u K), a to
je pak ekvivalentno uvjetu da je diskriminanata D = −4a
3
− 27b
2
razliˇcita
od 0.
U daljnjem ´ce za nas eliptiˇcka krivulja nad pojem K (karakteristike ra-
zliˇcite od 2 i 3) biti skup svih toˇcaka (x, y) ∈ K K koji zadovoljavaju
jednadˇzbu
E : y
2
= x
3
+ax +b,
44
Teorija brojeva u kriptografiji 45
gdje su a, b ∈ K i 4a
3
+ 27b
2
= 0, zajedno s ”toˇckom u beskonaˇcnosti” O.
Taj skup ´cemo oznaˇcavati s E(K).
Toˇcka u beskonaˇcnosti se pojavljuje prirodno ukoliko eliptiˇcku krivulju
prikaˇzemo u projektivnoj ravnini. Projektivnu ravninu P
2
(K) dobijemo tako
da na skupu K
3
` ¦(0, 0, 0)¦ uvedemo relaciju ekvivalencije (X, Y, Z) ∼
(kX, kY, kZ), k ∈ K, k = 0. Ako u (afinoj) jednadˇzbi eliptiˇcke krivulje
uvedemo supstituciju x =
X
Z
, y =
Y
Z
, dobivamo projektivnu jednadˇzbu
Y
2
Z = X
3
+aXZ
2
+bZ
3
.
Ako je Z = 0, onda klasa ekvivalencije od (X, Y, Z) ima reprezentant (x, y, 1),
pa tu klasu moˇzemo identificirati sa (x, y). Medutim, postoji i jedna klasa ek-
vivalencije koja sadrˇzi toˇcke za koje je Z = 0. Ona ima reprezentant (0, 1, 0)
i tu klasu identificiramo s toˇckom u beskonaˇcnosti O.
Kao ˇsto smo ve´c rekli u poglavlju 1.3, operacija (zbrajanje) na skupu
E(R) se uvodi ”geometrijski”, tako da su tri toˇcke na krivulji E kolinearne
ako i samo ako im je suma jednaka neutralnom elementu O. Naravno da
se ovaj geometrijski zakon moˇze opisati i eksplicitnim formulama za koordi-
nate zbroja toˇcaka. Tako dobivene formule onda mogu posluˇziti za definiciju
zbrajanja toˇcaka na eliptiˇckoj krivulji nad proizvoljnim poljem (uz malu
modifikaciju ako je karakteristika polja 2 ili 3). Navedimo sada te formule:
Neka je P = (x
1
, y
1
), Q = (x
2
, y
2
). Tada je
1) −O = O
2) −P = (x
1
, −y
1
)
3) O +P = P
4) ako je Q = −P, onda je P +Q = O
5) ako je Q = −P, onda je P +Q = (x
3
, y
3
), gdje je
x
3
= λ
2
−x
1
−x
2
, y
3
= −y
1
+λ(x
1
−x
3
),
λ =

y
2
−y
1
x
2
−x
1
, ako je x
2
= x
1
,
3x
2
1
+a
2y
1
, ako je x
2
= x
1
.
Broj λ je ”koeficijent smjera” pravca kroz P i Q, odnosno tangente u toˇcki
P u sluˇcaju P = Q.
Pokazuje se da je (E(K), +) abelova grupa. Sva svojstva abelove grupe
su evidentna, osim asocijativnosti ˇciji je dokaz neˇsto kompliciraniji.
Za primjene u kriptografiji, najvaˇzniji je sluˇcaj kada je K konaˇcno polje
F
q
. Posebno su vaˇzni sluˇcajevi q = p (prost broj) i q = 2
k
. S druge strane, u
teoriji brojeva najvaˇzniju ulogu imaju eliptiˇcke krivulje nad poljem racional-
nih brojeva Q.
Teorija brojeva u kriptografiji 46
3.2 Eliptiˇcke krivulje nad Q
Najvaˇzija ˇcinjenica o eliptiˇckim krivuljama nad Q jest Mordell-Weilov teo-
rem.
Teorem 3.1 (Mordell-Weil). E(Q) je konaˇcno generirana abelova grupa.
Mordell-Weilov teorem nam, drugim rijeˇcima, kaˇze da postoji konaˇcan
skup racionalnih toˇcaka P
1
, . . . , P
k
na E iz kojih se sve ostale racionalne
toˇcke na E mogu dobiti povlaˇce´ci sekante i tangente. Kako je svaka konaˇcno
generirana abelova grupa izomorfna produktu cikliˇckih grupa, dobivamo
sljede´cu neposrednu posljedicu Mordell-Weilovog teorema.
Korolar 3.2.
E(Q)

= E(Q)
tors
Z
r
Podgrupa E(Q)
tors
od E(Q) koja se sastoji od svih toˇcaka konaˇcnog reda
naziva se torzijska grupa od E, a nenegativni cijeli broj r se naziva rang od
E i oznaˇcava se s rank(E). Korolar nam kaˇze da postoji r racionalnih toˇcaka
P
1
, . . . , P
r
na krivulji E sa svojstvom da se svaka racionalna toˇcka P na E
moˇze prikazati u obliku
P = T +m
1
P
1
+ +m
r
P
r
,
gdje je T neka toˇcka konaˇcnog reda, a m
1
, . . . , m
r
cijeli brojevi. Ovdje m
1
P
1
oznaˇcava sumu P
1
+ +P
1
od m
1
pribrojnika, koja se ˇcesto oznaˇcava i sa
[m
1
]P
1
.
Postavlja se pitanje koje sve vrijednosti mogu poprimiti E(Q)
tors
i rank(E).
Nadalje, pitanje je kako ih izraˇcunati za konkretnu krivulju E. Pokazuje se
da je puno lakˇse dati odgovore na ova pitanja za torzijsku grupu, nego za
rang.
Mazur je 1978. godine dokazao da postoji toˇcno 15 mogu´cih torzijskih
grupa. To su grupe:
Z
n
, za n = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12
Z
2
Z
n
, za n = 2, 4, 6, 8.
Toˇcke reda 2 su upravo toˇcke s y-koordinatom jednakom 0. Moˇzemo
imati 0, 1 ili 3 takve toˇcke, ˇsto ovisi o broju racionalnih nultoˇcaka polinoma
x
3
+ax +b. Te toˇcke, zajedno s toˇckom O, ˇcine podgrupu od E(Q)
tors
koje
je ili trivijalna ili jednaka Z
2
ili jednaka Z
2
Z
2
. Ostale toˇcke konaˇcnog reda
moˇzemo na´ci pomo´cu sljede´ceg teorema.
Teorem 3.3 (Lutz-Nagell). Neka je eliptiˇcka krivulja E zadana jednadˇzbom
y
2
= x
3
+ax +b, a, b ∈ Z.
Ako je P = (x, y) ∈ E(Q)
tors
, onda su x, y cijeli brojevi, te vrijedi da je ili
y = 0 ili y
2
dijeli diskriminantu D.
Teorija brojeva u kriptografiji 47
Kao ˇsto smo ve´c napomenuli, pitanja koja se tiˇcu ranga su puno teˇza,
a zadovoljavaju´ci odgovori joˇs uvijek nisu poznati. Vjeruje se da rang moˇze
biti proizvoljno velik, tj. da za svaki M ∈ N postoji eliptiˇcka krivulja nad Q
takva da je rank(E) ≥ M. No, danas se tek zna da postoji eliptiˇcka krivulja
ranga ≥ 24. Tu su krivulju pronaˇsli Martin i McMillen 2000. godine.
Pitanje koliko velik moˇze biti rang je od interesa i za primjene eliptiˇckih
krivulja u kriptografiji. Naime, za problem diskretnog logaritma u grupi
Z

p
postoji subeksponencijalni algoritam, tzv. Index Calculus metoda. U toj
metodi se koristi ulaganje od Z

p
u prsten Z, te ˇcinjenica da prostih brojeva
(generatora od Z) ima ”mnogo”. Kad bi mogli na´ci eliptiˇcke krivulje jako
velikog ranga, onda bi na problem diskretnog logaritma u grupi E(F
p
) mogli
pokuˇsati primijeniti analogon Index Calculus metode tako ˇsto bi tu krivulje
uloˇzili u krivulju nad Q velikog ranga, ˇciji bi generatori igrali ulogu prostih
brojeva u originalnoj Index Calculus metodi. Procjenjuje se da bi za proste
brojeve p koji su danas u uporabi u kriptografiji (≈ 2
160
) trebali koristiti
krivulje ranga ve´ceg od 180.
Skoro sve ideje za konstrukciju eliptiˇckih krivulja (relativno) velikog
ranga zasnivaju se na idejama koje je uveo Jean-Francois Mestre. Prikazat
´cemo jednu njegovu konstrukciju kojom je 1991. godine dobio beskonaˇcno
mnogo eliptiˇckih krivulja ranga ≥ 11. Ta konstrukcija se obiˇcno naziva
Mestreova polinomijalna metoda. Polaziˇste u konstrukciji je sljede´ca ˇcinjenica.
Lema 3.4. Neka je p(x) ∈ Q[x] normiran polinom i deg p = 2n. Tada postoje
jedinstveni polinomi q(x), r(x) ∈ Q[x] takvi da je p = q
2
−r i deg r ≤ n −1.
Polinomq moˇzemo na´ci sukcesivnim raˇcunanjem koeficijenata ili iz asimp-
totskog razvoja od

p.
Pretpostavimo sada da je p(x) =
¸
2n
i=1
(x−a
i
), gdje su a
1
, . . . , a
2n
razliˇciti
racionalni brojevi. Tada na krivulji
C : y
2
= r(x)
leˇze toˇcke (a
i
, ±q(a
i
)), i = 1, . . . , 2n. Ako je deg r = 3 ili 4, te r(x) nema
viˇsestrukih korijena, onda C predstavlja eliptiˇcku krivulju. Za deg r = 3 to
je sasvim jasno. Ako je deg r = 4, onda izaberemo jednu racionalnu toˇcku na
C (npr. (a
1
, q(a
1
))) za toˇcku u beskonaˇcnosti i transformiramo C u eliptiˇcku
krivulju. Pokaˇzimo to na primjeru krivulje oblika y
2
= ax
4
+bx
3
+cx
2
+dx
koja ima racionalnu toˇcku (0, 0). Uz supstituciju x = 1/t, v = t
2
y, dobivamo
v
2
= dt
3
+ ct
2
+ bt + a. Mnoˇzenjem sa d
2
, dobivamo eliptiˇcku krivulju u
Weierstrassovoj formi V
2
= T
3
+cT
2
+bdT +ad
2
.
Za n = 5 skoro svi izbori a
i
-ova daju deg r = 4. Tada C ima 10 racional-
nih toˇcaka oblika (a
i
, q(a
i
)) i moˇzemo oˇcekivati da ´cemo dobiti eliptiˇcku
krivulju ranga ≥ 9. Meste je konstruirao familiju eliptiˇckih krivulja (tj.
eliptiˇcku krivulju nad poljem racionalnih funkcija Q(t)) ranga ≥ 11, tako
Teorija brojeva u kriptografiji 48
da je uzeo n = 6 i a
i
= b
i
+ t, i = 1, . . . 6; a
i
= b
i−6
− t, i = 7, . . . , 12.
Sada polinom r(x) op´cenito ima stupanj 5. Zato moˇzemo pokuˇsati izabrati
brojeve b
1
, . . . , b
6
tako da koeficijent uz x
5
bude jednak 0. U prvom Mestre-
ovom primjeru iz 1991. godine bilo je b
1
= −17, b
2
= −16, b
3
= 10, b
4
= 11,
b
5
= 14, b
6
= 17.
Kasnije su Mestre, Nagao i Kihara, koriste´ci sliˇcne konstrukcije, poboljˇsali
ovaj rezultat, tako da je danas rekord za rang nad Q(t) jednak 14. Sve ove
krivulje imaju trivijalnu torzijsku grupu. Fermigier i Kulesz su modificirali
Mestreovu metodu, te dobili familije krivulja s (relativno) velikim rangom i
netrivijalnom torzijskom grupom.
3.3 Eliptiˇcke krivulje nad konaˇcnim poljima
Za primjene u kriptogtafiji najvaˇzije su eliptiˇcke krivulje nad konaˇcnim
poljima. Konaˇcno polje s q elemenata oznaˇcava se s F
q
. Vaˇzni primjeri
konaˇcnih polja su polja F
p
, gdje je p prost broj. To su upravo polja Z
p
os-
tataka modulo p. Neka je karakteristika polja F
q
jednaka p. Tada F
q
sadrˇzi
prosto potpolje F
p
, i F
q
je vektorski prostor nad poljemF
p
. Ako s k oznaˇcimo
dimenziju od F
q
kao vektorskog prostora nad F
p
, onda je q = p
k
. Pokazuje
se da za svaku potenciju prostog broja q = p
k
postoji jedinstveno (do na
izomorfizam) polje s q elemenata. Jedna realizacija tog polja je Z
p
[x]/(f(x)),
gdje je f(x) neki ireducibilni polinom stupnja k nad Z
p
. Elementi ovog polja
su polinomi nad Z
p
stupnja ≤ k − 1, dok su pripadne operacije zbrajanje
i mnoˇzenje polinoma u Z
p
[x], s time da se nakon mnoˇzenja raˇcuna ostatak
pri dijeljenju s polinomom f(x).
Na ovom mjestu se moˇzemo pitati kako na´ci ireducibilni polinom stupnja
k nad Z
p
. Pokazuje se da normiranih ireducibilnih polinoma stupnja k nad
Z
p
ima pribliˇzno p
k
/k, tj. otprilike svaki k-ti normirani polinom stupnja k
nad Z
p
je ireducibilan. Testiranje da li je konkretni polinom ireducibilan
zasniva se na ˇcinjenici da je polinom f(x) stupnja k nad Z
p
ireducibilan
ako i samo ako je gcd(f(x), x
p
j
− x) = 1 za j = 1, 2, . . . k/2|. Posljednji
uvjet se provjerava Euklidovim algoritmom za polinome. Da bi operacije u
polju F
q
bile ˇsto efikasnije, obiˇcno se polinom f(x) bira tako da ima ˇsto
manju teˇzinu W (broj koeficijenata razliˇcitih od 0). U sluˇcaju q = 2
k
, koje
je najzanimljiviji za primjene u kriptografiji, ˇcini se da je uvijek mogu´ce
posti´ci da je W = 3 ili W = 5.
Neka je E eliptiˇcka krivulja nad konaˇcnim poljem F
q
, q = p
k
. Kao ˇsto
smo ve´c rekli, ako je p > 3, onda E ima jednadˇzbu oblika
y
2
= x
3
+ax +b.
Ako je p = 3, onda E ima jednadˇzbu oblika
y
2
= x
3
+ax
2
+bx +c,
Teorija brojeva u kriptografiji 49
a ako je p = 2, onda se E moˇze transformirati u jedan od slijede´ca dva oblika
y
2
+cy = x
3
+ax +b ili y
2
+xy = x
3
+ax
2
+b.
Postavlja se pitanje, ˇsto se moˇze re´ci op´cenito o grupi E(F
q
), tj. o njezi-
nom redu #E(F
q
) i strukturi. Lako je zakljuˇciti da je #E(F
q
) ∈ [1, 2q + 1].
Naime, na E imamo toˇcku O, a pored toga svakom od q mogu´cih x-eva odgo-
varaju najviˇse dva y-na. No, samo pola elemenata od F
q
imaju kvadratni
korijen (to su elementi oblika g
2n
, gdje je g generator (cikliˇcke) grupe F

q
),
pa moˇzemo oˇcekivati da je #E(F
q
) ≈ q + 1. Preciznu informaciju o redu
grupe E(F
q
) daje poznati Hasseov teorem.
Teorem 3.5 (Hasse).
q + 1 −2

q ≤ #E(F
q
) ≤ q + 1 + 2

q
Veliˇcina t = q+1−#E(F
q
) naziva se Frobeniusov trag. Prema Hasseovom
teoremu je [t[ ≤ 2

q. Hasseov teorem ne´cemo dokazivati, ali ´cemo pokuˇsati
dati heuristiˇcko objaˇsnjenje za pojavu

q u nejednakostima. Pretpostavimo
da je q = p. Tada je
#E(F
p
) = p + 1 +
¸
x∈F
p

x
3
+ax +b
p

. (3.1)
Zamislimo da Legendreov simbol (
x
3
+ax+b
p
) poprima vrijednosti 1 i −1 na
sluˇcajan naˇcin. Iz teorije vjerojatnosti (tzv. zakon ponovljenog logaritma)
poznato je da ako je X
k
niz nezavisnih sluˇcajnih varijabli koje poprimaju vri-
jednosti ±1, onda za njihovu sumu t(n) =
¸
k≤n
X
k
vrijedi (s vjerojatnoˇs´cu
1) da je
limsup
n→∞
t(n)

n
2
ln ln n
= 1.
Dakle, gornja ograda za t(n) je ”ugrubo” proporcionalna s

n, ˇsto se moˇze
usporediti s Hasseovim teoremom koji za gornju ogradu od t daje 2

q.
Vrijedi i svojevrstan obrat Hasseovog teorema (Dueringov teorem) koji
kaˇze da za svaki cijeli broj
m ∈ 'p + 1 −2

p, p + 1 + 2

p`
postoji eliptiˇcka krivulja nad F
p
takva da je #E(F
p
) = m.
U primjenama eliptiˇckih krivulja, ˇcesto biramo eliptiˇcke krivulje ˇciji red
ima neko zadano aritmetiˇcko svojstvo (prost je, ima samo male proste fak-
tore, i sl.). Pritom je jako vaˇzna ˇcinjenica, koju je dokazao Lenstra, a koja
kaˇze da su redovi #E(F
p
) za (a, b) ∈ F
p
F
p
skoro uniformno distribuirani
unutar intervala 'p −

p, p +

p` (centralne polovice Hasseovog intervala).
To znaˇci da ´ce red sluˇcajno odabrane eliptiˇcke krivulje nad F
p
imati zadano
Teorija brojeva u kriptografiji 50
svojstvo s pribliˇzno istom vjerojatnoˇs´cu kao i sluˇcajno odabran prirodan
broj reda veliˇcine kao p.
O mogu´cim redovima grupe E(F
q
) u op´cem sluˇcaju q = p
k
, govori sljede´ci
teorem.
Teorem 3.6. Neka je q = p
k
. Tada postoji eliptiˇcka krivulja E nad F
q
takva
da je #E(F
q
) = q + 1 −t ako i samo ako je [t[ ≤ 2

q i t zadovoljava jedan
od uvjeta:
1) (t, p) = 1
2) k je paran i t = ±2

q ili (t = ±

q i p ≡ 1 (mod 3)) ili (t = 0 i
p ≡ 1 (mod 4))
3) k je neparan i t = 0 ili (t = ±

2q i p = 2) ili (t = ±

3q i p = 3).
O strukturi grupa E(F
q
) govori sljede´ci teorem.
Teorem 3.7. Neka je E eliptiˇcka krivulja nad F
q
. Tada je
E(F
q
)

= Z
n
1
Zn
2
,
gdje su n
1
i n
2
prirodni brojevi i vrijedi n
1
[n
2
i n
1
[q −1.
Ako je n
1
= 1, onda je grupa E(F
q
) cikliˇcka. Iz uvjeta da n
1
[(n
2
, q −1),
zakljuˇcujemo da se moˇze oˇcekivati da ´ce op´cenito n
1
biti mali prirodan broj,
a grupa E(F
q
) ”skoro cikliˇcka”.
Recimo neˇsto o implimentaciji grupovne operacije na E(F
q
). Zadrˇzimo
se na sluˇcaju q = p > 3. Ako zboj dvije toˇcke P +Q raˇcunamo po formuli za
zbrajanje toˇcaka na krivulji zadanoj afinom jednadˇzbom, vidimo da trebamo
jednom raˇcunati inverz, te imamo joˇs ˇcetiri mnoˇzenja u polju. Kod raˇcunanja
P + P, ponovo imamo jedan inverz, te joˇs ˇcetiri mnoˇzenja (od kojih su
dva kvadriranja). Znamo da se inverz moˇze izraˇcunati pomo´cu Euklidovog
algoritma. Iako je njegova sloˇzenost teoretski ista kao sloˇzenost mnoˇzenja, u
praksi je mnoˇzenje ipak znatno brˇze od raˇcunja inverza. Raˇcunanje inverza
se moˇze izbje´ci koriˇstenjem tzv. teˇzinskih projektivnih koordinata u kojima
projektivnoj toˇcki (X, Y, Z) odgovara afina toˇcka (
X
Z
2
,
Y
Z
3
) (prvoj koordinati
smo dali teˇzinu 2, a drugoj 3). Tada jednadˇzba eliptiˇcke krivulje postaje
Y
2
= X
3
+aXZ
4
+bZ
6
.
U ovim novim koordinatama se kod raˇcunanja zbroja toˇcaka uop´ce ne po-
javljuje dijeljenje. Zbroj P +Q se moˇze izraˇcunati uz 16 mnoˇzenja, a zbroj
P + P uz 10 mnoˇzenja. Neka je P = (X
1
, Y
1
, Z
1
). Dat ´cemo formule za
raˇcunanje koordinata (X
2
, Y
2
, Z
2
) toˇcke P +P:
λ
1
= 3X
2
1
+aZ
4
1
, λ
2
= 4X
1
Y
2
1
, λ
3
= 8Y
4
1
,
X
2
= λ
1
−2λ
2
, Y
2
= λ
1

2
−x
2
) −λ
3
, Z
2
= 2Y
1
Z
1
.
Teorija brojeva u kriptografiji 51
U primjenama eliptiˇckih krivulja ˇcesto je potrebno izraˇcunati viˇsekratnik
neke toˇcke P, tj. toˇcku
[m]P = P +P + +P
. .. .
m pribrojnika
.
To se moˇze efikasno napraviti pomo´cu algoritama za potenciranje u abelovim
grupama koje smo obradili u poglavlju 2.3. Posebno je pritom koristan SD
prikaz broja m, budu´ci da je grupa eliptiˇcke krivulje primjer grupe u ko-
joj je invertiranje (raˇcuanje toˇcke −P) vrlo jednostavno. Broj operacija za
raˇcunanje [m]P za eliptiˇcku krivulju nad poljem F
q
je O(ln mln
2
q).
3.4 Raˇcunanje reda grupe E(F
q
)
Ho´ce li konkretna eliptiˇcka krivulja biti prikladna za primjene u kriptografiji,
ovisi prvenstveno o redu grupe E(F
q
). Da bi problem diskretnog logaritma
u toj grupi bio dovoljno teˇzak, #E(F
q
) bi trebao imati barem jedan prosti
faktor ve´ci od 2
160
. Obiˇcno se koriste krivulje kod kojih je #E(F
q
) oblika
h r, gdje je r prost broj, a h mali prirodan broj.
Za krivulje specijalnog oblika poznati su efikasni algoritmi za problem
diskretnog logaritma. To su tzv. anomalne krivulje kod kojih je t = 1, tj.
#E(F
q
) = q, te supersingularne krivulje kod kojih p[t, ˇsto za p > 3 znaˇci
da je #E(F
p
) = p + 1. Stoga takve krivulje nisu prikladne za primjene u
kriptografiji.
Re´ci ´cemo sada neˇsto o metodama za odredivanje reda #E(F
q
).
Prva metoda koju ´cemo spomenuti koristi Legendreov simbol (odnosno
njegovo poop´ceneje za F
q
), tj. formulu
#E(F
q
) = p + 1 +
¸
x∈F
q

x
3
+ax +b
p

.
Sloˇzenost ovog algoritma je O(p ln
2
p), ˇsto moˇzemo pisati i kao O(p
1+ε
), gdje
je ε proizvoljno mala pozitivna konstanta. Ovaj algoritam je efikasan samo
za vrlo male p-ove, a praktiˇciki je neprimjenjiv za p > 10000.
Prikat ´cemo sada Schanks-Mestreovu metodu ˇcija je sloˇzenost O(p
1/4+ε
)
i koja je u praksi primjenjiva za p < 10
30
.
Iz Hasseovog teorema znamo da je #E(F
p
) = p+1−t, [t[ ≤ 2

p. Izaber-
imo sluˇcajnu toˇcku P ∈ E(F
p
).
ˇ
Zelimo na´ci broj N ∈ 'p+1−2

p, p+1+2

p`
takav da je [N]P = O. Takav broj N sigurno postoji jer, po Lagrengeovom
teoremu, red od P dijeli #E(F
p
). Ako je red od P ve´ci od 4

p, onda
je takav N jedinstven i jednak je #E(F
p
). Naivan naˇcin za pronalaˇzenje
broja N bio bi da ispitamo svih 4

p| mogu´cih brojeva. Bolji naˇcin se za-
sniva na tzv. Shanksovoj ”baby step - giant step” (BSGS) metodi. Neka je
Teorija brojeva u kriptografiji 52
Q = [p + 1 + 2

p|]P. Tada za broj n = p + 1 + 2

p| − N vrijedi da je
0 ≤ n ≤ 4

p i
[n]P = [p + 1 +2

p| −N]P = Q.
Dakle, zapravo trebamo rijeˇsiti problem diskretnog logaritma. Iako za taj
problem nemamo jako efikasan algoritam, ipak ga BSGS metodom moˇzemo
rijeˇsiti efikasnije nego da redom uvrˇstavamo sve mogu´ce n-ove. Neka je m =
2p
1/4
|. Tada je n < m
2
, pa n moˇzemo prikazati u obliku
n = im+j, 0 ≤ i ≤ m−1, 0 ≤ j ≤ m−1.
”Mali koraci” (baby steps) se sastoje u raˇcunanju toˇcaka [j]P, 0 ≤ j ≤ m−1
(nova toˇcka dobiva se iz stare dodavanjem P - mali korak). ”Veliki koraci”
(giant steps) se sastoje u raˇcunanju toˇcaka Q − [i]([m]P), 0 ≤ i ≤ m − 1
(nova toˇcka dobiva se iz stare oduzimanjem [m]P - veliki korak). Za svaki i
testiramo postoji li j takav da je
Q−[i]([m]P) = [j]P.
Kada takve i, j pronademo, tada je traˇzeni n jednak im+j. Dakle, imamo
sljede´ci algoritam:
Shanks-Mestreova metoda:
m = 2p
1/4
|
P ∈ E(F
p
), [P[ > 4

p
Q = [p + 1 +2

p|]P
for (0 ≤ j ≤ m−1)
izraˇcunaj i spremi [j]P
for (0 ≤ i ≤ m−1) ¦
if (Q−[i]([m]P) = [j]P za neki 0 ≤ j ≤ m−1) then
t = im+j −2

p| ¦
return t
Primjer 3.1. Zadana je krivulja
E : y
2
= x
3
+ 3x + 5
nad poljem F
163
. Odrediti red grupe E(F
163
).
Ovdje je m = 8. Uzmimo P = (1, 3). Tada je Q = [163 + 1 + 25]P =
(106, 61). U sljede´coj tablici su prikazani ”mali koraci”:
j 0 1 2 3 4 5 6 7
[j]P O (1, 3) (162, 162) (4, 154) (11, 37) (143, 101) (77, 80) (118, 5)
Izraˇcunamo R = [8]P = (97, 150). ”Veliki koraci” su prikazani u sljede´coj
tablici:
Teorija brojeva u kriptografiji 53
i 0 1 2 3 4 5 6 7
Q − [i]R (106, 61) (79, 83) (145, 65) (118, 5) (1, 160) (142, 61) (7, 83) (124, 8)
Dakle, n = 3 8 + 7 = 31, t = 31 − 25 = 6 i konaˇcno #E(F
163
) =
163 + 1 −6 = 158.
Ako je red toˇcke P manji od 4

p, onda nam ´ce nam ovaj algoritam dati
viˇse mogu´cih kandidata za red grupe #E(F
p
). Dakle, postavlja se pitanje
postoji li toˇcka P ∈ E(F
p
) ˇciji je red P ve´ci od 4

p. Potvrdan odgovor
na ovo pitanje dao je Mestre. Da bi formulirali njegov rezultat, treba nam
pojam ”twista”. Za eliptiˇcku krivulju E na poljem K danu jednadˇzbom
y
2
= x
3
+ax+b i g ∈ F

p
, (kvadratni) twist od E s g je eliptiˇcka krivulja ˇcija
je jednadˇzba gy
2
= x
3
+ax +b, odnosno, iz supstituciju X = gx, Y = g
2
y,
Y
2
= X
3
+ g
2
aX + g
3
b. U sluˇcaju kada je K = F
p
, onda svi twistovi od E
ˇcine dvije klase izomorfnih krivulja. One kod kojih je g kvadratni ostatak
modulo p izomorfne su s E, dok su sve one kod kojih je g kvadratni neostatak
modulo p izomorfne jednoj drugoj krivulji koju ´cemo oznaˇciti s E

. Iz formule
za prikaz #E(F
p
) pomo´cu Legendreovih simbola, direktno slijedi da je
#E(F
p
) + #E

(F
p
) = 2p + 2.
To znaˇci da ako znamo red od #E(F
p
), onda znamo i red od #E

(F
p
), i
obrnuto. Sada moˇzemo navesti gore najavljeni Mestreov rezultat koji kaˇze
da ako je p > 457, onda postoji toˇcka reda ve´ceg od 4

p na barem jednoj
od krivulja E i E

.
ˇ
Stoviˇse, takvih toˇcaka ima relativno mnogo (ima ih viˇse
od c ln p/ ln ln p za neku konstantu c).
Prvi polinomijalni algoritam za raˇcunanje reda grupe E(F
q
) dao je Schoof
1995. godine. Taj algoritam imao je sloˇzenost O(ln
8
q). Kasnije su Atkin
i Elkies poboljˇsali Schoofov algoritam do sloˇzenosti O(ln
6
q), pa je danas
mogu´ce izraˇcunati red grupe E(F
p
) za proste brojeve p < 10
500
. Vrlo kratko
´cemo spomenuti neke od ideja koje se koriste u Schoofovom algoritmu. Po-
lazna ideja je raˇcunanje broja t tako da se izraˇcuna t mod l za male proste
brojeve l. Ako je l
max
najmanji prosti broj takav da je
¸
l prost
l ≤l
max
l > 4

q,
onda iz poznavanja t mod l za 2 ≤ l ≤ l
max
, pomo´cu Kineskog teorema o
ostatcima moˇzemo izraˇcunati t. Broj l
max
je reda veliˇcine O(ln q), pa je broj
kongruencija u pripadnom sustavu O(
ln q
ln lnq
). U odredivanju t mod l koristi
se tzv. Frobeniousov endomorfizam. To je preslikavanje ϕ : E(F
q
) → E(F
q
)
zadano sa ϕ(x, y) = (x
q
, y
q
), ϕ(O) = O. Frobeniusov endomorfizam ϕ i
Frobeniusov trag t povezani su relacijom
ϕ
2
−[t]ϕ + [q] = [0],
Teorija brojeva u kriptografiji 54
tj. za svaku toˇcku P = (x, y) ∈ E(F
q
) vrijedi
(x
q
2
, y
q
2
) −[t](x
q
, y
q
) + [q](x, y) = O.
Neka je toˇcka P ∈ E(F
q
) takva da je [l]P = O, te neka je q
l
= q mod l. Ako
za τ ∈ 0, 1, . . . , l −1 vrijedi ϕ
2
(P) + [q
l
]P = [τ]ϕ(P), onda je t mod l = τ.
Poglavlje 4
Testiranje i dokazivanje
prostosti
4.1 Distribucija prostih brojeva
Definicija 4.1. Za prirodan broj p koji ima toˇcno dva djelitelja 1 i p kaˇzemo
da je prost. Za prirodan broj n > 1 koji nije prost kaˇzemo da je sloˇzen.
Prvi dokaz da prostih brojeva ima beskonaˇcno mnogo dao je Euklid
oko 300. godine prije Krista. Njegov dokaz se zasniva na ˇcinjenici da svaki
prirodan broj ima barem jedan prosti djelitelj. Pa ako bi p
1
, p
2
, . . . , p
m
bili
svi prosti brojevi, onda broj n = p
1
p
2
p
m
+1 ne bi imao niti jedan prosti
djelitelj.
Za x ∈ R, sa π(x) ´cemo oznaˇcavati broj prostih brojeva koji su ≤ x.
Osnovni rezultat o distribuciji prostih brojeva je teorem o prostim brojevima
(PNT) koji kaˇze da je
π(x) ∼
x
ln x
.
Ovu ˇcinjenicu je prvi naslutio Gauss, a dokazali su je neovisno Hadamard i
de la Vall´ee Poussin 1896. godine.
Joˇs bolja aproksimacija za funkciju π(x) je tzv. logaritamsko-integralna
funkcija
li(x) =

x
2
1
ln t
dt.
Po L’Hopitalovom pravilu neposredno dobivamo da je
lim
x→∞
li(x)
x/ ln(x)
= 1.
Stoga je PNT ekvivalentan sa π(x) ∼ li(x).
Slijede´ci vaˇzan rezultat kojeg ´cemo spomenuti je Dirichletov teorem o
prostim brojevima u aritmetiˇckom nizu. On kaˇze da svaki aritmetiˇcki niz
55
Teorija brojeva u kriptografiji 56
kojem su poˇcetni ˇclan i diferencija relativno prosti sadrˇzi beskonaˇcno mnogo
prostih brojeva. Preciznije, ako π(x; d, a) oznaˇcava broj prostih brojeva p ≤
x koji zadovoljavaju p ≡ a (mod d), onda vrijedi
π(x; d, a) ∼
1
ϕ(d)
x
ln x
.
Dakle, moˇzemo re´ci da svaka klasa reduciranih ostataka modulo d sadrˇzi
podjednako mnogo prostih brojeva.
Vaˇzno sredstvo u prouˇcavanju distribucije prostih brojeva je Riemannova
zeta funkcija, koja je definirana sa
ζ(s) =

¸
n=1
1
n
s
.
Ovaj red konvergira apsolutno za Re(s) > 1. Ovako definirana funkcija moˇze
se proˇsiriti do meromorfne funkcije na cijeloj kompleksnoj ravnini, koja je-
dini pol (jednostruki) ima u s = 1 i pripadni reziduum je jednak 1. To znaˇci
da je funkcija f(s) = (s − 1)ζ(s) analitiˇcka na C i f(1) = 1. Proˇsirenje se
najprije napravi za Re(s) > 0 pomo´cu formule
ζ(s) =
s
s −1
−s


1
x −x|
x
s+1
dx,
dok se za Re(s) ≤ 0 koristi funkcionalna jednadˇzba
ζ(s) = 2
s
π
s−1
Γ(1 −s)ζ(1 −s) sin(
πs
2
) .
Ova funkcija ima oˇcite nultoˇcke u s = −2, −4, −6, . . ., dok se sve ostale
nultoˇcke nalaze unutar ”kritiˇcne trake” 0 < Re(s) < 1. Znamenita Rieman-
nova slutnja (RH) glasi da sve nultoˇcke funkcije ζ(s) u kritiˇcnoj traci leˇze
na pravcu Re(s) =
1
2
.
Veza Riemannove zeta funkcije i prostih brojeva dolazi preko Eulerove
produktne formule
ζ(s) =
¸
p prost
(1 −p
−s
)
−1
,
koja je neposredna posljedica teorema o jednoznaˇcnoj faktorizaciji na proste
faktore. Svaka informacija o funkciji ζ nam stoga daje neku informaciju
o distribuciji prostih brojeva. Tako ˇcinjenica da ζ(s) nema nultoˇcaka na
pravcu Re(s) = 1 povlaˇci PNT, dok je Riemannova slutnja ekvivalentna sa
sljede´com ocjenom
π(x) = li(x) +O(x
1/2+ε
), ∀ε > 0.
Preciznije, ova ocjena za konkretni ε je ekvivalentna s tvrdnjom da ζ(s)
nema nultoˇcaka u poluravnini Re(s) >
1
2
+ε.
Teorija brojeva u kriptografiji 57
Kod ocjene veliˇcine najmanjeg kvadratnog ostatka modulo p, spominjali
smo proˇsirenu Riemannovu slutnju (ERH). Ona se odnosi na funkcije koje
se dobiju modifikacijom funkcije ζ. Neka je d ∈ N i χ : Z → C funkcija sa
svojstvima
1) χ(mn) = χ(m)χ(n) za sve m, n ∈ Z
2) χ je periodiˇcna s periodom d
3) χ(n) = 0 ako i samo ako je (n, d) > 1.
Tada se χ naziva Dirichletov karakter modulo d. Jedan primjer Dirichletovog
karaktera je Jacobijev simbol (
n
d
) za neparan broj d > 1. Op´cenito, ako je
(n, d) = 1, onda je χ(n)
ϕ(d)
= χ(n
ϕ(d)
) = χ(1) = 1. Stoga je χ(n) neki
korijen iz jedinice. Postoji toˇcno ϕ(d) Dirichletovih karaktera modulo d.
Uvjerimo se u to u sluˇcaju kada je d = p prost broj. Neka je g primitivni
korijen modulo p. Tada je, zbog multiplikativnosti, χ u potpunosti odreden
sa χ(g). No, za χ(g) moˇzemo izabrati bilo koji kompleksan broj η takav da
je η
ϕ(p)
= 1, a takvih brojeva ima ϕ(p) = p −1.
Dirichletova L-funkcija se definira sa
L(s, χ) =

¸
n=1
χ(n)
n
s
,
gdje je χ Dirichletov karakter. Sada proˇsirena Riemannova slutnja glasi da,
za proizvoljan Dirichletov karakter χ, sve nultoˇcke funkcije L(s, χ) u polu-
ravnini Re(s) > 0 leˇze na pravcu Re(s) =
1
2
.
4.2 Pseudoprosti brojevi
Vidjeli smo da se u konstrukciji ve´cine kriptosustava s javnim kljuˇcem kre´ce
od jednog ili viˇse velikih prostih brojeva. Stoga se postavlja pitanje kako za
dani prirodan broj odrediti je li prost ili je sloˇzen. U ovom poglavlju ´cemo
govoriti o tzv. testovima prostosti. To su kriteriji koje broj p mora zadovoljiti
da bi bio prost. Dakle, ako p ne zadovolji neki od tih kriterija, onda je sigurno
sloˇzen, a ako ih zadovolji, onda je ”vjerojatno prost”, ˇsto znaˇci da je vrlo
velika vjerojatnost da je p prost. Neˇsto kasnije ´cemo prikazati i neke od
metoda pomo´cu kojih je mogu´ce egzakztno dokazati da je neki broj prost.
No, u primjenama se najˇceˇs´ce zadovoljavamo s brojevima za koje je vrlo
velika vjerojatnost da su prosti. Vaˇzno je napomenuti da su ovi vjerojatnosni
testovi puno brˇzi od svih poznatih metoda za dokazivanje prostosti.
Razlog za ovo razlikovanje testiranja i dokazivanja prostosti leˇzi u tome
ˇsto teoremi koji u potpunosti karakteriziraju proste brojeve (npr. Wilsonov
teorem: p je prost ako i samo ako p dijeli (p − 1)! + 1) nisu jednostavni
za provjeru. S druge strane, neka vaˇzna svojstva prostih brojeva su vrlo
jednostavna za provjeru, ali ne karakteriziraju proste brojeve, tj. postoje i
neki sloˇzeni koji imaju to svojstvo. Tipiˇcan i vaˇzan primjer takvog svojstva
Teorija brojeva u kriptografiji 58
je Mali Fermatov teorem koji kaˇze da ako je p prost broj, onda za svaki cijeli
broj b vrijedi
b
p
≡ b (mod p), (4.1)
tj. b
p−1
≡ 1 (mod p) ako p ne dijeli b. Za efikasnost provjere ovog svojstva
vaˇzna je ˇcinjenica da se modularno potenciranje moˇze vrlo efikasno provesti.
No, obrat ovog teorema ne vrijedi. Naime, p moˇze biti sloˇzen, a da ipak za
neki (pa ˇcak i za svaki) b vrijedi relacija (4.1).
Definicija 4.2. Kaˇzemo da je sloˇzen broj n pseudoprost u bazi b (kra´ce: n
je psp(b)) ako je
b
n
≡ b (mod n).
Npr. 341 = 11 31 je psp(2), 91 = 7 13 je psp(3).
Postavlja se pitanje koliko ima pseudoprostih brojeva u bazi b. Erd˝os
je dokazao da za broj psp(b) brojeva koji su ≤ x vrijedi ocjena o(π(x)),
tj. pseudoprosti brojevi su ”rijedi” od prostih brojeva. Pa ipak i njih ima
beskonaˇcno mnogo.
Teorem 4.1. Za svaki prirodan broj b ≥ 2 postoji beskonaˇcno mnogo pseu-
doprostih brojeva u bazi b.
Dokaz: Neka je p bilo koji neparan prost broj koji ne dijeli b
2
− 1. Pro-
motrimo broj n =
b
2p
−1
b
2
−1
. Budu´ci da je
n =
b
p
−1
b −1
b
p
+ 1
b + 1
,
vidimo da je n sloˇzen. Iz Malog Fermatovog teorema slijedi b
2p
≡ b
2
(mod p).
Dakle, p dijeli b
2p
− b
2
= (n − 1)(b
2
− 1). No, kako p ne dijeli b
2
− 1, to
zakljuˇcujemo da p[n−1. Nadalje, n−1 = b
2p−2
+b
2p−4
+ +b
2
je suma od
p−1 pribrojnika iste parnosti, pa je stoga n−1 paran broj. Dakle, 2p[n−1,
pa kako n dijeli b
2p
−1, to n mora dijeliti i b
n−1
−1. Stoga je b
n
≡ b (mod n).
Postojanje pseudoprostih brojeva nam pokazuje da testiranje samo s
jednom bazom nije dovoljno da bi zakljuˇcili da je broj prost. Zato moˇzemo
pokuˇsati kombinirati viˇse baza. Tako je npr. 341 psp(2), a nije psp(3), dok
je 91 psp(3), a nije psp(2). No, broj 561 = 3 11 17 je pseudoprost u
svakoj bazi. Takvi brojevi se zovu Carmichaelovi brojevi. Ukoliko je poznata
faktorizacija od n, onda je lako ustanoviti da li je on Carmichaelov broj.
Naime, Korseltov kriterij kaˇze da je n Carmichaelov ako i samo ako je n
sloˇzen, kvadratno slobodan i za svaki prosti faktor p od n vrijedi da p − 1
dijeli n − 1. Odavde neposredno slijedi da n mora biti produkt od barem
tri razliˇcita prosta broja. Zaista, kako je n kvadratno slobodan, to on mora
biti produkt razliˇcitih prostih brojeva. Ostaje za vidjeti zaˇsto n ne moˇze biti
produkt od dva prosta broja. Pretpostavimo da je n = pq, p < q. Tada je
Teorija brojeva u kriptografiji 59
n −1 = pq −1 ≡ p −1 ≡ 0 (mod q −1), ˇsto je u suprotnosti s Korseltovim
kriterijem.
Poznato je da postoji beskonaˇcno mnogo Carmichaelovih brojeva. Ozna-
ˇcimo s C(x) broj Carmichaelovih brojeva koji su ≤ x. Alford, Granville i
Pomerance su 1994. godine dokazali da je C(x) > x
2/7
. Erd˝os je postavio
slutnju da za svaki ε > 0 postoji x
0
(ε) takav da je C(x) > x
1−ε
za x ≥ x
0
(ε).
Postojanje Carmichaelovih brojeva pokazuje vaˇzan nedostatak testiranja
prostosti na osnovu Malog Fermatovog teorema. Sada ´cemo pokazati kako
se malim modificiranjem testa taj nedostatak moˇze ukloniti.
Neka je n neparan prirodan broj, (b, n) = 1, te b
n−1
≡ 1 (mod n). Budu´ci
da je n−1 paran, moˇzemo pokuˇsati ”vaditi drugi korijen” iz ove kongruencije,
tj. raˇcunati b
(n−1)/2
, b
(n−1)/4
, . . .. Pretpostavimo da u i-tom koraku prvi
put dobijemo na desnoj strani neˇsto razliˇcito od 1, recimo b
(n−1)/2
i
≡ a
(mod n). Tada ako je n prost, onda mora biti a = −1 jer je b
(n−1)/2
i−1
≡ 1
(mod n), a jedina rjeˇsenja kongruencije x
2
≡ 1 (mod n) ako je n prost su
x ≡ ±1 (mod n). Dakle, kombiniraju´ci mali Fermatov teorem sa svojstvom
kongruencije x
2
≡ 1 (mod p) dobivamo jaˇci zahtjev od onog iz definicije
pseudoprostih brojeva.
Definicija 4.3. Neka je n neparan sloˇzen broj, te neka je n − 1 = 2
s
t,
gdje je t neparan. Ako za cijeli broj b vrijedi
b
t
≡ 1 (mod n) ili postoji r, 0 ≤ r < s takav da je b
2
r
·t
≡ −1 (mod n), (4.2)
onda kaˇzemo da je n jaki pseudoprosti broj u bazi b (ili da je n spsp(b)).
Ako uvjet (4.2) nije ispunjen za neki b, 0 < b < n, tada je broj n sloˇzen.
U tom sluˇcaju broj b zovemo svjedok sloˇzenosti od n.
Svaki spsp(b) je ujedno i psp(b). Obrat ne vrijedi. Npr. n = 341 je psp(2),
ali nije spsp(2). Zaista, 340 = 2
2
85, dok je 2
85
≡ 32 (mod 341) i 2
170
≡ 1
(mod 341). Kao primjer jakog pseudoprostog broja navedimo npr. da je 91
spsp(10) jer je 10
45
≡ −1 (mod 91). Pojam jakog pseudoprostog broja uveo
je Selfridge 1974. godine. No, pravu snagu testu zasnovanom na njemu daje
sljede´ci teorem koji su neovisno dokazali Monier i Rabin 1980. godine.
Teorem 4.2. Neka je n neparan sloˇzen broj. Tada je n jaki pseudoprosti
broj u bazi b za najviˇse (n −1)/4 baza b, 0 < b < n.
Teorem 4.2 nam pokazuje da u sluˇcaju jakih pseudoprostih brojeva ne
postoji analogon Carmichaelovih brojeva. Dakle, nemogu´ce da sloˇzen broj
bude jaki pseudoprosti broj u svakoj bazi.
Prije dokaza teorema 4.2 dokaˇzimo lemu koja ´ce nam dati potrebne
informacije o kongruencijama oblika x
m
≡ ±1 (mod n). Sa ν
m
(t) ´cemo
oznaˇcavati najve´ci cijeli broj k takav da m
k
dijeli t.
Teorija brojeva u kriptografiji 60
Lema 4.3. Neka je n = p
α
1
1
p
α
r
r
neparan broj, te neka je
ν = min¦ν
2
(p
i
−1) : i = 1, . . . , r¦ i s =
r
¸
i=1
(m, ϕ(p
α
i
i
)).
Tada vrijedi:
(1) Kongruencija x
m
≡ 1 (mod n) ima toˇcno s rjeˇsenja.
(2) Kongruencija x
m
≡ −1 (mod n) ima rjeˇsenja ako i samo ako je
ν
2
(m) < ν.
(3) Ako kongruencija x
m
≡ −1 (mod n) ima rjeˇsenja, onda ih ima
toˇcno s.
Dokaz: Neka je g
i
primitivni korijen modulo p
α
i
i
. To znaˇci da za svaki
x ∈ ¦1, ..., p
α
i
i
−1¦ koji nije djeljiv s p postoji j takav da je g
j
i
≡ x(mod p
α
i
i
).
Oznaˇcimo taj j s ind
g
i
x. Sada je kongruencija x
m
≡ c(mod n) ekvivalentna
sustavu kongruencija
m ind
g
i
x ≡ ind
g
i
c (mod ϕ(p
α
i
i
)), i = 1, . . . , r.
Za c = 1 je ind
g
i
1 = 0, pa sustav postaje
m ind
g
i
x ≡ 0 (mod ϕ(p
α
i
i
)), i = 1, . . . , r.
Ovo su linearne kongruencije i i-ta ima (m, ϕ(p
α
i
i
)) rjeˇsenja. Stoga je ukupan
broj rjeˇsenja sustava jednak s.
Za c = −1 je ind
g
i
(−1) =
ϕ(p
α
i
i
)
2
, pa gornji sustav postaje
m ind
g
i
x ≡
ϕ(p
α
i
i
)
2
(mod ϕ(p
α
i
i
)), i = 1, . . . , r.
Sada iz svojstava linearnih kongruencija zakljuˇcujemo da ako ovaj sustav ima
rjeˇsenja, onda ih ima s, a nuˇzan i dovoljan uvjet za postojanje rjeˇsenja je da
za svaki i broj (m, ϕ(p
α
i
i
)) dijeli
ϕ(p
α
i
i
)
2
. Odavde imamo da (2
ν
2
(m)
m
1
, p
α
i
−1
i

2
ν
2
(p−1)
q
i
) dijeli p
α
i
−1
i
2
ν
2
(p−1)−1
q
i
, gdje su m
1
i q
i
neparni brojevi. No, ovo
je oˇcito ekvivalentno s ν
2
(m) < ν
2
(p
i
−1) za i = 1, . . . , r, tj. s ν
2
(m) < ν.
Dokaz teorema 4.2:
1. sluˇcaj: n nije kvadratno slobodan
Neka je n = p
2
q, gdje je p prost. Ako je n spsp(b), onda vrijedi b
n−1
≡ 1
(mod n). Tada je i b
n−1
≡ 1 (mod p
2
). Po lemi 4.3, ova kongruencija ima
d = (p(p − 1), n − 1) rjeˇsenja. Budu´ci da p[n, to p ne dijeli n − 1. Zato je
d ≤ p −1. Stoga je broj baza b za koje je n psp(b)
≤ d q ≤ (p −1)q =
(p
2
−1)q
p + 1

n −1
4
.
Ovdje jednakost vrijedi samo za n = 9.
Teorija brojeva u kriptografiji 61
2. sluˇcaj: n = p q, gdje su p i q razliˇciti prosti brojevi
Neka je p − 1 = 2
u
v, q − 1 = 2
w
z, gdje su v i z neparni, te u ≤ w.
Pretpostavimo da je b
t
≡ 1 (mod n). Po lemi 4.3, takvih baza ima (t, v)
(t, z) ≤ vz. Pretpostavimo sada da je b
2
r
t
≡ −1 (mod n) za neki r, 0 ≤ r <
s. Po lemi 4.3, ova kongruencija ima rjeˇsenja ako i samo ako je r < u, a broj
rjeˇsenja je 2
r
(t, v) 2
r
(t, z) ≤ 4
r
vz. Budu´ci da je n − 1 > ϕ(n) = 2
u+w
vz,
slijedi da prirodnih brojeva b, 0 < b < n, za koje je n spsp(b) ima najviˇse
vz +
u−1
¸
r=0
4
r
vz = vz

1 +
4
u
−1
3

< (n −1) 2
−u−w

4
u
+ 2
3
.
Ako je u < w, onda je desna strana ove nejednakosti
≤ (n −1) 2
−2u−1

2
3
+
4
u
3

≤ (n −1)

1
8

2
3
+
1
6

=
n −1
4
.
Ako je u = w, onda barem jedna od nejednakosti (t, v) ≤ v, (t, z) ≤ z mora
biti stroga, jer bi inaˇce imali 0 ≡ 2
s
t ≡ pq − 1 ≡ q − 1 (mod v), pa bi iz
v[q −1 = 2
w
z slijedilo da v[z. Analogno bi dobili da z[v, ˇsto bi znaˇcilo da je
v = z i p = q, ˇsto je kontradikcija.
Dakle, u gornjim ocjenama moˇzemo zamijeniti vz sa
vz
3
. To dovodi do
sljede´ce gornje ograde za broj baza b za koje je n spsp(b):
(n −1)
1
3
2
−2u

2
3
+
4
u
3

= (n −1)

1
18
+
1
9

=
n −1
6
<
n −1
4
.
3. sluˇcaj: n = p
1
p
2
p
k
, gdje je k ≥ 3, a p
i
-ovi su razliˇciti prosti
brojevi
Neka je p
j
−1 = 2
s
j
t
j
, t
j
neparan. Postupimo kao u 2. sluˇcaju. Moˇzemo
pretpostaviti da je s
1
≤ s
j
, ∀j. Dobivamo sljede´cu gornju ogradu za broj
baza b takvih da je n spsp(b):
(n −1)2
−s
1
−s
2
−···−s
k

1 +
2
ks
1
−1
2
k
−1

≤ (n −1)2
−ks
1

2
k
−2
2
k
−1
+
2
ks
1
2
k
−1

=(n −1)

2
−ks
1
2
k
−2
2
k
−1
+
1
2
k
−1

≤ (n −1)

2
−k
2
k
−2
2
k
−1
+
1
2
k
−1

=(n −1)
1
2
k−1

n −1
4
.
Miller-Rabinov test prostosti: Neka je n neparan broj za kojeg
ˇzelimo ustanoviti je li prost ili sloˇzen. Neka je n−1 = 2
s
t, gdje je t neparan.
Na sluˇcajan naˇcin izaberemo b, 0 < b < n. Izraˇcunamo b
t
mod n. Ako dobi-
jemo ±1, zakljuˇcujemo da je n proˇsao test, te biramo sljede´ci b. U protivnom,
uzastopno kvadriramo b
t
modulo n sve dok ne dobijemo rezultat −1. Ako
Teorija brojeva u kriptografiji 62
dobijemo −1, onda je n proˇsao test. Ako nikad ne dobijemo −1, tj. ako do-
bijemo da je b
2
r+1
t
≡ 1 (mod n), ali b
2
r
t
≡ −1 (mod n), onda znamo da je
sigurno n sloˇzen. Ako n prode test za k b-ova, onda je vjerojatnost da je n
sloˇzen ≤
1
4
k
.
Npr. za k = 20 je vjerojatnost da je n sloˇzen manja od 10
−12
. Tako
dobiveni ”vjerojatno prosti brojevi” se nazivaju joˇs i ”industrijski prosti
brojevi”. Poznato je da ne postoji niti jedan broj manji od 10
12
koji je is-
tovremeno spsp(b) za b = 2, 3, 5, 7 i 11. Napomenimo joˇs da se ocjena iz
teorema 4.2 moˇze znaˇcajno poboljˇsati za velike brojeve n. Tako je vjerojat-
nost da je 500-bitni broj koji prode samo jedan test sloˇzen manja od 1/4
28
.
Sloˇzenost jednog Miller-Rabinovog testa je O(ln
3
n). Naime, b
t
mod n se
moˇze izraˇcunati u O(ln
3
n) bitnih operacija, a potom za raˇcunanje b
2t
, b
4t
, . . .,
b
2
s−1
t
uzastopnim kvadriranjem trebamo takoder O(ln
3
n) bitnih operacija.
Uz pretpostavku da vrijedi proˇsirena Riemannova slutnja (ERH), Miller-
Rabinov test postaje polinomijalni deterministiˇcki algoritam za dokazivanje
prostosti. Naime, moˇze se pokazati da ako je n sloˇzen broj, onda uz pret-
postavku da vrijedi ERH postoji barem jedna baza b < 2 ln
2
n za koju ne
vrijedi (4.2). Dakle, uz pretpostavku da vrijedi ERH, sloˇzenost ovog algo-
ritma je O(ln
5
n). To je i bio originalni Millerov test iz 1976. godine. Dokaz
se zasniva na sljede´cem teoremu.
Teorem 4.4 (Ankeny). Pretpostavimo da vrijedi ERH. Tada za svaki d ∈
N i Dirichletov karakter χ = 1 modulo d postoji n < 2 ln
2
d takav da je
χ(n) = 1.
Gornja tvrdnja se dobije primjenom Ankenyjevog teorema na karaktere
χ
1
(m) =

m
p
1
p
2

i χ
2
=

m
p
2

, gdje su p
1
, p
2
neparni prosti faktori od n.
Postoje i druge vrste pseudoprostih brojeva, te odgovaraju´ci testovi pros-
tosti zasnovani na njima. Spomenut ´cemo joˇs samo dvije. Neparan sloˇzen
broj n je Eulerov pseudoprost broj u bazi b (n je epsp(b)) ako zadovoljava
Eulerov kriterij:

b
n

≡ b
(n−1)/2
(mod n)
(ovdje (
b
n
) oznaˇcava Jacobijev simbol). Moˇze se pokazati da je svaki spsp(b)
ujedno i epsp(b), pa je stoga tzv. Soloway-Strassenov test, koji je zasnovan
na Eulerovim pseudoprostim brojevima, manje efikasan od Miller-Rabinovog
testa.
Sada ´cemo definirati Lucasove pseudoproste brojeve. Neka su α i β ko-
rijeni polinoma x
2
−ax +b = 0, a, b ∈ Z` ¦0¦. Definiramo nizove U
k
(a, b) =
α
k
−β
k
α−β
, V
k
(a, b) = α
k
+ β
k
. Oni nizovi se zovu Lucasovi nizovi. Za a = 1,
b = −1, U
k
su Fibonaccijevi brojevi, a V
k
su (obiˇcni) Lucasovi brojevi.
Teorija brojeva u kriptografiji 63
Moˇze se pokazati da za proste brojeve p, takve da p ne dijeli 2bD, gdje je
D = a
2
−4b, vrijedi
U
δ(p)
≡ 0 (mod p), (4.3)
gdje je δ(p) = p−(
D
p
). Stoga se ovo svojstvo prostih brojeva moˇze iskoristiti
za definiciju nove vrste pseudoprostih brojeva, te za konstrukciju testa pros-
tosti zasnovanog na njima. Ako za neparan sloˇzen broj n vrijedi U
δ(n)
≡ 0
(mod n), onda kaˇzemo da je n Lucasov pseudoprost broj s parametrima a,
b (n je lpsp(a, b)). Pokazuje se u praksi da je kombinacija testova s jakim
pseudoprostim brojevima i Lucasovim pseudoprostim brojevima jako dobra
i vjeruje se da broj koji prode po jedan test sa spsp i lpsp, s prikladno
odabranim parametrima, mora biti prost.
4.3 Dokazivanje prostosti pomo´cu eliptiˇckih krivulja
Ukoliko broj n prode nekoliko dobrih testova prostosti (npr. Miller-Rabinov
test za nekoliko razliˇcitih baza), onda moˇzemo biti priliˇcno sigurni da je n
prost. Medutim, ti testovi nam ne daju dokaz da je n prost. Sada ´cemo re´ci
neˇsto o metodama kojima se moˇze dokazati da je dani broj prost.
Teorem 4.5 (Pocklington). Neka je s djelitelj od n − 1 koji je ve´ci od

n. Pretpostavimo da postoji prirodan broj a takav da vrijedi
a
n−1
≡ 1 (mod n),
(a
(n−1)/q
−1, n) = 1 za svaki prosti djelitelj q od s.
Tada je n prost.
Dokaz: Pretpostavimo suprotno, tj. da je n sloˇzen. Tada on ima prosti
faktor p ≤

n. Stavimo b = a
(n−1)/s
. Tada je
b
s
≡ a
n−1
≡ 1 (mod n),
pa je i b
s
≡ 1 (mod p). Tvrdimo da je s red od b modulo p. Zaista, pret-
postavimo da za neki djelitelj q od s vrijedi b
s/q
≡ 1 (mod p). Tada bi p
dijelio n i b
s/q
−1, tj. a
(n−1)/q
−1, ˇsto je u suprotnosti s pretpostavkom da
su n i a
(n−1)/q
− 1 relativno prosti. Kako je iz Malog Fermatovog teorema
b
p−1
≡ 1 (mod p), to zakljuˇcujemo da s dijeli p − 1. No, to je nemogu´ce
budu´ci da je s >

n, a p ≤

n.
Primjer 4.1. Dokaˇzimo da je broj n = 153533 prost.
Imamo n−1 = 2
2
131 293, pa moˇzemo uzeti s = 4 131. Prosti djelitelji
od s su 2 i 131. Moˇzemo uzeti a = 2 jer je 2
n−1
≡ 1 (mod n), (2
(n−1)/2

1, n) = 1, (2
(n−1)/131
−1, n) = 1. Stoga Pocklingtonom teorem povlaˇci da je n
prost. Ovdje smo implicitno koristili da je 131 prost. Da bi dokazali prostost
Teorija brojeva u kriptografiji 64
od 131, moˇzemo postupiti na isti naˇcin. Imamo 131 − 1 = 130 = 2 5 13,
pa uzmimo s = 13. Tada iz 2
130
≡ 1 (mod 131) i (2
10
− 1, 131) = 1 slijedi
da je 131 prost (uz pretpostavku da je broj 13 prost).
U prethodnom primjeru smo vidjeli da primjenom Pocklingtonovog teo-
rema pitanje o prostosti jednog broja svodimo da isto pitanje za jedan ili
viˇse manjih brojeva, i taj postupak nastavljamo sve dok brojevi ne postanu
dovoljno mali.
Da bi dokazali prostost broja n pomo´cu Pocklingtovog teorema, moramo
poznavati barem djelomiˇcnu faktorizaciju broja n − 1. No, kao ˇsto smo ve´c
viˇse puta napomenuli, faktorizacija velikih brojeva je op´cenito teˇzak prob-
lem. Ipak, ova metoda je vrlo prikladna u sluˇcaju brojeva specijalnog oblika,
kod kojih je poznata faktorizacija dovoljno velikog faktora od n −1.
Teorem 4.6 (Proth). Neka je l ≥ 2, k ≥ 1, k ≡ 0 (mod 3) i k ≤ 2
l
+ 1.
Tada je broj n = k 2
l
+ 1 prost ako i samo ako je 3
k·2
l−1
≡ −1 (mod n).
Dokaz: Pretpostavimo da je 3
k·2
l−1
≡ −1 (mod n). Stavimo s = 2
l
, a =
3, n = k 2
l
+ 1. Tada je a
n−1
= 3
k·2
l
≡ (−1)
2
≡ 1 (mod n) i a
(n−1)/2
≡ −1
(mod n). Budu´ci da n dijeli a
(n−1)/2
+1, to je on relativno prost s a
(n−1)/2
−1.
Po Pocklingtonovom teoremu zakljuˇcujemo da je broj n prost.
Dokaˇzimo sada obrat. Neka je n prost. Tada je, zato ˇsto 3 ne dijeli k,
n ≡ 2 (mod 3), pa imamo
3
k·2
l−1
= 3
(n−1)/2
≡ (
3
n
) ≡ (
n
3
) ≡ (
2
3
) ≡ −1 (mod n).
Postoje metode za dokazivanje prostosti koje se zasnivaju na faktorizaciji
od n+1, umjesto od n−1. Spomenimo samo tzv. Lucas-Lehmerovu metodu
za dokazivanje prostosti Mersennovih brojeva.
Teorem 4.7 (Lucas-Lehmer). Neke je niz (v
k
) zadan sa
v
0
= 4, v
k+1
= v
2
k
−2.
Neka je p neparan prost broj. Tada je M
p
= 2
p
−1 prost ako i samo ako M
p
dijeli v
p−2
.
Kao ˇsto smo ve´c napomenuli, problem s primjenom Pocklingtonovog teo-
rema je u tome ˇsto zahtjeva (djelomiˇcnu) faktorizaciju broja n−1. Ovaj broj
n − 1 se moˇze shvatiti kao red grupe Z

n
(ako je n prost). Jedna ideja kako
rijeˇsiti ovaj problem je zamjena grupe Z

n
s grupom E(Z
n
), gdje je E neka
eliptiˇcka krivulja nad Z
n
. Naime, kod mogu´cih redova grupe E(Z
n
) imamo
ve´cu fleksibilnost, pa se moˇzemo nadati da ´cemo na´ci eliptiˇcku krivulju ˇciji
Teorija brojeva u kriptografiji 65
´ce red biti lako faktorizirati. Ideju o koriˇstenju eliptiˇckih krivulja za dokazi-
vanje prostosti su uveli Goldwasser i Killian 1986. godine.
Dakle, promatrat ´emo eliptiˇcke krivulje nad prstenom Z
n
. Budu´ci da
n ne mora biti prost, moˇze se dogoditi da neke toˇcke na E(Z
n
) ne´cemo
mo´ci zbrojiti jer ´ce se u formuli za zbrajanje toˇcaka u nazivniku pojaviti
broj koji nije invertibilan modulo n. No, to nam ne´ce biti problem jer ´ce to
znaˇciti da je n sloˇzen.
ˇ
Stoviˇse, mo´ci ´cemo mu na´ci netrivijalni faktor tako
da izraˇcunamo najve´ci zajedniˇcki djelitelj tog nazivnika i broja n.
Teorem 4.8. Neka je E eliptiˇcka krivulja nad Z
n
, gdje je (6, n) = 1 i n > 1,
dana jednadˇzbom y
2
= x
3
+ax +b. Neka je m prirodan broj koji ima prosti
faktor q > (n
1/4
+ 1)
2
. Ako postoji toˇcka P ∈ E(Z) takva da je
[m]P = O i [m/q]P = O,
onda je broj n prost.
Dokaz: Ako je n sloˇzen, onda ima prosti faktor p ≤

n. Promotrimo
eliptiˇcku krivulju E

nad Z
p
danu istom jednadˇzbom kao i E. Neka je m

red grupe E

(Z
p
). Po Hasseovom teoremu je
m

≤ p + 1 +

p = (

p + 1)
2
≤ (n
1/4
+ 1)
2
< q.
Stoga je (m

, q) = 1, pa postoji u ∈ Z takav da je uq ≡ 1 (mod m

). Neka
je P

∈ E

(Z
p
) toˇcka dobivena iz P redukcijom koordinata modulo p. Tada
je po uvjetu teorema [m/q]P

= O. No, s druge strane imamo
[m/q]P

= [uq
m
q
]P

= [um]P

= [u]([m]P

) = O.
Primjer 4.2. Dokaˇzimo da je broj n = 907 prost.
Neka je E eliptiˇcka krivulja zadana jednadˇzbom y
2
= x
3
+ 10x − 2
nad Z
n
. Neka je P = (819, 784) i q = 71. Tada je [71]P = O. Budu´ci je
71 > (907
1/4
+1)
2
, odavde slijedi da je broj 907 prost (ako je poznato da je
broj 71 prost).
U praksi je kod velikih brojeva n najproblematiˇciji dio algoritma pro-
nalaˇzenje eliptiˇcke krivulje za koju ´ce red grupe E(Z
n
), a to ´ce biti broj m
iz teorema, imati dovoljno veliki prost faktor. Jedna je mogu´cnost biranje
krivulja na sluˇcajan naˇcin, pa raˇcunanje njihovih redova sa Schoofovim al-
goritmom. Da bi ocijenili kolika je vjerojatnost uspjeha pronalaˇzenja odgo-
varaju´ce krivulje, trebali bi znati neˇsto o distribuciji prostih brojeva u in-
tevalu oblika [x + 1 − 2

x, x + 1 − 2

x]. Naˇzalost, o tome postoje samo
(nedokazane) hipoteze. Ako bi vrijedilo
π(x + 1 −2

x) −π(x + 1 −2

x) > A

x
ln x
,
Teorija brojeva u kriptografiji 66
za neku konstantu A (ˇsto je hipoteza motivirana teoremom o prostim broje-
vima), onda bi oˇcekivani broj operacija u Goldwasser-Killianovom algoritmu
bio O(ln
10
n). Mogli bi re´ci da je interval iz Hasseovog teorema dovoljno
velik za praksu, ali ne i za trenutno stanje teorije. Adleman i Huang su
1992. predloˇzili algoritam koji umjesto eliptiˇckih krivulja koristi Jacobijane
hipereliptiˇckih krivulja, a za koji se koriˇstenjem poznatih rezultata o dis-
tribuciji prostih brojeva u intervalu oblika [x, x+x
3/4
] moˇze dokazati da mu
je oˇcekivani broj operacija polinomijan.
Atkin i Morain su 1993. predloˇzili jednu varijantu dokazivanja prostosti
pomo´cu eliptiˇckih krivulja, za koju se danas smatra da je najefikasnija u
praksi. Pomo´cu te metode se danas moˇze efikasno dokazati prostost brojeva
s oko 1000 znamenaka. Metoda koristi tzv. eliptiˇcke krivulje s kompleksnim
mnoˇzenjem s pripadnim imaginarnim kvadratnim poljem Q(

−d). Za takve
krivulje E vrijedi da ako je 4p = x
2
+dy
2
(podsjetimo se da se ovakav prikaz
moˇze dobiti pomo´cu Cornacchia-Smithovog algoritma), onda su mogu´ci re-
dovi od E nad Z
p
brojevi p + 1 ± x. Dakle, ove brojeve moˇzemo efikasno
izraˇcunati, te vidjeti imaju li dovoljno veliki prosti faktor. Kad pronademo
red koji nas zadovoljava, onda samu krivulju konstruiramo koriste´ci teoriju
kompleksnog mnoˇzenja, posebno tzv. j-invarijante.
4.4 Polinomijalni AKS algoritam za dokazivanje
prostosti
Godine 2002. Agrawal, Kayal i Saxena objavili su prvi polinomijalni algo-
ritam za dokazivanje prostosti. Dakle, dokazali su da problem odluke ”Je li
broj n prost?” pripada klasi P, ˇcime su rijeˇsili dugogodiˇsnji otvoreni prob-
lem. Prije toga bio je poznat Adleman-Pomerance-Rumelyjev algoritam ˇcija
je sloˇzenost O((ln n)
c ln ln ln n
), dakle ”skoro polinomijalna”. Kao i ve´cina al-
goritama za testiranje ili dokazivanje prostosti, i AKS algoritam se zasniva
na Malom Fermatovom teoremu. Toˇcnije, polaziˇste mu je sljede´ca lema.
Lema 4.9. Neka je a ∈ Z, n ∈ Z, n ≥ 2 i (a, n) = 1. Tada je broj n prost
ako i samo ako vrijedi
(X +a)
n
≡ X
n
+a (mod n), (4.4)
tj. akko su odgovaraju´ci koeficijenti polinoma na lijevoj i desnoj strani kon-
gruencije (4.4) kongruentni modulo n.
Dokaz: Za 0 < i < n je koeficijent od X
i
u polinomu ((X+a)
n
−(X
n
−a))
jednak

n
i

a
n−1
, dok je slobodni ˇclan jednak a
n
−a. Ako je n prost, onda je

n
i

≡ 0 (mod n) i a
n
−a ≡ 0 (mod n), pa vrijedi (4.4).
Pretpostavimo sada da je n sloˇzen. Neka je q neki prosti faktor od n i
neka q
k
|n, tj. neka je k najve´ca potencija od q koja dijeli n. Promotrimo
Teorija brojeva u kriptografiji 67
binomni koeficijent

n
q

=
n(n −1) (n −q + 1)
1 2 q
.
Vidimo da q
k−1
|

n
q

. Nadalje je (q, a
n−q
) = 1. Zakljuˇcujemo da koeficijent
od X
q
nije djeljiv sa q
k
, pa stoga nije kongruentan 0 modulo n.
Doslovna primjena prethodne leme ne´ce dati efikasan algoritam za dokazi-
vanje prostosti jer bi trebali izraˇcunati n koeficijenata na lijevoj strani
od (4.4). Jednostavan naˇcin za reduciranje broja koeficijenata koje treba
izraˇcunati jest da se obje strane kongruencije (4.4) reduciraju modulo X
r
−1,
za prikladno odabrani mali broj r. Dakle, provjerava se vrijedi li
(X +a)
n
≡ X
n
+a (mod X
r
−1, n). (4.5)
Ovdje nam oznaka f(X) ≡ g(X) (mod h(X), n)) znaˇci da je f(X) = g(X)
u prstenu Z
n
[X]/(h(X))).
Iz Leme 4.9 je jasno da ako je n prost, onda (4.5) vrijedi za sve a i r.
Pokazuje se da vrijedi i djelomiˇcni obrat, tj. da za prikladno odabran r vrijedi
da ako je (4.5) zadovoljeno za nekoliko a-ova, onda n mora biti potencija
prostog broja. Pokazuje se da se i broj a-ova i veliˇcina od r mogu ograniˇciti
s polinomom u ln n, pa se na taj naˇcin dobiva polinomijalni algoritam za
dokazivanje prostosti.
AKS algoritam:
1. if (n je potencija prirodnog broja) then return n je sloˇzen
2. Nadi r takav da je o
r
(n) > 4 ln
2
n
3. if (1 < (a, n) < n za neki a ≤ r) then return n je sloˇzen
4. if (n ≤ r) then return n je prost
5. for (1 ≤ a ≤ 2

ϕ(r) ln n|) ¦
if ((X +a)
n
≡ X
n
+a (mod X
r
−1, n)) then
return n je sloˇzen ¦
6. return n je prost
Za dokazati korektnost algoritma, treba pokazati da broj n koji prode sve
testove u 5. koraku, mora biti prost. To ne´cemo dokazivati, ve´c samo recimo
da dokaz koristi svojstva ciklotomskih polinoma (korijeni su im primitivni
korijeni iz jedinice) nad konaˇcnim poljima.
Recimo neˇsto o sloˇzenosti AKS algoritma. Najprije trebamo testirati da
li je n k-ta potencija nekog prirodnog broja, za k = 2, 3, . . . , log
2
n|. Za
svaku konkretnu potenciju k to se moˇze efikasno napraviti modifikacijom
Newtonove metode, kao ˇsto smo ve´c bili pokazali za sluˇcaj k = 2. Na taj
naˇcin se ovaj test moˇze obaviti u O(ln
4
n) operacija.
Za sloˇzenost preostalog dijela algoritma, kljuˇcna je polinomijalna ocjena
za veliˇcinu najmanjeg broja r takvog da za red od n modulo n vrijedi o
r
(n) >
Teorija brojeva u kriptografiji 68
4 ln
2
n. Najprije dokaˇzimo jedan pomo´cni rezultat. Sa [a
1
, . . . , a
m
] oznaˇcavat
´cemo najmanji zajedniˇcki viˇsekratnik brojeva a
1
, . . . , a
m
.
Lema 4.10. Neka je d
n
= [1, 2, . . . , n]. Tada za n ≥ 7 vrijedi d
n
≥ 2
n
.
Dokaz: Za 1 ≤ m ≤ n promotrimo integral
I(m, n) =

1
0
x
m−1
(1 −x)
n−m
dx =

1
0
n−m
¸
r=0

n −m
r

(−1)
r
x
m+r−1
=
n−m
¸
r=0
(−1)
r

n −m
r

1
m+r
.
Odavde je jasno da je d
n
I(m, n) cijeli broj. S druge strane, parcijalnom
integracijom se dobije
I(m, n) =
1
m

n
m
.
Dakle, m

n
m

dijeli d
n
, za svaki m = 1, 2, . . . , n. Posebno, (n + 1)

2n+1
n+1

=
(2n + 1)

2n
n

dijeli d
2n+1
, dok n

2n
n

dijeli d
2n
, pa stoga dijeli i d
2n+1
. Za-
kljuˇcujemo da n(2n + 1)

2n
n

dijeli d
2n+1
, pa je
d
2n+1
≥ n(2n + 1)

2n
n

.
Budu´ci da je

2n
n

najve´ci pribrojnik u razvoju (1 +1)
2n
=
¸
2n
i=0

2n
i

, slijedi
da je (2n + 1)

2n
n

≥ 2
2n
. Dakle, dokazali smo da je
d
2n+1
≥ n 2
2n
.
Odavde za n ≥ 2 dobivamo d
2n+1
≥ 2
2n+1
, a za n ≥ 4 dobivamo d
2n+2

d
2n+1
≥ 2
2n+2
.
Lema 4.11. Postoji r ≤ 16 ln
5
n| takav da je o
r
(n) > 4 ln
2
n.
Dokaz: Neka su r
1
, r
2
, . . . , r
t
svi brojevi za koje je o
r
(n) ≤ 4 ln
2
n. Svaki
od ovih brojeva dijeli produkt
¸
4 ln
2
n
i=1
(n
i
−1). No,
4 ln
2
n
¸
i=1
(n
i
−1) < n

4 ln
2
n
i=1
i
< n
10 ln
4
n
< 2
16 ln
5
n
.
Prema Lemi 4.10 je
[1, 2, . . . , 16 ln
5
n|] ≤ 2
16 ln
5
n
.
Kako je najmanji zajedniˇcki viˇsekratnik brojeva r
1
, r
2
, . . . , r
t
manji od
2
16 ln
5
n
, zakljuˇcujemo da postoji prirodan broj r ≤ 16 ln
5
n| takav da
je o
r
(n) > 4 ln
2
n.
Teorija brojeva u kriptografiji 69
Koriste´ci Lemu 4.11 moˇzemo ocijeniti broj operacija potrebnih za nala-
ˇzenje broja r s traˇzenim svojstvom. Za konkretni r, provjeravamo relaciju
n
k
≡ 1 (mod r) za k ≤ 4 ln
2
n. Za to nam treba O(ln
2
n) mnoˇzenja modulo
r. Kako treba provjeriti najviˇse O(ln
5
n) r-ova, to 2. korak algoritma ima
sloˇzenost O(ln
7+ε
n).
U 3. koraku, r puta raˇcunamo najve´ci zajedniˇcki djelitelj dvaju brojeva.
Sloˇzenst ovog dijela je O(r ln
2
n) = O(ln
7
n). Sloˇzenost 4. koraka je O(ln n).
U 5. koraku imamo 2

ϕ(r) ln n|) = O(

r ln n) = O(ln
3.5
n) provjera.
Svaka provjera zahtijeva O(ln n) mnoˇzenja polinoma stupnja r s koeficijen-
tima veliˇcine O(ln n). Stoga se svaka provjera moˇze izvrˇsiti u O(r
2
ln
3
n) =
O(ln
13
n) operacija. Konaˇcno, dobivamo da je ukupan broj operacija u 5.
koraku, a takoder i u cijelom algoritmu O(ln
16.5
n).
Ova ocjena se moˇze poboljˇsati preciznijom analizom gornje ograde za r,
koja se moˇze dobiti koriˇstenjem preciznijih rezultata o distribuciji prostih
brojeva (umjesto Leme 4.10). Ako se joˇs k tome, umjesto ”ˇskolskog mnoˇzenja”,
koriste algoritmi za brzo mnoˇzenje, dobiva se ocjena O(ln
7.5+ε
n).
Poglavlje 5
Metode faktorizacije
5.1 Pollardova ρ metoda
Ako prirodan broj n ne prode neki od testova prostosti, onda znamo da
je n sigurno sloˇzen. Medutim, ti nam testovi uglavnom ne daju niti jedan
netrivijalni faktor od n. Stoga se postavlja pitanje kako na´ci netrivijalni
faktor velikog sloˇzenog broja. To se smatra teˇskim problemom i na njegovoj
teˇsko´ci su zasnovani neki od najvaˇznijih kriptosustava s javnim kljuˇcem.
Metode faktorizacije moˇzemo podijeliti na op´ce i specijalne. Kod op´cih
metoda oˇcekivani broj operacija ovisi samo o veliˇcini broja n, dok kod speci-
jalnih ovisi takoder i o svojstvima faktora od n.
Naivna metoda faktorizacije broja n jest dijeljenje broja n sa svim pros-
tim brojevima ≤

n. Broj potrebnih dijeljenja je u najloˇsijem sluˇcaju oko
2

n
ln n
, pa je sloˇzenost ove metode O(

nln n). Kod ove ocjene smo pret-
postavili da nam je dostupna tablica svih prostih brojeva ≤

n. U pro-
tivnom, dijelili bi s 2, te sa svim neparnim brojevima, ili samo s neparnim
brojevima koji zadovoljavaju odredene kongruencije (npr. ≡ 1, 5 (mod 6) ili
≡ 1, 7, 11, 13, 17, 19, 23, 29 (mod 30)). U svakom sluˇcaju, ova metoda je vrlo
neefikasna za velike n-ove. Medutim, dobro ju je koristiti u kombinaciji s
boljim metodama faktorizacije, za uklanjanje eventualnih malih faktora od
n.
Jedna od najjednostavnijih metoda faktorizacije ˇcija je sloˇzenost bolja
od O(

n) je tzv. Pollardova ρ metoda iz 1975. godine. Ideja za nalaˇzenje
faktora p broja n je sljede´ca:
1. Konstruiramo niz (x
i
) cijelih brojeva koji je periodiˇcan modulo p.
2. Nademo i, j takve da je x
i
≡ x
j
(mod p).
3. Odredimo p kao (x
i
−x
j
, n).
Niz (x
i
) se konstruira pomo´cu preslikavanja f : Z
n
→ Z
n
. Od tog pres-
likavanja se traˇzi odredena ”sluˇcajnost”. Pokazuje se da zbog toga f ne smije
70
Teorija brojeva u kriptografiji 71
biti linearni polinom. No, kvadratni polinomi, npr. f(x) = x
2
+1, su sasvim
dobar izbor. Nadalje, izaberemo vrijednost od x
0
(npr. x
0
= 2), te raˇcunamo
iterirane vrijednosti funkcije f:
x
1
= f(x
0
), x
2
= f(f(x
0
)), ....
Op´cenito, x
i+1
= f(x
i
). Jasno je da u beskonaˇcnom nizu x
0
, x
1
, x
2
, . . ., ˇciji el-
ementi poprimaju samo konaˇcno mnogo vrijednosti, mora do´ci do ponavlja-
nja. No, iz definicije niza slijedi da ako je x
i
= x
j
, onda je x
i+k
= x
j+k
za
k = 0, 1, 2, . . .. Stoga je niz (x
i
) periodiˇcan poˇcevˇsi od nekog mjesta. Odavde
dolazi naziv ρ metoda, jer ”rep” od ρ ilustrira pretperiod, a ”okrugli dio”
od ρ ilustrira ˇcisto periodiˇcni dio niza.
Postavlja se pitanje kada moˇzemo oˇcekivati prvo ponavljaanje u nizu
(x
i
). Pitanje moˇzemo preformulirati tako da pitamo koliko velik treba biti
broj k da bi izmedu sluˇcajno izabranih k cijelih brojeva postojala dva broja
koja su medusobno kongruentna modulo p, s vjerojatnoˇs´cu ve´com od 1/2.
Vjerojatnost da je k sluˇcajno izabranih brojeva nekongruentno modulo p
jednaka je

p −1
p

p −2
p

p −k + 1
p

=

1 −
1
p

1 −
2
p

1 −
k −1
p

1 −
k
2p

k−1
≈ e

k
2
2p
.
Iz uvjeta da je e

k
2
2p
≈ 1/2, dobivamo k ≈

2p ln 2 ≈ 1.18

p. Ova ˇcinjenica,
da je oˇcekivani broj koraka puno manji od p, naziva se ”paradoks rodendana”.
Originalni paradoks rodendana kaˇze da u druˇstvu od barem 23 osobe, s
vjerojatnoˇs´cu ve´com od 1/2, postoje dvije osobe koje imaju rodendan istog
dana.
Ako bismo faktor od n traˇzili tako da raˇcunamo (x
i
− x
j
, n) za sve i, j,
to bi bilo vrlo neefikasno. Puno efikasnije je raˇcunati samo (x
2i
− x
i
, n).
Naime, ako je x
i
≡ x
j
(mod p), onda za t = j − i, m = t
j
t
| vrijedi
x
m
≡ x
m+t
≡ x
m+2t
≡ ≡ x
m+m
(mod p). Ovdje je vaˇzno uoˇciti da za
raˇcunanje y
i
= x
2i
ne treba raˇcunati meduvrijednosti x
i+1
, x
i+2
, . . . , x
2i−1
.
Vrijednosti x
i
, x
2i
se raˇcunaju simultano:
x
i
= f(x
i−1
) mod n,
y
i
= f(f(y
i−1
)) mod n.
Primjer 5.1. Faktorizirajmo broj n = 1387.
Uzmimo f(x) = x
2
−1, x
0
= 2. Imamo:
x
1
= 2
2
−1 = 3, y
1
= 3
2
−1 = 8, (y
1
−x
1
, n) = (−5, 1387) = 1;
x
2
= 8, y
2
= f(63) = 1194, (y
2
−x
2
, n) = (1186, 1387) = 1;
x
3
= 63, y
3
= f(1194
2
−1 mod n) = f(1186
2
−1 mod n) = 177,
(y
3
−x
3
, n) = (144, 1387) = 19.
Teorija brojeva u kriptografiji 72
Dakle, 19 je djelitelj od 1387. Zaista, 1387 = 19 73.
Oˇcekivani broj operacija za nalaˇzenje faktora p broja n Pollardovom ρ
metodom je O(

p ln
2
n). U najloˇsijem sluˇcaju, kada je p = O(

n), dobivamo
sloˇzenost O(n
1/4
ln
2
n), ˇsto je znatno bolje od obiˇcnog dijeljenja, ali je joˇs
uvijek eksponencijalna sloˇzenost. Ipak, vaˇzno je uoˇciti da sloˇzenost algoritma
ovisi o najmanjem faktoru od n. Stoga se moˇze re´ci da ova metoda spada u
specijalne metode.
Malom modifikacijom ove metode su Brent i Pollard 1980. godine uspjeli
faktorizirati osmi Fermatov broj
2
8
+ 1 = 1238926361552897 p
63
,
gdje je p
63
prost broj sa 63 znamenke.
Spomenimo joˇs da se vrlo sliˇcna ideja koristi i u ρ algoritmu za raˇcunanje
diskretnog logaritma, koji je jedan od najboljih poznatih algoritama za prob-
lem diskretnoj logaritma u op´coj konaˇcnoj abelovoj grupi.
5.2 Pollardova p −1 metoda
Pollardova p − 1 metoda iz 1974. godine spada u specijalne metode faktor-
izacije. Njezino polaziˇste je ponovo Mali Fermatov teorem. Neka je n sloˇzen
broj koji ˇzelimo faktorizirati, te neka je p neki njegov prosti faktor. Tada je
a
p−1
≡ 1 (mod p) za (a, p) = 1.
ˇ
Stoviˇse, vrijedi a
m
≡ 1 (mod p) za svaki
viˇsekratnik od p − 1. Ako nademo m, onda nam (a
m
− 1, n) daje faktor
(nadamo se netrivijalni) od n. No, pitanje je kako na´ci viˇsekratnik od p −1
kad ne znamo p. To moˇzemo efikasno napraviti u sluˇcaju kada broj p−1 ima
samo male proste faktore. Za prirodan broj kaˇzemo da je B-gladak ako su
mu svi prosti faktori ≤ B. Ako je broj p −1 B-gladak, onda za m moˇzemo
uzeti najmanji zajedniˇcki viˇsekratnik brojeva 1, 2, . . . , B. Za ovako odabrani
m, broj operacija za raˇcunanje a
m
(mod n) je O(Bln Bln
2
n+ln
3
n). U na-
jgorem sluˇcaju, a to je kada je broj
p−1
2
prost, ova metoda nije niˇsta bolja
od obiˇcnog dijeljenja.
Primjer 5.2. Neka je n = 540143. Izaberimo B = 8 i a = 2. Tada je
m = 2
3
3 5 7 = 840. Imamo da je 2840 mod n = 53047 i (53046, n) = 421.
Zaista, n = 421 1283.
Pomo´cu p−1 metode je Baillie 1980. godine naˇsao 25-znamenkasti faktor
Mersennovog broja 2
257
−1.
Uspjeh p−1 metode direktno ovisi o glatko´ci broja p−1. Postoje varijante
ove metode koje koriste glatko´cu brojeva p+1, p
2
+p+1, p
2
+1 ili p
2
−p+1.
No, najvaˇznija modifikacija p −1 metode je Lenstrina metoda faktorizacije
pomo´cu eliptiˇckih krivulja. U njoj se, ponovo, grupa F

p
reda p−1 zamjenjuje
Teorija brojeva u kriptografiji 73
grupom E(F
p
), ˇciji red varira unutar intervala [p + 1 − 2

p, p + 1 + 2

p],
pa se moˇzemo nadati da ´cemo prona´ci eliptiˇcku krivulju nad F
p
dovoljno
glatkog reda.
5.3 Faktorizacija pomo´cu eliptiˇckih krivulja
Godine 1987. H. W. Lenstra je predloˇzio modifikaciju Pollardove p−1 metode
koja koristi eliptiˇcke krivulje. Kao rezultat dobio je subeksponencijalni al-
goritam koji i danas predstavlja jedan od najefikasnijih algoritama za fakto-
rizaciju.
Sliˇcno kao kod metode dokazivanja prostosti pomo´cu eliptiˇckih krivulja,
i ovdje ´cemo raditi s eliptiˇckim krivuljama nad prstenom Z
n
. Dok je kod
dokazivanja prostosti postojala (mala) mogu´cnosti da je n sloˇzen (pa da Z
n
nije polje), ovdje ´cemo od poˇcetka biti sigurni da je n sloˇzen. Pretpostavit
´cemo da je (n, 6) = 1, te ´cemo promatrati eliptiˇcke krivulje oblika
E
a,b
: y
2
= x
3
+ab +b,
gdje je (4a
3
+27b
2
, n) = 1. Kada je n prost, onda na eliptiˇckoj krivulji postoji
samo jedna projektivna toˇcka koja ne odgovara nekoj afinoj toˇcki (toˇcka u
beskonaˇcnosti). U sluˇcaju kada je n sloˇzen, takvih toˇcaka moˇze biti viˇse.
Opiˇsimo sada osnovne korake u Lenstrinom algoritmu za faktorizaciju
(ECM – Elliptic Curve Method).
1. Izbor eliptiˇcke krivulje.
Postoji viˇse naˇcina za izbor odgovaraju´ce eliptiˇcke krivulje. Na primjer,
moˇzemo izabrati sluˇcajno elemente a, x, y ∈ Z
n
, pa izraˇcunati b =
(y
2
−x
3
−ax) mod n. Neka je g = (4a
3
+ 27b
2
, n). Ako je 1 < g < n,
onda smo naˇsli netrivijalni faktor od n. Ako je g = n, onda biramo
nove a, x, y. Ako je g = 1, onda smo naˇsli eliptiˇcku krivulju E
a,b
nad
Z
n
i toˇcku P = (x, y) na njoj.
2. Neka je k najmanji zajedniˇcki viˇsekratnik brojeva 1, 2, . . . , B, za prik-
ladno odabranu granicu B. U praksi se obiˇcno uzima najprije B =
10000, a potom se granica po potrebi pove´cava.
3. Raˇcunamo [k]P ∈ E
a,b
(Z
n
) koriste´ci formule za zbrajanje toˇcaka:
(x
3
, y
3
) = (λ
2
−x
1
−x
2
mod n, λ(x
1
−x
3
) −y
1
mod n),
gdje je λ = (3x
2
1
+ a) (2y
1
)
−1
mod n ako su toˇcke jednake, a λ =
(y
1
−y
2
)(x
1
−x
2
)
−1
mod n, inaˇce.
4. Ako se u raˇcunanju [k]P dogodi da neki zbroj toˇcaka ne moˇzemo
izraˇcunati zato ˇsto ne moˇzemo izraˇcunati d
−1
jer d nema inverz mod-
ulo n, onda izraˇcunamo g = (d, n). Ako je g = n, onda smo naˇsli
netrivijalni faktor od n.
Teorija brojeva u kriptografiji 74
5. U sluˇcaju neuspjeha, moˇzemo izabrati novu eliptiˇcku krivulju ili pove´ati
granicu B.
Primjer 5.3. Faktorizirati broj n = 187.
Neka je B = 3, pa je k = [1, 2, 3] = 6. Izaberimo eliptiˇcku krivulju
y
2
= x
3
+x+25 i toˇcku na njoj P = (0, 5). Raˇcunamo [6]P = [2](P +[2]P).
Najprije raˇcunamo [2]P. Pripadni λ je 10
−1
= 131 mod 187, pa dobivamo
[2]P = (144, 18). Zatim raˇcunamo [3]P = P +[2]P. Pripadni λ je 13144
−1
=
178 mod 187, pa je [3]P = (124, 176). Konaˇcno, raˇcunamo [6]P = [2]([3]P).
Pripadni λ je 127 165
−1
. Kod raˇcunanja inverza od 165 modulo 187, dobi-
vamo da taj inverz ne postoji jer je (165, 187) = 11. Odavde zakljuˇcujemo
da je 11 faktor od 187. Zaista, 187 = 11 17.
O ˇcemu ovisi uspjeh ovog algoritma? Sliˇcno kao kod p−1 metode, i ovdje
bi k trebao biti viˇsekratnik reda pripadne grupe. U ovom sluˇcaju k bi trebao
biti viˇsekratnik od #E(Z
p
), gdje je p neki prosti faktor od n. Zaista, u tom
sluˇcaju ´ce kod raˇcunanja [k]P pripadni nazivnik biti djeljiv s p, pa ne´ce biti
invertibilan modulo n. Naime, u E(Z
p
) ´ce vrijediti da je [k]P = O.
Kod ocjene sloˇzenosti ovog algoritma kljuˇcno je pitanje kako optimalno
odabrati granicu B. Uvedimo oznaku
ψ(x, y) = #¦1 ≤ n ≤ x : n je y-gladak¦.
Koriste´ci ˇcinjenicu da su redovi #E(Z
p
) skoro uniformno distribuirani unu-
tar Hasseovog intervala, dolazimo do sljede´ce ocjene za vjerojatnost uspjeha
algoritma:
prob(B) > c
ψ(p + 1 + 2

p, B) −ψ(p + 1 −2

p, B)

p ln p
.
Kako je, s druge strane, broj operacija potrebnih za pokuˇsaj faktorizacije
pomo´cu jedne krivulje proporcionalan s B, ˇzeljeli bi minimizirati vrijednost
B/prob(B). Pokazuje se da se, koriste´ci gore navedenu ocjenu za prob(B),
minimum postiˇze za
B = e
(

2/2+o(1))

ln p ln ln p
,
dok je sloˇzenost algoritma
e
(

2+o(1))

ln p ln ln p
.
U najloˇsijem sluˇcaju (kada je p = O(

n)), sloˇzenost metode faktorizacije
pomo´cu eliptiˇckih krivulja je e
O(

ln nln ln n)
. Dakle, to je subeksponencijalni
algoritam.
Iako postoje algoritmi bolje sloˇzenosti (algoritam sita polja brojeva),
vaˇzno svojstvo ECM je da njezina sloˇzenost ovisi o najmanjem prostom
Teorija brojeva u kriptografiji 75
faktoru od n. Zato ona nije najprikladnija za faktorizaciju RSA modula,
tj. brojeva oblika n = pq, gdje su p i q bliski prosti brojevi. Medutim, kod
faktorizacije ”sluˇcajnih” brojeva, ECM ˇcesto daje bolje rezultate od ostalih
metoda, jer takvi brojevi obiˇcno imaju neki prosti faktor koji je znatno manji
od

n.
ˇ
Cak i kod primjene asimptotski boljih metoda, unutar tih algoritma
potrebno je faktorizirati neke pomo´cne brojeve, za koje moˇzemo oˇcekivati da
se ponaˇsaju kao sluˇcajni brojevi, pa se tu ECM moˇze koristiti kao pomo´cna
metoda.
Medu faktorizacijama dobivenim pomo´cu ECM, spomenimo nalaˇzenje
33-znamenkastog faktora Fermatovog broja 2
2
15
+1 (Crandall, van Halewyn,
1997.), te nalaˇzenje 49-znamenkastog faktora Mersenneovog broja 2
2071
−1
(Zimmermann, 1998.).
5.4 Metoda veriˇznog razlomka
Kao i kod metode faktorizacije pomo´cu eliptiˇckih krivulja, i ovdje je op´ca
metoda motivirana jednom specijalnom metodom. U ovom sluˇcaju ta speci-
jalna metoda je tzv. Fermatova faktorizacija, koja je primjenjiva na brojeve
n koji su produkti dva bliska broja. Takav n je tada razlika kvadrata dva
prirodna broja, od kojih je jedan jako mali, a drugi je jako blizak broju

n.
Naime, ako je n = ab, onda je n = t
2
− s
2
, gdje je t =
a+b
2
, s =
a−b
2
, pa
ako su a i b bliski, onda je s jako mali, a t samo malo ve´ci od

n. Stoga
uvrˇstavanjem za t redom t =

n| + 1,

n| + 2, ... moˇzemo prona´ci t, a
time i traˇzenu faktorizaciju.
Mnoge moderne metode faktorizacije koriste sljede´cu modifikaciju Fer-
matove faktorizacije. Umjesto da traˇzimo brojeve s i t takve da je n = t
2
−s
2
,
pokuˇsajmo na´ci brojeve s i t takve da n[t
2
− s
2
, tj. da je s
2
≡ t
2
(mod n).
Ako je pritom s ≡ t (mod n), onda su (s+t, n) i (t−s, n) netrivijalni faktori
od n.
Prva takva metoda koju ´cemo upoznati jest metoda veriˇznog razlomka,
koja se joˇs naziva i Brillhart-Morrisonova metoda, budu´ci da su je oni 1970.
godine iskoristili za faktorizaciju Fermatovog broja 2
2
7
+1. No, osnovna ideja
se moˇze na´ci ve´c u radovima Kraitchika, Lehmera i Powersa 20-tih i 30-tih
godina 20. stolje´ca.
Neka je n sloˇzen broj kojeg ˇzelimo faktorizirati. Moˇzemo pretpostaviti
da n nije potpun kvadrat. Tada je razvoj broja

n u veriˇzni razlomak peri-
odiˇcan. Preciznije,

n = [a
0
; a
1
, a
2
, . . . , a
r−1
, 2a
0
].
Veriˇzni razlomak se moˇze izraˇcunati pomo´cu sljede´ceg algoritma:
a
0
=

n|, s
0
= 0, t
0
= 1,
Teorija brojeva u kriptografiji 76
s
i+1
= a
i
t
i
−s
i
, t
i+1
=
n −s
2
i+1
t
i
, a
i
=

a
0
+s
i
t
i
¸
za i ≥ 0.
Neka je
p
i
q
i
= [a
0
; a
i
, . . . , a
i
]. Tada vrijedi
p
2
i
−nq
2
i
= (−1)
i+1
t
i+1
i 0 < t
i
< 2

n.
Dakle, konvergente veriˇznog razlomka zadovoljavaju kongruencije oblika
p
2
i
≡ w
i
(mod n),
gdje je w
i
relativno mali. Ako uspijemo prona´ci neke w
i
-ove ˇciji je produkt
potpun kvadrat, recimo w
k
1
w
k
m
= w
2
, onda smo pronaˇsli ˇzeljenu kon-
gruenciju
(p
k
1
p
k
m
)
2
≡ w
2
(mod n),
te se moˇzemo nadati da ´ce nam (p
k
1
p
k
m
+ w, n) dati netrivijalni faktor
od n.
Primjer 5.4. Faktorizirati broj n = 9073.
Raˇcunamo:
i 0 1 2 3 4 5
s
i
0 95 49 90 92 82
t
i
1 48 139 7 87 27
a
i
95 3 1 26 2 6
p
i
95 286 381 1119 2619 16833
Oˇcito je w
0
w
4
= (−1)
1
t
1
(−1)
5
t
5
= 36
2
. Stoga je
p
2
0
p
2
4
= (95 2619)
2
≡ 3834
2
≡ 36
2
(mod 9073).
Izraˇcunamo: (3834 + 36, 9073) = 43. Zaista, 9073 = 43 211.
Da bi metoda veriˇznog razlomka postala stvarno relativno efikasna (sub-
eksponencijalna) metoda, gore opisanu ideju treba kombinirati s koriˇstenjem
tzv. faktorske baze za nalaˇzenje relacija oblika w
k
1
w
k
m
= w
2
. Dakle,
formiramo faktorsku bazu B koja se sastoji od broja −1, te svih prostih
brojeva ≤ B
1
, gdje je B
1
prikladno odabrana granica. Sada svaki od gore
dobivenih w
i
-ova pokuˇsamo prikazati kao produkt elemenata iz B. Recimo da
B ima m elemenata. Tada, nakon ˇsto uspijemo faktorizirati barem m+1 w
i
-
ova, pogledamo odgovaraju´ce vektore parnosti eksponenata. To su vektori u
Z
m
2
. Budu´ci da tih vektora ima viˇse od dimenzije pripadnog vektorskog pros-
tora, oni su linearno zavisni. Gaussovom eliminacijom (ili, joˇs bolje, nekom
od specijalnih metoda za ”rijetke” matrice, npr. Lanczosovom metodom)
pronademo njihovu netrivijalnu linearnu kombinaciju koja daje nul-vektor.
Teorija brojeva u kriptografiji 77
Drugim rijeˇcima, nademo podskup w
i
-ova takav da je suma pripadnih vek-
tora parnosti parna. No, to znaˇci da je produkt tih w
i
-ova potpun kvadrat.
Kod metode veriˇznog razlomka, otprilike pola prostih brojeva se moˇze
izostaviti iz faktorske baze B. Naime, ako p[w
i
, onda p[p
2
i
− nq
2
i
, pa je p
kvadratni ostatak modulo n. Zato se iz faktorske baze mogu izbaciti svi oni
p-ovi za koje je (
n
p
) = −1.
U naˇsem gornjem primjeru imamo: w
0
= (−1)
1
2
4
3
1
, w
4
= (−1)
1
3
3
,
pa bi za B = ¦−1, 2, 3¦ pripadni vektori parnosti bili [1, 0, 1] i [1, 0, 1], ˇcija
je suma [0, 0, 0].
ˇ
Sto se tiˇce sloˇzenosti metode veriˇznog razlomka, sliˇcno kao kod ECM, i
ovdje se pokazuje da je optimalan izbor granice B
1
≈ e

ln nln ln n
, ˇsto daje
ocjenu za oˇcekivani broj operacija
O

e
(

2+ε)

ln nln lnn

.
Ipak, za razliku od ECM, ove ocjene nisu sasvim strogo dokazane, ve´c se
zasnivaju na nekim nedokazanim ”heuristiˇckim” slutnjama.
Kod svoje poznate faktorizacije broja 2
2
7
+ 1, Brillhart i Morrison su
koristili jednu modifikaciju gore opisane metode. Naime, umjesto razvoja

n, predloˇzili su koriˇstenje razvoja broja

kn za neki mali broj k. Ova
modifikacija je posebno korisna ako razvoj od

n ima mali period. U ovom
konkretnom sluˇcaju, oni su koristili k = 257.
Od drugih uspjeˇsnih faktorizacija metodom veriˇznih razlomaka, spome-
nimo joˇs faktorizaciju 56-znamenkastog broja N

11
(Naur, 1982). Ovdje je
N

11
= N
11
/1307, a brojevi N
i
se definiraju rekurzivno s p
1
= 2, N
i
=
p
1
p
2
p
i−1
+ 1, gdje je p
j
najve´ci prosti faktor od N
j
.
5.5 Metoda kvadratnog sita
Kvadratno sito je varijanta metode faktorske baze koju je uveo Pomerance
1982. godine. Ovdje za faktorsku bazu B uzimamo
B = ¦p : p neparan prost broj, p ≤ B,

n
p

= 1¦ ∪ ¦2¦,
gdje je B broj odabran na neki prikladan naˇcin. Skup S u kojem traˇzimo
B-brojeve (to su oni koji su djeljivi samo s prostim brojevima iz B) bit ´ce
isti kao u Fermatovoj faktorizaciji, tj.
S = ¦t
2
−n :

n| + 1 ≤ t ≤

n| +A¦,
za neki prikladno odabrani A.
Glavna ideja ove metode je da umjesto da za svaki s ∈ S djelje´ci ga s
prostim brojevima p ∈ B provjeravamo da li je B-broj, mi uzimamo jedan
Teorija brojeva u kriptografiji 78
po jedan p ∈ B i ispitujemo djeljivost s p za sve s ∈ S. Odavde dolazi i naziv
”sito”, po analogiji s Eratostenovim sitom za generiranje tablice prostih
brojeva.
Algoritam kvadratnog sita: Neka je n neparan sloˇzen broj.
1. Odaberimo brojeve B i A, oba reda veliˇcine e

ln n ln ln n
. Obiˇcno se
uzima da je P < A < P
2
.
2. Za t =

n| + 1,

n| + 2, ... ,

n| + A, napravimo listu brojeva
t
2
−n (i stavimo ih u jedan stupac).
3. Za svaki prost broj p ≤ B, provjerimo je li (
n
p
) = 1. Ako nije, izbacimo
p iz faktorske baze.
4. Za neparan prost broj p takav da je (
n
p
) = 1, rjeˇsavamo kongruenciju
t
2
≡ n (mod p
β
) za β = 1, 2, . . . . Neka je β najve´ci prirodan broj za kojeg
postoji t,

n| + 1 ≤ t ≤

n| +A, takav da je t
2
≡ n (mod p
β
). Neka su
t
1
i t
2
dva rjeˇsenja od t
2
≡ n (mod p
β
) takva da je t
2
≡ −t
1
(mod p
β
) (t
1
i
t
2
nisu nuˇzno iz S).
5. Za p iz toˇcke 4., pogledamo listu iz toˇcke 2. U stupcu ispod p stavimo
1 kod svih vrijednosti od t
2
−n kod kojih p[t−t
1
; promjenimo 1 u 2 kod onih
kod kojih p
2
[t − t
1
; promjenimo 2 u 3 ako p
3
[t − t
1
, itd. sve do p
β
. Potom
napravimo sve isto s t
2
umjesto t
1
. Najve´ci broj koji ´ce se pojaviti u ovom
stupcu bit ´ce β.
6. Svaki put kad u toˇcki 5. stavimo 1 ili promjenimo 1 u 2, ili 2 u 3, ili
itd., podijelimo odgovaraju´ci t
2
−n sa p i zabiljeˇzimo rezultat.
7. U stupcu ispod p = 2, ako n ≡ 1(mod 8), onda stavimo 1 kod svih
t
2
−n u kojima je t neparan, te podijelimo t
2
−n s 2. Ako je n ≡ 1 (mod 8),
onda rjeˇsavamo kongruenciju t
2
≡ n (mod 2
β
) i radimo sve isto kao za
neparne p (osim ˇsto ´ce za β ≥ 3 biti 4 razliˇcita rjeˇsenja t
1
, t
2
, t
3
, t
4
modulo
2
β
).
8. Kad zavrˇsimo sa svim prostim brojevima p ≤ B, odbacimo sve t
2
−n,
osim onih koji su postali jednaki 1 nakon dijeljenja sa svim potencijama
prostih brojeva p ≤ B. Dobit ´cemo tako tablicu, u kojoj ´ce stupac koji
odgovara b
i
imati vrijednosti elemenata t
2
−n iz S koji su B-brojevi, a ostali
stupci ´ce odgovarati vrijednostima p ∈ B za koje je (
n
p
) = 1.
9. Ostatak postupka je isti kao kod op´ce metode faktorske baze.
Primjer 5.5. Neka je n = 1042387. Uzmimo B = 50 i A = 500. Ovdje je


n| = 1020. Naˇsa faktorska baza se sastoji od 8 prostih brojeva ¦2, 3, 11, 17,
19, 23, 43, 47¦. Budu´ci da je n ≡ 1 (mod 8), u stupcu pod p = 2 stavljamo
1 kod svih neparnih brojeva izmedu 1021 i 1520.
Teorija brojeva u kriptografiji 79
Opisat ´cemo detaljno formiranje stupca pod p = 3.
ˇ
Zelimo na´ci rjeˇsenje
t
1
= t
1,0
+ t
1,1
3 + t
1,2
3
2
+ + t
1,β−1
3
β−1
kongruencije t
2
1
≡ 1042387
(mod 3
β
), t
1,j
∈ ¦0, 1, 2¦. Moˇzemo uzeti t
1,0
= 1. Modulo 9 imamo: (1 +
3t
1,1
)
2
≡ 7(mod 9), odakle je t
1,1
= 1. Modulo 27 imamo: (1+4+9t
1,2
)
2
≡ 25
(mod 27), odakle je t
1,2
= 2. Nastavljaju´ci ovaj postupak do 3
7
, dobivamo
t
1
= (210211)
3
= 589 mod 3
7
. Budu´ci da je 589 < 1021, a 3
7
−589 = 1598 >
1520, zakljuˇcujemo da je β = 6 i moˇzemo uzeti t
1
= 589 ≡ 1318 (mod 3
6
) i
t
2
= 3
6
−589 = 140 (t
2
≡ 1112 (mod 3
5
)).
Sada konstruiramo ”sito” za p = 3. Krenuvˇsi od 1318, skaˇcemo za po
3 na dolje do 1021 i na gore do 1519, te svaki put stavimo 1 u stupac i
podijelimo odgovaraju´ci t
2
− n s 3. Tada napravimo sve isto sa skokovima
po 9, 27, 81, 243 i 729 (u stvari, za 729 nemamo skokova, ve´c samo prom-
jenimo 5 u 6 kod 1318 i podijelimo 1318
2
−1042387 joˇs jednom sa 3). Nakon
toga ponovimo sve krenuvˇsi u skokove od 1112 umjesto 1318. Ovaj put se
zaustavljamo kod skoka za 243.
Nakon ˇsto ovaj postupak primijenimo na preostalih 6 brojeva u fak-
torskoj bazi, dobit ´cemo tablicu 500 8 u kojoj redci odgovaraju t-ovima
izmedu 1021 i 1520. Izbacimo li sve redke za koje se t
2
−n nije reducirao na
1, tj. zadrˇzimo li samo one retke za koje je t
2
−n B-broj, dobivamo sljede´cu
tablicu:
t t
2
−n 2 3 11 17 19 23 43 47
1021 54 1 3
1027 12342 1 1 2 1
1030 18513 2 2 1
1061 83334 1 1 1 1 1
1112 194157 5 1 1
1129 232254 1 3 1 1 1
1148 275517 2 3 1
1175 338238 1 2 1 1 1
1217 438702 1 1 1 2 1
1390 889713 2 2 1 1
1520 1268013 1 1 2 1
Sada traˇzimo relacije modulo 2 izmedu redaka u ovoj matrici. Jedan takav
sluˇcaj nalazimo u prva tri retka. Tako dobivamo
(1021 1027 1030)
2
≡ (2 3
3
11
2
17)
2
(mod 1042387).
Naˇzalost, brojevi pod kvadratom na obje strane ove kongruencije kongru-
entni su 111078 modulo 1042387, tako da ne dobivamo niˇsta korisno. Medutim,
ako kombiniramo peti i zadnji redak, dobivamo
(1112 1520)
2
≡ (3
3
17 23 47)
2
(mod 1042387),
Teorija brojeva u kriptografiji 80
647853
2
≡ 496179
2
(mod 1042387),
odakle dobivamo netrivijalni faktor (647853 − 496179, 1042387) = 1487.
Drugi faktor je 701.
Oˇcekivani broj operacija metodom kvadratnog sita je
O

e

log n log log n

,
dakle, skoro isto kao kod faktorizacije pomo´cu eliptiˇckih krivulja. Spomenimo
da je 1996. godine metodom kvadratnog sita faktoriziran tzv. RSA-129. To
je broj od 129 znamenaka koji je produkt dva prosta broja od 64 i 65 zna-
menaka.
Trenutno najbolja poznata metoda faktorizacije je metoda sita polja bro-
jeva (number field sieve) koja kombinira ideje iz metode kvadratnog sita i
algebarsku teoriju brojeva. Kod ove metode je oˇcekivani broj operacija
O

e
c(log n)
1/3
(log log n)
2/3

,
gdje je c =
3

64
9
≈ 1.92. Metodu je prvi put upotrijebio Pollard 1990.
godine za faktorizaciju broja Fermatovog broja 2
2
9
+ 1. Ovom su metodom
faktorizirani brojevi RSA-130 (1996. godine), te RSA-140 i RSA-155 (1999.
godine).
Broj RSA-155 je u kolovozu 1999. godine faktorizirala grupa istraˇzivaˇca
pod vodstvom Hermana te Riellea. Evo tog broja i njegove faktorizacije:
109417386415705274218097073220403576120037329454492059909138421314763499842889\
34784717997257891267332497625752899781833797076537244027146743531593354333897 =
102639592829741105772054196573991675900716567808038066803341933521790711307779 ·
· 106603488380168454820927220360012878679207958575989291522270608237193062808643.

Poglavlje 1

Kriptografija javnog kljuˇa c
1.1 Kratki uvod u kriptografiju

Kako uspostaviti sigurnu komunikaciju preko nesigurnog komunikacijskog kanala? Metode za rjeˇavanje ovog problema proˇava znanstvena disciplina s c koja se zove kriptografija (ili tajnopis). Osnovni zadatak kriptografije je omogu´avanje komunikacije dvaju osoba (zovemo ih poˇiljalac i primalac c s - 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 c c c sc Eve ili Oskar), koja moˇe nadzirati komunikacijski kanal, ne moˇe razumjeti z z njihove poruke. Poruku koju poˇiljalac ˇeli poslati primaocu zovemo otvoreni tekst. Poˇis z s ljalac transformira otvoreni tekst koriste´i unaprijed dogovoreni kljuˇ K. Taj c c se postupak zove ˇifriranje, a dobiveni rezultat ˇifrat. Nakon toga poˇiljalac s s s poˇalje ˇifrat preko nekog komunikacijskog kanala. Protivnik prisluˇkuju´i s s s c moˇe saznati sadrˇaj ˇifrata, ali kako ne zna kljuˇ, ne moˇe odrediti otvoreni z z s c z tekst. Za razliku od njega, primalac zna kljuˇ kojim je ˇifrirana poruka, pa c s moˇe deˇifrirati ˇifrat i odrediti otvoreni tekst. z s s

Ove pojmove ´emo formalizirati u sljede´oj definiciji. c c Definicija 1.1. Kriptosustav je uredena petorka (P, C, K, E, D), gdje je P 1

Teorija brojeva u kriptografiji

2

konaˇan skup svih otvorenih tekstova, C konaˇan skup svih ˇifrata, K konaˇan c c s c skup svih mogu´ih kljuˇeva, E skup svih funkcija ˇifriranja i D skup svih c c s funkcija deˇifriranja. Za svaki K ∈ K postoji ek ∈ E i odgovaraju´i dK ∈ s c D. Pritom su eK : P → C i dK : C → P funkcije sa svojstvom da je dK (eK (x)) = x za svaki x ∈ P.

Shema koju smo u uvodu opisali predstavlja tzv. simetriˇni ili konvenc cionalni kriptosustav. Funkcije koje se koriste za ˇifriranje eK i deˇifriranje s s dK ovise o kljuˇu K kojeg Alice i Bob moraju tajno razmjeniti prije same c komunikacije. Kako njima nije dostupan siguran komunikacijski kanal, ovo moˇe biti veliki problem. z Godine 1976. Diffie i Hellman su ponudili jedno mogu´e rjeˇenje probc s lema razmjene kljuˇeva, zasnovano na ˇinjenici da je u nekim grupama poc c tenciranje puno jednostavnije od logaritmiranja. O ovom algoritmu ´emo c detaljnije govoriti u jednom od sljede´ih poglavlja. c Diffie i Hellman se smatraju zaˇetnicima kriptografije javnog kljuˇa. Ideja c c javnog kljuˇa se sastoji u tome da se konstruiraju kriptosustavi kod kojih c bi iz poznavanja funkcije ˇifriranja eK bilo praktiˇki nemogu´e (u nekom s c c razumnom vremenu) izraˇunati funkciju deˇifriranja dK . Tada bi funkcija c s eK mogla biti javna. Dakle, u kriptosustavu s javnim kljuˇem svaki korisc nik K ima dva kljuˇa: javni eK i tajni dK . Ako Alice ˇelji poslati Bobu c z poruku x, onda je ona ˇifrira pomo´u Bobovog javnog kljuˇa eB , tj. poˇalje s c c s Bobu ˇifrat y = eB (x). Bob deˇifrira ˇifrat koriste´i svoj tajni kljuˇ dB , s s s c c dB (y) = dB (eB (x)) = x. Uoˇimo da Bob mora posjedovati neku dodatnu c informaciju (tzv. trapdoor - skriveni ulaz) o funkciji eB , da bi samo on mogao izraˇunati njezin inverz dB , dok je svima drugima (a posebno Eve) to c nemogu´e. Takve funkcije ˇiji je inverz teˇko izraˇunati bez poznavanja nekog c c s c dodatnog podatka zovu se osobne jednosmjerne funkcije.

Napomenimo da su kriptosustavi s javnim kljuˇem puno sporiji od modc ernih simetriˇnih kriptosustava (DES, IDEA, AES), pa se stoga u praksi ne c koriste za ˇifriranje poruka, ve´ za ˇifriranje kljuˇeva, koji se potom koriste s c s c u komunikaciji pomo´u nekog simetriˇnog kriptosustava. c c Druga vaˇna primjena kriptosustava s javnim kljuˇem dolazi od toga da z c oni omogu´avaju da se poruka ”digitalno poptiˇe”. Naime, ako Alice poˇalje c s s Bobu ˇifrat z = dA (eB (x)), onda Bob moˇe biti siguran da je poruku poslala s z Alice (jer samo ona zna funkciju dA ), a takoder jednakost eA (z) = eB (x) predstavlja i dokaz da je poruku poslala Alice, pa ona to ne moˇe kasnije z zanijekati.

Teorija brojeva u kriptografiji

3

1.2

Kriptosustavi zasnovani na problemu faktorizacije

U konstrukciji kriptosustava s javnim kljuˇem, tj. osobnih jednosmjernih c funkcija, obiˇno se koriste neki ”teˇki” matematiˇki problemi. Jedan od c s c takvih problema je problem faktorizacije velikih prirodnih brojeva. O metodama faktorizacije ´emo detaljno govoriti kasnije. Za sada kaˇimo da je danas c z praktiˇki nemogu´e rastaviti na faktore paˇljivo odabran broj s viˇe od 200 c c z s znamenaka. Najpoznatiji kriptosustav s javnim kljuˇem je RSA kriptosustav iz 1977. c godine, nazvan po svojim tvorcima Rivestu, Shamiru i Adlemanu. Njegova sigurnost je zasnovana upravo na teˇko´i faktorizacije velikih prirodnih bros c jeva. Slijedi precizna definicija RSA kriptosustava. RSA kriptosustav: Neka je n = pq, gdje su p i q prosti brojevi. Neka je P = C = Zn , te K = {(n, p, q, d, e) : n = pq, de ≡ 1 (mod ϕ(n))}. Za K ∈ K definiramo eK (x) = xe mod n, dK (y) = y d mod n, x, y ∈ Zn .

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 kljuˇ. c Ovdje je ϕ(n) Eulerova funkcija. U naˇem sluˇaju je ϕ(n) = ϕ(pq) = s c (p − 1)(q − 1) = n − p − q + 1. U dokazu da je dK inverz od eK koristimo Eulerov teorem: xϕ(n) ≡ 1 (mod n), za (x, n) = 1.

Uvjerimo se da su funkcije eK i dK jedna drugoj inverzne. Imamo: dK (eK (x)) ≡ xde (mod n). Iz de ≡ 1 (mod ϕ(n)) slijedi da postoji prirodan broj k takav da je de = kϕ(n) + 1. Pretpostavimo da je (x, n) = 1. Sada je xde = xkϕ(n)+1 = (xϕ(n) )k · x ≡ x (mod n) (prema Eulerovom teoremu). Ako je (n, x) = n, onda je xde ≡ 0 ≡ x (mod n). Ako je (n, x) = p, onda je xde ≡ 0 ≡ x (mod p) i xde = (xq−1 )(p−1)k · x ≡ x (mod q), pa je xde ≡ x (mod n). Sluˇaj (n, x) = q je potpuno analoc de ≡ x (mod n), ˇto znaˇi da je d (e (x)) = x. gan. Prema tome, zaista je x s c K K Sigurnost RSA kriptosustava leˇi u pretpostavci da je funkcija eK (x) = z xe mod n jednosmjerna. Dodatni podatak (trapdoor) koji omogu´ava deˇic s friranje je poznavanje faktorizacije n = pq. Zaista, onaj tko zna faktorizaciju

otvoreno pitanje je da li je razbijanje RSA kriptosustava.) Treba paziti z da n = pq bude otporan na metode faktorizacije koje su vrlo efikasne za brojeva specijalnog oblika. te pomo´u Euklidovog c algoritma izraˇunamo d takav da je de ≡ 1 (mod ϕ(n)). onda je (am/2 − 1. n) n netrivijalni faktor od n. jer ih se onda √ moˇe na´i koriste´i ˇinjenicu da su pribliˇno jednaki n. n tj. Stavimo kljuˇ za ˇifriranje (n. ϕ(n)) = 1. Ako je a jedan takav broj. Stoga je dugo vremena e = 3 bio popularan izbor. Takoder. Za paran broj m = ed − 1 vrijedi am ≡ 1 (mod n) za sve m ∈ Z∗ . Moˇe se pokazati da je am/2 ≡ ±1 (mod n) za z barem 50% svih a ∈ Z∗ . raˇuna faktorizaciju n = pq. tj. Tako bi brojevi p ± 1 i q ± 1 trebali imati barem jedan veliki prosti faktor. No. c s . pa zatim pomo´u nekog testa z c prostosti traˇimo prvi prosti broj ve´i ili jednak m. Broj e se moˇe izabrati sluˇajno. vidjet ´emo da izbor vrlo c malog eksponenta e predstavlja opasnost za sigurnost. Recimo sada nekoliko rijeˇi o izboru parametara u RSA kriptosustavu. c Postoji i efikasan (vjerojatnosni) algoritam koji iz poznavanja tajnog eksponenta d. c 3. p i q ne smiju biti jako blizu jako blizu jedan drugome. ima samo male proste faktore. e) u javni direktorij. modularno s s popenciranje) bilo ˇto brˇe. Opiˇimo ukratko ideju tog algoc s ritma. te se danas preporuˇa izbor e = 216 + 1 = 65537. z c c c z 2. c 1. taj moˇe izraˇunati ϕ(n) = (p−1)(q −1). Broj operacija u ˇifriranju ovisi o veliˇini s z s c broja e. te potom dobiti eksponent z c d rjeˇavaju´i linearnu kongruenciju s c de ≡ 1 (mod ϕ(n)) (pomo´u Euklidovog algoritma). takve da je (m. odredivanje x iz poznavanja xe mod n. Izraˇunamo n = pq i ϕ(n) = (p − 1)(q − 1) = n − p − q + 1. moˇemo oˇekivati da ´emo trebati testirati z c c pribliˇno ln m brojeva dok ne nademo prvi prosti broj. ekvivalentno faktorizaciji od n. Izaberemo broj e takav da je (e. n) = 1. c 4. No. To radimo tako da najprije generiramo sluˇajan prirodan c broj m s traˇenim brojem znamenaka. p+1 ”gladak”. te o broju jedinica u binarnom zapisu od e. tj. (Po teoremu o z c distribuciji prostih brojeva. tako da bi ˇifriranje xe mod n (tzv.Teorija brojeva u kriptografiji 4 broja n. Izaberemo tajno dva velika prosta broja p i q sliˇne veliˇine (oko 100 c c znamenaka). a ima smisla z c izabrati ga i ˇto manjim. Obiˇno se c c uzima da je e < ϕ(n). jer postoje efikasne metode za faktorizaciju brojeva koji imaju prosti faktor p takav da je jedan od brojeva p−1.

gdje su p. da je a kvadratni ostatak modulo n. onda biramo novi x. q prosti brojevi. barem teoretsku. uz ovaj uvjet je deˇifriranje jednostavnije i z s efikasnije. Za K ∈ K definiramo eK (x) = x2 mod n. gdje su p i q prosti brojevi takvi da je p ≡ q ≡ 3 (mod 4). pa deˇifriranje c s . onda smo naˇli faktor od n) s i izraˇunajmo a = x2 mod n. uz pretpostavku da takav c x postoji. za njega vrijedi da z s je njegovo razbijanje ekvivalentno rjeˇavanju problema kvadratnog korijena. p. Jedan nedostatak Rabinovog kriptosustava je da funkcija eK nije injekcija. onda znamo s rijeˇiti i problem faktorizacije. Uvjet p ≡ q ≡ 3 c (mod 4) se moˇe izostaviti. Algoris tam je posebno jednostavan ako je p ≡ 3 (mod 4). n) = 1 (ako je (x. Ova ˇinjenica pokazuje jednu. s pa je. n) netrivijalni faktor od n. Ako je y ≡ ±x (mod n). Zaista. te K = {(n. a vrijednosti p i q su tajne. Neka je P = C = Zn . u skladu s gore pokazanim. Neka je dan sloˇen broj n. Tako dobijemo broj y. Rabinov kriptosustav: Neka je n = pq. Stoviˇe. postoje ˇetiri kvadratna korijena modulo n. Naime. Vidjet ´emo da posc toji efikasan algoritam za rjeˇavanje kongruencije x2 ≡ a (mod p). po Eulerovom kriteriju za kvadratne ostatke. n) > 1. Za 1 ≤ a ≤ n − 1 treba na´i x ∈ Z takav da je x2 ≡ a (mod n). to je vjerojatnost uspjeha ovog algoritma u jednom koraku 1/2. No. Ako je y ≡ ±x (mod n). Vrijednost n je javna. x2 ≡ a(p+1)/2 = a(p−1)/2 · a ≡ a (mod p). Kombiniraju´i dva rjeˇenja c s 2 ≡ a (mod p) i dva rjeˇenja ±s kongruencije x2 ≡ a ±r kongruencije x s (mod q). Kako postoje ˇetiri kvadratna korijena c od a modulo n. dK (y) = √ y mod n. onda iz n|(x − y)(x + y) slijedi da je (x − y. tada je rjeˇenje s x ≡ ±a(p+1)/4 (mod p). ako znamo rijeˇiti problem kvadratnog korijena. Naime. gruencije x Obrnuto. tj. 1979.) zasnovan je na teˇko´i raˇunanja s c c ˇ kvadratnog korijena modulo fiksni sloˇeni broj. q) : n = pq}. Primijenimo algoritam za problem kvadratnog c korijena na broj a. ekvivalentno i problemu faktorizacije. Odaberimo sluˇajan s z c broj x takav da je (x. a oˇekivani broj potrebnih koraka je dva. po Kineskom teoremu o ostatcima dobivamo cetiri rjeˇenja kons 2 ≡ a (mod pq). prednost ovog kriptosustava pred c RSA kriptosustava. c Rabinov kriptosustav (Rabin. √ Ovdje a = b mod n znaˇi da je a2 ≡ b (mod n).Teorija brojeva u kriptografiji 5 Usko povezan s problemom faktorizacije je problem raˇunanja kvadratnog c korijena u Zn . Neka je n = pq.

problem diskretnog logaritma u grupi G. Da bi bila prikladna za primjene u kripc tografiji javnog kljuˇa. Oni taj svoj dogovor moraju s c provesti preko nekog nesigurnog komunikacijskog kanala. bez da su prethodno razmjenili bilo kakvu informaciju. dao jednu modifikaciju Rabinovog kriptosustava kojom se takoder eliminira ovaj nedostatak.. tako da se posljednja 64 bita dupliciraju z (ponove). c Slijedi opis Diffie-Hellmanovog protokola. 1. za ˇto se kriptosusc c s tavi s javnim kljuˇem prvenstveno koriste). dok je logaritmiranje (inverzna z operacija od potenciranja) vrlo teˇko. centralno c c pitanje jest koliko je teˇak tzv. Treba na´i najmanji nenegativni cijeli broj x takav da je h = g x .3 Kriptosustavi zasnovani na problemu diskretnog logaritma Neka je G konaˇna abelova grupa.Teorija brojeva u kriptografiji 6 nije mogu´e provesti da jednoznaˇan naˇin (osim ako je otvoreni tekst neki c c c smisleni tekst. te h ∈ H. H = {g i : i ≥ 0} podgrupa od G generirana s g. iskoristili su Diffie i Hellman u svom rjeˇenju problema razmjene z s kljuˇeva. Jedan naˇin za rjeˇavanje ovog c c s problema je da se u otvoreni tekst na umjetan naˇin ubaci izvjesna pravilc nost. ∗ g . . Takoder bi trebalo biti mogu´e genes c rirati sluˇajne elemente grupe na gotovo uniforman naˇin. c x = g ∗ g ∗ . Sa |G| ´emo oznaˇavati broj c c elemenata u grupi G. U toj modifikaciji se kre´e od prostih c brojeva p. c ˇ Cinjenicu da postoje grupe u kojima je problem diskretnog logaritma teˇak. kojeg bi onda poslije mogli koristi kao kljuˇ za c ˇifriranje u nekom simetriˇnom kriptosustavu. q sa svojstvom p ≡ 3 (mod 8). c Pretpostavimo da se Alice i Bob ˇele dogovoriti o jednom tajnom sluˇajz c nom elementu u grupi G. grupa G bi trebala imati svojstvo da su operacije c mnoˇenja i potenciranja u njoj jednostavne.. q ≡ 7 (mod 8). To se moˇe napraviti npr. ∗) konaˇna grupa. Williams je 1980. Tada moˇemo oˇekivati da ´e samo jedan od 4 kvadratna korijena z c c dati rezultat koji ima zadanu pravilnost. z Problem diskretnog logaritma: Neka je (G. Tada je Jacobijev 2 simbol ( pq ) = −1. c g ∈ G. Ipak. Jedina informacija koju imaju jest grupa G i njezin generator g (pretpostavimo zbog jednostavnosti da je grupa G cikliˇka). Taj broj x se zove diskretni logaritam i gdje je g x puta oznaˇava se s logg h. pa se svojstva Jacobijevog simbola mogu iskoristiti za identifikaciju ”pravog” kvadratnog korijena. a to nije sluˇaj kod razmjene kljuˇeva.

gdje je p dovoljno p velik prost broj. Bob izraˇuna (g a )b = g ab . Za y1 . U originalnoj definiciji Diffie-Hellmanovog protokola za grupu G se uzima multiplikativna grupa Z∗ svih ne-nul ostataka modulo p. |G| − 1}. te c poˇalje Alice element g b . Za K ∈ K i tajni sluˇajni broj k ∈ {0. y2 ) = y2 (y1 )−1 mod p. Neka je P = Z∗ . Poznato je da je grupa Z∗ cikliˇka. c Njihov protivnik (Eve). Sada ´emo opisati ElGamalov kriptosustav iz 1985. koji zasnovan c na teˇko´i raˇunanja diskretnog logaritma u u grupi (Z∗ . koji moˇe prisluˇkivati njihovu komunikaciju z s preko nesigurnog komunikacijskog kanala. ·p ). . a vrijednost a je tajna. zna sljede´e podatke: G. y2 ∈ Z∗ definiramo p a dK (y1 . k) = (αk mod p. |G| − 1}. . s 2. godine. Alice izraˇuna (g b )a = g ab . a i neke od metoda z c koje koriste u najboljim poznatim algoritmima za rjeˇavanje tih problema s su vrlo sliˇne. g.. Vjeruje se da su za ve´inu grupa koje z c c c se koriste u kriptografiji ova dva problema. . s c c p Pokazuje se da je ovaj problem pribliˇno iste teˇine kao problem faktoz z rizacije sloˇenog broja n (ako su p i n istog reda veliˇine). . c Eve treba iz ovih podataka izraˇunati g ab (kaˇe se da Eve treba rijeˇiti Diffiec z s a moˇe izraˇunati Hellmanov problem (DHP)). g b . c 4. Broj g ∈ {1. ako moˇe rijeˇiti problem diskretnog logaritma (DLP)). c Ona poˇalje Bobu element g a . Generator ove grupe se c p naziva primitivni korijen modulo p. a. p − 1} definiramo c eK (x. β) : β ≡ αa (mod p)}. c Sada je njihov tajni kljuˇ K = g ab . Ako Eve iz poznavanja g i g z c a (tj.. α... α. 1. xβ k mod p). 2. .. s 3. da postoje polinomijalni algoritmi koji svode jedan problem na drugi).. 2. Alice generira sluˇajan prirodan broj a ∈ {1. c ElGamalov kriptosustav: Neka je p prost broj i α ∈ Z∗ primip tivni korijen modulo p. . C = Z∗ × Z∗ i p p p K = {(p. onda i ona z s moˇe pomo´u a i g b izraˇunati g ab . Bob generira sluˇajan prirodan broj b ∈ {1. β su javne. Vrijednosti p. p − 1} je primitivni korijen modulo p ako je g p−1 najmanja potencija broja g koja daje ostatak 1 pri djeljenju s p..Teorija brojeva u kriptografiji 7 Diffie-Hellmanov protokol za razmjenu kljuˇeva: c 1. ... DHP i DLP. ekvivalentni (tj. . g a . 2.

prost broj p mora biti dovoljno velik da bi u Z∗ problem diskretnog logaritma bio praktiˇki nerjeˇiv. uvesti operacija uz koju one postaju abelove grupe. On sijeˇe krivulju E u tri toˇke. Dapaˇe. ima grupa. Q ∈ E(R). zajedno s ”toˇkom s c u beskonaˇnosti” koju ´emo oznaˇavati sa O. trebao c imati barem jedan veliki prosti faktor (od barem 160 bitova). uzmimo da je K = R polje realnih brojeva. poput grupe eliptiˇke krivulje nad konaˇnim c c c poljem. Eliptiˇka c c krivulja nad poljem K je skup svih uredenih parova (x. Ako je P = Q. c godine. onda umjesto sekante povlaˇimo c c tangentu kroz toˇku P . Komutativnost je takoder oˇita. na prirodan naˇin. b ∈ K i polinom f (x) nema viˇestrukih korijena. c s zbog razloga koje ´emo kasnije objasniti. Definicija 1. Sada definiramo da je P + Q osnosimetriˇna toˇka c c c c toˇki P ∗Q s obzirom na os x. z Analitiˇka geometrija nam omogu´ava da operaciju zbrajanja. Te formule s c . zapiˇemo pomo´u algebarskih formula. Neka je K polje karakteristike razliˇite od 2 i 3. c a najteˇe je provjeriti asocijativnost. Tada eliptiˇku c krivulju E(R) (bez toˇke u beskonaˇnosti) moˇemo prikazati kao podskup c c z ravnine. c Povucimo pravac kroz toˇke P i Q. Neka su P. s c Ideju o tome da bi eliptiˇke krivulje mogle biti korisne u konstrukciji c kriptosustava s javnim kljuˇem prvi su javno iznijeli Koblitz i Miller 1985. Taj skup oznaˇavamo s E(K). tj.2. broj p − 1. Po definiciji stavljamo da je P + O = O + P = P c za svaki P ∈ E(R). Moˇemo zamiˇljati da je O tre´a toˇka presjeka c z s c c od E s (vertikalnim) pravcem kroz P i −P . Definirat ´emo operaciju zbrajanja na E(R). c c c c Vrlo sliˇno se definira eliptiˇka krivulja i nad poljima karakteristike 2 c c ili 3. y) ∈ K × K koji zadovoljavaju jednadˇbu z E: y 2 = f (x) = x3 + ax + b. Takoder bi. z c Da bi eksponent a stvarno bio tajan. Stoga c s p se danas preporuˇa koriˇtenje prostih brojeva od oko 1024 bita. No. Tre´u c c c c toˇku oznaˇimo s P ∗ Q. red grupe. dok je −P osnosimetriˇna toˇka c c c toˇki P u odnosu na os x. koju smo c c definirali geometrijski.Teorija brojeva u kriptografiji 8 Mogli bismo re´i da se otvoreni tekst x ”zamaskira” mnoˇe´i s β k . gdje su a. Oˇito je O neutralni element. Jedno od najvaˇnijih svojstava eliptiˇkih krivulja jest da se na njima z c moˇe. Onaj c z c tko poznaje tajni eksponent a moˇe iz αk izraˇunati β k i ”ukloniti masku”. kod kojih je razlika u teˇini ova dva problema (potenciranja i logaz ritmiranja) joˇ ve´a. z c Da bi to objasnili. Pokazuje se da skup E(R) uz ovako definiranu operaciju zbrajanja postaje abelova grupa. nije Z∗ jedina grupa kod koje je potenciranje puno lakˇe od logas p ritmiranja.

a to su faktorizacija i dokazivanje prostosti.Teorija brojeva u kriptografiji 9 nam omogu´avaju da definiramo zbrajanje toˇaka na eliptiˇkoj krivulji nad c c c proizvoljnim poljem K (uz malu modifikaciju za sluˇaj polja s karakterisc tikom 2 i 3). O svojstvima z eliptiˇkih krivulja nad konaˇnim poljem ´emo kasnije govoriti opˇirnije. pored polja Zp . p kao ˇto je npr. postoji vjerojatnosni algoritam. uz tako definirano zbrajanje. ili op´enitije kada je K konaˇno polje. Za primjene eliptiˇkih krivulja u kriptografiji posebno je vaˇan sluˇaj c z c kada je polje K = Zp . c Prvi je da prije ˇifriranja moramo elemente otvorenog teksta prebaciti s u toˇke na eliptiˇkoj krivulji. Vidc c c s jet ´emo takoder da eliptiˇke krivulje imaju vaˇnu primjenu i na probleme c c z koje smo spominjali u prethodnom poglavlju. No. najvaˇija su polja karakteristike 2. doslovno prevodenje ElGamalovog kriptosustava u eliptiˇke krivulje ima nekoliko nedostataka. ElGamalov. Za to ne postoji zadovoljavaju´i determinc c c istiˇki algoritam. abelova grupa. Ponovo je skup E(K). koji koristi ˇinjenicu c c da kvadrati u konaˇnom polju predstavljaju 50% svih elemenata. Medu konaˇnim c c c poljima. To znaˇi c c 1 da s pribliˇnom vjerojatnoˇ´u 1− 2k moˇemo oˇekivati da ´emo iz k pokuˇaja z sc z c c s prona´i broj x takav da je x3 + ax + b kvadrat u Zp . Svi kriptosustavi koji u svojoj originalnoj definiciji koriste grupu Z∗ . mogu se vrlo lako modificirati tako da kos riste grupu E(Zp ). Pretpostavimo sada da su nam osnovne jec . No. Za k = 30 to je sasvim c zadovoljavaju´a vjerojatnost.

. Zove se Menezes-Vanstoneov kriptosustav. y2 ). α. c2 ). |H| − 1}. iz toˇke (x. a. gdje je ay0 = (c1 . prilikom ˇifriranja. y1 = c1 x1 mod p. y) na E(Zp ). te broju m c pridruˇimo toˇku (x. Za ˇifrat y = (y0 . y2 = c2 x2 mod p. . c Neka je P = Z∗ × Z∗ . a vrijednost a je tajna. y1 . c Vrijednosti E. izraˇunamo y koji zadovoljava da je y 2 ≡ x3 + ax + b (mod p). U njemu se c eliptiˇke krivulje koriste samo za ”maskiranje”. β su javne. k c c provjeravamo da li je x3 + ax + b kvadrat u Zp . a + je zbrajanje toˇaka c c na eliptiˇkoj krivulji. Pretpostavimo nadalje da je p > M k. . . y1 . . 1. Kad nademo takav broj. . k Drugi problem je da se ˇifrat jednog elementa otvorenog teksta kod ove s varijante ElGamalovog kriptosustava sastoji od uredenog para toˇaka na c eliptiˇkoj krivulji. te H cikliˇka podgrupa od E generirana s α. Sada otvorenom tekstu m pridruˇujemo toˇku na eliptiˇkoj z c c krivulji E(Zp ) na sljede´i naˇin.Teorija brojeva u kriptografiji 10 dinice otvorenog teksta cijeli brojevi izmedu 0 i M . α. . 2. β) : β = aα}. . To znaˇi da. gdje aα oznaˇava α + α + · · · + α (a puta). Kod ovog kriptosustava. Za brojeve x oblika mk + j. (c1 . Obrnuto. j = 1. Menezes-Vanstoneov kriptosustav: Neka je E eliptiˇka krivulja c nad Zp (p > 3 prost). C = E × Z∗ × Z∗ i p p p p K = {(E. poruka postane otprilike c c s 4 puta dulja. y2 ) definiramo s dK (y) = (y1 (c1 )−1 mod p. Za K ∈ K i tajni sluˇajni broj k ∈ {0. k) = (y0 . gdje je y0 = kα. c2 ) = kβ. te za x = c ∗ × Z∗ definiramo (x1 . dok su otvoreni tekstovi c i ˇifrati proizvoljni uredeni parovi elemenata iz polja (a ne nuˇno parovi koji s z odgovaraju toˇkama na eliptikoj krivulji). Navest ´emo jednu varijantu ElGamalovog kriptosustava koja koristi c eliptiˇke krivulje. y2 (c2 )−1 mod p). ˇifrirana c s poruka je (samo) 2 puta dulja od originalne poruke. x2 ) ∈ Zp p eK (x. y) pripadni otvoreni z c c tekst m moˇemo dobiti po formuli z m= x−1 . .

Drugi tip su tzv. takvih da je deg b < deg a ≤ g i b2 ≡ f (mod a). ˇto je ekvivalentno. Tako c z c c je npr. s z p To pak znaˇi da se ista sigurnost moˇe posti´i s manjim kljuˇem. koja se moˇe shvatiti kao analogon grupe toˇaka na eliptiˇkoj z c c krivulji. interes za primjenu ovih grupa u kriptografiji je znatno smanjen. grupe klasa pozitivno definitnih kvadratnih formi). ne moˇemo da prirodan naˇin uvesti grupovnu strukturu. c c Multiplikativna grupe konaˇnog polja i grupa toˇaka na eliptiˇkoj krivulji c c c nad konaˇnim polje su dva najvaˇija tipa grupa koje se koriste u kriptografiji c z javnog kljuˇa. c z z z Jacobijan. Dakle. hipereliptiˇkim krivuljama moˇemo pridruˇiti jednu vaˇnu grupu. Cantor-Koblitzov algoritam za zbrajanje u Jacobijanu: Algoritam raˇuna (a3 . b1 ) + (a2 . o kojima ˇemo pokuc c ˇati neˇto re´i. tzv. a2 . umjesto kljuˇa duljine duljine 1024 bita. z s c Mi ´emo ovdje dati prikaz koji vodi k efikasnom algoritmu za grupovnu c operaciju. b) polinoma a. glavni razlog za uvodenje eliptiˇkih krivulja s c c u kriptografiju javnog kljuˇa jest taj da je problem diskretnog logaritma u c grupi E(Zp ) joˇ teˇi od problema diskretnog logaritma u grupi Z∗ . na toˇkama na krivulji c c genusa ve´eg od 1. c c Elemente grupe JK (C) ´emo reprezentirati s parom (a. b ∈ c K[x]. Ako je K karakteristike 2. Takoder ´emo pretpostaviti da je K karakteristike razliˇite od 2. c Dvostrukom primjenom Euklidovog algoritma izraˇunaj c d = gcd(a1 . No. To je osobito vaˇno kod onih primjena (kao ˇto su npr. gdje je f normirani polinom stupnja 2g + 1. c z c Ipak. godine pronaˇao efikasan algoritam za problem s s diskretnog logaritma u njima. onda moˇemo uzeti da je h = 0.Teorija brojeva u kriptografiji 11 Kao ˇto smo ve´ spomenuli. b1 + b2 ) = s1 a1 + s2 a2 + s3 (b1 + b2 ) a3 = a1 a2 /d2 b3 = (s1 a1 b2 + s2 a2 b1 + s3 (b1 b2 + f ))/d mod a3 while (deg a3 > g) { a3 = (f − b2 )/a3 3 b3 = −b3 mod a3 } . b3 ) = (a1 . b2 ). s nakon ˇto je McCurley 1989. joˇ su dva tipa grupa prouˇavana u ovom kontekc s c stu. s s c Hipereliptiˇka krivulja genusa (roda) g nad poljem K ima jednadˇbu c z C: y 2 + h(x)y = f (x). dovoljan kljuˇ duljine 160 c c bitova. ˇip-kartice) z s c kod kojih je prostor za pohranu kljuˇeva vrlo ograniˇen. s Polinomi f i h imaju koeficijente u polju K. Za razliku od eliptiˇkih krivulja. Jacobijani hipereliptiˇkih krivulja. eliptiˇke krivulje moˇemo shvatiti kao z c z krivulje genusa 1. Pored njih. a h polinom stupnja najviˇe g. Prvi tip su grupe klasa ideala u imaginarnim kvadratnim poljima (ili. Jacobijan JK (C) krivulje C nad poljem K se moˇe opisati na viˇe naˇina.

to znaˇi da za z c c manje vrijednosti od q moˇemo dobiti grupe dovoljno velikog reda. Neuc c z tralni element je par (1. te takoder ukratko opisati matematiˇke probleme na koc c jima se oni zasnivaju. . 1}) tako da je ε1 v1 + ε2 v2 + · · · + εn vn = V. v2 . c Uz zbrajanje po komponentama.4 Ostali kriptostavi s javnim kljuˇem c U ovom poglavlju ´emo vrlo kratko spomenuti joˇ neke kriptosustave s c s javnim kljuˇem. vn } od n prirodnih brojeva i prirodan broj V . problem ruksaka. zbog razliˇitih razloga. Recimo odmah da se. xt nultoˇke od c c a.. ε2 . najteˇe je dokazati asocijativnost. Veza izmedu gornjeg prikaza Jacobijana i divizora c je sljede´a. b(xi )) leˇe na krivulji C. b(xi )). koju oznaˇavamo sa Div(C). n} tako da je j∈J vj = V (ako takav podskup postoji). . divizora. i to c je glavni razlog ˇto da za sada u praksi ne preporuˇa primjena hipereliptiˇkih. U usporedbi s eliptiˇkim krivuljama. deg b = 0. . Kao i u sluˇaju eliptiˇkih krivulja. gdje su nP cijeli brojevi i svi osim konaˇno mnogo od njih su jednaki 0. . onda toˇke (xi . da bi z problem diskretnog logaritma u JK (C) bio teˇak.. Dakle.. pa paru (a. 1978) za osnovu ima tzv.Teorija brojeva u kriptografiji 12 Pokazuje se da je JK (C) uz ovako definirano zbrajanje abelova grupa. .. s c c umjesto eliptiˇkih krivulja. pa elemente Jacobijana eliptiˇke c krivulje moˇemo identificirati s toˇkama na eliptiˇkoj krivulji. na´i niz m = (ε1 . ovi kripc tosustavi u praksi upotrebljavaju puno rjede nego kriptosustavi opisani u prethodna dva poglavlja. Divizor na c krivulji je formalna suma toˇaka c D= P ∈C(K) nP P. 0). εn ) od n binarnih c znamenaka (εi ∈ {0. Merkle-Hellmanov kriptosustav (Merkle i Hellman. skup svih divizora postaje grupa. z c c Ako za K uzmemo konaˇno polje s q elemenata. Ako su a i b polinomi kao gore. S druge strane. onda je red od JK (C) c pribliˇno jednak q g . . . 2. b) = i=1 (xi .. Druga interpretacija Jacobijana je pomo´u tzv. c 1. . ˇelimo z z na´i J ⊆ {1. . c Ekvivalentna formulacija je: Problem ruksaka: Za dani skup {v1 . v2 . Pretpostavimo da imamo n predmeta s volumenima v1 . grupovna z operacija na eliptiˇkoj krivulji je puno jednostavnija za implementaciju. te ako su x1 . Ako je g = 1. onda je deg a = 1. . b) moˇemo pridruˇiti c z z z divizor t div(a. . . vn s kojima ˇelimo napuniti ruksak volumena V . . . . .

Za 0 ≤ y ≤ n(p − 1) definiramo z = a−1 y mod p. Neka je c P = {0.Teorija brojeva u kriptografiji 13 ako takav m postoji. znaˇi da nije poznat polinomijalni c c algoritam za njegovo rjeˇavanje. . εn ) je rjeˇenje s else nema rjeˇenja s Ideja Merkle-Hellmanovog kriptosustava je ”zamaskirati” superrastu´i c niz tako da izgleda kao sasvim sluˇajan niz. vn . Za i = 1. . . . u svakom koraku u ruksak moramo staviti najve´i predmet c c koji u njega stane. a. v2 . . x2 . 1}n . vn rastu´i i vrijedi c vj > v1 + v2 + · · · vj−1 za j = 2. . n(p − 1)} i K = {(v. . pa moˇe proˇitati poruku rjeˇavaju´i z c s c supperrastu´i problem ruksaka. Medutim.. . s tzv. n. . superrastu´i problem ruksaka. . je puno lakˇi. On spada u tzv.. Svi drugi moraju rjeˇavati. Vrijednost t je javna. p. . To je sluˇaj kad je niz v1 . Poznato je da je ovaj op´i problem ruksaka vrlo teˇak. Jasno je da u sluˇaju superc c rastu´eg niza. t2 . jedan njegov specijalni sluˇaj. te neka je p > v1 + v2 + · · · + vn c prost broj i 1 ≤ a ≤ p − 1.. Primjer superrastu´eg niza je niz vi = 2i−1 .. op´i c s z c problem ruksaka. pa ne mogu proˇitati poruku. definiramo ti = avi mod p i oznaˇimo t = (t1 . . puno teˇi. . c Za K ∈ K definiramo eK (x1 . To vodi do sljede´eg algoritma: c Algoritam za superrastu´i problem ruksaka: c for (n ≥ i ≥ 1) { if (V ≥ vi ) then V = V − vi . a i t konstruirani na gore opisani naˇin. . . . pored ostalog. . gdje su v. 3. . 1. C = {0. . . xn ) = x1 t1 + x2 t2 + · · · + xn tn . a i v tajne. . . . . c z NP-potpune probleme. rijeˇimo (supers rastu´i) problem ruksaka za skup {v1 . Onaj kome je poruka namjenc jena (Bob) zna kako ukloniti masku. . . ”Maskiranje” se provodi c pomo´u modularnog mnoˇenja. To. z} i tako dobivamo c dK (y) = (x1 . . tn ). dok su vrijednosti p. . xn ). n. vn ) superrastu´i niz prirodnih brojeva. p. εi = 1 else εi = 0 } if (V = 0) then (ε1 . v2 . . . . t)}. . 2. .. x2 . . c z Merkle-Hellmanov kriptosustav: Neka je v = (v1 . . c s c v2 .

Linearni [n. . te je on po brzini bio usporediv s najboljim simetriˇnim z c kriptosustavima. y = (y1 .Teorija brojeva u kriptografiji 14 Merkle-Hellmanov kriptosustav je imao jednu vrlo veliku prednost u odnosu na ostale kriptosustave s javnim kljuˇem. ovaj sustav se ne moˇe viˇe smatrati z s sigurnim kriptosustavom. Da c s . . tj. Definiramo udaljenost od C sa d(C) = min{d(x. c Za x = (x1 . 1978). definiramo Hammingovu 2 udaljenost sa d(x. Ta ideja je koriˇtenje u deˇifriranju nekog jednostavnog specijalnog sluˇaja s s c nekog teˇkog (NP-potpunog) problema. k]-kod. xi = yi }|. d]-kod C. . y ∈ C. Pokazalo se da se ovako jednostavnim maskiranjem vrlo specijanog niza ipak ne dobiva sasvim sluˇajan niz. No. . z s Tada Alice kodira x kao n-torku y = xG. x = y}. kad je Shamir c pronaˇao polinomijalni algoritam za razbijanje Merkle-Hellmanovog kriptos sustava. Tada za C kaˇemo da je [n. Kao osnova u ovom kriptosustavu koristi se specis jalna klasa tzv. Goppa kodova za koje postoji polinomijalni algoritam za dekodiranje. te poˇalje y preko kanala. d]-kod. Neka je G generiraju´a matrica za [n. budu´i da kanal ima ˇum. Prema tome. godine 1982. k ≤ n. s time da se taj specijalni sluˇaj s c prikrije tako da izgleda kao op´i. . . y) : x. je usljedilo razoˇaranje. Neka su k i n prirodni brojevi. U razbijanju se koriste algoritmi c za diofantske aproksimacije (veriˇni razlomci i LLL-algoritam) koje ´emo z c kasnije detaljno opisati. k]-kod je k-dimenzionalni potprostor od Zn . xn ). k. . Naime. k. Generiraju´a matrica za linearni kod C je k ×n matrica c 2 G ˇiji redci tvore bazu za C. ne mora podudarati sa y. z Primjer jednog [7. Neka je C neki linearni [n. c Ova ideja se koristi i u McElieceovom kriptosustavu (McEliece. 3]-koda dan je sljede´om matricom: c   1000110 0 1 0 0 1 0 1  G= 0 0 1 0 0 1 1 0001111 Svrha kodova za ispravljanje greˇaka jest da isprave sluˇajne greˇke s c s koje mogu nastati prilikom prenoˇenja binarnih podataka preko kanala sa s ”ˇumom”. Bob primi s n-torku r koja se. y) = |{i : 1 ≤ i ≤ n. . ideja na kojoj je zasnovan je vrlo zanimljiva. 4. Ipak. Pretpostavimo s c da je x binarna k-torka koju Alice ˇeli prenijeti Bobu preko kanala sa ˇumom. ˇifranje pomo´u c s c njega je znatno brˇe. Ovdje je pripadni NP-potpuni problem dekodiranje op´ih linearnih kodova c za ispravljanje greˇaka. kao broj koordinata u kojima se x i y razlikuju. yn ) ∈ Zn .

s c c Jedan od najzanimljivijih novijih kriptosustava. poznato je nekoliko mogu´ih napada na NTRU koji c koriste LLL-algoritam za nalaˇenje najkra´eg elementa u reˇetki. definira se H = F G sa i=0 Hk = i+j≡k (mod n) Fi G j . Svakako ´e na to pitanje trebati dati odgovor. No. s . U ovom se kriptosustavu kod ˇifriranja kos riste polinomi. da z c je uspio ispraviti sve greˇke nastale prilikom prijenosa. godine c predloˇili Hoffstein. Do danas nije poznat niti c jedan efikasan napad na McEliecov kriptosustav. Parametri Goppa kodova imaju oblik c n = 2m . k = n − mt. preciznije koristi se prsten R = Z[X]/(X n − 1). (Skra´enica NTRU dolazi od ”Numz c ber Theory Research Unit”). prvenstveno zbog ogromne veliˇine javnog kljuˇa. tj. Javni kljuˇ je 524 × 1024 binarna matrica. Na elementima od R definira se operacija cikliˇke konvolucije. tj. z s Otvoreni tekst je binarna 524-torka. postoje kodovi za koje postoje efikasni alc goritmi za dekodiranje. Bob traˇi element (”kodnu rijeˇ”) y ∈ C koja ima najmanju z c Hammingovu udaljenost od r. koji su 1997. je NTRU kriptosustav. No. s Pokazuje se da je problem nalaˇenja najbliˇe kodne rijeˇi vrlo teˇak probz z c z lem za op´e linearne kodove. ˇto svakako predstavlja jednu njegovu potens cijalnu prednost. Sigurnost ovog kriptosustava se upravo zasniva na ”nezavisnosti” te dvije redukcije. McEliece je predloˇio koriˇtenje Goppa kodova s parametrima [1024. pa onda i x = x. Medutim. Za sada z c s nije sasvim jasno koliko su ti napadi ozbiljna prijetnja na sigurnost ovog kriptosustava. McEliece je 1978 predlozio da se jedna klasa takvih kodova. iskoriste u konstrukciji kriptosustava s javnim kljuˇem. c i=0 G = n−1 Gi xi . Pored toga koristi se redukcija ovako dobivenih polinoma modulo dva relativno prosta broja p i q. Goppa kodovi. 524. RSA kriptosustava. ˇ Sifriranje i deˇifriranje kod NTRU kriptosustava je znatno brˇe nego s z kod npr. Nije teˇko vidjeti da s s ukoliko broj greˇaka nije ve´i od (d − 1)/2. prije nego ˇto c s dode do eventualnog ulaska ovog kriptosustava u najˇiru uporabu. koji je joˇ uvijek preds met intenzivnog prouˇavanja. ovaj kriptosustav nije koriˇten u praksi. d = 2t + 1. Pipher i Silverman.Teorija brojeva u kriptografiji 15 bi dekodirao r. tzv. te potom izraˇuna k-torku x takvu da je c y = x G. 101]. Tada Bob moˇe oˇekivati da je y = y. a odgovaraju´i ˇifrat je binarna 1024c s torka. za F = n−1 Fi xi . onda se na ovaj naˇin mogu s c c ispraviti sve greˇke.

pa i nemogu´e. n→∞ g(n) Kod ocjene broja operacija. Pritom koristimo sljede´u c c c notaciju. tres bamo imati naˇin za usporedbu efikasnosti razliˇitih algoritama. te ponekad i s obzirom na potreban prostor (mes moriju). Pod osnovnim korakom podrazumjevamo jednu ”bitnu operaciju”.nulama c i jedinicama. n→∞ g(n) f (n) (3) f (n) = o(g(n)) ako je lim = 0. izvesti egzaktnu formulu za broj operacija s c nekog algoritma. g :→ R dvije funkcije. Zato prouˇavamo asimptotsko ponaˇanje broja operacija c s kad veliˇina ulaznih podataka neograniˇeno raste. razlikujemo ocjene za 16 .1. koja za ulazne podatke odredenog tipa daje odgovor (izlazne podatke) u konaˇnom vremenu. veliˇina prirodnog broja N je log2 N + 1.Poglavlje 2 Osnovni algoritmi u teoriji brojeva 2. konjukcije ili negacije na bitovima . c c Pod algoritmom smatramo metodu (proceduru) za rjeˇavanje neke klase s problema. Da bi mogli formalizirati te vrlo neformalne tvrdnje. Veliˇinu ulaznih podataka ´emo mjeriti brojem bitova potrebc c nih za njihov prikaz. Na primjer. logiˇku operaciju disjunkcije. c ˇ Cesto je teˇko. Neka su f. tj.1 Sloˇenost algoritama z Do sada smo viˇe puta za odredene matematiˇke probleme govorili da su s c ”laki” ili ”teˇki”. f (n) (2) f (n) ∼ g(n) ako je lim = 1. Definicija 2. c Algoritme ´emo usporedivati s obzirom na broj ”osnovnih koraka” potrebc nih za njihovo izvrˇavanje. C > 0 tako da je |f (n)| ≤ C|g(n)| za sve n > B. Tada piˇemo: s (1) f (n) = O(g(n)) ako postoje B.

iako je algoritam sloˇenosti O(nln ln n ) z z asimptotski sporiji od algoritma sloˇenosti O(n100 ). ali su brˇi od totalno eksponencijalnih. c 2 3 dok za v = 1 imamo LN (1. c) = O ec(ln N ) v (ln ln N )1−v za v = 1 ili v = 1 . c) = O((ln N )c ). ˇ Cesto za polinomijalne algoritme kaˇemo da su ”dobri” ili ”efikasni”. kod primjena u kriptografiji c z ˇesto je vaˇniji prosjeˇan broj operacija od broja operacija u najloˇijem c z c s sluˇaju. certifikata.3. z • prosjeˇan broj operacija (prosjek za sve inpute fiksne duljine) . Klasa sloˇenosti P se sastoji od svih problema odluke z za koje postoji polinomijalni algoritam. Sada bi htjeli same probleme koje rjeˇavaju ti algoritmi podijeliti (opet s ugrubo) na lake i teˇke. Klasa sloˇenosti NP se sastoji od z svih problema odluke za koje se odgovor DA moˇe provjeriti u polinomijalz nom vremenu koriˇtenjem neke dodatne informacije.Teorija brojeva u kriptografiji 17 • broj operacija u najloˇijem sluˇaju (za proizvoljan input) . Naime. u svakom sluˇaju).to ´emo s c c zvati sloˇenost algoritma. kod praktiˇnih z c primjena (npr. promatrat ´emo takozvane s c probleme odluke.to ´emo c c zvati prosjeˇna sloˇenost algoritma. su asimptotski sporiji od polinomijalnih. joˇ bolje. z c . Na primjer. za praktiˇne vrijednosti z c od n onaj prvi algoritam ´e biti brˇi. tj. u kriptografiji) treba imati u vidu da je stupanj polinoma (konstanta k) jako vaˇan. a k je konstanta.4. probleme na koje je odgovor DA ili NE. Definicija 2. c Definicija 2. Ipak. gdje je n duljina ulaznog podatka. 0 < v < 1. c z Definicija 2. Subeksponencijalni algoritam je algoritam ˇija je sloˇenost c z o(n) ). tj. Do sada smo promatrali algoritme i dijelili ih ugrubo na efikasne i neefikasne. funkcija oblika O(e Najbolji poznati algoritmi za faktorizaciju prirodnog broja N su subeksponencijalni i njihova sloˇenost je funkcija oblika z LN (v.2. Klasa s sloˇenosti co-NP se definira na isti naˇin za odgovor NE. subeksponencijalni algoritmi koji odgovaraju vrijednostima v. Uoˇimo da za v = 0 imamo LN (0. Algoritme koji nisu polinomijalni. Zbog jednostavnosti. Dakle. Polinomijalan algoritam je algoritam ˇiji je broj operacija c u najloˇijem sluˇaju funkcija oblika O(nk ). Pored toga. zovemo eksponencijalni. dok z za eksponencijalne algoritme kaˇemo da su ”neefikasni”. c) = O(N c ). gdje je n duljina ulaznog podatka s c (u bitovima). a ne z c c s c samo u nekim izoliranim sluˇajevima. onih ˇija je sloˇenost z c z k funkcija oblika O(en ). ˇelimo da nam kriptosustav bude zasnovan na problemu c z koji je teˇak u prosjeˇnom sluˇaju (ili. tzv.

binarnog pretraˇivanja. onda L1 nije bitno teˇi od L2 . Najprije primjenimo algoritam L2 za k = 2n−1 − 1. Na´i ´emo faktor od N bit po bit. Zaista. Neka je n s c c z broj bitova od N . Pokazat ´emo da je L1 ≤P L2 i L2 ≤P L1 .5. postoji li interval na kojem p(x) pada?”. onda znamo da je N prost i problem je rijeˇen. Neformalno reˇeno. Neka je n prirodan broj. Jasno je vrijedi P ⊆ NP i P ⊆ co-NP. Kaˇemo da se L1 z moˇe u polinomijalnom vremenu reducirati na L2 . Op´e prihva´ena slutnja je da c c vrijedi P = NP. ako z s postoji polinomijalni algoritam za rjeˇavanje L1 koji koristi kao potprogram s (oracle) algoritam za rjeˇavanje problema L2 . sve dok N ne prikaˇemo kao produkt z prostih brojeva. dok L1 to nije. pomo´u tzv. c To takoder pokazuje da problem odluke ”Je li broj n prost?” pripada klasi co-NP. a ako je odgovor DA. Promotrimo sljede´i problem odluke: c ”Je li broj n sloˇen?” z Vidjet ´emo kasnije da je pitanje pripada li ovaj problem klasi P vrlo c teˇko i zanimljivo pitanje. L2 = ”Za polinom q(x) s cjelobrojnim koeficijentima.3.”. Tako dobijemo faktor M . Neka je L1 = ”Za polinom p(x) s cjelobrojnim koeficijentima.Teorija brojeva u kriptografiji 18 Primjer 2. s Pokaˇimo sada da je L1 ≤P L2 . Ako sada odgovor bude NE. Primjenimo algoritam s z za L1 na broj N . pri ˇemu je broj poziva tog s c potprograma takoder polinomijalan.2. Primjer 2. Millenium Prize Problems. Ako je odgovor s n−2 − 1. primijenimo L2 za 2n−2 + 2n−3 − 1 ako je odgovor bio NE. Potom ponovo primjenimo isti algoritam na brojeve M i N/M . Tada je L1 ≤P L2 . vrlo lako se vidi da ovaj problem pripada klasi s NP. tj. ako je L1 ≤P L2 . L2 = ”Ima li prirodan broj N c faktor M takav da je 2 ≤ M ≤ k?”. No. Zaista. Definicija 2. Uoˇimo da je L2 problem odluke. certifikat je u ovom sluˇaju bilo koji netrivijalni djeljitelj od n. Neka su L1 i L2 dva problema odluke. z c c krenuvˇi od vode´eg bita. Ako je odgovor NE. Ako je odgovor NE. onda uzimamo . dovoljno je izraˇunati q(x) = p (x) i na q(x) c primjeniti potpogram za L2 . c c Rjeˇenje: Pokaˇimo najprije da je L2 ≤P L1 . onda primjenimo algoritam L2 za k = 2 onda N ima faktor oblika 1 · 2n−2 + εn−3 · 2n−3 + ε0 . postoji li interval na kojem je q(x) negativan?”. i piˇemo L1 ≤P L2 . Pogledamo je li najmanji prosti faktor od N manji ili jednak k i rijeˇimo problem L2 . itd.1. Neka je L1 = ”Na´i netrivijalan faktor M prirodnog broja c N ili zakljuˇiti da takav faktor ne postoji. DA. Da bi odredili sljede´i c bit. To se smatra jednim od najvaˇijih nerjeˇenih matematiˇkih z s c problema i spada medu sedam tzv. onda N ima faktor oblika 0 · 2n−2 + εn−3 · 2n−3 + ε0 . da su ovi problemi c (raˇunski) ekvivalentni. odnosno 2n−3 − 1 ako je odgovor bio DA. c z Primjer 2.

Ilustrirajmo gornji dokaz na konkretnom primjeru N = 91. c c sc Ako je L ∈ RP. Kaˇemo da je problem odluke L rjeˇiv u vjerojatnosno z s (randomizirano) polinomijanom vremenu. c sc c . Klasa svih NP-potpunih problema oznaˇava se s NPC. Nastavljaju´i ovaj postupak. Primjer NPc potpunog problema je takoder i bojanje geografske karte s tri boje.Teorija brojeva u kriptografiji 19 εn−3 = 1.6. Hipotetski. pa je stoga i postojanje takvog polinomijalnog algoritma jako malo vjerojatno. Drugi primjer je problem trgovaˇkog putnika koji treba na´i c c najkra´u rutu koja prolazi kroz sve gradove na njegovoj karti. Zakljuˇujemo da je broj 91 ima faktor ˇiji je binarni zapis 000111. odnos promatranih klasa izgleda ovako: Do sada promatrani algoritmi su bili deterministiˇki. z c z Jedan primjer NP-potpunog problema je problem ruksaka koji smo ve´ c ranije susreli. daje odgovor DA ili NE. Problem odluke L je NP-potpun ako je L ∈ NP i L1 ≤P L za svaki L1 ∈ NP. pitamo se redom: Ima li 91 faktor izmedu 2 i 63 (DA). Postojanje polinomijalnog algoritma za bilo koji od NP-potpunih problema povlaˇilo bi da vrijedi P = NP. izmedu 2 i 6 (NE).7. U pozivima algoritma za L2 . izmedu 2 i 5 (NE). izmedu 2 i 15 (DA). onda uzimaju´i k nezavisnih iteracija dobivamo algoric tam za koga je odgovor NE toˇan s vjerojatnoˇ´u ve´om od 1 − 2−k . c Moˇemo re´i da su NP-potpuni problemi najteˇi problemi u klasi NP. izmedu 2 i 31 (DA). Kao ˇto ve´ napomenuli. dok u protivnom uzimamo εn−3 = 0. vjeruje se c s c ta ova jednakost ne vrijedi. i piˇemo L ∈ RP. tj. ˇto znaˇi da za isti c s c input uvijek slijede isti niz operacija. i ovisno o tom izboru. dok je odgovor NE toˇan s vjerojatnoˇ´u barem 1/2. Za razliku od njih. da je 7 faktor od 91. c u n poziva algoritma L2 nalazimo netrivijalni faktor od N . tzv. izmedu 2 i 7 (DA). ako postoji s polinomijalni algoritam koji ukljuˇuje sluˇajan izbor jednog ili viˇe cijelih c c s brojeva. izmedu 2 i 3 c (NE). c Definicija 2. randomizirani (vjerojatnosni) algoritmi prilikom izvodenja rade neke sluˇajne izbore. s time da je odogovor DA sigurno toˇan. c Definicija 2.

. . w0 )b u bazi b raˇunamo na sljede´i naˇin (oduzimanje je vrlo sliˇno): c c c c Algoritam za zbrajanje: c=0 for (0 ≤ i ≤ n) { if (xi + yi + c < b) then wi = xi + yi + c. . . . tj. . . . 0 ≤ r < y. w1 . . . Tada prikaz broja x + y = (wn+1 . . . . Zelimo izraˇunati x · y = (wn+t+1 . . c Iz same definicije bitnih operacija. c = 0 else wi = xi + yi + c. w0 )b . x1 . . . x0 )b i y = (yn . jasno je da se zbrajanje i oduzimanje dvaju prirodnih brojeva x i y takvih da je x. . Neka je x = (xn . . recimo neˇto o sloˇenosti c s z osnovnih raˇunskih operacija s prirodnim brojevima. y1 .Teorija brojeva u kriptografiji 20 2. . Podsjetimo se tih algoritama. wn . . c Algoritam za ”ˇkolsko” mnoˇenje: s z for (0 ≤ i ≤ n + t + 1) wi = 0 for (0 ≤ i ≤ t) { c=0 for (0 ≤ i ≤ t) { (uv)b = wi+j + xj · yi + c. . . Zelimo na´i c kvocijent q = (qn−t . qi−t−1 = qi−t−1 − 1 } r=x . Algoritam za dijeljenje s ostatkom: for (0 ≤ i ≤ n − t) qj = 0 while (x ≥ ybn−t ) qn−t = qn−t + 1. . . x0 )b . y0 )b dva prirodna broja zapisana u bazi b. q0 )b i ostatak r = (rt . c = u } wn+t+1 = u } ˇ Neka su x i y kao gore i pretpostavimo da je n ≥ t ≥ 1. . y ≤ N moˇe obaviti u O(ln N ) z bitnih operacija. . . x = x − ybn−t for (n ≥ i ≥ t − 1) { if (xi = yt ) then qi−t−1 = b − 1 else qi−t−1 = (xi b + xi−1 )/yt while (qi−t−1 (yt b + yt−1 ) > xi b2 + xi−1 b + xi−2 ) qi−t−1 = qi−t−1 − 1 x = x − qi−t−1 ybi−t−1 if (x < 0) x = x + ybi−t−1 . Neka su x = (xn . . brojeve q i r koji zadovoljavaju x = qy + r. . wi+j = v. . . .2 Mnoˇenje prirodnih brojeva z Prije prouˇavanja algoritama iz teorije brojeva. y0 )b . r0 )b pri dijeljenju broja x s y. y = ˇ (yt . c = 1 } wn+1 = c Algoritmi za ”ˇkolsko” (ili ”naivno”) mnoˇenje i dijeljenje imaju sloˇenost s z z O(ln2 N ).

Tada vrijedi T (2n) ≤ T (n) + cn (2. Uoˇimo da je o c ln N (ln ln N )(ln ln ln N ) = O((ln N )1+ε ) za svaki ε > 0. moˇda pomalo i iznenaduju´e. to je ipak teoretski zakljuˇak koji ignorira ogromnu konstantu c koja se krije iza ”velikog O”. No. tako da svaki faktor rastavimo na dva dijela podjedc c nake veliˇine. postoje algoritmi z c koji su bolji od ”ˇkolskog”. Njihova primjena je od praktiˇne c vaˇnosti tek za brojeve od nekoliko tisu´a znamenaka. u stvari je dovoljno izraˇunati samo 3 produkta. trebamo izraˇunati ˇetiri produkta n-bitnih broc c jeva. puno efikasniji od gore navedenih ”ˇkolskih” algoritama. Oznaˇimo s T (n) broj bitnih operacija potrebnih za mnoˇenje z c z dvaju n-bitnih brojeva Karacubinom metodom. . x1 .1) . godine). Zapiˇimo ih u obliku s x = 2n u1 + u0 . Ti (teoretski) najbolji poznati algoritmi koriste brzu Fourierovu transformaciju (FFT). a koji imaju praktiˇnu vaˇnost za brojeve od s c z stotinjak znamenaka. mnoˇenje je tek neznatno sloˇenije od z c z z zbrajanja. y0 )2 dva 2n-bitna prirodna broja. jer vrijedi c u1 v0 + u0 v1 = u1 v1 + u0 v0 − (u1 − u0 )(v1 − v0 ). Opisat ´emo tzv. x · y = (22n + 2n )u1 v1 + 2n (u1 − u0 )(v0 − v1 ) + (2n + 1)u0 v0 . Dakle. tri nova produkta moˇemo z z raˇunati na isti naˇin. odnosno y). tj. . . kakvi se danas uglavnom rabe u kriptografiji. i to je glavna poanta Karacubine metode. Najbolji poznati algoritmi za mnoˇenje i zbrajanje s z imaju sloˇenost z O(ln N (ln ln N )(ln ln ln N )) (Sch¨nhage-Strassenov algoritam iz 1971. Medutim. No. Neka su x = (x2n−1 . Sada je x · y = 22n u1 v1 + 2n (u1 v0 + u0 v1 ) + u0 v0 . . . . Ovaj proces sada moˇemo nastaviti rekurzivno. . barem teoretski. y1 . Za sada nemamo nikakvu prednost od ovakvog zapisa – umjesto jednog produkta 2n-bitnih brojeva. . y = 2n v1 + v0 (u1 i v1 su ”lijeve polovice”. Dakle.Teorija brojeva u kriptografiji 21 Za razliku od zbrajanja i oduzimanja. Karacubinu metodu (iz 1962. a u0 i v0 ”desne polovice” od x. godine) za mnoˇenje c z prirodnih brojeva. kod mnoˇenja i dijeljenja posz toje algoritmi koji su. x0 )2 i y = (y2n−1 . c Postavlja se pitanje koliko je ovakav algoritam efikasniji od ”naivnog” mnoˇenja.

uz dovoljno veliku konstantu C. godine) ˇija je glavna ideja izbjegavanje klasiˇne c c modularne redukcije (tj. Neka su m. pomo´u algoric c tama iz prethodnog poglavlja. dijeljenja). ono je z bitno kompliciranije od obiˇnog mnoˇenja prirodnih brojeva. Ako je m prikazan u bazi b i ima u tom prikazu n znamenaka.1) slijedi da. y ≤ N se z mogu pomnoˇiti uz O((ln N )log2 3 ) bitnih operacija. te U = T m mod R. Tada je x·m y = r.Teorija brojeva u kriptografiji 22 za neku konstantu c. Opisat ´emo tzv.2) za k ≥ 1. koje je zapravo jednostavni pomak za n znamenaka. neka je konstanta C ≥ c odabrana tako da (2. Tada je V = (T + U m)/R cijeli broj i V ≡ T R−1 (mod m). Zbrajanje u c Zm je vrlo jednostavno. mnoˇenje u Zm nije tako jednostavno. shvatimo x i y kao nenegativne cijele brojeve manje od n. ˇifriranje i deˇifriranje je opisano c c s s pomo´u operacija u prstenu Zm . brojevi x.585 . umjesto (ln N )2 imamo pribliˇno (ln N )1. Neka je m = −m−1 mod R. U usporedbi s ”naivnim” z mnoˇenjem. Zaista. za x. Preciznije. zato ˇto pored c z s mnoˇenja ukljuˇuje i (netrivijalnu) modularnu redukciju. i tada je x +m y = x + y ako je x + y < m. z c Direktna metoda za raˇunanje produkta x·m y u Zm je da. a potom izraˇunamo c c ostatak r pri djeljenju x · y s m. vrijedi T (2k ) ≤ C(3k − 2k ). . S druge strane. dijeljenje s m zamjenjuje se c c puno jednostavnijim dijeljenjem s R. Posebno. tj. za neki veliki prirodni broj m.1. Iz (2.3 Modularno mnoˇenje i potenciranje z U ve´ini kriptosustava s javnim kljuˇem. Nadalje. z z 2. R i T prirodni brojevi takvi da je R > m. (2. y ∈ Zm . onda se obiˇno uzima R = bn . Stoga je sloˇenost Karacubinog algoritma O(nlog2 3 ). Tada imamo: T (2k+1 ) ≤ 3T (2k ) + c · 2k ≤ C · 3k+1 − 3C · 2k + c · 2k ≤ C(3k+1 − 2k+1 ). Pokazat ´emo da se T R−1 mod m moˇe c c z izraˇunati bez klasiˇnog dijeljenja.2) vrijedi za neki k ∈ N.2) vrijedi k = 1. Postoji nekoliko poboljˇanja ove metode. (m. x + y − m ako je x + y ≥ m. pa tvrdnja vrijedi po principu matematiˇke indukcije. te pretpostavimo da (2. Sada je c T (n) ≤ T (2 log2 n )≤C 3 log2 n −2 log2 n < 3C · 3log2 n = 3Cnlog2 3 . izraˇunamo najprije x·y. Lema 2. T R−1 mod m = V ili T R−1 mod m = V − m. Montgomerys c jevu redukciju (iz 1985. R) = 1 i 0 ≤ T < mR. Naime.

No. Konaˇno. modularnu rez dukciju trebamo da bi uop´e dobili Montgomeryjev prikaz. za brojeve u Montgomeryjevom prikazu. modularno mnoˇenje se z moˇe provesti bez modularne redukcije modulo m. dok se xR mod m naziva Montgomeryjev prikaz od x. c Jedna od mogu´nosti za pojednostavljenje modularne redukcije je izbor c modula specijalnog oblika. l ∈ Zm takvi da je mm = −1 + kR. kao ˇto je sluˇaj kod potenciranja. tj. c c z . Vrijedi: Mont(xR mod m. Stoviˇe. Mongomeryjev produkt brojeva x i y je broj Mont(x. gdje je a mali prirodni c broj. ri+1 = qi a − qi+1 bn . Modularno potenciranje predstavlja specijalni sluˇaj potenciranja u abec lovim grupama. Dakle. ElGamal) c ˇifriranje se provodi pomo´u modularnog potenciranja. Izraz T R−1 mod m zove se Montgomeryjeva redukcija od T modulo m u odnosu na R. funkcije oblika s c ˇ xn mod m. trivijalni algoritam u kojem bi xn izraˇunali kao x · x · · · x pomo´u n − 1 mnoˇenja vrlo je neefikasan. iz T < mR i c c U < R slijedi 0 ≤ V < (mR + mR)/R = 2m. U = T m + lR. r = r + ri } while (r ≥ p) r = r − p U najpopularnijim kriptosustavima s javnim kljuˇem (RSA. jer je xy < m2 < mR. Sada je T + T mm + lRm T + T (−1 + kR) + lRm T + Um = = = kT + lm ∈ Z. Ovo je dobro definirano. Tada se x mod m moˇe izraˇunati pomo´u ovog algoritma: z c c q0 = x/bn . Tu se ponovo koristi ˇinjenica da je dijeljenje c n vrlo jednostavno. Zato se (ako je to u konkretnoj s brojevima oblika b situaciji mogu´e) biraju moduli oblika m = bn − a. yR mod m) = (xR)(yR)R−1 = xyR mod m. i = i + 1. Naravno. ukoliko viˇe c s puta koristimo jedan te isti broj. Monts c gomeryjeva metoda je znatno efikasnija od obiˇne modularne redukcije. R R R Oˇito je V ≡ (T + U m)R−1 ≡ T R−1 (mod m). r0 = x − q0 bn . i = 0 while (qi > 0) { qi+1 = qi a/bn . y) = xyR−1 mod m. pa iz V ≡ T R−1 (mod m) slijedi V − (T R−1 mod m) = 0 ili m. ˇinjenica da se takva funkcija moˇe puno efikasnije izras c z ˇunati od njezinog inverza predstavlja osnovu za koriˇtenje problema diskretnog c s logaritma u kriptografiji. Naravno. r = r0 .Teorija brojeva u kriptografiji 23 Dokaz: Iz definicije brojeva m i U slijedi da postoje k. Stoga ´emo re´i neˇto o op´im metodama za raˇunanje c c s c c potencije xn u abelovoj grupi G.

. Binarni zapis od 13 je (1 1 0 1)2 . Na primjer. ako gledamo grupe od po dvije znamenke (tj. onda imamo c x13 = x · ((x · x2 )2 )2 . pa je u tom sluˇaju ova operacija vrlo brza. Dakle. .Teorija brojeva u kriptografiji 24 Najjednostavnija i najstarija medu efikasnim metodama je tzv. ”prozora”). ˇto je ve´i broj jedinica u binarnom zapisu od n. gdje je n = c c (nd . x79 moˇemo izraˇunati kao x z c x79 = x3 · ((x4 )4 · x3 )4 . u sluˇaju modularnog c c c potenciranja sloˇnost je O(ln n ln2 m) (ako za sloˇenost mnoˇenja i dijeljenja z z z brojeva manjih od m uzmemo da je O(ln2 m). onda ´emo prethodno izraˇunati x. . Cesto je u primjenama taj x mali z (ˇak jednak 2). radimo u bazi 4). te mnoˇenja onoliko koliko ima jedinica u binarnom zapisu od n (ˇto je z s ≤ d + 1. c s c Jedno poboljˇanje binarne metode sastoji se u promatranju grupa bis narnih znamenaka (tzv. binarna metoda ili metoda uzastopnog kvadriranja (joˇ se naziva i metoda ”kvadriraj s i mnoˇi” ili ”binarne ljestve”) koja koristi binarni zapis broja n. Ova prednost je c c tim ve´a. Binarna metoda (s desna na lijevo): z = 1. pa potom npr. . s c c Prednost druge varijante (s lijeva na desno) je u tome da se u koraku ˇ z = z · x mnoˇi uvijek s istim brojem x. imamo sljede´a dva algoritma za raˇunanje z = xn . . Sada x13 moˇemo z c z izraˇunati kao c x13 = x · (x2 )2 · ((x2 )2 )2 . ˇto ´emo i ubudu´e raditi). c c 2 . n0 )2 . a u prosjeˇnom sluˇaju je oko d/2) Dakle. Recimo da z ˇelimo izraˇunati x13 . Ako isti zapis c c proˇitamo s lijeva na desno. Mogli bi re´i da smo binarni zapis ˇitali s desna na lijevo. y = x for (0 ≤ i ≤ d − 1) { if (ni = 1) then z = z · y y = y2 } z =z·y Binarna metoda (s lijeva na desno): z=x for (d − 1 ≥ i ≥ 0) { z = z2 if (ni = 1) then z = x · z } Obje varijante binarne metode imaju isti broj operacija: d kvadriranja. x3 .

u2 = 3. Ova ˇinjenica se moˇe iskoristiti za efikasnije potenciranje (kod c z aditivnog zapisa ´emo govoriti – multipliciranje). u1 = 2. u3 = 6. us s pridruˇenim nizom s z w1 . y = xR mod m pa se u petlji izraˇuna xn R mod m. z) if (ni = 1) then z = Mont(z. zovemo SD (signed digit) i0 . Glavna ideja je zamjena bic narnog zapisa sa zapisom u kojem su dopuˇtene znamenke −1. c s c z i=0 U sluˇaju fiksnog eksponenta. onda se xn moˇe izraˇunati uz s mnoˇenja: x0 = x. Jedna od specifiˇnosti ove grupe je da u njoj inverzna operacija c c (oduzimanje) nije nimalo kompliciranija od originalne grupovne operacije (zbrajanja). sa svojstvom da je u0 = 1. odnosi se na potenciranje u bilo s kakvoj abelovoj grupi. Montgomeryjevu redukciju moˇemo kombinirati s bilo kojom z od metoda za potenciranje koje smo ranije naveli. za n = 15. si ∈ {−1. . pa je z c z xs = xn . Npr. jedan od naˇina za s c c dodatno poboljˇanje modularnog potenciranja jest koriˇtenje Montromerys s jeve redukcije. . ˇto znaˇi uz d ∼ (ln n)/(ln b) mnoˇenja. ˇesto su ili baza x ili eksponent n fiksni. jedna od najvaˇnijih je z m grupa toˇaka na eliptiˇkoj krivulji nad konaˇnim poljem. ui = ui1 + ui2 . . c s i U sluˇaju fiksne baze x. u5 = 15. onda se unaprijed i izraˇunaju vrijednosti xij = xj·b . Kao ˇto smo ve´ prije spomenuli. c U tim situacijama mogu´a su dodatna poboljˇanja. Sada se xn c raˇuna kao xn = d xini . dok je c Mont(xn R mod m. jedna ideja za mogu´e poboljˇanje je koric c s ˇtenje tzv. za 1 ≤ i ≤ s. Prikaˇimo to na primjeru z binarne metode (s lijeva na desno). us = u. uz operaciju zbrac c c janja toˇaka. 0. xi = xi1 · xi2 za i = 1. 1) Zaista. Montgomeryjevo potenciranje y = Mont(x. . Sve ˇto smo do sada rekli o potenciranju. . . . .Teorija brojeva u kriptografiji 25 U primjenama u kriptografiji. R2 mod m). jedan lanac zbrojeva je u0 = 1. Ako je poznat lanac zbrojeva za n duljine s. unaprijed izraˇunamo xi = x2 . 1 ≤ i ≤ d. Ako umjesto baze 2 koristimo bazu b. y) } z = Mont(z. z = R mod m for (d ≥ i ≥ 0) { z = Mont(z. ”lanca zbrojeva”. u1 . . 0. i2 ). u4 = 12. 1) = xn mod m. te xn raˇunamo c c c d ni n = kao x i=0 xi . 1}. . ws parova wi = (i1 . . s. To je niz u0 . Za primjene u kriptografiji. 1. Prikaz s d broja n u obliku n = si 2i . . 1 ≤ j ≤ b − 1. pored grupe Z∗ .

3 = (0 1 1) = (1 0 -1). Nadalje. Moˇe se pokazati da svaki prirodan broj n ima z jedinstveni NAF prikaz. Jasno je da SD prikaz nije jedinstven. n0 )2 broja n c raˇuna njegov NAF prikaz (sd . c Algoritam za NAF prikaz c0 = 0 for (0 ≤ i ≤ d) { ci+1 = (ni + ni+1 + ci )/2 si = ni + ci − 2ci+1 } Umjesto formula iz ovog algoritma. Naime. a to ´e rezultirati efikasnijim c s s c multipliciranjem. moˇemo koristiti sljede´u tablicu z c koja za sve mogu´e vrijednosti ulaznih podataka u i-tom koraku (ni . . za razliku od binarnog c c z prikaza kod kojeg je oˇekivana teˇina d/2. si ). ci . . tj. a najviˇe za jednu znamenku c s je dulji od najkra´eg SD prikaza od n.Teorija brojeva u kriptografiji 26 prikaz od n. Npr. mogu se jednostavno modificirati za NAF prikaz. . NAF ima najmanju teˇinu (broj znamenki z razliˇitih od 0) medu svim SD prikazima od n. Re´i ´emo da je SD prikaz rijedak ili nesusjedan (non-adjacent form. ako c c je si si+1 = 0 za svaki i. c ni ci ni+1 ci+1 si 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 -1 1 0 0 0 1 1 0 1 1 -1 1 1 0 1 0 1 1 1 1 0 Sve metode za potenciranje zasnovane na binarnom prikazu. Binarna metoda s predznakom (aditivna verzija): z=x for (d − 1 ≥ i ≥ 0) { z =z+z if (ni = 1) then z = z + x if (ni = −1) then z = z − x } . s0 ). c c kra´e: NAF prikaz) ako nema susjednih znamenaka razliˇitih od 0. a samo 2d+1 − 1 brojeva koji se mogu prikazati s d + 1 znamenkom. imamo 3d+1 kombinacija. . . . Prikaˇimo to za binarnu metodu (s z lijeva na desno). c Oˇekivana (prosjeˇna) teˇina NAF prikaza je d/3. Ova viˇeznaˇnost nam sugerira da pokuˇamo s c s izabrati prikaz koji ´e imati ˇto viˇe nula. c z Sljede´i algoritam iz poznatog binarnog zapisa (nd−1 . . ni+1 ) c daje odgovaraju´e vrijednosti izlaznih podataka (ci+1 . .

β(p)) . y ∈ Z. broja y ∈ {1. Dakle. 0 < r < g. naivna. u oznaci (a. b). pa smo dobili kontradikciju s minimalnoˇ´u od g. . jasno je da trebamo bolju metodu c za raˇunanje najve´eg zajedniˇkog djelitelja. b). . kako je teˇko´a faktorizacije velikih prirodnih brojeva jedna od najvaˇijih s c z ˇinjenica u algoritamskoj teoriji brojeva. b) = (b. c Sada je jasna veza s traˇenjem inverza. Kako je (a. b) = (|a|. z Euklidov algoritam: while (b > 0) (a. b) = z c (b.Teorija brojeva u kriptografiji 27 2. y takvi da je ax + by = 1 i pritom je x mod b = a−1 mod b. . gdje su eksc ponenti d i e povezani relacijom de ≡ 1 (mod ϕ(n)). Tada je a = qg + r. a mod b). . mogu´nost jest faktorizacija c brojeva a i b na proste faktore. raspiˇimo ga po koracima: z s a = q 1 b + r1 b = q 2 r1 + r2 . onda je (a. onda postoje cijeli brojevi x.4 Euklidov algoritam Razmotrit ´emo sada problem nalaˇenja najve´eg zajedniˇkog djelitelja dva c z c c cijela broja a i b. Pretpostavimo da g a. c c c Problem koji je usko povezan s ovim. Stoga je sc c g ≤ (a. b) = p pmin(α(p). b)|g. . b). |b|). Euklidov algoritam je jedan od najstarijih. Postoje cijeli brojevi x. m − 1} takvog da je xy ≡ 1 larnog inverza x (mod m). b = p pβ(p) .2. r = (1 − qx)a − qyb. b). Stoga (a. Jasno je da svaki zajedniˇki djelitelj od a i b c dijeli ax + by = g. jest problem raˇunanja moduc −1 mod m. a mod b) return a Da bi analizirali sloˇenost ovog algoritma. c Teorem 2. x. ali ujedno i jedan od najvaˇnijih algoritama u teoriji brojeva. (Taj problem smo ve´ susreli kod RSA kriptosustava. .) Veza izmedu ova dva problema dolazi preko sljede´eg teorema. Ako je a = p pα(p) . Ako su a i b relativno prosti cijeli z brojevi. Jedna. pa zakljuˇujemo da je g = (a. tj. dok je y mod a = b−1 mod a. Zasnovan je na ˇinjenici da je (a. moˇemo pretpostaviti da a > b ≥ 0. No. y takvi da je ax + by = (a. g|a i sasvim isto zakljuˇujemo da g|b. rn−3 = qn−1 rn−2 + rn−1 rn−2 = qn rn−1 . No. Tvrdimo da je g = (a. b). Dokaz: Neka je g najmanji prirodan broj oblika ax + by.

Fn = Fn−1 +Fn+2 za n ≥ 2). b) treba n koraka. Tada je a ≥ Fn+2 . Ovu ocjenu moˇemo poboljˇati z z s ako uoˇimo da u svakom koraku radimo sa sve manjim brojevima. N } pribliˇno jednak z 12 ln 2 ln N + 0. Neka su a i b prirodni s c brojevi takvi da Euklidov algoritam za (a. . Tako da c je broj operacija O(ln a · ln q1 + ln b · ln q2 + ln r1 · ln q3 + · · · + ln rn−2 · ln qn ) = O(ln N · (ln q1 + ln q2 + · · · + ln qn )) = O(ln N · ln(q1 q2 · · · qn )) = O(ln2 N ) (posljednju jednakost dobijemo mnoˇe´i sve lijeve i sve desne strane u jedz c nakostima u Euklidovom algoritmu). Stoga je po pretpostavci indukcije b ≥ Fn+1 . Dokaˇimo to matematiˇkom indukcijom po n. b). gdje Fk oznaˇava k-ti Fibonaccijev broj (podsjetimo se c definicije Fibonaccijevi brojeva: F0 = 0. Pretpostavimo da tvrdnja vrijedi za n − 1 koraka. moˇemo ga koristiti za rjeˇavanje z s linearnih Diofantskih jednadˇbi. Kao ˇto smo ve´ vidjeli. F1 = 1.078 ln N + 1. Za brojeve b i r1 Euklidov algoritam treba n − 1 koraka. dobivamo da je sloˇenost Euklidovog algoritma O(log3 N ). π2 Pojednostavljeno reˇeno. c z .Teorija brojeva u kriptografiji 28 Ocijenimo broj koraka. tada je a = q1 b + r1 ≥ b + r1 ≥ Fn+2 .672 . Za n = 1 je b ≥ 1 = F2 .843 ln N + 0. b) manji ili jednak c √ ln( 5N ) √ − 2 ≈ 2. Tada je broj koraka u Euklidovom algoritmu za raˇunanje (a. Neka su a. b ≤ N . Euklidov algoritam se moˇe iskoristiti i za nalaˇenje cijelih brojeva x. y z z takvih da je ax + by = (a.14 ≈ 0.14 . Dakle. Odatle i iz Binetove formule za Fibonaccijeve brojeve √ √ 1 1+ 5 n 1− 5 n Fn = √ − 2 2 5 slijedi Teorem 2. b ≥ Fn+1 . ln((1 + 5)/2) Moˇe se pokazati da je prosjeˇan broj koraka u Euklidovom algoritmu z c za brojeve a i b iz skupa {1. Kako svaki korak Euc klidovog algoritma zahtjeva jedno dijeljenje brojeva ≤ N . broj n. broj koraka je O(ln N ). b) = 1 na taj se naˇin moˇe dobiti modularni inverz. u sluˇaju da je z s c c (a. r1 ≥ Fn . . . z c a ≥ 2 = F3 . tj. u najloˇijem sluˇaju. Budu´i da je Fk+1 /Fk i Fk+1 mod Fk = Fk−1 .3. . to su svi kvocijenti u c Euklidovom algoritmu za Fn+2 i Fn+1 jednaki 1 i algoritam treba toˇno n c koraka. No.

5% sluˇajeva kvocijent je jednak 1. (x. y − qv. g. Prva je da iako smo u poˇetku rekli da c c je faktorizacija brojeva teˇak problem. 5 i 7. P (2) ≈ 0. b) = (min{a. c c Smatra se da je taj teorem koriˇen ve´ u to vrijeme u kineskoj vojsci za s c prebrojavanje vojnika.5 Kineski teorem o ostatcima Kineski teorem o ostatcima govori o rjeˇenju sustava linearnih kongruencija. |b − a|/2v2 (b−a) ) return 2β a 2. s Ime mu se vezuje uz kineskog matematiˇara iz prvog stolje´a Sun-Tsua. c Oznaˇimo s v2 (k) najve´u potenciju broja 2 koja dijeli k. w) = (1. x − qu. u 3. Recimo da treba prebrojiti grupu od pribliˇno 1000 z vojnika. 5 i 7 kolona. Druga ideja je zamjena dijeljenja oduzimanjem. Ovi rezultati su u uskoj vezi s ranije navec denim prosjeˇnim brojem koraka u Euklidovom algoritmu. Kod njega se umjesto dijeljenja koriste samo operacije oduzimanja i pomaka (dijeljenja sa 2). s . b). u. izdvajanje potencija broja 2 je vrlo z jednostavno. (q + 1)2 − 1 Tako je P (1) ≈ 0. b}. g.Teorija brojeva u kriptografiji 29 Proˇireni Euklidov algoritam: s (x. u. Vojnici se rasporede npr. 4. b = b/2v2 (b) while(a = b) (a. g − qw) } return (x. y.. 1. while(w > 0) { q = g/w . jer je pripadni kvocijent jednak 1. a povezana je s ˇinjenicom da u originalnom Euklidovom algoritmu vrlo ˇesto umjesto c c dijeljenja zapravo imamo oduzimanje. Tako dobivamo sustav od ˇetiri s c kongruencije s modulima 3. U samom c algoritmu susre´emo dvije ideje. ali su ti koraci jednostavniji. u 41. v. v. ”binarni gcd algoritam”. y. 0. w.093. a. Moˇe se pokazati da vjerojatnost da je Euklidov kvocijent jednak q iznosi z P (q) = log2 1 − 1 . 0. c c Binarni gcd algoritam: β = min{v2 (a). y. a taj sustav prema sljede´em teoremu c ima jedinstveno rjeˇenje izmedu 800 i 1200. tzv.. . v. g) Prikazat ´emo joˇ jedan algoritam za raˇunanje najve´eg zajedniˇkog djec s c c c litelja. . w) = (u. Kao rezultat dobivamo algoritam koji ima ve´i broj koraka. Dakle. v2 (b)} a = a/2v2 (a) . te se zabiljeˇi koliko je z vojnika ostalo kao ”viˇak” u zadnjem redu. P (3) ≈ 0.170. 4.415.

. i = 1. . tj.4. Neka je Mi = z c c c k x= i=1 ai Mi xi mod m zadovoljava uvjete teorema. U takvoj se situaciji preporuˇa c c . xk postoji cijeli broj x takav da vrijedi x ≡ xi (mod mi ). mk u parovima relativno prosti prirodni brojevi. Sloˇenost algoritma kojeg smo upravo opisali je O(ln2 M ). Jedan od razloga jest to da on omogu´ava da se raˇunanje po jednom velikom modulu zamjeni s c c nekoliko neovisnih raˇunanja po puno manjim modulima.Teorija brojeva u kriptografiji 30 Teorem 2. ˇto je jako dobra c s osnova za ”paralelizaciju” raˇunanja. . U takvoj situaciji c dobro je onaj dio algoritma koji ne ovisi o xi -ovima izraˇunati unaprijed. Kako mi je (Mi . Neka su m1 . dok xi -ovi variraju. Garnerov algoritam za CRT: for (1 ≤ i ≤ k − 1) { µi = j = 1i mj . . . . mj ) = 1 za i = j. Tako da nakon i-tog s koraka u petlji. mi ) = 1. Tada za proizvoljne cijele brojeve x1 . c U primjenama su ˇesto mi -ovi fiksni. . z Kineski teorem o ostatcima ima brojne primjene. a takoder vodi raˇuna o racionalnom c c koriˇtenju brojeva Mi koji mogu biti jako veliki (za razliku od brojeva ai s koji su sigurno manji od mi ). . M . i + 1. . . Ukoliko treba rjeˇiti neki jednokratni problem. onda naravno nema kos risti od prethodnog raˇunanja s mi -ovima. . Sada Broj x iz teorema moˇemo na´i na sljede´i naˇin. c Sljede´i algoritam koristi tu ideju. k. . 2. x = x + yµi } x = x mod M Ovaj algoritam ”rjeˇava” module jedan po jedan. (mi . ci = µ−1 mod mi+1 } i M = µk−1 mk x = x1 for (1 ≤ i ≤ k − 1) { y = ((xi+1 − x)ci ) mod mi+1 . x zadovoljava x ≡ xj (mod mj ) za j = 1. Broj x je jedinstven modulo M = m1 · · · mk . . to pomo´u Euklidovog algoritma moˇemo na´i ai takav da c z c je ai Mi ≡ 1 (mod mi ). . . .

+ 1 qn . x = x1 for (2 ≤ i ≤ k) { nadi u. mk ).6 Veriˇni razlomci z U ovom poglavlju vidjet ´emo joˇ jednu primjenu Euklidovog algoritma. b b/r1 Drugi korak nam daje 1 a = q1 + . (xk . s Induktivni algoritam za CRT: m = m1 . m1 ). odrediti postoji li x takav da x ≡ xi (mod mi ) za i = 1. b q 2 + r1 1 2 /r Na kraju dobivamo prikaz racionalnog broja a/b u obliku a = q1 + b 1 q2 + 1 q3 + . Preciznije. Naime. . m = mmi . ako ˇelimo rijeˇiti sustav z s x ≡ x1 (mod m1 ). x ≡ x2 (mod m2 ).” NP-potpun. . . Tada je x = um1 x2 + vm2 x1 mod m1 m2 rjeˇenje sustava. . k. Iz c s prvog koraka u Euklidovom algoritmu imamo a 1 = q1 + .Teorija brojeva u kriptografiji 31 induktivna uporaba originalnog algoritma za sustav od dvije kongruencije. . . . . 2. x = x mod m } Moˇda je zanimljivo za spomenuti da je ”obrnuti” problem od onog koji z se razmatra u Kineskom teoremu o ostatcima puno teˇi od originalnog probz lema. . moˇe se pokazati da je problem odluke ”Za danih k parova z (x1 . x = umxi + vmi x. onda jednom primjenom Euklidovog algoritma dobivamo oba ˇeljena inverza z iz um1 + vm2 = 1.. . v takve da je um + vmi = 1.

Postupak se nastavlja sve dok je ak = αk . 1. 20. 20.]. Veriˇni razlomak kra´e zapisujemo kao [a0 . Izraˇunati razvoj u jednostavni veriˇni razlomak broja 101. razvoj u veriˇni razlomak racionalnog broja s z moˇe se izraˇunati pomo´u Euklidovog algoritma. te takoder daje gornju i donju ogradu za taj ai . z c Brojevi a0 . . . Kod iracionalnog broja. α1 a1 = α1 . z c za α ∈ R se prikaz broja α u obliku α = a0 + a1 + 1 1 a2 + . . Neka je dan α ∈ R.]. α1 = a1 + 1 . . r = a − b q . . Razvoj u veriˇni razlomak z i=0 q = a/b . . r = a − bq. . 20. z c c mi najˇeˇ´e znamo samo njegovu racionalnu aproksimaciju (obiˇno binarni c sc c ili decimalni zapis s fiksnim brojeva toˇnih znamenaka). 20. 20. a definiraju se na sljede´i c naˇin: c a0 = α . Razvoj u jednostavni veriˇni z razlomak broja α je konaˇan ako i samo ako je α racionalan broj.Teorija brojeva u kriptografiji 32 Ovaj se prikaz naziva razvoj broja a/b u jednostavni veriˇni razlomak. Op´enito. te racionalni brojevi a/b i a /b takvi c da je a a ≤α≤ . . c z ali tako da u svim raˇunima koristimo samo 10 najznaˇajnijih decimalnih c c znamenaka. ∈ N. α = a0 + 1 ..4. . Dobije se √ 101 = 10. 6. 8. . c Kao ˇto smo vidjeli gore. 20. . te a1 . 20. b b Sljede´i algoritam raˇuna razvoj od α i staje toˇno onda kada viˇe nije c c c s mogu´e odrediti sljede´i ai iz a/b i a /b (pripadni ai -ovi u razvojima od a/b c c i a /b se ne podudaraju). 20. . Kao ˇto ´emo uskoro c s c vidjeti √ 101 = [10. c c √ Primjer 2. . 20. a1 . a2 . a1 . ˇ Zeljeli bi da nam algoritam za raˇunanje veriˇnog razlomka kaˇe kada c z z toˇno treba stati. gdje je a0 ∈ Z. . . . . zove razvoj broja α u jednostavni veriˇni (ili z neprekidni) razlomak. a2 . . To znaˇi da ´e i u c c c njegovom razvoju biti toˇni samo neki poˇetni ai -ovi. . se zovu parcijalni kvocijenti. . . a2 .].04987562 = [10. α2 a2 = α2 . Postavlja se pitanje koji su od ovih ai -ova stvarno toˇni.

ti+1 = d − s2 i+1 . k. Sada parcijalne kvocijente ai raˇunamo rekurzivno na sljede´i naˇin: c c c ai = αi . √ gdje je a0 = d . s0 . . . . ai ≥ q if (bb = 0) then return [a0 . . ti+1 Uoˇimo da iako je α iracionalan broj. 1. tada je αj = αk . . aj . tj. . . q = a/b . b = r. ai = ar−i za i = 1. 2. 1. r = a − bq. . . a = b. . tj. koji je najvaˇniji za primjene. √ √ √ 101 = [10. min{q. ak−1 ]. . √ Moˇe se pokazati da za duljinu perioda r vrijedi da je r = O( d log d). 1. gdje povlaka oznaˇava blok koji se periodiˇki ponavlja. a = b . . 1. t0 ∈ Z. Na primjer. si+1 = ai ti − si . q } ≤ ai ≤ max{q. . . 6]. . 1. . . 1. . To znaˇi da postoje indeksi j. . d nije potpun kvadrat i t0 |(d−s2 ). 13 = [3. 20]. Naime. 1. . ti αi+1 = si+1 + a0 . 2. t0 = 0. Prikaˇemo α u obliku c z √ s0 + d . 1. z . vrijedi z √ d = [a0 . c c j < k. . iracionalan broj koji c je rjeˇenje neke kvadratne jednadˇbe s racionalnih koeficijentima. No. 1. ovaj algoritam radi samo s cijelim c brojevima. 2a0 ]. 2.Teorija brojeva u kriptografiji 33 while (0 ≤ r < b and b = 0) { ai = q i = i + 1. α = α0 = t0 gdje su d. Razvoj se moˇe z c z dobiti sljede´im algoritmom. a1 . . aj−1 . ai−i ]. √ c c U sluˇaju. . takvi da je sj = sk i tj = tk . . . a a1 . . ar−1 su palidromni. r = a − b q } if (b = 0 and b = 0) then return [a0 . . a2 . . . ai ] if (b = 0 and b = 0) then return [a0 . a1 . . ai−i ]. . Zadnji uvjet se 0 uvijek moˇe zadovoljiti mnoˇenjem brojnika i nazivnika s prikladnim cijelim z z brojem. kada je α = d moˇe se re´i i c z z c preciznije kako izgleda razvoj u veriˇni razlomak. q } U sluˇaju kada je α kvadratna iracionalnost. ˇto znaˇi da je s c α = [a0 . 113 = [10. . a1 . . Moˇe se pokazati da su si -ovi i ti -ovi ograniˇeni. a1 . ar−1 . pa stoga mogu z c poprimiti samo konaˇno mnogo vrijednosti. b = r . . . a1 . a1 . . r − 1. 20]. tada je s z njegov razvoj u jednostavni veriˇni razlomak periodiˇan. ai−i ]. aj+1 . ai ≥ q q = a /b if (b = 0 and b = 0) then return [a0 . 1.

onda vrijedi c z 2 p2 − dqk = (−1)k+1 tk+1 . Konvergente se javljaju i kod rjeˇavanja nekih diofantskih jednadˇbi. . z k ˇ Cesto se uz ovu jednadˇbu promatra i jednadˇba x2 − dy 2 = −1. a1 . α− q 2q onda je p q racionalan broj koji zado- = pk qk za neki k. Ako je (X. Preciznije. ako je c q k α iracionalan. q0 = 1. q α− pk 1 < 2.. qr−1 ) z ili (p2r−1 . Ako sa pk z z q √ oznaˇimo konvergente u razvoju u veriˇni razlomak broja d. . . Y ) najmanje rjeˇenje s u prirodnim brojevima jednadˇbe x2 −dy 2 = 1. Ako je voljava nejednakost 1 p < 2. Indukcijom se lako dokazuje sljede´a vaˇna relacija: c z qk pk−1 − pk qk−1 = (−1)k . Brojnici i nazivnici konvergenti zadoz voljavaju sljede´e rekurzije: c p0 = a0 . . .3) 2k+1 2k Relacija (2. q1 = a1 .Teorija brojeva u kriptografiji 34 Racionalne brojeve pk = a0 + qk 1 a1 + 1 a2 + . ak ] zovemo konvergente veriˇnog razlomka. . Y ) = (pr−1 . p1 = a0 a1 + 1. onda je limk→∞ pk = α. qk+2 = ak+2 qk+1 + qk . p (2. + 1 ak = [a0 .3) povlaˇi da je p2k ≤ α i α ≤ q2k+1 za svaki k. s z Posebno je vaˇna njihova uloga u rjeˇavanju Pellovih jednadˇbi. Odavde se lako dobije da jednadˇba x2 − dy 2 = 1 uvijek ima (beskonaˇno) rjeˇenja u prirodnim z c s brojevima. Nadalje. pk+2 = ak+2 pk+1 + pk . onda je (X. gdje je d prirodan broj koji nije potpun kvadrat. To su jedz s z nadˇbe oblika x2 − dy 2 = 1. k √ gdje je niz (tk ) definiran u algoritmu za razvoj od d. dok jednadˇba x2 − dy 2 = −1 ima rjeˇenja ako i samo ako je z s √ duljina perioda r u razvoju od d neparna. q2r−1 ) u ovisnosti o tome je li duljina perioda r parna ili neparna. qk qk p q Vrijedi i svojevrsni obrat ove tvrdnje. q k Racionalni brojevi pk jako dobro aproksimiraju α.

Odavde je c2 − pb2 = − a ili b2 − pc2 = a . a1 . z c c c ˇ neki viˇekratnik od p kojeg znamo prikazati kao zbroj dva kvadrata. Dakle. c2 − pb2 = −2 ili b2 − pc2 = 2. imamo c2 − pb2 = −1. c su neki prirodni brojevi. (zqn − z p √ p < qn+1 . pa stoga mora vrijediti c2 − pb2 = −1 jer su druga i tre´a jednadˇba nemogu´e modulo 4. Y ) c s najmanje takvo rjeˇenje. Kao ˇto smo ve´ rekli. to je z q q z− Dakle. c z c No. . Y ). . Zbog minimalnosti od (X. . am ]. a b. 1. X − 1) = 1 ili 2 2 2. . pn ε qn + qn qn+1 . c n+1 = pa je 2 2 2 (zqn − ppn )2 + qn ≡ qn (z 2 + 1) ≡ 0 (mod p) i 0 < (zqn − ppn )2 + qn < 2p. onda je c2 − pb2 ≡ 0. 2 ˇto povlaˇi da je (zqn − ppn )2 + qn = p. s X − 1 = ac2 ili X + 1 = ab2 . gdje je |ε| 2 p ppn )2 < q2 < p. c z Dakle. s c 2. . Konaˇno. . a1 . Dakle. Ako je p ≡ 1 (mod 4). . gdje je a = (X + 1. z s c ona ima beskonaˇno mnogo rjeˇenja u prirodnim brojevima. konstrukcija (Hermite) Neka je z neko rjeˇenje kongruencije z 2 ≡ −1 (mod p) (o rjeˇavanju s s 2 + 1 je ovakvih kongruencija bit ´e rijeˇi u sljede´em poglavlju). Zelimo s pomo´u njega na´i prikaz broja p u tom obliku. X − 1 = ac2 p. . Neka je (X. otpada mogu´nost a = 2 u drugoj jednadˇbi. Iz (X + 1)(X − 1) = pY 2 slijedi da je X + 1 = ab2 p. . z imamo √ p = [a0 . ostaje pitanje kako za dani prosti broj p oblika 4k + 1 na´i cijele brojeve x. y takve da c je x2 + y 2 = p. p Postoji jedinstveni cijeli broj n takav da je qn < n+1 n leˇi izmedu susjednih konvergenti pn i pn+1 . an . 1 ili 3 (mod 4). 2a0 ]. Pokazat ´emo dvije konstrukcije koje obje koriste veriˇne c z razlomke. . konstrukcija (Legendre) Promotrimo Pellovu jednadˇbu x2 − py 2 = 1. . Odavde je zqn − ppn = εp qn+1 . Medutim. Ve´ s c z c je Fermat znao da se neparan prost broj moˇe prikazati kao zbroj kvadrata z dva cijela broja ako i samo ako je p ≡ 1 (mod 4). Budu´i da c z p pn pn pn+1 1 < − = .Teorija brojeva u kriptografiji 35 Zavrˇit ´emo ovo poglavlje s jednom primjenom veriˇnih razlomaka. nuˇan i dovoljan uvjet da bi jednadˇba c2 − pb2 = −1 imala rjeˇenja z z s √ je da period u razvoju u veriˇni razlomak broja p bude neparan. a1 . an . . qn qn qn+1 qn qn+1 < 1. Promotrimo veriˇni razlomak c c z z = [a0 .

Kaˇemo z da je a kvadratni ostatak modulo m ako kongruencija x2 ≡ a (mod m) ima rjeˇenja. c n+1 Stoga je s2 − p αn+1 αn+1 = n+1 = −1. t2 n+1 tj. Pritom ne treba testirati brojeve oblika g0 . Taj element g se naziva primitivni korijen modulo p. . Nije teˇko za vidjeti s tn+1 1 c c da je razvoj od − α takoder ˇisto periodiˇan.Teorija brojeva u kriptografiji 36 Broj αn+1 = √ sn+1 + p tn+1 je ˇisto periodiˇan (nema pretperioda) i period mu je c c s √ − p palidroman. . . Neka su a i m relativno prosti cijeli brojevi i m ≥ 1. . Ako ova kongruencija nema rjeˇenja. Sada je jasno da su g 0 . Tada kvadratnih ostataka modulo p ima jednako mnogo kao i kvadratnih neostataka. . S kongruencijom x2 ≡ a (mod m) i pitanjem ima li ona rjeˇenje i ako s ima. vrijedi νa (N ) ∼ A · π(N ). 1967) da tzv. k k ≥ 2. Moˇemo krenuti redom i testirati da li je g = 2. To znaˇi da postoji element g ∈ Zp ˇiji je red jednak c c c p − 1. tj. . g p−2 kvadratni neostatci. recimo neˇto c s o tome kako se on nalazi. a g 1 . susreli smo se ranije kod Rabinovog kriptosustava. p = s2 + t2 . Kad smo se ve´ podsjetili definicije primitivnog korijena. Poznato je (Hooley. Ova tvrdnja neposredno slijedi iz ˇinjenice da je c grupa (Zp . s time da se parcijalni kvon+1 cijenti unutar perioda pojavljuju u obrnutom redosljedu od onih kod αn+1 . .3739558. S tim u vezi spomenimo poznatu Artinovu slutnju koja kaˇe z da za prirodan broj a. Moˇe se postaviti pitanje kolika je vjerojatnost da ve´ g = 2 bude primiz c tivni korijen.8. kako ih na´i. generalizirana Riemannova . gdje je π(N ) broj prostih brojeva ≤ N . (p − 1)/2. onda kaˇemo da je a kvadratni s s z neostatak modulo m. zakljuˇujemo da je − α 1 = αn+1 . Samo z testiranje da li je g primitivni korijen se zasniva na sljede´oj oˇitoj ˇinjenici: c c c g je primitivan korijen ako i samo ako za svaki prosti faktor q od p−1 vrijedi g (p−1)/q ≡ 1 (mod p). . . g 4 . g 2 . . onda to ne moˇe biti ni g0 . . νa (N ) broj prostih brojeva ≤ N za 1 koje je a primitivni korijen. dok je A Artinova konstanta p 1 − p(p−1) ≈ 0. g 5 . g 3 . Neka je αn+1 = n+1 njegov konjugat.7 Kvadratne kongruencije Definicija 2. Kako je period od αn+1 palidroman. c Pretpostavimo sada da je modul komgruencije neparan prost broj p. n+1 n+1 2. z k g = 3. ·p ) cikliˇka. g p−3 kvadratni ostatci. koji nije potencija nekog prirodnog broja. primitivni korijen. jer ako g0 nije primitivni korijen.

10. onda se Jacobijev i Legendreov simbol poa dudaraju. m) > 1. Neka je m neparan prirodan broj i m = pαi njegov i rastav na proste faktore.9. z . onda je a kvadratni ostatak modulo pi za svaki i. koji se definira za proizvoljne cijele brojeve a b i b (b moˇe biti paran i negativan). za prims jenu ovog zakona oba parametra moraju biti prosti brojevi. Zato je ( pi ) = 1 a a za svaki i. m pi a gdje ( pi ) predstavlja Legendreov simbol. Jedna mogu´nost c c je pomo´u tzv. Legendreov simbol ( a ) jednak p je 1 ako je a kvadratni ostatak modulo p. Vidimo da je broj rjeˇenja kongruencije x2 ≡ a (mod p) jednak 1 + ( a ). Da bi a bio kvadratni ostatak modulo m nuˇno je i doz a c voljno da svi ( pi ) budu jedanki 1. Eulerov kric c z terij nam omogu´ava da Legendreov simbol izraˇunamo uz O(ln3 p) bitc c nih operacija. c Gaussovom zakonu reciprociteta. onda je ( m ) = 0. GRH takoder povlaˇi da je najc c manji primitivni korijen modulo p reda veliˇine O(ln6 p). Medutim. s p Postavlja se pitanje kako izraˇunati Legendreov simbol. a jednak je 0 ako je a ≡ 0 (mod p). c Vratimo se sada kvadratnim ostatcima modulo p. No. Ako je (a. jednak je −1 ako je a kvadratni neostatak modulo p. ˇto dolazi od s zahtjeva u definiciji Legendreovog simbola da jedan od parametara (donji) bude prost. Budu´i da smo ve´ vidjeli kako se moˇe efikasno potencirati. Dakle. Kroneckerov simbol ( a ). Jasno je da ako je m prost. ovaj zakon nam omogu´ava da ( p ) zac c q q mijenimo sa ( p ).Teorija brojeva u kriptografiji 37 slutnja (GRH) povlaˇi Artinovu slutnju. ˇto je posebno korisno ukoliko je p < q. Medutim. Definicija 2. Ako je a kvadratni ostatak a modulo m. te neka je a proizvoljan cijeli broj. Taj algoritam je zasnovan na tzv. ( m ) = 1 ne povlaˇi da je a kvadratni c ostatak modulo m. tzv. a c z koji je vrlo sliˇan Euklidovom algoritmu. koji glasi p q q = (−1)(p−1)(q−1)/4 p za razliˇite proste brojeve p i q. To nas vodi do potrebe uvodenja poop´enja Legendreovog simc bola kod kojeg parametri ne´e morati biti prosti. Spomenimo da postoji i op´enitiji pojam. Eulerovog kriterija koji glasi: c a ≡ a(p−1)/2 p (mod p). Neka je p neparan prost broj. pa je i ( m ) = 1. Jacobijev simbol a ( m ) se definira sa a αi a = . postoji i efikasniji algoritam ˇija je sloˇenost O(ln2 p). c Definicija 2.

Teorija brojeva u kriptografiji 38 Navodimo osnovna svojstva Jacobijevog simbola koja se koriste u njegovom raˇunanju: c a b = . m a a = mn m a n −1 2 2 = (−1)(m−1)/2 . = (−1)(m −1)/8 m m m n = (−1)(m−1)(n−1)/4 ako su m i n relativno prosti n m . 1) a ≡ b (mod m) =⇒ m m 2) 3) 4) ab a = m m b .

Prethodnu propoziciju je mogu´e modificirati i na preostale proste broc jeve.5. To znaˇi da postoji cijeli broj x takav c p da je x2 ≡ a (mod p) .Teorija brojeva u kriptografiji a Algoritam za raˇunanje Jacobijevog simbola ( m ) c 39 a = a mod m t=1 while (a = 0) { while (a paran) { a = a/2. tj. Dokaz: Budu´i da je a kvadratni ostatak modulo p. to je c c vrlo neefikasan algoritam. uz poznavanje barem jednog kvadratnog neostatka modulo p. kojeg moramo izluˇiti prije c nego ˇto zamjenimo gornji i donji parametar. to moˇemo napraviti tako da ispiz tamo redom sve mogu´e ostatke modulo p. s Pretpostavimo sada da je ( a ) = 1. iz Eulerovog kriterija c (p−1)/2 ≡ 1 (mod p). a) if (a ≡ m ≡ 3 (mod 4)) then t = −t a = a mod m } if (m = 1) then return t else return 0 Vidimo da je ovaj algoritam vrlo sliˇan Euklidovom algoritmu.6. Propozicija 2. Ako je p ≡ 5 (mod 8). onda je x = a(p+1)/4 rjeˇenje s kongruencije (2. Odgovor na postavljeno pitanje je vrlo lak za brojeve specijalnog oblika. Upravo ta ˇinjenica se koristi u sljede´oj propoziciji. budu´i da pola c c prostih brojeva ima takav oblik. za imalo ve´e p-ove.4). onda je jedan brojeva a(p+3)/8 i 2(p−1)/4 a(p+3)/8 rjeˇenje kongruencije (2. s . m) = (m.4) Postavlja se pitanje kako na´i taj broj x. 5 (mod 8)) then t = −t } (a. Jedina c bitna razlika je u posebnom tretiranju faktora 2. pa je imamo a x2 ≡ (a(p+1)/2 ) ≡ a · a(p−1)/2 ≡ a (mod p). (2. kako efikasno izraˇunati kvadratni c c korijen od a modulo p. Ako je p ≡ 5 (mod 8). if (m ≡ 3. Zapravo. c c Propozicija 2.4). Ako je p vrlo mali. Ako je p ≡ 3 (mod 4). No. mogli bi re´i da taj oblik i nije jako specijalan. onda je broj 2 kvadratni neostatak modulo p.

Ovo je teoretski najproblematiˇniji dio c algoritma. s 2 Ukoliko imamo predznak −. proˇirena Riemannova slutnja (ERH). d2 s−1 t ≡ −1 (mod p). (p−1)/2). Pretpostavimo da nam je poznat jedan c kvadratni neostatak d modulo p. a2 s−4 t dt3 2 s−3 ≡ ±1 (mod p). a2 s−3 t dt2 2 s−2 ≡ ±1 (mod p). na kraju dobijemo ts ≥ 0 takav da je c at d2ts ≡ 1 (mod p). Odavde je a2k+1 ≡ ±1 (mod p). nije poznat niti jedan (bezuvjetni) deterministiˇki polic nomijalni algoritam na nalaˇenje kvadratnog neostatka. onda iskoristimo ˇinjenicu da je ( p ) = −1. pa je a2k+2 ≡ ±a (mod p). Opisat ´emo Tonellijev algoritam za nalaˇenje c z kvadratnog korijena u tom sluˇaju. onda je x = ak+1 = a(p+3)/8 rjeˇenje kongruencije (2. Pretpostavimo li z da vrijedi tzv. U praksi ovo nije problem. 10 Neka je p = 2s t+1. onda postoji kvadratni s neostatak manji od 2 ln2 p. Dakle. Analogno zakljuˇujemo da postoji t3 ≥ 0 takav da je c a2 s−3 t dt3 2 s−2 ≡1 (mod p). jer je vjerojatnost da je sluˇajno c izabrani broj kvadratni neostatak jednaka 1/2. dobivamo sljede´i s c algoritam za raˇunanje rjeˇenja kongruencije x2 ≡ a (mod p). Tako je vjerojatnost da od 20 sluˇajno izabranih brojeva niti jedan nije kvadratni neostatak manja od c −6 . zato ˇto ne c c z s moˇemo eksplicitno napisati jedan kvadratni neostatak modulo p (iako znamo z da ih ima ”puno”. onda je a4k+2 ≡ 1 (mod p).4). s Spojivˇi gornje dvije propozicije i Tonellijev algoritam. c To povlaˇi da je 24k+2 ≡ −1 (mod p). Naime. Taj sluˇaj je i najteˇi. Ako u posljednjoj kongruenciji imamo predznak +. gdje je t neparan. Preostao je sluˇaj p ≡ 1 (mod 8). pa za x = 2(p−1)/4 a(p+3)/8 vrijedi c x2 ≡ 24k+2 a2k+2 ≡ (−1)(−a) ≡ a (mod p). pa je x = a(t+1)/2 dts rjeˇenje kongruencije (2. pa nam jednostavno pretraˇivanje daje polinomiz jalni algoritam. postoji t2 ≥ 0 takav da je a2 s−2 t dt2 2 s−1 ≡1 (mod p). Nastavljaju´i ovaj postupak. c s .4). Prema Eulerovom kriteriju imamo: a2 s−1 t ≡ 1 (mod p).Teorija brojeva u kriptografiji 40 Dokaz: Ako je p = 8k +5. tj. a2 s−2 t ≡ ±1 (mod p).

kada su sve binarne kvadratne forme s distriminantom −4d medusobno ekvivalentne).Teorija brojeva u kriptografiji 41 Kvadratni korijen modulo p a = a mod p if (p ≡ 3. Napomenimo da p. broj klasa h(−4d) c c jednak 1. iz x obrat op´enito ne vrijedi (osim u sluˇaju kada je tzv. if (c = a mod p) then x = x · 2(p−1)/4 mod p. return x } if (p ≡ 5 (mod 8)) then { x = a(p+3)/8 mod p. Primijenjujemo Euklidov algoritam na (p. return x } Nadi broj d ∈ {2. Cornacchia-Smithov algoritam. z s . Zanima nas ima li ova jednadˇba rjeˇenja u cijelim brojevima. p − 1} takav da je d = −1 p Prikaˇi p − 1 = 2s t. gdje smo pokazali dvije c z konstrukcije za rjeˇavanje problema zbroja kvadrata. Promotrimo diofantsku jednadˇbu z x2 + dy 2 = p. s c Nuˇan uvjet za postojanje rjeˇenja je da je −d kvadratni ostatak modulo z s 2 + dy 2 = p slijedi (xy −1 )2 ≡ −d (mod p). t neparan z A = at mod p D = dt mod p m=0 for (0 ≤ i ≤ s − 1) { s−1−i if ((ADm )2 ≡ −1 (mod p)) then m = m + 2i } x = a(t+1)/2 Dm/2 mod p return x Neka je d prirodan broj. c = x2 mod p. z) sve dok ne 2 √ dodemo do ostatka r < p. · · · . Promotrimo broj t = (p − r2 )/d. tzv. Neka je dakle z cijeli broj takav da je z 2 ≡ −d (mod p) i neka je p < z < p. Specijalni sluˇaj d = 1 smo c c ve´ obradili u poglavlju o veriˇnim razlomcima. Sada ´emo navesti s c jednu modifikaciju prve konstrukcije. Ovaj problem se izmedu ostalog pojavljuje kod primc jene eliptiˇkih krivulja u testiranju prostosti. 3. te p neparan prost broj. Ako je t = s2 za neki s ∈ Z. te ako ih z s ima. koja rjeˇava ovaj op´enitiji problem. onda je p = r2 + ds2 . tj. 7 (mod 8)) then { x = a(p+1)/4 mod p. kako ih na´i. Zaista. U protivnom jednadˇba nema rjeˇenja.

kako izraˇunati njegov kvadratni korijen. x da je x ≥ q + 1. if (2z < p) then z = p − z (a. Op´enitije. √ Budu´i da je 1 (t + n ) ≥ n. U zadnjem koraku imamo y = (x + n/x )/2 = ˇ (x + n )/2 ≥ x. tj. a algoritam ´emo modificirati tako da radi samo c s cijelim brojevima. √ Algoritam za raˇunanje c n je zapravo varijanta poznate Newtonove iterativne metode za pribliˇno raˇunaje korijena jednadˇbe. za svaki pozitivan broj t. Zelimo dokazati da je x = q. te ako jest potpun kvadrat. y = (x + n/x )/2 return x } √ √ Dokaˇimo da ovaj algoritam stvarno raˇuna z c n . Neka je q = n . b) = (p. t/d) 2. tj. z) √ c= p t = p − b2 if (t ≡ 0 (mod d)) then return nema rjeˇenja s if (t/d nije potpun kvadrat) then return nema rjeˇenja s return (b. Tada je y−x= x+ 2 n x −x= n x −x n − x2 = . imamo da je x ≥ q u c 2 t svim koracima algoritma.8 Kvadrati i kvadratni korijeni U ovom poglavlju razmatramo pitanje kako za dani prirodni broj n ˇto s efikasnije odrediti da li je n potpun kvadrat ili nije. Ove probleme smo ve´ susreli u Cornacchia-Smithovom c algoritmu. Algoritam za √ n x=n y = (x + n/x )/2 while (y < x) { x = y.Smithov algoritam if (( −d ) = −1) then return nema rjeˇenja s p √ z = −d mod p. Pretpostavimo suprotno. 2 2x . pitamo se kako c c za proizvoljni prirodni broj n izraˇunati cjelobrojni dio kvadratnog korijena c √ od n. Podsjetimo se na z c z se u Newtovoj metodi aproksimacije rjeˇenja jednadˇbe f (x) = 0 raˇunanju s z c po formuli f (xk ) xk+1 = xk − . f (xk ) Kod nas je f (x) = x2 − n. broj n .Teorija brojeva u kriptografiji 42 Cornacchia .

”ve´ina” prirodnih brojeva nisu kvadrati. Jedna mogu´nost je izraˇunati c c n i provjeriti je li q 2 jednako n. onda n sigurno nije kvadrat. c Algoritam za detekciju kvadrata t = n mod 64 if (q64[t] = 0) then return n nije kvadrat r = n mod 45045 if (q63[r mod 63] = 0) then return n nije kvadrat if (q65[r mod 65] = 0) then return n nije kvadrat if (q11[r mod 11] = 0) then return n nije kvadrat √ q= n if (n = q 2 ) them return n nije kvadrat √ else return n je kvadrat. Za modul m. onda je n kvadratni ostatak modulo m c za svaki m koji relativno prost s n.01 . 64 63 65 11 715 vidimo da na ovaj naˇin za viˇe od 99% brojeva ne moramo raˇunati kvadc s c ratni korijen da bi zakljuˇili da nisu kvadrati. Stoga bi bilo dobro barem neke od c tih ”nekvadrata” eliminirati na neki jednostavniji naˇin. ˇ Neka je sada n prirodan broj. 21. Naravno da su mogu´i i drugi izbori modula. Redoslijed kojim testiramo c module dolazi od 12 16 21 6 < < < . umjesto x = n. Z11 je redom 12. n = q . Na primjer. te se unaprijed izraˇunaju c kvadrati u pripadnom prstenu. 65. Broj kvadrata u c Z64 . Ideja je iskoristiti c ˇinjenicu da ako je n potpun kvadrat. 64 63 65 11 tako da ´e se za ve´inu prirodnih brojeva program zaustaviti ve´ nakon prvog c c c testa modulo 64. ako je 2e ≤ n < 2e+1 . ako je n kvadratni neostatak po nekom modulu. Z65 . generiramo pripadnu tablicu qm ovako: for (0 ≤ k ≤ m − 1) qm[k] = 0 for (0 ≤ k ≤ m/2 ) qm[k 2 mod m] = 1 Jedna preporuˇena kombinacije modula je 64. Efikasnost algoritma se moˇe poz z boljˇati ako se za inicijalnu vrijednost.Teorija brojeva u kriptografiji 43 Iz x ≥ q + 1 > √ n slijedi n − x2 < 0 i y − x < 0. uzme broj koji s √ bolje aproksimira (odozgo) broj n. s Sloˇenost ovog algoritma je O(ln3 n). 11. Ova ideja se u praksi realizira tako da se izabere nekoliko konkretnih modula. Dakle. onda moˇemo uzeti x = 2 (e+2)/2 . Z63 . Tako se moˇe dobiti algoritam sloˇenosti z z z O(ln2 n). No. 63. 6. ˇto je kontradikcija. Zelimo testirati da li je n potpun kvadrat ili √ nije. Budu´i da je c 12 16 21 6 6 · · · = < 0. 16.

eliptiˇka krivulja nad K je nesingularna c c kubna krivulja. s z Neka je K polje. spomenili smo da je grupa toˇaka na eliptiˇkoj krivulji nad konaˇc c c nim poljem jedna od najvaˇnijih grupa koje se koriste u kriptografiji. U daljnjem ´e za nas eliptiˇka krivulja nad pojem K (karakteristike rac c zliˇite od 2 i 3) biti skup svih toˇaka (x. koji zovemo Weierstrassova forma. . gdje su koeficijenti a.Poglavlje 3 Eliptiˇke krivulje c 3. Svaka takva c jednadˇba moˇe se biracionalnim transformacijama (racionalnim transforz z macijama ˇiji je inverz takoder racionalna transformacija) svesti na oblik c y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 . . promatranoj nad algebarskim zatvorenjem od c K. Nadalje. koji zovemo kratka Weierstrassova forma. Dakle. 1 + 1 = 0 i 1 + 1 + 1 = 0).1 Grupovni zakon Kada smo govorili o kriptosustavima zasnovanima na problemu diskretnog logaritma. y) = ax3 + bx2 y + cxy 2 + dy 3 + ex2 + f xy + gy 2 + hx + ix + j = 0. j ∈ K. . a nesingularnost znaˇi da je u svakoj c toˇki na krivulji F (x. Pored z toga. . 44 . c. eliptiˇke krivulje igraju vaˇnu ulogu kod faktorizacije. ako je karakteristika polja K razliˇita od 2 i 3 (tj. ona ima jednadˇbu oblika z F (x. b. barem jedna parcijalna derivacija funkcije F razliˇita od 0. onda se ova jednadˇba moˇe c z z transformirati u oblik y 2 = x3 + ax + b. y) ∈ K × K koji zadovoljavaju c c jednadˇbu z E : y 2 = x3 + ax + b. te dokazivanja c z prostosti. Uvjet nesingularnosti je sada da kubni polinom f (x) = x3 + ax + b nema viˇestrukih nultoˇaka (u K). a to s c je pak ekvivalentno uvjetu da je diskriminanata D = −4a3 − 27b2 razliˇita c od 0. Op´enito. y) = 0. ˇto su takoder vaˇne teme u kriptografiji.

0)} uvedemo relaciju ekvivalencije (X. y1 ). y3 ). c c Kao ˇto smo ve´ rekli u poglavlju 1. Y. najvaˇniji je sluˇaj kada je K konaˇno polje z c c k . Q = (x2 . Y. . pa tu klasu moˇemo identificirati sa (x. gdje je x3 = λ2 − x1 − x2 . Ako je Z = 0. zajedno s ”toˇkom u beskonaˇnosti” O. onda klasa ekvivalencije od (X. 3x2 +a 1 2y1 . kZ). y3 = −y1 + λ(x1 − x3 ). ako je x2 = x1 . Navedimo sada te formule: Neka je P = (x1 . Sva svojstva abelove grupe su evidentna.Teorija brojeva u kriptografiji 45 gdje su a. Naravno da se ovaj geometrijski zakon moˇe opisati i eksplicitnim formulama za koordiz nate zbroja toˇaka. k ∈ K. postoji i jedna klasa ekz vivalencije koja sadrˇi toˇke za koje je Z = 0. c Pokazuje se da je (E(K). osim asocijativnosti ˇiji je dokaz neˇto kompliciraniji. Projektivnu ravninu P2 (K) dobijemo tako z da na skupu K 3 \ {(0. onda je P + Q = O 5) ako je Q = −P . b ∈ K i 4a3 + 27b2 = 0. y). dobivamo projektivnu jednadˇbu z Z Z Y 2 Z = X 3 + aXZ 2 + bZ 3 . u Fq . 0.3. y2 ). tako da su tri toˇke na krivulji E kolinearne c ako i samo ako im je suma jednaka neutralnom elementu O. Medutim. Z) ima reprezentant (x. 1. ako je x2 = x1 . Ako u (afinoj) jednadˇbi eliptiˇke krivulje z c uvedemo supstituciju x = X . y. S druge strane. 0) z c i tu klasu identificiramo s toˇkom u beskonaˇnosti O. c s Za primjene u kriptografiji. Posebno su vaˇni sluˇajevi q = p (prost broj) i q = 2 z c teoriji brojeva najvaˇniju ulogu imaju eliptiˇke krivulje nad poljem racionalz c nih brojeva Q. Z) ∼ (kX. 1). λ= y2 −y1 x2 −x1 . k = 0. Ona ima reprezentant (0. +) abelova grupa. onda je P + Q = (x3 . c c Toˇka u beskonaˇnosti se pojavljuje prirodno ukoliko eliptiˇku krivulju c c c prikaˇemo u projektivnoj ravnini. odnosno tangente u toˇki c P u sluˇaju P = Q. Broj λ je ”koeficijent smjera” pravca kroz P i Q. kY. Tada je 1) −O = O 2) −P = (x1 . c c Taj skup ´emo oznaˇavati s E(K). Tako dobivene formule onda mogu posluˇiti za definiciju c z zbrajanja toˇaka na eliptiˇkoj krivulji nad proizvoljnim poljem (uz malu c c modifikaciju ako je karakteristika polja 2 ili 3). operacija (zbrajanje) na skupu s c E(R) se uvodi ”geometrijski”. y = Y . −y1 ) 3) O + P = P 4) ako je Q = −P .

Pk na E iz kojih se sve ostale racionalne c toˇke na E mogu dobiti povlaˇe´i sekante i tangente. y cijeli brojevi. Ako je P = (x. 12 Z2 × Zn . godine dokazao da postoji toˇno 15 mogu´ih torzijskih c c grupa. 10. . onda su x. Postavlja se pitanje koje sve vrijednosti mogu poprimiti E(Q)tors i rank(E). a m1 . c Korolar 3. b ∈ Z. zajedno s toˇkom O. Pokazuje se c da je puno lakˇe dati odgovore na ova pitanja za torzijsku grupu. Moˇemo c c z imati 0. 9. To su grupe: Zn . Toˇke reda 2 su upravo toˇke s y-koordinatom jednakom 0. Ostale toˇke konaˇnog reda c c moˇemo na´i pomo´u sljede´eg teorema. 4. z c c c Teorem 3. Neka je eliptiˇka krivulja E zadana jednadˇbom c z y 2 = x3 + ax + b. . 8. a. 2. Ovdje m1 P1 c c oznaˇava sumu P1 + · · · + P1 od m1 pribrojnika. ˇine podgrupu od E(Q)tors koje c c c je ili trivijalna ili jednaka Z2 ili jednaka Z2 × Z2 . 5. . . koja se ˇesto oznaˇava i sa c c c [m1 ]P1 .2. Pr na krivulji E sa svojstvom da se svaka racionalna toˇka P na E c moˇe prikazati u obliku z P = T + m1 P1 + · · · + mr Pr . drugim rijeˇima. za n = 1. Te toˇke. Mazur je 1978. mr cijeli brojevi.2 Eliptiˇke krivulje nad Q c Najvaˇija ˇinjenica o eliptiˇkim krivuljama nad Q jest Mordell-Weilov teoz c c rem.1 (Mordell-Weil). 1 ili 3 takve toˇke. Kako je svaka konaˇno c c c c generirana abelova grupa izomorfna produktu cikliˇkih grupa. .Teorija brojeva u kriptografiji 46 3. gdje je T neka toˇka konaˇnog reda. y) ∈ E(Q)tors . . . . pitanje je kako ih izraˇunati za konkretnu krivulju E. Korolar nam kaˇe da postoji r racionalnih toˇaka c z c P1 . c Mordell-Weilov teorem nam. ˇto ovisi o broju racionalnih nultoˇaka polinoma c s c x3 + ax + b. Teorem 3. Nadalje. 8. za n = 2. . 7. . 3. E(Q) je konaˇno generirana abelova grupa. . E(Q) ∼ E(Q)tors × Zr = Podgrupa E(Q)tors od E(Q) koja se sastoji od svih toˇaka konaˇnog reda c c naziva se torzijska grupa od E. a nenegativni cijeli broj r se naziva rang od E i oznaˇava se s rank(E). nego za s rang. . kaˇe da postoji konaˇan c z c skup racionalnih toˇaka P1 . 4. . 6. 6.3 (Lutz-Nagell). dobivamo c sljede´u neposrednu posljedicu Mordell-Weilovog teorema. te vrijedi da je ili y = 0 ili y 2 dijeli diskriminantu D.

s Pitanje koliko velik moˇe biti rang je od interesa i za primjene eliptiˇkih z c krivulja u kriptografiji. q(ai )) i moˇemo oˇekivati da ´emo dobiti eliptiˇku c z c c c krivulju ranga ≥ 9. 0). za problem diskretnog logaritma u grupi Z∗ postoji subeksponencijalni algoritam. onda bi na problem diskretnog logaritma u grupi E(Fp ) mogli pokuˇati primijeniti analogon Index Calculus metode tako ˇto bi tu krivulje s s uloˇili u krivulju nad Q velikog ranga. Naime. te r(x) nema z c viˇestrukih korijena. Prikazat ´emo jednu njegovu konstrukciju kojom je 1991. r(x) ∈ Q[x] takvi da je p = q 2 − r i deg r ≤ n − 1. No. Tu su krivulju pronaˇli Martin i McMillen 2000. godine. godine dobio beskonaˇno c c mnogo eliptiˇkih krivulja ranga ≥ 11. Ta konstrukcija se obiˇno naziva c c Mestreova polinomijalna metoda. pitanja koja se tiˇu ranga su puno teˇa. . onda izaberemo jednu racionalnu toˇku na c C (npr. q(a1 ))) za toˇku u beskonaˇnosti i transformiramo C u eliptiˇku c c c 2 = ax4 + bx3 + cx2 + dx krivulju. Neka je p(x) ∈ Q[x] normiran polinom i deg p = 2n. da za svaki M ∈ N postoji eliptiˇka krivulja nad Q c takva da je rank(E) ≥ M .Teorija brojeva u kriptografiji 47 Kao ˇto smo ve´ napomenuli. c eliptiˇku krivulju nad poljem racionalnih funkcija Q(t)) ranga ≥ 11. c Skoro sve ideje za konstrukciju eliptiˇkih krivulja (relativno) velikog c ranga zasnivaju se na idejama koje je uveo Jean-Francois Mestre. ±q(ai )). i = 1. . a2n razliˇiti c i=1 racionalni brojevi. (a1 . te ˇinjenica da prostih brojeva c p (generatora od Z) ima ”mnogo”. Pretpostavimo sada da je p(x) = 2n (x−ai ). Mnoˇenjem sa d2 . . Kad bi mogli na´i eliptiˇke krivulje jako c c velikog ranga. . Polinom q moˇemo na´i sukcesivnim raˇunanjem koeficijenata ili iz asimpz c c √ totskog razvoja od p. Uz supstituciju x = 1/t.4. Tada C ima 10 racionalnih toˇaka oblika (ai . Polaziˇte u konstrukciji je sljede´a ˇinjenica. U toj p metodi se koristi ulaganje od Z∗ u prsten Z. tj. . ˇiji bi generatori igrali ulogu prostih z c brojeva u originalnoj Index Calculus metodi. gdje su a1 . . Index Calculus metoda. . v = t2 y. Tada postoje jedinstveni polinomi q(x). dobivamo c v 2 = dt3 + ct2 + bt + a. dobivamo eliptiˇku krivulju u z c 2 = T 3 + cT 2 + bdT + ad2 . Procjenjuje se da bi za proste brojeve p koji su danas u uporabi u kriptografiji (≈ 2160 ) trebali koristiti krivulje ranga ve´eg od 180. danas se tek zna da postoji eliptiˇka krivulja c ranga ≥ 24. s c c z a zadovoljavaju´i odgovori joˇ uvijek nisu poznati. Za deg r = 3 to s c je sasvim jasno. Meste je konstruirao familiju eliptiˇkih krivulja (tj. Vjeruje se da rang moˇe c s z biti proizvoljno velik. Ako je deg r = 3 ili 4. Tada na krivulji C: y 2 = r(x) leˇe toˇke (ai . tzv. Pokaˇimo to na primjeru krivulje oblika y z koja ima racionalnu toˇku (0. onda C predstavlja eliptiˇku krivulju. 2n. s c c Lema 3. Weierstrassovoj formi V Za n = 5 skoro svi izbori ai -ova daju deg r = 4. tako c . . Ako je deg r = 4.

ako je p > 3. Na ovom mjestu se moˇemo pitati kako na´i ireducibilni polinom stupnja z c k nad Zp . gdje je f (x) neki ireducibilni polinom stupnja k nad Zp . U sluˇaju q = 2 z c c je najzanimljiviji za primjene u kriptografiji. 3. . . b5 = 14. U prvom Mestreovom primjeru iz 1991. . Fermigier i Kulesz su modificirali Mestreovu metodu. . . . Pokazuje se da normiranih ireducibilnih polinoma stupnja k nad Zp ima pribliˇno pk /k.Teorija brojeva u kriptografiji 48 da je uzeo n = 6 i ai = bi + t. k/2 . onda E ima jednadˇbu oblika c z y 2 = x3 + ax + b. Zato moˇemo pokuˇati izabrati c z s brojeve b1 . koje manju teˇinu W (broj koeficijenata razliˇitih od 0). dok su pripadne operacije zbrajanje i mnoˇenje polinoma u Zp [x]. otprilike svaki k-ti normirani polinom stupnja k z nad Zp je ireducibilan. godine bilo je b1 = −17. Vaˇni primjeri c c z konaˇnih polja su polja Fp . . Neka je karakteristika polja Fq jednaka p. i = 7. Pokazuje se da za svaku potenciju prostog broja q = pk postoji jedinstveno (do na izomorfizam) polje s q elemenata. Sve ove krivulje imaju trivijalnu torzijsku grupu. Sada polinom r(x) op´enito ima stupanj 5. tj. 12. Konaˇno polje s q elemenata oznaˇava se s Fq . . gdje je p prost broj. q = pk . 2. Posljednji uvjet se provjerava Euklidovim algoritmom za polinome. 6. onda je q = pk . . . Nagao i Kihara. Kasnije su Mestre. ai = bi−6 − t. . b6 = 17. Ako s k oznaˇimo c dimenziju od Fq kao vektorskog prostora nad Fp . Tada Fq sadrˇi z prosto potpolje Fp . koriste´i sliˇne konstrukcije. b6 tako da koeficijent uz x5 bude jednak 0. To su upravo polja Zp osc tataka modulo p. c Neka je E eliptiˇka krivulja nad konaˇnim poljem Fq . tako da je danas rekord za rang nad Q(t) jednak 14. xp − x) = 1 za j = 1. ˇini se da je uvijek mogu´e c c posti´i da je W = 3 ili W = 5. i Fq je vektorski prostor nad poljem Fp . b3 = 10. . i = 1. Kao ˇto c c s smo ve´ rekli. b4 = 11. . b2 = −16. Jedna realizacija tog polja je Zp [x]/(f (x)). onda E ima jednadˇbu oblika z y 2 = x3 + ax2 + bx + c. Elementi ovog polja su polinomi nad Zp stupnja ≤ k − 1. Testiranje da li je konkretni polinom ireducibilan zasniva se na ˇinjenici da je polinom f (x) stupnja k nad Zp ireducibilan c j ako i samo ako je gcd(f (x). obiˇno se polinom f (x) bira tako da ima ˇto s c s k . s time da se nakon mnoˇenja raˇuna ostatak z z c pri dijeljenju s polinomom f (x). Da bi operacije u polju Fq bile ˇto efikasnije. poboljˇali c c s ovaj rezultat.3 Eliptiˇke krivulje nad konaˇnim poljima c c Za primjene u kriptogtafiji najvaˇije su eliptiˇke krivulje nad konaˇnim z c c poljima. . . te dobili familije krivulja s (relativno) velikim rangom i netrivijalnom torzijskom grupom. Ako je p = 3.

ˇto se moˇe re´i op´enito o grupi E(Fq ). p + 1 + 2 p postoji eliptiˇka krivulja nad Fp takva da je #E(Fp ) = m.1) Zamislimo da Legendreov simbol ( x +ax+b ) poprima vrijednosti 1 i −1 na p sluˇajan naˇin. ima samo male proste fakc tore.Teorija brojeva u kriptografiji 49 a ako je p = 2. o njezis z c c nom redu #E(Fq ) i strukturi. gdje je g generator (cikliˇke) grupe F∗ ). Postavlja se pitanje. 2q + 1]. Iz teorije vjerojatnosti (tzv. i sl. c U primjenama eliptiˇkih krivulja.). onda se E moˇe transformirati u jedan od slijede´a dva oblika z c y 2 + cy = x3 + ax + b ili y 2 + xy = x3 + ax2 + b. onda za njihovu sumu t(n) = k≤n Xk vrijedi (s vjerojatnoˇ´u 1) da je t(n) = 1. Pretpostavimo c s da je q = p. ˇesto biramo eliptiˇke krivulje ˇiji red c c c c ima neko zadano aritmetiˇko svojstvo (prost je. To znaˇi da ´e red sluˇajno odabrane eliptiˇke krivulje nad Fp imati zadano c c c c . a koja z c kaˇe da su redovi #E(Fp ) za (a. No. ali ´emo pokuˇati c c s √ dati heuristiˇko objaˇnjenje za pojavu q u nejednakostima. Hasseov teorem ne´emo dokazivati. koju je dokazao Lenstra. Lako je zakljuˇiti da je #E(Fq ) ∈ [1. c q pa moˇemo oˇekivati da je #E(Fq ) ≈ q + 1. b) ∈ Fp × Fp skoro uniformno distribuirani z √ √ unutar intervala p − p. Pritom je jako vaˇna ˇinjenica. Vrijedi i svojevrstan obrat Hasseovog teorema (Dueringov teorem) koji kaˇe da za svaki cijeli broj z √ √ m ∈ p + 1 − 2 p. p + p (centralne polovice Hasseovog intervala). Prema Hasseovom c √ teoremu je |t| ≤ 2 q. a pored toga svakom od q mogu´ih x-eva odgoc c varaju najviˇe dva y-na. samo pola elemenata od Fq imaju kvadratni s korijen (to su elementi oblika g 2n . gornja ograda za t(n) je ”ugrubo” proporcionalna s n. √ √ q + 1 − 2 q ≤ #E(Fq ) ≤ q + 1 + 2 q Veliˇina t = q+1−#E(Fq ) naziva se Frobeniusov trag. Teorem 3. zakon ponovljenog logaritma) c c poznato je da ako je Xk niz nezavisnih sluˇajnih varijabli koje poprimaju vric sc jednosti ±1. tj. p (3.5 (Hasse). ˇto se moˇe s z √ usporediti s Hasseovim teoremom koji za gornju ogradu od t daje 2 q. na E imamo toˇku O. Preciznu informaciju o redu z c grupe E(Fq ) daje poznati Hasseov teorem. Tada je #E(Fp ) = p + 1 + x∈Fp 3 x3 + ax + b . c Naime. lim sup n n→∞ 2 ln ln n √ Dakle.

O strukturi grupa E(Fq ) govori sljede´i teorem. c Teorem 3. onda je grupa E(Fq ) cikliˇka. Iz uvjeta da n1 |(n2 . λ3 = 8Y14 . vidimo da trebamo c z jednom raˇunati inverz.7. te imamo joˇ ˇetiri mnoˇenja u polju. p) = 1 √ √ 2) k je paran i t = ±2 q ili (t = ± q i p ≡ 1 (mod 3)) ili (t = 0 i p ≡ 1 (mod 4)) √ √ 3) k je neparan i t = 0 ili (t = ± 2q i p = 2) ili (t = ± 3q i p = 3). = gdje su n1 i n2 prirodni brojevi i vrijedi n1 |n2 i n1 |q − 1. a zbroj z c z P + P uz 10 mnoˇenja. Neka je E eliptiˇka krivulja nad Fq . q − 1). govori sljede´i c c c c teorem. Z 3 ) (prvoj koordinati c c smo dali teˇinu 2. Iako je njegova sloˇenost teoretski ista kao sloˇenost mnoˇenja. λ2 = 4X1 Y12 . Z1 ). Tada postoji eliptiˇka krivulja E nad Fq takva c √ da je #E(Fq ) = q + 1 − t ako i samo ako je |t| ≤ 2 q i t zadovoljava jedan od uvjeta: 1) (t. ponovo imamo jedan inverz. Neka je q = pk . Neka je P = (X1 . X2 = λ1 − 2λ2 . U ovim novim koordinatama se kod raˇunanja zbroja toˇaka uop´e ne poc c c javljuje dijeljenje. c zakljuˇujemo da se moˇe oˇekivati da ´e op´enito n1 biti mali prirodan broj. Zbroj P + Q se moˇe izraˇunati uz 16 mnoˇenja.Teorija brojeva u kriptografiji 50 svojstvo s pribliˇno istom vjerojatnoˇ´u kao i sluˇajno odabran prirodan z sc c broj reda veliˇine kao p. Ako je n1 = 1. Teorem 3. Z) odgovara afina toˇka ( Z 2 . Y2 = λ1 (λ2 − x2 ) − λ3 . Z2 = 2Y1 Z1 . teˇinskih projektivnih koordinata u kojima z c s z X Y projektivnoj toˇki (X. Kod raˇunanja c sc z c P + P . Ako zboj dvije toˇke P + Q raˇunamo po formuli za c c c zbrajanje toˇaka na krivulji zadanoj afinom jednadˇbom. . c z c c c a grupa E(Fq ) ”skoro cikliˇka”. Y. Y1 . a drugoj 3). c O mogu´im redovima grupe E(Fq ) u op´em sluˇaju q = pk . te joˇ ˇetiri mnoˇenja (od kojih su s c z dva kvadriranja). c Recimo neˇto o implimentaciji grupovne operacije na E(Fq ). Tada jednadˇba eliptiˇke krivulje postaje z z c Y 2 = X 3 + aXZ 4 + bZ 6 . Znamo da se inverz moˇe izraˇunati pomo´u Euklidovog z c c algoritma. u z z z praksi je mnoˇenje ipak znatno brˇe od raˇunja inverza. Raˇunanje inverza z z c c se moˇe izbje´i koriˇtenjem tzv. Z2 ) toˇke P + P : c c 4 2 λ1 = 3X1 + aZ1 .6. Zadrˇimo s z se na sluˇaju q = p > 3. Dat ´emo formule za z c raˇunanje koordinata (X2 . Y2 . Tada je c E(Fq ) ∼ Zn1 × Zn2 .

c c ovisi prvenstveno o redu grupe E(Fq ). i koja je u praksi primjenjiva za p < 10 √ Iz Hasseovog teorema znamo da je #E(Fp ) = p+1−t. Stoga takve krivulje nisu prikladne za primjene u kriptografiji. Ako je red od P ve´i od 4 p. c c s Prva metoda koju ´emo spomenuti koristi Legendreov simbol (odnosno c njegovo poop´eneje za Fq ). To su tzv. gdje je r prost broj. po Lagrengeovom √ teoremu. tj. budu´i da je grupa eliptiˇke krivulje primjer grupe u koc c joj je invertiranje (raˇuanje toˇke −P ) vrlo jednostavno. Shanksovoj ”baby step . tj. onda c je takav N jedinstven i jednak je #E(Fp ). ˇto moˇemo pisati i kao O(p1+ε ). te supersingularne krivulje kod kojih p|t. c Prikat ´emo sada Schanks-Mestreovu metodu ˇija je sloˇenost O(p1/4+ε ) c c z 30 . Broj operacija za c c raˇunanje [m]P za eliptiˇku krivulju nad poljem Fq je O(ln m ln2 q).giant step” (BSGS) metodi. m pribrojnika To se moˇe efikasno napraviti pomo´u algoritama za potenciranje u abelovim z c grupama koje smo obradili u poglavlju 2. Ovaj algoritam je efikasan samo za vrlo male p-ove. Da bi problem diskretnog logaritma u toj grupi bio dovoljno teˇak. Zelimo na´i broj N ∈ p+1−2 p. #E(Fq ) bi trebao imati barem jedan prosti z 160 . Posebno je pritom koristan SD prikaz broja m. Bolji naˇin se zac c sniva na tzv. formulu c #E(Fq ) = p + 1 + x∈Fq x3 + ax + b .4 Raˇunanje reda grupe E(Fq ) c Ho´e li konkretna eliptiˇka krivulja biti prikladna za primjene u kriptografiji. p Sloˇenost ovog algoritma je O(p ln2 p). Re´i ´emo sada neˇto o metodama za odredivanje reda #E(Fq ). #E(Fq ) = q. anomalne krivulje kod kojih je t = 1. Izaber√ √ ˇ imo sluˇajnu toˇku P ∈ E(Fp ). tj. gdje z s z je ε proizvoljno mala pozitivna konstanta. Naivan naˇin za pronalaˇenje c z √ broja N bio bi da ispitamo svih 4 p mogu´ih brojeva. a praktiˇiki je neprimjenjiv za p > 10000.3. Za krivulje specijalnog oblika poznati su efikasni algoritmi za problem diskretnog logaritma.Teorija brojeva u kriptografiji 51 U primjenama eliptiˇkih krivulja ˇesto je potrebno izraˇunati viˇekratnik c c c s neke toˇke P . red od P dijeli #E(Fp ). ˇto za p > 3 znaˇi s c da je #E(Fp ) = p + 1. |t| ≤ 2 p. a h mali prirodan broj. Obiˇno se koriste krivulje kod kojih je #E(F ) oblika faktor ve´i od 2 c c q h · r. toˇku c c [m]P = P + P + · · · + P . p+1+2 p c c c takav da je [N ]P = O. Takav broj N sigurno postoji jer. Neka je . c c 3.

veliki korak). Dakle. Za svaki i c testiramo postoji li j takav da je Q − [i]([m]P ) = [j]P. imamo z sljede´i algoritam: c Shanks-Mestreova metoda: m = 2p1/4 √ P ∈ E(Fp ). Zadana je krivulja E : y 2 = x3 + 3x + 5 nad poljem F163 . 61). zapravo trebamo rijeˇiti problem diskretnog logaritma. 0 ≤ j ≤ m − 1. |P | > 4 p √ Q = [p + 1 + 2 p ]P for (0 ≤ j ≤ m − 1) izraˇunaj i spremi [j]P c for (0 ≤ i ≤ m − 1) { if (Q − [i]([m]P ) = [j]P za neki 0 ≤ j ≤ m − 1) then √ t = im + j − 2 p } return t Primjer 3. 80) 7 (118. Neka je m = s s c 2p1/4 . Iako za taj s problem nemamo jako efikasan algoritam. 5) Izraˇunamo R = [8]P = (97. pa n moˇemo prikazati u obliku z n = im + j. ”Veliki koraci” c (giant steps) se sastoje u raˇunanju toˇaka Q − [i]([m]P ). 154) 4 (11.1. U sljede´oj tablici su prikazani ”mali koraci”: c j [j]P 0 O 1 (1. Odrediti red grupe E(F163 ). 0 ≤ j ≤ m−1 c c (nova toˇka dobiva se iz stare dodavanjem P . Uzmimo P = (1. Dakle. Tada je Q = [163 + 1 + 25]P = (106.Teorija brojeva u kriptografiji 52 √ √ Q = [p + 1 + 2 p ]P .mali korak). Kada takve i. 3) 2 (162. ”Veliki koraci” su prikazani u sljede´oj c c tablici: . 37) 5 (143. 101) 6 (77. ”Mali koraci” (baby steps) se sastoje u raˇunanju toˇaka [j]P . Tada je n < m2 . 150). 0 ≤ i ≤ m − 1. ipak ga BSGS metodom moˇemo z rijeˇiti efikasnije nego da redom uvrˇtavamo sve mogu´e n-ove. Ovdje je m = 8. 3). 162) 3 (4. tada je traˇeni n jednak im + j. Tada za broj n = p + 1 + 2 p − N vrijedi da je √ 0≤n≤4 pi √ [n]P = [p + 1 + 2 p − N ]P = Q. j pronademo. 0 ≤ i ≤ m − 1 c c (nova toˇka dobiva se iz stare oduzimanjem [m]P .

pa je danas s z mogu´e izraˇunati red grupe E(Fp ) za proste brojeve p < 10500 . Taj algoritam imao je sloˇenost O(ln8 q). Dakle. Frobeniusov endomorfizam ϕ i Frobeniusov trag t povezani su relacijom ϕ2 − [t]ϕ + [q] = [0]. 61) (7. iz supstituciju X = gx. U sluˇaju kada je K = Fp . 83) (124. z Y 2 = X 3 + g 2 aX + g 3 b. Stoviˇe. 160) (142. 5) (1. onda nam ´e nam ovaj algoritam dati c c viˇe mogu´ih kandidata za red grupe #E(Fp ). Vrlo kratko c c ´emo spomenuti neke od ideja koje se koriste u Schoofovom algoritmu. treba nam pojam ”twista”. Da bi formulirali njegov rezultat. l prost l ≤ lmax onda iz poznavanja t mod l za 2 ≤ l ≤ lmax . (kvadratni) twist od E s g je eliptiˇka krivulja ˇija y c c p je jednadˇba gy 2 = x3 + ax + b. Prvi polinomijalni algoritam za raˇunanje reda grupe E(Fq ) dao je Schoof c 1995. takvih toˇaka ima relativno mnogo (ima ih viˇe s c s od c ln p/ ln ln p za neku konstantu c). Iz formule c c za prikaz #E(Fp ) pomo´u Legendreovih simbola. Y = g 2 y. Poc lazna ideja je raˇunanje broja t tako da se izraˇuna t mod l za male proste c c brojeve l. 65) (118. y) = (xq . To je preslikavanje ϕ : E(Fq ) → E(Fq ) zadano sa ϕ(x. . Ako je lmax najmanji prosti broj takav da je √ l > 4 q. 61) (79. dok su sve one kod kojih je g kvadratni neostatak modulo p izomorfne jednoj drugoj krivulji koju ´emo oznaˇiti s E . pomo´u Kineskog teorema o c ostatcima moˇemo izraˇunati t. n = 3 · 8 + 7 = 31. 8) 53 Dakle. postavlja se pitanje s c √ postoji li toˇka P ∈ E(Fp ) ˇiji je red P ve´i od 4 p. y q ). godine. pa je broj z c c ln q kongruencija u pripadnom sustavu O( ln ln q ). U odredivanju t mod l koristi se tzv. onda postoji toˇka reda ve´eg od 4 p na barem jednoj c c ˇ od krivulja E i E . Potvrdan odgovor c c c na ovo pitanje dao je Mestre. One kod kojih je g kvadratni ostatak c modulo p izomorfne su s E. Broj lmax je reda veliˇine O(ln q). Kasnije su Atkin z i Elkies poboljˇali Schoofov algoritam do sloˇenosti O(ln6 q). Za eliptiˇku krivulju E na poljem K danu jednadˇbom c z 2 = x3 + ax + b i g ∈ F∗ . onda znamo i red od #E (Fp ). i c obrnuto. t = 31 − 25 = 6 i konaˇno #E(F163 ) = c 163 + 1 − 6 = 158. 83) (145. odnosno. ϕ(O) = O. Sada moˇemo navesti gore najavljeni Mestreov rezultat koji kaˇe z z √ da ako je p > 457. Frobeniousov endomorfizam. direktno slijedi da je c #E(Fp ) + #E (Fp ) = 2p + 2. onda svi twistovi od E c ˇine dvije klase izomorfnih krivulja. To znaˇi da ako znamo red od #E(Fp ).Teorija brojeva u kriptografiji i Q − [i]R 0 1 2 3 4 5 6 7 (106. √ Ako je red toˇke P manji od 4 p.

l − 1 vrijedi ϕ2 (P ) + [ql ]P = [τ ]ϕ(P ). onda je t mod l = τ . 2 2 . . .Teorija brojeva u kriptografiji 54 tj. Ako c za τ ∈ 0. y) = O. y) ∈ E(Fq ) vrijedi c (xq . . 1. . te neka je ql = q mod l. y q ) − [t](xq . za svaku toˇku P = (x. y q ) + [q](x. Neka je toˇka P ∈ E(Fq ) takva da je [l]P = O.

.1 Distribucija prostih brojeva Definicija 4. z z Prvi dokaz da prostih brojeva ima beskonaˇno mnogo dao je Euklid c oko 300. . p2 .Poglavlje 4 Testiranje i dokazivanje prostosti 4. c c Osnovni rezultat o distribuciji prostih brojeva je teorem o prostim brojevima (PNT) koji kaˇe da je z x π(x) ∼ . logaritamsko-integralna s funkcija x 1 li(x) = dt.1. pm bili svi prosti brojevi. godine prije Krista. On kaˇe da svaki aritmetiˇki niz c z c 55 . ln x Ovu ˇinjenicu je prvi naslutio Gauss. . . 2 ln t Po L’Hopitalovom pravilu neposredno dobivamo da je lim li(x) = 1. Slijede´i vaˇan rezultat kojeg ´emo spomenuti je Dirichletov teorem o c z c prostim brojevima u aritmetiˇkom nizu. x/ ln(x) x→∞ Stoga je PNT ekvivalentan sa π(x) ∼ li(x). Za prirodan broj p koji ima toˇno dva djelitelja 1 i p kaˇemo c z da je prost. a dokazali su je neovisno Hadamard i c de la Vall´e Poussin 1896. sa π(x) ´emo oznaˇavati broj prostih brojeva koji su ≤ x. Za x ∈ R. Za prirodan broj n > 1 koji nije prost kaˇemo da je sloˇen. godine. Njegov dokaz se zasniva na ˇinjenici da svaki c prirodan broj ima barem jedan prosti djelitelj. Pa ako bi p1 . e Joˇ bolja aproksimacija za funkciju π(x) je tzv. onda broj n = p1 p2 · · · pm + 1 ne bi imao niti jedan prosti djelitelj.

∀ε > 0. ϕ(d) ln x Dakle. Znamenita Riemanc c nova slutnja (RH) glasi da sve nultoˇke funkcije ζ(s) u kritiˇnoj traci leˇe c c z 1 na pravcu Re(s) = 2 . ako π(x. To znaˇi c da je funkcija f (s) = (s − 1)ζ(s) analitiˇka na C i f (1) = 1. Veza Riemannove zeta funkcije i prostih brojeva dolazi preko Eulerove produktne formule ζ(s) = (1 − p−s )−1 . Proˇirenje se c s najprije napravi za Re(s) > 0 pomo´u formule c ζ(s) = s −s s−1 ∞ 1 x− x dx . koja je definirana sa ∞ ζ(s) = n=1 1 . Vaˇno sredstvo u prouˇavanju distribucije prostih brojeva je Riemannova z c zeta funkcija. ns Ovaj red konvergira apsolutno za Re(s) > 1. d. . a) ∼ 1 x . p prost koja je neposredna posljedica teorema o jednoznaˇnoj faktorizaciji na proste c faktore. Svaka informacija o funkciji ζ nam stoga daje neku informaciju o distribuciji prostih brojeva. ova ocjena za konkretni ε je ekvivalentna s tvrdnjom da ζ(s) nema nultoˇaka u poluravnini Re(s) > 1 + ε. −6.Teorija brojeva u kriptografiji 56 kojem su poˇetni ˇlan i diferencija relativno prosti sadrˇi beskonaˇno mnogo c c z c prostih brojeva. dok se sve ostale c c nultoˇke nalaze unutar ”kritiˇne trake” 0 < Re(s) < 1. a) oznaˇava broj prostih brojeva p ≤ c x koji zadovoljavaju p ≡ a (mod d). Tako ˇinjenica da ζ(s) nema nultoˇaka na c c pravcu Re(s) = 1 povlaˇi PNT. moˇemo re´i da svaka klasa reduciranih ostataka modulo d sadrˇi z c z podjednako mnogo prostih brojeva. d. Preciznije. Preciznije. . . onda vrijedi π(x. c 2 . koja jes dini pol (jednostruki) ima u s = 1 i pripadni reziduum je jednak 1. dok je Riemannova slutnja ekvivalentna sa c sljede´om ocjenom c π(x) = li(x) + O(x1/2+ε ).. −4. xs+1 dok se za Re(s) ≤ 0 koristi funkcionalna jednadˇba z ζ(s) = 2s π s−1 Γ(1 − s)ζ(1 − s) sin( πs ). 2 Ova funkcija ima oˇite nultoˇke u s = −2. Ovako definirana funkcija moˇe z se proˇiriti do meromorfne funkcije na cijeloj kompleksnoj ravnini.

Dakle. zbog multiplikativnosti. To su kriteriji koje broj p mora zadovoljiti da bi bio prost. testovima prostosti. Stoga se postavlja pitanje kako za s dani prirodan broj odrediti je li prost ili je sloˇen. U ovom poglavlju ´emo z c govoriti o tzv. tj. Tada je. χ u potpunosti odreden sa χ(g). c Uvjerimo se u to u sluˇaju kada je d = p prost broj. Jedan primjer Dirichletovog karaktera je Jacobijev simbol ( n ) za neparan broj d > 1. n ∈ Z 2) χ je periodiˇna s periodom d c 3) χ(n) = 0 ako i samo ako je (n. Neka je d ∈ N i χ : Z → C funkcija sa svojstvima 1) χ(mn) = χ(m)χ(n) za sve m.Teorija brojeva u kriptografiji 57 Kod ocjene veliˇine najmanjeg kvadratnog ostatka modulo p. ako p ne zadovolji neki od tih kriterija. d) > 1. sve nultoˇke funkcije L(s. d) = 1.2 Pseudoprosti brojevi Vidjeli smo da se u konstrukciji ve´ine kriptosustava s javnim kljuˇem kre´e c c c od jednog ili viˇe velikih prostih brojeva. ali ne karakteriziraju proste brojeve. Vaˇno je napomenuti da su ovi vjerojatnosni z testovi puno brˇi od svih poznatih metoda za dokazivanje prostosti. onda je ”vjerojatno prost”. ˇto znaˇi da je vrlo z s c velika vjerojatnost da je p prost. z Razlog za ovo razlikovanje testiranja i dokazivanja prostosti leˇi u tome z ˇto teoremi koji u potpunosti karakteriziraju proste brojeve (npr. Ona se odnosi na funkcije koje s se dobiju modifikacijom funkcije ζ. Sada proˇirena Riemannova slutnja glasi da. spominjali c smo proˇirenu Riemannovu slutnju (ERH). Neˇto kasnije ´emo prikazati i neke od s c metoda pomo´u kojih je mogu´e egzakztno dokazati da je neki broj prost. Neka je g primitivni c korijen modulo p. S druge strane. s za proizvoljan Dirichletov karakter χ. onda je χ(n) = χ(n korijen iz jedinice. ako je c d ϕ(d) ϕ(d) ) = χ(1) = 1. z 2 4. a takvih brojeva ima ϕ(p) = p − 1. Stoga je χ(n) neki (n. Dirichletova L-funkcija se definira sa ∞ L(s. neka vaˇna svojstva prostih brojeva su vrlo z jednostavna za provjeru. Tada se χ naziva Dirichletov karakter modulo d. Tipiˇan i vaˇan primjer takvog svojstva z c z . c c No. za χ(g) moˇemo izabrati bilo koji kompleksan broj η takav da z je η ϕ(p) = 1. u primjenama se najˇeˇ´e zadovoljavamo s brojevima za koje je vrlo c sc velika vjerojatnost da su prosti. χ) u poluc ravnini Re(s) > 0 leˇe na pravcu Re(s) = 1 . postoje i neki sloˇeni koji imaju to svojstvo. a ako ih zadovolji. Op´enito. Postoji toˇno ϕ(d) Dirichletovih karaktera modulo d. Wilsonov s teorem: p je prost ako i samo ako p dijeli (p − 1)! + 1) nisu jednostavni za provjeru. ns gdje je χ Dirichletov karakter. No. onda je sigurno sloˇen. χ) = n=1 χ(n) .

obrat ovog teorema ne vrijedi. Pro2p −1 motrimo broj n = bb2 −1 . Budu´i da je c n= bp − 1 bp + 1 . a nije psp(3). Za svaki prirodan broj b ≥ 2 postoji beskonaˇno mnogo pseuc doprostih brojeva u bazi b. Dokaz: Neka je p bilo koji neparan prost broj koji ne dijeli b2 − 1. Pa ipak i njih ima beskonaˇno mnogo. a da ipak za z z neki (pa ˇak i za svaki) b vrijedi relacija (4. Tako je npr. bp−1 ≡ 1 (mod p) ako p ne dijeli b. Ostaje za vidjeti zaˇto n ne moˇe biti c s z produkt od dva prosta broja. kako je n kvadratno slobodan. Odavde neposredno slijedi da n mora biti produkt od barem tri razliˇita prosta broja. (4. Iz Malog Fermatovog teorema slijedi b2p ≡ b2 (mod p). pa je stoga n − 1 paran broj. dok s s je 91 psp(3). tj. Postojanje pseudoprostih brojeva nam pokazuje da testiranje samo s jednom bazom nije dovoljno da bi zakljuˇili da je broj prost. Zato moˇemo c z pokuˇati kombinirati viˇe baza. Erd˝s o je dokazao da za broj psp(b) brojeva koji su ≤ x vrijedi ocjena o(π(x)). p dijeli b zakljuˇujemo da p|n − 1. Naime. 341 psp(2). Kaˇemo da je sloˇen broj n pseudoprost u bazi b (kra´e: n z z c je psp(b)) ako je bn ≡ b (mod n). c Definicija 4.Teorija brojeva u kriptografiji 58 je Mali Fermatov teorem koji kaˇe da ako je p prost broj. Korseltov kriterij kaˇe da je n Carmichaelov ako i samo ako je n z sloˇen. n − 1 = b2p−2 + b2p−4 + · · · + b2 je suma od c p − 1 pribrojnika iste parnosti.1) tj. kako p ne dijeli b2 − 1. onda za svaki cijeli z broj b vrijedi bp ≡ b (mod p). Za efikasnost provjere ovog svojstva vaˇna je ˇinjenica da se modularno potenciranje moˇe vrlo efikasno provesti. Postavlja se pitanje koliko ima pseudoprostih brojeva u bazi b. p moˇe biti sloˇen. No. Pretpostavimo da je n = pq. z 2p − b2 = (n − 1)(b2 − 1). 341 = 11 · 31 je psp(2). to n mora dijeliti i bn−1 −1. Stoga je bn ≡ b (mod n). z c z No. Ukoliko je poznata faktorizacija od n. to on mora c biti produkt razliˇitih prostih brojeva. a nije psp(2). Takvi brojevi se zovu Carmichaelovi brojevi. to Dakle. 2p|n − 1. onda je lako ustanoviti da li je on Carmichaelov broj.2. kvadratno slobodan i za svaki prosti faktor p od n vrijedi da p − 1 z dijeli n − 1.1). broj 561 = 3 · 11 · 17 je pseudoprost u svakoj bazi. Npr. Naime. 91 = 7 · 13 je psp(3). b−1 b+1 vidimo da je n sloˇen. No. pa kako n dijeli b2p −1. Zaista. Tada je . pseudoprosti brojevi su ”rijedi” od prostih brojeva. p < q. Dakle.1. c Teorem 4. Nadalje.

. s Teorem 4. te neka je n − 1 = 2s · t. c z Svaki spsp(b) je ujedno i psp(b). 0 ≤ r < s takav da je b2 r ·t ≡ −1 (mod n). Dakle. Oznac ˇimo s C(x) broj Carmichaelovih brojeva koji su ≤ x. No. Definicija 4. Budu´i c da je n−1 paran. (b. Granville i c Pomerance su 1994. onda mora biti a = −1 jer je b(n−1)/2 ≡ 1 (mod n). z U tom sluˇaju broj b zovemo svjedok sloˇenosti od n. 0 < b < n. Zaista. n = 341 je psp(2). c Teorem 4. Sada ´emo pokazati kako c se malim modificiranjem testa taj nedostatak moˇe ukloniti. c c . 340 = 22 · 85. godine dokazali da je C(x) > x2/7 . n) = 1. Postojanje Carmichaelovih brojeva pokazuje vaˇan nedostatak testiranja z prostosti na osnovu Malog Fermatovog teorema. z gdje je t neparan. Tada je n jaki pseudoprosti z broj u bazi b za najviˇe (n − 1)/4 baza b. godine. tada je broj n sloˇen. 0 < b < n. kombiniraju´i mali Fermatov teorem sa svojstvom c kongruencije x2 ≡ 1 (mod p) dobivamo jaˇi zahtjev od onog iz definicije c pseudoprostih brojeva. Prije dokaza teorema 4. Dakle. z Ako uvjet (4.2) onda kaˇemo da je n jaki pseudoprosti broj u bazi b (ili da je n spsp(b)). ali nije spsp(2). Tada ako je n prost. recimo b(n−1)/2 ≡ a s c i−1 (mod n). raˇunati b(n−1)/2 .2 nam pokazuje da u sluˇaju jakih pseudoprostih brojeva ne c postoji analogon Carmichaelovih brojeva. . da je 91 spsp(10) jer je 1045 ≡ −1 (mod 91).2) nije ispunjen za neki b. Alford. Ako za cijeli broj b vrijedi bt ≡ 1 (mod n) ili postoji r. ˇto je u suprotnosti s Korseltovim s kriterijem. Kao primjer jakog pseudoprostog broja navedimo npr. Pojam jakog pseudoprostog broja uveo je Selfridge 1974. godine. (4. pravu snagu testu zasnovanom na njemu daje sljede´i teorem koji su neovisno dokazali Monier i Rabin 1980. Npr. nemogu´e da sloˇen broj c z bude jaki pseudoprosti broj u svakoj bazi. Neka je n neparan sloˇen broj.2. . a jedina rjeˇenja kongruencije x2 ≡ 1 (mod n) ako je n prost su s x ≡ ±1 (mod n). te bn−1 ≡ 1 (mod n). b(n−1)/4 . moˇemo pokuˇati ”vaditi drugi korijen” iz ove kongruencije. z Neka je n neparan prirodan broj. Pretpostavimo da u i-tom koraku prvi c i put dobijemo na desnoj strani neˇto razliˇito od 1.3.Teorija brojeva u kriptografiji 59 n − 1 = pq − 1 ≡ p − 1 ≡ 0 (mod q − 1).2 dokaˇimo lemu koja ´e nam dati potrebne z c m ≡ ±1 (mod n). Obrat ne vrijedi. Neka je n neparan sloˇen broj. Sa ν (t) ´emo informacije o kongruencijama oblika x c m oznaˇavati najve´i cijeli broj k takav da mk dijeli t. Poznato je da postoji beskonaˇno mnogo Carmichaelovih brojeva. z s tj.. Erd˝s je postavio o slutnju da za svaki ε > 0 postoji x0 (ε) takav da je C(x) > x1−ε za x ≥ x0 (ε). dok je 285 ≡ 32 (mod 341) i 2170 ≡ 1 (mod 341).

. r. to p ne dijeli n − 1. te neka je r 1 r ν = min{ν2 (pi − 1) : i = 1.3. . . . ϕ(pαi )) rjeˇenja. i = 1.. ϕ(pαi )) dijeli 2i . . . . i Za c = 1 je indgi 1 = 0. . c Dokaz teorema 4. . r} i s = i=1 (m.2: 1.. . sluˇaj: n nije kvadratno slobodan c Neka je n = p2 q. onda vrijedi bn−1 ≡ 1 (mod n). ovo i je oˇito ekvivalentno s ν2 (m) < ν2 (pi −1) za i = 1. r. Sada je kongruencija xm ≡ c (mod n) ekvivalentna c sustavu kongruencija m · indgi x ≡ indgi c (mod ϕ(pαi )). p+1 4 ϕ(p αi ) Ovdje jednakost vrijedi samo za n = 9. ϕ(pαi )). a nuˇan i dovoljan uvjet za postojanje rjeˇenja je da s z s za svaki i broj (m. r. . . . pαi −1 · i i 2ν2 (p−1) ·qi ) dijeli pαi −1 ·2ν2 (p−1)−1 ·qi . Neka je n = pα1 · · · pαr neparan broj. s ν2 (m) < ν. tj.3. Budu´i da p|n. No. (3) Ako kongruencija xm ≡ −1 (mod n) ima rjeˇenja.Teorija brojeva u kriptografiji 60 Lema 4. onda ih ima s toˇno s. To znaˇi da za svaki c i j αi x ∈ {1. n − 1) rjeˇenja. Tada je i bn−1 ≡ 1 (mod p2 ). . pi − 1} koji nije djeljiv s p postoji j takav da je gi ≡ x (mod pαi ). . . Odavde imamo da (2ν2 (m) m1 . . Zato je s c d ≤ p − 1. ϕ(pαi ) i 2 (mod ϕ(pαi )). Po lemi 4. α pa gornji sustav postaje i = 1. . gdje su m1 i qi neparni brojevi. i Tada vrijedi: (1) Kongruencija xm ≡ 1 (mod n) ima toˇno s rjeˇenja. . c s m ≡ −1 (mod n) ima rjeˇenja ako i samo ako je (2) Kongruencija x s ν2 (m) < ν. Ako je n spsp(b). i Sada iz svojstava linearnih kongruencija zakljuˇujemo da ako ovaj sustav ima c rjeˇenja. ova kongruencija ima d = (p(p − 1). i Oznaˇimo taj j s indgi x. r. c Dokaz: Neka je gi primitivni korijen modulo pαi .. pa sustav postaje m · indgi x ≡ 0 (mod ϕ(pαi )). . . Stoga je ukupan s i broj rjeˇenja sustava jednak s. Ovo su linearne kongruencije i i-ta ima (m. Stoga je broj baza b za koje je n psp(b) ≤ d · q ≤ (p − 1)q = (p2 − 1)q n−1 ≤ . . s Za c = −1 je indgi (−1) = m · indgi x ≡ ϕ(pi i ) 2 . onda ih ima s. gdje je p prost. i i = 1.

Teorija brojeva u kriptografiji 61 2. Pretpostavimo da je bt ≡ 1 (mod n). q − 1 = 2w · z. a broj s r (t. sluˇaju. z) ≤ 4r vz. tj neparan. v) · r (t. Dobivamo sljede´u gornju ogradu za broj c baza b takvih da je n spsp(b): (n − 1)2−s1 −s2 −···−sk 1 + 2ks1 − 1 2k − 2 2ks1 ≤ (n − 1)2−ks1 k + k 2k − 1 2 −1 2 −1 k−2 2 1 2k − 2 1 =(n − 1) 2−ks1 k + k ≤ (n − 1) 2−k k + k 2 −1 2 −1 2 −1 2 −1 1 n−1 =(n − 1) · k−1 ≤ . sluˇaj: n = p · q. takvih baza ima (t. gdje su p i q razliˇiti prosti brojevi c c Neka je p − 1 = 2u · v. jer bi inaˇe imali 0 ≡ 2s t ≡ pq − 1 ≡ q − 1 (mod v). ∀j. To dovodi do z 3 sljede´e gornje ograde za broj baza b za koje je n spsp(b): c (n − 1) · 1 −2u 2 4u ·2 + 3 3 3 = (n − 1) 1 1 n−1 n−1 + = < . Moˇemo c z pretpostaviti da je s1 ≤ sj . Izraˇunamo bt mod n. Po lemi 4. Po lemi 4. 8 3 6 4 Ako je u = w. Pretpostavimo sada da je b2 t ≡ −1 (mod n) za neki r. 3 3 Ako je u < w. c s c uzastopno kvadriramo bt modulo n sve dok ne dobijemo rezultat −1. gdje je k ≥ 3. u gornjim ocjenama moˇemo zamijeniti vz sa vz . Neka je n − 1 = 2s t. 18 9 6 4 3. sluˇaj: n = p1 p2 · · · pk . ova kongruencija ima rjeˇenja ako i samo ako je r < u. te biramo sljede´i b. za koje je n spsp(b) ima najviˇe s u−1 vz + r=0 4r vz = vz 1 + 4u − 1 4u + 2 < (n − 1) · 2−u−w · . Budu´i da je n − 1 > ϕ(n) = 2u+w vz. ˇto je kontradikcija. U protivnom. v) ≤ v. te u ≤ w. Analogno bi dobili da z|v. gdje je t neparan. 4 2 Miller-Rabinov test prostosti: Neka je n neparan broj za kojeg ˇelimo ustanoviti je li prost ili sloˇen. Ako . z) ≤ vz. onda je desna strana ove nejednakosti ≤ (n − 1) · 2−2u−1 2 4u + 3 3 ≤ (n − 1) · 1 2 1 n−1 · + = . 0 < b < n. rjeˇenja je 2 s c slijedi da prirodnih brojeva b. 0 ≤ r < s.3. s Dakle. zakljuˇujemo da je n proˇao test. pa bi iz c w z slijedilo da v|z. z z Na sluˇajan naˇin izaberemo b. v) · 2r (t. onda barem jedna od nejednakosti (t. Ako dobic c c jemo ±1. z) ≤ z mora biti stroga. gdje su v i z neparni. (t. 0 < b < n. a pi -ovi su razliˇiti prosti c c brojevi Neka je pj − 1 = 2sj tj . ˇto bi znaˇilo da je v|q − 1 = 2 s c v = z i p = q. Postupimo kao u 2.3.

Sada ´emo definirati Lucasove pseudoproste brojeve. Neka su α i β koc rijeni polinoma x2 − ax + b = 0. . tj.. Tako je vjerojatz c s nost da je 500-bitni broj koji prode samo jedan test sloˇen manja od 1/428 . b) = α + β . pa je stoga tzv. b ∈ Z \ {0}. onda uz pretz z postavku da vrijedi ERH postoji barem jedna baza b < 2 ln2 n za koju ne vrijedi (4. onda znamo da je sigurno n sloˇen. z Npr. Za a = 1. uz pretpostavku da vrijedi ERH.4 (Ankeny). moˇe se pokazati da ako je n sloˇen broj. z Sloˇenost jednog Miller-Rabinovog testa je O(ln3 n). Millers Rabinov test postaje polinomijalni deterministiˇki algoritam za dokazivanje c prostosti. Neparan sloˇen c s z broj n je Eulerov pseudoprost broj u bazi b (n je epsp(b)) ako zadovoljava Eulerov kriterij: b ≡ b(n−1)/2 (mod n) n b (ovdje ( n ) oznaˇava Jacobijev simbol). Dokaz se zasniva na sljede´em teoremu. Uk su Fibonaccijevi brojevi. Gornja tvrdnja se dobije primjenom Ankenyjevog teorema na karaktere m m χ1 (m) = p1 p2 i χ2 = p2 . Definiramo nizove Uk (a. gdje su p1 . 5. . onda je vjerojatnost da je n z 1 sloˇen ≤ 4k . Moˇe se pokazati da je svaki spsp(b) c z ujedno i epsp(b). a potom za raˇunanje b2t .Teorija brojeva u kriptografiji 62 dobijemo −1. bt mod n se z moˇe izraˇunati u O(ln3 n) bitnih operacija.2 moˇe znaˇajno poboljˇati za velike brojeve n. Pretpostavimo da vrijedi ERH. b = −1. b4t . Postoje i druge vrste pseudoprostih brojeva. c . Spomenut ´emo joˇ samo dvije. 7 i 11. te odgovaraju´i testovi prosc tosti zasnovani na njima.2). 3. Naime. Soloway-Strassenov test. Napomenimo joˇ da se ocjena iz s teorema 4. Poznato je da ne postoji niti jedan broj manji od 1012 koji je istovremeno spsp(b) za b = 2. Dakle. koji je zasnovan na Eulerovim pseudoprostim brojevima. manje efikasan od Miller-Rabinovog testa. Tako z dobiveni ”vjerojatno prosti brojevi” se nazivaju joˇ i ”industrijski prosti s brojevi”. b) = αk −β k k k α−β . ako dos r+1 r bijemo da je b2 t ≡ 1 (mod n). . Vk (a. To je i bio originalni Millerov test iz 1976. godine. Oni nizovi se zovu Lucasovi nizovi. c Teorem 4. b Uz pretpostavku da vrijedi proˇirena Riemannova slutnja (ERH). Naime. a Vk su (obiˇni) Lucasovi brojevi. onda je n proˇao test. ali b2 t ≡ −1 (mod n). p2 neparni prosti faktori od n. z c c 2s−1 t uzastopnim kvadriranjem trebamo takoder O(ln3 n) bitnih operacija. Tada za svaki d ∈ N i Dirichletov karakter χ = 1 modulo d postoji n < 2 ln2 d takav da je χ(n) = 1. a. za k = 20 je vjerojatnost da je n sloˇen manja od 10−12 . Ako nikad ne dobijemo −1. sloˇenost ovog algoz 5 ritma je O(ln n). Ako n prode test za k b-ova.

z b (n je lpsp(a. ti testovi nam ne daju dokaz da je n prost. ˇto je u suprotnosti s pretpostavkom da s su n i a(n−1)/q − 1 relativno prosti. Dokaˇimo da je broj n = 153533 prost. Kako je iz Malog Fermatovog teorema bp−1 ≡ 1 (mod p). pa moˇemo uzeti s = 4 · 131. Stavimo b = a bs ≡ an−1 ≡ 1 (mod n). da je n sloˇen.Teorija brojeva u kriptografiji 63 Moˇe se pokazati da za proste brojeve p. Moˇemo uzeti a = 2 jer je 2n−1 ≡ 1 (mod n). No. Medutim. tj. to je nemogu´e c c √ √ budu´i da je s > n.1. Dokaz: Pretpostavimo suprotno. Tada on ima prosti z √ (n−1)/s . to zakljuˇujemo da s dijeli p − 1. Ako za neparan sloˇen broj n vrijedi Uδ(n) ≡ 0 z (mod n). (4. n) = 1. c Primjer 4. Stoga Pocklingtonom teorem povlaˇi da je n c prost. . 4. tj.5 (Pocklington). onda moˇemo biti priliˇno sigurni da je n c z c prost. a p ≤ n. (2(n−1)/2 − z 1. takve da p ne dijeli 2bD. Sada ´emo re´i c c neˇto o metodama kojima se moˇe dokazati da je dani broj prost. (2(n−1)/131 −1. Stoga se ovo svojstvo prostih brojeva moˇe iskoristiti z p za definiciju nove vrste pseudoprostih brojeva.3) gdje je δ(p) = p − ( D ). b)). vrijedi Uδ(p) ≡ 0 (mod p). Prosti djelitelji z od s su 2 i 131. Miller-Rabinov test za nekoliko razliˇitih baza). za svaki prosti djelitelj q od s. Tada je faktor p ≤ n. Da bi dokazali prostost (mod n). te za konstrukciju testa prostosti zasnovanog na njima. Tvrdimo da je s red od b modulo p. Zaista. Pretpostavimo da postoji prirodan broj a takav da vrijedi an−1 ≡ 1 (a(n−1)/q − 1. n) = 1 Tada je n prost. n) = 1. Tada bi p dijelio n i bs/q − 1. onda kaˇemo da je n Lucasov pseudoprost broj s parametrima a. Pokazuje se u praksi da je kombinacija testova s jakim pseudoprostim brojevima i Lucasovim pseudoprostim brojevima jako dobra i vjeruje se da broj koji prode po jedan test sa spsp i lpsp. Ovdje smo implicitno koristili da je 131 prost. mora biti prost. pa je i bs ≡ 1 (mod p). Neka je s djelitelj od n − 1 koji je ve´i od c √ n. pretpostavimo da za neki djelitelj q od s vrijedi bs/q ≡ 1 (mod p). s z Teorem 4. z Imamo n − 1 = 22 · 131 · 293. s prikladno odabranim parametrima. gdje je z D = a2 − 4b. a(n−1)/q − 1.3 Dokazivanje prostosti pomo´u eliptiˇkih krivulja c c Ukoliko broj n prode nekoliko dobrih testova prostosti (npr.

k ≡ 0 (mod 3) i k ≤ 2l + 1. Neka je l ≥ 2. c kod kojih je poznata faktorizacija dovoljno velikog faktora od n − 1. k ≥ 1. problem s primjenom Pocklingtonovog teos c rema je u tome ˇto zahtjeva (djelomiˇnu) faktorizaciju broja n−1. Teorem 4.6 (Proth). i taj postupak nastavljamo sve dok brojevi ne postanu s dovoljno mali.Teorija brojeva u kriptografiji 64 od 131. Ovaj broj s c n − 1 se moˇe shvatiti kao red grupe Z∗ (ako je n prost). Dokaz: Pretpostavimo da je 3k·2 ≡ −1 (mod n). n = k · 2l + 1. Tada je Mp = 2p − 1 prost ako i samo ako Mp dijeli vp−2 . ova metoda je vrlo prikladna u sluˇaju brojeva specijalnog oblika. c Po Pocklingtonovom teoremu zakljuˇujemo da je broj n prost. Imamo 131 − 1 = 130 = 2 · 5 · 13. Neke je niz (vk ) zadan sa v0 = 4. Neka je n prost. Teorem 4. 2 vk+1 = vk − 2. 131) = 1 slijedi da je 131 prost (uz pretpostavku da je broj 13 prost). kao ˇto smo ve´ c s c viˇe puta napomenuli. faktorizacija velikih brojeva je op´enito teˇak probs c z lem. gdje je E neka s n eliptiˇka krivulja nad Zn . Jedna ideja kako z n rijeˇiti ovaj problem je zamjena grupe Z∗ s grupom E(Zn ). Tada iz 2130 ≡ 1 (mod 131) i (210 − 1. c Dokaˇimo sada obrat. n 3 3 Postoje metode za dokazivanje prostosti koje se zasnivaju na faktorizaciji od n + 1. Kao ˇto smo ve´ napomenuli. z s n ≡ 2 (mod 3). Naime. Budu´i da n dijeli a(n−1)/2 +1. U prethodnom primjeru smo vidjeli da primjenom Pocklingtonovog teorema pitanje o prostosti jednog broja svodimo da isto pitanje za jedan ili viˇe manjih brojeva. Spomenimo samo tzv. Tada je. No.7 (Lucas-Lehmer). zato ˇto 3 ne dijeli k. pa imamo 3k·2 l−1 l−1 n 2 3 = 3(n−1)/2 ≡ ( ) ≡ ( ) ≡ ( ) ≡ −1 (mod n). Neka je p neparan prost broj. l−1 Tada je broj n = k · 2l + 1 prost ako i samo ako je 3k·2 ≡ −1 (mod n). pa se moˇemo nadati da ´emo na´i eliptiˇku krivulju ˇiji c z c c c c . moramo c poznavati barem djelomiˇnu faktorizaciju broja n − 1. to je on relativno prost s a(n−1)/2 −1. a = l 3. Ipak. Tada je an−1 = 3k·2 ≡ (−1)2 ≡ 1 (mod n) i a(n−1)/2 ≡ −1 (mod n). umjesto od n − 1. Lucas-Lehmerovu metodu za dokazivanje prostosti Mersennovih brojeva. Da bi dokazali prostost broja n pomo´u Pocklingtovog teorema. kod mogu´ih redova grupe E(Zn ) imamo c c ve´u fleksibilnost. z c pa uzmimo s = 13. Stavimo s = 2l . moˇemo postupiti na isti naˇin.

√ Dokaz: Ako je n sloˇen. Neka je E eliptiˇka krivulja nad Zn . x + 1 − 2 x]. Budu´i je c 71 > (9071/4 + 1)2 . π(x + 1 − 2 x) − π(x + 1 − 2 x) > A ln x . a to ´e biti broj m z c c c iz teorema. No. odavde slijedi da je broj 907 prost (ako je poznato da je broj 71 prost). gdje je (6. c c c Teorem 4. Ako bi vrijedilo √ √ √ x . imati dovoljno veliki prost faktor. Promotrimo z eliptiˇku krivulju E nad Zp danu istom jednadˇbom kao i E. moˇe se dogoditi da neke toˇke na E(Zn ) ne´emo z c c mo´i zbrojiti jer ´e se u formuli za zbrajanje toˇaka u nazivniku pojaviti c c c broj koji nije invertibilan modulo n. U praksi je kod velikih brojeva n najproblematiˇiji dio algoritma proc nalaˇenje eliptiˇke krivulje za koju ´e red grupe E(Zn ). Da bi ocijenili kolika je vjerojatnost uspjeha pronalaˇenja odgoz varaju´e krivulje. onda ima prosti faktor p ≤ n. Dokaˇimo da je broj n = 907 prost. Naˇalost. Neka je P = (819. mo´i ´emo mu na´i netrivijalni faktor tako c z s c c c da izraˇunamo najve´i zajedniˇki djelitelj tog nazivnika i broja n. Stoga je (m . promatrat ´mo eliptiˇke krivulje nad prstenom Zn . Stoviˇe. to nam ne´e biti problem jer ´e to c c ˇ znaˇiti da je n sloˇen. trebali bi znati neˇto o distribuciji prostih brojeva u inc s √ √ tevalu oblika [x + 1 − 2 x. Jedna je mogu´nost biranje c krivulja na sluˇajan naˇin. Budu´i da e c c n ne mora biti prost. Neka je m prirodan broj koji ima prosti dana jednadˇbom y z faktor q > (n1/4 + 1)2 .8. Dakle. Neka je m c z red grupe E (Zp ). Ideju o koriˇtenju eliptiˇkih krivulja za dokazic s c vanje prostosti su uveli Goldwasser i Killian 1986. q) = 1.2. No. n) = 1 i n > 1. Tada je [71]P = O. o tome postoje samo z (nedokazane) hipoteze. z Neka je E eliptiˇka krivulja zadana jednadˇbom y 2 = x3 + 10x − 2 c z nad Zn . Primjer 4. Neka je P ∈ E (Zp ) toˇka dobivena iz P redukcijom koordinata modulo p. Tada c je po uvjetu teorema [m/q]P = O. godine. s druge strane imamo [m/q]P = [uq · m ]P = [um]P = [u]([m]P ) = O.Teorija brojeva u kriptografiji 65 ´e red biti lako faktorizirati. Po Hasseovom teoremu je √ √ m ≤ p + 1 + p = ( p + 1)2 ≤ (n1/4 + 1)2 < q. 784) i q = 71. pa postoji u ∈ Z takav da je uq ≡ 1 (mod m ). q i [m/q]P = O. Ako postoji toˇka P ∈ E(Z) takva da je c [m]P = O onda je broj n prost. pa raˇunanje njihovih redova sa Schoofovim alc c c goritmom. c 2 = x3 + ax + b.

Kad pronademo c red koji nas zadovoljava.Teorija brojeva u kriptografiji 66 za neku konstantu A (ˇto je hipoteza motivirana teoremom o prostim brojes vima). i AKS algoritam se zasniva na Malom Fermatovom teoremu. pa vrijedi (4. n ≥ 2 i (a. te vidjeti imaju li dovoljno veliki prosti faktor. n ∈ Z. c s c Lema 4. ove brojeve moˇemo efikasno z izraˇunati. Neka je a ∈ Z. polaziˇte mu je sljede´a lema. predloˇili jednu varijantu dokazivanja prostosti z pomo´u eliptiˇkih krivulja. za koju se danas smatra da je najefikasnija u c c praksi. Prije toga bio je poznat Adleman-Pomerance-Rumelyjev algoritam ˇija c c ln ln ln n ). onda samu krivulju konstruiramo koriste´i teoriju c kompleksnog mnoˇenja. neka je k najve´a potencija od q koja dijeli n. onda bi oˇekivani broj operacija u Goldwasser-Killianovom algoritmu c bio O(ln10 n).9. ˇime su rijeˇili dugogodiˇnji otvoreni probc s s lem. Neka je q neki prosti faktor od n i z neka q k n.4) tj. Kayal i Saxena objavili su prvi polinomijalni algoritam za dokazivanje prostosti.4). Promotrimo c . onda su mogu´i rez c c dovi od E nad Zp brojevi p + 1 ± x. Tada je broj n prost ako i samo ako vrijedi (X + a)n ≡ X n + a (mod n). (4. x + x3/4 ] moˇe dokazati da mu z je oˇekivani broj operacija polinomijan. i ≡ 0 (mod n) i a Pretpostavimo sada da je n sloˇen. Dakle. Toˇnije. j-invarijante. tj. eliptiˇke krivulje√ kompleksnim c s mnoˇenjem s pripadnim imaginarnim kvadratnim poljem Q( −d). c Atkin i Morain su 1993. z 4. akko su odgovaraju´i koeficijenti polinoma na lijevoj i desnoj strani konc gruencije (4. predloˇili algoritam koji umjesto eliptiˇkih krivulja koristi Jacobijane z c hipereliptiˇkih krivulja. Pomo´u te metode se danas moˇe efikasno dokazati prostost brojeva c z s oko 1000 znamenaka. Metoda koristi tzv. a za koji se koriˇtenjem poznatih rezultata o disc s tribuciji prostih brojeva u intervalu oblika [x. dakle ”skoro polinomijalna”. Adleman i Huang su 1992. Ako je n prost.4 Polinomijalni AKS algoritam za dokazivanje prostosti Godine 2002. dokazali su da problem odluke ”Je li broj n prost?” pripada klasi P. Mogli bi re´i da je interval iz Hasseovog teorema dovoljno c velik za praksu. ali ne i za trenutno stanje teorije. onda je c i n n − a ≡ 0 (mod n). Kao i ve´ina alje sloˇenost O((ln n) z c goritama za testiranje ili dokazivanje prostosti. Za takve z krivulje E vrijedi da ako je 4p = x2 + dy 2 (podsjetimo se da se ovakav prikaz moˇe dobiti pomo´u Cornacchia-Smithovog algoritma). dok je slobodni ˇlan jednak an − a.4) kongruentni modulo n. Dokaz: Za 0 < i < n je koeficijent od X i u polinomu ((X +a)n −(X n −a)) jednak n an−1 . Agrawal. n) = 1. Dakle. posebno tzv.

onda n mora biti potencija prostog broja.5) zadovoljeno za nekoliko a-ova. Zakljuˇujemo da koeficijent c q q nije djeljiv sa q k . log2 n .9 je jasno da ako je n prost. Jednostavan naˇin za reduciranje broja koeficijenata koje treba c izraˇunati jest da se obje strane kongruencije (4. Iz Leme 4.5) vrijedi za sve a i r. n)) znaˇi da je f (X) = g(X) c u prstenu Zn [X]/(h(X))). Najprije trebamo testirati da s z li je n k-ta potencija nekog prirodnog broja. za k = 2. pa stoga nije kongruentan 0 modulo n. c Recimo neˇto o sloˇenosti AKS algoritma. n) < n za neki a ≤ r) then return n je sloˇen z if (n ≤ r) then return n je prost for (1 ≤ a ≤ 2 ϕ(r) ln n ) { if ((X + a)n ≡ X n + a (mod X r − 1. Na taj s c c 4 naˇin se ovaj test moˇe obaviti u O(ln n) operacija.5) Ovdje nam oznaka f (X) ≡ g(X) (mod h(X). . (4. . . mora biti prost. AKS algoritam: if (n je potencija prirodnog broja) then return n je sloˇen z Nadi r takav da je or (n) > 4 ln2 n if (1 < (a.4) reduciraju modulo X r −1. Pokazuje se da vrijedi i djelomiˇni obrat. .4). onda (4. Dakle. tj. ve´ samo recimo c c da dokaz koristi svojstva ciklotomskih polinoma (korijeni su im primitivni korijeni iz jedinice) nad konaˇnim poljima. n).Teorija brojeva u kriptografiji 67 binomni koeficijent n q = n(n − 1) · · · (n − q + 1) . Nadalje je (q. 2. kao ˇto smo ve´ bili pokazali za sluˇaj k = 2. an−q ) = 1. 4. c z Za sloˇenost preostalog dijela algoritma. To ne´emo dokazivati. 3. Za svaku konkretnu potenciju k to se moˇe efikasno napraviti modifikacijom z Newtonove metode. . c za prikladno odabrani mali broj r. return n je prost Za dokazati korektnost algoritma. da za prikladno odabran r vrijedi c da ako je (4. koraku. n)) then return n je sloˇen } z 6. 3. treba pokazati da broj n koji prode sve testove u 5. pa se na taj naˇin dobiva polinomijalni algoritam za c dokazivanje prostosti. Pokazuje se da se i broj a-ova i veliˇina od r mogu ograniˇiti c c s polinomom u ln n. provjerava se vrijedi li (X + a)n ≡ X n + a (mod X r − 1. od X Doslovna primjena prethodne leme ne´e dati efikasan algoritam za dokazic vanje prostosti jer bi trebali izraˇunati n koeficijenata na lijevoj strani c od (4. 1 · 2···q Vidimo da q k−1 n . kljuˇna je polinomijalna ocjena z c za veliˇinu najmanjeg broja r takvog da za red od n modulo n vrijedi or (n) > c 1. 5.

n]. . Sa [a1 . . Dokaz: Za 1 ≤ m ≤ n promotrimo integral 1 1 n−m I(m. za svaki m = 1. . am ] oznaˇavat z c c ´emo najmanji zajedniˇki viˇekratnik brojeva a1 . n) = n . 2. 16 ln5 n ] ≤ 2 16 ln5 n . . . dokazali smo da je n d2n+1 ≥ n · 22n . . S druge strane. . 2. m m dijeli dn . n 2n 2n i=0 i Budu´i da je 2n najve´i pribrojnik u razvoju (1 + 1)2n = c c n da je (2n + 1) 2n ≥ 22n . r2 . rt manji od c s 5 2 16 ln n . .Teorija brojeva u kriptografiji 68 4 ln2 n. . . Najprije dokaˇimo jedan pomo´ni rezultat. . n) cijeli broj. Lema 4. am . . n) = 0 x n−m m−1 (1 − x) n−m dx = 0 r=0 n−m (−1)r xm+r−1 r = r=0 (−1)r n−m 1 . m+r r Odavde je jasno da je dn · I(m. . Tada za n ≥ 7 vrijedi dn ≥ 2n . Posebno. dok n 2n dijeli d2n . Zan n kljuˇujemo da n(2n + 1) 2n dijeli d2n+1 . .10. . Dokaz: Neka su r1 . .10 je [1. . Postoji r ≤ 16 ln5 n takav da je or (n) > 4 ln2 n. c c s Lema 4. rt svi brojevi za koje je or (n) ≤ 4 ln2 n. . n. pa stoga dijeli i d2n+1 . (n + 1) 2n+1 = n+1 (2n + 1) 2n dijeli d2n+1 . . . pa je c n d2n+1 ≥ n(2n + 1) 2n . 2. Dakle. . No. i (ni − 1) < n i=1 < n10 ln 4 n < 216 ln 5 n . Kako je najmanji zajedniˇki viˇekratnik brojeva r1 . . . . parcijalnom integracijom se dobije 1 I(m. a za n ≥ 4 dobivamo d2n+2 ≥ d2n+1 ≥ 22n+2 . m m n Dakle. . zakljuˇujemo da postoji prirodan broj r ≤ 16 ln5 n takav da c je or (n) > 4 ln2 n. slijedi Odavde za n ≥ 2 dobivamo d2n+1 ≥ 22n+1 .11. . . Neka je dn = [1. Prema Lemi 4. . Svaki od ovih brojeva dijeli produkt 4 ln2 n 4 ln2 n i=1 4 ln2 n i=1 (ni − 1). r2 . . .

Ako se joˇ k tome. dobivamo da je ukupan broj operacija u 5. r puta raˇunamo najve´i zajedniˇki djelitelj dvaju brojeva. c koraku. c c c Sloˇenst ovog dijela je O(r ln2 n) = O(ln7 n).5 n). koraka je O(ln n).5+ε n). koraku. a takoder i u cijelom algoritmu O(ln16. Kako treba provjeriti najviˇe O(ln n) r-ova. dobiva se ocjena O(ln7. provjeravamo relaciju z z nk ≡ 1 (mod r) za k ≤ 4 ln2 n. z s koja se moˇe dobiti koriˇtenjem preciznijih rezultata o distribuciji prostih z s brojeva (umjesto Leme 4. Sloˇenost 4. s s z koriste algoritmi za brzo mnoˇenje. Svaka provjera zahtijeva O(ln n) mnoˇenja polinoma stupnja r s koeficijenz tima veliˇine O(ln n).11 moˇemo ocijeniti broj operacija potrebnih za nalac z ˇenje broja r s traˇenim svojstvom. to 2. Konaˇno. Za konkretni r. koraku imamo 2 ϕ(r) ln n ) = O( r ln n) = O(ln3. Stoga se svaka provjera moˇe izvrˇiti u O(r2 ln3 n) = c z s 13 O(ln n) operacija. z z √ U 5.10). z U 3. Ova ocjena se moˇe poboljˇati preciznijom analizom gornje ograde za r. Za to nam treba O(ln2 n) mnoˇenja modulo z 5 r. korak algoritma ima s sloˇenost O(ln7+ε n). umjesto ”ˇkolskog mnoˇenja”.Teorija brojeva u kriptografiji 69 Koriste´i Lemu 4. z .5 n) provjera.

13. Kod ove ocjene smo pret√ postavili da nam je dostupna tablica svih prostih brojeva ≤ n. 19. dobro ju je koristiti u kombinaciji s boljim metodama faktorizacije.1 Pollardova ρ metoda Ako prirodan broj n ne prode neki od testova prostosti. s c z c Metode faktorizacije moˇemo podijeliti na op´e i specijalne. ili samo s neparnim brojevima koji zadovoljavaju odredene kongruencije (npr. pa je sloˇenost ove metode O( n ln n). ti nam testovi uglavnom ne daju niti jedan z netrivijalni faktor od n. godine. Od tog presc likavanja se traˇi odredena ”sluˇajnost”. Medutim. onda znamo da je n sigurno sloˇen. za uklanjanje eventualnih malih faktora od n. 3. U svakom sluˇaju. n). te sa svim neparnim brojevima. 5 (mod 6) ili ≡ 1. Jedna od najjednostavnijih metoda faktorizacije ˇija je sloˇenost bolja c z √ z od O( n) je tzv. 29 (mod 30)). Odredimo p kao (xi − xj . Niz (xi ) se konstruira pomo´u preslikavanja f : Zn → Zn . To se smatra teˇkim problemom i na njegovoj z s teˇko´i su zasnovani neki od najvaˇnijih kriptosustava s javnim kljuˇem. j takve da je xi ≡ xj (mod p).Poglavlje 5 Metode faktorizacije 5. 7. Naivna metoda faktorizacije broja n jest dijeljenje broja n sa svim pros√ tim brojevima ≤ n. dok kod specic c jalnih ovisi takoder i o svojstvima faktora od n. 17. Pollardova ρ metoda iz 1975. Nademo i. Broj potrebnih dijeljenja je u najloˇijem sluˇaju oko s c √ √ 2 n z ln n . Pokazuje se da zbog toga f ne smije z c 70 . ≡ 1. dijelili bi s 2. 23. 11. Ideja za nalaˇenje faktora p broja n je sljede´a: c 1. Kod op´ih z c c metoda oˇekivani broj operacija ovisi samo o veliˇini broja n. Medutim. U protivnom. Stoga se postavlja pitanje kako na´i netrivijalni c faktor velikog sloˇenog broja. ova metoda je vrlo c neefikasna za velike n-ove. Konstruiramo niz (xi ) cijelih brojeva koji je periodiˇan modulo p. c 2.

Teorija brojeva u kriptografiji

71

biti linearni polinom. No, kvadratni polinomi, npr. f (x) = x2 + 1, su sasvim dobar izbor. Nadalje, izaberemo vrijednost od x0 (npr. x0 = 2), te raˇunamo c iterirane vrijednosti funkcije f : x1 = f (x0 ), x2 = f (f (x0 )), ....

Op´enito, xi+1 = f (xi ). Jasno je da u beskonaˇnom nizu x0 , x1 , x2 , . . ., ˇiji elc c c ementi poprimaju samo konaˇno mnogo vrijednosti, mora do´i do ponavljac c nja. No, iz definicije niza slijedi da ako je xi = xj , onda je xi+k = xj+k za k = 0, 1, 2, . . .. Stoga je niz (xi ) periodiˇan poˇevˇi od nekog mjesta. Odavde c c s dolazi naziv ρ metoda, jer ”rep” od ρ ilustrira pretperiod, a ”okrugli dio” od ρ ilustrira ˇisto periodiˇni dio niza. c c Postavlja se pitanje kada moˇemo oˇekivati prvo ponavljaanje u nizu z c (xi ). Pitanje moˇemo preformulirati tako da pitamo koliko velik treba biti z broj k da bi izmedu sluˇajno izabranih k cijelih brojeva postojala dva broja c koja su medusobno kongruentna modulo p, s vjerojatnoˇ´u ve´om od 1/2. sc c Vjerojatnost da je k sluˇajno izabranih brojeva nekongruentno modulo p c jednaka je p−1 p p−2 p−k+1 ··· p p 1 2 k−1 1− ··· 1 − p p p k2 k k−1 − ≈ 1− ≈ e 2p . 2p = 1−

2 √ √ −k Iz uvjeta da je e 2p ≈ 1/2, dobivamo k ≈ 2p ln 2 ≈ 1.18 p. Ova ˇinjenica, c da je oˇekivani broj koraka puno manji od p, naziva se ”paradoks rodendana”. c Originalni paradoks rodendana kaˇe da u druˇtvu od barem 23 osobe, s z s vjerojatnoˇ´u ve´om od 1/2, postoje dvije osobe koje imaju rodendan istog sc c dana. Ako bismo faktor od n traˇili tako da raˇunamo (xi − xj , n) za sve i, j, z c to bi bilo vrlo neefikasno. Puno efikasnije je raˇunati samo (x2i − xi , n). c Naime, ako je xi ≡ xj (mod p), onda za t = j − i, m = t · j vrijedi t xm ≡ xm+t ≡ xm+2t ≡ · · · ≡ xm+m (mod p). Ovdje je vaˇno uoˇiti da za z c raˇunanje yi = x2i ne treba raˇunati meduvrijednosti xi+1 , xi+2 , . . . , x2i−1 . c c Vrijednosti xi , x2i se raˇunaju simultano: c

xi = f (xi−1 ) mod n, yi = f (f (yi−1 )) mod n. Primjer 5.1. Faktorizirajmo broj n = 1387. Uzmimo f (x) = x2 − 1, x0 = 2. Imamo: x1 = 22 − 1 = 3, x2 = 8, x3 = 63, y1 = 32 − 1 = 8,
2

(y1 − x1 , n) = (−5, 1387) = 1;

y2 = f (63) = 1194,

(y2 − x2 , n) = (1186, 1387) = 1;

y3 = f (1194 − 1 mod n) = f (11862 − 1 mod n) = 177,

(y3 − x3 , n) = (144, 1387) = 19.

Teorija brojeva u kriptografiji

72

Dakle, 19 je djelitelj od 1387. Zaista, 1387 = 19 · 73. Oˇekivani broj operacija za nalaˇenje faktora p broja n Pollardovom ρ c z √ √ 2 metodom je O( p ln n). U najloˇijem sluˇaju, kada je p = O( n), dobivamo s c sloˇenost O(n1/4 ln2 n), ˇto je znatno bolje od obiˇnog dijeljenja, ali je joˇ z s c s uvijek eksponencijalna sloˇenost. Ipak, vaˇno je uoˇiti da sloˇenost algoritma z z c z ovisi o najmanjem faktoru od n. Stoga se moˇe re´i da ova metoda spada u z c specijalne metode. Malom modifikacijom ove metode su Brent i Pollard 1980. godine uspjeli faktorizirati osmi Fermatov broj 28 + 1 = 1238926361552897 · p63 , gdje je p63 prost broj sa 63 znamenke. Spomenimo joˇ da se vrlo sliˇna ideja koristi i u ρ algoritmu za raˇunanje s c c diskretnog logaritma, koji je jedan od najboljih poznatih algoritama za problem diskretnoj logaritma u op´oj konaˇnoj abelovoj grupi. c c

5.2

Pollardova p − 1 metoda

Pollardova p − 1 metoda iz 1974. godine spada u specijalne metode faktorizacije. Njezino polaziˇte je ponovo Mali Fermatov teorem. Neka je n sloˇen s z broj koji ˇelimo faktorizirati, te neka je p neki njegov prosti faktor. Tada je z ˇ ap−1 ≡ 1 (mod p) za (a, p) = 1. Stoviˇe, vrijedi am ≡ 1 (mod p) za svaki s viˇekratnik od p − 1. Ako nademo m, onda nam (am − 1, n) daje faktor s (nadamo se netrivijalni) od n. No, pitanje je kako na´i viˇekratnik od p − 1 c s kad ne znamo p. To moˇemo efikasno napraviti u sluˇaju kada broj p − 1 ima z c samo male proste faktore. Za prirodan broj kaˇemo da je B-gladak ako su z mu svi prosti faktori ≤ B. Ako je broj p − 1 B-gladak, onda za m moˇemo z uzeti najmanji zajedniˇki viˇekratnik brojeva 1, 2, . . . , B. Za ovako odabrani c s m, broj operacija za raˇunanje am (mod n) je O(B ln B ln2 n + ln3 n). U nac jgorem sluˇaju, a to je kada je broj p−1 prost, ova metoda nije niˇta bolja c s 2 od obiˇnog dijeljenja. c Primjer 5.2. Neka je n = 540143. Izaberimo B = 8 i a = 2. Tada je m = 23 · 3 · 5 · 7 = 840. Imamo da je 2840 mod n = 53047 i (53046, n) = 421. Zaista, n = 421 · 1283. Pomo´u p−1 metode je Baillie 1980. godine naˇao 25-znamenkasti faktor c s Mersennovog broja 2257 − 1. Uspjeh p−1 metode direktno ovisi o glatko´i broja p−1. Postoje varijante c ove metode koje koriste glatko´u brojeva p + 1, p2 + p + 1, p2 + 1 ili p2 − p + 1. c No, najvaˇnija modifikacija p − 1 metode je Lenstrina metoda faktorizacije z pomo´u eliptiˇkih krivulja. U njoj se, ponovo, grupa F∗ reda p−1 zamjenjuje c c p

Teorija brojeva u kriptografiji

73

√ √ grupom E(Fp ), ˇiji red varira unutar intervala [p + 1 − 2 p, p + 1 + 2 p], c pa se moˇemo nadati da ´emo prona´i eliptiˇku krivulju nad Fp dovoljno z c c c glatkog reda.

5.3

Faktorizacija pomo´u eliptiˇkih krivulja c c

Godine 1987. H. W. Lenstra je predloˇio modifikaciju Pollardove p−1 metode z koja koristi eliptiˇke krivulje. Kao rezultat dobio je subeksponencijalni alc goritam koji i danas predstavlja jedan od najefikasnijih algoritama za faktorizaciju. Sliˇno kao kod metode dokazivanja prostosti pomo´u eliptiˇkih krivulja, c c c i ovdje ´emo raditi s eliptiˇkim krivuljama nad prstenom Zn . Dok je kod c c dokazivanja prostosti postojala (mala) mogu´nosti da je n sloˇen (pa da Zn c z nije polje), ovdje ´emo od poˇetka biti sigurni da je n sloˇen. Pretpostavit c c z ´emo da je (n, 6) = 1, te ´emo promatrati eliptiˇke krivulje oblika c c c Ea,b : y 2 = x3 + ab + b,

gdje je (4a3 +27b2 , n) = 1. Kada je n prost, onda na eliptiˇkoj krivulji postoji c samo jedna projektivna toˇka koja ne odgovara nekoj afinoj toˇki (toˇka u c c c beskonaˇnosti). U sluˇaju kada je n sloˇen, takvih toˇaka moˇe biti viˇe. c c z c z s Opiˇimo sada osnovne korake u Lenstrinom algoritmu za faktorizaciju s (ECM – Elliptic Curve Method). 1. Izbor eliptiˇke krivulje. c Postoji viˇe naˇina za izbor odgovaraju´e eliptiˇke krivulje. Na primjer, s c c c moˇemo izabrati sluˇajno elemente a, x, y ∈ Zn , pa izraˇunati b = z c c (y 2 − x3 − ax) mod n. Neka je g = (4a3 + 27b2 , n). Ako je 1 < g < n, onda smo naˇli netrivijalni faktor od n. Ako je g = n, onda biramo s nove a, x, y. Ako je g = 1, onda smo naˇli eliptiˇku krivulju Ea,b nad s c Zn i toˇku P = (x, y) na njoj. c 2. Neka je k najmanji zajedniˇki viˇekratnik brojeva 1, 2, . . . , B, za prikc s ladno odabranu granicu B. U praksi se obiˇno uzima najprije B = c 10000, a potom se granica po potrebi pove´ava. c 3. Raˇunamo [k]P ∈ Ea,b (Zn ) koriste´i formule za zbrajanje toˇaka: c c c (x3 , y3 ) = (λ2 − x1 − x2 mod n, λ(x1 − x3 ) − y1 mod n), gdje je λ = (3x2 + a) · (2y1 )−1 mod n ako su toˇke jednake, a λ = c 1 (y1 − y2 )(x1 − x2 )−1 mod n, inaˇe. c 4. Ako se u raˇunanju [k]P dogodi da neki zbroj toˇaka ne moˇemo c c z −1 jer d nema inverz modizraˇunati zato ˇto ne moˇemo izraˇunati d c s z c ulo n, onda izraˇunamo g = (d, n). Ako je g = n, onda smo naˇli c s netrivijalni faktor od n.

Teorija brojeva u kriptografiji

74

5. U sluˇaju neuspjeha, moˇemo izabrati novu eliptiˇku krivulju ili pove´ti c z c a granicu B. Primjer 5.3. Faktorizirati broj n = 187. Neka je B = 3, pa je k = [1, 2, 3] = 6. Izaberimo eliptiˇku krivulju c y 2 = x3 + x + 25 i toˇku na njoj P = (0, 5). Raˇunamo [6]P = [2](P + [2]P ). c c Najprije raˇunamo [2]P . Pripadni λ je 10−1 = 131 mod 187, pa dobivamo c [2]P = (144, 18). Zatim raˇunamo [3]P = P +[2]P . Pripadni λ je 13·144−1 = c 178 mod 187, pa je [3]P = (124, 176). Konaˇno, raˇunamo [6]P = [2]([3]P ). c c −1 . Kod raˇunanja inverza od 165 modulo 187, dobiPripadni λ je 127 · 165 c vamo da taj inverz ne postoji jer je (165, 187) = 11. Odavde zakljuˇujemo c da je 11 faktor od 187. Zaista, 187 = 11 · 17. O ˇemu ovisi uspjeh ovog algoritma? Sliˇno kao kod p−1 metode, i ovdje c c bi k trebao biti viˇekratnik reda pripadne grupe. U ovom sluˇaju k bi trebao s c biti viˇekratnik od #E(Zp ), gdje je p neki prosti faktor od n. Zaista, u tom s sluˇaju ´e kod raˇunanja [k]P pripadni nazivnik biti djeljiv s p, pa ne´e biti c c c c invertibilan modulo n. Naime, u E(Zp ) ´e vrijediti da je [k]P = O. c Kod ocjene sloˇenosti ovog algoritma kljuˇno je pitanje kako optimalno z c odabrati granicu B. Uvedimo oznaku ψ(x, y) = #{1 ≤ n ≤ x : n je y-gladak}. Koriste´i ˇinjenicu da su redovi #E(Zp ) skoro uniformno distribuirani unuc c tar Hasseovog intervala, dolazimo do sljede´e ocjene za vjerojatnost uspjeha c algoritma: √ √ ψ(p + 1 + 2 p, B) − ψ(p + 1 − 2 p, B) prob(B) > c · . √ p ln p Kako je, s druge strane, broj operacija potrebnih za pokuˇaj faktorizacije s pomo´u jedne krivulje proporcionalan s B, ˇeljeli bi minimizirati vrijednost c z B/prob(B). Pokazuje se da se, koriste´i gore navedenu ocjenu za prob(B), c minimum postiˇe za z B = e( dok je sloˇenost algoritma z e(
√ √ 2+o(1)) ln p ln ln p √ √ 2/2+o(1)) ln p ln ln p

,

.

√ U najloˇijem sluˇaju (kada je p = O( n)), sloˇenost metode faktorizacije s c z √ O( ln n ln ln n) . Dakle, to je subeksponencijalni pomo´u eliptiˇkih krivulja je e c c algoritam. Iako postoje algoritmi bolje sloˇenosti (algoritam sita polja brojeva), z vaˇno svojstvo ECM je da njezina sloˇenost ovisi o najmanjem prostom z z

osnovna ideja se moˇe na´i ve´ u radovima Kraitchika. No. Zato ona nije najprikladnija za faktorizaciju RSA modula. onda je s jako mali. i ovdje je op´a c c c metoda motivirana jednom specijalnom metodom. Preciznije. stolje´a. c Neka je n sloˇen broj kojeg ˇelimo faktorizirati. Fermatova faktorizacija. van Halewyn. a t samo malo ve´i od n. tj. s = a−b .Teorija brojeva u kriptografiji 75 faktoru od n. n + 2. z pokuˇajmo na´i brojeve s i t takve da n|t2 − s2 . . a1 .. a drugi je jako blizak broju n. gdje su p i q bliski prosti brojevi. Umjesto da traˇimo brojeve s i t takve da je n = t2 −s2 . . 2a0 ]. s c 7 godine iskoristili za faktorizaciju Fermatovog broja 22 +1. pa se tu ECM moˇe koristiti kao pomo´na s c z c metoda. te nalaˇenje 49-znamenkastog faktora Mersenneovog broja 22071 − 1 z (Zimmermann. Medutim. budu´i da su je oni 1970. t0 = 1. Tada je razvoj broja n u veriˇni razlomak periz odiˇan. Takav n je tada razlika kvadrata dva √ prirodna broja.). n) netrivijalni faktori od n. c z koja se joˇ naziva i Brillhart-Morrisonova metoda. a2 . Stoga c √ √ uvrˇtavanjem za t redom t = s n + 1. koja je primjenjiva na brojeve n koji su produkti dva bliska broja.). U ovom sluˇaju ta specic jalna metoda je tzv. . Medu faktorizacijama dobivenim pomo´u ECM. Moˇemo pretpostaviti z z z √ da n nije potpun kvadrat. n) i (t−s. za koje moˇemo oˇekivati da c z c se ponaˇaju kao sluˇajni brojevi. tj. s c Ako je pritom s ≡ t (mod n).4 Metoda veriˇnog razlomka z Kao i kod metode faktorizacije pomo´u eliptiˇkih krivulja. ako je n = ab. brojeva oblika n = pq. onda su (s+t. 1997. Naime. unutar tih algoritma potrebno je faktorizirati neke pomo´ne brojeve. ECM ˇesto daje bolje rezultate od ostalih c c metoda. spomenimo nalaˇenje c z 15 33-znamenkastog faktora Fermatovog broja 22 +1 (Crandall. moˇemo prona´i t. gdje je t = a+b . 1998.. 5. . . Prva takva metoda koju ´emo upoznati jest metoda veriˇnog razlomka. z Mnoge moderne metode faktorizacije koriste sljede´u modifikaciju Ferc matove faktorizacije. Lehmera i Powersa 20-tih i 30-tih z c c godina 20. Veriˇni razlomak se moˇe izraˇunati pomo´u sljede´eg algoritma: z z c c c √ a0 = n . ar−1 . c √ n = [a0 . da je s2 ≡ t2 (mod n). od kojih je jedan jako mali. pa 2 √ 2 ako su a i b bliski. . onda je n = t2 − s2 . a z c time i traˇenu faktorizaciju. s0 = 0. jer takvi brojevi obiˇno imaju neki prosti faktor koji je znatno manji c √ ˇ od n. kod faktorizacije ”sluˇajnih” brojeva. Cak i kod primjene asimptotski boljih metoda.

i Dakle. Raˇunamo: c i si ti ai pi 0 0 1 95 95 1 95 48 3 286 2 49 139 1 381 3 90 7 26 1119 4 92 87 2 2619 5 82 27 6 16833 Oˇito je w0 w4 = (−1)1 t1 (−1)5 t5 = 362 . Izraˇunamo: (3834 + 36. Faktorizirati broj n = 9073. te svih prostih brojeva ≤ B1 . Lanczosovom metodom) pronademo njihovu netrivijalnu linearnu kombinaciju koja daje nul-vektor. gdje je B1 prikladno odabrana granica. . Gaussovom eliminacijom (ili. konvergente veriˇnog razlomka zadovoljavaju kongruencije oblika z p2 ≡ wi i (mod n). tzv. gore opisanu ideju treba kombinirati s koriˇtenjem s 2 . gdje je wi relativno mali. npr.Teorija brojeva u kriptografiji 76 n − s2 a0 + si i+1 . . oni su linearno zavisni. Tada vrijedi √ 2 p2 − nqi = (−1)i+1 · ti+1 i 0 < ti < 2 n. recimo wk1 · · · wkm = w2 . ai ]. ti+1 = Neka je pi qi = [a0 . Recimo da s B ima m elemenata. Zaista. onda smo pronaˇli ˇeljenu kons z gruenciju (pk1 · · · pkm )2 ≡ w2 (mod n). . joˇ bolje. pogledamo odgovaraju´e vektore parnosti eksponenata. Budu´i da tih vektora ima viˇe od dimenzije pripadnog vektorskog prosc s 2 tora. Stoga je c p2 p2 = (95 · 2619)2 ≡ 38342 ≡ 362 0 4 (mod 9073). 9073 = 43 · 211. Dakle. Ako uspijemo prona´i neke wi -ove ˇiji je produkt c c potpun kvadrat. . nekom s od specijalnih metoda za ”rijetke” matrice. 9073) = 43. faktorske baze za nalaˇenje relacija oblika wk1 · · · wkm = w z formiramo faktorsku bazu B koja se sastoji od broja −1.4. . n) dati netrivijalni faktor z c od n. Tada. To su vektori u c Zm . ai = ti ti za i ≥ 0. si+1 = ai ti − si . te se moˇemo nadati da ´e nam (pk1 · · · pkm + w. ai . nakon ˇto uspijemo faktorizirati barem m + 1 wi s ova. Primjer 5. c Da bi metoda veriˇnog razlomka postala stvarno relativno efikasna (subz eksponencijalna) metoda. Sada svaki od gore dobivenih wi -ova pokuˇamo prikazati kao produkt elemenata iz B.

Glavna ideja ove metode je da umjesto da za svaki s ∈ S djelje´i ga s c prostim brojevima p ∈ B provjeravamo da li je B-broj. ˇ Sto se tiˇe sloˇenosti metode veriˇnog razlomka. 0. i c z z c√ ovdje se pokazuje da je optimalan izbor granice B1 ≈ e ln n ln ln n . umjesto razvoja √ √ n. predloˇili su koriˇtenje razvoja broja kn za neki mali broj k. za neki prikladno odabrani A. Ni = p1 p2 · · · pi−1 + 1.Teorija brojeva u kriptografiji 77 Drugim rijeˇima. s pa bi za B = {−1. 3} pripadni vektori parnosti bili [1. p U naˇem gornjem primjeru imamo: w0 = (−1)1 · 24 · 31 . gdje je pj najve´i prosti faktor od Nj . mi uzimamo jedan . 0. 1] i [1. ve´ se c zasnivaju na nekim nedokazanim ”heuristiˇkim” slutnjama. 0]. oni su koristili k = 257. tj. nademo podskup wi -ova takav da je suma pripadnih vekc tora parnosti parna. godine. ˇija c je suma [0. No. Naime. to znaˇi da je produkt tih wi -ova potpun kvadrat. c 7 5. sliˇno kao kod ECM. w4 = (−1)1 · 33 . c Kod svoje poznate faktorizacije broja 22 + 1. ove ocjene nisu sasvim strogo dokazane. za razliku od ECM. Ovdje je s N11 = N11 /1307. Ovdje za faktorsku bazu B uzimamo B = {p : p neparan prost broj. onda p|pi i kvadratni ostatak modulo n. Zato se iz faktorske baze mogu izbaciti svi oni p-ovi za koje je ( n ) = −1. Naime. p ≤ B. p gdje je B broj odabran na neki prikladan naˇin. Brillhart i Morrison su koristili jednu modifikaciju gore opisane metode. Ipak. √ √ S = {t2 − n : n +1≤t≤ n + A}. ako p|wi . spomes z nimo joˇ faktorizaciju 56-znamenkastog broja N11 (Naur. a brojevi Ni se definiraju rekurzivno s p1 = 2. 1]. 0. ˇto daje s ocjenu za oˇekivani broj operacija c O e( √ √ 2+ε) ln n ln ln n . otprilike pola prostih brojeva se moˇe z z 2 − nq 2 . n = 1} ∪ {2}. 1982). c Od drugih uspjeˇnih faktorizacija metodom veriˇnih razlomaka.5 Metoda kvadratnog sita Kvadratno sito je varijanta metode faktorske baze koju je uveo Pomerance 1982. pa je p izostaviti iz faktorske baze B. U ovom konkretnom sluˇaju. Skup S u kojem traˇimo c z B-brojeve (to su oni koji su djeljivi samo s prostim brojevima iz B) bit ´e c isti kao u Fermatovoj faktorizaciji. Ova z s √ modifikacija je posebno korisna ako razvoj od n ima mali period. c Kod metode veriˇnog razlomka. 2.

Ako je n ≡ 1 (mod 8). u stupcu pod p = 2 stavljamo c 1 kod svih neparnih brojeva izmedu 1021 i 1520. 47}. Za neparan prost broj p takav da je ( n ) = 1. Algoritam kvadratnog sita: Neka je n neparan sloˇen broj. onda stavimo 1 kod svih u kojima je t neparan. Neka su t1 i t2 dva rjeˇenja od t2 ≡ n (mod pβ ) takva da je t2 ≡ −t1 (mod pβ ) (t1 i s t2 nisu nuˇno iz S). napravimo listu brojeva t2 − n (i stavimo ih u jedan stupac). 11. . c z t2 − n 7. pogledamo listu iz toˇke 2. takav da je t2 ≡ n (mod pβ ). t4 modulo s c c s 2β ). . 2.. . . s osim onih koji su postali jednaki 1 nakon dijeljenja sa svim potencijama prostih brojeva p ≤ B. . c p 9. Ostatak postupka je isti kao kod op´e metode faktorske baze. a ostali stupci ´e odgovarati vrijednostima p ∈ B za koje je ( n ) = 1. Potom napravimo sve isto s t2 umjesto t1 . 3. z 1..Teorija brojeva u kriptografiji 78 po jedan p ∈ B i ispitujemo djeljivost s p za sve s ∈ S. Odaberimo brojeve B i A. Odavde dolazi i naziv ”sito”. Za svaki prost broj p ≤ B. t2 . promjenimo 1 u 2 kod onih kod kojih p2 |t − t1 . √ √ √ 2. s 19. ili 2 u 3. te podijelimo t2 − n s 2. 8. stavimo 1 ili promjenimo 1 u 2. U stupcu ispod p = 2. t3 . n + A. c √ Primjer 5. . odbacimo sve t2 − n. Budu´i da je n ≡ 1 (mod 8). c 6. 43. 17. 3. Uzmimo B = 50 i A = 500. U stupcu ispod p stavimo c c 1 kod svih vrijednosti od t2 −n kod kojih p|t−t1 . Svaki put kad u toˇki 5. Dobit ´emo tako tablicu. promjenimo 2 u 3 ako p3 |t − t1 .. ako n ≡ 1 (mod 8). Ako nije. Naˇa faktorska baza se sastoji od 8 prostih brojeva {2. po analogiji s Eratostenovim sitom za generiranje tablice prostih brojeva. n +1≤t≤ n + A. izbacimo p p iz faktorske baze. . sve do pβ .. Ovdje je √ n = 1020. 4. Neka je n = 1042387. Kad zavrˇimo sa svim prostim brojevima p ≤ B. Neka je β najve´i prirodan broj za kojeg t c √ √ postoji t. Za t = n + 1. Najve´i broj koji ´e se pojaviti u ovom c c stupcu bit ´e β.5. podijelimo odgovaraju´i t2 − n sa p i zabiljeˇimo rezultat. 23. oba reda veliˇine e ln n ln ln n . Obiˇno se c c uzima da je P < A < P 2 . itd. u kojoj ´e stupac koji c c odgovara bi imati vrijednosti elemenata t2 − n iz S koji su B-brojevi. onda rjeˇavamo kongruenciju t2 ≡ n (mod 2β ) i radimo sve isto kao za s neparne p (osim ˇto ´e za β ≥ 3 biti 4 razliˇita rjeˇenja t1 . rjeˇavamo kongruenciju s p 2 ≡ n (mod pβ ) za β = 1. z 5. Za p iz toˇke 4. n + 2. ili c itd. provjerimo je li ( n ) = 1.

Modulo 27 imamo: (1+4+9t1. s ako kombiniramo peti i zadnji redak. dobivamo (1112 · 1520)2 ≡ (33 · 17 · 23 · 47)2 (mod 1042387). Jedan takav z sluˇaj nalazimo u prva tri retka.1 · 3 + t1. dobivamo sljede´u z c tablicu: t 1021 1027 1030 1061 1112 1129 1148 1175 1217 1390 1520 t2 − n 54 12342 18513 83334 194157 232254 275517 338238 438702 889713 1268013 2 1 1 1 1 1 1 3 3 1 2 1 5 3 2 2 1 2 1 11 17 19 23 43 47 2 2 1 3 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 Sada traˇimo relacije modulo 2 izmedu redaka u ovoj matrici. za 729 nemamo skokova. odakle je t1. Sada konstruiramo ”sito” za p = 3. Budu´i da je 589 < 1021. Izbacimo li sve redke za koje se t2 − n nije reducirao na 1.0 + t1.1 )2 ≡ 7 (mod 9). 27. tj. Nastavljaju´i ovaj postupak do 37 . brojevi pod kvadratom na obje strane ove kongruencije kongruz entni su 111078 modulo 1042387. skaˇemo za po s c 3 na dolje do 1021 i na gore do 1519. dobit ´emo tablicu 500 × 8 u kojoj redci odgovaraju t-ovima c izmedu 1021 i 1520. Naˇalost. 243 i 729 (u stvari.1 = 1. zadrˇimo li samo one retke za koje je t2 − n B-broj.β−1 · 3 1 (mod 3β ). tako da ne dobivamo niˇta korisno. a 37 − 589 = 1598 > t1 = (210211)3 = 589 mod 3 c 1520. Nakon s toga ponovimo sve krenuvˇi u skokove od 1112 umjesto 1318.0 = 1. dobivamo c 7 .2 = 2.2 · 3 1.Teorija brojeva u kriptografiji 79 ˇ Opisat ´emo detaljno formiranje stupca pod p = 3. Zelimo na´i rjeˇenje c c s 2 + ··· + t β−1 kongruencije t2 ≡ 1042387 t1 = t1. Medutim. te svaki put stavimo 1 u stupac i podijelimo odgovaraju´i t2 − n s 3. Moˇemo uzeti t1. . Nakon ˇto ovaj postupak primijenimo na preostalih 6 brojeva u faks torskoj bazi. 81. Krenuvˇi od 1318.j ∈ {0. t1. ve´ samo promc jenimo 5 u 6 kod 1318 i podijelimo 13182 − 1042387 joˇ jednom sa 3). odakle je t1. Modulo 9 imamo: (1 + z 3t1. Ovaj put se s zaustavljamo kod skoka za 243. Tako dobivamo c (1021 · 1027 · 1030)2 ≡ (2 · 33 · 112 · 17)2 (mod 1042387).2 )2 ≡ 25 (mod 27). 1. Tada napravimo sve isto sa skokovima c po 9. 2}. zakljuˇujemo da je β = 6 i moˇemo uzeti t1 = 589 ≡ 1318 (mod 36 ) i c z t2 = 36 − 589 = 140 (t2 ≡ 1112 (mod 35 )).

Spomenimo c c da je 1996. Drugi faktor je 701. Ovom su metodom faktorizirani brojevi RSA-130 (1996. Broj RSA-155 je u kolovozu 1999. RSA-129. godine metodom kvadratnog sita faktoriziran tzv. godine). 6478532 ≡ 4961792 odakle dobivamo netrivijalni faktor (647853 − 496179. godine faktorizirala grupa istraˇivaˇa z c pod vodstvom Hermana te Riellea. 64 9 ≈ 1. To je broj od 129 znamenaka koji je produkt dva prosta broja od 64 i 65 znamenaka. dakle. te RSA-140 i RSA-155 (1999. Oˇekivani broj operacija metodom kvadratnog sita je c √ O e log n log log n . 9 godine za faktorizaciju broja Fermatovog broja 22 + 1. .92. Metodu je prvi put upotrijebio Pollard 1990.Teorija brojeva u kriptografiji 80 (mod 1042387). Trenutno najbolja poznata metoda faktorizacije je metoda sita polja brojeva (number field sieve) koja kombinira ideje iz metode kvadratnog sita i algebarsku teoriju brojeva. Evo tog broja i njegove faktorizacije: 109417386415705274218097073220403576120037329454492059909138421314763499842889\ 34784717997257891267332497625752899781833797076537244027146743531593354333897 = 102639592829741105772054196573991675900716567808038066803341933521790711307779 · · 106603488380168454820927220360012878679207958575989291522270608237193062808643. skoro isto kao kod faktorizacije pomo´u eliptiˇkih krivulja. Kod ove metode je oˇekivani broj operacija c O ec(log n) gdje je c = 3 1/3 (log log n)2/3 . godine). 1042387) = 1487.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->