0% found this document useful (0 votes)
87 views118 pages

Kripto Serb

This document is a Serbian language textbook on cryptography. It covers introductory topics in cryptography including basic concepts, a brief history, an overview of number theory fundamentals, simple cipher systems, modern stream ciphers, finite fields, the RC4 cipher, random ciphers, AES, block cipher attacks, linear and differential cryptanalysis, the Rijndael cipher paradox, factorization, the discrete logarithm problem, and cryptanalysis. It provides an overview of the key topics that will be examined in the cryptography course.

Uploaded by

Dejan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views118 pages

Kripto Serb

This document is a Serbian language textbook on cryptography. It covers introductory topics in cryptography including basic concepts, a brief history, an overview of number theory fundamentals, simple cipher systems, modern stream ciphers, finite fields, the RC4 cipher, random ciphers, AES, block cipher attacks, linear and differential cryptanalysis, the Rijndael cipher paradox, factorization, the discrete logarithm problem, and cryptanalysis. It provides an overview of the key topics that will be examined in the cryptography course.

Uploaded by

Dejan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 118

Kriptografija

Miodrag ivkovi
6 aprel 2017 g.

Sadraj
1 Uvod 4
2 Osnovni pojmovi 4
3 Istorija 6
4 Pregled osnova teorije brojeva 7
5 Jednostavni xifarski sistemi 14
6 Savremene protoqne xifre 16
7 Konaqna po a 17
8 RC4 18

9 Samosinhronixua protoqna xifra 20


10 Sluqajna xifra 21
11 Konaqna po a II 21

12 AES 24
12.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
12.2 Uproxeni AES . . . . . . . . . . . . . . . . . . . . . . . . . . 24
12.2.1 Konaqno po e . . . . . . . . . . . . . . . . . . . . . . . . 24
12.2.2 Tabela S . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
12.2.3 Proxirivae k uqa . . . . . . . . . . . . . . . . . . . . 26
12.2.4 Algoritam SAES . . . . . . . . . . . . . . . . . . . . . . 27
12.2.5 Dexifrovae . . . . . . . . . . . . . . . . . . . . . . . . 29
12.2.6 Primer xifrovaa . . . . . . . . . . . . . . . . . . . . 30
12.3 Kompletan AES . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
12.4 AES kao kombinovana xifra . . . . . . . . . . . . . . . . . . . 31
12.5 Naqini korixea blokovskih xifri . . . . . . . . . . . . . 31
12.6 Analiza uproxenog algoritma AES . . . . . . . . . . . . . . 32
1
12.7 Objaxee konstrukcije AES . . . . . . . . . . . . . . . . . . 33
12.8 Sigurnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
12.9 Efikasnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
13 Napadi na blokovske xifre 34
13.1 Potpuna pretraga i susret u sredini . . . . . . . . . . . . . . 34
14 Stepenovae ponov enim kvadriraem 35
15 Vremenska sloenost algoritama 36
16 Sistemi sa javnim k uqem 41
16.1 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
16.2 Problem diskretnog logaritma u konaqnom po u . . . . . . . 44
16.3 Protokol usaglaxavaa k uqa Difi{Helman . . . . . . . . . 44
17 Mae korixeni xifarski sistemi sa javnim k uqem 45
17.1 RSA kao algoritam za xifrovae poruka . . . . . . . . . . . 45
17.2 ElGamalov algoritam za xifrovae . . . . . . . . . . . . . . . 45
17.3 Razmena k uqeva Mesi-Omura . . . . . . . . . . . . . . . . . . . 46
18 Eliptiqke krive 47
18.1 Problem diskretnog logaritma sa eliptiqkim krivama . . . 51
18.2 Sistemi sa eliptiqkim krivama . . . . . . . . . . . . . . . . . 53
18.2.1 Sistem analogan PUKDH . . . . . . . . . . . . . . . . . 53
18.2.2 Sistem analogan ElGamalovoj razmeni poruka . . . . . 54
19 Hex funkcije, MD5, kodovi za autentikaciju (MAC ) 55
19.1 Hex algoritam MD5 . . . . . . . . . . . . . . . . . . . . . . . . 56
19.1.1 Poqetno stae registara . . . . . . . . . . . . . . . . . . 56
19.1.2 Qetiri funkcije . . . . . . . . . . . . . . . . . . . . . . 56
19.1.3 Konstante . . . . . . . . . . . . . . . . . . . . . . . . . . 57
19.1.4 Oznake za rotaciju . . . . . . . . . . . . . . . . . . . . . 57
19.1.5 Ostale oznake . . . . . . . . . . . . . . . . . . . . . . . . 57
19.1.6 Izraqunavae f . . . . . . . . . . . . . . . . . . . . . . . 57
19.1.7 Objaxee . . . . . . . . . . . . . . . . . . . . . . . . . . 58
19.1.8 Hex algoritam . . . . . . . . . . . . . . . . . . . . . . . 59
20 Potpisi i autentikacija 60
20.1 Potpisi pomou RSA . . . . . . . . . . . . . . . . . . . . . . . 60
20.2 El Gamalov potpis . . . . . . . . . . . . . . . . . . . . . . . . . 62
20.3 Xnorov postupak autentikacije i potpisa . . . . . . . . . . . 63
20.4 Vremenski peqat . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
20.5 KERBEROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
20.6 PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
20.6.1 Sertifikati . . . . . . . . . . . . . . . . . . . . . . . . . 65
20.6.2 PGP i mrea poverea . . . . . . . . . . . . . . . . . . 67
2
20.7 Sigurnost na internetu . . . . . . . . . . . . . . . . . . . . . . 68
20.7.1 SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
20.7.2 IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
20.8 Uprav ae k uqevima . . . . . . . . . . . . . . . . . . . . . . . 70
20.9 Kvantna kriptografija . . . . . . . . . . . . . . . . . . . . . . 71
20.10De ee tajne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
21 Kriptoanaliza 73
21.1 Vinerova xifra . . . . . . . . . . . . . . . . . . . . . . . . . 75
21.1.1 Test Kaziskog . . . . . . . . . . . . . . . . . . . . . . . . 76
21.1.2 Fridmanov test . . . . . . . . . . . . . . . . . . . . . . . 77
21.1.3 Odreivae k uqa . . . . . . . . . . . . . . . . . . . . . 79
21.2 Kriptoanaliza modernih protoqnih xifara . . . . . . . . . . 80
21.2.1 Generator sluqajnih brojeva b/p . . . . . . . . . . . . . 80
21.3 Pomeraqki registar sa linearnom povratnom spregom . . . . 82
22 Linearna i diferencijala kriptoanaliza 87
22.1 1SAES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
22.2 Linearna kriptoanaliza . . . . . . . . . . . . . . . . . . . . . . 88
22.3 Linearna kriptoanaliza 1SAES . . . . . . . . . . . . . . . . . 89
22.4 Odreivae jednaqina . . . . . . . . . . . . . . . . . . . . . . . 89
22.5 Napad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
22.5.1 Brzina napada . . . . . . . . . . . . . . . . . . . . . . . . 94
22.6 Diferencijalna kriptoanaliza . . . . . . . . . . . . . . . . . . 94
23 Roendanski paradoks 98
24 Faktorizacija 101
24.1 Fermaova faktorizacija n . . . . . . . . . . . . . . . . . . . . 102
24.2 Baze faktora . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
24.3 Faktorizacija pomou verinih razlomaka . . . . . . . . . . 103
24.4 Faktorizacija pomou eliptiqkih krivih . . . . . . . . . . . 104
24.5 Po e brojeva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
24.6 Sito u po u brojeva . . . . . . . . . . . . . . . . . . . . . . . . . 108
25 Rexavae problema diskretnog logaritma u F∗q 110
25.1 Digresija: upotreba kineske teoreme o ostacima za dexifrovae
RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
25.2 Polig-Helmanov algoritam . . . . . . . . . . . . . . . . . . . . 110
25.3 Algoritam za izraqunavae indeksa . . . . . . . . . . . . . . . 112
26 Zadaci 114

3
Osnova za ovaj kurs je tekst lekcija E. Schaefera (univerzitet Santa
Klara u Kaliforniji) An introduction to cryptography,
http://math.scu.edu/˜eschaefe/crylec.pdf. Izvrxena su samo minimalna prilagoavaa,
pre svega jeziqka. Potrebno predznae je minimalno.
Alisa eli da poxa e poruku Bobanu, ali tako da izbegne da radoznala
Cica (protivnik, neprijate , koja moe da snima tue poruke) moe da
razume tu poruku. Zbog toga Alisa xifruje poruku pre slaa. Boban dexifruje
prim enu poruku. U toku prvog dela kursa (kriptografija ) analiziraemo
ove dve aktivnosti, xifrovae i dexifrovae. Ako Cica presretne poruku,
onda e ona pokuxati da razbije xifru i dekriptira (proqita) poruku;
u drugom delu kursa baviemo se algoritmima povezanim sa razbijaem
xifri, odnosno kriptoanalizom.
Literatura:
Menezes, Oorshot, Vanstone, Handbook of Applied Cryptography
B. Schneier, Applied Cryptography, II izdanje, 1996.
D. Stinson, Cryptography - Theory And Practice, III izd, CRC 2006.
N. Koblitz, A course in number theory and cryptography, Springer, 1987.
A. G. Konheim, Computer Security and Cryptography, Wiley, 2007.

A. Trifoni: Xifre i prisluxkivae 1-3, Plato 2002.


D. Kahn, The CodeBreakers, 1973.

1 Uvod
Posle pregleda osnovnih pojmova iz kriptologije, nekoliko primera iz
istorije kriptografije i osnovnih pojmova iz teorije brojeva, u ovom kursu
razmatraemo nekoliko jednostavnih xifarskih sistema, primere kriptoanalize
i neke savremene xifarske sisteme.
2 Osnovni pojmovi
Otvoreni tekst, OT je poruka koju treba poslati, npr. ZDRAVO.
Xifrat, ST je xifrovana poruka, npr. XQABER.
Xifrovae je transformacija otvorenog teksta u xifrat.
Dexifrovae je inverzna transformacija xifrata u otvoreni tekst.
Kodirae transformixe otvoreni tekst u niz cifara ili bita. Na primer,
ako velika slova (engleske) abecede kodiramo sa A→ 0, . . . Z→ 25, onda se
req ZDRAVO kodira sa 25 3 17 0 21 14. U praksi se qesto koristi ASCII kod,
koji svaku simbol predstav a sa 8 bita, npr. A → 01000001, B → 01000010,
a → 01100001, 0 → 00110000, ? → 00111111, i sl.
Dekodirae transformixe niz cifara ili bita u polazni tekst. U
kodirau i dekodirau nema niqega tajnog.
Protoqna xifra transformixe otvoreni tekst simbol po simbol, odnosno
najqexe bit po bit.

4
Blokovska xifra primeuje se na simbole otvorenog teksta grupisane
u blokove. To mogu da budu npr. bigrami | parovi slova (kao xto je
TI), odnosno trigrami | trojke slova. AES (skraenica od Advanced
radi sa blokovima od po 128 bita (odnosno 16 znakova).
Ako algoritam xifrovaa radi sa bigramima, onda on moe (ne mora) da
Encryption Standard)

uvek TI zameuje npr. sa AG, odnosno TE sa LK.


Xifra premextaa premexta (permutuje) slova (znakove, bite).
Xifra zamene zameuje slova (znakove, bite) drugim, ne meajui im
redosled.
Kombinovana xifra primeuje naizmeniqno premextaa i zamene.
Podela na protoqne i blokovske xifre je uslovna.
Xifarski sistem (ili samo sistem) je par qiji su elementi algoritam
xifrovaa i algoritam dexifrovaa. Ovi algoritmi skoro uvek zavise
od posebnog parametra, koji se zove k uq. K uq je parametar kojim se bira
konkretna xifarska transformacija u okviru izabranog sistema.
Simetriqni sistem podrazumeva upotrebu istog tajnog k uqa za xifro-
vae i dexifrovae. Alisa i Boban moraju unapred da se dogovore koji
k uq e koristiti.
Asimetriqni sistem (sistem sa javnim k uqem) podrazumeva da Ali-
sa i Boban objave (publikuju) svoje k uqeve za xifrovae, a da u najveoj
tajnosti quvaju svoje k uqeve za dexifrovae.
Kriptoanaliza je proces pomou koga Cica pokuxava da xifrat trans-
formixe u odgovarajui otvoreni tekst, ne znajui k uq.
Dekriptirae je (makar i delimiqno) uspexna kriptoanaliza.
Alisa je poxi alac xifrovane poruke. Boban je en primalac. Cica
prisluxkuje kanal veze i pokuxava da proqita xifrovanu poruku.
Uobiqajene pretpostavke:
1. Xifrovae i dexifrovae treba da budu jednostavni za regularne
uqesnike, Alisu i Bobana. Dekriptirae treba da bude teak problem.
2. Sigurnost i praktiqnost xifarskog sistema su skoro uvek protiv-
reqni zahtevi.
3. Pretpostav a se da Cica zna deta e primeenog xifarskog sistema,
a da ne zna samo k uq.

5
3 Istorija
Spartanska xifra Skitale (400 godina p.n.e.) Ovo je primer xifre premextaa.
Slova poruke ispisuju se na dugaqkoj papirnoj traci, koja se omotava oko
xtapa. Dijametar xtapa je k uq za xifrovae.
-----------------------------
/T/R/A/K/A/ / / \
/S/E/ /O/M/O/ | |
/T/A/V/A/ / / \ /
-----------------------------
Cezarova xifra. Xifra zamene, koja svako slovo zameuje treim slovom
udesno (du abecede) od ega. Ako se radi o engleskoj abecedi, onda su
zamene A → D, B → E, ... Z → C . Xifrat HAL odgovara poruci IBM
("Odiseja u svemiru 2001") (ovde se vrxi pomerae za jedno slovo udesno).
Plejferova xifra. Primeivana je oko 1910-20. godine u Burskom ratu,
prvom svetskom ratu. To je jedna od prvih xifara koja je obraivala
bigrame. To je istovremeno i xifra zamene. Na primer, za k uq PALMER-
STON formira se tabela
P A L M E
R S T O N
B C D F G
H IJ K Q U
V W X Y Z
Da bi se xifrovao par SF posmatra se pravougaonik kome su temena ova dva
slova; ostala dva temena pravougaonika su xifrat OC. Redosled je odreen
qienicom da su S i O u istoj vrsti kao F i C. Ako su dva slova otvorenog
teksta u istoj vrsti, onda se svako slovo zameuje slovom sa egove desne
strane. Tako SO postaje TN, a BG postaje CB. Ako su dva slova otvorenog
teksta u istoj koloni, onda se svako slovo zameuje slovom ispod sebe. Tako
IS postaje WC, a SJ postaje CW. Dvostruka slova razdvajaju se slovom X,
pa se tako otvoreni tekst BALLOON transformixe u BA LX LO ON pre
xifrovaa. Svako slovo J u tekstu zameuje se slovom I (tako se broj
razliqitih slova smauje na 25).
ADFGVX.Ovu xifru koristili su Nemci u prvom svetskom ratu. Zasniva
se na primeni fiksne tabele
A D F G V X
A K Z W R 1 F
D 9 B 6 C L 5
F Q 7 J P G X
G E V Y 3 A N
V 8 O D H 0 2
X U 4 I S T M
Naredno slovo koje treba xifrovati se pronalazi u tabeli, pa se zameuje
parom oznaka (vrsta, kolona). Tako otvoreni tekst PRODUCTCIPHERS
6
postaje FG AG VD VF XA DG XV DG XF FG VG GA AG XG. Ovo je
faza zamene. Zatim sledi faza premextaa, koja zavisi od k uqa bez
ponov enih slova. Neka je to na primer DEUTCH. Slova se numerixu
prema mestu u abecedi. Rezultat prve faze napixe se ispod k uqa u vixe
vrsta.
D E U T S C H
2 3 7 6 5 1 4
F G A G V D V
F X A D G X V
D G X F F G V
G G A A G X G
Slova se zatim ispisuju redom po kolonama, pri qemu brojevi iznad kolona
treba da qine rastui niz. U ovom primeru xifrat je DXGX FFDG GXGG
VVVG VGFG GDFA AAXA (razmaci se ignorixu).
Za vreme drugog svetskog rata Xenon (Shannon) pokazao je da naizmeniqno
korixee zamena i premextaa daje dobre xifarske sisteme. Sistem
ADFGVX je lox, jer se koristi samo po jedna zamena i premextae, pri
qemu je zamena fiksna (ne zavisi od k uqa). Za vreme drugog svetskog
rata korixene su komplikovane kombinovane xifre, kao xto su nemaqka
ENIGMA i japanska PURPLE, a naprav eni su i raqunari (Colossus) za
razbijae tih xifri. Jox uvek je tajna koje xifre su koristili Amerikanci.
Posle 1970. godine ugroavae bezbednosti raqunara postalo je ozbi-
an problem. Pojavila se potreba za sigurnijim xiframa za komercijalnu
upotrebu. Postalo je mogue realizovati sloene algoritme u jednom qipu,
xto je omoguavalo brzo xifrovae. Porasle su i mogunosti kriptoana-
lize.
Problem je intenzivno analiziran izmeu 1968. i 1976. godine. Godine
1974. pojavila se xifra LUCIFER (IBM), a 1975. DES (skraenica od
Data Encryption Standard). Oba ova sistema su kombinovane xifre. DES
koristi k uq od 56 bita. U emu se naizmeniqno koriste 16 zamena i 15
premextaa. AES koristi k uq od 128 bita, a sastoji se od 10 zamena i
10 premextaa. Godine 1975. pojav uju se sistemi sa javnim k uqem.

4 Pregled osnova teorije brojeva


Neka Z oznaqava skup celih brojeva, Z = {0, ±1, ±2, . . .}. Za cele brojeve
a, b ∈ Z kaemo da a deli b (oznaka a|b) ako je b = na za neko n ∈ Z. Broj a
deli b ako i samo ako je b umnoak a. Tako 3|12 jer je 12 = 4 · 3, 3|3 jer je
3 = 1 · 3, 5| − 5 jer je −5 = −1 · 5, 6|0 jer je 0 = 0 · 6. Ako x|1, koliko je x?
(Odgovor: ±1).
Osobine operatora | :
Ako a, b, c ∈ Z i a|b, onda a|bc. Tako, iz 3|12 sledi 3|60.
Ako a|b i a|c, onda a|b ± c.
Ako a|b i a ̸ |c, onda a ̸ |b ± c.
7
Prosti brojevi su 2, 3, 5, 7, 11, 13, . . ..
Osnovna teorema aritmetike: Svaki broj n ∈ Z, n > 1, moe se na
jedinstveni naqin predstaviti u obliku proizvoda prostih brojeva n =
p p · · · p , gde su α pozitivni celi brojevi. Svi pozitivni delioci
α1 α2 αr

broja n su oblika p p · · · p , gde je 0 ≤ β ≤ α za svako i = 1, 2, . . . , r, pa


1 2 r i
β1 β2

n ima (α + 1)(α + 1) · · · (α + 1) razliqitih delilaca.


βr
1 2 r i i

Na primer, 90 = 2 · 3 · 5 . Da bismo pronaxli sve pozitivne delioce


1 2 r

broja 90,
1 2 1

1 1 1
2 3 5
9
treba da proemo sve mogue puteve sleva udesno: , ,
1·1·1 = 1 1·1·5 = 5
, , , , , ,
1 · 3 · 1 = 3 1 · 3 · 5 = 15 1 · 9 · 1 = 9 1 · 9 · 5 = 45 2 · 1 · 1 = 2 2 · 1 · 5 = 10
, , , .
2 · 3 · 1 = 6 2 · 3 · 5 = 30 2 · 9 · 1 = 18 2 · 9 · 5 = 90
Posledica osnovne teoreme aritmetike: ako je prost broj i , onda
ili . Na primer, poxto , onda ili (u ovom sluqaju
p p|ab

taqno je drugo tvree). Implikacija nije uvek taqna za sloene brojeve:


p|a p|b 3|180 = 4·45 3|4 3|45

4|6 · 2, iako 4 ̸ |6 i 4 ̸ |2.


Neka su a, b ∈ Z pozitivni celi brojevi, od kojih jedan moe biti 0.
Najvei zajedniqki delilac (NZD) a i b (oznaka nzd(a, b)) je najvei celi
≥0

broj d koji deli i a i b. Primetimo da ako d|a i d|b, onda d|nzd(a, b). Na
primer, nzd(12, 18) = 6, nzd(12, 19) = 1. Najvei zajedniqki delilac se
koristi za skraivae (svoee) razlomaka; razlomak 12/19 je sveden.
Ako znamo faktorizacije brojeva a = p p · · · p i b = p p · · · pα1 α2 β1 β2

(neki od eksponenata mogu biti 0), onda je nzd(a, b) = p p · · · p , gde je


αr βr
1 2 r 1 2 r
γ1 γ2

γ = min{α , β }. Na primer, 2520 = 2 · 3 · 5 · 7 i i 2700 = 2 · 3 · 5 · 7 ,


γr
1 2 r

pa je nzd(2520, 2700) = 2 · 3 · 5 · 7 = 180. Primetimo da je 2520/180 = 14,


3 2 1 1 2 3 2 0
i i i

2700/180 = 15 i nzd(14, 15) = 1. Za brojeve kojima je NZD jednak 1 kaemo


2 2 1 0

da su uzajmno prosti.
Neka a mod b oznaqava ostatak pri de eu a sa b; ako je a = qb + r,
0 ≤ r < b, onda je a mod b = r. Na primer, 12 mod 5 = 2, 7 mod 5 = 2.
Rastav ae velikih brojeva na proste qinioce je teak problem. Umesto
pomou rastav aa na qinioce, jednostavan i efikasan naqin za izraqu-
navae NZD je primena Euklidovog algoritma. Koristi se qienica da
je nzd(a, b) = nzd(a mod b, b). Odredimo npr. nzd(329, 119). Najpre delimo
329 sa 119; dobijamo koliqnik 2 i ostatak 91. U svakom narednom koraku
delilac i ostatak postaju naredni de enik i delilac:
329 = 2 · 119 + 91
119 = 1 · 91 + 28
91 = 3 · 28 + 7
28 = 4 · 7 + 0

Posledi ostatak razliqit od 0 je traeni NZD. Ovde je nzd(329, 119) = 7.


8
Niz de ea koji qini Euklidova algoritam moe se iskoristiti da se
predstavi u obliku celobrojne linearne kombinacije nzd(a, b) =
, za neke m, n ∈ Z. U svakom koraku se zameuje mai podvuqeni
nzd(a, b)

broj (qlan niza ostataka):


na + mb

7 = 91 − 3 · 28 zameniti mai
= 91 − 3(119 − 1 · 91) uprostiti
= 4 · 91 − 3 · 119 zameniti mai
= 4(329 − 2 · 119) − 3 · 119 uprostiti
7 = 4 · 329 − 11 · 119

Prema tome, 7 = 4 · 329 − 11 · 119, odnosno n = 4 i m = −11.


Relacija mod. Pored toga xto mod oznaqava binarnu operaciju
(ostatak pri celobrojnom de eu), mod je i oznaka relacije u Z: pixemo
a ≡ b (mod m) ako m|b − a. Drugim reqima, razlika a i b je umnoak m.
Tako je 7 ≡ 2 (mod 5), jer 5|5, 2 ≡ 7 (mod 5), jer 5| − 5, 12 ≡ 7 (mod 5),
jer 5|5, 12 ≡ 2 (mod 5), jer 5|10, 7 ≡ 7 (mod 5), jer 5|0, −3 ≡ 7 (mod 5), jer
5| − 10. Za k = 0 (k = 1, 2, 3, 4) brojevi k, k ± 5, k ± 10, . . . su svi meusobno
kongruentni po modulu 5.
U nekim situacijama uobiqajeno je korixea relacije mod . Qasovnik
koristi aritmetiku mod 12. Na primer, 3 sata posle 11 je 2 sata, jer je
11 + 3 = 14 ≡ 2 (mod 12). Parni brojevi su svi ≡ 0 (mod 2), a neparni su
≡ 1 (mod 2).
Kongruentnost po modulu m je relacija ekvivalencije:
• a ≡ a (mod m)
• ako je a ≡ b (mod m), onda je b ≡ a (mod m)
• ako je a ≡ b (mod m) i b ≡ c (mod m), onda je a ≡ c (mod m).
Zbog toga relacija mod m razbija sve cele brojeve na m disjunktnih
podskupova (klasa ekvivalencije za ovu relaciju). Svaki podskup sadri
taqno jednog predstavnika u intervalu [0, m − 1]. Skup ovih podskupova
oznaqava se sa Z/mZ ili Z . Vidimo da Z ima m elemenata; brojevi
0, 1, . . . m − 1 su predstavnici m elemenata skupa Z .
m m

Osobine kongruencije:
m

1. [sabirae i mnoee u Z ] ako je a ≡ b (mod m) i c ≡ d (mod m),


onda je a ± c ≡ b ± d (mod m) i a · c ≡ b · d (mod m); na primer,
m

mod 5
12, 14 −→ 2, 4
+↓ ↓+
mod 5
26 −→ 1

Drugim reqima, relacija mod je saglasna sa operacijama +, − i


·. Ova qienica omoguuje izvrxavae ovih operacija u Z . Neka je
m

9
. Tada je Z/5Z = {0, 1, 2, 3, 4} = {0, 1, 2, 3, 4} (zbog jednostavnosti
poistoveujemo elemente Z/5Z sa ihovim predstavnicima | brojevima).
m=5

U Z/5Z je 2 · 3 = 1, jer je 2 · 3 = 6 ≡ 1 (mod 5); 3 + 4 = 2, jer je


3 + 4 = 7 ≡ 2 (mod 5); 0 − 1 = 4, jer je 0 − 1 ≡ 4 (mod 5). Tablica
sabiraa u Z : 5
0 1 2 3 4
0 0 1 2 3 4
1 1 2 3 4 0
2 2 3 4 0 1
3 3 4 0 1 2
4 4 0 1 2 3
2. [Promena modula kongruencije] Ako je a ≡ b (mod m) i d|m, onda
a ≡ b (mod d). Tako iz 12 ≡ 2 (mod 10) sledi 12 ≡ 2 (mod 5).

3. [Inverz] Neki element x ∈ Z ima multiplikativni inverz (1/x) =


x u Z ako je nzd(x, m) = 1: poxto se nzd(x, m) = 1 izrazi u obliku
m
−1

celobrojne linearne kombinacije 1 = ax + bm, vidi se da je ax ≡ 1


m

(mod m). S druge strane, ako je nzd(x, m) = d > 1, onda x nema inverz
po modulu m: proizvod xa za proizvo ni celi broj a de iv je sa
d pa ne moe biti jednak 1. Skup elemenata Z koji imaju inverze
(odnosno skup brojeva uzajamno prostih sa m) oznaqava se sa Z . Na
m

primer 1/2 = 2 ≡ 3 (mod 5), jer je 2 · 3 ≡ 1 (mod 5).


−1
m

U skupu Z = {0, 1, . . . , 8} mogu da se koriste operacije +, −, ·. U


skupu Z = {1, 2, 4, 5, 7, 8} mogu da se koriste operacije · i /.

9

Da bismo pronaxli inverz 7 po modulu 9, odnosno elemenat 7 ∈


9
−1

Z , najpre primeujemo Euklidov algoritam za odreivae nzd(9, 7)


(iako znamo da je taj NZD jednak 1):


9

9 = 1·7+2
7 = 3·2+1
2 = 2·1+0

Zatim se inverz odreuje prelazei ovaj niz jednakosti unazad:


1 = 7−3·2
1 = 7 − 3(9 − 7)
1 = 4·7−3·9

Posmatrajmo ovu jednakost po modulu 9 (to moemo jer je a ≡ a


(mod m)). Dobijamo 1 = 4 · 7 − 3 · 9 ≡ 4 · 7 − 3 · 0 ≡ 4 · 7 (mod 9).
Prema tome, 1 ≡ 4 · 7 (mod 9) i 7 = 1/7 = 4 u Z .
−1

Qemu je jednako 2/7 u Z ? 2/7 = 2 · 1/7 = 2 · 4 = 8 ∈ Z . Prema tome,


9

2/7 ≡ 8 (mod 9). Primetimo da je 2 ≡ 8 · 7 (mod 9), jer 9|2 − 56 = −54.


9 9

10
Broj 6 nema inverz po modulu 9, jer iz 6x ≡ 1 (mod 9), sledi 9|6x − 1,
odnosno 3|6x−1, odnosno 3|1 (zbog 3|6x), xto nije taqno. Dakle, 6 nema
inverz po modulu 9.
4. [De ee u Z ] Ako je a ≡ b (mod m), c ≡ d (mod m) i nzd(c, m) = 1

(iz qega sledi i nzd(d, m) = 1), onda je ac ≡ bd (mod m), odnosno


m
−1 −1

a/c ≡ b/d (mod m). Prema tome, de ee je dozvo eno ukoliko je
de enik uzajamno prost sa modulom m, odnosno invertibilan je po
modulu m.
5. [Rexavae kongruencije] Potrebno je za date a, b, m po x rexiti
kongruenciju ax ≡ b (mod m).
• Ako je nzd(a, m) = 1, onda su rexea svi brojevi x ≡ a b −1

(mod m).
• Ako je nzd(a, m) = g > 1, onda kongruencija ima rexea ako
g|b. Tada je kongruencija ekvivalentna sa ax/g ≡ b/g (mod m/g).
Poxto je sada nzd(a/g, m/g) = 1, rexea su x ≡ (a/g) (b/g)
−1

(mod m/g).
• Ako je nzd(a, m) = g > 1 i g ̸ |b, onda kongruencija nema rexea.
Sledei primeri ilustruju ova tri sluqaja:
• Rexiti kongruenciju 7x ≡ 3 (mod 10). Poxto je nzd(7, 10) = 1, rexee
je ≡ 7 · 3 (mod 10). Odreivae 7 (mod 10): 10 = 7 + 3, 7 = 2 · 3 + 1,
−1 −1

pa je 1 = 7 − 2(10 − 7) = 3 · 7 − 2 · 7. Prema tome, 1 ≡ 3 · 7 (mod 10) i


1/7 ≡ 3 ≡ 7−1
(mod 10). Dakle, x ≡ 3 · 3 ≡ 9 (mod 10). Rexee je skup
pozitivnih brojeva sa cifrom jedinica 9 i skup negativnih brojeva
sa cifrom jedinica 1.
• Rexiti kongruenciju 6x ≡ 8 (mod 10). Poxto je nzd(6, 10) = 2, i 2|8,
rexea postoje. Kongruencija je ekvivalentna sa 3x ≡ 4 (mod 5), pa
je x ≡ 4 · 3 (mod 5). Poxto je 3 ≡ 2 (mod 5), dobija se x ≡ 4 · 2 ≡ 3
−1 −1

(mod 5). Drugim reqime, x = 3 + 5n, gde je n ∈ Z, odnosno x ≡ 3


(mod 10) ili x ≡ 8 (mod 10) (kongruencija ima dva rexea po modulu
10).
• Rexiti 6x ≡ 7 (mod 10). Ova kongruencija nema rexea, jer je nzd(6, 10) =
2 i 2 ̸ |7.
Naravno, inverzija se ne mora vrxiti pomou Euklidovog algoritma.
Neka je potrebno odrediti inverze svih elemenata Z . Celi brojevi koji

su kongruentni sa 1 po modulu 17 su oblika 17n + 1. Moemo da rastavimo


17

na qinioce nekoliko takvih brojeva. Prvih nekoliko prirodnih brojeva


oblika 17n+1 su 18, 35, 52. Poxto je 18 = 2·9, bie 2·9 ≡ 1 (mod 17) i 2 ≡
−1

9 (mod 17), 9 ≡ 2 (mod 17). Sliqno, iz 18 = 3·6, sledi da su brojevi 3 i 6


−1

su uzajamno inverzni po modulu 17. Zbog jednakosti 35 = 5 · 7 su brojevi 5 i


7 meusobno inverzni. Sliqno, 52 = 4·13. Da e, 18 = 2·9 ≡ (−2)(−9) ≡ 15·8

11
i 18 = 3 · 6 = (−3)(−6) ≡ 14 · 11. Sliqno, 35 = 5 · 7 = (−5)(−7) ≡ 12 · 10.
Primetimo da je 16 ≡ −1 i 1 = (−1)(−1) ≡ 16 · 16. Dakle, odredili smo
inverze svih elemenata Z . ∗

Jox jedno vebae: treba dokazati da x − x − 1, x ∈ Z, nikad nije


17

jednako kvadratu nekog celog broja. Zaista, kvadrati celih brojeva su ≡


3

0 , 1 , 2 (mod 3) ≡ 0, 1, 1 (mod 3). S druge strane, kongruencija x −x−1 ≡


2 (mod 3) vai za svako x: 0 − 0 − 1 ≡ 2, 1 − 1 − 1 ≡ 2, 2 − 2 − 1 ≡ 2.
2 2 2 3

Kineska teorema o ostacima. Neka su m , m ,..., m , u parovima


3 3 3

uzajamno prosti prirodni brojevi. Sistem kongruencija x ≡ a (mod m ), 1 2 r

x ≡ a (mod m ),..., x ≡ a (mod m ), ima jedinstveno rexee po modulu


1 1

m = m m ...m .
2 2 r r

Primer: ako je x ≡ 1 (mod 7) i x ≡ 2 (mod 4), onda je x ≡ 22 (mod 28).


1 2 r

Jedan zanim iv primer. Poslede tri cifre kvadrata broja 6378000 su


000. Ustvari, to je taqno za bilo koji celi broj kome su tri poslede cifre
000. Sliqno tvree taqno je i za brojeve kojima su tri poslede cifre
625; kvadrat tih brojeva zavrxava se isto sa 625. Da li postoji jox neki
trocifreni broj sa istom osobinom? Potrebno je da reximo kongruenciju
x ≡ x (mod 1000). Umesto e moemo da reximo x ≡ x (mod 8) i x ≡ x
(mod 125). Neposredno se proverava da su rexea ovih kongruencija x ≡
2 2 2

0, 1 (mod 8) x ≡ 0, 1 (mod 125). Tako dobijamo qetiri rexea:

• x ≡ 0 (mod 8) i x ≡ 0 (mod 125) daju x ≡ 0 (mod 1000);


• x ≡ 1 (mod 8) i x ≡ 1 (mod 125) daju x ≡ 1 (mod 1000);

• x ≡ 1 (mod 8) i x ≡ 0 (mod 125) daju


• x ≡ 625 (mod 1000); x ≡ 0 (mod 8) i x ≡ 1 (mod 125) daju x ≡ 376
(mod 1000). Zaista, 376 = 141376. 2

Sada emo videti algoritam za odreivae broja x. Neka je m = m m . . . m ,


i neka je b ≡ (m/m ) (mod m ), i = 1, 2, . . . , r (ovi inverzi postoje jer je
−1
1 2 r

nzd(m/m , m ) = 1).
i i i
i i

• Potreban nam je izraz koji je kongruentan sa a po modulu m , i


kongruentan sa nula po ostalim modulima m , i ̸= 1. Tu osobinu ima 1 1

izraz a (m/m )b , 1 1 1
i

• Sliqno, potreban nam je izraz koji je kongruentan sa a (mod m ),


odnosno kongruentan sa nula po ostalim modulima m . Tu osobinu 2 2

ima izraz a (m/m )b . 2 2 2


i

• ...

• Na kraju, potreban nam je izraz koji je kongruentan sa a (mod m ),


odnosno kongruentan sa nula po ostalim modulima m . Tu osobinu ima r r

izraz a (m/m )b . r r r
i

12
Dakle, traeni ostatak x je
x = a1 (m/m1 )b1 + a2 (m/m2 )b2 + . . . + ar (m/mr )br (mod m).

Primer. Rexiti x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 9 (mod 11). Poxto


se izraqunaju brojevi
b1 = (5 · 11)−1 (mod 3) = 1−1 (mod 3) = 1,

b2 = (3 · 11)−1 (mod 5) = 3−1 (mod 5) = 2,


b3 = (3 · 5)−1 (mod 11) = 4−1 (mod 11) = 3,
dobija se da je
x = 2(5 · 11)1 + 3(3 · 11)2 + 9(3 · 5)3 = 713 ≡ 53 (mod 165).

Ojlerova funkcija . Neka n ∈ Z . Neka je Z = {a | 1 ≤ a ≤ ∗

n, nzd(a, n) = 1}. Ovaj skup je grupa za mnoee (skup je zatvoren za


φ + n

mnoee; mnoee je asocijativno, 1 je neutralni element, i svaki element


ima inverz). Na primer, Z = {1, 5, 7, 11}. Neka je φ(n) = |Z |. Na primer,
∗ ∗

φ(12) = 4, φ(5) = 4 i φ(6) = 2. Ako je p je prost broj, onda je φ(p) = p − 1.


12 n

Qemu je jednako φ(5 )? Skup Z dobija se od Z izbacivaem umnoaka


5. Umnoaka 5 ima 125/5, pa je φ(125) = 125 − 25. Ako je r ≥ 1, a p je prost


3
125 125

broj, onda je φ(p ) = p (1 − ) = p (p − 1); specijalno, φ(p) = p − 1.


1

Za ostale prirodne brojeve se vrednost Ojlerove funkcije moe iz-


r r r−1
p

raqunati korixeem qienice da ako je nzd(m, n) = 1, onda φ(mn) =


φ(m)φ(n). Zaista, za proizvo ni celi broj z vai da je nzd(z, mn) = 1 ako
i samo ako je nzd(z, m) = 1 i nzd(z, n) = 1. Na osnovu kineske teoreme o
ostacima svakom paru x, y ostataka po modulima m, n, uzajamno prostih sa
tim modulima, jednoznaqno odgovara ostatak z po modulu mn, takav da je
z ≡ x (mod m) i z ≡ y (mod n). Odatle sledi da je nzd(z, mn) = 1 taqno
ako i samo ako je istovremeno taqno nzd(x, m) = 1 i nzd(y, n) = 1). Dakle,
da bi se izraqunalo φ(n), potrebno je n rastaviti na proste qinioce. Na
primer, φ(720) = φ(2 )φ(3 )φ(5) = 2 (2 − 1)3 (3 − 1)(5 − 1) = 192. Uopxte,
ako je n = ∏ p , onda je
4 2 3 1
αi
i

1 −1 r −1
φ(n) = pα
1 (p1 − 1) . . . pα
r (pr − 1).

Mala Fermaova teorema. Ako je p prost i a ∈ Z, onda je a ≡


a (mod p). Ako p ne deli a, onda je a ≡ 1 (mod p). Opxtije, ako je
p

nzd(a, m) = 1, onda je a ≡ 1 (mod m).


p−1

Zaista, skup ostataka {ax (mod m) | x ∈ Z } jednak je skupu Z elementi


φ(m)
∗ ∗

prvog skupa su ispremextani elementi drugog skupa: (ako x prolazi sve


m m

ostatke iz Z onda i ax (mod m) prolazi sve ostatke iz Z ). Zbog toga je



m

m
∏ ∏ ∏
x= ax = aφ(m) x.
x∈Z∗
m x∈Z∗
m x∈Z∗
m

13
Skraivaem sa brojem ∏ x uzajamno prostim sa m dobija se a (m) ≡ 1 φ

(mod m).
x∈Z∗
m

Zbog ove teoreme smo sigurni da je, poxto je 5 prost broj, 2 ≡ 2 (mod 5),
4 ≡ 4 (mod 5), 2 ≡ 1 (mod 5) (ove tri kongruencije mogu se i neposredno
5

proveriti).
5 4

Drugi primer: poxto je φ(10) = φ(5)φ(2) = 4 · 1 = 4, i Z = {1, 3, 7, 9},


bie 1 ≡ 1 (mod 10), 3 ≡ 1 (mod 10), 7 ≡ 1 (mod 10) i 9 ≡ 1 (mod 10).


10

Ako je nzd(c, m) = 1 i a ≡ b (mod φ(m)), pri qemu je a, b ∈ Z , onda je


4 4 4 4

c ≡ c (mod m).
≥0

Na primer, ako treba izraqunti ostatak 2 mod 15, primetimo da


a b

je φ(15) = φ(5)φ(3) = 4 · 2 = 8 i 1004 ≡ 4 (mod 8). Prema tome, 2 ≡


1004

2 ≡ 16 ≡ 1 (mod 15). Drugim reqima, eksponent se moe zameniti svojim


1004

ostatkom po modulu φ(m) ukoliko je osnova uzajamno prosta sa modulom.


4

Odreivae ostatka a mod m pomou kalkulatora. Da bismo odredili


1000 mod 23 unosimo u kalkulator 1000/23 = (vidimo 43.478...) −43 =
(vidimo 0.478...) ×23 = (vidimo 11). Prema tome, 1000 ≡ 11 (mod 23).
Zaxto je ovaj postupak korektan? Kako je 1000 = 43 · 23 + 11, de eem desne
strane sa 23, dobijamo 43 + ; oduzimaem 43 dobija se ; mnoeem sa
11 11

23, dobija se 11.


23 23

5 Jednostavni xifarski sistemi


Neka je P skup moguih otvorenih tekstova. To moe da bude, na primer,
skup {A,B,. . . ,Z} veliqine 26, ili skup {AA,AB,. . . ,ZZ} veliqine 26 . Neka
je C skup moguih xifrata.
2

Xifarska transformacija f je jednoznaqna funkcija koja preslikava P


u C (f ne sme da preslikava dva razliqita otvorena teksta u isti xifrat).
Par transformacija f : P → C i f : C → P je xifarski sistem.
−1

Razmotriemo sada nekoliko jednostavnih xifarskih sistema.


Razmotriemo najprenekoliko jednostavnih xifarskim sistemom koji
transformixu pojedinaqna slova. Slova se mogu zameivati drugim slo-
vima, pri qemu se moe koristiti proizvo na permutacija, na primer A
→ F, B → Q, C → N, . . . Umesto da se permutacija zadaje tablicom, moe
se zadati izrazom koji opisuje proces xifrovaa, odnosno dexifrovaa.
Najjednostavnija transformacija je translacija. Neka P oznaqava slovo
otvorenog teksta (odnosno odgovarajui broj) A = 0, B = 1, . . . , Z =
25. Xifrovae se opisuje jednakoxu C ≡ P + 3 (mod 26); zbog toga
dexifrovae opisuje jednakost P ≡ C−3 (mod 26). Ovo je Cezarova xifra.
Ako je veliqina azbuke N , onda je xifarska operacija translacije C ≡
P + b (mod N ), gde je b k uq za xifrovae, a −b je k uq za dexifrovae.
Da bi mogla da izvrxi kriptoanalizu, Cica koja zna da se koristi
translacija, treba da odredi samo k uq b. U opxtem sluqaju mora se pret-
postaviti da Cica zna tip primeenog xifarskog sistema (ovde | tran-
slacija).

14
Pretpostavimo da nam je na raspolagau velika koliqina xifrata i
da elimo da odredimo b, da bismo mogli da qitamo naredne poruke. Jedan
mogui metod je isprobati svih moguih N = 26 vrednosti za b. Oqekujemo
da e samo jedna od ih davati smislene rezultate dexifrovaa. Drugi
naqin zasniva se korixeu uqestanosti pojav ivaa slova. Znamo da
je E = 4 najqexe slovo (u engleskom jeziku). Ako se ispostavi da je u
prikup enim xifratima najqexe slovo J = 9, onda je najverovatnije
b = 5.
Afina xifarska transformacija je oblika C ≡ aP + b (mod N ), gde
je k uq par (a, b). Pri tome je neophodno da bude nzd(a, N ) = 1, jer bi
u protivnom razliqite otvorene tekstove transformacija preslikavala
u iste xifrate. Zaista, ako je d = nzd(a, N ), g = N/d, onda za svako i,
0 ≤ i < d, vai

a(P + ig) + b ≡ aP + i(a/d) · gd + b ≡ aP + i(a/d) · N + b ≡ aP + b (mod N ).

Primer: C ≡ 4P + 5 (mod 26) (ovde je nzd(4, 26) = 2 ̸= 1). Primetimo


da se i B = 1 i O = 14 preslikavaju u isto slovo 9 = J .
Primer: xifrovae C ≡ 3P +4 (mod 26) je regularno, jer je nzd(3, 26) =
1. Alisa xa e poruku U Bobanu; U = 20 preslikava se u 3 · 20 + 4 =
64 ≡ 12 (mod 26). Prema tome, U = 20 → 12 = M , tj. Alisa xa e Bobanu
slovo M . Boban moe da dexifruje poruku rexavajui jednaqinu po P :
P ≡ 3 (C − 4) (mod 26). Kako je 3 ≡ 9 (mod 26) (jer je 3 · 9 = 27 ≡ 1
−1 −1

(mod 26)), bie P ≡ 9(C − 4) ≡ 9C − 36 ≡ 9C + 16 (mod 26). Poxto je Boban


primio M = 12, on izraqunava 9 · 12 + 16 = 124 ≡ 20 (mod 26).
Uopxte, xifrovau C ≡ aP + b (mod N ) odgovara dexifrovae P ≡
a (C − b) (mod N ). Ovde je (a , −a b) k uq za dexifrovae.
−1 −1 −1

Kako Cica moe da izvrxi kriptoanalizu? U sluqaju N = 26 moe


da isproba svih φ(26) · 26 = 312 moguih k uqeva (a, b), ili da iskoristi
uqestanosti slova u xifratu. Poxto k uq ima dve komponente, potrebno
je imati dve jednaqine. Pretpostavimo da Cica ima na raspolagau veliku
koliqinu xifrata. Tada ona moe da ustanovi da je Y = 24 najqexe, a
H = 7 sledee najqexe slovo u xifratu. Pretpostavimo da se dexifro-
vae vrxi na osnovu P ≡ a C + b (mod 26), gde je a = a i b = −a b.
′ ′ ′ −1 ′ −1

Potrebno je dexifrovati poruku V N LGDO.


Najpre se odreuje (a , b ). Pretpostavimo da su slova Y , H xifrati
′ ′

redom slova E, T , odnosno E = 4 ≡ a 24 + b (mod 26) i T = 19 ≡ a 7 + b


′ ′ ′ ′

(mod 26). Oduzimaem se dobija

17a′ ≡ 4 − 19 ≡ 4 + 7 ≡ 11 (mod 26) (∗)

Prema tome, a ≡ 17 11 (mod 26). Koristei Euklidov algoritam dobija


′ −1

se 17 ≡ 23 (mod 26), pa je a ≡ 23 · 11 ≡ 19 (mod 26). Zameujui ovo


−1 ′

u prethodnu jednakost, dobija se 19 ≡ 19 · 7 + b (mod 26), pa je b ≡ 16


′ ′

(mod 26). Dakle, P ≡ 19C + 16 (mod 26).


Sada moe da se dexifruje V N LGDO, odnosno niz 21 13 11 6 3 14.
Dobija se 19 · 21 + 16 ≡ 25 = Z , 19 · 13 + 16 ≡ 3 = D, ..., pa je rezultat
15
dexifrovaa req ZDRAV O. Pogledajmo jox jednom jednakost (*); mogue
je da se dobije kongruencija kao xto je 2a ≡ 8 (mod 26). ena rexea su

a ≡ 4 (mod 13), pa je a ≡ 4 ili a ≡ 17 (mod 26). Tada je potrebno prove-


′ ′ ′

riti oba rexea, odnosno ustanoviti koje od ih daje smisleni otvoreni
tekst.
Cica sada moe da se lano predstavi kao Alisa, i da poxa e npr.
poruku N EM OJ , odnosno 13 4 12 14 9. Poxto se radi o xifrovau, koristi
se izraz C ≡ aP +b (mod 26). Polazei od P ≡ 19C +16 (mod 26), dobija se
C ≡ 19 (P − 16) ≡ 11P + 6 (mod 26). Xifrat poruke N EM OJ je T Y IEB .
−1

Isti tip sistema mogao bi da se koristi za xifrovae bigrama (parova


slova). Ako se koristi alfabet A-Z, u kome su slova numerisana brojevima
0−25, onda se bigram xy kodira sa 26x+y . Dobijeni broj je izmeu 0 i 675 =
26 − 1. Na primer, T O postaje 26 · 19 + 14 = 508. Da bi se ovo dekodiralo,
deli se 508 sa 26 sa ostatkom, 508 = 26·19+14. Ipak, xifrovae primenom
2

jednakosti C ≡ aP +b (mod 675) je loxe, jer ako se dva bigrama zavrxavaju


istim slovom, onda e se rezultujui xifrati takoe zavrxavati istim
slovom.
Kriptoanaliza je razbijae xifri ili prouqavae razbijaa xifri.
Xifarski sistemi mogu se podeliti u tri kategorije:
1. Oni koji su razbijeni (veina).
2. Oni koji nisu do sada bili analizirani (zato xto su novi i nisu
xiroko korixeni).
3. Oni koji su analizirani, ali nisu razbijeni. (RSA , sistemi koji
koriste diskretni logaritam, trostruki DES , AES ).
Najqexa tri naqina da Cica dobije otvoreni tekst koji odgovara nekom
xifratu su
1. Kraom, kupovinom k uqa, odnosno podmiivaem.
2. Korixeem slabosti u realizaciji, odnosno problema sa protokolom.
Na primer, neko koristi ime suprunika kao k uq, ili neko poxa e
k uq zajedno sa porukom.
3. Kriptoanalizom.
6 Savremene protoqne xifre
Savremene protoqne xifre su simetriqni xifarski sistemi. Alisa i
Boban moraju unapred da se dogovore koji e k uq koristiti. Otvoreni
tekst se najpre transformixe primenom ASCII koda u niz nula i jedinica.
Na primer, otvoreni tekst Go kodira se sa 0100011101101111. Alisa i
Boban odabiraju neki generator pseudosluqajnih brojeva i dogovaraju se
koje e poqetno stae (seed), odnosno k uq koristiti. Izabranim gene-
ratorom oboje izgenerixu isti pseudosluqajni niz bita (niz k uqa ), na
16
primer 0111110110001101. Alisa izraqunava xifrat sabiraem po modulu
dva, bit po bit (0 ⊕ 0 = 0, 0 ⊕ 1 = 1, 1 ⊕ 0 = 1, 1 ⊕ 1 = 0).
Primer:
xifrovae dexifrovae
OT 0100011101101111 ST 0011101011100010
niz k uqa ⊕ 0111110110001101 niz k uqa ⊕ 0111110110001101
ST 0011101011100010 0100011101101111
OT Go
Neka je p i-ti bit otvorenog teksta, k i-ti bit niza k uqa, a c i-ti
bit xifrata. Tada se xifrovae vrxi na osnovu izraza c = p ⊕ k , a
i i i

dexiforvae na osnovu izraza p = c ⊕ k . i i i

Navodimo primer nesigurne protoqne xifre, koja se koristi na perso-


i i i

nalnim raqunarima za xifrovae fajlova. Odabere se neka req, npr. Sue


01010011 01110101 01100101 (k uq). Niz k uqa se dobija periodiqnim po-
nav aem k uqa. Dobra strana ovog sistema je promen iva duina k uqa.
Za odreivae duine k uqa i samog k uqa moe se koristiti qienica
da se obiqno samo oko 1/4 moguih ASCII znakova efektivno koristi u
tekstovima. Zbog toga, ako se pokuxa sa dexifrovaem pogrexnim k uqem,
velika je verovatnoa da e se u rezultatu dexifrovaa pojaviti neki
neprintabilni ASCII znak.
7 Konaqna po a
Ako je p prost broj, oznaqimo sa F = Z po e sa p elemenata {0, 1, . . . , p−1}
sa operacijama +, −, ×. Primetimo da za elemente α ̸= 0 vai nzd(α, p) = 1,
p p

pa se moe odrediti α . Zbog toga se moe deliti bilo kojim elementom


−1

razliqitim od nule. Ovo po e sliqno je po ima racionalnih, realnih ili


kompleksnih brojeva.
U skupu F = {1, 2, . . . , p−1} se mogu koristiti operacije ×, /. Grupa F
∗ ∗

je cikliqka, tj. sadri bar jedan elemenat g takav da je {1, g, g , g , . . .} =


p p

F (ovde to neemo dokazivati). Za elemenat g se takoe kae da je pri-


2 3

mitivan koren po modulu p. Skupovi {g, g , g , . . . , g } i {1, 2, . . . , p−1} su


p

jednaki (iako su ihovi elementi moda napisani razliqitim redosledom).


2 3 p−1

Na primer,
• u grupi F , g = 2: 2 = 2, 2 = 4, 2 = 3, 2 = 1.

5
1 2 3 4

• U ovoj grupi i 3 je generator: 3 = 3, 3 = 4, 3 = 2, 3 = 1.


1 2 3 4

• U grupi F je 2 = 2, 2 = 4, 2 = 1, 2 = 2, 2 = 4, 2 = 1, pa 2 nije

generator.
1 2 3 4 5 6
7

• Za g = 3 dobija se 3 = 3, 3 = 2, 3 = 6, 3 = 4, 3 = 5, 3 = 1, tj. 3
jeste generator.
1 2 3 4 5 6

17
Neki elemenat x ∈ F jeste generator ako i samo ako je egov red (broj

razliqitih elemenata u skupu {x, x , x , . . .}) jednak p − 1.


p

Teorema: Neka je g generator grupe F . Tada je g generator ove grupe


2 3

ako i samo ako je nzd(k, p − 1) = 1.


k
p

Posledica teoreme je da grupa F ima φ(p − 1) generatora. ∗

Dokaz: Pretpostavimo da je nzd(k, p − 1) = 1. Neka je n red elementa


p

g , 1 ≤ n ≤ p − 1. Tada je 1 = (g ) = g . Prema tome, p − 1|kn. Poxto


je nzd(k, p − 1) = 1, bie p − 1|n, pa dakle p − 1 = n. Prema tome, g je
k k n kn

generator.
k

Dokaz u suprotnom smeru: ako je nzd(k, p − 1) = d > 1, onda g nije


generator, jer je (g ) = 1.
k

Pretpostavimo da je p veliki prost broj. Neka je izabran neki generator


k (p−1)/d

g grupe F i neki elemenat h ∈ F . Tada je jako texko odrediti x takvo da


∗ ∗

je g = h, iako znamo da ono postoji. Na primer, u F , uz g = 5, rexavae


p p

5 = 2 ekvivalentno je sa kongruencijom 5 ≡ 2 (mod 7). Ovo je problem


x
7

diskretnog logaritma.
x x

Navodimo primer generatora pseudosluqajnog niza bita, koji je spor, pa


se praktiqno ne koristi. Neka je p veliki prost broj za koji je 2 generator
F ; pretpostavimo da je pored toga i q = 2p + 1 takoe prost broj. Neka

je g generator F . Neka je broj k k uq, pri qemu je nzd(k, 2p) = 1. Neka je


p

s = g ∈ F (pa je 1 ≤ s < q ) i k ≡ s (mod 2), k ∈ {0, 1}. Za i ≥ 1 neka


q

je s = s ∈ F , 1 ≤ s < q i k ≡ s (mod 2), k ∈ {0, 1}. Zbog toga xto je


k
1 q 1 1 1 1

2 generator u F , svi ostaci 2 mod p, 0 ≤ i ≤ p − 1 su razliqiti. Kako je


2
i+1 i q i i i i
∗ i

i p = (q − 1)/2 | ϕ(q), vidi se da su za i = 1, . . . , p svi brojevi s


p
i−1

razliqiti.
k2
s =g
i i

Primer. Broj 2 je generator F (ovo sledi iz qienice da je 2 ̸= 1


i 2 ̸= 1; zaxto?). Broj 2 je takoe i generator F . Neka je k = 11. Tada


28/2
29

je s = 2 = 42, s = 42 = 53, s = 53 = 36, s = 36 = 57, ...pa je k = 0,


28/7
59

k = 1, k = 0, k = 1, ....
11 2 2 2
1 2 3 4 1
2 3 4

8 RC4
je jedna od najpopularnijih protoqnih xifara. en autor je Ronald
slovo R u RSA, 1987). Struktura ovog pseudosluqajnog generatora
RC4

bila je drana u tajnosti, sve dok egov izvorni kod nije (prova en i)
Rivest (

objav en 1994. (Cypherpunks mailing list).


Najpre se bira prirodni broj n; obiqno se obiqno koristi n = 8. Osnovna
komponenta generatora je promen iva tabela S duine 2 , qiji je sadraj
u svakom trenutku neka permutacija brojeva i = 0, 1, . . . , 2 − 1.
n

U fazi pripreme generatora se na osnovu k uqa izraqunava poqetni


n

sadraj niza S | permutacija skupa {0, 1, . . . , 2 −1}. Izraqunavae poqie


tako xto se stavi S = i za i = 0, 1, . . . , 2 −1. Zatim se od k uqa (ponov aem
n

dovo no puta) formira drugi niz K , K , ..., K od 2 n-torki bita


n
i

(koje se takoe smatraju brojevima iz opsega od 0 do 2 − 1). Rad generatora


n
0 1 2n −1
n

18
pri generisau l n-bitnih blokova niza k uqa KS , r = 0, 1, . . . , l − 1,
opisuje se sledeim kodom. r

j ← 0 {inicijalizacija brojaqa}
for i ← 0 to 2n − 1 do
j ← j + Si + Ki (mod 2n )
zameniti i
inicijalizacija brojaqa}
Si Sj
i ← 0; j ← 0 {
{poqetak generisaa sluqajnih n-torki bita:}
l
for r ← 0 to l − 1 do
i ← i + 1 (mod 2n )
j ← j + Si (mod 2n )
zameniti i Si Sj
t ← Si + Sj (mod 2n )
naredna -torka bita izlaznog niza k uqa}
KSr ← St { n

Indeks i obezbeuje da se svaki elemenat niza (tabele) S promeni bar


jednom, a indeks j obezbeuje da se elementi meaju na komplikovani,
prividno sluqajan naqin.
Demonstriraemo rad ovog algoritma za n = 3.
Neka je k uq 011001100001101, odnosno 011 001 100 001 101, odnosno
[3, 1, 4, 1, 5]. Periodiqnim proxirivaem dobijamo niz duine 2 = n

[3, 1, 4, 1, 5, 3, 1, 4] = [K0 , K1 , K2 , K3 , K4 , K5 , K6 , K7 ].

19
0 0 1 2 3 4 5 6 7
i j t KSt S0 S1 S2 S3 S4 S5 S6 S7

0 3 3 1 2 0 4 5 6 7
1 5 3 5 2 0 4 1 6 7
2 3 3 5 0 2 4 1 6 7
3 6 3 5 0 6 4 1 2 7
4 7 3 5 0 6 7 1 2 4
5 3 3 5 0 1 7 6 2 4
6 6 3 5 0 1 7 6 2 4
7 6 3 5 0 1 7 6 4 2
0 0
1 5 3 1 3 6 0 1 7 5 4 2
2 5 5 0 3 6 5 1 7 0 4 2
3 6 5 0 3 6 5 4 7 0 1 2
4 5 7 2 3 6 5 4 0 7 1 2
5 4 7 2 3 6 5 4 7 0 1 2
6 5 1 6 3 6 5 4 7 1 0 2
7 7 4 7 3 6 5 4 7 1 0 2
0 2 0 5 5 6 3 4 7 1 0 2
1 0 3 4 6 5 3 4 7 1 0 2
2 3 7 2 6 5 4 3 7 1 0 2
3 6 3 0 6 5 4 0 7 1 3 2
4 5 0 6 6 5 4 0 1 7 3 2
Niz k uqa dobija se od trobitnih reprezentacija brojeva 1, 0, 0, 2, 2, 6, 7, 5, 4, 2, 0, 6,
odnosno 001 000 000 010 010 110 111 101 100 010 000 110 (bez razmaka).
9 Samosinhronixua protoqna xifra
Kada se otvoreni tekst bit po bit sabira po modulu dva sa nizom k uqa
da bi se dobio xifrat, onda je to sinhrona protoqna xifra. Ako se
prilikom prenosa (sluqajno ili namerno) promeni jedan bit, bie pokvaren
odgovarajui bit u dexifrovanoj poruci. Ako se u prenosu umetne ili
izbrixe jedan bit, gubi se sinhronizam i ostatak dexifrovane poruke
postaje neqit iv. Cica moe da doe u posed para odgovarajuih OT/ST,
pa da na osnovu toga odredi deo niza k uqa, i da na kraju nekako rekon-
struixe k uq. U proces xifrovaa mogu se uk uqiti prethodni biti
otvorenog teksta:
ci = pi + ki + f (pi−1 , pi−2 , . . . , pi−k+1 )

takva xifra zove se samosinhronixua. Ni ova xifra nije otporna na


brisae ili umetae bita u xifrat, ali ako doe do grexke u prenosu,
onda to izaziva najvixe k uzastopnih grexaka u dexifrovanoj poruci
(posle grexke u prenosu dolazi do samosinhronizacije). Za ispravno de-
xifrovae neophodno je da poxi alac i primalac koriste isti poqetni
20
deo niza p , p , ..., p . Dexifrovae se vrxi na osnovu izraza
−k+1 −k+2 0

pi = ci + ki + f (pi−1 , pi−2 , . . . , pi−k+1 ).

Navodimo primer ovakve xifre. Neka je


{
pi−2 ako je pi−1 = 0
ci = pi + ki +
pi−3 ako je pi−1 = 1

Otvoreni tekst se moze dodefinisati tako xto se stavi p .


Primalac poruke koristi za dexifrovae izraz −1 = p0 = 0

{
pi−2 ako je pi−1 = 0
pi = ci + ki +
pi−3 ako je pi−1 = 1

Na primer, za otvoreni tekst (Go) i niz k uqa iz prethodnog primera,


dobija se:
xifrovae dexifrovae
OT 000100011101101111 ST 0010101000001111
niz k uqa 0111110110001101 niz k uqa 0111110110001101
ST 0010101000001111 OT 000100011101101111 Go
10 Sluqajna xifra
Ako je k uq (ne niz k uqa) za protoqnu xifru sluqajan i duine vee ili
jednake od duine otvorenog teksta, onda se sistem zove sluqajna xifra
(engleski one-time-pad). K uq se nikada ne sme upotrebiti za xifro-
vae neke druge poruke (u protivnom je ponekad mogue na osnovu dva
xifrata odrediti niz k uqa, tzv. napad Kaziskog). Kriptoanaliza ovakve
xifre je nemogua, jer su sva mogua dexifrovaa (koja odgovaraju svim
potencijalnim k uqevima) jednako verovatna, odnosno iz xifrata se ne
dobija nikakva informacija o otvorenom tekstu. Ovaj sistem korixen
je npr. za vreme hladnog rata za vezu crvenim telefonom izmeu Moskve
i Vaxingtona. Ipak, zbog svoje nepraktiqnosti se ova xifra ne koristi
univerzalno.
11 Konaqna po a II
Razmotriemo sada drugaqiju vrstu konaqnih po a. Neka je F [x] skup
polinoma sa koeficijentima iz F = Z = {0, 1}. Primetimo da je −1 = 1, 2

pa je oduzimae isto xto i sabirae. Polinomi iz ovog skupa su


2 2

0, 1, x, x + 1, x2 , x2 + 1, x2 + x, x2 + x + 1, . . .

Postoje dva polinoma stepena 0 (0, 1), qetiri polinoma stepena ≤ 1, osam
polinoma stepena ≤ 2; uopxte, broj polinoma stepena ≤ n je 2 . To su n+1

21
polinomi a x +· · ·+a x+a , a ∈ {0, 1}. Polinomi se mnoe na uobiqajeni
naqin, pri qemu se sa koeficijentima raquna u F :
n
n 1 0 i
2

(x2 + x + 1)×
(x2 + x) =
x3 + x2 + x
4
x + x3 + x2
= x4 + x

Neki polinom je nesvod iv nad po em ako se ne moe rastaviti u proizvod


polinoma (nieg stepena) sa koeficijentima iz tog po a. Nad po em
racionalnih brojeva polinomi x + 2 i x − 2 su nesvod ivi. Nad po em
realnih brojeva polinom x + 2 je nesvod iv, a polinom x − 2 = (x −
2 2

2)(x + 2) nije
√ nesvod iv. Nad po em kompleksnih brojeva ni polinom
2 2
√ √

x + 2 = (x + i 2)(x − i 2) nije nesvod iv.


Nad po em F polinom x +x+1 nije de iv ni jednim polinomom prvog


2

stepena, pa je nesvod iv (to je jedini nesvod ivi kvadratni polinom);


2
2

polinom x +1 = (x+1) nije nesvod iv. Jedini nesvod ivi kubni polinomi
nad F su x + x + 1 i x + x + 1. Uopxte, nesvod ivi polinomi dobijaju
2 2

se polazei od spiska svih polinoma precrtavaem umnoaka nesvod ivih


3 3 2
2

polinoma, sliqno kao xto se prosti brojevi dobijaju primenom Eratostenovog


sita.
Kada se elementi Z svedu po modulu prostog broja p (dakle nerastav ivog
broja), dobijaju se ostaci 0, 1, . . . , p − 1, tj. brojevi mai od p. Taj skup
oznaqavamo sa Z/pZ ili Z/(p) (ovde (p) oznaqava skup svih umnoaka
polinoma p).
Posmatrajmo sada polinome F [x] i ihove ostatke po modulu nesvod-
ivog polinoma x + x + 1. Ostaci su svi polinomi stepena maeg od 3; pri2

tome vai x + x + 1 ≡ 0 (mod x + x + 1), tj. x ≡ x + 1 (mod x + x + 1)


3

(kongruencija po modulu polinoma je prirodno uopxtee kongruencije po


3 3 3 3

modulu celog broja; ovu kongruenciju po modulu x +x+1 pisaemo ubudue


kao jednakost). Prema tome, na skupu F [x]/(x +x+1) = {0, 1, x, x+1, x , x +
3

1, x + x, x + x + 1} definisane su uobiqajene operacije +, (−), ×, pri qemu


3 2 2
2

je x = x + 1.
2 2

Primer mnoea u F [x]/(x + x + 1):


3
3
2

(x2 + x + 1)×
(x + 1) =
x2 + x + 1
3
x + x2 + x
= x3 + 1

Poxto je x = x+1, bie x +1 ≡ (x+1)+1 (mod x +x+1), odnosno x +1 ≡ x


(mod x + x + 1). Prema tome, (x + x + 1)(x + 1) = x u F [x]/(x + x + 1).
3 3 3 3

Ovo po e oznaqava se sa F jer ima 8 elemenata. Primetimo da je u F


3 2 3
2

x = x · x = (x + 1)x = x + x.
8 8
4 3 2

22
Uopxte, ako je p(x) nesvod ivi polinom stepena d, onda je skup F [x]/(p(x))
po e sa 2 elemenata, koje se oznaqava sa F . Ovo po e sastoji se od svih 2

polinoma stepena ≤ d − 1. F je skup elemenata po a razliqitih od nule.


d
2d

Multiplikativna grupa tog po a je takoe cikliqna (tj. u oj je bar jedan


2d

elemenat generator | bez dokaza). Broj elemenata u toj grupi je 2 − 1,


pa je broj generatora jednak φ(2 − 1). Na primer, u po u F je polinom x
d

generator F : g = x, x , x = x+1, x = x +x, x = x ·x = x +x = x +x+1,


d
8

x = x + x + x = x + 1, x = x + x = 1. Svi generatori u ovom po u su


2 3 4 2 5 4 3 2 2
8

g , gde je nzd(a, 2 − 1) = 1, odnosno a = 1, 2, . . . , 6.


6 3 2 2 7 3

Elementi po a lako se mogu predstaviti u raqunaru. Na primer, polinom


a 3

1 · x + 0 · x + 1 predstav a se trojkom 101. Zbog toga se qesto koriste


xifarski sistemi zasnovani na problemu diskretnog logaritma u po ima
2

tipa F umesto u po ima tipa F . Tipiqne vrednosti su p ≈ 2 ≈ 10 .


Smatra se da je sistem nad F sigurniji, a da je na raqunaru jednostavnija
d 300
2d p

realizacija sistema nad F . p

Inverziju elementa nad po em F ilustrovaemo na primeru invertovaa


2d

x + x + 1 u po u F [x]/(x + x + 1). Potrebno je primeniti Euklidov


2d

algoritam na polinome x + x + 1 i x + x + 1; polinom x + x + 1 je


4 3 6
2

nesvod iv, pa znamo da je rezultat nzd(x + x + 1, x + x + 1) = 1; na osnovu


6 4 3 6

toga treba NZD izraziti kao linearnu kombinaciju polinoma x + x + 1 i


6 4 3

x + x + 1, i tako dobiti inverz polinoma x + x + 1 po modulu x + x + 1.


6

Prvo de ee daje x + x + 1 = q(x + x + 1) + r, gde je r polinom stepena


4 3 6 4 3

maeg od 4 (stepen de enika).


6 4 3

x2 + x + 1 =q
4
x +x +1 3
| x 6
+ x + 1
x6 + x5 + x2
x5 + x2 + x
x5 + x4 + x
x4 + x2 + 1
x4 + x 3
+ 1
x3 + x2 =r

Prema tome, x + x + 1 = (x + x + 1)(x + x + 1) + (x + x ). Narednim


de eem dobija se x + x + 1 = x(x + x ) + 1. Kao i kod Euklidovog
6 2 4 3 3 2

algoritma sa brojevima, ovo omoguuje da se 1 = nzd(x + x + 1, x + x + 1)


4 3 3 2

izrazi kao linearna kombinacija ova dva polinoma:


6 4 3

1 = (x4 + x3 + 1) + x(x3 + x2 )
1 = (x4 + x3 + 1) + x(x6 + x + 1 + (x2 + x + 1)(x4 + x3 + 1))
1 = 1(x4 + x3 + 1) + x(x6 + x + 1) + (x3 + x2 + x)(x4 + x3 + 1)
1 ≡ (x3 + x2 + x + 1)(x4 + x3 + 1) (mod x6 + x + 1)

Dakle, u po u F [x]/(x je (x + x3 + 1)−1 = x3 + x2 + x + 1 .


Kraj primera.
6 4
2 + x + 1) = F64

23
U opisanom po u F sa polinomima iz Z[x] radi se po dva modula:
koeficijenti se raqunaju po modulu dva, a polinomi po modulu x + x + 1.
8

Primetimo da ako je d > 1 onda je F ̸= Z (u F je 1 + 1 = 0, a u Z je


3

1 + 1 = 2).
2d 2d 8 8

12 AES
12.1 Uvod
Vlada SAD je oko 1970. godine pokrenula proces razvoja algoritma za
xifrovae koji bi se mogao realizovati na qipu, koji bi mogao biti
xiroko korixen i koji bi bio siguran. Tako je 1975. godine prihvaen
algoritam DES (Data Encryption Standard) firme IBM. DES je simetriqni
xifarski sistem sa 56-bitnim k uqem koji 64-bitni otvoreni tekst trans-
formixe u 64-bitni xifrat. K uq duine 56 bita je ve oko 1995. godine
omoguavao razbijae ove xifre, bez obzira na en kvalitet. Zbog toga
se danas koristi tzv. trostruki DES, sistem koji podrazumeva primenu
algoritma DES tri puta (sa dva razliqita k uqa | prvi, drugi, prvi, tj.
ukupno 112 bita k uqa) za xifrovae 64-bitnih otvorenih tekstova. Za-
nim ivo je da dvostruki DES sa dva razliqita k uqa nije mnogo sigurniji
od osnovnog algoritma sa jednim k uqem, u xta emo se uveriti u delu
kursa o kriptoanalizi (napad "susret na pola puta, meet-in-the-middle”).
Medjutim, DES nije bio projektovan sa namerom da se koristi egova
trostruka verzija; sigurno je da postoji efikasniji algoritam po nivou
sigurnosti ekvivalentan trostrukom DES. Zbog toga je 1997. godine raspisan
konkurs za novi algoritam. Novi standard (AES, Advanced encryption stan-
dard) je 2001. godine postao algoritam Rajndol (Rijndael) sa blokom veliqine
128 bita i k uqem duine 128, 192 ili 256 bita. Rajndol je simetriqna
blokovska xifra koju su konstruisali belgijanci Joan Daemen i Vincent
Rijmen.

12.2 Uproxeni AES


Upoznaemo se najpre sa pojednostav enom verzijom algoritma AES (u
da em tekstu SAES) koju je konstruisao E. Xafer sa svoja dva bivxa
studenta 2002. godine i objavio ga u qasopisu Cryptologia 2003. godine. Sa
linearnom i diferencijalnom analizom | napadima na AES upoznaemo
se u delu kursa o kriptoanalizi.
12.2.1 Konaqno po e
Algoritmi proxirivaa k uqa i xifrovaa u SAES koriste tabelu
S (S-box), qija struktura se opisuje korixeem konaqnog po a F =
F [x]/(x + x + 1) od 16 elemenata. Req nibl oznaqava qetvorku bita, npr.
16

1011. Niblu b b b b moe se pridruiti elemenat b x + b x + b x + b


4
2

po a F .
3 2
0 1 2 3 0 1 2 3
16

24
12.2.2 Tabela S
Tabela S je bijektivno preslikavae S : {0, 1} → {0, 1} niblova u niblove.
Ova funkcija je kompozicija dva preslikavaa.
4 4

• Prvo od ih je inverzija nibla u F . Na primer, inverz polinoma


x + 1 je polinom x + x + x, pa prva komponenta preslikavaa S
16

preslikava 0011 u 1110. Nibl 0000 je izuzetak | nije invertibilan,


3 2

pa se preslikava u sebe samog.


• Niblu N = b b b b dobijenom inverzijom pridruuje elemenat N (y) =
b y + b y + b y + b prstena F [y]/(y + 1) (primetimo da y + 1 =
0 1 2 3

(y + 1) nije nesvod iv polinom, pa je F [y]/(y + 1) prsten, a ne po e


3 2 4 4
0 1 2 3 2

| u emu 0 nije jedini elemenat bez inverza). Neka je a(y) = y +y +1


4 4
2

i b(y) = y + 1 u F [y]/(y + 1). Mnoee u ovom prstenu je sliqno


3 2

kao u F , izuzev xto se radi po modulu y + 1, pa je y = 1, y = y i


3 4
2

y =y .
4 4 5
16
6 2

• Druga komponenta preslikavaa S je transformacija nibla N (y) u


nibl a(y)N (y) + b(y). Tako se na primer nibl 1110 = y + y + y
preslikava u nibl 1011, jer je
3 2

(y 3 + y 2 + 1)(y 3 + y 2 + y) + (y 3 + 1) =
= (y 6 + y 5 + y 4 ) + (y 5 + y 4 + y 3 ) + (y 4 + y 3 + y 2 ) + (y 3 + 1)
= y2 + y + 1 + y1 + 1 + y3 + 1 + y3 + y2 + y3 + 1
= 3y 3 + 2y 2 + 3y + 3 = y 3 + y + 1

Prema tome, S(0011) = 1011.


Primetimo da, poxto F [y]/(y +1) nije po e, nisu svi egovi elementi
invertibilni. Meutim, polinom a(y) jeste invertibilan. U literaturi se
4
2

druga komponenta preslikavaa S obiqno zove afino matriqno preslika-


vae.
Preslikavae S moe se prikazati tabelom,
0000 1001 1000 0110
nib S(nib) nib S(nib)

0001 0100 1001 0010


0010 1010 1010 0000
0011 1011 1011 0011
0100 1101 1100 1100
0101 0001 1101 1110
0110 1000 1110 1111
0111 0101 1111 0111
ili krae (zameujui niblove odgovarajuim dekadnim brojevima)

25
9 4 10 11
13 1 8 5
6 2 0 3
12 14 15 7
Elementi ove matrice su redom po vrstama S(0), S(1), . . . , S(15). Na
primer, nibl 0000 = 0 preslikava se u nibl 9 = 1001, 0001 = 1 → 4 = 0100,
..., 0100 = 4 → 13 = 1101, itd. Binarna verzija tabele je korisnija za
ruqno izvrxavae algoritma SAES.
12.2.3 Proxirivae k uqa
Algoritam SAES ima 16-bitni k uq k k . . . k . Od ega se formira niz
od 48 bita (tri 16-to bitna potk uqa ), (od kojih su prvih 16 jednaki
0 1 15

originalnom k uqu) procesom proxirivaa k uqa.


Ako su N i N niblovi, neka N N oznaqava ihovu konkatenaciju.
Neka su konstante RC[i] definisane izrazom RC[i] = x ∈ F . U al-
0 1 0 1

goritmu SAES se koriste konstante RC[1] = x = 1000 i RC[2] = x =


i+2
16

x+1 = 0011, odnosno konstantni bajtovi RCON [i] = RC[i]0000: RCON [1] =
3 4

10000000 i RCON [2] = 00110000. Neka su funkcije RotN ib i SubN ib defi-


nisane izrazima
RotN ib(N N ) = N N ,
odnosno
0 1 1 0

SubN ib(N N ) = S(N )S(N );


ove dve funkcije preslikavaju bajtove u bajtove. Imena ovih funkcija
0 1 0 1

odgovaraju ihovoj prirodi (rotacija niblova, odnosno supstitucija nib-


lova primenom S). Definiximo sada niz bajtova W . Biti bajtova W [0],
odnosno W [1], su prvih, odnosno drugih osam bita k uqa. Ostali qlanovi
niza W{[i], 2 ≤ i ≤ 5, definixu se rekurentnom relacijom
W [i − 2] ⊕ RCON (i/2) ⊕ SubN ib(RotN ib(W [i − 1])), i ≡ 0 (mod 2)
W [i] = .
W [i − 2] ⊕ W [i − 1]), i ̸≡ 0 (mod 2)
Neka su biti sadrani u qlanovima niza W oznaqeni sa k , . . . , k . Za
0 ≤ i ≤ 2 neka je K = W [2i]W [2i + 1]. Prema tome, K = k . . . k , K =
0 47

k . . . k i K = k . . . k . Za i ≥ 1 K je potk uq koji se koristi na


i 0 0 15 1

kraju i-te runde; K se koristi pre prve runde. Kao i ranije, ⊕ oznaqava
16 31 2 32 47 i

sabirae po modulu dva, bit po bit.


0

Primer proxirivaa k uqa


Neka je k uq 0101 1001 0111 1010. Prema tome, W [0] = 0101 1001 i
W [1] = 0111 1010. Prilikom izraqunavaa W [2], poxto je indeks 2 paran,
primeuje se RotN ib(W [1]) = 1010 0111, pa SubN ib(1010 0111) = 0000 0101.
Dobijeni rezultat se sabira sa W [0] ⊕ RCON (1), i dobija se W [2].
0000 0101
0101 1001
⊕ 1000 0000
1101 1100
26
Preme tome, W [2] = 11011100. Naredni qlan sa neparnim indeksom iz-
raqunava se na jednostavniji naqin, W [3] = W [1] ⊕ W [2] = 0111 1010 ⊕
1101 1100 = 1010 0110. Pri izraqunavau W [4] primeuje se RotN ib(W [3]) =
0110 1010, pa SubN ib(0110 1010) = 1000 0000. Dobijeni rezultat se sabira
sa W [2] ⊕ RCON (2), i dobija se W [4].
1000 0000
1101 1100
⊕ 0011 0000
0110 1100
Preme tome, W [4] = 01101100. Na kraju, W [5] = W [3] ⊕ W [4] = 1010 0110 ⊕
0110 1100 = 1100 1010.

12.2.4 Algoritam SAES


Algoritam SAES transformixe 16-bitne otvorene tekstove u 16-bitne
xifrate, koristei proxireni k uq k . . . k . Algoritam xifrovaa je
kompozicija osam funkcija koje se redom primeuju na otvoreni tekst:
0 47

AK2 ◦ SR ◦ N S ◦ AK1 ◦ M C ◦ SR ◦ N S ◦ AK0


(najpre se primeuje funkcija A koja je na desnoj strani ovog izraza).
Svaka od ovih funkcija primeuje se na stae; stae je qetvorka niblova,
K0

videti sliku 1. Poqetno stae je otvoreni tekst, slika 2, a zavrxno stae


je xifrat, slika 3.
b0 b1 b2 b3 b8 b9 b10 b11 p0 p1 p2 p3 p8 p9 p10 p11 c0 c1 c2 c3 c8 c9 c10 c11

Slika 1. Slika 2. Slika 3.


b4 b5 b6 b7 b12 b13 b14 b15 p4 p5 p6 p7 p12 p13 p14 p15 c4 c5 c6 c7 c12 c13 c14 c15

Definicije primeenih funkcija:


• Funkcija A (add key ) predstav a sabirae staa sa K po modulu
dva, bit po bit, tako da se indeksi bita staa i bita k uqa slau po
Ki i

modulu 16.
• Funkcija N S (nibble substitution ) zameuje svaki nibl N iz staa
niblom S(N ), ne meajui redosled niblova. Drugim reqima, stae
i
i

N
N
0
1
N
N
transformixe se u stae S(N
2
3
) S(N )
S(N ) S(N )
0
1
2
3

• Funkcija SR (shift row ) stae N0


N1
N2
N3
transformixe se u stae
N
N
0
3
N
N
. 2
1

• Funkcija M C (mix column ): Koloni Ni


Nj
u stau odgovara elemenat
27
Ni z+Nj prstena F [z]/(z +1). Tako koloni 1010
16
2
odgovara elemenat
(x +x)z+(x +1). Ovde je F [z] skup polinoma po z sa koeficijentima
1001

iz F . Prema tome F [z]/(z + 1) podrazumeva da se polinomi posma-


3 3
16

traju po modulu z + 1; zbog toga je z = 1. Skup predstavnika klasa


2
16 16

ekvivalencije sastoji se od 16 polinoma po z stepena maeg od 2.


2 2

Funkcija M C mnoi svaku kolonu polinomom c(z) = x z + 1. U ovom


2

primeru
2

[((x3 + x)z + (x3 + 1))](x2 z + 1) =


= (x5 + x3 )z 2 + (x3 + x + x5 + x2 )z + (x3 + 1)
= (x5 + x3 + x2 + x)z + (x5 + x3 + x3 + 1)
= (x2 + x + x3 + x2 + x)z + (x2 + x + 1)
= (x3 )z + (x2 + x + 1),

xto odgovara koloni 1000 . Primetimo da polinom z + 1 = (z + 2

1) nije nesvod iv nad F , pa F [z]/(z + 1) nije po e (tj. nisu


0111

invertibilni svi egovi elementi); meutim, polinom c(z) jeste in-


2 2
16 16

vertibilan. Uopxte, posle mnoea po modulima z + 1, x + x + 1 i


2 dobija se
2 4

( )
(b0 x3 + b1 x2 + b2 x + b3 )z + (b4 x3 + b5 x2 + b6 x + b7 ) (x2 z + 1) ≡
≡ (b1 + b7 ) + (b0 + b1 + b6 )x + (b0 + b3 + b5 )x2 + (b2 + b4 )x3 +
+ ((b3 + b5 ) + (b2 + b4 + b5 )x + (b1 + b4 + b7 )x2 + (b0 + b6 )x3 )z

xto znaqi da funkcija M C transformixe kolonu


b b b b
0 1 2 3
b b b b
4 5 6 7
u kolonu bb ⊕⊕ bb bb ⊕⊕ bb ⊕⊕ bb bb ⊕⊕ bb ⊕⊕ bb
0
2
6
4
1
0
4
3
7
5
2
0
4
1
5
6
b3 ⊕ b5
b1 ⊕ b7

Mathematica:

A = ((b0x3 + b1x2 + b2x + b3)z + (b4x3 + b5x2 + b6x + b7))(x2 z + 1)


B = Collect[P olynomialM od[A, {z 2 + 1, x4 + x + 1, 2}], {z, x}]
= b1 + b7 + (b0 + b1 + b6)x + (b0 + b3 + b5)x2 + (b2 + b4)x3 +
+ (b3 + b5 + (b2 + b4 + b5)x + (b1 + b4 + b7)x2 + (b0 + b6)x3 )z
Kompozicija funkcija A ◦ M C ◦ SR ◦ N S je i-ta runda algoritma
xifrovaa; algoritam SAES ima dve runde. Pored toga, primeuje se
Ki

dopunska transformacija A pre prve runde, a posleda runda nema


transformaciju M C ; ova qienica bie objaxena u sledeem ode ku.
K0

28
12.2.5 Dexifrovae
Primetimo da za proizvo ne funkcije (za koje je definisana kompozicija
i inverzne funkcije) vai (f ◦g) = g ◦f . Pored toga, ako je kompozicija
−1 −1 −1

funkcije sa samom sobom identiqno preslikavae, onda je funkcija sama


sebi inverzna; tada se kae da je ona involucija. Sve funkcije A su
involucije. Iako je i SR involucija kod SAES , zbog toga xto ona nije Ki

involucija kod AES izraz SR nee biti uproxavan. Dexifrovae je


−1

prema tome definisano kompozicijom


−1 −1 −1 −1 −1
A ◦ N S ◦ SR ◦ M C ◦ A ◦ N S ◦ SR ◦ A
Da se izvrxi preslikavae N S nibl se mnoi sa a(y) = y + y + 1,
K0 K1
−1
K2
−1

pa se rezultatu dodaje a(y) b(y) = y + y u prstenu F [y]/(y + 1). Posle


2
−1

toga nibl se invertuje u F . Umesto svega toga, moe se koristiti unapred


3 2 4
2

izraqunata tabela funkcije S . 16


−1

Poxto je M C mnoee sa c(z) = x z + 1, funkcija M C je mnoee −1

sa c(z) = xz + (x + 1) u F [z]/(z + 1).


2
−1

Dexifrovae se moe obaviti na gore opisani naqin. Sada emo videti


3 2
16

razlog zaxto u posledoj rundi nema funkcije M C . Primetimo najpre


da je N S ◦ SR = SR ◦ N S . Neka St oznaqava neko stae. Tada
−1 −1 −1 −1

je M C (A (St)) = M C (K ⊕ St) = c(z) (K ⊕ St) = c(z) (K ) ⊕


−1 −1 −1 −1

(M C (St)). Prema tome,


Ki i i i
−1 −1 −1 −1
c(z) (St) = c(z) (K ) ⊕ M C (St) = A
◦ M C (St).
i c(z)−1 (Ki )
−1 −1

Xta oznaqava c(z) (K )? Neka su b b . . . b , b b . . . b dva bajta od


M C (A (St)) = A
Ki c(z)−1 (Ki )
−1

kojih se sastoji K . Prvi bajt


i
i 0 1 7 8 9 15

b b b b
0 1 2 3
moemo smatrati elementom F [z]/(z + 1). ega mnoimo 16
2

sa c(z) , pa ga ponovo pretvaramo u bajt. Isto se radi i sa b . . . b .


b b b b
4 5 6 7
−1

Prema tome, c(z) (K ) ima 16 bita. Izraz A


−1
oznaqava sabirae 8 15

po modulu dva c(z) K sa tekuim staem. Primetimo da se prilikom


−1
i c(z)−1 (Ki )

izvrxavaa M C stae mnoi sa c(z) (ili jox jednostavnije, koristi


−1
i
−1

se ekvivalentna tabela, qiji sadraj treba izraqunati za domai zadatak).


Da se izvrxi A najpre se K mnoi sa c(z) (ili jox jednostavnije, −1

koristi se ekvivalentna tabela, qiji sadraj treba izraqunati za domai


c(z)−1 (Ki ) i

zadatak), a onda se rezultat sabira po modulu dva sa tekuim staem.


Dexifrovae se moe vrxiti takoe primenom kompozicije
AK0 ◦ SR−1 ◦ N S −1 ◦ Ac(z)−1 K1 ◦ M C −1 ◦ SR−1 ◦ N S −1 ◦ AK2 .

Podsetimo se da se xifrovae vrxi na osnovu


AK2 ◦ SR ◦ N S ◦ AK1 ◦ M C ◦ SR ◦ N S ◦ AK0

Drugim reqima, funkcije se u toku dexifrovaa pojav uju istim redom


kao i pri xifrovau, izuzev xto se potk uqevi primeuju obrnutim
redosledom. Za originalni AES ovo moe da olakxa implementaciju. Ovo
ne bi bilo mogue da se M C pojav uje u posledoj rundi.
29
12.2.6 Primer xifrovaa
Neka je k uq isti kao u prethodnom primeru, 0101 1001 0111 1010. Prema
tome, W [0] = 0101 1001, W [1] = 0111 1010, W [2] = 1101 1100, W [3] =
1010 0110, W [4] = 0110 1100 i W [5] = 1100 1010. Neka je otovreni tekst ”Ed”
kodirano ASCII kodom, 01000101 01100100. Tada je poqetno stae (vodei
raquna da niblovi idu redom u gori levi, zatim doi levi, pa gori
desni, pa doi desni ugao)
0100 0110

Najpre primeujemo A (kao xto smo rekli, K ); novo


0101 0100

stae je: K0 0 = W [0]W [1]

0100 0110
⊕ 0101 ⊕ 0111 0001 0001
=
0101 0100 1100 1110
⊕ 1001 ⊕ 1010

Primenom N S i SR dobija se 0100 0100


1100 1111
→ SR →
0100
1111
0100
1100

Primenivxi M C , dobijamo 1101 0001

Zatim se primeuje A , pri qemu je K = W [2]W [3].


1100 1111
K1 1
1101 0001
⊕ 1101 ⊕ 1010 0000 1011
=
1100 1111 0000 1001
⊕ 1100 ⊕ 0110

Primenom N S i SR dobija se 1001 0011


→ SR →
1001 0011

Zatim se primeuje A , pri qemu je K = W [4]W [5].


1001 0010 0010 1001
K2 2
1001 0011
⊕ 0110 ⊕ 1100 1111 1111
=
0010 1001 1110 0011
⊕ ⊕
Prema tome, xifrat je 11111110 11110011.
1100 1010

12.3 Kompletan AES


Zbog jednostavnosti opisaemo verziju AES sa 128-bitnim k uqem i 10
rundi. Kao xto smo rekli, AES obrauje 128-bitne blokove. Opisaemo
razlike u odnosu na uproxenu verziju. Svako stae sastoji se od matrice
bajtova dimenzije 4 × 4 .
Konaqno po e u kome se raquna je F = F [x]/(x + x + x + x + 1).
Bajtu b b b b b b b b odgovara elemenat b x + · · · + b ∈ F . Tabela S
8 4 3
28 2

najpre invertuje bajt u F , pa ga onda mnoi sa a(y) = y + y + y + y + 1


7
0 1 2 3 4 5 6 7 0 7 28

i rezultatu dodaje b(y) = y + y + y + 1 u prstenu F [y]/(y + 1). Inverz


4 3 2
28

polinoma a(y) je a(y) = y + y + y; pored toga, a(y) b(y) = y + 1.


6 5 8
2
−1 6 3 −1 2

30
Funkcija ByteSub u AES je oqigledno uopxtee funkcije SubN ib
| ona svaki bajt B zameuje egovom slikom S(B). Funkcija Shif tRow
cikliqki pomera vrste ulevo za 0, 1, 2, 3. Prema tome, ona stae
B0 B4 B8 B12 B0 B4 B8 B12
B1
B2
B5
B6
B9
B10
B13
B14
prevodi u stae B5
B10
B9
B14
B13
B2
B1
B6
B3 B7 B11 B15 B15 B3 B7 B11
Funkcija mnoi kolonu polinomom c(z) = (x + 1)z + z +
u . Inverzni polinom je c(z) = (x + x + 1)z + (x +
3 2
M ixColumn
−1

. Funkcija M ixColumn pojav uje se u svim


z + x F28 [z]/(z 4 + 1) 3 3 3

rundama, sem u posledoj. Funkcija AddRoundKey je oqigledno uopxtee


x2 +1)z 2 +(x3 +1)z +(x3 +x2 +x)

A . Dopunska funkcija AddRoundKey sa potk uqem za rundu 0 primeuje


se na poqetku xifrovaa.
Ki

Proxirivae k uqa radi sa nizom W qiji qlanovi imaju po qetiri


bajta. K uq popuava W [0], . . . , W [3]. Funkcija RotByte cikliqki rotira
grupu od qetiri bajta za jedan bajt ulevo, sliqno kao xto se radi sa drugom
vrstom u Shif tRow. Funkcija ByteSub primeuje funkciju (tabelu) S na
svaki bajt. Kao i ranije, RC[i] = x u F , a RCON [i] je konkatenacija
RC[i] i tri bajta od svih nula. Za 4 ≤ i ≤ 43 raquna se
i
28

{
W [i − 4] ⊕ RCON (i/4) ⊕ ByteSub(RotByte(W [i − 1])), i ≡ 0 (mod 4)
W [i] = .
W [i − 4] ⊕ W [i − 1]), i≢ 0 (mod 4)

Potk uq K sastoji se od bita u qlanovima niza W [4i] . . . W [4i + 3].


i

12.4 AES kao kombinovana xifra


Premextae se vrxi primenom Shif tRow. Iako to ne moe da bude proizvo na
premutacija, da a disperzija postie se premextaem kolona u M ixColumn.
Zamena se postie primenom ByteSub, a AddRoundKey qini algoritam
zavisnim od k uqa.
12.5 Naqini korixea blokovskih xifri
Postoje qetiri uobiqajena naqina korixea AES (odnosno bilo koje
blokovske xifre). Standardni naqin je ECB (electronic code book). Ako
je p i-ti blok otvorenog teksta, c odgovarajui blok xifrata, a E (·)
oznaqava primenu blokovske xifre, onda je c = E (p ), i = 0, 1, . . .. Dexifrovae
i i k

se vrxi na osnovu izraza p = E (p ), i = 0, 1, . . .. ECB je najjednostavniji


−1
i k i

naqin upotrebe; meutim, egov nedostatak je da za isti k uq dva ista


i k i

otvorena teksta daju iste xifrate. Ako broj bita nije umnoak 128, onda
se na kraju poruke dodaju znaci (koji obiqno poqiu sa 1, jer obiqni ASCII
znaci poqiu nulom) tako da i posledi blok ima duinu 128 bita.
Drugi (najqexi) naqin korixea je CBC (cipher block chaining). A-
lisa i Boban moraju unapred da se dogovore koji e (sluqajni, ne-tajni)
31
inicijalizacioni vektor (IV ) koristiti; ustvari, pre svake poruke xa e
se odgovarajui (novi) inicijalizacioni vektor. Rezultat xifrovaa je
⊕ p ), i ≥ 0. Pri tome se za xifrovae prvog bloka p koristi
inicijalizacioni vektor, odnosno uzima se da je c = IV . Dexifrovae:
c = E (c
i k i−1 i 0

⊕ E (c ).
−1
−1

Trei naqin korixea je CFB (cipher feedback). On takoe podrazumeva


p =c
i i−1 k i

upotrebu inicijalizacionog vektora IV , koji se mora meati za svaki


naredni xifrat. Xifrovae, odnosno dexifrovae opisuju se izrazima
c = E (c ) ⊕ p , i ≥ 0, odnosno p = E (c ) ⊕ c , i ≥ 0. Pri tome se
moe koristiti npr. samo npr. najnii bajt izraza E (c ), tj. moe se
i k i−1 i i k i−1 i

xifrovati/dexifrovati npr. niz bajtova. Za razliku od toga, u reimu k i−1

CBC mora se saqekati kompletirae bloka od 128 bita OT pre poqetka


izraqunavaa xifrata.
Posledi naqin korixea je OFB (output feedback). To je ustvari
naqin da se dobije niz k uqa za xifrovae. Z = E (Z ) = E (IV ). i+1

Niz k uqa dobija se konkatenacijom Z Z Z . . .. Xifrat se dobija sabiraem i k i−1 k

sa nizom k uqa, c = p ⊕ Z , i ≥ 0, pa je dexifrovae p = c ⊕ Z .


i i i
0 1 2
i i i

12.6 Analiza uproxenog algoritma AES


Razmotriemo mogue napade na SAES u reimu ECB.
Cica je doxla do para (OT, ST) i eli da odredi k uq. Neka je OT
p p . . . p , odgovarajui ST c c . . . c , a k uq k k . . . k .
Moe se formirati 16 jednaqina oblika
0 1 15 0 1 15 0 1 15

fi (p0 p1 . . . p15 , k0 k1 . . . k15 ) = ci

gde je f polinom od 32 promen ive sa koeficijentima iz F , za koji se


oqekuje da ima proseqno 2 qlanova. Kada se fiksiraju (zamene) biti c ,
i 2

p (iz para odgovarajuih OT, ST), dobijamo 16 nelinearnih jednaqina sa


31
j

16 nepoznatih (biti k ). Polinomi u ovim jednaqinama u proseku imaju po


j

2 qlanova.
i

U algoritmu SAES je sve linearno, izuzev tabele S, koju emo sada


15

razmotriti. Oznaqimo ulazni nibl sa abcd, a izlazni nibl sa ef gh. Tada se


transformacija koju vrxi tabela S moe opisati sledeim jednaqinama:
e = acd + bcd + ab + ad + cd + a + d + 1
f = abd + bcd + ab + ac + bc + cd + a + b + d
g = abc + abd + acd + ab + bc + a + c
h = abc + abd + bcd + acd + ac + ad + bd + a + c + d + 1

pri qemu su sva sabiraa po modulu dva. Na primer, da se dobije izraz za


e, polazi se od izraza

e = af0 (b, c, d) + af1 (b, c, d),

32
gde su f , odnosno f funkcije od tri promen ive b, c, d odreene prvom,
odnosno drugom polovinom tabele istinitosti funkcije e. Zamenom a =
0 1

1 + a dobija se

e = f0 (b, c, d) + a(f0 (b, c, d) + f1 (b, c, d)).

Nastav ajui ovakvo razlagae redom za promen ive b, c, d, dobija se


navedeni izraz za funkciju e, a isto tako i za funkcije f , g i h. Naizmeniqno
smeivae linearnih sa ovim nelinearnim preslikavaima kao rezultat
daje vrlo sloeni polinomijalni izraz za bite xifrata preko bita k uqa
za poznate bite otvorenog teksta.
Za rexavae sistema linearnih jednaqina sa mnogo nepoznatih je lako,
jer se znaju algoritmi polinomijalne sloenosti. S druge strane, nisu
poznati algoritmi za efikasno rexavae nelinearnih polinomijalnih
jednaqina sa mnogo nepoznatih.
12.7 Objaxee konstrukcije AES
Za kvalitet xifrovaa postoje dva osnovna kriterijuma, sigurnost i
efikasnost. Prilikom projektovaa AES , autori su vodili raquna o
ima. Oni su pored toga ugradili u algoritam jednostavnost i ponav ae.
Sigurnost se meri otpornoxu xifrovaa na sve poznate napade. Efikasnost
je kombinacija brzine xifrovaa/dexifrovaa i mere u kojoj algoritam
koristi resurse (potreban prostor na qipu za hardversku realizaciju,
odnosno potrebna memorija za softversku realizaciju). Jednostavnost se
odnosi na sloenost pojedinih koraka, kao i celine algoritma za xifrovae.
Ako se algoritam moe lako razumeti, verovatnije je da e realizacije
algoritma biti korektne. Na kraju, ponav ae se odnosi na vixestruku
upotrebu funkcija u okviru algoritma.
U naredne dve taqke razmotriemo sigurnost, efikasnost, jednostavnost
i ponav ae u algoritmu AES .
12.8 Sigurnost
Kao standard za xifrovae, AES mora da bude otporan na sve poznate
kriptoanalitiqke napade. Prema tome, prilikom projektovaa algoritma
vodilo se pre svega raquna da on bude otporan na napade, posebno na diferencijalnu
i linearnu kriptoanalizu. Da bi blokovska xifra bila sigurna, ona mora
da obezbeuje difuziju i nelinearnost.
Difuzija se definixe kao xiree uticaja bita u toku xifrovaa.
Potpuna difuzija znaqi da svaki bit staa zavisi od svih bita prethodnog
staa. U algoritmu AES dve uzastopne runde obezbeuju potpunu difuziju.
Funkcije Shif tRow, M ixColumn i proxirivae k uqa obezbeuju difuziju,
neophodnu da sistem bude otporan na poznate napade.
Nelinearnost u algoritmu potiqe od tabele S, koja se koristi u ByteSub
i proxirivau k uqa. Pored ostalog, nelinearnost je prouzrokovana inverzijom
33
u konaqnom po u. To nije linearno preslikavae bajtova u bajtove. Ovde se
pod linearnim (afinim, preciznije) preslikavaem podrazumeva preslikavae
bajtova (tj. osmodimenzionalnih vektora na po em F ) u bajtove koje se
moe predstaviti kao mnoee matricom 8 × 8 i dodavaem vektora.
2

Nelinearnost poveava otpornost xifre na kriptoanalitiqke napade.


Nelinearnost u proxirivau k uqa obezbeuje da poznavae dela k uqa
ili potk uqa ne omoguuje jednostavno odreivae puno drugih bita k uqa.
Jednostavnost poveava kredibilnost xifre na sledei naqin. Korix-
ee jednostavnih koraka sugerixe da je jednostavno razbiti xifru, pa
to pokuxava da uradi vixe udi. Kad se mnogo takvih pokuxaja okonqa
neuspehom, xifra uliva vee poveree.
Iako ponav ae ima mnogo prednosti, ono moe uqiniti xifru oset-
ivijom na neke napade. Konstrukcija AES obezbeuje da ponav ae ne
izaziva smaee sigurnosti. Na primer, korixee konstanti RCON [i]
razbija potencijalne sliqnosti izmeu potk uqeva.
12.9 Efikasnost
Oqekuje se da se AES izvrxava na raqunarima i ureajima razliqite
veliqine i snage. Zbog toga je algoritam projektovan tako da se moe
efikasno izvrxavati na mnogim platformama, od stonih raqunara do malih
ureaja koji se mogu smestiti u prik uqak na mreu.
Ponav ae u strukturi AES omoguuje da se paralelnom realizacijom
ubrza xifrovae/dexifrovae. Svaki korak moe se zbog ponav aa
razbiti na nezavisna izraqunavaa. Funkcije M ixColumn i Shif tRow
nezavisno obrauju pojedine kolone, odnosno vrste staa. Funkcija AddKey
moe se paralelizovati na vixe naqina.
Poklapae redosleda koraka za xifrovae i dexifrovae omoguuje
da se isti qip koristi i za xifrovae i za dexifrovae. To smauje
cenu hardvera i poveava brzinu.
Jednostavnost algoritma olakxava egovo objaxavae, pa su zbog toga
realizacije jednostavne i pouzdane. Koeficijenti polinoma koji defini-
xe F izabrani su tako da minimiziraju izraqunavae.
Uporeee AES i RC4. Smatra se da su blokovske xifre fleksibilnije,
256

time xto omoguuju xifrovae na vixe razliqitih naqina. Blokovska


xifra moe se lako upotrebiti kao protoqna, ali obrnuto nije mogue.
U jednoj od implementacija xifra RC4 je 1.77 puta bra od AES , ali se
smatra da je mae sigurna.
13 Napadi na blokovske xifre
13.1 Potpuna pretraga i susret u sredini
Potpuna pretraga je napad sa poznatim otvorenim tekstom. Cica ima na
raspolagau par (OT,ST). Pretpostavimo da je duina k uqa b bita. Ona
34
xifruje otvoreni tekst sa svih 2 razliqitih k uqeva i proverava koji
od ih daje zadati xifrat. Verovatno je da e samo nekoliko k uqeva da
b

ispuni ovaj uslov. Ako postoji vixe od jednog kandidata, onda ih Cica
proverava na drugom paru (OT,ST); tada e verovatno preostati samo jedan
kandidat. Ona oqekuje uspeh u proseku posle pola pregledanih k uqeva.
Prema tome, za razbijae DES -a potrebno je 2 pokuxaja a za razbijae
AES -a | 2 pokuxaja.
55

Napad susret na pola puta (meet-in-the-middle) na blokovske xifre


127

otkrili su Difi (Diffie) i Helman (Hellman). To je takoe napad sa poznatim


otvorenim tekstom. Neka E oznaqava xifrovae k uqem K , primenom
odreene blokovske xifre. Tada je CT = E (E (P T )) (gde je P T otvoreni
K1 1

tekst, a CT xifrat) dvostruka blokovska xifra. K2 K1

Ceci je potrebno da zna dva para otvoreni tekst/xifrat. Ona xifruje


otvoreni tekst P T svim moguim k uqevima K i rezultate sortirane
prema xifratu smexta na disk. Ona zatim dexifruje odgovarajui xifrat 1

CT svim k uqevima K i takoe smexta na disk rezultate, sortirane


prema otvorenom tekstu. Ona zatim pronalazi parove (k , k ) takve da je
2

E (P T ) = D (CT ) (ovde D oznaqava dexifrovae). Za ovo je dovo an


1,i 2,i

prolaz bez vraaa kroz dva priprem ena spiska. Za svaki ovakav par
k1,i 1 k2,i 1

ona izraqunava E (E (P T )) i to uporeuje sa CT . Verovatno je da e


samo jedan par k uqeva ispuniti ovaj uslov. Ovakav napad zahteva ogroman
k2,i k1,i 2 2

memorijski prostor. Meutim, broj koraka je oko b2 (zbog sortiraa),


pa dvostruka xifra nije bitno sigurnija od jednostruke xifre sa jednim
b−1

k uqem.
Moe se pokazati da zbog napada sa susretom na sredini trostruki DES
sa tri k uqa nije bitno sigurniji od trostrukog DES -a sa dva k uqa.
Poxto je dva k uqa lakxe razmeniti nego tri, trostruki DES obiqno se
koristi sa dva k uqa.
Dva druga vana napada na blokovske xifre su linearna i diferencijalna
kriptoanaliza; oni e biti razmotreni u delu o kriptoanalizi.
14 Stepenovae ponov enim kvadriraem
Kao xto smo videli, ako je nzd(a, m) = 1 i b ≡ c (mod φ(m)), onda je
a ≡ a (mod m). Prema tome, prilikom izraqunavaa a (mod m) kad je
nzd(a, m) = 1 i b ≥ φ(m), prvi korak je svoee b mod φ(m).
b c b

Da bi se izraqunalo a mod m kad je b < φ(m), ali je b jox uvek veliko,


moe se iskoristiti kalkulator. Izraqunajmo na primer 87 mod 103.
b

Broj 43 najpre predstav amo u obliku zbira stepenova dvojke: 43 = 32 + 8 +


43

2 + 1 (tako xto svaki put oduzmemo najvei mogui stepen dvojke). Prema
tome, 87 = 87 = 87 87 87 87 . Zatim raqunamo 87 ≡ 87 mod 103,
87 ≡ 50, 87 ≡ 50 ≡ 28, 87 ≡ 28 ≡ 63, 87 ≡ 63 ≡ 55, 87 ≡ 55 ≡ 38.
43 32+8+2+1 32 8 2 1

Dakle, 87 ≡ 38 · 63 · 50 · 87 ≡ 85 (mod 103).


2 4 2 8 2 16 2 32 2

Na raqunaru se to radi malo drukqije. Da se izraquna b (mod m) naj-


43

pre se n predstavi u sistemu sa osnovom 2, n = n 2 + n 2 + · · · + n =


n
k k−1
k k−1 0

35
,
(nk nk−1 . . . n0 )2 ni ∈ {0, 1} . Neka je a delimiqan proizvod. Na poqetku je
a=1 .
StepenovanjeKvadriranjem(b, n)
0
b0 ← n { b0 = n2 = n}
if n0 = 1 then a ← 1 else a ← n
for j ← 1 to k do
j
bj ← b2j−1 (mod m) { b j = n2 }
if ni = 1 then
a ← a · bj−1

Uradimo jox jednom prethodni primer, b = 87, n = 43. U sistemu sa


osnovom 2 je 43 = 101011, tj. n = 1, n = 1, n = 0, n = 1, n = 0, n = 1.
0 1 2 3 4 5

a=1 (n0 = 1) a = 87
872 ≡ 50 (n1 = 1) a = 50 · 87 ≡ 24 (≡ 872 · 871 )
502 ≡ 28 (n2 = 0) a = 24
282 ≡ 63 (n3 = 1) a ≡ 63 · 24 ≡ 70 (≡ 878 · 872 · 871 )
632 ≡ 55 (n4 = 0) a = 70
552 ≡ 38 (n5 = 1) a = 38 · 70 ≡ 85 (≡ 8732 · 878 · 872 · 871 )

15 Vremenska sloenost algoritama


Logaritmi znaqajno smauju velike brojeve. Na primer, ako uzmemo list
papira, pa na ega stavimo drugi, pa onda udvostruqimo gomilu (qetiri
papira), i tako da e, posle 50 dupliraa gomile imaemo 2 ≈ 10
listova papira, pa bi gomila porasla do Sunca. Gomila od 50 listova
50 15

papira ima visinu oko 1 cm.


Ako je x realan broj, sa ⌊x⌋ oznaqavamo najvei celi broj ≤ x. Tako je
⌊1.4⌋ = 1 i ⌊1⌋ = 1. Podsetimo se kako se brojevi predstav aju u sistemu
sa osnovom dva. Sve dotle dok je mogue, oduzimamo od broja najvei stepen
dvojke. Na primer, 47 ≥ 32. 47 − 32 = 15. 15 − 8 = 7. 7 − 4 = 3. 3 − 2 = 1.
Dakle, 47 = 32 + +8 + 4 + 2 + 1 = (101111) .
Drugi algoritam za odreivae binarne predstave broja opisuje se sledeim
2

pseudokodom; pretpostav a se da je broj predstav en sa 32 bita:


BinarneCif re(n, v)
v ← [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
i←1
while i < 32
ostatak ← n mod 2
v[32 − i] = ostatak
n ← (n − ostatak)/2
i←i+1

36
Kaemo da je 47 xestobitni broj. Broj cifara u binarnoj predstavi
broja N (duina broja N ) je broj egovih bita, odnosno ⌊log (N )⌋ + 1. Svi
logaritmi razlikuju se za konstantni faktor (na primer, log x = k log x,
2

gde je k = log 10). 2 10

Ocena vremenske sloenosti algoritama (odnosno gore granice) obiqno


2

se odnosi na najgori sluqaj, pri qemu se pretpostav a da je dimenzija ulaza


velika. Razmotrimo sada algoritme za nekoliko bitskih opreracija sa
brojevima. Najpre sabirae dva n-bitna broja N + M . Na primer, sabiramo
219 + 242, odnosno 11011011 + 11110010, gde je n = 8.
111 1
11011011
11110010
---------
111001101
Za ono xto se radi u jednoj koloni rei emo da je to bitska operacija.
To je fiksirana kombinacija uporeivaa i pomeraa. Prema tome, ceo
algoritam sadri n ≈ log N bitskih operacija. Za sabirae n-bitnog i
m-bitnog broja, n ≥ m, i da e je potrebno n bitskih operacija (jer moramo
2

da kopiramo sve nepromeene bite iz dueg broja).


Razmotrimo sada mnoee n-bitnog broja N sa m-bitnim brojem M , gde
je n ≥ m. Na doem dijagramu nije prikazano zavrxno sabirae.
10111
1011
-----
10111
101110
10111000

Mnoee ima dve faze: ispisivae vrsta, pa ihovo sabirae. Prva


faza: ispisuje se najvixe m vrsta ispod prve linije, a u svakoj vrsti ima
najvixe n + m − 1 bita. Prema tome, prva faza obuhvata m(n + m − 1)
bitskih operacija. Druga faza sastoji se od najvixe m − 1 sabiraa, od
kojih se svako sastoji od najvixe n + m − 1 bitskih operacija. Dakle,
sloenost druge faze je najvixe (m − 1)(n + m − 1). Ukupan broj bit-
skih operacija u toku mnoea je najvixe m(n + m − 1) + (m − 1)(n +
m − 1) = (2m − 1)(n + m − 1) ≤ (2m)(n + m) ≤ (2m)(2n) = 4mn. Drugim
reqima, sloenost ovog algoritma je ograniqena sa 4 log N log M . (pri
tom zanemarujemo vreme pristupa memoriji i sliqno, xto je trivijalno).
2 2

Vreme izvrxavaa C · 4 log N log M = C log N log M zavisi od brzine


raqunara. 2 2

Ako su f i g pozitivne funkcije od prirodnih brojeva (definisane


na Z , odnosno Z ako zavise od vixe promen ivih; R oznaqava skup
realnih pozitivnih brojeva), i postoje c > 0, n ∈ Z , takvi da je f (n) <
r
>0 >0 >0

cg(n) za sve n > n , onda kaemo da je f = O(g).


0 >0
0

37
Prema tome, f = O(g) znaqi da je f ograniqeno konstantnim umnoxkom
(obiqno se za g bira najjednostavniji izraz).
Koristei ovu notaciju, sloenost sabiraa N i M (ako je N ≥ M ) je
g

O(log N ). Ova ocena sloenosti vai i za oduzimae. Sloenost mnoea


M i N je O(log N log M ). Ako su N i M istog reda veliqine, kaemo da je
sloenost izraqunavaa ihovog proizvoda O(log N ). Primetimo da
2

log2 N = (log N )2 ̸= log(log N ) = log log N.

Sloenost ispisivaa cifara broja N je O(log N ).


Postoje efikasniji algoritmi za mnoee, sloenosti
O(log N log log N log log log N ).

Na sliqan naqin dobija se ocena sloenosti de ea N sa M (kao i izraqunavaa


ostatka N mod M , odnosno koliqnika): O(log N log M ).
Pravila:
1. kO(f (n)) = O(kf (n)) = O(f (n)).
2. Neka je p(n) = a n + a n + · · · + a polinom.
d
d
d−1
d−1
0

a) Tada je p(n) = O(n ). Na primer, lako je pokazati da je 2n + 5n <


3n za velike n, pa je 2n + 5n = O(3n ) = O(n ).
d 2
2 2 2 2

b) O(log(p(n))) = O(log n), jer je O(log(p(n))) = O(log n ) = O(d log n) =


O(log n).
d

3. Ako je h(n) ≤ f (n) onda je O(f (n)) + O(h(n)) = O(f (n) + h(n)) =
O(2f (n)) = O(f (n)).

4. f (n)O(h(n)) = O(f (n))O(h(n)) = O(f (n)h(n)).


Da se izvrxi analiza sloenosti tipiqnog algoritma, potrebno je:
a) Izbrojati osnovne korake (one koji se izvrxavaju najvixe puta).
b) Opisati najsporiji osnovni korak.
v) Odrediti goru granicu vremena izvrxavaa najsporijeg osnovnog koraka.
g) Odrediti goru granicu vremena izvrxavaa celog algoritma (najqexe
izraqunavaem proizvoda a) i v))
d) Odgovor treba da bude oblika O(. . .).
Podsetimo se, za mnoee F · G, odnosno de ee F/G sloenost je
O(log F log G); sloenost sabiraa F + G, odnosno oduzimaa F − G je
O(log F ) ako je F ≥ G.
Problem 1. Odrediti goru granicu sloenosti izraqunavaa nzd(N, M )
Euklidovim algoritmom ako je N ≥ M .
38
Rexee: Izraqunavae NZD je najsporije ako su svi koliqnici 1, kao
na primer pri izraqunavau nzd(21, 13), odnosno opxtije, pri raqunau
), gde je F je n-ti Fibonaqijev broj (F = F = 1, F =
). Broj de ea u Euklidovom algoritmu je n−3 < n. Neka je α =
nzd(F , F
n n−1 n 1 2 n

(1 + 5)/2. Tada je F ≈ α . Prema tome, za Euklidov algoritam je najgori


F √
n−1 +F n−2

sluqaj ako je N = F , M = F . Primetimo da je n ≈ log N . Broj de ea


n
n

je n = O(log N ). Svaki korak je de ee, sloenosti O(log N log M ). Prema


n n−1 α

tome, sloenost je O(log N )O(log N log M ) = O(log N log M ), odnosno posle 2

zaokruivaa O(log N ). Ako se udvostruqi duina (= O(log N )) dva broja,


3

Euklidov algoritam e se izvrxavati 8 puta due. Zaista, neka je vreme


izraqunavaa nzd(N, M ) jednako k(log N ) za neku konstantu k. Pretpostavimo
da je M , N ≈ 2 . Tada je vreme za izraqunavae nzd(N , M ) jednako t =
3

k(log 2 ) = k(500 log 2) = k ·500 (log 2) . Ako je M , N ≈ 2 (dakle dva


500
1 1 1 1 1

puta dui brojevi), onda je za izraqunavae nzd(N , M ) potrebno vreme


500 3 3 3 3 1000
2 2

) = k(1000 log 2) = k ·1000 (log 2) = k ·2 ·500 (log 2) = 8t .


2 2

Ako su brojevi sa kojima se radi mali, npr. zapis im je krai od 32


1000 3 3 3 3 3 3 3
t = k(log 2
2 1

bita, onda je za jedno de ee potrebno konstantno vreme, koje zavisi od


snage procesora.
Problem 2. Odrediti goru granicu za sloenost izraqunavaa B −1

(mod M ).
Rexee. Primer: izraqunavae 11 (mod 26). −1

26 = 2 · 11 + 4
11 = 2 · 4 + 3
4 = 1·3+1

1 = 4−1·3
= 4 − 1(11 − 2 · 4) = 3 · 4 − 1 · 11
= 3(26 − 2 · 11) − 1 · 11 = 3 · 26 − 7 · 11

Prema tome, 11 ≡ −7 + 26 = 19 (mod 26). Algoritam se sastoji od dve


−1

faze, prva: izraqunavae NZD, druga: izraavae NZD u obliku linear-


ne kombinacije. Sloenost izraqunavaa NZD je O(log M ). Druga faza 3

ima O(log M ) koraka (isto kao NZD). Najgori je korak tipa 3(26 − 2 ·
11) − 1 · 11 = 3 · 26 − 7 · 11, za kopirae 6 brojeva je potrebno vreme
6O(log M ) = O(log M ). Uproxavae obuhvata jedno mnoee O(log M ) i 2

jedno sabirae brojeva ≤ M , sloenosti O(log M ). Prema tome, sloenost


prvog koraka je O(log M ) + O(log M ) + O(log M ) = O(log M ). Ukupna
2 2

sloenost izraavaa NZD u obliku linearne kombinacije brojeva je


O(log M )O(log M ) = O(log M ). Ukupna sloenost inverzije po modulu
2 3

M je O(log M ) + O(log M ) = O(log M ).


3 3 3

Problem 3: Pretpostavimo da je B, N ≤ M . Odrediti goru granicu za


vreme izraqunavaa B (mod M ) vixestrukim kvadriraem.
N

39
Rexee: Neka je n broj bita u zapisu N u sistemu sa osnovom 2. Broj
osnovnih koraka je n = O(log N ). Primer | izraqunavae 87 (mod 103).
43 = (101011) = (n n n n n n ) .
43

Korak 0: Poqetak a = 1 poxto je n = 1, stavimo a = 87.


2 5 4 3 2 1 0 2

Korak 1: 87 ≡ 50 poxto je n = 1, stavimo a = 87 · 50 ≡ 24(≡ 87 · 87 )


0

Korak 2: 50 ≡ 28(≡ 87 ) poxto je n = 0, a = 24.


2 2 1
1

Korak 3: 28 ≡ 63(≡ 87 ) poxto je n = 1, a = 24 · 63 ≡ 70(≡ 87 · 87 · 87 )


2 4
2

Korak 4: 63 ≡ 55(≡ 87 ) poxto je n = 0, a = 70.


2 8 8 2 1
3

Korak 5: 55 ≡ 38(≡ 87 ) poxto je n = 1, a = 70 · 38 ≡ 85(≡ 87 · 87 · 87 · 87 )


2 16
4

U najgorem sluqaju je uvek n = 1. Razmotrimo vreme izvrxavaa jednog


2 32 32 8 2 1
5

koraka. Neka je S tekui ostatak B (mod M ). Primetimo da je 0 ≤ a, S <


i
2i

M . U prvom koraku imamo mnoee S ·S , O(log M ). Poxto je 0 ≤ S < M , 2

sloenost svoea S je O(log(M ) log M ) = O(log (M )). Neka je H = S


2 2
2

(mod M ). Poxto je 0 ≤ H < M , sloenost mnoea H · a je O(log (M )).


2 2 2
2

Zbog 0 ≤ Ha < M , sloenost svoea Ha (mod M ) je O(log(M ) log M ) =


O(log (M )). Dakle, slenost jednog koraka je O(log (M ) + O(log (M ) +
2 2
2 2 2

O(log (M )+O(log (M ) = O(log (M )). Ukupna sloenost izraqunavaa B


2 2 2

(mod M ) ponov enim kvadriraem je O(log N )O(log (M )) = O(log N log (M )).


N
2 2

Ako je N ≤ M , onda je to prosto O(log (M )). 3

Problem 4. Oceniti sloenost izraqunavaa N ! primenom algoritma


(((1 · 2) · 3) · 4) · · · . Uputstvo: log(A!) = O(A log A).
Primer: neka je N = 5; izraqunavae 5!:
1·2 = 2
2·3 = 6
6·4 = 24
24 · 5 = 120

Ukupan broj mnoea je N − 1, priblino N . Najgori sluqaj je posledi,


(N − 1)! · N, sloenosti O(log((N − 1)!) log N ). Poxto je log((N − 1)!) ≈
, prethodni izraz zaokruujemo na O(N log N ). Prema
tome, sloenost najgoreg koraka je O(N log N ). Poxto je broj koraka N ,
log(N !) = O(N log N )
2

ukupno vreme izvrxavaa je O(N log N ), xto je vrlo sporo.


2

Zaxto
√ je log(A!) = O(A log A)? Prema Stirlingovoj formuli je A! ≈
2

(A/e) 2Aπ . Na primer, 20! = 2.43 · 10 , a (20/e) 2 · 20 · π = 2.42 · 10 .


Prema tome, log(A!) = A(log A − log e) + (log 2 + log A + log π) = O(A log A)
A 18 20 18
1

(ostali qlanovi su mai). 2

Kraj Problema 4.
Vremenska sloenost izraqunavaa B je O(N log B) za neke i, j ≥ 1 j

(vrednosti i, j odrediti za domai zadatak). Ovo je vrlo sporo.


n i

Vremenska sloenost pronalaea najmaeg prostog qinioca N uzastopnim


de eima (N/2, N/3, N/4,...) je O(√N log N ) za neko j ≥ 1 (odrediti ga
j

za domai). Ovo je vrlo sporo.


Pretpostavimo da imamo r celih brojeva kao ulaz za algoritam (npr. r
promen ivih N , N ,... N ). Na primer, za mnoee je r = 2, za faktorizaciju
1 2 r

40
, svoee b (mod M ): r = 3. Za algoritam se kae da je polinomijalne
sloenosti ako je vreme izvrxavaa polinom od duina brojeva (odnosno
N
r=1

brojeva bita u ima), O(log N log N . . . log N ). Tako, algoritmi polinomijalne


d1 d2 dr

sloenosti postoje za nalaee NZD, sabirae, mnoee, de ee, stepenovae


1 2 r

ponov enim kvadriraem, odreivae inverza po modulu m.


Ako je n = O(log N ) i p(n) je polinom, onda se za algoritam qije je
vreme izvrxavaa c (c > 1) kae da ima eksponencijalnu vremensku
sloenost (u odnosu na duinu N ).
p(n)

Faktorizacija ponov enim de eem je primer takvog algoritma. Qlan


log√N je toliko zanemar iv, da se obiqno kae da je sloenost algoritma
j

). Poxto je 0.5n
polinom po n, ovo je eksponencijalna sloenost. Sloenosti izraqunavaa
1/2 log N 1/2 1/2 log N 0.5n
O( N ) = O(N ) = O((c ) ) = O(c ) = O(c

b i N ! su takoe eksponencijalne.
Vremenska sloenost trenutno najbo ih poznatih algoritam za nala-
N

ee faktora N je c3

, xto je mnogo sporije od polinomijalnog,
(log N (log log N )2 )

ali√mnogo bre od eksponencijalnog. Ovaj izraz je subeksponencijalni, jer


je x za velike x mae od svake (nekonstantne) polinomijalne funkcije od
x. Faktorizacija 20-cifrenog broja ponov enim de eem trajala bi due
3

od starosti svemira. Godine 1999. broj od 155 cifara rastav en je za 8000


MIPS godina. Godine 2009. faktorisan je broj od 232 cifre.
Klasa problema za qije se rexavae zna polinomijalni algoritam oznaqava
se sa P. Postoje familije problema za koje se ne zna polinomijalni algoritam
(iako se za polinomijalno vreme moe proveriti da li je dato rexee
taqno); klasa tih problema oznaqava se sa NP. Potklasa ovih problema,
na koje se mogu svesti svi problemi iz klase NP je klasa NP-kompletnih
problema. Ako se pronae polinomijalni algoritam za neki od NP-kompletnih
problema, onda za sve ih postoji polinomijalni algoritam. U pogledu
vremena izvrxavaa, zna se da je P ≤ NP ≤ eskponencijalni.
Vaan primer NP-kompletnog problema: odrediti rexee sistema nelinearnih
polinomijalnih jednaqina po modulu dva, kao xto je npr. sistem x x x +
x x + x ≡ 0 (mod 2), x x + x + x ≡ 1 (mod 2), .... Efikasno rexee
1 2 5

ovog problema bi omoguilo efikasno razbijae algoritma AES.


4 3 7 1 9 2 4

16 Sistemi sa javnim k uqem


U simetriqnom xifarskom sistemu, ako znamo algoritam xifrovaa i
k uq za xifrovae, onda lako moemo da odredimo algoritam dexifrovaa,
odnosno k uq za dexifrovae (za polinomijalno vreme). Ova vai na
primer za C ≡ aP + b (mod 26), za protoqne xifre, DES i AES .
Xifarski sistem sa javnim k uqem je sistem u kome svako zna xifarsku
transformaciju (algoritam xifrovaa), ali se ne zna polinomijalni algoritam
za odreivae k uqa za dexifrovae polazei od k uqa za xifrovae.
Jednosmerna funkcija (one-way function). Neka su X , Y skupovi, i
neka je f : X → Y funkcija. Za dato x ∈ X lako je izraqunati f (x)
(lako/brzo xifrovae). Za dato y ∈ Y texko je odrediti x takvo da je
41
y = f (x) (texko/sporo dekriptirae). Jednosmerne funkcije ne moraju
biti invertibilne.
Da se u raqunaru registruje lozinka (password) lozinka faktiqki se
zapisuje f (lozinka), gde je f jednosmerna funkcija. Prilikom prijav ivaa
vi unosite lozinku. Raqunar izraqunava f od ukucane lozinke i to uporeuje
sa zapisanom vrednoxu.
Prividno jednosmerna funkcija (trapdoor one-way function): inverti-
bilna jednosmerna funkcija f , za koju je odreivae vrednosti f lako,−1

za one koji to znaju (lako/brzo dexifrovae).


Najvanije primene kriptografije sa javnim k uqem:
1. Razmena k uqa za simetriqni xifarski sistem;
2. Digitalni potpis.
Sistemi sa javnim k uqem retko se koriste za xifrovae poruka, jer
su sporiji od simetriqnih sistema.
16.1 RSA
Sistem dobio je ime po trojici svojih pronalazaqa (Rivest, Shamir,
Podsetimo se da ako je nzd(m, n) = 1 i a ≡ 1 (mod φ(n)), onda
RSA

je .
Adleman).
ma ≡ m (mod n)
Boban najpre bira dva prosta broja sa oko 150 dekadnih cifara. Zatim
izraqunava n = pq ≈ 10 i φ(n) = (p − 1)(q − 1). Zatim on odreuje
neki broj e takav da je nzd(e, φ(n)) = 1 i izraqunava d ≡ e (mod φ(n)).
300
−1

Primetimo da je ed ≡ 1 (mod φ(n)) i 1 < e, d < φ(n). Boban objav uje (npr.
na svom sajtu) (n, e), a quva u tajnosti d, p, q. On moe da izbrixe p i q.
Ceo ovaj postupak Boban obav a jednom godixe.
Alisa eli da poxa e Bobanu poruku M (to moe da bude k uq za
AES kodiran brojem 0 ≤ M < n). Ako je poruka vea od n, onda ona razbija
poruku na blokove koji se mogu predstaviti brojevima maim od n. Alisa
pronalazi Bobanov par (n, e) na egovom sajtu. Ona izraqunava C ≡ M
(mod n) (to je prividno jednosmerna funkcija), pri qemu je 0 ≤ C < n; ona
e

xa e broj C Bobanu.
Boban izraqunava C (mod n) i dobija M . Zaxto? C ≡ (M ) ≡ M ≡
M = M (mod n) (ovo je taqno i ako nije nzd(M, n) = 1, dokazati). Presretnutu
d d e d ed

poruku C Cica po svemu sudei ne moe da iskoristi ako ne zna Bobanov


1

parametar d.
Primer: Boban bira p = 17, q = 41. On zatim izraqunava n = pq =
17 · 41 = 697 i φ(n) = (17 − 1)(41 − 1) = 640. On bira e = 33, xto je uzajamno
prosto sa 640. On zatim izraqunava d ≡ 33 (mod 640) = 97. Boban na svoj
−1

sajt stav a par n = 697, e = 33.


Alisa eli da koristi afinu xifru C = aP + b (mod 26) sa k uqem,
C ≡ 7P + 25 (mod 26) da bi Bobanu mogla da poxa e dugaqku poruku.
Ona kodira k uq brojem 7 · 26 + 25 = 207, pa izraqunava xifrat 207
(mod n) = 207 (mod 697). Za to ona koristi svoj raqunar i algoritam
e
33

42
stepenovae kvadriraem: 33 = 32 + 1, 207 ≡ 332, 207 ≡ 332 ≡ 98,
207 ≡ 98 ≡ 543, 207 ≡ 543 ≡ 18, 207 ≡ 18 ≡ 324. Prema tome,
2 4 2

207 ≡ 207 207 ≡ 324 · 207 ≡ 156 (mod 697).


8 2 16 2 32 2

Alisa xa e Bobanu broj 156. Polazei od broja 156 Cici je tee da


33 32 1

izraquna 207.
Boban dobija poruku 156, pa izraqunava 156 (mod n) = 156 (mod 697) =
207. Zatim on dekodira poruku (to nije deo algoritma RSA ) 207 = 7 · 26 +
d 97

25. Zatim (to takoe nije deo RSA ) Alisa xa e Bobanu dugaqku poruku
koristei C ≡ 7P + 25 (mod 26). Kraj primera.
Svaki korisnik ima svoj par brojeva: Alisa ima par n , e , Boban par
n , e , ...na svom sajtu, ili u "imeniku" na nekom poznatom sajtu. Par
A A

n , e je Alisin javni k uq, a d je en tajni k uq.


B B
A
Kada Alisa xa e poruku M Bobanu, ona izraqunava M (mod n ).
A A

Boban za dexifrovae, odnosno izraqunavae M , koristi svoj k uq d .


eB
B

Zaxto je texko odrediti d na osnovu e i n? Kao xto je reqeno, d ≡ e B


−1

(mod φ(n)). Odreivae inverza je efikasno (polinomijalna sloenost).


Odreivae φ(n) je texko ako znamo samo n, jer je potrebno rastaviti n na
qinioce; za ovaj posao znaju se subeksponencijalni, ali ne i polinomijalni
algoritmi.
Pretpostavimo da znamo n. Tada je poznavae φ(n) polinomijalno ekvivalentno
sa poznavaem p i q.
Dokaz. Ako znamo n, p, q, onda je φ(n) = (p − 1)(q − 1), xto se moe
izraqunati za O(log n). 2

Pretpostavimo sada da znamo n i φ(n). Tada je x + (φ(n) − n − 1)x + n =


x − (p + q)x + pq = (x − p)(x − q). Dakle, brojevi p, q se mogu lako odrediti
2

rexavaem kvadratne jednaqine x + (φ(n) − n − 1)x + n = 0 na obiqan


2

naqin. Izraqunavae kvadratnog korena (broja koji nije obavezno kvadrat


2

celog broja) i obav ae ostalih aritmetiqkih operacija zahteva vreme


O(log n). Kraj dokaza.
3

Prema tome, odreivae φ(n) texko je koliko i faktorizacija.


Preporuke o kojima treba voditi raquna prilikom izbora parametara
za RSA, a koje e biti jasnije posle dela o kriptoanalizi:
1. p, q obiqno se biraju tako da nzd(p − 1, q − 1) bude mali broj.
2. Oba broja p, q treba da imaju veliki prost qinilac.
3. Brojevi p, q ne treba da budu previxe blizu jedan drugom; s druge
strane, odnos veeg i maeg od ih je obiqno mai od 4. Postoje
specijalni algoritmi za faktorizaciju, koji mogu da se iskoriste
ako nije ispoxtovana bilo koja od ove tri preporuke.
4. Obiqno je e relativno malo, da bi se smailo vreme xifrovaa.
Qesto se uzima e = 3 ili e = 65537 = 2 + 1. 16

Za liqnu upotrebu se obiqno koriste brojevi n od 768 bita, odnosno


n ≈ 10 . Za komercijalnu upotrebu se obiqno koriste brojevi n od 1024
bita, odnosno n ≈ 10 . Za vane potrebe se obiqno koriste brojevi n
231
308

43
od 2048 bita, odnosno n ≈ 10 . Oko 1990. godine bilo je uobiqajeno da
se koriste 512-bitni n, n ≈ 10 . Meutim, broj veliqine oko 10 sa
617

konkursa firme RSA rastav en je na qinioce 2005. godine.


154 193

Kada koriste simetriqni xifarski sistem, Alisa i Boban moraju da


unapred dogovore zajedniqki k uq. To stvara potexkoe: potrebno je da
se oni nau (nepraktiqno) ili da k uq poxa u neobezbeenom linijom
(nesigurno). Na primeru sistema RSA vidimo da je kriptografija sa javnim
k uqem potencijalno rexee problema razmene k uqeva za simetriqne
sisteme.
16.2 Problem diskretnog logaritma u konaqnom po u
Neka je F konaqno po e. Neka je g generator F , i neka je b ∈ F . Tada je ∗ ∗

g = b za neki pozitivan celi broj i ≤ q − 1. Odreivae i za zadate F ,


q q q

g i b je PDLKP (problem diskretnog logaritma u konaqnom po u, Finite


i
q

Field Discrete Logarithm Problem), | problem, koji je prema onome xto se


zna, teak kao faktorizacija.
Primer. Elemenat 2 generixe F . Prema tome, znamo da jednaqina

2 = 3 (odnosno 2 ≡ 3 (mod 101)) ima rexee. To je i = 69. Sliqno, znamo


101

da jednaqina 2 = 5 ima rexee; to je i = 24. Kako se ovaj problem moe


i i

rexiti efikasnije nego grubom silom? Kraj primera.


i

Za kripografske primene se obiqno uzima 10 < q < 10 , gde je q


veliki prost broj, ili je oblika 2 . Qienicu da je g = b moemo da
300 600

zapixemo u obliku log b = i. Ovo treba da podsea na obiqne logaritme:


d i

log (1000) = 3 jer je 10 = 1000 i ln(e ) = log (e ) = 2. U gorem primeru


g

za q = 101 je log (3) = 69 (jer je 2 ≡ 3 (mod 101)). Najbo i algoritmi za


3 2 2
10 e

rexavae PDLKP imaju sloenost sliqnu faktorizaciji, odnosno subeksponencijalni


69
2

su.
16.3 Protokol usaglaxavaa k uqa Difi{Helman
Protokol usaglaxavaa k uqa nad konaqnim po em Difi{Helman (PUKDH)
omoguuje da Alisa i Boban razmene k uqeve bez neposrednog susreta. Za
vixe korisnika A, B, C , ...fiksiraju se q i g, generator F . Brojevi q i g ∗

se koriste u celom sistemu. Svaki korisnik ima svoj privatni k uq a (a , q

a , a ,...), 1 < a < q − 1, i javni k uq, koji je jednak g u po u F . Svaki


A

korisnik objav uje (ostatke) g , g , . . . u javnom imeniku ili na svom


a
B C q

sajtu. Qesto se novi par a , g kreira za svaku transkaciju (razmenu


aA aB

poruka). U tom sluqaju Alisa mora da poxa e Bobanu g na poqetku


aA
A

poruke. Ako Alisa i Boban ele da usaglase k uq za AES , oni za to


aA

koriste ostatak g . Alisa ovo moe da izraquna stepenovaem g na


a . Boban moe da izraquna isti ovaj broj stepenovaem g na a .
aA aB aB

Cica ima q, g, g , g , ali po svemu sudei ne moe da izraquna g


aA
A B

vez rexavaa PDLKP. Ovo izgleda iznenaue. Ona moe da izraquna


aA aB aA aB

, ali je to beskorisno. Da bi izraqunala g , ona mora


da stepenuje npr. g , na a . Da bi dobila a ona mora da pokuxa da
aA aB aA +aB aA aB
g g =g
aA
B B

44
iskoristi g i g . Ali odreivae a polazei od g i g je PDLKP, za
xta se ne zna efikasan algoritam.
aB aB
B

Primer. q = p = 97, g = 5. a = 36 je Alisin privatni k uq. g =


5 ≡ 50 (mod 97), pa je g = 50 Alisin javni k uq. a = 58 je Bobanov
aA
A

privatni k uq. g = 5 ≡ 44 (mod 97), pa je g = 44 Bobanov javni


36 aA
B

k uq.
aB 58 aB

Alisa izraqunava (g ) = 44 ≡ 75 (u F ), a Boban izraqunava


(g ) = 50 = 75.
aB aA 36
97

Polazei od 97, 5, 50, 44, Cica ne moe lako da dobije 75.


aA aB 58

Praktiqni deta i: broj q − 1 treba da ima veliki prost qinilac (u


protivnom postoji specijalni, efikasan algoritam za rexavae PDLKP).
Ostatak g je otprilike iste veliqine kao i q ≥ 10 . Da bi se od
ovoga dobio k uq za AES , oni se mogu dogovoriti da izdvoje najniih
aA aB 200

128 bita binarne reprezentacije broja g ako je q prost broj. Ako je


F = F [x]/(f (x)), onda oni mogu da se dogovore da iskoriste koeficijente
aA aB

uz x , . . . , x u g .
q 2

Qesto Alisa i Boban generixu a i a u trenutku kontakta, i koriste


127 0 aA aB

ih samo za tu razmenu poruka. A B

17 Mae korixeni xifarski sistemi sa jav-


nim k uqem
17.1 RSA kao algoritam za xifrovae poruka
RSA moe da se iskoristi za xifrovae poruke, umesto da se koristi
samo za xifrovae k uqa za AES (tada nema potrebe da se koristi AES).
Alisa kodira poruku M brojem 0 ≤ M < n i xa e Bobanu ostatak M
(mod n ). Ako je poruka predugaqka, ona je razbija na blokove M , M , M , . . .,
eB
B

M <n .
B 1 2 3
i B

17.2 ElGamalov algoritam za xifrovae


ElGamalov algoritam za xifrovae vixe se koristi u varijanti zasnovanoj
na upotrebi eliptiqkih krivih, nego kad se koriste konaqna po a. Moe
da se koristi za slae poruka, ili k uqa za AES .
Postupak pripreme je sliqan kao kod postupka Difi{Helman.
Alisa eli da poxa e poruku M Bobanu. Ako je veliqina po a q
veliki prost broj p, onda se poruka kodira kao broj izmeu 0 i p − 1. Ako
je pak q = 2 , onda se polazi od ASCII kodova iz M (npr. 101110 . . .), pa
se niz bita kodira polinomom (npr. 1x + 0x + 1x + · · · ). Ako je
d

M k uq za AES , onda se taj k uq moe kodirati polinomom. Ako je M


d−1 d−2 d−3

preveliko, onda se razbija na blokove.


Alisa bira sluqajni broj k, 1 < k < q. Ona bira razliqite k za svaku
novu poruku. Ona zatim xa e Bobanu par (ostataka u konaqnom po u)
k
g , Mg .aB k

45
Alisa zna g i g (to su javni podaci) i k, pa moe da izraquna g
i (g ) = g , posle qega mnoeem dobija M g . Boban prima par.
aB k

On ne moe da odredi k, ali mu to nije ni potrebno. On najpre izraqunava


aB k aB k aB k

(on zna a , svoj privatni k uq). Zatim on izraqunava (g ) aB k −1

(u po u F ), a onda mnoeem dobija (M g )(g ) = M .


k aB aB k
(g ) = g B
aB k −1

Ako Cica pronae k (za xta joj po svemu sudei treba rexavae PDLKP,
aB k
q

jer se zna g, a poslato je g ) ona moe da izraquna (g ) = g , a zatim


) , pa M .
k aB k aB k
aB k −1

Primer: q = 97, g = 5, a = 58 je Bobanov privatni k uq, g =


(g

44 je Bobanov javni k uq. Alisa eli da poxa e M = 30 Bobanu. Ona


aB
B

bira sluqajni k uq sesije k = 17, pa izraqunava g = 5 = 83. Ona zna


g = 44 (to je javni podatak) i izraqunava (g ) = 44 = 65. Zatim ona
k 17

izraqunava M g = 30 · 65 = 10. Ona xa e Bobanu g , M g = 83, 10.


aB aB k 17

Boban prima 83, 10. On zna a = 58, pa izraqunava (g ) = 83 = 65 =


aB k k aB k

. Zatim on izraqunava (g ) = 65 = 3 (tj. 65 ≡ 3 (mod 97)), pa


k aB 58
B
aB k −1 −1 −1

mnoeem dobija (M g (g ) = 10 · 3 = 30 = M .
aB k
g
aB k aB k −1

17.3 Razmena k uqeva Mesi-Omura


Razmena k uqeva Mesi-Omura (Massey-Omura) nije ni simetriqni ni asimetriqni
xifarski sistem. Moe se iskoristiti za slae k uqa ili poruke.
Za skup korisnika fiksira se konaqno po e F , gde je q veliki broj.
Nije potreban ni generator, ni javni k uqevi. Pre nego xto Alisa poxa e q

Bobanu poruku, Alisa bira sluqajni k uq za xifrovae e , nzd(e , q −


1) = 1, a Boban bira sluqajni k uq za xifrovae e , nzd(e , q − 1) = 1.
A A

Oba ova k uqa koristie se samo za jednu razmenu poruka. B B

Alisa izraqunava d ≡ e (mod q − 1). Boban izraqunava d ≡ e


−1 −1

(mod q − 1). Nixta od ovih brojeva se ne objav uje.


A A B B

Alisa kodira poruku elementom po a M ∈ F . Ako je poruka predugaqka,


ona je razbija na blokove. Ona xa e ostatak M iz po a F Bobanu. q

Bobanu je to nerazum ivo, pa on xa e nazad Alisi (M ) = M ,


eA
q
eA eB eA eB

xto je pak oj nerazum ivo. Alisa xa e Bobanu (M ) = M eA eB d A ∗

= M . Na kraju Boban izraqunava (M ) = M .


eA eB d A
=

K uqni je korak oznaqen zvezdicom. U suxtini, Alisa navlaqi qarapu


eA d A eB eB eB dB
M

na stopalo. Boban preko qarape navlaqi cipelu. Alisa zatim uklaa qarapu,
ne skidajui cipelu, a Boban uklaa i cipelu. Boban sada vidi stopalo,
iako ga Cica ni jednom nije videla.
Xifarski sistem Mesi{Omura je primeivan na mobilne telefone.
Primer. p = 677. Alisa xa e Bobanu bigram SC. Poxto je S = 18 i
C = 2, bigram se kodira se 18 · 26 + 2 = 470 = M . Alisa bira e = 255,
pa je d = 255 (mod 676) = 395. Boban bira e = 421, pa je d = 421
−1
A
−1

(mod 676) = 281. Alisa izraqunava 470 ≡ 292 (mod 677) i xa e 292
A B B

Bobanu. Boban izraqunava 292 ≡ 156 (mod 677) i xa e 156 Alisi. Alisa
255

izraqunava 156 ≡ 313 (mod 677) i xa e 313 Bobanu. Boban izraqunava


421

≡ 470 (mod 677) i dekodira 470 kao bigram SC.


395
281
313

46
18 Eliptiqke krive
Eliptiqka kriva je kriva opisana jednaqinom oblika y + a xy + a y =
x + a x + a x + a , sa jednom dopunskom 0-taqkom (beskonaqno uda ena
2
1 3

taqka). Primer y + y = x − x prikazan je na Slici 1. Ispostav a se da se


3 2
2 4 6

sve kubne krive mogu dovesti na ovaj oblik smenom promen ivih; ovaj oblik
2 3

je pogodan za definisae operacije sabiraa taqaka, koju emo opisati. Za


sada raqunamo nad skupom realnih brojeva. Potrebna nam je nula-taqka koju
emo oznaqavati sa ⊘. Zamislimo da smo savili sve vertikalne prave, tako
da su im spojeni gori i doi "krajevi", i da smo ih onda zalepili. Taqka
koju smo dobili zove se beskonaqno uda ena taqka ili 0-taqka. Ona zatvara
naxu krivu liniju. Ona je gori i doi zavrxetak svake vertikalne prave.
Sada moemo da definixemo operaciju sabiraa na skupu taqaka eliptiqke
krive. Najpre, ⊘ + ⊘ = ⊘ i ⊘ + P = P + ⊘ = P za proizvo nu taqku krive
(⊘ je neutralni element za sabirae taqaka). Svaka vertikalna prava, ako
seqe krivu u jednoj taqki P , onda je seqe u taqno jox jednoj taqki Q (ako je
jedan koren kvadratne jednaqine sa realnim koeficijentima realan, onda
je i drugi). Po definiciji je P + Q = ⊘ i −P = Q (suprotni element
taqke). Ako neka prava koja nije vertikalna seqe krivu u dve taqke P i
Q, onda prava seqe krivu u jox jednoj taqki R (ako kubna jednaqina ima
dva realna korena, onda je i trei koren realan). Zbir taqaka P i Q je po
definiciji P + Q = −R.
Naredne slike ilustruju sabirae taqaka krive. Vertikalna prava L
seqe krivu u taqkama P , P i ⊘, pa je P + P + ⊘ = ⊘, tj. P = −P , i P = 1

−P . Dve razliqite taqke krive sa istom x-koordinatom su inverzne/suprotne


1 2 1 2 1 2 2

jedna drugoj; videti Sliku 2.


1

Ako elimo da izvrximo sabirae P + P , taqaka sa razliqitim x-


koordinatama, spajamo ih pravom i pronalazimo treu preseqnu taqku P .1 2

Primetimo da je P + P + P = ⊘, P + P = −P . Videti Sliku 3. 3

Digresija: Gde se seku y = x i y = 2x − 1? Tamo gde je x = 2x − 1,


1 2 3 1 2 3

tj. x − 2x + 1 = (x − 1) = 0. One se seku u taqki x = 1 dva puta (zbog


2 2

eksponenta), xto je u vezi sa qienicom da je y = 2x − 1 tangenta na y = x ,


2 2

videti Sliku 4.
2

Nazad na eliptiqke krive. Kako se moe udvostruqiti taqka P ? Treba


konstruisati tangentu na krivu i nai drugu preseqnu taqku P . P + P + 1

P = ⊘, pa je 2P = −P 2; videti Sliku 5.
2 1 1
2 1

47
15

10

2 4 6

-5

-10

-15

1. Eliptiqka kriva sa x i y-osama 2. Eliptiqka kriva bez osa.


y 2 + y = x3 − x Odreivae suprotne taqke.
0 <- 0-tacka
*
| | * |
| / * /
| / * /
| / * /
| / * /
| / * /
| / * /
| / * /
- | / - * /
/ \ | / / \ 0 <- P1
--/-----\---------- /------------- / \ / *
| | \ / | \ / *
| | | | | | | *
| | / \ | / \ *
\ / \ \ / \*
\ / | \ \ / 0 <- P2
- | \ - * \
| \ * \
| \ * \
| \ * \
| \ * \
| \ * \

48
| \ * \
| | * |

49
3. Sabirae P 1 + P2 . 5. Udvostruqavae P . 1

/
| -P2=2P1 -> 0
/ /
/ * /
P3 / * /
0 /
* / /
* / /
* / /
- * / - /
/ \ P2 * / / \ /
/ \0 / / \ /
P1 | * \ / | \ /
0 | | | | |
* | / \ | / \
\ / \ * \ / \
\ / \ * \ / \
- \ 0 \
\ P1 * \
\ * \
\ * \
0 -P3 * \
\ =P1+P2 * \
\ * \
| 0 P2
\

4. y = x2 i y = 2x − 1
\ /
\ /
\ / *
\ / *
\ /
\ * <-(1,1)
\__/
*
*
Primer. Taqka P = (1, 0) oqigledno pripada krivoj y + y = x − x.
Odredimo 2P . Odreujemo tangentu u P implicitnim diferenciraem.
2 3

dy
2y + dy
= 3x − 1. Dakle,
2
= i | = 2. Jednaqina tangente je
dy 3x2 −1 dy

y − 0 = 2(x − 1), tj. y = 2x − 2. Gde tangenta seqe y + y = x − x? Tamo gde je


dx dx dx 2y+1 dx (1,0)

(2x − 2) + (2x − 2) = x − x, odnosno x − 4x + 5x − 2 = 0 = (x − 1) (x − 2).


2 3
2 3 3 2 2

50
Taqka preseka x = 1 je dvostruka (presek u (1, 0)), a presek u x = 2 je
obiqan. Primetimo da je trea taqka preseka na pravoj y = 2x − 2, pa je
to taqka (2, 2). Dakle, (1, 0) + (1, 0) + (2, 2) = 2P + (2, 2) = ⊘, (2, 2) = −2P ,
2P = −(2, 2). Taqka −(2, 2) je druga taqka na krivoj sa istom x-koordinatom.
Ako je x = 2, onda je y + y = 6, pa je y = 2, −3, pa je 2P = (2, −3).
Da bismo odredili 3P = P + 2P = (1, 0) + (2, −3), odreujemo jednaqinu
2

prave kroz (1, 0), (2, −3). en nagib je −3, pa je y − 0 = −3(x − 1), odnosno
y = −3x + 3. Gde ova prava seqe y + y = x − x? Eliminacijom y dobija se
(−3x+3) +(−3x+3) = x −x, tj. x −9x +20x−12 = 0 = (x−1)(x−2)(x−6)
2 3

(primetimo da mi znamo da prava seqe krivu za x = 1 i x = 2, pa je


2 3 3 2

(x − 1)(x − 2) qinilac polinoma x − 9x + 20x − 12, pa je odreivae treeg


korena lako). Trea preseqna taqka ima x-koordinatu x = 6 i lei na
3 2

pravoj y = −3x+3, pa je to taqka (6, −15). Dakle, (1, 0)+(2, −3)+(6, −15) =
⊘ i (1, 0) + (2, −3) = −(6, −15). Xta je −(6, −15)? Ako je x = 6, onda je
y + y = 210, y = −15, 14, pa je −(6, −15) = (6, 14) = P + 2P = 3P . Kraj
primera.
2

Poxto je sabirae taqaka niz algebarskih operacija, mogu se izvesti


izrazi za zbir. Neka su zadate taqke P = (x , y ), P = (x , y ) i P ̸= −P .
Da bi se izraqunala taqka P = (x , y ) = P + P , najpre se izraqunavaju
3 3
1
3 1
1 1
2
2 2 2 1 2

y2 − y1 y1 x2 − y2 x1
λ= , ν=
x2 − x1 x2 − x1
ako je x 1 ̸= x2 , odnosno
3x21 + 2a2 x1 + a4 − a1 y1 −x31 + a4 x1 + 2a6 − a3 y1
λ= , ν=
2y1 + a1 x1 + a3 2y1 + a1 x + a3
ako je x = x , a zatim, u oba sluqaja, x = λ + a λ − a − x − x i
y = −(λ + a )x − ν − a .
2
1 2 3 1 2 1 2
3
Skup taqaka krive je grupa za ovako definisano sabirae. Asocijativnost
1 3 3

sabiraa moe se proveriti neposredno (xto nije trivijalno) primenom


gorih izraza za zbir.
Primer. Odrediti (1, 0) + (2, −3) na krivoj y + y = x − x koristei
ove izraze. a = 0, a = 1, a = 0, a = −1, a = 0, x = 1, y = 0,
2 3

x = 2, y = −3. λ = = −3, ν = = 3. Dakle, x = (−3) +


1 3 2 4 6 1 1
−3−0 0·2−(−3)(1)

0(−3) − 0 − 1 − 2 = 6 i y = −(−3 + 0)(6) − 3 − 1 = 14. Zak uqujemo da je


2
2 2 2−1 2−1 3

(1, 0) + (2, −3) = (6, 14).


3

18.1 Problem diskretnog logaritma sa eliptiqkim krivama


Razmotiemo sada problem diskretnog logaritma sa eliptiqkim krivama
(ECDLP, Elliptic curve discrete logarithm problem).
Umesto sa realnim brojevima, sada raqunamo u konaqnom po u. U po u
F , pri qemu je p ̸= 2 prost broj, pola elemenata su kvadrati. Na primer, u
F je 1 = 1, 2 = 4, 3 = 9, 4 = 3, 5 = 12, 6 = 10, 7 = 10, 8 = 12, 9 = 3,
p

10 = 9, 11 = 4, 12 = 1. Jednaqina y = 12 ima dva rexea y = ±5 = 5, 8.


2 2 2 2 2 2 2 2 2
13

Ako je g generator, onda su g kvadrati, a g nisu.


2 2 2 2
2k 2k−1

51
Postoje efikasni algoritmi za utvrivae da li je neki elemenat po a
kvadrat, odnosno ako jeste | za raqunae korena iz ega. Za p > 3
jednaqina eliptiqke krive moe se smenom promen ivih transformisati
Fp

u oblik y = x + a x + a .
Primer. Neka je E kriva y = x +1; odrediti E(F ) (taqke sa koordinatama
2 3
4 6

u F ). Korisno je prethodno izraqunati kvadrate: 0 = 0, 1 = 1, 2 = 4,


2 3
5

3 = 4, 4 = 1.
2 2 2
5
2 2


x x3 + 1 y = ± x3 + 1 tacke
0 1 ±1 = 1, 4 (0, 1), (0, 4)
1 2
2 4 ±2 = 2, 3 (2, 2), (2, 3)
3 3
4 0 0 (4, 0)

Skup E(F ) ima dakle 6 taqaka.
Taqke nad konaqnim po em se mogu sabirati korixeem jednaqina
5

pravih ili primenom izraza za sabirae. Ako je G = (2, 3), onda je 2G =


(0, 1), 3G = (4, 0), 4G = (0, 4) (primetimo da ova taqka ima istu x-koordinatu
kao i 2G, pa je 4G = −2G i 6G = ⊘), 5G = (2, 2), 6G = ⊘. Vidimo da je
G = (2, 3) generator grupe E(F ).
Primer. Neka je E kriva y = x + x + 1 nad F . Ispostav a se da skup
5

E(F ) ima 123 taqaka i da je generisan taqkom G = (0, 1). Taqka (39, 45)
2 3
109

je u E(F ) jer je 39 + 39 + 1 ≡ 63 (mod 109) i 45 ≡ 63 (mod 109). Dakle,


109

(39, 45) = (0, 1) + (0, 1) + ... + (0, 1) = n(0, 1) za neki prirodni broj n.
3 2
109

Koliko je to n? Odreivae n je problem diskretnog logaritma sa


eliptiqkim krivama nad konaqnim po em. Problem se moe rexavati
grubom silom, ali ne ako se 109 zameni prostim brojem ≈ 10 . Ovaj problem
je trenutno tee rexiti nego PDLKP, pa se mogu koristiti krai k uqevi.
50

Druga prednost je u tome xto se za fiksirano konaqno po e moe posmatrati


vixe eliptiqkih krivih.
Potrebna je jedna ili dve taqke da se izgenerixe E(F ). Posmatrajmo
krivu y = x + 1 nad F . 0 = 0, (±1) = 1, (±2) = 4, (±3) = 2.
2 3
7
2 2 2
p
2

x x +1 y =± x +1
3

taqke 3

0 1 ±1 (0, 1), (0, 6)


1 2 ±3 (1, 3), (1, 4)
2 2 ±3 (2, 3), (2, 4)
3 0 0 (3, 0)
4 2 ±3 (4, 3), (4, 4)
5 0 0 (5, 0)
6 0 0 (6, 0)

52
Prema tome, E(F ) ima 12 taqaka.
7

R = (5, 0) 2R = ⊘
Q = (1, 3) Q + R = (2, 3)
2Q = (0, 1) 2Q + R = (4, 4)
3Q = (3, 0) 3Q + R = (6, 0)
4Q = (0, 6) 4Q + R = (4, 3)
5Q = (1, 4) 5Q + R = (2, 4)
6Q = ⊘

Sve taqke su oblika nQ + mR, pri qemu n ∈ Z i m ∈ Z . Primetimo da su


koeficijenti krive y = x + 1 i koordinate taqaka definisane po modulu 6 2

7, a da se taqke sabiraju po modulu 6. U ovom sluqaju dve taqke generixu


2 3

krivu. I da e se moe raditi sa diskretnim logaritmom koristei npr.


taqku G = (1, 3) kao pseudogenerator. Ova taqka generixe samo polovinu
skupa E(F ).
U proseku skup E(F ) ima p + 1 taqku.
7
p

18.2 Sistemi sa eliptiqkim krivama


18.2.1 Sistem analogan PUKDH
Najpre se bira prost broj p ≈ 10 i radi se nad po em F . Poxto je
ova varijanta problema diskretnog logaritma tea od ranije opisane u
50
p

F , moe se izabrati mae p. Fiksira se neka eliptiqka kriva E(y =


x + a x + a ) i (pseudo) generator | taqka G = (x , y ) ∈ E(F ), tako da


2
p

je y = x + a x + a ) (mod p), pri qemu je nG = ⊘ za neki veliki broj


3
4 6 1 1 p

n. Podsetimo se da je nG = G + G + · · · + G (n sabiraka). Broj n treba da


2 3
1 1 4 1 6

ima bar jedan vrlo veliki prost faktor i ne sme da vai n = p, n = p − 1,


ili n = p + 1 za bilo koji prost broj p (u protivnom postoje specijalni
algoritmi za rexavae ECDLP).
Svaki korisnik ima privatni broj a , a , ...i javni k uq | taqku
a G, a G, .... Za svoju komunikaciju Alisa i Boban koristie k uq a a G.
A B
A
Primer. p = 211, E : y = x − 4, G = (2, 2). Ispostav a se da je
B A B

241G = ⊘. Alisin privatni k uq je a = 121, pa je en javni k uq a G =


2 3

121(2, 2) = (115, 48). Bobanov privatni k uq je a = 223, pa je egov javni


A A

k uq a G = 223(2, 2) = (198, 72). ihov zajedniqki (dogovoreni) k uq je B

a a G. Prema tome, A izraqunava a (a G) = 121(198, 72) = (111, 66), a


B

B izraqunava a (a G) = 223(115, 48) = (111, 66). Prema tome, (111, 66) je


A B A B

ihov zajedniqki k uq, koji mogu da koriste za neki simetriqni xifarski


B A

sistem.
Primetimo da je utvrivae koji umnoak taqke G = (2, 2) daje Alisin
javni k uq (115, 48) ustvari instanca problema ECDLP. Alisa moe da
mnoee 121G izvrxi ponov enim udvostruqavaem: 64G + 32G + 16G +
8G + 1G. Pored toga, ako je p ≈ 10 , Alisa i Boban mogu da se dogovore da
posledih 128 bita binarne predstave x-koordinate ihovog zajedniqkog
50

k uqa iskoriste kao k uq za AES .


53
Praktiqne preporuke: Za PUKDH se obiqno koriste vrednosti q >
, dok se za ECDH obiqno uzima q > 10 . Razlog za ovo je qienica
da je sabirae dve taqke na eliptiqkoj krivoj mnogo sporija operacija od
10200 50

mnoea u konaqnom po u. Meutim, poxto je q mnogo mae za ECDH,


to nadoknauje sporost osnovne operacije. Pored toga, u pogledu rexava-
a ECDLP nije bilo napretka u posledih 20 godina, dok se rexavae
FFDLP stalno usavrxava.
18.2.2 Sistem analogan ElGamalovoj razmeni poruka
Prva potexkoa: kako kodirati poruku kao taqku? Vratimo se najpre na
sluqaj konaqnih po a. Ako radimo sa p = 29, onda se svako slovo moe
kodirati elementom F , A = 0, . . . , Z = 25. Xta raditi sa eliptiqkom
krivom, npr. y = x − 4 nad F ? Najjednostvanije bi bilo kodirati broj
29

x-koordinatom neke taqke, ali nisu svi brojevi x-koordinate nekih taqaka
2 3
29

(samo otprilike svaka druga od ih). Isto tako, nisu ni svi brojevi y-
koordinate nekih taqaka (samo otprilike svaka druga od ih). Ako npr.
pokuxamo da kodiramo slovo I = 8: 8 − 4 = 15 ̸= k (mod 29) (15 nije
kvadratni ostatak po modulu 29).
3 2

Umesto toga, moe se raditi sa p = 257 (izabrano zbog toga xto je


ovo prvi prost broj vei od 25 · 10). Broj koji se dobija dopisivaem jedne
cifre rednom broju slova slui kao kod tog slova. Poxto se moe izabrati
jedna od 10 cifara, a svaka od ih daje potencijalnu x-koordinatu taqke
sa verovatnoom 50%, ovo rexee moe da funkcionixe (u praksi se moe
poruci dodati 8 bita, tako da je verovatnoa problema praktiqno jednaka
nuli).
Neka je p = 257, E : y = x − 4. Poruka je L = 11. Treba odrediti
taqku (11a, y) na krivoj. Pokuxavamo najpre sa x = 110.
2 3

x = 110, 110 − 4 ≡ 250 ̸= k (mod 257).


x = 111, 111 − 4 ≡ 130 ̸= k (mod 257).
3 2

x = 112, 112 − 4 ≡ 162 ≡ 26 (mod 257).


3 2

Prema tome, (112, 26) je taqka na krivoj, i sve cifre x-koordinate, sem
3 2

poslede, su poruka. Ako Alisa eli da poxa e poruku L Bobanu, ona


najpre bira sluqajno k. Neka je a G Bobanov javni k uq. Neka je Q taqka
koja kodira otvoreni tekst. Tada Alisa xa e (kG, Q+ka G) Bobanu. Boban
B

prima poruku, izraqunava a kG; oduzimajui to od Q + ka G, on dobijaB

taqku Q, otvoreni tekst. B B

Primer. p = 257, E : y = x − 4, G = (2, 2), a = 101, a G =


101(2, 2) = (197, 167) (to je taqka koja je Bobanov javni k uq). Alisa eli da
2 3
B B

poxa e poruku L kodiranu taqkom Q = (112, 26) Bobanu. Ona bira sluqajni
k uq poruke (session key) k = 41 i izraqunava kG = 41(2, 2) = (136, 128),
k(a G) = 41(197, 167) = (68, 84) i Q+ka G = (112, 26)+(68, 84) = (246, 174).
Alisa xa e par taqaka kG, Q + ka G, odnosno (136, 128), (246, 174) Bobanu.
B B

Boban prima par i izraqunava a (kG) = 101(136, 128) = (68, 84), pa (Q +


B
B

ka G) − (a kG) = (246, 174) − (68, 84) = (246, 174) + (68, −84) = (112, 26).
On zatim uzima sve sem poslede cifre x-koordinate i dobija 11 = L.
B B

54
I u ovom kontekstu udi radije koriste po a tipa F . Postoje subeksponencijalni
algoritmi za rexavae FFDLP u F i za faktorizaciju n, pa se obiqno

2r

koristi q ≈ n > 2 . Najbo i poznati algoritam za rexavae ECDLP u


q

E(F ) ima sloenost O( q), xto je eksponencijalno. Zbog toga se obiqno


200

radi sa vrednostima q > 10 . Potrebno je vixe vremena za sabirae taqaka
q

eliptiqke krive nego za mnoee u konaqnom po u (ili po modulu n) za


50

istu veliqinu q. Meutim, poxto je q mnogo mae, pad efikasnosti nije


znaqajan. Pored toga, kada se radi sa eliptiqkim krivama, k uqevi su
krai, xto olakxava razmenu k uqeva, odnosno rad u situaciji kad je
na raspolagau mala memorija, odnosno kad izraqunavaa treba da budu
jednostavna, kao kad se koriste pametne kartice.
19 Hex funkcije, MD5, kodovi za autentikaciju
(MAC )
Kako se moe obezbediti da poruku koju ste primili nije neko usput
promenio? Osobina poruke da nije doivela izmene je integritet. Rexee
je primena hex algoritma H(x). Ulaz za hex algoritam je promen ive
duine, a izlaz je uvek iste duine. Hex funkcija treba da ima sledee
osobine
1. Potrebno je da se ene vrednosti lako (brzo) izraqunavaju.
2. Hex funkcija treba da bude jednosmerna funkcija (za zadato y potrebno
je da bude texko odreivae takvog x da je H(x) = y).
3. Za zadato x potrebno je da bude texko odreivae drugog x takvog da

je H(x ) = H(x). Ova osobina zove se osnovna otpornost na koliziju.


Ako je pored toga ispuen zahtev da je texko pronai bilo koji par
x, x takav da je H(x) = H(x ), onda se za H kae da ima jaku otpornost
′ ′

na koliziju. Moe se pokazati (pod razumnim pretpostavkama) da ako je


funkcija jako otporna na koliziju, onda je i slabo otporna na koliziju.
Zbog toga se obiqno od hex funkcija zahteva jaka otpornost na koliziju.
Da se napravi hex algoritam, obiqno se polazi od funkcije f koja
blokove od m + t bita preslikava u blokove od t bita, gde su i m i t veliki,
a f ima sve tri navedene osobine. Ulaz za hex funkciju zove se poruka.
Izlaz hex algoritma je hex ili hex vrednost.
Funkcija f moe se iskoristiti za dobijae hex funkcije. Pretpostavimo
da je poruka razbijena u m-bitne blokove M , M , ... M . Ako duina
poruke nije de iva sa m, onda se posledi blok dopuuje do duine m.
1 2 k

Zadat je unapred dogovoreni blok od t bita (inicijalizacioni vektor IV ).


Tada je H(M ) = H , gde je H = IV i H = f (H , M ), i = 1, 2, . . . , k.
Primer 1. IV = 111 . . . 1111 (blok od 128 jedinica). Poruka se razbija u
k 0 i i−1 i

blokove od po m = 128 bita, a za f se uzima f (u, v) = AES (v) (ovo je tzv.


u
AES CBC-MAC).

55
Primer 2. Sliqno kao u prethodnom primeru, izuzev xto se umesto
fiksiranog IV koristi tajni k uq. Tada se hex funkcija zove autentikacioni
kod poruke ili MAC (message authentication code). MAC je dakle hex
funkcija sa tajnim k uqem.
Primer 3. Razmotrimo sledei scenario. Alisa i Boban koriste sistem
sa javnim k uqem da dogovore dva k uqa za AES , k i k . Alisa xa e
Bobanu (u reimu ECB , zbog jednostavnosti) poruku xifrovanu algoritmom
1 2

AES . Ona razbija poruku na n blokova: P T , ...,P T . Svaki od ovih


blokova ona xifruje algoritmom AES sa k uqem k , i dobija xifrate ST ,
1 n

...,ST . Zatim Alisa izraqunava MAC niza P T P T . . . P T koristei


1 1

k uq k , kao u Primeru 2, i xa e (nexifrovani) MAC Bobanu.


n 1 2 n

Boban prima ST , ...,ST i dexifruje ih k uqem k . Sada Boban, poxto


2

ima niz blokova P T , pomou k uqa k odreuje MAC . Tako on moe da


1 n 1

proveri da li se taj MAC slae sa onim dobijenim iz poruke. Ako postoji


i 2

slagae, onda on moe da bude siguran da poruku niko usput nije promenio.
Bez MAC Cica bi mogla da presretne ST , ...,ST i da neke delove
xifrata namerno promeni (iako to dexifrovaem ne bi dalo smislenu
1 n

poruku, jer Cica ne zna k uq).


Ako Cica promeni poruku, ona ne moe da kreira MAC koji bi se
slagao sa MAC poruke. Kraj primera.
Primer 4. Alisa i Boban dogovorili su zajedniqki k uq K , a H je
hex funkcija. Neka KM oznaqava konkatenaciju K i M . Ako Alisa eli
za izraquna MAC poruke M , ona izraqunava H(KH(KM )) (dakle, K se
konkatenira sa hex vrednoxu poruke KM ).
19.1 Hex algoritam MD5
Jedan od najpopularnijih hex algoritama je MD5. On je efikasniji od
malo pre opisanog algoritma koji koristi AES . On se zasniva na sledeoj
funkciji f . Funkcija f preslikava blok od 512 bita u blok od 128 bita.
Neka je M blok od 512 bita. U ovom kontekstu emo rei da je blok od 32
bita req. Prema tome, M se sastoji od 16 reqi. Neka je X[0] prva req, X[1]
sledea, ..., X[15] | posleda.
19.1.1 Poqetno stae registara
U toku izraqunavaa stalno se aurira stae qetiri -bitna registra
(stae svakog od ih je neka req). Na poqetku je
32

, , ,
A, B, C, D A = A0 =

. Oznaka oznaqava da iza e sledi heksadecimalni broj. Na


0x01234567 B = B0 = 0x89abcdef C = C0 = 0xf edcba89 D = D0 =

taj naqin niblovi predstav aju se ciframa .


0x76543210 0x
0000, 0001, . . . , 1111 0, 1, . . . , f

19.1.2 Qetiri funkcije


Definisaemo qetiri funkcije, od kojih svaka ima ulaz od tri reqi X, Y, Z .
F (X, Y, Z) = XY ∨ X̄Z ,

56
G(X, Y, Z) = XZ ∨ Y Z̄ ,
H(X, Y, Z) = X ⊕ Y ⊕ Z ,
I(X, Y, Z) = Y ⊕ (X ∨ Z̄).
Ovde je , (to je negacija); ∨ je disjunkcija (ili), a mnoee
je konjunkcija (i). Operacije nad reqima izvode se istovremeno sa svim
1̄ = 0 0̄ = 1

ihovim odgovarajuim bitima. Na primer, primenimo F na tri bajta


(umesto na tri reqi). Neka je X = 00001111, Y = 00110011, Z = 01010101.
X Y Z XY X̄Z XY ∨ X̄Z
0 0 1 0 1 1
0 1 0 0 0 0
0 1 1 0 1 1
1 0 0 0 0 0
1 0 1 0 0 0
1 1 0 1 0 1
1 1 1 1 0 1
Prema tome, F (X, Y, Z) = 01010011. Primetimo da za 4 od 8 moguih
jednobitnih ulaza u F ima vrednosti 0, a za ostala 4 ulaza ima vrednost
1. Ovo vai takoe i za G, H , I .

19.1.3 Konstante
Postoje 64 konstante T [1], . . . , T [64]. Neka je i broj radijana. Tada je | sin(i)|
realni broj izmeu 0 i 1. Neka je T [i] prvih 32 bita posle decimalne taqke
u binarnoj reprezentaciji |sin(i)|.
19.1.4 Oznake za rotaciju
Ako je E 32-bitni blok i 1 ≤ n ≤ 31, neka E <<< n oznaqava cikliqku
rotaciju E za n bita. Tako, ako je E = 00000000000000001111111111111111,
onda je E <<< 3 = 00000000000001111111111111111000.
19.1.5 Ostale oznake
Neka + oznaqava sabirae po modulu 2 , pri qemu se pretpostav a da je
req binarno predstav eni broj n, 0 ≤ n ≤ 2 − 1.
32

Oznaka x ← y oznaqava dodelu trenutne vrednosti promen ive y promen ivoj


32

x. Tako, ako je u nekom trenutku x = 4, onda posle x ← x + 1 promen iva x


ima novu vrednost 5.
19.1.6 Izraqunavae f
Ulaz za f je M i qetiri reqi, koje oznaqavamo sa A, B, C , D. Najpre se
qetiri reqi kopiraju: AA ← A, BB ← B, CC ← C , DD ← D.
Zatim se izvrxava 64 koraka u qetiri runde.
Runda 1 sastoji se od 16 koraka.
Neka [abcd k s i] oznaqava operaciju a ← b + ((a + F (b, c, d) + X[k] +
T [i]) <<< s). Ovih 16 koraka su

57
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16].

Runda 2 sastoji se od narednih 16 koraka.


Neka [abcd k s i] oznaqava operaciju a ← b + ((a + G(b, c, d) + X[k] +
T [i]) <<< s). Ovih 16 koraka su
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
Runda 3 sastoji se od narednih 16 koraka.
Neka [abcd k s i] oznaqava operaciju a ← b + ((a + H(b, c, d) + X[k] +
T [i]) <<< s). Ovih 16 koraka su

[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]


[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]

Runda 4 sastoji se od posledih 16 koraka.


Neka [abcd k s i] oznaqava operaciju a ← b + ((a + I(b, c, d) + X[k] +
T [i]) <<< s). Ovih 16 koraka su
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
Na kraju se dodaju saquvane reqi sa poqetka: A ← A + AA, B ← B + BB,
,
C ← C + CC D ← D + DD . Izlazna vrednost f je konkatenacija ABCD,
ukupno bita.
128

19.1.7 Objaxee
Pogledajmo najpre korak 1. Pre koraka 1 je A = A = 01 23 45 67, B = B =
. . ., C = C = . . ., D = D = . . .. Podsetimo se da [abcd k s i] oznaqava
0 0

operaciju a ← b + ((a + F (b, c, d) + X[k] + T [i]) <<< s). Kako je korak 1


0 0

[ABCD 0 7 1], to znaqi A ← B + ((A + F (B, C, D) + X[0] + T [1]) <<< 7),


odnosno A ← B +((A +F (B , C , D )+X[0]+T [1]) <<< 7). Dakle, najpre
se izraqunava F (B , C , D ). Zatim se na to dodaje X[0] i T [1] po modulu
1 0 0 0 0 0

2 , gde je X[0] poqetak 512-bitne ulazne poruke, a T [1] se dobija od sin(1).


0 0 0

Dobijeni rezultat, posmatran kao req, cikliqki se pomera za 7 bita ulevo.


32

Na kraju se tome dodaje B po modulu 2 . Sada je A = A , B = B , C = C ,


D=D .
32
0 1 0 0
0

58
Sada prelazimo na korak 2. Podsetimo se da [abcd k s i] oznaqava
operaciju a ← b + ((a + F (b, c, d) + X[k] + T [i]) <<< s). Kako je korak 2
[DABC 1 12 2], to znaqi D ← A + ((D + F (A, B, C) + X[1] + T [2]) <<< 12),
odnosno D ← A + ((D + F (A , B , C ) + X[1] + T [2]) <<< 12). Sada je
A = A , B = B , C = C , D = D . Posle 16 ovakvih prreraqunavaa
1 1 0 1 0 0

A, B, C, D neka je rezultat oznaqen sa A , B , C , D .


1 0 0 1
16 16 16 16

19.1.8 Hex algoritam


Za ulaz u hex algoritam kaemo da je poruka. Neka je na primer duina
(dopuene) poruke 3 · 512 bita i neka se ona sastoji od tri 512-bitna
bloka S S S . Najpre uzimamo S i razbijamo ga na 16 reqi X[0], . . . , X[15].
Poqiemo sa vrednostima registara A = 0x67452301, B = 0xef cdab89,
1 2 3 1

C = 0x98badcf e, D = 0x10325476.
Zatim izvrxavamo gore opisani algoritam i dobijamo 128-bitnu req
ABCD = A B C D . (Izlaz iz koraka 61−64 je A , B , C , D ; posle
′ ′ ′ ′

sabiraa po modulu 2 AA = A , BB = B , CC = C , DD = D , izlaz je


16 16 16 16 16 16 16 16

A B C D .)
32
0 0 0 0
′ ′ ′ ′
16
Zatim se S razbija na 16 reqi X[0], . . . , X[15], naravno u opxtem sluqaju
16 16 16

razliqitih od prethodnih reqi X[0], . . . , X[15]. Zatim se izvrxava gore


2

opisani algoritam, sa tom razlikom xto su poqetne vrednosti A, B, C, D


jednake izlazu iz prethodnih 64 koraka A = A , B = B , C = C , ′ ′ ′

D = D , a ne x67452301 . . . Tako se dobija 128-bitni izlaz ABCD =


16 16 16

A B C D .
16
′ ′ ′ ′
32
Zatim se S razbija na 16 reqi X[0], . . . , X[15] i ponovo izvrxava gore
32 32 32

opisani algoritam, sa tom razlikom da su poqetne vrednosti A, B, C, D


3

jednake izlazu iz prethodnih 64 koraka A = A , B = B , C = C , D = ′ ′ ′

D . Tako se dobija 128-bitni izlaz ABCD = A B C D , koji je izlaz


32 32 32
′ ′ ′ ′ ′

iz algoritma, odnosno hex vrednost.


32 48 48 48 48

Napomene.
1. Tehniqki, da bismo funkciju f proizveli u hex funkciju, moemo da
pixemo f (X) = f (A , B , C , D , X). Sada je f (X) preslikavae
512-bitnih blokova u 128-bitne blokove.
hash 0 0 0 0 hash

2. Poruka se uvek dopuuje. Ona se najpre dopuuje tako da ena duina


bude −64 ≡ 448 (mod 512). Dopuavae se vrxi jednom jedinicom i
potrebnim brojem nula. Qak i ako je duina poruke 448 (mod 512),
dodaje se jedna jedinica i 511 nula. Neka je b duina poruke pre
dopuavaa. Binarna predstava broja b dopisuje se na kraj poruke,
posle qega duina poruke postaje umnoak 512.
Na primer, neka je duina originalne poruke 1700 bita. Poxto je
1770 ≡ 164 (mod 512) i 448 − 164 = 284, dodaje se jedna jedinica i 283
nule. Sada je duina poruke 1984 bita, 1984 ≡ 448 ≡ −64 (mod 512).
Da e, poxto je 1700 = (11010100100) , poruci se dopisuje 2

0000000000000000000000000000000000000000000000000000011010100100

59
tako da je sada duina poruke 1984 + 64 = 2048 = 4 · 512.
3. Funkcija f je komplikovana jer se u svakom koraku naizmeniqno
primeuju bitske operacije (F, G, H, I ) i sabirae po modulu 2 ,
hash

operacija sa celim blokovima (sa prenosima na vixe pozicije, za


32

razliku od bitskih operacija). Qienica da se sva qetiri registra


stalno auriraju i da se delovi poruke postepeno uk uquju takoe
poveava sigurnost.
4. Ipak, 2004. godine pokazano je (Wang, Feng, Lai, Yu) da MD5 nije jako
otporna na kolizije. Ipak je mogue da algoritam ima dve potrebne
osobine: jednosmernost i slabu otpornost na kolizije.
20 Potpisi i autentikacija
Razmotrimo ovaj scenario. Cica xa e poruku Amazonu i kae "Ja sam
Ed". Cica pravi dva k uqa za AES i xa e ih Amazonu xifrovane javnim
k uqem Amazona. Zatim Cica xifruje poruke koristei prvi k uq za
AES. Poruka moe da bude "Poxa ite mi Enciklopediju Britaniku, a
raqun poxa ite Edu". Na kraju Cica xa e Amazonu MAC poruke dobijen
drugim k uqem za AES . Ovo nije podmetae lane poruke, nego lano
predstav ae.
Kako Ed moe da se zaxtiti? Amazon moe da zahteva digitalni potpis.
Obiqno se potpisuje MAC .
Uopxte, ako dobijete poruku od nekoga, kako moete da budete sigurni
da je poruku poslala osoba koja kae da je poslala? Postupak koji obezbeuje
da budete sigurni da poruka potiqe od pravog poxi aoca zove se autentikacija.
Autentikacija povezuje javni k uq sa osobom ili institucijom. Rexee
se zasniva na potpisima i sertifikatima. Obiqno se za potpise koristi
sistem sa javnim k uqem.
20.1 Potpisi pomou RSA
Pretpostavimo da or
Bux (= G) i Toni Bler (= T ) koriste RSA . U
sistemu RSA ne postoji zajedniqki k uq koji znaju samo Bux i Bler, pa
Osama bin Laden (= L) moe da poxa e poruku Buxu "Ostavi na miru
Bin Ladena, Toni Bler", xifrovanu algoritmom AES . Kako Bux moe
da zna od koga je poruka doxla? On mora da zahteva potpis.
Neka je f xifarska transformacija za slae poruka Buxu (u sistemu
RSA , C ≡ f (P ) = P (mod n )). Tada je f dexifrovae koje vrxi
G
−1

Bux (u sistemu RSA , P ≡ f (C) = C (mod n )).


eG
G G G
−1

Svi znaju f i f . Samo G zna f , samo T zna f .


dG
G G
−1 −1

Sluqaj 1. T xa e poruku P osobi G, bez xifrovaa. Na kraju je potpisuje


G T G T

"T oni Bler". On eli da G bude siguran da je poruka od ega. T izraqunava


f ( T oni Bler ) (xto izgleda kao xifrat) i zavrxava poruku time. Ovo ne
−1 ′
T

60
moe da uradi niko drugi osim T . G moe da izraquna f (f ( T oni Bler )) = −1 ′ ′ ′

T oni Bler . Potencijalni problem je u tome xto i neprijate moe da


T T

proqita potpis. Ako T potpixe ime za L (bin Laden), onda L moe taj deo
da kopira i stav a u svoje poruke.
Sluqaj 2. Toni Bler eli da cela poruka bude xifrovana i potpisana.
T najpre xa e poruku P oruka od T onija ili, ako ne eli da neprijate
′ ′

sazna ko xa e poruku, onda xa e f ( P oruka od T onija ). On zatim xa e′ ′

f (f (P )). or
zna f , pa izraqunava f (f (f (P ))) = f (P ). Svi
G
−1 −1 −1 −1 −1

znaju F , pa G izraqunava f (f (P )) = P. Bez prve poruke G bi f (P )


G T G
−1
G G T T
−1

smatrao za xifrat i ne bi znao koji k uq za f da iskoristi. B zna da


T T T T

poruku nije poslao L, jer on ne zna f . −1

Sluqaj 3. Toni Bler xifruje otvoreni tekst P algoritmom AES . On M

zatim izraqunava MAC za otvoreni tekst, pa ga xifruje i potpisuje


pomou AES . Prethodno je Toni ve poslao k uqeve za AES i MAC
pomou RSA .
Primer problema sa RSA . Pretpostavimo da je n < n . Neka je P = ′

poruka od T onija , a P je stvarna poruka.


T G 1

Toni izraqunava P (mod n ) i xa e to G. Prema tome, 0 ≤ P


2
eG eG

(mod n ) < n . Toni izraqunava P (mod n ), gde je 0 ≤ P


1 G 1
dT dT

n . Zatim on izraqunava (P (mod n ))) (mod n ), broj mai od n , i


G G (mod n ) <
2 T 2 T
dT

xa e to G.
eG
T 2 T G G

U nastavku emo podrazumevati da je npr. P rezultat svoea stepena dT

po odgovarajuem modulu (n ). 2

or
izraqunava (P ) = P (mod n ), pa zatim ((P ) ) = P
T
eG dG d T eG d G ∗ dT

(mod n ), i na kraju (P ) = P (mod n ).


1 1 G 2 2
d T eT

Problem je u tome xto G ne moe da uradi istu stvar kad xa e poruku


T 2 2 T

T , zbog n > n . Na mestu oznaqenom sa ∗ T bi imao izraz P (mod n ). dG

Pri tome je mogue da bude n < P < n . Ako je n za dve cifre due
G T
dG
2 T

od n , onda P (mod n ) moe da bude kongruentan sa ≈ 100 razliqitih


dG
T 2 G G

brojeva po modulu n .
T 2 T

Primer. n = 1000, n = 100000, i neka P ima vrednost 10008. Broj


G
dG

10008 ima jedinstveni ostatak po modulu n , ali taj broj po modulu n


T G 2

daje ostatak 8. Zbog toga je nemogue rei da li je taj ostatak 8, 1008, 2008, G T

..., 99008. Ovih sto vrednosti imaju razliqite ostatke po modulu n , ali
jedan isti ostatak po modulu n . G

Kako se ovaj problem moe rexiti? Poxto je n > n , G treba da xa e


T

f (f (P )). T zna da da je poruka od G iz dela P , i zna da je n < n , pa


G T
−1

izraqunava f (f (f (P ))) = f (P ), posle qega primeuje f .


G T 2
−1
1
−1
T G

Dakle, kad se poruka xifruje, uvek se najpre primeuje malo n, pa


G G T 2 T 2 T

veliko n.
Primer potpisa pomou RSA . Jox jednom, najpre se primeuje malo n,
pa veliko n.
Neka je n = 221, e = 187, d = 115, i n = 209, e = 191, d = 131.
T eli da potpixe i xifruje poruku 97 za G. Xta on treba da radi?
G G G T T T

Kad se xa e, najpre se primeuje malo n, pa veliko n.


61
Najpre potpis: 97 (mod n ) = 97 (mod 209) = 108, pa xifrovae:
(mod 221) = 56.
dT 131
T

T xa e G xifrat 56; neprijate vidi samo to, xifrat 56.


eG 187
108 (mod n ) = 108 G

G prima 56. Primalac primeuje najpre veliko n, pa malo n. 56


(mod 221) = 108. 108 (mod n ) = 108
dG

97.
115 eT 191
(mod n ) = 56
G (mod 209) = T

Sada G eli da potpixe i xifruje poruku 101 za T . Kad se xa e,


najpre se primeuje malo n, pa veliko n.
Najpre xifrovae: 101 (mod n ) = 101 (mod 209) = 112, pa potpis:
(mod 221) = 31.
eT 191
T

G xa e T potpis 31; neprijate vidi 31.


dG 115
112 (mod n ) = 112 G

T prima 31. Primalac primeuje najpre veliko n, pa malo n. 31


(mod 221) = 112. 112 (mod n ) = 112
eG

101. U praksi se obiqno potpisuje MAC .


187 dT 131
(mod n ) = 31
G (mod 209) = T

20.2 El Gamalov potpis


Algoritam potpisivaa El Gamal posluio je kao osnova za nexto sloeniji
standard digitalnog potpisa, DSS , Digital Signature Standard. Polazi se
od velikog prostog broja p i generatora g za F , kao i tajnih k uqeva a , ∗

a , ..., odnosno javnih k uqeva g , g , .... Ovi elementi ne treba da se


p A

qesto meaju.
aA aB
B

Pretpostavimo da Alisa eli da poxa e poruku Bobanu (ovo moe da


bude MAC poruke). Neka je S poruka, pri qemu je S broj, 1 < S < p.
Alisa bira sluqajni broj k, 1 < k < p, nzd(k, p − 1) = 1, i izraqunava g
(mod p) = r.
k

Zatim ona rexava po x kongruenciju S ≡ a r + kx (mod p − 1). Prema


tome, x ≡ k (S − a r) (mod p − 1). Primetimo da je g ≡ g
−1

A

g g ≡ (g ) (g ) ≡ (g ) r (mod p).
S aA r+kx
A

Alisa xa e r, x, S Bobanu kao potpis. Bob utvruje da je poruka od


aA r kx aA r k x aA r x

Alise izraqunavaem (g ) r (mod p) i g (mod p), odnosno proverom da


li su ove dve vrednosti identiqne. Sada Boban zna da je poruka od Alise.
aA r x S

Zaxto? Samo Alisa je mogla da rexi x ≡ k (S − a r) (mod p − 1), jer −1

jedino ona zna a . A

Primer. p = 677, g = 2. Neka je MAC poruke 316 = S. Alisin privatni


A

k uq je a = 307, en javni k juq je 2 (mod 677) = 498. Dakle, g =


498. Ona bira k uq poruke k = 401 (xto je u redu, jer je nzd(k, p − 1) =
307 aA
A

1). Alisa izraqunava r = g = 2 ≡ 616 (mod p), pa je r = 616. Ona


rexava kongruenciju S = a r + kx (mod p − 1), odnosno 316 = 307 · 616 +
k 401

401 · x (mod 676). Dakle, x ≡ 401 (316 − 307 · 616). Sada je 401 ≡ 617
A
−1 −1

(mod 676), pa je x ≡ 617(316 − 307 · 616) ≡ 512 (mod 676). Alisa xa e


(r, x, S) = (616, 512, 316). Boban prima tu trojku i izraqunava g = 2 ≡
424 (mod 677). (g ) = 498 ≡ 625 (mod 677). r = 616 ≡ 96 (mod 677).
S 316

On utvruje da je g g ≡ 625 · 96 ≡ 424 isto xto i g ≡ 424 (mod 677).


aA r 616 x 512

Kraj primera.
aA r kx S

62
20.3 Xnorov postupak autentikacije i potpisa
Neka je p prost broj, i neka je q prost broj, q|p − 1. Izaberimo a tako da
bude a ≡ 1 (mod p). Brojeve a, p, q koriste svi uqesnici sistema. Svaka
osoba ima privatni k uq s i javni k uq v ≡ a (mod p).
q
−s

Autentikacija: Osoba A (kojoj treba proveriti identitet) bira sluqajni


broj r < q i izraqunava x ≡ a (mod p). Ona xa e x osobi B (koju treba da
uveri u svoj identitet). B xa e A sluqajni broj e, 0 ≤ e ≤ 2 − 1 (veliqina
r

t bie objaxena kasnije). A izraqunava y = r + s e (mod q) i vraa to


t

osobi B. B izraqunava a v (mod p), i proverava da li je to jednako x. Na A

taj naqin se ustanov ava da je osoba koja je poslala y upravo osoba qiji je
y e
A

javni k uq v .
Xnor (Schnorr) Predlae da se radi sa vrednostima parametara p ≈
A

2 ,q≈2 i t = 72.
Potpis: Alisa eli da potpixe poruku M . Ona bira sluqajno r < q
512 140

i izraqunava x = a (mod p). Alisa nadovezuje M i x , pa primenom hex


′ r′ ′

funkcije dobija e . Zatim izraqunava y = r + s e (mod q). Potpis je


′ ′ ′ ′

trojka x , e , y . Boban ima M (to je ili xifrovano za ega, ili je poruka


′ ′ ′
A

poslata nexifrovana). On izraqunava a v (mod p) i proverava da li


y ′ e′

je to jednako e . Na kraju on proverava da li je e jednako hex vrednosti



A

konkatenacije M x . ′

Izraqunavae y = s e (mod q) je brzo i ne uk uquje inverziju po


modulu. Alisa moe da izraquna x unapred i tako ubrza vreme izraqunavaa
A

potpisa. Sigurnost se po svemu sudei zasniva na teini FFDLP. Potpisi


su krai nego sa RSA za isti nivo sigurnosti (jer se izraqunavaa vrxe
po modulu q, dok se FFDLP rexava u veem po u F ). p

20.4 Vremenski peqat


Ako imate xtampani dokument i elite da dokaete da je postojao odreenog
datuma, morate da ga zavedete (na primer) u sudu. Ovo je vano za dokumente
za koje vi imate autorska prava, da biste dokazali autorstvo. Problem
je tei sa digitalnim podacima. Ako ti podaci sadre datum, datum se
lako moe zameniti drugim. Rexee je vremenski peqat (time-stamping).
Prikazaemo sada protokol izraqunavaa vremenskog peqata.
Neka je Toma ovlaxen da izdaje vremenske peqate. Neka je A Alisino
ime, i neka je Alisin zahtev n-ti zahtev koji Toma obrauje.
1. Alisa izraqunava hex vrednost H svog dokumenta.
n

2. Alisa xa e Tomi H i A. Pretpostavimo da je osoba sa imenom I


bila osoba koja je od Tome traila vremenski peqat neposredno pre
n n−1

Alise. Neka je H hex vrednost koju je Tomi poslao I , i neka je


Tn−1 vremenski peqat te poruke.n−1 n−1

3. Toma izraqunava L kao hex vrednost qetvorke (I , H , T , L ),


gde je L je prethodna takva hex vrednost. Neka je t vreme kad Toma
n n−1 n−1 n−1 n−1

izraqunava vremenski potpis Alisinog dokumenta.


n−1 n

63
4. Toma potpisuje poruku (n, A, H , t , I , H , T , L ); to je T , vremenski
potpis Alisinog dokumenta. n n n−1 n−1 n−1 n n

5. Posle izraqunavaa n+1-og vremenskog peqata Toma xa e Alisi ime


osobe koja je kreirala n + 1-i dokument, tj. I .
n+1

Razlog zbog koga se Alisi xa e ime naredne osobe koja je traila


vremenski peqat je spreqavae Alise i Tome da zajedno naprave zloupotrebu.
Bez ovakvog povezivaa sa imenima prethodnog i narednog klijenta, Alisa
bi mogla da podmiti Tomu i da zatrai od ega da antidatira en dokument.
Ako Alisa potpixe poruku, a kasnije odluqi da povuqe svoj potpis (i
to je jedna vrsta zloupotrebe), ona moe da objavi svoj privatni k uq, i da
kae da je bilo ko mogao da izraquna potpis enog dokumenta. Ovo se zove
odricae (repudiation) Zbog toga, ako neko dobije potpis od Alise, on moe
da zahteva da potpis uk uquje i vremenski peqat. To umauje mogunost
Alise da se odrekne svog potpisa.
20.5 KERBEROS
Protokol je niz koraka koje izvrxavaju bar dva uqesnika, qime se izvrxava
neki zadatak. KERBEROS je protokol autentikacije koji ne koristi kriptografiju
sa javnim k uqem. Koristi se u zatvorenim sistemima.
Protokol KERBEROS omoguuje upotrebu lozinke za dobijae pristupa
nekoj usluzi. Neka je C klijent, K server KERBEROS, S server koji prua
uslugu koju zahteva C i neka je T GS server za izdavae ovlaxea za
uslugu S (ticket granting service).
Protokol KERBEROS sastoji se od dve osnovne faze:
a) KERBEROS proverava identitet klijenta C za server T GS .
b) T GS izdaje ovlaxee klijentu C za uslugu servera S .
Neophodne oznake: ako je X uqesnik (tj. C , K , S ili T GS), onda K
oznaqava egovu lozinku, a x je poruka koja sadri ime tog uqesnika. Neka
X

oznaqava k uq koji se koristi za razmenu poruka izmeu X i Y . Neka


{m}K oznaqava xifrat poruke m k uqem K .
KX,Y

Pretpostavke: samo C i K imaju k uq K ; samo K i T GS imaju k uq


X X

KT GS ; samo T GS i S imaju k uq K .
S
C

1. C xa e K poruku: c, tgs.
C moete da budete vi, a T GS moe da bude linux server na koji
hoete da se prijavite. U tom sluqaju ovaj korak se sastoji u tome da
vi ukucate svoje korisniqko ime i lozinku, posle qega vax raqunar
izvrxava korak 1.
2. K xa e C : {K }K , tgs, {c, a, v, K }K , gde je a mrena
adresa klijenta (to je adresa raqunara na kome C radi | taj raqunar
C,T GS C C,T GS T GS

moe da koristi vixe osoba, kao xto je npr. Unix server; v je period
64
vaea ovlaxea. Poruka {c, a, v, K } se zove ovlaxee za
izdavae ovlaxea (ticket-granting ticket, TGT).
C,T GS

3. C xa e T GS: tgs, {c, a, v, K }K , {c, t}K . Ovde je t vremenski


peqat, a {c, t} se zove autentikator.
C,T GS T GS C,T GS

4. T GS xa e C : {K }K , {c, a, v, K }K
C,S C,T GS C,S S

5. C xa e S: {c, a, v, K }K , {c, a, t}K


C,S S C,S

Ovlaxee za izdavae ovlaxea potvruje identitet klijenta C


serveru za izdavae ovlaxea za uslugu S. Posle toga server za izdavae
ovlaxea daje ovlaxee klijentu C za korixee usluge S.
20.6 PKI
Infrastruktura sistema sa javnim k uqem (PKI , public key infrastruc-
omoguuje uqesnicima u mrei da budu sigurni u pogledu identiteta
ostalih uqesnika. To je autentikacija. Ako Alisa eli da proveri identitet
ture)

Bobana, onda PKI obezbeuje odgovarajui softver na enom i egovom


raqunaru, i eventualno hardver. PKI koristi sertifikacione nizove ili
mreu poverea i odreene protokole. U nastavku emo objasniti sertifikacione
nizove i mreu poverea.
20.6.1 Sertifikati
Ed koristi svoju karticu u filijali
da
Bank of America (BA) Fargo Bank of

uspostave zajedniqki k uq za . xifruje poruku "Skinite 60


North Dacota (BN D). BN D se povezuje sa BA. BA i BN D koriste RSA

sa Edovog raquna u Banci Severne Dakote da nadoknadite naxu gotovinu".


AES BN D $

Kako BN D zna da javni k uq za RSA stvarno pripada BA, a ne nekom


hakeru?
Firma Verisajn (Verisign, Mountain View, V ), je autentikacioni centar
(CA, certification authority). Prikazaemo ukratko kako sve ovo funkcionixe.
BA je napravila javni k uq i dokument u kome pixe "javni k uq za RSA
pripada Bank of America”. Zatim predstavnici BA odlaze u nadlenu
ustanovu sa identifikacionim dokumentima. Dokument se zavodi, k uq za
RSA xa e se u V .
V koristi svoj javni k uq da potpixe sledei dokument:

Serial Number: (niz heksadekadih cifara)


Version: V3

Issuer: Verisign
Valid from: April 7, 2006
Valid to: April 6, 2007
Subject: bankofamerica.com

bita k uqa a za DSS u obliku niza


Signature Algorithm: MD5/DSS

heksadekadnih cifara)
Public key for signing: X (1024 BA

65
bita za n , kratki e , u obliku
Encryption Algorithm: RSA

niza heksadekadnih cifara)


Public key for encryption: Y (1024 BA BA

Hash: (potpis V hex vrednosti svih prethodnih podataka iz ovog sertifikata).


Certification path: Bank of America, Verisign.

BN D takoe koristi usluge V . BN D ima poveree u V i javne k uqeve


V . BN D proverava potpis na kraju sertifikata BA pomou javnog k uqa
V (BA takoe proverava potpis V ispod sertifikata BN D).
Preciznije, postoji sertifikaciono stablo sa V ( Verisajn) na vrhu. Na
univerzitetu moe da postoji autentikacioni centar (CA) nieg nivoa,
koji koristi svoj javni k uq da potpixe sertifikate svakog korisnika
servera na univerzitetu.
Pretpostavimo da je u gorem primeru Edov sertifikat potpisao nii
autentikacioni server na univerzitetu Santa Klara SCU , a da je sertifikat
SCU potpisao V . Edov raqun je u BASC (Bank of America’s Santa Clara
branch). Ed koristi svoj brauzer da se prijavi na sajt svoje banke. egov
brauzer najpre pronalazi sertifikat BASC , sliqan gore navedenom, izuzev
xto u emu pixe
Subject: bofasantaclara.com
Public key for signing: Z
Public key for encrypting: A

potpis (k uqem ) hex vrednosti svih prethodnih podataka


Certification path: Bank of America Santa Clara, Bank of America, Verisign.

iz ovog sertifikata).
Hash: ( BA X

Edov brauzer zna javni k uq V , jer i Edov brauzer koristi Verisajn. Iz


sertifikacionog puta Edov brauzer zna da treba da pronae sertifikat
BA. Edov brauzer verifikuje potpis V na hex vrednosti sertifikata BA.
Sada Edov brauzer pronalazi k uq za potpisivae X koji pripada BA.
Edov brauzer verifikuje potpis BA na hex vrednosti sertifikata BASC .
Sada Edov brauzer pronalazi k uq A za xifrovae koji pripada BA, i
sada je siguran da je A k uq za xifrovae BASC . Kad sada sajt banke
BASC zatrai Edovu lozinku (koja e biti xifrovana k uqem A), Edov
brauzer nee uzemiravati Eda upozoravajuom porukom.
U praksi postoje razliqiti nivoi sertifikacije. Za ozbi an nivo,
vi morate da pokaete svoju liqnu kartu. Moe se dobiti sertifikat
nieg nivoa, koji u osnovi sadri informaciju "e-mail adresa eschae-
fer@hotmail.com i javni k uq n , e su povezani". Taj sertifikat ne garantuje
da je elektronska adresa povezana sa osobom koja se zove Ed Xefer.
E E

Ne koriste svi Verisajn. Pretpostavimo da Finska i Iranska vlada


imaju svoje autentikacione servere. Svaki od ih moe da verifikuje
sertifikat onog drugog. To se zove uzajamna sertifikacija.
Verisajn moe da opozove sertifikat u bilo kom trenutku. Verisajn
quva spisak opozvanih sertifikata. Jedan od razloga zbog kojih Verisajn
moe da opozove sertifikat je gubitak tajnosti javnog k uqa (tj. postoji
opasnost da neko drugi iskoristi k uq koji je zapisan kod Verisajna).
66
20.6.2 PGP i mrea poverea
je program za xifrovae elektronske poxte, koji je distribuirao
Cimerman (Zimmerman) 1991. godine. Program koristi asimetriqnu i simetriqnu
PGP

kriptografiju, potpise i hex funkcije. Najinteresantniji deo je da program


umesto sertifikacionih lanaca koristi mreu poverea. Mrea poverea
je dobra za pojedinaqne korisnike, ali se ne koristi za poslovne primene.
Korisnici sami odluquju kome veruju. Svaki korisnik quva listu potpisanih
k uqeva. Neka je S (K ) potpis korisnika X na javni k uq korisnika Y
(u praksi, koristi se ceo sertifikat, qiji je deo S (K )). Svaki korisnik
X Y

ima prsten javnih k uqeva. Na primer, prsten javnih k uqeva Alise sadri
X Y

k uqeve osoba sa kojima Alisa eli da komunicira (i kojima Alisa veruje),


sa potpisom Alise. Prsten javnih k uqeva Alise moe da izgleda ovako:
potpisani nivo poverea mera poverea mera poverea
ime k uq u k uq u egove potpisivaqa u serifikate
potpise k uqeva drugih k uqeva
Boban S (K ) Visok Visok
Cica S (K ) Visok Visok
A B

Dea S (K ) Visok Sredi


A C

Ed S (K ) Visok Nizak
A D

Cica S (K ) Visok
A E

Laza S (K ) Visok
C A

Marko S (K ) Sredi
L A
M A

N ← L C M → J
@
@
RH H ↕H M 
H M
B ← A → D
↓ ↓L ↓
F E G
↓ ↓

U ovom dijagramu znaqi da je S (K ) u prstenovima i X i


I H
X → Y
Y . Da e, X → Y znaqi da je u oba prstena, a X ima potpuno poveree u
X Y
H

sertifikate drugih javnih k uqeva koji potiqu od Y .


Pretpostavimo da Alisa eli da poxa e poruku F . A kontaktira sa
F , i F xa e svoj prsten A. Prsten uqesnika F sadri S (K ). Poxto
A veruje serifikatima drugih k uqeva koji potiqu od B , sada A ima
B F

poveree u javni k uq uqesnika F .


Alisa eli da poxa e poruku G. Prsten uqesnika G sadri S (K ).
Meutim, Alisa ima osrede poveree u D-ove sertifikate drugih k uqeva.
D G

Zbog toga Alisa nema poverea u G-ov javni k uq. Sliqno, A nema poveree
u H -ov javni k uq.
Alisa eli da poxa e poruku J . Prsten uqesnika J sadri S K i
S K . Alisa ima osrede poveree u D-ove i M -ove sertifikate drugih
D J
M J

67
k uqeva, a dve osrede ocene imaju za posledicu da Alisa nema poverea
u J -ov javni k uq.
Alisa eli da poxa e poruku I . Prsten uqesnika I sadri S K .
Alisa ima poverea u javni k uq osobe F , ali nema osnova da veruje F -
F I

ovom sertifikatu I , pa A nema poverea u javni k uq I .


Alisa eli da poxa e poruku N . Prsten uqesnika N sadri S K .
Alisa ima poverea u L-ove sertifikate, pa ima poveree u javni k uq L N

osobe N .
Ako Alisa xa e poruku F , PGP e to dozvoliti. Ako Alisa xa e
poruku I , PGP e izbaciti poruku da ona nema osnova za poveree u javni
k uq osobe I .
Recimo da C eli da poxa e poruku B. B xa e C svoj prsten, koji
sadri S (K ). Sada C ima poveree u sertifikate koje dobija od A.
Dakle, C ima poverea u jevni k uq B. Dakle, na neki naqin je Alisa (i
A B

svaki drugi uqesnik) neka vrsta autentikacionog servera.


Jedan od problema sa mreom poverea je u vezi sa opozivaem k uqeva.
Nemogue je garantovati da niko nee koristiti opozvani k uq (poxto je
distribucija k uqeva adhok).
PGP koristi RSA usaglaxavae k uqeva, DSS (DSA) za potpisivae
i SHA i MD5 za potpisivae.
20.7 Sigurnost na internetu
Dva osnovna protokola za obezbeee sigurnosti na internetu su SSL (Se-
i IPSec .
cure Sockets Layer)

20.7.1 SSL
Kako se kriptografija stvarno primeuje na vebu? Postupak koji se primeuje
zove se SSL , a pronalazaq je Taher ElGamal iz Netskejpa. Kad vidimo
https:, to znaqi da se primeuje SSL . Postoji nekoliko protokola za egovu
primenu. Opisaemo ukratko kako se to radi u Netskejpu.
Ako ste na https: sajtu (s je prvo slovo od secure) u Internet eksploreru
moete da kliknete na file, pa properties, pa certificates, pa details, i onda
moete da vidite sertifikat tog sajta, koji potvruje da javni k uq u
sertifikatu pripada firmi qije ime se pojav uje na sajtu.
1. Kad se Boban prvi put konektuje na Amazon, on xa e Amazonu svoj
sertifikat, u kome se nalazi javni k uq za RSA n , e i javni
k uq g za potpis pomou algoritma DSS . Vrednost p za DSS
B B

je standardna i koriste je svi koji koriste Netskejp. Podsetimo se


aB

da je DSS samo varijanta sistema ElGamal, pa koristimo notaciju


iz sistema ElGamal. Sertifikat povezuje Bobanovo ime sa egovim
javnim k uqevima.
2. Amazon koristi Bobanov javni k uq za RSA da xifruje k uq za AES
i k uq za MAC . Prema tome, Amazon spaja dva k uqa i to pretvara
68
u broj. To je jednostavno, niz bita se posmatra kao broj a u sistemu sa
osnovom dva. Zatim Amazon izraqunava b = a (mod n ) i xa e to
Bobanu.
eB
B

3. Boban dexifruje poruku b, izraqunavxi a = b (mod n ), i tako


dobija k uq za AES i k uq za MD5{MAC .
dB
B

4. Boban zatim xifruje svoju poruku za Amazon. Ta poruka moe da


sadri egovu poru
binu, broj kreditne kartice, adresu i dr. Poruka
e biti xifrovana algoritmom AES , k uqem dobijenim od Amazona.
Izraqunati xifrat Boban xa e Amazonu.
5. Boban odreuje MD5{MAC otvorenog teksta poslate poruke, koristei
k uq za MAC koji je dobio od Amazona. On koristi DSS da potpixe
ovaj MAC . Struktura ove poruke je S =MAC , r, x. Boban zatim
xifruje potpis algoritmom AES . Dakle, Boban spaja S =MAC ,
r i x i xifruje ih algoritmom AES . Ovaj xifrovani, pa potpisani
MAC Boban xa e Amazonu.
6. Amazon prima poruku iz 4., dexifruje je i dobija otvoreni tekst
poruke.
7. Amazon zatim odreuje MAC prim ene poruke koristei k uq za
MAC.
8. Amazon zatim dexifruje potpisani xifrovani MAC dobijen od
Bobana, primenom algoritma AES . Amazon tako dobija S =MAC ,
r, x.
9. Amazon zatim proverava da li je MAC dobijen iz 7. isti kao MAC
iz 8. Na taj naqin se proverava da poruku nije neko promenio.
10. Amazon proverava potpis u 8. Podsetimo se da se potpis proverava
utvrivaem da li su (g ) · r (mod p) i g (mod p) jednaki. Sada
Amazon zna da je potpisani MAC dobio od Bobana.
aB r x S

Napomene. Umesto RSA , mogu se koristiti protokol Difi{Helman


nad konaqnim po em (xto se trenutno najqexe koristi) ili protokol
Difi{Helman sa eliptiqkim krivama. Za protokol Difi-Helman, Boban
i Amazon moraju najpre da izraqunaju Difi-Helman javni k uq. Umesto
AES neki protokoli jox uvek (2006. godine) koriste trostruki DES .
Ako Bobanu ponestane para poxto je poslao poru
binu, on ne moe da je se
odrekne (protokol onemoguuje odricae ). Samo je Boban mogao da potpixe
MAC , i svako moe da se uveri da je to uradio Boban, jer se potpis moe
da proqita jedino Bobanovim javnim k uqem (xto znaqi da je jedino Boban
mogao da ga napravi koristei svoj tajni k uq).
Ustvari, Boban moe da se odrekne poru
bine tako xto objavi svoj tajni
k uq. Tada on moe da tvrdi da je bilo ko mogao da falsifikuje egov
potpis. S druge strane, Amazon moe da dokae da je Boban razglasio svoj
69
tajni k uq posle poru
bine; naravno, ako Boban nee da objavi svoj javni
k uq, on ne moe da porekne poru
binu.
20.7.2 IPSec
IPSec (Internet Protocol security) je konkurent protokolu SSL . On u odnosu
na SSL radi na drugom nivou (komunikacionog protokola; ne ulazimo u
deta e), i omoguuje veu fleksibilnost. Meutim, IPSec je mae efikasan
od SSL . Prvenstveno je nameen za upotrebu u virtuelnim privatnim
mreama (VPN, Virtual Private Network). Virtualna privatna mrea omoguuje
zaxtienu komunikaciju nekoliko uqesnika globalne mree (korixeem
infrastrukture interneta ili neke druge mree). SSL koriste svi uqesnici
interneta.
20.8 Uprav ae k uqevima
U praksi napadaqi skoro nikad ne pronalaze k uqeve primenom kriptoanalize.
Umesto toga, oni koriste a kavost pri izboru k uqeva. Mnogo je jednostavnije
podmititi osobu i tako dobiti k uq, ili ukrasti k uq, nego ga odrediti
kriptoanalizom. Veina udi ne bira k uqeve na sluqajni naqin. Citat:
"Dok sam bio mlai, prova ivao sam u raqunare, pretpostav ajui da je
lozinka prijate a mog oca ime egove najstarije erke." Drugi primer:
potrebno je oko jedan sat da se na raqunaru grubom silom odredi neqiji
k uq ako se k uq sastoji od samo sedam malih slova (tj. sedam bajtova).
Meutim, ako se umesto toga koristi sedam bajtova iz generatora sluqajnih
brojeva, onda je za napad grubom silom potrebno 457 godina. Meutim,
veine udi ne voli da pamti lozinke kao xto je 8*&u!=}. Oni e verovatno
da napixu lozinku na papir i stave je u novqanik ili torbu, ali to onda
moe da bude ukradeno.
Hex vrednosti lozinki se qesto smextaju na raqunaru nexifrovane,
zajedno sa korisniqkim imenom. Kad ukucate svoju lozinku, raqunar izraqunava
enu hex vrednost, koju zatim uporeuje sa vrednoxu smextenom uz vaxe
korisniqko ime. Napadaq moe da izraquna hex vrednosti svih reqi duine
7 ili 8 sastav enih od malih slova, i da uporedi ove hex vrednosti
sa onima iz fajla. Moe da se desi da samo jedan korisnik ima ovakvu
slabu lozinku. Meutim, na nekim sistemima je dovo no da imate samo
jednu lozinku, pa da provalite u raqunar i napravite xtetu. Poxto vam
je potrebna samo jedna lozinka, jox je bre da pokuxate sa svim obiqnim
reqima ili (engleskim) imenima duine do 7 ili 8 slova. Ako ima dovo no
korisnika, verovatno e neka takva req biti korixena kao lozinka. Ovo
je reqniqki napad (dictionary attack).
Neki raqunari ne dozvo avaju da se koriste lozinke koje se sastoje
samo od slova. Uobiqajeno je da udi koriste trikove kao xto su E1izabeth,
Tayl0r, i sliqno. Reqnik koji se koristi za napad moe se proxiriti da
obuhvati i ovakve promeene reqi.

70
Da se izbegne reqniqki napad, moe se primeniti postupak doso avaa.
Svakom korisniku je dode en sluqajni niz znakova, koji se nadovezuje
na lozinku, pa se izraqunava hex vrednost rezultata. Korisniqko ime,
sluqajni niz i hex vrednost se smextaju u raqunaru. Sada broj moguih
hex vrednosti nije vixe jednak broju moguih lozinki, nego proizvodu
broja moguih lozinki i broja moguih sluqajnih nizova.
Ni jedan k uq ne sme se koristiti neograniqeno dugo. Xto se due
koristi, vixe dokumenata je ime xifrovano, pa dolazi do vee xtete
prilikom gubitka k uqa. Xto se k uq due koristi, vei je izazov egovo
razbijae, i vee vreme ima napadaq da sprovede napad.
20.9 Kvantna kriptografija
Postoje dva naqina da se bez neposrednog susreta dogovori k uq za simetriqnu
xifru. Prvi je upotreba kriptografije sa javnim k uqem, koja je zasnovana
na matematici. Drugi je kvantna kriptografija.
Foton ima polarizaciju | to je ravan α koja sadri pravac egovog
kretaa. Neka je β neka ravan normalna na pravac kretaa fotona. Polarizacija
je odreena uglom preseqne prave p (dveju ravni α, β) | koordinatne ose
nove baze i stare koordinatne (x) ose. Baza moe da bude (u odnosu na staru)
rektilinearna (horizontalna ili vertikalna), dijagonalna (nagib 1 i −1),
itd. Ako se polarizacija fotona meri u pogrexnoj bazi, onda se dobija
sluqajan rezultat i unosi se grexka u sva naredna merea polarizacije
tog fotona.
Neka je potrebno da Alisa i Boban dogovore simetriqni k uq. Alisa
xa e Bobanu niz fotona. Svaki foton ima sluqajno izabranu polarizaciju
u jednom od qetiri pravca: |, −, \, /. Ovim pravcima pripisuju se vrednosti
redom 1, 0, 1, 0. Neka je Alisa poslala niz: \/| |/ \ | − − \ −|/.
Boban ima detektor polarizacije. Za svaki foton on sluqajno bira bazu,
rektilinearnu ili dijagonalnu. Neka je niz egovih izbora ×++××+++
× × × + +. Svaki put kad izabere dobru bazu, on taqno meri polarizaciju.
Ako je baza pogrexna, onda on dobija sluqajni rezultat. Izlaz egovog
detektora mogao bi da bude \ − | \ //| − / \ \| |.
Alisa xa e \ / | | / \ | − − \ − | /
Boban postav a × + + × × + + + × × × + +
Taqno ≀ ≀ ≀ ≀ ≀ ≀ ≀
Boban dobija \ − | \ / − | − / \ \ | |
Primetimo da ako Boban dobro izabere bazu, onda Alisa i Boban imaju
istu polarizaciju, koja se pretvara u 0 ili 1. Na primeru drugog i posledeg
fotona vidimo primere sluqajnosti u Bobanovom mereu ako je baza izabrana
pogrexno.
Sada Boban xa e Alisi otvorenu poruku, u kojoj joj jav a svoja postav aa
baze. Alisa mu odgovara na koje orijentacije su bile taqne; ostale se odbacuju.
Alisa xa e \ | / | − \ |
Boban dobija \ | / | − \ |
Ove vrednosti se pretvaraju u nule i jedinice:
71
Alisa xa e 1 1 0 1 0 1 1
Boban dobija 1 1 0 1 0 1 1
U proseku Alisa xa e Bobanu 2n bita, da bi na kraju ostalo n bita
posle odbacivaa onih za koje je baza pogrexno postav ena. Dakle, da bi
razmenili 128-bitni k uq za, Alisa mora u proseku da poxa e 256 bita.
Xta se dexava ako Cica meri poslate fotone? Obratimo posebno pau
na fotone kojima je Boban taqno pogodio bazu. Za polovinu tih fotona
Cica e pogrexno pretpostaviti bazu. Kad god ona pogrexno postavi bazu,
ona e Bobanov rezultat merea uqiniti sluqajnim, umesto taqnim.
Alisa xa e \ | / | − \ |
Boban postav a × × × × + + +
Cica postav a × + × + + × +
Boban dobija \ − / | − / |
Alisa xa e 1 1 0 1 0 1 1
Boban dobija 1 0 0 1 0 0 1
Za drugi i qetvrti foton, poxto je Cica pogrexno orijentisala bazu,
Boban dobija sluqajne (dakle taqne sa verovatnoom 1/2) bite. Dakle, ako
Cica prisluxkuje, oqekujemo da ona ponekad pogrexno orijentixe bazu,
pa da u nekim od tih sluqajeva Boban dobije pogrexnu polarizaciju.
Da bi otkrili prisluxkivae, Alisa i Boban mogu da se dogovore
da provere neke bite. U gorem primeru oni mogu da se dogovore da u
otvorenom delu poruke kau koja su tri bita poslata. Alisa bi na primer
rekla 110, a Boban 100, posle qega bi oni znali da je neko ometao vezu.
Posle toga bi oni ceo postupak pokrenuli iz poqetka, pokuxavajui da
nekako spreqe Cicu da prisluxkuje.
U sluqaju da su se sloili otvoreno poslati biti, oni bi mogli da
iskoriste preostala qetiri bita za k uq. Naravno, mogue je da Alisa i
Boban dobiju poklapae tri bita, iako Cica prisluxkuje. Verovatnoa
da se mnogo bita sloi ako Cica prisluxkuje je vrlo mala. Ako se ne
sloe, onda e oni znati da su prisluxkivani. Ako se sloe, onda oni sa
velikom sigurnoxu znaju da nisu prisluxkivani. Oni bi dakle odbacili
kontrolne bite, a ostale bite iskoristili za k uq.
U ovom trenutku kvantna kriptografija radi na rastojau od nekoliko
kilometara. Kvantna kriptografija smatra se sigurnijom od kriptografije
sa javnim k uqem i ima ugraenu moguost otkrivaa prisluxkivaa.
Meutim, texko je preneti mnogo informacija na ovaj naqin, pa se ovaj
postupak koristi samo za dogovarae simetriqnog k uqa (npr. za AES ).
20.10 De ee tajne
Pretpostavimo da u Atlanti ima pet mena
era Koka kole koji dele tajnu
recepta koka kole. Potrebno je da ni jedan od ih ne zna tajnu, jer bi
mogao da da otkaz i ode u Pepsi. Tajna se moe kodirati bitskim nizom
S duine l. Zatim moe da se izgenerixe qetiri sluqajna niza bita iste
duine R , R , R , R . Prvoj qetvorici mena
era daje se po jedan od nizova
1 2 3 4

72
R , R , R , R , a petom R ⊕ R ⊕ R ⊕ R ⊕ S . Primetimo da niko od ih
pojedinaqno nema tajnu S, ali ako se saberu (⊕) podaci sve petorice, dobija
1 2 3 4 1 2 3 4

se S. Bilo koja qetvorica ne mogu dobiti S. Meutim, ako jedan od ih


umre i odnese svoju tajnu u grob, onda je tajna zauvek izgub ena. Zbog toga je
zgodno obezbediti da npr. bilo koja trojica od ih mogu zajedno da dobiju
S.
Ovaj problem moe se rexiti primenom Lagranovog interpolacionog
polinoma, pronalazak Xamira (S iz RSA ). Za rexee je potreban broj
p duine vee od l (tj. p ≥ 2 ). Kreira se polinom sa tri koeficijenta
f (x) = ax + bx + S . Ovde je S ∈ [0, 2 − 1] sada celi broj. Brojevi a i
l

b su izabrani sluqajno izmeu 0 i p − 1. Mena


eru i daje se ostatak f (i)
2 l

(mod p), i = 1, 2, . . . n. Ovo rexee radi za svaki broj mena


era n ≥ 3 ako
treba obezbediti da bilo koja tri mena
era dobiju tajnu.
Primer. Tajni broj je 401. Bira se prost broj p = 587, a = 322, b = 149.
Prema tome f (x) = 322x + 149x + 401 (mod 587). Tada je f (1) = 285, f (2) =
226, f (3) = 224, f (4) = 279, f (5) = 391. Prvi, qetvrti i peti mena
eri
2

mogu da se dogovore da zajedno dobiju tajnu S. Oni znaju f (x) = ax + bx + S


(mod 587), ali ne znaju a, b, S . Oni znaju f (1) = a+b+S = 285, 16a+4b+S =
2

279 i 25a + 5b + S = 391. Oni rexavaju sistem


    
1 1 1 a 285
 16 4 1   b  =  279  (mod 587)
25 5 1 S 391
da bi odredili a, b, S. ih zanima samo S. Rexee se moe uopxtiti tako
da radi za bilo koji broj mena
era, i za bilo koji najmai broj mena
era
potreban da se rekonstruixe tajna.
21 Kriptoanaliza
Kriptoanaliza je razbijae xifri ili prouqavae razbijaa xifri.
Xifarski sistemi mogu se podeliti u tri kategorije:
1. Oni koji su razbijeni (veina).
2. Oni koji nisu do sada bili analizirani (zato xto su novi i nisu
xiroko korixeni).
3. Oni koji su analizirani, ali nisu razbijeni. (RSA , sistemi koji
koriste diskretni logaritam, trostruki DES , AES ).
Najqexa tri naqina da neprijate dobije otvoreni tekst koji odgovara
nekom xifratu su
1. Kraom, kupovinom k uqa, odnosno podmiivaem.
2. Korixeem slabosti u realizaciji, odnosno problema sa protokolom.
Na primer, neko koristi ime suprunika kao k uq, ili neko poxa e
k uq zajedno sa porukom.
73
3. Kriptoanalizom.
Razmatraemo samo trei od ovih naqina, iako se on najree primeuje.
Postoje tri vrste kriptoanalize.
Napad sa poznavaem samo xifrata Neprijate je presreo xifrat,
ali nema odgovarajui otvoreni tekst. Uobiqajena je pretpostavka da
neprijate ima pristup xifratu. Mogue su dve situacije:
a) Neprijate zna algoritam xifrovaa, ali ne zna k uq. Ovo vai
za veinu sistema u komercijalnoj upotrebi.
b) Neprijate ne zna algoritam xifrovaa. Oprezni korisnici se
nikada ne oslaaju na pretpostavku da e ova situacija potrajati
dugo. Na primer, algoritam Skip
ek (Skipjack) na qipu Kliper
(Clipper) je tajni. Qesto se vojni xifarski sistemi dre u tajnosti
dokle god je mogue. Firma RSA pokuxala je da saquva u tajnosti
nekoliko svojih sistema, ali su to spreqili objav ivaem qlanovi
grupe Cipherpunks.
Napad sa poznatim otvorenim tekstom Neprijate ima neke parove
xifrat, otvoreni tekst. Neprijate moe pored toga imati jox xif-
rata.
Napad sa poznavaem izabranog otvorenog teksta Pretpostav a se
da neprijate moe izabrati otvoreni tekst koji eli da propusti
kroz proces xifrovaa. Iako je ovakav napad malo realan, on ima
teorijski znaqaj, jer ako se zna dovo no otvorenog teksta, onda postaju
upotreb ive tehnike za napad sa izabranim otvorenim tekstom. Pored
toga, ovakav napad je mogu kad se ukrade pametna (npr. kreditna)
karticu.
U ovom kursu kriptografije neemo mnogo vremena posvetiti klasiqnoj
kriptoanalizi. Analiziraemo nekoliko savremenih kriptoanalitiqkih
metoda.
Projektanti xifarskih sistema qesto prave pogrexne pretpostavke o
teini razbijaa xifarskog sistema. Oni projektuju xifarski sistem
i zak uqe da "neprijate mora da uradi x da bi razbio ovaj sistem".
Qesto postoji drugi naqin da se sistem razbije. Razmotrimo primer xifre
proste zamene, gde se svako slovo zameuje nekim drugim slovom azbuke, na
primer, A → F , B → S, C → A, D → L, .... Kaemo da je ovo xifra
monoalfabetske zamene. Broj permutacija 26 slova koje ne preslikavaju
ni jedno slovo u sebe je oko 1.4 × 10 . Autori ovog sistema oceuju da
je broj ovih permutacija tako veliki, da je sistem siguran. Meutim, oni
26

previaju da u svakom jeziku postoji velika pravilnost.


U klasiqnoj kriptoanalizi se pravilnosti u jeziku qesto koriste. Na
primer, slova, bigrami i trigrami u engleskom (ni naxem) jeziku nemaju
ravnomernu raspodelu verovatnoa. Ipak, ihova raspodela verovatnoa
74
varira od teksta do teksta. Navodimo primere ovih verovatnoa (pretpostav a
se da su razmaci ukloeni iz teksta): E - 12.3, T - 9.6, A - 8.1, O - 7.9, ...,
Z - 0.01. Najqexi bigrami su T H - 6.33, IN - 3.14, ER - 2.67, ..., QX - 0.
Najqexi trigrami su T HE - 4.73, IN G - 1.42, AN D - 1.14, .... U nekim
tabelama se kao najqexi bigrami navode T H, HE, IN, ER, jer rezultat
zavisi od uzorka. Savremene xifre kao xto je AES rade sa blokovima od
po 16 ASCII znakova koji uk uquju velika i mala slova, razmake, cifre,
interpunkciju i dr. Najqexi parovi simetriqnih bigrama (u engleskom)
su ER/RE, ES/SE, AN/N A, T I/IT, ON/N O, i dr. Primetimo da svi oni
sadre samoglasnik.
Ako je na raspolagau dovo no dug xifrat dobijen monoalfabetskom
xifrom zamene, onda se mogu prebrojati uqestanosti pojav ivaa slova u
xifratu i pretpostaviti da je najqexe slovo E, sledee najqexe T , itd.
I ako je duina xifrata mala, qesto je mogua uspexna kriptoanaliza.
Na primer, ako se u xifratu naie na XM OX XM B, koje reqi mogu ovo
da budu? (that the, onto one). Koja obiqna req daje xifrat F QJF U Q?
(people).
Zadatak za kriptoanalizu: GU P IPY AKJW YKN CJJH HPOJ RGNE
EGW OKIHPYGKYW HJVEPHW GN GW DJOPZWJ EJ EJPVW P AGU-

(Uputstvo: obratite pau na drugu


UJVJYN AVZIIJV MJN EGI WNJH NK NEJ IZWGO REGOE EJ EJPVW

i posledu req).
EKRJSJV IJPWZVJA KV UPV PRPB.

21.1 Vinerova xifra


Podsetimo se Cezarove xifre u kojoj se svako slovo zameuje slovom koje
se nalazi tri mesta iza ega u abecedi: A− > D, B− > E,..., Z− > C .
Ovo je jednostavni specijalni sluqaj prethodno razmatranog sistema. Ako
je mogue pomerae u abecedi za proizvo an broj pozicija, onda je to
monoalfabetska xifra translacije. Mogu se cikliqki smeivati nekoliko
monoalfabetskih xifara translacije. Takav sistem zove se Vinerova
xifra (Vigener). K uq je neka req, na primer T IN . Slovo T je 19-to u
abecedi, I je sedmo, a N je 13-to. Prema tome, transliraemo prvo slovo za
19, drugo za 7, tree za 13, qetvrto za 19, itd. Mogli bismo da kaemo da je
ovo troalfabetna xifra translacije. Pre nego xto su postojali raqunari,
udi su koristili Vinerov kvadrat na slici. Da bi se xifrovala req
CRY P T O k uqem T IN , najpre se xifruje slovo C slovom T . U kvadratu
se proqita slovo na preseku vrste C i kolone T (ili obrnuto). Rezultat
xifrovaa je V ZLIBB. Primetimo da se slovo B dva puta pojav uje u
xifratu. Ako primalac ima isti k uq, onda on moe da napravi istu
tabelu i dexifrovae je lako.
ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
DEFGHIJKLMNOPQRSTUVWXYZABC

75
EFGHIJKLMNOPQRSTUVWXYZABCD
FGHIJKLMNOPQRSTUVWXYZABCDE
GHIJKLMNOPQRSTUVWXYZABCDEF
HIJKLMNOPQRSTUVWXYZABCDEFG
IJKLMNOPQRSTUVWXYZABCDEFGH
JKLMNOPQRSTUVWXYZABCDEFGHI
KLMNOPQRSTUVWXYZABCDEFGHIJ
LMNOPQRSTUVWXYZABCDEFGHIJK
MNOPQRSTUVWXYZABCDEFGHIJKL
NOPQRSTUVWXYZABCDEFGHIJKLM
OPQRSTUVWXYZABCDEFGHIJKLMN
PQRSTUVWXYZABCDEFGHIJKLMNO
QRSTUVWXYZABCDEFGHIJKLMNOP
RSTUVWXYZABCDEFGHIJKLMNOPQ
STUVWXYZABCDEFGHIJKLMNOPQR
TUVWXYZABCDEFGHIJKLMNOPQRS
UVWXYZABCDEFGHIJKLMNOPQRST
VWXYZABCDEFGHIJKLMNOPQRSTU
WXYZABCDEFGHIJKLMNOPQRSTUV
XYZABCDEFGHIJKLMNOPQRSTUVW
YZABCDEFGHIJKLMNOPQRSTUVWX
ZABCDEFGHIJKLMNOPQRSTUVWXY

Pretpostavimo da je prim en sledei xifrat, dobijen primenom Vinerove


xifre.
wzggqbuawq pvhveirrbv nysttaknke nxosavvwfw frvxqumhuw
wqgwtgziih locgpnhjmn nmtzqboavv abcuawohbv rjTAMPOvkl
gpigfsmfmw vnniyhzyrv qkkiqywweh vjrjwgWEWG Zhcxucakep
wpsnjhvama hkmehnhuww vtzguwaclz stsvfxlplz muywzygagk
aofkioblwi argtvrgzit xeofswcrqb tllcmiabfk ttbwbfenvz
snlytxahuw vgtzstghut vrzwrcglpr ariltwxwTA MPOtgvwlqh
vkhkynwpmp vmwgbjxqnb tnuxhkwasa gvbwbntswm pwfdmhxnce
zinbdsqarv aihojmneqo alfwmpomqd qgmkuwvgfg husrfaqggg
vavwzyahgg wbrgjjbake axkgovnkww kdwiwhdnbo aumggbgbmv
exaoogypWE WGZvgymfrf gglbcuaq

Kako se moe odrediti duina k uqa? Postoje dva metoda da se to


uradi. Prvi je otkrio Kaziski (Kasiski, 19. vek), a drugi Fridman (Fried-
man, 20.vek).

21.1.1 Test Kaziskog


Posmatrajmo qesti trigram kao xto je T HE i pretpostavimo da je k uq
duine pet slova. Ako trigram T HE poqie na pozicijama n i m u xifratu,
a m ̸≡ n (mod 5), onda e oni biti razliqito xifrovani. Ako je pak
m = n (mod 5), onda e trigrami biti xifrovani sa ista tri slova

76
k uqa. Na primer, neka je k uq V OICE. Otvoreni tekst T HEON ET HE
daje xifrat OV M QRZHP G, a otvoreni tekst T HEBOT HE daje xifrat
OV M DSOV M . Naravno, isto se dexava za bilo koji qest trigram, kao xto
su AN D, IN G i sl. Za bilo koji par identiqnih trigrama u otvorenom
tekstu oqekuje se da e razlika ihovih pozicija biti de iva sa pet
u proseku svaki peti put, kada e oni biti identiqno xifrovani. Sa
dovo no xifrata na raspolagau, moemo da traimo ponov ene trigrame
i izraqunavamo razmake izmeu ih. Razmaci bi trebali da obiqno budu
de ivi sa pet.
U gorem xifratu primeuju se ponav aa W EW W GZ i T AM P O na
rastojaima 322 = 2 · 7 · 23, odnosno 196 = 2 · 7 . Isto tako, ponav aa
HU W W i U W V G su na razmacima 119 = 7 · 17, odnosno 126 = 2 · 3 · 7.
2 2

Na osnovu toga moe se pretpostaviti da je duina k uqa 7. Pri tome


2

moramo da budemo oprezni, jer mogu da postoje sluqajna ponav aa, kao
xto su dve kopije AV V na razmaku 43. Prema tome, ako napixemo program
koji pronalazi nzd svih razmaka, on e dati rezultat 1.
21.1.2 Fridmanov test
Fridmanov test omoguuje da se dobije ocena duine k uqa. Primetimo da
ako se za slova u xifratu dobijenom monoalfabetskom xifrom translacije
napravi histogram, dobie se isti histogram (istina ispreturan) kao i za
otvoreni tekst.
Sortirani procenti pojav ivaa slova (u engleskom tekstu) mogli bi
da budu (12.31, 9.59, 8.05, 7.94, . . . , 0.20, 0.20, 0.10, 0.09) za ET AO . . . QXJZ .
Ako se koristi dvoalfabetska xifra translacije, onda je, na primer,
uqestanost slova A u xifratu jednaka proseqnoj uqestanosti dva slova
koja se zameuju sa A. Sortirane uqestanosti mogle bi da budu
(8.09, 7.98, 7.565, 7.295, . . . 1.115, 1.04, 0.985, 0.31).

Ako se koristi 10-alfabetska xifra translacije, onda bi uqestanost nekog


fiksiranog slova u xifratu jednaka proseqnoj uqestanosti deset slova
koja se zameuju tim slovom. Sortirane uqestanosti mogle bi da budu
(4.921, 4.663, 4.611, 4.589, . . . , 3.284, 3.069, 3.064, 2.475). Primetimo da ako posmatramo
uqestanosti svih slova u xifratu, onda je ihov prosek 1/26, nezavisno
od broja alfabeta. Meutim, xto je vei broj alfabeta, maa je varijansa.
Prema tome, za ocenu duine k uqa moe se iskoristiti varijansa vektora
uqestanosti pojav ivaa slova u xifratu.
Za ovu svrhu iskoristiemo upravo statistiqku varijansu. Ako se izaberu
dva slova iza teksta (ne obavezno susedna) kolika je verovatnoa da ta slova
budu jednaka? Pretpostavimo da imamo tekst (otvoreni tekst ili xifrat)
duine n,∑pri qemu se slovo A pojav uje n puta, slovo B n puta, slovo Z
n puta, n = n. Broj parova slova A je n (n − 1)/2, itd, pa je ukupan
0 1

broj parova od dva ista slova jednak ∑ n (n − 1). Ukupan broj parova slova
25 i 0 0

je n(n − 1)/2. Dakle, verovatnoa da su dva sluqajno izabrana slova jednaka


i i

77
je ∑25 ∑25
i=0ni (ni − 1)/2 i=0 ni (ni − 1)
I= = .
n(n − 1)/2 n(n − 1)
Veliqina I je uzoraqki indeks koincidencije (IOC ). Koliki je oqekivani
IOC za obiqni engleski tekst? Neka je p verovatnoa slova A, p ≈
0.0805, itd. Verovatnoa da oba slova u paru budu A je p . Verovatnoa
0 0

da oba slova u paru budu Z je p . Prema tome, verovatoa da dva sluqajno


2
0

izabrana slova u engleskom tekstu budu jednaka je ∑ p ≈ 0.065. Za sluqajni


2
25

tekst sa jednakim
∑ verovatnoama pojav ivaa slova je p = p = · · · =
2
i

p = 1/26 i p = 1/26 ≈ 0.038. Primetimo da se ovakav tekst dobija


0 1

Vinerovom xifrom sa k uqem beskonaqne duine ako je k uq sluqajan.


2
25 i

Za monoalfabetsku xifru zamene oqekivani IOC je priblino 0.065.


Da bismo stvari pojednostavili, razmotrimo jednostavniji primer od
engleskog teksta. Neka se u jeziku koriste samo slova α, β, γ, δ sa verovatnoama
redom 0.4, 0.3, 0.2, 0.1. Oqekivani IOC je 0.3. Ako se neki tekst xifruje
Vinerovom xifrom sa k uqem βγ (tj. pomerae za jedan, pa dva, pa jedan,
...), onda su verovatnoe pojav ivaa slova α, β, γ, δ u xifratu redom
1/2(.1)+1/2(.2) = .15, 1/2(.4)+1/2(.1) = .25, 1/2(.3)+1/2(.4) = .35 i 1/2(.2)+
1/2(.3) = .25. Oqekivvani IOC je tada 0.27. Primetimo da uzoraqki IOC
opada sa duinom k uqa. Uzoraqki IOC moe se iskoristiti za donoxee
odluke da li je xifrat dobijen monoalfabetskom ili polialfabetskom
xifrom.
Nazad na engleski tekst. Pretpostavimo da imamo xifrat duine n i
k uq duine k, koji treba da odredimo. Zbog jednostavnosti pretpostavimo
da k|n i da su sva slova k uqa razliqita. Xifrat se moe ispisati u
obliku tablice (naravno, k se za sada ne zna)
c1 c2 c3 c4

..
ck+1 ck+2 ck+3 ck+4

c n

Broj vrsta je n/k. Svaka kolona dobija se monoalfabetskom translacijom.


Verovatnoa da dva slova izabrana iz iste kolone budu jednaka je ≈ 0.065.
Verovatnoa da dva slova izabrana iz razliqitih kolona budu jednaka je
≈ 0.038.
Koliki je oqekivana vrednost uzoraqkog IOC ? Broj parova u istoj
koloni je n((n/k)−1)/2 = (n(n−k)/(2k). Broj parova iz razliqitih kolona
je n(N −(n/k))/2 = (n (K −1)/(2k). Oqekivani broj parova sa jednim istim
slovom je
2

( ) ( )
n(n − k) n2 (k − 1)
A = 0.0065 0.0038 .
2k 2k
Verovatnoa da se bilo koji par sastoji od dva ista slova je
A 1
= [0.027n + k(0.038n − 0.065)].
n(n − 1)/2 k(n − 1)

78
To je oqekivana vrednost IOC . Ovu vrednost izjednaqujemo sa uzoraqkim
IOC i rexavamo po k.
, gde je I =
0.027n ∑ n (n − 1) 25
i i
k≈
(n − 1)I − 0.038n + 0.065 n(n − 1) i=0

U naxem primeru je I ≈ 0.04498, k ≈ 3.844. Dobijena ocena duine k uqa


je 3.844 (stvarna duina k uqa je 7, tako da je ova ocena dosta loxa).
21.1.3 Odreivae k uqa
S obzirom na rezultate testova Kaziskog i Fridmana, pretpostavimo da je
duina k uqa 7 (a ne 14, xto bi se dobilo ako bi ponav ae HU W W bilo
sluqajno). Sada treba da odredimo k uq, odnosno kolika je translacija
svake kolone. Moemo da napravimo program za odreivae histograma
uqestanosti pojav ivaa slova xifrata na pozicijama 1, 8, 15, 22, . . . (ta
slova su u prvoj koloni ako se xifrat prepixe u tablicu sa vrstom duine
7). Dobija se da su uqestanosti slova A − Z

[10, 0, 0, 1, 1, 3, 7, 0, 0, 5, 7, 3, 2, 2, 0, 0, 1, 0, 4, 1, 2, 3, 10, 0, 1, 6].

Znamo da su se u otvorenom tekstu najqexe pojav uju slova E, T , A.


Razmaci izmeu ih u alfabetu su A − 4 − E − 15 − T − 7 − A. Za k uq
duine 7 i xifrat duine 478 moe se pretpostaviti da e se svako od
ovih slova pojaviti bar tri puta u svakom od sedam skupova (histograma).
Dakle, traimo u histogramu tri slova, takva da se svako pojav uje bar
tri puta, tako da su na (cikliqkom) rastojau 4 − 15 − 7. Ako ima vixe
ovakvih trojki, sabiramo uqestanosti pojav ivaa ta tri slova, pa najvei
prioritet dajemo translaciji kojoj odgovara najvei zbir.
Za gori histogram primeujemo da translaciji za xest odgovara suma
7 + 7 + 6 = 20, a da translaciji za 18 odgovara suma 17. Na sliqan naqin
prave se histogrami za drugu, treu, ..., sedmu kolonu xifrata prepakovanog
u tablicu (n/7) × 7. Za drugu kolonu jedina mogua translacija je za 4. Za
treu kolonu pomeraj 0 ima zbir 11, a pomeraj 2 sumu 17. Za qetvrtu kolonu
pomeraj 7 ima zbir 14, a pomeraj 19 sumu 20. Za petu kolonu pomeraj 8 ima
zbir 16, a pomeraj 11 sumu 12. Za xestu kolonu pomeraj 2 ima zbir 13,
a pomeraj 14 sumu 22. Za sedmu kolonu pomeraj 1 ima zbir 17, a pomeraj
13 sumu 21. Dakle, najpre pokuxavamo sa pomerajima [6, 4, 2, 19, 8, 14, 13].
Moemo da izvrximo dexifrovae koristei ovo kao k uq; prvih sedam
slova otvorenog teksta su tada QV EN IN H . Ovde Q izgleda pogrexno.
Druga mogunost za pomeraj u prvoj koloni bila je 18. Sa ovim pomerajem
dobijamo rezultat dexifrovaa EV EN IN HIS OW N T IM E . . ..

79
21.2 Kriptoanaliza modernih protoqnih xifara
21.2.1 Generator sluqajnih brojeva b/p
Ovo je primer generatora koje se vixe ne koristi. Neka je p veliki prost
broj za koji 2 generixe F . Bira se b, 1 ≤ b < p, pa je b/p k uq. Izraqunava

se "decimalni" razvoj broja b/p = 0.k k k k . . . u sistemu sa osnovom 2 (k


p

je bit). Tada je k k k k . . . niz k uqa. Duina perioda tog niza je p − 1


1 2 3 4 i

Primer. Neka je p = 11. Poxto je 2 ̸= 1 i 2 ̸= 1 u F , vidimo da 2


1 2 3 4

generixe F . Neka je k uq 5/11. U sistemu sa osnovom 2 to je 101/1011.


2 5
11

"Decimalni" razvoj:
11

0.01110...
-----------
1011 | 101.00000
10 11
------
10 010
1 011
------
1110
1011
----
110 itd.
Umesto ovog izabraemo dekadni primer, zbog lakxeg raqunaa. Neka
je p prost broj za koji 10 generixe F . Biramo 1 ≤ b < p. Ispisujemo

decimalni razvoj b/p = 0.n n n . . . (gde je 0 ≤ n ≤ 9). Tada je n n n . . .


p

niz k uqa. Poxto je 10 generator, duina perioda je p − 1, dakle velika.


1 2 3 i 1 2 3

Neka je na primer b = 12, p = 17, b/p = .70588235294117647058 . . . ,


n = 7, n = 0, itd. Neka je otvoreni tekst M ON T EREY . Zameujui
svako slovo sa dve dekadne cifre, dobijamo 1214131904170424 = p p p . . . ,
1 2

0 ≤ p ≤ 9, pa je p = 1, p = 2, p = 1, itd.
1 2 3

Postupak xifrovaa je c = p + n (mod 10) a xifrat je c c c . . ..


i 1 2 3

Dexifrovae se vrxi oduzimaem p = c − n (mod 10).


i i
i
i
i i
1 2 3

Primer (xifrovae) (dexifrovae)

OT 12141319 ST 82629544
+ niz kljuca 70588325 - niz kljuca 70588235
-------------------- --------------------
ST 82629544 OT 12141319
(sabiranje je bez prenosa) M O N T

Prikazaemo sada napad sa poznatim otvorenim tekstom. Neka broj p


ima l cifara i neka Cica ima xifrat i prvih 2l + 1 cifara (bita)
otvorenog teksta. Ona moe da odredi b i p pomou verinih razlomaka.
80
Verini razlomak je razlomak oblika
1
a1 +
...
1
a2 + a3 + 1

+ 1
an

gde su a celi nenegativni brojevi, a > 0 za i > 1. Uobiqajeno je da se za


verini razlomak koristi zapis [a , a , . . . , a ]. Svakom racionalnom broju
i i

odgovara konaqan verini razlomak, koji se dobija primenom Euklidovog


1 2 n

algoritma. Na primer 27/8 = 3+1/(2+1/(1+1/(2))) = [3, 2, 1, 2]. Iracionalnim


brojevima jednoznaqno odgovaraju beskonaqni verini razvoji oblika α =
a + 1/(a + 1/(a + . . . = [a1, a2, . . .], odnosno α = lim
Racionalni brojevi a , a +1/a , a +1/(a +1/a ), (odnosno [a ], [a , a ], [a , a , a ])
1 2 3 [a1, a2, . . . , a ]. n→∞ n

su konvergenti (parcijalni razlomci) broja α.


1 1 2 1 2 3 1 1 2 1 2 3

Konvergenti su veoma dobre racionalne aproksimacije α. Pokazuje se


da ako je α iracionalan i |α − a/b| < , gde su a, b celi , b ≥ 1, onda je
1

a/b konvergent α. Na primer, 22/7 je quvena dobra aproksimacija π . Taj


2b2

razlomak jeste konvergent π = 3 + 1/(7 + 1/(15 + . . .. Prva tri konvergenta


π su 3, 3 + 1/7 = 22/7 = 3.14 . . ., i 3 + 1/(7 + 1/15) = 333/106 = 3.1415 . . ..
Odreivae verinog razvoja α. Neka je ⌊α⌋ najvei celi broj ≤ α. Na
primer, ⌊π⌋ = 3, ⌊5⌋ = 5, ⌊−1.5⌋ = −2. Neka je α = α i a = ⌊α ⌋. Neka je
α = 1/(α − a ) i a = ⌊α ⌋. Neka je α = 1/(α − a ) i a = ⌊α ⌋, itd.
1 1 1
2
Interesantan primer je e = 2.71828 . . .. Tada je α = e, a = ⌊α ⌋ = 2.
1 1 2 2 3 2 2 3 3

α = 1/(e − 2) = 1.39 . . ., a = ⌊1.39⌋ = 1. α = 1/(1.39 . . . − 1) = 2.55 . . .,


1 1 1

a = ⌊2.55 . . .⌋ = 2. α = 1/(2.55 . . . − 2) = 1.82 . . ., a = ⌊1.82 . . .⌋ = 1. α =


2 2 3

1/(1.82 . . . − 1) = 1.22 . . ., a = ⌊1.22 . . .⌋ = 1. α = 1/(1.22 . . . − 1) = 4.54 . . . i


3 4 4 5

a = ⌊4.54 . . .⌋ = 4. Taqan verini razvoj e je [2, 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, . . .].


5 6
6
Vratimo se na kriptoanalizu. Neka Cica ima xifrat i prvih 3n "bita"
otvorenog teksta. Na osnovu toga ona moe da dobije prvih 3n "bita" niza
k uqa. Ona odreuje konvergent koji se slae sa prvih 2n + 1 "bita" niza
k uqa i proverava da li se i ostatak slae. Ako je n > log p, onda se niz
k uqa uspexno odreuje.
U narednom primeru neka se zna prvih 18 cifara OT, odnosno n = 6.
ST 5309573992060 746098818740243
OT 0200170405201 11704
niz k uqa 5109403597869 63905
Odreujemo verini razlomak za 0.510940359786963905; dobijamo
[0, 1, 1, 22, 2, 1, 5, 1, 1, 3, 2, 4, 308404783, 1, 2, 1, 2 . . .].

Konvergenti su 0, 1, 1/2, 23/45, 47/92, .... Konvergent [0, 1, 1, ...1, 3, 2] =


6982/13665 = 0.51094035858 . . . nije taqan, ali sledei [0, 1, 1, ...1, 3, 2, 4] =
30987/60647 = .5109403597869630958815769987 . . . jeste. To je prvi konvergent
koji se slae se prvih 13 cifara niza k uqa, a poklapa se i sa narednih
5 cifara, pa smo sigurni da je dobar.

81
ST 5309573992060 746098818740243
OT 0200170405201 117040003081306 = CAREFULREADING
niz kljuca 5109403597869 639058815769947

Ustvari, moe se iskoristiti bilo koji niz uzastopnih bita, ne samo


poqetnih | postupak je samo malo komplikovaniji. Potrebno je samo da
bude n ≥ p.
21.3 Pomeraqki registar sa linearnom povratnom spregom
Naredni generator sluqajnih brojeva je vrlo efikasan, iako, kao xto emo
videti, nije siguran. Zove se linearni pomeraqki registar (LPR, engleski
linear shift register, LSR) i bio je popularan 1970-tih godina. I da e se
koristi za hex funkcije i kontrolne sume, a nelinearni pomeraqki registri
se i da e koriste kao generatori sluqajnih brojeva.
Na slici je prikazan primer jednog LPR.
s_0 s_1 s_2
----- ----- -----
izlaz <- | | <- | | <- | | <-|
----- ----- ----- |
| | | |
V V V |
----------------------------- |
| s_0 + s_1 |---|
-----------------------------

Izlaz LPR je niz k uqa. Neka je poqetno stae LPR (s , s , s ) = (0, 1, 1).
Rad LPR prikazan je na slici 1 na sledeoj strani. elije pomeraqkog 0 1 2

registra predstav ene su kvadratima, a strelice nanie vode samo iz


kvadrata qiji sadraj ulazi u sumu. Na dnu slike vidi se da je LPR
doxao u poqetno stae, xto znaqi da e niz k uqa poqeti da se periodiqno
ponav a.
Ovo je bio LPR duine tri. Za LPR duine n (duina 32 je uobiqajena)
neka su k uq, odnosno poqetno stae 2n bita oznaqenih sa b , . . . , b , k , . . . , k ∈
{0, 1}, pri qemu je b ̸= 0 i nisu svi k jednaki 0.
0 n−1 0 n−1

Prva n-torka (s , . . . , s ) zove se poqetno stae i jednaka je (k , . . . , k ).


0 i

U primeru je bilo (k , k , k ) = (0, 1, 1). Funkcija koja daje posledi bit


0 n−1 0 n−1

narednog staa je f (s , . . . , s ) = b s + b s + · · · + b s . U primeru


0 1 2

je f = s + s = 1s + 1s + 0s , pa je (b , b , b ) = (1, 1, 0). Stae u


0 n−1 0 0 0 0 n−1 n−1

nekom trenutku je (s , . . . , s ); u narednom stau je s isto xto i s


0 1 0 1 2 0 1 2

u prethodnom stau, izuzev s , koje je jednako izlazu funkcije f .


0 n−1 i+1 i

Za fiksirano f (tj. fiksiranu n-torku b ) postoji 2 moguih poqetnih


n−1

staa za LPR duine n. Za dva staa kaemo da su u istoj orbiti ako se iz


n
i

jednog posle nekoliko koraka dolazi u drugo stae. Stae (0, 0, . . . , 0) ima
orbitu veliqine 1. U primeru su svih ostalih 7 staa u drugoj orbiti.

82
Prema tome, duina perioda niza k uqa je 7 = 2 − 1 (xto je najbo a
mogua vrednost).
3

Razmotrimo LPR duine 4 sa (b , b , b , b ) = (1, 0, 1, 0). Odredimo orbitu


ovog staa, videti sliku 2. Veliqina orbite je 6, pa je duina perioda niza
0 1 2 3

k uqa 6. Prednost bi ipak imao niz k uqa sa periodom duine 2 −1 = 15.


LPR duine 4 sa (b , b , b , b ) = (1, 0, 0, 1) ima orbite veliqine 15 i 1.
4

0 1 2 3

83
1. ------------------- x 2. -----------------
b_0=1 | 0 | 1 | 1 | x b_0=1 | 0 | 1 | 1 | 1 |
b_1=1 ------------------- x b_1=0 -----------------
b_2=0 | | x b_2=1 | |
k_0=0 ------+ ----------| x b_3=0 ------- + ---------|
k_1=1 | x k_0=0 |
k_2=1 ------------------- | x k_1=1 ----------------- |
0 | 1 | 1 | 1 |<-| x k_2=1 0 | 1 | 1 | 1 | 1 | <--|
------------------- x k_3=1 -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
01 | 1 | 1 | 0 |<-| x 01 | 1 | 1 | 1 | 0 | <--|
------------------- x -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
011 | 1 | 0 | 0 |<-| x 011 | 1 | 1 | 0 | 0 | <--|
------------------- x -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
0111 | 0 | 0 | 1 |<-| x 0111 | 1 | 0 | 0 | 1 | <--|
------------------- x -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
01110 | 0 | 1 | 0 |<-| x 01111 | 0 | 0 | 1 | 1 | <--|
------------------- x -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
011100 | 1 | 0 | 1 |<-| x 011110 | 0 | 1 | 1 | 1 | <--|
------------------- x -----------------
| | x
------+ ----------| x
niz | x
kljuca: ------------------- | x
0111001 | 0 | 1 | 1 |<-| x
------------------- x

84
Razmotrimo LPR duine 5 sa (b , b , b , b , b ) = (1, 1, 1, 0, 1). Odredimo
veliqinu orbite staa (1, 1, 0, 0, 1). Vidimo da je u ovom sluqaju veliqina
0 1 2 3 4

orbite 31 = 2 − 1. Izlazni niz k uqa je 1100110111110100010010101100001.


Primetimo da se u ovom nizu pojav uju sva staa izuzev (0, 0, 0, 0, 0). To
5

znaqi da se sve mogue petorke bita (razliqite od 00000) pojav uju taqno
jednom u ovom nizu k uqa.
Kako se moe ustanoviti kada postoje samo dve orbite veliqina 1 i
2 −1? Neka je g(x) = b +b x +b x +. . .+b +x . Maksimalna orbita
(veliqine 2 − 1) dobija se ako i samo ako je polinom g(x) primitivan po
n 1 2 n−1 n
0 1 x
2 n−1

modulu dva (tj. nad po em F ). Kaemo da je polinom g(x) primitivan ako


n

je nesvod iv i x je generator F = F [x]/(g(x)) . Ako je broj 2 − 1 prost,


2
∗ ∗

onda je dovo no da g(x) bude nesvod iv.


n
2n 2

Prema tome, n-torku (b , . . . , b ) biramo tako da g(x) bude nesvod iv i


da x generixe F . U tom sluqaju niz k uqa ima najvei mogui period. Za

0 n−1

LPR duine 32 postoji oko 67 miliona razliqitih nesvod ivih polinoma.


2n

Primetimo da je u prvom primeru bilo (b , b , b ) = (1, 1, 0) xto odgovara


polinomu 1 + x + x , koji jeste nesvod iv i primitivan, pa ima orbitu 0 1 2

maksimalne duine. U drugom primeru je bilo (b , b , b , b ) = (1, 0, 1, 0)


3

xto odgovara polinomu 1 + x + x = (1 + x + x ) . Ovaj polinom nije 0 1 2 3

nesvod iv, i nismo dobili orbitu maksimalne duine. U treem primeru


2 4 2 2

je bilo (b , b , b , b , b ) = (1, 1, 1, 0, 1) xto odgovara polinomu 1+x+x +x +


x koji jest nesvod iv (i primitivan), orbita je bila maksimalne duine.
2 4
0 1 2 3 4

Kao primer, xifrujmo OT Hi, nizom k uqa dobijenim od LPR sa


5

(b0 , . . . , b4 ), (k0 , . . . , k4 ) = (1, 1, 1, 0, 1), (1, 1, 0, 0, 1).

Dobijamo niz k uqa iz treeg primera. Otvoreni tekst je Hi = 0100100001101001


(ASCII ).
OT 0100100001101001
niz k uqa 1100110111110100
ST 1000010110011101
Primetimo da je istovremeno i ST + niz k uqa = OT ST + OT = niz
k uqa. To je zgodna osobina sabiraa po modulu dva.
Kako se ova xifra moe razbiti? Pretpostavimo da je presretnut
xifrat i prvih 2n bita otvorenog teksta (radi se dakle o napadu sa
poznatim otvorenim tekstom). Zatim dobijamo prvih 2n bita niza k uqa
. Posle toga moe se rekonstruisati celi niz k uqa. Pretpostavimo
da pravi korisnik koristi funkciju f = s + s + s + s iako mi to neemo
k ,k ,...,k
0 1 2n−1

da koristimo. Mi znamo k k k k k k k k k k = 1100110111.


0 1 2 3 4 5 6 7 8 9
0 1 2 4

znamo ne znamo moemo da pixemo


k5 = k0 + k1 + k2 + k3 + k4 = b0 k0 + b1 k1 + b2 k2 + b3 k3 + b4 k4
k6 = k1 + k2 + k3 + k4 + k5 = b0 k1 + b1 k2 + b2 k3 + b3 k4 + b4 k5
k7 = k2 + k3 + k4 + k5 + k6 = b0 k2 + b1 k3 + b2 k4 + b3 k5 + b4 k6
k8 = k3 + k4 + k5 + k6 + k7 = b0 k3 + b1 k4 + b2 k5 + b3 k6 + b4 k7
k9 = k4 + k5 + k6 + k7 + k8 = b0 k4 + b1 k5 + b2 k6 + b3 k7 + b4 k8

85
U opxtem sluqaju je k = b k + b k + · · · + b k . Imamo sistem
od n linearnih jednaqina (nad F ) sa n nepoznatih b , i = 0, 1, . . . , n − 1.
t+n 0 t 1 t+1 n−1 t+n−1

Prethodni sistem moe da se napixe u matriqnom obliku. 2 i

    
k0 k1 k2 k3 k4 b0 k5
 k1 k2 k3 k4 k5  b1   k6 
    
 k2 k3 k4 k5 k6  b2 = k7 
    
 k3 k4 k5 k6 k7  b3   k8 
k4 k5 k6 k7 k8 b4 k9

Posle zamene vrednosti k dobija se sistem i


    
1 1 0 0 1 b0 1
 1 0 0 1 1  b1   0 
    
 0 0 1 1 0  b2 = 1 
    
 0 1 1 0 1  b3   1 
1 1 0 1 1 b4 1

Rexavaem ove matriqne jednaqine na po em F dobija se b b b b b =


. 2 0 1 2 3 4

Sada, kad znamo b , k , i = 0, 1, . . . , n − 1, moemo sami da izraqunamo


11101

sve qlanove niza k uqa. Kraj primera.


i i

U opxtem sluqaju imamo sistem jednaqina


    
k0 k1 k2 ··· kn−1 b0 kn
 k1 k2 k3 ··· kn  b1   kn+1 
    
    



k2 k3
..
k4 ··· kn+1 


..
b2 =
 
 
..
kn+2 


kn−1 kn kn+1 ··· k2n−2 bn−1 k2n−1

Primer. Znamo da Alisa i Boban koriste LPR duine xest i da poruka


poqie se T o (ASCII ), a presreli smo xifrat 1011 0000 1101 1000 0010 0111 1100 0011.
OT 10110000110110000010011111000011
ST 0101010001101111
T o
----------------
niz k uqa 1110010010110111
Dobijamo sistem
    
1 1 1 0 0 1 b0 0
 1 1 0 0 1 0  b1   0 
    
 1 0 0 1 0 0  b2   1 
  = 
 0 0 1 0 0 1  b3   0 
    
 0 1 0 0 1 0  b4   1 
1 0 0 1 0 1 b5 1

86
Rexavaem dobijamo b b b b b b = 110000. Poxto znamo sve b i prvih
xest qlanova niza k uqa, moemo da rekonstruixemo ceo niz k uqa i
0 1 2 3 4 5 i

dexifrujemo ostatak xifrata. Dobijamo da je otvoreni tekst T oAl.


Xta ako bismo znali samo da je prvo slovo otorenog teksta T ? Tada
bismo mogli da preostala qetiri bita pretpostavimo na sva mogue naqine
da bismo imali ukupno 12 qlanova niza k uqa. Primetimo da e samo neke
od tih pretpostavki kao rezultat dati invertibilnu matricu nad F . Od
takvih pretpostavki odabraemo onu koja daje smisleni tekst kao rezultat 2

dexifrovaa. Kraj primera.


Ponekad se kao generator sluqajnih brojeva koristi nelinearni pomeraqki
registar, na primer f = s s s + s + s s + s .
0 2 7 1 2 4 4

22 Linearna i diferencijala kriptoanaliza


Ova dva vana napada bie ilustrovana napadom na verziju SAES od samo
jedne runde, u da em tekstu 1SAES .
22.1 1SAES
Podsetimo se da je tabela S nelinearno preslikavae S : {0, 1} → {0, 1}.
Tako je npr. S(b , b , b , b ) ̸= b + b , b + b + b , b , b + b . Neka je zadat
k uq K = k k k k k k k k k k k k k k k k
0
0 1 2 3 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 2 3 0 1 2

k8 k9 k10 k11 k12 k13 k14 k15


@R
@
k12 k13 k14 k15 k8 k9 k10 k11
S? S?
n0 n1 n2 n3 n4 n5 n6 n7
1 0 0 0 0 0 0 0
⊕ k0 k1 k2 k3 k4 k5 k6 k7
= k16 k17 k18 k19 k20 k21 k22 k23
⊕ k8 k9 k10 k11 k12 k13 k14 k15
= k24 k25 k26 k27 k28 k29 k30 k31
Dobija se K = k k k k k k k k k k Kasnije
emo koristiti jednakosti k + k = k , ... k
1 16 17 18 19 20 21 22 23 24 25 k26 k27 k28 k29 k30 k31 .
.
Podseae na postupak xifrovaa: 16 24 8 23 + k15 = k31

p0 p1 p2 p3 p8 p9 p10 p11 AK0 p0 ⊕ k0 p1 ⊕ k1 p2 ⊕ k2 p3 ⊕ k3 p8 ⊕ k8 p9 ⊕ k9 p10 ⊕ k10 p11 ⊕ k11



p4 p5 p6 p7 p12 p13 p14 p15 p4 ⊕ k4 p5 ⊕ k5 p6 ⊕ k6 p7 ⊕ k7 p12 ⊕ k12 p13 ⊕ k13 p14 ⊕ k14 p15 ⊕ k15

Neka je S(p p p p
0 1 2 3 + k0 k1 k2 k3 ) = m0 m1 m2 m3 , itd. Posle N S stae je
NS m0 m1 m2 m3 m8 m9 m10 m11 SR m0 m1 m2 m3 m8 m9 m10 m11
→ →
m4 m5 m6 m7 m12 m13 m14 m15 m12 m13 m14 m15 m4 m5 m6 m7

87
Posle M C stae je
MC m0 + m14 m1 + m12 + m15 m2 + m12 + m13 m3 + m13 m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11

m2 + m12 m0 + m3 + m13 m0 + m1 + m14 m1 + m15 m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9

Na kraju se dodaje K i stae je


1

AK1 m0 + m14 + k16 . . . m3 + m13 + k19 m6 + m8 + k24 . . . m5 + m11 + k27 c c c c c8 c9 c10 c11
→ = 0 1 2 3
m2 + m12 + k20 . . . m1 + m15 + k23 m4 + m10 + k28 . . . m7 + m9 + k31 c4 c5 c6 c7 c12 c13 c14 c15

Dodavaem na obe strane k 16 . . . k31 dobija se


m0 + m14 m1 + m12 + m15 m2 + m12 + m13 m3 + m13 m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11
m2 + m12 m0 + m3 + m13 m0 + m1 + m14 m1 + m15 m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9

c0 + k16 c1 + k17 c2 + k18 c3 + k19 c8 + k24 c9 + k25 c10 + k26 c11 + k27
=
c4 + k20 c5 + k21 c6 + k22 c7 + k23 c12 + k28 c13 + k29 c14 + k30 c15 + k31
Podrazumevani redosled elija u blokovima:
elija 1 elija 3
elija 2 elija 4
22.2 Linearna kriptoanaliza
Linearna kriptoanaliza je napad sa poznavaem otvorenog teksta. Pronaxao
ga je Matsui 1992. godine. Za ovaj napad potrebno je mnogo parova OT/ST
dobijenih datim k uqem. Neka je blok OT p . . . p , k uq k . . . k , a
odgovarajui ST c . . . c . 0 n−1 0 m−1

Pretpostavimo da linearna jednaqina


0 n−1

pα1 + pα2 + · · · + pαa + cβ1 + · · · + cβb + kγ1 + · · · + kγg = x

(gde je x ∈ {0, 1}, 1 ≤ a, b ≤ n, 1 ≤ g ≤ m) vai sa verovatnoom p > 0.5 na


skupu svih parova OT/ST.
Vrednost x + p + p + · · · + p + c + · · · + c se izraqunava za
sve presretnute parove OT/ST. Ako meu vrednostima ima vixe nula,
α1 α2 αa β1 βb

pretpostav a se da je k + · · · + k = 0, a ako meu vrednostima ima vixe


jedinica, pretpostav a se da je k + · · · + k = 1. Na taj naqin dobija
γ1 γg

se linearna veza izmeu bita k uqa. Ci je pronai vixe ovakvih veza.


γ1 γg

Kad bi xifrovae bila linearna operacija, ove jednaqine bi vaile sa


verovatnoom 1, pa ne bi bilo potrebno vixe parova OT/ST.

88
22.3 Linearna kriptoanaliza 1SAES
Neka je S(a a a a ) = b b b b . Tada se vrednosti b za razne a mogu
predstaviti tablicom
0 1 2 3 0 1 2 3 i i

a0 a1 a2 a3 b0 b1 b2 b3
0 0 0 0 1 0 0 1
0 0 0 1 0 1 0 0
0 0 1 0 1 0 1 0
0 0 1 1 1 0 1 1
0 1 0 0 1 1 0 1
0 1 0 1 0 0 0 1
0 1 1 0 1 0 0 0
0 1 1 1 0 1 0 1
1 0 0 0 0 1 1 0
1 0 0 1 0 0 1 0
1 0 1 0 0 0 0 0
1 0 1 1 0 0 1 1
1 1 0 0 1 1 0 0
1 1 0 1 1 1 1 0
1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1
Izraqunavaem svih linearnih kombinacija ulaznih bita a i izlaznih
bita b dolazi se do linearnih veza koje vae sa verovatnoom veom od 0.5i

(ne postoji ni jedna veza koja vai sa verovatnoom veom od 0.75).


j

a3 + b0 = 1110111101011011 = 1, p = 12/16 = .75 (1)


a0 + a1 + b0 = 1011010111111110 = 1, p = .75 (2)
a1 + b1 = 0100011010000000 = 0, p = .75 (3)
a0 + a1 + a2 + a3 + b1 = = 0, p = .75 (4)
a1 + a2 + b0 + b1 = = 1, p = .75 (5)
a0 + b0 + b1 = = 1, p = .75 (6)

22.4 Odreivae jednaqina


Da bismo doxli do jednaqina oblika
pα1 + pα2 + · · · + pαa + cβ1 + · · · + cβb + kγ1 + · · · + kγg = x
treba da eliminixemo bite m i n . Eliminisaemo najpre bite n .
i i i

c0 + k16 + c8 + k24 = c0 + c8 + k8 = m0 + m14 + m6 + m8 (7)


c1 + k17 + c9 + k25 = c1 + c9 + k9 = m1 + m12 + m15 + m4 + m7 + m9 (8)
c2 + c10 + k10 = m2 + m12 + m13 + m4 + m5 + m10 (9)
c3 + c11 + k11 = m3 + m13 + m5 + m11 (10)
c4 + c12 + k12 = m2 + m12 + m4 + m10 (11)
c5 + c13 + k13 = m0 + m3 + m13 + m5 + m8 + m11 (12)
c6 + c14 + k14 = m0 + m1 + m14 + m6 + m8 + m9 (13)
c7 + c15 + k15 = m1 + m15 + m7 + m9 . (14)

89
Desne strane ovih jednaqina zavise od sve qetiri elije staa. Zbog toga
ihovo korixee za kombinovae sa jednaqinama kao xto su (1)-(6) dovodi
do jednaqina sa verovatnoama bliskim 0.5 (kasnije emo videti da postoji
tendencija da verovatnoe sa kojima vae jednaqine budu bliske 0.5).
Umesto toga, primetimo da su biti koji se pojav uju na desnoj strani
(7) podskup bita koji se pojav uju u (13). Sliqno, biti koji se pojav uju na
desnoj strani (10), (11), (14) su podskupovi skupova bita koji se pojav uju
redom u (12), (9), (8). Zbog toga, ako saberemo jednaqine (7) i (13), (10) i
(12), (11) i (9), odnosno (14) i (8), dobijamo
c0 + c6 + c8 + c14 + k8 + k14 = m1 + m9 (15)
c3 + c5 + c11 + c13 + k11 + k13 = m0 + m8 (16)
c2 + c4 + c10 + c12 + k10 + k12 = m5 + m13 (17)
c1 + c7 + c9 + c15 + k9 + k15 = m4 + m12 . (18)

Jednaqine (15)-(18) su uvek taqne.


Posmatrajmo jednakost (16). Ci je izraziti m + m preko p , k ,
jednakostima koje vae se verovatnoom veom od 0.5. U okviru jedne elije
0 8 i i

i m i m odgovaraju bitu b u niblu b b b b , pa moemo da iskoristimo


jednakosti (1) i (2).
0 8 0 0 1 2 3

Iskoristimo najpre (1) za elije 1 i 3.


p0 + k0 p1 + k1 p2 + k2 p3 + k3 p8 + k8 p9 + k9 p10 + k10 p11 + k11
p4 + k4 p5 + k5 p6 + k6 p7 + k7 p12 + k12 p13 + k13 p14 + k14 p15 + k15

NS m0 m1 m2 m3 m8 m9 m10 m11

m4 m5 m6 m7 m12 m13 m14 m15
Podsetimo se kako deluje tabela S: S(a a a a ) = (b b b b ).
Jednaqina (1) je a + b = 1, p = 0.75 (za elije 1 i 3).
3 0
0 1 2 3 0 1 2 3

p3 + k3 + m0 = 1, p = 0.75

,
p11 + k11 + m8 = 1, p = 0.75

,
p3 + p11 + k3 + k11 + m0 + m8 = 0 p = (0.75)2 + (0.25)2 = 0.625

Podsetimo se,
p3 + p11 + k3 + k11 = m0 + m8 p = 0.625

, (16) uvek.
Kombinovaem se dobija
c +c +c +c +k +k
3 5 11 13 11 13 = m0 + m8

(19),
c3 + c5 + c11 + c13 + k11 + k13 = p3 + p11 + k3 + k11 , p = 0.625

Ovo je prva od jednaqina kakve su potrebne za linearnu kriptoanalizu.


p3 + p11 + c3 + c5 + c11 + c13 = k3 + k13 p = 0.625

Zatim koristimo jednaqinu (1) na eliju 1 i jednaqinu (2) na eliju 3


(to opet kombinujemo sa (16)).
p0 + k0 p1 + k1 p2 + k2 p3 + k3 p8 + k8 p9 + k9 p10 + k10 p11 + k11
p4 + k4 p5 + k5 p6 + k6 p7 + k7 p12 + k12 p13 + k13 p14 + k14 p15 + k15

90
NS m0 m1 m2 m3 m8 m9 m10 m11

m4 m5 m6 m7 m12 m13 m14 m15
Podsetimo se ponovo kako deluje tabela S: S(a a a a ) = (b b b b ).
Jednaqina (1) je a + b = 1, p = 0.75 (za eliju 1). 0 1 2 3 0 1 2 3

Jednaqina (2) je a + a + b = 1, p = 0.75 (za eliju 3).


3 0

p + k + m = 1, p = 0.75
0 1 0

p + k + p + k + m = 1, p = 0.75
3 3 0

p + p + p + c + c + c + c = m + m , p = 0.625
8 8 9 9 8

Podsetimo se,
3 8 9 3 5 11 13 0 8

c + c + c + c + k + k = m + m (16) (uvek)
Kombinovaem, dobijamo
3 5 11 13 11 13 0 8

p + p + p + c + c + c + c = k + k + k + k + k (20), p = 0.625
Ovo je druga od jednaqina kakva su potrebne za linearnu kriptoanalizu.
3 8 9 3 5 11 13 3 8 9 11 13

Koristei (2) za obe elije 1 i 3, dobijamo


p + p + p + p + c + c + c + c = k + k + k + k + k + k (21).
Korixeem (2) na eliju 1 i (1) na eliju 3 ne daje novu informaciju,
0 1 8 9 3 5 11 13 0 1 8 9 11 13

nego samo ono xto se moe dobiti kombinovaem (19), (20) i (21).
Polazei od (18) moemo takoe da primenimo (1) i (1), (1) i (2), (2) i
(2) na elije 2 i 4 redom, i tako dobijemo (22), (23), (24).
Polazei od (15) moemo da primenimo (3) i (3), (3) i (4), (4) i (4) na
elije 1 i 3 redom, i tako dobijemo (25), (26), (27).
Polazei od (17) moemo da primenimo (3) i (3), (3) i (4), (4) i (4) na
elije 2 i 4 redom, i tako dobijemo (28), (29), (30).
Sabiraem (15) i (16) dobijamo c + c + c + c + c + c + c + c +
k +k +k +k =m +m +m +m .
0 3 5 6 8 11 13 14
8 11 13 14 0 1 8 9

p0 + k0 p1 + k1 p2 + k2 p3 + k3 p8 + k8 p9 + k9 p10 + k10 p11 + k11


p4 + k4 p5 + k5 p6 + k6 p7 + k7 p12 + k12 p13 + k13 p14 + k14 p15 + k15

NS m0 m1 m2 m3 m8 m9 m10 m11

m4 m5 m6 m7 m12 m13 m14 m15
Podsetimo se ponovo kako deluje tabela S: S(a a a a ) = (b b b b ).
Jednaqina (5) je a + a + b + b = 1, p = 0.75 (za elije 1 i 3).
1 2 0 1
0 1 2 3 0 1 2 3

p + k + p + k + m + m = 1, p = 0.75.
p + k + p + k + m + m = 1, p = 0.75
1 1 2 2 0 1

p + p + p + p + k + k + k + k = m + m + m + m , p = 0.675.
9 9 10 10 8 9

Podsetimo se,
1 2 9 10 1 2 9 10 0 1 8 9

c +c +c +c +c +c +c +c +k +k +k +k = m +m +m +m ,
(15)+(16) uvek.
0 3 5 6 8 11 13 14 8 11 13 14 0 1 8 9

Kombinovaem se dobija
k + k + k + k + k (31), p = 0.675.
p +p +p +p +c +c +c +c +c +c +c +c = k +k +k +
1 2 9 10 0 3 5 6 8 11 13 14 1 2 8
9
Na prvi pogled izgleda korisno iskoristiti (6), ali se zapaa da je to
10 11 13 14

isto xto i (2)+(3), pa dakle redundantno. Sabiraem (17) i (18) takoe se


moe iskoristiti (5) na elije 2 i 4 da se dobije (32).
91
Tako dobijamo sistem od 14 jednaqina
p3 + p11 + c3 + c5 + c11 + c13 = k3 + k13 (19)
p3 + p8 + p9 + c3 + c5 + c11 + c13 = k3 + k8 + k9 + k11 + k13 (20)
p0 + p1 + p8 + p9 + c3 + c5 + c11 + c13 = k0 + k1 + k8 + k9 + k11 + k13 (21)
p7 + p15 + c1 + c7 + c9 + c15 = k7 + k9 (22)
p7 + p12 + p13 + c1 + c7 + c9 + c15 = k7 + k9 + k12 + k13 + k15 (23)
p4 + p5 + p12 + p13 + c1 + c7 + c9 + c15 = k4 + k5 + k9 + k12 + k13 + k15 (24)
p1 + p9 + c0 + c6 + c8 + c14 = k1 + k8 + k9 + k14 (25)
p1 + p8 + p9 + p10 + p11 + c0 + c6 + c8 + c14 = k1 + k9 + k10 + k11 + k14 (26)
p0 + p1 + p2 + p3 + p8 + p9 + p10 + p11 + c0 + c6 + c8 + c14 = k0 + k1 + k2 + k3 + k9 + k10 + k11 + k14 (27)
p5 + p13 + c2 + c4 + c10 + c12 = k5 + k10 + k12 + k13 (28)
p5 + p12 + p13 + p14 + p15 + c2 + c4 + c10 + c12 = k5 + k10 + k13 + k14 + k15 (29)
p4 + p5 + p6 + p7 + p12 + p13 + p14 + p15 + c2 + c4 + c10 + c12 = k4 + k5 + k6 + k7 + k10 + k13 + k14 + k15 (30)
p1 + p2 + p9 + p10 + c0 + c3 + c5 + c6 + c8 + c11 + c13 + c14 = k1 + k2 + k8 + k9 + k10 + k11 + k13 + k14 (31)
p5 + p6 + p13 + p14 + c1 + c2 + c4 + c7 + c9 + c10 + c12 + c15 = k5 + k6 + k9 + k10 + k12 + k13 + k14 + k15 ; (32)

od kojih svaka vai sa verovatnoom 0.625.


Ovaj sistem linearnih jednaqina moe se predstaviti matriqnom jednaqinom
   
  k0 p3 + p11 + c3 + c5 + c11 + c13
0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0  k1   ··· 
   
 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0  k2   
    
 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0  k3   
    
 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0  k4   
    
 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1  k5   
    
 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1  k6   
    
 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0  k7   
  = 
 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0  k8   
    
 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0  k9   
    
 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0  k10   
    
 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1  k11   
    
 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1  k12   
    
 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0  k13   
   
0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1  k14   
k15 p5 + p6 + · · · c15

Vrste matrice sistema su linearno nezavisne, pa je svih 14 jednaqina


nezavisno.
22.5 Napad
Polazei od skupa poznatih parova OT/ST, Cica izraqunava p + p +
za sve parove. Ako preovlauje 0, ona stav a 0 na poqetak 3 11

vektora; ako preovlauje 1, ona stav a 1 na poqetak vektora. Zbog jednostavnosti,


c3 + c5 + c11 + c13

pretpostavimo da je Cica na svih 14 mesta mogla donese ispravnu odluku


da li je na tom mestu 0 ili 1. Ona sada ima 14 jednaqina sa 16 nepoznatih
(k , . . . , k ) pa ima 2
0 15 = 4 moguih rexea za k uq. Najjednostavnije je
16−14

92
dopuniti matricu sistema sa jox dve vrste do baze (16-dimenzionalnog F
vektorskog prostora) tako da se dodaju vektori pridrueni k i k . Cica 2

formira matriqnu jednaqinu 0 4

 
   p3 + p11 + c3 + c5 + c11 + c13
0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 k0  ··· 
 
 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0  k1   
    
 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0  k2   
    
 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0  k3   
    
 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1  k4   
    
 0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1  k5   
    
 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0  k6   
    
 0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0  k7   
  = 
 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0  k8   
    
 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0  k9   
    
 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1  k10   
    
 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1  k11   
    
 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0  k12   
    
 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1  k13   
    
 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  k14   p + p + · · · c 
 5 6 15 
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 k15  ∗ 

U vektoru sa desne strane ona stav a nulu ili jedinicu | vrednost koja se
qexe pojav uje u parovima OT/ST. Za preostala dva bita ona isprobava
sve qetiri mogue kombinacije.
Pretpostavimo da Cica eli da sa verovatnoom 95% bude sigurna da su
svih 14 izbora taqni. Moe se oceniti broj n parova OT/ST potrebnih za
taj nivo sigurnosti uspeha. Za i = 19, . . . , 32 neka je p̂ sluqajna promen iva
qija je vrednost jednaka udelu parova OT/ST za koje je leva strana jednaqine i

i jednaka odgovarajuoj vrednosti (0 ili 1) na desnoj strani, za dati k uq.


Za svako i je oqekivana vrednost p̂ jednaka 0.625, a ena√ varijansa je
0.625(1 − 0.625)/n. Prema tome, standardna devijacija p̂ je 15/(64n).
i

Mi hoemo da bude P (p̂ > 0.5, i = 19, . . . , 32) = 0.95. Moemo da i

pretpostavimo da su p̂ nezavisne promen ive, jer o ima nixta ne znamo


i

i zato xto je √to verovatno blisko istini. Zbog toga zahtevamo da bude
i

0.95 = 0.99634, za svako i.


Za velike n sluqajna promen iva p̂ ima praktiqno normalnu raspodelu.
14
P (p̂ > 0.5) =
i

Zbog toga od p̂ moe standardizovati oduzimaem matematiqkog oqekivaa


i

i de eem sa standardnom devijacijom, qime se dobija (priblino) noramalno


i

raspode ena sluqajna promen iva Z . Tada je


 
( √ )
 p̂i − 0.625 0.5 − 0.625  − n
0.99634 = P (p̂i > 0.5) = P √ > √ =P Z> √ .
15 15 15
64n 64n

93
Prema tome,
( √ ) ( √ )
− n n
1 − 0.99634 = 0.00366 = P Z< √ =P Z> √ .
15 15

Iz tablice vrednosti za normalnu (0, 1) raspodelu


√ √ dobijamo da je P (Z >
2.685) ≈ 0.00366. Vrednost n odreujemo iz n/ 15 = 2.685; dobijamo n =
15(2.685) ≈ 109.
Uopxtee ovog razmatraa pokazuje da za odreeni nivo sigurnosti c,
2

0 < c < 1 (mi smo izabrali c = 0.95) dobijamo n = 15z , gde je√z vrednost
iz tabele normalne raspodele koja odgovara vrednosti 1 − c. Tako je
2

dovo no samo n = 42 parova OT/ST za sigurnost iznad c = 0.5 Ako ni


14

jedan od dobijenih k uqeva nije dobar, Cica moe da nabavi jox parova
OT/ST. Druga mogunost koju ona ima je da pokuxa da promeni neke od 14
izabranih vrednosti bita. Pri tome ima smisla prvo promeniti onaj bit
koji se pojavio najmai broj puta.
22.5.1 Brzina napada
Ako Cica ima samo jedan par OT/ST, ona moe da isproba svih 2 = 65536
k uqeva da ustanovi koji od k uqeva transformixe OT u ST. Ako ovaj
16

uslov ispuava vixe od jednog k uqa, ona moe da isproba kandidate na


drugom paru OT/ST | jedan od k uqeva e u svakom sluqaju biti dobar u
oba sluqaja. Ovo je qisti napad grubom silom (brute force) U proseku Cica
e uspeti da pronae ispravan k uq posle pola isprobanih k uqeva, pa se
uspeh moe oqekivati posle 2 xifrovaa.
Da bi linearna kriptoanaliza uspela sa pouzdanoxu 95% Cica treba
15

da∑ izraquna vrednosti 14 razliqitih linearnih kombinacija ∑ p ⊕


c za svaki od 109 parova OT/ST. Posle toga ona treba da izvrxi
i∈S1 i

napad grubom silom sa qetiri mogua k uqa.


j∈S2 j

Prema tome, linearna kriptoanaliza izgleda efikasno u odnosu na


napad grubom silom na 1SAES . Meutim, kad se povea broj rundi, potrebno
je vixe sabiraa jednaqina da bi se eliminisale nepoznati meubiti (kao
xto su m , n ), pa verovatnoe pridruene jednaqinama tee vrednosti
0.5 (u naxem primeru su verovatnoe otixle sa 0.75 na 0.625). Posledica
i i

je da je za napad potrebno mnogo vixe parova OT/ST∑ da bi se postigao


pristojan nivo pouzdanosti izbora taqnih vrednosti k.
l∈S3 l

22.6 Diferencijalna kriptoanaliza


Diferencijalna kriptoanaliza (Biham, Shamir) je napad sa izabranim
otvorenim tekstom. Obiqno je nepraktiqan. Ako je na raspolagau ogroman
broj parova OT/ST, onda meu ima mogu da se pronau one koji bi ionako
trebali da budu izabrani (takva situacija je realna sa pametnom karticom
ili kutijom za skremblovae kablovske televizije). Cica bira dva OT koji
se razlikuju samo na odreenim bitima, a podudarni su na ostalim bitima,
94
i posmatra razlike izmeu dva odgovarajua xifrata, pokuxavajui da na
osnovu toga nexto zak uqi o k uqu.
Diferencijalna kriptoanaliza 1SAES : A ◦ M C ◦ SR ◦ N S ◦ A .
Pretpostav amo da je isti k uq korixen za xifrovae dva OT p . . . p K1 K0

i p . . . p , pri qemu je p . . . p = p . . . p , i tako se dobijaju dva ST


∗ ∗ ∗ ∗
0 15

c . . . c i c . . . c . Potrebno je da se razlikuju niblovi p p p p ̸= p p p p


0 15 8 15 8 15
∗ ∗ ∗ ∗ ∗ ∗

(nije problem ako su neki biti jednaki). Potrebno je da bude i p p p p ̸=


0 15 0 15 0 1 2 3 0 1 2 3

p p p p .
4 5 6 7
∗ ∗ ∗ ∗
4 5 6 7

p0 p1 p2 p3 p8 p9 p10 p11 p∗0 p∗1 p∗2 p∗3 p8 p9 p10 p11 N S



p4 p5 p6 p7 p12 p13 p14 p15 p∗4 p∗5 p∗6 p∗7 p12 p13 p14 p15

p0 + k0 p1 + k1 p2 + k2 p3 + k3 p8 + k8 p9 + k9 p10 + k10 p11 + k11


p4 + k4 p5 + k5 p6 + k6 p7 + k7 p12 + k12 p13 + k13 p14 + k14 p15 + k15
i
p∗0 + k0 p∗1 + k1 p∗2 + k2 p∗3 + k3 p8 + k8 p9 + k9 p10 + k10 p11 + k11
p∗4 + k4 p∗5 + k5 p∗6 + k6 p∗7 + k7 p12 + k12 p13 + k13 p14 + k14 p15 + k15

Primena N S (S deluje na svaki nibl) daje


m0 m1 m2 m3 m8 m9 m10 m11 m∗0 m∗1 m∗2 m∗3 m8 m9 m10 m11
m4 m5 m6 m7 m12 m13 m14 m15 m∗4 m∗5 m∗6 m∗7 m12 m13 m14 m15

Primena SR (cikliqko pomerae druge vrste) daje


m0 m1 m2 m3 m8 m9 m10 m11 m∗0 m∗1 m∗2 m∗3 m8 m9 m10 m11
m12 m13 m14 m15 m4 m5 m6 m7 m12 m13 m14 m15 m∗4 m∗5 m∗6 m∗7

Primena M C (mexae kolona) daje


m0 + m14 m1 + m12 + m15 m2 + m12 + m13 m3 + m13 m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11
m2 + m12 m0 + m3 + m13 m0 + m1 + m14 m1 + m15 m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9
i
m∗0 + m14 m∗1 + m12 + m15 m∗2 + m12 + m13 m∗3 + m13 m∗6 + m8 m∗4 + m∗7 + m9 m∗4 + m∗5 + m10 m∗5 + m11
m∗2 + m12 m∗0 + m∗3 + m13 m∗0 + m∗1 + m14 m∗1 + m15 m∗4 + m10 m∗5 + m8 + m11 m∗6 + m8 + m9 m∗7 + m9

Primena A daje K1

m0 + m14 + k16 m1 + m12 + m15 + k17 m2 + m12 + m13 + k18 m3 + m13 + k19
m2 + m12 + k20 m0 + m3 + m13 + k21 m0 + m1 + m14 + k22 m1 + m15 + k23

m6 + m8 + k24 m4 + m7 + m9 + k25 m4 + m5 + m10 + k26 m5 + m11 + k27

i
m4 + m10 + k28 m5 + m8 + m11 + k29 m6 + m8 + m9 + k30 m7 + m9 + k31

m∗0 + m14 + k16 m∗1 + m12 + m15 + k17 m∗2 + m12 + m13 + k18 m∗3 + m13 + k19
m∗2 + m12 + k20 m∗0 + m∗3 + m13 + k21 m∗0 + m∗1 + m14 + k22 m∗1 + m15 + k23

95
m∗6 + m8 + k24 m∗4 + m∗7 + m9 + k25 m∗4 + m∗5 + m10 + k26 m∗5 + m11 + k27
m∗4 + m10 + k28 m∗5 + m8 + m11 + k29 m∗6 + m8 + m9 + k30 m∗7 + m9 + k31
Ovo je xifrat, tj.
c0 c1 c2 c3 c8 c9 c10 c11 c∗0 c∗1 c∗2 c∗3 c∗8 c∗9 c∗10 c∗11
c4 c5 c6 c7 c12 c13 c14 c15 c∗4 c∗5 c∗6 c∗7 c∗12 c∗13 c∗14 c∗15

Sabiraem (po modulu dva) pretposledih blokova (sa m i k ) dobijamo i i

∗ ∗
nebitno
∗ ∗

nebitno
m +m m +m m +m m +m
0 0 1 1 2 2 3 3
∗ ∗ ∗ ∗
m +m m +m m +m m +m 4 4 5 5 6 6 7 7

xto je jednako zbiru (po modulu dva) posledih blokova (sa c ) i

∗ ∗
nebitno
∗ ∗

nebitno
c +c c +c c +c c +c
0 0 1 1 2 2 3 3
∗ ∗ ∗ ∗
c +c c +c c +c c +c 12 12 13 13 14 14 15 15

Dobija se da je c c c c + c c c c ∗ ∗ ∗ ∗
0 1 2 3
0 1 2 3
= (m0 + m14 , . . . , m3 + m13 ) + (m∗0 + m14 , . . . , m∗3 + m13 )
m0 m1 m2 m3 + m∗0 m∗1 m∗2 m∗3
.
= S(p0 p1 p2 p3 + k0 k1 k2 k3 ) + S(p∗0 p∗1 p∗2 p∗3 + k0 k1 k2 k3 )
Prema tome, ako je onda je
p8 . . . p15 = p∗8 . . . p∗15
(I).
S(p0 p1 p2 p3 + k0 k1 k2 k3 ) + S(p∗0 p∗1 p∗2 p∗3 + k0 k1 k2 k3 ) = c0 c1 c2 c3 + c∗0 c∗1 c∗2 c∗3 .
Ovde se sve zna izuzev k k k k . Primetimo da jednaqina ZAVISI od
p ...p = p ...p .
0 1 2 3
∗ ∗
8
Sliqno, c c c c + c c c c
15 8
12 13 14 15
15
∗ ∗ ∗ ∗
12 13 14 15
∗ ∗ ∗ ∗

= S(p p p p + k k k k ) + S(p p p p + k k k k ).
=m m m m +m m m m
4 5 6 7 4 5 6 7
∗ ∗ ∗ ∗

Prema tome, ako je p . . . p = p . . . p onda je


4 5 6 7 4 5 6 7 4 5 6 7
∗ ∗
4 5 6 7

S(p p p p +k k k k )+S(p p p p +k k k k ) = c c c c +c c c c . (II).


8 15 8 15
∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗

Ovde se sve zna izuzev k k k k .


4 5 6 7 4 5 6 7 4 5 6 7 4 5 6 7 12 13 14 15 12 13 14 15

Primer. Cica xifruje 4 5 6 7

p0 p15
ASCII N o = 0100 1110 0110 1111

i
CT = 0010 0010 0100 1101

p∗0 p∗15
ASCII to = 0111 0100 0110 1111
CT = 0000 1010 0001 0001

:
I S(0100 + k0 k1 k2 k3 ) + S(0111 + k0 k1 k2 k3 ) = 0010 + 0000 = 0010.

96
kandidat A B
k0 k1 k2 k3 +0100 +0111 S(A) S(B) S(A) + S(B)
0000 0100 0111 1101 0101 1000
0001 0101 0110 0001 1000 1001
0010 0110 0101 1000 0001 1001
0011 0111 0100 0101 1101 1000
0100 0000 0011 1001 1011 0010
0101 0001 0010 0100 1010 1110
0110 0010 0001 1010 0100 1110
0111 0011 0000 1011 1001 0010
1000 1100 1111 1100 0111 1011
1001 1101 1110 1110 1111 0001
1010 1110 1101 1111 1110 0001
1011 1111 1100 0111 1100 1011
1100 1000 1011 0110 0011 0101
1101 1001 1010 0010 0000 0010
1110 1010 1001 0000 0010 0010
1111 1011 1000 0011 0110 0101
Prema tome, k k k k ∈ {0100, 0111, 1101, 1110}. Primetimo da je skup kandidata
odreen drugom i treom kolonom. To su parovi sa zbirom (XOR) 0011.
0 1 2 3

Prema tome, ako je p p p p + p p p p = 0011, dobijaju se isti kandidati.


∗ ∗ ∗ ∗

Zbog toga pronalazimo drugi par za koji je p p p p + p p p p ̸= 0011,


0 1 2 3 0 1 2 3
∗ ∗ ∗ ∗

(0000). 0 1 2 3 0 1 2 3

Cica xifruje
p0 p15
ASCII M r = 0100 1101 0111 0010

i
CT = 1101 0101 1101 0000

p∗0 p∗15
ASCII or = 0110 1111 0111 0010
CT = 1100 0001 0100 1111

I: S(0100 + k k k k ) + S(0110 + k k k k ) = 1101 + 1100 = 0001. Dobijaju


se kandidati k k k k ∈ {1101, 1111}. Presek dva skupa je k k k k = 1101.
0 1 2 3 0 1 2 3

Koristei II i ova dva para OT/ST, Cica dobija da je k k k k = 1100.


0 1 2 3 0 1 2 3

Da bi se dobili k k k k i k k k k , potrebne su jox dve jednaqine


4 5 6 7

III i IV (koje treba odrediti za domai zadatak).


8 9 10 11 12 13 14 15

Sa dovo no rundi (> 3 za DES , > 1 za AES ) nemogue je pronai


jednaqine sa verovatnoom 1. Umesto toga, pronalaze se jednaqine sa maom
verovatnoom p. Tada se taqni biti k uqa pojav uju sa udelom p u skupovima
kandidata. Ostali se pojav uju sluqajno, a poxto ih ima mnogo (pravi DES
, AES ) oni e se pojav ivati mnogo ree.

97
23 Roendanski paradoks
Ako se u sobi nalazi vixe od 23 osobe, onda je verovatnoa da neke dve
od ih imaju roendan istog dana vea od 1/2. Uopxte, ako se k = α√n
objekata vadi sa ponav aem iz skupa veliqine n, onda je verovatnoa da
e svi izvuqeni objekti biti razliqiti

k−1
n−i ∏
k−1
i ∏
k−1 ∑k−1
e−i/n = e− i=1 i/n ≈ e−k /(2n) = e−α /2
2 2
= (1 − ) ≈
i=1
n i=1
n i=1

Dakle, verovatnoa da neka dva√ izvuqena √objekta budu ista je priblino


−α2 /2
. Ako se npr. izvlaqi n ln 4 ≈ 1.2 n objekata, onda je verovatnoa
ponav aa oko 1/2. U sluqaju osoba u prostoriji, da verovatnoa poklapaa
1−e

dva roendana bude 1/2 dovo no je da broj osoba bude vei od √365 ln 4 ≈ 23.
U toku sluqajnog lutaa po skupu od n elemenata, posle otprilike
1.2 n oqekuje se nailazak na ve ranije pregledani elemenat. Korixee

ove qienice zove se Polardov (Pollard) ρ-metod. Oqekivani broj koraka
pre povratka u neku vienu taqku je O(√n). Naredna slika ilustruje zaxto
se ovakvo sluqajno lutae zove ρ-metod (obratite pau na oblik).
* * ->* *
* / \ \ *
* / * --*
* * *
* / * * *
* * *
| * * *
| * * *
* * *
Start
Algoritam faktorizacije zasnovan na ovoj qienici bio je prvi algoritam
suxtinski bri od faktorizacije nizom probnih de ea. Taj algoritam je
jox uvek najbo i za brojeve sa 8 − 15 dekadnih cifara. Da bismo rastavili
n na qinioce, iteriramo funkciju kao xto je npr. f (x) = x + 1 (mod n)
(polazei od npr. x = 0), i tako dobijamo sluqajno lutae kroz Z . Ako je
2

n = pq , oqekujemo da emo se po modulu p vratiti nazad (na mesto gde smo


n

ve bili), a da se to nee istovremeno desiti i po modulu q.


Primer. Faktorizacija 1357. Koristimo preslikavae x + 1, odnosno
formiramo niz a = a + 1 (mod 1357), a = 0. Ponav ae je mogue
2

otkriti jednostavnim algoritmom koji koristi malo memorije i ne zahteva


2
m+1 m 0

pregledae prethodno dobijenih brojeva.


1) Izraqunaj a , a , a , nzd(a − a , n), zapamti a , a
2) Izraqunaj a , a , a , nzd(a − a , n), zapamti a , a , obrixi a , a
1 2 3 2 1 1 2

3) Izraqunaj a , a , a , nzd(a − a , n), zapamti a , a , obrixi a , a


2 3 4 4 2 2 4 1 2

4) Izraqunaj a , a , a , nzd(a − a , n), zapamti a , a , obrixi a , a


3
4
5
7
6
8
6
8
3
4
3
4
6
8
2
3
4
6

98
5) Izraqunaj a , a , a , nzd(a − a5 , n) , zapamti a , a , obrixi a , a ,
itd. 5 9 10 10 5 10 4 8

i 2i − 1 2i ai a2i−1 a2i nzd(a2i − ai , 1357)


1 1 2 1 1 → 2 1
?
2 3 4 2 5 → 26 1
?
3 5 6 5 677 → 1021 1
?
4 7 8 26 266 → 193 1
?
5 9 10 677 611 → 147 1
?
6 11 12 1021 1255 → 906 23
Prema tome, 23|1357 i 1357/23 = 59. Primetimo da je izraqunavae
i nzd jednostavno.
Zaxto je ovaj postupak uspexan? Pogledajmo xta se iza scene dexava
x2 + 1 (mod n)

po modulu 23 i 59.
ai mod 1357 ai mod 23 ai mod 59
a1 = 1 1 1
a2 = 2 2 2
a3 = 5 5 5
a4 = 26 3 26
a5 = 677 10 28
a6 = 1021 9 18
a7 = 266 13 30
a8 = 193 9 16
a9 = 611 13 21
a10 = 147 9 29
a11 = 1255 13 16
a12 = 906 9 21
Da li bi bilo efikasnije da se napravi spisak a , . . . , a , i da se u
svakom koraku izraqunava nzd sa svim prethodnim qlanovima niza? Ne. 1 8

Ako se ρ (povratak po modulu p na mesto na kome smo ve bili) desi posle
m koraka (u gorem primeru se to desilo za m = 8) onda je potrebno
1 + 2 + · · · + (m − 1) ≈ m /2 izraqunavaa nzd i veliki memorijski prostor.
U opisanom algoritmu ima samo 4m koraka.
2

Koliko treba qekati do√dexavaa prvog ρ? Ako je n = pq i p √< √n,


onda algoritam zahteva O( p) (za sluqajno lutae kroz F ) = O( √n) = 4

. Faktorizacija nizom probnih de ea ima sloenost = O( n) =


p
O( 41 log n)
e
eO( 21 log n)
, a algoritam sita u po u brojeva samo = e . O((log n)1/3 (log log n)2/3 )

99
Ista ideja moe se iskoristiti za rexavae problema diskretnog logaritma
za eliptiqke krive nad konaqnim po em. To je za sada najbo i poznati
algoritam za rexavae ECDLP. Neka je E : y = x + 17x + 1 nad F .
Taqka G = (0, 1) generixe E(F ). Pored toga, 103G = ⊘, pa se taqke
2 3
101

celim brojevima mnoe po modulu 103. Taqka Q = (5, 98) = nG za neko n; 101

potrebno je odrediti n. Neka x(taqka) oznaqava x-koordinatu taqke; tako


je npr. x(Q) = 5.
Posmatrajmo sluqajno lutae kroz E(F ) opisano na sledei naqin.
Neka je v = [0, 0] i P = ⊘. Neka je vektoru v = [a, b] pridruena taqka 101

P = a Q + b G, gde su a , b neki ostaci po modulu 103. Algoritam lutaa:


0 0
i
Ako je x(P ) ≤ 33 ili P = ⊘, onda P = Q + P , v = v + [1, 0].
i i i i

Ako je 33 < x(P ) ≤ 68, onda P = 2P , v = 2v .


i i i+1 i i+1 i

Ako je 68 < x(P ), onda P = G + P , v = v + [0, 1].


i i+1 i i+1 i

Ako je P = P , kraj. Tada je P = a Q + b G = a Q + b G = P .


i i+1 i i+1 i

Zbog toga je (a − a )Q = (b − b )G i Q = (b − b )(a − a ) G, gde je


2j j 2j 2j 2j j j
−1
j

(a − a ) izraqunato po modulu 103.


2j j j 2j j 2j 2j j
−1
2j j

i Pi [a, b]
0 [0, 0]
1 (5, 98) [1, 0]
2 (68, 60) [2, 0]
3 (63, 29) [2, 1]
4 (12, 32) [4, 2]
5 (8, 89) [5, 2]
6 (97, 77) [6, 2]
7 (62, 66) [6, 3]
8 (53, 81) [12, 6]
9 (97, 77) [24, 12]
10 (62, 66) [24, 13]
11 (53, 81) [48, 26]
12 (97, 77) [96, 52]

Primetimo da je P = P , pa je 6Q + 2G = 96Q + 52G. Zbog toga je −90Q =


50G i Q = (−90) 50G. Poxto je (−90) 50 ≡ 91 (mod 103), bie Q = 91G.
12 6
−1 −1

Naravno, mi ustvari izraqunavamo P , P , P i uporeujemo P , P . Zatim


izraqunavamo P , P , P i uporeujemo P , P . Zatim izraqunavamo P , P , 1 1 2 1 2

P i uporeujemo P , P ,....
2 3 4 2 4 3 5
6
Sliqna ideja moe se iskoristiti za rexavae FFDLP.
3 6

Primer. g = 2 generixe F . Neka je y = 86 = g . Odrediti x.


Potrebno je definisati sluqajno lutae kroz F . Neka je c = 1 i
x
101

v = [0, 0]. Vektoru v = [a , b ] odgovara c = y g = 86 2 . Primetimo da


101 0

su svi a , b definisani po modulu 100.


ai bi ai bi
0 i i i i

Ako je c ≤ 33, onda c = c y = 86c , v = v + [1, 0].


i i

Ako je 33 < c < 68, onda c = c , v = 3v (broj 3 se koristi jer je


i i+1 i i i+1 i

uzajamno prost sa 100, redom grupe).


3
i i+1 i i+1 i

Ako je 68 ≤ c , onda c = c g, v = v + [0, 1].


i i+1 i i+1 i

100
Lutae se prekida u trenutku kad bude ispuen uslov c = c . Tada
je c = y g = y g = c . Prema tome, y
a2j b2j aj bj
= g iy= a2j −aj
2j
bj −b2j
j

, gde se inverzija eksponenta vrxi po modulu 100. Rezultat


2j j
(bj −b2j )(a2j −aj )−1

lutaa:
g

i ci = 86ai 2bi [ai , bi ]


0 1 [0, 0]
1 86 [1, 0]
2 71 [1, 1]
3 41 [1, 2]
4 39 [3, 6]
5 32 [9, 18]
6 25 [10, 18]
7 29 [11, 18]
8 70 [12, 18]
9 39 [12, 19]
10 32 [36, 57]
Dakle, 32 = 86 2 = 86 2 i 86 = 2 . Sada je 18−57 ≡ 61 (mod 100),
36 57 9 18 27 18−57

pa zbog toga 86 = 2 i 86 = 2 . Da e je 61(27 ) ≡ 61(63) ≡ 43


61(27−1 ) −1

(mod 100) pa je 86 = 2 u F . Primetimo da ako komponente vektora


27 61

[a , b ] postanu ≥ 100, onda se zameuju svojim ostatkom po modulu 100.


43
101

Ako (a − a ) nije invertibilno po modulu 100, onda bismo pronaxli sva


i i

rexea jednaqine (a − a )x = b − b (mod 100).


2j j
2j j j 2j

24 Faktorizacija
Najoqigledniji naqin za razbijae RSA poqie faktorizacijom n = pq.
Kad govorimo o problemu faktorizacije, pretpostav amo da se trai bilo
koji netrivijalni faktor broja n, pa pretpostav amo da je n neparno. Tako
je 105 = 7 · 15 uspexna faktorizacija, bez bzira na to xto je 15 sloen
broj.
Najbo i poznati algoritam za faktorizaciju nekog RSA broja je sito
u po u brojeva. Faktorizacija se pojav uje i u drugim kriptografskim
kontekstima. U vezi sa Polig-Helmanovim algoritmom videemo da je vano
rastaviti na qinioce veliqinu grupe oblika F ili E(F ). Na taj naqin ∗

postajemo sigurniji da je problem diskretnog logaritma u tim grupama q q

teak. Za takve faktorizacije najqexe se koriste drugi algoritmi (ne


sito u po u brojeva). Zbog toga emo razmotriti i druge algoritme za
faktorizaciju (kao xto su upotreba verinih razlomaka i eliptiqke krive)
koji se koriste u tim drugim kriptografskim kontekstima.
Faktorizacija nizom de ea je proces de ea n svakim prostim brojem
maim od √n. To je vrlo neefikasno, ali je ipak najefikasniji postupak
za faktorizaciju brojeva do 15 cifara.
Veina algoritama za faktorizaciju zasniva se na sledeem. Zbog jednostavnosti
pretpostaviemo da je n = pq, gde su p i q neparni prosti brojevi. Pretpostavimo
101
da smo pronaxli brojeve x i y takve da je x ≡ y (mod n), ali x ̸≡ ±y
(mod n). Tada n|x − y , pa n|(x + y)(x − y), odnosno pq|(x + y)(x − y). Nadamo
2 2

se da je npr. p|(x+y) i q|(x−y). Ako je to ispueno, onda je nzd(x+y, n) = p


2 2

(raqunae nzd je efikasno) i q = n/p. Ako to ne vai, onda n = pq|x + y


ili n = pq|x − y, pa je x ≡ ±y (mod n), pa se mora pokuxati ponovo.
Primetimo da n ne mora da bude proizvod taqno dva prosta broja.
Opisana ideja radi i za komplikovanije n. U opxtem sluqaju je nzd(x−y, n)
neki delilac n.
Razmotriemo sada neke algoritme za nalaee x i y.
24.1 Fermaova faktorizacija n
Ovaj algoritam zasniva se na qienici da je za male brojeve verovatnije
da budu kvadrati, nego za velike brojeve. Beskorisno je pokuxavati redom
sa x = 1, 2, 3 . . . jer√je ostatak x (mod n) jednak x . Zbog toga mora da bude
x > n, odnosno x n. Mi hoemo da ostatak bude mali, pa biramo x tako
2 2

da bude samo malo vee od √n.


2

Najmai celi broj ≥ x oznaqava se sa ⌈x⌉. Tako√ je√ ⌈1.5⌉ = 2 i ⌈3⌉ = 3.


Najpre izraqunavamo ⌈√n⌉. Zatim √ √izraqunavamo ⌈ n⌉ − n. Ako to nije
2

celi broj, onda√izraqunavamo (⌈ n⌉ + 1) − n. Ako to nije celi broj, onda


2

izraqunavamo (⌈√n⌉ + √2) − n, itd. sve dok √rezultat ne bude celi broj.
Primer. n = 3229799, n ≈ 1797.16, pa√je ⌈ n⌉ = 1798. 1798 − n = 3005,
2

ali Z . 1799 − n = 6602, ali 6602 ∈ / Z . 1800 − n = 10201 i


2


10201 = 101. Prema tome, 1800 − n = 101 i 1800 − 101 = n pa je
2 2
√ 3005 /

(1800 + 101)(1800 − 101) = n = 1901 · 1699.


2 2 2 2

Fermaova faktorizacija radi dobro kad n nije mnogo vee od potpunog


kvadrata.
24.2 Baze faktora
Za broj n kaemo da je b-gladak ako su svi egovi prosti qinioci ≤ b. Tako
je npr. 5280 = 2 · 3 · 5 · 11 20-gladak broj. Neformalno, broj je gladak ako
se razlae u proizvod relativno malih prostih brojeva.
5

U veini savremenih algoritama za faktorizaciju (sa verinim razlomcima,


kvadratno sito ili sito u po u brojeva) ci je pronai x-ove takve da je x
(mod n) gladak broj. Kad se pronau takvi brojevi, pokuxava se sanalaeem
2

nekog ihovog proizvoda jednak potpunom kvadratu (mod n). Jedan naqin
da se to postigne je da sami ostaci budu mali. Dakle, brojevi x biraju
se tako da√ x bude blisko nekom umnoxku n, tj. x ≈ kn za neko k ∈ Z,
tj. x ≈ kn. Zatim se kreira baza faktora, koja se sastoji od prostih
2 2

brojeva ≤ b, izabrane granice glatkosti. Izbor optimalnog b zavisi od


komplikovanog objaxea iz teorije brojeva. Granica b raste sa n.
elimo da iskoristimo x ≈ kn bez obzira da li je x > kn ili x <
kn. Ako je x < kn, onda je x ≡ −1 · l (mod n), gde je l malo. Zbog toga i −1
2 2 2

uk uqujemo u naxu bazu faktora. Za svako x za koje je x ≈ kn izraqunava


2 2

se ostatak r = x (mod n). Ako je r ostatak blizak n, onda se umesto ega


2
2

102
koristi −1 · (n − r). Zatim se ostatak rastav a na qinioce, koristei bazu
faktora i niz de ea. Ako se ne uspe, pokuxava se sa drugim x. Nastav a
se dok se ne doe do toga da je proizvod nekog podskupa ostataka potpuni
kvadrat.
Jednostavan naqin da se iskoristi ova ideja je birati cele brojeve
najblie √kn. Broj takvih bliskih brojeva zavisi od n na komplikovani
naqin. Neka je dakle x neki celi broj blizak √kn.
√ Primer. n = 89893√ , koristimo b = 20 i qetiri najblia broja za svaki
kn. Imamo da je n ≈ 299.8.

−1 2
nije gladak
3 5 7 11 13 17 19
2992 ≡ −492
3002 ≡ 107 nije gladak
2982 ≡ −1089 −1 · 3 · 11
nije gladak
2 2
1 0 0 0 0 0 0 0 0
√301 ≡ 708
2

2n ≈ 424.01
4242 ≡ −10 −1 · 2 · 5
nije gladak
1 1 0 1 0 0 0 0 0
4252 ≡ 839
4232 ≡ −857 nije gladak
4262 ≡ 1690 = 2 · 5 · 132 0 1 0 1 0 0 0 0 0

Pronalaee nekog proizvoda ostataka jednak kvadratu ekvivalentno


je pronalaeu podskupa vektora sa desne strane kojima je zbir po modulu
2 nula vektor. Vidimo da je 298 · 424 · 426 ≡ (−1) · 3 · 11 · (−1) · 2 ·
5 · 2 · 5 · 13 (mod n). Dakle, (298 · 424 · 426) ≡ ((−1) · 2 · 3 · 5 · 11 · 13)
2 2 2 2 2

(mod n). Podsetimo se da ako je x ≡ y (mod n) i x ̸≡ ±y (mod n) onda je


2 2 2

nzd(x + y, n) netrivijalni faktor n. Sada izraqunavamo ostatak proizvoda


2 2

u zagradi: 298 · 424 · 426 ≡ 69938 (mod n) i (−1) · 2 · 3 · 5 · 11 · 13 ≡ 85603


(mod n). Primeujemo da je nzd(69938 + 85603, n) = 373 i n/373 = 241.
Ovaj primer nije bax reprezentativan, jer smo iskoristili svaki vektor
koji se pojavio. Mogli su biti dobijeni npr. vektori v = [1, 0, 0, 0, 0, 0, 0 . . .],
v = [1, 1, 0, 1, 0, 0, 0 . . .], v = [0, 0, 1, 0, 1, 0, 0 . . .], v = [1, 0, 0, 0, 0, 1, 0 . . .],
1

v = [0, 1, 0, 1, 0, 0, 0 . . .] (gde . . . oznaqava nule). Zatim bismo morali da


2 3 4

pronaemo podskup vektora kojima je zbir 0 po modulu 2. Ako sa M oznaqimo


5

matricu qije su kolone v , . . . , v , onda treba da izraqunamo nula prostor


matrice M po modulu 2. Bilo koji nenula vektor iz nula prostora daje
1 5

e enu linearnu kombinaciju vektora v . Nula prostor matrice M ima


bazu (1, 1, 0, 0, 1), pa je v + v + v = 0 po modulu 2.
1 2 5
i

24.3 Faktorizacija pomou verinih razlomaka


Ovaj algoritam bio je najbo i algoritam za faktorizaciju oko 1975. godine.
On je i da e najbri za cele brojeve umerene veliqine. Potrebno je da
x bude blisko umnoxku n. Neka je b/c neki parcijalni razlomak dobijen
polazei od vernog razvoja √n. Tada je b/c ≈ √n, pa je b /c ≈ √n, odnosno
2

b ≈ c n, tj. b je blisko umnoxku n, odnosno b (mod n) je mali broj.


2 2
2 2 2 2

103
Neka je n = 17873. Poqetak verinog razvoja √n je [133, 1, 2, 4, 2, 3, 1, 2, 1, 2, 3, 3, . . .].
Koristiemo bazu faktora {−1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29} pri qemu neemo
upisivati nule u tablicu.
−1 2 3 5 7 11 13 17 19 23 29
≡ −184 = −1 · 23 · 23
nije gladak
[133] = 133 1332 1 1 1
[133, 1] = 134 1342 ≡ 83 =
[133, 1, 2] = 401 ≡ −56 = −1 · 23 · 7
nije gladak
3 4012 1 1 1
[133, 1, 2, 4] = 1738
13 17382 ≡ 107 =
[133, . . . , 2] = 3877
29 38772 ≡ −64 = −1 · 26 1
[133, . . . , 3] = 13369
100 133692 ≡ 161 = 7 · 23 1 1

(133·401·13369)2 ≡ (−1·23 ·7·23)2 (mod n) . Sada je


133·401·13369 ≡ 1288
i , ali je
−1 · 23 · 7 · 23 ≡ 16585 1288 ≡ −16585 . To nije dobro. To znaqi da
i
nzd(16585 + 1288, n) = n nzd(16585 − 1288, n) = 1 , pa nismo dobili ni
jedan faktor. Nastav amo da e.
−1 2 3 5 7 11 13 17 19 23 29
17246
≡ −77 = −1 · 7 · 11
nije gladak
[133, . . . , 1] = 129 172462 1 1 1
[133, . . . , 2] = 47861
358 478612 ≡ 149 =
[133, . . . , 1] = 65107
487 651072 ≡ −88 = −1 · 23 · 11 1 1 1

. Sada je
(401 · 3877 · 17246 · 65107)2 ≡ ((−1)2 · 26 · 7 · 11)2 (mod n) 401 · 3877 ·
i
17246 · 65107 ≡ 7272 (−1)2 · 26 · 7 · 11 ≡ 4928. Dobija se 7272 − 4928 = 2344
i ,
nzd(2344, n) = 293 n/293 = 61 . Oba qinioca , su prosti.
293 61

24.4 Faktorizacija pomou eliptiqkih krivih


Ovaj metod (autor je H. W. Lenstra mlai) je qesto efikasan kada najmai
prost qinilac n ima izmeu 13 i 65 cifara, a sledei najmai prost
qinilac je mnogo vei. Zapoqiemo sa motivixuim primerom.
Primer. Iskoristimo eliptiqku krivu y = x + x + 1 da rastavimo
na qinioce 221. Taqka R = (0, 1) oqigledno pripada krivoj. Po modulu
2 3

221 moe se izraqunati 2R = (166, 137), 3R = (72, 169), 4R = (109, 97) i


5R = (169, 38).
Da se izraquna 6R = R + 5R mora se prvo odrediti nagib = 38−1 37

(mod 221). Prema tome, potrebno nam je 169 (mod 221). Pomou Euklidovog
169−0 169
−1

algoritma dobijamo da je nzd(221, 169) = 13. Prema tome, 13|221 i 221/13 =


17.

104
Xta se desilo iza scene?
mod 13 mod 17
R (0, 1) (0, 1)
2R (10, 7) (13, 1)
3R (7, 0) (4, 16)
4R (10, 6) (9, 12)
5R (0, 12) (16, 4)
6R ⊘ (10, 12)

Primetimo da je 18R = ⊘ (mod 17). Uspeli smo jer je 6R = ⊘ po modulu


13, a 6R ̸= ⊘ po modulu 17. Primetimo da je po modulu bilo kog prostog
broja neki umnoak R jednak ⊘. Kraj primera.
Zbog jednostavnosti razmatraemo faktorizaciju n = pq, iako metod
radi za proizvo ne cele brojeve. Izaberimo neku eliptiqku krivu E i
neku taqku R na oj po modulu n. Izaberimo zatim neki "jako sloen"
broj, kao xto je t! (veliqina t zavisi od n), nadajui se da je t!R = ⊘ po
modulu jednog prostog qinioca (npr. p), ali ne i drugog. Neka je k nagib koji
se pojav uje pri izraqunavau t!R. Tada je nzd(k, n) = p, odnosno dobili
smo qinilac n.
Zaxto t!? Postoje neki brojevi m za koje je mR = ⊘ (mod p). Ako m|t!
(xto je taqno za dovo no veliko t), onda je t! = lm, pa je t!R = lmR =
l(mR) = l⊘ = ⊘.
Do neuspeha moe da doe iz dva razloga. Najpre t!R ne mora da bude
⊘ ni po modulu p, ni po modulu q (kao 2!R u prethodnom primeru). Pored
toga, moe da se desi da je t!R jednako ⊘ i po modulu p i po modulu q, pa
je tada nzd(k, n) = n. U sluqaju neuspeha treba pokuxati sa novim E i R.
Sa veinom drugih algoritama za faktorizaciju takve mogunosti nisu
na raspolagau. Moe npr. se koristiti familija E : y = x + jx + 1 i
R = (0, 1) za razne j .
2 3

Primer. Neka je n = 670726081, E : y = x + 1 i R = (0, 1). Tada je


(100!)R = ⊘. Doxlo je dakle do neuspeha druge vrste (primetimo da je ovo
2 3

lox primer, jer je 3R = ⊘). Iskoristimo zatim E : y = x + x + 1 i


isto R. Tada je (100!)R = (260043248, 593016337), pa je doxlo do neuspeha
2 3

prve vrste. Iskoristimo sada E : y = x + 2x + 1 i isto R. Prilikom


izraqunavaa (100!)R, doxlo je do grexke, jer broj 54323 nije mogao biti
2 3

invertovan po modulu n. Upravo ovo je znak uspeha, jer je nzd(54323, n) =


54323 i n/54323 = 12347.

24.5 Po e brojeva
Razmotriemo najpre po a brojeva da bismo mogli da razumemo sito u po u
brojeva.
Neka Z oznaqava skup celih brojeva, Q skup racionalnih brojeva (razlomke
kojima je brojilac celi broj, a imenilac prirodni broj), a R skup realnih
brojeva. Neka je i = √−1; i = −1, i = −i, i = 1. Skup C = {a + bi) | a, b ∈
2 3 4

105
R} je skup kompleksnih brojeva. Na primer, broj π + ei je kompleksan. Neka
je f (x) = a x = a x + · · · + a x + a , pri qemu je a ∈ C, 0 ≤ i ≤ n.
Tada se moe napisati f (x) = a (x − α )(x − α ) · · · (x − α ). Pri tome je
n n−1
n n−1 1 0 i

skup {α | 1 ≤ i ≤ n} jednoznaqno odreen. Brojevi α su koreni f . Broj α


n 1 2 n

je koren f ako i samo ako je f (α) = 0.


i i

Skup Q(α) je po e brojeva. Sastoji se od svih brojeva dobijenih kombinovaem


racionalnih brojeva i α korixeem operacija +, −, ×, /.
Primer. Neka je −



2). Neka je α = 2. Tada

je Q( 2) = {a + b 2 | a, b ∈ √Q}. Skup√je oqigledno zatvoren za√sabirae √ i


2
√ √ f (x) = x 2 = (x + 2)(x

oduzimae. Mnoee: ∈ 2).


De ee (a + b√2)/(c + d√2):
(a+b 2)(c+d 2) = (ac +2bd)+ (ad +bc) 2 Q(

√ √ √
a+b 2 (a + b 2)(c − d 2) ac − 2bd bc − ad √ √
√ = √ √ = 2 + 2 2 ∈ Q( 2).
c+d 2 (c + d 2)(c − d 2) c − 2d 2 c − 2d 2

Primer. g(x) = x − 2, α = 2 . Q(α) = {a + b · 2 + c · 2 | a, b, c ∈ Q}.


Ovaj skup je takoe zatvoren za sabirae, oduzimae, mnoee, i de ee
3 1/3 1/3 2/3

(sem nulom). De ee je malo komplikovanije.


Svaki element korenskog po a je koren nekog polinoma sa celobrojnim
koeficijentima (a ∈ Z), koji su kao skup uzajamno prosti, pri qemu je
najstariji koeficijent pozitivan (a > 0). Polinom najmaeg stepena koji
i

zadovo ava ovaj uslov je minimalni polinom broja α.


n

Primer. Odrediti minimalni polinom broja α = 2 + 1. Moemo da


iskoristimo definiciju α: (α − 1) = 2, α − 3α + 3α − 1 = 2, α − 3α +
1/3

3α − 3 = 0. Prema tome, minimalni polinom α je f (x) = x − 3x + 3x − 3.


3 3 2 3 2

Jasno je da je f (α) = 0, tj. α je koren f . Pored toga, α nije koren ni jednog


3 2

kvadratnog ili linearnog polinoma sa celobrojnim koeficijentima.


Ako je najstariji koeficijent minimalnog polinoma α jednak 1, onda
je α algebarski celi broj. Ovo je u skladu sa uobiqajenom definicijom za
racionalne brojeve. Minimalni polinom broja 5 je 1x − 5, a minimalni
polinom broja 3/4 je 4x − 3.
Ako u po u brojeva K vai α = βγ, i sva ova tri broja su algebarski
celi brojevi, onda kaemo da β|α. U po u brojeva K se za algebarski celi
broj α kae da je prost ako iz α|βγ sledi α|β ili α|γ, gde su β, γ algebarski
celi brojevi u K . Na alost, nemaju sva po a brojeva "dovo no" prostih
brojeva. To oteava implementaciju sita u po u brojeva.
Na primer, po e Q(√−5) je jedno √od problematiqnih po a brojeva.
Celi brojevi u emu√ su oblika√ a + b −5, a, b ∈ Z. U tom po u vae
razlagaa 6 = (1 + −5)(1 − −5) = 2 · 3. Broj 2 je nesvod iv u skupu
celih algebarskih brojeva: jedini naqin da se on rastavi√na qinioce √ je
2 = 2 · 1 = (−2) · . Meutim, nije prost. Zaista, −5)(1 − −5),
ali 2 ̸ |1 + √−5 i 2 ̸ |1 − √−5. Qienica da na√ primer 2 ̸ |1 + √−5 sledi
(−1) 2 2|(1 +

iz toga xto je minimalni polinom broja (1 + −5)/2 jednak 2x − 2x + 3,


a taj broj nije algebarski celi broj. Primetimo takoe da u ovom po u
2

faktorizacija nije jedinstvena.


106
U skupu Z faktorizacija je jedinstvena (osnovna teorema aritmetike).
S druge strane, 14 = 7 · 2 = (−7) · (−2). Kaemo da su 7 i −7 spregnuti
(pridrueni) prosti brojevi, jer je ihov koliqnik jedinica (u ovom sluqaju
−1, invertibilni algebarski celi broj).
U nastavku emo zbog jednostavnosti raditi sa po em brojeva Q(i) =
{a+bi | a, b ∈ Q}. Algebarski celi brojevi u Q(i) su Q(i) = {a+bi | a, b ∈ Z}.
Ovaj skup oznaqava se obiqno sa Z(i). Ovo je po e brojeva koje se dobro
ponaxa. egove jedinice su {±1, ±i}. Ako je p ∈ Z prost broj i p ≡ 3
(mod 4), onda je p prost i u Z(i). Ako je pak p ≡ 1 (mod 4), onda se p moe
>0

predstaviti u obliku p = a + b , a, b ∈ Z, pa je p = (a + bi)(a − bi), pri qemu


su a+bi, a−bi nepridrueni prosti brojevi. Drugim reqima, p se razlae u
2 2

proizvod dva "maa" prosta broja. Na primer, 17 = 4 + 1 = (4 + i)(4 − i),


i takoe 17 = (1 + 4i)(1 − 4i). Ovo je u redu, jer je (1 − 4i)i = 4 + i, a i
2 2

je jedinica, pa su 1 − 4i i 4 + i pridrueni. Za ovu qienicu moe se


upotrebiti oznaka 1 − 4i ∼ 4 + i. Broj i je jedinica jer je egov minimalni
polinom x + 1, pa je algebarski celi broj, i i · i = 1, pa i | 1. Ustvari,
1 − 4i ∼ 4 + i ∼ −1 + 4i ∼ −4 − i i 1 + 4i ∼ 4 − i ∼ −1 − 4i ∼ −4 + i (jer su ±1,
2 3

±i jedinice). S druge strane, ni jedan broj iz prve grupe nije pridruen


ni jednom iz druge grupe. Izmeu pridruenih brojeva uvek emo birati
predstavnika oblika a ± bi za koga vai a ≥ b ≥ 0.
Broj 2 nije prost, jer je 2 = (1 + i)(1 − i), pri qemu je (1 − i)i = 1 + i,
odnosno 1 − i ∼ 1 + i. Dakle, 2 je de ivo prostim brojem 1 + i.
Pogledajmo neke proste brojeve u Z i ihove faktorizacije u Z[i]: 2 =
(1 + i) i , 3 = 3, 5 = (2 + i)(2 − i), 7 = 7, 11 = 11, 13 = (3 + 2i)(3 − 2i), 17 =
(4 + i)(4 − i), 19 = 19, 23 = 23, 29 = (5 + 2i)(5 − 2i), 31 = 31, 37 = (6 + i)(6 − i).
2 3

Preslikavae N : Q(i) → Q definisano sa N (a + bi) = a + b zove se


norma. Na primer, N (2 + i) = 5, N (7) = 49. Ako je a + bi ∈ Z[i], p je prost u
2 2

Z i p|N (a + bi) (tj. p|a + b ) onda neki prosti delilac p deli a + bi. Ovo
olakxava faktorizaciju algebarskih celih brojeva u Z[i].
2 2

Faktorizacija 5 + i. Poxto je N (5 + i) = 26, svi faktori su u skupu


{i, 1 + i, 3 + 2i, 3 − 2i}. Da e, 3 + 2i|5 + i ako je (5 + i)/(3 + 2i) celi broj.
( )
5+i 3 − 2i 17 −7
= + i
3 + 2i 3 − 2i 13 13
pa 3 + 2i ̸ |5 + i.
Faktorizacija 7+i. Najpre je N (7+i) = 50 = 2·5 . Da e, (7+i)/(2+i) =
3 − i i N (3 − i) = 10; (3 − i)/(2 + i) = (1 − i) i N (1 − i) = 2; (1 − i)/(1 + i) =
2

−i = i , pa je 7 + i = i (1 + i)(2 + i) .
Sledea qienica je takoe korisna za faktorizaciju u Z(i). Ako je
3 3 2

a + bi ∈ Z(i) i nzd(a, b) = 1 i N (a + bi) = p · · · p gde su p pozitivni


α1

prosti brojevi, onda p ̸≡ 3 (mod 4) i a + bi = i π · · · π , gde je π neki


αr
1 r i
α1

od prostih delilaca p . Pri tome se u ovom izrazu nikad ne pojav uju


α0 αr
i 1 r i

istovremeno dva prosta qinioca p .


i

U posledem primeru N (7+i) = 2 5 , pa znamo da je 7+i = i (1+i) (2±


i

i) . Dovo no je da odredimo α i znak u ±. Drugi primer. N (17−6i) = 325 =


1 2 α0 1

5 · 13, pa je 7 − 6i = i (2 ± i) (3 ± 2i) , pri qemu se ± ne moraju poklapati.


2
0
2 α0 2 2

107
Ako su α i β elementi Q(i), onda je N (αβ) = N (α)N (β).
24.6 Sito u po u brojeva
Sito u po u brojeva (Pollard, Adleman, H. Lenstra) je trenutno najbo i
poznati algoritam za faktorizaciju brojeva n > 10 , pri qemu je najmai
prost qinilac n bar 10 . RSA brojevi su ovog tipa. Broj RSA {193 (koji
130

ima 193 cifre) rastav en je na qinioce primenom √ ovog algoritma.


65

Najpre se bira stepen (on zavisi od , ≈ ln n/ ln ln(n)). Neka je m =


⌊ n⌉; n se razlae u sistemu sa osnovom m. Dakle, n = m + a m
√ d n d

· · · + a , pri qemu je 0 ≤ a < m. Neka je f (x) = x + a x + ··· + a .


d d−1
d
+ d−1

Neka je α koren f . Radi se u po u Q(α).


d d−1
0 i d−1 0

Neka je potrebno rastaviti√na qinioce broj 2501. Poxto je √ln n/ ln ln(n) ≈


1.95), neka je d = 2. Poxto je ⌊ n⌉ = 50 i 2501 = 50 + 1, bie f (x) = x + 1;
koren f je i. Primetimo da 50 deluje kao i u Z/2501Z jer je 50 ≡ −1
d 2 2

(mod 2501). Definixemo preslikavaa h : Z[i] → Z, h(a + bi) = a + b50,


2

i ĥ : Z[i] → Z , ĥ(a + bi) = a + b50 (mod 2501). Preslikavae ĥ ima


osobine ĥ(α + β) = ĥ(α) + ĥ(β) i ĥ(αβ) = ĥ(α)ĥ(β). Preslikavae h ima
2501

prvu, ali ne i drugu od ovih osobina.


Sledei korak je traee brojeva oblika α = a+bi, a, b ∈ Z, a ≥ 0, b ̸= 0,
nzd(a, b) = 1, pri qemu je a + bi gladak u Z[i], a h(a + bi) gladak u Z. Ovo
je kao traee igle u plastu sena, zbog qega je faktorizacija jox uvek
texka. Potrebno je nai α , ...,α , takve da je α α . . . α = β u Z[i] i 2

h(α )h(α ) . . . h(α ) = t u Z. Tada je h(β) = h(β)h(β) ≡ ĥ(β)ĥ(β) ≡ ĥ(β ) ≡


1 r 1 2 r
2 2 2

ĥ(α α . . . α ) = ĥ(α ) . . . ĥ(α ) = t . Posmatrajmo ostatke celih brojeva


1 2 r

h(β) i t po modulu n. Iz h(β) ≡ t (mod n) ako je h(β) ̸≡ ±t (mod n),


2
1 2 r 1 r

sledi da je nzd(h(β) + t, n) netrivijalni qinilac n.


2 2

Rastavimo sada 2501 pomou sita u po u brojeva. Koristiemo bazu


faktora i, 1+i, 2±i, 3±2i, 4±i, 5±2i za algebarske cele brojeve. Ovi brojevi
dele cele brojeve 1, 2, 5, 13, 17, 29. Za cele brojeve koristiemo bazu faktora
−1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29. Funkcija h definisana je sa h(a + bi) =

108
a + b · 50.
α faktorizacija α h(α) faktorizacija h(α)
i =i 50 = 2 · 52
1+i =1+i 51 = 3 · 17
2+i =2+i 52 = 22 · 13 ∗
4+i =4+i 54 = 2 · 33 ∗
7 + i = i3 (1 + i)(2 + i)2 57 = 3 · 19 ∗
1−i = i3 (1 + i) −49 = −1 · 72 ∗
2−i =2−i −48 = −1 · 24 · 3
4−i =4−i −46 = −1 · 2 · 23 ∗
5 − i = i3 (3 + 2i)(1 + i) −45 = −1 · 32 · 5
8 − i = (3 − 2i)(2 + i) −42 = −1 · 2 · 3 · 7
5 + 2i = 5 + 2i 105 =3·5·7
1 − 2i = i3 (2 + i) −99 = −1 · 32 · 11 ∗
9 − 2i = (4 + i)(2 − i) −91 = −1 · 7 · 13
5 − 2i = 5 − 2i −95 = −1 · 5 · 19
5 − 3i = i3 (1 + i)(4 + i) −145 = −1 · 5 · 29
3 + 4i = (2 + i)2 203 = 7 · 29−
2 + 5i = i(5 − 2i) 252 = 22 · 32 · 7
3 + 5i = (4 + i)(1 + i) 253 = 11 · 23 ∗
3 − 5i = i3 (1 + i)(4 − i) −247 = −1 · 13 · 19 ∗

Ovakve vrednosti α smextaju se kao vektori po modulu dva. Tako na primer


posledoj od ih odgovara vektor
3 − 5i ∼ (1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0)
xto odgovara qiniocima redom
(i, 1+i, 2+i, 2−i, 3+2i, 3−2i, 4+i, 4−i, 5+2i, 5−2i, −1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29).

Rexavaem sistema linearnih jednaqina odreuju se obeavajue kombinacije


qinilaca. U ovom primeru, ako se saberu svi vektori obeleeni zvezdicom,
dobija se nula vektor. Dakle, mnoeem odgovarajuih α dobija se kvadrat
u skupu algebarskih celih, a mnoeem odgovarajuih h(α) dobija se kvadrat
celog broja. Proizvod zvezdicama oznaqenih algebarskih celih je i (1 +
i) (2 + i) (4 + i) (4 − i) a proizvod odgovarajuih celih brojeva je (−1) ·
12
4 4 2 2 4

2 · 3 · 7 · 11 · 13 · 19 · 23 .
Neka je
4 6 2 2 2 2 2

β = i6 (1 + i)2 (2 + i)2 (4 + i)(4 − i) = 136 − 102i.

Dakle, h(β) = 136 − 102 · 50 = −4964 ≡ 38 (mod 2501).


Neka je
t = (−1)2 · 22 · 33 · 7 · 11 · 13 · 19 · 23 = 47243096 ≡ 1807 (mod 2501).

109
Prema tome 38 ≡ 1444 ≡ 1807 (mod 2501)). Iz nzd(1807 − 38, 2501) = 61 i
2501/61 = 41 sledi 2501 = 61 · 41.
2 2

Req sito odnosi se na postupak biraa samo takvih α koji imaju veu
verovatnou da budu glatki, a da pri tome i h(α) bude gladak. Na primer,
broj n, 1 ≤ n ≤ 1000, de iv sa 36 verovatnije e biti gladak od proizvo nog
broja iz tog intervala. Mogu se odrediti uslovi koje ostaci a i b po modulu
36 treba da zadovo avaju da bi se garantovalo da h(a + bi) bude umnoak
36.

25 Rexavae problema diskretnog logaritma


u F∗q
Razmotriemo dva metoda za rexavae FFDLP. Prvi je metod Poliga-
Helmana, koji je efikasan ako je veliqina F gladak broj. Metod sliqan

ovom moe se primeniti za rexavae ECDLP. Drugi metod je metod izraqunavaa


q

indeksa, za koji se ne zna varijanta koja bi rexavala ECDLP. Metodi se


zasnivaju na kineskoj teoremi o ostacima.
25.1 Digresija: upotreba kineske teoreme o ostacima
za dexifrovae RSA
Neka je n = pq. Pretpostavimo da je M ≡ C (mod n). Tada je dexifrovae
izraqunavae C ≡ M (mod n), za xta je potrebno vreme O(log (n)). Neka
e
3

je M ≡ M (mod p), M ≡ M (mod q), C ≡ C (mod p), C ≡ C (mod q),


d

p − 1), d ≡ d (mod q − 1). Svi brojevi M , M , C , C , d , d


p q p q
d ≡ d (mod √
su mai od 2 n. Brojevi d i d mogu se unapred izraqunati. Izraqunavae
p q p q p q p q

ostataka C i C ima sloenost O(log (n )), xto nije mnogo. Izraqunavaa


p q
2 1/2

≡ M (mod p) i C ≡ M (mod q) imaju sloenost O(log (n ).


p q
dp dq

Prema tome, svako od ovih izraqunavaa uzima 1/8 vremena potrebnog za


3 1/2
Cp p q q

izraqunavae C (mod n). Odreivae M polazei od M (mod p) i M


(mod q) pomou kineske teoreme o ostacima zahteva vreme O(log (n )), ali
d
p q
3 1/2

je sporije od izraqunavaa C ≡ M (mod p). U praksi, dva ponov ena


dp

kvadriraa po modulima p i q i upotreba kineske teoreme o ostacima traju


p p

oko dva puta mae od izraqunavaa C ≡ M (mod n).d

25.2 Polig-Helmanov algoritam


Ovaj algoritam za rexavae problema diskretnog logaritma u F , gde je q ∗

prost broj ili stepen prostog broja, efikasan je samo ako je broj q − 1 (red q

multiplikativne grupe po a) gladak. Zato se u sistemima koji koriste


problem diskretnog logaritma zahteva da q bude izabrano tako da q − 1
ima bar jedan veliki prost qinilac. Najpre e biti izloen algoritam,
pa primer rada algoritma i objaxee zaxto on radi.

110
Neka je g generator F . Za dato y ∈ F potrebno je rexiti g = y po x.
∗ ∗

Neka je q − 1 = p · · · p , gde su p prosti brojevi. Za svaki od brojeva p


x
q q
α1

rexava se jednaqina z = 1 (pri qemu je z ̸= 1) u F . Takva rexea zovu


αr
1 r i i

se primitivni p -ti koreni iz jedinice i oznaqavaju se sa ζ . Poxto


pi
q

g generixe F , vidimo da je ζ = g jedan od primitivnih p -tih


i pi

korena iz jedinice. Za svaki broj p unapred se izraqunavaju sva rexea


(q−1)/pi
q pi i

jednaqine z = 1. To su ζ , ζ , ..., ζ . Ove vrednosti se pamte zajedno i


pi −1

sa odgovarajuim eksponentima ζ .
pi 0 1
pi pi pi

Podsetimo se da se u F sa eksponentima raquna po modulu q − 1. Zato,



pi

kada se odrede ostaci x (mod p ), x se moe odrediti pomou kineske


q
αi

teoreme o ostacima. Dakle, ostaje da se odredi x (mod p ) (zbog jednostavnosti


i

su ispuxteni indeksi). Pretpostavimo da smo ostatak x po modulu p


α

napisali u sistemu sa osnovom p. To jox uvek ne znamo da uradimo, ali


α

razvoj po stepenima p postoji: x ≡ x + x p + x p + · · · x p (mod p ),


0 ≤ x < p. Prelazimo na odreivae koeficijenata x .
2 α−1 α
0 1 2 α−1

Izraqunavamo y
i
(mod q). Taj broj je na spisku stepenova ζ . Na
(q−1)/p
i
i

osnovu jednakosti y ≡ ζ (mod q) dobijamo vrednost x .


p
(q−1)/p x0

Neka je y ≡ y/(g ) (mod q). Odredivxi y ≡ ζ (mod q) dobijamo


p 0
(q−1)/p2

x .
x0 x1
1 1 p

Neka je y ≡ y/(g ). Odredivxi y ≡ ζ dobijamo x .


1
x0 +x1 p (q−1)/p3 x2

Neka je y ≡ y/(g ). Odredivxi y ≡ ζ dobijamo x ,


2 2 p 2
x0 +x1 p+x2 p2 (q−1)/p4

itd.
x3
3 3 p 3

Primer. Neka je q = 401, g = 3 i y = 304. Potrebno je rexiti 3 = 304


(mod 401). Razlagae q − 1 je q − 1 = 2 · 5 . Najpre odreujemo x (mod 16).
x

Poqiemo izraqunavaem g = ζ = ζ = 400 i ζ = ζ = 1 (raquna se


4 2

po modulu 401). U razlagau x = x + x 2 + x 4 + x 8 (mod 16) potrebno je


400/2 1 2 0
2 2 2 2

odrediti koeficijente x . i
0 1 2 3

y (q−1)/p = 304400/2 ≡ 400 (mod 401) = ζ21 pa je x = 1.


pa je x
0
(q−1)/p2 2
y
= 304/3 ≡ 235 1
(mod 401) = y1 . y1 = 235400/(2 ) ≡ 400 = ζ21 = 1.
pa je x
g x0 1
3 3
(q−1)/p
y
= 304/(31+1·2 ) ≡ 338 = y2 . y2 = 338400/(2 ) ≡ 1 = ζ20 = 0.
pa je x
g x0 +x1 p 2
4 4
(q−1)/p
y
2 = 304/(31+1·2+0·4 ) ≡ 338 = y3 . y3 = 338400/(2 ) ≡ 400 = ζ21 3 = 1.
g x0 +x1 p+x2 p

Prelazimo na odreivae x (mod 25). Najpre izraqunavamo g = ζ =


72, ζ = 372, ζ = 318, ζ = 39, i ζ = ζ = 1. Treba odrediti koeficijente
400/5
5

u razlagau x = x + x 5 (mod 25).


2 3 4 5 0
5 5 5 5 5
0 1

y = 304 ≡ 372 (mod 401) = ζ


(q−1)/p
pa je x = 2.
400/5 2

pa je x = 3.
5 0
(q−1)/p2 2
y
g x0 = 304/3 ≡ 212 = y .
2
y 1 = 212 ≡ 318 = ζ
1
400/(5 ) 3
5 1

Prema tome x ≡ 2 + 3 · 5 = 17 (mod 25). Iz x ≡ 11 (mod 16) i x ≡ 17


(mod 25) na osnovu kineske teoreme o ostacima sledi x = 267. Dakle 3
304 (mod 401).
267
=

Zaxto ovo radi? Razmotrimo jedan jednostavniji primer. Neka je q = 17,


g = 3. Tada je q − 1 = 16 = 2 . 3 = 16 = ζ i 3 = 1 = ζ . 4 1·8 1
2
0·8 0
2

111
Primetimo da je m ≡ 1 (mod 17) za svako 1 ≤ m ≤ 16. U jednakosti
3 ≡ 7 (mod 17) pretpostavimo da je 11 nepoznato. Dakle 3
16

≡7
(mod 17).
11 1+1·2+0·4+1·8

znamo isto, ali ne


znamo eksponent
7, 78 ≡ 16 = (38 )1 31+1·2+0·4+1·8 , 31·8+16n = 31·8 (316 )n = (38 )1
7
(
7 4
)
31 , = 16 = (38 )1 31·2+0·4+1·8 , 31·8+16n = (38 )1
7
( 31
7
)2 8 0
31+1·2 , 31+1·2 ) = 1 = (3 ) 30·4+1·8 , 30·8+16n = (38 )0
7
( 7 1
31+1·2+0·4 , 31+1·2+0·4 = 16 = (38 )1 31·8 = (38 )1

25.3 Algoritam za izraqunavae indeksa


Algoritam za izraqunavae indeksa je metod za rexavae problema diskretnog
logaritma u po ima tipa F , gde je q prost broj ili stepen prostog broja.
Ako je p prost broj i p ≈ 2 , i koristi se algoritam za izraqunavae
q

indeksa, onda je lakxe rexiti problem diskretnog logaritma u F nego u


r

F . Meutim, lakxe je implementirati xifarske sisteme nad F , pa rad


2r

sa ovakvim po ima ostaje popularan. Zbog toga emo demonstrirati ovaj


p 2r

algoritam nad takvim po ima.


Podsetimo se da je F [x]/(x + x + 1) = {a + a x + a x | a ∈ F }. Za ovo
po e koristimo oznaku F . U ovom po u je 2 = 0 i x + x + 1 = 0, odnosno
3
2 0 1 2 2 i 2

x = −x − 1 = x + 1. F je F bez 0. Skup F ima 8 − 1 = 7 elemenata i oni


3
8
∗ ∗

su generisani elementom x. Tako je x = 1, x = x , x = x + 1, x = x + x,


3
8 8 8

x = x + x + 1, x = x + 1 i x = 1. Primetimo da je x = x · x = x , jer
1 2 2 3 4 2

se sa eksponentima raquna po modulu 7 (xto je broj elemenata u F ).


5 2 6 2 7 12 7 5 5

Podsetimo se, log m = a znaqi b = m, pa je log (x + x + 1) = 5 jer je 8

x = x + x + 1. Osnovu x logaritma obiqno neemo pisati. Logaritmi daju


a 2
b x

eksponente, pa logaritmi rade po modulu 7. Primetimo da iz (x + 1)(x +


5 2

1) = x sledi log(x + 1)(x + 1) = log(x + 1) + log(x + 1) = 6 + 3 = 9, dok je


2

log(x ) = 2; ovo meutim nije kontradikcija, jer je 9 ≡ 2 (mod 7).


2 2 2

Razmotrimo opxti sluqaj. Neka je f (x) nesvod iv (nad F ) polinom


2

stepena d. Tada je F = F [x]/(f (x)), gde je q = 2 . Pretpostavimo da je g 2

generator F . Ako je g = y onda kaemo da je log y = n, odnosno log y = n.


d
q 2

Vae identiteti log(uv) ≡ log(u) + log(v) (mod q − 1) i log(u ) ≡ r log(u)


n
q g

(mod q − 1).
r

Formulacija problema diskretnog logaritma u F je sledea. Neka je


g = y . Ako je dato g i y , odrediti ostatak n (mod q − 1), odnosno odrediti
q

n = log y . Primetimo da je log g = 1.


n

Pripremni korak za algoritam izraqunavaa indeksa je izbor broja m,


g g

1 < m < d (kako se on bira | komplikovano objaxee se zasniva na


teoriji brojeva i statistici; za d = 127 bira se m = 17).
Korak 1. Neka je h , . . . , h skup nesvod ivih polinoma u F [x] stepena
≤ m. Odrediti logaritme svakog elementa {h }. U tom ci u izraqunati
1 r 2

stepene g u nadi da je g = h h · · · · · h (neki od eksponenata α mogu da


α1 α2
i

budu 0). Drugim reqima, elimo da g bude m-gladak. Logaritmovaem se


t t αr
1 2 r i
t

112
dobija t = α log(h ) + · · · + α log(h ). To je sistem linearnih jednaqina
po log(h ) (to su jedine nepoznate). Odrediti vixe ovakvih linearnih
1 1 r r

jednaqina sve dotle dok ne bude mogue odrediti sve vrednosti log(h ).
i

Kad se to zavrxi, znaju se svi logaritmi a = log(h ). i

Korak 2. Izraqunati yg za razne vrednosti t sve dok se ne dobije yg = i i

h ·· · ··h . Tada je log y+t log g = β log h +· · ·+β log h , odnosno log y+t =
t t
β1

β a + · · · + β a . Ovde je nepoznato samo log y . Kada se radi u konaqnim


βr
1 r 1 1 r r

po ima qesto se umesto log koristi oznaka ind.


1 1 r r

Primer. Neka je f (x) = x + x + x + x + 1. Ovaj polinom je nesvod iv


po modulu 2 Raqunamo u po u F [x]/(f (x)) = F , gde je q = 2 . Elemenat
11 4 2

g = x je generator F . Biramo m = 4. elimo da reximo g = y =


11
2 q

x + x + x + x + x + x + 1 po n, odnosno da odredimo log(y). Prvi korak


n
q

nema nikakve veze sa y. Neka je


9 8 6 5 3 2

1 = log(x) a = log(x + 1) c = log(x2 + x + 1) d = log(x3 + x + 1)


e = log(x3 + x2 + 1) h = log(x4 + x + 1) j = log(x4 + x3 + 1) k = log(x4 + x3 + x2 + x + 1).
Izraqunavajui razne stepenove g dobijamo t

g 11 = (x + 1)(x3 + x2 + 1) 11 = a + e (mod 2047 = q − 1)


g 41 = (x3 + x2 + 1)(x3 + x + 1)2 41 = e + 2d
g 56 = (x2 + x + 1)(x3 + x + 1)(x3 + x2 + 1) 56 = c + d + e
g 59 = (x + 1)(x4 + x3 + x2 + x + 1)2 59 = a + 2k
g 71 = (x3 + x2 + 1)(x2 + x + 1)2 71 = e + 2c
Primetimo da iako imamo qetiri jednaqine po a, c, d, e (prva, druga,
trea i peta), peta jednaqina je jednaka dva puta pomnoenoj treoj od
koje je oduzeta druga, pa je suvixna. Zbog toga nastav amo sa traeem
jednaqina. 83 3 2
g = (x + x + 1)(x + 1) , 83 = d + 2a.
Sada su prva, druga, trea i najnovija qetiri nezavisne jednaqine (po
modulu 2047) sa qetiri nepoznate. Drugim reqima, 4 × 4 matrica sistema
je invertibilna po modulu 2047. Rexavaem sistema dobijamo a = 846,
c = 453, d = 438, e = 1212. Zatim se moe odrediti k : k = (59 − a)/2
(mod q − 1) = 630. Zatim odreujemo h i j . Traimo samo jednaqine u koje
ulaze ove dve nepoznate
g106
= (x + 1)(x + x + 1)(x + x + x + x + 1), pa je 106 = a + j + k i j = 677.
4 3 4 3 2

g126
= (x +x+1)(x +x +x +x+1)(x+1)2 pa je 126 = h+k+2a i h = 1898.
4 4 3 2

Dakle a = 846, c = 453, d = 438, e = 1212, h = 1898, j = 677, k = 630.


Sada prelazimo na drugi korak. Izraqunavamo yg za razne vrednosti t.
Pronalazimo da je yg = (x +x +x +x+1) . Dakle log(y)+19 log(g) = 2k.
t

Poxto je log(g) = log(x) = 1, dobija se log(y) = 2k − 19 ≡ 1241 (mod 2047),


19 4 3 2 2

odnosno x = y.
Sito u po u brojeva moe se kombinovati sa algoritmom za izraqunavae
1241

indeksa. Tako se dolazi do ocene da je vremenska sloenost rexavaa


FFDLP u suxtini ista kao i sloenost faktorizacije.
113
26 Zadaci
1. Dokazati da 6|m(m + 5), 30|m − m, 30|mn(m − n ), 42|m − m vai
za proizvo ne prirodne brojeve m, n.
2 5 4 4 7

2. Dokazati da je za m ∈ N proizvod (m + 1)(m + 2) · s(m + m) de iv sa


2 .
m

3. Neka je nzd(a, b) = 1. Dokazati da je nzd(a + b, a − b) ≤ 2.


4. Izraqunati NZD nzd(549, 387), nzd(589, 343), nzd(12606, 6494), nzd(6188, 4709),
a zatim izraziti NZD kao linearnu kombinaciju tih brojeva.
5. Odrediti 160 (mod 841).
−1

6. Koliko qinilaca ima broj 945?


7. Odrediti 2 1000000
mod 7.
8. Odrediti sva rexea kongruencije a) 3x ≡ 4 (mod 7); b) 3x ≡ 4
(mod 12); v) 9x ≡ 12 (mod 21); g) 27x ≡ 25 (mod 256); d) 27x ≡ 72
(mod 900); ) 103x ≡ 612 (mod 676);
9. Odrediti φ(n) za n = 90, 91, . . . , 100.
10. Dokazati: broj m je prost ako i samo ako je φ(m) = m − 1.
11. Rastaviti na proste qinioce brojeve 82798848, 81057226635.
12. Rastaviti na proste qinioce brojeve 10!, 15!, 20!, 30!.
13. Sa koliko nula se zavrxavaju brojevi 50!, 100!?
14. Odrediti φ(n) za n = 375, 720, 957, 988, 1200, 4320.
15. Koliko ima brojeva od 1 do 120 koji nisu uzajamno prosti sa 30?
16. Zna se da je φ(a) = 120 i da je a = pq, gde su p, q prosti brojevi.
Odrediti a, ako je p − q = 2.
17. Dokazati da zbir kvadrata pet uzastopnih celih brojeva ne moe biti
potpuni kvadrat.
18. Odrediti sva celobrojna rexea jednaqina 53x + 47y = 1, 22x + 32y =
18.
19. Ako je nzd(a, n) = 1, dokazati da je a ≡ a (mod n).
−1 φ(n)−2

20. Napraviti tabelu indeksa po modulu 29 sa osnovom 2 i tabelu indeksa


po modulu 23 sa osnovom 3.
21. Rexiti jednaqine 52 ≡ 38 (mod 29), 23 ≡ 9 (mod 29), 3 ≡ 7 (mod 23),
3 ≡ 6 (mod 23).
x x x
x

114
22. Odrediti sve generatore Z za n = 23, 29.

n

23. Izraqunati 5 (mod 29), 7 (mod 29), 21 (mod 29), 39 (mod 23),
−1 −1 −1 −1

(−1) (mod 23).


−1

24. Odrediti sve nesvod ive polinome stepena ≤ 3 u F [x]. 2

25. Da li je nesvod iv polinom x + x + x + x + 1 u F [x]?


4 3 2
2

26. Napraviti tablicu mnoea u a) F [x]/(x + x + 1) ; b) F [x]/(x + ∗

x + 1) .
2 3
2 2
2 ∗

27. Pomou Euklidovog algoritma odrediti (x ) u po u F [x]/(x + 4 −1

x + 1).
5
2
2

28. Odrediti matrice A, B, takve da se druga komponenta preslikavaa


S u algoritmu §AES moe predstaviti u obliku AY + B , gde je Y
vektor{kolona | nibl dobijen iz prve komponente S (inverzije).
29. Predstaviti proxirivae kluqa u SAES (odnosno AES | veim
dijagramom) dijagramom sa xest qvorova, tri reda po dva qvora, tako
da u i-tom redu budu qvorovi W [2i], W [2i + 1], i = 0, 1, 2.
30. Ako se pogrexno prenese jedan bit xifrata, koliko e to izazvati
grexaka u dexifrovanoj poruci ako se koristi
a) sinhrona protoqna xifra;
a) samosinhronixua protoqna xifra kod koje c zavisi od p ,
p ,..., p ?
i−k+1 i
i i−k

31. Koliki najvei period moe imati izlazni niz iz algoritma RC4
(odgovor treba da zavisi od parametra n)?
32. Koristei qienicu da funkcije M C u SAES transformixe kolonu
b b b b
u kolonu bb ⊕⊕ bb bb ⊕⊕ bb ⊕⊕ bb bb ⊕⊕ bb ⊕⊕ bb bb ⊕⊕ bb = bb bb bb bb
0 1 2 3 0 6 1 4 7 2 4 5 3 5

0


1


2


3

Odrediti matricu A koja vektor b = [b b . . . b ] preslikava u


b b b b
4 5 6 7 2 4 0 3 5 0 1 6 1 7 4 5 6 7
T
0 1 7
′ ′ ′ ′ T
b = [b b . . . b ] = Ab
0 1 7

33. Od koliko najmae bita staa algoritma AES zavisi neki bit staa
posle
a) funkcije ByteSub;
b) funkcije Shif tRow;
v) funkcije M ixColumn;
g) funkcije AddRoundKey;
d) jedne runde?

115
34. Koliko bita je pogrexno posle dexifrovaa poruke ako je xifrovae
izvrxeno algoritmom AES u reimu ECB, CBC, CFB, OFB?
35. Koristei tabelu koja opisuje funkciju S u SAES napisati izraze
za qetiri izlazna bita e, f, g, h preko ulaznih bita a, b, c, d.
36. Izraqunati 57 (mod 97).
1616

37. Oceniti sloenost izraqunavaa B ; faktorizacije N de eem sa


brojevima maim od √N .
N

38. Napraviti tablicu stepenova, odnosno logaritama, u F [x]/(x + x +


1) ako je generator x. Koristei ove tabele izraqunati (x + 1)(x +
3 2
2

x + 1).
2 2

39. Neka je n proizvod razliqitih prostih brojeva. Neka su brojevi d, e ∈


N takvi da za svaki prost p|n vai p − 1|de − 1. Dokazati da je a ≡ a
(mod n) za svako a, qak i ako je nzd(a, n) > 1.
de

40. Dokazati da u po u F , ako je q = p , p { prost broj, vai (a + b) =


a +b .
k p
q
p p

41. Na eliptiqkoj krivoj y = x − 36 neka je P = (−3, 9) i Q = (−2, 8).


Odrediti P + Q i 2P .
2 3 2

42. Koliko rexea ima jednaqina x ≡ 1 (mod n) za razliqite vrednosti


m, m < n ?
m

43. Ako je korisnik grexkom u sistemu RSA izabrao n = p (p { prost),


dokazati da je sistem lako razbiti.
44. Pokazati da ako x ≡ d (mod n) ima rexee, i n = pq (p, q { prosti),
onda ova kongruencija ima 4 rexea.
2

45. Broj x, 1 ≤ x ≤ n − 1 je nepokretna taqka za RSA sistem sa modulom n


ako se preslikava u samog sebe. Dokazati: ako je x nepokretna taqka,
onda je i n − x nepokretna taqka.
46. Pokazati da u sistemu RSA sa parametrima p, q, e, d ima r + s + rs
nepokretnih taqaka, gde je r = nzd(p − 1, e − 1), s = nzd(q − 1, e − 1)
47. Pretpostavimo da svaki korisnik A ima tajni par transformacija
f : P → P gde je P fiksirani skup moguih otvorenih tekstova.
Alisa eli da Bobanu sigurno prenese poruku primenom Mesi{Omura
A

postupka, tj. Alisa xa e f (P ) Bobanu, koji joj zatim xa e f (f (P )),


itd. Opisati uslove koje treba da zadovo i sistem funkcija f da
A B A

bi sistem funkcionisao. A

48. Za eliptiqku krivu E : y = x + Ax + B izvesti izraze za zbir dve


taqke P + Q, odnosno P + P .
2 3

116
49. Dokazati da eliptiqka kriva nad po em F ima najvixe 2q + 1 taqku.
q

50. Za eliptiqku krivu E : y = x + 3x + 8 nad po em F


2 3
13

a) pokazati da je skup taqaka krive


E(F13 ) = {⊘, (1, 5), (1, 8), (2, 3), (2, 10), (9, 6), (9, 7), (12, 2), (12, 11)};

b) izraqunati (1, 8) + (9, 7), 2(9, 7);


v) pokazati da (1, 5) generixe krivu, a zatim napraviti tabelu umnoaka
te taqke i tabelu logaritama;
g) koristei ovu tabelu izraqunati (12, 11) + (2, 3), (12, 2) + (9, 6),
25(9, 7).

51. Za PUKDH koristi se eliptiqka kriva iz prethodnog zadatka. Ako se


koristi generator (2, 3), a tajni k uqevi su e = 4, e = 5, odrediti
taqku koja se dobija kao rezultat usaglaxavaa. A B

52. Za sistem ElGamal koristi se eliptiqka kriva iz pretprethodnog


zadatka, a generator iz prethodnog zadatka. Ako su tajni k uqevi
e = 5, e = 3, prikazati postupak xifrovaa poruke M = (12, 11)
(koristi se sluqajni broj k = 4), a zatim postupak dexifrovaa
A B

xifrata.
53. U sistemu autentikacije zasnovanom na RSA korisnik A izabrao je
javni k uq e = 7 i n = 77. Ako je on od B dobio broj 23, kako treba
da glasi egov odgovor, da bi sagovornika ubedio u svoj identitet?
54. Za digitalne potpise zasnovane na sistemu RSA korisnici A iB
imaju javne k uqeve e = 3, n = 15, odnosno e = 7, n = 77. A
eli da poxa e poruku M = 4 kao potpis nekog teksta. Koji celi
A A B B

broj on treba da poxa e?


55. Dokazati da za digitalne potpise zasnovane na RSA vai sledee
tvree: ako je S potpis poruke m , a S potpis poruke m , onda je
S S potpis poruke m m .
1 1 2 2
1 2 1 2

56. Korisnik A ima javni k uq e = 11, n = 899. Kako glasi egov RSA
digitalni potpis poruke 876?
57. ElGamal digitalni potpis. Osoba A bira prost broj p = 21739 i
primitivni korren g = 7, a zatim tajni k uq a = 15140. A

a) Koji je en javni k uq?


b) Xta je potpis poruke S = 5331 ako se koristi k uq sesije k =
10727?
b) Kako primalac B proverava potpis?

117
58. Odrediti verini razvoj brojeva √3, √5, √7, , π i odrediti prvih
7

8 parcijalnih razlomaka.
23

59. Odrediti orbite za linearne pomeraqke registre: 1 + x + x + x ,


1+x+x , 1+x+x .
2 3 4
5 6

60. Odrediti linearne kombinacije ulaza i izlaza najblie konstanti


za tabelu S u SAES , i za sbox-ove S1 i S4 za DES .
61. Rastaviti na qinioce 14873 postupkom koji koristi sluqajno lutae
po modulu 14873.
62. Primeniti Fermaov postupak faktorizacije na broj 21079.
63. Dokazati da su u po u Q(√−5) algebarski celi brojevi oblika a +
b −5, a, b ∈ Z.

64. Dokazati da se u po u Q(√−5) broj 2 ne moe rastaviti u netrivijalni


proizvod algebarskih celih brojeva.
65. U skupu Z(i) rastaviti na qinioce brojeve 5 + 3i, 11 − 3i.
66. Pomou Polig-Helmanovog algoritma izraqunati logaritam broja 303,
pri qemu je sve ostalo isto kao u primeru u tekstu.

118

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy