You are on page 1of 115

Kriptografija

Miodrag ivkovi
16 aprel 2012 g.

Soderanie
1
2
3
4
5
6
7

Uvod
Osnovni pojmovi
Istorija
Pregled osnova teorije brojeva
Jednostavni xifarski sistemi
Savremene protoqne xifre
Konaqna po a

4
4
6
7
13
15
16

8 RC4

17

Samosinhronixua protoqna xifra


10 Sluqajna xifra
11 Konaqna po a II

18
19

12.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2 Uproxeni AES . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3 Konaqno po e . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.4 Tabela S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.5 Proxirivae k uqa . . . . . . . . . . . . . . . . . . . . . . . .
12.6 Primer proxirivaa k uqa . . . . . . . . . . . . . . . . . . .
12.7 Uproxeni algoritam AES . . . . . . . . . . . . . . . . . . . .
12.8 Dexifrovae . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.9 Primer xifrovaa . . . . . . . . . . . . . . . . . . . . . . . . .
12.10Kompletan AES . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.11AES kao kombinovana xifra . . . . . . . . . . . . . . . . . . .
12.12Naqini korixea blokovskih xifri . . . . . . . . . . . . .

12 AES

19

21

21
22
22
22
23
24
24
26
27
27
28
28

Analiza uproxenog algoritma AES . . . . . . . . . . . . . .


Objaxee konstruk ije AES . . . . . . . . . . . . . . . . . .
12.15Sigurnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.16Efikasnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.13
12.14

29
30
30
31

13 Napadi na blokovske xifre

32

14 Stepenovae ponov enim kvadriraem


15 Vremenska sloenost algoritama
16 Sistemi sa javnim k uqem

32
33
39

17 Mae korixeni xifarski sistemi sa javnim k uqem

42

18 Eliptiqke krive

44

13.1 Potpuna pretraga i susret u sredini . . . . . . . . . . . . . . 32

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
16.2 Problem diskretnog logaritma u konaqnom po u . . . . . . . 41
16.3 Protokol usaglaxavaa k uqa Difi{Helman . . . . . . . . . 41

16.1 RSA

kao algoritam za xifrovae poruka . . . . . . . . . . . 42


17.2 ElGamalov algoritam za xifrovae . . . . . . . . . . . . . . . 43
17.3 Razmena k uqeva Mesi-Omura . . . . . . . . . . . . . . . . . . . 43

17.1 RSA

18.1 Problem diskretnog logaritma sa eliptiqkim krivama . . . 48

18.2 Sistemi sa eliptichkim krivama . . . . . . . . . . . . . . . . . . .


18.2.1 Sistem analogan PUKDH . . . . . . . . . . . . . . . . . .

50
50

Hex funk ije, MD5, kodovi za autentika iju (MAC )

Hex algoritam MD5 . . . . . . . . . . . . . . . . . . . . . . . .


19.1.1 Poqetno stae registara . . . . . . . . . . . . . . . . . .
19.1.2 Qetiri funk ije . . . . . . . . . . . . . . . . . . . . . .
19.1.3 Konstante . . . . . . . . . . . . . . . . . . . . . . . . . .
19.1.4 Oznake za rota iju . . . . . . . . . . . . . . . . . . . . .
19.1.5 Ostale oznake . . . . . . . . . . . . . . . . . . . . . . . .
19.1.6 Izraqunavae f . . . . . . . . . . . . . . . . . . . . . . .
19.1.7 Objaxee . . . . . . . . . . . . . . . . . . . . . . . . . .
19.1.8 Hex algoritam . . . . . . . . . . . . . . . . . . . . . . .

52

Potpisi i autentika ija

Potpisi pomou RSA . . . . . . . . . . . . . . . . . . . . . . .


20.2 El Gamalov potpis . . . . . . . . . . . . . . . . . . . . . . . . .
20.3 Xnorov postupak autentika ije i potpisa . . . . . . . . . . .
20.4 Vremenski peqat . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.5 KERBEROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.6 PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.6.1 Sertifikati . . . . . . . . . . . . . . . . . . . . . . . . .

57

57
59
60
60
61
62
62

18.2.2 Sistem analogan ElGamalovoj razmeni poruka . . . . . 51

19

19.1

20

20.1

53
53
53
54
54
54
54
55
56

20.6.2 PGP i mrea poverea . . . . . . . . . . . . . . . . . .


20.7 Sigurnost na internetu . . . . . . . . . . . . . . . . . . . . . .
20.7.1 SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.7.2 IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.8 Uprav ae k uqevima . . . . . . . . . . . . . . . . . . . . . . .
20.9 Kvantna kriptografija . . . . . . . . . . . . . . . . . . . . . .
20.10De ee tajne . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64
65
65
67
67
68
70

21 Kriptoanaliza

70

22 Linearna i diferen ijala kriptoanaliza

84

23 Roendanski paradoks
24 Faktoriza ija

95
98

21.1 Vinerova xifra . . . . . . . . . . . . . . . . . . . . . . . . .


21.1.1 Test Kaziskog . . . . . . . . . . . . . . . . . . . . . . . .
21.1.2 Fridmanov test . . . . . . . . . . . . . . . . . . . . . . .
21.1.3 Odreivae k uqa . . . . . . . . . . . . . . . . . . . . .
21.2 Kriptoanaliza modernih protoqnih xifara . . . . . . . . . .
21.2.1 Generator sluqajnih brojeva b/p . . . . . . . . . . . . .
21.3 Pomeraqki registar sa linearnom povratnom spregom . . . .
................................
Linearna kriptoanaliza . . . . . . . . . . . . . . . . . . . . . .
Linearna kriptoanaliza 1SAES . . . . . . . . . . . . . . . . .
Odreivae jednaqina . . . . . . . . . . . . . . . . . . . . . . .
Napad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Brzina napada . . . . . . . . . . . . . . . . . . . . . . . .
Diferen ijalna kriptoanaliza . . . . . . . . . . . . . . . . . .

22.1 1SAES
22.2
22.3
22.4
22.5
22.5.1
22.6

72
74
74
76
77
77
79
84
85
86
86
89
91
91

24.1 Fermaova faktoriza ija n . . . . . . . . . . . . . . . . . . . . 99


24.2 Baze faktora . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
24.3 Faktoriza ija pomou verinih razlomaka . . . . . . . . . . 100
24.4 Faktoriza ija pomou eliptiqkih krivih . . . . . . . . . . . 101
24.5 Po e brojeva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
24.6 Sito u po u brojeva . . . . . . . . . . . . . . . . . . . . . . . . . 105

25 Rexavae problema diskretnog logaritma u Fq

107

Digresija:upotrebakineske teoreme oosta imazadexifrovae


RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
25.2 Polig-Helmanov algoritam . . . . . . . . . . . . . . . . . . . . 107
25.3 Algoritam za izraqunavae indeksa . . . . . . . . . . . . . . . 109
25.1

26

Zada i

111

Osnova za ovaj kurs je tekst lek ija E. Schaefera (univerzitet Santa


Klara u Kaliforniji) An introduction to cryptography,
http://math.scu.edu/eschaefe/crylec.pdf. Izvrxenasu samominimalna prilagoavaa, pre svega jeziqka. Potrebno predznae je minimalno.
Alisa eli da poxa e poruku Bobanu, ali tako da izbegne da radoznala Ci a (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 Ci a
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.
D. Kahn, The CodeBreakers, 1973.

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

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 transforma ija otvorenog teksta u xifrat.
Dexifrovae je inverzna transforma ija xifrata u otvoreni tekst.
Kodirae transformixe otvorenitekst u niz ifaraili bita.Na primer,

ako velika slova (engleske) abe ede 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 ifara ili bita u polazni tekst. U kodirau i dekodirau nema niqega tajnog.
Protoqna xifra transformixeotvorenitekst simbolpo 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 (skraeni a od Advanced

Encryption Standard) radi sa blokovimaod po 128 bita (odnosno 16 znakova).


Ako algoritam xifrovaa radi sa bigramima, onda on moe (ne mora) da
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 transforma ija u okviru izabranog sistema.
Simetriqni sistem podrazumeva upotrebu istog tajnog k uqa za xifrovae i dexifrovae. Alisa i Boban moraju unapred da se dogovore koji
k uq e koristiti.
Asimetriqni sistem (sistem sa javnim k uqem) podrazumevada Alisa i Boban objave (publikuju) svoje k uqeve za xifrovae, a da u najveoj
tajnosti quvaju svoje k uqeve za dexifrovae.
Kriptoanaliza je pro es pomou koga Ci a pokuxava da xifrat transformixe u odgovarajui otvoreni tekst, ne znajui k uq.
Dekriptirae je (makar i delimiqno) uspexna kriptoanaliza.
Alisa je poxi ala xifrovaneporuke. Boban je en primala . Ci a
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 protivreqni zahtevi.
3. Pretpostav a se da Ci a zna deta e primeenog xifarskog sistema,
a da ne zna samo k uq.

3 Istorija

Spartanska xifra Skitale (400 godina p.n.e.) Ovo je primer xifre premextaa. Slova poruke ispisuju se na dugaqkoj papirnoj tra i, koja se
omotava oko xtapa. Dijametar xtapa je k uq za xifrovae.
----------------------------/T/H/I/S/I/S/_/
/ \
/ /H/O/W/I/T/
|
|
/ /W/O/U/L/D/
\ /
-----------------------------

Cezarova xifra.Xifra zamene,kojasvakoslovozameuje treim slovom


udesno (du abe ede) od ega. Ako se radi o engleskoj abe edi, onda su
zamene A D, B E, ... Z C . Xifrat HAL odgovara poru i 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 PALMERSTON formira se tabela
P
R
B
H
V

A
S
C
IJ
W

L
T
D
K
X

M
O
F
Q
Y

E
N
G
U
Z

A
D
F
G
V
X

A
K
9
Q
E
8
U

D
Z
B
7
V
O
4

F
W
6
J
Y
D
I

Da bi se xifrovao par SF posmatra se pravougaonikkome su temena ova dva


slova; ostala dva temena pravougaonikasu xifrat OC. Redosled je odreen
qieni om 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 Nem i u prvom svetskom ratu. Zasniva se na primeni fiksne tabele
G
R
C
P
3
H
S

V
1
L
G
A
0
T

X
F
5
X
N
2
M

Naredno slovo koje treba xifrovati se pronalazi u tabeli, pa se zameuje parom oznaka (vrsta, kolona). Tako otvoreni tekst PRODUCTCIPHERS 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 abe edi. Rezultat prve faze napixe se ispod k uqa u vixe
vrsta.
D
2
F
F
D
G

E
3
G
X
G
G

U
7
A
A
X
A

T
6
G
D
F
A

S
5
V
G
F
G

C
1
D
X
G
X

H
4
V
V
V
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 (razma i 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
Amerikan i.
Posle 1970. godine ugroavae bezbednosti raqunara postalo je ozbi an problem. Pojavila se potreba za sigurnijim xiframa za komer ijalnu
upotrebu. Postalo je mogue realizovati sloene algoritme u jednom qipu,
xto je omoguavalo brzo xifrovae. Porasle su i mogunosti kriptoanalize.
Problem je intenzivno analiziran izmeu 1968. i 1976. godine. Godine
1974. pojavila se xifra LUCIFER (IBM), a 1975. DES (skraeni a 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 elih brojeva, Z = {0, 1, 2, . . .}. Za ele 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 | :
7

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 6 |c, onda a 6 |b c.
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 eli brojevi. Svi pozitivni delio i
broja n su oblika p p p , gde je 0 za svako i = 1, 2, . . . , r, pa
n ima ( + 1)( + 1) ( + 1) razliqitih delila a.
Na primer, 90 = 2 3 5 . Da bismo pronaxli sve pozitivne delio e
broja 90,
1 2
1
2

r
r

i
1 2
1 2

r
r

1 1
2 3
9

1
5

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.
Posledi a osnovne teoreme aritmetike: ako je p prost broj i p|ab, onda
p|a ili p|b. Na primer, poxto 3|180 = 445, onda 3|4 ili 3|45 (u ovom sluqaju
taqno je drugo tvree). Implika ija nije uvek taqna za sloene brojeve:
4|6 2, iako 4 6 |6 i 4 6 |2.
Neka su a, b Z pozitivni eli brojevi, od kojih jedan moe biti 0.
Najvei zajedniqki delila (NZD) a i b (oznaka nzd(a, b)) je najvei eli
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 delila se
koristi za skraivae (svoee) razlomaka; razlomak 12/19 je sveden.
Ako znamo faktoriza ije brojeva a = p p p i b = p p p
(neki od eksponenata mogu biti 0), onda je nzd(a, b) = p p p , gde je
= min{ , }. Na primer, 2520 = 2 3 5 7 i i 2700 = 2 3 5 7 ,
pa je nzd(2520, 2700) = 2 3 5 7 = 180. Primetimo da je 2520/180 = 14,
2700/180 = 15 i nzd(14, 15) = 1. Za brojeve kojima je NZD jednak 1 kaemo
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 qinio e je teak problem. Umesto
pomou rastav aa na qinio e, jednostavan i efikasan naqin za izraqunavae NZD je primena Euklidovog algoritma. Koristi se qieni a 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
delila i ostatak postaju naredni de enik i delila :
329 = 2 119 + 91
119 = 1 91 + 28
91 = 3 28 + 7
28 = 4 7 + 0
8
0

1 2
1
2

r
r

1 2
1 2

1 2
1 2
r
r
2
3
2

r
r
0

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


Niz de ea koji qini Euklidova algoritam moe se iskoristiti da se
nzd(a, b) predstavi u obliku elobrojne linearne kombina ije nzd(a, b) =
na + mb, za neke m, n Z. U svakom koraku se zameuje mai podvuqeni
broj (qlan niza ostataka):
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.
Rela ija mod. Pored toga xto mod oznaqava binarnu opera iju (ostatak pri elobrojnom de eu), mod je i oznaka rela ije u Z: pixemo
a b (mod m) ako je 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.
Uopxte, rela ija mod m razbija sve ele brojeve na m disjunktnih
podskupova (klasa ekvivalen ije za ovu rela iju). Svaki podskup sadri
taqno jednog predstavnika u intervalu [0, m 1]. Skup ovih podskupova
oznaqava se sa Z/mZ ili Z . Vidimo da Z/mZ ima m elemenata; brojevi
0, 1, . . . m 1 su predstavni i m elemenata skupa Z/mZ.
Navodimoneke uobiqajeneprimere korixea rela ije 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).
Osobine kongruen ije:
1. [rela ija ekvivalen ije, 1-3 a a (mod m)
2. ako je a b (mod m), onda je b a (mod m)
3. ako je a b (mod m) i b c (mod m), onda je a c (mod m). Posledi a osobina 1, 2. i 3. je da je kongruentnost po modulu m rela ija
ekvivalen ije.
4. [sabirae i mnoee u Z/mZ 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). Zbog toga se mogu
vrxiti ove opera ije u Z/Z . Zbog ove osobine rela ija mod je
saglasna sa opera ijama +, i .
m

mod 5

12, 14
+

mod 5

26

2, 4
+
1

Neka je m = 5. Tada je Z/5Z = {0, 1, 2, 3, 4} = {0, 1, 2, 3, 4} (zbog jednostavnosti poistoveujemo elemente Z/5Z sa ihovim predstavni ima
| brojevima). 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). Tabli a
sabiraa u Z/5Z :
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
5. [Promena modula kongruen ije 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).
6. [Inverz Neki element x Z/mZ ima multiplikativni inverz
(1/x) = x
u Z/mZ ako je nzd(x, m) = 1: poxto se nzd(x, m) = 1
izrazi u obliku elobrojne linearne kombina ije 1 = ax + bm, vidi
se da je ax 1 (mod m). Skup elemenata Z/mZ koji imaju inverze
oznaqava se sa Z/mZ . Na primer 1/2 = 2 3 (mod 5), jer je 23 1
(mod 5).
U skupu Z/9Z = {0, 1, . . . , 8} mogu da se koriste opera ije +, , . U
skupu Z/9Z = {1, 2, 4, 5, 7, 8} mogu da se koriste opera ije i /.
Da bismo pronaxli inverz 7 po modulu 9, odnosno elemenat 7
Z/9Z , koristimo Euklidov algoritam
1

9 =
7 =

pa je

2 =

1 =
1 =
1 =

17+2
32+1
21+0

732

7 3(9 7)
4739

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/9Z.
Qemu je jednako 2/7 u Z/9Z? 2/7 = 2 1/7 = 2 4 = 8 Z/9Z. Prema
tome, 2/7 8 (mod 9). Primetimo da je 2 87 (mod 9), jer 9|256 =
54.
Broj 6 nema inverz po modulu 9, jer iz 6x 1 (mod 9), sledi 9|6x 1,
odnosno 3|6x1, odnosno 3|1 (zbog 3|6x), xto nije taqno. Dakle, 6 nema
inverz po modulu 9.
10
1

7. [De ee u Z/mZ 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 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.
8. [Rexavae kongruen ije Potrebno je za date a, b, m po x rexiti
kongruen iju ax b (mod m). Ako je nzd(a, m) = 1, onda su rexea svi brojevi x a b (mod m). Ako je nzd(a, m) = g, onda kongruen ija ima rexea ako g|b. Tada je kongruen ija 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) (mod m/g). Ako g 6 |b, onda nema rexea.
Rexiti kongruen iju 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, pa je
1 = 7 2(10 7) = 3 7 2 7. Prema tome, 1 3 7 (mod 10) i 1/7 3 7
(mod 10). Dakle, x 3 3 9 (mod 10). Rexee je skup pozitivnih brojeva
sa ifrom jedini a 9 i skup negativnih brojeva sa ifrom jedini a 1.
Rexiti kongruen iju 6x 8 (mod 10). Poxto je nzd(6, 10) = 2, i 2|8,
rexea postoje. Kongruen ija je ekvivalentna sa 3x 4 (mod 5), pa je
x 43
(mod 5). Poxto je 3
2 (mod 5), dobija se x 4 2 3
(mod 5). Drugim reqime, x = 3 + 5n, gde je n Z, odnosno x 3 (mod 10)
ili x 8 (mod 10) (kongruen ija ima dva rexea po modulu 10).
Rexiti 6x 7 (mod 10).Ovakongruen ijanemarexea, jer je nzd(6, 10) =
2 i 2 6 |7.
Naravno, inverzija se ne mora vrxiti pomou Euklidovog algoritma.
Neka je potrebno odrediti inverze svih elemenata Z/17Z . Celi brojevi
koji su kongruentni sa 1 po modulu 17 su oblika 17n + 1. Moemo da rastavimo na qinio e nekoliko takvih brojeva. Prvih nekoliko prirodnih
brojeva oblika 17n + 1 (veih od 41) su 18, 35, 52. Poxto je 18 = 2 9, bie
2 9 1 (mod 17) i 2 9 (mod 17), 9 2 (mod 17). Poxto je takoe
i 18 = 3 6, brojevi 3 i 6 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 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) 1616. Dakle, odredili smo inverze svih elemenata Z/17Z .
Joxjedno vebae:treba dokazatida x x1, x Z, nikadnije jednako
kvadratu nekog elog broja. Zaista, kvadrati su 0 , 1 , 2 (mod 3) 0, 1, 1
(mod 3). S druge strane, kongruen ija x x 1 2 (mod 3) vai za svako
x: 0 0 1 2, 1 1 1 2, 2 2 1 2.
Kineska teorema o osta ima. Neka su m , m ,..., m , u parovima
uzajamno prosti prirodni brojevi. Sistem kongruen ija x a (mod m ),
x a (mod m ),..., x a (mod m ), ima jedinstveno rexee po modulu
m m . . . m . Primer: ako je x 1 (mod 7) i x 2 (mod 4), onda je x 22
(mod 28). Drugim reqima, ako znamo ostatke nekog broja po modulu m i po
modulu n, onda znamo ostatak tog broja i po modulu mn.
Jedan zanim iv primer. Poslede tri ifre kvadrata broja 6378000
su 000. Ustvari, to je taqno za bilo koji eli broj kome su tri poslede
11

ifre 000. Sliqno tvree taqno je i za brojeve kojima su tri poslede


ifre 625; kvadrat tih brojeva zavrxava se isto na 625. Da li postoji jox
neki tro ifreni broj sa istom osobinom? Potrebno je da reximo kongruen iju 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 kongruen ija x 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. Kraj primera.
Evo algoritma za odreivae broja x. Potreban nam je izraz koji je
kongruentan sa a po modulu m , odnosno sa nula po ostalim modulima m ,
i 6= 1. Tu osobinu ima izraz a m m . . . m b , gde je m m . . . m b 1
(mod m ), pa neka je b = (m . . . m )
(mod m ). Isto tako, potreban nam
je izraz koji je kongruentan sa a (mod m ), odnosno sa po modulu ostalih
m . Koristimo izraz a m m m . . . m b , gde je b = (m m m . . . m )
(mod m ), itd. Dakle,
2

3
1

r 1

r 2

x = (a1 m2 m3 . . . mr b1 )+(a2 m1 m3 . . . mr b2 )+. . .+(ar m1 m2 . . . mr1 br )

Primer. Rexiti

(mod m1 m2 . . . mr ).

x 2 (mod 3) x 3 (mod 5) x 9 (mod 11) b1 = (5


11)1 (mod 3) = 11 (mod 3) = 1 b2 = (3 11)1 (mod 5) = 31 (mod 5) = 2
b3 = (3 5)1 (mod 11) = 41 (mod 11) = 3
x = 2(5 11)1 + 3(3 11)2 +
9(3 5)3 = 713 53 (mod 165)

n Z+
Zn = {a | 1 a
n, nzd(a, n) = 1}
1
Z12 = {1, 5, 7, 11}
(n) = |Zn |
(12) = 4 (5) = 4 (6) = 2
p
(p) = p 1
(53 )
Z125
Z125
5
5
125/5
(125) = 125 25
r1 p
(pr ) = pr (1 p1 ) = pr1 (p 1)
(p) = p 1

pa je
.
Ojlerova funk ija . Neka
. Neka je
. Ovaj skup je grupa za mnoee (skup je zatvoren za
mnoee; mnoee je aso ijativno, je neutralni element, i svaki element ima inverz). Na primer,
. Neka je
. Na
primer,
,
i
. Ako je je prost broj, onda je
. Qemu je jednako ? Skup dobija se od izba ivaem umnoaka . Umnoaka ima , pa je
. Ako je
, a je prost broj, onda je
; spe ijalno,
.
Za ostale prirodne brojeve se vrednost Ojlerove funk ije moe izraqunati korixeem qieni e da ako je nzd(m, n) = 1,onda (mn) = (m)(n)
(na osnovu kineske teoreme o osta ima svakom paru x, y ostataka po modulima m, n 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). Da bi se izraqunalo
(n), potrebno je n rastaviti na proste qinio e, kao u sledeem primeru:
(720)
Q = (2 )(3 )(5) = 2 (2 1)3 (3 1)(5 1) = 192. Uopxte, ako je
n = p , onda je (n) = p
(p 1) . . . p
(p 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).
Zbog toga smo npr. sigurni da je 2 2 (mod 5) (jer je 5 prost broj),
4 4 (mod 5), 2 1 (mod 5) (ovo moe se i neposredno proveriti).
4

i
i

1 1
1

r 1
r

p1

12

Opxtije, ako je nzd(a, m) = 1, onda je a

(m)

. Zaista,

1 (mod m)

{ax (mod m) | x Zm } = Zm

(ako x prolazi sve ostatke iz Z onda i ax (mod m) prolazi sve ostatke


iz Z ). Zbog toga je

x=

xZ
m

ax = a(m)

xZ
m

x.

xZ
m

Skraivaem sa brojem Q x uzajamno prostim sa m dobija se a (m) 1


(mod m).
Na primer, (10) = (5)(2) = 4 1 = 4. Poxto je Z/10Z = {1, 3, 7, 9},
bie 1 1 (mod 10), 3 1 (mod 10), 7 1 (mod 10) i 9 1 (mod 10).
Ovo se moe i neposredno proveriti.
Ako je nzd(c, m) = 1 i a b (mod (m)), pri qemu je a, b Z , onda je
c c (mod m).
Izraqunavae 2 mod 15. Primetimo da je (15) = (5)(3) = 4
2 = 8 i 1004 4 (mod 8). Prema tome, 2
2 16 1 (mod 15).
Drugim reqima, eksponenti se mogu svoditi po modulu (m) ukoliko su
osnove uzajamno proste sa modulom.
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
23, dobija se 11.

xZ
m

1004

1004

11
23

11
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.
Xifarska transforma ija f je jednoznaqna funk ija koja preslikava P
u C (f ne sme da preslikava dva razliqita otvorena teksta u isti xifrat).
Par transforma ija f : P C i f : C P je xifarski sistem. Razmotriemo sada nekoliko jednostavnih xifarskih sistema.
Zapoqeemo sa xifarskim sistemom koji radi sa pojedinaqnim slovima. Slova se mogu zameivati drugim slovima, pri qemu se moe koristiti
proizvo na permuta ija, na primer A F, B Q, C N, . . . Umesto da se
permuta ija zadaje tabli om, moe se zadati izrazom, koji opisuje pro es
xifrovaa, odnosno dexifrovaa.
Najjednostavnija transforma ija je transla ija. 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
13
2

xifra. Ako je veliqina azbuke N , onda je xifarska opera ija transla ije
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, Ci a koja zna da se koristi
transla ija, treba da odredi samo k uq b. U opxtem sluqaju mora se pretpostaviti daCi azna tip primeenog xifarskogsistema (ovde | transla ija).
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 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 transforma ija 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 transforma ija 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 6= 1). Primetimo


da se i B = 1 i O = 14 preslikavaju u 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 (kodirae, xifrovae,
dexifrovae,dekodirae). Alisa xa e M Bobanu. Bobanmoe 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 (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.
Kako Ci a 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 Ci a ima na raspolagau veliku
koliqinu xifrata. Ona pronalazi da je Y = 24 najqexe, a H = 7 sledee
najqexe slovo. Pretpostavimo da se dexifrovae vrxi na osnovu P
a C + b (mod 26), gde je a = a i b = a b. Potrebno je dexifrovati
poruku V N LGDO.
Najpre se odreuje (a , b ). Pretpostavimo da su Y , H xifrati redom
E , T , odnosno E = 4 a 24 + b (mod 26) i T = 19 a 7 + b (mod 26).
Oduzimaem se dobija
1

17a 4 19 4 + 7 11 (mod 26)

14

()

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


se 17 23 (mod 26), pa je a 23 11 19 (mod 26). Zameujui ovo
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
dexifrovaa req ZDRAV O. Pogledajmo jox jednom jednakost (*); mogue
je da se dobije kongruen ija 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
proveriti oba rexea, odnosno ustanoviti koje od ih daje smisleni OT.
Ci a sada moe da se lano predstavi kao Alisa, i da poxa e npr.
poruku N EM OJ , odnosno 13 4 12 14 9. Poxtose 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 .
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
025, 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 = 2619+14. Ipak, xifrovae primenom
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 ).
Najqexatri naqinada Ci adobijeotvoreni tekst koji odgovaranekom
xifratu su
1. Kraom, kupovinom k uqa, odnosno podmiivaem.
2. Korixeem slabostiurealiza iji, odnosnoproblemasaprotokolom.
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
15

tekst se najpre transformixe primenom ASCII koda u niz nula i jedini a. 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 generatorom oboje izgenerixu isti pseudosluqajni niz bita (niz k uqa ), na
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:
OT 0100011101101111
ST 0011101011100010
niz k uqa 0111110110001101 niz k uqa 0111110110001101
ST 0011101011100010
0100011101101111
Go
Neka je p i-ti bit otvorenog teksta, k i-ti bit niza k uqa, a c i-ti bit
xifrata. Tada je c = p k i p = c k (videti prethodni primer).
Navodimo primer nesigurne protoqne xifre, koja se koristi na personalnim raqunarima za xifrovae fajlova. Odabere se neka req, npr. Sue
01010011 01110101 01100101 (k uq). Niz k uqa se dobija periodiqnim ponav 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 qieni a
da se obiqno samo oko 1/4 moguih ASCII znakova efektivno koristi u
tekstovima.
i

7 Konaqna po a

Ako je p prost broj, oznaqimo sa F = Z/pZ po e sa p elemenata {0, 1, . . . , p


saopera ijama +, , .Primetimo da zaelemente 6= 0 vai nzd(, p) =
, pa se moe odrediti . Zbog toga se moe deliti bilo kojim nenula
elementom. Ovo po e sliqno je dakle po ima ra ionalnih, realnih ili
kompleksnih brojeva.
U skupu F = {1, . . . , p1} se mogu koristiti opera ije , /. Grupa F je
ikliqka, tj. sadri bar jedan elemenat g takav da je {1, g, g , g , . . .} = F
(ovde to neemo dokazivati). Pre iznije, grupa F ima (p 1) generatora
g (za ih se takoe kae da su primitivni koreni po modulu p). Skupovi
{g, g , g , . . . , g
} i {1, 2, . . . , p 1} su jednaki (iako su ihovi elementi
moda napisani razliqitim redosledom).
Na primer, u grupi F , g = 2: 2 = 2, 2 = 4, 2 = 3, 2 = 1. U ovoj grupi
i 3 je generator: 3 = 3, 3 = 4, 3 = 2, 3 = 1. U grupi F je 2 = 2, 2 = 4,
2 = 1, 2 = 2, 2 = 4, 2 = 1, pa 2 nije generator. Za g = 3 dobija se 3 = 3,
3 = 2, 3 = 6, 3 = 4, 3 = 5, 3 = 1, tj. 3 jeste generator.
Neki elemenat x F jeste generator ako i samo ako je egov red (broj
razliqitih elemenata u skupu {x, x , x , . . .}) jednak p 1.
Teorema: Neka je g generator grupe F . Tada je g generator ove grupe
ako i samo ako je nzd(k, p 1) = 1.
Dokaz: Pretpostavimo da je nzd(k, p 1) = 1. Neka je n red elementa
g , 1 n p 1. Tada je 1 = (g ) = g . Prema tome, p 1|kn. Poxto
p

1}
1

p1

5
2

k n

16

kn

2
1

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


generator.
Dokaz u suprotnom smeru: ako je nzd(k, p 1) = d > 1, onda g nije
generator, jer je (g ) = 1.
Pretpostavimo da je p veliki prost broj. Neka je izabran neki generator
g grupe F i neki elemenat h F . Tada je jako texko odrediti x takvoda je
g = h, iako znamo ono postoji. Na primer, u F , uz g = 5, rexavae 5 = 2
ekvivalentno je sa 5 2 (mod 7). Ovo je problem diskretnog logaritma.
Navodimo primer generatora sluqajnog 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
s = g F (pa je 1 s < q ) i k s (mod 2), k {0, 1}. Za i 1 neka
je s = s F , 1 s < q i k s (mod 2), k {0, 1}. Zbog toga xto je
2 generator u F , svi osta i 2 mod p, 0 i p 1 su razliqiti. Kako je
s =g
i p = (q 1)/2 | (q), vidi se da su za i = 1, . . . , p svi brojevi s
razliqiti.
Primer. Broj 2 je generator F (jer je 2 6= 1 i 2 6= 1). Broj 2 je
takoe i generator F . Neka je k = 11. Tada je s = 2 = 42, s = 42 = 53,
s = 53 = 36, s = 36 = 57, ...pa je k = 0, k = 1, k = 0, k = 1, ....
k

k (p1)/d

2
i

i+1

i1

k2

28/2

29

59
2

28/7

11

RC4

je jedna od najpopularnijih protoqnih xifara. en autor je Ronald


slovo R u RSA, 1987). Struktura ovog pseudosluqajnog generatora
bita je drana u tajnosti, sve dok egov izvorni kod nije objav en 1994.
(Cypherpunks mailing list).
Najpre se bira prirodni broj n; obiqno se obiqno koristi n = 8.
Na osnovu k uqa formira se niz od 2 brojeva S , S , . . . , S , koji su
permuta ija skupa {0, 1, . . . , 2 1}.
Da bi se formirao ovaj niz, najpre se stavi S = i za i = 0, 1, . . . , 2 1.
Zatim se od k uqa formira drugi niz od 2 n-torki bita (koji se takoe
smatraju brojevima iz opsega od 0 do 2 1), od k uqa ponov enog dovo an
broj puta da popuni eo niz K , K , ..., K .
j 0 {ini ijaliza ija brojaqa}

RC4
Rivest (

2n 1

for i 0 to 2n 1 do
j j + Si + Ki (mod 2n )
Si Sj
i 0; j 0 {
{
l
for r 0 to l 1 do
i i + 1 (mod 2n )
j j + Si (mod 2n )
Si Sj

zameniti i
ini ijaliza ija brojaqa}
poqetak generisaa sluqajnih bita:}
zameniti i

17

2n 1

t Si + Sj (mod 2n )
St
n

odreuje narednih bita izlaznog niza k uqa

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


jednom, a indeks j obezbeuje da se elementi meaju na 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
[3, 1, 4, 1, 5, 3, 1, 4] = [K0 , K1 , K2 , K3 , K4 , K5 , K6 , K7 ].

0
0 1 2 3 4 5 6 7
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 dobijase od trobitnih reprezenta ija 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).
i

St

S0

S1

S2

S3

S4

S5

S6

S7

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. Ci a moe da
doe u posed para odgovarajuih OT/ST, pa da na osnovu toga odredi deo
niza k uqa, i da na kraju nekako rekonstruixe k uq. Da se ovakav napad
izbegne, mogu se u pro es xifrovaa uk uqiti prethodni biti otvorenog
18

teksta; takva xifra zove se samosinhronixua. Navodimo primer ovakve


xifre. Neka je
ci = pi + ki +

pi2
pi3

ako je pi1 = 0
ako je pi1 = 1

pi2
pi3

ako je pi1 = 0
ako je pi1 = 1

Vidimo da je neophodno dodefinisati otvoreni tekst; dovo no je staviti


p = p = 0. Primala poruke koristi za dexifrovae izraz
1

pi = ci + ki +

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


dobija se:
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 xifrovae
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 poten ijalnim k uqevima) jednako verovatna, odnosno iz xifrata se ne dobija
nikakva informa ija o otvorenom tekstu. Ovaj sistem korixen je npr. za
vreme hladnog rata za vezu rvenim 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 koefi ijentima iz F = Z/2Z = {0, 1}. Primetimo da je
1 = 1, pa je oduzimae isto xto i sabirae. Polinomi iz ovog skupa
su
0, 1, x, x + 1, x , x + 1, x + x, x + 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
polinomi a x + +a x+a , a {0, 1}. Polinomi se mnoe na uobiqajeni
2

n+1

19

naqin, pri qemu se sa koefi ijentima raquna u F :


2

x
x4

x2

x3
+ x3

+
+

x
x2
x2
x2

+ 1
+ x
+ x
+ x

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


polinoma (nieg stepena) sa koefi ijentima iz tog po a. Nad po em
ra ionalnih brojeva polinomi x + 2 i x 2 su nesvod ivi. Nad po em realnihbrojeva polinom x + 2 je nesvod iv, a polinom x 2 =
(x 2)(x + 2) nije
nesvod iv. Nad po em kompleksnih brojeva ni polinom x + 2 = (x + i2)(x i2) nije nesvod iv.
Nad po em F polinom x + x + 1 nije de iv ni jednim polinomom prvog stepena, pa je nesvod iv (to je jedini nesvod ivi kvadratni polinom);
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 ivipolinomi dobijaju se
od spiska svih polinoma pre rtavaem umnoaka nesvod ivih 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 osta i 0, 1, . . . , p 1, tj. brojevi mai od p.
Taj skup oznaqavamo sa Z/pZ ili Z/(p).
Posmatrajmo sadapolinome F [x] i ihoveostatkepomodulunesvod ivog
polinoma x + x + 1. Dobijaju se svi polinomi maeg stepena i vai
x + x + 1 0, tj. x x + 1 (ovu kongruen iju po modulu x + x + 1
pisa emo ubudue kao jednakost). Prema tome, na skupu F [x]/(x + x + 1) =
{0, 1, x, x+ 1, x , x + 1, x + x, x + x+ 1} definisane su uobiqajene opera ije
+, (), , pri qemu je x = x + 1.
Primer mnoea u F [x]/(x + x + 1):
2

x2

x
x3

x2
x2

+ x
x
+ x
+ x

+ 1
+ 1
+ 1
+ 1

Poxtoje 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). Ovo
po e oznaqava se sa F jer ima 8 elemenata. Primetimo da je x = x x =
(x + 1)x = x + x u F .
Uopxte, akoje p(x) nesvod ivi polinom stepena d, ondaje skup F [x]/(p(x))
po e, koje se oznaqava sa F ; to po e ima 2 elemenata. Ovo po e sastoji se od svih polinoma stepena d 1. F je skup od ne-nula elemenata
po a, sa (2 1) generatora. Na primer, u F je polinom x generator F :
g = x, x , x = x + 1, x = x + x, x = x x = x + x = x + x + 1,
3

