Kripto Serb
Kripto Serb
Miodrag ivkovi
6 aprel 2017 g.
Sadraj
1 Uvod 4
2 Osnovni pojmovi 4
3 Istorija 6
4 Pregled osnova teorije brojeva 7
5 Jednostavni xifarski sistemi 14
6 Savremene protoqne xifre 16
7 Konaqna po a 17
8 RC4 18
12 AES 24
12.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
12.2 Uproxeni AES . . . . . . . . . . . . . . . . . . . . . . . . . . 24
12.2.1 Konaqno po e . . . . . . . . . . . . . . . . . . . . . . . . 24
12.2.2 Tabela S . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
12.2.3 Proxirivae k uqa . . . . . . . . . . . . . . . . . . . . 26
12.2.4 Algoritam SAES . . . . . . . . . . . . . . . . . . . . . . 27
12.2.5 Dexifrovae . . . . . . . . . . . . . . . . . . . . . . . . 29
12.2.6 Primer xifrovaa . . . . . . . . . . . . . . . . . . . . 30
12.3 Kompletan AES . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
12.4 AES kao kombinovana xifra . . . . . . . . . . . . . . . . . . . 31
12.5 Naqini korixea blokovskih xifri . . . . . . . . . . . . . 31
12.6 Analiza uproxenog algoritma AES . . . . . . . . . . . . . . 32
1
12.7 Objaxee konstrukcije AES . . . . . . . . . . . . . . . . . . 33
12.8 Sigurnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
12.9 Efikasnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
13 Napadi na blokovske xifre 34
13.1 Potpuna pretraga i susret u sredini . . . . . . . . . . . . . . 34
14 Stepenovae ponov enim kvadriraem 35
15 Vremenska sloenost algoritama 36
16 Sistemi sa javnim k uqem 41
16.1 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
16.2 Problem diskretnog logaritma u konaqnom po u . . . . . . . 44
16.3 Protokol usaglaxavaa k uqa Difi{Helman . . . . . . . . . 44
17 Mae korixeni xifarski sistemi sa javnim k uqem 45
17.1 RSA kao algoritam za xifrovae poruka . . . . . . . . . . . 45
17.2 ElGamalov algoritam za xifrovae . . . . . . . . . . . . . . . 45
17.3 Razmena k uqeva Mesi-Omura . . . . . . . . . . . . . . . . . . . 46
18 Eliptiqke krive 47
18.1 Problem diskretnog logaritma sa eliptiqkim krivama . . . 51
18.2 Sistemi sa eliptiqkim krivama . . . . . . . . . . . . . . . . . 53
18.2.1 Sistem analogan PUKDH . . . . . . . . . . . . . . . . . 53
18.2.2 Sistem analogan ElGamalovoj razmeni poruka . . . . . 54
19 Hex funkcije, MD5, kodovi za autentikaciju (MAC ) 55
19.1 Hex algoritam MD5 . . . . . . . . . . . . . . . . . . . . . . . . 56
19.1.1 Poqetno stae registara . . . . . . . . . . . . . . . . . . 56
19.1.2 Qetiri funkcije . . . . . . . . . . . . . . . . . . . . . . 56
19.1.3 Konstante . . . . . . . . . . . . . . . . . . . . . . . . . . 57
19.1.4 Oznake za rotaciju . . . . . . . . . . . . . . . . . . . . . 57
19.1.5 Ostale oznake . . . . . . . . . . . . . . . . . . . . . . . . 57
19.1.6 Izraqunavae f . . . . . . . . . . . . . . . . . . . . . . . 57
19.1.7 Objaxee . . . . . . . . . . . . . . . . . . . . . . . . . . 58
19.1.8 Hex algoritam . . . . . . . . . . . . . . . . . . . . . . . 59
20 Potpisi i autentikacija 60
20.1 Potpisi pomou RSA . . . . . . . . . . . . . . . . . . . . . . . 60
20.2 El Gamalov potpis . . . . . . . . . . . . . . . . . . . . . . . . . 62
20.3 Xnorov postupak autentikacije i potpisa . . . . . . . . . . . 63
20.4 Vremenski peqat . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
20.5 KERBEROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
20.6 PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
20.6.1 Sertifikati . . . . . . . . . . . . . . . . . . . . . . . . . 65
20.6.2 PGP i mrea poverea . . . . . . . . . . . . . . . . . . 67
2
20.7 Sigurnost na internetu . . . . . . . . . . . . . . . . . . . . . . 68
20.7.1 SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
20.7.2 IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
20.8 Uprav ae k uqevima . . . . . . . . . . . . . . . . . . . . . . . 70
20.9 Kvantna kriptografija . . . . . . . . . . . . . . . . . . . . . . 71
20.10De ee tajne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
21 Kriptoanaliza 73
21.1 Vinerova xifra . . . . . . . . . . . . . . . . . . . . . . . . . 75
21.1.1 Test Kaziskog . . . . . . . . . . . . . . . . . . . . . . . . 76
21.1.2 Fridmanov test . . . . . . . . . . . . . . . . . . . . . . . 77
21.1.3 Odreivae k uqa . . . . . . . . . . . . . . . . . . . . . 79
21.2 Kriptoanaliza modernih protoqnih xifara . . . . . . . . . . 80
21.2.1 Generator sluqajnih brojeva b/p . . . . . . . . . . . . . 80
21.3 Pomeraqki registar sa linearnom povratnom spregom . . . . 82
22 Linearna i diferencijala kriptoanaliza 87
22.1 1SAES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
22.2 Linearna kriptoanaliza . . . . . . . . . . . . . . . . . . . . . . 88
22.3 Linearna kriptoanaliza 1SAES . . . . . . . . . . . . . . . . . 89
22.4 Odreivae jednaqina . . . . . . . . . . . . . . . . . . . . . . . 89
22.5 Napad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
22.5.1 Brzina napada . . . . . . . . . . . . . . . . . . . . . . . . 94
22.6 Diferencijalna kriptoanaliza . . . . . . . . . . . . . . . . . . 94
23 Roendanski paradoks 98
24 Faktorizacija 101
24.1 Fermaova faktorizacija n . . . . . . . . . . . . . . . . . . . . 102
24.2 Baze faktora . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
24.3 Faktorizacija pomou verinih razlomaka . . . . . . . . . . 103
24.4 Faktorizacija pomou eliptiqkih krivih . . . . . . . . . . . 104
24.5 Po e brojeva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
24.6 Sito u po u brojeva . . . . . . . . . . . . . . . . . . . . . . . . . 108
25 Rexavae problema diskretnog logaritma u F∗q 110
25.1 Digresija: upotreba kineske teoreme o ostacima za dexifrovae
RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
25.2 Polig-Helmanov algoritam . . . . . . . . . . . . . . . . . . . . 110
25.3 Algoritam za izraqunavae indeksa . . . . . . . . . . . . . . . 112
26 Zadaci 114
3
Osnova za ovaj kurs je tekst lekcija E. Schaefera (univerzitet Santa
Klara u Kaliforniji) An introduction to cryptography,
http://math.scu.edu/˜eschaefe/crylec.pdf. Izvrxena su samo minimalna prilagoavaa,
pre svega jeziqka. Potrebno predznae je minimalno.
Alisa eli da poxa e poruku Bobanu, ali tako da izbegne da radoznala
Cica (protivnik, neprijate , koja moe da snima tue poruke) moe da
razume tu poruku. Zbog toga Alisa xifruje poruku pre slaa. Boban dexifruje
prim enu poruku. U toku prvog dela kursa (kriptografija ) analiziraemo
ove dve aktivnosti, xifrovae i dexifrovae. Ako Cica presretne poruku,
onda e ona pokuxati da razbije xifru i dekriptira (proqita) poruku;
u drugom delu kursa baviemo se algoritmima povezanim sa razbijaem
xifri, odnosno kriptoanalizom.
Literatura:
Menezes, Oorshot, Vanstone, Handbook of Applied Cryptography
B. Schneier, Applied Cryptography, II izdanje, 1996.
D. Stinson, Cryptography - Theory And Practice, III izd, CRC 2006.
N. Koblitz, A course in number theory and cryptography, Springer, 1987.
A. G. Konheim, Computer Security and Cryptography, Wiley, 2007.
1 Uvod
Posle pregleda osnovnih pojmova iz kriptologije, nekoliko primera iz
istorije kriptografije i osnovnih pojmova iz teorije brojeva, u ovom kursu
razmatraemo nekoliko jednostavnih xifarskih sistema, primere kriptoanalize
i neke savremene xifarske sisteme.
2 Osnovni pojmovi
Otvoreni tekst, OT je poruka koju treba poslati, npr. ZDRAVO.
Xifrat, ST je xifrovana poruka, npr. XQABER.
Xifrovae je transformacija otvorenog teksta u xifrat.
Dexifrovae je inverzna transformacija xifrata u otvoreni tekst.
Kodirae transformixe otvoreni tekst u niz cifara ili bita. Na primer,
ako velika slova (engleske) abecede kodiramo sa A→ 0, . . . Z→ 25, onda se
req ZDRAVO kodira sa 25 3 17 0 21 14. U praksi se qesto koristi ASCII kod,
koji svaku simbol predstav a sa 8 bita, npr. A → 01000001, B → 01000010,
a → 01100001, 0 → 00110000, ? → 00111111, i sl.
Dekodirae transformixe niz cifara ili bita u polazni tekst. U
kodirau i dekodirau nema niqega tajnog.
Protoqna xifra transformixe otvoreni tekst simbol po simbol, odnosno
najqexe bit po bit.
4
Blokovska xifra primeuje se na simbole otvorenog teksta grupisane
u blokove. To mogu da budu npr. bigrami | parovi slova (kao xto je
TI), odnosno trigrami | trojke slova. AES (skraenica od Advanced
radi sa blokovima od po 128 bita (odnosno 16 znakova).
Ako algoritam xifrovaa radi sa bigramima, onda on moe (ne mora) da
Encryption Standard)
5
3 Istorija
Spartanska xifra Skitale (400 godina p.n.e.) Ovo je primer xifre premextaa.
Slova poruke ispisuju se na dugaqkoj papirnoj traci, koja se omotava oko
xtapa. Dijametar xtapa je k uq za xifrovae.
-----------------------------
/T/R/A/K/A/ / / \
/S/E/ /O/M/O/ | |
/T/A/V/A/ / / \ /
-----------------------------
Cezarova xifra. Xifra zamene, koja svako slovo zameuje treim slovom
udesno (du abecede) od ega. Ako se radi o engleskoj abecedi, onda su
zamene A → D, B → E, ... Z → C . Xifrat HAL odgovara poruci IBM
("Odiseja u svemiru 2001") (ovde se vrxi pomerae za jedno slovo udesno).
Plejferova xifra. Primeivana je oko 1910-20. godine u Burskom ratu,
prvom svetskom ratu. To je jedna od prvih xifara koja je obraivala
bigrame. To je istovremeno i xifra zamene. Na primer, za k uq PALMER-
STON formira se tabela
P A L M E
R S T O N
B C D F G
H IJ K Q U
V W X Y Z
Da bi se xifrovao par SF posmatra se pravougaonik kome su temena ova dva
slova; ostala dva temena pravougaonika su xifrat OC. Redosled je odreen
qienicom da su S i O u istoj vrsti kao F i C. Ako su dva slova otvorenog
teksta u istoj vrsti, onda se svako slovo zameuje slovom sa egove desne
strane. Tako SO postaje TN, a BG postaje CB. Ako su dva slova otvorenog
teksta u istoj koloni, onda se svako slovo zameuje slovom ispod sebe. Tako
IS postaje WC, a SJ postaje CW. Dvostruka slova razdvajaju se slovom X,
pa se tako otvoreni tekst BALLOON transformixe u BA LX LO ON pre
xifrovaa. Svako slovo J u tekstu zameuje se slovom I (tako se broj
razliqitih slova smauje na 25).
ADFGVX.Ovu xifru koristili su Nemci u prvom svetskom ratu. Zasniva
se na primeni fiksne tabele
A D F G V X
A K Z W R 1 F
D 9 B 6 C L 5
F Q 7 J P G X
G E V Y 3 A N
V 8 O D H 0 2
X U 4 I S T M
Naredno slovo koje treba xifrovati se pronalazi u tabeli, pa se zameuje
parom oznaka (vrsta, kolona). Tako otvoreni tekst PRODUCTCIPHERS
6
postaje FG AG VD VF XA DG XV DG XF FG VG GA AG XG. Ovo je
faza zamene. Zatim sledi faza premextaa, koja zavisi od k uqa bez
ponov enih slova. Neka je to na primer DEUTCH. Slova se numerixu
prema mestu u abecedi. Rezultat prve faze napixe se ispod k uqa u vixe
vrsta.
D E U T S C H
2 3 7 6 5 1 4
F G A G V D V
F X A D G X V
D G X F F G V
G G A A G X G
Slova se zatim ispisuju redom po kolonama, pri qemu brojevi iznad kolona
treba da qine rastui niz. U ovom primeru xifrat je DXGX FFDG GXGG
VVVG VGFG GDFA AAXA (razmaci se ignorixu).
Za vreme drugog svetskog rata Xenon (Shannon) pokazao je da naizmeniqno
korixee zamena i premextaa daje dobre xifarske sisteme. Sistem
ADFGVX je lox, jer se koristi samo po jedna zamena i premextae, pri
qemu je zamena fiksna (ne zavisi od k uqa). Za vreme drugog svetskog
rata korixene su komplikovane kombinovane xifre, kao xto su nemaqka
ENIGMA i japanska PURPLE, a naprav eni su i raqunari (Colossus) za
razbijae tih xifri. Jox uvek je tajna koje xifre su koristili Amerikanci.
Posle 1970. godine ugroavae bezbednosti raqunara postalo je ozbi-
an problem. Pojavila se potreba za sigurnijim xiframa za komercijalnu
upotrebu. Postalo je mogue realizovati sloene algoritme u jednom qipu,
xto je omoguavalo brzo xifrovae. Porasle su i mogunosti kriptoana-
lize.
Problem je intenzivno analiziran izmeu 1968. i 1976. godine. Godine
1974. pojavila se xifra LUCIFER (IBM), a 1975. DES (skraenica od
Data Encryption Standard). Oba ova sistema su kombinovane xifre. DES
koristi k uq od 56 bita. U emu se naizmeniqno koriste 16 zamena i 15
premextaa. AES koristi k uq od 128 bita, a sastoji se od 10 zamena i
10 premextaa. Godine 1975. pojav uju se sistemi sa javnim k uqem.
broja 90,
1 2 1
1 1 1
2 3 5
9
treba da proemo sve mogue puteve sleva udesno: , ,
1·1·1 = 1 1·1·5 = 5
, , , , , ,
1 · 3 · 1 = 3 1 · 3 · 5 = 15 1 · 9 · 1 = 9 1 · 9 · 5 = 45 2 · 1 · 1 = 2 2 · 1 · 5 = 10
, , , .
2 · 3 · 1 = 6 2 · 3 · 5 = 30 2 · 9 · 1 = 18 2 · 9 · 5 = 90
Posledica osnovne teoreme aritmetike: ako je prost broj i , onda
ili . Na primer, poxto , onda ili (u ovom sluqaju
p p|ab
broj d koji deli i a i b. Primetimo da ako d|a i d|b, onda d|nzd(a, b). Na
primer, nzd(12, 18) = 6, nzd(12, 19) = 1. Najvei zajedniqki delilac se
koristi za skraivae (svoee) razlomaka; razlomak 12/19 je sveden.
Ako znamo faktorizacije brojeva a = p p · · · p i b = p p · · · pα1 α2 β1 β2
da su uzajmno prosti.
Neka a mod b oznaqava ostatak pri de eu a sa b; ako je a = qb + r,
0 ≤ r < b, onda je a mod b = r. Na primer, 12 mod 5 = 2, 7 mod 5 = 2.
Rastav ae velikih brojeva na proste qinioce je teak problem. Umesto
pomou rastav aa na qinioce, jednostavan i efikasan naqin za izraqu-
navae NZD je primena Euklidovog algoritma. Koristi se qienica da
je nzd(a, b) = nzd(a mod b, b). Odredimo npr. nzd(329, 119). Najpre delimo
329 sa 119; dobijamo koliqnik 2 i ostatak 91. U svakom narednom koraku
delilac i ostatak postaju naredni de enik i delilac:
329 = 2 · 119 + 91
119 = 1 · 91 + 28
91 = 3 · 28 + 7
28 = 4 · 7 + 0
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
Osobine kongruencije:
m
mod 5
12, 14 −→ 2, 4
+↓ ↓+
mod 5
26 −→ 1
9
. Tada je Z/5Z = {0, 1, 2, 3, 4} = {0, 1, 2, 3, 4} (zbog jednostavnosti
poistoveujemo elemente Z/5Z sa ihovim predstavnicima | brojevima).
m=5
(mod m). S druge strane, ako je nzd(x, m) = d > 1, onda x nema inverz
po modulu m: proizvod xa za proizvo ni celi broj a de iv je sa
d pa ne moe biti jednak 1. Skup elemenata Z koji imaju inverze
(odnosno skup brojeva uzajamno prostih sa m) oznaqava se sa Z . Na
m
∗
9 = 1·7+2
7 = 3·2+1
2 = 2·1+0
10
Broj 6 nema inverz po modulu 9, jer iz 6x ≡ 1 (mod 9), sledi 9|6x − 1,
odnosno 3|6x−1, odnosno 3|1 (zbog 3|6x), xto nije taqno. Dakle, 6 nema
inverz po modulu 9.
4. [De ee u Z ] Ako je a ≡ b (mod m), c ≡ d (mod m) i nzd(c, m) = 1
∗
a/c ≡ b/d (mod m). Prema tome, de ee je dozvo eno ukoliko je
de enik uzajamno prost sa modulom m, odnosno invertibilan je po
modulu m.
5. [Rexavae kongruencije] Potrebno je za date a, b, m po x rexiti
kongruenciju ax ≡ b (mod m).
• Ako je nzd(a, m) = 1, onda su rexea svi brojevi x ≡ a b −1
(mod m).
• Ako je nzd(a, m) = g > 1, onda kongruencija ima rexea ako
g|b. Tada je kongruencija ekvivalentna sa ax/g ≡ b/g (mod m/g).
Poxto je sada nzd(a/g, m/g) = 1, rexea su x ≡ (a/g) (b/g)
−1
(mod m/g).
• Ako je nzd(a, m) = g > 1 i g ̸ |b, onda kongruencija nema rexea.
Sledei primeri ilustruju ova tri sluqaja:
• Rexiti kongruenciju 7x ≡ 3 (mod 10). Poxto je nzd(7, 10) = 1, rexee
je ≡ 7 · 3 (mod 10). Odreivae 7 (mod 10): 10 = 7 + 3, 7 = 2 · 3 + 1,
−1 −1
11
i 18 = 3 · 6 = (−3)(−6) ≡ 14 · 11. Sliqno, 35 = 5 · 7 = (−5)(−7) ≡ 12 · 10.
Primetimo da je 16 ≡ −1 i 1 = (−1)(−1) ≡ 16 · 16. Dakle, odredili smo
inverze svih elemenata Z . ∗
m = m m ...m .
2 2 r r
nzd(m/m , m ) = 1).
i i i
i i
izraz a (m/m )b , 1 1 1
i
• ...
izraz a (m/m )b . r r r
i
12
Dakle, traeni ostatak x je
x = a1 (m/m1 )b1 + a2 (m/m2 )b2 + . . . + ar (m/mr )br (mod m).
1 −1 r −1
φ(n) = pα
1 (p1 − 1) . . . pα
r (pr − 1).
13
Skraivaem sa brojem ∏ x uzajamno prostim sa m dobija se a (m) ≡ 1 φ
(mod m).
x∈Z∗
m
Zbog ove teoreme smo sigurni da je, poxto je 5 prost broj, 2 ≡ 2 (mod 5),
4 ≡ 4 (mod 5), 2 ≡ 1 (mod 5) (ove tri kongruencije mogu se i neposredno
5
proveriti).
5 4
c ≡ c (mod m).
≥0
14
Pretpostavimo da nam je na raspolagau velika koliqina xifrata i
da elimo da odredimo b, da bismo mogli da qitamo naredne poruke. Jedan
mogui metod je isprobati svih moguih N = 26 vrednosti za b. Oqekujemo
da e samo jedna od ih davati smislene rezultate dexifrovaa. Drugi
naqin zasniva se korixeu uqestanosti pojav ivaa slova. Znamo da
je E = 4 najqexe slovo (u engleskom jeziku). Ako se ispostavi da je u
prikup enim xifratima najqexe slovo J = 9, onda je najverovatnije
b = 5.
Afina xifarska transformacija je oblika C ≡ aP + b (mod N ), gde
je k uq par (a, b). Pri tome je neophodno da bude nzd(a, N ) = 1, jer bi
u protivnom razliqite otvorene tekstove transformacija preslikavala
u iste xifrate. Zaista, ako je d = nzd(a, N ), g = N/d, onda za svako i,
0 ≤ i < d, vai
riti oba rexea, odnosno ustanoviti koje od ih daje smisleni otvoreni
tekst.
Cica sada moe da se lano predstavi kao Alisa, i da poxa e npr.
poruku N EM OJ , odnosno 13 4 12 14 9. Poxto se radi o xifrovau, koristi
se izraz C ≡ aP +b (mod 26). Polazei od P ≡ 19C +16 (mod 26), dobija se
C ≡ 19 (P − 16) ≡ 11P + 6 (mod 26). Xifrat poruke N EM OJ je T Y IEB .
−1
Na primer,
• u grupi F , g = 2: 2 = 2, 2 = 4, 2 = 3, 2 = 1.
∗
5
1 2 3 4
• U grupi F je 2 = 2, 2 = 4, 2 = 1, 2 = 2, 2 = 4, 2 = 1, pa 2 nije
∗
generator.
1 2 3 4 5 6
7
• Za g = 3 dobija se 3 = 3, 3 = 2, 3 = 6, 3 = 4, 3 = 5, 3 = 1, tj. 3
jeste generator.
1 2 3 4 5 6
17
Neki elemenat x ∈ F jeste generator ako i samo ako je egov red (broj
∗
generator.
k
diskretnog logaritma.
x x
razliqiti.
k2
s =g
i i
k = 1, k = 0, k = 1, ....
11 2 2 2
1 2 3 4 1
2 3 4
8 RC4
je jedna od najpopularnijih protoqnih xifara. en autor je Ronald
slovo R u RSA, 1987). Struktura ovog pseudosluqajnog generatora
RC4
bila je drana u tajnosti, sve dok egov izvorni kod nije (prova en i)
Rivest (
18
pri generisau l n-bitnih blokova niza k uqa KS , r = 0, 1, . . . , l − 1,
opisuje se sledeim kodom. r
j ← 0 {inicijalizacija brojaqa}
for i ← 0 to 2n − 1 do
j ← j + Si + Ki (mod 2n )
zameniti i
inicijalizacija brojaqa}
Si Sj
i ← 0; j ← 0 {
{poqetak generisaa sluqajnih n-torki bita:}
l
for r ← 0 to l − 1 do
i ← i + 1 (mod 2n )
j ← j + Si (mod 2n )
zameniti i Si Sj
t ← Si + Sj (mod 2n )
naredna -torka bita izlaznog niza k uqa}
KSr ← St { n
[3, 1, 4, 1, 5, 3, 1, 4] = [K0 , K1 , K2 , K3 , K4 , K5 , K6 , K7 ].
19
0 0 1 2 3 4 5 6 7
i j t KSt S0 S1 S2 S3 S4 S5 S6 S7
0 3 3 1 2 0 4 5 6 7
1 5 3 5 2 0 4 1 6 7
2 3 3 5 0 2 4 1 6 7
3 6 3 5 0 6 4 1 2 7
4 7 3 5 0 6 7 1 2 4
5 3 3 5 0 1 7 6 2 4
6 6 3 5 0 1 7 6 2 4
7 6 3 5 0 1 7 6 4 2
0 0
1 5 3 1 3 6 0 1 7 5 4 2
2 5 5 0 3 6 5 1 7 0 4 2
3 6 5 0 3 6 5 4 7 0 1 2
4 5 7 2 3 6 5 4 0 7 1 2
5 4 7 2 3 6 5 4 7 0 1 2
6 5 1 6 3 6 5 4 7 1 0 2
7 7 4 7 3 6 5 4 7 1 0 2
0 2 0 5 5 6 3 4 7 1 0 2
1 0 3 4 6 5 3 4 7 1 0 2
2 3 7 2 6 5 4 3 7 1 0 2
3 6 3 0 6 5 4 0 7 1 3 2
4 5 0 6 6 5 4 0 1 7 3 2
Niz k uqa dobija se od trobitnih reprezentacija brojeva 1, 0, 0, 2, 2, 6, 7, 5, 4, 2, 0, 6,
odnosno 001 000 000 010 010 110 111 101 100 010 000 110 (bez razmaka).
9 Samosinhronixua protoqna xifra
Kada se otvoreni tekst bit po bit sabira po modulu dva sa nizom k uqa
da bi se dobio xifrat, onda je to sinhrona protoqna xifra. Ako se
prilikom prenosa (sluqajno ili namerno) promeni jedan bit, bie pokvaren
odgovarajui bit u dexifrovanoj poruci. Ako se u prenosu umetne ili
izbrixe jedan bit, gubi se sinhronizam i ostatak dexifrovane poruke
postaje neqit iv. Cica moe da doe u posed para odgovarajuih OT/ST,
pa da na osnovu toga odredi deo niza k uqa, i da na kraju nekako rekon-
struixe k uq. U proces xifrovaa mogu se uk uqiti prethodni biti
otvorenog teksta:
ci = pi + ki + f (pi−1 , pi−2 , . . . , pi−k+1 )
{
pi−2 ako je pi−1 = 0
pi = ci + ki +
pi−3 ako je pi−1 = 1
0, 1, x, x + 1, x2 , x2 + 1, x2 + x, x2 + x + 1, . . .
Postoje dva polinoma stepena 0 (0, 1), qetiri polinoma stepena ≤ 1, osam
polinoma stepena ≤ 2; uopxte, broj polinoma stepena ≤ n je 2 . To su n+1
21
polinomi a x +· · ·+a x+a , a ∈ {0, 1}. Polinomi se mnoe na uobiqajeni
naqin, pri qemu se sa koeficijentima raquna u F :
n
n 1 0 i
2
(x2 + x + 1)×
(x2 + x) =
x3 + x2 + x
4
x + x3 + x2
= x4 + x
2)(x + 2) nije
√ nesvod iv. Nad po em kompleksnih brojeva ni polinom
2 2
√ √
polinom x +1 = (x+1) nije nesvod iv. Jedini nesvod ivi kubni polinomi
nad F su x + x + 1 i x + x + 1. Uopxte, nesvod ivi polinomi dobijaju
2 2
je x = x + 1.
2 2
(x2 + x + 1)×
(x + 1) =
x2 + x + 1
3
x + x2 + x
= x3 + 1
x = x · x = (x + 1)x = x + x.
8 8
4 3 2
22
Uopxte, ako je p(x) nesvod ivi polinom stepena d, onda je skup F [x]/(p(x))
po e sa 2 elemenata, koje se oznaqava sa F . Ovo po e sastoji se od svih 2
x2 + x + 1 =q
4
x +x +1 3
| x 6
+ x + 1
x6 + x5 + x2
x5 + x2 + x
x5 + x4 + x
x4 + x2 + 1
x4 + x 3
+ 1
x3 + x2 =r
1 = (x4 + x3 + 1) + x(x3 + x2 )
1 = (x4 + x3 + 1) + x(x6 + x + 1 + (x2 + x + 1)(x4 + x3 + 1))
1 = 1(x4 + x3 + 1) + x(x6 + x + 1) + (x3 + x2 + x)(x4 + x3 + 1)
1 ≡ (x3 + x2 + x + 1)(x4 + x3 + 1) (mod x6 + x + 1)
23
U opisanom po u F sa polinomima iz Z[x] radi se po dva modula:
koeficijenti se raqunaju po modulu dva, a polinomi po modulu x + x + 1.
8
1 + 1 = 2).
2d 2d 8 8
12 AES
12.1 Uvod
Vlada SAD je oko 1970. godine pokrenula proces razvoja algoritma za
xifrovae koji bi se mogao realizovati na qipu, koji bi mogao biti
xiroko korixen i koji bi bio siguran. Tako je 1975. godine prihvaen
algoritam DES (Data Encryption Standard) firme IBM. DES je simetriqni
xifarski sistem sa 56-bitnim k uqem koji 64-bitni otvoreni tekst trans-
formixe u 64-bitni xifrat. K uq duine 56 bita je ve oko 1995. godine
omoguavao razbijae ove xifre, bez obzira na en kvalitet. Zbog toga
se danas koristi tzv. trostruki DES, sistem koji podrazumeva primenu
algoritma DES tri puta (sa dva razliqita k uqa | prvi, drugi, prvi, tj.
ukupno 112 bita k uqa) za xifrovae 64-bitnih otvorenih tekstova. Za-
nim ivo je da dvostruki DES sa dva razliqita k uqa nije mnogo sigurniji
od osnovnog algoritma sa jednim k uqem, u xta emo se uveriti u delu
kursa o kriptoanalizi (napad "susret na pola puta, meet-in-the-middle”).
Medjutim, DES nije bio projektovan sa namerom da se koristi egova
trostruka verzija; sigurno je da postoji efikasniji algoritam po nivou
sigurnosti ekvivalentan trostrukom DES. Zbog toga je 1997. godine raspisan
konkurs za novi algoritam. Novi standard (AES, Advanced encryption stan-
dard) je 2001. godine postao algoritam Rajndol (Rijndael) sa blokom veliqine
128 bita i k uqem duine 128, 192 ili 256 bita. Rajndol je simetriqna
blokovska xifra koju su konstruisali belgijanci Joan Daemen i Vincent
Rijmen.
po a F .
3 2
0 1 2 3 0 1 2 3
16
24
12.2.2 Tabela S
Tabela S je bijektivno preslikavae S : {0, 1} → {0, 1} niblova u niblove.
Ova funkcija je kompozicija dva preslikavaa.
4 4
y =y .
4 4 5
16
6 2
(y 3 + y 2 + 1)(y 3 + y 2 + y) + (y 3 + 1) =
= (y 6 + y 5 + y 4 ) + (y 5 + y 4 + y 3 ) + (y 4 + y 3 + y 2 ) + (y 3 + 1)
= y2 + y + 1 + y1 + 1 + y3 + 1 + y3 + y2 + y3 + 1
= 3y 3 + 2y 2 + 3y + 3 = y 3 + y + 1
25
9 4 10 11
13 1 8 5
6 2 0 3
12 14 15 7
Elementi ove matrice su redom po vrstama S(0), S(1), . . . , S(15). Na
primer, nibl 0000 = 0 preslikava se u nibl 9 = 1001, 0001 = 1 → 4 = 0100,
..., 0100 = 4 → 13 = 1101, itd. Binarna verzija tabele je korisnija za
ruqno izvrxavae algoritma SAES.
12.2.3 Proxirivae k uqa
Algoritam SAES ima 16-bitni k uq k k . . . k . Od ega se formira niz
od 48 bita (tri 16-to bitna potk uqa ), (od kojih su prvih 16 jednaki
0 1 15
x+1 = 0011, odnosno konstantni bajtovi RCON [i] = RC[i]0000: RCON [1] =
3 4
kraju i-te runde; K se koristi pre prve runde. Kao i ranije, ⊕ oznaqava
16 31 2 32 47 i
modulu 16.
• Funkcija N S (nibble substitution ) zameuje svaki nibl N iz staa
niblom S(N ), ne meajui redosled niblova. Drugim reqima, stae
i
i
N
N
0
1
N
N
transformixe se u stae S(N
2
3
) S(N )
S(N ) S(N )
0
1
2
3
primeru
2
( )
(b0 x3 + b1 x2 + b2 x + b3 )z + (b4 x3 + b5 x2 + b6 x + b7 ) (x2 z + 1) ≡
≡ (b1 + b7 ) + (b0 + b1 + b6 )x + (b0 + b3 + b5 )x2 + (b2 + b4 )x3 +
+ ((b3 + b5 ) + (b2 + b4 + b5 )x + (b1 + b4 + b7 )x2 + (b0 + b6 )x3 )z
Mathematica:
28
12.2.5 Dexifrovae
Primetimo da za proizvo ne funkcije (za koje je definisana kompozicija
i inverzne funkcije) vai (f ◦g) = g ◦f . Pored toga, ako je kompozicija
−1 −1 −1
b b b b
0 1 2 3
moemo smatrati elementom F [z]/(z + 1). ega mnoimo 16
2
0100 0110
⊕ 0101 ⊕ 0111 0001 0001
=
0101 0100 1100 1110
⊕ 1001 ⊕ 1010
30
Funkcija ByteSub u AES je oqigledno uopxtee funkcije SubN ib
| ona svaki bajt B zameuje egovom slikom S(B). Funkcija Shif tRow
cikliqki pomera vrste ulevo za 0, 1, 2, 3. Prema tome, ona stae
B0 B4 B8 B12 B0 B4 B8 B12
B1
B2
B5
B6
B9
B10
B13
B14
prevodi u stae B5
B10
B9
B14
B13
B2
B1
B6
B3 B7 B11 B15 B15 B3 B7 B11
Funkcija mnoi kolonu polinomom c(z) = (x + 1)z + z +
u . Inverzni polinom je c(z) = (x + x + 1)z + (x +
3 2
M ixColumn
−1
{
W [i − 4] ⊕ RCON (i/4) ⊕ ByteSub(RotByte(W [i − 1])), i ≡ 0 (mod 4)
W [i] = .
W [i − 4] ⊕ W [i − 1]), i≢ 0 (mod 4)
otvorena teksta daju iste xifrate. Ako broj bita nije umnoak 128, onda
se na kraju poruke dodaju znaci (koji obiqno poqiu sa 1, jer obiqni ASCII
znaci poqiu nulom) tako da i posledi blok ima duinu 128 bita.
Drugi (najqexi) naqin korixea je CBC (cipher block chaining). A-
lisa i Boban moraju unapred da se dogovore koji e (sluqajni, ne-tajni)
31
inicijalizacioni vektor (IV ) koristiti; ustvari, pre svake poruke xa e
se odgovarajui (novi) inicijalizacioni vektor. Rezultat xifrovaa je
⊕ p ), i ≥ 0. Pri tome se za xifrovae prvog bloka p koristi
inicijalizacioni vektor, odnosno uzima se da je c = IV . Dexifrovae:
c = E (c
i k i−1 i 0
⊕ E (c ).
−1
−1
2 qlanova.
i
32
gde su f , odnosno f funkcije od tri promen ive b, c, d odreene prvom,
odnosno drugom polovinom tabele istinitosti funkcije e. Zamenom a =
0 1
1 + a dobija se
ispuni ovaj uslov. Ako postoji vixe od jednog kandidata, onda ih Cica
proverava na drugom paru (OT,ST); tada e verovatno preostati samo jedan
kandidat. Ona oqekuje uspeh u proseku posle pola pregledanih k uqeva.
Prema tome, za razbijae DES -a potrebno je 2 pokuxaja a za razbijae
AES -a | 2 pokuxaja.
55
prolaz bez vraaa kroz dva priprem ena spiska. Za svaki ovakav par
k1,i 1 k2,i 1
k uqem.
Moe se pokazati da zbog napada sa susretom na sredini trostruki DES
sa tri k uqa nije bitno sigurniji od trostrukog DES -a sa dva k uqa.
Poxto je dva k uqa lakxe razmeniti nego tri, trostruki DES obiqno se
koristi sa dva k uqa.
Dva druga vana napada na blokovske xifre su linearna i diferencijalna
kriptoanaliza; oni e biti razmotreni u delu o kriptoanalizi.
14 Stepenovae ponov enim kvadriraem
Kao xto smo videli, ako je nzd(a, m) = 1 i b ≡ c (mod φ(m)), onda je
a ≡ a (mod m). Prema tome, prilikom izraqunavaa a (mod m) kad je
nzd(a, m) = 1 i b ≥ φ(m), prvi korak je svoee b mod φ(m).
b c b
2 + 1 (tako xto svaki put oduzmemo najvei mogui stepen dvojke). Prema
tome, 87 = 87 = 87 87 87 87 . Zatim raqunamo 87 ≡ 87 mod 103,
87 ≡ 50, 87 ≡ 50 ≡ 28, 87 ≡ 28 ≡ 63, 87 ≡ 63 ≡ 55, 87 ≡ 55 ≡ 38.
43 32+8+2+1 32 8 2 1
35
,
(nk nk−1 . . . n0 )2 ni ∈ {0, 1} . Neka je a delimiqan proizvod. Na poqetku je
a=1 .
StepenovanjeKvadriranjem(b, n)
0
b0 ← n { b0 = n2 = n}
if n0 = 1 then a ← 1 else a ← n
for j ← 1 to k do
j
bj ← b2j−1 (mod m) { b j = n2 }
if ni = 1 then
a ← a · bj−1
a=1 (n0 = 1) a = 87
872 ≡ 50 (n1 = 1) a = 50 · 87 ≡ 24 (≡ 872 · 871 )
502 ≡ 28 (n2 = 0) a = 24
282 ≡ 63 (n3 = 1) a ≡ 63 · 24 ≡ 70 (≡ 878 · 872 · 871 )
632 ≡ 55 (n4 = 0) a = 70
552 ≡ 38 (n5 = 1) a = 38 · 70 ≡ 85 (≡ 8732 · 878 · 872 · 871 )
36
Kaemo da je 47 xestobitni broj. Broj cifara u binarnoj predstavi
broja N (duina broja N ) je broj egovih bita, odnosno ⌊log (N )⌋ + 1. Svi
logaritmi razlikuju se za konstantni faktor (na primer, log x = k log x,
2
raqunara. 2 2
37
Prema tome, f = O(g) znaqi da je f ograniqeno konstantnim umnoxkom
(obiqno se za g bira najjednostavniji izraz).
Koristei ovu notaciju, sloenost sabiraa N i M (ako je N ≥ M ) je
g
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)).
(mod M ).
Rexee. Primer: izraqunavae 11 (mod 26). −1
26 = 2 · 11 + 4
11 = 2 · 4 + 3
4 = 1·3+1
1 = 4−1·3
= 4 − 1(11 − 2 · 4) = 3 · 4 − 1 · 11
= 3(26 − 2 · 11) − 1 · 11 = 3 · 26 − 7 · 11
ima O(log M ) koraka (isto kao NZD). Najgori je korak tipa 3(26 − 2 ·
11) − 1 · 11 = 3 · 26 − 7 · 11, za kopirae 6 brojeva je potrebno vreme
6O(log M ) = O(log M ). Uproxavae obuhvata jedno mnoee O(log M ) i 2
39
Rexee: Neka je n broj bita u zapisu N u sistemu sa osnovom 2. Broj
osnovnih koraka je n = O(log N ). Primer | izraqunavae 87 (mod 103).
43 = (101011) = (n n n n n n ) .
43
Zaxto
√ je log(A!) = O(A log A)? Prema Stirlingovoj formuli je A! ≈
2
Prema tome, log(A!) = A(log A − log e) + (log 2 + log A + log π) = O(A log A)
A 18 20 18
1
Kraj Problema 4.
Vremenska sloenost izraqunavaa B je O(N log B) za neke i, j ≥ 1 j
40
, svoee b (mod M ): r = 3. Za algoritam se kae da je polinomijalne
sloenosti ako je vreme izvrxavaa polinom od duina brojeva (odnosno
N
r=1
). Poxto je 0.5n
polinom po n, ovo je eksponencijalna sloenost. Sloenosti izraqunavaa
1/2 log N 1/2 1/2 log N 0.5n
O( N ) = O(N ) = O((c ) ) = O(c ) = O(c
b i N ! su takoe eksponencijalne.
Vremenska sloenost trenutno najbo ih poznatih algoritam za nala-
N
ee faktora N je c3
√
, xto je mnogo sporije od polinomijalnog,
(log N (log log N )2 )
je .
Adleman).
ma ≡ m (mod n)
Boban najpre bira dva prosta broja sa oko 150 dekadnih cifara. Zatim
izraqunava n = pq ≈ 10 i φ(n) = (p − 1)(q − 1). Zatim on odreuje
neki broj e takav da je nzd(e, φ(n)) = 1 i izraqunava d ≡ e (mod φ(n)).
300
−1
Primetimo da je ed ≡ 1 (mod φ(n)) i 1 < e, d < φ(n). Boban objav uje (npr.
na svom sajtu) (n, e), a quva u tajnosti d, p, q. On moe da izbrixe p i q.
Ceo ovaj postupak Boban obav a jednom godixe.
Alisa eli da poxa e Bobanu poruku M (to moe da bude k uq za
AES kodiran brojem 0 ≤ M < n). Ako je poruka vea od n, onda ona razbija
poruku na blokove koji se mogu predstaviti brojevima maim od n. Alisa
pronalazi Bobanov par (n, e) na egovom sajtu. Ona izraqunava C ≡ M
(mod n) (to je prividno jednosmerna funkcija), pri qemu je 0 ≤ C < n; ona
e
xa e broj C Bobanu.
Boban izraqunava C (mod n) i dobija M . Zaxto? C ≡ (M ) ≡ M ≡
M = M (mod n) (ovo je taqno i ako nije nzd(M, n) = 1, dokazati). Presretnutu
d d e d ed
parametar d.
Primer: Boban bira p = 17, q = 41. On zatim izraqunava n = pq =
17 · 41 = 697 i φ(n) = (17 − 1)(41 − 1) = 640. On bira e = 33, xto je uzajamno
prosto sa 640. On zatim izraqunava d ≡ 33 (mod 640) = 97. Boban na svoj
−1
42
stepenovae kvadriraem: 33 = 32 + 1, 207 ≡ 332, 207 ≡ 332 ≡ 98,
207 ≡ 98 ≡ 543, 207 ≡ 543 ≡ 18, 207 ≡ 18 ≡ 324. Prema tome,
2 4 2
izraquna 207.
Boban dobija poruku 156, pa izraqunava 156 (mod n) = 156 (mod 697) =
207. Zatim on dekodira poruku (to nije deo algoritma RSA ) 207 = 7 · 26 +
d 97
25. Zatim (to takoe nije deo RSA ) Alisa xa e Bobanu dugaqku poruku
koristei C ≡ 7P + 25 (mod 26). Kraj primera.
Svaki korisnik ima svoj par brojeva: Alisa ima par n , e , Boban par
n , e , ...na svom sajtu, ili u "imeniku" na nekom poznatom sajtu. Par
A A
43
od 2048 bita, odnosno n ≈ 10 . Oko 1990. godine bilo je uobiqajeno da
se koriste 512-bitni n, n ≈ 10 . Meutim, broj veliqine oko 10 sa
617
su.
16.3 Protokol usaglaxavaa k uqa Difi{Helman
Protokol usaglaxavaa k uqa nad konaqnim po em Difi{Helman (PUKDH)
omoguuje da Alisa i Boban razmene k uqeve bez neposrednog susreta. Za
vixe korisnika A, B, C , ...fiksiraju se q i g, generator F . Brojevi q i g ∗
44
iskoristi g i g . Ali odreivae a polazei od g i g je PDLKP, za
xta se ne zna efikasan algoritam.
aB aB
B
k uq.
aB 58 aB
uz x , . . . , x u g .
q 2
M <n .
B 1 2 3
i B
45
Alisa zna g i g (to su javni podaci) i k, pa moe da izraquna g
i (g ) = g , posle qega mnoeem dobija M g . Boban prima par.
aB k
Ako Cica pronae k (za xta joj po svemu sudei treba rexavae PDLKP,
aB k
q
mnoeem dobija (M g (g ) = 10 · 3 = 30 = M .
aB k
g
aB k aB k −1
na stopalo. Boban preko qarape navlaqi cipelu. Alisa zatim uklaa qarapu,
ne skidajui cipelu, a Boban uklaa i cipelu. Boban sada vidi stopalo,
iako ga Cica ni jednom nije videla.
Xifarski sistem Mesi{Omura je primeivan na mobilne telefone.
Primer. p = 677. Alisa xa e Bobanu bigram SC. Poxto je S = 18 i
C = 2, bigram se kodira se 18 · 26 + 2 = 470 = M . Alisa bira e = 255,
pa je d = 255 (mod 676) = 395. Boban bira e = 421, pa je d = 421
−1
A
−1
(mod 676) = 281. Alisa izraqunava 470 ≡ 292 (mod 677) i xa e 292
A B B
Bobanu. Boban izraqunava 292 ≡ 156 (mod 677) i xa e 156 Alisi. Alisa
255
46
18 Eliptiqke krive
Eliptiqka kriva je kriva opisana jednaqinom oblika y + a xy + a y =
x + a x + a x + a , sa jednom dopunskom 0-taqkom (beskonaqno uda ena
2
1 3
sve kubne krive mogu dovesti na ovaj oblik smenom promen ivih; ovaj oblik
2 3
videti Sliku 4.
2
P = ⊘, pa je 2P = −P 2; videti Sliku 5.
2 1 1
2 1
47
15
10
2 4 6
-5
-10
-15
48
| \ * \
| | * |
49
3. Sabirae P 1 + P2 . 5. Udvostruqavae P . 1
/
| -P2=2P1 -> 0
/ /
/ * /
P3 / * /
0 /
* / /
* / /
* / /
- * / - /
/ \ P2 * / / \ /
/ \0 / / \ /
P1 | * \ / | \ /
0 | | | | |
* | / \ | / \
\ / \ * \ / \
\ / \ * \ / \
- \ 0 \
\ P1 * \
\ * \
\ * \
0 -P3 * \
\ =P1+P2 * \
\ * \
| 0 P2
\
4. y = x2 i y = 2x − 1
\ /
\ /
\ / *
\ / *
\ /
\ * <-(1,1)
\__/
*
*
Primer. Taqka P = (1, 0) oqigledno pripada krivoj y + y = x − x.
Odredimo 2P . Odreujemo tangentu u P implicitnim diferenciraem.
2 3
dy
2y + dy
= 3x − 1. Dakle,
2
= i | = 2. Jednaqina tangente je
dy 3x2 −1 dy
50
Taqka preseka x = 1 je dvostruka (presek u (1, 0)), a presek u x = 2 je
obiqan. Primetimo da je trea taqka preseka na pravoj y = 2x − 2, pa je
to taqka (2, 2). Dakle, (1, 0) + (1, 0) + (2, 2) = 2P + (2, 2) = ⊘, (2, 2) = −2P ,
2P = −(2, 2). Taqka −(2, 2) je druga taqka na krivoj sa istom x-koordinatom.
Ako je x = 2, onda je y + y = 6, pa je y = 2, −3, pa je 2P = (2, −3).
Da bismo odredili 3P = P + 2P = (1, 0) + (2, −3), odreujemo jednaqinu
2
prave kroz (1, 0), (2, −3). en nagib je −3, pa je y − 0 = −3(x − 1), odnosno
y = −3x + 3. Gde ova prava seqe y + y = x − x? Eliminacijom y dobija se
(−3x+3) +(−3x+3) = x −x, tj. x −9x +20x−12 = 0 = (x−1)(x−2)(x−6)
2 3
pravoj y = −3x+3, pa je to taqka (6, −15). Dakle, (1, 0)+(2, −3)+(6, −15) =
⊘ i (1, 0) + (2, −3) = −(6, −15). Xta je −(6, −15)? Ako je x = 6, onda je
y + y = 210, y = −15, 14, pa je −(6, −15) = (6, 14) = P + 2P = 3P . Kraj
primera.
2
y2 − y1 y1 x2 − y2 x1
λ= , ν=
x2 − x1 x2 − x1
ako je x 1 ̸= x2 , odnosno
3x21 + 2a2 x1 + a4 − a1 y1 −x31 + a4 x1 + 2a6 − a3 y1
λ= , ν=
2y1 + a1 x1 + a3 2y1 + a1 x + a3
ako je x = x , a zatim, u oba sluqaja, x = λ + a λ − a − x − x i
y = −(λ + a )x − ν − a .
2
1 2 3 1 2 1 2
3
Skup taqaka krive je grupa za ovako definisano sabirae. Asocijativnost
1 3 3
51
Postoje efikasni algoritmi za utvrivae da li je neki elemenat po a
kvadrat, odnosno ako jeste | za raqunae korena iz ega. Za p > 3
jednaqina eliptiqke krive moe se smenom promen ivih transformisati
Fp
u oblik y = x + a x + a .
Primer. Neka je E kriva y = x +1; odrediti E(F ) (taqke sa koordinatama
2 3
4 6
3 = 4, 4 = 1.
2 2 2
5
2 2
√
x x3 + 1 y = ± x3 + 1 tacke
0 1 ±1 = 1, 4 (0, 1), (0, 4)
1 2
2 4 ±2 = 2, 3 (2, 2), (2, 3)
3 3
4 0 0 (4, 0)
⊘
Skup E(F ) ima dakle 6 taqaka.
Taqke nad konaqnim po em se mogu sabirati korixeem jednaqina
5
E(F ) ima 123 taqaka i da je generisan taqkom G = (0, 1). Taqka (39, 45)
2 3
109
(39, 45) = (0, 1) + (0, 1) + ... + (0, 1) = n(0, 1) za neki prirodni broj n.
3 2
109
x x +1 y =± x +1
3
√
taqke 3
52
Prema tome, E(F ) ima 12 taqaka.
7
R = (5, 0) 2R = ⊘
Q = (1, 3) Q + R = (2, 3)
2Q = (0, 1) 2Q + R = (4, 4)
3Q = (3, 0) 3Q + R = (6, 0)
4Q = (0, 6) 4Q + R = (4, 3)
5Q = (1, 4) 5Q + R = (2, 4)
6Q = ⊘
sistem.
Primetimo da je utvrivae koji umnoak taqke G = (2, 2) daje Alisin
javni k uq (115, 48) ustvari instanca problema ECDLP. Alisa moe da
mnoee 121G izvrxi ponov enim udvostruqavaem: 64G + 32G + 16G +
8G + 1G. Pored toga, ako je p ≈ 10 , Alisa i Boban mogu da se dogovore da
posledih 128 bita binarne predstave x-koordinate ihovog zajedniqkog
50
x-koordinatom neke taqke, ali nisu svi brojevi x-koordinate nekih taqaka
2 3
29
(samo otprilike svaka druga od ih). Isto tako, nisu ni svi brojevi y-
koordinate nekih taqaka (samo otprilike svaka druga od ih). Ako npr.
pokuxamo da kodiramo slovo I = 8: 8 − 4 = 15 ̸= k (mod 29) (15 nije
kvadratni ostatak po modulu 29).
3 2
Prema tome, (112, 26) je taqka na krivoj, i sve cifre x-koordinate, sem
3 2
poxa e poruku L kodiranu taqkom Q = (112, 26) Bobanu. Ona bira sluqajni
k uq poruke (session key) k = 41 i izraqunava kG = 41(2, 2) = (136, 128),
k(a G) = 41(197, 167) = (68, 84) i Q+ka G = (112, 26)+(68, 84) = (246, 174).
Alisa xa e par taqaka kG, Q + ka G, odnosno (136, 128), (246, 174) Bobanu.
B B
ka G) − (a kG) = (246, 174) − (68, 84) = (246, 174) + (68, −84) = (112, 26).
On zatim uzima sve sem poslede cifre x-koordinate i dobija 11 = L.
B B
54
I u ovom kontekstu udi radije koriste po a tipa F . Postoje subeksponencijalni
algoritmi za rexavae FFDLP u F i za faktorizaciju n, pa se obiqno
∗
2r
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
′ ′
55
Primer 2. Sliqno kao u prethodnom primeru, izuzev xto se umesto
fiksiranog IV koristi tajni k uq. Tada se hex funkcija zove autentikacioni
kod poruke ili MAC (message authentication code). MAC je dakle hex
funkcija sa tajnim k uqem.
Primer 3. Razmotrimo sledei scenario. Alisa i Boban koriste sistem
sa javnim k uqem da dogovore dva k uqa za AES , k i k . Alisa xa e
Bobanu (u reimu ECB , zbog jednostavnosti) poruku xifrovanu algoritmom
1 2
slagae, onda on moe da bude siguran da poruku niko usput nije promenio.
Bez MAC Cica bi mogla da presretne ST , ...,ST i da neke delove
xifrata namerno promeni (iako to dexifrovaem ne bi dalo smislenu
1 n
, , ,
A, B, C, D A = A0 =
56
G(X, Y, Z) = XZ ∨ Y Z̄ ,
H(X, Y, Z) = X ⊕ Y ⊕ Z ,
I(X, Y, Z) = Y ⊕ (X ∨ Z̄).
Ovde je , (to je negacija); ∨ je disjunkcija (ili), a mnoee
je konjunkcija (i). Operacije nad reqima izvode se istovremeno sa svim
1̄ = 0 0̄ = 1
19.1.3 Konstante
Postoje 64 konstante T [1], . . . , T [64]. Neka je i broj radijana. Tada je | sin(i)|
realni broj izmeu 0 i 1. Neka je T [i] prvih 32 bita posle decimalne taqke
u binarnoj reprezentaciji |sin(i)|.
19.1.4 Oznake za rotaciju
Ako je E 32-bitni blok i 1 ≤ n ≤ 31, neka E <<< n oznaqava cikliqku
rotaciju E za n bita. Tako, ako je E = 00000000000000001111111111111111,
onda je E <<< 3 = 00000000000001111111111111111000.
19.1.5 Ostale oznake
Neka + oznaqava sabirae po modulu 2 , pri qemu se pretpostav a da je
req binarno predstav eni broj n, 0 ≤ n ≤ 2 − 1.
32
57
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16].
19.1.7 Objaxee
Pogledajmo najpre korak 1. Pre koraka 1 je A = A = 01 23 45 67, B = B =
. . ., C = C = . . ., D = D = . . .. Podsetimo se da [abcd k s i] oznaqava
0 0
58
Sada prelazimo na korak 2. Podsetimo se da [abcd k s i] oznaqava
operaciju a ← b + ((a + F (b, c, d) + X[k] + T [i]) <<< s). Kako je korak 2
[DABC 1 12 2], to znaqi D ← A + ((D + F (A, B, C) + X[1] + T [2]) <<< 12),
odnosno D ← A + ((D + F (A , B , C ) + X[1] + T [2]) <<< 12). Sada je
A = A , B = B , C = C , D = D . Posle 16 ovakvih prreraqunavaa
1 1 0 1 0 0
C = 0x98badcf e, D = 0x10325476.
Zatim izvrxavamo gore opisani algoritam i dobijamo 128-bitnu req
ABCD = A B C D . (Izlaz iz koraka 61−64 je A , B , C , D ; posle
′ ′ ′ ′
A B C D .)
32
0 0 0 0
′ ′ ′ ′
16
Zatim se S razbija na 16 reqi X[0], . . . , X[15], naravno u opxtem sluqaju
16 16 16
A B C D .
16
′ ′ ′ ′
32
Zatim se S razbija na 16 reqi X[0], . . . , X[15] i ponovo izvrxava gore
32 32 32
Napomene.
1. Tehniqki, da bismo funkciju f proizveli u hex funkciju, moemo da
pixemo f (X) = f (A , B , C , D , X). Sada je f (X) preslikavae
512-bitnih blokova u 128-bitne blokove.
hash 0 0 0 0 hash
0000000000000000000000000000000000000000000000000000011010100100
59
tako da je sada duina poruke 1984 + 64 = 2048 = 4 · 512.
3. Funkcija f je komplikovana jer se u svakom koraku naizmeniqno
primeuju bitske operacije (F, G, H, I ) i sabirae po modulu 2 ,
hash
60
moe da uradi niko drugi osim T . G moe da izraquna f (f ( T oni Bler )) = −1 ′ ′ ′
proqita potpis. Ako T potpixe ime za L (bin Laden), onda L moe taj deo
da kopira i stav a u svoje poruke.
Sluqaj 2. Toni Bler eli da cela poruka bude xifrovana i potpisana.
T najpre xa e poruku P oruka od T onija ili, ako ne eli da neprijate
′ ′
f (f (P )). or
zna f , pa izraqunava f (f (f (P ))) = f (P ). Svi
G
−1 −1 −1 −1 −1
xa e to G.
eG
T 2 T G G
po odgovarajuem modulu (n ). 2
or
izraqunava (P ) = P (mod n ), pa zatim ((P ) ) = P
T
eG dG d T eG d G ∗ dT
Pri tome je mogue da bude n < P < n . Ako je n za dve cifre due
G T
dG
2 T
brojeva po modulu n .
T 2 T
daje ostatak 8. Zbog toga je nemogue rei da li je taj ostatak 8, 1008, 2008, G T
..., 99008. Ovih sto vrednosti imaju razliqite ostatke po modulu n , ali
jedan isti ostatak po modulu n . G
veliko n.
Primer potpisa pomou RSA . Jox jednom, najpre se primeuje malo n,
pa veliko n.
Neka je n = 221, e = 187, d = 115, i n = 209, e = 191, d = 131.
T eli da potpixe i xifruje poruku 97 za G. Xta on treba da radi?
G G G T T T
97.
115 eT 191
(mod n ) = 56
G (mod 209) = T
qesto meaju.
aA aB
B
g g ≡ (g ) (g ) ≡ (g ) r (mod p).
S aA r+kx
A
401 · x (mod 676). Dakle, x ≡ 401 (316 − 307 · 616). Sada je 401 ≡ 617
A
−1 −1
Kraj primera.
aA r kx S
62
20.3 Xnorov postupak autentikacije i potpisa
Neka je p prost broj, i neka je q prost broj, q|p − 1. Izaberimo a tako da
bude a ≡ 1 (mod p). Brojeve a, p, q koriste svi uqesnici sistema. Svaka
osoba ima privatni k uq s i javni k uq v ≡ a (mod p).
q
−s
taj naqin se ustanov ava da je osoba koja je poslala y upravo osoba qiji je
y e
A
javni k uq v .
Xnor (Schnorr) Predlae da se radi sa vrednostima parametara p ≈
A
2 ,q≈2 i t = 72.
Potpis: Alisa eli da potpixe poruku M . Ona bira sluqajno r < q
512 140
′
konkatenacije M x . ′
63
4. Toma potpisuje poruku (n, A, H , t , I , H , T , L ); to je T , vremenski
potpis Alisinog dokumenta. n n n−1 n−1 n−1 n n
KT GS ; samo T GS i S imaju k uq K .
S
C
1. C xa e K poruku: c, tgs.
C moete da budete vi, a T GS moe da bude linux server na koji
hoete da se prijavite. U tom sluqaju ovaj korak se sastoji u tome da
vi ukucate svoje korisniqko ime i lozinku, posle qega vax raqunar
izvrxava korak 1.
2. K xa e C : {K }K , tgs, {c, a, v, K }K , gde je a mrena
adresa klijenta (to je adresa raqunara na kome C radi | taj raqunar
C,T GS C C,T GS T GS
moe da koristi vixe osoba, kao xto je npr. Unix server; v je period
64
vaea ovlaxea. Poruka {c, a, v, K } se zove ovlaxee za
izdavae ovlaxea (ticket-granting ticket, TGT).
C,T GS
4. T GS xa e C : {K }K , {c, a, v, K }K
C,S C,T GS C,S S
Issuer: Verisign
Valid from: April 7, 2006
Valid to: April 6, 2007
Subject: bankofamerica.com
heksadekadnih cifara)
Public key for signing: X (1024 BA
65
bita za n , kratki e , u obliku
Encryption Algorithm: RSA
iz ovog sertifikata).
Hash: ( BA X
ima prsten javnih k uqeva. Na primer, prsten javnih k uqeva Alise sadri
X Y
Ed S (K ) Visok Nizak
A D
Cica S (K ) Visok
A E
Laza S (K ) Visok
C A
Marko S (K ) Sredi
L A
M A
N ← L C M → J
@
@
RH H ↕H M
H M
B ← A → D
↓ ↓L ↓
F E G
↓ ↓
Zbog toga Alisa nema poverea u G-ov javni k uq. Sliqno, A nema poveree
u H -ov javni k uq.
Alisa eli da poxa e poruku J . Prsten uqesnika J sadri S K i
S K . Alisa ima osrede poveree u D-ove i M -ove sertifikate drugih
D J
M J
67
k uqeva, a dve osrede ocene imaju za posledicu da Alisa nema poverea
u J -ov javni k uq.
Alisa eli da poxa e poruku I . Prsten uqesnika I sadri S K .
Alisa ima poverea u javni k uq osobe F , ali nema osnova da veruje F -
F I
osobe N .
Ako Alisa xa e poruku F , PGP e to dozvoliti. Ako Alisa xa e
poruku I , PGP e izbaciti poruku da ona nema osnova za poveree u javni
k uq osobe I .
Recimo da C eli da poxa e poruku B. B xa e C svoj prsten, koji
sadri S (K ). Sada C ima poveree u sertifikate koje dobija od A.
Dakle, C ima poverea u jevni k uq B. Dakle, na neki naqin je Alisa (i
A B
20.7.1 SSL
Kako se kriptografija stvarno primeuje na vebu? Postupak koji se primeuje
zove se SSL , a pronalazaq je Taher ElGamal iz Netskejpa. Kad vidimo
https:, to znaqi da se primeuje SSL . Postoji nekoliko protokola za egovu
primenu. Opisaemo ukratko kako se to radi u Netskejpu.
Ako ste na https: sajtu (s je prvo slovo od secure) u Internet eksploreru
moete da kliknete na file, pa properties, pa certificates, pa details, i onda
moete da vidite sertifikat tog sajta, koji potvruje da javni k uq u
sertifikatu pripada firmi qije ime se pojav uje na sajtu.
1. Kad se Boban prvi put konektuje na Amazon, on xa e Amazonu svoj
sertifikat, u kome se nalazi javni k uq za RSA n , e i javni
k uq g za potpis pomou algoritma DSS . Vrednost p za DSS
B B
70
Da se izbegne reqniqki napad, moe se primeniti postupak doso avaa.
Svakom korisniku je dode en sluqajni niz znakova, koji se nadovezuje
na lozinku, pa se izraqunava hex vrednost rezultata. Korisniqko ime,
sluqajni niz i hex vrednost se smextaju u raqunaru. Sada broj moguih
hex vrednosti nije vixe jednak broju moguih lozinki, nego proizvodu
broja moguih lozinki i broja moguih sluqajnih nizova.
Ni jedan k uq ne sme se koristiti neograniqeno dugo. Xto se due
koristi, vixe dokumenata je ime xifrovano, pa dolazi do vee xtete
prilikom gubitka k uqa. Xto se k uq due koristi, vei je izazov egovo
razbijae, i vee vreme ima napadaq da sprovede napad.
20.9 Kvantna kriptografija
Postoje dva naqina da se bez neposrednog susreta dogovori k uq za simetriqnu
xifru. Prvi je upotreba kriptografije sa javnim k uqem, koja je zasnovana
na matematici. Drugi je kvantna kriptografija.
Foton ima polarizaciju | to je ravan α koja sadri pravac egovog
kretaa. Neka je β neka ravan normalna na pravac kretaa fotona. Polarizacija
je odreena uglom preseqne prave p (dveju ravni α, β) | koordinatne ose
nove baze i stare koordinatne (x) ose. Baza moe da bude (u odnosu na staru)
rektilinearna (horizontalna ili vertikalna), dijagonalna (nagib 1 i −1),
itd. Ako se polarizacija fotona meri u pogrexnoj bazi, onda se dobija
sluqajan rezultat i unosi se grexka u sva naredna merea polarizacije
tog fotona.
Neka je potrebno da Alisa i Boban dogovore simetriqni k uq. Alisa
xa e Bobanu niz fotona. Svaki foton ima sluqajno izabranu polarizaciju
u jednom od qetiri pravca: |, −, \, /. Ovim pravcima pripisuju se vrednosti
redom 1, 0, 1, 0. Neka je Alisa poslala niz: \/| |/ \ | − − \ −|/.
Boban ima detektor polarizacije. Za svaki foton on sluqajno bira bazu,
rektilinearnu ili dijagonalnu. Neka je niz egovih izbora ×++××+++
× × × + +. Svaki put kad izabere dobru bazu, on taqno meri polarizaciju.
Ako je baza pogrexna, onda on dobija sluqajni rezultat. Izlaz egovog
detektora mogao bi da bude \ − | \ //| − / \ \| |.
Alisa xa e \ / | | / \ | − − \ − | /
Boban postav a × + + × × + + + × × × + +
Taqno ≀ ≀ ≀ ≀ ≀ ≀ ≀
Boban dobija \ − | \ / − | − / \ \ | |
Primetimo da ako Boban dobro izabere bazu, onda Alisa i Boban imaju
istu polarizaciju, koja se pretvara u 0 ili 1. Na primeru drugog i posledeg
fotona vidimo primere sluqajnosti u Bobanovom mereu ako je baza izabrana
pogrexno.
Sada Boban xa e Alisi otvorenu poruku, u kojoj joj jav a svoja postav aa
baze. Alisa mu odgovara na koje orijentacije su bile taqne; ostale se odbacuju.
Alisa xa e \ | / | − \ |
Boban dobija \ | / | − \ |
Ove vrednosti se pretvaraju u nule i jedinice:
71
Alisa xa e 1 1 0 1 0 1 1
Boban dobija 1 1 0 1 0 1 1
U proseku Alisa xa e Bobanu 2n bita, da bi na kraju ostalo n bita
posle odbacivaa onih za koje je baza pogrexno postav ena. Dakle, da bi
razmenili 128-bitni k uq za, Alisa mora u proseku da poxa e 256 bita.
Xta se dexava ako Cica meri poslate fotone? Obratimo posebno pau
na fotone kojima je Boban taqno pogodio bazu. Za polovinu tih fotona
Cica e pogrexno pretpostaviti bazu. Kad god ona pogrexno postavi bazu,
ona e Bobanov rezultat merea uqiniti sluqajnim, umesto taqnim.
Alisa xa e \ | / | − \ |
Boban postav a × × × × + + +
Cica postav a × + × + + × +
Boban dobija \ − / | − / |
Alisa xa e 1 1 0 1 0 1 1
Boban dobija 1 0 0 1 0 0 1
Za drugi i qetvrti foton, poxto je Cica pogrexno orijentisala bazu,
Boban dobija sluqajne (dakle taqne sa verovatnoom 1/2) bite. Dakle, ako
Cica prisluxkuje, oqekujemo da ona ponekad pogrexno orijentixe bazu,
pa da u nekim od tih sluqajeva Boban dobije pogrexnu polarizaciju.
Da bi otkrili prisluxkivae, Alisa i Boban mogu da se dogovore
da provere neke bite. U gorem primeru oni mogu da se dogovore da u
otvorenom delu poruke kau koja su tri bita poslata. Alisa bi na primer
rekla 110, a Boban 100, posle qega bi oni znali da je neko ometao vezu.
Posle toga bi oni ceo postupak pokrenuli iz poqetka, pokuxavajui da
nekako spreqe Cicu da prisluxkuje.
U sluqaju da su se sloili otvoreno poslati biti, oni bi mogli da
iskoriste preostala qetiri bita za k uq. Naravno, mogue je da Alisa i
Boban dobiju poklapae tri bita, iako Cica prisluxkuje. Verovatnoa
da se mnogo bita sloi ako Cica prisluxkuje je vrlo mala. Ako se ne
sloe, onda e oni znati da su prisluxkivani. Ako se sloe, onda oni sa
velikom sigurnoxu znaju da nisu prisluxkivani. Oni bi dakle odbacili
kontrolne bite, a ostale bite iskoristili za k uq.
U ovom trenutku kvantna kriptografija radi na rastojau od nekoliko
kilometara. Kvantna kriptografija smatra se sigurnijom od kriptografije
sa javnim k uqem i ima ugraenu moguost otkrivaa prisluxkivaa.
Meutim, texko je preneti mnogo informacija na ovaj naqin, pa se ovaj
postupak koristi samo za dogovarae simetriqnog k uqa (npr. za AES ).
20.10 De ee tajne
Pretpostavimo da u Atlanti ima pet mena
era Koka kole koji dele tajnu
recepta koka kole. Potrebno je da ni jedan od ih ne zna tajnu, jer bi
mogao da da otkaz i ode u Pepsi. Tajna se moe kodirati bitskim nizom
S duine l. Zatim moe da se izgenerixe qetiri sluqajna niza bita iste
duine R , R , R , R . Prvoj qetvorici mena
era daje se po jedan od nizova
1 2 3 4
72
R , R , R , R , a petom R ⊕ R ⊕ R ⊕ R ⊕ S . Primetimo da niko od ih
pojedinaqno nema tajnu S, ali ako se saberu (⊕) podaci sve petorice, dobija
1 2 3 4 1 2 3 4
i posledu req).
EKRJSJV IJPWZVJA KV UPV PRPB.
75
EFGHIJKLMNOPQRSTUVWXYZABCD
FGHIJKLMNOPQRSTUVWXYZABCDE
GHIJKLMNOPQRSTUVWXYZABCDEF
HIJKLMNOPQRSTUVWXYZABCDEFG
IJKLMNOPQRSTUVWXYZABCDEFGH
JKLMNOPQRSTUVWXYZABCDEFGHI
KLMNOPQRSTUVWXYZABCDEFGHIJ
LMNOPQRSTUVWXYZABCDEFGHIJK
MNOPQRSTUVWXYZABCDEFGHIJKL
NOPQRSTUVWXYZABCDEFGHIJKLM
OPQRSTUVWXYZABCDEFGHIJKLMN
PQRSTUVWXYZABCDEFGHIJKLMNO
QRSTUVWXYZABCDEFGHIJKLMNOP
RSTUVWXYZABCDEFGHIJKLMNOPQ
STUVWXYZABCDEFGHIJKLMNOPQR
TUVWXYZABCDEFGHIJKLMNOPQRS
UVWXYZABCDEFGHIJKLMNOPQRST
VWXYZABCDEFGHIJKLMNOPQRSTU
WXYZABCDEFGHIJKLMNOPQRSTUV
XYZABCDEFGHIJKLMNOPQRSTUVW
YZABCDEFGHIJKLMNOPQRSTUVWX
ZABCDEFGHIJKLMNOPQRSTUVWXY
76
k uqa. Na primer, neka je k uq V OICE. Otvoreni tekst T HEON ET HE
daje xifrat OV M QRZHP G, a otvoreni tekst T HEBOT HE daje xifrat
OV M DSOV M . Naravno, isto se dexava za bilo koji qest trigram, kao xto
su AN D, IN G i sl. Za bilo koji par identiqnih trigrama u otvorenom
tekstu oqekuje se da e razlika ihovih pozicija biti de iva sa pet
u proseku svaki peti put, kada e oni biti identiqno xifrovani. Sa
dovo no xifrata na raspolagau, moemo da traimo ponov ene trigrame
i izraqunavamo razmake izmeu ih. Razmaci bi trebali da obiqno budu
de ivi sa pet.
U gorem xifratu primeuju se ponav aa W EW W GZ i T AM P O na
rastojaima 322 = 2 · 7 · 23, odnosno 196 = 2 · 7 . Isto tako, ponav aa
HU W W i U W V G su na razmacima 119 = 7 · 17, odnosno 126 = 2 · 3 · 7.
2 2
moramo da budemo oprezni, jer mogu da postoje sluqajna ponav aa, kao
xto su dve kopije AV V na razmaku 43. Prema tome, ako napixemo program
koji pronalazi nzd svih razmaka, on e dati rezultat 1.
21.1.2 Fridmanov test
Fridmanov test omoguuje da se dobije ocena duine k uqa. Primetimo da
ako se za slova u xifratu dobijenom monoalfabetskom xifrom translacije
napravi histogram, dobie se isti histogram (istina ispreturan) kao i za
otvoreni tekst.
Sortirani procenti pojav ivaa slova (u engleskom tekstu) mogli bi
da budu (12.31, 9.59, 8.05, 7.94, . . . , 0.20, 0.20, 0.10, 0.09) za ET AO . . . QXJZ .
Ako se koristi dvoalfabetska xifra translacije, onda je, na primer,
uqestanost slova A u xifratu jednaka proseqnoj uqestanosti dva slova
koja se zameuju sa A. Sortirane uqestanosti mogle bi da budu
(8.09, 7.98, 7.565, 7.295, . . . 1.115, 1.04, 0.985, 0.31).
broj parova od dva ista slova jednak ∑ n (n − 1). Ukupan broj parova slova
25 i 0 0
77
je ∑25 ∑25
i=0ni (ni − 1)/2 i=0 ni (ni − 1)
I= = .
n(n − 1)/2 n(n − 1)
Veliqina I je uzoraqki indeks koincidencije (IOC ). Koliki je oqekivani
IOC za obiqni engleski tekst? Neka je p verovatnoa slova A, p ≈
0.0805, itd. Verovatnoa da oba slova u paru budu A je p . Verovatnoa
0 0
tekst sa jednakim
∑ verovatnoama pojav ivaa slova je p = p = · · · =
2
i
..
ck+1 ck+2 ck+3 ck+4
c n
( ) ( )
n(n − k) n2 (k − 1)
A = 0.0065 0.0038 .
2k 2k
Verovatnoa da se bilo koji par sastoji od dva ista slova je
A 1
= [0.027n + k(0.038n − 0.065)].
n(n − 1)/2 k(n − 1)
78
To je oqekivana vrednost IOC . Ovu vrednost izjednaqujemo sa uzoraqkim
IOC i rexavamo po k.
, gde je I =
0.027n ∑ n (n − 1) 25
i i
k≈
(n − 1)I − 0.038n + 0.065 n(n − 1) i=0
79
21.2 Kriptoanaliza modernih protoqnih xifara
21.2.1 Generator sluqajnih brojeva b/p
Ovo je primer generatora koje se vixe ne koristi. Neka je p veliki prost
broj za koji 2 generixe F . Bira se b, 1 ≤ b < p, pa je b/p k uq. Izraqunava
∗
"Decimalni" razvoj:
11
0.01110...
-----------
1011 | 101.00000
10 11
------
10 010
1 011
------
1110
1011
----
110 itd.
Umesto ovog izabraemo dekadni primer, zbog lakxeg raqunaa. Neka
je p prost broj za koji 10 generixe F . Biramo 1 ≤ b < p. Ispisujemo
∗
0 ≤ p ≤ 9, pa je p = 1, p = 2, p = 1, itd.
1 2 3
OT 12141319 ST 82629544
+ niz kljuca 70588325 - niz kljuca 70588235
-------------------- --------------------
ST 82629544 OT 12141319
(sabiranje je bez prenosa) M O N T
+ 1
an
81
ST 5309573992060 746098818740243
OT 0200170405201 117040003081306 = CAREFULREADING
niz kljuca 5109403597869 639058815769947
Izlaz LPR je niz k uqa. Neka je poqetno stae LPR (s , s , s ) = (0, 1, 1).
Rad LPR prikazan je na slici 1 na sledeoj strani. elije pomeraqkog 0 1 2
jednog posle nekoliko koraka dolazi u drugo stae. Stae (0, 0, . . . , 0) ima
orbitu veliqine 1. U primeru su svih ostalih 7 staa u drugoj orbiti.
82
Prema tome, duina perioda niza k uqa je 7 = 2 − 1 (xto je najbo a
mogua vrednost).
3
0 1 2 3
83
1. ------------------- x 2. -----------------
b_0=1 | 0 | 1 | 1 | x b_0=1 | 0 | 1 | 1 | 1 |
b_1=1 ------------------- x b_1=0 -----------------
b_2=0 | | x b_2=1 | |
k_0=0 ------+ ----------| x b_3=0 ------- + ---------|
k_1=1 | x k_0=0 |
k_2=1 ------------------- | x k_1=1 ----------------- |
0 | 1 | 1 | 1 |<-| x k_2=1 0 | 1 | 1 | 1 | 1 | <--|
------------------- x k_3=1 -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
01 | 1 | 1 | 0 |<-| x 01 | 1 | 1 | 1 | 0 | <--|
------------------- x -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
011 | 1 | 0 | 0 |<-| x 011 | 1 | 1 | 0 | 0 | <--|
------------------- x -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
0111 | 0 | 0 | 1 |<-| x 0111 | 1 | 0 | 0 | 1 | <--|
------------------- x -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
01110 | 0 | 1 | 0 |<-| x 01111 | 0 | 0 | 1 | 1 | <--|
------------------- x -----------------
| | x | |
------+ ----------| x ------- + ---------|
| x |
------------------- | x ----------------- |
011100 | 1 | 0 | 1 |<-| x 011110 | 0 | 1 | 1 | 1 | <--|
------------------- x -----------------
| | x
------+ ----------| x
niz | x
kljuca: ------------------- | x
0111001 | 0 | 1 | 1 |<-| x
------------------- x
84
Razmotrimo LPR duine 5 sa (b , b , b , b , b ) = (1, 1, 1, 0, 1). Odredimo
veliqinu orbite staa (1, 1, 0, 0, 1). Vidimo da je u ovom sluqaju veliqina
0 1 2 3 4
znaqi da se sve mogue petorke bita (razliqite od 00000) pojav uju taqno
jednom u ovom nizu k uqa.
Kako se moe ustanoviti kada postoje samo dve orbite veliqina 1 i
2 −1? Neka je g(x) = b +b x +b x +. . .+b +x . Maksimalna orbita
(veliqine 2 − 1) dobija se ako i samo ako je polinom g(x) primitivan po
n 1 2 n−1 n
0 1 x
2 n−1
85
U opxtem sluqaju je k = b k + b k + · · · + b k . Imamo sistem
od n linearnih jednaqina (nad F ) sa n nepoznatih b , i = 0, 1, . . . , n − 1.
t+n 0 t 1 t+1 n−1 t+n−1
k0 k1 k2 k3 k4 b0 k5
k1 k2 k3 k4 k5 b1 k6
k2 k3 k4 k5 k6 b2 = k7
k3 k4 k5 k6 k7 b3 k8
k4 k5 k6 k7 k8 b4 k9
86
Rexavaem dobijamo b b b b b b = 110000. Poxto znamo sve b i prvih
xest qlanova niza k uqa, moemo da rekonstruixemo ceo niz k uqa i
0 1 2 3 4 5 i
Neka je S(p p p p
0 1 2 3 + k0 k1 k2 k3 ) = m0 m1 m2 m3 , itd. Posle N S stae je
NS m0 m1 m2 m3 m8 m9 m10 m11 SR m0 m1 m2 m3 m8 m9 m10 m11
→ →
m4 m5 m6 m7 m12 m13 m14 m15 m12 m13 m14 m15 m4 m5 m6 m7
87
Posle M C stae je
MC m0 + m14 m1 + m12 + m15 m2 + m12 + m13 m3 + m13 m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11
→
m2 + m12 m0 + m3 + m13 m0 + m1 + m14 m1 + m15 m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9
AK1 m0 + m14 + k16 . . . m3 + m13 + k19 m6 + m8 + k24 . . . m5 + m11 + k27 c c c c c8 c9 c10 c11
→ = 0 1 2 3
m2 + m12 + k20 . . . m1 + m15 + k23 m4 + m10 + k28 . . . m7 + m9 + k31 c4 c5 c6 c7 c12 c13 c14 c15
c0 + k16 c1 + k17 c2 + k18 c3 + k19 c8 + k24 c9 + k25 c10 + k26 c11 + k27
=
c4 + k20 c5 + k21 c6 + k22 c7 + k23 c12 + k28 c13 + k29 c14 + k30 c15 + k31
Podrazumevani redosled elija u blokovima:
elija 1 elija 3
elija 2 elija 4
22.2 Linearna kriptoanaliza
Linearna kriptoanaliza je napad sa poznavaem otvorenog teksta. Pronaxao
ga je Matsui 1992. godine. Za ovaj napad potrebno je mnogo parova OT/ST
dobijenih datim k uqem. Neka je blok OT p . . . p , k uq k . . . k , a
odgovarajui ST c . . . c . 0 n−1 0 m−1
88
22.3 Linearna kriptoanaliza 1SAES
Neka je S(a a a a ) = b b b b . Tada se vrednosti b za razne a mogu
predstaviti tablicom
0 1 2 3 0 1 2 3 i i
a0 a1 a2 a3 b0 b1 b2 b3
0 0 0 0 1 0 0 1
0 0 0 1 0 1 0 0
0 0 1 0 1 0 1 0
0 0 1 1 1 0 1 1
0 1 0 0 1 1 0 1
0 1 0 1 0 0 0 1
0 1 1 0 1 0 0 0
0 1 1 1 0 1 0 1
1 0 0 0 0 1 1 0
1 0 0 1 0 0 1 0
1 0 1 0 0 0 0 0
1 0 1 1 0 0 1 1
1 1 0 0 1 1 0 0
1 1 0 1 1 1 1 0
1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1
Izraqunavaem svih linearnih kombinacija ulaznih bita a i izlaznih
bita b dolazi se do linearnih veza koje vae sa verovatnoom veom od 0.5i
89
Desne strane ovih jednaqina zavise od sve qetiri elije staa. Zbog toga
ihovo korixee za kombinovae sa jednaqinama kao xto su (1)-(6) dovodi
do jednaqina sa verovatnoama bliskim 0.5 (kasnije emo videti da postoji
tendencija da verovatnoe sa kojima vae jednaqine budu bliske 0.5).
Umesto toga, primetimo da su biti koji se pojav uju na desnoj strani
(7) podskup bita koji se pojav uju u (13). Sliqno, biti koji se pojav uju na
desnoj strani (10), (11), (14) su podskupovi skupova bita koji se pojav uju
redom u (12), (9), (8). Zbog toga, ako saberemo jednaqine (7) i (13), (10) i
(12), (11) i (9), odnosno (14) i (8), dobijamo
c0 + c6 + c8 + c14 + k8 + k14 = m1 + m9 (15)
c3 + c5 + c11 + c13 + k11 + k13 = m0 + m8 (16)
c2 + c4 + c10 + c12 + k10 + k12 = m5 + m13 (17)
c1 + c7 + c9 + c15 + k9 + k15 = m4 + m12 . (18)
NS m0 m1 m2 m3 m8 m9 m10 m11
→
m4 m5 m6 m7 m12 m13 m14 m15
Podsetimo se kako deluje tabela S: S(a a a a ) = (b b b b ).
Jednaqina (1) je a + b = 1, p = 0.75 (za elije 1 i 3).
3 0
0 1 2 3 0 1 2 3
p3 + k3 + m0 = 1, p = 0.75
,
p11 + k11 + m8 = 1, p = 0.75
,
p3 + p11 + k3 + k11 + m0 + m8 = 0 p = (0.75)2 + (0.25)2 = 0.625
Podsetimo se,
p3 + p11 + k3 + k11 = m0 + m8 p = 0.625
, (16) uvek.
Kombinovaem se dobija
c +c +c +c +k +k
3 5 11 13 11 13 = m0 + m8
(19),
c3 + c5 + c11 + c13 + k11 + k13 = p3 + p11 + k3 + k11 , p = 0.625
90
NS m0 m1 m2 m3 m8 m9 m10 m11
→
m4 m5 m6 m7 m12 m13 m14 m15
Podsetimo se ponovo kako deluje tabela S: S(a a a a ) = (b b b b ).
Jednaqina (1) je a + b = 1, p = 0.75 (za eliju 1). 0 1 2 3 0 1 2 3
p + k + m = 1, p = 0.75
0 1 0
p + k + p + k + m = 1, p = 0.75
3 3 0
p + p + p + c + c + c + c = m + m , p = 0.625
8 8 9 9 8
Podsetimo se,
3 8 9 3 5 11 13 0 8
c + c + c + c + k + k = m + m (16) (uvek)
Kombinovaem, dobijamo
3 5 11 13 11 13 0 8
p + p + p + c + c + c + c = k + k + k + k + k (20), p = 0.625
Ovo je druga od jednaqina kakva su potrebne za linearnu kriptoanalizu.
3 8 9 3 5 11 13 3 8 9 11 13
nego samo ono xto se moe dobiti kombinovaem (19), (20) i (21).
Polazei od (18) moemo takoe da primenimo (1) i (1), (1) i (2), (2) i
(2) na elije 2 i 4 redom, i tako dobijemo (22), (23), (24).
Polazei od (15) moemo da primenimo (3) i (3), (3) i (4), (4) i (4) na
elije 1 i 3 redom, i tako dobijemo (25), (26), (27).
Polazei od (17) moemo da primenimo (3) i (3), (3) i (4), (4) i (4) na
elije 2 i 4 redom, i tako dobijemo (28), (29), (30).
Sabiraem (15) i (16) dobijamo c + c + c + c + c + c + c + c +
k +k +k +k =m +m +m +m .
0 3 5 6 8 11 13 14
8 11 13 14 0 1 8 9
NS m0 m1 m2 m3 m8 m9 m10 m11
→
m4 m5 m6 m7 m12 m13 m14 m15
Podsetimo se ponovo kako deluje tabela S: S(a a a a ) = (b b b b ).
Jednaqina (5) je a + a + b + b = 1, p = 0.75 (za elije 1 i 3).
1 2 0 1
0 1 2 3 0 1 2 3
p + k + p + k + m + m = 1, p = 0.75.
p + k + p + k + m + m = 1, p = 0.75
1 1 2 2 0 1
p + p + p + p + k + k + k + k = m + m + m + m , p = 0.675.
9 9 10 10 8 9
Podsetimo se,
1 2 9 10 1 2 9 10 0 1 8 9
c +c +c +c +c +c +c +c +k +k +k +k = m +m +m +m ,
(15)+(16) uvek.
0 3 5 6 8 11 13 14 8 11 13 14 0 1 8 9
Kombinovaem se dobija
k + k + k + k + k (31), p = 0.675.
p +p +p +p +c +c +c +c +c +c +c +c = k +k +k +
1 2 9 10 0 3 5 6 8 11 13 14 1 2 8
9
Na prvi pogled izgleda korisno iskoristiti (6), ali se zapaa da je to
10 11 13 14
92
dopuniti matricu sistema sa jox dve vrste do baze (16-dimenzionalnog F
vektorskog prostora) tako da se dodaju vektori pridrueni k i k . Cica 2
p3 + p11 + c3 + c5 + c11 + c13
0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 k0 ···
0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 k1
1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 k2
0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 k3
0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 k4
0 0 0 0 1 1 0 0 0 1 0 0 1 1 0 1 k5
0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 k6
0 1 0 0 0 0 0 0 0 1 1 1 0 0 1 0 k7
=
1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 k8
0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 k9
0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 k10
0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 k11
0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 k12
0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 k13
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 k14 p + p + · · · c
5 6 15
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 k15 ∗
∗
U vektoru sa desne strane ona stav a nulu ili jedinicu | vrednost koja se
qexe pojav uje u parovima OT/ST. Za preostala dva bita ona isprobava
sve qetiri mogue kombinacije.
Pretpostavimo da Cica eli da sa verovatnoom 95% bude sigurna da su
svih 14 izbora taqni. Moe se oceniti broj n parova OT/ST potrebnih za
taj nivo sigurnosti uspeha. Za i = 19, . . . , 32 neka je p̂ sluqajna promen iva
qija je vrednost jednaka udelu parova OT/ST za koje je leva strana jednaqine i
i zato xto je √to verovatno blisko istini. Zbog toga zahtevamo da bude
i
93
Prema tome,
( √ ) ( √ )
− n n
1 − 0.99634 = 0.00366 = P Z< √ =P Z> √ .
15 15
0 < c < 1 (mi smo izabrali c = 0.95) dobijamo n = 15z , gde je√z vrednost
iz tabele normalne raspodele koja odgovara vrednosti 1 − c. Tako je
2
jedan od dobijenih k uqeva nije dobar, Cica moe da nabavi jox parova
OT/ST. Druga mogunost koju ona ima je da pokuxa da promeni neke od 14
izabranih vrednosti bita. Pri tome ima smisla prvo promeniti onaj bit
koji se pojavio najmai broj puta.
22.5.1 Brzina napada
Ako Cica ima samo jedan par OT/ST, ona moe da isproba svih 2 = 65536
k uqeva da ustanovi koji od k uqeva transformixe OT u ST. Ako ovaj
16
p p p p .
4 5 6 7
∗ ∗ ∗ ∗
4 5 6 7
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
i
m4 + m10 + k28 m5 + m8 + m11 + k29 m6 + m8 + m9 + k30 m7 + m9 + k31
m∗0 + m14 + k16 m∗1 + m12 + m15 + k17 m∗2 + m12 + m13 + k18 m∗3 + m13 + k19
m∗2 + m12 + k20 m∗0 + m∗3 + m13 + k21 m∗0 + m∗1 + m14 + k22 m∗1 + m15 + k23
95
m∗6 + m8 + k24 m∗4 + m∗7 + m9 + k25 m∗4 + m∗5 + m10 + k26 m∗5 + m11 + k27
m∗4 + m10 + k28 m∗5 + m8 + m11 + k29 m∗6 + m8 + m9 + k30 m∗7 + m9 + k31
Ovo je xifrat, tj.
c0 c1 c2 c3 c8 c9 c10 c11 c∗0 c∗1 c∗2 c∗3 c∗8 c∗9 c∗10 c∗11
c4 c5 c6 c7 c12 c13 c14 c15 c∗4 c∗5 c∗6 c∗7 c∗12 c∗13 c∗14 c∗15
∗ ∗
nebitno
∗ ∗
nebitno
m +m m +m m +m m +m
0 0 1 1 2 2 3 3
∗ ∗ ∗ ∗
m +m m +m m +m m +m 4 4 5 5 6 6 7 7
∗ ∗
nebitno
∗ ∗
nebitno
c +c c +c c +c c +c
0 0 1 1 2 2 3 3
∗ ∗ ∗ ∗
c +c c +c c +c c +c 12 12 13 13 14 14 15 15
Dobija se da je c c c c + c c c c ∗ ∗ ∗ ∗
0 1 2 3
0 1 2 3
= (m0 + m14 , . . . , m3 + m13 ) + (m∗0 + m14 , . . . , m∗3 + m13 )
m0 m1 m2 m3 + m∗0 m∗1 m∗2 m∗3
.
= S(p0 p1 p2 p3 + k0 k1 k2 k3 ) + S(p∗0 p∗1 p∗2 p∗3 + k0 k1 k2 k3 )
Prema tome, ako je onda je
p8 . . . p15 = p∗8 . . . p∗15
(I).
S(p0 p1 p2 p3 + k0 k1 k2 k3 ) + S(p∗0 p∗1 p∗2 p∗3 + k0 k1 k2 k3 ) = c0 c1 c2 c3 + c∗0 c∗1 c∗2 c∗3 .
Ovde se sve zna izuzev k k k k . Primetimo da jednaqina ZAVISI od
p ...p = p ...p .
0 1 2 3
∗ ∗
8
Sliqno, c c c c + c c c c
15 8
12 13 14 15
15
∗ ∗ ∗ ∗
12 13 14 15
∗ ∗ ∗ ∗
= S(p p p p + k k k k ) + S(p p p p + k k k k ).
=m m m m +m m m m
4 5 6 7 4 5 6 7
∗ ∗ ∗ ∗
p0 p15
ASCII N o = 0100 1110 0110 1111
i
CT = 0010 0010 0100 1101
p∗0 p∗15
ASCII to = 0111 0100 0110 1111
CT = 0000 1010 0001 0001
:
I S(0100 + k0 k1 k2 k3 ) + S(0111 + k0 k1 k2 k3 ) = 0010 + 0000 = 0010.
96
kandidat A B
k0 k1 k2 k3 +0100 +0111 S(A) S(B) S(A) + S(B)
0000 0100 0111 1101 0101 1000
0001 0101 0110 0001 1000 1001
0010 0110 0101 1000 0001 1001
0011 0111 0100 0101 1101 1000
0100 0000 0011 1001 1011 0010
0101 0001 0010 0100 1010 1110
0110 0010 0001 1010 0100 1110
0111 0011 0000 1011 1001 0010
1000 1100 1111 1100 0111 1011
1001 1101 1110 1110 1111 0001
1010 1110 1101 1111 1110 0001
1011 1111 1100 0111 1100 1011
1100 1000 1011 0110 0011 0101
1101 1001 1010 0010 0000 0010
1110 1010 1001 0000 0010 0010
1111 1011 1000 0011 0110 0101
Prema tome, k k k k ∈ {0100, 0111, 1101, 1110}. Primetimo da je skup kandidata
odreen drugom i treom kolonom. To su parovi sa zbirom (XOR) 0011.
0 1 2 3
(0000). 0 1 2 3 0 1 2 3
Cica xifruje
p0 p15
ASCII M r = 0100 1101 0111 0010
i
CT = 1101 0101 1101 0000
p∗0 p∗15
ASCII or = 0110 1111 0111 0010
CT = 1100 0001 0100 1111
97
23 Roendanski paradoks
Ako se u sobi nalazi vixe od 23 osobe, onda je verovatnoa da neke dve
od ih imaju roendan istog dana vea od 1/2. Uopxte, ako se k = α√n
objekata vadi sa ponav aem iz skupa veliqine n, onda je verovatnoa da
e svi izvuqeni objekti biti razliqiti
∏
k−1
n−i ∏
k−1
i ∏
k−1 ∑k−1
e−i/n = e− i=1 i/n ≈ e−k /(2n) = e−α /2
2 2
= (1 − ) ≈
i=1
n i=1
n i=1
dva roendana bude 1/2 dovo no je da broj osoba bude vei od √365 ln 4 ≈ 23.
U toku sluqajnog lutaa po skupu od n elemenata, posle otprilike
1.2 n oqekuje se nailazak na ve ranije pregledani elemenat. Korixee
√
ove qienice zove se Polardov (Pollard) ρ-metod. Oqekivani broj koraka
pre povratka u neku vienu taqku je O(√n). Naredna slika ilustruje zaxto
se ovakvo sluqajno lutae zove ρ-metod (obratite pau na oblik).
* * ->* *
* / \ \ *
* / * --*
* * *
* / * * *
* * *
| * * *
| * * *
* * *
Start
Algoritam faktorizacije zasnovan na ovoj qienici bio je prvi algoritam
suxtinski bri od faktorizacije nizom probnih de ea. Taj algoritam je
jox uvek najbo i za brojeve sa 8 − 15 dekadnih cifara. Da bismo rastavili
n na qinioce, iteriramo funkciju kao xto je npr. f (x) = x + 1 (mod n)
(polazei od npr. x = 0), i tako dobijamo sluqajno lutae kroz Z . Ako je
2
98
5) Izraqunaj a , a , a , nzd(a − a5 , n) , zapamti a , a , obrixi a , a ,
itd. 5 9 10 10 5 10 4 8
po modulu 23 i 59.
ai mod 1357 ai mod 23 ai mod 59
a1 = 1 1 1
a2 = 2 2 2
a3 = 5 5 5
a4 = 26 3 26
a5 = 677 10 28
a6 = 1021 9 18
a7 = 266 13 30
a8 = 193 9 16
a9 = 611 13 21
a10 = 147 9 29
a11 = 1255 13 16
a12 = 906 9 21
Da li bi bilo efikasnije da se napravi spisak a , . . . , a , i da se u
svakom koraku izraqunava nzd sa svim prethodnim qlanovima niza? Ne. 1 8
Ako se ρ (povratak po modulu p na mesto na kome smo ve bili) desi posle
m koraka (u gorem primeru se to desilo za m = 8) onda je potrebno
1 + 2 + · · · + (m − 1) ≈ m /2 izraqunavaa nzd i veliki memorijski prostor.
U opisanom algoritmu ima samo 4m koraka.
2
99
Ista ideja moe se iskoristiti za rexavae problema diskretnog logaritma
za eliptiqke krive nad konaqnim po em. To je za sada najbo i poznati
algoritam za rexavae ECDLP. Neka je E : y = x + 17x + 1 nad F .
Taqka G = (0, 1) generixe E(F ). Pored toga, 103G = ⊘, pa se taqke
2 3
101
celim brojevima mnoe po modulu 103. Taqka Q = (5, 98) = nG za neko n; 101
i Pi [a, b]
0 [0, 0]
1 (5, 98) [1, 0]
2 (68, 60) [2, 0]
3 (63, 29) [2, 1]
4 (12, 32) [4, 2]
5 (8, 89) [5, 2]
6 (97, 77) [6, 2]
7 (62, 66) [6, 3]
8 (53, 81) [12, 6]
9 (97, 77) [24, 12]
10 (62, 66) [24, 13]
11 (53, 81) [48, 26]
12 (97, 77) [96, 52]
P i uporeujemo P , P ,....
2 3 4 2 4 3 5
6
Sliqna ideja moe se iskoristiti za rexavae FFDLP.
3 6
100
Lutae se prekida u trenutku kad bude ispuen uslov c = c . Tada
je c = y g = y g = c . Prema tome, y
a2j b2j aj bj
= g iy= a2j −aj
2j
bj −b2j
j
lutaa:
g
24 Faktorizacija
Najoqigledniji naqin za razbijae RSA poqie faktorizacijom n = pq.
Kad govorimo o problemu faktorizacije, pretpostav amo da se trai bilo
koji netrivijalni faktor broja n, pa pretpostav amo da je n neparno. Tako
je 105 = 7 · 15 uspexna faktorizacija, bez bzira na to xto je 15 sloen
broj.
Najbo i poznati algoritam za faktorizaciju nekog RSA broja je sito
u po u brojeva. Faktorizacija se pojav uje i u drugim kriptografskim
kontekstima. U vezi sa Polig-Helmanovim algoritmom videemo da je vano
rastaviti na qinioce veliqinu grupe oblika F ili E(F ). Na taj naqin ∗
izraqunavamo (⌈√n⌉ + √2) − n, itd. sve dok √rezultat ne bude celi broj.
Primer. n = 3229799, n ≈ 1797.16, pa√je ⌈ n⌉ = 1798. 1798 − n = 3005,
2
nekog ihovog proizvoda jednak potpunom kvadratu (mod n). Jedan naqin
da se to postigne je da sami ostaci budu mali. Dakle, brojevi x biraju
se tako da√ x bude blisko nekom umnoxku n, tj. x ≈ kn za neko k ∈ Z,
tj. x ≈ kn. Zatim se kreira baza faktora, koja se sastoji od prostih
2 2
102
koristi −1 · (n − r). Zatim se ostatak rastav a na qinioce, koristei bazu
faktora i niz de ea. Ako se ne uspe, pokuxava se sa drugim x. Nastav a
se dok se ne doe do toga da je proizvod nekog podskupa ostataka potpuni
kvadrat.
Jednostavan naqin da se iskoristi ova ideja je birati cele brojeve
najblie √kn. Broj takvih bliskih brojeva zavisi od n na komplikovani
naqin. Neka je dakle x neki celi broj blizak √kn.
√ Primer. n = 89893√ , koristimo b = 20 i qetiri najblia broja za svaki
kn. Imamo da je n ≈ 299.8.
−1 2
nije gladak
3 5 7 11 13 17 19
2992 ≡ −492
3002 ≡ 107 nije gladak
2982 ≡ −1089 −1 · 3 · 11
nije gladak
2 2
1 0 0 0 0 0 0 0 0
√301 ≡ 708
2
2n ≈ 424.01
4242 ≡ −10 −1 · 2 · 5
nije gladak
1 1 0 1 0 0 0 0 0
4252 ≡ 839
4232 ≡ −857 nije gladak
4262 ≡ 1690 = 2 · 5 · 132 0 1 0 1 0 0 0 0 0
103
Neka je n = 17873. Poqetak verinog razvoja √n je [133, 1, 2, 4, 2, 3, 1, 2, 1, 2, 3, 3, . . .].
Koristiemo bazu faktora {−1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29} pri qemu neemo
upisivati nule u tablicu.
−1 2 3 5 7 11 13 17 19 23 29
≡ −184 = −1 · 23 · 23
nije gladak
[133] = 133 1332 1 1 1
[133, 1] = 134 1342 ≡ 83 =
[133, 1, 2] = 401 ≡ −56 = −1 · 23 · 7
nije gladak
3 4012 1 1 1
[133, 1, 2, 4] = 1738
13 17382 ≡ 107 =
[133, . . . , 2] = 3877
29 38772 ≡ −64 = −1 · 26 1
[133, . . . , 3] = 13369
100 133692 ≡ 161 = 7 · 23 1 1
. Sada je
(401 · 3877 · 17246 · 65107)2 ≡ ((−1)2 · 26 · 7 · 11)2 (mod n) 401 · 3877 ·
i
17246 · 65107 ≡ 7272 (−1)2 · 26 · 7 · 11 ≡ 4928. Dobija se 7272 − 4928 = 2344
i ,
nzd(2344, n) = 293 n/293 = 61 . Oba qinioca , su prosti.
293 61
(mod 221). Prema tome, potrebno nam je 169 (mod 221). Pomou Euklidovog
169−0 169
−1
104
Xta se desilo iza scene?
mod 13 mod 17
R (0, 1) (0, 1)
2R (10, 7) (13, 1)
3R (7, 0) (4, 16)
4R (10, 6) (9, 12)
5R (0, 12) (16, 4)
6R ⊘ (10, 12)
24.5 Po e brojeva
Razmotriemo najpre po a brojeva da bismo mogli da razumemo sito u po u
brojeva.
Neka Z oznaqava skup celih brojeva, Q skup racionalnih brojeva (razlomke
kojima je brojilac celi broj, a imenilac prirodni broj), a R skup realnih
brojeva. Neka je i = √−1; i = −1, i = −i, i = 1. Skup C = {a + bi) | a, b ∈
2 3 4
105
R} je skup kompleksnih brojeva. Na primer, broj π + ei je kompleksan. Neka
je f (x) = a x = a x + · · · + a x + a , pri qemu je a ∈ C, 0 ≤ i ≤ n.
Tada se moe napisati f (x) = a (x − α )(x − α ) · · · (x − α ). Pri tome je
n n−1
n n−1 1 0 i
√ √ √
a+b 2 (a + b 2)(c − d 2) ac − 2bd bc − ad √ √
√ = √ √ = 2 + 2 2 ∈ Q( 2).
c+d 2 (c + d 2)(c − d 2) c − 2d 2 c − 2d 2
Z i p|N (a + bi) (tj. p|a + b ) onda neki prosti delilac p deli a + bi. Ovo
olakxava faktorizaciju algebarskih celih brojeva u Z[i].
2 2
−i = i , pa je 7 + i = i (1 + i)(2 + i) .
Sledea qienica je takoe korisna za faktorizaciju u Z(i). Ako je
3 3 2
107
Ako su α i β elementi Q(i), onda je N (αβ) = N (α)N (β).
24.6 Sito u po u brojeva
Sito u po u brojeva (Pollard, Adleman, H. Lenstra) je trenutno najbo i
poznati algoritam za faktorizaciju brojeva n > 10 , pri qemu je najmai
prost qinilac n bar 10 . RSA brojevi su ovog tipa. Broj RSA {193 (koji
130
108
a + b · 50.
α faktorizacija α h(α) faktorizacija h(α)
i =i 50 = 2 · 52
1+i =1+i 51 = 3 · 17
2+i =2+i 52 = 22 · 13 ∗
4+i =4+i 54 = 2 · 33 ∗
7 + i = i3 (1 + i)(2 + i)2 57 = 3 · 19 ∗
1−i = i3 (1 + i) −49 = −1 · 72 ∗
2−i =2−i −48 = −1 · 24 · 3
4−i =4−i −46 = −1 · 2 · 23 ∗
5 − i = i3 (3 + 2i)(1 + i) −45 = −1 · 32 · 5
8 − i = (3 − 2i)(2 + i) −42 = −1 · 2 · 3 · 7
5 + 2i = 5 + 2i 105 =3·5·7
1 − 2i = i3 (2 + i) −99 = −1 · 32 · 11 ∗
9 − 2i = (4 + i)(2 − i) −91 = −1 · 7 · 13
5 − 2i = 5 − 2i −95 = −1 · 5 · 19
5 − 3i = i3 (1 + i)(4 + i) −145 = −1 · 5 · 29
3 + 4i = (2 + i)2 203 = 7 · 29−
2 + 5i = i(5 − 2i) 252 = 22 · 32 · 7
3 + 5i = (4 + i)(1 + i) 253 = 11 · 23 ∗
3 − 5i = i3 (1 + i)(4 − i) −247 = −1 · 13 · 19 ∗
2 · 3 · 7 · 11 · 13 · 19 · 23 .
Neka je
4 6 2 2 2 2 2
109
Prema tome 38 ≡ 1444 ≡ 1807 (mod 2501)). Iz nzd(1807 − 38, 2501) = 61 i
2501/61 = 41 sledi 2501 = 61 · 41.
2 2
Req sito odnosi se na postupak biraa samo takvih α koji imaju veu
verovatnou da budu glatki, a da pri tome i h(α) bude gladak. Na primer,
broj n, 1 ≤ n ≤ 1000, de iv sa 36 verovatnije e biti gladak od proizvo nog
broja iz tog intervala. Mogu se odrediti uslovi koje ostaci a i b po modulu
36 treba da zadovo avaju da bi se garantovalo da h(a + bi) bude umnoak
36.
prost broj ili stepen prostog broja, efikasan je samo ako je broj q − 1 (red q
110
Neka je g generator F . Za dato y ∈ F potrebno je rexiti g = y po x.
∗ ∗
sa odgovarajuim eksponentima ζ .
pi 0 1
pi pi pi
Izraqunavamo y
i
(mod q). Taj broj je na spisku stepenova ζ . Na
(q−1)/p
i
i
x .
x0 x1
1 1 p
itd.
x3
3 3 p 3
odrediti koeficijente x . i
0 1 2 3
pa je x = 3.
5 0
(q−1)/p2 2
y
g x0 = 304/3 ≡ 212 = y .
2
y 1 = 212 ≡ 318 = ζ
1
400/(5 ) 3
5 1
111
Primetimo da je m ≡ 1 (mod 17) za svako 1 ≤ m ≤ 16. U jednakosti
3 ≡ 7 (mod 17) pretpostavimo da je 11 nepoznato. Dakle 3
16
≡7
(mod 17).
11 1+1·2+0·4+1·8
x = x + x + 1, x = x + 1 i x = 1. Primetimo da je x = x · x = x , jer
1 2 2 3 4 2
(mod q − 1).
r
112
dobija t = α log(h ) + · · · + α log(h ). To je sistem linearnih jednaqina
po log(h ) (to su jedine nepoznate). Odrediti vixe ovakvih linearnih
1 1 r r
jednaqina sve dotle dok ne bude mogue odrediti sve vrednosti log(h ).
i
h ·· · ··h . Tada je log y+t log g = β log h +· · ·+β log h , odnosno log y+t =
t t
β1
g126
= (x +x+1)(x +x +x +x+1)(x+1)2 pa je 126 = h+k+2a i h = 1898.
4 4 3 2
odnosno x = y.
Sito u po u brojeva moe se kombinovati sa algoritmom za izraqunavae
1241
114
22. Odrediti sve generatore Z za n = 23, 29.
∗
n
23. Izraqunati 5 (mod 29), 7 (mod 29), 21 (mod 29), 39 (mod 23),
−1 −1 −1 −1
x + 1) .
2 3
2 2
2 ∗
x + 1).
5
2
2
31. Koliki najvei period moe imati izlazni niz iz algoritma RC4
(odgovor treba da zavisi od parametra n)?
32. Koristei qienicu da funkcije M C u SAES transformixe kolonu
b b b b
u kolonu bb ⊕⊕ bb bb ⊕⊕ bb ⊕⊕ bb bb ⊕⊕ bb ⊕⊕ bb bb ⊕⊕ bb = bb bb bb bb
0 1 2 3 0 6 1 4 7 2 4 5 3 5
′
0
′
′
1
′
′
2
′
′
3
′
33. Od koliko najmae bita staa algoritma AES zavisi neki bit staa
posle
a) funkcije ByteSub;
b) funkcije Shif tRow;
v) funkcije M ixColumn;
g) funkcije AddRoundKey;
d) jedne runde?
115
34. Koliko bita je pogrexno posle dexifrovaa poruke ako je xifrovae
izvrxeno algoritmom AES u reimu ECB, CBC, CFB, OFB?
35. Koristei tabelu koja opisuje funkciju S u SAES napisati izraze
za qetiri izlazna bita e, f, g, h preko ulaznih bita a, b, c, d.
36. Izraqunati 57 (mod 97).
1616
x + 1).
2 2
bi sistem funkcionisao. A
116
49. Dokazati da eliptiqka kriva nad po em F ima najvixe 2q + 1 taqku.
q
xifrata.
53. U sistemu autentikacije zasnovanom na RSA korisnik A izabrao je
javni k uq e = 7 i n = 77. Ako je on od B dobio broj 23, kako treba
da glasi egov odgovor, da bi sagovornika ubedio u svoj identitet?
54. Za digitalne potpise zasnovane na sistemu RSA korisnici A iB
imaju javne k uqeve e = 3, n = 15, odnosno e = 7, n = 77. A
eli da poxa e poruku M = 4 kao potpis nekog teksta. Koji celi
A A B B
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
117
58. Odrediti verini razvoj brojeva √3, √5, √7, , π i odrediti prvih
7
8 parcijalnih razlomaka.
23
118