sonja puaˇc - mathos.unios.hrmdjumic/uploads/diplomski/pua02.pdf · 1 1. uvod ljudi su oduvijek...
TRANSCRIPT
Sveuciliste J.J. Strossmayera u Osijeku
Odjel za matematiku
Sonja Puac
Kongruencije i kriptografija
Diplomski rad
Osijek, 2011.
Sveuciliste J.J. Strossmayera u Osijeku
Odjel za matematiku
Sonja Puac
Kongruencije i kriptografija
Diplomski rad
Mentor: Doc. dr. sc. Ivan Matic
Osijek, 2011.
Sadrzaj
1. Uvod 1
2. Kongruencije 2
2.1. Svojstva kongruencija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Klasicna kriptografija 9
3.1. Osnovni pojmovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1. Podjela kriptosustava . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.2. Razine kriptoanalitickih napada . . . . . . . . . . . . . . . . . . 11
3.2. Povijest kriptografije . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.1. Stari vijek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.2. Srednji vijek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.3. Razdoblje 16. st. - 19. st. . . . . . . . . . . . . . . . . . . . . . . 14
3.2.4. Naprave za sifriranje . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.5. Moderna kriptografija . . . . . . . . . . . . . . . . . . . . . . . 17
3.3. Supstitucijske sifre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.1. Cezarova sifra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3.2. Afina sifra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.3. Kriptoanaliza supstitucijske sifre . . . . . . . . . . . . . . . . . 22
3.4. Vigenereova sifra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.1. Kriptoanaliza Vigenereove sifre . . . . . . . . . . . . . . . . . . 27
4. Kriptografija javnog kljuca 31
4.1. RSA kriptosustav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5. Zakljucak 35
1
1. Uvod
Ljudi su oduvijek zeljeli sigurno komunicirati, ali su bili svjesni da, putujuci
nesigurnim komunikacijskim kanalima, njihove poruke cesto mogu biti prisluskivane.
Bez obzira koji medij komunikacije koristili, prisluskivanje je tesko sprijeciti pa tko god
zeli poslati poruku treba zastiti njezin sadrzaj na neki nacin. Jedan od nacina zastite
je upotreba kriptografije, znanstvene discipline koja se bavi proucavanjem metoda za
slanje poruka u takvom obliku da ih samo onaj kome su namijenjene moze procitati.
Cilj ovog rada je prikazati primjenu kongruencija u kriptografiji pa su u drugom
poglavlju dana osnovna svojstva kongruencija. U trecem poglavlju govorimo opcenito
o kriptografiji kao znanstvenoj disciplini, iznosimo povijesne cinjenice o kriptografiji i
napravama koje su se koristile za sifriranje. Takoder je opisana klasicna kriptografija
te su obradene specijalni slucajevi supstitucijske sifre kao i Vigenereova sifra. Na pri-
mjerima je pokazano sifriranje i desifriranje pomocu ovih sifri. U cetvrtom poglavlju
je opisana kriptografija javnog kljuca pomocu RSA kriptosustava. Na primjeru je
pokazano sifriranje ovim kriptosustavom.
2
2. Kongruencije
Teorija kongruencija bavi se rjesavanjem razlicitih problema vezanih uz djeljivosti
brojeva. Pojam kongruencije prvi je uveo 1801. godine Carl Friedrich Gauss1 u svojem
djelu Aritmeticka istrazivanja. On je takoder uveo i oznaku za kongruenciju koju i
danas koristimo.
Definicija 2.1 Neka su a, b,m 6= 0 cijeli brojevi. Ako m dijeli razliku a − b, onda
kazemo da je a kongruentan b modulo m i pisemo a ≡ b (mod m). U protivnom,
kazemo da a nije kongruentan b modulo m i pisemo a 6≡ b (mod m).
Primjedba 2.1 Zapis a ≡ b (mod m) je ekvivalentan zapisu m | (a − b), odnosno
zapisu a − b = mk, k ∈ Z.
Primjer 2.1 Navedimo nekoliko primjera kongruencija.
a) 52 ≡ 28 (mod 6), jer je 52 − 28 = 24 = 6 · 4, odnosno 6 | 24.
b) 10 ≡ −2 (mod 3), jer je 10 − (−2) = 12 = 3 · 4, odnosno 3 | 12.
c) −6 ≡ 14 (mod 5), jer je −6 − 14 = −20 = 5 · 4, odnosno 5 | −20.
d) 100 ≡ 0 (mod 25), jer je 100 − 0 = 100 = 25 · 4, odnosno 25 | 100.
e) 0 ≡ −30 (mod − 6), jer je 0 − (−30) = 30 = −6 · 5, odnosno −6 | 30.
Napomena 2.1 Buduci da
m | (a − b) ⇐⇒ −m | (a − b),
dovoljno je promatrati samo pozitivne module m, pa cemo ubuduce pretpostaviti m ∈ N.
2.1. Svojstva kongruencija
Nacin na koji zapisujemo kongruencije uvelike podsjeca na jednakosti, pa cemo
pokazati da jednakosti i kongruencije imaju mnoga zajednicka svojstva. Relacija ”biti
jednak” je relacija ekvivalencije. Relacija ”biti kongruentan modulo m” je takoder
relacija ekvivalencije, i to na skupu Z te o tome govori sljedeca propozicija.
Propozicija 2.1 Za a, b, c ∈ Z uvijek vrijede sljedeca svojstva:
1. Refleksivnost: a ≡ a (mod m).
2. Simetricnost: Ako je a ≡ b (mod m), onda je b ≡ a (mod m).
3. Tranzitivnost: Ako je a ≡ b (mod m) i b ≡ c (mod m), onda je a ≡ c (mod m).
1Njemacki matematicar (1777.-1855.) poznat po sirokom doprinosu matematici, geometriji, fizici,atronomiji, optici i geodeziji.
3
Dokaz :
1. Iz a − a = 0 = 0 · m slijedi a ≡ a (mod m).
2. Ako je a ≡ b (mod m), postoji k ∈ Z takav da je a−b = mk. Sada je b−a = m·(−k),
pa je b ≡ a (mod m).
3. Iz a ≡ b (mod m) i b ≡ c (mod m) slijedi da postoje k, l ∈ Z takvi da je a−b = mk
i b− c = ml. Zbrajanjem ovih dviju jednakosti dobivamo a− c = m(k + l), sto povlaci
a ≡ c (mod m). 2
Jednakosti mozemo zbrajati, oduzimati i mnoziti nekim brojem. Analogna svojstva
vrijede i za kongruencije te su dana u sljedecoj propoziciji.
Propozicija 2.2 Neka su a, b, c, d, k ∈ Z. Ako je a ≡ b (mod m) i c ≡ d (mod m),
onda vrijedi
a + c ≡ b + d (mod m),
a − c ≡ b − d (mod m),
ac ≡ bd (mod m),
ka ≡ kb (mod m).
Dokaz :
Ako je a ≡ b (mod m) i c ≡ d (mod m), postoje k, l ∈ Z takvi da je a − b = mk i
c − d = ml. Zbrajanjem, odnosno oduzimanjem ovih dviju jednakosti dobivamo
(a + c) − (b + d) = m(k + l)
i
(a − c) − (b − d) = m(k − l),
pa je
a + c ≡ b + d (mod m)
i
a − c ≡ b − d (mod m).
Kongruenciju ac ≡ bd (mod m) dokazujemo koristeci cinjenicu da je −bc + bc = 0 pa
imamo
ac − bd = ac + 0 − bd
= ac + (−bc + bc) − bd
= c(a− b) + b(c − d)
= cmk + bml
= m(ck + bl).
Dakle, ac ≡ bd (mod m). Za c = d = k dobivamo i kongruenciju ka ≡ kb (mod m). 2
4
Primjedba 2.2 Zbrajanje, oduzimanje i mnozenje kongruencija je moguce samo ako
te kongruencije promatramo modulo isti broj, koji pri tome ostaje nepromijenjen.
Primjer 2.2 Zbrojite, oduzmite i pomnozite kongruencije
20 ≡ 13 (mod 7), −14 ≡ 7 (mod 7), 13 ≡ −1 (mod 7).
Rjesenje:
a) Zbrajanjem zadanih kongruencija dobivamo
20 + (−14) + 13 ≡ 13 + 7 + (−1) (mod 7),
odnosno
19 ≡ 19 (mod 7)
sto je tocno jer je 19 − 19 = 0 = 7 · 0.
b) Oduzimanjem zadanih kongruencija dobivamo
20 − (−14) − 13 ≡ 13 − 7 − (−1) (mod 7),
odnosno
21 ≡ 7 (mod 7)
sto je tocno jer je 21 − 7 = 14 = 7 · 2.
c) Mnozenjem zadanih kongruencija dobivamo
20 · (−14) · 13 ≡ 13 · 7 · (−1) (mod 7),
odnosno
−3640 ≡ −91 (mod 7)
sto je tocno jer je −3640 − (−91) = −3549 = 7 · (−507).
Jos neka svojstva kongruencija dana su u sljedecoj propoziciji.
Propozicija 2.3 Neka su a, b, c, d ∈ Z. Ako je a ≡ b (mod m) i c ≡ d (mod m),
onda vrijedi:
1. Ako je a ≡ b (mod m) i d | m, onda je a ≡ b (mod d).
2. Ako je a ≡ b (mod m), onda je ac ≡ bc (mod mc) za svaki c 6= 0.
Dokaz :
1. Ako d | m, postoji e ∈ Z takav da je m = de. Tada iz a − b = mk slijedi
a − b = d · (ek), pa je a ≡ b (mod d).
2. Iz a − b = mk slijedi ac− bc = (mc) · k, pa je ac ≡ bc (mod mc). 2
U prethodnim kongruencijama vidjeli smo da se kongruencije promatrane modulo isti
broj mogu zbrajati, oduzimati i mnoziti pa se postavlja pitanje moze li se u takvim
kongruencijama i kratiti.
5
Primjer 2.3 Skratite kongruenciju 60 ≡ 20 (mod 5).
Rjesenje: Kracenjem kongruencije 60 ≡ 20 (mod 5) s 10 bismo dobili 6 ≡ 2 (mod 5)
sto nije tocno jer 5 ne dijeli 6 − 2 = 4.
Iz navedenog je primjera ocito da se kongruencije ne mogu proizvoljno kratiti pa stoga
pri kracenju kongruencija koristimo sljedeci teorem.
Teorem 2.1 Vrijedi:
ax ≡ ay (mod m) ako i samo ako x ≡ y (modm
d),
pri cemu je d = (a,m) najveci zajednicki djelitelj brojeva a i m.
Specijalno, ako je ax ≡ ay (mod m) i (a,m) = 1, onda je x ≡ y (mod m).
Dokaz :
Ako je ax ≡ ay (mod m), postoji k ∈ Z takav da je ax − ay = mk. Sada imamo:
a
d(x − y) =
m
dk
odnosnom
d| a
d(x − y).
Brojevia
di
m
dsu relativno prosti, pa zakljucujemo da
m
d| (x− y),
tj. vrijedi
x ≡ y (modm
d).
Obrnuto, ako je x ≡ y (modm
d), po Propoziciji 2.3 dobivamo
ax ≡ ay (modam
d).
No, d je djelitelj od a, pa po Propoziciji 2.3 vrijedi
ax ≡ ay (mod m).
2
6
Primjer 2.4 Skratite kongruenciju 60 ≡ 20 (mod 5).
Rjesenje:
60 ≡ 20 (mod 5) ⇐⇒ 10 · 6 ≡ 10 · 2 (mod 5) ⇐⇒ 6 ≡ 2 (mod5
(5, 10)).
Dobivamo 6 ≡ 2 (mod 1) sto je tocno jer 1 dijeli 6 − 2 = 4.
Kongruencije mozemo i potencirati. Sljedeci teorem govori upravo o potenciranju kon-
gruencija.
Teorem 2.2 Ako je a ≡ b (mod m) i n ∈ N, onda je an ≡ bn (mod m).
Dokaz :
Ako je a ≡ b (mod m), postoji m ∈ Z takav da je a− b = mk. Buduci da je
an − bn = (a − b)n−1∑
i=0
an−1−ibi
︸ ︷︷ ︸A
= m · (kA),
slijedi da je an ≡ bn (mod m). 2
Primjedba 2.3 Tvrdnja teorema vrijedi i za n = 0.
Sljedeca propozicija govori o generalizaciji navedenog rezultata.
Propozicija 2.4 Ako je f polinom s cjelobrojnim koeficijentima i a ≡ b (mod m),
onda vrijedi f(a) ≡ f(b) (mod m).
Dokaz : Neka je f(x) = cnxn + cn−1xn−1 + · · · + c0, gdje su c0, c1, . . . , cn cijeli brojevi,
polinom n−tog stupnja. Iz a ≡ b (mod m), prema Teoremu 2.2, slijedi da za svaki ci-
jeli nenegativan j vrijedi aj ≡ bj (mod m). Tada je, prema Propoziciji 2.2, cjaj ≡ cjb
j
(mod m) za j = 0 . . . n. Zbrajanjem svih jednakosti dobivamo
cnan + cn−1a
n−1 + . . . + c1a + c0 ≡ cnbn + cn−1b
n−1 + . . . + c1b + c0 (mod m),
odnosno f(a) ≡ f(b) (mod m). 2
Za rjesavanje problema iz teorije djeljivosti vaznu ulogu ima sljedeci teorem.
7
Teorem 2.3 Brojevi a i b imaju isti ostatak pri dijeljenju brojem m ako i samo ako
je a ≡ b (mod m).
Dokaz : Prema Teoremu o dijeljenju s ostatkom (vidjeti [4]) vrijedi
a = mq1 + r1, 0 ≤ r1 < m, (1)
b = mq2 + r2, 0 ≤ r2 < m. (2)
Pokazimo da r1 = r2 povlaci a ≡ b (mod m). Tada iz (1) i (2) slijedi a−b = m(q1−q2),
sto znaci da m | (a − b), odnosno vrijedi a ≡ b (mod m).
Pokazimo sada da a ≡ b (mod m) povlaci r1 = r2. Buduci da m | (a − b), uvrstimo li
ovdje a i b iz (1) i (2) dobivamo m | m(q1 − q2) + (r1 − r2), sto povlaci m | (r1 − r2).
Kako su r1 i r2 manji od m, to je |r1 − r2| < m, pa m | (r1 − r2) samo onda ako je
r1 − r2 = 0, tj. r1 = r2. 2
Sljedeci primjeri pokazuju kako se pomocu kongruencija rjesavaju razni problemi iz
teorije djeljivosti brojeva.
Primjer 2.5 Dokazite ako je zbroj znamenaka nekog broja djeljiv s 9, onda je i taj
broj djeljiv s 9.
Rjesenje: Uzmimo neki broj N i neka on ima decimalan prikaz
N = cn10n + cn−110n−1 + · · · + c110 + c0.
Promotrimo polinom f(x) = cnxn+cn−1xn−1+· · ·+c1x+c0. Tada je f(10) = N . Zbroj
znamenaka broja N jednak je f(1). Kako je 10 ≡ 1 (mod 9), prema Propoziciji 2.4,
vrijedi f(10) ≡ f(1) (mod 9). Prema pretpostavci je zbroj znamenaka broja N , f(1),
djeljiv s 9, pa iz Teorema 2.3, slijedi da je tada i N = f(10) djeljiv s 9.
Primjer 2.6 Nadite ostatak pri dijeljenju broja 2513 − 731 · 1523 brojem 4.
Rjesenje: Buduci da je
25 ≡ 1 (mod 4),
7 ≡ −1 (mod 4),
15 ≡ −1 (mod 4)
primjenom svojstva o potenciranju kongruencija dobivamo
2513 ≡ 113 (mod 4),
731 ≡ (−1)31 (mod 4),
1523 ≡ (−1)23 (mod 4).
8
Primjenom svojstava o oduzimanju i mnozenju kongruencija dobivamo
2513 − 731 · 1523 ≡ 113 − (−1)31 · (−1)23 (mod 4).
Iz Teorema 2.3 slijedi da brojevi 2513 − 731 · 1523 i 113 − (−1)31 · (−1)23 = 0 imaju isti
ostatak pri dijeljenju brojem 4. Stoga zakljucujemo da je ostatak pri dijeljenju broja
2513 − 731 · 1523 brojem 4 jednak 0.
Primjer 2.7 Odredite zadnje dvije znamenke broja 20220.
Rjesenje:
Zadnje dvije znamenke zadanog broja su zapravo znamenke ostatka koji se dobije di-
jeljem tog broja sa 100. Zapisemo 20220 kao (2022)10 = 4080410. Kako je 40804 ≡ 4
(mod 100), primjenom svojstva o potenciranju kongruencija dobivamo 4080410 ≡ 410
(mod 100). Sada je trazeni ostatak jednak ostatku koji se dobije dijeljenjem broja 410
sa 100. Zapisemo 410 kao (45)2 = 10242. Kako je 1024 ≡ 24 (mod 100) primjenom
svojstva o potenciranju kongruencija dobivamo 10242 ≡ 242 (mod 20). Zadani broj
20220 ima isti dvoznamenkasti zavrsetak kao i broj 242 = 576 pa su zadnje dvije zna-
menke zadanog broja jednake 76.
9
3. Klasicna kriptografija
3.1. Osnovni pojmovi
Kriptografija je znanstvena disciplina koja proucava metode za slanje poruka u
oblicima citljivim samo onima kojima su i namijenjene. Rijec kriptografija dolazi od
grckih rijeci kriptos sto znaci tajna i grafein sto znaci pisati pa se stoga moze doslovno
prevesti kao tajnopis. Osnovni zadatak kriptografije je omoguciti posiljatelju i pri-
matelju poruke komuniciranje preko nesigurnog komunikacijskog kanala na nacin da
njihov protivnik ne moze razumjeti njihovu poruku. Poruku koju posiljatelj zeli poslati
primatelju zovemo otvoreni tekst. Posiljatelj transformira otvoreni tekst koristeci una-
prijed dogovoreni kljuc. Taj postupak se naziva sifriranje, a dobiveni rezultat sifrat ili
kriptogram. U trenutku slanja sifrata preko nekog komunikacijskog kanala, protivnik
prisluskujuci moze doznati sadrzaj sifrata, ali ne moze odrediti otvoreni tekst. Za raz-
liku od njega, primatelj koji zna kljuc kojim je sifrirana poruka moze desifrirati sifrat
i odrediti otvoreni tekst. Na Slici 1. prikazana je shema klasicne kriptografije.
Slika 1: Shema klasicne kriptografije
Usporedno s razvojem kriptografije razvila se i znanstvena disciplina kriptoanaliza
(dekriptiranje) koja proucava postupke za citanje skrivenih poruka bez poznavanja
kljuca. Kriptologija je znanost koja obuhvaca i kriptografiju i kriptoanalizu.
Kriptografski algoritam ili sifra je matematicka funkcija koja se koristi za sifriranje i
desifriranje. Opcenito, radi se o dvjema funkcijama, jednoj za sifriranje, a drugoj za
desifriranje. Te funkcije preslikavaju osnovne elemente otvorenog teksta u osnovne ele-
mente sifrata, i obrnuto. Funkcije se biraju iz odredene familije funkcija u ovisnosti o
kljucu. Skup svih mogucih vrijednosti kljuceva nazivamo prostor kljuceva. Kriptosus-
tav se sastoji od kriptografskog algoritma, te svih mogucih otvorenih tekstova, sifrata
i kljuceva pa prema tome imamo sljedecu definiciju kriptosustava.
10
Definicija 3.1 Kriptosustav je uredena petorka (P, C,K, E,D) za koju vrijedi:
1) P je konacan skup svih mogucih osnovnih elemenata otvorenog teksta.
2) C je konacan skup svih mogucih osnovnih elemenata sifrata.
3) K je prostor kljuceva, tj. konacan skup svih mogucih kljuceva.
4) E je skup svih funkcija sifriranja.
5) D je skup svih funkcija desifriranja.
6) Za svaki K ∈ K postoji funkcija sifriranja eK ∈ E i odgovarajuca funkcija desifriranja
dK ∈ D. Pritom su eK : P → C i dK : C → P funkcije sa svojstvom da je
dK(eK(x)) = x
za svaki otvoreni tekst x ∈ P.
Najvaznije svojstvo u definiciji je dK(eK(x)) = x, odnosno funkcije sifriranja eK moraju
biti injekcije. Ako bi bilo
eK(x1) = eK(x2) = y
za dva razlicita otvorena teksta x1 i x2, onda primatelj ne bi mogao jedinstveno odrediti
otvoreni tekst.
3.1.1. Podjela kriptosustava
Kriptosustave najcesce dijelimo s obzirom na sljedeca tri kriterija:
1. Tip operacije koja se koriste pri sifriranju
Najcesci tipovi operacija koji se koriste pri sifriranju su supstitucija i transpozicija. U
supstitucijskoj sifri se svaki element otvorenog teksta zamjenjuje se s nekim drugim
elementom, a u transpozicijskoj se elementi otvorenog teksta premjestaju. Ako rijec
MATEMATIKA sifriramo u LZSDLZSHJZ nacinili smo supstituciju, a ako ju sifriramo
u KATEMATIMA nacinili smo transpoziciju.
2. Nacin na koji se obraduje otvoreni tekst
Prema nacinu na koji se obraduje otvoreni tekst razlikujemo blokovne i protocne sifre.
Kod blokovnih sifri se obraduje jedan po jedan blok elemenata otvorenog teksta ko-
risteci jedan te isti kljuc, dok se kod protocnih sifri elementi otvorenog teksta obraduju
jedan po jedan koristeci pritom niz kljuceva koji se paralelno generira.
3. Broj kljuceva koji se koristi
Prema broju kljuceva razlikujemo simetricne i asimetricne kriptosustave. Simetricni
kriptosustavi koriste ili isti kljuc za sifriranje i desifriranje ili se kljuc za desifriranje
moze lako izracunati poznavajuci kljuc za sifriranje i obrnuto. Sigurnost simetricnih
kriptosustava lezi u tajnosti kljuca kojeg izabiru posiljatelj i primatelj poruke pa se
11
stoga jos i nazivaju kriptosustavi s tajnim kljucem. Tajnost kljuca je ujedno i veliki
nedostatak ovih kriptosustava buduci da posiljatelj i primatelj moraju biti u mogucnosti
razmijeniti tajni kljuc preko nekog nesigurnog komunikacijskog kanala. Za razliku od
simetricnih kriptosustava, asimetricni koriste razlicite kljuceve za sifriranje i desifriranje
poruke. Kljuc za sifriranje je javni kljuc pa se ovi kriptosustavi nazivaju jos i kripto-
sustavi s javnim kljucem.
3.1.2. Razine kriptoanalitickih napada
Osnovna pretpostavka kriptoanalize je da kriptoanaliticar zna koji se kriptosus-
tav koristi. Ova pretpostavka se naziva Kerckhoffsovo nacelo, po Nizozemcu Augustu
Kerckhoffsu, autoru knjige Vojna kriptografija. U ovoj je knjizi Kerckhoffs iznio sest
osnovnih zahtjeva za kriptografiju:
1. Sifirani tekst treba biti neprobojan u praksi.
2. Sustav sifriranja treba biti prikladan za korisnike.
3. Kljuc treba biti lako pamtljiv i promjenjiv.
4. Sifirani tekst treba biti prenosiv telegrafom.
5. Uredaj za sifriranje treba biti lako prenosiv.
6. Uredaj za sifriranje treba biti moguce relativno lako koristiti.
Pokusaj kriptonalize nekog kriptosustava naziva se napad. Razlikujemo cetiri razine
kriptoanalitickih napada, u ovisnosti o tome sto kriptoanaliticar posjeduje.
1. Samo sifrat
Kriptoanaliticar posjeduje samo sifrat od nekoliko poruka sifriranih istim algoritmom.
Njegov je zadatak otkriti otvoreni tekst od sto vise poruka ili u najboljem slucaju
otkriti kljuc kojim su poruke sifrirane.
2. Poznat otvoreni tekst
Kriptoanaliticar posjeduje sifrat neke poruke, ali i njemu odgovarajuci otvoreni tekst.
Njegov zadatak je otkriti kljuc ili neki algoritam za desifriranje poruka sifriranih tim
kljucem.
3. Odabrani otvoreni tekst
Kriptoanaliticar ima mogucnost odabira teksta koji ce biti sifriran, te moze dobiti nje-
gov sifrat. Ovaj napad je jaci od prethodnoga, ali je manje realistican.
4. Odabrani sifrat
Kriptoanaliticar je dobio pristup alatu za desifriranje, pa moze odabrati sifrat, te dobiti
odgovarajuci otvoreni tekst. Ovaj napad je tipican kod kriptosustava s javnim kljucem.
Tu je zadatak kriptoanaliticara otkriti kljuc za desifriranje.
12
(5.) Potkupljivanje, ucjena, krada i slicno
Ovaj napad ne spada doslovno u kriptoanalizu, ali je vrlo efikasan i cesto primjenjivan
u kombinaciji s pravim kriptoanalitickim napadima.
3.2. Povijest kriptografije
Kriptografija postoji vise tisuca godina. Izumom pisma covjek je pokusavao
sakriti znacenje svojih poruka. Razni zapisi na papirusu i zapisi uklesani u kamen
pokazuju da su mnoge drevne civilizacije razvile svoje kriptografske metode.
3.2.1. Stari vijek
Vjeruje se kako je kriptografija stvorena oko 2000. g. pr.Kr. u Egiptu gdje su
se hijeroglifi koristili za ukrasavanje grobnica preminulih faraona. Hijeroglifima su se
opisivali zivoti faraona i velicali uspjesi za vrijeme njihove vladavine. Iako se hijeroglifi
ne smatraju pismom cija je namjera bila tajna komunikacija, pokusaji njihovih tvoraca
da u svoje tekstove unesu misticnost smatraju se pocecima kriptografije.
Slika 2: Hijeroglifi
Kriptografska povijest Mezopotamije je slicna onoj Egipta, u smislu da su se i ovdje
koristili znakovi (klinasto pismo) za sifriranje teksta. Hebrejci su koristili supstitucij-
ske sifre. Najpoznatija hebrejska sifra poznata je pod nazivom atbash te za englesku
abecedu izgleda ovako:
A B C D E F G H I J K L M
Z Y X W V U T S R Q P O N
Osim ove sifre, postoje jos albam sifra
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
13
i atbah sifra
A B C D J K L M E S T U V
I H G F R Q P O N Z Y X W
Ovakav nacin sifriranja je reciprocan, tj. ako se prvo slovo zamijeni s drugim, onda se
drugo slovo zamijeni s prvim. Ove sifre su se koristile izmedu 500. i 600. g. pr.Kr.
Prva zabiljezena upotreba kriptografije u svrhu komuniciranja zabiljezena je kod starih
Grka. Spartanci su u 5. st. pr.Kr. upotrebljavali napravu za sifriranje zvanu skital, dr-
veni stap oko kojega se namotao tanak list papirusa na koji se zatim okomito pisala
poruka. Kada bi se list papirusa odmotao, poruka na njemu bi bila necitljiva, a procitati
bi je mogao samo onaj tko je posjedovao stap istog promjera. Sifre koje su se dobile
sifriranjem skitalom su bile transpozicijske.
Slika 3: Skital
Poznata je jos jedna starogrcka metoda sifriranja koju je razvio grcki povjesnicar Poly-
bius. Ova metoda se sastoji u postavljanju slova abecede u kvadrat dimenzija 5x5.
Redovi i stupci se numeriraju od 1 do 5 tako da svako slovo predstavlja odgovarajuci
par retka i stupca. Takav Polybiusov kvadrat izgleda ovako:
1 2 3 4 51 A B C D E2 F G H I J3 K L M N O4 P Q R S T5 U V W X Y/Z
Sifriranje se obavljalo pridruzivanjem svakom slovu otvorenog teksta odgovarajuci par
retka i stupca pa tako rijec POLYBIUS sifrirana glasi 14 53 23 55 21 42 15 44. Ovo je
prvi sustav kriptiranja koji je smanjio broj simbola koji se koriste za kriptiranje.
Stari Rimljani su koristili zanimljive tehnike fizickog skrivanja poruka, ispod voska na
drvenom stolu ili u obliku tetovaze na glavi roba skrivene pod kosom. Takoder su
poznavali i odredene metode sifriranja. Jedna od najpoznatijih sifri je Cezarova sifra
nazvana po rimskom vojskovodi Gaju Juliju Cezaru.
14
3.2.2. Srednji vijek
Za vrijeme Srednjeg vijeka, u Europi dolazi do napretka kriptografije zbog
potrebe sigurne komunikacije izmedu veleposlanstava europskih drzava. Kriptografija
je posebno razvijena u talijanskim gradovima. Najraniji kriptosustavi tog razdoblja
su koristili samo zamjenu samoglasnika, dok su suglasnici ostajali nepromijenjeni.
Oko 1379. godine, Gabriele de Lavinde od Parme je napisao prvi europski kriptograf-
ski prirucnik, koji je sluzio Papi Clementu VII. Prirucnik je sadrzavao popis svih
mogucih kljuceva, zamjenskih simbola za slova izvorne poruke, te skracenice za neke
rijeci i imena, koje je mogao koristiti svatko tko je htio sakriti pravo znacenje vlastite
poruke. U Veneciji se 1452. godine osniva drzavna institucija cija je jedina namjena
bila kriptografija. Ocem zapadne kriptologije smatra se Leon Battista Alberti, koji je
1466. godine osmislio polialfabetsku supstituciju, tehnike sifriranja koja je dopustala
da vise razlicitih znakova u sifriranom tekstu predstavlja jedan znak otvorenog teksta.
Arapi su prvi postavili temelje kriptografije kao znanosti, te su medu prvima poceli
primjenjivati kriptoanalicke metode za pronalazenje sakrivenog znacenja unutar sifrirane
poruke. Osmislili su i koristili vlastite supstitucijske i transpozicijske kriptosustave.
Al-Kalka-Shandi je 1412. godine u svojoj enciklopediji Subh al-a’sha opisao nekoliko
kriptosustava, te je takoder dao vrlo jasne upute (s jednostavnim primjerima) kako
kriptoanalizirati sifriranu poruku koristenjem frekvencije slova.
3.2.3. Razdoblje 16. st. - 19. st.
U 16. st. otkriven je jedan od nedostataka dotadasnje kriptografije. Za kriptiranje
poruke koristio se samo jedan kljuc pa se pocinju koristiti sifre koje prilikom kriptiranja
teksta promjene nekoliko kljuceva. Njemacki svecenik Trithemius 1518. godine, u petoj
knjizi iz ciklusa Poligraphia, donosi tablicu koja je ponavljala u svakom redu cijelu
abecedu, samo sto je u abeceda u svakom slijedecem retku bila ciklicki pomaknuta za
jedan znak u desno. Kod kriptiranja, prvo slovo otvorenog teksta se kriptiralo prvim
retkom tablice, drugo slovo drugim retkom tablice, itd. Trithemiusova tablica izgleda
ovako:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
FGUQHXSZACNDMRTVWEJBLIKPYO
OFGUQHXSZACNDMRTVWEJBLIKPY
YOFGUQHXSZACNDMRTVWEJBLIKP
PYOFGUQHXSZACNDMRTVWEJBLIK
KPYOFGUQHXSZACNDMRTVWEJBLI
IKPYOFGUQHXSZACNDMRTVWEJBL
LIKPYOFGUQHXSZACNDMRTVWEJB
15
BLIKPYOFGUQHXSZACNDMRTVWEJ
JBLIKPYOFGUQHXSZACNDMRTVWE
EJBLIKPYOFGUQHXSZACNDMRTVW
WEJBLIKPYOFGUQHXSZACNDMRTV
VWEJBLIKPYOFGUQHXSZACNDMRT
TVWEJBLIKPYOFGUQHXSZACNDMR
RTVWEJBLIKPYOFGUQHXSZACNDM
MRTVWEJBLIKPYOFGUQHXSZACND
DMRTVWEJBLIKPYOFGUQHXSZACN
NDMRTVWEJBLIKPYOFGUQHXSZAC
CNDMRTVWEJBLIKPYOFGUQHXSZA
ACNDMRTVWEJBLIKPYOFGUQHXSZ
ZACNDMRTVWEJBLIKPYOFGUQHXS
SZACNDMRTVWEJBLIKPYOFGUQHX
XSZACNDMRTVWEJBLIKPYOFGUQH
HXSZACNDMRTVWEJBLIKPYOFGUQ
QHXSZACNDMRTVWEJBLIKPYOFGU
UQHXSZACNDMRTVWEJBLIKPYOFG
GUQHXSZACNDMRTVWEJBLIKPYOF
Rijec TRITHEMIUS kriptirana gornjom tablicom glasi BWSWQOSGMA.
Do pocetka 18. st. u Europi su bili uobicajeni tzv. Mracni uredi. Najpoznatiji je bio
u Becu, a upravitelj mu je od 1749. do 1763. godine bio barun Ignaz de Koch. Ova
se organizacija bavila proucavanjem sve poste koja je stizala stranim veleposlanstvima
u Becu, kopirala ih, ponovno zatvorila te vratila u postanski ured isto jutro. Taj isti
ured se bavio desifiranjem i ostalih presretnutih vojnih i politickih poruka, a katkad bi
procitao i do 100 pisama dnevno. Slicnu ulogu je ima i engleski Mracni ured kojeg je
formirao John Wallis 1701. godine.
General americke vojske tijekom Americkog rata za neovisnost, Benedict Arnold, koris-
tio je sifru kojom se svaka rijec otvorenog teksta zamijenila s brojem koji je oznacavao
njezin polozaj u knjizi. Tako je npr. 4.3.2 znacilo 4. stranica, 3. red, 2. rijec. Svi su-
dionici u takvom razgovoru morali su imati istu kopiju knjige sifri. Spijuni Samuel
Woodhull i Robert Townsend obavjestavali su generala Georgea Washingtona, tijekom
Americkog rata za neovisnost, o kretanju neprijatelja u i oko New Yorka, uz pomoc
knjige sifri. Za dodatnu sigurnost koristili su i nevidljivu tintu.
16
3.2.4. Naprave za sifriranje
Slijedeci korak u razvoj kriptografije je razvoj uredaja za sifriranje. Oni ce
uciniti procese sifriranja i desifriranja puno brzim i laksim. Najstariju takvu napravu,
Jeffersonov kotac za sifriranje, izumio je americki drzavnik Thomas Jefferson krajem
18. stoljeca. Americka vojska pocela ga je koristiti tek 1922. godine. Jeffersonov kotac
se sastoji od drvenog cilindra s rupom u sredini kroz koju je provucena zeljezna os.
Cilindar je podijeljen na 26 manjih cilindara (diskova) jednakih sirina koji se mogu
neovisno jedan od drugoga okretati oko zajednicke osi. S vanjske strane nalazi se
26 jednakih kvadratica koji se na proizvoljan nacin popunjavaju s 26 slova engleske
abecede, razlicito od diska do diska. Posiljatelj i primatelj imaju dva identicna kotaca.
Slika 4: Jeffersonov kotac za sifriranje
Da bi sifrirao otvoreni tekst, posiljatelj mora podijeliti tekst na blokove od po 26 slova.
Blok se sifrira tako da se rotiranjem diskova u jednom od 26 redaka dobije otvoreni
tekst. Tada se za sifrat moze izabrati bilo koji od preostalih 25 redaka. Primatelj
desifrira sifrat tako da rotiranjem diskova u jednom retku dobije sifrat, a medu pre-
ostalih 25 redaka potrazi onaj koji sadrzi neki smisleni tekst. Taj redak predstavlja
originalni otvoreni tekst.
Amerikanac Edward Hugh Hebern izumio je 1915. godine elektricni stroj za kodiranje.
To je bio elektricni uredaj kojim su se dva elektricna pisaca stroja spajala pomocu
26 zica, ali s razbacanim rasporedom, pa kad bi se udarila tipka na pisacem stroju za
otvoreni tekst, drugi bi stroj otipkao sifrat tog slova. Hebern je 1921. godine osnovao
tvrtku Hebern Electric Code, sto je bila prva americka tvrtka za proizvodnju naprava
za sifriranje, ali nije bila uspjesna u prodaji svojih proizvoda.
U 20. st. Drugi svjetski rat ima veliku ulogu u razvoju kriptografije. Jedno od naj-
poznatijih kriptografskih postignuca tog vremena je naprava za sifriranje nazvana
ENIGMA koju je izumio Nijemac Arthur Schrebius 1920. godine. ENIGMA je bila
elektromehanicka naprava koja se sastojala od tipkovnice s 26 tipki pisaceg stroja,
zaslona s 26 zaruljica za prikaz sifriranog izlaza, tri mehanicka rotora i elektronicke
prespojne ploce. Pritiskom na tipku, kroz mrezu kontakata rotora i prespojne ploce,
17
Slika 5: Hebernov elektricni stroj za kodiranje
zatvorio bi se strujni krug i upalila bi se odgovarajuca zaruljica koja oznacava sifrirano
slovo.
Slika 6: ENIGMA
Nakon nekoliko razlicitih modela, njemacka mornarica 1926. godine uvodi ENIGMU kao
standardni nacin kriptiranja, a zatim ju usvajaju i njemacko zrakoplovstvo i kopnena
vojska. ENIGMU su uspjeli dekriptirati dvije grupe kriptoanaliticara, poljska grupa
pod vodstvom Mariana Rejewskog i britanska pod vodstvom Alana Turinga. Pret-
postavlja se da je Drugi svjetski rat skracen za par godina jer su Saveznici uspjesno
desifrirali mnoge poruke Nacisticke Njemacke.
3.2.5. Moderna kriptografija
Nakon izuma prvih kompjutera, razvijeni su simetricni kriptosustavi koji pred-
stavljaju pocetak moderne kriptografije. Prvi simetricni kriptosustav, nazvan Lucifer,
razvijen je u IBM-ovom laboratoriju. 1976. godine usvojen je americki standard za
sifriranje podataka pod imenom DES (engl. Data Encryption Standard) koji postaje
18
jedan od najpoznatijih kriptosustava. Ubrzo nakon razvoja simetricnih, razvijaju se i
asimetricni kriptosustavi. Whitfield Diffie i Martin Hellman smatraju se zacetnicima
kriptografije javnog kljuca. Prvi asimetricni kriptosustav razvijen je 1977. godine. Naz-
van je RSA kriptosustav, po inicijalima prezimena svojih autora (Rivest, Shamir, Adle-
man).
3.3. Supstitucijske sifre
Kod supstitucijske sifre svaki se element otvorenog teksta zamjenjuje s nekim
drugim elementom pa svakom slovu otvorenog teksta odgovara jedinstveno slovo sifrata.
Takve se sifre zovu monoalfabetske. U ovom radu ce biti prikazani specijalni slucajevi
supstitucijske sifre, Cezarova i afina sifra.
3.3.1. Cezarova sifra
Cezarova sifra je dobila ime po poznatom rimskom vojskovodi Gaju Juliju Cezaru
koji je u komunikaciji sa svojim generalima koristio sifru kojom su se slova otvorenog
teksta zamjenjivala slovima sto su se nalazila za tri mjesta udesno u abecedi (A → D,
B → E, C → F itd.). Takoder se pretpostavlja da se abeceda ciklicki nastavlja, tj. da
nakon zadnjeg slova Z, ponovo dolaze slova A, B, C. U daljnjim primjerima koristit
cemo englesku abecedu od 26 slova. Ako otvoreni tekst bude pisan hrvatskim jezikom,
onda cemo slova C i C zamijeniti slovom C, a slova D, Dz, Lj, Nj, S, Z redom slovima
DJ, DZ, LJ, NJ, S, Z. Koristimo li englesku abecedu od 26 slova, otvoreni tekst i sifrat
dobiven Cezarovom sifrom mozemo zapisati na sljedeci nacin:
Otvoreni tekst: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Sifrat: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Poznata Cezarova izreka
VENI VIDI VICI
sifrirana ovom sifrom glasi
YHQL YLGL YLFL.
Da bismo Cezarovu sifru precizno definirali u smislu Definicije 3.1, uvest cemo prirodnu
korespodenciju izmedu slova alfabeta (A - Z) i cijelih brojeva (0 - 25).
Skup {0, 1, 2, . . . , 25} oznacavat cemo sa Z26 i pretpostavljat cemo da su na njemu
definirane operacije zbrajanja, oduzimanja i mnozenja na isti nacin kao u skupu cijelih
brojeva, ali tako da se rezultat, ukoliko nije iz skupa {0, 1, 2, ..., 25}, zamijeni s njegovim
ostatkom pri dijeljenju s 26. Koristit cemo oznake a +26 b i a −26 b za zbrajanje i
oduzimanje u skupu Z26. Sada Cezarovu sifru mozemo definirati na sljedeci nacin.
19
Definicija 3.2 Neka je P = C = K = Z26. Za 0 ≤ K ≤ 25 definiramo
eK(x) = (x + K) mod 26, dK(y) = (y − K) mod 26.
Provjerimo je li uvjet dK(eK(x)) = x zadovoljen. Zaista,
dK(eK(x)) = dK(x + K) = (x + K − K) = x.
Buduci da koristimo 26 slova, svakom slovu abecede pridruzujemo njegov numericki
ekvivalent:
A B C D E F G H I J K L M0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U W X Y V Z13 14 15 16 17 18 19 20 21 22 23 24 25
Tablica 1: Korespodencija izmedu slova abecede i cijelih brojeva
U Cezarovoj su sifri osnovni elementi otvorenog teksta slova (odnosno njihovi numericki
ekvivalenti), a kljuc K odreduje za koliko mjesta (udesno) cemo pomicati slova pri
sifriranju. Za K = 3 dobiva se originalna Cezarova sifra. Postoje naznake da je Cezarov
necak, prvi rimski car August, koristio najjednostavniju verziju ove sifre, pomicuci slova
samo za jedno mjesto u alfabetu, tj. uzimajuci da je K = 1.
Primjer 3.1 Dekriptirajte sifrat OSRKVYIRGMNI dobiven Cezarovom sifrom.
Rjesenje: Zadani sifrat cemo dekriptirat primjenom metode ”grube sile”, odnosno ispi-
tivanje svih mogucih kljuceva redom sve dok ne dobijemo neki smisleni tekst. Ova je
metoda opravdana jer je broj kljuceva mali. Kljuceva ima upravo onoliko koliko je
i slova, ima ih 26. Primijenimo li funkciju desifriranja dK(y) = (y − K) mod 26 na
zadani sifrat te ispitivanjem kljuceva dobivamo redom:
O S R K V Y I R G M N I K=0N R Q J U X H Q F L M H K=1M Q P I T W G P E K L G K=2L P O H S V F O D J K F K=3K O N G R U E N C I J E K=4
Dakle, kljuc je K = 4, a otvoreni tekst je KONGRUENCIJE.
Kriptoanaliza Cezarove sifre je vrlo jednostavna jer kriptoanaliticar treba samo ispitati
sve moguce kljuceve sto ovu sifru cini vrlo nesigurnom za koristenje. Nije poznato koliko
je Cezarov kriptosustav sluzio svrsi u to doba, no vrlo je vjerojatno da se smatrao vrlo
sigurnim iz razloga da je rijetko tko od Cezarovih neprijatelja bio pismen, a i za te
rijetke nema pisanog traga da su uspjeli probiti ovaj kriptosustav.
20
3.3.2. Afina sifra
Da bismo dobili sigurniju sifru od Cezarove, mozemo promatrati funkcije za
sifriranje koje ce ukljucivati vise od jednog parametra. Najjednostavnija takva funkcija
je afina funkcija e(x) = ax + b. Afina sifra definira se na sljedeci nacin.
Definicija 3.3 Neka je P = C = Z26, te neka je
K = {(a, b) ∈ Z26 × Z26 : (a, 26) = 1}.
Za K = (a, b) ∈ K definiramo
eK(x) = (ax + b) mod 26, dK(y) = a−1(y − b) mod 26.
Provjerimo je li uvjet dK(eK(x)) = x zadovoljen. Zaista,
dK(eK(x)) = dK(ax + b) = a−1(ax + b − b) = x.
No, tu se javlja problem jer nemaju svi elementi iz Z26 multiplikativni inverz a−1, ele-
ment za koji vrijedi a ·26 a−1 = a−1 ·26 a = 1. Samo brojevi relativno prosti s 26 imaju
multiplikativni inverz. U sljedecoj tablici prikazani su ti brojevi zajedno sa svojim
inverzima.
a 1 3 5 7 9 11 15 17 19 21 23 25a−1 1 9 21 15 3 19 7 23 11 5 17 25
Tablica 2: Multiplikativni inverzi elemenata iz skupa Z26
Primjer 3.2 Neka je K = (5, 7). Sifrirajte otvoreni tekst MATEMATIKA.
Rjesenje: Za svako slovo otvorenog teksta prvo odredimo njegov numericki ekvivalent.
M A T E M A T I K A12 0 19 4 12 0 19 8 10 0
Primjenom funkcije sifriranja eK(x) = (ax + b) mod 26 na zadani otvoreni tekst dobi-
vamo:
5 · 12 + 7 ≡ 15 (mod 26),5 · 0 + 7 ≡ 7 (mod 26),
5 · 19 + 7 ≡ 24 (mod 26),5 · 4 + 7 ≡ 1 (mod 26),5 · 8 + 7 ≡ 21 (mod 26),
5 · 10 + 7 ≡ 5 (mod 26).
21
Svaki svaki numericki ekvivalent poistovjetimo sa slovom i dobivamo sifrat PHYB-
PHYVFH.
Buduci da sada imamo 12 · 16 = 312 kljuceva (12 parova (a, a−1) i 26 vrijednosti
parametara b), dekriptiranje sifrata bez poznavanja kljuca ispitivanjem svih mogucih
kljuceva, kao u Primjeru 3.1, bilo bi dugotrajno. Postoji i drugi nacin dekriptiranja
pomocu frekvencijske analize slova. Za ovu metodu je korisno znati kojim je jezikom
tekst pisan, jer se frekvencije slova u razlicitim jezicima razlikuju. Najfrekventnija
slova hrvatskog jezika su redom A, I, O, E, N.
U daljnim cemo primjerima zbog preglednosti sifrata stavljati razmak nakon svakog
petog slova, ali to nema nikakve veze s razmacima u otvorenom tekstu.
Primjer 3.3 Afinom sifrom s kljucem K je iz otvorenog teksta na hrvatskom jeziku
dobiven sljedeci sifrat:
YTKTM BKBYK DMQTJ DBNPE PQTOT VCLFH TVFLW PCIDE
QTVTC LAEDH TEPEP HDHTI OCMBO KDMBN BCWLI BQLFI
DQELF CPMBI BDNPC BJHBW CTILC DIQBF IBIJD HBDHT
VDWPQ DVTQB HDMFD VCDMB
Odredite kljuc K = (a, b) i dekriptirajte sifrat frekvencijskom analizom slova.
Rjesenje: U zadanom su sifratu najfrekventnija slova B i D pa mozemo ocekivati da
su ova dva slova sifrati od A, I, O, E ili N. Imamo
eK(A) = a · 0 + b = b,
eK(I) = a · 8 + b.
Sada pretpostavimo da je eK(A) = D i eK(I) = B pa dobivamo da je b = 3 i
8a+3 ≡ 1 (mod 26). Kongruenciju rjesavamo tako da uvrstavamo sve dopustive inver-
tibilne a-ove, te provjeravamo koji od njih zadovoljava kongruenciju. Tako dobivamo
da je a = 3. Dakle, funkcije sifriranja i desifriranja su redom
eK(x) = 3x + 3 (mod 26),
dK(y) = 9(y − 3) (mod 26).
Primjenom funkcije desifriranja na zadani sifrat, dobivamo otvoreni tekst s umetnutim
dijakritickim znakovima, razmacima i interpunkcijom:
Holod ili Hladnoca ime je novog ruskog supertajnog oruzja koje je kako
tvrdi Vladimir Putin, u stanju srediti americki proturatni stiti, cak i ako
ga Pentagon ikad sagradi.
22
3.3.3. Kriptoanaliza supstitucijske sifre
Kriptoanaliza supstitucijske sifre vrsi se analizom frekvencije slova. Frekvencije
slova sifrata se usporeduje s frekvencijama slova u jeziku na kojem je napisan otvoreni
tekst. Vrlo je vjerojatno da najfrekventnija slova sifrata odgovaraju najfrekventnijim
slovima jezika. Takoder, korisni su i podaci o najcescim bigramima (parovima slova)
i trigramima (nizovima od tri slova) u jeziku. Buduci da radimo s otvorenim tekstom
na hrvatskom jeziku, u nastavku cemo dati podatke o frekvencijama slova, bigrama i
trigrama u hrvatskom jeziku.
A I O E N S R J T U D115 98 90 84 66 56 54 51 48 43 37
K V L M P C Z G B H F36 35 33 31 29 28 23 16 15 8 3
Tablica 3: Frekvencija slova u hrvatskom jeziku u promilima
Najfrekventniji bigrami u hrvatskom jeziku su JE (2.7%), NA (1.5%), RA, ST, AN, NI,
KO, OS, TI, IJ, NO, EN, PR (1.0%), a najfrekventniji trigrami IJE (0.6%), STA, OST,
JED, KOJ, OJE, JEN s frekvencijama izmedu 0.3% i 0.4%. Najfrekventniji reciprocni
bigrami su NA (1.5 %) i AN (%) te NI (1.3 %) i IN (0.9 %).
Primjer 3.4 Dekriptirajte sifrat
TQCWT QCKIQ RWNOQ OBCEW OQVKB UKAPK OQOQB CQPQA
JGDUQ EQORW TSJGR WEQKY WGTWC JKRBI KZGVO GBQ
dobiven supstitucijskom sifrom ako je poznato da je otvoreni tekst na hrvatskom jeziku.
Rjesenje: Dekriptiranjem zapocinjemo frekvencijskom analizom slova i bigrama tako
da za svako slovo u abecedi napisemo sve njegove sljedbenike u sifratu. Za zadnje slovo
u sifratu stavljamo znak *. Na ovaj nacin dobivamo sljedecu tablicu:
A | P, J
B | C, U, C, I, Q
C | W, K, E, Q, J
D | U
F |
G | D, R, T, V, B
H |
I | Q, K
J | G, G, K
23
K | I, B, A, O, Y, R, Z
M |
N | O
O | Q, B, Q, Q, Q, R, G
P | K, Q
Q | C, C, R, O, V, O, B, P, A, E, O, K, *
R | W, W, W, B
S | J
T | Q, Q, S, W
U | K, Q
V | K, O
W | T, N, O, T, E, G, C
X |
Y |
Z | G
Iz tablice sada lako iscitavamo najfrekventnija slova s pripadnim frekvencijama:
Q (13), K (7), O (7), W (7), B, C, G, R, T, E, J,
te najfrekventnije bigrame:
OQ (4), QO (3), RW (3), BC, EQ, JG, QC, TQ, WT.
Buduci da je u hrvatskom jeziku najfrekventnije slovo A, a u zadanom sifratu slovo
Q, pretpostavimo da je e(A) = Q. Takoder uocavamo reciprocne bigrame OQ i QO,
sto nas navodi na e(N) = O. Vecina pojavljivanja slova R vezana je uz bigram RW,
a W je jedno od najfrekventnijih slova, pa pretpostavimo da je e(J) = R i e(E) =
W . Pokusajmo otkriti sifrat cestog bigrama ST. Najozbiljniji kandidat je bigram BC.
Uzmimo da je e(S) = B i e(T ) = C. Od najfrekventnijih slova hrvatskom jeziku, jos
nismo odgonetnuli sifrate slova I i O. Glavni kandidati su slova K i G pa uzmimo da
je e(I) = K i e(O) = G. Rezimirajmo ono sto smo dosad pretpostavili:
otvoreni tekst A E I J N O S Tsifrat Q E K R O G B C
Ubacimo ove pretpostavke u polazni sifrat:
TQCWT QCKIQ RWNOQ OBCEW OQVKB UKAPK OQOQB CQPQA
ate ati a je na nst e na is i i nanas ta a
JGDUQ EQORW TSJGR WEQKY WGTWC JKRBI KZGVO GBQ
o a anje oj e ai eo et ijs i o n osa
24
Sada vec imamo dovoljno elemenata otvorenog teksta da mozemo postupno odgoneta-
vati citave rijeci. Konacno dobivamo otvoreni tekst:
Matematika je znanstvena disciplina nastala proucavanjem brojeva i ge-
ometrijskih odnosa.
Alfabet sifrata izgleda ovako:
Q S U V W X Y Z K R I P T O G A F J B C D E H L M N
Uocavamo pojavljivanje rijeci ”kriptografija” unutar alfabeta sifrata. Ovdje se radi o
varijanti supstitucijske sifre koja se naziva Cezarova sifra s kljucnom rijeci. U njoj kljuc
predstavlja kljucna rijec (u ovom slucaju KRIPTOGRAFIJA), te broj (u ovom slucaju
8) koji oznacava poziciju (izmedu 0 i 25) na kojoj pocinjemo pisati kljucnu rijec (bez
ponavljanja slova).
3.4. Vigenereova sifra
Vigenereova sifra je dobila ime po francuskom diplomatu Blaiseu de Vigenereu jer
se u 19. st. otkrice sifre pogresno pripisalo njemu2. Vigenere je objavio 1586. god. knji-
gu Traicte de Chiffres u kojoj se nalazilo sve sto se u to vrijeme znalo o kriptografiji.
Takoder je u toj knjizi opisao sifru koja je kasnije po njemu dobila ime i sifru s auto-
kljucem koju je sam otkrio. Vigenereovu sifra spada u polialfabetske sifre kod kojih se
svako slovo otvorenog teksta moze preslikati u vise razlicitih slova sifrata te je definirana
na sljedeci nacin.
Definicija 3.4 Neka je m fiksan prirodan broj i P = C = K = Zm26. Za kljuc
K = (k1, k2, . . . , km), definiramo
eK(x1, x2, . . . , xm) = (x1 +26 k1, x2 +26 k2, . . . , xm +26 km),
dK(y1, y2, . . . , ym) = (y1 −26 k1, y2 −26 k2, . . . , ym −26 km).
Elementi otvorenog teksta i sifrata su u ovoj sifri blokovi od po m slova.
Primjer 3.5 Sifrirajte otvoreni tekst KRIPTOSUSTAV ako je kljucna rijec OSIJEK.
Rjesenje: Sifriranje zadanog otvorenog teksta zapocinjemo tako da kljucnu rijec ispisu-
jemo onoliko puta koliko je potrebno da se popuni duljina otvorenog teksta. Ilustra-
tivno to mozemo ovako prikazati:
Kljuc: O S I J E K O S I J E KOtvoreni tekst: K R I P T O S U S T A V
2Giovan Battista Bellaso prvi spominje ovu sifru 1553.godine.
25
Numericki ekvivalent kljucne rijeci je kljuc K = (14, 18, 8, 9, 4, 10), a numericki ekviva-
lent otvorenog teksta (10, 17, 8, 15, 19, 14, 18, 20, 18, 19, 0, 21). Sifriranje provodimo
slovo po slovo, zbrajanjem numerickih ekvivalenata slova po modulu 26.
14 18 8 9 4 10 14 18 8 9 4 1010 17 8 15 19 14 18 20 18 19 0 21
+26
24 9 16 24 23 24 6 12 0 2 4 5
Dobivene numericke ekvivalente poistovjetimo sa slovom i dobivamo sifrat YJQYXYG-
MACEF. Primijetimo da se slovo S, koje se pojavljuje dva puta u otvorenom tekstu,
u sifratu prvi puta preslikalo u G, a drugi puta u A.
U ovom primjeru smo kljuc ponavljali za svaki blok od m slova pa prema nacinu na
koji se obraduje otvoreni tekst, ova sifra spada u blokovne sifre. Postoji i varijanta
Vigenereove sifre koja spada u protocne sifre. To je Vigenereova sifra s autokljucem u
kojoj otvoreni tekst generira kljuc. Kljucna rijec se koristi samo za sifriranje prvih m
slova, dok se za sifriranje ostalih slova koriste redom slova od pocetka otvorenog teksta
(npr. kao kljuc za sifriranje (m + 1)-vog slova koristi se prvo slovo otvorenog teksta,
za (m + 2)-go slovo koristi se drugo slovo, itd.).
Primjer 3.6 Sifrirajte otvoreni tekst KRIPTOSUSTAV s autokljucem. Kljucna rijec
je OSIJEK.
Rjesenje: Za sifriranje prvog bloka od 6 slova KRIPTO koristimo kljucnu rijec OSI-
JEK, dok za preostali blok slova SUSTAV koristimo dio otvorenog teksta KRIPTO.
Ilustrativno to mozemo prikazati ovako:
Kljuc: O S I J E K K R I P T OOtvoreni tekst: K R I P T O S U S T A V
Sada je numericki ekvivalent kljucne rijeci kljuc K = (14, 18, 8, 9, 4, 10, 10, 17, 8, 15, 19, 14),
a numericki ekvivalent sifrata ostaje isti (10, 17, 8, 15, 19, 14, 18, 20, 18, 19, 0, 21).
Sifriranje provodimo zbrajanjem numerickih ekvivalenata slova po modulu 26.
14 18 8 9 4 10 10 17 8 15 19 1410 17 8 15 19 14 18 20 18 19 0 21
+26
24 9 16 24 23 24 2 11 0 8 19 9
Dobivene numericke ekvivalente poistovjetimo sa slovom i dobivamo sifrat
YJQYXYCLAITJ.
Pri sifriranju mozemo koristiti tzv. Vigenereov kvadrat koji se sastoji od 26 redaka. U
svakom retku je napisana abeceda, ali tako da je u svakom sljedecem retku abeceda
26
pomaknuta za jedno mjesto ulijevo u odnosu na prethodni redak, tako odgovarajuci
svim kombinacijama Cezarove sifre. Sifriranje se odvija tako da se sifrirano slovo, za
odredeno slovo kljuca i odredeno slovo otvorenog teksta, dobije na presjeku retka u
kojem se nalazi slovo kljuca i stupca u kojem je slovo otvorenog teksta.
U prethodnom smo primjeru slovo K sifrirali kljucem O. Pogledamo stupac koji pocinje
slovom K i redak koji pocinje slovom O. U presjeku je prvo slovo sifrata Y. Zatim slovo
R sifriramo kljucem S na analogan nacin i dobivamo drugo slovo sifrata J. Postupak
ponavljamo i dobivamo sifrat YJQYXYCLAITJ kao i u proslom primjeru.
Desifriranje se odvija tako da slovo kljuca odreduje redak u kojem se nalazi slovo
otvorenog teksta. Polozaj slova sifriranog teksta u tom retku odreduje stupac u kojoj
je slovo otvorenog teksta, a slovo otvorenog teksta se nalazi na vrhu tog stupca. U
prethodnom primjeru prvo slovo sifrat Y smo dobili sifriranjem kljucem O. Pogledamo
redak koji pocinje slovom O te u tom retku pronademo slovo Y. Slovo Y se nalazi u
stupcu koje zapocinje slovom K pa je slovo K prvo slovo otvorenog teksta. Postupak
ponavljamo i dolazimo do otvorenog teksta KRIPTOSUSTAV.
27
3.4.1. Kriptoanaliza Vigenereove sifre
Kriptoanaliza Vigenereove sifre frekvencijskom analizom slova je vrlo otezana.
Za slovo koje se najvise puta ponavlja u sifratu ciji je otvoreni tekst na hrvatskom,
moze se pretpostaviti da odgovara slovu A, jer je slovo A najcesce u hrvatskom jeziku.
Koristenjem Vigenereove sifre, slovo A ce se zamjenjivati razlicitim slovima abecede
i tako onemoguciti frekvencijsku analizu. Buduci da je u razdoblju sifriranja ovom
sifrom jedini dostupan alat za kriptoanalizu bila frekvencijska analiza, Vigenereova
sifra je nazvana ”sifrom koju je nemoguce razbiti”.
Prvi korak kriptoanalize Vigenereove sifre je odredivanje duljine kljucne rijeci metodom
koja koristi tzv. indeks koincidencije. Taj je pojam uveo 1920. god. William Friedman
u knjizi Indeks koincidencije i njegove primjene u kriptografiji, koja se smatra jednom
od najvaznijih u povijesti kriptologije.
Definicija 3.5 Neka je x = x1x2 . . . xn niz od n slova. Indeks koincidencije od x, u
oznaci Ic(x), definira se kao vjerojatnost da su dva slucajna elementa iz x jednaka.
Neka su f0, f1, . . . , f25 redom frekvencije slova A,B,C, . . . , Z u x. Vjerojatnost da je
prvo odabrano slovo A je f0
n, a vjerojatnost da je drugo odabrano slovo A je f0−1
n−1.
Vjerojatnost da prvo odabrano slovo B je f1
n, a vjerojatnost da je drugo odabrano slovo
B je f1−1n−1
. Stoga vrijedi formula
Ic(x) =
∑25i=0 fi(fi − 1)
n(n − 1).
Neka je x neki tekst na hrvatskom jeziku. Oznacimo ocekivane vjerojatnosti pojavlji-
vanja slova A,B, . . . , Z u hrvatskom jeziku redom s p0, p1, . . . , p25 (vidjeti tablicu s
frekvencijama slova u hrvatskom jeziku). Ako je n dovoljno velik, indeks koincidencije
teksta napisanog na hrvatskom jeziku ce biti
Ic(x) ≈25∑
i=0
p2i ≈ 0.064.
Za potpuno slucajni niz r indeks koincidencije ce biti
Ic(r) ≈ 26 · ( 1
26)2 ≈ 0.038.
Ocito je da pomocu indeksa koincidencije lako mozemo razlikovati slucajan tekst od tek-
sta pisanog na hrvatskom jeziku i sifriranom monoalfabetskom supstitucijskom sifrom.
Pretpostavimo sada da imamo sifrat y = y1y2 . . . yn koji je dobiven Vigenereovom
sifrom. Rastavimo y na m podnizova z1, z2, . . . , zm tako da podniz z1 sadrzi sva slova
sifrata, podniz z2 sadrzi svako drugo slovo sifrata, podniz z3 sadrzi svako trece slovo
28
sifrata itd. Ako je m jednak duljini kljucne rijeci, onda su elementi istog podniza
sifrirani pomocu istog slova kljuca te bi indeksi koincidencije Ic(zi), za i = 1, . . . ,m ,
trebali biti priblizno jednaki 0.064. U suprotnom, ako m nije duljina kljucne rijeci, onda
ce zi-ovi izgledati kao slucajni nizovi slova, buduci da su dobiveni pomacima pomocu
razlicitih slova kljuca. Iz toga slijedi da samo trebamo izracunati indekse koincidencija
dobivenih podniza dobivenih za svaki moguci m te ih usporediti sa vrijednoscu indeksa
koincidencije za pretpostavljeni jezik na kojem je napisan otvoreni tekst. Ukoliko se
vrijednosti indeksa priblizno jednaki, pogodili smo duljinu kljucne rijeci.
Nakon utvrdivanja duljine m kljucne rijeci, odredivanje same kljucne rijeci postize se
koristenjem medusobnog indeksa koincidencije dvaju nizova.
Definicija 3.6 Neka su x = x1x2 . . . xn i y = y1y2 . . . yn dva niza od n, odnosno n′
slova. Medusobni indeks koincidencije od x i y, u oznaci MIc(x, y), definira se kao
vjerojatnost da je slucajni element od x jednak slucajnom elementu od y. Ako frekven-
cije od A,B,C, . . . , Z u x i y oznacimo s f0, f1, . . . , f25, odnosno f ′0, f
′1, . . . , f
′25, onda
je
MIc =
∑25i=0 fif
′i
nn′ .
Fiksirajmo jedan podniz, neka to bude z1. Ostale podnizove zj (j = 1 . . .m) sifrirajmo
slovima A,B, . . . , Z, odnosno pomacima za 0, 1, . . . , 25 mjesta. Tako dobivene nizove
oznacimo sa zgj , g = 0, 1 . . . , 25. Sada racunamo medusobni indeks koincidencije pod-
niza z1 sa svakim od nizova zgj po formuli
MIc(z1, zgj ) =
∑25i=0 fif
′i−g
nn′
pri cemu su f ′i−g frekvencije u zg
j (g = 0, 1 . . . , 25).
Modifikacija ove metode se sastoji u tome da umjesto od podniza z1, krecemo s nizom
x koji odgovara tekstu napisanog na hrvatskom jeziku. To znaci da su frekvencijefi
n≈ pi. Medusobni indeks koincidencije niza x i nizova zg
j (g = 0, 1 . . . , 25) racunamo
po formuli
MIc(x, zgj ) =
∑25i=0 pif
′i−g
n′ .
Za g ≡ −kj (mod 26) ovi indeksi ce biti priblizno 0.064.
Prema tome, da bismo odredili j-to slovo kj kljucne rijeci K racunamo za g = 0, 1 . . . , 25
MIc(x, zgj ) =
∑25i=0 pif
′i−g
n′ .
Odredimo h takav da je Mh = max{Mg : g = 0, 1 . . . , 25}, te stavimo kj ≡ −h
(mod 26).
29
Primjer 3.7 Dekriptirajte sifrat
ZMHRZ BKLDI YAYNZ JTKOD ZSMEW EEUSFM JHIQT MLOBN
TDCQZ SLFIH RDNAD VLSVN DVTFF OGIEZN DKFMO WKIHC
DJVEF HRJNN RVJSR RJJDP RCVNK RRZRTL TZTAP EIHCN
OAUOM STH
dobiven Vigenereovom sifrom iz otvorenog teksta na hrvatskom jeziku.
Rjesenje:
Odredujemo duljinu kljucne rijeci pomocu indeksa koincidencije. Indeksi koincidencije
su sljedeci:
m = 1 m = 2 m = 3 m = 4 m = 50.010 0.045 0.036 0.047 0.063
0.041 0.043 0.034 0.0400.039 0.044 0.080
0.042 0.0490.071
Ocito je da se indeksi koincidencije za m = 5 razlikuju od ostalih, pa zakljucujemo da
je duljina kljucne rijeci jednaka 5. Sada odredujemo kljucnu rijec. Za j = 1, 2, 3, 4, 5
izracunavamo vrijednosti M1,M1, . . . ,M25. Izracunate vrijednosti dane su u sljedecoj
tablici.
j=1 0.0374 0.0684 0.0298 0.0247 0.0330 0.0479 0.03690.0456 0.0328 0.0396 0.0423 0.0358 0.0299 0.04500.0428 0.0404 0.0351 0.0378 0.0298 0.0399 0.02790.0478 0.0459 0.0405 0.0209 0.0331
j=2 0.0507 0.0402 0.0356 0.0307 0.0392 0.0337 0.03200.0397 0.0415 0.0387 0.0260 0.0389 0.0394 0.03730.0320 0.0392 0.0490 0.0435 0.0336 0.0288 0.04080.0447 0.0415 0.0321 0.0415 0.0446
j=3 0.0323 0.0512 0.0459 0.0409 0.0312 0.0363 0.04380.0398 0.0378 0.0415 0.0357 0.0355 0.0254 0.03430.0380 0.0480 0.0269 0.0405 0.0382 0.0511 0.02530.0226 0.0378 0.0757 0.0362 0.0272
j=4 0.0576 0.0417 0.0268 0.0305 0.0411 0.0382 0.03370.0353 0.0386 0.0448 0.0322 0.0377 0.0457 0.03680.0174 0.0315 0.0514 0.0478 0.0340 0.0248 0.03780.0473 0.0486 0.0331 0.0378 0.0426
j=5 0.0448 0.0429 0.0225 0.0358 0.0450 0.0607 0.03000.0267 0.0351 0.0658 0.0466 0.0327 0.0351 0.04410.0420 0.0383 0.0249 0.0231 0.0397 0.0361 0.03190.0469 0.0376 0.0239 0.0247 0.0378
30
Iz tablice iscitavamo redom:
Za j = 1 imamo h = 1, M1 = 0.0684, pa je k1 = −1 mod 26 = 25.
Za j = 2 imamo h = 0, M0 = 0.0507, pa je k2 = 0 mod 26 = 0.
Za j = 3 imamo h = 23, M23 = 0.0757, pa je k3 = −23 mod 26 = 3.
Za j = 4 imamo h = 0, M0 = 0.0576, pa je k4 = 0 mod 26 = 0.
Za j = 5 imamo h = 9, M9 = 0.0658, pa je k5 = −9 mod 26 = 17.
Kljucna rijec je ZADAR, a trazeni otvoreni tekst, s umetnutim dijakritickim i inter-
punkcijskim znakovima te razmacima glasi:
Americki drzavnik Thomas Jefferson je izumio kotac za sifriranje. Vise od
sto godina nakon otkrica, Jeffersonov stroj se poceo koristiti u americkoj
vojsci.
Na ovom primjeru pokazali smo da je razbijanje ”sifre koju je nemoguce razbiti” danom
metodom prilicno jednostavno. Medutim, za duze tekstove racunanje indeksa koinci-
dencije bi zahtijevalo puno vremena, stoga je uvodenje racunala u kriptoanalizu Vi-
genereove sifre uvelike pomoglo.
31
4. Kriptografija javnog kljuca
Ideju jednog kriptosustava, potpuno drugacijeg od simetricnog kriptosustava,
iznijeli su 1976. godine Whitfield Diffie i Martin Hellman. Nazvali su ga kriptosustav
javnog kljuca. Ideja se sastoji u tome da se koristi kljuc za sifriranje iz kojeg je prakticki
nemoguce, u nekom razumnom vremenu, izracunati kljuc za desifriranje. U tom slucaju
je kljuc za sifriranje javni. Bilo tko moze sifrirati poruku pomocu njega, ali samo osoba
koja ima odgovarajuci kljuc za desifriranje moze desifrirati tu poruku.
Slika 7: Shema kriptografije javnog kljuca
U svrhu realizacije ideje kriptosustava s javnim kljucem, koriste se tzv. osobne jedno-
smjerne funkcije.
Definicija 4.1 Za funkciju f kazemo da je jednosmjerna funkcija, ako je f lako izracunati,
ali je f−1 tesko izracunati. Ako je f−1 lako izracunati ukoliko nam je poznat neki do-
datni podatak, onda za funkciju f kazemo da je osobna jednosmjerna funkcija.
Kriptosustav s javnim kljucem se definira na sljedeci nacin.
Definicija 4.2 Kriptosustav s javnim kljucem se sastoji od dviju familija funkcija za
sifriranje {eK} i desifriranje {dK}, gdje K prolazi skupom svih mogucih korisnika, sa
svojstvima:
1. Za svaki K je dK inverz od eK.
2. Za svaki K je eK javan, ali je dK poznat samo osobi K.
3. Za svaki K je eK osobna jednosmjerna funkcija.
Kljuc eK se zove javni kljuc, a dK tajni ili osobni kljuc.
Ako osoba A zeli poslati poruku x osobi B, onda prvo osoba B posalje, potpuno
otvoreno, osobi A svoj javni kljuc eB. Pomocu eB, osoba A sifrira svoju poruku i
osobi B posalje sifrat y = eB(x). Na kraju, osoba B desifrira sifrat pomocu svojeg
tajnog kljuca dB i dobiva otvoreni tekst dB(y) = dB(eB(x)) = x.
32
Ako grupa korisnika zeli medusobno komunicirati na ovaj nacin, tada svi korisnici stave
svoje javne kljuceve u neku javnu, svima dostupnu, datoteku. Sada osoba B ne mora
slati svoj javi kljuc osobi A, vec je dovoljno da osoba A iz datoteke procita njegov javni
kljuc i izvrsi sifriranje.
4.1. RSA kriptosustav
Ideju koju su iznijeli Diffie i Hellman, iskoristili su Ronald Rivest, Adi Shamir i
Leonard Adleman i 1977. godine izumili prvi i najsire koristen kriptosustav s javnim
kljucem - RSA kriptosustav. Sigurnost ovog kriptosustava lezi u cinjenici da je fak-
torizacija velikih prirodnih brojeva na produkt dva prosta broja izuzetno teska. RSA
kriptosustav definiramo na sljedeci nacin.
Definicija 4.3 Neka je n = pq, gdje su p i q prosti brojevi. Neka je P = C = Zn i
neka je
K = {(n, p, q, d, e) : n = pq, de ≡ 1 (mod ϕ(n))}.
Za K ∈ K definiramo
eK(x) = xe (mod n), dK(y) = yd (mod n), x, y ∈ Zn.
Vrijednosti n i e su javne, a vrijednosti p, q i d tajne, tj. (n, e) je javni, a (p, q, d) tajni
kljuc.
Sigurnost RSA kriptosustava je u cinjenici da je eK(x) = xe (mod n) jednosmjerna
funkcija. Dodatni podatak koji omogucava desifriranje je poznavanje faktorizacije
n = pq.
Ovdje je ϕ(n) Eulerova funkcija, koja prirodnom broju n pridruzuje broj prirodnih
brojeva manjih od n, koji su relativno prosti s n. U ovom slucaju je
ϕ(n) = ϕ(pq) = ϕ(p)ϕ(q) = (p − 1)(q − 1) = n − p − q + 1.
Provjerimo sada jesu li funkcije eK i dK jedna drugoj inverzne. U dokazu koristimo
Eulerov teorem:
xϕ(n) ≡ 1 (mod n), za (x, n) = 1.
Imamo
dK(eK(x)) ≡ (eK(x))d ≡ (xe)d ≡ xde (mod n).
33
Kako je de ≡ 1 (mod ϕ(n)), postoji prirodan broj t takav da je de = t · ϕ(n) + 1 pa
imamo
xde = xt·ϕ(n)+1 = xt·ϕ(n) · x = [xϕ(n)]t · x.
U ovisnosti od n i x imamo 2 slucaja:
1. (x, n) = 1
Tada je prema Eulerovom teoremu xϕ(n) ≡ 1 (mod n) pa dobivamo
xde ≡ 1t · x ≡ x (mod m).
2. (x, n) 6= 1
Ako je (x, n) = n, tada je xde ≡ 0 ≡ x (mod n). Ako je (x, n) = p, onda je xde ≡ 0 ≡ x
(mod p). Kako je (x, pq) = p, gdje su p i q prosti brojevi, to je (x, q) = 1 pa je prema
Eulerovom teoremu
xϕ(q) = xq−1 ≡ 1 (mod q).
Sada je
xde = (xq−1)(p−1)·t · x ≡ x (mod q).
Konacno je xde ≡ x (mod pq), tj. xde ≡ x (mod n). Slucaj (x, n) = q je analogan. U
svakom slucaju je xde ≡ x (mod n), pa vrijedi dK(eK(x)) = x. 2
Izbor parametara u RSA kriptosustavu vrsimo na sljedeci nacin:
1. Tajno izaberemo dva velika prosta broja p i q, od kojih svaki ima barem 100
znamenki. Obicno se izaberu tako da jedan od njih ima nekoliko znamenki vise od
drugog.
2. Izracunamo n = pq i ϕ(n) = (p − 1)(q − 1).
3. Odaberemo broj e takav da je relativno prost s ϕ(n). Obicno se uzme da je e < ϕ(n).
4. Racunamo broj d takav da je de ≡ 1 (mod ϕ(n)) pomocu prosirenog Euklidovog
algoritma.
Ilustrirajmo na sljedecem primjeru sifriranje i desifriranje u RSA kriptosustavu na
malim parametrima radi jednostavnosti.
34
Primjer 4.1 Osoba A salje osobi B poruku x = 12.
Osoba B bira proste brojeve p = 5 i q = 7 te racuna n = pq = 35 i ϕ(n) = 24. Zatim
odabire broj e koji mora biti relativno prost s 24. Neka je e = 11. Sada racuna broj d iz
kongruencije 11 · d ≡ 1 (mod 24) primjenom prosirenog Euklidovog algoritma (vidjeti
[8]) na brojeve 11 i 24 :
24 = 11 · 2 + 2
11 = 2 · 5 + 1
2 = 1 · 2
Krenuvsi od pretposljednjeg retka
1 = 11 − 2 · 5 = 11 − (24 − 11 · 2) · 5 = 11 − 24 · 5 + 11 · 2 · 5 = 11 · 11 − 24 · 5
osoba B zakljucuje da d = 11 zadovoljava uvjet de ≡ 1 (mod n). Vrijednosti p, q, d
zadrzava za sebe, a vrijednosti n i e salje osobi A ili ih upisuje u javnu datoteku iz koje
ih osoba A moze procitati. Osoba A sada racuna eK(x) = 1211 (mod 35):
1211 = 122 · 123 · 123 · 123 ≡ 4 · 13 · 13 · 13 ≡ 3 (mod 35).
Dakle, dobiveni sifrat je y = eK(x) = 3 te ga osoba A salje osobi B. Osoba B pomocu
broja d racuna dK(x) = 311 (mod 35):
311 = 33 · 34 · 34 ≡ 27 · 11 · 11 ≡ 12 (mod 35)
i dobiva originalnu poruku x = 12.
Buduci da je vrijednost broja n javna, kriptoanaliza RSA kriptosustav je moguca fak-
torizacijom broja n na produkt dva prosta broja sto je izuzetno tesko jer se uzimaju
prosti brojevi od kojih svaki ima barem 100 znamenki. Ako napadac uspije faktori-
zirati broj n, tada moze izracunati ϕ(n) te broj d rjesavajuci kongruenciju de ≡ 1
(mod ϕ(n)). Pretpostavimo da napadac zna sifrat te na sljedecem primjeru pokazimo
kriptoanalizu RSA kriptosustava.
Primjer 4.2 Napadac je doznao da je sifrat y = 793 i n = 1189.
Napadac faktorizira n kao 1189 = 29 · 41 te racuna ϕ(n) = 1120. Zatim odabire broj e
relativno prost s 1120. Neka je e = 23. Sada racuna broj d iz kongruencije 23 · d ≡ 1
(mod 1120) i dobiva d = 487. Sifrat y = 793 desifrira pomocu tajnog kljuca d = 487:
dK(x) = 793487 (mod 1189)
i dobiva originalnu poruku x = 15.
35
5. Zakljucak
Ljudi su od davnina zeljeli sigurno komunicirati pa su stoga razvili metode za
slanje poruka u takvom obliku da ih samo onaj kome su namijenjene moze procitati. Do
proslog stoljeca to su bile metode sifriranja olovkom i papirom ili nekim jednostavnim
pomagalom. Pocetkom 20. stoljeca, izumom slozenih mehanickih i elektromehanickih
uredaja, omoguceno je sofisticiranije i efikasnije sifriranje. Daljnjim izumom elektro-
nickog racunala doslo je do uporabe jos slozenijih kriptografskih metoda. Usporedno
s razvojem kriptografije, razvila se i znanstvena disciplina kriptoanaliza. Daljnim
napretkom tehnologije napredovat ce i kriptografija i kriptoanaliza te se moze ocekivati
razvoj novih metoda i usavrsavanje starih postupaka za provodenje kriptoanalize.
36
Literatura
[1] A. Dujella, M. Maretic, Kriptografija, Element, Zagreb, 2007.
[2] B. Ibrahimpasic, RSA kriptosustav, Osjecki matematicki list, 5(2005), 101.–112.
[3] N. Koblitz, A course in number theory and cryptography; Graduate Texts in Math-
ematics Springer-Verlag, New York, 1994.
[4] B. Pavkovic, B. Dakic, P. Mladinic, Elementarna teorija brojeva, Element, Zagreb,
1994.
[5] J. Stillwell, Elements of Number Theory; Undergraduate Texts in Mathematics
Springer-Verlag, New York, 2003.
[6] http://os2.zemris.fer.hr/algoritmi/simetricni/2005 skoric/seminar/index.html
[7] http://web.math.hr/ duje/kript/kriptografija.html
[8] http://web.math.hr/ duje/utb/utblink.pdf
[9] http://web.zpr.fer.hr/ergonomija/2005/galinovic/PovijestKriptografije.pdf
37
Sazetak
Osobama koje sudjeluju u komunikaciji nije uvijek dostupan siguran komunikacijskikanal pa svoje poruke moraju zastititi. Jedan od nacina zastite je upotreba kripto-grafije, znanstvene discipline koja se bavi proucavanjem metoda za slanje poruka utakvom obliku da ih samo onaj kome su namijenjene moze procitati. U radu je opisanaklasicna kriptografija i kriptografija javnog kljuca. Na primjerima je prikazana prim-jena kongruencija u kriptografiji.
38
Abstract
Persons involved in communication don’t have a secure communication channel alwaysso their messages must be protected. One method of protection is the use of crypto-graphy, the scientific discipline that studies methods for sending messages, in a formthat only the person, to whom the message was intended to, can read it. This workdescribes classical cryptography and public key cryptography. Examples that representappliance of the congruence in cryptography are given in this work.
39
Zivotopis
Rodena sam 12. veljace 1986. godine u Osijeku. ”Osnovnu skolu Antuna Mihanovica”zavrsila sam 2000. godine. Iste godine upisala sam ”I. Gimnaziju” u Osijeku koju samzavrsila 2004. godine. Nakon zavrsetka srednje skole, upisala sam ”Preddiplomski studijmatematike” na Odjelu za matematiku. Po zavrsetku trogodisnjeg studija, 2007. godineupisujem diplomski studij sa smjerom ”Financijska i poslovna matematika”, takoderna Odjelu za matematiku.