2d

2d

20

,
. Svi generatori u ovom po u su
, gde je
.
Elementi po a lako se mogu predstaviti u raqunaru. Na primer, polinom 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
tipa F umesto u po ima tipa F ako je p 2 10 . Smatra se da
je sistem nad F sigurniji, a da je jednostavnija realiza ija na raqunaru
sistema nad F .
Invertovae elementa x +x +1 nad po em F [x]/(x +x+1). Potrebno
je primeniti Euklidov algoritam na polinome x + x + 1 i x + x + 1. Prvo
de ee daje x + x + 1 = q(x + x + 1) + r, gde je r polinom stepena maeg
od 4 (stepen de enika).
x6 = x3 + x2 + x = x2 + 1 x7 = x3 + x = 1
ga
nzd(a, 23 1) = 1
2

2d

300

2d

2
6

x2
4

| x
x6

x +x +1

+ x5
x5
x5

+ x2
+ x2
x4
x4
x4

+
+

x +
x +

+
+

x
x

+ x2

+
+

x
x3

1
1

1
1

+ x2

=r

Prema tome, x + x + 1 = (x + x + 1)(x + x + 1) + (x + x ). Na sliqan


naqin dobija se x + x + 1 = x(x + x ) + 1. Prema tome,
6

1 =

(x4 + x3 + 1) + x(x3 + x2 )

1 =

(x4 + x3 + 1) + x(x6 + x + 1 + (x2 + x + 1)(x4 + x3 + 1))

1 =
1 =

1(x4 + x3 + 1) + x(x6 + x + 1) + (x3 + x2 + x)(x4 + x3 + 1)


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

Dakle, u po u F [x]/(x + x + 1) = F je (x + x + 1) = x + x + x + 1.
Kraj primera.
U opisanom po u F sa polinomima iz Z[x] radi se po dva modula:
koefi ijenti se raqunaju po modulu dva, a polinomi po modulu x + x + 1.
Primetimo da ako je d > 1 onda F 6= Z/2 Z (u F je 1 + 1 = 0, a u Z/8Z je
1 + 1 = 2). U velikom delu literature o kriptografiji koristi se oznaka
GF(q) i za F i za F , gde je obiqno q prost broj ili stepen dvojke.
6

64

12

2d

AES

12.1 Uvod

Vlada SAD je oko 1970. godine pokrenula pro es razvoja algoritma za


xifrovae koji bi se mogao realizovati na qipu, koji bi mogao biti xi21

roko 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 transformixe 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. Zanim 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. Meutim, 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 standard) 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 koji su konstruisali belgijan i
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 diferen ijalnom analizom | napadima na AES upoznaemo
se u delu kursa o kriptoanalizi.
12.3 Konaqno po e

Algoritmi proxirivaa k uqa i xifrovaau SAES koriste tabelu S (Sbox), qija struktura se opisujekorixeem konaqnogpo a od 16 elemenata.
Neka je F = F [x]/(x +x+1). Req nibl oznaqava qetvorku bita, npr. 1011.
Niblu b b b b moe se pridruiti elemenat b x + b x + b x + b po a
F .
16

0 1 2 3

16

12.4 Tabela S

Tabela (odnosno funk ija) S je bijektivno (jedan-jedan i na, pa dakle invertibilno) preslikavae niblova u niblove, S : {0, 1} {0, 1} . Ova
funk ija je kompozi ija dva preslikavaa. Prvo od ih je inverzija nibla
u F . Na primer, inverz polinoma x + 1 je polinom x + x + x, pa prva
komponenta preslikavaa S preslikava 0011 u 1110. Nibl 0000 je izuzetak
| nije invertibilan, pa se preslikava u sebe samog. Niblu N = b b b b
(rezultatu inverzije) pridruuje elemenat N (y) = b y + b y + b y + b
prstena F [y]/(y + 1) (y + 1 = (y + 1) nije nesvod iv polinom). Neka je
a(y) = y + y + 1 i b(y) = y + 1 u F [y]/(y + 1). Mnoee u ovom prstenu je
4

16

22

0 1 2 3

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


y = y . Druga komponenta preslikavaa S je transforma ija nibla N (y)
u nibl a(y)N (y)+b(y). Tako se na primer nibl 1110 = y +y +y preslikava
u
6

16

(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)


= y 2 +y+1+y 1 +1+y 3 +1+y 3 +y 2 +y 3 +1 = 3y 3 +2y 2 +3y + 3 = y 3 +y+1 = 1011

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
druga komponenta preslikavaa S obiqno zove afino matriqno preslikavae.
Preslikavae S moe se prikazati tabelom,
nib
S(nib)
nib S(nib)
0000 1001 1000 0110
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; elementima matri e pridruuju se indeksi 0, 1, . . . , 15 redom po vrstama):
9 4 10 11
13 1 8 5
6 2 0 3
12 14 15 7
Binarna verzija tabele je korisnija za ruqno izvrxavae algoritma
SAES . Tako se nibl 0000 = 0 preslikava u 9 = 1001, 0001 = 1 4 = 0100,
..., 0100 = 4 13 = 1101, itd.
4

12.5 Proxirivae k uqa

Algoritam SAES ima 16-bitni k uq k k . . . k . Od ega treba formirati niz od 48 bita (tri 16-to bitna potk uqa), (od kojih su prvih 16 jednaki originalnom k uqu) pro esom proxirivaa k uqa. Neka je RC[i] =
x
F . Tako je npr. RC[1] = x = 1000 i RC[2] = x = x + 1 = 0011.
Ako su N i N niblovi, neka N N oznaqava ihovu konkatena iju. Neka je RCON [i] = RC[i]0000 (to je bajt, niz od 8 bita). Tako je RCON [1] =
10000000 i RCON [2] = 00110000.Nekasu funk ije RotN ib i SubN ib definisane izrazima RotN ib(N N ) = N N , odnosno SubN ib(N N ) = S(N )S(N );
ove dve funk ije preslikavaju bajtoveu bajtove.Imena ovih funk ija odgovaraju ihovoj prirodi (rota ija niblova, odnosno supstitu ija niblova
0 1

i+2

16
0

15

23

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 rela ijom
W [i] =

W [i 2] RCON (i/2) SubN ib(RotN ib(W [i 1])),


W [i 2] W [i 1]),

i 0 (mod 2)
.
i 6 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 =
k . . . k i K = k . . . k . Za i 1 K je potk uq koji se koristi na
kraju i-te runde; K se koristi pre prve runde. Kao i ranije, oznaqava
sabirae po modulu dva, bit po bit.
0

16

31

32

47

47

15

12.6 Primer proxirivaa k uqa

Neka je k uq 0101 1001 0111 1010. Prema tome, W [0] = 0101 1001 i W [1] =
0111 1010.Zbog i = 2 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
Preme tome, W [2] = 11011100. Sada je i = 3, pa je W [3] = W [1] W [2] =
0111 1010 1101 1100 = 1010 0110. Za i = 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, za i = 5, W [5] = W [3] W [4] =
1010 0110 0110 1100 = 1100 1010.
12.7 Uproxeni algoritam AES

Algoritam SAES transformixe 16-bitne otvorene tekstove u 16-bitne


xifrate, koristei proxireni k uq k . . . k . Algoritam xifrovaa je
kompozi ija osam funk ija koje se redom primeuju na otvoreni tekst:
0

47

AK2 SR N S AK1 M C SR N S AK0

(funk ija A primeuje se prva). Svaka od ovih funk ija primeuje se


na stae; stae je qetvorka niblova, prikazana na Sli i 1. Poqetno stae
sastoji se od otvorenog teksta, Slika 2. Zavrxno stae je xifrat, Slika
3.
K0

24

b0 b1 b2 b3
b4 b5 b6 b7

b8 b9 b10 b11
b12 b13 b14 b15

p0 p1 p2 p3
p4 p5 p6 p7

p8 p9 p10 p11
p12 p13 p14 p15

c0 c1 c2 c3
c4 c5 c6 c7

c8 c9 c10 c11
c12 c13 c14 c15

