Documente Academic
Documente Profesional
Documente Cultură
INFORMATIC I COMUNICAII
Zgureanu Aureliu
CRIPTAREA
I
SECURITATEA INFORMAIEI
Note de curs
CHIINU 2013
Cuprins
Introducere ............................................................................................................ 4
Tema 1. Noiuni de baz ale Criptografiei. ......................................................... 6
Tema 2. Cifruri clasice. Cifruri de substituie .................................................. 12
Tema 3. Cifruri clasice. Cifrul de transpoziii .................................................. 25
Tema 4. Maini rotor........................................................................................... 30
Tema 5. Algoritmi simetrici de criptare. Cifruri bloc. Reeaua Feistel .......... 40
Tema 6. Algoritmul de cifrare Lucifer .............................................................. 46
Tema 7. Algoritmul DES..................................................................................... 59
Tema 8. Cifrul AES ............................................................................................. 69
Tema 9. Algoritmi simetrici de tip ir (stream cypher)................................... 80
Tema 10. Criptarea cu cheie public ................................................................. 91
Tema 11. Sisteme asimetrice bazate pe curbe eliptice .................................... 100
Tema 12. Sistemul de criptare RSA ................................................................. 107
Tema 13. Funciile HASH criptografice .......................................................... 113
Tema 14. Semnturi digitale............................................................................. 122
Tema 15. Atacuri criptografice ........................................................................ 132
Bibliografie......................................................................................................... 146
Introducere
Una dintre caracteristicile societii moderne o reprezint
Informatizarea. Tehnologii informaionale noi sunt permanent
implementate n diverse domenii ale activitii umane. Prin utilizarea
calculatoarelor i a software-ului respectiv sunt dirijate procese complexe
din cele mai diverse domenii de activitate. Calculatoarele stau la baza
mulimilor de sisteme de prelucrare a informaiei, care nfptuiesc
pstrarea, prelucrarea informaiei, distribuirea ei ctre utilizator, realiznd
astfel tehnologii informaionale moderne.
Odat cu dezvoltarea mecanismelor, metodelor i formelor de
automatizare a proceselor de prelucrare a informaiei crete i dependena
societii de gradul de securitate a proceselor de gestionare a informaiei,
realizat prin intermediul diverselor tehnologii informaionale aplicate, de
care depinde bunstarea, sau uneori i viaa multor oameni.
n acest context un specialist modern din domeniul Tehnologiilor
Informaionale este obligat s posede cunotine i aptitudini de asigurare a
securitii informaiei n toate fazele de dezvoltare i de funcionare a
sistemelor informaionale.
Soluionarea problemelor legate de securitatea informaiei constituie
obiectul de studiu al Criptografiei, care este o ramur a matematicii
moderne, ce se ocup de elaborarea metodelor matematice capabile s
asigure confidenialitatea, autentificarea i non-repudierea mesajelor,
precum i integritatea datelor vehiculate. Criptografia este un set de
standarde i protocoale pentru codificarea datelor i mesajelor, astfel nct
acestea s poat fi stocate i transmise mai sigur. Ea st la baza multor
servicii i mecanisme de securitate, folosind metode matematice pentru
transformarea datelor, n intenia de a ascunde coninutul lor sau de a le
proteja mpotriva modificrii. Criptografia ne ajut s avem comunicaii
mai sigure, chiar i atunci cnd mediul de transmitere (de exemplu,
Internetul) nu este de ncredere. Ea poate fi utilizat pentru a contribui la
asigurarea integritii datelor, precum i la meninerea lor n calitate de
date secrete, ne permite s verificm originea datelor i a mesajelor prin
utilizarea semnturilor digitale i a certificatelor.
Unul dintre instrumentele principale ale criptografiei este sistemul de
criptare, la baza cruia se afl algoritmul de criptare.
4
mesajele destinate unui alt utilizator, fiindc oricine are acces la cheia
public a acestuia. O analogie foarte potrivit pentru proces este folosirea
cutiei potale. Oricine poate pune n cutia potal a cuiva un plic, dar la
plic nu are acces dect posesorul cheii de la cutia potal.
Cripografia asimetric se mai numete criptografie cu chei publice i
e compus din dou mari ramuri:
Criptarea cu cheie public un mesaj criptat cu o cheie public nu
poate fi decodificat dect folosind cheia privat corespunztoare.
Metoda este folosit pentru a asigura confiden
Semnturi digitale un mesaj semnat cu cheia privat a
emi torului poate fi verificat de ctre oricine, prin acces la cheia
public corespunzatoare, astfel asigurndu-se autenticitatea
mesajului.
11
I/J
I/J
15
9,95 4,06 0,91 1,07 5,28 3,45 11,47 1,18 0,99 0,47 9,96 1,40 0,24 0,11 4,48 3,10
6,47 4,07 3,18 0,00 6,82 4,40 1,55 6,04 1,00 6,20 1,23 0,03 0,11 0,07 0,71
22
P
S
15
18
7
H
E
U
4
20
24
Y
R
P
17
15
6
G
A
E
0
4
4
E
S
R
18
17
9
J
P
S
15
18
7
H
E
U
4
20
24
Y
R
P
17
15
6
G
A
E
0
4
4
E
A
R
0
17
17
R
D
S
3
18
21
V
A
U
0
20
20
U
S
P
18
15
7
H
T
E
19
4
23
X
R
R
17
17
8
I
A
S
0
18
18
S
C= HYGEJHYGERVUHXIS.
Pentru decriptare procedm la fel, cu excepia mi = ci ki (mod 26).
Apoi alctuim i completm tabelul:
Textul cifrat C
Cheia K
Textul cifrat C
Cheia K
MK (mod 26)
Textul clar M
H
S
7
18
15
P
Y
U
24
20
4
E
G
P
6
15
17
R
E
E
4
4
0
A
J
R
9
17
18
S
H
S
7
18
15
P
Y
U
24
20
4
E
G
P
6
15
17
R
E
E
4
4
0
A
R
R
17
17
0
A
V
S
21
18
3
D
U
U
20
20
0
A
H
P
7
15
18
S
X
E
23
4
19
T
I
R
8
17
17
R
S
S
18
18
0
A
M = PERASPERAADASTRA.
Criptanaliza sistemului Vigenere const n urmtoarele: fie
c = c0 c1 ... cn-1 textul criptat cu cheia k = k0 k1 ... kp1; putem aranja acest
text sub forma unei matrice cu p linii i n / p coloane, astfel
23
c0
c1
c p 1
cp
c p +1
c2 p
c2 p +1
c2 p 1
c3 p 1
24
25
R
5
E
2
C
1
I
3
S
6
a
u
p
e
z
a
e
i
f
d
l
c
a
c
r
r
s
i
c
t
c
c
e
e
e
a
t
e
s
o
n
i
i
o
a
r
r
l
l
o
p
p
t
l
l
m
r
i
e
e
c
a
t
s
u
r
e
i
e
u
e
t
t
d
u
r
c
i
n
e
f
t
d
n
o
e
e
e
l
e
27
29
Criptograful lui
Silvester
Figura 4.2.
Criptograful lui
Silvester
32
39
actual se bazeaz pe o structur numit cifru bloc Feistel sau reea (uneori
schema) Feistel. Ea a fost elaborat de ctre Horst Feistel (30.01.1915
14.11.1990) unul dintre ntemeietorii criptografiei moderne. Dup cum
am mai menionat, un cifru bloc opereaz asupra blocurilor de text clar de
lungime n bii pentru a produce un bloc de text cifrat de aceeai lungime (n
bii). Un cifru de substituie reversibil arbitrar nu este practic pentru o
dimensiune mare a blocului, din punct de vedere al implementrii i al
performanei. n general, pentru un cifru bloc de substituie arbitrar de nbii, dimensiunea cheii este n2n. Pentru un bloc de 64 de bii, care e o
dimensiune necesar pentru a zdrnici atacurile statistice, dimensiunea
cheii este
64264 = 270 = 1021 bii.
Considernd aceste dificulti, Feistel remarc faptul c este nevoie de
o aproximare a unui cifru bloc ideal, pentru valori mari ale lui n, construit
din componente ce pot fi realizate uor.
Feistel numete o substituie general de n-bii ca fiind cifrul bloc
ideal, deoarece permite numrul maxim de criptri posibile din blocuri de
text clar n blocuri de text cifrat. 4 bii la intrare produc una din cele 16
stri de intrare posibile, care sunt asociate de cifrul cu substituie ntr-o
singur stare de ieire din cele 16 posibile, fiecare fiind reprezentat de 4
bii de text cifrat. Funciile de criptare i decriptare pot fi definite printr-un
tabel.
O structur Feistel are avantajul c cifrarea i decifrarea sunt foarte
similare sau chiar identice n unele cazuri (ceea ce ne amintete de
Enigma), cernd doar o reversie a cheii. Astfel, dimensiunea codului sau
circuitului necesar pentru a implementa un astfel de cifru este practic
njumtit.
Reelele Feistel i construcii similare combin mai multe runde de
operaii repetate cum ar fi:
amestecarea de bii (numit i permutri pe cutii P),
funcii simple ne-lineare (numite si substituii prin cutii S),
amestecul liniar (n sensul algebrei modulare) utiliznd XOR,
pentru a produce o funcie care conine cantiti mari de date, numite de
Claude Shannon confuzie i difuzie. Amestecarea de bii creeaz difuzia
iar substituia - confuzia. n criptografie confuzia se refer la a face o
relaie ntre cheie i textul cifrat ct de complex i adnc posibil, iar difuzia
este definit ca proprietatea c redundana n statisticele textului clar este
41
0000
0010
1110
0100
1011
0001
1100
1011
0010
1000
0010
0100
0010
0001
1100
0011
0001
1100
1011
0111
1010
0011
1111
1100
0000
1011
1111
1010
0101
1001
1100 1101
1101 0000
0011 1001
0110 0011
1010 0100
Fiind dat o intrare de 6 bii, ieirea de 4 bii este gsit prin selectarea
liniei, folosind cei doi bii exteriori (primul i ultimul bit), i a coloanei,
utiliznd cei patru bii interiori. De exemplu, o intrare 011011 are biii
exteriori 01 i biii interiori 1101; ieirea corespunztoare va fi
1001.
Cutiile de permutare reprezint o metod de amestecare a biilor,
utilizat pentru a permuta sau transpune biii n intrrile cutiilor S,
meninnd difuzia n timpul transpunerii.
Reele Feistel au fost introduce pentru prima dat, n domeniu
comercial, n cifrul Lucifer de la IBM care a fost conceput de nsui Feistel
i Don Coppersmith. Reele Feistel au ctigat respect atunci cnd
guvernul SUA a adoptat standardul de securitate a datelor DES. Ca i alte
42
componente ale lui DES, exista natura iterativ a construciei Feistel care
face foarte simple implementrile criptosistemului n electronic.
este de obicei XOR. Acest lucru nu este complet adevrat. Funcia poate s
fie oricare, nsa pentru ilustrare se folosete o funcie simpl i relativ
sigur, cum ar fi XOR.
n Figura 5.2 este artat cum acest model trece textul clar n text cifrat.
Este de notat reversia sub-cheii pentru decriptare, aceasta fiind singura
diferen ntre cifrare si descifrare.
Mai exist ns un tip de cifru Feistel, numit Feistel debalansat, care
utilizeaz o structur modificat n care L0 i R0 nu sunt egale n lungime.
Un exemplu de asemenea cifru este Skipjack.
Construcia Feistel este utilizat i n algoritmi care nu sunt cifruri pe
blocuri. De exemplu, Optimal Asymmetric Encryption Padding (OAEP)
44
45
47
Text cifrat
Text clar
Blocul de confuzie
Blocul de difuzie
Cheiea
16 runde
Blocul de Feed-back
Aplicarea cheii
Figura 6.1. Schema general a Versiunii 1 Lucifer
48
Aplicarea cheii
48
KR6
Blocul de difuzie
KEP
12
KR1
48
bii la cifrarea a 2 2 blocuri de text clar cu aceeai cheie vor avea loc
scurgeri de informaie despre datele cifrate). Aceast versiune a
algoritmului a fost brevetat la fel de ctre IBM i descris n patentul nr.
3796830 n martie 1974 (http://www.freepatentsonline.com/3796830.pdf).
A
Prelucrare
Aplicarea cheii
A'
16 runde
Cheia de rund
B'
Cheia de cifrare
Figura 6.4. Prelucrarea fragmentului sub-blocului A (vers. 2 Lucifer)
0
~k
1
k
k
1
~k
~k
1
~k
2
k
1
1
~k
3
1
0
~k
k
4
~k
~k
1
k
Valoarea de intrare
5 6 7 8 9 10
1 ~k 0 k k 0
~k 0 k k 1 0
k k 0 ~k ~k ~k
1 ~k 0 0 k 1
11
k
0
k
~k
12
~k
k
k
~k
13
k
0
k
k
14
k
~k
0
~k
Rezul15 tatul
~k T0
k
T1
0
T2
k
T3
T0
T1
T2
T3
54
9 10 11 12 13 14 15
S0 12 15 7 10 14 13 11 0
S1
2 14 9
3 11 0
4 12 13 1 10 6 15 8
10 21 52 56 27
26 37
47 38 18 29 60
35
43 17 63 54 34 45 12 16 51 25
42 53 20 24 59 33 15
58
36 40 11 49 31 22
50 61 28 32
2
55 46
7
62
41 23 14
13 44 48 19 57 39 30
56
14
13
11 15 12
10
15 12
14 10
13
9
11
10 11 12 13 14 15
58
60
61
Permutare aleas
Permutare
Permutare expandat
1
2,48
9
12,14
17
24,26
25
36,38
2
3
10
15
18
27
26
39
3
4
11
16
19
28
27
40
4
5,7
12
17,19
20
29,31
28
41,43
5
6,8
13
18,20
21
30,32
29
42,44
6
9
14
21
22
33
30
45
7
10
15
22
23
34
31
46
8
11,13
16
23,25
24
35,37
32
47,1
62
S j1 = Dj f (Dj1, kj),
(4)
attack). 2DES este exemplul cel mai des folosit pentru a demonstra
viabilitatea unui astfel de atac, dar valoarea sa practic este aproape de
zero.
Utilizarea a trei pai este esen
pentru a evita atacurile cu
ntlnire la mijloc care sunt eficiente mpotriva criptrii cu 2DES.
Mul
cu opera
matematic
de grup; dac ar fi fost a
cu o
opera
ca aceasta. Deoarece DES nu
este un grup, textul cifrat rezultat este mult mai greu de spart folosind
cutarea exhaustiv (fora brut): 2112 ncercri n loc de 256 ncercri.
Cea mai simpl variant de 3DES func
astfel (figura 7.4):
C = DES(k3; DES(k2; DES(k1; M))),
unde M este blocul n clar, iar k1, k2 i k3 sunt cheile DES. Aceast variant
este cunoscut sub nota
cele trei opera
efectuate cu cheile sunt criptri. Pentru a simplifica interoperabilitatea ntre
DES i 3DES, pasul din mijloc se nlocuiete de obicei cu decriptarea
(modul EDE):
C = DES(k3; DES 1(k2; DES(k1; M))),
i astfel o singur criptare DES cu cheia k poate fi reprezentat ca 3DESEDE cu cheile k1 = k2 = k3 = k. Alegerea decriptrii pentru pasul al doilea
nu afecteaz securitatea algoritmului.
65
66
Data
Anul
15 mai
1973
27 august
1974
17 martie
1975
august
1976
septembrie
1976
noiembrie
15 ianuarie
1976
1977
1983
22 ianuarie
1988
1992
30 decembrie 1993
1994
iunie
1997
iulie
1998
ianuarie
1999
25 octombrie 1999
26 noiembrie 2001
26 mai
2002
26 iulie
2004
Evenimentul
NBS public prima cerere pentru un algoritm
standard pentru criptare
NBS public a doua cerere pentru un algoritm
standard pentru criptare
DES este publicat n Federal Register3 pentru
comentarii
Se organizeaz primul workshop despre DES
Al doilea workshop despre fundamentele matematice
ale DES-ului
DES este aprobat ca un standard
DES este publicat n FIPS PUB 46
DES este reconfirmat pentru prima dat
DES este reconfirmat pentru a doua oar ca FIPS 461
Biham i Shamir public primul atac teoretic cu o
complexitate mai mic dect atacul
n for brut : criptanaliza diferenial ; metoda
cerea un numr nerealist (247) de texte alese
DES este reconfirmat pentru a treia oar ca FIPS 46-2
Prima criptanaliz experimental folosind
criptanaliza liniar (Matsui, 1994)
Proiectul DESCHALL sparge pentru prima dat n
public un mesaj criptat cu DES
EFF gsete o cheie pentru DES n 56 de ore
EFF folosind putere de calcul distribuit gsete o
cheie pentru DES n 22 de ore i 15 minute
DES este reconfirmat pentru a patra oar ca FIPS 463 cu specificaia preferinei pentru Triplu DES
AES este publicat n FIPS 197
Standardul AES devine efectiv
Retragerea standardului FIPS 46-3 (i a celor
conexe) este propus n Federal Register
Publicaie a NIST
68
69
70
Descrierea AES
n algoritmul AES rezultatul cifrat intermediar este numit vector state,
care poate fi reprezentat ca un tabel cu patru linii i patru coloane, acestea
fiind numerotate ncepnd de la 0.
Vectorul state se iniializeaz cu blocul de 128 bii de text clar (n
ordinea coloanelor, cu primii patru octei n coloana 0) i va fi modificat la
fiecare pas al calculului, prin substituii, permutri i alte transformri,
rezultnd n final blocul de 128 bii de text cifrat.
Cheia de 128 de bii este expandat n 11 tabele 4x4 notate rk(0),
rk(1),...., rk(10). Expandarea este realizat prin rotiri repetate i operaii
XOR asupra unor grupuri de bii din cheia original.
nainte de a ncepe cele 10 runde, cheia rk(0) se opereaz XOR cu
vectorul state.
Calculul principal const n execuia a 10 runde, folosind cheia rk(i) la
iteraia i. Fiecare rund const n patru pai.
Pasul 1 realizeaz o substituie octet cu octet asupra vectorului state
folosind o cutie S.
Pasul 2 rotete la stnga fiecare din cele 4 rnduri ale vectorului state:
rndul 0 este rotit cu 0 octei, rndul 1 este rotit cu 1 octet, rndul 2 este
rotit cu 2 octei i rndul 3 este rotit cu 3 octei, realiznd difuzia datelor.
Pasul 3 amestec fiecare coloan din vectorul state independent de
celelalte, prin nmulirea coloanei cu o matrice constant, multiplicarea
fiind realizat folosind cmpul finit Galois GF(28).
n fine, pasul 4 opereaz XOR cheia rk din runda respectiv cu
vectorul state.
Deoarece fiecare pas este reversibil, decriptarea se poate realiza prin
rularea algoritmului de la coad la cap, sau prin rularea algoritmului de
criptare nemodificat, dar folosind tabele diferite.
Avantajele AES relativ la implementare sunt:
- AES se poate implementa pe un procesor Pentium Pro i va
rula cu o vitez mai mare dect orice alt cifru bloc;
- AES se poate implementa pe un dispozitiv Smart Card,
folosind un spaiu redus de memorie RAM i un numr redus
de cicluri;
71
De la
1
2
3
4
5 9 13
6 10 14
7 11 15
8 12 16
la
73
1 5 9 13
6 10 14 2
11 15 3 7
16 4 8 12
99
48
202
173
183
52
4
7
9
82
83
106
208
69
81
188
205
196
96
70
224
194
231
108
186
232
112
97
225
155
140
65
124
1
130
212
253
165
199
18
131
59
209
203
239
249
163
182
12
167
129
238
50
211
200
86
120
221
62
53
248
30
161
153
119
103
201
162
147
229
35
128
44
214
0
190
170
2
64
218
19
126
79
184
58
172
55
244
37
116
181
87
152
135
137
45
123
43
125
175
38
241
195
226
26
179
237
57
251
127
143
33
236
61
220
20
10
98
109
234
46
31
102
185
17
233
13
15
242
254
250
156
54
113
24
235
27
41
32
74
67
80
146
16
95
100
34
222
73
145
141
101
28
75
72
134
105
206
191
176
75
01 00 00 00
00 01 00 00
00 00 01 00
00 00 00 01
01 01 00 00
00 00 01 01
00 00 10 10
01 01 10 10
01 01 10 11
78
1
27
94
179
228
2
54
188
125
211
4
108
99
250
189
8 16
216 171
198 151
239 197
97...
32 64 128
77 154 47
53 106 212
145 57 114
sau n binar:
00000001 00000010 00000100 00001000 00010000 00100000
01000000 10000000
00011011 00110110 01101100 11011000 10101011 01001101
10011010 00101111
01011110 10111100 01100011 11000110 10010111 00110101
01101010 11010100
10110011 01111101 11111010 11101111 11000101 10010001
00111001 01110010
11100100 11010011 10111101 01100001...
Rijndael, ca
de
selec
NSA4
finaliti, este considerat suficient de sigur pentru a fi folosit la criptarea
informa
ericane neclasificate. n iunie 2003,
guvernul SUA a decis ca AES s poat fi folosit pentru informa
clasificate. Pn la nivelul SECRET, se pot folosi toate cele trei lungimi de
cheie standardizate, 128, 192
TOP
SECRET (cel mai nalt nivel de clasificare) pot fi criptate doar cu chei pe
256 bi
Atacul cel mai realizabil mpotriva AES este ndreptat mpotriva
variantelor Rijndael cu numr redus de itera
cheie de 128 de bi
bi
bi
7, 8, respectiv 9 itera
Deoarece cutarea permanent rezult cu succese pentru criptanaliti,
pentru siguran e recomandat (B. Schneier) trecerea de la 10 la 16 runde
pentru AES-128, de la 12 la 20 pentru AES 192 i de la 14 la 28 pentru
AES-256.
4
79
80
f ( B, C , D ) = ( B C ) ( B D ) ;
h( B, C , D) = B C D;
A || B concatenarea lui A cu B;
( X 1 , X 2 , ..., X n ) (Y1 , Y2 , ..., Yn ) atribuire simultan.
n continuare o succesiune de 32 bii se va numi cuvnt iar
succesiunea d 8 bii se va numi octet. O succesiune vid este notat cu
.
n primul rnd trebuie de generat tabelele T, R i S, fiecare din care
este n funcie de cheia a. Unica misiune a cheii a n algoritm este de a
genera aceste tabele prin intermediul funciei G, construite n baza
cunoscutului algoritm al funciei hash SHA-1 care este un standard de stat
n SUA.
Algoritmul de generare a tabelei G pentru SEAL 2.0 este urmtorul
(Figura 9.1):
Intrare: un ir a de 160 bii i un ntreg i (0 i < 232).
Ieire: Ga(i) ir de 160 bii.
1. Se definesc constantele (de 32 bii):
y1 = 0x5a827999,
y2 = 0x6ed9eba1,
y3 = 0x8f1bbcdc,
y4 = 0xca62c1d6
84
2.
a.
b.
c.
d.
e.
X0 i;
for j 1 to 15 do Xj 0x00000000;
for j 16 to 79 do Xj ((Xj 3 Xj 8 Xj 14 Xj 16) << 1);
(A, B, C, D, E) (H0 , H1, H2, H3, H4) where a =H0 H1 H2 H3 H4;
(Runda 1): for j 0 to 19 do
t ((A << 5) + f(B, C, D) + E + X j + y1 );
(A, B, C, D, E) (t, A, B << 30, C, D);
f. (Runda 2): for j 20 to 39 do
t ((A << 5) + h(B, C, D) + E + X j + y2);
(A, B, C, D, E) (t, A, B << 30, C, D);
g. (Runda 3): for j 40 to 59 do
t ((A << 5) + h(B, C, D) + E + X j + y3);
(A, B, C, D, E) (t, A, B << 30, C, D);
h. (Runda 4): for j 60 to 79 do
t ((A << 5) + h(B, C, D) + E + X j + y4);
(A, B, C, D, E) (t, A, B << 30, C, D);
i. (H0 , H1, H2, H3, H4) (H0 +A, H1+B, H2+C, H3+D, H4+E) ;
Ga(i) = H0 || H1 || H2 || H3 || H4 .
central, care este operat XOR cu inversa funciei prag (threshold function)
a biilor de la mijlocul celor trei registre. Un registru este clock-at dac
bitul su de clocking (orange) este n concordan cu unul sau ambii bii de
clocking a celorlalte dou registre (Figura 9.2). n mod normal, dou din
LFSR-uri sunt clock-ate la fiecare iteraie.
i = (i + 1) mod 256;
j = (j + Si) mod 256;
T = Si; Si = Sj; Sj = T;
t = (Si + Sj) mod 256;
K = St .
Octetul K este operat XOR cu textul clar pentru a produce text cifrat
sau operat XOR cu textul cifrat pentru a obine textul clar. Criptarea este
aproape de 10 ori mai rapid dect DES-ul.
90
n(n 1)
chei, pentru ca
2
92
93
*
Exemplu. Fie p = 97. Atunci Z 97
este un grup ciclic multiplicativ de
*
ordinul n = 96. Elementul generator al grupului Z 97
este = 5. Deoarece
*
532 35 (mod 97), avem log535 = 32 n Z 97
.
Unele proprieti ale logaritmilor discrei:
log ( ) = (log + log ) mod n;
94
97
a v = T .
i
i =1
k 1
j =1
99
unei astfel de structuri care este mai mica dect altele, n ceea ce privete
numrul de elemente, conduce la pstrarea aceluiai nivel de securitate cu
dimensiuni ale cheilor mai mici dect n cazul altor criptosisteme.
Dimensiunile reduse ale cheilor i ale reprezentrilor elementelor conduc
implicit la utilizarea a mai puine resurse pentru criptarea datelor i
reducerea limii de band necesare transmiterii textelor criptate. Este
evident ca astfel de proprieti fac din curbele eliptice i criptosistemele
bazate pe aceste obiecte matematice soluii ideale de securitate a datelor
pentru mediile n care puterea de procesare i conexiunea la reea sunt
limitate. Printre aceste medii se pot enumera: telefoanele mobile, PDA-uri,
smart-carduri, carduri pc, etc.
n ultimii ani, curbele eliptice au fost folosite pentru conceperea unor
algoritmi eficieni de factorizare a ntregilor i pentru demonstrarea
primalitii. Ele au fost utilizate n construirea criptosistemelor cu chei
publice, n construirea generatoarelor de bii pseudoaleatoare i a
permutrilor neinversabile. Curbele eliptice i-au gsit aplicabilitate i n
teoria codurilor, unde au fost ntrebuinate pentru obinerea unor coduri
corectoare de erori foarte bune. Curbele eliptice au jucat un rol important i
n recenta demonstraie a Ultimei Teoreme a lui Fermat. Folosirea
sistemelor de criptare bazate pe curbe eliptice permite creterea securitii,
scznd n acelai timp overhead-ul (suprancrcarea) i timpul de laten.
Securitatea criptosistemelor bazate pe curbe eliptice const n
dificultatea calculului logaritmilor n cmpuri discrete (problema
logaritmilor discrei): date fiind A (un element dintr-un cmp finit) i Ax,
este practic imposibil s se calculeze x, atunci cnd elementele sunt
suficient de mari. i alte sisteme criptografice se bazeaz pe problema
logaritmilor discrei in Z*p: ElGamal, algoritmul de semntur Schnorr,
algoritmul de semntura Nyberg-Rueppel, DSA. n mod clasic, aceste
sisteme au fost definite n grupul multiplicativ Z*p. Ele pot fi nsa definite
la fel de bine n orice alt grup finit, cum ar fi grupul punctelor de pe o
curb eliptic.
Serviciile de securitate oferite de criptosistemele bazate pe curbe
eliptice sunt:
autentificarea entitilor
confidenialitatea
integritatea datelor
101
ne-repudierea
schimbul de chei autentificat.
Curbele eliptice sunt benefice n aplicaii n care :
puterea de calcul este limitat (cartele inteligente,
dispozitive fr fir, placi PC);
spaiul pe circuit integrat este limitat (cartele inteligente,
dispozitive fr fir, placi PC);
este necesar viteza mare de calcul;
se folosete intens semnarea i verificarea semnturii;
mesajele semnate trebuie memorate sau transmise;
limea de band este limitat (comunicaii mobile,
anumite reele de calculatoare).
Aplicaii de genul transferurilor bancare sau transmisiile de date prin
reele radio (fr fir), care necesit folosirea intensiv a semnrii digitale,
autentificrii, vitez ridicat i lrgime de band limitat, vor beneficia din
plin de avantajele oferite de implementrile bazate pe conceptul curbelor
eliptice. Sistemele bazate pe curbe eliptice se pot implementa mult mai
uor i eficient att n hardware ct i n software. Implementrile existente
la momentul actual indic faptul c aceste sisteme sunt pe departe mai
eficiente dect orice alt sistem cu chei publice. Un cip construit de
Certicom Corporation pentru realizarea operaiilor pe o curb eliptic peste
cmpul F2155 are o frecvena de ceas de 40MHz i poate efectua
aproximativ 40000 de operaii pe secund. Cipul are doar 12000 de pori i
este de 10 ori mai rapid dect DSA sau RSA pe 1024 de bii.
Definiie: Fie p (p >3) un numr prim. Curba eliptica y 2 = x 3 + ax + b
peste Zp const din mulimea soluiilor (x, y) Zp Zp ecuaiei
y 2 = x 3 + ax + b (mod p),
unde a, b Zp sunt constante astfel nct 4a3 + 27b2 0 (mod p) i dintr-un
punct O numit punct la infinit.
O curb eliptic E se poate structura ca un grup abelian finit. Legea de
compoziie (notat aditiv) este definit astfel:
Fie P, Q E, P = (x1, y1), Q = (x2 , y2).
Dac x2 = x1, y2= y1, atunci P + Q = O; altfel, P + Q = (x3, y3),
unde x3 = 2 x1 x2, y3 =(x1 x2) y1, iar
102
y2 y1
x x
2 1
= 2
dac P Q sau P = Q.
3 x1 + a
2 y1
Se mai definete P+O = O +P = P, P E. Elementul neutru este O.
103
104
Exemplu:
Fie curba eliptica E: y 2 = x3 + x + 6 pe Z11. Calculm mai nti
punctele lui E: pentru orice x Z11, se calculeaz z = x 3 + x + 6 mod11 . Se
testeaz dac z este un rest ptratic (pentru un x dat) folosind criteriul lui
Euler. Aplicnd formula de calcul a rdcinilor ptrate a unui rest ptratic
11+1
106
109
ri = ri 2 mod ri 1 , ,
xi = xi 2 qi 1 xi 1 ,
yi = yi 2 qi 1 yi 1 .
Procesul continu pn cnd obinem r = 1. n acest caz (la iteraia k)
e-1 mod n = yk. n cazul n care yk < 0 se adun n.
Pentru calcularea rapid a lui a b mod n se poate aplica urmtoarea
metod:
1. se determin reprezentarea binar a lui a;
2. fiecrei uniti din aceast reprezentare binar i corespund
operaiile de ridicare la ptrat i nmulirea cu baza
(( x 2 mod n) a ) mod n , iar pentru fiecare 0 numai nmulirea cu
baza ( x a ) mod n ; prima unitate din aceast reprezentare nu o
lum n consideraie (pe primul loc numaidect se afl 1).
i
1
x
1
y
0
r
n
3 xi = xi 2 qi 1 xi 1
k xk = xk 2 qk 1 xk 1
q
r
q2 = 1
r2
r
yi = yi 2 qi 1 yi 1 ri = ri 2 mod ri 1 q3 = 2
r3
r
qk = k 1
yk = yk 2 qk 1 yk 1
1
rk
n = 31 23 = 713.
Apoi calculeaz indicatorul Euler
(n) = (p 1)(q 1) = 30 22 = 660.
n continuare Bob alege aleator un numr e (1 < e < (n)) astfel ca
cmmdc(e, (n)) = 1, adic 1 < e < 660 i cmmdc(e, 660) = 1. Fie c alege
e = 223
Calculeaz d = 223-1 mod 660 aplicnd algoritmul Euclid extins (Tabelul
12.2).
i
x
y
r
q
1
1
0
660
2
0
1
223
2
3
1
-2
214
1
1
3
9
23
k
24
71
7
1
25
74
2
3
99
2
293
1
Stop!
Tabelul 12.2. Schema algoritmului Euclid extins pentru d = 223-1 mod 660
Aadar,
d = 223-1 mod 660 = 293 mod 660 = 293 + 660 = 367
Deci cheia privat a lui Bob este (367, 713).
Ceia sa public (223, 713) Bob o transmite lui Alice.
Alice trebuie s trimit mesajul A lui Bob cifrnd-ul cu algoritmul
RSA. Conform tabelului ASCII valoarea zecimal a lui A este 65. Deci
m = 65. Pentru aceasta Alice calculeaz
c = 65223 mod 713.
Reprezentarea binar al exponentului 223 este:
22310 = 110111112.
Aadar,
111
Durata de via a
datelor
pn n 2010
pn n 2030
ncepnd cu
2031
Lungimea cheii
RSA
1024 bii
2048 bii
3072 bii
112
Runda 1
FF (a, b, c, d, M0, 7, 0xd76aa478)
FF (d, a, b, c, M1, 12, 0xe8c7b756)
FF (c, d, a, b, M2, 17, 0x242070db)
FF (b, c, d, a, M3, 22, 0xc1bdceee)
FF (a, b, c, d, M4, 7, 0xf57c0faf)
FF (d, a, b, c, M5, 12, 0x4787c62a)
FF (c, d, a, b, M6, 17, 0xa8304613)
FF (b, c, d, a, M7, 22, 0xfd469501)
FF (a, b, c, d, M8, 7, 0x698098d8)
FF (d, a, b, c, M9, 12, 0x8b44f7af)
FF (c, d, a, b, M10, 17, 0xffff5bb1)
FF (b, c, d, a, M11, 22, 0x895cd7be)
FF (a, b, c, d, M12, 7, 0x6b901122)
FF (d, a, b, c, M13, 12, 0xfd987193)
FF (c, d, a, b, M14, 17, 0xa679438e)
FF (b, c, d, a, M15, 22, 0x49b40821)
Runda 3:
HH (a, b, c, d, M5, 4, 0xfffa3942)
HH (d, a, b, c, M8, 11, 0x8771f681)
HH (c, d, a, b, M11,16,0x6d9d6122)
HH (b, c, d, a, M14, 23, 0xfde5380c)
HH (a, b, c, d, M1, 4, 0xa4beea44)
HH (d, a, b, c, M4, 11, 0x4bdecfa9)
HH (c, d, a, b, M7, 16, 0xf6bb4b60)
HH (b, c, d, a, M10, 23, 0xbebfbc70)
HH (a, b, c, d, M13, 4, 0x289b7ec6)
HH (d, a, b, c, M0, 11, 0xeaa127fa)
HH (c, d, a, b, M3, 16, 0xd4ef3085)
HH (b, c, d, a, M6, 23, 0x04881d05)
HH (a, b, c, d, M9, 4, 0xd9d4d039)
HH (d, a, b, c, M12, 11,0xe6db99e5)
HH (c, d, a, b, M15, 16, 0x1fa27cf8)
HH (b, c, d, a, M2, 23, 0xc4ac5665)
Runda 2
GG (a, b, c, d, M1, 5, 0xf61e2562)
GG (d, a, b, c, M6, 9, 0xc040b340)
GG (c, d, a, b, M11, 14, 0x265e5a51)
GG (b, c, d, a, M0, 20, 0xe9b6c7aa)
GG (a, b, c, d, M5, 5, 0xd62f105d)
GG (d, a, b, c, M10, 9, 0x02441453)
GG (c, d, a, b, M15, 14, 0xd8a1e681)
GG (b, c, d, a, M4, 20, 0xe7d3fbc8)
GG (a, b, c, d, M9, 5, 0x21e1cde6)
GG (d, a, b, c, M14, 9, 0xc33707d6)
GG (c, d, a, b, M3, 14, 0xf4d50d87)
GG (b, c, d, a, M8, 20, 0x455a14ed)
GG (a, b, c, d, M13, 5, 0xa9e3e905)
GG (d, a, b, c, M2, 9, 0xfcefa3f8)
GG (c, d, a, b, M7, 14, 0x676f02d9)
GG (b, c, d, a, M12, 20, 0x8d2a4c8a)
Runda 4:
II (a, b, c, d, M0, 6, 0xf4292244)
II (d, a, b, c, M7, 10, 0x432aff97)
II (c, d, a, b, M14, 15, 0xab9423a7)
II (b, c, d, a, M5, 21, 0xfc93a039)
II (a, b, c, d, M12, 6, 0x655b59c3)
II (d, a, b, c, M3, 10, 0x8f0ccc92)
II (c, d, a, b, M10, 15, 0xffeff47d)
II (b, c, d, a, M1, 21, 0x85845dd1)
II (a, b, c, d, M8, 6, 0x6fa87e4f)
II (d, a, b, c, M15, 10, 0xfe2ce6e0)
II (c, d, a, b, M6, 15, 0xa3014314)
II (b, c, d, a, M13, 21, 0x4e0811a1)
II (a, b, c, d, M4, 6, 0xf7537e82)
II (d, a, b, c, M11, 10, 0xbd3af235)
II (c, d, a, b, M2, 15, 0x2ad7d2bb)
II (b, c, d, a, M9, 21, 0xeb86d391)
117
acestui fapt ele sunt nc folosite n multe aplicaii. Atacuri asupra SHA au
fost anunate pentru prima oar n dou articole non-tehnice ale lui
Schneier cu privire la atacurile asupra funciilor hash. Pentru soluii
contemporane se recomand folosirea SHA-256 sau mai puternic, i
nicidecum a MD5 sau SHA-1.
121
Exemplu.
A genereaz numrul prim p=2357 i generatorul =2 al grupului
Z*2357;
A alege cheia privat a = 1751 i calculeaz
y = a mod p = 21751 mod 2357 = 1185.
Cheia public a lui A este (p = 2357, = 2, y = 1185), iar cheia sa
privat este a = 1751.
Pentru a semna mesajul m cu H(m) =1463, A selecteaz aleator un
ntreg k =1529, calculeaz
r = k mod p = 21529 mod 2357 = 1490 i
k 1 mod (p 1) = 245;
A calculeaz s=245(146317511490) mod 2356=1777;
semntura mesajului m = 1463 este perechea (r =1490, s =1777);
Pentru verificarea semnturii, B calculeaz
v1 = 1185 1490 1490 1777 mod 2357 = 1072 ,
H(m) =1463 i
v2 =21463 mod 2357=1072;
Entitatea B accept semntura deoarece v1 = v2.
129
130
131
Variante
posibile
36
1296
46656
1679616
60466176
2176782336
78364164096
2,82110991012
1,01559951014
3,65615841015
1,31621701017
4,73838131018
Timpul de atac
<1s
<1s
<1s
17 s
26 s
6 ore
9 zile
11 luni
32 ani
1162 ani
41823 ani
1505615 ani
Unde Pn, Cn, Kn sunt biii de ordin n respecriv ai textului clar, textului
cifrat i ai cheii.
Aceste relaii sunt numite aproximri liniare. Pentru bi i alei aleator
ai textului clar, textului cifrat i ai chei probabilitatea p ca aceast relaie
s fie just este aproximativ egal 0,5. Pentru spargerea algoritmului
alegem astfel de relaii care au probailitatea respectiv semnificativ diferit
de 0,5
Mai nti criptanalistul gsete o relaie oarecare pe o singur rund
pe care ncearc s o extind asupra ntregului algoritm. Sunt elaborai
algoritmi pentru gsirea relaiilor utile de acest fel. Doi algoritmi de acest
fel au fost descrii de ctre Mitsuru Matsui, al
mai trziu .
n cifrurile bloc analiz se concentreaz n principal pe S-boxe,
deoarece acestea sunt parte a non-liniaritii cifrului. Cea mai eficient
relaie pe o rund pentru algoritmul DES utilizeaz proprietatea boxei S5.
Al doilea bit de intrare al boxei bi
ul XOR dintre to
de ieire cu probabilitatea de 3/16 (cu o deplasare de 5/16 de la 1/2). Iar
pentru DES-ul complet este cunoscut o rela
se ndeplinete cu
probabilitatea 1/2 + 224.
Criptanaliza liniar posed o caracteristic foarte util - n anumite
condi , este posibil s se reducraportul dintre (*) la o ecua
:
C j1 C j 2 ... C jn = Pl1 K l 2 ... K lq .
Aici nu sunt bi i textului clar, deci este posibil s se construiasc atacul
numai cu textul cifrat. Acest atac este cel mai practic.
Experimentele efctuate de Mitsuru Matsui cu atacul cu text clar
(calculele au fost efectuate pe HP9750 66MHz) au dat urmtoarele
rezultate:
DES cu 8 runde se sparge cu 221 texte n clar cunoscute. Matsui a
avut nevoie de 40 secunde.
DES cu 12 runde se sparge cu 233 texte n clar cunoscute. Au fost
necesare 50 de ore.
Pentru un DES 16 runde a fost necesare 247 texte n clar cunoscute.
Acest atac nu este, de obicei, practic. Cu toate acestea, metoda este
mai rapid dect cutarea exhaustiv pentru cheia de 56 bii.
Tehnologiile moderne ale calculatoarelor sunt capabile s sparg cifrul
dat mult mai rapid.
142
e a fost mai
trziu n acelai an, la conferina CRYPTO'98, n care Eli Biham, Alex
Biryukov, i Adi Shamir a introdus definiia diferen
e imposibile i
au folosit tehnica dat pentru a sparge cifrul IDEA i Skipjackc cu un
numr redus de runde. Tehnica a fost aplicat mai trziu i la multe alte
144
145
Bibliografie
1. Ben-Aroya I., Biham E., Differential Cryptanalysis of Lucifer,
Journal of Cryptology 9(1), pp. 2134, 1996
2. Biham E. and Biryukov A., An Improvement of Davies' Attack on
DES, J. Cryptology 10(3): 195206 (1997)
3. Biham E. and Shamir A., Differential Cryptanalysis of the Full 16Round DES, Advances in Cryptology, Proceedings of CRYPTO
'92, 1992, pp. 487496
4. Daemen J., Rijmen V., The Design of Rijndael: AES - The
Advanced Encryption Standard, Springer-Verlag, 2002
5. Data Encryption Standard, National Bureau of Standards, Federal
Information Standard 46, USA; 1977
6. Devours C., Kahn D., Kruh L., Mellen G., Winkel B., Cryptology:
Machines, history and Methods, Artech House, 1989
7. Devours C., Kruh L., Machine Cryptography and Modern
Cryptanalysis, Artech House, 1985
8. Diffie W. and Hellman M. E., New Directions in Cryptography.
IEEE Transactions on Information Theory, vol. IT-22, Nov. 1976,
pp. 644654
146
147
25. Rivest R. L., The RC5 encryption algorithm, In: Fast software
encryptionLeuven 1994. LNCS, vol. 1008. Berlin: Springer;
1995, pp. 8696
26. Rueppel R. A., Stream ciphers, In: G. J. Simmons, Editor,
Contemporary CryptologyThe Science of Information Integrity,
IEEE Press, New York, 1992, pp. 65134
27. Salomaa A., Criptograe cu chei publice, Ed. Militar, 1994
28. Schneier B., Applied Cryptography, Second Edition. John Wiley &
Sons, 1996
29. Schneier B., The Blowfish Encryption Algorithm. One Year Later,
Dr. Dobb's Journal, 20(9), p. 137, September 1995.
30. Scripcariu Luminia, Bazele reelelor de calculatoare, Ed. Cermi
Iai, 2005.
31. Shannon C. E., A Mathematical Theory of Communication, Bell
System Technical Journal. v. 27, n. 4, 1948, pp. 379-426
32. Shannon C. E., Communication Theory of Secrecy Systems, Bell
System Technical Journal. v. 28, n. 4, 1949, pp. 656-715
33. Shannon C. E., Predication and Entropy in Printed English, Bell
System Technical Journal. v. 30, n. 1, 1951, pp. 50-64
34. Smith, Laurence D. Substitution Ciphers. Cryptography the
Science of Secret Writing, Dover Publications. pp. 81. 1943
35. Sorkin A., LUCIFER: a cryptographic algorithm, Cryptologia,
8(1), 22-35, 1984
36. Vernam G., Cipher Printing Telegraph Systems For Secret Wire
and Radio Telegraphic Communications, Journal of the IEEE, Vol
55, pp. 109-115 (1926)
37. . ., . ., ,
, , 2009
38. .., .., (1792-1871),
, , 1973
39. ., ( ), .:
, 2005
40. ., .
, , 2003
41. .. .
. . .:
, 2009. 352 .
148