Professional Documents
Culture Documents
Kriptografija
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
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
29
30
30
31
32
32
33
39
42
18 Eliptiqke krive
44
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
16.2 Problem diskretnog logaritma u konaqnom po u . . . . . . . 41
16.3 Protokol usaglaxavaa k uqa Difi{Helman . . . . . . . . . 41
16.1 RSA
17.1 RSA
50
50
52
57
57
59
60
60
61
62
62
19
19.1
20
20.1
53
53
53
54
54
54
54
55
56
64
65
65
67
67
68
70
21 Kriptoanaliza
70
84
23 Roendanski paradoks
24 Faktoriza
ija
95
98
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
107
26
Zada i
111
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
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/
\ /
-----------------------------
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
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.
r
r
i
1 2
1 2
r
r
1 1
2 3
9
1
5
1 2
1
2
r
r
1 2
1 2
1 2
1 2
r
r
2
3
2
r
r
0
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
3
1
r 1
r 2
Primer. Rexiti
(mod m1 m2 . . . mr ).
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
(m)
. Zaista,
1 (mod m)
{ax (mod m) | x Zm } = Zm
x=
xZ
m
ax = a(m)
xZ
m
x.
xZ
m
xZ
m
1004
1004
11
23
11
23
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 ).
14
()
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
1}
1
p1
5
2
k n
16
kn
2
1
k (p1)/d
2
i
i+1
i1
k2
28/2
29
59
2
28/7
11
RC4
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
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
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
pi2
pi3
ako je pi1 = 0
ako je pi1 = 1
pi2
pi3
ako je pi1 = 0
ako je pi1 = 1
pi = ci + ki +
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
n+1
19
x
x4
x2
x3
+ x3
+
+
x
x2
x2
x2
+ 1
+ x
+ x
+ x
x2
x
x3
x2
x2
+ x
x
+ x
+ x
+ 1
+ 1
+ 1
+ 1
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
1 =
(x4 + x3 + 1) + x(x3 + x2 )
1 =
1 =
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
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
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
16
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] =
i 0 (mod 2)
.
i 6 0 (mod 2)
16
31
32
47
47
15
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
47
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
l
2
16
16
0 1 2 3
4 5 6 7
Ki
12.8 Dexifrovae
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 )
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
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
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
0 1 2 3 4 5 6 7
28
2
1
27
28
3
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
28
Ki
W [i] =
28
i 0 (mod 4)
.
i 6 0 (mod 4)
12.11
AES
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
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
15
0 1
15
0 1
15
31
15
e
f
= acd + bcd + ab + ad + cd + a + d + 1
= abd + bcd + ab + ac + bc + cd + a + b + d
g
h
29
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
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
55
127
K1
K2
K1
1,i
k1,i
k2,i
k2,i
2,i
k1,i
b1
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
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
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
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
r
>0
>0
>0
>0
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
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
43
5 4 3 2 1 0 2
16
32
3
4
32
2i
12
23
64
24 5
= 2
= 6
= 24
= 120
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
1 2 5
4 3
1 9
38
0.5n
dr
16.1
RSA
300
39
e d
ed
33
33
16
32
32
97
eB
B
1
231
308
617
154
193
101
300
g
3
10
600
69
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
RSA
eB
42
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
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
eA eB
eA eB dA
eA eB dA
eA dA eB
eB
eB dB
255
421
395
281
18 Eliptiqke krive
44
15
10
5
-5
-10
-15
45
|
|
|
/
|
/
|
/
|
/
|
/
|
/
|
/
|
/
/ \ |
/
--/-----\---------- /------------|
| \
/
|
| |
|
|
| /
\
\
/
\
\ / |
\
|
\
|
\
|
\
|
\
|
\
|
\
|
\
|
|
46
/ \
/
|
|
|
\
|
/
\
/
\ /
-
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)
\
\
\__/
*
*
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
/
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
3
30
21
3
4
02(3)(1)
21
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)
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
p
2
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 =
p
3
2
1
3
1
4 1
A B
A B
50
50
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
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
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
32
19.1.6 Izraqunavae f
[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
[ABCD
[ABCD
[ABCD
[ABCD
3
7
11
22
22
4]
22
8]
22 12]
16].
5
1
13
9
21
21
21
21
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
19.1.7 Objaxee
32
32
55
52]
56]
60]
64]
16
16
16
16
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
20
32
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
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
eG
131
187
dG
115
eT
eT
dG
191
115
191
eG
187
dT
131
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
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
y e
A
140
512
y e
A
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
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
62
heksadekadnih ifara)
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
PGP
i mrea poverea
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
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
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
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
1 1
16 4
25 5
1
a
285
1 b = 279
1
S
391
(mod 587)
21 Kriptoanaliza
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).
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
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).
25
I=
P25
ni (ni 1)/2
=
n(n 1)/2
i=0
P25
ni (ni 1)
.
n(n 1)
i=0
2
25
2
0
2
i
2
i
c1
ck+1
..
c2
ck+2
c3
ck+3
25
c4
ck+4
cn
slovom je
A = 0.0065
n(n k)
2k
0.0038
n2 (k 1)
2k
i=0
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
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.
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
1
a2 +
...
1
a3 +
1
+ 1
an
1
2b2
ST 5309573992060
OT 0200170405201
niz k uqa 5109403597869
746098818740243
11704
63905
78
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 | <--|
-----------------
n1
n1
2n
n1
2n
0 1
2 2
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
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
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
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
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
0 2 7
2 4
Ova dva vana napada bie ilustrovana napadom na verziju SAES od samo
jedne runde, u da em tekstu 1SAES .
22.1 1SAES
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
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
m8 m9 m10 m11 SR
m0 m1 m2 m3
84
31
m8 m9 m10 m11
m4 m5 m6 m7
Posle M C stae je
MC
m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11
m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9
AK1
16
dobija se
. . . k31
m6 + m8 m4 + m7 + m9 m4 + m5 + m10 m5 + m11
m4 + m10 m5 + m8 + m11 m6 + m8 + m9 m7 + m9
n1
m1
n1
p1 + p2 + + pa + c1 + + cb + k1 + + kg = x
85
c8 c9 c10 c11
c12 c13 c14 c15
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
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
(1)
(2)
(3)
(4)
(5)
(6)
p1 + p2 + + pa + c1 + + cb + k1 + + kg = x
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
=
=
=
=
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
m0 m1 m2 m3
m4 m5 m6 m7
m8 m9 m10 m11
m12 m13 m14 m15
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
87
m0 m1 m2 m3
m4 m5 m6 m7
NS
m8 m9 m10 m11
m12 m13 m14 m15
11
13
11
11
13
11
13
13
11
11
13
14
11
13
13
11
11
13
13
14
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
10
10
10
10
11
13
14
10
13
14
0 1 2 3
10
11
11
13
11
14
13
14
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 ;
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
p5 + p6 + c15
11
13
15
1614
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
11
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
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
14
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
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
p0 + k0 p1 + k1 p2 + k2 p3 + k3
p4 + k4 p5 + k5 p6 + k6 p7 + k7
p0 + k0 p1 + k1 p2 + k2 p3 + k3
p4 + k4 p5 + k5 p6 + k6 p7 + k7
m0 m1 m2 m3
m4 m5 m6 m7
m8 m9 m10 m11
m12 m13 m14 m15
m8 m9 m10 m11
m12 m13 m14 m15
m8 m9 m10 m11
m4 m5 m6 m7
m0 m1 m2 m3
m12 m13 m14 m15
m8 m9 m10 m11
m4 m5 m6 m7
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
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
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
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
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
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
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
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
365 ln 4 23.
U toku sluqajnog lutaa po skupu od n elemenata, posle otprilike
* * ->*
* / \ \
* / * --*
*
*
* /
* *
*
*
| *
*
| *
* *
*
*
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
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
O( 41
log n)
O( 21 log n)
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]
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]
9 18
1857
61(271 )
43
27
61
101
2j
2j
2j
24 Faktoriza ija
98
ali
3005
/
Z . 1799 n = 6602, ali 6602
/ Z . 1800 n = 10201 i
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
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
[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
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.
i
,
101
381
1690
37
169
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)
24.5 Po e brojeva
102
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)
(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
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
ln n/ ln ln(n)). Neka je m =
Najpre
se
bira
stepen
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
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
(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
106
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.
dp
p
dq
q
1/2
1/2
dp
p
1/2
107
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
gx0 +x1 p
y
gx0 +x1 p+x2 p
= 304/(3
1+12
= 304/(3
) 338 = y2 .
1+12+04
) 338 = y3 .
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.
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
2r
2r
12
2 2
1 2
1
2
r
r
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).
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
106
126
19
1241
26 Zada i
1000000
(n)2
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
13
E(F13 ) = {, (1, 5), (1, 8), (2, 3), (2, 10), (9, 6), (9, 7), (12, 2), (12, 11)};
1 2
114
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