Slika 1.
Slika 2.
Slika 3.
Defini ije primeenih funk ija:
Funk ija A : Skraeni a A potiqe od add key. Funk ija A je
sabirae staa sa K po modulu dva, bit po bit, tako da se indeksi
bita staa i bita k uqa slau po modulu 16.
Funk ija N S : Skraeni a N S potiqe od nibble substitution. Funk ija N S zameuje svaki nibl N iz staa niblom S(N ), ne meajui
redosled niblova. Prema tome, stae NN NN transformixe se u
) S(N )
stae S(N
S(N ) S(N )
Funk ija SR: Skraeni a SR potiqe od shift row. Funk ija N S stae
N
N
transformixe se u stae NN NN .
N
N
Funk ija M C : Skraeni a M C potiqe od mix column. Kolona [N , N ]
u stau odgovara elementu N z + N prstena F [z]/(z + 1). Tako
koloni [N , N ] , gde je N = 1010 i N = 1001, odgovara elemenat
(x + x)z + (x + 1). Ovde, kao i ranije, F [z] oznaqava polinome po z
sa koefi ijentima iz F . Prema tome F [z]/(z + 1) podrazumeva da
se polinomi posmatraju po modulu z + 1; zbog toga je z = 1. Prema
tome, skup predstavnika sastoji se od 16 polinoma po z stepena manjeg od 2. Funk ija M C mnoi svaku kolonu polinomom c(z) = x z + 1.
U ovom primeru
Ki

Ki

j
3

16

16

16

16

[((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 N , N , gde je N = 1000 i N = 0111. Primetimo


da polinom z + 1 = (z + 1) nije nesvod iv nad F , pa F [z]/(z + 1)
nije po e, xto znaqi da nisu svi egovi elementi invertibilni;
meutim, polinom c(z) jeste invertibilan. Drugim reqima, funk ija
M C transformixe kolonu
b b b b
u kolonu bb bb bb bb bb bb bb bb bb bb
b b b b
Kompozi ija funk ija A M C SR N S je i-ta runda algoritma
xifrovaa. Prema tome, uproxeni algoritam ima dve runde. Pored toga,
primeuje se dopunska transforma ija A pre prve runde, a posleda
runda nema transforma iju M C ; ova qieni a bie objaxena u sledeem
ode ku.
25
2

l
2

16

16

0 1 2 3

4 5 6 7

Ki

12.8 Dexifrovae

Primetimo da za proizvo ne funk ije (za koje je definisana kompozi ija


i inverzne funk ije) vai (f g) = g f . Pored toga, ako je kompozi ija funk ije sa samom sobom identiqno preslikavae, onda je funk ija
sama sebi inverzna; tada se kae da je ona involu ija. Sve funk ije A
su involu ije. Iako je i SR involu ija kod SAES , zbog toga xto ona nije
involu ija kod AES izraz SR nee biti uproxavan. Dexifrovae je
prema tome definisano kompozi ijom
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,
pa se rezultatu dodaje a(y) b(y) = y + y u prstenu F [y]/(y + 1). Posle
toga nibl se invertuje u F . Umesto svega toga, moe se koristiti unapred
izraqunata tabela funk ije S .
Poxto je M C mnoee sa c(z) = x z + 1, funk ija M C je mnoee
sa c(z) = xz + (x + 1) u F [z]/(z + 1).
Dexifrovaesemoe obavitina gore opisani naqin. Sadaemo videti
razlog zaxto u posledoj rundi nema funk ije M C . Primetimo najpre
da je N S SR = SR N S . Neka St oznaqava neko stae. Tada
je M C (A (St)) = M C (K St) = c(z) (K St) = c(z) (K )
c(z) (St) = c(z) (K ) M C (St) = A
(M C (St)). Prema tome,
M C (A (St)) = A
M C (St).
Xta oznaqava c(z) (K )? Neka su b b . . . b , b b . . . b dva bajta od kojih se sastoji K . Prvi bajt
b b b b
moemo smatrati elementom F [z]/(z + 1). ega mnoimo
b b b b
sa c(z) , pa ga ponovo pretvaramo u bajt. Isto se radi i sa b . . . b . Prema tome, c(z) (K ) ima 16 bita. Izraz A
oznaqava sabirae po
modulu dva c(z) K sa tekuim staem. Primetimo da se prilikom izvrxavaa M C stae mnoi sa c(z) (ili jox jednostavnije, koristi se
ekvivalentna tabela, qiji sadraj treba izraqunati za domai zadatak).
Da se izvrxi A
najpre se K mnoi sa c(z) (ili jox jednostavnije, koristi se ekvivalentna tabela, qiji sadraj treba izraqunati
za domai zadatak), a onda se rezultat sabira po modulu dva sa tekuim
staem.
Dexifrovae se moe vrxiti takoe primenom kompozi ije
1

Ki

K0

K1
1

K2

16

16

Ki

Ki

c(z)1 (Ki )
1
i

i
1

c(z)1 (K

0 1

i)

8 9

15

0 1 2 3

16

4 5 6 7
1

15

c(z)1 (Ki )

c(z)1 (Ki )

AK0 SR1 N S 1 Ac(z)1 K1 M C 1 SR1 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, funk ije 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 implementa iju. Ovo ne
bi bilo mogue da se M C pojav uje u posledoj rundi.
26

12.9 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
0101

0110
0100

Najpre primeujemo A (kao xto smo rekli, K


stae je:
K0

0100
0101
0101
1001

0110
0111
0100
1010

0001
1100

); novo

= W [0]W [1]

0001
1110

0100
Primenom N S i SR dobija se 0100
SR
1100 1111
0001
Primenivxi M C , dobijamo 1101
1100 1111
Zatim se primeuje A , pri qemu je K = W [2]W [3].
K1

1101
1101
1100
1100

0001
1010
1111
0110

0000
0000

1001
0010

0011
1001

1011
1001

K2

0011
1100
1001
1010

0100
1100

0011
Primenom N S i SR dobija se 1001
SR
1001 0010
Zatim se primeuje A , pri qemu je K = W [4]W [5].
1001
0110
0010
1100

0100
1111

1111
1110

1111
0011

Prema tome, xifrat je 11111110 11110011.

12.10 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 matri e
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
najpre invertuje bajt u F , pa ga onda mnoi sa a(y) = y + y + y + y + 1
i rezultatu dodaje b(y) = y + y + y + 1 u prstenu F [y]/(y + 1). Inverz
polinoma a(y) je a(y) = y + y + y; pored toga, a(y) b(y) = y + 1.
28

0 1 2 3 4 5 6 7

28

2
1

27

28
3

Funk ija ByteSub u AES je oqigledno uopxtee funk ije SubN ib |


ona svaki bajt B zameuje egovom slikom S(B). Funk ija Shif tRow ikliqki pomera vrste ulevo za 0, 1, 2, 3. Prema tome, ona stae
B0
B1
B2
B3

B4
B5
B6
B7

B8
B9
B10
B11

B12
B13
B14
B15

B0
B5
B10
B15

prevodi u stae

B4
B9
B14
B3

B8
B13
B2
B7

B12
B1
B6
B11

Funk ija M ixColumn mnoi kolonu polinomom c(z) = (x + 1)z + z +


z + x u F [z]/(z + 1). Inverzni polinom je c(z) = (x + x + 1)z + (x +
x +1)z +(x +1)z +(x +x +x). Funk ija M ixColumn pojav uje se u svim
rundama, sem u posledoj. Funk ija AddRoundKey je oqigledno uopxtee
A . Dopunska funk ija AddRoundKey sa potk uqem za rundu 0 primeuje
se na poqetku xifrovaa.
Proxirivae k uqa radi sa nizom W qiji qlanovi imaju po qetiri
bajta. K uq popuava W [0], . . . , W [3]. Funk ija RotByte ikliqki rotira
grupu od qetiri bajta za jedan bajt ulevo, sliqno kao xto se radi sa drugom
vrstom u Shif tRow. Funk ija ByteSub primeuje funk iju (tabelu) S na
svaki bajt. Kao i ranije, RC[i] = x u F , a RCON [i] je konkatena ija
RC[i] i tri bajta od svih nula. Za 4 i 43 raquna se
3

28

Ki

W [i] =

28

W [i 4] RCON (i/4) ByteSub(RotByte(W [i 1])),


W [i 4] W [i 1]),

i 0 (mod 4)
.
i 6 0 (mod 4)

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


i

12.11

AES

kao kombinovana xifra

Premextae se vrxi primenom Shif tRow. Iakoto ne moe da bude proizvo napremuta ija,da a disperzijapostie sepremextaem kolonau M ixColumn.
Zamena se postie primenom ByteSub, a AddRoundKey qini algoritam zavisnim od k uqa.
12.12 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 odgovarajuiblok xifrata, a E () oznaqava primenu blokovske xifre, onda je c = E (p ), i = 0, 1, . . .. Dexifrovae
se vrxi na osnovu izraza p = E (p ), i = 0, 1, . . .. ECB je najjednostavniji
naqin upotrebe; meutim, egov nedostatak je da za isti k uq dva ista
otvorena teksta daju iste xifrate. Ako broj bita nije umnoak 128, onda
se na kraju poruke dodaju zna i (koji obiqno poqiu sa 1, jer obiqni ASCII
zna i poqiu nulom) tako da i posledi blok ima duinu 128 bita.
Drugi (najqexi) naqin korixea je CBC (cipher block chaining). Alisa i Boban moraju unapred da se dogovore koji e (sluqajni, ne-tajni)
i

1
k

28

ini ijaliza ioni vektor (IV ) koristiti; ustvari, pre svake poruke xa e
se odgovarajui (novi) ini ijaliza ioni vektor. Rezultat xifrovaa je
c = E (c
p ), i 0. Pri tome se za xifrovae prvog bloka p koristi
ini ijaliza ioni vektor, odnosno uzima se da je c = IV . Dexifrovae:
p =c
E (c ).
Trei naqin korixea je CFB (cipher feedback). On takoe podrazumeva upotrebu ini ijaliza ionog 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
xifrovati/dexifrovati npr. niz bajtova. Za razliku od toga, u reimu
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 ).
Niz k uqa dobija se konkatena ijom Z Z Z . . .. Xifrat se dobija sabiraem sa nizom k uqa, c = p Z , i 0, pa je dexifrovae p = c Z .
i

i1

i1

1
k

i1

i1

i1

i+1
k

i1

12.13 Analiza uproxenog algoritma AES

Razmotriemo mogue napade na SAES u reimu ECB.


Ci a 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 koefi ijentima iz F , za koji se


oqekuje da ima proseqno 2 qlanova. Kada se fiksiraju (zamene) biti c ,
p (iz para odgovarajuih OT, ST), dobijamo 16 nelinearnih jednaqina sa
16 nepoznatih (biti k ). Polinomi u ovim jednaqinama u proseku imaju po
2 qlanova.
U algoritmu SAES je sve linearno, izuzev tabele S, koju emo sada
razmotriti. Oznaqimo ulazni nibl sa abcd, a izlazni nibl sa ef gh. Tada se
transforma ija koju vrxi tabela S moe opisati sledeim jednaqinama:
i

31

15

e
f

= acd + bcd + ab + ad + cd + a + d + 1
= abd + bcd + ab + ac + bc + cd + a + b + d

g
h

= abc + abd + acd + ab + bc + a + c


= 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),

29

gde su f , odnosno f funk ije od tri promen ive b, c, d odreene prvom,


odnosno drugom polovinom tabele istinitosti funk ije e. Zamenom a =
1 + a dobija se
0

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 funk iju e, a isto tako i za funk ije 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.14 Objaxee konstruk ije 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 ponavljae. Sigurnost se meri otpornoxu xifrovaa na sve poznate napade.
Efikasnost je kombina ija brzine xifrovaa/dexifrovaa i mere u kojoj algoritam koristi resurse (potreban prostor na qipu za hardversku
realiza iju, odnosno potrebna memorija za softversku realiza iju). Jednostavnost se odnosi na sloenost pojedinih koraka, kao i eline algoritma za xifrovae. Ako se algoritam moe lako razumeti, verovatnije je da
e realiza ije algoritma biti korektne. Na kraju, ponav ae se odnosi
na vixestruku upotrebu funk ija u okviru algoritma.
U naredne dve taqke razmotriemo sigurnost, efikasnost,jednostavnost
i ponav ae u algoritmu AES .
12.15 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
diferen ijalnu i linearnu kriptoanalizu. Da bi blokovska xifra bila
sigurna, ona mora da obezbeuje difuziju i nelinearnost.
Difuzija se definixe kao xiree uti aja 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.
Funk ije 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, kojase koristi u ByteSub
i proxirivau k uqa. Pored ostalog, nelinearnost je prouzrokovana in30

verzijom u konaqnom po u. To nije linearno preslikavae bajtova u bajtove. Ovde se pod linearnim (afinim, pre iznije) preslikavaem podrazumeva preslikavae bajtova (tj. osmodimenzionalnih vektora na po em F ) u bajtove koje se moe predstaviti kao mnoee matri om 8 8 i
dodavaem vektora.
Nelinearnost poveava otpornost xifre na kriptoanalitiqke napade.
Nelinearnost u proxirivau k uqa obezbeuje da poznavae dela k uqa
ili potk uqa neomoguuje jednostavnoodreivaepuno drugih bita k uqa.
Jednostavnost poveava kredibilnost xifre na sledei naqin. Korixee 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. Konstruk ija AES obezbeuje da ponav ae ne
izaziva smaee sigurnosti. Na primer, korixee konstanti RCON [i]
razbija poten ijalne sliqnosti izmeu potk uqeva.
2

12.16 Efikasnost

Oqekuje se da se AES izvrxavana 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 realiza ijom ubrza xifrovae/dexifrovae. Svaki korak moe se zbog ponav anja razbiti na nezavisna izraqunavaa. Funk ije M ixColumn i Shif tRow
nezavisnoobraujupojedinekolone,odnosnovrstestaa.Funk ija 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
enu hardvera i poveava brzinu.
Jednostavnost algoritma olakxavaegovo objaxavae,pa su zbog toga
realiza ije jednostavne i pouzdane. Koefi ijenti polinoma koji definixe F izabrani su tako da minimiziraju izraqunavae.
Uporeee AES i RC4. Smatra se da su blokovske xifre fleksibilnije, time xto omoguuju xifrovae na vixe razliqitih naqina. Blokovska
xifra moe se lako upotrebiti kao protoqna, ali obrnuto nije mogue.
U jednoj od implementa ija xifra RC4 je 1.77 puta bra od AES , ali se
smatra da je mae sigurna.
256

31

13 Napadi na blokovske xifre

13.1 Potpuna pretraga i susret u sredini

Potpuna pretraga je napad sa poznatim otvorenim tekstom. Ci a ima na


raspolagau par (OT,ST). Pretpostavimo da je duina k uqa b bita. Ona
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
ispuni ovaj uslov. Ako postoji vixe od jednog kandidata, onda ih Ci a
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.
Napad susret na pola puta (meet-in-the-middle) na blokovske xifre
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 tekst, a CT xifrat) dvostruka blokovska xifra.
Ce i 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
CT svim k uqevima K i takoe smexta na disk rezultate, sortirane prema otvorenom tekstu. Ona zatim pronalazi parove (k , k ) takve da je
E (P T ) = D (CT ) (ovde D oznaqava dexifrovae). Za ovo je dovoljan prolaz bez vraaa kroz dva priprem ena spiska. Za svaki ovakav par
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
memorijski prostor. Meutim, broj koraka je oko b2 (zbog sortiraa),
pa dvostruka xifra nije bitno sigurnija od jednostruke xifre sa jednim
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 diferen ijalna kriptoanaliza; oni e biti razmotreni u delu o kriptoanalizi.
b

55

127

K1

K2

K1

1,i

k1,i

k2,i

k2,i

2,i

k1,i

b1

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).
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.
Broj 43 najpre predstav amo u obliku zbira stepenova dvojke: 43 = 32 + 8 +
b

43

32

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.
Dakle, 87 38 63 50 87 85 (mod 103).
Na raqunaru se to radi malo drukqije. Da se izraquna b (mod m) najpre se n predstavi u sistemu sa osnovom 2, n = n 2 + n 2 + + n =
(n n
. . . n ) , n {0, 1}. Neka je a delimiqan proizvod. Na poqetku je
a = 1.
43

32+8+2+1

32

16

32

k1

43

k k1

0 2

k1

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 b2j1 (mod m)
{ b j = n2 }
if ni = 1 then
a a bj1

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

a=1
872
502
282
632
552

50
28
63
55
38

(n0
(n1
(n2
(n3
(n4
(n5

= 1)
= 1)
= 0)
= 1)
= 0)
= 1)

a
a
a
a
a
a

=
=
=

=
=

87
50
24
63
70
38

87 24 ( 872 871 )
24 70 ( 878 872 871 )
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 Sun a. Gomila od 50 listova papira
ima visinu oko 1 cm.
Ako je x realan broj, sa x oznaqavamo najvei eli 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) .
Drugialgoritamza odreivaebinarnepredstavebrojaopisuje se sledeim
pseudokodom; pretpostav a se da je broj predstav en sa 32 bita:
50

15

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]
i1

33

while i < 32
ostatak n mod 2
v[32 i] = ostatak
n (n ostatak)/2
i i+1

Kaemo da je 47 xestobitni broj. Broj ifara 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,
gde je k = log 10).
O ena vremenske sloenosti algoritama (odnosno gore grani e) obiqno se odnosi na najgori sluqaj, pri qemu se pretpostav a da je dimenzija
ulaza velika. Razmotrimo sada algoritme za nekoliko bitskih oprera ija sa brojevima. Najpre sabirae dva n-bitna broja N + M . Na primer,
sabiramo 219 + 242, odnosno 11011011 + 11110010, gde je n = 8.
2

10

111 1
11011011
11110010
--------111001101

Za ono xto se radi u jednoj koloni rei emo da je to bitska opera ija.
To je fiksirana kombina ija uporeivaa i pomeraa. Prema tome, eo
algoritam sadri n log N bitskih opera ija. Za sabirae n-bitnog i
m-bitnog broja, n m, i da e je potrebno n bitskih opera ija (jer moramo
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.
2

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 opera ija. Druga faza sastoji se od najvixe m 1 sabiraa, od
kojih se svako sastoji od najvixe n + m 1 bitskih opera ija. Dakle,
sloenost druge faze je najvixe (m 1)(n + m 1). Ukupan broj bitskih opera ija 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
34
2

tom zanemarujemo vreme pristupa memoriji i sliqno, xto je trivijalno).


Vreme izvrxavaa C 4 log N log M = C log N log M zavisi od brzine
raqunara.
Ako su f i g pozitivne funk ije 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) <
cg(n) za sve n > n , onda kaemo da je f = O(g).
Prema tome, f = O(g) znaqi da je f ograniqeno konstantnim umnoxkom
g (obiqno se za g bira najjednostavniji izraz).
Koristei ovu nota iju, sloenost sabiraa N i M (ako je N M ) je
O(log N ). Ova o ena 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

r
>0

>0

>0

>0

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

Sloenost ispisivaa ifara 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 o ena 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.
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 ).
b) O(log(p(n))) = O(log n),jer je O(log(p(n))) = O(log n ) = O(d log n) =
O(log n).
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 grani u vremena izvrxavaa najsporijeg osnovnog koraka.
g) Odrediti goru grani u vremena izvrxavaa elog algoritma (najqexe izraqunavaem proizvoda a) i v))
35
d

d1

d1

d) Odgovor treba da bude oblika O(. . .).

Podsetimo se, za mnoee F G, odnosno de ee F/G sloenost je


; sloenost sabiraa F + G, odnosno oduzimaa F G je
ako je .
Problem1.Odrediti goru grani u sloenostiizraqunavaa nzd(N, M )
Euklidovim algoritmom ako je N M .
Rexee: Izraqunavae NZD je najsporije ako su svi koliqni i 1, kao
na primer pri izraqunavau nzd(21, 13), odnosno opxtije, pri raqunanju nzd(F , F ), gde je F je n-ti Fibonaqijev broj (F = F = 1, F =
F
+ F ). Broj de ea u Euklidovom algoritmu je n 3 < n. Neka je
= (1 + 5)/2. Tada je F . Prema tome, za Euklidov algoritam je
najgori sluqaj ako je N = F , M = F . Primetimo da je n log N . Broj
de ea je n = O(log N ). Svaki korak je de ee, sloenosti O(log N log M ).
Prema tome, sloenost je O(log N )O(log N log M ) = O(log N log M ), odnosno posle zaokruivaa O(log N ). Ako se udvostruqi duina (= O(log N ))
dva broja, 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 izraqunavanje nzd(N , M ) jednako t = k(log 2 ) = k(500 log 2) = k 500 (log 2) .
Ako je M , N 2 (dakle dva puta dui brojevi), onda je za izraqunavae nzd(N , M ) potrebno vreme t = k(log 2 ) = k(1000 log 2) =
k 1000 (log 2) = k 2 500 (log 2) = 8t .
Ako su brojevi sa kojima se radi mali, npr. zapis im je krai od 32
bita, onda je za jedno de ee potrebno konstantno vreme, koje zavisi od
snage pro esora.
Problem 2. Odrediti goru grani u za sloenost izraqunavaa B
(mod M ).
Rexee. Primer: izraqunavae 11 (mod 26).
O(log F log G)
O(log F )
F G

n1

n1

n2

n1

1000

2
3

500

500 3

1000 3

26 =
11 =
4 =

1 =
=
=

2 11 + 4

24+3
13+1

413

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


faze, prva: izraqunavae NZD, druga: izraavae NZD u obliku linearne kombina ije. Sloenost izraqunavaa NZD je O(log M ). Druga faza
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
36
1

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
sloenost izraavaa NZD u obliku linearne kombina ije brojeva je
O(log M )O(log M ) = O(log M ). Ukupna sloenost inverzije po modulu
M je O(log M ) + O(log M ) = O(log M ).
Problem 3: Pretpostavimo da je B, N M . Odrediti goru grani u za
vreme izraqunavaa B (mod M ) vixestrukim kvadriraem.
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 ) .
Korak 0: Poqetak a = 1 poxto je n = 1, stavimo a = 87.
Korak 1: 87 50
poxto je n = 1, stavimo a = 87 50 24( 87 87 )
Korak 2: 50 28( 87 ) poxto je n = 0, a = 24.
Korak 3: 28 63( 87 ) poxto je n = 1, a = 24 63 70( 87 87 87 )
Korak 4: 63 55( 87 ) poxto je n = 0, a = 70.
Korak 5: 55 38( 87 ) poxto je n = 1, a = 70 38 85( 87 87 87 87 )
U najgorem sluqaju je uvek n = 1. Razmotrimo vreme izvrxavaa jednog
koraka. Neka je S tekui ostatak B (mod M ). Primetimo da je 0 a, S <
M . U prvom koraku imamo mnoee S S , O(log M ). Poxto je 0 S < M ,
sloenost svoea S je O(log(M ) log M ) = O(log (M )). Neka je H = S
(mod M ). Poxto je 0 H < M , sloenost mnoea H a je O(log (M )).
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 ) +
O(log (M )+O(log (M ) = O(log (M )). Ukupna sloenost izraqunavaa B
(mod M ) ponov enimkvadriraem je O(log N )O(log (M )) = O(log N log (M )).
Ako je N M , onda je to prosto O(log (M )).
Problem 4. O eniti sloenost izraqunavaa N ! primenom algoritma
(((1 2) 3) 4) . Uputstvo: log(A!) = O(A log A).
Primer: neka je N = 5; izraqunavae 5!:
2

43

5 4 3 2 1 0 2

16

32

3
4

32

2i

12
23

64
24 5

= 2
= 6
= 24
= 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)!)
log(N !) = O(N log N ), prethodni izraz zaokruujemo na O(N log N ). Prema
tome, sloenost najgoreg koraka je O(N log N ). Poxto je broj koraka N ,
ukupno vreme izvrxavaa je O(N log N ), xto je vrlo sporo.
Zaxto
formuli je A!
je log(A!) = O(A log A)? Prema Stirlingovoj

(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)
(ostali qlanovi su mai).
2

18
1
2

37

20

18

Kraj Problema 4.
Vremenska sloenost izraqunavaa B je O(N log B) za neke i, j 1
(vrednosti i, j odrediti za domai zadatak). Ovo je vrlo sporo.
Vremenska sloenost pronalaea najmaeg prostog qinio a N uzastopnim de eima (N/2, N/3, N/4,...) je O(N log N ) za neko j 1
(odrediti ga za domai). Ovo je vrlo sporo.
Pretpostavimo da imamo r elih brojeva kao ulaz za algoritam (npr.
r promen ivih N , N ,... N ). Na primer, za mnoee je r = 2, za faktoriza iju r = 1, svoee b (mod M ): r = 3. Za algoritam se kae da
je polinomijalne sloenosti ako je vreme izvrxavaa polinom od duina brojeva (odnosno brojeva bita u ima), O(log N log N . . . log N ).
Tako, algoritmi polinomijalne sloenosti postoje za nalaee NZD, sabirae, mnoee, de ee, stepenovae 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 eksponen ijalnu vremensku
sloenost (u odnosu na duinu N ).
Faktoriza ija ponov enim de eem je primer takvog algoritma. Qlan
logN je toliko zanemar iv, da se obiqno kae da je sloenost algoritma
O( N ) = O(N ) = O((c
) ) = O(c
) = O(c
). Poxto je 0.5n
polinompo n,ovoje eksponen ijalna sloenost. Sloenostiizraqunavaa
b i N ! su takoe eksponen ijalne.
Vremenska sloenost
trenutno najbo ih poznatih algoritam za nalaee faktora N je c
, xto je mnogo sporije od polinomijalnog, ali mnogo
bre
od
eksponen ijalnog.
Ovaj izraz je subeksponen ijalni, jer je x za velike x mae od svake (nekonstantne) polinomijalne
funk ije od x. Faktoriza ija 20- ifrenogbrojaponov enim de eem trajala bi due od starosti svemira. Godine 1999. broj od 155 ifara rastavljen je za 8000 MIPS godina. Godine 2009. faktorisan je broj od 232 ifre.
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 NPkompletnih problema. Ako se pronae polinomijalni algoritam za neki od
NP-kompletnih problema, onda za sve ih postoji polinomijalni algoritam. U pogleduvremena izvrxavaa,zna seda je P NP eskponen ijalni.
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 ovog problema bi omoguilo efikasno razbijae algoritma AES.
n

r
N

d1

d2

p(n)

1/2

log N 1/2

1/2 log N

(log N (log log N )2 )

1 2 5

4 3

1 9

38

0.5n

dr

16 Sistemi sa javnim k uqem

U simetriqnom xifarskom sistemu, ako znamo algoritam xifrovaa i


k uq za xifrovae,onda lakomoemoda odredimo algoritam dexifrovanja, 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 transforma iju (algoritam xifrovaa), ali se ne zna polinomijalni algoritam za odreivae k uqa za dexifrovae polazei od k uqa
za xifrovae.
Jednosmerna funk ija (one-way function). Neka su X , Y skupovi, i neka
je f : X Y funk ija. Za dato x X lako je izraqunati f (x) (lako/brzo
xifrovae). Za dato y Y texko je odrediti x takvo da je y = f (x)
(texko/sporo dekriptirae). Jednosmerne funk ije ne moraju biti invertibilne.
Da se u raqunaru registruje lozinka (password) lozinka faktiqki se
zapisuje f (lozinka), gde je f jednosmerna funk ija. Prilikom prijav ivaa vi unosite lozinku. Raqunar izraqunava f od uku ane lozinke i to
uporeuje sa zapisanom vrednoxu.
Prividno jednosmerna funk ija (trapdoor one-way function): invertibilna jednosmerna funk ija f , za koju je odreivae vrednosti f lako,
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.
1

16.1

RSA

Sistem RSA dobio je ime po troji i svojih pronalazaqa (Rivest, Shamir,


Adleman). Podsetimo se da ako je nzd(m, n) = 1 i a 1 (mod (n)), onda
je m m (mod n).
Boban najpre bira dva prosta broja sa oko 150 dekadnih ifara. 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)).
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
a

300

39

(to je prividno jednosmerna funk ija), pri qemu je 0 C < n; ona


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 poruku C Ci a po svemu sudei ne moe da iskoristi ako ne zna
Bobanov 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
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
stepenovae kvadriraem: 33 = 32 + 1, 207 332, 207 332 98,
207 98 543, 207 543 18, 207 18 324. Prema tome,
207 207 207 324 207 156 (mod 697).
Alisa xa e Bobanu broj 156. Polazei od broja 156 Ci i je tee da
izraquna 207.
Bobandobijaporuku 156,pa izraqunava 156 (mod n) = 156 (mod 697) =
207.Zatim on dekodira poruku (to nije deo algoritma RSA ) 207 = 726+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
n , e je Alisin javni k uq, a d je en tajni k uq.
Kada Alisa xa e poruku M Bobanu, ona izraqunava M (mod n ).
Boban za dexifrovae, odnosno izraqunavae M , koristi svoj k uq d .
Zaxto je texko odrediti d na osnovu e i n? Kao xto je reqeno, d e
(mod (n)). Odreivae inverza je efikasno (polinomijalna sloenost).
Odreivae (n) je texko ako znamo samo n, jer je potrebno rastaviti n na
qinio e; za ovaj posao znaju se subeksponen ijalni, 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).
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
rexavaem kvadratne jednaqine x + ((n) n 1)x + n = 0 na obiqan
naqin. Izraqunavae kvadratnog korena (broja koji nije obavezno kvadrat
elog broja) i obav ae ostalih aritmetiqkih opera ija zahteva vreme
O(log n). Kraj dokaza.
Prema tome, odreivae (n) texko je koliko i faktoriza ija.
Preporuke o kojima treba voditi raquna prilikom izbora parametara
za RSA, a koje e biti jasnije posle dela o kriptoanalizi:
40
(mod n)

e d

ed

33

33

16

32

32

97

eB

B
1

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 qinila .
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
spe ijalni algoritmi za faktoriza iju, 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.
Za liqnu upotrebu se obiqno koriste brojevi n od 768 bita, odnosno
n 10 . Za komer ijalnu upotrebu se obiqno koriste brojevi n od 1024
bita, odnosno n 10 . Za vane potrebe se obiqno koriste brojevi n
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
konkursa firme RSA rastav en je na qinio e 2005. godine.
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 poten ijalno rexee problema razmene k uqeva za simetriqne
sisteme.
16

231

308

617

154

193

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 eli broj i q 1. Odreivae i za zadate F ,
g i b je PDLKP (problem diskretnog logaritma u konaqnom po u, Finite
Field Discrete Logarithm Problem), | problem, koji je prema onome xto se
zna, teak kao faktoriza ija.
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
da jednaqina 2 = 5 ima rexee; to je i = 24. Kako se ovaj problem moe
rexiti efikasnije nego grubom silom? Kraj primera.
Za kripografske primene se obiqno uzima 10 < q < 10 , gde je q
veliki prost broj, ili je oblika 2 . Qieni u da je g = b moemo da
zapixemo u obliku log b = i. Ovo treba da podsea na obiqne logaritme:
log (1000) = 3 jer je 10 = 1000 i ln(e ) = log (e ) = 2. U gorem primeru
za q = 101 je log (3) = 69 (jer je 2 3 (mod 101)). Najbo i algoritmi za rexavae PDLKP imaju sloenost sliqnu faktoriza iji, odnosno
subeksponen ijalni su.

101

300

g
3

10

600

69

16.3 Protokol usaglaxavaa k uqa Difi{Helman

Protokolusaglaxavaak uqa nadkonaqnim po em Difi{Helman(PUKDH)


omoguuje da Alisa i Boban razmene k uqeve bez neposrednog susreta. Za
41

vixe korisnika A, B, C , ...fiksiraju se q i g, generator F . Brojevi q i


g se koriste u elom sistemu. Svaki korisnik ima svoj privatni k uq a
(a , a , a ,...), 1 < a < q 1, i javni k uq, koji je jednak g u po u F .
Svaki korisnik objav uje (ostatke) g , g , . . . u javnom imeniku ili na
svom sajtu. Qesto se novi par a , g kreira za svaku transka iju (razmenu poruka). U tom sluqaju Alisa mora da poxa e Bobanu g na poqetku
poruke. Ako Alisa i Boban ele da usaglase k uq za AES , oni za to koriste ostatak g . Alisa ovo moe da izraquna stepenovaem g na a .
Boban moe da izraquna isti ovaj broj stepenovaem g na a .
Ci a ima q, g, g , g , ali po svemu sudei ne moe da izraquna g
vez rexavaa PDLKP. Ovo izgleda iznenaue. Ona moe da izraquna
g g =g
, 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
iskoristi g i g . Ali odreivae a polazei od g i g je PDLKP, za
xta se ne zna efikasan algoritam.
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
privatni k uq. g = 5 44 (mod 97), pa je g = 44 Bobanov javni
k uq.
Alisa izraqunava (g ) = 44 75 (u F ), a Boban izraqunava
(g ) = 50 = 75.
Polazei od 97, 5, 50, 44, Ci a ne moe lako da dobije 75.
Praktiqni deta i: broj q 1 treba da ima veliki prost qinila (u
protivnom postoji spe ijalni, 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
128 bita binarne reprezenta ije broja g
ako je q prost broj. Ako je
F = F [x]/(f (x)), onda oni mogu da se dogovore da iskoriste koefi ijente
uz x , . . . , x u g .
Qesto Alisa i Boban generixu a i a u trenutku kontakta, i koriste
ih samo za tu razmenu poruka.

aA

aB

aA

aA

aA aB

aB

aA

aA

aA aB

aB

aA +aB

aA aB

aA aB

aA

aB

aB

36

aA

aB

aA

58

aB aA

aA aB

aB

36

97

58

aA aB

200

aA aB

127

aA aB

17 Mae korixeni xifarski sistemi sa javnim k uqem


17.1

RSA

kao algoritam za xifrovae poruka

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 porukapredugaqka,onajerazbija nablokove M , M , M , . . .,
M <n .
RSA

eB

42

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 M k uq
za AES , onda se taj k uq moe kodirati polinomom. Ako je M 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)
g , Mg
.
Alisa zna g i g (to su javni poda i) i k, pa moe da izraquna g
i (g ) = g , posle qega mnoeem dobija M g . Boban prima par.
On ne moe da odredi k, ali mu to nije ni potrebno. On najpre izraqunava (g ) = g (on zna a , svoj privatni k uq). Zatim on izraqunava
(g
) (u po u F ), a onda mnoeem dobija (M g
)(g
) = M.
AkoCi apronae k (za xtajoj po svemusudei treba rexavaePDLKP,
jer se zna g, a poslato je g ) ona moe da izraquna (g ) = g , a zatim
(g
) , pa M .
Primer: q = 97, g = 5, a = 58 je Bobanov privatni k uq, g =
44 je Bobanov javni k uq. Alisa eli da poxa e M = 30 Bobanu. Ona
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
izraqunava M g = 30 65 = 10. Ona xa e Bobanu g , M g = 83, 10.
Boban prima 83, 10. On zna a = 58, pa izraqunava (g ) = 83 = 65 =
g
. Zatim on izraqunava (g ) = 65 = 3 (tj. 65 3 (mod 97)), pa
mnoeem dobija (M g (g ) = 10 3 = 30 = M .
d

d1

d2

d3

aB k

aB

aB k

k aB

aB k

aB k

aB k

aB k 1

aB k

aB k 1

aB k

aB k

aB k 1

aB

aB

17

aB k

17

aB k

B
aB k 1

aB k

aB k

aB k

k aB

58

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
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.
Oba ova k uqa koristie se samo za jednu razmenu poruka.
Alisa izraqunava d e (mod q 1). Boban izraqunava d e
(mod q 1). Nixta od ovih brojeva se ne objav uje.
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

1
A

43

eA

1
B

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


=
xto je pak oj nerazum ivo. Alisa xa e Bobanu (M ) = M
M
= M . Na kraju Boban izraqunava (M ) = M .
K uqni je korak oznaqen zvezdi om. U suxtini, Alisa navlaqi qarapu na stopalo. Boban preko qarape navlaqi ipelu. Alisa zatim uklaa
qarapu, ne skidajui ipelu, a Boban uklaa i ipelu. Boban sada vidi
stopalo, iako ga Ci a 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
(mod 676) = 281. Alisa izraqunava 470
292 (mod 677) i xa e 292
Bobanu. Boban izraqunava 292 156 (mod 677) i xa e 156 Alisi. Alisa
izraqunava 156 313 (mod 677) i xa e 313 Bobanu. Boban izraqunava
313
470 (mod 677) i dekodira 470 kao bigram SC.
eA eB

eA eB

eA eB dA

eA eB dA

eA dA eB

eB

eB dB

255

421

395

281

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
taqka). Primer y + y = x x prikazan je na Sli i 1. Ispostav a se da se
sve kubne krive mogu dovesti na ovajoblik smenom promen ivih; ovajoblik
je pogodan za definisae opera ije sabiraa taqaka, koju emo opisati. Za
sada raqunamo nad skupom realnih brojeva.Potrebna nam je nula-taqkakoju
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 opera iju 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 koefi ijentima realan, onda je i drugi). Po defini iji 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 defini iji 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 = P . Dve razliqite taqke krive sa istom x-koordinatom su inverzne/suprotne jedna drugoj; videti Sliku 2.
Ako elimo da izvrximo sabirae P + P , taqaka sa razliqitim xkoordinatama, spajamo ih pravom i pronalazimo treu preseqnu taqku P .
Primetimo da je P + P + P = , P + P = P . Videti Sliku 3.
2

44

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


tj. x 2x + 1 = (x 1) = 0. One se seku u taqki x = 1 dva puta (zbog
eksponenta), xto je u vezi sa qieni om da je y = 2x 1 tangenta na y = x ,
videti Sliku 4.
Nazad na eliptiqke krive. Kako se moe udvostruqiti taqka P ? Treba
konstruisati tangentu na krivu i nai drugu preseqnu taqku P . P + P +
P = , pa je 2P = P 2; videti Sliku 5.
2

15
10
5

-5
-10
-15

45

1. Eliptiqka kriva sa x i y-osama


y 2 + y = x3 x

|
|
|
/
|
/
|
/
|
/
|
/
|
/
|
/
|
/
/ \ |
/
--/-----\---------- /------------|
| \
/
|
| |
|
|
| /
\
\
/
\
\ / |
\
|
\
|
\
|
\
|
\
|
\
|
\
|
\
|
|

46

2. Eliptiqka kriva bez osa.


Odreivae suprotne taqke.

/ \
/

|
|
|

\
|
/
\

/
\ /
-

0 <- 0-tacka
*
*
|
*
/
*
/
*
/
*
/
*
/
*
/
* /
* /
0 <- P1
/ *
/ *
|
*
\ *
\*
0 <- P2
* \
* \
*
\
*
\
*
\
*
\
*
\
*
|

3.

Sabirae P

+ P2

5. Udvostruqavae P .
1

/
|
/
/
P3 / *
0
* /
/
/
/

*
*
/ \

*
P2 *
\0
\
|
/
/

/
P1 |
0
* |

-P2=2P1 ->
*

/
/
/
/
/

/
/

/
|
\

\ /
-

/
/

/ \

/
\

|
|
|
\

*
\

\
|
/
\

/
/
|
\

\
\

* \ /
0
P1
*

\
\
\

\
\
*

\
0 -P3
\ =P1+P2
\
|

\
\

*
*

\
*

/
/
/ *
/ *
/
* <-(1,1)

\
\
\__/
*
*

Primer. Taqka P = (1, 0) oqigledno pripada krivoj y + y = x x.


Odredimo 2P . Odreujemo tangentu u P impli itnim diferen iraem.
2y +
= 3x 1. Dakle,
=
i | = 2. Jednaqina tangente je
y 0 = 2(x 1), tj. y = 2x 2. Gde tangenta seqe y + y = x x? Tamo gde je
(2x 2) + (2x 2) = x x, odnosno x 4x + 5x 2 = 0 = (x 1) (x 2).
47
2

dy
dx

dy
dx
2

dy
dx

3x2 1
2y+1

dy
dx (1,0)
2

\
* \
0 P2
\

4. y = x2 i y = 2x 1
\
\
\
\

0
/

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 saistom 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
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? Elimina ijom y dobija se
(3x+3) +(3x+3) = x x, tj. x 9x +20x12 = 0 = (x1)(x2)(x6)
(primetimo da mi znamo da prava seqe krivu za x = 1 i x = 2, pa je
(x 1)(x 2) qinila polinoma x 9x + 20x 12, pa je odreivae treeg
korena lako). Trea preseqna taqka ima x-koordinatu x = 6 i lei na
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.
Poxto je sabirae taqaka niz algebarskih opera ija, mogu se izvesti
izrazi za zbir. Neka su zadate taqke P = (x , y ), P = (x , y ) i P 6= P .
Da bi se izraqunala taqka P = (x , y ) = P + P , najpre se izraqunavaju
2

ako je x

6= x2

, odnosno

y2 y1
,
x2 x1

3x21 + 2a2 x1 + a4 a1 y1
,
2y1 + a1 x1 + a3

y1 x2 y2 x1
x2 x1

x31 + a4 x1 + 2a6 a3 y1
2y1 + a1 x + a3

ako je x = x , a zatim, u oba sluqaja, x = + a a x x i


y = ( + a )x a .
Skup taqaka krive je grupa za ovako definisano sabirae. Aso ijativnost 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,
= 3, =
= 3. Dakle, x = (3) +
x = 2, y = 3. =
0(3) 0 1 2 = 6 i y = (3 + 0)(6) 3 1 = 14. Zak uqujemo da je
(1, 0) + (2, 3) = (6, 14).
1

3
30
21
3

4
02(3)(1)
21

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 6= 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,
48
p

13

,
,
. Jednaqina y = 12 ima dva rexea y = 5 = 5, 8.
Ako je generator, onda su g kvadrati, a g nisu.
Postoje efikasni algoritmi za utvrivae da li je neki elemenat po a
F kvadrat, odnosno ako jeste | za raqunae korena iz ega. Za p > 3
jednaqina eliptiqke krive moe se smenom promen ivih transformisati
u oblik y = x + a x + a .
Primer. Neka je E kriva y = x + 1; odrediti E(F ) (taqke sa koordinatama u F ). Korisno je prethodno izraqunati kvadrate: 0 = 0, 1 = 1,
2 = 4, 3 = 4, 4 = 1.
102 = 9 112 = 4 122 = 1
g

2k

2k1

x x3 + 1 y = x3 + 1
0
1
1 = 1, 4
1
2
2
4
2 = 2, 3
3
3
4
0
0

tacke
(0, 1), (0, 4)
(2, 2), (2, 3)
(4, 0)

Skup E(F ) ima dakle 6 taqaka.


Taqke nad konaqnim po em se mogu sabirati korixeem jednaqina
pravih ili primenom izraza za sabirae. Ako je G = (2, 3), onda je 2G =
(0, 1), 3G = (4, 0), 4G = (0, 4) (primetimo da ovataqkaima 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
E(F ) ima 123 taqaka i da je generisan taqkom G = (0, 1). Taqka (39, 45)
je u E(F ) jer je 39 + 39 + 1 63 (mod 109) i 45 63 (mod 109). Dakle,
(39, 45) = (0, 1) + (0, 1) + ... + (0, 1) = n(0, 1) za neki prirodni broj n.
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.
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.

x x +1 y = x +1
taqke
5

109

109

109

50

0
1
2
3
4
5
6

1
2
2
0
2
0
0

1
3
3
0
3
0
0

49

(0, 1), (0, 6)


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

p
2

Prema tome, E(F ) ima 12 taqaka.


7

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

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

Sve taqke su oblika nQ + mR, pri qemu n Z/6Z i m Z/2Z. Primetimo


da su koefi ijenti krive y = x + 1 i koordinate taqaka definisane po
modulu 7, a da se taqke sabiraju po modulu 6. U ovom sluqaju dve taqke
generixu 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.
2

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
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
je y = x + a x + a ) (mod p), pri qemu je nG = za neki veliki broj
n. Podsetimo se da je nG = G + G + + G (n sabiraka). Broj n treba da
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 spe ijalni
algoritmi za rexavae ECDLP).
Svaki korisnik ima privatni broj a , a , ...i javni k uq | taqku
a G, a G,.... Zasvoju komunika ijuAlisa i Bobankoristie k uq a a G.
Primer. p = 211, E : y = x 4, G = (2, 2). Ispostav a se da je
241G = . Alisin privatni k uq je a = 121, pa je en javni k uq a G =
121(2, 2) = (115, 48). Bobanov privatni k uq je a = 223, pa je egov javni
k uq a G = 223(2, 2) = (198, 72). ihov zajedniqki (dogovoreni) k uq je
a a G. Prema tome, A izraqunava a (a G) = 121(198, 72) = (111, 66), a B
izraqunava a (a G) = 223(115, 48) = (111, 66). Prema tome, (111, 66) je ihov zajedniqki k uq, koji mogu da koriste za neki simetriqni xifarski
sistem.
Primetimo da je utvrivae koji umnoak taqke G = (2, 2) daje Alisin
javni k uq (115, 48) ustvari instan a 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
k uqa iskoriste kao k uq za AES .
50
50

p
3

2
1

3
1

4 1

A B

A B

50

Praktiqne preporuke: Za PUKDH se obiqno koriste vrednosti q >


, dok se za ECDH obiqno uzima q > 10 . Razlog za ovo je qieni a da je sabirae dve taqke na eliptiqkoj krivoj mnogo sporija opera ija
od mnoea u konaqnom po u. Meutim, poxto je q mnogo mae za ECDH,
to nadoknauje sporost osnovne opera ije. Pored toga, u pogledu rexavaa ECDLP nije bilo napretka u posledih 20 godina, dok se rexavae
FFDLP stalno usavrxava.
10200

50

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
x-koordinatom neke taqke, ali nisu svi brojevi x-koordinate nekih taqaka
(samo otprilike svaka druga od ih). Isto tako, nisu ni svi brojevi ykoordinate nekih taqaka (samo otprilike svaka druga od ih). Ako npr.
pokuxamo da kodiramo slovo I = 8: 8 4 = 15 6= k (mod 29) (15 nije
kvadratni ostatak po modulu 29).
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
ifrerednom broju slovaslui kaokod togslova.Poxtosemoe izabrati
jedna od 10 ifara, a svaka od ih daje poten ijalnu x-koordinatu taqke
sa verovatnoom 50%, ovo rexee moe da funk ionixe (u praksi se moe
poru i 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.
x = 110, 110 4 250 6= k (mod 257).
x = 111, 111 4 130 6= k (mod 257).
x = 112, 112 4 162 26 (mod 257).
Prema tome, (112, 26) je taqka na krivoj, i sve ifre x-koordinate, sem
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
prima poruku, izraqunava a kG; oduzimajui to od Q + ka G, on dobija
taqku Q, otvoreni tekst.
Primer. p = 257, E : y = x 4, G = (2, 2), a = 101, a G =
101(2, 2) = (197, 167) (to je taqkakojaje Bobanovjavni k uq). Alisa eli da
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.
Boban prima par i izraqunava a (kG) = 101(136, 128) = (68, 84), pa (Q +
ka G) (a kG) = (246, 174) (68, 84) = (246, 174) + (68, 84) = (112, 26).
On zatim uzima sve sem poslede ifre x-koordinate i dobija 11 = L.
2

29

29

51

I u ovom kontekstu udi radije koriste po a tipa F . Postoje subeksponen ijalni algoritmi za rexavae FFDLP u F i za faktoriza iju
n, pa se obiqno koristi q n > 2 . Najbo i poznati algoritam za rexavae ECDLP u E(F ) ima sloenost O(q), xto je eksponen ijalno.
Zbog toga se obiqno radi sa vrednostima q > 10 . Potrebno je vixe vremena za sabirae taqaka eliptiqke krive nego za mnoee u konaqnom po u
(ili po modulu n) za 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
situa iji kad je na raspolagau mala memorija, odnosno kad izraqunavaa
treba da budu jednostavna, kao kad se koriste pametne karti e.
2r

200

50

19 Hex funk ije, MD5, kodovi za autentika iju (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 funk ija treba da ima sledee
osobine
1. Potrebno je da se ene vrednosti lako (brzo) izraqunavaju.
2. Hex funk ijatreba dabude jednosmerna funk ija (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
funk ija jako otporna na koliziju, onda je i slabo otporna na koliziju.
Zbog toga se obiqno od hex funk ija zahteva jaka otpornost na koliziju.
Da se napravi hex algoritam, obiqno se polazi od funk ije 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 funk iju zove se poruka.
Izlaz hex algoritma je hex ili hex vrednost.
Funk ija f moe seiskoristiti za dobijaehex funk ije. 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.
Zadat je unapred dogovoreni blok od t bita (ini ijaliza ioni 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 jedini a). Poruka se razbija u
blokove od po m = 128 bita, a za f se uzima f (u, v) = AES (v) (ovo je tzv.

i1

AES CBC-MAC).

52

Primer 2. Sliqno kao u prethodnom primeru, izuzev xto se umesto fiksiranog IV koristi tajni k uq. Tada se hex funk ija zove autentika ioni kod poruke ili MAC (message authentication code). MAC je dakle
hex funk ija sa tajnim k uqem.
Primer 3. Razmotrimo sledei s enario. 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 AES . Ona razbija poruku na n blokova: P T , ...,P T . Svaki od ovih
blokovaona xifruje algoritmom AES sak uqem k , i dobija xifrate ST ,
...,ST . Zatim Alisa izraqunava MAC niza P T P T . . . P T koristei
k uq k , kao u Primeru 2, i xa e (nexifrovani) MAC Bobanu.
Boban prima ST , ...,ST i dexifruje ih k uqem k . SadaBoban,poxto
ima niz blokova P T , pomou k uqa k odreuje MAC . Tako on moe da
proveri da li se taj MAC slae sa onim dobijenim iz poruke. Ako postoji
slagae, onda on moe da bude siguran da poruku niko usput nije promenio.
Bez MAC Ci a bi mogla da presretne ST , ...,ST i da neke delove
xifrata namerno promeni (iako to dexifrovaem ne bi dalo smislenu
poruku, jer Ci a ne zna k uq).
Ako Ci a 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 funk ija. Neka KM oznaqava konkatena iju 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 ).
1

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
funk iji f . Funk ija 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 32-bitna registra


A, B, C, D (stae svakog od ih je neka req). Na poqetku je A = A =
0x01234567, B = B = 0x89abcdef , C = C = 0xf edcba89, D = D =
0x76543210. Oznaka 0x oznaqava da iza e sledi heksade imalni broj. Na
taj naqin niblovi 0000, 0001, . . . , 1111 predstav aju se iframa 0, 1, . . . , f .
0

19.1.2 Qetiri funk ije

Definisaemoqetiri funk ije,


od kojihsvakaima ulazodtri reqi X, Y, Z .
,
F (X, Y, Z) = XY XZ
53

G(X, Y, Z) = XZ Y Z
H(X, Y, Z) = X Y Z

I(X, Y, Z) = Y (X Z)
1 = 0 0 = 1

,
.
Ovde je , (to je nega ija); je disjunk ija (ili), a mnoee
je konjunk ija (i). Opera ije nad reqima izvode se istovremeno sa svim
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 XZ XY XZ
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 de imalne taqke
u binarnoj reprezenta iji |sin(i)|.

19.1.4 Oznake za rota iju

Ako je E 32-bitni blok i 1 n 31, neka E <<< n oznaqava ikliqku


rota iju 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.
Oznaka x y oznaqavadodelu trenutne vrednosti promen ive y promen ivoj
x. Tako, ako je u nekom trenutku x = 4, onda posle x x + 1 promen iva x
ima novu vrednost 5.
32

32

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 opera iju a b + ((a + F (b, c, d) + X[k] +
T [i]) <<< s). Ovih 16 koraka su
54

[ABCD
[ABCD
[ABCD
[ABCD

0
4
8
12

7
1] [DABC
7
5] [DABC
7
9] [DABC
7 13] [DABC 13

1
12 2] [CDAB
5
12 6] [CDAB
9
12 10] [CDAB
12 14] [CDAB
14

2
6
10
17

17
3] [BCDA
17
7] [BCDA
17 11] [BCDA
15] [BCDA
15

Runda 2 sastoji se od narednih 16 koraka.


Neka [abcd k s i] oznaqava opera iju a b + ((a + G(b, c, d) + X[k] +
T [i]) <<< s). Ovih 16 koraka su
[ABCD
[ABCD
[ABCD
[ABCD

1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]


5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]

[ABCD
[ABCD
[ABCD
[ABCD

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


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

3
7
11
22

22
4]
22
8]
22 12]
16].

5
1
13
9

21
21
21
21

Runda 3 sastoji se od narednih 16 koraka.


Neka [abcd k s i] oznaqava opera iju a b + ((a + H(b, c, d) + X[k] +
T [i]) <<< s). Ovih 16 koraka su
Runda 4 sastoji se od posledih 16 koraka.
Neka [abcd k s i] oznaqava opera iju a b + ((a + I(b, c, d) + X[k] +
T [i]) <<< s). Ovih 16 koraka su
[ABCD
[ABCD
[ABCD
[ABCD

0
12
8
4

6
6
6
6

49]
53]
57]
61]

[DABC
[DABC
[DABC
[DABC

7
3
15
11

10
10
10
10

50]
54]
58]
62]

[CDAB
[CDAB
[CDAB
[CDAB

14
10
6
2

15
15
15
15

51]
55]
59]
63]

[BCDA
[BCDA
[BCDA
[BCDA

Na kraju se dodaju saquvane reqi sa poqetka: A A + AA, B B + BB,


,
. Izlazna vrednost f je konkatena ija ABCD,
ukupno bita.
C C + CC D D + DD
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
opera iju a b + ((a + F (b, c, d) + X[k] + T [i]) <<< s). Kako je korak 1
[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
2 , gde je X[0] poqetak 512-bitne ulazne poruke, a T [1] se dobija od sin(1).
Dobijeni rezultat, posmatran kao req, ikliqki se pomera za 7 bita ulevo.
Na kraju se tome dodaje B po modulu 2 . Sada je A = A , B = B , C = C ,
D=D .
0

32

32

55

52]
56]
60]
64]

Sada prelazimo na korak 2. Podsetimo se da [abcd k s i] oznaqava


opera iju 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
A, B, C, D neka je rezultat oznaqen sa A , B , C , D .
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,
C = 0x98badcf e, D = 0x10325476.
Zatim izvrxavamo gore opisani algoritam i dobijamo 128-bitnu req
ABCD = A B C D . (Izlaz iz koraka 6164 je A , B , C , D ; posle
sabiraa po modulu 2 AA = A , BB = B , CC = C , DD = D , izlaz je
A B C D .)
Zatim se S razbija na 16 reqi X[0], . . . , X[15], naravno u opxtem sluqaju razliqitih od prethodnih reqi X[0], . . . , X[15]. Zatim se izvrxava gore
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 =
A B C D .
Zatim se S razbija na 16 reqi X[0], . . . , X[15] i ponovo izvrxava gore
opisani algoritam, sa tom razlikom da su poqetne vrednosti A, B, C, D
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
iz algoritma, odnosno hex vrednost.
Napomene.
1. Tehniqki, da bismo funk iju f proizveli u hex funk iju, moemo
da pixemo f (X) = f (A , B , C , D , X). Sada je f (X) preslikavae 512-bitnih blokova u 128-bitne blokove.
2. Poruka se uvek dopuuje. Ona se najpre dopuuje tako da ena duina
bude 64 448 (mod 512). Dopuavae se vrxi jednom jedini om i
potrebnim brojem nula. Qak i ako je duina poruke 448 (mod 512),
dodaje se jedna jedini a 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 jedini a i 283
nule. Sada je duina poruke 1984 bita, 1984 448 64 (mod 512).
Da e, poxto je 1700 = (11010100100) , poru i se dopisuje
1 2 3

16

16

16

16

16

16

16
32

16

16

16

16

16

32

16

32 32

16

16

16

32

32

48

32

hash

48

48

32

48

32

hash

0000000000000000000000000000000000000000000000000000011010100100

56

tako da je sada duina poruke 1984 + 64 = 2048 = 4 512.


3. Funk ija f je komplikovana jer se u svakom koraku naizmeniqno primeuju bitske opera ije (F, G, H, I ) i sabirae po modulu 2 ,
opera ija sa elim blokovima (sa prenosima na vixe pozi ije, za
razliku od bitskih opera ija). Qieni a 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.
hash

20

32

Potpisi i autentika ija

Razmotrimo ovaj s enario. Ci a xa e poruku Amazonu i kae "Ja sam


Ed". Ci a pravi dva k uqa za AES i xa e ih Amazonu xifrovane javnim
k uqem Amazona. Zatim Ci a xifruje poruke koristei prvi k uq za
AES. Poruka moe da bude "Poxa ite mi En iklopediju Britaniku, a
raqun poxa ite Edu". Na kraju Ci a 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 ao a zove se autentika ija. Autentika ija povezuje javni k uq sa osobom ili institu ijom.
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 transforma ija za slae poruka Buxu (u sistemu
RSA , C f (P ) = P
(mod n )). Tada je f
dexifrovae koje vrxi
Bux (u sistemu RSA , P f (C) = C (mod n )).
Svi znaju f i f . Samo G zna f , samo T zna f .
Sluqaj 1. T xa e poruku P osobi G, bez xifrovaa. Na kraju je potpisuje "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
G

eG

1
G

1
T

dG

1
G

57

1
G

1
T

time. Ovo ne moe da uradi niko drugi osim T . G moe da izraquna


f (f ( T oni Bler )) = T oni Bler . Poten ijalni problem je u tome xto i
neprijate moe da 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 ela 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
znaju F , pa G izraqunava f (f (P )) = P. Bez prve poruke G bi f (P )
smatrao za xifrat i ne bi znao koji k uq za f da iskoristi. B zna da
poruku nije poslao L, jer on ne zna f .
Sluqaj 3. Toni Bler xifruje otvoreni tekst P algoritmom AES . On
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.
Toni izraqunava P (mod n ) i xa e to G. Prema tome, 0 P
(mod n ) < n . Toni izraqunava P
(mod n ), gde je 0 P
(mod n ) <
n . Zatim on izraqunava (P
(mod n ))) (mod n ), broj mai od n , i
xa e to G.
U nastavku emo podrazumevati da je npr. P rezultat svoea stepena
po odgovarajuem modulu (n ).
or
izraqunava (P ) = P (mod n ), pa zatim ((P ) ) = P
(mod n ), i na kraju (P ) = P (mod n ).
Problem je u tome xto G ne moe da uradi istu stvar kad xa e poruku
T , zbog n > n . Na mestu oznaqenom sa T bi imao izraz P
(mod n ).
Pri tome je mogue da bude n < P < n . Ako je n za dve ifre due
od n , onda P (mod n ) moe da bude kongruentan sa 100 razliqitih
brojeva po modulu n .
Primer. n = 1000, n = 100000, i neka P ima vrednost 10008. Broj
10008 ima jedinstveni ostatak po modulu n , ali taj broj po modulu n
daje ostatak 8. Zbog toga je nemogue rei da li je taj ostatak 8, 1008, 2008,
..., 99008. Ovih sto vrednosti imaju razliqite ostatke po modulu n , ali
jedan isti ostatak po modulu n .
Kako se ovaj problem moe rexiti? Poxto je n > n , G treba da xa e
f (f (P )). T zna da da je poruka od G iz dela P , i zna da je n < n , pa
izraqunava f (f (f (P ))) = f (P ), posle qega primeuje f .
Dakle, kad se poruka xifruje, uvek se najpre primeuje malo n, pa
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?
Kad se xa e, najpre se primeuje malo n, pa veliko n.
T

1
T

1
T

1
G

1
G

1
T

1
T

1
T

1
T

1
M

eG
1

dT
2

dT
2

eG

eG
1

dT
2

dT
2

T
eG dG
1
dT eT
2

dG
2

dG
2

dT eG dG
2

dT
2

dG
2

dG
2

1
G

1
G

T
1
T

58

Najpre potpis: 97 (mod n ) = 97 (mod 209) = 108, pa xifrovae:


108 (mod n ) = 108
(mod 221) = 56.
T xa e G xifrat 56; neprijate vidi samo to, xifrat 56.
G prima 56. Primala primeuje najpre veliko n, pa malo n. 56
(mod n ) = 56
(mod 221) = 108. 108 (mod n ) = 108
(mod 209) =
97.
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: 112 (mod n ) = 112 (mod 221) = 31.
G xa e T potpis 31; neprijate vidi 31.
T prima 31. Primala primeuje najpre veliko n, pa malo n. 31
(mod n ) = 31
(mod 221) = 112. 112 (mod n ) = 112
(mod 209) =
101. U praksi se obiqno potpisuje MAC .
dT

eG

131

187

dG

115

eT

eT

dG

191

115

191

eG

187

dT

131

20.2 El Gamalov potpis

Algoritam potpisivaa El Gamalposluio je kaoosnovazanexto 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 qesto meaju.
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.
Zatim ona rexava po x kongruen iju S a r + kx (mod p 1). Prema
tome, x k (S a r) (mod p 1). Primetimo da je g g

g g (g ) (g ) (g ) r (mod p).
Alisa xa e r, x, S Bobanu kao potpis. Bob utvruje da je poruka od
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.
Zaxto? Samo Alisa je mogla da rexi x k (S a r) (mod p 1), jer
jedino ona zna a .
Primer. p = 677, g = 2. Neka je MAC poruke 316 = S. Alisin privatni 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) = 1). Alisa izraqunava r = g = 2
616 (mod p), pa
je r = 616. Ona rexava kongruen iju S = a r + kx (mod p 1), odnosno
316 = 307 616 + 401 x (mod 676). Dakle, x 401 (316 307 616). Sada
je 401 617 (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). On utvruje da je g g 625 96 424 isto xto i g 424


(mod 677). Kraj primera.
A

aA

aB

aA r kx

aA r

k x

aA r+kx

aA r x

aA r x

aA

307

401

316

aA r

616

aA r kx

59

512

20.3 Xnorov postupak autentika ije 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 uqesni i sistema. Svaka
osoba ima privatni k uq s i javni k uq v a (mod p).
Autentika ija: 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 t bie objaxena kasnije). A izraqunava y = r + s e (mod q)
i vraa to osobi B. B izraqunava a v (mod p), i proverava da li je to
jednako x. Na taj naqin se ustanov ava da je osoba koja je poslala y upravo
osoba qiji je javni k uq v .
Xnor (Schnorr) Predlae da se radi sa vrednostima parametara p
i t = 72.
2 ,q2
Potpis: Alisa eli da potpixe poruku M . Ona bira sluqajno r < q
i izraqunava x = a (mod p). Alisa nadovezuje M i x , pa primenom hex
funk ije 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
poslata nexifrovana). On izraqunava a v (mod p) i proverava da li
je to jednako e . Na kraju on proverava da li je e jednako hex vrednosti
konkatena ije 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
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 ).
q

y e
A

140

512

y e
A

20.4 Vremenski peqat

Ako imate xtampani dokument i elite da dokaete da je postojao odredjenog 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 poda ima. Ako ti poda i sadre datum,
datum se lako moe zameniti drugim. Rexee je vremenski peqat (timestamping). 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.
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
Alise. Neka je H hex vrednost koju je Tomi poslao I , i neka je
T
vremenski peqat te poruke.
3. Toma izraqunava L kaohex vrednostqetvorke (I , H , T , L ),
gde je L je prethodna takva hex vrednost. Neka je t vreme kad Toma
izraqunava vremenski potpis Alisinog dokumenta.
60
n

n1

n1

n1

n1

n1

n1

n1

n1

n1

4. Toma potpisuje poruku (n, A, H , t , I , H , T , L ); to je T ,vremenski potpis Alisinog dokumenta.


5. Posle izraqunavaa n+1-og vremenskog peqata Toma xa e Alisi ime
osobe koja je kreirala n + 1-i dokument, tj. I .
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
odri ae (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.
n

n1

n1

n1

n+1

20.5 KERBEROS

Protokol je niz koraka koje izvrxavaju bar dva uqesnika, qime se izvrxava neki zadatak. KERBEROS je protokol autentika ije 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
K
oznaqava k uq koji se koristi za razmenu poruka izmeu X i Y . Neka
{m}K oznaqava xifrat poruke m k uqem K .
Pretpostavke: samo C i K imaju k uq K ; samo K i T GS imaju k uq
K
; samo T GS i S imaju k uq K .
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 uku ate 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
61
X

X,Y

T GS

C,T GS

C,T GS

T GS

moe da koristi vixe osoba, kao xto je npr. Unix server; v je period vaea ovlaxea. Poruka {c, a, v, K } se zove ovlaxee za
izdavae ovlaxea (ticket-granting ticket, TGT).
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.
4. T GS xa e C : {K }K , {c, a, v, K }K
5. C xa e S: {c, a, v, K }K , {c, a, t}K
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.
C,T GS

C,T GS

C,S

C,T GS

C,S

20.6

T GS

C,S

C,T GS

C,S

PKI

Infrastruktura sistema sa javnim k uqem (PKI , public key infrastructure)


omoguuje uqesni ima u mrei da budu sigurni u pogledu identiteta ostalih uqesnika. To je autentika ija. Ako Alisa eli da proveri identitet
Bobana, onda PKI obezbeuje odgovarajui softver na enom i egovom
raqunaru, i eventualno hardver. PKI koristi sertifika ione nizove ili
mreu poverea i odreene protokole. U nastavku emo objasniti sertifika ione nizove i mreu poverea.
20.6.1 Sertifikati

Ed koristi svoju karti u Bank of America (BA) u filijali Fargo Bank of


North Dacota (BN D). BN D se povezuje sa BA. BA i BN D koriste RSA da
uspostave zajedniqki k uq za AES . BN D xifruje poruku "Skinite $60
sa Edovog raquna u Ban i Severne Dakote da nadoknadite naxu gotovinu".
Kako BN D zna da javni k uq za RSA stvarno pripada BA, a ne nekom
hakeru?
Firma Verisajn (Verisign, Mountain View, V ), je autentika ioni entar
(CA, certification authority). Prikazaemoukratko kakosveovofunk ionixe.
BA je napravilajavni k uq i dokument u kome pixe "javni k uq za RSA
pripada Bank of America. Zatim predstavni i BA odlaze u nadlenu
ustanovu sa identifika ionim dokumentima. Dokument se zavodi, k uq za
RSA xa e se u V .
V koristi svoj javni k uq da potpixe sledei dokument:
Version: V3
Serial Number: (niz heksadekadih ifara)
Issuer: Verisign
Valid from: April 7, 2006
Valid to: April 6, 2007
Subject: bankofamerica.com
Signature Algorithm: MD5/DSS

62

heksadekadnih ifara)

Public key for signing: X (1024

bita k uqa a za DSS u obliku niza


BA

bita za n , kratki e , u obliku


niza heksadekadnih ifara)
Certification path: Bank of America, Verisign.
Hash: (potpis V hex vrednosti svih prethodnih podataka iz ovog sertifikata).
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).
Pre iznije, postoji sertifika iono stablosa V ( Verisajn) na vrhu. Na
univerzitetu moe da postoji autentika ioni entar (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
autentika ioni server na univerzitetu Santa Klara SCU , a da je sertifikat SCU potpisao V . Edov raqun je u BASC (Bank of Americas 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
Encryption Algorithm: RSA
Public key for encryption: Y (1024

BA

BA

Subject: bofasantaclara.com
Public key for signing: Z
Public key for encrypting: A
Certification path: Bank of America Santa Clara, Bank of America, Verisign.
Hash: (
BA
X

potpis (k uqem ) hex vrednosti svih prethodnih podataka


iz ovog sertifikata).
Edov brauzer zna javni k uq V , jer i Edov brauzer koristi Verisajn. Iz
sertifika ionog 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 sertifika ije. Za ozbi an nivo,
vi morate da pokaete svoju liqnu kartu. Moe se dobiti sertifikat
nieg nivoa, koji u osnovi sadri informa iju "e-mail adresa eschaefer@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.
Ne koriste svi Verisajn. Pretpostavimo da Finska i Iranska vlada
imaju svoje autentika ione servere. Svaki od ih moe da verifikuje
sertifikat onog drugog. To se zove uzajamna sertifika ija.
Verisajn moe da opozove sertifikat u bilo kom trenutku. Verisajn
quva spisak opozvanih sertifikata. Jedan od razloga zbog kojih Verisajn
63
E

moe da opozove sertifikat je gubitak tajnosti javnog k uqa (tj. postoji


opasnost da neko drugi iskoristi k uq koji je zapisan kod Verisajna).
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 kriptografiju, potpise i hex funk ije. Najinteresantniji deo
je da program umesto sertifika ionih lana a koristi mreu poverea.
Mrea poverea je dobra za pojedinaqne korisnike, ali se ne koristi za
poslovne primene.
Korisni i 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 eo sertifikat, qiji je deo S (K )). Svaki
korisnik ima prsten javnih k uqeva. Na primer, prsten javnih k uqeva
Alise sadri k uqeve osoba sa kojima Alisa eli da komuni ira (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
Ci a S (K )
Visok
Visok
Dea S (K )
Visok
Sredi
Ed S (K )
Visok
Nizak
Ci a S (K )
Visok
Laza S (K )
Visok
Marko S (K )
Sredi
PGP

C
@
RH
@

lH

A
L
E

H
X Y

M
M
M

U ovom dijagramu
znaqi da je S (K ) u prstenovima i X i
. Da e, X Y znaqi da je u oba prstena, a X ima potpuno poveree u
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 poveree u
javni k uq uqesnika F .
Alisa eli da poxa e poruku G. Prsten uqesnika G sadri S (K ).
Y

64

Meutim, Alisa ima osrede poveree u D-ove sertifikate drugih k uqeva. 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
k uqeva, a dve osrede o ene imaju za posledi u 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 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
osobe N .
Ako Alisa xa e poruku F , PGP e to dozvoliti. Ako Alisa xa e
poruku I , PGP e izba iti poruku da ona nema osnova za poveree u javni
k uq osobe I .
Re imo 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
svaki drugi uqesnik) neka vrsta autentika ionog servera.
Jedan od problema sa mreom poverea je u vezi sa opozivaemk uqeva.
Nemogue je garantovati da niko nee koristiti opozvani k uq (poxto je
distribu ija k uqeva adhok).
PGP koristi RSA usaglaxavae k uqeva, DSS (DSA) za potpisivae
i SHA i MD5 za potpisivae.
D

20.7 Sigurnost na internetu

Dva osnovna protokola za obezbeee sigurnosti na internetu su SSL (Secure Sockets Layer) i IPSec .
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 je
standardna i koriste je svi koji koriste Netskejp. Podsetimo se da je
B

aB

65

samo varijanta sistema ElGamal, pa koristimo nota iju 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
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.
3. Boban dexifruje poruku b, izraqunavxi a = b (mod n ), i tako
dobija k uq za AES i k uq za MD5{MAC .
4. Boban zatim xifruje svoju poruku za Amazon. Ta poruka moe da
sadri egovu poru
binu, broj kreditne karti e, adresu i dr. Poruka e biti xifrovana algoritmom AES , k uqem dobijenim od Amazona. Izraqunati xifrat Boban xa e Amazonu.
5. Bobanodreuje MD5{MAC otvorenogteksta poslateporuke, 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.
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 odri ae ). Samo je Boban mogao da potpixe MAC
66
DSS

eB

dB

aB r

, 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
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

(
je konkurent protokolu SSL . On u odnosu
na radi na drugom nivou (komunika ionog 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). Virtualnaprivatnamrea omoguuje
zaxtienu komunika iju nekoliko uqesnika globalne mree (korixeem
infrastrukture interneta ili neke druge mree). SSL koriste svi uqesni i interneta.
IPSec Internet Protocol security)
SSL

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 lozinkaprijate a mog o aime egovenajstarije 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 uku ate 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
67

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.
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 matemati i. Drugi je kvantna kriptografija.
Foton ima polariza iju | to je ravan koja sadri prava egovog kretaa. Neka je neka ravan normalna na prava kretaa fotona.
Polariza ija 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 polariza ija fotona meri u pogrexnoj bazi,
onda se dobija sluqajan rezultat i unosi se grexka u sva naredna merea
polariza ije tog fotona.
Neka je potrebno da Alisa i Boban dogovore simetriqni k uq. Alisa
xa e Bobanu niz fotona. Svaki foton ima sluqajno izabranu polariza iju u jednom od qetiri prav a: |, , \, /. Ovim prav ima pripisuju se vrednosti redom 1, 0, 1, 0. Neka je Alisa poslala niz: \/| |/ \ | \ |/.
Boban ima detektor polariza ije. Zasvaki fotonon sluqajno birabazu,
rektilinearnu ili dijagonalnu. Neka je niz egovih izbora +++++
+ +. Svaki put kad izabere dobru bazu, on taqno meri polariza iju.
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 polariza iju, koja se pretvara u 0 ili 1. Na primeru drugog i posledeg fotona vidimo primere sluqajnosti u Bobanovom mereu ako je baza
68

izabrana pogrexno.
Sada Bobanxa e Alisi otvorenuporuku, u kojoj joj jav asvojapostavljaa baze. Alisa mu odgovara na koje orijenta ije su bile taqne; ostale se
odba uju.
Alisa xa e \ | / | \ |
Boban dobija \ | / | \ |
Ove vrednosti se pretvaraju u nule i jedini e:
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 odba ivaa 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 Ci a meri poslate fotone? Obratimo posebno pau na fotone kojima je Boban taqno pogodio bazu. Za polovinu tih fotona
Ci a 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 + + +
Ci a 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 Ci a pogrexno orijentisala bazu,
Boban dobija sluqajne (dakle taqne sa verovatnoom 1/2) bite. Dakle, ako
Ci a prisluxkuje, oqekujemo da ona ponekad pogrexno orijentixe bazu,
pa da u nekim od tih sluqajeva Boban dobije pogrexnu polariza iju.
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 eo postupak pokrenuli iz poqetka, pokuxavajui da
nekako spreqe Ci u 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 Ci a prisluxkuje. Verovatnoa
da se mnogo bita sloi ako Ci a 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 odba ili
kontrolne bite, a ostale bite iskoristili za k uq.
U ovom trenutku kvantna kriptografija radi na rastojau od nekoliko
kilometara.Kvantna kriptografijasmatra se sigurnijom od kriptografije sa javnim k uqem i ima ugraenu moguost otkrivaa prisluxkivaa.
Meutim, texko je preneti mnogo informa ija na ovaj naqin, pa se ovaj
postupak koristi samo za dogovarae simetriqnog k uqa (npr. za AES ).
69

20.10 De ee tajne

Pretpostavimo da u Atlanti ima pet mena


era Koka kole koji dele tajnu
re epta 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 qetvori i mena
era daje se po jedan od nizova
R , R , R , R , a petom R R R R S . Primetimo da niko od ih
pojedinaqno nema tajnu S, ali ako se saberu () poda i sve petori e, dobija
se S. Bilo koja qetvori a 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 troji a od ih mogu zajedno da dobiju
S.
Ovaj problem moe se rexiti primenom Lagranovog interpola ionog
polinoma, pronalazak Xamira (S iz RSA ). Za rexee je potreban broj
p duine vee od l (tj. p 2 ). Kreira se polinom sa tri koefi ijenta
f (x) = ax + bx + S . Ovde je S [0, 2 1] sada eli broj. Brojevi a i
b su izabrani sluqajno izmeu 0 i p 1. Mena
eru i daje se ostatak f (i)
(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
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 =
279 i 25a + 5b + S = 391. Oni rexavaju sistem
1

1 1
16 4
25 5

1
a
285
1 b = 279
1
S
391

(mod 587)

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 ).
70

Najqexa tri naqina da neprijate dobije otvoreni tekst koji odgovara


nekom xifratu su
1. Kraom, kupovinom k uqa, odnosno podmiivaem.
2. Korixeem slabostiurealiza iji, odnosnoproblemasaprotokolom.
Na primer, neko koristi ime suprunika kao k uq, ili neko poxa e
k uq zajedno sa porukom.
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 situa ije:
a) Neprijate zna algoritam xifrovaa,ali ne zna k uq. Ovo vai
za veinu sistema u komer ijalnoj upotrebi.
b) Neprijate ne zna algoritam xifrovaa. Oprezni korisni i se
nikada ne oslaaju na pretpostavku da e ova situa ija potrajati dugo. Na primer, algoritam Skip
ek (Skipjack) na qipu
Kliper (Clipper) je tajni. Qesto se vojni xifarski sistemi dre
u tajnosti doklegod je mogue.Firma RSA pokuxalaje 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 moepored togaimati jox xifrata.
Napad sa poznavaem izabranog otvorenog teksta Pretpostav a se
da neprijate moe izabrati otvoreni tekst koji eli da propusti
kroz pro es 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) karti u.
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
71

primer, A F , B S, C A, D L, .... Kaemo da je ovo xifra


monoalfabetske zamene. Broj permuta ija 26 slova koje ne preslikavaju
ni jedno slovo u sebe je oko 1.4 10 . Autori ovog sistema o euju da
je broj ovih permuta ija tako veliki, da je sistem siguran. Meutim, oni
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
varira od teksta do teksta. Navodimo primere ovih verovatnoa (pretpostav a se da su razma i 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, ifre,
interpunk iju 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
26

EGW OKIHPYGKYW HJVEPHW GN GW DJOPZWJ EJ EJPVW P AGUUJVJYN AVZIIJV MJN EGI WNJH NK NEJ IZWGO REGOE EJ EJPVW
EKRJSJV IJPWZVJA KV UPV PRPB.

i posledu req).

21.1 Vinerova xifra

(Uputstvo: obratite pau na drugu

Podsetimo se Cezarove xifre u kojoj se svako slovo zameuje slovom koje


se nalazi tri mesta iza ega u abe edi: A > D, B > E,..., Z > C .
Ovo je jednostavni spe ijalni sluqaj prethodno razmatranog sistema. Ako
je mogue pomerae u abe edi za proizvo an broj pozi ija, onda je to
monoalfabetska xifra transla ije. Mogu se ikliqki smeivati nekoliko monoalfabetskih xifara transla ije. Takav sistem zove se Vinerova xifra (Vigener). K uq je neka req, na primer T IN . Slovo T je
19-to u abe edi, 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 transla ije. Pre nego xto su
postojali raqunari, udi su koristili Vinerov kvadrat na sli i. 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
72

obrnuto). Rezultat xifrovaa je V ZLIBB. Primetimo da se slovo B dva


puta pojav uje u xifratu. Ako primala ima isti k uq, onda on moe da
napravi istu tabelu i dexifrovae je lako.
ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
DEFGHIJKLMNOPQRSTUVWXYZABC
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
wqgwtgziih
gpigfsmfmw
wpsnjhvama
aofkioblwi
snlytxahuw
vkhkynwpmp
zinbdsqarv
vavwzyahgg
exaoogypWE

pvhveirrbv
locgpnhjmn
vnniyhzyrv
hkmehnhuww
argtvrgzit
vgtzstghut
vmwgbjxqnb
aihojmneqo
wbrgjjbake
WGZvgymfrf

nysttaknke
nmtzqboavv
qkkiqywweh
vtzguwaclz
xeofswcrqb
vrzwrcglpr
tnuxhkwasa
alfwmpomqd
axkgovnkww
gglbcuaq

nxosavvwfw
abcuawohbv
vjrjwgWEWG
stsvfxlplz
tllcmiabfk
ariltwxwTA
gvbwbntswm
qgmkuwvgfg
kdwiwhdnbo

frvxqumhuw
rjTAMPOvkl
Zhcxucakep
muywzygagk
ttbwbfenvz
MPOtgvwlqh
pwfdmhxnce
husrfaqggg
aumggbgbmv

Kako se moe odrediti duina k uqa? Postoje dva metoda da se to uradi. Prvi je otkrio Kaziski (Kasiski, 19. vek), a drugi Fridman (Friedman,
20.vek).
73

21.1.1 Test Kaziskog

Posmatrajmo qesti trigram kao xto je T HE i pretpostavimo da je k uq


duinepet slova. Ako trigram T HE poqie na pozi ijama n i m uxifratu,
a m 6 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
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 pozi ija 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. Razma i 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 razma ima 119 = 7 17, odnosno 126 = 2 3 7.
Na osnovu toga moe se pretpostaviti da je duina k uqa 7. Pri tome
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.
2

21.1.2 Fridmanov test

Fridmanov test omoguuje da se dobije o ena duine k uqa. Primetimo da ako se za slova u xifratu dobijenom monoalfabetskom xifrom
transla ije napravi histogram, dobie se isti histogram (istina ispreturan) kao i za otvoreni tekst.
Sortirani pro enti 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 transla ije, 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-alfabetskaxifratransla ije, 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 daakoposmatramo uqestanosti svih slova u xifratu, onda je ihov prosek 1/26,
nezavisno od broja alfabeta. Meutim, xto je vei broj alfabeta, manja je varijansa. Prema tome, za o enu 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
74

ta slova budu jednaka? Pretpostavimo da imamo tekst (otvoreni tekst ili


xifrat) duine nP, 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 broj parova od dva ista slova jednak P n (n 1). Ukupan broj
parova slova je n(n 1)/2. Dakle, verovatnoa da su dva sluqajno izabrana
slova jednaka je
0

25

I=

P25

ni (ni 1)/2
=
n(n 1)/2

i=0

P25

ni (ni 1)
.
n(n 1)

i=0

Veliqina I je uzoraqki indeks koin iden ije (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 da oba slova u paru budu Z je p . Prema tome, verovatoa
da dva sluqajno izabrana
slova u engleskom tekstu budu jednaka je P p 0.065. Za sluqajni tekst
sa jednakim
P verovatnoama pojav ivaa slova je p = p = = p =
1/26 i
p = 1/26 0.038. Primetimo da se ovakav tekst dobija Vinerovom xifrom sa k uqem beskonaqne duine ako je k uq sluqajan. 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 tabli e (naravno, k se za sada ne zna)
0

2
25

2
0

2
i

2
i

c1
ck+1

..

c2
ck+2

c3
ck+3

25

c4
ck+4
cn

Broj vrsta je n/k. Svaka kolona dobija se monoalfabetskom transla ijom.


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(nk)/(2k). Broj parova iz razliqitih kolona
je n(N (n/k))/2 = (n (K 1)/(2k). Oqekivani broj parova sa jednim istim
75
2

slovom je
A = 0.0065

n(n k)
2k

0.0038

n2 (k 1)
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)

To je oqekivana vrednost IOC . Ovu vrednost izjednaqujemo sa uzoraqkim


IOC i rexavamo po k .
X n (n 1)
0.027n
k
, gde je I =
(n 1)I 0.038n + 0.065
n(n 1)
U naxem primeru je I 0.04498, k 3.844. Dobijena o ena duine k uqa
je 3.844 (stvarna duina k uqa je 7, tako da je ova o ena dosta loxa).
25

i=0

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 transla ija
svake kolone. Moemo da napravimo program za odreivae histograma
uqestanosti pojav ivaa slova xifrata na pozi ijama 1, 8, 15, 22, . . . (ta
slova su u prvoj koloni ako se xifrat prepixe u tabli u 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. Razma i 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 ( ikliqkom) rastojau 4 15 7. Ako ima vixe ovakvih trojki, sabiramo uqestanosti pojav ivaa ta tri slova, pa najvei prioritet
dajemo transla iji kojoj odgovara najvei zbir.
Za gori histogram primeujemo da transla iji za xest odgovara suma
7 + 7 + 6 = 20, a da transla iji za 18 odgovara suma 17. Na sliqan naqin
prave se histogrami za drugu, treu, ..., sedmu kolonu xifrata prepakovanog u tabli u (n/7) 7. Za drugu kolonu jedina mogua transla ija 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
76

slovaotvorenog teksta su tada QV EN IN H . Ovde Q izgledapogrexno. 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 . . ..
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 "de imalni" razvoj broja b/p = 0.k k k k . . . u sistemu sa osnovom 2 (k
je bit). Tada je k k k k . . . niz k uqa. Duina perioda tog niza je p 1
Primer. Neka je p = 11. Poxto je 2 6= 1 i 2 6= 1 u F , vidimo da 2
generixe F . Neka je k uq 5/11. U sistemu sa osnovom 2 to je 101/1011.
"De imalni" razvoj:

1 2 3 4

1 2 3 4

11

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
de imalni razvoj b/p = 0.n n n . . . (gde je 0 n 9). Tada je n n n . . .
niz k uqa. Poxto je 10 generator, duina perioda je p 1, dakle velika.
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 ifre, dobijamo 1214131904170424 = p p p . . . ,
0 p 9, pa je p = 1, p = 2, p = 1, itd.
Postupak xifrovaa je c = p + n (mod 10) a xifrat je c c c . . ..
Dexifrovae se vrxi oduzimaem p = c n (mod 10).

1 2 3

1 2 3

1 2 3

Primer

(xifrovae)

1 2 3

(dexifrovae)

OT 12141319
ST 82629544
+ niz kljuca 70588325
- niz kljuca 70588235
--------------------------------------ST 82629544
OT 12141319
(sabiranje je bez prenosa) M O N T

77

Prikazaemo sada napad sa poznatim otvorenim tekstom. Neka broj p


ima l ifara i neka Ci a ima xifrat i prvih 2l + 1 ifara (bita)
otvorenog teksta. Ona moe da odredi b i p pomou verinih razlomaka.
Verini razlomak je razlomak oblika
a1 +

1
a2 +

...
1

a3 +

1
+ 1
an

gde su a eli nenegativni brojevi, a > 0 za i > 1. Uobiqajeno je da


se za verini razlomak koristi zapis [a , a , . . . , a ]. Svakom ra ionalnom broju odgovara konaqan verini razlomak, koji se dobija primenom
Euklidovog algoritma. Na primer 27/8 = 3 + 1/(2 + 1/(1 + 1/(2))) =
[3, 2, 1, 2]. Ira ionalnim brojevima jednoznaqno odgovaraju beskonaqni verini razvoji oblika = a + 1/(a + 1/(a + . . . = [a1, a2, . . .], odnosno =
lim
[a1, a2, . . . , a ]. Ra ionalni brojevi a , a + 1/a , a + 1/(a + 1/a ),
(odnosno [a ], [a , a ], [a , a , a ]) su konvergenti (par ijalni razlom i) broja .
Konvergenti su veoma dobre ra ionalne aproksima ije . Pokazuje se
da ako je ira ionalan i | a/b| < , gde su a, b eli , b 1, onda je
a/b konvergent . Na primer, 22/7 je quvena dobra aproksima ija . Taj
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 eli 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.
Interesantan primer je e = 2.71828 . . .. Tada je = e, a = = 2.
= 1/(e 2) = 1.39 . . ., a = 1.39 = 1. = 1/(1.39 . . . 1) = 2.55 . . .,
a = 2.55 . . . = 2. = 1/(2.55 . . . 2) = 1.82 . . ., a = 1.82 . . . = 1. =
1/(1.82 . . . 1) = 1.22 . . ., a = 1.22 . . . = 1. = 1/(1.22 . . . 1) = 4.54 . . . i
a = 4.54 . . . = 4.Taqan verini razvoj e je [2, 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, . . .].
Vratimo se na kriptoanalizu. NekaCi a 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 ifara OT, odnosno n = 6.
i

1
2b2

ST 5309573992060
OT 0200170405201
niz k uqa 5109403597869

746098818740243
11704
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 . . .].

78

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 ifara niza k uqa, a poklapa se i sa narednih 5 ifara, pa smo sigurni da je dobar.
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 funk ije i kontrolne sume, a nelinearni pomeraqki registri
se i da e koriste kao generatori sluqajnih brojeva.
Na sli i je prikazan primer jednog LPR.
izlaz

<-

s_0
s_1
s_2
------------|
|
<- |
|
<- |
| <-|
------------|
|
|
|
|
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 sli i 1 na sledeoj strani. elije pomeraqkog
registra predstav ene su kvadratima, a streli e 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 bioLPRduine tri. ZaLPRduine n (duina 32 je uobiqajena)
nekasuk uq, odnosnopoqetnostae 2n bitaoznaqenih sa b , . . . , b , k , . . . , k
{0, 1}, pri qemu je b 6= 0 i nisu svi k jednaki 0.
Prva n-torka (s , . . . , s ) zovese poqetnostae i jednaka je (k , . . . , k ).
U primeru je bilo (k , k , k ) = (0, 1, 1). Funk ija koja daje posledi bit
narednog staa je f (s , . . . , s ) = b s + b s + + b s . U primeru
je f = s + s = 1s + 1s + 0s , pa je (b , b , b ) = (1, 1, 0). Stae u nekom
0

n1

n1

n1
0

n1

0 0

0 0

79

n1 n1

n1

trenutku je (s , . . . , s ); u narednom stau je s isto xto i s u prethodnom stau, izuzev s , koje je jednako izlazu funk ije f .
Za fiksirano f (tj. fiksiranu n-torku b ) postoji 2 moguih poqetnih
staa za LPR duine n. Za dva staa kaemo da su u istoj orbiti ako se iz
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.
Prema tome, duina perioda niza k uqa je 7 = 2 1 (xto je najbo a
mogua vrednost).
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 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.
0

n1

i+1

n1

80

1.
b_0=1
b_1=1
b_2=0
k_0=0
k_1=1
k_2=1
0

01

011

0111

01110

011100

niz
kljuca:
0111001

------------------| 0 | 1 | 1 |
------------------|
|
------+ ----------|
|
------------------- |
| 1 | 1 | 1 |<-|
------------------|
|
------+ ----------|
|
------------------- |
| 1 | 1 | 0 |<-|
------------------|
|
------+ ----------|
|
------------------- |
| 1 | 0 | 0 |<-|
------------------|
|
------+ ----------|
|
------------------- |
| 0 | 0 | 1 |<-|
------------------|
|
------+ ----------|
|
------------------- |
| 0 | 1 | 0 |<-|
------------------|
|
------+ ----------|
|
------------------- |
| 1 | 0 | 1 |<-|
------------------|
|
------+ ----------|
|
------------------- |
| 0 | 1 | 1 |<-|
-------------------

x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x

81

2.
b_0=1
b_1=0
b_2=1
b_3=0
k_0=0
k_1=1
k_2=1
k_3=1

01

011

0111

01111

011110

----------------| 0 | 1 | 1 | 1 |
----------------|
|
------- + ---------|
|
----------------|
| 1 | 1 | 1 | 1 | <--|
----------------|
|
------- + ---------|
|
----------------|
| 1 | 1 | 1 | 0 | <--|
----------------|
|
------- + ---------|
|
----------------|
| 1 | 1 | 0 | 0 | <--|
----------------|
|
------- + ---------|
|
----------------|
| 1 | 0 | 0 | 1 | <--|
----------------|
|
------- + ---------|
|
----------------|
| 0 | 0 | 1 | 1 | <--|
----------------|
|
------- + ---------|
|
----------------|
| 0 | 1 | 1 | 1 | <--|
-----------------

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
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
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
+x . Maksimalnaorbita
(veliqine 2 1) dobija se ako i samo ako je polinom g(x) primitivan po
modulu dva (tj. nad po em F ). Kaemo da je polinom g(x) primitivan ako
je nesvod iv i x je generator F = F [x]/(g(x)) . Ako je broj 2 1 prost,
onda je dovo no da g(x) bude nesvod iv.
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
LPRduine 32 postoji oko 67 miliona razliqitih nesvod ivih polinoma.
Primetimo daje 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
maksimalne duine. U drugom primeru je bilo (b , b , b , b ) = (1, 0, 1, 0)
xto odgovara polinomu 1 + x + x = (1 + x + x ) . Ovaj polinom nije
nesvod iv, i nismo dobili orbitu maksimalne duine. U treem primeru
je bilo (b , b , b , b , b ) = (1, 1, 1, 0, 1) xto odgovarapolinomu 1+x+x +x +
x koji jest nesvod iv (i primitivan), orbita je bila maksimalne duine.
Kao primer, xifrujmo OT Hi, nizom k uqa dobijenim od LPR sa
0

n1

n1

2n

n1

2n

0 1
2 2

(b0 , . . . , b4 ), (k0 , . . . , k4 ) = (1, 1, 1, 0, 1), (1, 1, 0, 0, 1).

Dobijamonizk uqa iz treeg primera. Otvorenitekst 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
k ,k ,...,k
. Posle toga moe se rekonstruisati eli niz k uqa. Pretpostavimo da pravi korisnik koristi funk iju f = s + s + s + s iako
mi to neemo da koristimo. Mi znamo k k k k k k k k k k = 1100110111.
znamo
ne znamo
moemo da pixemo
0

2n1

0 1 2 3 4 5 6 7 8 9

k5
k6
k7
k8
k9

= k0 + k1 + k2 + k3 + k4
= k1 + k2 + k3 + k4 + k5
= k2 + k3 + k4 + k5 + k6
= k3 + k4 + k5 + k6 + k7
= k4 + k5 + k6 + k7 + k8

= b0 k0 + b1 k1 + b2 k2 + b3 k3 + b4 k4
= b0 k1 + b1 k2 + b2 k3 + b3 k4 + b4 k5
= b0 k2 + b1 k3 + b2 k4 + b3 k5 + b4 k6
= b0 k3 + b1 k4 + b2 k5 + b3 k6 + b4 k7
= b0 k4 + b1 k5 + b2 k6 + b3 k7 + b4 k8

82

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.
Prethodni sistem moe da se napixe u matriqnom obliku.
t+n

0 t

1 t+1

n1 t+n1

k0
k1
k2
k3
k4

k1
k2
k3
k4
k5

k2
k3
k4
k5
k6

k3
k4
k5
k6
k7

0
0
1
1
0

0
1
1
0
1

k4
k5
k6
k7
k8

Posle zamene vrednosti k dobija se sistem

b0
b1
b2
b3
b4

k5
k6
k7
k8
k9

1
0
1
1
1

1
1
0
0
1

1
0
0
1
1

1
1
0
1
1

b0
b1
b2
b3
b4

Rexavaem ove matriqne jednaqine na po em F dobija se b b b b b =


11101.
Sada, kad znamo b , k , i = 0, 1, . . . , n 1, moemo sami da izraqunamo
sve qlanove niza k uqa. Kraj primera.
U opxtem sluqaju imamo sistem jednaqina
2

0 1 2 3 4

k0
k1
k2

k1
k2
k3

k2
k3
k4

kn1
kn
kn+1

kn1

kn

kn+1

k2n2

..

b0
b1
b2

..

bn1

kn
kn+1
kn+2

..

k2n1

Primer. Znamo da Alisa i Boban koriste LPR duine xest i da poruka


poqiese T o (ASCII ), apresreli smoxifrat 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

1
1
0
0
1
0

1
0
0
1
0
0

0
0
1
0
0
1

0
1
0
0
1
0

1
0
0
1
0
1

83

b0
b1
b2
b3
b4
b5

0
0
1
0
1
1

Rexavaem dobijamo b b b b b b = 110000. Poxto znamo sve b i prvih


xest qlanova niza k uqa, moemo da rekonstruixemo eo niz k uqa 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 matri u nad F . Od
takvih pretpostavki odabraemo onu koja daje smisleni tekst kao rezultat
dexifrovaa. Kraj primera.
Ponekad se kao generator sluqajnih brojeva koristi nelinearni pomeraqki registar, na primer f = s s s + s + s s + s .
0 1 2 3 4 5

0 2 7

2 4

22 Linearna i diferen ijala 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 ) 6= 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 4 5 6 7 8 9 10 11 12 13 14 15

k8

k9

k10

k11

k13

k14

k15


k15

k12
@
R
@
k8

k12

k13

k14

k9

k10

k11

n0
1
k0
k16
k8
k24

S?
n1
0
k1
k17
k9
k25

n2
0
k2
k18
k10
k26

n3
0
k3
k19
k11
k27

n4
0
k4
k20
k12
k28

n5
0
k5
k21
k13
k29

S?
n6
0
k6
k22
k14
k30

n7
0
k7
k23
k15
k31

Dobija se K = k k k k k k k k k k k k k k k k . Kasnije emo koristiti jednakosti k + k = k , ... k + k = k .


Podseae na postupak xifrovaa:
1

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
16

p0 p1 p2 p3
p4 p5 p6 p7

p8 p9 p10 p11
p12 p13 p14 p15

Neka je S(p p p p

0 1 2 3

NS

m0 m1 m2 m3
m4 m5 m6 m7

AK0

24

23

15

p0 k0 p1 k1 p2 k2 p3 k3
p4 k4 p5 k5 p6 k6 p7 k7

+ k0 k1 k2 k3 ) = m0 m1 m2 m3

p8 k8 p9 k9 p10 k10 p11 k11


p12 k12 p13 k13 p14 k14 p15 k15

, itd. Posle N S stae je

m8 m9 m10 m11 SR
m0 m1 m2 m3

m12 m13 m14 m15


m12 m13 m14 m15

84

31

m8 m9 m10 m11
m4 m5 m6 m7

Posle M C stae je
MC

m0 + m14 m1 + m12 + m15 m2 + m12 + m13 m3 + m13


m2 + m12 m0 + m3 + m13 m0 + m1 + m14 m1 + m15

Na kraju se dodaje K i stae je

m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11
m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9

AK1

m0 + m14 + k16 . . . m3 + m13 + k19


m2 + m12 + k20 . . . m1 + m15 + k23

Dodavaem na obe strane k

16

m6 + m8 + k24 . . . m5 + m11 + k27


c c c c
= 0 1 2 3
m4 + m10 + k28 . . . m7 + m9 + k31
c4 c5 c6 c7

dobija se

. . . k31

m0 + m14 m1 + m12 + m15 m2 + m12 + m13 m3 + m13


m2 + m12 m0 + m3 + m13 m0 + m1 + m14 m1 + m15
=

c0 + k16 c1 + k17 c2 + k18 c3 + k19


c4 + k20 c5 + k21 c6 + k22 c7 + k23

m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11
m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9

c8 + k24 c9 + k25 c10 + k26 c11 + k27


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

Linearnakriptoanalizaje napadsa poznavaemotvorenogteksta.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 .
Pretpostavimo da linearna jednaqina
0

n1

m1

n1

p1 + p2 + + pa + c1 + + cb + k1 + + kg = 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, pretpostav a se da je k + + k = 0, a ako meu vrednostima ima vixe
jedini a, pretpostav a se da je k + + k = 1. Na taj naqin dobija
se linearna veza izmeu bita k uqa. Ci je pronai vixe ovakvih veza.
Kad bi xifrovae bila linearna opera ija, ove jednaqine bi vaile sa
verovatnoom 1, pa ne bi bilo potrebno vixe parova OT/ST.
1

85

c8 c9 c10 c11
c12 c13 c14 c15

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 tabli om


0 1 2 3

0 1 2 3

a0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

a1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

a2
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

a3
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

b0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0

b1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1

b2
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1

b3
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1

Izraqunavaem svih linearnih kombina ija ulaznih bita a i izlaznih


bita b dolazi se do linearnih veza koje vae sa verovatnoom veom od 0.5
(ne postoji ni jedna veza koja vai sa verovatnoom veom od 0.75).
i

a3 + b 0
a0 + a1 + b 0
a1 + b 1
a0 + a1 + a2 + a3 + b 1
a1 + a2 + b 0 + b 1
a0 + b 0 + b 1

= 1110111101011011 = 1, p = 12/16 = .75


= 1011010111111110 = 1, p = .75
= 0100011010000000 = 0, p = .75
=
= 0, p = .75
=
= 1, p = .75
=
= 1, p = .75

(1)
(2)
(3)
(4)
(5)
(6)

22.4 Odreivae jednaqina

Da bismo doxli do jednaqina oblika

p1 + p2 + + pa + c1 + + cb + k1 + + kg = x

treba da eliminixemo bite m i n . Eliminisaemo najpre bite n .


i

c0 + k16 + c8 + k24 = c0 + c8 + k8
c1 + k17 + c9 + k25 = c1 + c9 + k9
c2 + c10 + k10
c3 + c11 + k11
c4 + c12 + k12
c5 + c13 + k13
c6 + c14 + k14
c7 + c15 + k15

=
=
=
=
=
=
=
=

86

m0 + m14 + m6 + m8
m1 + m12 + m15 + m4 + m7 + m9
m2 + m12 + m13 + m4 + m5 + m10
m3 + m13 + m5 + m11
m2 + m12 + m4 + m10
m0 + m3 + m13 + m5 + m8 + m11
m0 + m1 + m14 + m6 + m8 + m9
m1 + m15 + m7 + m9 .

(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)

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 tenden ija 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
c3 + c5 + c11 + c13 + k11 + k13
c2 + c4 + c10 + c12 + k10 + k12
c1 + c7 + c9 + c15 + k9 + k15

Jednaqine (15)-(18) su uvek taqne.

=
=
=
=

m1 + m9
m0 + m8
m5 + m13
m4 + m12 .

(15)
(16)
(17)
(18)

Posmatrajmo jednakost (16). Ci je izraziti m + m preko p , k , jednakostima koje vae se verovatnoom veom od 0.5. U okviru jedne elije
i m i m odgovaraju bitu b u niblu b b b b , pa moemo da iskoristimo
jednakosti (1) i (2).
Iskoristimo najpre (1) za elije 1 i 3.
0

0 1 2 3

p0 + k0 p1 + k1 p2 + k2 p3 + k3
p4 + k4 p5 + k5 p6 + k6 p7 + k7
NS

p8 + k8 p9 + k9 p10 + k10 p11 + k11


p12 + k12 p13 + k13 p14 + k14 p15 + k15

m0 m1 m2 m3
m4 m5 m6 m7

m8 m9 m10 m11
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).
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
p3 + p11 + k3 + k11 = m0 + m8 p = 0.625

Podsetimo se,
c +c +c +c +k +k
Kombinovaem se dobija
3

11

13

11

13

= m0 + m8

, (16) uvek.

(19),
Ovo je prva od jednaqina kakve su potrebne za linearnu kriptoanalizu.
Zatim koristimo jednaqinu (1) na eliju 1 i jednaqinu (2) na eliju 3
(to opet kombinujemo sa (16)).
c3 + c5 + c11 + c13 + k11 + k13 = p3 + p11 + k3 + k11 , p = 0.625
p3 + p11 + c3 + c5 + c11 + c13 = k3 + k13
p = 0.625

p0 + k0 p1 + k1 p2 + k2 p3 + k3
p4 + k4 p5 + k5 p6 + k6 p7 + k7

p8 + k8 p9 + k9 p10 + k10 p11 + k11


p12 + k12 p13 + k13 p14 + k14 p15 + k15

87

m0 m1 m2 m3
m4 m5 m6 m7

NS

m8 m9 m10 m11
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).
Jednaqina (2) je a + a + b = 1, p = 0.75 (za eliju 3).
p + k + m = 1, p = 0.75
p + k + p + k + m = 1, p = 0.75
p + p + p + c + c + c + c = m + m , p = 0.625
Podsetimo se,
c + c + c + c + k + k = m + m (16) (uvek)
Kombinovaem, dobijamo
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.
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 informa iju,
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 1 2 3

11

13

11

11

13

11

13

13

11

11

13

14

11

13

13

11

11

13

13

14

p8 + k8 p9 + k9 p10 + k10 p11 + k11


p12 + k12 p13 + k13 p14 + k14 p15 + k15

m0 m1 m2 m3
m4 m5 m6 m7

NS

p0 + k0 p1 + k1 p2 + k2 p3 + k3
p4 + k4 p5 + k5 p6 + k6 p7 + k7

0 1 2 3

m8 m9 m10 m11
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).
p + k + p + k + m + m = 1, p = 0.75
p + k + p + k + m + m = 1, p = 0.75.
p + p + p + p + k + k + k + k = m + m + m + m , p = 0.675.
Podsetimo se,
c +c +c +c +c +c +c +c +k +k +k +k = m +m +m +m ,
(15)+(16) uvek.
Kombinovaem se dobija
p +p +p +p +c +c +c +c +c +c +c +c = k +k +k +
k + k + k + k + k (31), p = 0.675.
Na prvi pogled izgleda korisno iskoristiti (6), ali se zapaa da je to
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).
88
0 1 2 3

10

10

10

10

11

13

14

10

13

14

0 1 2 3

10

11

11

13

11

14

13

14

Tako dobijamo sistem od 14 jednaqina


p3 + p11 + c3 + c5 + c11 + c13
p3 + p8 + p9 + c3 + c5 + c11 + c13
p0 + p1 + p8 + p9 + c3 + c5 + c11 + c13
p7 + p15 + c1 + c7 + c9 + c15
p7 + p12 + p13 + c1 + c7 + c9 + c15
p4 + p5 + p12 + p13 + c1 + c7 + c9 + c15
p1 + p9 + c0 + c6 + c8 + c14
p1 + p8 + p9 + p10 + p11 + c0 + c6 + c8 + c14
p0 + p1 + p2 + p3 + p8 + p9 + p10 + p11 + c0 + c6 + c8 + c14
p5 + p13 + c2 + c4 + c10 + c12
p5 + p12 + p13 + p14 + p15 + c2 + c4 + c10 + c12
p4 + p5 + p6 + p7 + p12 + p13 + p14 + p15 + c2 + c4 + c10 + c12
p1 + p2 + p9 + p10 + c0 + c3 + c5 + c6 + c8 + c11 + c13 + c14
p5 + p6 + p13 + p14 + c1 + c2 + c4 + c7 + c9 + c10 + c12 + c15

0
0
1
0
0
0
0
0
1
0
0
0
0
0

=
=
=
=
=
=
=
=
=
=
=
=
=
=

k3 + k13
k3 + k8 + k9 + k11 + k13
k0 + k1 + k8 + k9 + k11 + k13
k7 + k9
k7 + k9 + k12 + k13 + k15
k4 + k5 + k9 + k12 + k13 + k15
k1 + k8 + k9 + k14
k1 + k9 + k10 + k11 + k14
k0 + k1 + k2 + k3 + k9 + k10 + k11 + k14
k5 + k10 + k12 + k13
k5 + k10 + k13 + k14 + k15
k4 + k5 + k6 + k7 + k10 + k13 + k14 + k15
k1 + k2 + k8 + k9 + k10 + k11 + k13 + k14
k5 + k6 + k9 + k10 + k12 + k13 + k14 + k15 ;

od kojih svaka vai sa verovatnoom 0.625.


Ovaj sistem linearnih jednaqina moe se predstaviti matriqnom jednaqinom

0
0
1
0
0
0
1
1
1
0
0
0
1
0

0
0
0
0
0
0
0
0
1
0
0
0
1
0

1
1
0
0
0
0
0
0
1
0
0
0
0
0

0
0
0
0
0
1
0
0
0
0
0
1
0
0

0
0
0
0
0
1
0
0
0
1
1
1
0
1

0
0
0
0
0
0
0
0
0
0
0
1
0
1

0
0
0
1
1
0
0
0
0
0
0
1
0
0

0
1
1
0
0
0
1
0
0
0
0
0
1
0

0
1
1
1
1
1
1
1
1
0
0
0
1
1

0
0
0
0
0
0
0
1
1
1
1
1
1
1

0
1
1
0
0
0
0
1
1
0
0
0
1
0

0
0
0
0
1
1
0
0
0
1
0
0
0
1

1
1
1
0
1
1
0
0
0
1
1
1
1
1

0
0
0
0
0
0
1
1
1
0
1
1
1
1

0
0
0
0
1
1
0
0
0
0
1
1
0
1

k0
k1
k2
k3
k4
k5
k6
k7
k8
k9
k10
k11
k12
k13
k14
k15

p3 + p11 + c3 + c5 + c11 + c13


p5 + p6 + c15

Vrste matri e sistema su linearno nezavisne, pa je svih 14 jednaqina


nezavisno.
22.5 Napad

Polazei od skupa poznatih parova OT/ST, Ci a izraqunava p +p +c +


c +c +c za sve parove. Ako preovlauje 0, ona stav a 0 na poqetak vektora; akopreovlauje 1, ona stav a 1 na poqetak vektora. Zbogjednostavnosti,
pretpostavimo da je Ci a 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
= 4 moguih rexea za k uq. Najjednostavnije je
89
3

11

13

15

1614

(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)

11

dopuniti matri u sistema sa jox dve vrste do baze (16-dimenzionalnog F


vektorskog prostora) tako da se dodaju vektori pridrueni k i k . Ci a
formira matriqnu jednaqinu
2

0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0

0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0

0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0

1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0

0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1

0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0

0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0

0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0

0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0

0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0

0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0

0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0

0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0

1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0

0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0

0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0

k0
k1
k2
k3
k4
k5
k6
k7
k8
k9
k10
k11
k12
k13
k14
k15

p3 + p11 + c3 + c5 + c11 + c13


p5 + p6 + c15

U vektoru sa desne strane ona stav a nulu ili jedini u | vrednost koja se
qexe pojav uje u parovima OT/ST. Za preostala dva bita ona isprobava
sve qetiri mogue kombina ije.
Pretpostavimo da Ci a eli da sa verovatnoom 95% bude sigurna da
su svih 14 izbora taqni. Moe se o eniti 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 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 devija ija p
je p15/(64n).
Mi hoemo da bude P (p > 0.5, i = 19, . . . , 32) = 0.95. Moemo da pretpostavimo da su p nezavisne promen ive, jer o ima nixta ne znamo
i zato xto je to verovatno blisko istini. Zbog toga zahtevamo da bude
P (
p > 0.5) =
0.95 = 0.99634, za svako i.
Zavelike n sluqajnapromen iva p ima praktiqno normalnu raspodelu.
Zbog toga od p moe standardizovati oduzimaem matematiqkog oqekivaa i de eem sa standardnom devija ijom, qime se dobija (priblino)
noramalno raspode ena sluqajna promen iva Z . Tada je
i

14

pi 0.625
0.5 0.625
q
0.99634 = P (
pi > 0.5) = P q
>
=P
15
64n

90

15
64n



n
Z>
.
15

Prema tome,





n
n
1 0.99634 = 0.00366 = P Z <
=P Z>
.
15
15

Iz tabli e vrednosti za normalnu (0, 1) raspodelu


dobijamo da je P (Z >
. Vrednost n odreujemo iz n/15 = 2.685; dobijamo n =
.
Uopxtee ovog razmatraa pokazuje da za odreeni nivo sigurnosti c,
0 < c < 1 (mi smo izabrali c = 0.95) dobijamo n = 15z , gde jez vrednost
iz tabele normalne raspodele koja odgovara vrednosti 1 c. Tako je
dovo no samo n = 42 parova OT/ST za sigurnost iznad c = 0.5 Ako ni
jedan od dobijenih k uqeva nije dobar, Ci a 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.
2.685) 0.00366
15(2.685)2 109

14

22.5.1 Brzina napada

Ako Ci a 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
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 Ci a
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% Ci a treba
daP izraquna vrednosti 14 razliqitih linearnih kombina ija P p
c za svaki od 109 parova OT/ST. Posle toga ona treba da izvrxi
napad grubom silom sa qetiri mogua k uqa.
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). Posledi a
je da je za napad potrebno mnogo vixe parova OT/STP da bi se postigao
pristojan nivo pouzdanosti izbora taqnih vrednosti
k.
16

15

iS1

jS2

lS3

22.6 Diferen ijalna kriptoanaliza

Diferen ijalna 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 situa ija je realna sa pametnom
karti om ili kutijom za skremblovae kablovske televizije). Ci a bira
dva OT koji se razlikuju samo na odreenim bitima, a podudarni su na
91

ostalim bitima, i posmatra razlike izmeu dva odgovarajua xifrata,


pokuxavajui da na osnovu toga nexto zak uqi o k uqu.
Diferen ijalna kriptoanaliza 1SAES : A M C SR N S A .
Pretpostav amo da je isti k uq korixen za xifrovae dva OT p . . . p
i p . . . p , pri qemu je p . . . p = p . . . p , i tako se dobijaju dva ST
c . . . c i c . . . c . Potrebno je da se razlikuju niblovi p p p p 6= p p p p
(nije problem ako su neki biti jednaki). Potrebno je da bude i p p p p 6=
p p p p .
K1

K0

15

15

15

15

15

0 1 2 3

15


0 1 2 3

4 5 6 7


4 5 6 7

p0 p1 p2 p3
p4 p5 p6 p7

p0 p1 p2 p3
p4 p5 p6 p7

p8 p9 p10 p11
p12 p13 p14 p15

p8 p9 p10 p11 N S

p12 p13 p14 p15

p0 + k0 p1 + k1 p2 + k2 p3 + k3
p4 + k4 p5 + k5 p6 + k6 p7 + k7

p8 + k8 p9 + k9 p10 + k10 p11 + k11


p12 + k12 p13 + k13 p14 + k14 p15 + k15

p0 + k0 p1 + k1 p2 + k2 p3 + k3
p4 + k4 p5 + k5 p6 + k6 p7 + k7

p8 + k8 p9 + k9 p10 + k10 p11 + k11


p12 + k12 p13 + k13 p14 + k14 p15 + k15

Primena N S (S deluje na svaki nibl) daje


m0 m1 m2 m3
m4 m5 m6 m7

m0 m1 m2 m3
m4 m5 m6 m7

m8 m9 m10 m11
m12 m13 m14 m15

m8 m9 m10 m11
m12 m13 m14 m15

Primena SR ( ikliqko pomerae druge vrste) daje


m0 m1 m2 m3
m12 m13 m14 m15

m8 m9 m10 m11
m4 m5 m6 m7

Primena M C (mexae kolona) daje

m0 m1 m2 m3
m12 m13 m14 m15

m8 m9 m10 m11
m4 m5 m6 m7

m0 + m14 m1 + m12 + m15 m2 + m12 + m13 m3 + m13


m2 + m12 m0 + m3 + m13 m0 + m1 + m14 m1 + m15

m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11
m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9

m0 + m14 m1 + m12
m2 + m12 m0 + m3

m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11
m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9

+ m15 m2 + m12 + m13 m3 + m13


+ m13 m0 + m1 + m14 m1 + m15

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


m4 + m10 + k28 m5 + m8 + m11 + k29 m6 + m8 + m9 + k30 m7 + m9 + k31

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

92

m6 + m8 + k24 m4 + m7 + m9 + k25 m4 + m5 + m10 + k26 m5 + m11 + k27


m4 + m10 + k28 m5 + m8 + m11 + k29 m6 + m8 + m9 + k30 m7 + m9 + k31

Ovo je xifrat, tj.

c0 c1 c2 c3
c4 c5 c6 c7

c0 c1 c2 c3
c4 c5 c6 c7

c8 c9 c10 c11
c12 c13 c14 c15

c8 c9 c10 c11
c12 c13 c14 c15

Sabiraem (po modulu dva) pretposledih blokova (sa m i k ) dobijamo


m +m m +m m +m m +m
nebitno
nebitno
m +m m +m m +m m +m
xto je jednako zbiru (po modulu dva) posledih blokova (sa c )
c +c c +c c +c c +c
nebitno
nebitno
c +c c +c c +c c +c
Dobija se da je c c c c + c c c c
i

12

12

13

13

14

14

15

15


0 1 2 3
= (m0 + m14 , . . . , m3 + m13 ) + (m0 + m14 , . . . , m3 + m13 )
m0 m1 m2 m3 + m0 m1 m2 m3
= S(p0 p1 p2 p3 + k0 k1 k2 k3 ) + S(p0 p1 p2 p3 + k0 k1 k2 k3 )
p8 . . . p15 = p8 . . . p15
S(p0 p1 p2 p3 + k0 k1 k2 k3 ) + S(p0 p1 p2 p3 + k0 k1 k2 k3 ) = c0 c1 c2 c3 + c0 c1 c2 c3 .
0 1 2 3

.
Prema tome, ako je
onda je
(I).
Ovde se sve zna izuzev k k k k . Primetimo da jednaqina ZAVISI od
p ...p = p ...p .
Sliqno, c c c c + c c c c
=m m m m +m m m m
= S(p p p p + k k k k ) + S(p p p p + k k k k ).
Prema tome, ako je p . . . p = p . . . p onda je
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).
Ovde se sve zna izuzev k k k k .
Primer. Ci a xifruje
0 1 2 3

15

15


12 13 14 15
12 13 14 15

4 5 6 7
4 5 6 7

4 5 6 7
4 5 6 7
4 5 6 7
4 5 6 7

8
15
8
15

4 5 6 7
4 5 6 7
4 5 6 7
12 13 14 15
4 5 6 7


12 13 14 15

4 5 6 7

ASCII N o =
CT =

p0
p15
0100 1110 0110 1111
0010 0010 0100 1101

ASCII to =
CT =

p0
p15
0111 0100 0110 1111
0000 1010 0001 0001

I S(0100 + k0 k1 k2 k3 ) + S(0111 + k0 k1 k2 k3 ) = 0010 + 0000 = 0010.

93

kandidat

A
B
+0100 +0111 S(A) S(B)
0100
0111 1101 0101
0101
0110 0001 1000
0110
0101 1000 0001
0111
0100 0101 1101
0000
0011 1001 1011
0001
0010 0100 1010
0010
0001 1010 0100
0011
0000 1011 1001
1100
1111 1100 0111
1101
1110 1110 1111
1110
1101 1111 1110
1111
1100 0111 1100
1000
1011 0110 0011
1001
1010 0010 0000
1010
1001 0000 0010
1011
1000 0011 0110

k0 k1 k2 k3
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

S(A) + S(B)
1000
1001
1001
1000
0010
1110
1110
0010
1011
0001
0001
1011
0101
0010
0010
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. 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 6= 0011,
(0000).
Ci a xifruje
0 1 2 3

0 1 2 3


0 1 2 3

0 1 2 3

ASCII M r =
CT =

p0
p15
0100 1101 0111 0010
1101 0101 1101 0000

ASCII or =
CT =

p0
p15
0110 1111 0111 0010
1100 0001 0100 1111


0 1 2 3

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.
Koristei II i ova dva para OT/ST, Ci a dobija da je k k k k = 1100.
Da bi se dobili k k k k i k k k k , potrebne su jox dve jednaqine
III i IV (koje treba odrediti za domai zadatak).
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.
0 1 2 3

0 1 2 3

0 1 2 3

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

94

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
k1
Y
i=1

k1
k1
Y
Y
P k1
2
2
ni
i
=
(1 )
ei/n = e i=1 i/n ek /(2n) = e /2
n
n
i=1
i=1

Dakle, verovatnoa da neka dva izvuqena objekta


budu ista je priblino
1e
. Ako se npr. izvlaqi n ln 4 1.2n objekata, onda je verovatnoa ponav aa oko 1/2. U sluqaju osoba u prostoriji, da verovatnoa
poklapaa
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 qieni e 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).
2 /2

* * ->*
* / \ \
* / * --*
*
*
* /
* *
*
*
| *
*
| *
* *
*
*
Start

*
*

*
*

Algoritam faktoriza ije zasnovan na ovoj qieni i bio je prvi algoritam suxtinski bri od faktoriza ije nizom probnih de ea. Taj algoritam je jox uvek najbo i za brojeve sa 8 15 dekadnih ifara. Da bismo
rastavili n na qinio e, iteriramo funk iju kao xto je npr. f (x) = x + 1
(mod n) (polazei od npr. x = 0), i tako dobijamo sluqajno lutae kroz
Z/nZ. Ako je n = pq , oqekujemo da emo se po modulu p vratiti nazad (na
mesto gde smo ve bili), a da se to nee istovremeno desiti i po modulu q.
Primer. Faktoriza ija 1357. Koristimo preslikavae x + 1, odnosno
formiramo niz a = a + 1 (mod 1357), a = 0. Ponav ae je mogue
otkriti jednostavnim algoritmom koji koristi malo memorije i ne zahteva
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
3) Izraqunaj a , a , a , nzd(a a , n), zapamti a , a , obrixi a , a
4) Izraqunaj a , a , a , nzd(a a , n), zapamti a , a , obrixi a , a
95
2

2
m

m+1

5) Izraqunaj a , a , a , nzd(a
itd.
5

10

10

i 2i 1
1
1

2i
2

ai
1

a2i1
1

?
2

?
5

677

?
26

266

10

?
677

611

11

?
12 1021

1255

, zapamti a , a , obrixi a , a ,

a5 , n)

10

a2i
2

nzd(a2i ai , 1357)
1

26

1021

193

147

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 s ene dexava
po modulu 23 i 59.
x2 + 1 (mod n)

ai

mod 1357 ai
a1 = 1
a2 = 2
a3 = 5
a4 = 26
a5 = 677
a6 = 1021
a7 = 266
a8 = 193
a9 = 611
a10 = 147
a11 = 1255
a12 = 906

mod 23 ai
1
2
5
3
10
9
13
9
13
9
13
9

mod 59
1
2
5
26
28
18
30
16
21
29
16
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.
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.
Koliko treba qekati dodexavaa prvog ? Ako je n = pq i p < n,
onda algoritam zahteva O( p) (za sluqajno lutae kroz F ) = O( n) =
e
. Faktoriza ija nizom probnih de ea ima sloenost = O( n) =
e
, a algoritam sita u po u brojeva samo = e
.
96
1

O( 41

log n)

O( 21 log n)

O((log n)1/3 (log log n)2/3 )

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
elim brojevima mnoe po modulu 103. Taqka Q = (5, 98) = nG za neko n;
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
P = a Q + b G, gde su a , b neki osta i po modulu 103. Algoritam lutaa:
Ako je x(P ) 33 ili P = , onda P = Q + P , v = v + [1, 0].
Ako je 33 < x(P ) 68, onda P = 2P , v = 2v .
Ako je 68 < x(P ), onda P = G + P , v = v + [0, 1].
Ako je P = P , kraj. Tada je P = a Q + b G = a Q + b G = P .
Zbog toga je (a a )Q = (b b )G i Q = (b b )(a a ) G, gde je
(a a ) izraqunato po modulu 103.
2

101

101

101

i+1

i+1

2j

i+1

2j

2j

i+1

i+1

2j

2j

2j

i+1

2j

2j

2j

j
1

Pi
0
1 (5, 98)
2 (68, 60)
3 (63, 29)
4 (12, 32)
5 (8, 89)
6 (97, 77)
7 (62, 66)
8 (53, 81)
9 (97, 77)
10 (62, 66)
11 (53, 81)
12 (97, 77)

[a, b]
[0, 0]
[1, 0]
[2, 0]
[2, 1]
[4, 2]
[5, 2]
[6, 2]
[6, 3]
[12, 6]
[24, 12]
[24, 13]
[48, 26]
[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.
Naravno, mi ustvari izraqunavamo P , P , P i uporeujemo P , P . Zatim
izraqunavamo P , P , P i uporeujemo P , P . Zatim izraqunavamo P , P ,
P i uporeujemo P , P ,....
Sliqna ideja moe se iskoristiti za rexavae FFDLP.
Primer. g = 2 generixe F . Neka je y = 86 = g . Odrediti x.
Potrebno je definisati sluqajno lutae kroz F . Neka je c = 1 i
v = [0, 0]. Vektoru v = [a , b ] odgovara c = y g = 86 2 . Primetimo da
su svi a , b definisani po modulu 100.
Ako je c 33, onda c = c y = 86c , v = v + [1, 0].
Ako je 33 < c < 68, onda c = c , v = 3v (broj 3 se koristi jer je
uzajamno prost sa 100, redom grupe).
Ako je 68 c , onda c = c g, v = v + [0, 1].
12
1

101

ai bi

i+1

i+1

i+1

3
i

i+1

97

i+1

i+1
i

101
ai bi

Lutae se prekida u trenutku kad bude ispuen uslov c = c . Tada je c = y g = y g = c . Prema tome, y = g i y =
g
, gde se inverzija eksponenta vrxi po modulu 100. Rezultat lutaa:
a2j b2j
2j
(bj b2j )(a2j aj )1

aj bj

2j
bj b2j

a2j aj

i ci = 86ai 2bi
0
1
1
86
2
71
3
41
4
39
5
32
6
25
7
29
8
70
9
39
10
32

[ai , bi ]
[0, 0]
[1, 0]
[1, 1]
[1, 2]
[3, 6]
[9, 18]
[10, 18]
[11, 18]
[12, 18]
[12, 19]
[36, 57]

Dakle, 32 = 86 2 = 86 2 i 86 = 2 . Sada je 1857 61 (mod 100),


pa zbog toga 86 = 2 i 86 = 2 . Da e je 61(27 ) 61(63) 43
(mod 100) pa je 86 = 2 u F . Primetimo da ako komponente vektora
[a , b ] postanu 100, onda se zameuju svojim ostatkom po modulu 100.
Ako (a a ) nije invertibilno po modulu 100, onda bismo pronaxli sva
rexea jednaqine (a a )x = b b (mod 100).
36 57
27

9 18

1857

61(271 )

43

27

61

101

2j

2j

2j

24 Faktoriza ija

Najoqigledniji naqin za razbijae RSA poqie faktoriza ijom n = pq.


Kad govorimoo problemu faktoriza ije, pretpostav amo da se trai bilo
koji netrivijalni faktor broja n, pa pretpostav amo da je n neparno. Tako
je 105 = 7 15 uspexna faktoriza ija, bez bzira na to xto je 15 sloen
broj.
Najbo i poznati algoritam za faktoriza iju nekog RSA broja je sito u
po u brojeva. Faktoriza ija se pojav uje i u drugim kriptografskim kontekstima. U vezi sa Polig-Helmanovim algoritmom videemo da je vano
rastaviti na qinio e veliqinu grupe oblika F ili E(F ). Na taj naqin
postajemo sigurniji da je problem diskretnog logaritma u tim grupama
teak. Za takve faktoriza ije najqexe se koriste drugi algoritmi (ne
sito u po u brojeva). Zbog toga emo razmotriti i druge algoritme za faktoriza iju (kao xto su upotreba verinih razlomaka i eliptiqke krive)
koji se koriste u tim drugim kriptografskim kontekstima.
Faktoriza ija nizom de ea je pro es de ea n svakim prostim brojem
maim od n. To je vrlo neefikasno, ali je ipak najefikasniji postupak
za faktoriza iju brojeva do 15 ifara.
Veina algoritama za faktoriza iju zasniva se na sledeem. Zbog jednostavnosti pretpostaviemo da je n = pq, gde su p i q neparni prosti

98

brojevi. Pretpostavimo da smo pronaxli brojeve x i y takve da je x y


(mod n), ali x 6 y (mod n). Tada n|x y , pa n|(x + y)(x y), odnosno
pq|(x+y)(xy). Nadamo se da je npr. p|(x+y) i q|(xy). Ako je to ispueno,
onda je nzd(x + y, n) = p (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(xy, n)
neki delila n.
Razmotriemo sada neke algoritme za nalaee x i y.
2

24.1 Fermaova faktoriza ija n

Ovaj algoritam zasniva se na qieni i da je za male brojeve verovatnije


da budu kvadrati, nego za velike brojeve. Beskorisno je pokuxavati redom
sa x = 1, 2, 3 . . . jerje 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
da bude samo malo vee od n.
Najmai eli broj x oznaqava se sa x. Takop je 1.5 = 2 i 3 = 3.
Najpre izraqunavamo n. Zatim
p izraqunavamo n n. Ako to nije
eli broj, onda izraqunavamo ( n + 1) n. Ako to nije eli broj, onda
izraqunavamo p(n + 2) n, itd. sve dok rezultat ne bude eli broj.
Primer.
n = 3229799, n 1797.16, paje n = 1798. 1798 n = 3005,

ali
3005

/
Z . 1799 n = 6602, ali 6602
/ Z . 1800 n = 10201 i

10201 = 101. Prema tome, 1800 n = 101 i 1800 101 = n pa je


(1800 + 101)(1800 101) = n = 1901 1699.
Fermaova faktoriza ija radi dobro kad n nije mnogo vee od potpunog
kvadrata.
2

24.2 Baze faktora

Za broj n kaemo da je b-gladak ako su svi egovi prosti qinio i 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.
U veini savremenih algoritama za faktoriza iju (sa verinim razlom ima, kvadratno sito ili sito u po u brojeva) i je pronai x-ove
takve da je x (mod n) gladak broj. Kad se pronau takvi brojevi, pokuxava se sanalaeem nekog ihovog proizvoda jednak potpunom kvadratu
(mod n). Jedan naqin da se to postigne je da sami osta i 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 brojeva b, izabrane grani e glatkosti. Izbor optimalnog b
zavisi od komplikovanog objaxea iz teorije brojeva. Grani a 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
99
5

uk uqujemo u naxu bazu faktora. Za svako x za koje je x kn izraqunava


se ostatak r = x (mod n). Ako je r ostatak blizak n, onda se umesto ega
koristi 1 (n r). Zatim se ostatak rastav a na qinio e, 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 ele brojeve najblie kn. Broj takvih bliskih brojeva zavisi
od n na komplikovani
naqin. Neka je dakle x neki eli broj blizak kn.
Primer. n = 89893
, koristimo b = 20 i qetiri najblia broja za svaki
kn. Imamo da je n 299.8.
1 2 3 5 7 11 13 17 19
299 492 nije gladak
300 107
nije gladak
298 1089 1 3 11
1 0 0 0 0 0 0 0 0
301

708
nije
gladak

2n 424.01
4242 10
4252 839
4232 857
4262 1690

nije gladak
nije gladak
= 2 5 13
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)
(mod n). Podsetimo se da ako je x y (mod n) i x 6 y (mod n) onda je
nzd(x+ y, n) netrivijalni faktor n. Sada izraqunavamo ostatak proizvoda
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.Moglisubiti 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 . . .],
v = [0, 1, 0, 1, 0, 0, 0 . . .] (gde . . . oznaqava nule). Zatim bismo morali da
pronaemo podskup vektora kojima je zbir 0 po modulu 2. Ako sa M oznaqimo matri u qije su kolone v , . . . , v , onda treba da izraqunamo nula
prostor matri e M po modulu 2. Bilo koji nenula vektor iz nula prostora
daje e enu linearnu kombina iju vektora v . Nula prostor matri e M
ima bazu (1, 1, 0, 0, 1), pa je v + v + v = 0 po modulu 2.
1 2 5

0 1

24.3 Faktoriza ija pomou verinih razlomaka

Ovaj algoritam bio je najbo i algoritam za faktoriza iju oko 1975. godine. On je i da e najbri za ele brojeve umerene veliqine. Potrebno je
da x bude blisko umnoxku n. Neka je b/c neki par ijalni
razlomak dobijen polazei od vernog razvoja n. Tada je b/c n, pa je b /c n,
100
2

odnosno b c n, tj. b je blisko umnoxku n, odnosno b (mod n) je mali


broj.
Neka je n = 17873.Poqetakverinograzvoja n je [133, 1, 2, 4, 2, 3, 1, 2, 1, 2, 3, 3, . . .].
Koristiemobazufaktora {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29} pri qemu neemo
upisivati nule u tabli u.
2

[133] = 133
[133, 1] = 134
[133, 1, 2] = 401
3
[133, 1, 2, 4] = 1738
13
[133, . . . , 2] = 3877
29
[133, . . . , 3] = 13369
100

1332
1342
4012
17382
38772
133692

184 = 1 23 23
83 =
56 = 1 23 7
107 =
64 = 1 26
161 = 7 23

nije gladak
nije gladak

1 2 3
1 1
1

7 11 13 17 19 23 29
1
1

1
1

. Sada je
. To nije dobro. To znaqi da
, pa nismo dobili ni

(13340113369)2 (123 723)2 (mod n)


13340113369 1288
1 23 7 23 16585
1288 16585
nzd(16585 + 1288, n) = n nzd(16585 1288, n) = 1

i
, ali je
i
jedan faktor. Nastav amo da e.
[133, . . . , 1] =
[133, . . . , 2] =
[133, . . . , 1] =

17246
129
47861
358
65107
487

172462
478612
651072

nije gladak

77 = 1 7 11
149 =
88 = 1 23 11

1 2 3
1
1

5 7
1

11 13 17 19 23 29
1
1

. Sada je
Dobija se
. Oba qinio a , su prosti.

(401 3877 17246 65107)2 ((1)2 26 7 11)2 (mod n)


401 3877
17246 65107 7272 (1)2 26 7 11 4928.
7272 4928 = 2344
nzd(2344, n) = 293 n/293 = 61
293 61

i
,

24.4 Faktoriza ija pomou eliptiqkih krivih

Ovaj metod (autor je H. W. Lenstra mlai) je qesto efikasan kada najmai


prost qinila n ima izmeu 13 i 65 ifara, a sledei najmai prost
qinila je mnogo vei. Zapoqiemo sa motivixuim primerom.
Primer. Iskoristimo eliptiqku krivu y = x + x + 1 da rastavimo
na qinio e 221. Taqka R = (0, 1) oqigledno pripada krivoj. Po modulu
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 =
(mod 221). Prema tome, potrebno nam je 169
(mod 221). Pomou Euklidovog algoritma dobijamo da je nzd(221, 169) = 13. Prema tome, 13|221 i
221/13 = 17.
2

101

381
1690

37
169

Xta se desilo iza s ene?


R
2R
3R
4R
5R
6R

mod 13
(0, 1)
(10, 7)
(7, 0)
(10, 6)
(0, 12)

mod 17
(0, 1)
(13, 1)
(4, 16)
(9, 12)
(16, 4)
(10, 12)

Primetimo da je 18R = (mod 17). Uspeli smo jer je 6R = po modulu


13, a 6R 6= po modulu 17. Primetimo da je po modulu bilo kog prostog
broja neki umnoak R jednak . Kraj primera.
Zbog jednostavnosti razmatraemo faktoriza iju n = pq, iako metod
radi za proizvo ne ele 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
modulujednog prostog qinio a(npr. p), ali ne i drugog. Nekaje k nagib koji
se pojav uje pri izraqunavau t!R. Tada je nzd(k, n) = p, odnosno dobili
smo qinila 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 faktoriza iju takve mogunosti nisu
na raspolagau. Moe npr. se koristiti familija E : y = x + jx + 1 i
R = (0, 1) za razne j .
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
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
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
invertovan po modulu n. Upravo ovo je znak uspeha, jer je nzd(54323, n) =
54323 i n/54323 = 12347.
2

24.5 Po e brojeva

Razmotriemo najpre po a brojeva da bismo mogli da razumemo sito u po u


brojeva.
Neka Z oznaqava skup elih brojeva, Q skup ra ionalnih brojeva (razlomke kojima je brojila elibroj, a imenila prirodni broj), a R skup
realnih brojeva. Neka je i = 1; i = 1, i = i, i = 1. Skup C =
2

102

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 skup { | 1 i n} jednoznaqno odreen. Brojevi su koreni
f . Broj je koren f ako i samo ako je f () = 0.
Skup Q() je po e brojeva. Sastoji se od svih brojeva dobijenih kombinovaem ra ionalnih brojeva i korixeem
opera ija
+, ,
, /.

Primer.
Neka
je
f
(x)
=
x

2
=
(x
+
2)(x

2)
.
Neka
je

=
2. Tada
je Q(2) = {a + b2 | a, b Q}. Skupje oqigledno zatvoren zasabirae
i
oduzimae. Mnoee:
(a+
b
2)(c+
d
2)
=
(ac+
2bd)+
(ad+
bc)
2

Q(
2).
De ee (a + b2)/(c + d2):
{a + bi) | a, b R}

n1

n1

a+b 2
(a + b 2)(c d 2)
ac 2bd
bc ad
=

= 2
+ 2
2 Q( 2).
2
2
c 2d
c 2d
c+d 2
(c + d 2)(c d 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
(sem nulom). De ee je malo komplikovanije.
Svaki element korenskog po a je koren nekog polinoma sa elobrojnim
koefi ijentima (a Z), koji su kao skup uzajamno prosti, pri qemu je
najstariji koefi ijent pozitivan (a > 0). Polinom najmaeg stepena koji
zadovo ava ovaj uslov je minimalni polinom broja .
Primer. Odrediti minimalni polinom broja = 2 + 1. Moemo da
iskoristimo defini iju : ( 1) = 2, 3 + 3 1 = 2, 3 +
3 3 = 0. Prema tome, minimalni polinom je f (x) = x 3x + 3x 3.
Jasno je da je f () = 0, tj. je koren f . Pored toga, nije koren ni jednog
kvadratnog ili linearnog polinoma sa elobrojnim koefi ijentima.
Ako je najstariji koefi ijent minimalnog polinoma jednak 1, onda
je algebarski eli broj. Ovo je u skladu sa uobiqajenom defini ijom za
ra ionalne 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
eli brojevi, onda kaemo da |. U po u brojeva K se za algebarski eli
broj kae daje prost ako iz | sledi | ili |, gde su , algebarski
eli brojevi u K . Na alost, nemaju sva po a brojeva "dovo no" prostih
brojeva. To oteava implementa iju
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
elih algebarskih brojeva: jedini naqin da se on rastavina qinio e
je
2 = 2 1 = (2)

(1)
.
Meutim,
2
nije
prost.
Zaista,
2|(1
+
5)(1

5),
ali 2 6 |1 + 5 i 2 6 |1 5. Qieni a da na primer 2 6 |1 + 5 sledi
iz toga xto je minimalni polinom broja (1 + 5)/2 jednak 2x 2x + 3,
a taj broj nije algebarski eli broj. Primetimo takoe da u ovom po u
faktoriza ija nije jedinstvena.
3

1/3

1/3

2/3

1/3

103

U skupu Z faktoriza ija 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 jedini a (u ovom
sluqaju 1, invertibilni algebarski eli broj).
U nastavku emo zbog jednostavnosti raditi sa po em brojeva Q(i) =
{a+bi | a, b Q}. Algebarski eli brojeviu 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 jedini e 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
predstaviti u obliku p = a + b , a, b Z, pa je p = (a + bi)(a bi), pri qemu
su a+bi, abi nepridrueni prosti brojevi. Drugim reqima, p se razlae u
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
je jedini a, pa su 1 4i i 4 + i pridrueni. Za ovu qieni u moe se
upotrebiti oznaka 1 4i 4 + i. Broj i je jedini a jer je egov minimalni
polinom x + 1, pa je algebarski eli 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,
i jedini e). 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 faktoriza ije 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).
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
Z i p|N (a + bi) (tj. p|a + b ) onda neki prosti delila p deli a + bi. Ovo
olakxava faktoriza iju algebarskih elih brojeva u Z[i].
Faktoriza ija 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) eli broj.


>0

2 3

5+i
3 + 2i

3 2i
3 2i

17 7
+
i
13
13

pa 3 + 2i 6 |5 + i.
Faktoriza ija 7+i. Najpre je N (7+i) = 50 = 25 . 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) =
i = i , pa je 7 + i = i (1 + i)(2 + i) .
Sledea qieni a je takoe korisna za faktoriza iju u Z(i). Ako je
a + bi Z(i) i nzd(a, b) = 1 i N (a + bi) = p p gde su p pozitivni
prosti brojevi, onda p 6 3 (mod 4) i a + bi = i , gde je neki
od prostih delila a p . Pri tome se u ovom izrazu nikad ne pojav uju
istovremeno dva prosta qinio a p .
U posledem primeru N (7+i) = 2 5 , pa znamo da je 7+i = i (1+i) (2
i) . Dovo noje da odredimo i znak u . Drugi primer. N (176i) = 325 =
5 13, pa je 7 6i = i (2 i) (3 2i) , pri qemu se ne moraju poklapati.
104
2

1
1

r
r
0 1
1

r
r

0
2

1 2

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 faktoriza iju brojeva n > 10 , pri qemu je najmai
prost qinila n bar 10 . RSA brojevi su ovog tipa. Broj RSA {193 (koji
ima 193 ifre) rastav en je na qinio e primenom
p ovog algoritma.
d
(on
zavisi
od
n
,
d

ln n/ ln ln(n)). Neka je m =
Najpre
se
bira
stepen

n; n se razlae u sistemu sa osnovom m. Dakle, n = m + a m


+
+ a , pri qemu je 0 a < m. Neka je f (x) = x + a x
+ + a .
Neka je koren f . Radi se u po u Q().
Neka je potrebno rastavitinaqinio e
broj 2501.Poxtoje pln 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
(mod 2501). Definixemo preslikavaa h : Z[i] Z, h(a + bi) = a + b50,
+ bi) = a + b50 (mod 2501). Preslikavae h
ima
i h : Z[i] Z/2501Z, h(a

osobine h( + ) = h() + h() i h() = h()h(). Preslikavae h ima


prvu, ali ne i drugu od ovih osobina.
Sledei korak je traee brojeva oblika = a+bi, a, b Z, a 0, b 6= 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 faktoriza ija jox uvek
texka. Potrebno je nai , ..., , takve da je . .. = u Z[i] i
h( )h( ) . . . h( ) = t u Z. Tada je h() = h()h() h()h() h( )

h(
. . . ) = h(
)...
h( ) = t . Posmatrajmo ostatke elih brojeva
h() i t po modulu n. Iz h() t (mod n) ako je h() 6 t (mod n),
sledi da je nzd(h() + t, n) netrivijalni qinila n.
Rastavimo sada 2501 pomou sita u po u brojeva. Koristiemo bazu
faktora i, 1+i, 2i, 32i, 4i, 52i za algebarske ele brojeve. Ovi brojevi
dele ele brojeve 1, 2, 5, 13, 17, 29.Za ele brojeve koristiemo bazu faktora
1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29. Funk ija h definisana je sa h(a + bi) =
130

65

d1

d1

d1

d1

1 2

1 2

105

a + b 50

faktoriza ija

faktoriza ija h()

h()
i
=i
50
1+i
=1+i
51
2+i
=2+i
52
4+i
=4+i
54
7 + i = i3 (1 + i)(2 + i)2
57
1i
= i3 (1 + i)
49
2i
=2i
48
4i
=4i
46
5 i = i3 (3 + 2i)(1 + i) 45
8 i = (3 2i)(2 + i)
42
5 + 2i
= 5 + 2i
105
1 2i
= i3 (2 + i)
99
9 2i
= (4 + i)(2 i)
91
5 2i
= 5 2i
95
5 3i = i3 (1 + i)(4 + i) 145
3 + 4i
= (2 + i)2
203
2 + 5i
= i(5 2i)
252
3 + 5i
= (4 + i)(1 + i)
253
3 5i = i3 (1 + i)(4 i) 247

= 2 52
= 3 17
= 22 13
= 2 33
= 3 19
= 1 72
= 1 24 3
= 1 2 23
= 1 32 5
= 1 2 3 7
=357
= 1 32 11
= 1 7 13
= 1 5 19
= 1 5 29
= 7 29
= 22 32 7
= 11 23
= 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 qinio ima redom

(i, 1+i, 2+i, 2i, 3+2i, 32i, 4+i, 4i, 5+2i, 52i, 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29).

Rexavaem sistema linearnih jednaqina odreuju se obeavajue kombina ije qinila a. U ovom primeru, ako se saberu svi vektori obeleeni
zvezdi om, dobija se nula vektor. Dakle, mnoeem odgovarajuih dobija se kvadrat u skupu algebarskih elih, a mnoeem odgovarajuih h()
dobija se kvadrat elog broja. Proizvod zvezdi ama oznaqenih algebarskih
elih je i (1 + i) (2 + i) (4 + i) (4 i) a proizvod odgovarajuih elih brojeva je (1) 2 3 7 11 13 19 23 .
Neka je
12

= 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).

106

Prema tome 38 1444 1807 (mod 2501)). Iz nzd(1807 38, 2501) = 61 i


2501/61 = 41 sledi 2501 = 61 41.
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 verovatnijee biti gladakod proizvo nog
broja iz tog intervala. Mogu se odrediti uslovi koje osta i a i b po modulu
36 treba da zadovo avaju da bi se garantovalo da h(a + bi) bude umnoak
36.
2

25 Rexavae problema diskretnog logaritma u Fq

Razmotriemo dva metoda za rexavae FFDLP. Prvi je metod PoligaHelmana, koji je efikasan ako je veliqina F gladak broj. Metod sliqan
ovommoe se primeniti za rexavaeECDLP.Drugimetod je metodizraqunavaa indeksa, za koji se ne zna varijanta koja bi rexavala ECDLP.
Metodi se zasnivaju na kineskoj teoremi o osta ima.

25.1 Digresija: upotreba kineske teoreme o osta ima


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
je M M (mod p), M M (mod q), C C (mod p), C C (mod q),
d d (mod
p 1), d d (mod q 1). Svi brojevi M , M , C , C , d , d su
mai od 2n. Brojevi d i d mogu se unapred izraqunati. Izraqunavae
ostataka C i C ima sloenost O(log (n )), xto nije mnogo. Izraqunavaa C M (mod p) i C M (mod q) imaju sloenost O(log (n ).
Prema tome, svako od ovih izraqunavaa uzima 1/8 vremena potrebnog za
izraqunavae C (mod n). Odreivae M polazei od M (mod p) i M
(mod q) pomou kineske teoreme o osta ima zahteva vreme O(log (n )),
ali je sporije od izraqunavaa C M (mod p). U praksi, dva ponovljena kvadriraa po modulima p i q i upotreba kineske teoreme o osta ima
traju oko dva puta mae od izraqunavaa C M (mod n).
e

dp
p

dq
q

1/2

1/2

dp
p

1/2

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
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 qinila . Najpre e biti izloen algoritam,
pa primer rada algoritma i objaxee zaxto on radi.

107

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
rexava se jednaqina z = 1 (pri qemu je z 6= 1) u F . Takva rexea zovu
se primitivni p -ti koreni iz jedini e i oznaqavaju se sa . Poxto
g generixe F , vidimo da je = g
jedan od primitivnih p -tih
korena iz jedini e. Za svaki broj p unapred se izraqunavaju sva rexea
jednaqine z = 1. To su , , ..., . Ove vrednosti se pamte zajedno
sa odgovarajuim eksponentima .
Podsetimo se da se u F sa eksponentima raquna po modulu q 1. Zato,
kada se odrede osta i x (mod p ), x se moe odrediti pomou kineske teoreme o osta ima. Dakle, ostaje da se odredi x (mod p ) (zbog jednostavnosti 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 koefi ijenata x .
Izraqunavamo y
(mod q). Taj broj je na spisku stepenova . Na
osnovu jednakosti y (mod q) dobijamo vrednost x .
Neka je y y/(g ) (mod q). Odredivxi y
(mod q) dobijamo x .
Neka je y y/(g ). Odredivxi y
dobijamo x .
Neka je y y/(g
). Odredivxi y
dobijamo x ,
itd.
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).
Poqiemo izraqunavaem g = = = 400 i = = 1 (raquna se
po modulu 401). U razlagau x = x + x 2 + x 4 + x 8 (mod 16) potrebno je
odrediti koefi ijente x .

q
r
r

1
1

pi

0
pi

pi

(q1)/pi

pi

pi

1
pi

pi 1
pi

pi

i
i

(q1)/p

(q1)/p2
1

x1
p

(q1)/p3
x2
p
2
(q1)/p4
3

x0 +x1 p

x0 +x1 p+x2 p2

i
p

x0
p

x0

(q1)/p

x3
p

400/2

1
2

2
2

0
2

y
g x0

y (q1)/p = 304400/2 400 (mod 401) = 21


2
(q1)/p2
y1
= 235400/(2 ) 400 = 21
3
(q1)/p3
y2
= 338400/(2 ) 1 = 20
4
(q1)/p4
y3
= 338400/(2 ) 400 = 21

= 304/3 235 (mod 401) = y1 .


y

gx0 +x1 p
y
gx0 +x1 p+x2 p

= 304/(3

1+12

= 304/(3

) 338 = y2 .

1+12+04

) 338 = y3 .

Prelazimo na odreivae x (mod 25). Najpre izraqunavamo g = =


72, = 372, = 318, = 39, i = = 1. Treba odrediti koefi ijente
u razlagau x = x + x 5 (mod 25).
y
= 304
372 (mod 401) =
pa je x = 2.
= 304/3 212 = y .
y
= 212
318 =
pa je x = 3.
Prema tome x 2 + 3 5 = 17 (mod 25). Iz x 11 (mod 16) i x 17
(mod 25) na osnovu kineske teoreme o osta ima sledi x = 267. Dakle 3
=
304 (mod 401).
Zaxto ovoradi? Razmotrimo jedan jednostavniji primer. Nekaje q = 17,
g = 3. Tada je q 1 = 16 = 2 . 3 = 16 = i 3 = 1 = .
108
400/5

2
5

3
5

4
5

5
5

(q1)/p

y
g x0

0
5

400/5

(q1)/p2
1

2
5

400/(52 )

3
5

0
1

267

18

1
2

08

0
2

pa je x
pa je x
pa je x
pa je x

= 1.

= 1.

= 0.

= 1.

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
7
(mod 17).
znamo
isto, ali ne
znamo eksponent
16

11

1+12+04+18

78 16 = (38 )1

7 4
= 16 = (38 )1
31

2
7
8 0
31+12  = 1 = (3 )
1
7
= 16 = (38 )1
31+12+04

7,
7
31 ,

7
31+12 ,
7

31+12+04 ,

31+12+04+18 ,
312+04+18 ,
304+18 ,
318

318+16n = 318 (316 )n = (38 )1


318+16n = (38 )1
308+16n = (38 )0
= (38 )1

25.3 Algoritam za izraqunavae indeksa

Algoritam za izraqunavaeindeksaje metodzarexavaeproblemadiskretnog


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
indeksa, onda je lakxe rexiti problem diskretnog logaritma u F nego u
F . Meutim, lakxe je implementirati xifarske sisteme nad F , pa rad
sa ovakvim po ima ostaje popularan. Zbog toga emo demonstrirati ovaj
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
x = x 1 = x + 1. F je F bez 0. Skup F ima 8 1 = 7 elemenata i oni
su generisani elementom x. Tako je x = 1, x = x , x = x + 1, x = x + x,
x = x + x + 1, x = x + 1 i x = 1. Primetimo da je x = x x = x , jer
se sa eksponentima raquna po modulu 7 (xto je broj elemenata u F ).
Podsetimo se, log m = a znaqi b = m, pa je log (x + x + 1) = 5 jer je
x = x + x + 1. Osnovu x logaritma obiqno neemo pisati. Logaritmi daju
eksponente, pa logaritmi rade po modulu 7. Primetimo da iz (x + 1)(x +
1) = x sledi log(x + 1)(x + 1) = log(x + 1) + log(x + 1) = 6 + 3 = 9, dok je
log(x ) = 2; ovo meutim nije kontradik ija, jer je 9 2 (mod 7).
Razmotrimo opxti sluqaj. Neka je f (x) nesvod iv (nad F ) polinom
stepena d. Tada je F = F [x]/(f (x)), gde je q = 2 . Pretpostavimo da je g
generator F . Ako je g = y onda kaemo da je log y = n, odnosno log y = n.
Vae identiteti log(uv) log(u) + log(v) (mod q 1) i log(u ) r log(u)
(mod q 1).
Formula ija 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
n = log y . Primetimo da je log g = 1.
Pripremni korak za algoritam izraqunavaa indeksa je izbor broja m,
1 < m < d (kako se on bira | komplikovano objaxee se zasniva na
teoriji brojeva i statisti i; 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 i u izraqunati
stepene g u nadi da je g = h h h (neki od eksponenata mogu
da budu 0). Drugim reqima, elimo da g bude m-gladak. Logaritmovaem
109
q

2r

2r

12

2 2

1 2
1
2

r
r

se dobija t = log(h ) + + log(h ). To je sistem linearnih jednaqina


po log(h ) (to su jedine nepoznate). Odrediti vixe ovakvih linearnih jednaqina sve dotle dok ne bude mogue odrediti sve vrednosti log(h ). Kad
se to zavrxi, znaju se svi logaritmi a = log(h ).
Korak 2. Izraqunati yg za razne vrednosti t sve dok se ne dobije yg =
h h . Tada je log y +t log g = log h + + log h , odnosno log y +t =
a + + a . Ovde je nepoznato samo log y . Kada se radi u konaqnim
po ima qesto se umesto log koristi oznaka ind.
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
g = x je generator F . Biramo m = 4. elimo da reximo g = y =
x + x + x + x + x + x + 1 po n, odnosno da odredimo log(y). Prvi korak
nema nikakve veze sa y. Neka je
1

1
1

r
r

1 1

r r

11

11

1 = log(x)
a = log(x + 1)
c = log(x2 + x + 1) d = log(x3 + x + 1)
3
2
4
e = log(x + x + 1) h = log(x + x + 1) j = log(x4 + x3 + 1) k = log(x4 + x3 + x2 + x + 1).

Izraqunavajui razne stepenove g dobijamo


t

g 11
g 41
g 56
g 59
g 71

= (x + 1)(x3 + x2 + 1)
= (x3 + x2 + 1)(x3 + x + 1)2
= (x2 + x + 1)(x3 + x + 1)(x3 + x2 + 1)
= (x + 1)(x4 + x3 + x2 + x + 1)2
= (x3 + x2 + 1)(x2 + x + 1)2

11 = a + e (mod 2047 = q 1)
41 = e + 2d
56 = c + d + e
59 = a + 2k
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.
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 matri a 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
g
= (x + 1)(x + x + 1)(x + x + x + x + 1), pa je 106 = a + j + k i j = 677.
g
= (x +x+1)(x +x +x +x+1)(x+1)2 pa je 126 = h+k+2a i h = 1898.
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.
Poxto je log(g) = log(x) = 1, dobija se log(y) = 2k 19 1241 (mod 2047),
odnosno x = y.
Sito u po u brojeva moe se kombinovati sa algoritmom za izraqunavae indeksa. Tako se dolazi do o ene da je vremenska sloenost rexavaa
FFDLP u suxtini ista kao i sloenost faktoriza ije.
110
83

106

126

19

1241

26 Zada i

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. Dokazati da je za m N proizvod (m + 1)(m + 2) s(m + m) de iv sa
2 .
3. Neka je nzd(a, b) = 1. Dokazati da je nzd(a + b, a b) 2.
4. IzraqunatiNZD nzd(549, 387), nzd(589, 343), nzd(12606, 6494), nzd(6188, 4709),
a zatim izraziti NZD kao linearnu kombina iju tih brojeva.
5. Odrediti 160 (mod 841).
6. Koliko qinila a ima broj 945?
7. Odrediti 2
mod 7.
8. Odrediti sva rexea kongruen ije 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 qinio e brojeve 82798848, 81057226635.
12. Rastaviti na proste qinio e 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 kvadratapet uzastopnih elih brojevane moe biti
potpuni kvadrat.
18. Odrediti sva elobrojna rexea jednaqina 53x + 47y = 1, 22x + 32y =
18.
19. Ako je nzd(a, n) = 1, dokazati da je a a (mod n).
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).
111
2

1000000

(n)2

22. Odrediti sve generatore Z/nZ za n = 23, 29.


23. Izraqunati 5 (mod 29), 7 (mod 29), 21 (mod 29), 39 (mod 23),
(1)
(mod 23).
24. Odrediti sve nesvod ive polinome stepena 3 u F [x].
25. Da li je nesvod iv polinom x + x + x + x + 1 u F [x]?
26. Napraviti tabli u mnoea u a) F [x]/(x + x + 1) ; b) F [x]/(x +
x + 1) .
27. Pomou Euklidovog algoritma odrediti (x ) u po u F [x]/(x +
x + 1).
28. Odrediti matri e 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 poru i ako se koristi
a) sinhrona protoqna xifra;
a) samosinhronixua protoqna xifra kod koje c zavisi od p ,
p
,..., p ?
31. Koliki najvei period moe imati izlazni niz iz algoritma RC4
(odgovor treba da zavisi od parametra n)?
32. Koristei qieni u da funk ije M C u SAES transformixe kolonu
b b b b
ukolonu bb bb bb bb bb bb bb bb bb bb = bb bb bb bb
b b b b
Odrediti matri u A koja vektor b = [b b . . . b ] preslikava u
b = [b b . . . b ] = Ab
33. Od koliko najmae bita staa algoritma AES zavisi neki bit staa
posle
a) funk ije ByteSub;
b) funk ije Shif tRow;
v) funk ije M ixColumn;
g) funk ije AddRoundKey;
d) jedne runde?

4 1

ik+1

0 1 2 3

4 5 6 7

ik

2
0

T
7

112

4
1

6
T

34. Koliko bitaje pogrexnoposle dexifrovaaporukeakoje xifrovanje izvrxeno algoritmom AES u reimu ECB, CBC, CFB, OFB?
35. Koristei tabelu koja opisuje funk iju 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).
37. O eniti sloenost izraqunavaa
B ; faktoriza ije N de eem sa
brojevima maim od N .
38. Napraviti tabli u stepenova, odnosno logaritama, u F [x]/(x + x +
1) ako je generator x. Koristei ove tabele izraqunati (x + 1)(x +
x + 1).
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.
40. Dokazati da u po u F , ako je q = p , p { prost broj, vai (a + b) =
a +b .
41. Na eliptiqkoj krivoj y = x 36 neka je P = (3, 9) i Q = (2, 8).
Odrediti P + Q i 2P .
42. Koliko rexea ima jednaqina x 1 (mod n) za razliqite vrednosti m, m < n?
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 kongruen ija ima 4 rexea.
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 transforma ija f : P P gde je P fiksirani skup moguih otvorenih tekstova. Alisa eli da Bobanu sigurno prenese poruku primenom Mesi{
Omura postupka, tj. Alisa xa e f (P ) Bobanu, koji joj zatim xa e
f (f (P )), itd. Opisati uslovekoje trebada zadovo isistem funk ija f da bi sistem funk ionisao.
48. Za eliptiqku krivu E : y = x + Ax + B izvesti izraze za zbir dve
taqke P + Q, odnosno P + P .
1616

de

113

49. Dokazati da eliptiqka kriva nad po em F ima najvixe 2q + 1 taqku.


50. Za eliptiqku krivu E : y = x + 3x + 8 nad po em F
a) pokazati da je skup taqaka krive
q

13

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 um-

noaka 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.
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
xifrata.
53. U sistemu autentika ije 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 korisni i 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 eli
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 .
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) Koji je en javni k uq?
b) Xta je potpis poruke S = 5331 ako se koristi k uq sesije k =
10727?
b) Kako primala B proverava potpis?
A

1 2

114

58. Odrediti verini razvoj brojeva 3, 5, 7, , i odrediti prvih


8 par ijalnih razlomaka.
59. Odrediti orbite za linearne pomeraqke registre: 1 + x + x + x ,
1+x+x , 1+x+x .
60. Odrediti linearne kombina ije ulaza i izlaza najblie konstanti
za tabelu S u SAES , i za sbox-ove S1 i S4 za DES .
61. Rastaviti na qinio e 14873 postupkom koji koristi sluqajno lutae
po modulu 14873.
62. Primeniti Fermaov postupak faktoriza ije na broj 21079.
63. Dokazati
da su u po u Q(5) algebarski eli 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 elih brojeva.
65. U skupu Z(i) rastaviti na qinio e brojeve 5 + 3i, 11 3i.
66. Pomou Polig-Helmanovogalgoritmaizraqunati logaritam broja 303,
pri qemu je sve ostalo isto kao u primeru u tekstu.
7
23

115

You might also like