Sunteți pe pagina 1din 318

Cuprins

I CERCET

ARI OPERATIONALE 1
1 PROGRAMARE LINIAR

A 3
1.1. Folosirea ecienta a resurselor limitate . . . . . . . . . . . . . . . . . 3
1.2. Forme ale problemelor de programare liniara . . . . . . . . . . . . . 5
1.3. Algoritmul simplex (Dantzig) . . . . . . . . . . . . . . . . . . . . . . 7
1.4. Duala unei probleme de programare liniara . . . . . . . . . . . . . . 9
1.5. Problema de transport . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6. Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 PROGRAMARE DINAMIC

A 17
2.1. Forma unei probleme de optimizare secvent iala . . . . . . . . . . . . 17
2.2. Teorema de optim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3. Programare dinamica regresiva . . . . . . . . . . . . . . . . . . . . . 20
2.3.1. Ecuat iile programarii dinamice regresive . . . . . . . . . . . . 20
2.3.2. Rezolvarea problemelor de programare regresiva . . . . . . . 21
2.3.3. Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4. Programare dinamica progresiva . . . . . . . . . . . . . . . . . . . . 27
2.4.1. Ecuat iile programarii dinamice progresive . . . . . . . . . . . 27
2.4.2. Rezolvarea problemelor de programare progresiva . . . . . . 28
2.4.3. Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 TEORIA JOCURILOR 33
3.1. Not iuni introductive . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2. Principiul minimax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3. Strategii mixte si valoarea jocului . . . . . . . . . . . . . . . . . . . . 35
3.4. Teorema fundamentala a teoriei jocurilor . . . . . . . . . . . . . . . 36
3.5. Rezolvarea jocurilor matriceale . . . . . . . . . . . . . . . . . . . . . 37
3.5.1. Formularea problemei de optimizare . . . . . . . . . . . . . . 37
3.5.2. Reducerea la probleme de programare liniara . . . . . . . . . 38
iii
iv CUPRINS
3.6. Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4 TEORIA DECIZIILOR STATISTICE 45
4.1. Prezentarea problemelor . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2. Strategii Bayes si strategii minimax . . . . . . . . . . . . . . . . . . . 46
4.3. Cazul efectuarii unor experient e unice . . . . . . . . . . . . . . . . . 47
4.4. Decizii optime n caz de incertitudine . . . . . . . . . . . . . . . . . . 49
4.4.1. Criteriul lui Hurwicz . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.2. Criteriul lui Savage . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.3. Criteriul Bayes-Laplace . . . . . . . . . . . . . . . . . . . . . 50
4.4.4. Criteriul lui Wald . . . . . . . . . . . . . . . . . . . . . . . . 50
4.5. Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5 TEORIA GRAFURILOR 55
5.1. Grafuri orientate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2. Algoritmul lui Kaufmann . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3. Algoritmul lui Chen . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4. Algoritmul lui Ford . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5. Algoritmul Bellman-Kalaba . . . . . . . . . . . . . . . . . . . . . . . 59
5.6. Algoritmul lui Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.7. Arbori minimali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.7.1. Algoritmul lui Kruskal . . . . . . . . . . . . . . . . . . . . . . 62
5.8. Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6 PROBLEME DE TRANSPORT 75
6.1. Problema clasica de transport . . . . . . . . . . . . . . . . . . . . . . 75
6.1.1. Formularea problemei . . . . . . . . . . . . . . . . . . . . . . 75
6.1.2. Algoritmul de transport (adaptarea algoritmului simplex) . . 76
6.1.3. Determinarea unui program de baza init ial . . . . . . . . . . 77
6.1.4. Degenerare si ciclare . . . . . . . . . . . . . . . . . . . . . . . 78
6.1.5. Variante ale problemei de transport . . . . . . . . . . . . . . 79
6.1.6. Algoritmul simplex modicat . . . . . . . . . . . . . . . . . . 80
6.1.7. Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2. Flux maxim intr-o ret ea de transport . . . . . . . . . . . . . . . . . . 89
6.2.1. Ret ele de transport . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.2. Algoritmul Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . 90
6.2.3. Problema de transport ca problema de ux maxim . . . . . . 92
6.2.4. Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
CUPRINS v
7 TEORIA STOCURILOR 103
7.1. Formularea modelului matematic . . . . . . . . . . . . . . . . . . . . 103
7.2. Modele deterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.2.1. Model de stocare a unui produs cu cerere constanta, perioada
constanta de reaprovizionare si fara lipsa de stoc . . . . . . . 104
7.2.2. Model de stocare a unui produs cu cerere constanta, perioada
constanta de reaprovizionare si cu posibilitatea lipsei de stoc 105
7.2.3. Model de stocare a unui produs cu cerere constanta, perioada
constanta de reaprovizionare si fara lipsa de stoc, luand n
considerare si costul de achizit ie . . . . . . . . . . . . . . . . 108
7.2.4. Model de stocare a mai multor produse . . . . . . . . . . . . 109
7.3. Modele probabiliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.3.1. Model de stocare a unui produs cu cerere aleatoare, cu pierdere
n cazul surplusului de stoc, cu cheltuieli suplimentare n cazul
lipsei de stoc si cu cost de stocare neglijabil . . . . . . . . . . 110
7.3.2. Model de stocare a unui produs cu cerere aleatoare, cu cost
de stocare si cost de penalizare pentru lipsa de stoc . . . . . 114
7.4. Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8 PROBABILIT

ATI 123
8.1. Probabiliatea unui eveniment . . . . . . . . . . . . . . . . . . . . . . 123
8.1.1. Cazul nit dimensional si al evenimetelor elementare echiprob-
abile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.1.2. Probabitat i geometrice . . . . . . . . . . . . . . . . . . . . . . 124
8.1.3. Frecvent a absoluta. Frecvent a relativa . . . . . . . . . . . . . 124
8.1.4. Denit ia statistica a probabilitat ii . . . . . . . . . . . . . . . 125
8.2. Variabile aleatoare normal distribuite . . . . . . . . . . . . . . . . . . 126
8.2.1. Densitatea de probabilitate normala . . . . . . . . . . . . . . 126
8.2.2. Funct ia Laplace-Gauss . . . . . . . . . . . . . . . . . . . . . . 126
8.2.3. O formula analitica pentru calculul probabilitat ii . . . . . . . 127
8.2.4. Inegalitatea lui Cebasev (1821-1894) . . . . . . . . . . . . . . 127
8.2.5. Teorema celor 3 . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.3. Legea numerelor mari . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.4. Teorema limita centrala . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.4.1. Forma Leapunov (1857-1918) a Teoremei Limita Centrala . . 128
8.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limita Centrala129
8.5. Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.1. Testul 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.2. Testul 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.5.3. Testul 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
vi CUPRINS
8.5.4. Testul 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.5.5. Testul 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.5.6. Testul 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.6. Cateva distribut ii importante . . . . . . . . . . . . . . . . . . . . . . 134
8.6.1. Repartit ii continue . . . . . . . . . . . . . . . . . . . . . . . . 134
8.6.2. Distribut ii discrete . . . . . . . . . . . . . . . . . . . . . . . . 139
8.6.3. Calculul numeric al cuantilelor . . . . . . . . . . . . . . . . . 140
II CRIPTOLOGIE 143
9 SISTEMUL DE CIFRARE CEZAR 145
9.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
10 METODA SUBSTITUTIEI 149
10.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
10.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
10.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
11 SISTEMUL DE CIFRARE PLAYFAIR 155
11.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
11.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
11.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
12 SISTEMUL DE CIFRARE HILL 161
12.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
12.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
12.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
13 SISTEME DE CIFRARE POLIALFABETICE 167
13.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
13.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
13.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
14 METODA TRANSPOZITIEI 173
14.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
14.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
14.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
CUPRINS vii
15 SISTEME MIXTE 177
15.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
15.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
15.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
16 GENERATOARE PSEUDOALEATOARE 183
16.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
16.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
16.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
17 CALCULE

IN CORPURI GALOIS 189
17.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
17.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
17.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
18 ALGORITMUL RIJNDAEL - STANDARDUL AES 193
18.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
18.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
18.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
19 CRIPTANALIZA CIFRURILOR BLOC 203
19.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
19.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
19.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
20 LEMA CHINEZEASC

A A RESTURILOR 207
20.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
20.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
20.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
21 SISTEMUL DE CIFRARE MERKLE-HELLMAN 213
21.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
21.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
21.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
22 SISTEMUL DE CIFRARE RSA 217
22.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
22.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
22.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
viii CUPRINS
23 SISTEMUL DE CIFRARE ELGAMAL 223
23.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
23.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
23.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
24 ARITMETICA PE CURBE ELIPTICE 225
24.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
24.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
24.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
25 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE 229
25.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
25.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
25.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
26 SISTEMUL DE CIFRARE MENEZES-VANSTONE 233
26.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
26.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
26.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
27 FUNCTII DE DISPERSIE 237
27.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
27.2. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
28 SEMN

ATURA ELGAMAL 241


28.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
28.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
28.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
29 SEMN

ATURA DSA/ECDSA 245


29.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
29.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
29.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
30 PROTOCOLUL DIFFIE-HELLMAN 249
30.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
30.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
30.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
CUPRINS ix
31 PROTOCOLUL BLOM 253
31.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
31.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
31.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
32 PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR 257
32.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
32.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
32.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
33 SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT261
33.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
33.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
34 CANALE SUBLIMINALE 263
34.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
34.2. Exercit ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
34.3. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
35 PRINCIPII CRIPTOGRAFICE 267
36 ATACURI

IN MEDIUL DE IMPLEMENTARE 271
36.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
36.2. Exercit ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
37 RESURSE SOFTWARE 273
37.1. CrypTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
37.2. OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
37.3. MAPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
38 APLICATII PRACTICE 283
39 PROBLEME DE SINTEZ

A 291
39.1. Enunt uri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
39.2. Raspunsuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
BIBLIOGRAFIE 305
x CUPRINS
Partea I
CERCET

ARI
OPERATIONALE
1
Capitolul 1
PROGRAMARE LINIAR

A
1.1. Folosirea ecienta a resurselor limitate
O problema practica ce apare frecvent n activitatea de conducere economica
este urmatoarea: sunt disponibile mai multe resurse (materii prime, fort a de munca,
resurse nanciare) n cantitat i limitate. Cu ajutorul acestor resurse se pot desfasura
mai multe activitat i economice. Problema consta n determinarea nivelurilor ac-
tivitat ilor luate n considerare care sa se ncadreze n limitarile precizate ale resur-
selor si sa asigure satisfacerea optima a unui anumit criteriu.
Sa notam cu i, 1 i m, tipul resursei si cu b
i
cantitatea de resursa de tipul
i care este disponibila. Vom nota prin j, 1 j n, tipul activitat ii (procesului
de subproduct ie) si prin x
j
nivelul (necunoscut) la care urmeaza sa se desfasoare
aceasta activitate.

In sfarsit, vom nota prin a
ij
cantitatea de resursa de tipul i,
1 i m, necesara pentru producerea unei unitat i din produsul realizat n procesul
de product ie de tipul j, 1 j n, (n general, activitatea de tipul j). Presupunem
aici ca a
ij
depinde numai de tipul resursei si de tipul procesului de product ie si nu
de nivelul la care urmeaza sa se desfasoare aceasta activitate.
Cu notat iile introduse, rezulta ca putem exprima cantitatea totala de resursa de
tipul i care va efectiv utilizata n procesele de product ie:
a
i1
x
1
+a
i2
x
2
+. . . +a
in
x
n
.
Cum nu putem consuma resursa de tipul i mai mult decat cantitatea disponibila
b
i
, rezulta ca trebuie satisfacute condit iile:
n

j=1
a
ij
x
j
b
i
, 1 i m. (1.1)
3
4 PROGRAMARE LINIAR

A
Deoarece x
j
reprezinta nivelul la care se desfasoara activitatea de tipul j, rezulta
ca trebuie sa e de asemenea satisfacute condit iile:
x
j
0, 1 j n. (1.2)
Inegalitat ile 1.1 sunt numite restrict iile problemei, iar 1.2 sunt numite condit iile
de nenegativitate ale problemei. Sistemul de inegalitat i liniare poate avea o innitate
de solut ii, o solut ie unica sau nici o solut ie (sistem incompatibil). Cazul cel mai
frecvent pentru problemele practice corect puse este cazul n care sistemul 1.1, 1.2 are
o innitate de solut ii. Prin urmare este posibil sa organizam procesele de product ie
pentru fabricarea sortimentelor de tipul j, 1 j n, ntr-o innitate de moduri,
respectand condit iile 1.1 de folosire a resurselor limitate.
Adoptarea unei variante de plan se face pe baza unor criterii economice, cum ar
: venitul realizat, beneciul realizat, cheltuielile de product ie, product ia zica, con-
sumurile de materii prime si materiale, consumurile de energie etc. Vom presupune
n cele ce urmeaza ca putem formula un singur criteriu pe baza caruia adoptam
decizia. Mai mult, vom presupune ca acest criteriu este reprezentat din punct de
vedere matematic de o funct ie liniara. Un exemplu de astfel de criteriu se obt ine n
modul urmator. Daca notam prin c
j
beneciul unitar adus de activitatea de tipul
j, 1 j n, atunci este clar ca beneciul total este:
n

j=1
c
j
x
j
. (1.3)
Problema care se pune este de a aa solut iile sistemului de inegalitat i liniare
1.1, 1.2 care asigura obt inerea valorii maxime pentru beneciul total 1.3. Cu alte
cuvinte, din punct de vedere matematic se cere rezolvarea problemei:
_

_
sup
n

j=1
c
j
x
j
n

j=1
a
ij
x
j
b
i
, 1 i m,
x
j
0, 1 j n,
care este numita problema de programare liniara sau program liniar. Funct ia liniara
ce se doreste maximizata se numeste funct ie obiectiv sau funct ia criteriu sau, nca,
funct ia de ecient a a problemei.
Problema ment ionata poate rezolvata cu ajutorul algoritmului simplex sau
simplex dual. Acesta este prezentat pe largn literatura de specialitate (Zidaroiu). O
serie de produse soft ca MATLAB sau MAPLE au rutine specializate de rezolvare
a problemelor de optimizare cu ajutorul acestor metode. Din acest motiv, omitem
prezentarea rezolvarii complete a problemelor prin aceste metode.
FORME ALE PROBLEMELOR DE PROGRAMARE LINIAR

A 5
1.2. Forme ale problemelor de programare liniara
Forma standard a unei probleme de programare liniara este:
_
_
_
min(max)c

x
Ax = b
x 0
Remarcam ca o problema de maxim se poate transforma ntr-o problema de minim
prin folosirea formulei max(f) = min(f).
Forma canonica a unei probleme de programare liniara este:
_
_
_
minc

x
Ax b
x 0
sau
_
_
_
max c

x
Ax b
x 0
Sintaxa MAPLE de scriere a formei canonice pentru problema de maxim este:
> standardize(mult ime de restrict ii);
sau
> convert(mult ime de restrict ii, stdle);
O restrict ie a unei probleme de programare liniara este numita concordanta daca
este o inegalitate de tipul pentru problema de minim si o inegalitate de tipul
pentru problema de maxim.
Forma mixta a unei probleme de programare liniara cont ine restrict ii si sub forma
de ecuat ii.
Deoarece prin operat ii matematice orice problema de programare liniara se poate
aduce n forma canonica a problemei, pentru cazul de minim vom lucra numai cu
astfel de probleme, adica cu probleme n forma canonica.
Denit ia 1.2.1. Fie problema de programare liniara n forma standard atunci
mult imea programelor este denita ca:
P = {x R
n
|Ax = b, x 0}.
Un punct de minim global al funct iei obiectiv z = c

x pe mult imea programelor


P este numit solut ie optima, iar mult imea programelor optime ale problemei va
notata cu:
P

= {x P| min
xP
c

x = c

x}.
6 PROGRAMARE LINIAR

A
Denim solut ia de baza a sistemului Ax = b ca o solut ie x R
n
careia compo-
nentelor sale nenule i corespund coloane liniar independente. Daca B este o baza
formata cu coloanele a
j
1
, . . . , a
j
m
ale matricei A atunci sistemul de ecuat ii Ax = b
se poate scrie n forma explicita:
x
B
= B
1
b B
1
Rx
R
n care Reste matricea obt inuta din Aprin eliminarea coloanelor j
1
, . . . , j
m
. Notand:
B
1
b =x
B
, B
1
a
j
= y
B
j
, 1 j n,
rezulta ca:
x
B
=x
B

jR
y
B
j
x
j
sau
x
B
i
=x
B
i

jR
y
B
ij
x
j
, i B
unde B = {j
1
, . . . , j
m
} si R = {1, . . . , n} B. Solut ia de baza corespunzatoare bazei
B este x
B
=x
B
si x
R
= 0. Este clar ca aceasta solut ie de baza este un program daca
este ndeplinita condit ia:
B
1
b 0.
O baza B care verica inegalitatea de mai sus se numeste baza primal admisibila.

In problemele practice o astfel de baza se determina prin metoda bazei articiale.


De foarte multe ori nsa, aceasta este disponibila direct, baza primal admisibila ind
matricea unitate.
Avem urmatoarea teorema numita teorema fundamentala a programarii liniare.
Teorema 1.2.1. i) Daca problema de programare liniara:
_
_
_
min(max)c

x
Ax = b
x 0
are un program optim, atunci ea are un program de baza.
ii) Daca problema de mai sus are un program optim, atunci ea are un program
optim de baza.
Algoritmul fundamental pentru rezolvarea problemelor de programare liniara
ment ionate se numeste algoritmul simplex primal si a fost elaborat de George Dantzig
n anul 1951. Algoritmul este descris n orice carte fundamentala de programare
liniara si este implementat n majoritatea softurilor matematice de prelucrare de
date.
ALGORITMUL SIMPLEX (DANTZIG) 7
1.3. Algoritmul simplex (Dantzig)
Pentru rezolvarea problemelor de programare liniara s-a impus algoritmul simplex
datorat lui G.B. Dantzig (1951). Aceasta metoda ne permite sa exploram n mod
sistematic mult imea programelor de baza a unei probleme de programare liniara
n forma standard prin trecerea de la un program de baza la un program de baza
vecin, care este cel put in la fel de bun ca cel precedent. Metoda furnizeaza, de
asemenea, criterii pentru punerea n evident a a situat iei cand problema are optim
innit precum si a cazului n care mult imea programelor este vida.
PASUL 0. Se pune problema de optimizat n forma standard:
_
_
_
inf c
T
x
Ax = b,
x 0.
(Daca problema are restrict ii de forma unor inegalitat i, atunci se transforma mai
ntai toate inegalitat ile n inegalitat i de tipul ; scazandu-se variabilele articiale y,
problema de maxim se va transforma n problema de minim etc.). A este o matrice
cu m linii si n coloane pentru care avem rang(A) = m < n. Vom nota cu z funct ia
obiectiv adica z = c
T
x.
PASUL 1. Se determina o baza B primal admisibila (e este disponibila di-
rect e se determina cu ajutorul bazei articiale prin metoda celor doua faze) si se
calculeaza:
_

_
x
B
= B
1
b,
z
B
= c
T
B
x
B
,
y
B
j
= B
1
a
j
, 1 j n,
z
B
j
c
j
, 1 j n.
Aceste valori se trec n tabelul simplex (tabelul 1.1) dupa care trecem la pasul
urmator.
Vom nota cu B mult imea indicilor j care determina matricea B si prin R =
{1, . . . , n} B. Tabelul simplex init ial are forma:
TABELUL 1.1
c
1
. . . c
j
. . . c
n
V.B. V.V.B. x
1
. . . x
j
. . . x
n
c
B
x
B
x
B
y
B
1
. . . y
B
j
. . . y
B
n
z z
B
z
B
1
c
1
. . . z
B
j
c
j
. . . z
B
n
c
n
8 PROGRAMARE LINIAR

A
PASUL 2. Daca z
B
j
c
j
0 j R, ne oprim (STOP): x
B
este program optim.

In caz contrar se determina mult imea (nevida):


R
+
= {j R|z
B
j
c
j
> 0}
si se trece la pasul urmator.
PASUL 3. Daca exista j R
+
pentru care y
B
j
0 ne oprim (STOP): problema
are optim innit.

In caz contrar, determinam k R
+
cu criteriul de intrare n baza:
max
j
(z
B
j
c
j
) = z
B
k
c
k
si r B
+
= {i B|y
B
ik
> 0} cu criteriul de iesire din baz a:
min
iB
+
(
x
B
i
y
B
ik
) =
x
B
r
y
B
rk
Elementul y
B
rk
se numeste pivot. Se trece la pasul urmator.
PASUL 4. Se considera baza

B
obt inuta din B prin nlocuirea coloanei a
r
cu
coloana a
k
, si se calculeaza valorile (prin formula de schimbare a bazei adica regula de
transformare a tabelului simplex) x

B
, z

B
, y

B
j
, z

B
j
c
j
si se trece la Pasul 2 nlocuind
peste tot baza B cu baza

B
.
Calculele pot simplicate prin folosirea regulilor de transformare a tabelului
simplex:
i) elementele situate pe linia pivotului se mpart la pivot;
ii) elementele situate pe coloana pivotului devin zero, cu except ia pivotului care
devine 1;
iii) celelalte elemente se transforma dupa regula dreptunghiului: daca ne ima-
ginam dreptunghiul a carui diagonala este determinata de elementul y
B
ij
care trebuie
transformat si pivotul y
B
rk
, atunci noua valoare

y
B
ij
se obt ine mpart ind la pivot
diferent a dintre produsul elementelor y
B
ij
y
B
rk
situate pe diagonala considerata mai
sus si produsul y
B
rj
y
B
ik
situat pe cealalta diagonala a dreptunghiului.
Observat ii. i) Daca la sfarsitul algoritmului z
B
j
c
j
< 0 j R atunci solut ia
problemei este unica.
ii) Este posibil ca n cadrul algoritmului simplex sa apara fenomenul de ciclare
(prin trecerea de la o baza la alta sa ajung ntr-o baza deja procesata). Exista mai
multe tehnici de evitare a acestui fenomen asupra carora nu ne vom opri nsa.
iii) Se poate da si o interpretare geometrica a solut iilor unei probleme de progra-
mare liniara n cazul bidimensional. Domeniul de admisibilitate poate :
DUALA UNEI PROBLEME DE PROGRAMARE LINIAR

A 9
-un poligon convex, iar cel put in unul dintre varfurile sale este solut ie a problemei
de optimizare. Se poate ntampla ca solut ia sa e o latura a poligonului convex ce
determina domeniul de denit ie, n acest caz avem mai multe solut ii;
-un domeniu nemarginit, caz n care problema are optim innit;
-mult imea vida, caz n care problema de optimizare nu are solut ie.
1.4. Duala unei probleme de programare liniara
Avand o problema de programare liniara, problema construita dupa urmatoarele
reguli se numeste problema duala:
a) termenii liberi din problema primala devin coecient i ai funct iei obiectiv n
problema duala;
b) coecient ii funct iei obiectiv din problema primala devin termeni liberi n prob-
lema duala;
c) o problema de maximizare (minimizare) devine o problema de minimizare
(maximizare);
d) matricea coecient ilor sistemului de restrict ii din problema duala este trans-
pusa matricei coecient ilor sistemului de restrict ii primale;
e) variabile duale (primale) asociate unor restrict ii primale (duale) concordante
sunt supuse condit iilor de nenegativitate;
f) variabile primale (duale) asociate unor restrict ii duale (primale) care sunt
restrict ii neconcordante sunt supuse condit iei de nepozitivitate;
g) variabile duale (primale) asociate unor restrict ii primale (duale) care sunt
ecuat ii nu sunt supuse nici unei condit ii privind semnul.
Remarcam ca duala unei probleme n forma canonica este tot n forma canonica.
Enunt am n continuare teorema fundamentala a dualitat ii:
Teorema 1.4.1. Fiind dat cuplul de probleme duale:
_
_
_
minc

x
Ax b
x 0
si
_
_
_
max b

y
A

y c
y 0
una si numai una din armat iile urmatoare este adevarata:
a) ambele probleme au programe.

In acest caz, ambele probleme au programe
optime si valorile optime ale funct iilor obiectiv coincid;
10 PROGRAMARE LINIAR

A
b) una din probleme are programe, iar cealalt a nu are.

In acest caz, problema
care nu are programe are optim innit;
c) nici una din probleme nu are programe.
Exista un algoritm numit algoritmul simplex dual care rezolva problema primala
prin intermediul problemei duale. Acelasi lucru putem sa-l armam si despre algo-
ritmul simplex primal care rezolva problema primala, dupa care pune n evident a
solut ia problemei duale. Programul MAPLE are o procedura de construct ie a dualei.
Sintaxa acesteia este:
> dual(funct ia liniara, mult ime de restrict ii, nume variabila duala);
1.5. Problema de transport
Sa presupunem ca exista m centre de aprovizionare (depozite) si n centre de
consum (beneciari). Un produs omogen este depozitat n cantitat ile a
i
, 1 i m,
n centrele de aprovizionare si este cerut n cantitat ile b
j
, 1 j n, la beneciari.
Vom presupune ca sunt ndeplinite condit iile:
_
a
i
0, 1 i m, b
j
0, 1 j n,
a
1
+. . . +a
m
= b
1
+. . . +b
n
.
(1.4)
Cu alte cuvinte, presupunem ca disponibilitat ile si cererile sunt nenegative, iar
disponibilitatea egaleaza cererea totala. O astfel de problema de transport se numes-
te problem a de transport echilibrata.
Problema consta n organizarea transportului de la depozite la beneciari astfel
ncat sa se obt ina cheltuieli minime de transport.
Sa notam cu x
ij
cantitatea (necunoscuta) care urmeaza sa e transportata de la
depozitul i la beneciarul j. Cantitatea ce se transporta de la depozitul i la tot i
beneciarii trebuie sa egaleze disponibilitatea de la depozitul respectiv, adica:
n

j=1
x
ij
= a
i
, 1 i m. (1.5)
Analog, cererea totala la beneciarul j trebuie sa e egala cu cantitatea care se
transporta de la toate depozitele la acest beneciar, adica:
m

i=1
x
ij
= b
j
, 1 j n. (1.6)
Evident, cantitat ile transportate sunt nenegative, adica:
x
ij
0, 1 i m, 1 j n. (1.7)
APLICAT II 11
Sistemul de inegalitat i liniare 1.5-1.7 are n condit iile 1.4 o innitate de solut ii.
Ca si n cazul precedent, pentru adoptarea unui plan de transport vom introduce
un nou criteriu economic. Sa notam pentru aceasta prin c
ij
costul transportului
unei unitat i din produsul considerat de la depozitul i la beneciarul j; evident, si n
acest caz presupunem ca acest cost unitar de transport nu depinde de cantitatea ce
urmeaza sa e transportata din i n j. Este clar ca cheltuielile de transport sunt:
m

i=1
n

j=1
c
ij
x
ij
.
Problema consta n determinarea solut iilor sistemului de ecuat ii si inegalitat i
1.5-1.7 pentru care costul total de transport este minim, adica:
_

_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

j=1
x
ij
= a
i
, 1 i m,
m

i=1
x
ij
= b
j
, 1 j n,
x
ij
0, 1 i m, 1 j n.
1.6. Aplicat ii
Exercit iul 1.6.1. Sa se scrie duala problemei de programare liniara:
_

_
min(2x
1
+ 3x
2
+x
3
),
x
1
+x
2
+ 3x
4
3,
2x
2
+ 5x
3
+ 4x
4
= 5,
x
1
+x
3
2,
x
1
, x
2
0, x
3
arbitrar, x
4
0.
Gasit i solut ia optima a problemei primale.
Raspuns: Respectand regulile de formare a problemei duale obt inem:
_

_
max(3u
1
+ 5u
2
2u
3
),
u
1
+u
3
2,
u
1
+ 2u
2
3,
5u
2
+u
3
= 1,
3u
1
+ 4u
2
0,
u
1
0, u
2
arbitrar, u
3
0.
12 PROGRAMARE LINIAR

A
Solut ia problemei primale se poate gasi cu metoda simplex primal sau dual. Sin-
taxa MAPLE pentru rezolvarea acestei probleme este:
> with(simplex) :
> obiectiv := 2 x
1
+ 3 x
2
+x
3
;
> restrictii := {x
1
+x
2
+3x
4
>= 3, 2x
2
+5x
3
+4x
4
= 5, x
1
+x
3
<= 2};
> minimize(obiectiv, restrictii union {x
1
>= 0, x
2
>= 0, x
4
<= 0});
Solut ia furnizata de procedura ind:
x
1
= 0, x
2
= 15/2, x
3
= 2, x
4
= 0,
valoarea funct iei obiectiv ind 41/2.
Exercit iul 1.6.2. Rezolvat i urmatoarea problema de programare liniara pre-
cum si duala acesteia:
_

_
min(2x
1
+ 3x
2
+x
3
),
x
1
+x
2
+ 3x
4
3,
2x
2
+ 5x
3
+ 4x
4
= 5,
x
1
+x
3
2,
x
1
, x
2
0, x
3
arbitrar, x
4
0.
unde este un parametru real.
Exercit iul 1.6.3. Rezolvat i urmatoarea problema de programare liniara pre-
cum si duala acesteia:
_

_
min(2x
1
+ 3x
2
+x
3
),
x
1
+x
2
+ 3x
4
3 +,
2x
2
+ 5x
3
+ 4x
4
= 5 ,
x
1
+x
3
2 + 2,
x
1
, x
2
0, x
3
arbitrar, x
4
0.
este un parametru real.
Raspuns. Execit iile 1.6.2-1.6.3 se pot rezolva e prin aplicarea metodei simplex
e prin metoda postoptimizarii considerand n tabelul simplex, obt inut n problema
1.6.1., = 0.
Exercit iul 1.6.4. Sa se rezolve cu algoritmul simplex problema de programare
liniara:
_

_
max(2x
1
+x
2
),
x
1
x
2
4,
3x
1
x
2
18,
x
1
+ 2x
2
6,
x
1
, x
2
0.
APLICAT II 13
Exercit iul 1.6.5. Sa se minimizeze expresia 2x
1
+3x
2
cu sistemul de restrict ii:
_

_
x
1
x
2
+x
3
= 1,
x
1
+x
2
x
4
= 1,
x
1
2x
2
+x
5
= 1,
2x
1
+x
3
x
4
= 2,
x
i
0, i = 1, . . . , 5.
Raspuns.

In urma aplicarii algoritmului simplex primal obt inem solut ia x

1
=
1, x

2
= 0, x

3
= 0, x

4
= 0, x

5
= 0, iar valoarea minima a funct iei obiectiv z

= 2.
Exercit iul 1.6.6. Rezolvat i problema urmatoare:
_

_
min(x
1
+ 6x
2
),
2x
1
+x
2
3,
x
1
+ 3x
2
4,
x
1
, x
2
0.
Raspuns. Vom rezolva problema grac. Se va reprezenta ntr-un sistem de axe
de coordonate domeniul de admisibilitate. Pe acelasi grac reprezentam si ecuat ia
x
1
+ 6x
2
= 0. Obt inem gura 1.1.
Figura 1.1: Domeniul de admisibilitate si funct ia obiectiv.
Vom duce drepte paralele cu x
2
=
1
6
x
1
pana se intersecteaza cu domeniul
14 PROGRAMARE LINIAR

A
de admisibilitate. Prima dreapta care realizeaza aceasta intersect ie ne furnizeaza
minimul funct iei obiectiv z
min
= 4.
Solut ia optima este x

1
= 4, x

2
= 0.
Exercit iul 1.6.7. Gasit i minimul funct iei 2x
1
+ 3x
2
+x
3
cu restrict iile:
_

_
x
1
+x
2
+ 3x
4
3,
2x
2
+ 5x
3
+ 4x
4
= 5,
x
1
+x
3
2,
x
1
, x
2
, x
3
, x
4
{0, 1}.
Exercit iul 1.6.8. Sa se rezolve problema de programare liniara n forma stan-
dard:
_

_
min(2x
1
+ 3x
2
),
x
1
x
2
+x
3
= 1,
x
1
+x
2
x
4
= 1,
x
1
2x
2
+x
5
= 1,
2x
1
+x
3
x
4
= 2,
x
i
0, 1 i 5.
Raspuns. Pentru rezolvarea problemei prin metoda simplex primal vom rezolva
mai ntai problema:
_

_
min(x
6
+x
7
+x
8
),
x
1
x
2
+x
3
+x
6
= 1,
x
1
+x
2
x
4
+x
7
= 1,
x
1
2x
2
+x
5
= 1,
2x
1
+x
3
x
4
+x
8
= 2,
x
i
0, 1 i 8.
(s-au introdus variabilele ecart x
6
, x
7
, x
8
n restrict iile problemei init iale, cu except ia
celei de a treia restrict ie, unde variabia x
5
este asociata unui vector unitar al ma-
tricei coecient ilor). Baza primal admisibila este formata din coloanele matricei A
corespunzatoare variabilelor x
6
, x
7
, x
5
, x
8
. Tabelul simplex asociat 1.2 este:
TABELUL 1.2
V.B. V.V.B. x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
6
1 1 1 1 0 0 1 0 0
x
7
1 1 1 0 1 0 0 1 0
x
5
1 1 2 0 0 1 0 0 0
x
8
2 2 0 1 1 0 0 0 1
4 4 0 2 2 0 0 0 0
APLICAT II 15
Vectorul care intra n baza este evident a
1
conform criteriului de intrare n
baza. Dupa cum ne indica criteriul de iesire din baza, oricare dintre variabilele
de baza poate parasi baza: pentru a face o alegere, vom elimina din baza vectorul
coespunzator variabilei x
6
, adica a
6
. Obt inem deci tabelul simplex 1.3:
TABELUL 1.3
V.B. V.V.B. x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
1
1 1 1 1 0 0 1 0 0
x
7
0 0 2 1 1 0 1 1 0
x
5
0 0 1 1 0 1 1 0 0
x
8
0 0 2 1 1 0 2 0 1
0 0 4 2 2 0 4 0 0
Se observa ca tabelul simplex 1.3 obt inut ne arata ca valoarea funct iei obiectiv
este nula. Toate variabilele articiale sunt nule, dar x
7
si x
8
sunt nca variabile de
baza. Se vede usor ca variabila x
7
poate eliminata din baza si nlocuita cu x
2
,
deoarece pivotul y
B
72
= 2 este nenul. Dupa calcule se obt ine tabelul simplex 1.4:
TABELUL 1.4
V.B. V.V.B. x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
1
1 1 0 1/2 1/2 0 1/2 1/2 0
x
2
0 0 1 1/2 1/2 0 1/2 1/2 0
x
5
0 0 0 3/2 1/2 1 1/2 1/2 0
x
8
0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 1 1 0
Variabila articiala x
8
nu mai poate eliminata dintre variabilele de baza, deoa-
rece tot i coecient ii y
8j
, 1 j 5, sunt egali cu zero. Acest fapt ne arata ca
ecuat ia a patra din problema init iala este o consecint a a celorlalte patru ecuat ii
(ecuat ia a patra este suma primelor doua ecuat ii, situat ie ce putea observata de
la nceput).

In acest caz, ecuat ia a patra poate neglijata si deci linia a patra
a tabelului simplex poate eliminata; partea ramasa a tabelului simplex nu mai
cont ine variabile articiale de baza si, ca urmare, prima faza este terminata.
Vom trece acum la faza a doua a metodei, adica la rezolvarea problemei init iale,
folosind drept baza init iala ultima baza obt inuta din tabelul 1.4, dupa eliminarea
ultimei linii.
16 PROGRAMARE LINIAR

A
Tabelul simplex corespunzator este tabelul 1.5:
TABELUL 1.5
V.B. V.V.B. x
1
x
2
x
3
x
4
x
5
x
1
1 1 0 1/2 1/2 0
x
2
0 0 1 1/2 1/2 0
x
5
0 0 0 3/2 1/2 1
z 2 0 0 1/2 5/2 0
Deoarece z
j
c
j
0 pentru tot i j, 1 j 5, rezulta ca am obt inut programul
optim de baza (degenerat): x

1
= 1, x

2
= 0, x

3
= 0, x

4
= 0, x

5
= 0, iar valoarea
optima a funct iei obiectiv este z

= 2.
Capitolul 2
PROGRAMARE DINAMIC

A
2.1. Forma unei probleme de optimizare secvent iala
Programarea dinamica este o metoda de rezolvare a unei clase de probleme,
al caror model matematic prezinta caracteristicile unui sistem secvent ial.

Intr-o
astfel de problema, la ecare faza t T, cu T R, se alege o solut ie (decizie,
strategie, politica) x
t
dintr-o mult ime de solut ii admisibile X
t
, X
t
M
n
t
, unde
M R, iar n
t
N

, putandu-se de ecare data masura ecient a (sau utilitatea)


u
t
a solut iei alese. Problema de optimizare consta n determinarea solut iei globale
x = (x
t
)
tT
care optimizeaza o funct ie de ecient a globala f care este denita cu
ajutorul funct iilor de ecient a part iala u
t
, t T. Evolut ia sistemului este descrisa
si de familia parametrilor de stare (s
t
)
tT
a caror lege de variat ie este cunoscuta
si dependenta de deciziile alese (daca legea este determinista avem o problema de
programare dinamica determinista, iar daca legea este probabilista avem o problema
de programare stochastica). Sa notam cu S
t
mult imea starilor la momentul t.
Denit ia 2.1.1. (Caracteristicile unui sistem secvent ial.) O funct ie s : T S
t
cu s(t) = s
t
t T, s
t
S
t
se numeste traiectoria, corespunzatoare deciziei globale
x = (x
t
)
tT
, a sistemului secvent ial. Aceasta descrie starea sistemului de-a lungul
ntregii perioade de timp T, n condit iile alegerii deciziei x.
Avem n general:
_
_
_
x
t
= x
t
(s
t
)
u
t
i
: S
t
i1
X
t
i
R, u
t
i
= u
t
i
(s
t
i
, x
t
i
)

t
i
: S
t
i1
X
t
i
S
t
i
,
t
i
=
t
i
(s
t
i1
, x
t
i
).
Traiectoria s depinde de starea init iala s
t
0
= s
0
S
t
0
, t
0
ind momentul init ial.
17
18 PROGRAMARE DINAMIC

A
Denit ia 2.1.2. Se numeste traiectorie optima traiectoria s

corespunzatoare
unei decizii optime x

care optimizeaza funct ia obiectiv.


Tehnica programarii dinamice consta n determinarea solut iilor optime globale si
a valorii optime a funct iei obiectiv, prin rezolvarea secvent iala a unor probleme de
optimizare asociate problemei init iale, dar mult mai simple decat aceasta deoarece
optimul se calculeaza dupa o singura variabila. Bellman a formulat n 1957 prin-
cipiul optimalitat ii: o condit ie necesara ca o traiectorie s

sa e optima este ca
t
1
, t
2
T, t
1
< t
2
, s

|
[t
1
,t
2
]
sa e traiectorie optima a sistemului restrict ionat
la intervalul [t
1
, t
2
], cand s
t
1
= s

(t
1
) adica orice substrategie a unei strategii optime
este ea nsasi optima.
Pentru a xa ideile, n cele ce urmeaza, vom presupune ca avem de-a face cu o
problema de minimizare, toate considerat iile ind valabile fara nici un fel de restrict ii
si pentru problema de maxim. Forma generala a unei probleme de optimizare (mini-
mizare) ce urmeaza a rezolvata prin aceasta tehnica este urmatoarea:
_
_
_
min{f(u
1
(s
0
, x
1
), . . . , u
n
(s
n1
, x
n
))|x
1
X
1
(s
0
), . . . , x
n
X
n
(s
n1
)}
s
i
=
i
(s
i1
, x
i
), i = 1, n
s
i
S
i
, i = 1, n.
Problema de optimizare astfel denita se numeste efectiv decompozabil a, adica
vectorul de stare s
i
, la iesirea din faza i, nu depinde decat de vectorul de stare s
i1
si de decizia x
i
, luata n faza i. Funct iile u
i
sunt funct iile de ecient a la faza i cand
se ia decizia x
i
stiind ca vectorul de stare este s
i
.
Toate elementele descriptive ale unei probleme de optimizare sunt determinate
de o decizie aleasa si de starea init iala s
0
:
s
1
=
1
(s
0
, x
1
) =

1
(s
0
, x
1
), u
1
(s
0
, x
1
) =

u
1
(s
0
, x
1
), x
1
X
1
(s
0
) =

X1
(s
0
)
s
2
=
2
(
1
(s
0
, x
1
), x
2
) =

2
(s
0
, x
1
, x
2
), u
2
(s
1
, x
2
),
u
2
(
1
(s
0
, x
1
), x
2
) =

u
2
(s
0
, x
1
, x
2
), x
2
X
2
(
1
(s
0
, x
1
)) =

X2
(s
0
, x
1
)
...........................................
s
i
=
i
(
i1
(s
0
, x
1
, x
2
, . . . , x
i1
), x
i
) =

i
(s
0
, x
1
, x
2
, . . . , x
i
),
u
i
(s
i1
, x
i
) = u
i
(

i1
(s
0
, x
1
, x
2
, . . . , ux
i1
), x
i
) =

u
i
(s
0
, x
1
, . . . , x
i
),
x
i
X
i
(

i1
(s
0
, x
1
, x
2
, . . . , x
i1
))
=

Xi
(s
0
, x
1
, . . . , x
i1
) pentru i = 2, n.
TEOREMA DE OPTIM 19
Funct ia obiectiv se scrie:
f(

u
1
(s
0
, x
1
),

u
2
(s
0
, x
1
, x
2
), . . . ,

u
n
(s
0
, x
1
, . . . , x
n
)) =

f (s
0
, x
1
, . . . , x
n
).
Denit ia 2.1.3. O solut ie (decizie) x

(s
0
) = (x

1
(s
0
), . . . , x

n
(s
0
)) admisibila se
spune ca este optima relativ la starea init iala s
0
pentru o problema de optimizare
sub forma secvent iala, daca:

f (s
0
, x

1
(s
0
), . . . , x

n
(s
0
)) = min{

f (s
0
, x

1
, . . . , x

n
)|x
1

X1
(s
0
), . . . ,
. . . , x
i

Xi
(s
0
, x
1
, . . . , x
i1
), i = 1, n}.
Rezolvarea unei probleme de optimizare pusa n forma secvent iala consta n
gasirea unei solut ii x

(s
0
) = (x

1
(s
0
), . . . , x

n
(s
0
)), n funct ie de starea init iala s
0
,
astfel ncat funct ia de ecient a globala f sa e optima.
2.2. Teorema de optim
Pentru a formula teorema de optim trebuie sa denim mai ntai not iunea de
funct ie decompozabila.

In esent a, acest lucru nseamna ca problema se poate de-
scompune ntr-un numar de faze.
Denit ia 2.2.1. O funct ie f : D = S X Y R, unde X, Y si S sunt
mult imi nevide se numeste decompozabila daca exista funct iile u, v : D R, u ind
constanta n raport cu variabila y Y (exista u : SX R astfel ncat u (s, x, y) =
u(s, x), (s, x, y) D) si o funct ie F :u (D)v(D) R, F(, .) monoton crescatoare
pentru ecare u (D), astfel ncat f(s, x, y) = F(u(s, x), v(s, x, y)) (s, x, y) D.
Teorema 2.2.1. ( Teorema de optim). Daca F este decompozabila si daca exista
pentru orice s S :
min
x,y
f(s, x, y); min
x
F(u(s, x), min
y
v(s, x, y)); min
x
min
y
f(s, x, y),
atunci pentru orice s S avem:
min
x,y
f(s, x, y) = min
x
F(u(s, x), min
y
v(s, x, y)).
20 PROGRAMARE DINAMIC

A
2.3. Programare dinamica regresiva
2.3.1. Ecuat iile programarii dinamice regresive
Pentru a pune sub forma unui algoritm problema secvent iala trebuie sa existe o
anume legatura de tip recursiv ntre funct iile de ecient a trunchiate ale procesului
la fazele i:
f
ni+1
(u
i
(s
i1
, x
i
), . . . , u
n
(s
n1
, x
n
)) =
= F
ni+1
(u
i
(s
i1
, x
i
), f
ni
(u
i+1
(s
i
, x
i+1
), . . . , u
n
(s
n1
, x
n
)),
unde prin f
ni+1
s-a notat funct ia de ecient a asociata procesului de decizie trun-
chiat la fazele i, i + 1, . . . , n pentru i = 1, 2, . . . , n 1, cu f
1
(u
n
) = u
n
si f
n
= f.
Aceasta proprietate se numeste proprietatea de decompozabilitate a funct iei obiectiv.
Ecuat ia se rescrie:

f
ni+1
(s
i1
, x
i
, . . . , x
n
) = F
ni+1
(u
i
(s
i1
, x
i
),

f
ni
(
i
(s
i1
, x
i
),
x
i+1
, . . . , x
n
)),
i = 1, n 1, s
i1
S
i1
, x
i
X
i
(s
i1
), x
n
X
n
(s
n1
),
cu

f
1
= u
n
si

f
n
=

f= f.
Aplicam teorema de optim funct iilor

f
ni+1
pentru i = 1, 2, . . . , n 1 :
min{

f
ni+1
(s
i1
, x
i
, . . . , x
n
)|x
i
, . . . , x
n
} =
= min
x
i
F
ni+1
(u
i
(s
i1
, x
i
), min{

f
ni
(
i
(s
i1
, x
i
), x
i+1
, . . .
. . . , x
n
)|x
i+1
, . . . , x
n
}).
Notam cu g
ni+1
(s
i1
) = min{

f
ni+1
(s
i1
, x
i
, . . . , x
n
)|x
i
, . . . , x
n
}, valoarea opti-
mului procesului de decizie trunchiat la fazele i, i + 1, . . . , n. Avem:
g
ni
(s
i1
) = g
ni
(
i
(s
i1
, x
i
))
si obt inem:
g
ni+1
(s
i1
) = min
x
i
F
ni+1
(u
i
(s
i1
, x
i
), g
ni
(
i
(s
i1
, x
i
)), i = 1, n 1
cu
g
1
(s
n1
) = min
x
i
u
n
(s
n1
, x
n
).
Aceste ecuat ii se numesc ecuat iile programarii dinamice regresive.
PROGRAMARE DINAMIC

A REGRESIV

A 21
2.3.2. Rezolvarea problemelor de programare regresiva
Elementele prezentate n paragrafele precedente ne permit sa elaboram urmatorul
algoritm de rezolvare a problemelor de optimizare dinamice regresive.
PASUL 0. Problema matematica se codica sub forma unei probleme de pro-
gramare liniara, punandu-se n evident a funct ia obiectiv si sistemul de restrict ii
corespunzator.
PASUL 1. Se pune problema sub forma unui proces secvent ial de decizie urma-
rindu-se urmatoarele elemente:
i) forma funct ionala a funct iilor de transfer
i
: S
i1
X
i
S
i
:
s
i
=
i
(s
i1
, x
i
), i = 1, n.
ii) spat iul starilor posibile: S
0
, S
1
, . . . , S
n
;
iii) spat iul deciziilor: X
i
(s
i1
);
iv) funct iile part iale de ecient a u
i
(s
i1
, x
i
), i = 1, 2, . . . , n;
v) funct iile obiectiv ale proceselor trunchiate la fazele i, i+1, . . . , n :

f
i
(x
i
, . . . , x
n
)
pentru i = 1, 2, . . . , n.
PASUL 2. Se rezolva problema din faza n, adica se calculeaza:
min{

f
1
(s
n1
, x
n
)|x
n
X
n
(s
n1
)} = min{u
n
(s
n1
, x
n
)|x
n
X
n
(s
n1
)} = g
1
(s
n1
),
unde s
n1
este parametru.
Deci pentru s
n1
S
n1
se determina x

n1
(s
n1
) X
n
(s
n1
), astfel ncat:
g
1
(s
n1
) = u
n
(s
n1
, x

n1
(s
n1
)).
Se atribuie contorului i valoarea n 1. Acest contor are semnicat ia fazei i a
procesului secvent ial.
PASUL 3. Se rezolva problema din faza i a carei necunoscuta este x
i
, iar s
i1
este parametru. Deci pentru s
i1
S
i1
, se determina valorile x

i
(s
i1
) X
i
(s
i1
)
pentru care:
g
ni+1
(s
i1
) = F
ni+1
(u
i
(s
i1
, x

i
(s
i1
)), g
ni
(
i
(s
i1
, x

i
(s
i1
))))
= min{

f
ni+1
(s
i1
, x
i
, . . . , x
n
)|x
i
X
i
(s
i1
)}.
actualizeaza i := i + 1.
PASUL 4. Daca i > 1 goto PASUL 3.
Se determina, pentru s
0
S
0
, valoarea x

1
(s
0
) pentru care avem:

f (s
0
, x

1
(s
0
), . . . , x

n
(s
0
)) = min{

f
n
(s
0
, x
1
, . . . , x
n
)|x
1
, . . . , x
n
} = g
n
(s
0
),
22 PROGRAMARE DINAMIC

A
unde x

2
(s
0
) = x

2
(
1
(s
0
, x

1
(s
0
)) etc.
PASUL 5. Se optimizeaza pe mult imea vectorilor init iali pentru a aa s

0
:

f (s

0
, x

1
(s

0
), . . . , x

n
(s

0
)) = min
s
0
S
0
g
n
(s
0
) = g
n
(s

0
),
atins pentru starea init iala s

0
.
PASUL 6. Se scrie solut ia optima:
x

= (x

1
, . . . , x

n
)
unde x

1
= x

1
(s

0
), x

2
= x

2
(
1
(s
0
, x

1
(s
0
)) etc.
2.3.3. Aplicat ii
Exercit iul 2.3.1. O unitate comerciala trebuie sa raspunda unei cereri de 25
unitat i dintr-un anumit tip de produs, cerere esalonata pe o perioada de 4 luni. La
nceputul ecarei luni, unitatea se poate aproviziona cu orice cantitate din produsul
respectiv, la un pret ce variaza de la luna la luna, conform datelor din tabelul 2.1:
TABELUL 2.1
luna i 1 2 3 4
cererea 5 7 5
pret 12 10 9 10
Sa se determine politica optima de reaprovizionare a unitat ii cu produsul respec-
tiv, astfel ncat toate cererile sa e satisfacute, stiind ca n depozitul respectiv se
gasesc la nceputul primei luni 3 unitat i de produs si ca nu pot pastrate n depozit
mai mult de 9 unitat i de produs, iar la sfarsitul ultimei luni toate produsele au fost
vandute. Parametrul este un numar real strict pozitiv.
Raspuns.
PASUL 0. Deoarece cererea trebuie sa e de 25 unitat i avem: 5 + 7 + + 5 =
= 25 deci = 8. Se codica problema:
Se noteaza cu x
i
numarul de unitat i comandate la nceputul lunii i si cu s
i
stocul
existent la sfarsitul lunii i. Funct ia de minimizat este:
12x
1
+ 10x
2
+ 9x
3
+ 10x
4
,
putem deci presupune ca = 1 avand grija ca la nal sa nmult im valoarea optima
a funct iei obiectiv cu .
PROGRAMARE DINAMIC

A REGRESIV

A 23
Avem: 3 +x
1
+x
2
+x
3
+x
4
= 25 sau x
1
+x
2
+x
3
+x
4
= 22.
3 +x
1
9 si 3 +x
1
5 0 deci x
1
[2, 6],
3 +x
1
5 +x
2
9 si 3 +x
1
5 +x
2
7 0 deci x
1
+x
2
[9, 11],
3+x
1
5+x
2
7+x
3
9 si 3+x
1
5+x
2
7+x
3
8 0 deci x
1
+x
2
+x
3
[17, 18]
3 +x
1
5 +x
2
7 +x
3
8 +x
4
9 (echivalent cu 5 9 inegalitate care spune
ca dupa ce s-a efectuat comanda la nceputul lunii a 4-a mai este de satisfacut o
cerere de 5 unitat i de produs) si 3 +x
1
5 +x
2
7 +x
3
8 +x
4
5 = 0 (ecuat ie
ce constituie o vericare part iala).
Problema de minimizat devine:
_

_
min(12x
1
+ 10x
2
+ 9x
3
+ 10x
4
)
2 x
1
6
9 x
1
+x
2
11
4 x
4
5
x
1
+x
2
+x
3
+x
4
= 22.
PASUL 1. Se determina spat iul starilor S
i
, i = 0, 4:
s
0
= 3 S
0
= {3},
s
1
= s
0
+x
1
5 = x
1
2 S
1
= [0, 4],
s
2
= s
1
+x
2
7 = x
1
+x
2
9 S
2
= [0, 2],
s
3
= s
2
+x
3
8 = x
1
+x
2
+x
3
17 S
3
= [0, 1],
s
4
= s
3
+x
4
5 = x
1
+x
2
+x
3
+x
4
17 5 = 0 S
4
= {0}.
Se determina spat iul deciziilor X
i
(s
i1
), i = 1, n :
x
1
X
1
(s
0
) = [5 s
0
, 9 s
0
] = [2, 6],
x
2
X
2
(s
1
) = [7 s
1
, 9 s
1
],
x
3
X
3
(s
2
) = [8 s
2
, 9 s
2
],
x
4
X
4
(s
3
) = {5 s
3
}.
Funct iile de transfer:
i
(s
i1
, x
i
), i = 1, n :

1
(s
0
, x
1
) = s
0
+x
1
5,

2
(s
1
, x
2
) = s
1
+x
2
7,

3
(s
2
, x
3
) = s
2
+x
3
8,

4
(s
3
, x
4
) = s
3
+x
4
5 = 0.
Funct iile part iale de ecient a sunt:
u
1
(s
0
, x
1
) = 12x
1
,
u
2
(s
1
, x
2
) = 10x
2
,
u
3
(s
2
, x
3
) = 9x
3
,
u
4
(s
3
, x
4
) = 10x
4
, si funct iile de ecient a ale proceselor de decizie trunchiate la
fazele {i, . . . , 4} (pentru i = 1, . . . , 4) sunt:

f
4
= 12x
1
+ 10x
2
+ 9x
3
+ 10x
4
,

f
3
= 10x
2
+ 9x
3
+ 10x
4
,
24 PROGRAMARE DINAMIC

f
2
= 9x
3
+ 10x
4
,

f
1
= 10x
4
.
PASUL 2. Se rezolva problema:
min{

f
1
(s
n1
, x
n
)|x
n
X
n
(s
n1
)} = min{u
4
(s
3
, x
4
)|x
4
X
4
(s
3
)} =
= min{10x
4
|x
4
{5 s
3
}} = 10(5 s
3
) = 50 10s
3
,
minim atins pentru x

4
(s
3
) = 5 s
3
.
PASUL 3/4. Se rezolva problema:
min{

f
3
|x
3
X
3
(s
2
)} = min{9x
3
+ 50 10s
3
|x
3
[8 s
2
, 9 s
2
]} =
= min{9x
3
+ 50 10(s
2
+x
3
8)|x
3
[8 s
2
, 9 s
2
]} =
= min{x
3
10s
2
+ 130|x
3
[8 s
2
, 9 s
2
]} = (9 s
2
) 10s
2
+ 130 =
= 121 9s
2
,
minim atins pentru x

3
(s
2
) = 9 s
2
.
Se rezolva problema:
min{

f
2
|x
2
X
2
(s
1
)} = min{10x
2
+ 121 9s
2
|x
2
[7 s
1
, 9 s
1
]} =
= min{10x
2
+ 121 9(s
1
+x
2
7)|x
2
[7 s
1
, 9 s
1
]} =
= min{x
2
9s
1
+ 184|x
2
[7 s
1
, 9 s
1
]} = 7 s
1
9s
1
+ 184 = 10s
1
+ 191,
minim atins pentru x

2
(s
1
) = 7 s
1
.
Se rezolva problema:
min{

f
1
|x
1
X
1
(s
0
)} = min{12x
1
+ 191 10s
1
|x
1
[2, 6]} =
= min{12x
1
+ 191 10(s
0
+x
1
5)|x
1
[2, 6]} =
= min{2x
1
10s
0
+ 241|x
1
[2, 6]} = 243 10s
0
,
minim atins pentru x

1
(s

0
) = 2, s

0
= 3.
PASUL 5. Avem:
s

1
= s

0
+x

1
5 = 0 deci x

2
(s
1
) = 7,
s

2
= s

1
+x

2
7 = 0 deci x

3
(s
2
) = 9,
s

3
= s

2
+x

3
8 = 1 deci x

4
(s
3
) = 4.
PASUL 6. Solut ia optima x

= (2, 7, 9, 4) iar traiectoria optima este s

=
(0, 0, 1, 0).
Exercit iul 2.3.2. Un depozit trebuie sa raspunda unei cereri de marfa totale de
unitat i de produs de la m beneciari (cererea ecarui beneciar este de
i
unitat i
de produs). Daca costul de aprovizionare si transport al unei unitat i de produs la
PROGRAMARE DINAMIC

A REGRESIV

A 25
beneciarul i este
i
, iar depozitul dispune init ial de unitat i de produs si daca
acesta nu poate det ine n stoc mai mult de unitat i de produs sa se determine
politica optima de reaprovizionare cu produsul respectiv astfel ncat toate cererile
sa e satisfacute. La nal mai exista n stoc unitat i de produs.
Indicat ie. Se noteaza cu x
i
numarul de unitat i de produs comandate la nceputul
livrarii i si cu s
i
stocul existent dupa livrarea i. Problema de programare ce trebuie
rezolvata este:
_

_
min
m

i=1

i
x
i
m

i=1
x
i
= +,
j

i=1

i

j

i=1
x
i

j1

i=1

i
+ j = 1, m,
x
i
0 i = 1, m.
unde =
m

i=1

i
. Se vor pune n evident a funct iile reciproce de transfer, funct iile
part iale de ecient a, funct iile de ecient a ale proceselor trunchiate, spat iul starilor
si spat iile de decizie.
Problema se va rezolva prin metoda programarii regresive n n faze.
Exercit iul 2.3.3. Sa se gaseasca o planicare optima unei investit ii de 5 mili-
oane dolari pentru construirea a trei obiective cunoscand randamentele investit iilor
pe obiective, asa cum sunt prezentate n tabelul 2.2.
TABELUL 2.2
Investit ii Obiectiv 1 Obiectiv 2 Obiectiv 3
0 0 0 0
1 0, 20 0, 23 0, 19
2 0, 35 0, 34 0, 37
3 0, 51 0, 50 0, 49
4 0, 68 0, 63 0, 65
5 0, 75 0, 79 0, 80
Raspuns. Modelul matematic al problemei este:
_
_
_
max(r
1
(x
1
) +r
2
(x
2
) +r
3
(x
3
))
x
1
+x
2
+x
3
= 5,
x
i
{0, 1, 2, 3, 4, 5}, i = 1, 2, 3, 4, 5.
26 PROGRAMARE DINAMIC

In vederea rezolvarii problemei cu ajutorul programarii dinamice, se pune mai


ntai problema sub forma unui proces secvent ial de decizie. Pentru realizarea acestui
scop, se noteaza cu s
i
, i = 1, 2, 3, suma investita n primul obiectiv, n primul si al
doilea, si respectiv suma investita n cele trei obiective. Avem: s
0
= 0, s
1
= s
0
+x
1
,
s
2
= s
1
+x
2
, s
3
= s
2
+x
3.
Folosind aceste egalitat i, obt inem cu ajutorul sistemului de restrict ii, S
0
= {0},
S
1
= S
2
= {0, 1, 2, 3, 4, 5}, S
3
= {5}.
X
1
(s
0
) = {0, 1, 2, 3, 4, 5}, X
2
(s
1
) = {0, . . . , 5 s
1
}, X
3
(s
2
) = {5 s
2
}.
Remarcam ca avem urmatoarele funct ii de transfer:

1
(s
0
, x
1
) = s
0
+x
1
,
2
(s
1
, x
2
) = s
1
+x
2
,
3
(s
2
, x
3
) = s
2
+x
3
.
Funct iile part iale de ecient a, precum si funct iile de decizie ale proceselor de
decizie trunchiate la fazele {i, . . . , 3} (pentru i = 1, . . . , 3) sunt urmatoarele:
u
1
(s
0
, x
1
) = r
1
(x
1
), u
2
(s
1
, x
2
) = r
2
(x
2
), u
3
(s
2
, x
3
) = r
3
(x
3
),

f
3
= r
1
(x
1
) +r
2
(x
2
) +r
3
(x
3
),

f
2
= r
2
(x
2
) +r
3
(x
3
),

f
1
= r
3
(x
3
).
Se constata ca problema este decompozabila regresiv cu F
i
(, ) = + , unde
i = 2, 3. Se trece acum la rezolvarea problemelor de optim corespunzatoare ecarei
faze, folosind ecuat iile programarii regresive si obt inem:
Faza 3. Avem:
g
1
(s
2
) = max{r
3
(x
3
)|x
3
X
3
(s
2
)} = r
3
(5 s
2
),
obt inut pentru x

3
(s
2
) = 5 s
2
.
Faza 2. Avem:
g
2
(s
1
) = max{r
2
(x
2
) +g
1
(s
1
+x
2
)|x
2
X
2
(s
1
)}
= max{r
2
(x
2
) +r
3
(5 s
1
x
2
)|x
2
X
2
(s
1
)}.
Succesiv obt inem:
g
2
(0) = max{0, 80; 0, 88; 0, 83; 0, 87; 0, 82; 0, 79} = 0, 88 pentru x

2
(0) = 1;
g
2
(1) = max{0, 65; 0, 72; 0, 71; 0, 69; 0, 63} = 0, 72 pentru x

2
(1) = 1;
g
2
(2) = max{0, 49; 0, 60; 0, 53; 0, 50} = 0, 60 pentru x

2
(2) = 1;
g
2
(3) = max{0, 37; 0, 42; 0, 34} = 0, 42 pentru x

2
(3) = 1;
g
2
(4) = max{0, 19; 0, 23} = 0, 23 pentru x

2
(4) = 1;
g
2
(5) = max{0} = 0 pentru x

2
(5) = 1.
Faza 1. Avem:
g
3
(s
0
) = max{r
1
(x
1
) +g
2
(s
0
+x
1
)|x
1
X
1
(s
0
)} =
= max{0, 88; 0, 92; 0, 95; 0, 93; 0, 91; 0, 75} = 0, 95,
obt inut pentru x

1
(s

0
) = 2, unde s

0
= s
0
= 0. Avemn continuare, s

1
= = s

0
+x

1
= 2,
de unde x

2
(s

1
) = 1; s

2
= s

1
+x

2
= 3, de unde x

3
(s

2
) = = 5s

2
= 2; s

3
= s

2
+s

3
= 5.
PROGRAMARE DINAMIC

A PROGRESIV

A 27

In concluzie, am obt inut: max(r


1
(x
1
) + r
2
(x
2
) + r
3
(x
3
)) = 0, 95, pentru solut ia
optima unica x

= (x

1
, x

2
, x

3
) = (2, 1, 2), iar traiectoria optima a procesului este
s

= (2, 3, 5).
2.4. Programare dinamica progresiva
2.4.1. Ecuat iile programarii dinamice progresive
Procedura iterativa descrisa n paragraful anterior este valabila fara nici o res-
trict ie asupra starii init iale sau nale. Aceste doua stari au n mod evident, roluri
importante, asa cum s-a vazut pentru starea s
0
.

In timp ce s
1
, . . . , s
n1
sunt stari
de intrare si iesire, s
0
este numai stare de intrare pentru faza 1 a problemei, iar s
n
numai stare de iesire pentru faza n a problemei.
Din punct de vedere matematic singurul lucru care deosebeste s
0
de s
n
este sensul
de parcurs adoptat pentru procedura de rezolvare, sens care a fost impus de ecuat iile:
s
i
=
i
(s
i1
, x
i
), i = 1, n,
ce conduc la o procedura de rezolvare de la ultima faza spre prima faza a problemei,
altfel spus, am mers spre trecut.

In anumite probleme se pot pune restrict ii asupra
starilor s
0
si/sau s
n
.
Daca s
0
este impusa, optimizarea din ultima faza a problemei conduce la un
singur g
n
(s
0
) deoarece s
0
nu mai este parametru, iar n faza 1 luam direct s
0
= s

0
.
Deci schema propusa este viabila.
Daca s
n
este impusa, adica s
n
= s

n
cu s

n
dat, trebuie ca starea init iala s
0
si
solut ia optima x

(s
0
) sa satisfaca relat ia:
s

n
=
n
(
n1
(. . .
2
(
1
(s
0
, x

1
(s
0
)), x

2
(s
0
)), . . . , x

n
(s
0
)).
Aceasta relat ie nu poate vericata decat la sfarsitul procedurii, lucru care sporeste
timpul de procesare. Metoda de reducere la cazul precedent este mult mai ecace,
daca vom reusi sa schimbam sensul n care au fost facute calculele adica sa mergem
spre viitor prin folosirea funct iilor reciproce de transfer:
s
i1
=
i
(s
i
, x
i
), i = 1, n.
Funct iile elementare de ecient a u
i
, pentru i = 1, . . . , n, respectiv funct ia obiectiv
globala f, devin u
i
(
i
(s
i
, x
i
), x
i
) =u
i
(s
i
, x
i
), pentru i = 1, . . . , n, respectiv:
f(u
1
(s
0
, x
1
), . . . , u
n
(s
n1
, x
n
)) = f(

u
1
(s
1
, x
1
), . . . ,

u
n
(s
n
, x
n
))
=

f (s
n
, x
1
, . . . , x
n
),
28 PROGRAMARE DINAMIC

A
unde de data aceasta, n mod similar cu ceea ce s-a aratat anterior, toate elementele
descriptive ale problemei pot exprimate ca funct ie de decizie aleasa si starea s
0
.
Similar se deneste decompozabilitatea progresiva si se ajunge la ecuat iile pro-
gramarii dinamice progresive.
2.4.2. Rezolvarea problemelor de programare progresiva
Elementele prezentate n paragrafele precedente ne permit sa elaboram urmatorul
algoritm de rezolvare a problemelor de optimizare dinamice progresive.
PASUL 0. Problema matematica se codica sub forma unei probleme de pro-
gramare liniara, punandu-se n evident a funct ia obiectiv si sistemul de restrict ii
corespunzator.
PASUL 1. Se pune problema sub forma unui proces secvent ial de decizie avandu-
se n vedere urmatoarele elemente:
i) forma funct ionala a funct iilor reciproce de transfer

i
: S
i
X
i
S
i1
:
s
i1
=

i
(s
i
, x
i
), i = 1, n.
ii) spat iul starilor posibile: S
0
, S
1
, . . . , S
n
;
iii) spat iul deciziilor:

Xi
(s
i
);
iv) funct iile part iale de ecient a

u
i
(s
i
, x
i
), i = 1, 2, . . . , n;
v) funct iile obiectiv ale proceselor secvent iale trunchiate la fazele 1, . . . , i :

f
i
(x
1
, . . . , x
i
) pentru i = 1, 2, . . . , n.
PASUL 2. Se rezolva problema din faza 1, adica se calculeaza:
min{

f
1
(s
1
, x
1
)|x
1

X1
(s
1
)} = min{

u
1
(s
1
, x
1
)|x
1

X1
(s
1
)} = g
1
(s
1
),
unde s
n1
este parametru. Deci pentru s
1
S
1
se determina valoarea x

1
(s
n
)

X1
(s
1
), astfel ncat:
g
1
(s
1
) =

u
1
(s
1
, x

1
(s
1
)).
Se atribuie contorului i valoarea 2. Acest contor are semnicat ia fazei i a procesului
secvent ial.
PASUL 3. Se rezolva problema din faza i a carei necunoscuta este x
i
, iar s
i
este parametru. Deci pentru s
i
S
i
, se determina x

i
(s
i
)

Xi
(s
i
) astfel ncat:
g
i
(s
i
) =

Fi
(

u
i
(s
i
, x

i
(s
i
)), g
i1
(

i
(s
i
, x

i
(s
i
)))).
actualizeaza i := i + 1;
PROGRAMARE DINAMIC

A PROGRESIV

A 29
PASUL 4. Daca i < n goto PASUL 3.
PASUL 5. Se determina x

n
(s
n
)
Xn
(s
n
) cu s
n
= s

n
si avem:

f (s

n
, x

1
(s

n
), . . . , x

n
(s

n
)) = min{

f
n
(s

n
, x
1
, . . . , x
n
)|x
1
, . . . , x
n
} =
g
n
(s

n
),
unde x

n1
(s

n1
) = x

n1
= x

n1
(
n
(s

n
, x

n
)) etc.
PASUL 6. Se scrie solut ia optima:
x

= (x

1
, . . . , x

n
)
unde x

n
= x

n
(s

n
), x

n1
= x

n1
(
n
(s

n
, x

n
)) etc.
Observat ii. i) Daca starile s
0
sau s
n
sunt cunoscute, se merge de la starea ne-
cunoscuta spre starea cunoscuta.
ii) Daca ambele stari sunt impuse si daca se pot deni funct iile de transfer atat
ntr-un sens cat si n celalalt atunci se poate opta pentru oricare dintre cele doua
metode de rezolvare, adica progresiv sau regresiv.
2.4.3. Aplicat ii
Exercit iul 2.4.1. Aplicat ia similara celei de la paragraful de aplicat ii core-
spunzator programarii dinamice regresive.
Raspuns. Pasul 0 este identic cu cel de la rezolvarea aplicat iei de la capitolul
programarii regresive.
PASUL 1. Se determina funct iile reciproce de transfer:

1
(s
1
, x
1
) = s
1
x
1
+ 5,

2
(s
2
, x
2
) = s
2
x
2
+ 7,

3
(s
3
, x
3
) = s
3
x
3
+ 8,

4
(s
4
, x
4
) = s
4
x
4
+ 5.
Funct iile part iale de ecient a sunt:
u
1
(s
1
, x
1
) = 12x
1
,
u
2
(s
2
, x
2
) = 10x
2
,
u
3
(s
3
, x
3
) = 9x
3
,
u
4
(s
4
, x
4
) = 10x
4
.
Funct iile de ecient a ale proceselor trunchiate la fazele 1, . . . , i (pentru i =
1, . . . , 4) sunt:

f
1
= 12x
1
,

f
2
= 12x
1
+ 10x
2
,
30 PROGRAMARE DINAMIC

f
3
= 12x
1
+ 10x
2
+ 9x
3
,

f
4
= 12x
1
+ 10x
2
+ 9x
3
+ 10x
4
.
Noile spat ii de decizie se determina succesiv:
Din s
0
= 3 rezulta s
1
x
1
+ 5 = 3 sau x
1
= s
1
+ 2 de unde x
1
{s
1
+ 2},
din s
1
[0, 4] rezulta s
2
x
2
+ 7 [0, 4] de unde x
2
[s
2
+ 3, s
2
+ 7],
din s
2
[0, 2] rezulta s
3
x
3
+ 8 [0, 2] de unde x
3
[s
3
+ 6, s
3
+ 8],
din s
3
[0, 1] rezulta s
4
x
4
+ 5 [0, 1] de unde x
4
[s
4
+ 4, s
3
+ 5].
PASUL 2. Se rezolva problema din faza 1 adica se calculeaza:
min{

f
1
|x
1

X1
(s
1
)} = min{12x
1
|x
1
{s
1
+ 2}} = 12s
1
+ 24,
minim atins pentru x

1
(s
1
) = s
1
+ 2.
PASUL 3/4. Se rezolva problema:
min{

f
2
|x
2

X2
(s
2
)} = min{12x
1
+ 10x
2
|x
2
[s
2
+ 3, s
2
+ 7]} =
= min{10x
2
+ 12s
1
+ 24)|x
2
[s
2
+ 3, s
2
+ 7]} =
= min{10x
2
+ 12(s
2
x
2
+ 7) + 24)|x
2
[s
2
+ 3, s
2
+ 7]} =
= min{2x
2
+ 12s
2
+ 108|x
2
[s
2
+ 3, s
2
+ 7]} =
= 2(s
2
+ 7) + 12s
2
+ 108 = 10s
2
+ 94,
minim atins pentru x

2
(s
2
) = s
2
+ 7.
Se rezolva problema:
min{

f
3
|x
3

X3
(s
3
)} = min{12x
1
+ 10x
2
+ 9x
3
|x
3
[s
3
+ 6, s
3
+ 8]} =
= min{9x
3
+ 10s
2
+ 94|x
3
[s
3
+ 6, s
3
+ 8]} =
= min{9x
3
+ 10(s
3
x
3
+ 8) + 94|x
3
[s
3
+ 6, s
3
+ 8]} =
= min{x
3
+ 10s
3
+ 174|x
3
[s
3
+ 6, s
3
+ 8]} =
= s
3
8 + 10s
3
+ 174 = 9s
3
+ 166,
minim atins pentru x

3
(s
3
) = s
3
+ 8.
Se rezolva problema:
min{

f
4
|x
4

X4
(s
4
)} = min{12x
1
+ 10x
2
+ 9x
3
+ 10x
4
|x
4
[s
4
+ 4, s
3
+ 5]} =
= min{10x
4
+ 9s
3
+ 166|x
4
[s
4
+ 4, s
3
+ 5]} =
= min{10x
4
+ 9(s
4
x
4
+ 5) + 166|x
4
[s
4
+ 4, s
3
+ 5]} =
= min{x
4
+ 9s
4
+ 211|x
4
[s
4
+ 4, s
3
+ 5]} =
= 10s
4
+ 215 = 215,
minim atins pentru x

4
(s

4
) = s

4
+ 4 = 4, unde s

4
= 0.
PASUL 5. Avem:
s

3
= s

4
x

4
+ 5 = 1 si x

3
= s

3
+ 8 = 9,
s

2
= s

3
x

3
+ 8 = 0 si x

2
= s

2
+ 7 = 7,
s

1
= s

2
x

2
+ 7 = 0 si x

1
= s

1
+ 2 = 2.
PASUL 6. Solut ia optima este:
PROGRAMARE DINAMIC

A PROGRESIV

A 31
x

= (2, 7, 9, 4), iar traiectoria optima s

= (0, 0, 1, 0), deci s-a obt inut aceeasi


solut ie ca n rezolvarea problemei prin metoda regresiva.
Exercit iul 2.4.2. Un depozit trebuie sa raspunda unei cereri de marfa totale de
unitat i de produs de la m beneciari (cererea ecarui beneciar este de
i
unitat i
de produs). Daca costurile de transport al unei unitat i de produs la beneciarul i
este
i
si daca depozitul dispune init ial de unitat i de produs, iar daca acesta nu
poate det ine n stoc mai mult de unitat i de produs sa se determine politica optima
de reaprovizionare cu produsul respectiv astfel ncat toate cererile sa e satisfacute.

In nal depozitul nu mai are nici o cantitate n stoc.


Indicat ie. Vom nota cu x
i
numarul de unitat i de produs comandate la nceputul
livrarii i si cu s
i
stocul existent dupa livrarea i. Problema de programare ce trebuie
rezolvata este:
_

_
min
m

i=1

i
x
i
m

i=1
x
i
= ,
j

i=1

i

j

i=1
x
j

j1

i=1

i
+ j = 1, m,
x
i
0 i = 1, m.
unde =
m

i=1

i
. Se vor pune n evident a funct iile reciproce de transfer, funct iile
part iale de ecient a, funct iile de ecient a ale proceselor trunchiate, spat iul starilor
si spat iile de decizie.
Problema se poate rezolva si prin programare dinamica progresiva n n faze si
evident si prin metoda programarii dinamice regresive sau cu ajutorul algoritmilor
simplex primal ori simplex dual prin aducerea acesteia la forma standard.
Exercit iul 2.4.3. Rezolvat i numeric prin programare dinamica regresiva si pro-
gresiva problema anterioara pentru m = 3, = 25 (
1
= 10,
2
= = 8,
3
= 7),
1
=
3,
2
= 10,
3
= 4, = 3 si = 10. Aplicat i pentru rezolvarea problemei algoritmul
simplex primal. Scriet i duala problemei de programare liniara asociata. Rezolvat i
programul dual.
Indicat ie. Aplicand exercit iul precedent restrict ia a doua devine:

1
x
1
,
32 PROGRAMARE DINAMIC

A
sau 10 3 x
1
10 3 deci x
1
= 7. Restrict ia a treia devine:

1
+
2
x
1
+x
2

1
+ ,
sau 10 + 8 3 3 +x
2
10 + 10 3 deci 12 x
2
20 etc.
Exercit iul 2.4.4. Generalizat i problema de la exercit iul 2.4.2 la o problema cu
n depozite. Rezolvat i aceasta problema prin metoda programarii dinamice si apoi
prin metoda de rezolvare a problemelor clasice de transport.
Exercit iul 2.4.5. Un tren de marfa cu capacitatea maxima z trebuie sa trans-
porte diferite cantitat i de N marfuri diferite. Sa notam cu v
i
valoarea celui de al i-lea
tip de marfa si cu w
i
greutatea sa. Sa se determine ncarcatura de valoare maxima.
Aplicat ie numerica N = 3, z = 100 t, v
1
= 10$, v
2
= 30$, v
3
= 5$, w
1
= 150 t,
w
2
= 20 t, w
3
= 30 t.
Indicat ie. Daca notam cu x
i
numarul articolelor din marfa i care sunt ncarcate,
atunci problema de programare liniara de rezolvat este:
_

_
max
N

i=1
x
i
v
i
,
N

i=1
x
i
w
i
z,
x
i
0, i = 1, N.
Problema se poate rezolva prin metodele programarii dinamice sau cu algoritmul
simplex.
Capitolul 3
TEORIA JOCURILOR
3.1. Not iuni introductive
De foarte multe ori suntem pusi n fat a unor situat ii conictuale a caror evolut ie
ulterioara depinde de decizia sau planul adoptat, numita si strategie. Prin termenul
de evolut ie se nt elege modicarea unei funct ii obiectiv numita n acest caz funct ie
de pierdere sau castig, deci prin joc n cele ce urmeaza se nt elege acea situat ie
care funct ioneaza dupa reguli bine denite, n care doua sau mai multe elemente de-
cizionale, numite jucatori, aleg o decizie dintr-o mult ime de variante bine specicate.
Deoarece jocurile de care ne vom ocupa au la baza aceste elemente decizionale, ele se
vor numi jocuri strategice. Spunem despre strategia unui joc ca este o strategie pura
daca unul dintre adversari alege una din cele m variante dupa care jocul se opreste.
Strategia mixta presupune continuarea partidei, iar alegerea variantei se face cu o
anumita probabilitate. Fiecare din part ile implicate n joc urmareste optimizarea
funct iei obiectiv, iar strategia care realizeaza aceasta optimizare se numeste strategie
optima.
Din punct de vedere al castigului jocurile se clasica n:
-jocuri cu suma nula: sunt acele jocuri n care suma pierderilor ecarui jucator
este egala cu suma castigurilor tuturor jucatorilor;
-jocuri fara suma nula: sunt acele jocuri n care o parte din pierderea si/sau
castigul unui jucator nu se regaseste la ceilalt i jucatori.
O alta clasicare este dupa cardinalul numarului de strategii: jocuri nite sau
innite.
Fie X si Y strategiile pure a doi jucatorilor A respectiv B si a X si b Y
strategile pure alese de catre acestia. Vom nota cu L
A
(a, b) si L
B
(a, b) pierderile
corespunzatoare ecarui jucator, castigul ind considerat o pierdere negativa. Suma
33
34 TEORIA JOCURILOR
pierderilor celor doi jucatori este:
L
A
(a, b) +L
B
(a, b).
Daca jocul este cu suma nula atunci L
A
(a, b) + L
B
(a, b) = 0. Deci, L
B
(a, b) =
L
A
(a, b) = L(a, b), unde L(a, b) este castigul jucatorului A daca acesta joaca strate-
gia a iar raspunsul lui B ind prin strategia b.
Jocurile de tip poker sunt jocuri cu suma nula, iar jocurile de tip Casino sunt
fara suma nula (se platesc impozite catre stat sau se platesc taxe catre proprietarul
jocului). Formalizand cele denite avem:
Denit ia 3.1.1. Se numeste joc tripletul J = (X, Y, L) unde X = {a
1
, . . . , a
m
}
si Y = {b
1
, ..., b
n
} sunt mult imile de strategii pure ale celor doi jucatori, iar L :
X Y R este funct ia de castig care se poate exprima sub forma matriceala:
Q =
_
_
q
11
... q
1n
... ... ...
q
m1
... q
mn
_
_
n care q
ij
= L(a
i
, b
j
), i = 1, m, j = 1, n. Forma matriceala a unui joc se numeste
forma normala. Matricea jocului este alcatuita n raport cu jucatorul A numit
jucator maximizant. Jucatorul B se va numi jucator minimizant, iar matricea sa va
avea elementele q
ij
.
Exemplul 3.1.1. Jocul consta n aruncarea monedei n care ecare jucator
poate alege, independent de celalalt stema S sau banul B. Daca alegerile coin-
cid, atunci jucatorul 2 primeste de la jucatorul 1 suma x.

In caz contrar jucatorul 1
primeste de la jucatorul 2 suma x. Matricea jocului este:
Q =
_
x x
x x
_
.
3.2. Principiul minimax
Teoria jocurilor are ca rol elaborarea unor planuri rat ionale de act iune pentru
cazurile conictuale. Astfel, principiul adoptat este principul minimizarii pierderii
maxime numit si principiul minimax. Jucatorul A act ioneaza astfel ncat sa maxi-
mizeze cel mai mic castig pe care-l poate obt ine de la jucatorul B, iar jucatorul B
act ioneaza astfel ncat sa minimizeze pierderea sa maxima.
Valoarea:
= max
i
min
j
q
ij
STRATEGII MIXTE SI VALOAREA JOCULUI 35
se numeste valoarea inferioara a jocului si reprezinta cel mai mic castig pe care Al
poate avea de la B, iar valoarea:
= min
j
max
i
q
ij
se numeste valoarea superioara a jocului si reprezinta cea mai mare pierdere pe care
B o poate avea.
Jocurile pentru care = se numesc jocuri cu punct sa, iar valoarea comuna a
acestor doua valori se numeste valoarea jocului. Elementul care realizeaza aceasta
egalitate se numeste punct sa.
O strategie a
i
a jucatorului A se numeste dominanta pentru strategia a
j
daca
q
ik
q
jk
pentru orice k = 1, n. Strategiile dominate vor eliminate din joc de catre
A (acesta doreste sa castige cat mai mult) strategiile dominante ale lui B vor
eliminate din politica sa pentru ca duc la pierderi mai mari.
3.3. Strategii mixte si valoarea jocului
Jocurile cu punct sa reprezinta o clasa particulara de jocuri si se pune n mod
natural ntrebarea daca, n ipoteza repetarii partidelor, nu se poate gasi o strategie
prin care jucatorul A sa obt ina un castig mai mare decat cel asigurat prin criteriul
minimax. Vom numi strategie mixta o combinat ie probabilista de strategii pure.
Strategiile mixte au dublu rol:
1. de a mpiedica adversarul sa cunoasca strategia aleasa;
2. de a mari castigul garantat de valoarea inferioara a jocului.
Fie X = (x
1
, ..., x
m
)

vectorul probabilitat ilor cu care jucatorul A alege strategiile


pure {a
1
, ..., a
m
} si Y = (y
1
, ..., y
n
)

vectorul probabilitat ilor cu care jucatorul B


alege strategiile pure {b
1
, ..., b
n
}. Avem:
_
_
_
x
i
0, i = 1, m
m

i=1
x
i
= 1,
si
_
_
_
y
j
0, j = 1, n
n

j=1
y
j
= 1.
Castigul mediu realizat de catre A cand el foloseste strategia mixta X, iar B
strategia b
j
va :
M(X, j) =
m

i=1
q
ij
x
i
.
36 TEORIA JOCURILOR
Similar, castigul mediu realizat de A cand el foloseste strategia a
i
, iar B foloseste
strategia mixta Y va :
M(i, Y ) =
n

j=1
q
ij
y
j
.
Valoarea medie a jocului va :
M(X, Y ) =
n

j=1
m

i=1
q
ij
x
i
y
j
=
m

i=1
n

j=1
q
ij
x
i
y
j
,
sau matriceal:
M(X, Y ) = X

QY.
3.4. Teorema fundamentala a teoriei jocurilor
Teorema 3.4.1. (Valoarea inferioar a si valoarea superioara a jocului). Fie X,
Y submult imi ale lui R si e L : X Y R. Daca exista marimile:
max
xX
[min
yY
L(x, y)],
min
yY
[max
xX
L(x, y)],
atunci:
max
xX
[min
yY
L(x, y)] min
yY
[max
xX
L(x, y)].
Denit ia 3.4.1. (Punct sa). Punctul (x
0
, y
0
) este punct sa al funct iei L daca:
L(x, y
0
) L(x
0
, y
0
) L(x
0
, y).
Teorema 3.4.2. (Condit ii necesare si suciente pentru existent a punctelor sa).
Fie X, Y submult imi ale lui R si e L : X Y R. Daca exista marimile:
max
xX
[min
yY
L(x, y)],
min
yY
[max
xX
L(x, y)],
atunci condit ia necesar a si sucienta ca L sa aiba punctul (x
0
, y
0
) punct sa este:
max
xX
[min
yY
L(x, y)] = min
yY
[max
xX
L(x, y)] = L(x
0
, y
0
).
REZOLVAREA JOCURILOR MATRICEALE 37
Teorema 3.4.2 ne spune: condit ia necesara si sucienta ca L sa aiba punctul
(x
0
, y
0
) punct sa este ca valoarea inferioara a jocului sa e egala cu valoarea sa
superioara.
Teorema 3.4.3. (Teorema fundamentala a teoriei jocurilor). Fie jocul J =
(X, Y, L). Atunci exista o pereche X
0
, Y
0
de strategii mixte optime astfel ncat:
max
XS
m
[ min
Y S
n
M(X, Y )] = min
Y S
n
[ max
XS
m
M(X, Y )] = M(X
0
, Y
0
) = v,
unde S
m
si S
n
sunt submult imi ale spat iilor euclidiene m-dimensionale respectiv
n-dimensionale.
Valoarea v se numeste valoarea jocului.
Observat ii. i) Un joc nu poate avea decat o singura valoare, chiar daca are mai
multe strategii optime mixte.
ii) Condit ia necesara si sucienta ca v sa e valoarea jocului si X
0
, Y
0
sa e
strategii mixte este ca:
M(i, Y
0
) v M(X
0
, j), 1 i m, 1 j n.
3.5. Rezolvarea jocurilor matriceale
3.5.1. Formularea problemei de optimizare
Fie un joc cu matricea Q = (q
ij
). Daca jucatorul A foloseste strategiile pure a
i
cu probabilitat ile x
i
, i = 1, . . . , m atunci acesta poate spera un castig de cel put in
v, care este egal cu valoarea jocului adica:
_

_
x

Q v
m

i=1
x
i
= 1
x
i
0, i = 1, m
unde v = (v, . . . , v)

iar a b
def
a
i
b
i
i.
Similar, daca jucatorul B utilizeaza strategiile pure b
j
cu probabilitat ile y
j
,
1 j n, el se poate astepta la o pierdere cel mult egala cu valoarea v a jocului:
_

_
Qy v
n

j=1
y
j
= 1
y
j
0, j = 1, n
38 TEORIA JOCURILOR
3.5.2. Reducerea la probleme de programare liniara
Pentru a transforma cele doua sisteme n modele de programare liniara este nece-
sar ca valoarea jocului v sa e strict pozitiva.

In acest sens se pot folosi urmatoarele
observat ii:
i) daca ecarui element al matricei Q i se adauga o constanta k, atunci valoarea
jocului devine v +k, iar strategiile mixte raman neschimbate;
ii) daca ecare element al matricei Qsenmult este cu constanta k, atunci valoarea
jocului devine vk, iar strategiile mixte optime raman neschimbate.
Deci prin folosirea adecvata a observat iilor amintite se poate presupune v = 1.
Problemele de rezolvat devin folosind notat ia X
i
= x
i
/v:
_

_
min(
m

i=1
X
i
)
Q

X 1
X
i
0, i = 1, m
si
_

_
max(
n

j=1
Y
j
)
QY 1
Y
j
0, j = 1, n.
Cele doua probleme de programare liniara sunt n forma canonica si sunt duale
una alteia. Acestea se pot rezolva prin metodele simplex sau simplex-dual. Se poate
apela pentru rezolvarea acestor probleme la programele specializate existente pe
piat a software.
3.6. Aplicat ii
Exercit iul 3.6.1. Se considera jocul n forma matriceala:
TABELUL 3.1
A/B b
1
b
2
b
3
b
4
b
5
a
1
3 5 4 2 1
a
2
2 3 1 0 1
a
3
4 1 1 0 3
a
4
5 0 3 2 4
Matricea jocului este alcatuita n raport cu jucatorul A (maximizant).
APLICAT II 39
i) Sa se calculeze valoarea inferioara si valoarea superioara a jocului.
ii) Are jocul punct sa?
iii) Aat i strategiile mixte optime ale celor doi jucatori.
Raspuns. Matricea jocului ind alcatuita n raport cu jucatorul A, care este
jucator maximizant, acesta doreste sa castige cat mai mult si va elimina din joc
strategiile dominate. Avem a
4
a
3
, deci strategia a
3
va eliminata din joc de
catre jucatorul A. Deoarece b
1
b
4
si b
3
b
4
, atunci jucatorul B elimina din joc
strategiile b
1
si b
3
(conduc la pierderi mai mari). Astfel jocul se reduce la matricea
redusa Q:
Q =
_
_
5 2 1
3 0 1
0 2 4
_
_
.
Valoarea inferioara a jocului este:
= max
i
min
j
q
ij
= 0,
si valoarea superioara a jocului este:
= min
j
max
i
q
ij
= 2.
Deoarece < jocul nu are punct sa. Valoarea jocului v [0, 2].
Problema de programare liniara pe care trebuie sa o rezolve jucatorul maximizant
A (maximizarea protului minim) este urmatoarea:
_

_
max(v)
5x
1
+ 3x
2
v
2x
1
+ 2x
3
v
x
1
x
2
+ 4x
3
v
x
1
+x
2
+x
3
= 1
x
1
, x
2
, x
3
0,
sau daca se noteaza X
i
= x
i
/v pentru i = 1, 2, 3 obt inem problema de programare
liniara:
_

_
min(X
1
+X
2
+X
3
)
5X
1
+ 3X
2
1
2X
1
+ 2X
3
1
X
1
X
2
+ 4X
3
1
X
1
, X
2
, X
3
0.
Similar, problema de programare liniara corespunzatoare jucatorului B este:
40 TEORIA JOCURILOR
_

_
max(Y
1
+Y
2
+Y
3
)
5Y
1
+ 2Y
2
+Y
3
1
3Y
1
Y
2
1
2Y
2
+ 4Y
3
1
Y
1
, Y
2
, Y
3
0.
Cele doua probleme de programare liniara sunt duale una alteia. Rezolvarea
acestora se poate face cu ajutorul algoritmului simplex primal sau dual. Pentru
rezolvarea cu ajutorul programului MAPLE a acestora sintaxa este pentru jucatorul
A (maximizant):
> with(simplex) :
> minimize(x +y +z, 5 x + 3 y >= 1, 2 x + 2 z >= 1,
x y + 4 z >= 1, NONNEGATIV E);
Solut ia este: x = 0, y = 1/3, z = 1/2,
iar respectiv pentru jucatorul B (minimizant):
> maximize(x +y +z, 5 x + 2 y +z <= 1, 3 x z <= 1,
2 y + 4 z <= 1, NONNEGATIV E);
Solut ia este: x = 1/3, y = 1/2, z = 0.
Deci strategia optima pentru jucatorul A se determina din:
X
1
= 0, X
2
=
1
3
, X
3
=
1
2
,
iar strategia optima a jucatorului B se determina din:
Y
1
=
1
3
, Y
2
=
1
2
, Y
3
= 0.
Valoarea jocului este v = 6/5 iar strategiile optime sunt pentru A:
x
1
= 0, x
2
=
2
5
, x
3
=
3
5
,
respectiv pentru B :
y
1
=
2
5
, y
2
=
3
5
, y
3
= 0.
x
1
= 0 se explica prin faptul ca strategia a
1
a
3
(n matricea redusa Q), poate
eliminata din joc de catre A.
Exercit iul 3.6.2. O rma A doreste sa se lanseze pe piat a. Cercetarile efectuate
n acest sens stabilesc ca daca pret urile variaza n raport cu cele ale concurent ei B,
atunci se obt in rezultatele din tabelul 3.2:
APLICAT II 41
TABELUL 3.2
A/B 5% 0% +5%
5% 2 4 4
0% 1 0 3
+5% 3 2 0
Ce strategie mixta va adopta rma An fat a concurent ei?
Exercit iul 3.6.3. Se considera jocul n forma matriceala:
TABELUL 3.3
A/B b
1
b
2
b
3
b
4
b
5
a
1
3 5 4 2
a
2
2 3 0
a
3
4 0 3
a
4
5 0 3 2 4
Matricea jocului este alcatuita n raport cu jucatorul A (maximizant), iar este
un parametru real strict pozitiv.
i) Sa se calculeze valoarea inferioara si valoarea superioara a jocului.
ii) Are jocul punct sa?
iii) Aat i strategiile mixte optime ale celor doi jucatori.
Exercit iul 3.6.4. Se considera jocul de doua persoane n forma matriceala:
TABELUL 3.4
A/B b
1
b
2
b
3
a
1
0
a
2
0
a
3
0
Matricea jocului este alcatuita n raport cu jucatorul A, (maximizant) iar si
sunt parametri reali strict pozitivi.
i) Sa se calculeze valoarea inferioara si valoarea superioara a jocului.
ii) Are jocul punct sa?
iii) Aat i strategiile mixte optime ale celor doi jucatori.
42 TEORIA JOCURILOR
Exercit iul 3.6.5. Se considera urmatorul scenariu criptograc: un utilizator
al unui canal de comunicat ie poate transmite mesaje cifrate corespunzatoare a trei
categorii de mesaje clare: condent ial, secret si strict secret. Utilizatorul poate
opta pentru unul din doua sisteme de cifrare (de exemplu, un sistem simetric si
un sistem asimetric etc). Indicat i strategia optima de alegere a sistemului crip-
tograc. Procentele categoriei de secret si pierderile corespunzatoare (cantitate de
mesaj decriptata pe 24 ore de procesare selectiva, estimata procentual de designerul
sistemelor criptograce) sunt date n tabelul 3.5. Care trebuie sa e procentele p
i
pentru ca utilizatorul sa opteze pentru strategia 2?
TABELUL 3.5
Tip mesaj Prob. mesaj S 1 S 2
condent ial p
1
0 0,3%
secret p
2
0,6% 0,5%
strict secret p
3
0,4% 1%
Exercit iul 3.6.6. Sa se determine o pereche de strategii optime si valoarea
urmatorului joc matriceal:
_
_
3 6 1 4
5 2 4 2
1 4 3 5
_
_
.
Raspuns. Se va scrie problema de optimizare pentru primul jucator si se rezolva
aceasta. Valoarea jocului va 13/4.
Exercit iul 3.6.7. Se considera jocul n forma matriceala (n raport cu jucatorul
A):
TABELUL 3.6
A/B b
1
b
2
b
3
b
4
a
1
2 3 0 1
a
2
1 2 4 3
a
3
0 2 3 2
a
4
2 3 0 1
i) Sa se determine valoarea inferioara si valoarea superioara a jocului.
ii) Determinat i, daca exista, punctul sa al jocului.
iii) Sa se determine strategiile mixte ale celor doi jucatori.
Raspuns. Valoarea inferioara a jocului este 1, iar valoarea superioara este 2.
Valoarea jocului este 8/5.
APLICAT II 43
Exercit iul 3.6.8. Folosind criteriul minimax, sa se rezolve un joc matriceal de
ordinul 3 3 a carui matrice este:
C =
_
_
1 3 3
2 0 3
2 1 0
_
_
.
Specicat i si valorile inferioara si superioara ale jocului. Cum se modica aceste
strategii daca ultima linie a matricei C se nmult este cu ? Pentru ce valoare a lui
jocul are punct sa?
Raspuns. Valoarea inferioara a jocului este:
= max
i
min
j
q
ij
= 0,
si valoarea superioara a jocului este:
= min
j
max
i
q
ij
= 2.
Strategia optima (mixta) a primului jucator este unica si este egala cu:
x
1
=
1
3
, x
2
=
2
3
, x
3
= 0.
Valoarea jocului (aceasta este unica) este egala cu v = 1.
Strategia optima a celui de-al doilea jucator nu este unica. O strategie optima
este spre exemplu:
y
1
=
1
5
, y
2
=
3
5
, y
3
=
1
5
,
o alta strategie optima este:
y
1
= 0, y
2
=
2
3
, y
3
=
1
3
.
Exercit iul 3.6.9. (Dilema prizonierului.) Se considera urmatoarea situat ie: doi
suspect i de trac de droguri sunt anchetat i, n stare de arest preventiv, de organele
abilitate, care nu au suciente dovezi. Procurorul de caz le ofera celor doi, indepen-
dent, posibilitatea de a recunoaste sau nu implicarean tracul de droguri, precum si
consecint ele deciziei. Astfel, n situat ia n care ambii recunosc procurorul va prop-
une pedeapsa minima de trei ani pentru cei doi suspect i.

In cazul n care doar
unul recunoaste pentru acesta procurorul va propune aceeiasi pedeapsa de trei ani
44 TEORIA JOCURILOR
cu suspendare (eliberare), pentru complicele sau propunand pedeapsa maxima de
cinsprezece ani cu executare.

In situat ia n care niciunul nu recunoaste, procurorul
propune, pentru alt delict ce l poate dovedi, pentru ecare din cei doi suspet i,
pedeapsa de un an. Care este decizia pe care o iau cei doi suspect i de trac de
droguri?
Raspuns. Forma matriceala a jocului este:
A/B coopereaza nu coopereaza
coopereaza (3, 3) (0, 15)
nu coopereaza (15, 0) (1, 1)
Valoarea inferioara a jocului este = 3, valoarea superioara a jocului ind =
3, deci jocul este cu punct sa. Aceasta dilema, n care se aa cei doi suspect i, poate
numita paradox, deoarece decizia acestora luata individual si constient (aceea de
a marturisi) si decizia colectiva (aceea de a tainui) sunt divergente.
Capitolul 4
TEORIA DECIZIILOR
STATISTICE
4.1. Prezentarea problemelor
Situat iile reale necesita adoptarea unor decizii ce trebuie determinate utilizand
diverse criterii. Spre deosebire de statistica matematica clasica, care se ocupa de
dezvoltarea unor teorii si tehnici de inferent a asupra parametrului , utilizand numai
informat ia de select ie, teoria deciziilor statistice combina informat ia de select ie cu
alte doua aspecte importante legate de consecint ele posibile ale adoptarii unei decizii
si de informat ia a priori cu privire la parametrul .
Cunoasterea consecint elor posibile ale adoptarii diferitelor decizii presupune o
exprimare cantitativa a castigului sau pierderii produse pentru ecare decizie posi-
bila si pentru diferitele valori posibile ale parametrului . Funct ia astfel obt inuta, ce
depinde de decizia adoptata si de parametrul , apare n literatura de specialitate
sub diferite denumiri ca funct ie castig sau funct ie utilitate.
Informat ia a priori cu privire la parametrul se obt ine din alte surse decat cele de
natura statistica ce implica problema de decizie respectiva. Este o informat ie care se
obt ine dintr-o experient a trecuta cu privire la situat ii similare ce implica parametrul
. Aceasta informat ie a priori este cuanticata printr-o distribut ie de probabilitate
cu privire la parametrul . Problema existent ei acestei distribut ii este o problema
destul de discutata. Abordarea teoriei deciziilor prin intermediul unei distribut ii
a priori corespunde abordarii bayesiane. Problemele legate de teoria deciziilor pot
ncadrate n cadrul teoriei jocurilor ceea ce justica prezentarea acestui capitol
dupa capitolul corespunzator teoriei jocurilor. Decidentul poate avea sau nu posi-
bilitatea efectuarii unor experient e a priori luarii deciziei. Astfel, avem decizii fara
experient a a priori, decizii cu experient a unica (sau decizii cu volum de esantionaj
45
46 TEORIA DECIZIILOR STATISTICE
dat, n care decizia se ia dupa efectuarea tuturor observat iilor) si decizii secvent iale
(pe baza observat iei se poate decide efectuarea unei noi observat ii sau luarea unei
decizii corespunzatoare). Astfel, paragrafele 4.2 si 4.3 ale acestui capitol abordeaza
strategiile de luare a deciziilor n situat iile n care nu avem experient e a priori, re-
spectiv situat ia unei experient e de volum xat. Deciziile se pot lua n condit ii de risc
(dispunem de informat ie a priori cu privire la starea parametrului ) sau n condit ii
de incertitudine. Astfel, paragraful 4.4 prezinta o serie de criterii pentru alegerea
deciziilor optime n caz de incertitudine.
4.2. Strategii Bayes si strategii minimax
Pentru a xa ideile sa presupunem ca mult imea parametrilor de stare (necunos-
cuta) este nita = {
1
, . . . ,
m
}. Sa presupunem ca avem o informat ie a priori
despre data de distribut ia de probabilitate a priori (). Aceasta distribut ie se
numeste strategie mixta. Sa presupunem ca avem mult imea strategiilor pure:
A = {a
1
, ..., a
n
}.
Sa notam prin L(, a) valoarea funct iei de pierdere:
L : A R
+
,
care este pierderea obt inuta daca se adopta decizia a si starea parametrului este .
Pierderea medie este denita ca:
L(, a) = M[L(, a)] =

L(, a)(), pentru orice a A.


Numim strategie Bayes act iunea cea mai favorabila a

care minimizeaza pierderea


medie, adica a

pentru care:
L(, a

) = min
aA
L(, a).
Numim strategie minimax act iunea cea mai favorabila a

care minimizeaza pier-


derea maxima, adica a

pentru care:
max

L(, a

) = min
aA
max

L(, a).
Daca nu ne limitam numai la strategiile pure, atunci vom folosi o combinat ie
de strategii pure alese dupa o lege de probabilitate. Aceasta strategie se numeste
strategie mixta.
CAZUL EFECTU

ARII UNOR EXPERIENT E UNICE 47


Fie (a) = ((a
1
), ..., (a
m
)) distribut ia de probabilitate care deneste probabili-
tatea cu care se folosesc strategiile pure a
1
, ..., a
m
.

In general, dispunem de o mult ime


de strategii mixte:
H = {
1
(a), ...,
p
(a)}.
Atunci pierderile medii sunt date de:
L(, ) = M
,a
(L(, a)) =

aA
L(, a)()(a).

In acest caz trebuie gasita acea strategie mixta

H pentru care pierderile


medii sa e minime:
L(,

) = min
H
L(, ),
sau acea strategie mixta

H pentru care pierderile maxime sa e minime:


max

L(,

) = min
H
max

L(, ).
4.3. Cazul efectuarii unor experient e unice
Sa presupunem ca decidentul, pentru a-si largi cunostint ele despre starile naturii,
opteaza pentru efectuarea unei experient e unice (de exemplu, pentru a estima inu-
ent a unui anumit tip de medicament asupra unei categorii de pacient i, se poate face
o experient a unica ce consta n masurarea zilnica, timp de mai multe luni, a unei
concentrat ii, dintr-un anumit tip de compus proteic, pentru m pacient i din categoria
respectiva).
Fie Z spat iul rezultatelor z
1
, ..., z
l
ale experient ei. Fiecarui rezultat z Z obt inut
cand starea i corespunde o probabilitate determinata de p(z|), care satisface
relat iile:
_
p(z|) 0, pentru orice z Z

zZ
p(z|) = 1.
Denit ia 4.3.1. Tripletul format din spat iul rezultatelor experient ei Z, spa-
t iul starilor naturii si distribut ia condit ionata p(z|) denita pe Z pentru ecare
, se numeste spat iu de esantionaj. Vom nota acest lucru cu E = (Z, , p).
Denit ia 4.3.2. Se numeste funct ie de decizie funct ia d : Z A, si asociaza
ecarui rezultat z
k
Z o act iune a
j
A, j = 1, n.
48 TEORIA DECIZIILOR STATISTICE
Pierderea suferita n cazul n care starea parametrului este
i
, i = 1, m este
data de:
L(
i
, a
j
) = L(
i
, d(z
k
)) = L
z
k
(
i
, d).
Pentru un dat, rezultatul z al experient ei va o variabila aleatoare determinata de
probabilitatea condit ionata p(z|), deci si pierderile L
z
(, d) sunt variabile aleatoare
si se vor realiza cu aceeasi probabilitate.
Denit ia 4.3.3. Numim funct ie de risc funct ia : D R data de:
(, d) = M[L
z
(, d)] =

zZ
L
z
(, d)p(z|),
si reprezinta valorea medie a pierderii pe spat iul rezultatelor Z.
Se ajunge la concluzia ca spat iul deciziilor D joaca n problema strategiei n cazul
efectuarii unei experient e unice, acelasi rol ca spat iul A n problema strategiei fara
experient e. Deci metodele de rezolvare ale celor doua tipuri de probleme vor
asemanatoare.
Se pot aborda strategii mixte (d) denite pe spat iul D. Funct ia de risc este n
acest caz:
(, ) = M[(, d)] =

dD
(, d)(d)
=

dD

zZ
L
z
(, d)p(z|)(d).
Principiul minimax consta din alegerea acelei strategii

(d) pentru care riscul


mediu este cel mai mic, n cazul n care starea parametrului este cea mai defavo-
rabila. Strategia

(d) se alege astfel ncat:


(,

) = min

max

(, ),
iar valoarea corespuzatore a riscului se numeste risc minimax.
Principiul lui Bayes minimizeaza riscul mediu denit de:
(, d) =

(, d)().
Strategia pura d

se alege astfel ncat:


(, d

) = min
dD
(, d).
DECIZII OPTIME N CAZ DE INCERTITUDINE 49
4.4. Decizii optime n caz de incertitudine
Pana n acest punct au fost tratate procesele de decizii n condit ii de risc, ceea
ce reprezinta faptul ca sunt cunoscute (sau se pot determina) probabilitat ile cores-
punzatoare parametrului .

In continuare ne vom ocupa de procesele de decizie desfasurate n condit ii de


incertitudine, deci cand nu se cunosc probabilitat ile corespunzatoare lui . Faptul
ca atitudinea fat a de decizie este subiectiva face ca n teoria deciziilor sa nu existe
criterii universal valabile. Vom prezenta cateva criterii de alegere a deciziei n caz de
incertitudine, precizand ca aplicarea lor poate duce la rezultate diferite. Un mod de
a alege o decizie ar putea acela al alegerii strategiei indicate ca rezultat al aplicarii
mai multor criterii.
Sa consideram situat ia n care dispunem de m strategii pure a
1
, . . . , a
m
, iar para-
metrul are n stari posibile
1
, . . . ,
m
. Elementul q
ij
va reprezenta castigul realizat
daca se adopta act iunea a
i
si starea parametrului este
j
, i = 1, m, j = 1, n.
4.4.1. Criteriul lui Hurwicz
Criteriul lui Hurwicz sau criteriul optimismului alege ca strategie optima acea
act iune a
i
care corespunde la:
max
i
[Q
i
+ (1 )q
i
],
unde [0, 1] se numeste optimismul decidentului, iar q
i
= min
j
q
ij
si Q
i
= max
j
q
ij
.
4.4.2. Criteriul lui Savage
Criteriul lui Savage sau criteriul regretelor alege ca strategie optima acea act iune
a
i
care corespunde la:
min
j
max
i
b
ij
= max
i
min
j
b
ij
,
(daca nu se poate alege o strategie pura, adica matricea nu are punct sa, se va deter-
mina o strategie mixta optima), unde matricea regretelor (diferent a dintre castigul
realizat prin luarea unei decizii fara a cunoaste starea naturii si cel realizat daca se
cunosteau aceste stari) este denita ca:
b
ij
= max
k
q
kj
q
ij
, i = 1, m, j = 1, n.
50 TEORIA DECIZIILOR STATISTICE
4.4.3. Criteriul Bayes-Laplace
Criteriul lui Bayes-Laplace alege ca strategie optima acea act iune a
i
care core-
spunde la:
max
i
[
1
n
n

j=1
q
ij
],
adica se presupune ca toate starile naturii au aceeasi probabilitate.
4.4.4. Criteriul lui Wald
Criteriul lui Wald alege, daca jocul are punct sa, ca strategie optima acea act iune
a
i
care corespunde la principiul minimax. Daca jocul nu are punct sa, atunci se
determina strategia mixta optima cu probabilitat ile x
1
, ..., x
m
care maximizeaza:
min
j
[
m

i=1
q
ij
x
i
].
4.5. Aplicat ii
Exercit iul 4.5.1. O linie de fabricare a cimentului poate folosi ca materie prima
trei tipuri de nisip ai carui parametri sunt
1
,
2
, respectiv
3
. Se stie ca linia tehno-
logica poate folosi n medie 60% din primul tip, 30% din al doilea tip si 10% din
al treilea tip si ca poate funct iona n trei regimuri a
1
, a
2
si a
3
. Pierderile reectand
calitatea sunt date n tabelul 4.1.
TABELUL 4.1
() a
1
a
2
a
3

1
0, 6 0 2

2
0, 3 0, 5 2 1

3
0, 1 1 3
Sa se calculeze pierderile medii corespunzatoare repartit iei a priori. Care este
strategia optima n sensul lui Bayes?
Raspuns. Pierderile medii corespunzatoare probabilitat ii a priori sunt:
L(, a
1
) = 0 0, 6 + 0, 5 0, 3 + 1 0, 1 = 0, 25
L(, a
2
) = 0, 6 + 2 0, 3 + 0, 1 = 1, 3
APLICAT II 51
L(, a
3
) = 2 0, 6 + 1 0, 3 + 3 0, 1 = 1, 8.
Strategia Bayes este acea act iune care minimizeza pierderea medie adica strategia
a
1
daca
5
26
sau strategia a
2
daca
5
26
.
Remarcam ca pentru =
5
26
avem doua strategii optime si anume a
1
si a
2
.
Exercit iul 4.5.2. Aceeasi problema ca la 4.5.1. ca de aceasta data dispunem
de o strategie mixta cu frecvent ele 20%, 30%, respectiv 50%.
Exercit iul 4.5.3. Se considera jocul contra naturii n forma matriceala:
TABELUL 4.2
A/B
1

2

3

4

5
a
1
3 5 4 2 1
a
2
2 3 1 0 1
a
3
4 1 1 0 3
a
4
5 0 3 2 4
Matricea jocului este alcatuita n raport cu jucatorul statistician A (maximizant)
si reprezinta castigurile realizate de acesta.
Sa se aplice criteriile lui Hurwicz, Savage, Bayes si Wald pentru alegerea deciziei
optime.
Raspuns. i) Pentru aplicarea criteriului lui Hurwicz:
TABELUL 4.3

1

2

3

4

5
Q
i
q
i
Q
i
+ (1 )q
i
a
1
3 5 4 2 1 4 5 9 5
a
2
2 3 1 0 1 3 1 4 1
a
3
4 1 1 0 3 4 1 5 1
a
4
5 0 3 2 4 5 0 5
determinam:
max
i
[Q
i
+ (1 )q
i
] = 5
unde [0, 1]. Deci strategia optima este a
4
.
ii) Pentru aplicarea criteriului lui Savage se determina matricea regretelor:
52 TEORIA DECIZIILOR STATISTICE
TABELUL 4.4
(b
ij
)
1

2

3

4

5
min
j
b
ij
a
1
2 8 0 0 3 0
a
2
3 0 3 2 5 0
a
3
1 4 3 2 1 1
a
4
0 3 1 0 0 0
max
i
b
ij
3 8 3 2 5 2\1
Se observa faptul ca jocul nu are punct sa, si, deci vom determina strategia mixta
cu ajutorul algoritmului simplex primal sau dual. Solut ia problemei atasate se poate
rezolva cu ajutorul programului MAPLE, iar sintaxa pentru aceasta este:
> with(simplex) :
> minimize(x + y + z + w, 2 x + 3 y + z >= 1, 8 x + 4 z + 3 w >=
1, 3 y + 3 z >= 1,
2 y + 2 z >= 1, 3 x + 5 y +z >= 1, NONNEGATIV E);
solut ia problemei ind x = 0, y = 1/4, z = 1/4, w = 0. Aceasta conduce la
strategia mixta optima:
x
1
= 0, x
2
=
1
2
, x
3
=
1
2
, x
4
= 0.
iii) Pentru aplicarea criteriului lui Bayes-Laplace vom considera echiprobabile
starile
i
:
TABELUL 4.5

1

2

3

4

5
1
n
n

j=1
q
ij
a
1
3 5 4 2 1 1
a
2
2 3 1 0 1 1
a
3
4 1 1 0 3 7/5
a
4
5 0 3 2 4 14/5
deci statisticianul va alege strategia a
4
deoarece aceasta maximizeaza:
1
n
n

j=1
q
ij
.
iv) Pentru aplicarea criteriului lui Wald, deoarece jocul nu are punct sa statisti-
cianul va alege o strategie mixta cu probabilitat ile x
1
, ..., x
m
care maximizeaza:
min
j
[
m

i=1
q
ij
x
i
].
APLICAT II 53
Strategia optima se determina cu ajutorul algoritmului simplex. Sintaxa MAPLE
pentru rezolvarea problemei de programare liniara atasata jocului este:
> with(simplex) :
> minimize(x+y +z +w, 2x+2y +4z +5w >= 1, 5x+3y z >= 1,
4 x + y + z + 3 w >= 1, 2 x + 2 w >= 1, x y + 3 z + 4 w >=
1, NONNEGATIV E); iar solut ia acesteia este x = 0, y = 2/5, z = 0, w = 3/5.
Aceasta conduce la strategia optima:
x
1
= 0, x
2
=
2
5
, x
3
= 0, x
4
=
3
5
,
valoarea x
3
= 0 se explica prin faptul ca strategia a
3
a
4
.
Exercit iul 4.5.4. Se considera jocul contra naturii n forma matriceala:
TABELUL 4.6
A/B
1

2

3

4

5
a
1
3 5 4 2 1
a
2
2 3 1 0 1
a
3
4 1 1 0 3
a
4
5 0 3 2 4
Matricea jocului este alcatuita n raport cu jucatorul statistician A (maximizant)
si reprezinta castigurile realizate de acesta. Dispunem de urmatorea distribut ie a
priori asupra parametrului :(0, 2; 0, 1; 0, 1; 0, 1; 0, 6). Care sunt pierderile medii
corespunzatoare distribut iei a priori? Care este act iunea optima Bayes corespunza-
toare?
54 TEORIA DECIZIILOR STATISTICE
Capitolul 5
TEORIA GRAFURILOR
5.1. Grafuri orientate
Acest capitol este dedicat n special prezentarii unor not iuni elementare de teoria
grafurilor punandu-se accentul pe algoritmii lui Ford, Bellman-Kalaba si Dijkstra de
determinare a drumurilor optime ntr-un graf.

Incepem printr-o serie de denit ii.


Denit ia 5.1.1. Un graf orientat G este o pereche G = (X, A), unde X este o
mult ime nita, iar A X X. Elementele x X se numesc noduri ale grafului G,
iar perechile (x, y) A se numesc arce ale grafului. Pentru un arc (x, y) A, varful
x se numeste extremitate init iala sau sursa, iar y, extremitate nala sau destinat ie.
Denit ia 5.1.2. Un graf neorientat va notat cu G = (X, U), unde X reprezin-
ta mult imea nodurilor (varfurilor) grafului, iar U mult imea muchiilor. Prin muchie
se va nt elege perechea u = {i, j}, i, j X . Daca i = j perechea {i, j} este egala
cu perechea {j, i}, iar muchiile ordonate (i, j) si (j, i) reprezinta arce distincte. O
muchie se reprezinta printr-o linie care uneste cele doua noduri si se noteaza cu
u = [i, j], i, j X.
Denit ia 5.1.3. O ruta orientata este un arc (i, j) din G si i se poate asocia o
valoare numerica v(u) sau v
ij
cu semnicat ie reala de lungime, distant a, cost etc.
Denit ia 5.1.4. Un drumntre s si t se deneste ca o succesiune de rute orien-
tate : [(s, i
1
), . . . , (i
n
, t)] cu proprietatea ca (s, i
1
), . . . , (i
n
, t) sunt arce n graf.
Denit ia 5.1.5. Un drum care nu trece de doua ori printr-un nod al sau se
numeste drum elementar.
55
56 TEORIA GRAFURILOR
Drumurile elementare vor determinate n acesta lucrare. Unui drum i se
asociaza valoarea drumului v() = v
si
1
+. . . +v
i
n
t
. Numarul de arce prin care trece
un drum se numeste lungimea drumului. Un drum al grafului G poate dat ca
un sir de noduri, : [s, i
1
, . . . , i
n
, t] unde (s, i
1
), . . . , (i
n
, t) sunt rute orientate.
Se pune problema determinarii unui drum

de la s la t cu valoare minima,
adica:
v(

) = min
M(s,t)
v(),
unde M(s, t) este mult imea drumurilor n graful G de la s la t.
Avem urmatoarea teorema de invariant a la multiplicare.
Teorema 5.1.1. Fie un graf orientat G si D un drum de lungime minima ntre
doua noduri s si t. Daca valorile ecarei muchii se nmult esc cu un parametru real
strict pozitiv , atunci n noul graf G

drumul de lungime minima dintre nodurile s


si t este identic (ca succesiune a nodurilor) cu drumul de lungime minima din graful
G, iar ntre valorile L

(s, t) si L(s, t) ale celor doua drumuri exista relat ia:


L

(s, t) = L(s, t).


Nu se poate formula o regula de invariant a relativ la operat ia aditiva (valorile
ecarei muchii se aduna cu un numar real pozitiv). Gasirea unui contraexemplu se
lasa pe seama cititorului.
5.2. Algoritmul lui Kaufmann
Denit ia 5.2.1. Fie G = (X, A) un graf orientat. Vom nota mult imea nodurilor
cu {x
1
, . . . , x
n
}. Matricea A = (a
ij
) data de a
ij
= 1 daca (x
i
, x
j
) A si a
ij
= 0
daca (x
i
, x
j
) / A se numeste matricea arcelor. Matricea D = (d
ij
) data de relat iile
d
ij
= 1 daca exista drum de la i la j si d
ij
= 0 daca nu exista drum de la i la j se
numeste matricea drumurilor.
Remarcam ca ntr-un graf avand n noduri orice drum elementar are lungimea de
cel mult n 1.
Denit ia 5.2.2. Puterea de atingere p(x
i
) a unui varf x
i
X n graful G =
(X, A) este egala cu numarul de varfuri la care se poate ajunge din x
i
, adica cu
ponderea Hamming a vectorului reprezentat de linia i a matricei D.
Sa notam prin
(k)
(x
i
) mult imea de varfuri din G la care se poate ajunge din x
i
folosind drumuri elementare formate din k arce. Avem urmatorea teorema:
ALGORITMUL LUI CHEN 57
Teorema 5.2.1. Fie G un graf avand n varfuri, atunci elementul d
ij
= = 1
daca si numai daca avem relat ia:
x
j

n1
_
k=1

(k)
(x
i
)
Problema determinarii eciente a matricei drumurilor a fost rezolvata de A. Kauf-
mann, iar algoritmul corespunzator se mai numeste si algoritmul nmult irii latine.
PASUL 0. Se construieste matricea conexiunilor directe, notata prin K
(1)
n care
se trec efectiv arcele, inexistent a unui arc (0 n matricea drumurilor) ind marcata
prin .
PASUL 1. Se construieste matricea destinat iilor posibile K
(0)
.
PASUL 2. Se compun (nmult ire latina) matricele K
(1)
si K
(0)
: K
(1)
&K
(0)
.
PASUL k. Recursiv, calculam matricea K
(k+1)
= K
(k)
&K
(0)
, care ne va da
lista drumurilor formate din k + 1 arce.
Observat ie. Regula de nmult ire latina respecta regula de nmult ire a matricelor
si n plus daca unul din elementele participante la calcul este , atunci rezultatul
este si n caz contrar rezultatul compunerii consta n concatenarea simbolurilor
participante.
5.3. Algoritmul lui Chen
Denit ia 5.3.1. Un drum elementar se numeste drum hamiltonian daca trece
o singura data prin toate nodurile grafului.
Urmatoarea teorema, atribuita lui Chen, este o condit ie necesara si sucienta
pentru ca un graf fara circuite sa cont ina un drum hamiltonian.
Teorema 5.3.1. Un graf fara circuite, care are n noduri, cont ine un drum
hamiltonian, daca si numai daca avem:
n

i=1
p(x
i
) =
n(n 1)
2
.
Remarcam ca ntr-un graf fara circuite (un drumn care extremitat ile coincid se
numeste circuit), exista cel mult un drum hamiltonian.
Algoritmul de determinare a drumurilor hamiltoniene n grafuri fara circuite este
prezentat n cele ce urmeaza.
PASUL 0. Pentru graful G scriem matricea drumurilor D = (d
ij
), ordonand
varfurile n ordine descrescatoare a puterii de atingere (prin aceasta operat ie, daca
58 TEORIA GRAFURILOR
graful nu are circuite atunci toate valorile de 1 din matrice vor aparea deasupra
diagonalei principale).
PASUL 1. Daca exista un indice i pentru care d
ii
= 1, atunci graful are circuite
si algoritmul se opreste, deoarece acesta nu se poate aplica.
PASUL 2. Daca n matricea D exista
n(n 1)
2
valori de 1, atunci graful admite
un drum hamiltonian si se trece la pasul 3; n caz contrar graful nu are un drum
hamiltonian, iar algoritmul se opreste.
PASUL 3. Ordinea varfurilor n cadrul drumului hamiltonian este data de
ordinea descrescatoare a puterilor de atingere.
Pentru grafurile care au circuite algoritmul de determinare a drumurilor hamil-
toniene este dat de algoritmul lui Kaufmann prezentat anterior. Astfel prezent a
unui element diferit de pe diagonala uneia dintre matricele K
(k)
din cadrul acestui
algoritm indica atat prezent a unui circuit hamiltonian cat si ordinea varfurilor.
5.4. Algoritmul lui Ford
Algoritmul lui Ford determina drumurile de valoare minima ntr-un graf orientat
G = (X, A) cu si fara circuite, de la un nod s la toate celelalte noduri. Fie l(u)
valoarea unui arc u A.

In particular, n cazul n care se cere, algoritmul determina drumurile de valoare


minima de la nodul s la orice alt nod t. Daca graful este neorientat sau part ial
orientat, ecarei muchii u cu extremitat ile i si j si valoarea l(u) i se asociaza doua
arce (i, j) si (j, i) cu aceeasi valoare l
ij
= l
ji
= l(u).
Fiecarui nod j i se asociaza o variabila
j
care va da valoarea cea mai mica de la
nodul s la nodul j, (
s
= 0).
PASUL 0. Se ntocmeste un tabel cu toate nodurile grafului si corespunzator
cu valorile:

s
= 0,
j
= , j = s.
PASUL 1. Pentru toate arcele (i, j) A se compara (daca are sens) diferent a

j

i
cu valoarea l
ij
:
daca
j

i
> l
ij
, atunci
j
=
i
+l
ij
,
daca
j

i
l
ij
, atunci se trece la determinarea altui arc.
Se repeta pasul 1 ntr-o noua iterat ie pana cand, pentru toate arcele (i, j) A,
se verica relat ia:

j

i
l
ij
,
dupa care se trece la pasul 2.
PASUL 2. Drumurile de valoare minima de la nodul s la celelalte noduri se re-
constituie din arcele (i, j) care verica relat ia cu egalitate, adica
j

i
= l
ij
. Arcele
ALGORITMUL BELLMAN-KALABA 59
care verica aceasta egalitate formeaza un graf part ial al drumurilor de lungime
minima de la nodul s la toate celelalte noduri ale grafului.
Drumurile de valoare maxima se pot obt ine cu algoritmul lui Ford init ializand

s
= 0,
j
= , j = s si nlocuind inegalitat ile (>, ) din pasii 1 si 2 prin (<, ),
iar cuvantul min prin max.
5.5. Algoritmul Bellman-Kalaba
Algoritmul Bellman-Kalaba este un algoritm care se aplica unui graf orientat cu
si fara circuite, cu ajutorul caruia se determina drumul minim sau drumurile minime
de la toate nodurile grafului la un nod nal t. Fie l(u) valoarea unui arc u .
Daca graful este neorientat, ecarei muchii cu extremitat ile i si j si cu valoarea l(u)
se asociaza doua arce (i, j) si (j, i) cu valori egale l
ij
= l
ji
= l(u).
PASUL 0.
Se asociaza grafului G o matrice V = (v
ij
) ale carei elemente se determina astfel:
v
ij
=
_
_
_
l
ij
daca (i, j)
0 daca i = j
daca (i, j) / .
De asemenea, se adauga la matricea V o noua linie v
(0)
= {v
(0)
i
}, unde ecarui
nod i al grafului se asociaza un element v
(0)
i
, astfel:
v
(0)
i
= v
it
, i = t,
v
(0)
t
= 0.
Linia v
(0)
i
, conform acestor relat ii, coincide cu transpusa coloanei nodului t.
PASUL k. Se adauga la matricea V linia v
(k)
i
= {v
(k)
i
}. Elementele v
(k)
i
se
calculeaza cu relat iile:
v
(k)
i
= min
j=i
{v
(k1)
i
+v
ij
}, i = t,
v
(k)
t
= 0.
Algoritmul se opreste, ntr-o etapa, daca:
v
(k)
i
= v
(k1)
i
, pentru orice nod i.
60 TEORIA GRAFURILOR
Marimea v
(k)
i
reprezinta valoarea drumului minim de la varful i la nodul nal t.
Daca:
v
(k)
i
= v
(k1)
j
+v
tj
,
atunci primul arc n drumul de valoare minima de la nodul i la nodul t este arcul
(i, j). Vom nota cu:
succ
(k)
i
= {j|v
(k)
i
= v
(k1)
j
+v
ij
, j = i}
si marcam printr-o noua linie succ
(k)
la matricea V imediat dupa linia v
(k)
. Daca
v
(k)
i
= , atunci succ
(k)
i
= .
Drumul de valoare minima de la nodul i la nodul nal t este determinat numai
de nodurile marcate prin succ
(k)
, ncepand cu cele din coloana i.
Observat ii:
i) Algoritmul lui Ford determina drumurile de valoare minima (sau maxima) care
pleaca de la un nod sursa s catre toate celelalte noduri ale grafului.
ii) Algoritmul Bellman-Kalaba determina drumurile de valoare minima (sau ma-
xima) care sosesc ntr-un nod nal t de la celelalte noduri ale grafului.
5.6. Algoritmul lui Dijkstra
Ideea de baza a algoritmului lui Dijkstra este de a pleca din nodul s si de a eticheta
celelalte noduri n ordinea departarii lor, n sensul lungimii, de nodul sursa s.
Fiecarui nod j i se asociaza o variabila p(j), care n orice moment va ret ine cea
mai mica lungime a drumurilor de la s la i (p(s) = 0).
Se vor considera doua liste Lsi T. Lista L este lista nodurilor permanente (valorile
sunt xate), iar T este o lista cu noduri temporare (valorile pot modicate). Init ial,
lista L = {s} iar lista si T se compune din acele nodurie j X pentru care ruta
(s, j) este permisa. Un nod i

din lista T a carui variabila p(i

) are valoarea cea mai


mica se include n lista L.

In lista T se includ apoi, toate nodurile j, care nu sunt
nscrise n aceasta lista si ruta (i, j) este permisa.
Pentru a reconstrui drumurile de lungime minima de la s la toate nodurile ce pot
atinse din s, folosind rute orientate permise ale grafului, se introduce pentru ecare
nod j = s din graf un indicator pred(j), care va ret ine n orice moment ultimul nod
dinaintea lui j, pe drumul de la s la j care a fost gasit a avea cea mai scurta lungime
pana n acel moment (pred(s) = 0).
Algoritmul lucreaza ntr-un tabel cu coloanele: iterat ia, lista L, nodul j, variabila
p(j) si indicatorul pred(j). Faptul ca un nod j este inclus n lista permanenta L,
se marcheaza prin n stanga tabelului (coloana L), n dreptul nodului j.

In orice
moment, nodurile din tabel fara marcajul apart in listei temporare T.
ARBORI MINIMALI 61

In stanga tabelului se precizeaza iterat ia n care nodul respectiv este permanen-


tizat n lista L, prin marcarea cu .
PASUL 0. Tabelul cont ine nodul s marcat cu si acele noduri j pentru care
ruta orientata (s, j) este permisa. Corespunzator p(s) = 0, p(j) = v
sj
, pred(j) = s.
Se considera marcarea nodului s ca ind iterat ia 0.
Iterat ia k.
PASUL 1. Dacan tabel lista T este vida, atunci toate nodurile sunt permanente
(marcate cu ). Graful este analizat n ntregime si algoritmul se opreste.
PASUL 2. Se alege i

T cu proprietatea:
p(i

) = min
jT
p(j).
Daca i

t algoritmul se opreste, si se determina drumul de lungime minima de


la s la t.

In caz contrar, nodul i

este transferat n lista L, prin marcarea cu si


astfel este scos din lista T.

In lista T se nscriu toate nodurile j T cu proprietatea
ca ruta (i

, j) este permisa. Se iau p(j) = si pred(j) = .


PASUL 3. Se corecteaza valorile variabilelor corespunzatoare nodurilor j T
adiacente cu nodul i

comparand:
p(j) cu p(i

) +v
i

j
.
a) daca p(j) > p(i

) +v
i

j
, atunci p(j) = p(i

) +v
i

j
si pred(j) = i

;
b) daca p(j) = p(i

) +v
i

j
, atunci i pred(j);
c) daca p(j) < p(i

) +v
i

j
, atunci se trece la examinarea unui nod din lista T.
Dupa epuizarea listei T se reia pasul 1 n cadrul urmatoarei iterat ii. Dupa oprirea
algoritmului si atingerea nodului t (n pasul 2) drumul de lungime minima se recon-
stituie din aproape n aproape de la nodul t catre nodul s cu ajutorul indicatorilor
pred(j).
Daca nodul t nu este evident iat, dupa oprirea algoritmului se reconstituie, n
acelasi fel, graful drumurilor de lungime minima de la s la orice alt nod n graf.
5.7. Arbori minimali
Denit ia 5.7.1. Se numeste arbore un graf neorientat nit, conex (ntre orice
doua noduri ale sale s si t exista un drum) si fara cicluri.
Problema ce urmeaza sa o rezolvam are forma: ind dat un graf G neorientat,
conex sa se extraga din G un arbore part ial pentru care suma valorilor muchiilor
este minima.
62 TEORIA GRAFURILOR
Vom presupune, pentru a simplica ideile, ca ntre orice doua noduri ale grafului
G exista cate o muchie, si ca toate valorile muchiilor sunt diferite doua cate doua.
Fie A = {a
1
, . . . , a
m
} mult imea muchiilor grafului. Vom nota cu p
i
= p(a
i
) valoarea
muchiei a
i
. Vom presupune deci ca p
1
< . . . < p
m
.
5.7.1. Algoritmul lui Kruskal
PASUL 1. Se alege muchia a
1
de valoare minima.
PASUL 2. Se alege muchia a
2
de valoare minima ramasa.
PASUL 3. Se atribuie S = {a
1
, a
2
}.
PASUL 4. Daca am acoperit toate nodurile grafului, atunci algoritmul se
opreste.
Se alege muchia a
r
, de valoare minima, din A S, care nu formeaza cicluri cu
muchiile lui S.
PASUL 5. Se actualizeaza S = S {a
r
} si goto PASUL 4.
Observat ie. Daca exista n graf muchii de valori egale, atunci s-ar putea ca
problema sa admita mai multe solut ii.
5.8. Aplicat ii
Exercit iul 5.8.1. Posibilitat ile de comunicare ntre localitat ile 1-6 sunt repre-
zentate prin graful din gura 5.1, unde ecarei muchii (sau arc) i se atribuie lungimea
tronsoanelor respective. Se cere drumul de lungime minima ntre 1 si 6.
Figura 5.1: Graf orientat.
Rezolvare. Pentru rezolvarea problemei vom aplica algoritmul lui Ford. Problema
se poate rezolva si cu algoritmul lui Bellman-Kalaba.
PASUL 0.
1
= 0,
j
= , j = 1 .
APLICAT II 63
TABELUL 5.1
j
j
Init ializare Iterat ia 1 Iterat ia 2
1
1
0 0 0
2
2
2 2
3
3
8,5 5
4
4
10,8 8
5
5
7 7
6
6
13,11 11
PASUL 1.
Iterat ia 1. Pentru ecare arc (i, j) daca se verica
j

i
> l
ij
, atunci
j
=

i
+l
ij
.
(1, 2)
2

1
= > 2, atunci
2
=
1
+l
12
= 0 + 2 = 2,
(1, 3)
3

1
= > 8, atunci
3
=
1
+l
13
= 0 + 8 = 8,
(2, 1)
1

2
= 0 2 = 2 < 2,
(2, 3)
3

2
= 8 2 = 6 > l
23
= 3, atunci
3
=
2
+l
23
= 2 + 3 = 5,
(2, 4)
4

2
= > 8, atunci
4
=
2
+l
24
= 2 + 8 = 10,
(3, 1)
1

3
= 0 5 = 5 < l
31
= 8,
(3, 2)
2

3
= 2 5 = 3 < l
32
= 4,
(3, 4)
4

3
= 10 5 = 5 = l
34
= 5,
(3, 5)
5

3
= 5 = > l
35
= 2, atunci
5
=
3
+l
35
= 5 + 2 = 7,
(4, 2)
2

4
= 2 10 = 8 < l
42
= 8,
(4, 3)
3

4
= 5 10 = 5 < l
43
= 5,
(4, 5)
5

4
= 7 10 = 3 < l
45
= 3,
(4, 6)
6

4
= > l
46
, atunci
6
=
4
+l
46
= 10 + 3 = 13,
(5, 3)
3

5
= 5 7 = 2 < l
53
= 2,
(5, 4)
4

5
= 10 7 = 3 > l
54
= 1, atunci
4
=
5
+l
54
= 7 + 1 = 8,
(5, 6)
6

5
= 13 7 = 5 > l
56
= 4, atunci
6
=
5
+l
56
= 7 + 4 = 11.
Iterat ia 2. Se reia pasul 1.
(1, 2)
2

1
= 2 = l
12
,
(1, 3)
3

1
= 5 < l
13
= 8,
(2, 1)
1

2
= 2 < l
21
= 2,
(2, 3)
3

2
= 3 = l
23
,
(2, 4)
4

2
= 6 < l
24
= 8,
(3, 1)
1

3
= 5 < l
31
= 8,
(3, 2)
2

3
= 3 < l
32
= 4,
(3, 4)
4

3
= 3 < l
34
= 5,
(3, 5)
5

3
= 2 = l
35
,
(4, 2)
2

4
= 6 < l
42
= 5,
64 TEORIA GRAFURILOR
(4, 3)
3

4
= 3 < l
43
= 5,
(4, 5)
5

4
= 1 < l
45
= 3,
(4, 6)
6

4
= 3 = l
46
,
(5, 3)
3

5
= 2 < l
53
= 2,
(5, 4)
4

5
= 1 = l
54
,
(5, 6)
6

5
= 4 = l
56
.

In aceasta iterat ie valorile variabilelor


j
nu s-au modicat. Aceasta nseamna ca
algoritmul s-a terminat, iar drumurile minime ntre 1 si 6 sunt date de arcele (i, j)
care realizeaza egalitat ile
j

i
= l
ij
. Aceste arce au fost marcate cu litere bold
n cadrul algoritmului.

In etapa a doua arcele care realizeaza aceste egalitat i sunt:
(1, 2), (2, 3), (3, 5), (4, 6), (5, 4), (5, 6).
Astfel ntre 1 si 6 am doua drumuri minime si anume:

1
: [1, 2, 3, 5, 4, 6], l(
1
) = 11,
si

2
: [1, 2, 3, 5, 6], l(
2
) = 11.
Exercit iul 5.8.2. Se considera graful din gura 5.2. Sa se determine rutele de
cost minim de la ecare nod la nodul 6.
Figura 5.2: Graf orientat.
Rezolvare. Pentru rezolvarea problemei aplicam algoritmul Bellman-Kalaba.
Init ializare:
v
(0)
i
= v
i6
, i = 1, 2, 3, 4, 5
v
(0)
6
= 0.
APLICAT II 65
Se scriu aceste valori n linia v
(0)
a tabelului 5.2. Deci, coloana 6 este transpusa n
linia de nceput v
(0)
.
TABELUL 5.2
1 2 3 4 5 6
1 0 3 1 3
2 3 0 5 8
3 1 5 0 2
4 0 3 2
5 3 4 0 8
6 0
v
(0)
2 8 0
v
(1)
11 10 10 2 6 0
succ
(1)
5 4 4 6 4 -
v
(2)
9 10 8 2 6 0
succ
(2)
5 4 5 6 4 -
v
(3)
9 10 8 2 6 0
succ
(3)
3,5 4 5 6 4 -
PASUL 1. Se calculeaza elementele liniei v
(1)
.
v
(1)
1
= min{v
(0)
2
+v
12
, v
(0)
3
+v
13
, v
(0)
4
+v
14
, v
(0)
5
+v
15
, v
(0)
6
+v
16
} =
= min{+ 3, + 1, 2 +, 8 + 3, 0 +} = 11,
succ
(1)
1
= {5},
v
(1)
2
= min{v
(0)
1
+v
21
, v
(0)
3
+v
23
, v
(0)
4
+v
24
, v
(0)
5
+v
25
, v
(0)
6
+v
26
} =
= min{+ 3, + 5, 2 + 8, 8 +, 0 +} = 10,
succ
(1)
2
= {4},
v
(1)
3
= min{v
(0)
1
+v
31
, v
(0)
2
+v
32
, v
(0)
4
+v
34
, v
(0)
5
+v
35
, v
(0)
6
+v
36
} =
= min{+ 1, + 5, 2 +, 2 + 8, 0 +} = 10,
succ
(1)
3
= {5},
v
(1)
4
= min{v
(0)
1
+v
41
, v
(0)
2
+v
42
, v
(0)
3
+v
43
, v
(0)
5
+v
45
, v
(0)
6
+v
46
} =
= min{+, +, +, 8 + 3, 0 + 2} = 2,
66 TEORIA GRAFURILOR
succ
(1)
4
= {6},
v
(1)
5
= min{v
(0)
1
+v
51
, v
(0)
2
+v
52
, v
(0)
3
+v
53
, v
(0)
4
+v
54
, v
(0)
6
+v
56
} =
= min{+ 3, +, +, 2 + 4, 0 + 8} = 6,
succ
(1)
5
= {4},
v
(1)
6
= 0.
PASUL 2. Se calculeaza elementele liniei v
(2)
.
v
(2)
1
= min{v
(1)
2
+v
12
, v
(1)
3
+v
13
, v
(1)
4
+v
14
, v
(1)
5
+v
15
, v
(1)
6
+v
16
} =
= min{10 + 3, 10 + 1, 2 +, 6 + 3, 0 +} = 9,
succ
(2)
1
= {5},
v
(2)
2
= min{v
(1)
1
+v
21
, v
(1)
3
+v
23
, v
(1)
4
+v
24
, v
(1)
5
+v
25
, v
(1)
6
+v
26
} =
= min{11 + 3, 10 + 5, 2 + 8, 6 +, 0 +} = 10,
succ
(2)
2
= {4},
v
(2)
3
= min{v
(1)
1
+v
31
, v
(1)
2
+v
32
, v
(1)
4
+v
34
, v
(1)
5
+v
35
, v
(1)
6
+v
36
} =
= min{11 + 1, 10 + 5, 2 +, 6 + 2, 0 +} = 8,
succ
(2)
3
= {5},
v
(2)
4
= min{v
(1)
1
+v
41
, v
(1)
2
+v
42
, v
(1)
3
+v
43
, v
(1)
5
+v
45
, v
(1)
6
+v
46
} =
= min{11 +, 10 +, 10 +, 6 + 3, 0 + 2} = 2,
succ
(2)
4
= {6},
v
(2)
5
= min{v
(1)
1
+v
51
, v
(1)
2
+v
52
, v
(1)
3
+v
53
, v
(1)
4
+v
54
, v
(1)
6
+v
56
} =
= min{11 + 3, 10 +, 10 +, 2 + 4, 0 + 8} = 6,
succ
(2)
5
= {4},
v
(2)
6
= 0.
APLICAT II 67
PASUL 3. Se calculeaza elementele liniei v
(3)
.
v
(3)
1
= min{v
(2)
2
+v
12
, v
(2)
3
+v
13
, v
(2)
4
+v
14
, v
(2)
5
+v
15
, v
(2)
6
+v
16
} =
= min{10 + 3, 8 + 1, 2 +, 6 + 3, 0 +} = 9,
succ
(3)
1
= {3, 5},
v
(3)
2
= min{v
(2)
1
+v
21
, v
(2)
3
+v
23
, v
(2)
4
+v
24
, v
(2)
5
+v
25
, v
(2)
6
+v
26
} =
= min{9 + 3, 8 + 5, 2 + 8, 6 +, 0 +} = 10,
succ
(3)
2
= {4},
v
(3)
3
= min{v
(2)
1
+v
31
, v
(2)
2
+v
32
, v
(2)
4
+v
34
, v
(2)
5
+v
35
, v
(2)
6
+v
36
} =
= min{9 + 1, 10 + 5, 2 +, 6 + 2, 0 +} = 8,
succ
(3)
3
= {5},
v
(3)
4
= min{v
(2)
1
+v
41
, v
(2)
2
+v
42
, v
(2)
3
+v
43
, v
(2)
5
+v
45
, v
(2)
6
+v
46
} =
= min{9 +, 10 +, 8 +, 6 + 3, 0 + 2} = 2,
succ
(3)
4
= {6},
v
(3)
5
= min{v
(2)
1
+v
51
, v
(2)
2
+v
52
, v
(2)
3
+v
53
, v
(2)
4
+v
54
, v
(2)
6
+v
56
} =
= min{9 + 3, 10 +, 8 +, 2 + 4, 0 + 8} = 6,
succ
(3)
5
= {4},
v
(3)
6
= 0.
Se observa ca v
(2)
i
= v
(3)
i
, i = 1, . . . , 6, ceea censeamna ca algoritmul s-a terminat.
Elementele v
(3)
i
sunt valorile minimale ale drumurilor de la ecare varf i la nodul
nal 6. Cu ajutorul liniei succ
(3)
precizam drumurile de la ecare nod i la nodul
nal 6, prin considerarea arcelor date de nodurile i si succesoarele acestora.

In cazul
nostru avem arcele: (1, 3), (1, 5), (2, 4), (3, 5), (4, 6), (5, 4). Astfel de la nodul 1 la
nodul nal 6 avem doua drumuri si anume:
1
= [1, 3, 5, 4, 6],
2
= [1, 5, 4, 6] ambele
au valoarea egala cu v
(3)
1
= 9.
68 TEORIA GRAFURILOR
Exercit iul 5.8.3. Posibilitat ile de comunicare ntre localitat ile 1-6 sunt repre-
zentate prin graful din gura 5.3, unde ecarei muchii i se atribuie lungimea tron-
sonului respectiv. Se cere drumul de lungime minima ntre 2 si toate celelalte noduri
ale grafului precum si valoarea acestui drum.
Figura 5.3: Graf orientat.
Rezolvare. Exemplu: ntre 2 si 4 exista trei drumuri minime si anume:
1
:
[2, 1, 5, 3, 4], l(
1
) = 11a,
2
: [2, 1, 5, 3, 6, 4], l(
2
) = 11a, si
3
: [2, 1, 5, 6, 4], l(
2
) =
11a.
Exercit iul 5.8.4. Posibilitat ile de comunicare ntre localitat ile 1-4 sunt repre-
zentate prin graful din gura 5.4, unde ecarei muchii i se atribuie lungimea tron-
sonului respectiv. Se cere drumul de lungime minima ntre 1 si toate celelalte noduri
ale grafului precum si valoarea acestui drum.
Figura 5.4: Graf orientat.
Rezolvare. Se aplica algoritmul lui Ford.
Init ializare.
APLICAT II 69
TABELUL 5.4
j
j
Init ial Iterat ia 1
1
1
0 0
2
2
2
3
3
5
4
4
3
Iterat ia 1. Pentru ecare arc (i, j) care verica relat ia
j

i
> l
ij
reactualizam

j
=
i
+l
ij
.
(1, 2) :
2

1
= > l
12

2
=
1
+l
12
= 2.
(1, 4) :
4

1
= > l
41

4
=
1
+l
14
= 3.
(2, 1) :
2

1
= 2 < 2.
(2, 3) :
3

2
= > l
23

3
=
2
+l
23
= 5.
(2, 4) :
4

2
= 1 < l
24
.
(3, 2) :
2

3
= 3 < l
32
.
(3, 4) :
4

3
= 2 < l
34
.
(4, 2) :
2

4
= 1 < l
42
.
(4, 3) :
3

4
= 2 < l
43
.
Iterat ia 2. Pentru ecare arc (i, j) care verica relat ia
j

i
> l
ij
reactualizam

j
=
i
+l
ij
.
(1, 2) :
2

1
= 2 = l
12
.
(1, 4) :
4

1
= 3 = l
41
.
(2, 1) :
2

1
= 2 < l
21
.
(2, 3) :
3

2
= 3 = l
23
.
(2, 4) :
4

2
= 1 = l
24
.
(3, 2) :
2

3
= 3 < l
32
.
(3, 4) :
4

3
= 2 < l
34
.
(4, 2) :
2

4
= 1 < l
42
.
(4, 3) :
3

4
= 2 < l
43
.
Drumurile de lungime minima ntre nodul 1 si celelalte noduri ale grafului se
reconstituie din gura 5.5. Drumul de lungime minima dintre nodul 1 si nodul 3
este [1, 2, 3] si are valoarea 5.
70 TEORIA GRAFURILOR
Figura 5.5: Drumurile optime ntre nodul 1 si celelalte noduri ale grafului.
Exercit iul 5.8.5. Se considera graful din gura 5.6. Numerele de pe muchii
reprezinta distant a dintre noduri. Sa se determine rutele cele mai scurte si lungimile
lor de la ecare nod la nodul 1.
Figura 5.6: Graf orientat.
Rezolvare. Se aplica algoritmul Bellman-Kalaba.

In nal rutele cele mai scurte
de la celelalte noduri ale grafului la nodul 1 se reconstituie din arcele din gura 5.7.
APLICAT II 71
Figura 5.7: Reconstruct ia drumurilor optime care ajung n nodul 1.
Exercit iul 5.8.6. Pentru graful din gura 5.8 determinat i drumurile de lungime
minima ntre nodul 0 si 7. Care este valoarea minima a acestui drum?
Figura 5.8: Graf orientat.
Rezolvare. Se aplica algoritmul Bellman-Kalaba sau Ford. Drumul de lungime
minima dintre nodul 0 si 7 obt inut prin ambele metode este urmatorul [0, 1, 3, 5, 7].
Valoarea minima a acestui drum este 37.
Exercit iul 5.8.7. Se considera graful din 5.9. Sa se punan evident a urmatoarele
elemente:
i) matricea arcelor (sau matricea conexiunilor directe);
ii) matricea drumurilor;
iii) puterea de atingere a ecarui varf;
iv) daca graful are circuite;
iv) determinat i drumurile hamiltoniene din graf.
72 TEORIA GRAFURILOR
Figura 5.9: Graf orientat.
Rezolvare. i) Matricea conexiunilor directe este:
A =
_
_
_
_
0 1 0 1
1 0 1 1
0 1 0 0
0 0 0 0
_
_
_
_
ii) Matricea drumurilor este:
D =
_
_
_
_
1 1 1 1
1 1 1 1
1 1 1 1
0 0 0 0
_
_
_
_
iii) Puterile de atingere ale ecarui varf al grafului sunt: p(x
1
) = 4, p(x
2
) = 4,
p(x
3
) = 4, p(x
4
) = 0.
iv) Graful are circuite, de exemplu {x
1
, x
2
, x
1
} este un circuit, deci algoritmul lui
Chen nu se poate aplica.
v) Graful avand circuite, pentru determinarea drumurilor hamiltoniene vom aplica
algoritmul lui Kaufmann.
PASUL 0. Matricea conexiunilor directe:
K
(1)
=
_
_
_
_
(x
1
, x
2
) (x
1
, x
4
)
(x
2
, x
1
) (x
2
, x
3
) (x
2
, x
4
)
(x
3
, x
2
)

_
_
_
_
.
PASUL 1. Matricea destinat iilor posibile:
K
(0)
=
_
_
_
_
x
2
x
4
x
1
x
3
x
4
x
2


_
_
_
_
.
APLICAT II 73
PASUL 2. Determinam drumurile formate din doua arce din matricea:
K
(2)
= K
(1)
&K
(0)
=
_
_
_
_
(x
1
, x
2
, x
1
) (x
1
, x
2
, x
4
)
(x
2
, x
1
, x
2
) (x
2
, x
1
, x
4
)
(x
3
, x
2
, x
1
) (x
3
, x
2
, x
3
) (x
3
, x
2
, x
4
)

_
_
_
_
PASUL 3. Determinam drumurile formate din trei arce cu ajutorul matricei
K
(3)
= K
(2)
&K
(0)
:
_
_
_
_
(x
1
, x
2
, x
1
, x
2
) (x
1
, x
2
, x
4
)
(x
2
, x
1
, x
2
, x
1
) (x
2
, x
1
, x
2
, x
3
) (x
2
, x
1
, x
2
, x
4
)
(x
3
, x
2
, x
1
, x
2
) sau (x
3
, x
2
, x
3
, x
2
) (x
3
, x
2
, x
1
, x
4
)

_
_
_
_
Algoritmul se opreste pentru ca drumul hamiltonian (daca exista) are lungimea
3 = nr. noduri 1. Deci drumul hamiltonian este (x
3
, x
2
, x
1
, x
4
).
Exercit iul 5.8.8. Sa se gaseasca drumurile hamiltoniene din graful din gura
5.10.
Figura 5.10: Graf orientat.
Rezolvare. Se aplica algoritmul lui Kaufmann si se obt in drumurile hamiltoniene:
_

1
= [1, 2, 3, 4, 6, 5],

2
= [2, 3, 1, 6, 5, 4],

3
= [3, 1, 2, 5, 4, 6],

4
= [3, 1, 6, 2, 5, 4],

5
= [5, 4, 6, 2, 3, 1].
74 TEORIA GRAFURILOR
Capitolul 6
PROBLEME DE TRANSPORT
6.1. Problema clasica de transport
6.1.1. Formularea problemei
Problema de transport n forma standard are forma urmatoare:
_

_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

j=1
x
ij
= a
i
, 1 i m,
m

i=1
x
ij
= b
j
, 1 j n,
x
ij
0, 1 i m, 1 j n.
(6.1)
unde:
_

_
a
i
0, 1 i m,
b
j
0, 1 j n,
m

i=1
a
i
=
n

j=1
b
j
.
(6.2)
Teorema 6.1.1. Condit ia necesara si sucienta ca sistemul de ecuat ii consi-
derat n 6.1 sa aiba solut ie nenegativa este ca relat iile 6.2 sa e ndeplinite.
75
76 PROBLEME DE TRANSPORT
6.1.2. Algoritmul de transport (adaptarea algoritmului simplex)
Fundamente teoretice
Problema de transport se poate scrie n forma matriceala:
_
_
_
inf c
t
x
Ax = b
x 0
Unei probleme de transport i asociem un tabel de transport care cont ine datele
numerice ale problemei de transport. Tabelul de transport 6.1 are m linii si n
coloane. Fiecare celula (i, j), 1 i m, 1 j n, a acestui tabel poate asociata
cu costul unitar c
ij
, cu necunoscuta x
ij
, cu valoarea x
ij
a variabilei x
ij
dintr-o
anumita solut ie (x
ij
) a sistemului de ecuat ii 6.1.
TABELUL 6.1
c
11
c
12
... c
1n
a
1
c
21
c
22
... c
2n
a
2
... ... ... ... ...
c
m1
c
m2
... c
mn
a
m
b
1
b
2
... b
n
Tabelul de transport mai cont ine o coloana suplimentara n care sunt trecute n
mod obisnuit cantitat ile disponibile a
i
, 1 i m, si o linie suplimentaran care sunt
trecute cererile b
j
, 1 j n.

In celula (i, j) este trecut costul unitar c


ij
; daca dorim
sa scriem si valoarea x
ij
a variabilei x
ij
, vom mpart i celula (i, j) printr-o diagonala
n doua part i si vom scrie c
ij
n partea superioara, iar x
ij
n partea inferioara.
Tabelului de transport T i asociem un graf neorientat avand drept noduri
mult imea celulelor (i, j), 1 i m, 1 j n, ale tabelui de transport T si drept
muchii mult imile formate din doua celule situate ntr-o aceeasi linie sau coloana a
lui T.

In cele ce urmeaza vom considera numai acele subgrafuri part iale ale lui
care se obt in prin unirea cu muchii a celulelor vecine, adica a celulelor situate pe
o aceeasi linie sau coloana a lui T ntre care nu exista alte celule din mult imea de
noduri ale subgrafului. Un subgraf part ial de acest tip al lui se numeste -graf.
Un -graf care este un lant (ciclu) elementar avand cel mult o muchie n ecare
linie sau coloana a tabelului de transport T va numit -lant sau -ciclu.
Algoritmul de transport
PASUL 0. Se determina o solut ie de baza admisibila x
ij
(vom vedea ulterior
cum anume) corespunzatoare unei matrice B formata din m + n 1 coloane liniar
PROBLEMA CLASIC

A DE TRANSPORT 77
independente ale matricei Asi apoi mult imea B a celulelor de baza, dupa care trecem
la pasul urmator.
PASUL 1. Se rezolva sistemul de ecuat ii:
u
i
+v
j
= c
ij
, (i, j) B,
se obt ine o solut ie particulara (u
i
, v
j
) a acestui sistem si se calculeaza valorile z
ij

c
ij
= u
i
+v
j
c
ij
pentru (i, j) R (mult imea celulelor care nu sunt n baza).
Daca z
ij
c
ij
0 pentru toate celulele (i, j) R, ne oprim (STOP): solut ia de
baza x
ij
este optima.

In caz contrar se determina (s, k) R cu criteriul de intrare n baza:


max{z
ij
c
ij
} = z
sk
c
sk
si se trece la pasul urmator.
PASUL 2. Se determina -ciclul format de (s, k) R cu o parte din celulele din
B, se adopta un sens de parcurs si se numeroteaza celulele sale ncepand cu celula
(s, k). Se determina apoi celula (r, t) B cu criteriul de iesire din baza:
min{x
ij
} =x
rt
,
unde minimul se ian raport cu toate celulele (i, j) de rang par n -ciclul determinat
anterior. Se trece apoi la pasul urmator.
PASUL 3. Se considera matricea

B
obt inuta din B prin nlocuirea coloanei a
rt
cu coloana a
sk
. Se determina solut ia de baza admisibila

x
ij
corespunzatoare lui

B
cu ajutorul formulelor de schimbare a bazei:

x
ij
=
_
_
_
x
ij
x
rt
, daca (i, j) are rang par n ciclu,
x
ij
+ x
rt
, daca (i, j) are rang impar n ciclu,
x
ij
, daca (i, j) nu apart ine ciclului.
Se trece apoi la pasul 1 nlocuind B cu

B
si solut ia x
ij
cu

x
ij
.
Observat ie. Daca la terminarea algoritmului avem z
ij
c
ij
< 0 pentru toate
celulele (i, j) R, atunci solut ia problemei de transport este unica.
6.1.3. Determinarea unui program de baza init ial
Pentru a putea aplica algoritmul de transport enunt at anterior este necesar sa
dispunem de un program de baza init ial. Metoda generala de obt inere a unui pro-
gram de baza este urmatoarea. Se xeaza o celula (i, j) si se atribuie variabilei x
ij
valoarea minima pe care o poate lua, adica valoarea:
x
ij
= min{a
i
, b
j
}.
78 PROBLEME DE TRANSPORT
Daca x
ij
= a
i
, atunci se elimina din tabelul de transport linia de rang i si se
nlocuieste b
j
prin b

j
= b
j
x
ij
. Daca x
ij
= b
j
, atunci se elimina din tabelul de
transport coloana de rang j si se nlocuieste a
i
cu a

i
= a
i
x
ij
. Daca x
ij
= a
i
= b
j
,
atunci se aplica, la alegere, unul dintre procedeele descrise anterior.

In cele trei situat ii prezentate se obt ine un tabel de transport redus, avand ecare
o linie sau o coloana mai put in decat cel init ial. Urmand procedeul descris pe
toate tabelele reduse care se obt in n continuare, se determina evident un program
al problemei de transport. Metoda generala de obt inere a unui program de baza
pentru problema de transport poate particularizata dand diverse reguli de select ie
a celulei (i, j) din tabel care se atribuie valorii x
ij
. Dintre metodele particulare de
determinare a unui program de baza init ial le ment ionam pe cele care urmeaza.
i) Metoda colt ului de nord-vest. Aceasta metoda consta n alegerea celulei (i, j)
situate n prima linie si prima coloana ale tabelelor de transport utilizate.
ii) Metoda costului minim. La ecare pas se alege celula (i, j) corespunzatoare
costului minim c
ij
din tabelele de transport utilizate.
6.1.4. Degenerare si ciclare
Ca si n cazul general al problemelor de programare liniara, degenerarea pro-
gramelor de baza poate face sa apara fenomenul de ciclare n algoritmul de transport.
Evident, o solut ie de baza a problemei de transport n forma standard este nedege-
nerata daca si numai daca numarul componentelor sale nenule este egal cu m+n1
si este degenerata n caz contrar. Pentru recunoasterea problemelor degenerate este
util urmatorul criteriu.
Propozit ie 6.1.1. O problema de transport n forma standard este degenerat a
daca si numai daca exista o mult ime de indici M {1, ..., m} si o mult ime de indici
N {1, ..., n} astfel ncat:

iM
a
i
=

jN
b
j.
PROBLEMA CLASIC

A DE TRANSPORT 79
6.1.5. Variante ale problemei de transport
Problema de transport cu cerere excedentara. Forma problemei de trans-
port cu cerere excedentara este urmatoarea:
_

_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

j=1
x
ij
= a
i
, 1 i m,
m

i=1
x
ij
b
j
, 1 j n,
x
ij
0, 1 i m, 1 j n.
unde:
_

_
a
i
0, 1 i m,
b
j
0, 1 j n,
m

i=1
a
i

n

j=1
b
j
.
Pentru rezolvarea acestei probleme se introduce un depozit ctiv n care disponi-
bilul de resursa este:
a
m+1
=
n

j=1
b
j

m

i=1
a
i
,
adica tocmai excedentul cererii totale. Costurile de transport de la depozitul m+1
pot luate nule sau egale cu penalitat ile unitare stabilite prin contracte cu bene-
ciarii pentru neonorarea cererilor, daca astfel de penalitat i exista. Problema devine
atunci o problema standard de transport, care se rezolva prin algoritmul cunoscut.
Problema de transport cu oferta excedentara. Forma problemei de trans-
port cu oferta excedentara este urmatoarea:
_

_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

j=1
x
ij
a
i
, 1 i m,
m

i=1
x
ij
= b
j
, 1 j n,
x
ij
0, 1 i m, 1 j n.
unde:
_

_
a
i
0, 1 i m,
b
j
0, 1 j n,
m

i=1
a
i

n

j=1
b
j
.
80 PROBLEME DE TRANSPORT
Pentru rezolvarea acestei probleme se introduce un consumator ctiv care are
cererea:
b
n+1
=
m

i=1
a
i

j=1
b
j
,
adica tocmai excedentul cererii totale. Costurile de transport la beneciarul n+1 pot
luate nule sau egale cu costurile de stocare la depozitele i, 1 i m. Problema
devine atunci o problema standard de transport, care se rezolva prin algoritmul
cunoscut.
Problema de transport cu capacitat i limitate. Forma problemei de trans-
port cu capacitat i limitate este urmatoarea:
_

_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

j=1
x
ij
= a
i
, 1 i m,
m

i=1
x
ij
= b
j
, 1 j n,
d
ij
x
ij
0, 1 i m, 1 j n.
unde:
_

_
a
i
0, 1 i m,
b
j
0, 1 j n,
d
ij
0, 1 i m, 1 j n,
m

i=1
a
i
=
n

j=1
b
j
.
m

i=1
a
i
b
j
, 1 j n,
n

j=1
b
j
a
i
, 1 i m.
Rezolvarea acestei probleme se poate face si cu ajutorul algoritmului simplex ce
este prezentat n subparagraful urmator. Ment ionam ca problema se poate aborda
si ca o problema de ux minim.
6.1.6. Algoritmul simplex modicat
Pentru determinarea unui program init ial se alege n mod arbitrar o celula (i, j)
si se atribuie lui x
ij
valoarea:

x
ij
= min{a
i
, b
j
, d
ij
}.
PROBLEMA CLASIC

A DE TRANSPORT 81
Daca

x
ij
= a
i
sau

x
ij
= b
j
, atunci procedam n mod obisnuit. Daca

x
ij
= d
ij
<
min{a
i
, b
j
}, variabila x
ij
nu este considerata variabila de baza. Daca

x
ij
= d
ij
=
min{a
i
, b
j
}, atunci variabila x
ij
nu este considerata variabila de baza. Valorile (

x
ij
)
obt inute n acest mod nu constituie nca un program al problemei: se poate ntampla
ca unele disponibilitat i sa nu e complet epuizate, iar unele cereri sa nu e integral
satisfacute. Plecand nsa de la valorile (

x
ij
) astfel determinate, putem obt ine un
program de baza pentru problema de transport cu capacitat i limitate cu algoritmul
care urmeaza.
Sa presupunem ca exista un depozit r, 1 r m, n care a ramas neexpediata
cantitatea de resursa a

r
si beneciarii s si k, unde cererile au ramas nesatisfacute
cu cantitat ile b

s
si b

k
; evident, avem a

r
= b

s
+b

k
. Algoritmul care transforma (

x
ij
)
n programul de baza (x
ij
) este urmatorul:
PASUL 1. Se adauga la linia r o celula suplimentara n care valoarea variabilei
corespunzatoare x
r0
este a

r
. Analog, se adauga la coloanele s si k cate o celula
suplimentara n care valorile variabilelor corespunzatoare x
0s
si x
0k
sunt b

s
respectiv
b

k
. Se nlocuiesc costurile unitare init iale c
ij
, 1 i m, 1 j n, cu c

ij
= 0 si se
atribuie celulelor nou introduse costuri egale cu unitatea, adica c

r0
= c

0s
= c

0k
= 1.
PASUL 2. Se rezolva sistemul de ecuat ii:
_

_
u
r
= 1,
v
s
= 1,
v
k
= 1,
u
i
+v
j
= c

ij
, (i, j) B, i = r, j = s, k.
PASUL 3. Se cauta cu algoritmul de transport obisnuit solut ia optima pentru
problema de la pasul 1; evident n solut ia optima vom avea:
x
r0
= x
0s
= x
0k
= 0.
Renunt am la celulele suplimentare si revenim la costurile init iale c
ij
. Solut ia astfel
obt inuta este un program de baza.
Conform rezultatului general stabilit la algoritmul simplex, testul de optimalitate
este urmatorul: programul (x

ij
) este optim daca z
ij
c
ij
0 pentru toate celulele
secundare (i, j) pentru care x

ij
= 0 si z
ij
c
ij
0 pentru toate celulele secundare
(i, j) pentru care x

ij
= d
ij.
6.1.7. Aplicat ii
Exercit iul 6.1.1. Sa se gaseasca, prin metoda colt ului de N-V si prin metoda
costului minim o solut ie de baza pentru problema de transport ale carei date sunt
82 PROBLEME DE TRANSPORT
prezentate n tabelul 6.2. Gasit i pentru aceaste solut ii valorile corespunzatoare ale
funct iilor obiectiv. Care solut ie este mai buna si de ce?
TABELUL 6.2
7 8 5 3 11
2 4 5 9 11
6 3 1 2 8
5 9 9 7
Determinam mai ntai o solut ie de baza init iala cu metoda N-V:
x
11
= min{11, 5} = 5, eliminam coloana 1,
x
12
= min{6, 9} = 6, eliminam linia 1,
x
22
= min{11, 3} = 3, eliminam coloana 2,
x
23
= min{8, 9} = 8, eliminam linia 2,
x
33
= min{1, 8} = 1, eliminam coloana 3,
x
34
= min{7, 7} = 7.
Valoarea funct iei obiectiv este:
7 5 + 6 8 + 3 4 + 5 8 + 1 1 + 2 7 = 150.
Determinam o solut ie de baza init iala prin metoda costului minim:
x
33
= min{8, 9} = 8, eliminam lina 3,
x
21
= min{11, 5} = 5, eliminam coloana 1,
x
14
= min{11, 7} = 7, eliminam coloana 4,
x
22
= min{6, 9} = 6, eliminam linia 2,
x
13
= min{4, 1} = 1, eliminam coloana 3,
x
12
= min{3, 3} = 3.
Valoarea funct iei obiectiv este:
8 3 + 5 1 + 3 7 + 2 5 + 4 6 + 1 8 = 92.
Evident solut ia de baza obt inuta prin metoda costului minim este mai buna deoarece
costul corespunzator acesteia este mai mic.
Exercit iul 6.1.2. Sa se gaseasca o solut ie de baza pentru problema de trans-
port echilibrata ale carei date sunt prezentate n tabelul 6.3. Gasit i valoarea cores-
punzatoare a funct iei obiectiv. Gasit i solut ia optima a problemei.
TABELUL 6.3
1 3 2 10
3 1 2 5
5 3 7
PROBLEMA CLASIC

A DE TRANSPORT 83
Raspuns.
PASUL 0. Solut ia init iala de baza determinata prin metoda colt ului de N-V
este:
x
11
= min{5, 10} = 5, eliminam coloana 1,
x
12
= min{3, 5} = 3, eliminam coloana 2,
x
13
= min{7, 2} = 2, eliminam linia 1,
x
23
= min{5, 5} = 5.
Costul aferent acestei solut ii este C = 28.
Figura 6.1: Solut ia init iala si marcarea celulelor din -ciclu.
Iterat ia 1, PASUL 1. i) Rezolvam sistemul (o solut ie particulara care se obt ine
setand u
1
= 0):
u
i
+v
j
= c
ij
(i, j) B,
Solut iile acestui sistem se trec pe marginea tabelului de transport (pe verticala
se trec elementele u
i
, iar pe orizontala se trec elementele v
j
).
ii) Calculam elementele:
z
ij
c
ij
= u
i
+v
j
c
ij
(i, j) R,
care se trec n colt urile din dreapta sus ale ecarei celule secundare.
iii) Calculam (criteriul de optim):
max
(i,j)R
(z
ij
c
ij
) = z
22
c
22
= 2 > 0
Criteriul de optim nu este ndeplinit, deci celula (2, 2) intra n baza.
Iterat ia 1, PASUL 2. Pentru a determina care celula iese din baza determinam
-ciclul format din celula (2, 2) cu o parte a celulelor din baza:
(2, 2), (2, 3)

, (1, 3), (1, 2)

, (2, 2).
Se adopta un sens de parcurs al acestui -ciclu marcandu-se cu celulele de rang
par. Condit ia de iesire din baza:
84 PROBLEME DE TRANSPORT
min

x
ij
=x
12
,
deci celula (1, 2) iese din baza.
Iterat ia 1, PASUL 3. Aplicand formulele de schimbare a bazei obt inem noua
solut ie. Costul corespunzator acesteia este:
C
1
= 22,
care este mai mic decat costul anterior C
0
.
Repetam pasii anteriori:
Iterat ia 2, PASUL 1. i) Rezolvam sistemul (o solut ie particulara care se obt ine
setand u
1
= 0):
u
i
+v
j
= c
ij
(i, j) B,
Solut iile acestui sistem se trec pe marginea tabelului de transport (pe verticala
se trec elementele u
i
, iar pe orizontala se trec elementele v
j
).
ii) Calculam elementele:
z
ij
c
ij
= u
i
+v
j
c
ij
(i, j) R,
care se trec n colt urile din dreapta sus ale ecarei celule secundare.
Figura 6.2: Solut ia nala.
iii) Calculam (criteriul de optim):
max
(i,j)R
(z
ij
c
ij
) = z
12
c
12
= 2 < 0,
solut ia este optima, iar aceasta este: x
11
= 5, x
13
= 5, x
22
= 3, x
23
= 2.
Exercit iul 6.1.3. Sa se gaseasca o solut ie de baza pentru problema de trans-
port echilibrata ale carei date sunt prezentate n tabelul 6.4. Gasit i valoarea cores-
punzatoare a funct iei obiectiv. Gasit i solut ia optima a problemei.
PROBLEMA CLASIC

A DE TRANSPORT 85
TABELUL 6.4
2 3 4 2
3 6 2 4 3
4 5 3
7 6
Raspuns. Cantitatea disponibila trebuie sa e egala cu cererea deci: 15 = 5+
de unde = 10.
PASUL 0. Determinam o solut ie de baza prin metoda costului minim. Deci:
x
31
= min{; 10} = , eliminam coloana 1 din tabelul de transport,
x
14
= min{7; 2} = 2, eliminam linia 1 din tabelul de transport,
x
23
= min{; 3} = , eliminam coloana 3 din tabelul de transport,
x
34
= min{4; 9} = 4, eliminam coloana 4 din tabelul de transport,
x
32
= min{7; 5} = 5, eliminam linia 3 din tabelul de transport,
x
22
= min{2; 2} = 2, eliminam coloana 1 din tabelul de transport.
Costul de transport corespunzator acestei solut ii este:
C
0
= + 2 + 2 + 12 + 20 + 12 = 49.
Iterat ia 1, PASUL 1. i) Rezolvam sistemul (o solut ie particulara care se obt ine
setand u
1
= 0):
u
i
+v
j
= c
ij
(i, j) B,
Solut iile acestui sistem se trec pe marginea tabelului de transport (pe verticala
se trec elementele u
i
, iar pe orizontala se trec elementele v
j
).
ii) Calculam elementele:
z
ij
c
ij
= u
i
+v
j
c
ij
(i, j) R,
care se trec n colt urile din dreapta sus ale ecarei celule secundare.
iii) Calculam (criteriul de optim):
max
(i,j)R
(z
ij
c
ij
) = z
24
c
24
= > 0.
Criteriul de optim nu este ndeplinit, deci celula (2, 4) intra n baza.
Iterat ia 1, PASUL 2. Pentru a determina care celula iese din baza determinam
-ciclul format din celula (2, 4) cu o parte a celulelor din baza:
(2, 4), (3, 4)

, (3, 2), (2, 2)

, (2, 4).
86 PROBLEME DE TRANSPORT
Figura 6.3: -ciclul format de celula (2,4) cu o parte a celulelor din baza, celulele
de rang par sunt marcate cu .
Se adopta un sens de parcurs al acestui -ciclu marcandu-se cu celulele de rang
par. Condit ia de iesire din baza:
min

x
ij
=x
24
,
deci celula (2, 2) iese din baza.
Iterat ia 1, PASUL 3. Aplicand formulele de schimbare a bazei obt inem noua
solut ie. Costul corespunzator acesteia este:
C
1
= 47,
care este mai mic decat costul anterior C
0
.
Repetam pasii anteriori:
Iterat ia 2, PASUL 1. i) Rezolvam sistemul (o solut ie particulara care se obt ine
setand u
1
= 0):
u
i
+v
j
= c
ij
(i, j) B,
Solut iile acestui sistem se trec pe marginea tabelului de transport (pe verticala
se trec elementele u
i
, iar pe orizontala se trec elementele v
j
).
Figura 6.4: Noua solut ie de baza. Aceasta este optima.
PROBLEMA CLASIC

A DE TRANSPORT 87
ii) Calculam elementele:
z
ij
c
ij
= u
i
+v
j
c
ij
(i, j) R,
care se trec n colt urile din dreapta sus ale ecarei celule secundare.
iii) Calculam (criteriul de optim):
max
(i,j)R
(z
ij
c
ij
) = z
21
c
21
= < 0,
solut ia este optima, iar aceasta este:
_

_
x
14
= 2,
x
23
= ,
x
14
= 2,
x
31
= ,
x
32
= 7,
x
34
= 2.
Costul minim va 47.
Exercit iul 6.1.4. Sa se gaseasca, prin metoda colt ului de N-V si prin metoda
costului minim, o solut ie de baza pentru problema de transport ale carei date sunt
prezentate n tabelul 6.5. Gasit i pentru aceaste solut ii valorile corespunzatoare ale
funct iilor obiectiv. Care solut ie este mai buna si de ce? Gasit i solut ia optima a
problemei.
TABELUL 6.5
8 3 5 2 10
4 1 6 7 15
1 9 4 3 25
5 10 20 15
Exercit iul 6.1.5. Sa se gaseasca o solut ie de baza pentru problema de trans-
port echilibrata ale carei date sunt prezentate n tabelul 6.6. Gasit i valoarea cores-
punzatoare a funct iei obiectiv. Gasit i solut ia optima a problemei.
TABELUL 6.6
8 3 5 2 10
4 6 7 15
9 4 3
5 10 20 15
88 PROBLEME DE TRANSPORT
Raspuns. Se determina = 25. Valoarea minima a costului este 140, iar
solut ia optima este: x
14
= 10, x
22
= 10, x
23
= 5, x
31
= 5, x
33
= = 15,
x
34
= 5.
Exercit iul 6.1.6. Sa se gaseasca o solut ie de baza pentru problema de transport
ale carei date sunt prezentate n tabelul 6.7. Costurile unitare de penalizare pentru
nesatisfacerea cererii sunt egale cu 2, iar costurile de stocare sunt nule. Gasit i
valoarea corespunzatoare a funct iei obiectiv. Gasit i solut ia optima a problemei.
TABELUL 6.7
2 3 4 1 2
3 6 2 4 3
1 4 5 3
1 7 1 6
Raspuns. Pentru < 10 problema este o problema de transport cu cerere exce-
dentara (cererea este mai mare ca oferta). Vom introduce un depozit ctiv n care
avem 10 . Noul tabel de transport va tabelul 6.8:
TABELUL 6.8
2 3 4 1 2
3 6 2 4 3
1 4 5 3
2 2 2 2 10
1 7 1 6
Noua problema de transport este echilibrata si se rezolva cu algoritmul cunoscut.
Pentru = 10 problema este o problema de transport echilibrata a carei rezolvare
se face cu ajutorul algoritmului cunoscut.
Pentru > 10 problema este o problema de transport cu oferta excedentara
(oferta este mai mare ca cererea). Vom introduce un consumator ctiv cu o cerere
de 10. Noul tabel de transport va tabelul 6.9:
TABELUL 6.9
2 3 4 1 0 2
3 6 2 4 0 3
1 4 5 3 0
1 7 1 6 10
Noua problema de transport este echilibrata si se rezolva cu algoritmul cunoscut.
FLUX MAXIM INTR-O RET EA DE TRANSPORT 89
Exercit iul 6.1.7. Pentru ce valoare a costului unitar c problema ale carei date
sunt prezentate n tabelul 6.10 are optimul egal cu 140?
TABELUL 6.10
8 3 5 2 10
4 1 c 7 15
1 9 4 3 25
5 10 20 15
6.2. Flux maxim intr-o ret ea de transport
6.2.1. Ret ele de transport

In acest paragraf vom reveni la problema de transport. Aceasta va abordata


din perspectiva teoriei grafurilor.
Denit ia 6.2.1. O ret ea de transport ux este un graf orientat G = (X, ) n
care ecare muchie (u, v) are o capacitate c(u, v) 0. Daca (u, v) / , atunci
c(u, v) = 0.
Fie s nodul sursa si t nodul destinat ie.
Denit ia 6.2.2. Fluxul : XX Reste o funct ie reala ce satisface urmatoarele
proprietat i:
i) restrict ii de capacitate: pentru orice u, v X, (u, v) c(u, v) (un arc care
realizeaza egalitate se numeste arc saturat);
ii) antisimetrie: pentru orice u, v X, (u, v) = (v, u);
iii) conservarea uxului: pentru orice u X {s, t} are loc:

vX
(u, v) = 0.
Cantitatea (u, v), poate pozitiva sau negativa si se numeste uxul de ret ea de
la u la v.
Denit ia 6.2.3. Valoarea uxului este denita ca:
|| =

vX
(s, v)
sau, cu alte cuvinte, valoarea uxului este uxul total de la sursa.
90 PROBLEME DE TRANSPORT
Problema uxului maximntr-un graf G, de la un nod sursa s la un nod destinat ie
t, ntr-o ret ea de transport, consta n determinarea unui ux maxim de la s la t.
6.2.2. Algoritmul Ford-Fulkerson

In acest paragraf prezentam metoda Ford-Fulkerson de rezolvare a problemei


uxului maxim, respectiv a uxului minim. Este vorba mai degraba de o metoda
decat de un algoritm pentru ca suporta mai multe implementari cu timpi de rulare
diferit i. Metoda Ford-Fulkerson face apel la trei idei importante care sunt relevante
pentru multe dintre problemele de grafuri: ux compatibil, drum si taietura de
capacitate minima.
Algoritmul de rezolvare a problemei de ux maxim
PASUL 1.

In cadrul acestei prime etape se urmareste construirea unui ux
compatibil. Pentru aceasta se considera drumurile nesaturate de la sursa s la
destinat ia t. Fie
i
un drum nesaturat. Fluxul propagat de-a lungul acestui drum
este dat de:

i
= min
(u,v)
i
[c(u, v) (u, v)].
Vom obt ine un nou ux care satureaza cel put in un arc cu relat ia:
(u, v) =
_
(u, v) +
i
cand (u, v)
i
(u, v) cand (u, v) /
i
.
Daca ret eaua de transport cont ine rute neorientate (muchii) n identicarea aces-
tor drumuri vom avea grija ca o ruta neorientata sa nu e folosita decat ntr-un
singur sens. Astfel, odata cu identicarea unui drum se orienteaza si rutele. Pe
ecare arc se nsumeaza uxurile propagate.
Fluxul propagat n ret ea este egal cu suma uxurilor de-a lungul drumurilor
identicate:
=

i
.
PASUL 2.

In cadrul etapei a doua se determina uxul de valoare maxima cu
ajutorul urmatorului procedeu de marcare:
i) se marcheaza intrarea s cu [+];
ii) daca nodul i este marcat si (i, j) cu (i, j) < c(i, j), atunci nodul j se
marcheaza cu [+i];
iii) daca nodul j este marcat si (i, j) cu (i, j) > 0, atunci nodul i se
marcheaza cu [j];
FLUX MAXIM INTR-O RET EA DE TRANSPORT 91
iv) daca i este un nod marcat si (i, j) este arc saturat, atunci nodul j nu se
marcheaza.
Daca se reuseste ca iesirea t sa e marcata, atunci exista un drum sau lant de
la s la t. De-a lungul acestui drum sau lant notat cu
k
se propaga un ux dat de
relat ia:

k
= min( min
(u,v)B
(c(u, v) (u, v)), min
(u,v)C
(u, v)),
k
> 0,
unde B este mult imea arcelor pe care se executa marcaj de tip ii), iar C este mult imea
arcelor pe care se executa marcaj de tip iii).
Se obt ine un nou ux mbunatat it, cu relat ia:
(u, v) =
_
_
_
(u, v) +
k
cand (u, v) B
(u, v)
k
cand (u, v) C
(u, v) n rest.
Daca nu se mai poate marca nodul de iesire t al ret elei, atunci algoritmul s-a
terminat. Suma uxurilor propagate de-a lungul drumurilor si lant urilor care unesc
nodul de intrare s cu nodul de iesire t, reprezinta uxul de valoare maximan ret eaua
de transport.
PASUL 3. Se determina taietura de capacitate minima.
Fie A mult imea nodurilor nemarcate ale ret elei, conform procedeului de mar-
care din pasul 2. Mult imea arcelor (i, j) cu i / A si j A (incidente spre inte-
rior mult imii A) notata cu
A
se va numi taietura de capacitate minima n graf.
Aceasta reprezinta o granit a ntre nodurile marcate si nodurile nemarcate. Capac-
itatea taieturii se noteaza c(
A
) si se deneste ca ind suma capacitatilor arcelor
sale:
c(
A
) =

(u,v)A
c(u, v).
Conform teoremei Ford-Fulkerson, ntr-o ret ea de transport data, uxul de valoare
maxima este egal cu valoarea taieturii de valoare minima, adica:
max

() = min
s/ A,tA
c(
A
).
Taietura de capacitate minima reprezinta strangularea n graf. Arcele ei ind
saturate, nseamna ca pentru marirea uxului propagat trebuie marita capacitatea
unuia sau mai multor arce ale taieturii.
Observat ii:
i) Operat ia de marcare este operat ia de decizie asupra optimalitat ii.
ii) Taietura de capacitate minima are dublu rol si anume:
-verica rezultatul prin intermediul teoremei Ford-Fulkerson;
-indica locul unde trebuie umblat pentru a mari capacitatea uxului.
92 PROBLEME DE TRANSPORT
Algoritmul de rezolvare a problemei de ux minim
Pentru a obt ine un ux de valoare minima se induce n ret ea un ux arbitrar cu
condit ia (u, v) c(u, v), pentru ecare arc (u, v).

In vederea determinarii uxului de valoare minima se considera pentru nceput


lant urile de la nodul nal t la nodul de nceput s dupa urmatorul procedeu de
marcare:
i) nodul nal t se marcheaza cu [+t];
ii) daca j este nod marcat, (i, j) arc si (i, j) > c(i, j), atunci nodul i se marcheaza
cu [j];
iii) daca i este nod marcat si (i, j) arc, atunci nodul j se marcheaza cu [+i].
Daca se reuseste marcarea nodului de nceput s nseamna ca s-a gasit un lant
de-a lungul caruia uxul poate diminuat.
Daca B este mult imea arcelor din lant ul din categoria ii) si
= min
(u,v)B
[(u, v) c(u, v)],
atunci noul ux diminuat este:
(u, v) =
_
_
_
(u, v) + cand (u, v) B
(u, v) cand (u, v) , (u, v) / B
(u, v) n rest.
Daca nu se mai reuseste marcarea nodului denceput s, nseamna ca nu mai exista
nici un lant de-a lungul caruia uxul sa poata diminuat, deci s-a gasit uxul de
valoare minima.
6.2.3. Problema de transport ca problema de ux maxim

In acest paragraf vom vedea ca problema clasica de transport se poate modela ca


o problema de ux maxim. Pentru a xa ideile sa presupunem ca avem m centre de
aprovizionare si n centre de consum (beneciari), iar transportul se face cu ajutorul
unor sisteme limitate pe ecare direct ie d
ij
. Vom construi un graf orientat de la cele
m depozite la cei n beneciari, valoarea ecarui arc ind egala cu valoarea d
ij
, un
nod de intrare X
input
si un nod de iesire din ret ea X
output
cu legatura la ecare
din depozite respectiv beneciari, valoarea ecarui arc ind egala cu a
i
respectiv b
j
.
Problema ce urmeaza a rezolvata este o problema de ux maxim.
FLUX MAXIM INTR-O RET EA DE TRANSPORT 93
6.2.4. Aplicat ii
Exercit iul 6.2.1. Un proces economic dispune de o ret ea de tranport de genul
celei din gura 6.5. Capacitat ile de trasport sunt cele indicate pe gura. Care este
uxul maxim propagat n sistem ntre punctele 1 si 9? Care este uxul de la nodul
3 la 5?
Figura 6.5: Flux ntre doua noduri.
Raspuns. Se propaga un ux maximn ret eaua de transport de la nodul 1 la nodul
9. Pentru aceasta se genereaza drumuri de la nodul 1 la nodul 9 (rute orientate, n
acelasi sens) care se satureaza.

In identicarea acestor drumuri vom avea grija ca
o ruta neorientata sa nu e folosita decat ntr-un singur sens. Astfel, se indica n
continuare aceste drumuri, precum si uxul propagat pe ecare dintre ele. Odata
cu identicarea unui drum se orienteaza si rutele. Pe ecare arc se nsumeaza si
uxurile propagate. Obt inem deci drumurile:

1
= (1
10
2
5
6
10
8
10
9),
1
= 5.

2
= (1
5
2
4
7
6
6
5
8
5
9),
2
= 4.

3
= (1
1
2
2
3
3
7
2
6
1
8
1
9),
3
= 1.

4
= (1
8
3
2
7
8
9),
4
= 2.

5
= (1
6
3
5
5
2
7
6
9),
5
= 2.

6
= (1
4
3
3
5
10
9),
6
= 3.

7
= (1
1
3
5
4
6
5
7
9),
7
= 1.

8
= (1
10
4
5
5
6
9),
8
= 5.
94 PROBLEME DE TRANSPORT

In acest moment, toate drumurile de la nodul 1 la nodul 9 cont in rute orientate


(g. 6.6) si ecare drum are cel put in o ruta saturata. Fluxul propagat de-a lungul
acestor drumuri este egal cu: =
8

i=1

i
= 23.
Figura 6.6: Rute orientate.

In etapa urmatoare vom aplica procedeul de marcare. Astfel, urmatoarele noduri


sunt marcate ca n gura 6.7.
Figura 6.7: Marcarea nodurilor.
FLUX MAXIM INTR-O RET EA DE TRANSPORT 95
Nodul nal 9 nu poate marcat, deci uxul propagat este maxim. Mult imea
nodurilor nemarcate este: A = {5, 6, 7, 8, 9}, taietura de capacitate minima cuprinde
arcele:

A
= {(3, 5), (4, 5), (2, 6), (2, 7), (3, 7)},
cu valoarea capacitat ii: c(
A
) = 5 + 6 + 5 + 4 + 3 = 23.
Se observa ca valoarea capacitat ii taieturii minime este egala cu valoarea maxima
a uxului, ceea ce conrma, conform teoremei Ford-Fulkerson, ca uxul este maxim.
Prin arcul [3, 5] se propaga un ux de 5 ind la capacitate maxima.
Sintaxa MAPLE pentru rezolvarea acestei probleme este:
> with(networks) :
> new(G) :
> addvertex(1, 2, 3, 4, 5, 6, 7, 8, 9, G) :
> addedge([{1, 2}, {1, 3}, {1, 4}, {2, 6}, {2, 7}, {2, 3}, {3, 4},
{3, 7}, {3, 5}, {6, 7}, {6, 8}, {4, 5}, {5, 7}, {5, 9}, {7, 8}, {7, 9}, {8, 9}]);
> weights = [10, 8, 10, 5, 4, 2, 5, 3, 5, 6, 10, 6, 2, 10, 3, 8, 10], G);
> flow(G, 1, 9);
Orice cantitate suplimentara de ux trebuie sa treaca prin una sau mai multe
arce ale taieturii. Sa presupunem ca se nlocuieste conducta ntre nodurile 2 si 7 de
capacitate 4 cu una de capacitate 7.
Prin aplicarea procedeului de marcare se obt ine lant ul din gura 6.8, cu = 1.
Figura 6.8: Lant obt inut n urma procesului de marcare.
Fluxul propagat este conform gurii 6.9. Arcele [2, 3] si [3, 4] nu sunt utilizate.
96 PROBLEME DE TRANSPORT
Figura 6.9: Flux propagat.
Observam n gura ca drumul:
= (1
4
4
5
3
2
2
2
7
3
9), = 2.
Situat ia este prezentata n gura 6.10, iar uxul propagat este egal cu 26.
Figura 6.10: Flux propagat si taietura de capacitate minima.
Noua taietura de capacitatea egala cu 26, are valoarea minima si cuprinde arcele:
{(1, 2), (3, 2), (3, 7), (3, 5), (4, 5)}
FLUX MAXIM INTR-O RET EA DE TRANSPORT 97
Exercit iul 6.2.2. Se considera ret eaua de transport din gura 6.11. Care este
uxul maxim propagat ntre nodurile 1 si 5? ( > 0 parametru real).
Figura 6.11: Fluxul propagat. Este pusa n evident a taietura de capacitate minima.
Raspuns. La pasul 1 se genereaza rute orientate de la nodul 1 la nodul 5 care se
satureaza.

1
: 1
40
2
15
3
22
5,
1
= min{40, 15, 22} = 15;

2
: 1
25
2
8
5,
2
= min{25, 8} = 8;

3
: 1
17
2
12
4
12
3
7
5,
3
= min{17, 12, 12, 7} = 7;

4
: 1
18
4
18
5,
4
= min{18, 18} = 18;
Fluxul este =
4

i=1

i
= 48.
Pasul 2 consta n marcarea nodurilor. Nodul nal nu se poate marca, deci uxul
este maxim (g.6.12).
Mult imea nodurilor nemarcate este: A = {5}.
Figura 6.12: Nodul nal 5 nu poate marcat, deci uxul nu este maxim.
98 PROBLEME DE TRANSPORT
Taietura de capacitate maxima este:
A
= {(4, 5), (2, 5), (3, 5)}, iar capacitatea
acesteia este c(
A
) = 48 ceea ce conrma, conform teoremei Ford-Fulkerson, ca
uxul este maxim. Pentru a mari uxul trebuie marita capacitatea unuia sau a mai
multor arce ale taieturii de capacitate minima.
Exercit iul 6.2.3. Un anume tip de produs este disponibil n trei depozite n
cantitat ile de 30, 40 respectiv 50 t. Acesta este solicitat n doua centre de consumn
cantitat ile de 40 respectiv 80 t.

Intre sursa si destinat ie exista tronsoane directe, iar
transportul se face cu mijloace auto cu capacitat i limitate (tonaj) conform tabelului
6.11.
TABELUL 6.11
c
1
c
2
d
1
10 2
d
2
20
d
3
10 20
Sa se determine un plan optim de transport.
Raspuns. Codicam problema conform grafului din gura 6.13. Pentru aceasta
am introdus nodul d care constituie intrarea n ret ea si nodul c care constituie iesirea
din ret eaua de transport.
Figura 6.13: Codicarea problemei sub forma unei probleme de ux maxim.
Problema se rezolva cu ajutorul algoritmului Ford-Fulkerson. Se propaga un ux
maxim n ret eaua de transport de la nodul d (input) la nodul c (output). Pentru
aceasta se genereaza drumuri de la nodul d la nodul c (rute orientate, n acelasi
FLUX MAXIM INTR-O RET EA DE TRANSPORT 99
sens) care se satureaza.

In identicarea acestor drumuri vom avea grija ca o ruta
neorientata sa nu e folosita decat ntr-un singur sens. Astfel, se indican continuare
aceste drumuri precum si uxul propagat pe ecare dintre ele. Odata cu identicarea
unui drum se orienteaza si rutele. Pe ecare arc se nsumeaza si uxurile propagate.
Obt inem deci drumurile:

1
: d
30
d
1
10
c
1
40
c,
1
= min{30, 10, 40} = 10,

2
: d
20
d
1
2
c
2
80
c,
2
= min{20, 2, 80} = 2,

3
: d
40
d
2
20
c
1
30
c,
3
= min{40, 20, 30} = 20,

4
: d
50
d
3
10
c
1
10
c,
4
= min{50, 10, 10} = 10,

5
: d
40
d
3
20
c
2
78
c,
5
= min{40, 20, 78} = 20.

In acest moment, toate drumurile de la nodul c la nodul d cont in rute orientate


si ecare drum are cel put in o ruta saturata. Fluxul propagat de-a lungul acestor
drumuri este egal cu:
=
5

i=1

i
= 62.

In etapa urmatoare vom aplica procedeul de marcare. Astfel, urmatoarele noduri


sunt marcate ca n gura 6.14.
Figura 6.14: Marcarea nodurilor. Nodul nal nu poate marcat deci uxul este
maxim.
Nodul nal d nu poate marcat, deci, uxul propagat este maxim. Mult imea
nodurilor nemarcate este:
A = {d
1
, d
2
, d},
100 PROBLEME DE TRANSPORT
si taietura de capacitate maxima cuprinde arcele:

A
= {(c
1
, d
1
), (c
1
, d
2
), (c
2
, d
1
), (c
3
, d
1
), (c
3
, d
2
)},
cu valoarea capacitat ii:
c(
A
) = 10 + 2 + 20 + 10 + 20 = 62.
Se observa ca valoarea capacitat ii taieturii minime este egala cu valoarea maxima
a uxului, ceea ce conrma, conform teoremei Ford-Fulkerson, ca uxul este maxim
(g. 6.15).
Figura 6.15: Taietura de capacitate minima si uxul propagat.
Observam ca cererea nu poate satisfacuta, deci pentru marirea capacitat ii tre-
buie marita capacitatea unuia din arcele taieturii de capacitate minima.
Exercit iul 6.2.4. Sa se scrie un program MAPLE pentru rezolvarea problemelor
de ux maxim ntr-o ret ea de transport. Vericat i rezultatul cu teorema Ford-
Fulkerson.
Raspuns. Pentru xarea ideilor vom exemplica programul pe problema 6.2.1.
Vom indica atat sintaxa MAPLE (>) cat si comentariile corespunzatoare (italic).
Se init ializeaza: lista de varfuri, lista muchiilor, lista ponderilor, nodul init ial s
si nodul nal t.
> varfuri := {1, 2, 3, 4, 5, 6, 7, 8, 9};
> muchii := [{1, 2}, {1, 3}, {1, 4}, {2, 6}, {2, 7}, {2, 3}, {3, 4}, {3, 7},
{3, 5}, {6, 7}, {6, 8}, {4, 5}, {5, 7}, {5, 9}, {7, 8}, {7, 9}, {8, 9}];
> ponderi := [10, 8, 10, 5, 4, 2, 5, 3, 5, 6, 10, 6, 2, 10, 3, 8, 10];
FLUX MAXIM INTR-O RET EA DE TRANSPORT 101
> s := 1;
> t := 9;
Se creeaza ret eaua conform init ializarilor.
> with(networks) :
> new(G) :
> addvertex(varfuri, G) :
> addedge(muchii, weights = ponderi, G);
Valoarea uxului maxim.
> flow(G, s, t);
Taietura de capacitate minima.
> mincut(G, s, t, vf);
Valoarea taieturii de capacitate minima trebuie sa e egal a cu valoarea uxului
maxim (Teorema Ford-Fulkerson).
> vf;
Graful G.
> draw(G);
Exercit iul 6.2.5. Pentru ce valoare a parametrului a graful din gura 6.16 ad-
mite un ux maxim ntre nodurile 1 si 3 de 40.
Figura 6.16: Problema de ux maxim ntre nodurile 1 si 3.
Raspuns. Se aplica algoritmul Ford-Fulkerson, dupa care se determina valoarea
parametrului a din ecuat ia
max
= 40.
Deci se executa urmatoarele etape:
a) se genereaza rute orientate de la nodul 1 la nodul 3:

1
: 1
2a
2
8a
5
2a
3,
1
= 2a,

2
: 1
3a
5
3a
6
a
3,
2
= a,
102 PROBLEME DE TRANSPORT

3
: 1
8a
6
3a
4
4a
3,
3
= 3a.
Fluxul n ret ea ind = 6a;
b) se marcheaza nodurile: {1, 2, 5, 6}.
c) taietura de capacitate minima ind: {(5, 3), (6, 3), (6, 4)}, valoarea acesteia
ind egala cu 6a, deci uxul este maxim.
Ecuat ia
max
= 40 duce la a = 20/3.
Exercit iul 6.2.6. Pentru datele din problema anterioara formulat i problema ca
o problema de programare liniara si rezolvat i-o prin metoda simplex.
Exercit iul 6.2.7. Pentru ret eaua de transport din gura 6.17 cu intrarea 0 si
iesirea 7 si capacitat ile scrise pe arce sa se determine:
Figura 6.17: Ret ea de transport.
i) capacitat ile taieturilor mult imilor A
1
= {1, 4, 6, 7} si A
2
= {5, 6, 7};
ii) uxul maxim care strabate ret eaua si valoarea sa;
iii) care capacitate de transport trebuie marita si cu ce valoare pentru a atinge
un ux maxim n ret ea de 30 ? Solut ia indicata este unica?
iv) care este uxul maxim n ret eaua de transport daca suprimam rutele 1 4
respectiv 5 1?
Raspuns. Capacitat ile taieturilor mult imilor A
1
si A
2
sunt 50 respectiv 35. Se
aplica algoritmul Ford-Fulkerson. Fluxul maxim n ret ea va egal cu 23. Pentru
marirea uxului trebuie marite capacitat ile taieturii de capacitate minima.
Capitolul 7
TEORIA STOCURILOR
7.1. Formularea modelului matematic
Prin stoc vom nt elege n cele ce urmeaza o rezerva de bunuri materiale desti-
nate vanzarii sau folosirii lor n procesul de product ie. Constituirea unui stoc pre-
supune cheltuieli de aprovizionare, cheltuieli de stocaj, pierderi pentru deprecierea
marfurilor etc. Orice gestiune de stoc presupune intrari n stoc (inputs) si iesiri
din stoc (outputs), determinate de cererea de bunuri care poate determinista,
aleatoare cu o repartit ie cunoscuta statistic sau necunoscuta. Elementele principale
care intervin n activitatea de management al stocului sunt:
-cererea de bunuri;
-nivelul stocului;
-volumul comenzii de reaprovizionare;
-perioada de reaprovizionare;
-costul de stocare;
-costul de penalizare;
-costul de lansare al comenzii;
-alte costuri.
Deciziile care se iau n organizarea unui stoc au la baza un criteriu de optim, de-
terminat de politica economica. Vom numi politica optima acea activitate de mana-
gement al stocului care implica un cost total minim. Elementele unei politici optime
sunt: nivelul optim al stocului, volumul optim al unei comenzi de reaprovizionare,
perioada optima de reaprovizionare, numarul optim de reaprovizionari, costul total
optim numit si gestiunea optima.
Modelele matematice permit stabilirea politicilor optime. Dupa natura cererii,
modelele pot deterministe sau aleatorii.

In cele ce urmeaza sunt prezentate o
serie de modele matematice consacrate din teoria stocurilor. Strategia de abordare
103
104 TEORIA STOCURILOR
a problemelor este specica problemelor de cercetare operat ionala si anume de a
codica corespunzator problema matematica ntr-o problema de optimizare.
7.2. Modele deterministe
7.2.1. Model de stocare a unui produs cu cerere constanta, pe-
rioada constanta de reaprovizionare si fara lipsa de stoc
Presupunem ca se stocheaza un produs al carui consum este o funct ie liniara
de timp, cererea produsului este Q pentru o perioada de timp , reaprovizionarea
stocului se face instantaneu la intervale de timp egale cu T si n cantitat i egale cu
q, costul unitar de stocare n unitatea de timp este c
s
, costul de lansare al comenzii
de reaprovizionare este c
l
(totalul cheltuielilor legate de operat ia de reaprovizionare
ce nu depinde de q) si nu se admite lipsa de stoc.
Figura 7.1: Model de stocare a unui produs cu cerere constanta, perioada constanta
de reaprovizionare si fara lipsa de stoc.
Pentru ecare perioada de timp T se fac cheltuielile c
l
+
1
2
qTc
s
(ntr-o perioada
T se aa n medie cantitatea q/2). Daca notam cu numarul de reaprovizionari
avem:
=
Q
q
=

T
.
Funct ia obiectiv C(q) ce trebuie minimizata este:
(c
l
+
1
2
qTc
s
) =
Q
q
c
l
+
1
2
qc
s
.
MODELE DETERMINISTE 105
Volumul optim q al unei comenzi de reaprovizionare se obt ine din condit ia de minim
pentru funct ia obiectiv C(q). Deci punand condit ia:
C

(q) = 0,
obt inem:
q =
_
2Qc
l
c
s
.
(C

( q) > 0 deci extremul este punct de minim).


Obt inem numarul optim de reaprovizionari:
=
Q
q
=

Qc
s
2c
l
,
perioada optima:

T =


=

2c
l
Qc
s
si gestiunea optima:

C = C( q) =
_
2Qc
s
c
l
.
7.2.2. Model de stocare a unui produs cu cerere constanta, pe-
rioada constanta de reaprovizionare si cu posibilitatea lipsei
de stoc

In acest model se admit ipotezele de la modelul anterior cu deosebirea ca se


admite si lipsa de stoc penalizata cu un cost unitar de penalizare c
p
.
Perioada constanta T este mpart ita n doua subperioade T
1
(n care se satisface
cererea si se platesc pentru stocul mediu s/2 cheltuielile de stocare c
s
) si T
2
(n care
nu se mai satisface cererea si se plateste pentru lipsa medie (q s)/2 costul unitar
de penalizare c
p
).
Pentru o perioada T = T
1
+T
2
se vor face cheltuielile:
c
l
+
s
2
T
1
c
s
+
q s
2
T
2
c
p
.
Costul global va :
C(q, s) = (c
l
+
s
2
T
1
c
s
+
q s
2
T
2
c
p
)
=
Q
q
c
l
+
s
2
T
1
c
s

T
+
q s
2
T
2
c
p

T
.
106 TEORIA STOCURILOR
Figura 7.2: Model de stocare a unui produs cu cerere constanta, perioada constanta
de reaprovizionare si cu posibilitatea lipsei de stoc.
Avem:
T
1
T
=
s
q
si
T
2
T
=
q s
q
.
De unde:
T
1
=
s
q
T
si
T
2
=
q s
q
T.
Deci nlocuind valorile lui T
1
si T
2
n formula lui C(q, s) obt inem:
C(q, s) =
Q
q
c
l
+

2q
s
2
c
s
+

2q
(q s)
2
c
p
.
Condit iile de minim pentru funct ia obiectiv sunt:
C(q, s)
q
= 0
si
C(q, s)
s
= 0.
MODELE DETERMINISTE 107
Adica:

1
q
2
Qc
l


2q
2
s
2
c
s
+

2q
2
(q
2
s
2
)c
p
= 0,

q
sc
s


q
(q s)c
p
= 0,
de unde obt inem:
q
2
=
2Qc
l
c
p
+
(c
s
+c
p
)
c
p
s
2
si
s =
c
p
c
s
+c
p
q.
Obt inem pentru valoarea optima pentru volumul comenzii:

q
2
=
2Qc
l
c
p
.
c
s
+c
p
c
p
.
Daca notam =
c
p
c
s
+c
p
(factor de penalizare), obt inem:
q =

2Qc
l
c
p
.
_
1

,
stocul optim ind:
s = q =

2Qc
l
c
p
.

.
Funct ia obiectiv C(q, s) are minimul C( q, s) (acest minim se numeste gestiunea
optima) deoarece matricea hessiana este pozitiv denita.
Numarul optim de reaprovizionari este:
=
Q
q
=

Qc
s
2c
l
.

,
perioada optima:

T =


=

2c
l
Qc
s
.
_
1

si gestiunea optima:

C = C( q, s) =
_
2Qc
s
c
l
.

.
Observat ie. Daca c
p
atunci 1 si obt inem modelul anterior.
108 TEORIA STOCURILOR
7.2.3. Model de stocare a unui produs cu cerere constanta, pe-
rioada constanta de reaprovizionare si fara lipsa de stoc,
luand n considerare si costul de achizit ie
Presupunem ca se stocheaza un produs al carui consum este o funct ie liniara
de timp, cererea produsului este Q pentru o perioada de timp , reaprovizionarea
stocului se face instantaneu la intervale de timp egale cu T si n cantitat i egale
cu q, costul unitar de achizit ie sau de product ie c
a
, costul unitar de stocare n
unitatea de timp este c
s
si se presupune proport ional cu cheltuielile facute pentru
apovizionarea cu o unitate de produs, costul x al comenzii de reaprovizionare este
c
b
(totalul cheltuielilor legate de operat ia de reaprovizionare ce nu depinde de q) si
nu se admite lipsa de stoc.
Acest model este o varianta a modelului 1 n care costul de lansare al comenzii
este:
c
l
= qc
a
+c
b
,
costul unitar de stocare:
c
s
= (c
a
+
c
b
q
).
Funct ia obiectiv devine:
C(q) =
Q
q
(qc
a
+c
b
) +
q
2
(c
a
+
c
b
q
)
=
Q
q
c
b
+
1
2
qc
a
+Qc
a
+
1
2
c
b
.
Din condit ia de optim pentru C(q) obt inem:
q =
_
2Qc
b
c
a
.
(C

( q) > 0, deci extremul este punct de minim).


Obt inem numarul optim de reaprovizionari:
=
Q
q
=

Qc
a
2c
b
,
perioada optima:

T =


=

2c
b
Qc
a
si gestiunea optima:

C = C( q) =
_
2Qc
a
c
b
+Qc
a
+
1
2
c
b
.
MODELE DETERMINISTE 109
7.2.4. Model de stocare a mai multor produse

In cazurile practice ne confruntam cu situat ia stocarii mai multor produse. Vom


presupune ca suntem n cazul modelului 1, deci se stocheaza k produse P
i
(i =
1, 2, . . . , k) al caror consum sunt funct ii liniare de timp, cererea produsului P
i
este
Q
i
pentru o perioada de timp , reaprovizionarea stocului se face instantaneu la
intervale de timp egale cu T
i
si n cantitat i egale cu q
i
, costul unitar de stocare n
unitatea de timp este c
s
i
, costul de lansare al comenzii de reaprovizionare este c
l
i
(totalul cheltuielilor legate de operat ia de reaprovizionare ce nu depinde de q
i
) si nu
se admite lipsa de stoc pentru nici un produs.
Costul total de stocare pentru produsul P
i
este:
C
i
(q
i
) =
Q
i
q
i
c
l
i
+
1
2
q
i
c
s
i
,
iar funct ia obiectiv pentru toate produsele stocate:
C(q
1
, . . . , q
k
) =
k

i=1
C
i
(q
i
).
Cum funct iile C
i
(q
i
) (i = 1, . . . , k) sunt independente, minimul sumei lor are loc
odata cu minimul ecareia dintre ele si deci avem echivalent a ntre relat iile:
C(q
1
, . . . , q
k
)
q
i
= 0
si
C
i
(q
i
)
q
i
= 0, i = 1, . . . , k.
Gasim pentru produsele P
i
valorile:
q
i
=

2Q
i
c
l
i
c
s
i
,
numarul de reaprovizionari:

i
=
Q
i
q
i
=

Q
i
c
si
2c
l
i
,
perioada optima:

T =


i
=

2c
l
i
Qc
s
i
110 TEORIA STOCURILOR
si gestiunea optima:

C =
k

i=1

C
i
,
unde:

C
i
= C
i
(q
i
) =
_
2Q
i
c
l
i
c
s
i
.
Rezultate similare se obt in pentru celelalte modele.
7.3. Modele probabiliste
7.3.1. Model de stocare a unui produs cu cerere aleatoare, cu
pierdere n cazul surplusului de stoc, cu cheltuieli supli-
mentare n cazul lipsei de stoc si cu cost de stocare neglijabil
Presupunem ca se stocheaza un singur produs a carui cerere este o variabila
aleatoare X cu repartit ia:
X : (x, p(x)), x = 0, 1, 2, . . .
pentru cerere discreta si:
X : (x, f(x)), x [0, )
pentru cerere continua; excedentul de stoc, cand x s (s ind stocul), se penalizeaza
cu o pierdere unitara c
1
; lipsa de stoc, cand x > s, se penalizeaza cu cheltuieli
suplimentare de reaprovizionare unitare c
2
; cheltuielile de stocare sunt foarte mici
n raport cu c
1
si c
2
si se neglijeaza.
Cazul discret. Variabila aleatoare excedent de stoc E
s
are repartit ia:
E
s
:
_
s x
p(x)
_
, x = 0, 1, . . . , s,
cu media:
M(E
s
) =
s

x=0
(s x)p(x),
iar variabila aleatoare lipsa de stoc are repartit ia:
L
s
:
_
x s
p(x)
_
, x = s + 1, s + 2, . . .
cu media:
M(L
s
) =

x=s+1
(x s)p(x).
MODELE PROBABILISTE 111
Funct ia obiectiv a modelului matematic reprezinta cheltuielile medii totale legate
de managementul stocului, adica:
C(s) = c
1
s

x=0
(s x)p(x) +c
2

x=s+1
(x s)p(x).
Stocul optim s se obt ine din condit ia de minim pentru funct ia obiectiv C(s).
Teorema 7.3.1. (Optim pentru cazul discret). Funct ia C(s) si atinge minimul
n punctul s pentru care F( s 1) < < F( s), unde =
c
2
c
1
+c
2
, iar F(s) = Pr(x
s) =
s

x=0
p(x) este o funct ie crescatoare.
Demonstratie.
C(s) este o funct ie discreta si s este punct de minim daca si numai daca avem
C( s) < min{C( s 1), C( s +1)}. Aceasta dubla inegalitate permite determinarea lui
s ca solut ie a sistemului de inecuat ii:
_
C(s 1) C(s) > 0
C(s + 1) C(s) > 0.
(7.1)
Avem:
C(s + 1) = c
1
s+1

x=0
(s + 1 x)p(x) +c
2

x=s+2
(x s 1)p(x) =
= c
1
s

x=0
(s + 1 x)p(x) +c
2

x=s+1
(x s 1)p(x) =
= c
1
s

x=0
(s x)p(x) +c
1
s

x=0
p(x) +c
2

x=s+1
(x s)p(x)
c
2

x=s+1
p(x) = C(s) +c
1
s

x=0
p(x) c
2

x=s+1
p(x).
Notand F(s) =
s

x=0
p(x), avem:
C(s + 1) = C(s) + (c
1
+c
2
)F(s) c
2
. (7.2)
112 TEORIA STOCURILOR
Analog obt inem:
C(s 1) = c
1
s1

x=0
(s 1 x)p(x) +c
2

x=s
(x s + 1)p(x)
= c
1
s1

x=0
(s x)p(x) +c
1
s1

x=0
p(x) +c
2

x=s
(x s)p(x)
+c
2

x=s
p(x) = c
1
s

x=0
(s x)p(x) +c
2

x=s+1
(x s)p(x)
+c
1
F(s 1) +c
2
(1 F(s 1))
sau
C(s 1) = C(s) (c
1
+c
2
)F(s 1) +c
2
. (7.3)

Inlocuind 7.2 si 7.3 n 7.1 obt inem:


C(s + 1) C(s) = (c
1
+c
2
)F(s) c
2
> 0,
C(s 1) C(s) = (c
1
+c
2
)F(s 1) +c
2
> 0,
de unde:
F(s 1) <
c
2
c
1
+c
2
< F(s)
sau
F(s 1) < < F(s)
si teorema este demonstrata.
Observat ii:
i) Daca F( s 1) < < F( s) si deoarece F(s) este crescatoare atunci exista s
unic.
ii) Daca F( s 1) < = F( s) atunci C(s) are doua puncte de minim s si s + 1.
iii) Daca F( s 1) = < F( s) atunci C(s) are doua puncte de minim s 1 si s.
Cazul continuu. Variabila excedent de stoc E
s
are repartit ia:
E
s
:
_
s x
f(x)
_
, x [0, s],
cu media:
M(E
s
) =
s
_
0
(s x)f(x)dx,
MODELE PROBABILISTE 113
iar variabila aleatoare lipsa de stoc are repartit ia:
L
s
:
_
x s
f(x)
_
, x [s, ),
cu media:
M(L
s
) =

_
s
(x s)f(x)dx.
Funct ia obiectiv a modelului matematic reprezinta cheltuielile medii totale legate
de managementul stocului, adica:
C(s) = c
1
s
_
0
(s x)f(x)dx +c
2

_
s
(x s)f(x)dx.
Stocul optim s se obt ine din condit ia de minim pentru funct ia obiectiv C(s).
Teorema 7.3.2. (Optim pentru cazul continuu). Funct ia C(s) si atinge mini-
mul n punctul s pentru care F( s) = , unde =
c
2
c
1
+c
2
si F(s) = =
s
_
0
f(x)dx.
Demonstrat ie.
C

(s) = c
1
s
_
0
f(x)dx c
2

_
s
f(x)dx
si din condit ia C

(s) = 0, rezulta:
c
1
F(s) c
2
(1 F(s)) = 0,
de unde:
F(s) =
c
2
c
1
+c
2
= .
Solut ia ecuat iei F(s) = o vom nota cu s si deoarece C

(s) > 0, aceasta este


punct de minim.
114 TEORIA STOCURILOR
7.3.2. Model de stocare a unui produs cu cerere aleatoare, cu
cost de stocare si cost de penalizare pentru lipsa de stoc
Presupunem ca se stocheaza un singur produs a carui cerere este o variabila
aleatoare X cu repartit ia:
X : (x, p(x)), x = 0, 1, 2, . . .
pentru cerere discreta si
X : (x, f(x)), x [0, )
pentru cerere continua, costul unitar de stocare este c
s
, costul unitar de penalizare
pentru lipsa de stoc este c
p
, iar nivelul stocului la un moment dat este s.

In managementul acestui stoc pe o perioada T se pot ivi doua situat ii:


i) cererea nu depaseste stocul (g.7.3), deci ea este satisfacuta n toata perioada
T, adica avem x s pe perioada T;
ii) cererea este mai mare decat stocul (g.7.4), adica x > s, ceea ce face ca n
perioada T
1
cererea sa e satisfacuta, iar n perioada T
2
cererea sa nu e satisfacuta
(T
1
+T
2
= T).
Figura 7.3: Cererea nu depaseste stocul.
Prezentam cazul discret si cazul continuu.
Cazul discret. Pentru situat ia i) stocul mediu pentru care se plateste costul
unitar de stocare c
s
, este:
s

x=0
(s
x
2
)p(x).
MODELE PROBABILISTE 115
Figura 7.4: Cererea depaseste stocul.
Pentru situat ia ii) vom avea un stoc mediu:

x=s+1
s
2
p(x),
pentru care se platesc cheltuieli unitare de stocare c
s
pe perioada T
1
si o lipsa medie
de stoc (penurie medie):

x=s+1
x s
2
p(x),
penalizata cu un cost unitar de penalizare c
p
pe perioada T
2
.
Funct ia obiectiv a modelului reprezinta cheltuielile medii totale legate de mana-
gementul stocului, pe perioada T, adica:
C
T
(s) = c
s
T
s

x=0
(s
x
2
)p(x) +c
s
T
1

x=s+1
s
2
p(x) +c
p
T
2

x=s+1
x s
2
p(x).
Avem:
T
1
T
=
s
x
si
T
2
T
=
x s
s
,
de unde:
T
1
=
s
x
T
116 TEORIA STOCURILOR
si
T
2
=
x s
s
T

Inlocuind valorile lui T


1
si T
2
n formula lui C
T
(s) gasim:
C
T
(s) = TC(s),
unde am notat prin C(s) cheltuielile medii totale n unitatea de timp si:
C(s) = c
s
s

x=0
(s
x
2
)p(x) +
1
2
c
s
s
2

x=s+1
p(x)
x
+
1
2
c
p

x=s+1
(x s)
2
x
p(x).
Stocul optim s se obt ine din condit ia de minim pentru funct ia C(s).
Teorema 7.3.3. (Optim pentru cazul discret). Funct ia C(s) si atinge minimul
n punctul s pentru care L( s 1) < < L( s), unde =
c
p
c
s
+c
p
si
L(s) =
s

x=0
p(x) + (s +
1
2
)

x=s+1
p(x)
x
.
Demonstrat ie.
Condit ia de minim pentru funct ia discreta C(s) este
< min{C( s 1), C( s + 1)}
condit ie ce permite determinarea punctului de minim s ca solut ie a sistemului de
inecuat ii:
_
C(s 1) C(s) > 0
C(s + 1) C(s) > 0.
Avem:
C(s + 1) = c
s
s+1

x=0
(s + 1
x
2
)p(x) +
1
2
c
s
(s + 1)
2

x=s+2
p(x)
x
+
+
1
2
c
p

x=s+2
(x s 1)
2
x
p(x).
Sumele din partea a doua a egalitat ii se rescriu:
MODELE PROBABILISTE 117
s+1

x=0
(s + 1
x
2
)p(x) =
s+1

x=0
(s
x
2
)p(x) +
s+1

x=0
p(x) =
=
s

x=0
(s
x
2
)p(x) +
s

x=0
p(x) +
s + 1
2
p(s + 1),

x=s+2
p(x)
x
=

x=s+1
p(x)
x

p(s + 1)
s + 1
si

x=s+2
(x s 1)
2
x
p(x) =

x=s+1
(x s 1)
2
x
p(x) =

x=s+1
(x s)
2
x
p(x)
2

x=s+1

(x s)
2
x
p(x) +

x=s+1
p(x)
x
=

x=s+1
(x s)
2
x
p(x)
2

x=s+1
p(x) + (2s + 1)

x=s+1
p(x)
x
.

Inlocuind aceste sume n formula lui C(s + 1) obt inem:


C(s + 1) = C(s) + (c
s
+c
p
)
_
s

x=0
p(x) + (s +
1
2
)

x=s+1
p(x)
x
_
c
p
sau
C(s + 1) C(s) = (c
s
+c
p
)L(s) c
p
.
Analog gasim:
C(s 1) C(s) = (c
s
+c
p
)L(s 1) +c
p
.

Inlocuind aceste relat ii n sistemul descris obt inem:


_
(c
s
+c
p
)L(s) c
p
> 0
(c
s
+c
p
)L(s 1) +c
p
> 0,
de unde rezulta ca L(s 1) < < L(s) si teorema este demonstrata. Se arata
simplu ca C

( s) > 0 si, deci, s solut ia inegalitat ilor L(s 1) < < L(s) este punct
de minim. Gestiunea optima se obt ine calculand pe C( s).
118 TEORIA STOCURILOR
Cazul continuu. Rat ionand ca la cazul discret, se obt ine pentru funct ia obiectiv
de la acest model C(s), expresia:
C(s) = c
s
s
_
0
(s
x
2
)f(x)dx +
1
2
s
2
c
s

_
s
f(x)
x
dx +
1
2
c
p

_
s
(x s)
2
x
f(x)dx.
Stocul optim s se obt ine din condit ia de minim pentru funct ia C(s).
Teorema 7.3.4. (Optim pentru cazul continuu). Funct ia C(s) si atinge mini-
mul n punctul s pentru care L(s) = , unde =
c
p
c
s
+c
p
si:
L(s) = F(s) +s

_
s
f(x)
x
dx, cu F(s) =
s
_
0
f(x)dx.
Demonstrat ie.
Avem:
C

(s) = c
s
s
_
0
f(x)dx +sc
s

_
s
f(x)
x
dx c
p

_
s
(x s)
x
f(x)dx.
Ecuat ia C

(s) = 0 ne da:
F(s) +s

_
s
f(x)
x
dx =
c
p
c
s
+c
p
, sau L(s) = .
Solut ia ecuat iei L(s) = o vom nota cu s si deoarece C

( s) > 0, aceasta este punct


de minim.
7.4. Aplicat ii
Exercit iul 7.4.1. O unitate comerciala are o cerere anuala (365 zile) de 2000t
benzina. Costul de lansare al comenzii este de 150$, iar costul de stocare pe zi este de
0,5$/t.

In ipoteza ca se admite un consum uniform, aprovizionarea se facen cantitat i
egale si ca nu se admite lipsa benzinei din stoc, sa se determine: volumul optim
al unei comenzi, numarul optim de reaprovizionari, perioada optima si gestiunea
optima.
APLICAT II 119
Raspuns. Modelul matematic al problemei este un model de stocare a unui produs
cu cerere constanta, perioada constanta de reaprovizionare si fara lipsa de stoc.
Datele problemei sunt:
_

_
Q = 2000 t;
= 365 zile;
c
l
= 150$;
c
s
= 0, 5$/t.
Exercit iul 7.4.2. La un magazin se estimeaza ca cererea lunara (30 zile) pentru
un anume tip de produs este de 6000 kg. Costul zilnic de stocare pentru 10 kg din
marfa respectiva este de 0, 25$, costul de lansare a unei comenzi este de 100$ si
costul de penalizare de 0, 25$ /kg.

In ipoteza ca se admite o vanzare uniforma,
aprovizionarea se face n cantitat i egale si la intervale egale de timp, sa se determine
volumul optim al unei comenzi, stocul optim, numarul optim de reaprovizionari,
perioada optima si gestiunea optima.
Raspuns. Modelul matematic al problemei este un model de stocare a unui produs
cu cerere constanta, perioada constanta de reaprovizionare si cu posibilitatea lipsei
de stoc.
_

_
Q = 6000 kg;
= 30 zile;
c
s
= 0, 025$;
c
p
= 0, 25$;
c
l
= 100$.
Exercit iul 7.4.3. La un magazin alimentar se vand produse lactate care au
un termen de garant ie de 3 zile. Necesarul de produse pentru 300 zile este de
250000 bucat i, pret ul de achizit ie de 0,25$, costul x de lansare al comenzii 500$,
iar coecientul de proport ionalitate de 0,015.

In ipoteza ca se admite o vanzare
uniforma, aprovizionarea se face la intervale egale si ca nu se admite lipsa de stoc,
sa se stabileasca, daca este posibil (nu se depaseste termenul de garant ie), comanda
optima, numarul optim de comenzi si gestiunea optima.
Raspuns. Modelul matematic al problemei este un model de stocare a unui produs
cu cerere constanta, perioada constanta de reaprovizionare si fara lipsa de stoc, luand
n considerare si costul de achizit ie.
120 TEORIA STOCURILOR
_

_
= 300 zile;
Q = 250000;
c
a
= 0, 25$;
c
b
= 500$;
= 0, 15;
cu restrict ia T 3.
Exercit iul 7.4.4. Se organizeaza pe o perioda de 300 zile stocul produselor
P
1
, P
2
, P
3
, n condit iile modelului de stocare a mai multor produse. Sunt date:
_

_
Q
1
= 400t;
Q
2
= 2500t;
Q
3
= 900t;
c
l
1
= 200$;
c
l
2
= 150$;
c
l
3
= 400$;
c
s
1
= 2$;
c
s
2
= 2$;
c
s
3
= 4$.
Sa se stabileasca elementele optime ale activitat ii de management a stocului.
Exercit iul 7.4.5. Cererea (n tone) pentru o anumita marfa este o variabila
aleatoare cu densitatea de probabilitate:
f(x) =
_
(x +), x [0, 5]
0, n rest.
Stiind ca surplusul de marfa se vinde cu o pierdere de 10$ /t, iar n cazul lipsei
de marfa se fac cheltuieli suplimentare de aprovizionare de 20$/t, sa se optimizeze
stocul. Parametrul este un numar ntreg bine precizat.
Raspuns. Determinam mai ntai valoarea din condit ia
5
_
0
(x+) = 1. Obt inem:
=
2
25 + 10
.
Funct ia de repartit ie va :
F(s) =
s
_
0
(x +)ds = (
s
2
2
+s),
APLICAT II 121
iar ecuat ia
F(s) =
c
2
c
1
+c
2
devine:
2
25 + 10
(
s
2
2
+s) =
2
3
,
care este echivalenta cu:
s
2
+ 2s
10(5 + 2)
3
= 0.
Solut ia s() = +
1
3

9
2
+ 30 [0, 5] a acestei ecuat ii este stocul optim.
Gestiunea optima va C( s()).
Exercit iul 7.4.6. Cererea (n tone) pentru o anumita marfa este o variabila
aleatoare cu densitatea de probabilitate:
f(x) =
_
(x +), x [0, 5]
0, n rest.
Stiind ca costul de stocare este de 1$/t, iar n cazul lipsei de marfa cheltuielile
de penalizare sunt de 10$/t, sa se optimizeze stocul. Parametrul este un numar
ntreg bine precizat.
Raspuns. Determinam mai ntai valoarea din condit ia
5
_
0
(x+) = 1. Obt inem:
=
2
25 + 10
.
Funct ia de repartit ie va :
F(s) =
s
_
0
(x +)ds = (
s
2
2
+s),
Ecuat ia
F(s) +s

_
0
f(x)
x
dx =
c
p
c
p
+c
s
care ne va da stocul optim va :
122 TEORIA STOCURILOR
(
s
2
2
+s) +s

_
s
(x
2
+)
x
dx =
10
11
sau
(
s
2
2
+s) +s

_
s
(x
2
+)
x
dx =
10
11
,
ecuat ie care nu are solut ii (integrala este divergenta). Acest lucru ne arata ca nu se
poate calcula mereu un stoc optim.
Exercit iul 7.4.7.

In vederea efectuarii unor studii de marketing, o agent ie comer-
ciala cumpara un calculator electronic. Calculatorul este dotat cu un numar de cir-
cuite integrate care n caz de defectare se schimba. Se stie ca acest tip de circuite
cumparate odata cu calculatorul costa 5$ bucata, iar comanda speciala costa 10$
bucata. Datele statistice arata urmatoarea cerere de terminale (tabelul 7.1):
TABELUL 7.1
Circuite nlocuite (x) 0 1 2 3 4
Numar calculatoare cu x circuite nlocuite 1 2 4 2 1

In ipoteza costului de stocare neglijabil, sa se determine stocul optim de circuite


integrate comandate o data cu calculatorul precum si gestiunea optima.
Raspuns. Modelul matematic corespunzator este modelul de stocare a unui pro-
dus cu cerere aleatoare, cu pierdere n cazul surplusului de stoc, cu cheltuieli supli-
mentare n cazul lipsei de stoc si cu cost de stocare neglijabil.
Exercit iul 7.4.8. Se stie ca un anumit produs are o cerere lunara aleatoare
conform cu tabelul 7.2:
TABELUL 7.2
cererea x 1 2 3 4
p(x) 0,2 0,3 0,4 0,1

In ipoteza ca se admit cheltuieli de stocare pe zi pentru o tona de 1$ si ca lipsa


de stoc este penalizata cu 3$ pe zi pentru o tona lipsa, sa se determine stocul optim.
Raspuns. Modelul matematic corespunzator este modelul de stocare a unui pro-
dus cu cerere aleatoare, cu cost de stocare si cost de penalizare pentru lipsa de stoc
(caz discret).
Capitolul 8
PROBABILIT

ATI
8.1. Probabiliatea unui eveniment
8.1.1. Cazul nit dimensional si al evenimetelor elementare echiprob-
abile
Fermat (1601-1665) si Pascal (1623-1662) au denit pentru prima data probabil-
itatea realizarii evenimentului A, ca:
P(A) =
Numarul cazurilor favorabile aparit iei evenimentului A
Numarul total de cazuri
.
Denit ia este valabila n cazul nit dimensional si al evenimentelor elementare
echiprobabile.
Exemple:
a) Se arunca cu doua zaruri. Probabilitatea de a obt ine poarta n casa, adica
|nm| = 2, unde n si m sunt numerele de pe zarurile care au iesit la aruncare, este:
P(A) =
8
36
= 0, 22.
b) Schema lui Bernoulli (1700-1782), fara ntoarcere.

Intr-o urna sunt a bile albe,
b bile negre, c bile rosii. Se fac n extrageri succesive n a + b + c, fara revenire.
Probabilitatea sa avem extrase bile albe, bile negre, bile rosii, n = + +,
0 a, 0 b, 0 c este:
P(A) =
C

a
C

b
C

c
C
++
a+b+c
.
123
124 PROBABILIT

AT I
8.1.2. Probabitat i geometrice
Formula utilizata este P(A) =
Aria hasurata
Aria totala
.
Exemple:
a) Se aleg la ntamplare doua numere, 1 , 1. Care este probabiliatea ca

2
+
2
1?
Figura 8.1: Exemplu de probabilitate geometrica.
P(A) =

4
.
b) Acul lui Buon (1707-1788).

In plan este trasata o ret ea de drepte paralele, echidistante, la distant a 1, una de


alta. Se arunca un ac de lungime 0, 5. Probabilitatea ca acul sa atinga ret eaua este
1

, se poate arata folosind probabiliat i geometrice.


c) Se alege la ntamplare un triunghi, din mult imea tuturor triunghiurilor. Prob-
abilitatea ca triunghiul sa e ascut itunghic este
1
4
. Probabilitatea ca triunghiul sa
e dreptunghic este 0. Acestea se pot deduce utilizand probabiliat i geometrice.
8.1.3. Frecvent a absoluta. Frecvent a relativa
Notam cu (f
n
) sirul frecvent elor absolute ale aparit iei evenimentului A n urma
unor experimente repetate. Fie (
n
) sirul frecvent elor relative corespunzatoare:
n
=
f
n
n
. Daca
n
p si p = P(A), calculata, estimata printr-o alta metoda, atunci avem
o mai mare ncredere ca p = P(A).
Frecvent a absoluta poate privita ca o variabila aleatoare, astfel:

f
1
variabila
aleatoare care are repartit ia:
PROBABILIATEA UNUI EVENIMENT 125
_
0 1
q p
_
,
unde p = P(A), q = 1 p.

f
2
este variabila aleatoare care are repartit ia:
_
0 1
q p
_
+
_
0 1
q p
_
=
_
0 1 2
q
2
2qp p
2
_
.

f
3
este variabila aleatoare care are repartit ia:
_
0 1
q p
_
+
_
0 1
q p
_
+
_
0 1
q p
_
=
_
0 1 2 3
q
3
3q
2
p 3qp
2
p
3
_
s.a.m.d.
Sirul variabilelor aleatoare

f
n
monitorizeaza aparit ia evenimetului A.
Deci

f
n
este variabila aleatoare care are repatit ia:
_
0 1 2 . . . n
q
n
C
1
n
q
n1
p C
2
n
q
n2
p
2
. . . p
n
_
.
Frecvent a relativa
n
este variabila aleatoare
n
=
1
n


f
n
.
Prin urmare frecvent ele absolute si frecvent ele relative pot privite ca siruri
numerice, (f
n
) si (
n
) si pot privite ca varialibele aleatoare (

f
n
) si (
n
).
8.1.4. Denit ia statistica a probabilitat ii
a) Fie experient a aruncarii cu banul. A evenimentul de a apare banul. P(A) =
p =
1
2
. Person a facut experint a de 24000 ori si a obt inut
n
= 0, 5005..
b) S-a facut experint a acului lui Buon de un numar de 5000 de ori. S-a obt inut
pentru
5000
= 0, 3175, de unde 3, 1496.
Aceste doua exemple, celebre, nendreptat esc sa acceptam cuncredere si sperant e
denit ia urmatoare: Fie A un eveniment. Repetam experint a de multe ori si cal-
culam f
n
si
n
. Daca
n
se stabilizeaza n jurul unei valori p R, acceptam denit ia
P(A) =
n
= p, n sucient de mare, cand
n
se stabilizeaza aproape de p. Aceasta
este denit ia statistica a probabilitat ii lui A.
126 PROBABILIT

AT I
8.2. Variabile aleatoare normal distribuite
8.2.1. Densitatea de probabilitate normala
p(x) =
1

2
e

(x m)
2
2
2
, m R, > 0 se numeste densitatea de probabilitate
normala, densitatea de probabilitate a lui Gauss (1777-1855).
O variabila aleatoare care are densitatea p(x) se numeste normal distribuita si
are media m si abaterea patratica :
Figura 8.2: Gracul densitat ii normale.
8.2.2. Funct ia Laplace-Gauss
(x) =
1

2
_
x

t
2
2
dt este funct ia Laplace (1749-1827)-Gauss.
(x) are urmatoarele proprietat i imdediate:
(0) =
1
2
(x) + (x) = 1, x R
(x) 1, x 3
(x) 0, x 3.
LEGEA NUMERELOR MARI 127
Figura 8.3: Gracul funct iei Laplace-Gauss.
8.2.3. O formula analitica pentru calculul probabilitat ii
Enunt am o teorema de mare important a.
Teorema 8.2.1. a) Daca f este o variabila aleatoare cu densitatea de probabil-
itate p(x), atunci P( f ) =
_

p(x)dx.
b) Daca f este o variabila aleatoare normal distribuita, adica p(x) este densitatea
normala, atunci: P( f ) = (
m

) (
m

).
8.2.4. Inegalitatea lui Cebasev (1821-1894)
Daca f este o variabila aleatoare cu media m si media patratica , atunci: P(|f
m| )

2

2
, > 0.
8.2.5. Teorema celor 3
a) Daca f este o variabila aleatoare cu media m si abaterea patratica , atunci
P(|f m| 3)
8
9
.
b) Daca f este o variabila aleaoare normal distribuita, atunci P(|fm| 3) 1.
8.3. Legea numerelor mari
Fie (, K, P) un camp de probabilitate si (f
n
), f variabile aleatoare. f
n
p
f daca
si numai daca pentru orice > 0, lim
n
P(|f
n
f| ) = 0.
128 PROBABILIT

AT I
Teorema 8.3.1. Fie (, K, P) un camp de probabilitate, A K, si p = P(A).
Fie (f
n
) sirul frecvent elor absolute si (
n
) sirul frecvent elor atasate unor experimente
succesive. Fie (f
n
) sirul variabilelor aleatoare al frecvent elor absolute si (
n
) sirul
variabilelor aleatoare al frecvent elor relative ale aparitiei evenimentului A. Atunci:
a)
n
p n imensa majoritate a cazurilor.
b)
n
p
p =
_
p
1
_
.
Observat ie. Daca
n
p
p =
_
p
1
_
, deci totdeauna
n
tinde n probabilitate la
variabila aleatoare
_
p
1
_
. Evident sunt miracole cand
n
nu converge la p dar n
imensa majoritate a cazurilor
n
p.
Legea numerelor mari da relat ia dintre p = P(A), probabilitatea lui A, calculata
sau estimata ntr-un anume mod si probabilitatea lui An sens statistic.
8.4. Teorema limita centrala
Sunt multe variante n care se prezinta acest important rezultat, care se mai
numeste Teorema fundamentala a statisticii.
8.4.1. Forma Leapunov (1857-1918) a Teoremei Limita Centrala
Teorema 8.4.1. Fie (f
n
) un sir de variabile aleatoare pe (, K, P), astfel ncat:
1. (f
n
) variabile aleatoare independente;
2. (f
n
) sunt din aceeiasi lume, adica au aceiasi densitate de probabilitate (sau
aceiasi matrice de repartit ie), deci au aceiasi medie m si aceiasi medie patratica
2
.
Atunci, pentru n mare avem: P( f
1
+ . . . + f
n
) (
n m

n
)
(
n m

n
).
Observat ia 8.4.1. Comparand teorema de mai sus cu formula de la punctul
8.2.3 se poate enunt a urmatorul rezultat, numit Miracolul Gauss-Lapace:
Daca f
1
, . . . f
n
, . . . sunt variabile aleatoare independente, din aceeiasi lume,
atunci pentru n mare, F = f
1
+. . . f
n
se comporta ca o variabila aleatoare normal
distribuita cu media M = n m si abaterea medie patratica

n.
TESTE 129
8.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limita Cen-
trala
Teorema 8.4.2. Fie (f
n
) un sir de variabile aleatoare pe (, K, P), astfel ncat:
1. (f
n
) variabile aleatoare independente.
2. (f
n
) variabile aleatoare, din aceeiasi lume, Bernoulliana cu X =
_
0 1
q p
_
.
Atunci, pentru n mare avem: P( f
1
+ . . . + f
n
) (
n p

npq
)
(
n p

npq
).
8.5. Teste

In cele ce urmeaza vom prezenta cateva teste ce au fost sau se pot propune la
un examen. Fiecare test are trei part i. Partea 1 este partea teoretica, part ile 2 si 3
cont in aplicat ii referitoare a legea numerelor mari si teorema limita centrala.
8.5.1. Testul 1
Exercit iul 8.5.1.1. a) Enunt at i teorema celor 3.
b) Legea uniforma pe intervalul [10, 20]. Media si abaterea medie patratica pentru
o variabila aleatoare uniform repartizata pe [10, 20].
c) Fie (f
n
) variabile aleatoare, care au densitat ile de probabiliatate (p
n
), respec-
tiv, unde p
n
are gracul:
Figura 8.4: Densitatea de probabilitate.
Sirul de variabile aleatoare f
n
converge n probabilitate, la 0 (f
n
p
0)?
130 PROBABILIT

AT I
Exercit iul 8.5.1.2. O ret ea de tracant i de droguri pun droguri n pachet ele
ntre 10g si 50g. Distribut ia se apreciaza ca se face uniform. Pachetele se punn bax-
uri, ecare bax, avand 1000 pachet ele. Baxul este respins la controlul vamal daca are
mai mult de 32Kg. Folosind teorema limita centrala sa se determine probabilitatea
ca baxul sa treaca controlul vamal.
Exercit iul 8.5.1.3. Se considera ecuat ia ax
2
+ bx + 1 = 0, a = 0, a, b R,
1 a 1, 2 b 2.
Se aleg la ntamplare a, b n condit iile de mai sus.
Se cere:
a) Sa se determine p = P(A), probabilitatea ca ambele radacini sa e reale.
b) Sa se determine n N astfel ncat P(|
n
p| 0, 01) = 0, 7, unde
n
este variabila aleatoare a frecvent elor relative ale aparit iei evenimentului A, A ind
evenimentul ca ambele radacini sa e reale.
8.5.2. Testul 2
Exercit iul 8.5.2.1. a) Densitatea de probabilitate normala. Denit ie, pro-
prietat i, gracul.
b) Daca f este o variabila aleatoare normal distribuita, cu m = 70, = 5, calculat i
P(60 f 70).
c) Enunt at i teorema limita centrala sub forma Moivre-Laplace.
Exercit iul 8.5.2.2. Se aunca doua zaruri. Notam cu A evenimentul ca suma
zarurilor sa e 7.
a) Calculat i P(A).
b) Determinat i variabila aleatoare ce monitorizeaza aparit ia evenimentului A.
Determinat i m si .
c) Determinat i n N, de cate ori trebuie facuta experient a, astfel ncat P(|
n

p| 0, 01) = 0, 8, unde
n
este variabila aleatoare a frecvent elor relative ale aparit iei
evenimentului A.
Exercit iul 8.5.2.3. O banca are 10000 client i. Se estimeaza ca un client pe o
perioada de o luna are urmatoarele opt iuni:
i) n 30% din cazuri face un mprumut de 100 euro;
ii) n 20% din cazuri nu face mprumut, nu face economii;
iii) n 20% din cazuri face economii de 100 euro;
iv) n 30% din cazuri face un mprumut de 200 euro.
Notam cu S suma conturilor tuturor client ilor. Determinat i:
a) P(S 0), situat ia n care banca este n mare dicultate;
TESTE 131
b) P(S 1000000), situat ia n care banca are mare prot;
c) P(500000 S 700000).
8.5.3. Testul 3
Exercit iul 8.5.3.1. a) (x), funct ia lui Laplace. Denit ie, proprietat i, gracul.
Calculat i (1) + (2).
b) Enunt ul legii numerelor mari sub forma lui Bernoulli.
Exercit iul 8.5.3.2. Se alege la ntamplare o pereche de numere (x, y), 1
x, y 1. Notam cu A evenimentul ca x
2
+y
2
1.
a) Determinat i p = P(A).
b) Se noteaza cu
n
sirul variabilelor aleatoare ale frecvent elor relative ale aparit iei
evenimentului A. Determinat i n astfel ncat P(|
n
p| 0, 01) = 0, 8.
Exercit iul 8.5.3.3. Se arunca cu doua zaruri si se noteaza suma zarurilor cu s.
Se acorda 1 puncte daca s 5.
Se acorda 0 puncte daca s = 6 sau s = 7.
Se acorda 1 punct daca s 8.
Se face experient a de 1000 ori si se noteaza S =

s.
Determinat i P(100 S 150).
8.5.4. Testul 4
Exercit iul 8.5.4.1. a) Inegalitatea lui Cebasev.
b) Fie f o variabila aleatoare care are densitatea de probabilitate p(x) =
1
(x
2
+ 1)
.
Determinat i P(0 f 1).
Exercit iul 8.5.4.2. Se alege un triunghi, n mod aleatoriu, din mult imea tu-
turor triunghiurilor. Fie A evenimentul ca un unghi al triunghiului ales sa e mai
mare sau egal cu 120

. Fie p = P(A).
a) Calculat i p.
b) Se efectueaza aceasta experient a de 1000 ori. Sa se determine probabilitatea
ca evenimentul A sa se produca de un numar de ori cupris ntre 100 si 200 ori.
c) Sa se determine de cate ori trebuie efectuata exprient a, astfel ncat
n
p, cu
eroare de cel mult 0, 01 cu o probabilitatea de 0, 7.
Exercit iul 8.5.4.3. Se arunca 1000 zaruri. Se noteaza cu S suma tuturor
zarurilor. Determinat i n = P(3500 S 4000) si m = P(4000 S 6000).
Care numar este mai mare, n sau m?
132 PROBABILIT

AT I
8.5.5. Testul 5
Exercit iul 8.5.5.1. a) Teorema celor 3. Deducet i o teorema analoaga 2.
b) Fie densitatea de probabilitate p
n
(x) =
n


1
x
2
+n
2
.
f
n
variabila aleatoare cu densitatea de probabilitate p
n
. f
n
p
0?
Exercit iul 8.5.5.2. Fie f
1
, . . . , f
1000
variabile aleatoare independente, denite
(, K, P). Presupunem ca variabilele aleatoare au aceiasi densitate de probabilitate
p(x), a carui grac este reprezentat n gura 8.5.
Figura 8.5: Densitatea de probabilitate.
a) Determinat i m si , media si abaterea medie patratica a acestor variabile
aleatoare.
b) Notam cu S = f
1
+. . . f
1000
. Determinat i P(S 1350).
Observat ia 8.5.1. Problema de mai sus poate privita astfel: f
1
, f
2
, . . . f
1000
sunt conturi independente cu densitatea de probabilitatea p(x). Fiecare cont este
ntre 3 x 7 puncte sau ntre 300 RON si 700 RON, distribuite dupa legea
p(x). Sa se determine probabilitatea ca suma conturilor sa e n situat ia S 1350
puncte sau S 135000 RON.
Exercit iul 8.5.5.3. Fie (f
n
) un sir de variabile aleatoare simple pe (, K, P) a
caror repartit ie este:
_
1 0 1
1
n
1
2
n
1
n
_
.
a) Calculat i m
n
si
n
, mediile si abaterile medii patratice ale lui f
n
.
b) Decidet i daca f
n
p
0.
TESTE 133
8.5.6. Testul 6
Exercit iul 8.5.6.1. a) Denit i convergent a n probabilitate, f
n
p
f.
b) Se considera (f
n
), un sir de variabile aleatoare care au densitatea de probabil-
itate p
n
, acestea avand gracul din gura 8.6.
Figura 8.6: Densitatea de probabilitate.
Decidet i daca f
n
p
0.
c) Aceiasi ntrebare ca la punctul b) daca p
n
are gracul din gura 8.7.
Figura 8.7: Densitatea de probabilitate.
Exercit iul 8.5.6.2. Castigul zilnic al unui jucator la ruleta este repartizat uni-
form n intervalul [45, 55]. Care este probabilitatea ca el sa castige 1000 euro n
100 zile?
134 PROBABILIT

AT I
Exercit iul 8.5.6.3. Probabilitatea de castig la ruleta este 0, 45. Presupunem ca
la ecare joc castiga sau pierde 1 euro. Cate jocuri trebuie jucate astfel ncat cu
probabilitatea de 0, 5 castigul cazinoului sa e de cel put in 1000 euro?
8.6. Cateva distribut ii importante
8.6.1. Repartit ii continue
Vom prezenta o serie de distribut ii continue precum si principalele lor proprietat i.
Repartit ia normala
Denit ia 8.6.1. (Repartit ia normala). Vom spune ca variabila aleatoare X
urmeaza o repartit ie normala de parametrii si
2
(vom nota acest lucru prin
X N(,
2
)) daca are densitatea de repartit ie:
n(x; ,
2
) =
1

2
e

(x )
2
2
2
, x R.
Teorema 8.6.1. Media si dispersia unei variabile aleatoare X repartizata nor-
mal de parametrii si
2
este:
M(X) = ,
respectiv
D
2
(X) =
2
.
Teorema 8.6.2. Daca X
1
si X
2
au o repartit ie N(
1
,
2
1
), respectiv N(
2
,
2
2
)
atunci
X
1
+X
2
N(
1
+
2
,
2

2
1
+
2

2
2
)
unde , R.
Repartit ia lognormala
Denit ia 8.6.2. (Repartit ia lognormala). Vom spune ca variabila aleatoare
X(X > 0) urmeaza o repartit ie lognormala (vom nota acest lucru prin X LN(,
2
))
daca logaritmul ei are densitatea de repartit ie N(,
2
).
C

ATEVA DISTRIBUT II IMPORTANTE 135


Teorema 8.6.3. Media si dispersia unei variabile aleatoare X repartizata log-
normal de parametrii si
2
este:
M(X) = e
+
1
2

2
,
respectiv
D
2
(X) = e
2+
2
(e

2
1).
Teorema 8.6.4. Daca variabila aleatoare X urmeaz a o repartit ie lognormala
de parametrii si
2
0 atunci repartit ia lognormala standardizata tinde catre
repartit ia N(0, 1).
Teorema 8.6.5. Daca X
1
si X
2
au o repartit ie LN(
1
,
2
1
), respectiv LN(
2
,
2
2
)
atunci:
e

1
1
X

2
2
N( +
1

1
+
2

2
,
2
1

2
1
+
2
2

2
2
)
unde > 0 si
1
,
2
R.
Repartit ia uniforma
Denit ia 8.6.3. Vom spune ca variabila aleatoare X are o repartit ie uniforma
n intervalul [a, b] (vom scrie acest lucru prin X U(a, b)) daca densitatea sa de
repartit ie este:
u(x) =
1
b a
, x [a, b] si u(x) = 0, x / [a, b].
Teorema 8.6.6. Media si dispersia unei variabile aleatoare X repartizata U(a, b) :
M(X) =
a +b
2
,
respectiv
D
2
(X) =
(b a)
2
12
.
136 PROBABILIT

AT I
Repartit ia exponent iala
Denit ia 8.6.4. Vom spune despre variabila aleatoare X ca urmeaza o repartit ie
exponent iala de parametru > 0 (vom scrie acest lucru X Exp()) daca densi-
tatea de repartit ie este f(t) = e
t
pentru t 0 si f(t) = 0 pentru t < 0.
Teorema 8.6.7. Daca X Exp() atunci
M(X) =
1

,
D
2
(X) =
1

2
si
M(X
r
) =
r!

r
.
Exercit iul 8.6.1. Daca X si Y sunt variabile aleatoare independente repartizate
Exp() atunci
X
X +Y
Exp().
Repartit ia gama
Denit ia 8.6.5. Vom spune despre o variabila aleatoare ca urmeaza o repartit ie
gama de parametrii si (vom scrie acest lucru X (, )) daca are densitatea
de repartit ie:
f(x) =
1

()
x
1
e

, 0 x < .
unde este funct ia lui Euler denita prin formula:
() =

_
0
x
1
e
x
dx.
Teorema 8.6.8. Daca X (
1
, ) si Y (
2
, ) sunt variabile aleatoare
independente atunci:
a) X +Y (
1
+
2
, );
C

ATEVA DISTRIBUT II IMPORTANTE 137


b)
X
Y
are densitatea de repartit ie:
h(x) =
(
1
+
2
)
(
1
)(
2
)
x

1
1
(1 +x)
(
1
+
2
)
, x 0.
Generalizand la n variabile aleatoare, obt inem repartit ia Dirichlet.
Teorema 8.6.9. Daca X
i
(
i
, 1) sunt k +1 variabile aleatoare independente
atunci repartit ia variabilelor aleatoare Y
1
, . . . , Y
k+1
date de:
_
Y
j
=
X
j
X
1
+...+X
k+1
, j = 1, . . . , k
Y
k+1
= X
1
+. . . +X
k+1
are forma (repartit ia Dirichlet):
(
k+1

i=1

i
)
k

i=1
y

i
1
i
(1
k

i=1
y
i
)

k+1
1
k+1

i=1
(
i
)
,
unde 0 < y
j
si y
1
+. . . +y
k
< 1.
Un alt caz particular important al repartit iei gama se obt ine pentru =
n
2
cu
orice n ntreg pozitiv si = 2
2
. Repartit ia astfel obt inuta se numeste repartit ia

2
cu n grade de libertate.
Observat ia 8.6.1. Pentru n = 2 repartit ia
2
devine repartit ia exponent iala.
Teorema 8.6.10. Daca X
i
N(0,
2
) sunt n variabile independente atunci
variabila aleatoare:
Y =
n

i=1
X
2
j

2
(n).
Teorema 8.6.11. Daca X
2
(n), atunci asimptotic
X n
2

2n
N(0, 1).
De obicei, cunatilele repartit iei
2
(n) sunt tabelate pana la n = 30, deoarce
pentru n > 30 este posibil sa se foloseasca cunatilele repartit iei N(0, 1).
138 PROBABILIT

AT I
Repartit ia beta
Denit ia 8.6.6. Vom spune ca variabila aleatoare X urmeaza o repartit ie beta
de parametrii si (vom scrie acest lucru ca X Be(, )), daca are densitatea
de repartit ie:
f(x) =
_
(+)
()()
x
1
(1 x)
1
, 0 < x < 1; , > 0
0 n rest.
Denit ia 8.6.7. Repartit ia F(m, n) este obt inuta ca o transformare a repartit ie
beta:
Y =
X
(1 X)
unde X Be(, )
cu =
m
2
si =
n
2
. Distribut ia corespunzatoare variabilei Y F(m, n) este:
f(x) =
_
(
m+n
2
)
(
m
2
)(
n
2
)
_

y
1
(1 +

y)
(+)
, 0 < x < 1; , > 0
0 n rest.
Teorema 8.6.12. Daca X
2
(m) si Y
2
(n) atunci:
F =
X/m
Y/n
Be(, ).
Denit ia 8.6.8. Repartit ia t(n) (t cu n grade de liberatate) este obt inuta ca o
transformare a repartit ie F(1; n) si anume:
t =

X
iar densitatea de repartit ie corespunzatoare este:
f(x) =
_
(
n+1
2
)

n(
n
2
)
(1 +
x
2
n
)

n+1
2
, < x < ; n = 1, 2, 3, . . .
0 n rest.
Teorema 8.6.13. Daca X N(0, 1) si Y
2
(n) atunci
t =
X
_
Y
n
t(n).
C

ATEVA DISTRIBUT II IMPORTANTE 139


Repartit ia Cauchy
Denit ia 8.6.9. Repartit ia Cauchy C(; ) este denita de densitatea de repar-
tit ie:
f(x) =

2
+ (x )
2
, x R, > 0.
Observat ia 8.6.2. Repartit ia Cauchy este un exemplu de repartit ie care nu are
momente.
8.6.2. Distribut ii discrete
Vom prezenta principalele distribut ii discrete: Bernoulli, Binomiala, Poisson,
hipergeometrica si geometrica.
Distribut ia Bernoulli
Denit ia 8.6.10. Distribut ia Bernoulli de parametru p este data de P(X =
1) = p si P(X = 0) = 1 p, cu p (0, 1).
Teorema 8.6.14. Daca variabila X urmeaza o distribut ie Bernoulli de para-
metru p atunci media este M(X) = p iar dispersia D
2
(X) = p(1 p).
Distribut ia binomiala
Denit ia 8.6.11. Distribut ia binomiala Bi(n, p) de parametrii n si p este data
de P(X = i) = C
i
n
p
ni
(1 p)
i
pentru i = 0, . . . , n.
Teorema 8.6.15. Daca variabila X urmeaza o distribut ie binomiala Bi(n, p)atunci
media este M(X) = np iar dispersia D
2
(X) = np(1 p).
Teorema 8.6.16. Daca X
1
, . . . , X
n
sunt n variabile aleatoare independente repar-
tizate Bernoulli de parametru p atunci variabila
n

i=1
X
i
urmeaza o repartit ie bino-
miala Bi(n, p).
Observat ia 8.6.3. Distribut ia binomiala Bi(n, p) de parametrii n si p este mod-
elata de select ia cu revenire dintr-o urna U(a, b) care cont ine a bile albe si b bile
negre si este probabilitatea ca din n extrageri sa se obt ina k bile albe:
140 PROBABILIT

AT I
P(X = k) = C
k
n
_
a
a +b
_
k
_
1
n
a +b
_
nk
.
Distribut ia Poisson
Distribut ia Poisson se obt ine din distribut ia Bi(n, p) cand n , p 0 si
produsul n p = este constant. Funct ia densitate de probabilitate este data de:
P(X = k) =

k
e

k!
, k = 0, 1, 2, . . .
Distribut ia hipergeometica
Distribut ia hipergeometrica este modelata de o select ie fara revenire dintr-o urna
U(a, b) care cont ine a bile albe si b bile negre si este probabilitatea ca din n extrageri
sa se obt ina k bile albe:
P(X = k) =
C
k
a
C
nk
b
C
n
a+b
unde n a +b si k a.
Distribut ia geometrica
Distribut ia geometrica are funct ia de densitate de probabilitate data de:
P(X = n) = p(1 p)
n
, pentru n = 0, 1, . . .
Este numita distribut ia lui Pascal (1623-1662) si mai este numita distribut ia
primului succes.
8.6.3. Calculul numeric al cuantilelor
Vom prezenta doua metode numerice de calcul a cuantilei de ordinul pentru
repartit ia N(0, 1), respectiv repartit ia
2
(n).
Cuantila repartit iei normale
Fara restrangerea generalitat ii putem presupune ca [0, 0, 5]. Atunci, utilizand
tehnica dezvoltarii n fract ii continue, vom obt ine:
u

=
2

i=0
a
i

i
3

i=0
b
i

i
, =
_
ln
1

2
,
C

ATEVA DISTRIBUT II IMPORTANTE 141


unde constantele a
i
si b
i
sunt:
_

_
a
0
= 2, 515517
a
1
= 0, 802853
a
2
= 0, 010328
b
0
= 1
b
1
= 1, 432877
b
2
= 0, 189269
b
3
= 0, 001308.
Cuantilele repartit iei chi-patrat
Cuantila de ordinul a repartit iei
2
(n), pentru n > 30, este data de:
h

= n +

2nu

+
2
3
u
2

2
3
+O(
1

n
).
Pentru detalii se poate consulta Abramowitz si Stegun [1].
142 PROBABILIT

AT I
Partea II
CRIPTOLOGIE
143
Capitolul 9
SISTEMUL DE CIFRARE
CEZAR
9.1. Breviar teoretic
Algoritmul de cifrare al lui Cezar este un sistem de cifrare monoalfabetic pentru
care textul clar este construit din literele alfabetului latin A Z si cheia de cifrare
este reprezentata de un numar ntreg k {0, . . . , 25}.

In faza de preprocesare, delimitatorul de spat iu este ignorat sau nlocuit cu car-


acterul cel mai put in frecvent din limba n care este textul clar (n limba romana
Q).
Fiecarei litere din textul sursa i se asociaza ordinea lexicograca x. Pentru cifrare,
aceasta se nlocuieste prin caracterul cod (x + k) mod 26. Pentru descifrare se uti-
lizeaza regula inversa: (x k) mod 26.
9.2. Exercit ii rezolvate
Exercit iul 9.2.1. Sa se cifreze mesajul:
CRIPTOGRAFIE
algoritmul utilizat ind cifrul lui Cezar cu cheia de cifrare k = 7.
Rezolvare: Se cifreaza litera cu litera, t inand cont de pozit ia ocupata de litere n
alfabet:
- Literei C i corespunde x = 2, deci se va cifra n (2 + 7) mod 26 = 9 adica J;
- Literei R i corespunde x = 16, deci se va cifra n (17 + 7) mod 26 = 24, adica
Y;
145
146 SISTEMUL DE CIFRARE CEZAR
Se continua n mod analog pentru ecare litera si n nal se obt ine JYPWA
VNYHM PL.
Exercit iul 9.2.2. Sa se decripteze mesajul:
JAJSN SHWDU YTQTL DXNQJ SHJNX LTQIJ SXXXX
algoritmul utilizat ind cifrul lui Cezar. Indicat i cheia de cifrare.
Rezolvare: Se verica, pe rand, toate cheile posibile, pana cand se obt ine un text
cu sens.

In funct ie de lungimea cheii, corespondent a dintre literele textului clar si
cele ale textului cifrat devine:
x 0 1 2 3 4 5 6 ... 25
textul clar A B C D E F G ... Z
k = 1 B C D E F G H ... A
k = 2 C D E F G H I ... B
k = 3 D E F G H I J ... C
k = 4 E F G H I J K ... D
k = 5 F G H I J K L ... E
... .. .. .. .. .. .. .. .. ..
Se observa ca sistemul presupunenlocuirea ecarei litere cu litera corespunzatoare
n alfabetul rotit cu k pozit ii.
Decriptand ecare caracter n corespondentul sau clar se obt ine, pe rand:
- pentru k = 1 : IZIRM RGVCT XSPSK CWMPI RGIMW KSPHI
RWWWW
- pentru k = 2 : HYHQL QFUBS WRORJ BVLOH QFHLV JROGH
QVVVV
- pentru k = 3 : GXGPK PETAR VQNQI AUKNG PEGKU IQNFG
PUUUU
- pentru k = 4 : FWFOJ ODSZQ UPMPH ZTJMF ODFJT HPMEF
OTTTT
- pentru k = 5 : EVENI NCRYP TOLOG YSILE NCEIS GOLDE NSSSS
Dupa o regrupare a literelor, pentru k = 5 se obt ine: EVEN IN CRYPTOLOGY
SILENCE IS GOLDEN.
9.3. Exercit ii propuse
Exercit iul 9.3.1. Scriet i o aplicat ie care sa implementeze urmatoarele funct ii:
- cifrarea unui text cu ajutorul algoritmului de cifrare Cezar;
EXERCIT II PROPUSE 147
- descifrarea unui text cifrat cu algoritmul lui Cezar;
- decriptarea unui text, despre care se stie ca a fost cifrat prin metoda Cezar,
prin generarea tuturor solut iilor posibile.
Vericat i rezultatul pe datele de intrare din exercit iile urmatoare.
Exercit iul 9.3.2. Sa se cifreze mesajul:
MIRACLE
algoritmul utilizat ind cifrul lui Cezar, cheia de cifrare k = 3.
Raspuns: PLUDFOH.
Exercit iul 9.3.3. Sa se cifreze mesajul:
CALCULATOR
algoritmul utilizat ind cifrul lui Cezar, cheia de cifrare k = 11.
Raspuns: NLWNF WLEZC.
Exercit iul 9.3.4. Sa se cifreze mesajul:
ELECTRONIC MAIL
algoritmul utilizat ind cifrul lui Cezar, cheia de cifrare k = 5.
Raspuns: JQJHY WTSNH RFNQ.
Exercit iul 9.3.5. Sa se cifreze mesajul:
DIGITAL SIGNATURE
algoritmul utilizat ind cifrul lui Cezar, cheia de cifrare k = 2.
Raspuns: FKIKV CNUKI PCVWT G.
Exercit iul 9.3.6. Sa se decripteze mesajul:
IGQTI GYCUJ KPIVQ PXXXX
algoritmul utilizat ind cifrul lui Cezar. Indicat i cheia de cifrare.
Raspuns: GEORGE WASHINGTON, k = 2.
Exercit iul 9.3.7. Sa se decripteze mesajul:
UIPNB TKFGG FSTPO
algoritmul utilizat ind cifrul lui Cezar. Indicat i cheia de cifrare.
Raspuns: THOMAS JEFFERSON, k = 1.
148 SISTEMUL DE CIFRARE CEZAR
Exercit iul 9.3.8. Sa se decripteze mesajul:
AREYY KYYOS VYUTM XGTZ
algoritmul utilizat ind cifrul lui Cezar. Indicat i cheia de cifrare.
Raspuns: ULYSSES SIMPSON GRANT, k = 6.
Exercit iul 9.3.9. Sa se decripteze mesajul:
CDTC JCON KPEQ NP
algoritmul utilizat ind cifrul lui Cezar. Indicat i cheia de cifrare.
Raspuns: ABRAHAM LINCOLN, k = 2.
Exercit iul 9.3.10. Sa se decripteze mesajul:
ECFDEPO ALCEJ
algoritmul utilizat ind cifrul lui Cezar. Indicat i cheia de cifrare.
Raspuns: TRUSTED PARTY, k = 11.
Exercit iul 9.3.11. Sa se cifreze mesajul:
EXAMEN CRIPTOGRAFIE
algoritmul utilizat ind cifrul lui Cezar, cheia de cifrare k = 3.
Raspuns: HADPH QFULS WRJUD ILH.
Exercit iul 9.3.12. Sa se decripteze mesajul:
HADPH QFULS WRJUD ILH
algoritmul utilizat ind cifrul lui Cezar. Indicat i cheia de cifrare.
Raspuns: EXAMEN CRIPTOGRAFIE, k = 3.
Exercit iul 9.3.13. Sa se cifreze mesajul:
KANSAS CITY
algoritmul utilizat ind cifrul lui Cezar, cheia de cifrare k = 4.
Raspuns: OERWE WGMXC.
Exercit iul 9.3.14. Sa se decripteze mesajul:
OERWE WGMXC
algoritmul utilizat ind cifrul lui Cezar. Indicat i cheia de cifrare.
Raspuns: KANSAS CITY, k = 4.
Capitolul 10
METODA SUBSTITUTIEI
10.1. Breviar teoretic
Operat ia de cifrare se bazeaza pe o corespondent a biunivoca ntre alfabetul clar
si alfabetul cifrat. Se presupune ca alfabetul clar este format din cele 26 de litere
(n limba romana fara diacritice) plus delimitatorul de cuvant spat iul. Alfabetul
cifrat poate format din aceeleasi caractere sau doar din cele 26 de litere (ale limbii
romane) caz n care spat iul se va nlocui cu cea mai put in frecventa litera (Q) sau
se va ignora pur si simplu.

In continuare, delimitatorul de cuvant este nlocuit cu
litera Q.
Corespondent a dintre cele doua alfabete poate :
- aleatoare;
- pseudoaleatoare: plecand de la o parola se construieste alfabetul cifrat.

Intrucat n cazul corespondent ei aleatoare lucrurile sunt cat se poate de clare,


vom prezenta pe scurt o metoda de construct ie a corespondent ei n cel de-al doilea
caz. Pornind de la o parola, alfabetul cifrat este construit dupa urmatorul algoritm:
- se scriu, o singura data, n ordinea aparit iei, literele din parola;
- se scriu literele alfabetului care nu apar n parola.
Corespondent antre cele doua alfabete se realizeaza dupa regula alfabet n alfabet
dupa o permutare xa (aceasta poate chiar permutarea identica iar la descifrare
se aplica aceelasi procedeu dar cu inversa permutarii ).

In funct ie de forma permutarii substitut ia se numeste:


- directa (alfabetul cifrat are acelasi sens lexicograc cu alfabetul clar, sunt n
total 26 astfel de substitut ii). Exemplu de substitut ie directa:
A B C D E F G H I J K L M
G H I J K L M N O P Q R S
149
150 METODA SUBSTITUT IEI
N O P Q R S T U V W X Y Z
T U V W X Y Z A B C D E F
- inversa (alfabetul cifrat are sens invers lexicograc cu alfabetul clar, sunt n
total 26 de astfel de substitut ii). Exemplu de substitut ie inversa:
A B C D E F G H I J K L M
U T S R Q P O N M L K J I
N O P Q R S T U V W X Y Z
H G F E D C B A Z Y X W V
Reamintim aici trei exemple celebre (vechile coduri ebraice) de substitut ii reciproce
(daca litera X se substituie cu litera Y atunci Y se va substitui cu X) si anume:
- atbash (prima jumatate a literelor alfabetului se mapeaza n cea de-a doua
jumatate n ordine invers lexicograca):
A B C D E F G H I J K L M
Z Y X W V U T S R Q P O N
- albam (prima jumatate a literelor alfabetului se mapeaza n cea de-a doua
jumatate n ordine lexicograca):
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
- atbah:
A B C D J K L M E S T U V
I H G F R Q P O N Z Y X W

In cele ce urmeaza vom presupune faptul ca substitut ia este directa daca nu este
specicat altfel.
Denit ia 10.1.1. Un cifru de substitut ie liniar de la Z
m
la Z
m
(m ind
numarul de caractere al alfabetului sursa) poate descris prin funct ia f : Z
m
Z
m
denita prin f(x) = x + cu gcd(, m) = 1, funct ia de descifrare ind f
1
(x) =

1
(x ). Cheia de cifrare o formeaza numerele si .
Observat ia 10.1.1. Cifrul de substitut ie are proprietatea de confuzie (ascun-
derea legaturii dintre textul clar si textul cifrat).
EXERCIT II REZOLVATE 151
10.2. Exercit ii rezolvate
Exercit iul 10.2.1. Sa se construiasca alfabetul de cifrare cu ajutorul parolei
TESTARESISTEM
iar apoi sa se cifreze mesajul IN CRIPTOGRAFIE NICI O REGULA NU ESTE
ABSOLUTA. Permutarea care realizeaza corespondent a este:
0 1 2 3 4 5 6 7 8 9 10 11 12
25 24 23 22 21 20 19 18 17 16 15 14 13
13 14 15 16 17 18 19 20 21 22 23 24 25
12 11 10 9 8 7 6 5 4 3 2 1 0
Rezolvare:
Corepondent a dintre alfabetul clar si alfabetul de cifrare (nainte de realizarea
permutarii) este:
A B C D E F G H I J K L M
T E S A R I M B C D F G H
N O P Q R S T U V W X Y Z
J K L N O P Q U V W X Y Z
Corepondent a dintre alfabetul clar si alfabetul de cifrare dupa realizarea per-
mutarii este:
A B C D E F G H I J K L M
Z Y X W V U Q P O N L K J
N O P Q R S T U V W X Y Z
H G F D C B M I R A S E T
Mesajul clar se proceseaza astfel ncat spat iul este nlocuit cu cea mai put in
frecventa litera:
INQCRIPTOGRAFIEQNICIQOQREGULAQNUQESTEQABSOLUTA.
Mesajul cifrat va :
OHDXC OFMGQ CZUOV DHOXO DGDCV QIKZD HIDVB MVDZY BGKIM
Z.
152 METODA SUBSTITUT IEI
Exercit iul 10.2.2. Sa se descifreze mesajul:
DOJMD OVPGF OMATN BXXXX
algoritmul utilizat ind o substitut ie simpla determinata de cuvantul cheie PASS-
WORD.
Rezolvare:
Corespondent a dintre alfabetul clar si alfabetul de cifrare este:
A B C D E F G H I J K L M
P A S W O R D B C E F G H
N O P Q R S T U V W X Y Z
I J K L M N Q T U V X Y Z
Mesajul clar devine (dupa o regrupare a literelor) GEORGE WALKER BUSH.
Se observa ca de aceasta data nu s-a mai folosit Q pe post de delimitator de cuvant.
10.3. Exercit ii propuse
Exercit iul 10.3.1. Dezvoltat i o aplicat ie care sa simuleze execut ia funct iilor de
cifrare/descifrare corespunzatoare metodei substitut iei.
Exercit iul 10.3.2. Dezvoltat i o aplicat ie care sa decripteze, prin metoda frecvent ei,
mesajele cifrate prin metoda substitut iei.
Exercit iul 10.3.3. Dezvoltat i o aplicat ie care sa decripteze, prin metoda atac-
ului cu text clar cunoscut, mesajele cifrate prin metoda substitut iei.
Exercit iul 10.3.4. Sa se cifreze mesajul:
WEB DESIGN
algoritmul utilizat ind o substitut ie simpla determinata de cuvantul cheie BROWSER.
Raspuns: VSRWS PDAJ.
Exercit iul 10.3.5. Sa se cifreze mesajul:
PUBLIC KEY
algoritmul utilizat ind o substitut ie simpla determinata de cuvantul cheie
ASYMMETRIC.
Raspuns: KQSFC YDEX.
EXERCIT II PROPUSE 153
Exercit iul 10.3.6. Sa se descifreze mesajul:
ONCJB DFJPT DCJKN KKQTV TDSXXX
algoritmul utilizat ind o substitut ie simpla determinata de cuvantul cheie CRIP-
TOGRAFIE.
Raspuns: FRANKLIN DELANO ROOSEVELT.
Exercit iul 10.3.7. Sa se descifreze mesajul:
EKBJO DSZAT NCGPF TJJTP YXXXX
algoritmul utilizat ind o substitut ie simpla determinata de cuvantul cheie CRIPTO.
Raspuns: JOHN FITZGERALD KENNEDY.
Exercit iul 10.3.8. Demonstrat i ca metoda de cifrare prin substitut ie este un
sistem nchis.
Exercit iul 10.3.9. Sa se cifreze mesajul:
PRIVATE KEY
algoritmul utilizat ind o substitut ie simpla determinata de cuvantul cheie
BUCURESTI.
Raspuns: LNAVB PEFEY.
Exercit iul 10.3.10. Sa se descifreze mesajul:
LNAVB PEFEY
algoritmul utilizat ind o substitut ie simpla determinata de cuvantul cheie BU-
CURESTI.
Raspuns: PRIVATE KEY.
Exercit iul 10.3.11. Sa se cifreze mesajul:
ASSYMETRIC ENCRYPTION
algoritmul utilizat ind o substitut ie simpla determinata de cuvantul cheie
BRASOV.
Exercit iul 10.3.12. Sa se descifreze mesajul:
BPPYI OQNEA OJANY LQEKJ
algoritmul utilizat ind o substitut ie simpla determinata de cuvantul cheie BRASOV.
Raspuns: ASSYMETRIC ENCRYPTION.
154 METODA SUBSTITUT IEI
Capitolul 11
SISTEMUL DE CIFRARE
PLAYFAIR
11.1. Breviar teoretic
Sistemul Playfair, propus n anul 1854 de Charles Wheatstone dar promovat
pentru utilizare de Lordul Playfair, este unul dintre cele mai cunoscute sisteme de
cifrare digrace (transforma un grup de 2 litere ntr-un grup de alte doua litere).
Acest sistem de cifrare este foarte simplu de folosit si mult mai sigur decat sistemele
de substitut ie monoalfabetice.
Descriem n continuare modul de utilizare n cazul alfabetului latin compus din
26 litere. Literele alfabetului AZ sunt trecute ntr-un careu de 55 (litera I ind
asimilata literei J). Textul clar este preprocesat astfel ncat acesta sa e compatibil
cu matricea de cifrare: delimitatorul de cuvant este ignorat sau este nlocuit cu cea
mai put in frecventa litera, litera I este asimilata cu litera J, si daca este cazul, se
adauga o litera la text pentru a avea un numar par de digrame.
Regula de cifrare este urmatoarea:
i) Daca digrama care se doreste cifrata nu are literele pe aceeasi linie sau coloana,
atunci regula de cifrare este regula dreptunghiului, traseul ind pe verticala de la cea
de-a doua litera a digramei catre prima litera. Sau, altfel spus, prima litera a perechii
cifrate este aceea care se gaseste pe aceeasi linie cu prima litera a perechii n clar.
ii) Daca digrama ce se doreste cifrata are literele pe aceeasi linie, atunci se aplica
regula: cifreaza la dreapta, descifreaza la stanga.
iii) Daca digrama ce se doreste cifrata are literele pe aceeiasi coloana, atunci se
aplica regula: cifreaza n jos, descifreaza n sus.
Observat ia 11.1.1. Daca o digrama aparen textul clar n ordine inversa atunci
155
156 SISTEMUL DE CIFRARE PLAYFAIR
acelasi lucru se va ntampla si n textul cifrat.
Observat ia 11.1.2. Algoritmul Playfair nu are regula pentru cifrarea literelor
duble: digramele ce cont in doua litere identice sunt sparte prin introducerea arti-
ciala a unei alte litere.
Observat ia 11.1.3. Algoritmul Playfair apare ca o extindere, n sensul reducerii
numarului de tabele rectangulare folosite (de la doua la unul), al cifrului cu 2 tabele.
Metoda cea mai freventa de atac a acestui tip de cifru consta n analiza frecvent ei
digramelor de text clar combinata cu metoda comparat iei patternurilor din textul
cifrat cu patternuri din dict ionar.
11.2. Exercit ii rezolvate
Exercit iul 11.2.1. Sa se construiasca matricea de cifrare Playfair cu ajutorul
parolei
CRIPTOGRAFIE
iar apoi sa se cifreze mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR.
Rezolvare: Matricea Playfair se obt ine trecand literele din parola o singura data
n careul de 5 5 iar apoi celelalte litere ale alfabetului n ordine lexicograca:
C R I/J P T
O G A F E
B D H K L
M N Q S U
V W X Y Z
Mesajul este preprocesat, prin introducerea literei Q ca delimitator de cuvant si
la nalul mesajului (pentru ca acesta sa aiba lungime para):
SIQINQCRIPTOGRAFIEQTACEREAQESTEQAURQ.
Exemplicam pentru ecare caz cate o digrama:
SI - conform regulii de cifrare se formeaza dreptunghiul cu colt urile I si S
parcurs n sensul IQSP. Textul cifrat l constituie digrama formata din colt urile
care nu apar n textul clar, luate conform ordinii de parcurgere: QP.
EXERCIT II PROPUSE 157
QI - ntrucat literele sunt pe aceeasi coloana se aplica regula cifreaza n jos,
descifreaza n sus, obt inandu-se digrama XA ( X este litera situata sub Q si A
este litera situata sub I).
NQ - ntrucat literele sunt situate pe aceeasi linie se aplica regula cifreaza la
dreapta, descifreaza la stanga, obt inandu-se digrama QS(Q este in dreapta lui
N si S este n dreapta lui Q).

In continuare, respectand regulile de cifrare Playfair mesajul cifrat devine:


QPXAQ SRIPT CEDGF ETAUI OIGTO FUAUP AUEQI NXXXX.
Exercit iul 11.2.2. Sa se descifreze mesajul:
UFRIL ERGPC RQAW
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind CRIPTOGRAFIE.
Rezolvare: Matricea Playfair este aceeasi din exercit iul anterior, ind formata
pornind de la aceeasi parola.
Exemplicam pentru ecare caz operat ia de descifrare pe cate o digrama:
UF - conform regulii de descifrare, se formeaza dreptunghiul cu colt urile U si
F. Textul clar l constituie celelalte 2 colt uri, primul caracter al textului clar
ind cel care se gaseste pe aceeasi linie cu primul caracter n clar din digrama.
Se obt ine SE.
RI - ntrucat literele sunt situate pe aceeasi linie se aplica regula cifreaza la
dreapta, descifreaza la stanga, obt inandu-se digrama CR(R este in stanga lui
R si R este n stanga lui I).
LE - ntrucat literele sunt pe aceeasi coloana se aplica regula cifreaza n jos,
descifreaza n sus, obt inandu-se digrama ET (E este litera situata deasupra lui
L si T este litera situata deasupra lui E).

In continuare, respectand regulile de descifrare Playfair mesajul cifrat devine:


SECRET WRITING.
11.3. Exercit ii propuse
Exercit iul 11.3.1. Scriet i o aplicat ie care sa implementeze urmatoarele funct ii:
- cifrarea unui text cu ajutorul algoritmului Playfair;
- descifrarea unui text cifrat cu algoritmul Playfair;
Vericat i rezultatul pe datele de intrare din exercit iile urmatoare.
158 SISTEMUL DE CIFRARE PLAYFAIR
Exercit iul 11.3.2. Sa se cifreze mesajul:
SECURITY IS CHANGING FIELD
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind CHANNEL.
Raspuns: UAEQQ KYNMQ HANEL PEFLO CGMA.
Exercit iul 11.3.3. Sa se cifreze mesajul:
AUTONOMOUS ATTACK AGENTS
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind MALICIOUS.
Raspuns: UFNDV EOESB CPZQL MFCHF PNGL.
Exercit iul 11.3.4. Sa se cifreze mesajul:
VALUABLE SOURCE OF REFERENCE
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind INSTITUTE.
Raspuns: WERDB CFDNP DZDAM GMDMF MDTABV.
Exercit iul 11.3.5. Sa se cifreze mesajul:
THE CIRCLE
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind ALBUM.
Raspuns: POFDKQDAKB.
Exercit iul 11.3.6. Sa se descifreze mesajul:
KDDPM RUBVR PTSFU HPEBV
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind PASSWORD.
Raspuns: GERALD RUDOLPH FORD.
Exercit iul 11.3.7. Sa se descifreze mesajul:
KDPEK DOSTF RDRXB NBBBB
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind PASSWORD.
Raspuns: GEORGE WALKER BUSH.
Exercit iul 11.3.8. Sa se descifreze mesajul:
KDPEK DKBDC RDQOP MTKDC XPNS
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind PASSWORD.
EXERCIT II PROPUSE 159
Raspuns: GEORGE HERBERT WALKER BUSH.
Exercit iul 11.3.9. Sa se descifreze mesajul:
GBQY YAAO RNBM
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind TEST.
Raspuns: HARRY TRUMAN.
Exercit iul 11.3.10. Sa se descifreze mesajul:
PIGOY CLETY AEYLQ VSFWN
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind CRYPTOOL.
Raspuns: THE ART OF PROGRAMMING.
Exercit iul 11.3.11. Sa se cifreze mesajul:
SINAIA
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind SECRET KEY.
Raspuns: RFOYHB.
Exercit iul 11.3.12. Sa se descifreze mesajul:
RFOYHB
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind SECRET KEY.
Raspuns: SINAIA.
Exercit iul 11.3.13. Sa se cifreze mesajul:
PREDEAL
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind PASSWORD.
Raspuns: RFRBD ONU.
Exercit iul 11.3.14. Sa se descifreze mesajul:
RFRBD ONU
Algoritmul utilizat este cifrul lui Playfair, parola utilizata ind PASSWORD.
Raspuns: PREDEAL.
160 SISTEMUL DE CIFRARE PLAYFAIR
Capitolul 12
SISTEMUL DE CIFRARE
HILL
12.1. Breviar teoretic
Sistemul de cifrare Hill este o metoda de substitut ie poligraca bazata pe calcule
efectuate n algebra mod p.

In faza de preprocesare delimitatorul de spat iu este ignorat sau nlocuit cu car-


acterul cel mai put in frecvent din limba n care este textul clar (n limba romana
Q).
Algoritmul proceseaza un bloc de date M de n caractere (litere), cheia de cifrare
ind reprezentata de o matrice K de dimensiune n n, inversabila mod p.
Exista doua subclase ale algoritmului Hill pentru care regulile de cifrare difera
prin ordinea n care se efectueaza nmult irile: o prima subclasa are ca regula de
cifrare operat ia denmult ire C = MKcu descifrarea M = CK
1
iar a doua subclasa
foloseste ca regula de cifrare nmult irea C = KM avand descifrarea corespunzatoare
M = K
1
C.
Observat ia 12.1.1. Daca matricea K este simetrica (matricea K si transpusa
ei sunt egale) atunci regulile de cifrare pentru cele doua subclase sunt echivalente.
Observat ia 12.1.2.

In cazul alfabetului latin p = 26, cheia de cifrare K trebuie
sa e o matrice inversabila mod 26.
161
162 SISTEMUL DE CIFRARE HILL
12.2. Exercit ii rezolvate
Exercit iul 12.2.1. Sa se cifreze mesajul:
BLAZE OF GLORY.
Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare ind matricea:
_
J B
V I
_
.
Rezolvare: Prin nlocuirea literelor din cheie cu pozit iile corespunzatoare din
alfabet (A - 0, B - 1, etc.) se obt ine:
K =
_
9 1
21 8
_
.
Textul clar se sparge n blocuri de 2 caractere, care se cifreaza pe rand. De
exemplu, BL corespunde matricii
M =
_
1 11
_
.
Digrama se cifreaza n:
C =
_
1 11
_
_
9 1
21 8
_
mod 26 =
_
6 11
_
=
_
G L
_
.
Deci, BL se cifreaza n GL. Se continua n mod analog.

In nal se obt ine:
GLFSS MPBDT HB.
Exercit iul 12.2.2. Sa se descifreze mesajul:
JESHB JJAZM TANCF VBJXX.
Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare ind matricea:
_
H U
D F
_
.
Rezolvare: Prin nlocuirea literelor din cheie cu pozit iile corespunzatoare din
alfabet (A - 0, B - 1, etc.) se obt ine:
K =
_
7 20
3 5
_
.
Se determina inversa matricei K mod 26 :
EXERCIT II PROPUSE 163
K
1
= det(K)
1
K

mod 26, unde


det(K)
1
mod 26 = (7 5 3 20)
1
mod 26 = (25)
1
mod 26 = 1
si
K

=
_
5 20
3 7
_
mod 26 =
_
5 6
23 7
_
.
S-a obt inut:
K
1
=
_
5 6
23 7
_
.
Pentru descifrarea perechii JE, se determina matricea linie care cont ine valorile
corespunzatoare din alfabet:
C =
_
J E
_
=
_
9 4
_
.
Prin nmult ire cu cheia de descifrare se obt ine:
M =
_
9 4
_
_
5 6
23 7
_
mod 26 =
_
7 4
_
=
_
H E
_
.
Deci, JE se descifreaza n HE.
Se procedeaza n mod analog pentru toate perechile de cate 2 caractere cifrate:
SH se descifreaza n RB, BJ n ER, etc.

In nal, dupa efectuarea tuturor calculelor si regruparea literelor, se obt ine: HER-
BERT CLARK HOOVER.
12.3. Exercit ii propuse
Exercit iul 12.3.1. Scriet i o aplicat ie care sa implementeze funct iile de cifrare
si descifrare, specice algoritmului Hill cu p = 26.
Vericat i rezultatul pe datele de intrare din exercit iile urmatoare.
Exercit iul 12.3.2. Sa se cifreze mesajul:
COMPLETE AND PROPER PACKAGE.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
N T
C R
_
.
164 SISTEMUL DE CIFRARE HILL
Raspuns: GIZTL MLCNN MBTML UMDMI AUYC.
Exercit iul 12.3.3. Sa se cifreze mesajul:
ESOTERIC TOPIC OF RESEARCH.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
B Y
G P
_
.
Raspuns: ICYXC NUOZQ LMIYD LICES DWHM.
Exercit iul 12.3.4. Sa se cifreze mesajul:
BENJAMIN HARRISON.
Algoritmul utilizat este cifrul lui Hill (3 3), cheia de cifrare ind matricea:
_
_
A B C
B C A
C A B
_
_
.
Rapuns: EJPYJ EBIXZ IRUSE ANA.
Exercit iul 12.3.5. Sa se descifreze mesajul:
ZKNAW NIOZO BRXSW QNNXX.
Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare ind matricea:
_
B E
V H
_
.
Rapuns: RONALD WILSON REAGAN.
Exercit iul 12.3.6. Sa se descifreze mesajul:
ZPXUB IRHNU VXWSP DJTNN.
Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare ind matricea:
_
J D
X C
_
.
Rapuns: RICHARD MILHOUS NIXON.
Exercit iul 12.3.7. Sa se descifreze mesajul:
EJPYJ EBIXZ IRUSE ANA.
EXERCIT II PROPUSE 165
Algoritmul utilizat la cifrare este cifrul lui Hill (3 3), cheia de cifrare ind
matricea:
_
_
A B C
B C A
C A B
_
_
.
Rapuns: BENJAMIN HARRISON.
Exercit iul 12.3.8. Sa se descifreze mesajul:
NYNAF JUWBL ZXANM NGLEI JQWF
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
J S
W V
_
.
Raspuns: FINAL ROUND TRANSFORMATION.
Exercit iul 12.3.9. Sa se descifreze mesajul:
NKTNM QZQEY WVDIA CIGMG.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
D I
K B
_
.
Raspuns: RETRIEVE YOUR BAGGAGE.
Exercit iul 12.3.10. Demonstrat i ca algoritmul lui Hill este un algoritm de
cifrare nchis.
Exercit iul 12.3.11. Sa se cifreze mesajul:
OPERATIONAL RESEARCH.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
F H
H I
_
.
Raspuns: TKJID WIMNN SFQQU CVFLD.
Exercit iul 12.3.12. Sa se descifreze mesajul:
TKJID WIMNN SFQQU CVFLD.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
F H
H I
_
.
166 SISTEMUL DE CIFRARE HILL
Raspuns: OPERATIONAL RESEARCH.
Exercit iul 12.3.13. Sa se cifreze mesajul:
CRYPTOLOGY.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
T E
S T
_
.
Raspuns: CVWPB KFWCS.
Exercit iul 12.3.14. Sa se cifreze mesajul:
NAVAJO CODE.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
L Q
L J
_
.
Raspuns: NNXXL RMSTR.
Exercit iul 12.3.15. Sa se descifreze mesajul:
CVWPB KFWCS.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
T E
S T
_
.
Raspuns: CRYPTOLOGY.
Exercit iul 12.3.16. Sa se descifreze mesajul:
NNXXL RMSTR.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare ind matricea:
_
L Q
L J
_
.
Raspuns: NAVAJO CODE.
Capitolul 13
SISTEME DE CIFRARE
POLIALFABETICE
13.1. Breviar teoretic
Un sistem de cifrare de tip substitut ie polialfabetica este generalizarea sistemului
de cifrare de substitut ie monoalfabetica, ind compus dintr-un numar N de alfabete.
Fiecare alfabet reprezinta o permutare (stabilita n funct ie de parola) a alfabetului
de intrare. Algoritmul de cifrare consta n substituirea celei de a ia litere m din
textul clar cu litera corespunzatoare din cel de al i mod N alfabet.
Sistemele polialfabetice sunt usor de identicat prin aplicarea analizei frecvent elor
de apatit ie a literelor n secvent e decimate din textul cifrat.
Un exemplu de sistem polialfabetic este algoritmul lui Vigen`ere n care parola
k
1
, . . . , k
n
este folosita periodic pentru a transforma caracterul m
j
{A, . . . , Z} din
textul clar dupa formula: c
j
= (m
j
+k
j mod n
) mod 26. Pentru descifrare se foloseste
formula: m
j
= (c
j
k
j mod n
) mod 26.
Atacul sistemelor polialfabetice este similar cu atacul a N sisteme de substitut ie
monoalfabetica. Deci, o procedura de tip divide et impera are o complexitate de
O(N). Procedura este descrisa n continuare:
Intrare: Textul cifrat de lungime M sucient de mare.
Iesire: Textul clar corespunzator sistemului de cifrare polialfabetic.
PASUL 1. Determina numarul de alfabete N.
PASUL 2. Pentru j = 0 to 4 executa:
pentru i = 1 to N j executa:
aplica procedura de reconstruct ie part iala (pe baza frecven-
t elor (j + 1)gramelor) a alfabetelor i, . . . , i +j.
PASUL 3. Conform celor N alfabete reconstruieste textul clar.
167
168 SISTEME DE CIFRARE POLIALFABETICE
Observat ia 13.1.1. Procedura descrisa mai sus are ca parametru implicit de
analiza numarul maxim de legaturi 4 : astfel, 1gramele sunt caracterele, 2gramele
sunt dublet ii, etc.
13.2. Exercit ii rezolvate
Exercit iul 13.2.1. Sa se cifreze mesajul WINDS OF CHANGE cu ajutorul
algoritmului Vigen`ere, parola ind FUTURE.
Rezolvare: Aplicand cifrarea pentru ecare caracter al textului clar, t inand cont
de pozit ia acestora n alfabet, se obt ine:
j m
j
k
j(mod6)
c
j
= (m
j
+k
j(mod6)
)(mod26)
1 W 22 F 5 (22 + 5)(mod 26) = 1 B
2 I 8 U 20 (8 + 20)(mod 26) = 2 C
3 N 13 T 19 (13 + 19)(mod 26) = 6 G
4 D 3 U 20 (3 + 20)(mod 26) = 23 X
5 S 18 R 17 (18 + 17)(mod 26) = 9 J
6 O 14 E 4 (14 + 4)(mod 26) = 18 S
7 F 5 F 5 (5 + 5)(mod 26) = 10 K
8 C 2 U 20 (2 + 20)(mod 26) = 22 W
9 H 7 T 19 (7 + 19)(mod 26) = 0 A
10 A0 U 20 (0 + 20)(mod 26) = 20 U
11 N 13 R 17 (13 + 17)(mod 26) = 4 E
12 G6 E 4 (6 + 4)(mod 26) = 10 K
13 E 4 F 5 (4 + 5)(mod 26) = 9 J
Rezulta textul cifrat: BCGXJ SKWAU EKJ.
Exercit iul 13.2.2. Sa se descifreze mesajul IHWGZ CIHGO GKAJV OI stiind
ca a fost cifrat cu ajutorul algoritmului Vigen`ere, parola ind PASSWORD.
Rezolvare: Aplicand descifrarea pentru ecare caracter al textului cifrat, t inand
cont de pozit ia acestora n alfabet, se obt ine:
EXERCIT II PROPUSE 169
j c
j
k
j(mod8)
m
j
= (c
j
k
j(mod8)
)(mod26)
1 I 8 P 15 (8 15)(mod 26) = 19 T
2 H 7 A0 (7 0)(mod 26) = 7 H
3 W 22 S 18 (22 18)(mod 26) = 4 E
4 G6 S 18 (6 18)(mod 26) = 14 O
5 Z 25 W 22 (25 22)(mod 26) = 3 D
6 C 2 0 14 (2 14)(mod 26) = 14 O
7 I 8 R 17 (8 17)(mod 26) = 17 R
8 H 7 D 3 (7 3)(mod 26) = 4 E
9 G6 P 15 (6 15)(mod 26) = 17 R
10 O 14 A0 (14 0)(mod 26) = 14 O
11 G6 S 18 (6 18)(mod 26) = 14 O
12 K 10 S 18 (10 18)(mod 26) = 18 S
13 A0 W 22 (0 22)(mod 26) = 4 E
14 J 9 0 14 (9 14)(mod 26) = 21 V
15 V 21 R 17 (21 17)(mod 26) = 4 E
16 O 14 D 3 (14 3)(mod 26) = 11 L
17 I 8 P 15 (8 15)(mod 26) = 19 T
Dupa gruparea literelor rezulta: THEODORE ROOSEVELT.
13.3. Exercit ii propuse
Exercit iul 13.3.1. Sa se cifreze mesajul OPTIMISTIC cu ajutorul algoritmului
Vigen`ere, folosind parola GOODDAYS.
Raspuns: UDHLPIQLOQ.
Exercit iul 13.3.2. Sa se cifreze mesajul THANK YOU cu ajutorul algoritmului
Vigen`ere, folosind parola POLITE.
Raspuns: IVLVD CDI.
Exercit iul 13.3.3. Sa se cifreze mesajul GOING BACK IN TIME cu ajutorul
algoritmului Vigen`ere, folosind parola MEMORY.
Raspuns: SSUBX ZMGW WE RUQQ.
Exercit iul 13.3.4. Sa se cifreze mesajul FAST CARS cu ajutorul algoritmului
Vigen`ere, folosind parola RADAR.
170 SISTEME DE CIFRARE POLIALFABETICE
Raspuns: WAVT TRRV.
Exercit iul 13.3.5. Sa se cifreze mesajul SUITCASE cu ajutorul algoritmului
Vigen`ere, folosind parola TRIP.
Raspuns: LLQIVRAT.
Exercit iul 13.3.6. Sa se descifreze mesajul WIUXGHG WXGALFYK stiind
ca a fost cifrat cu ajutorul algoritmului Vigen`ere, parola ind TEST.
Raspuns: DECENDO DECISMUS.
Exercit iul 13.3.7. Sa se descifreze mesajul UAEGQD OOGAT stiind ca a fost
cifrat cu ajutorul algoritmului Vigen`ere, parola ind TANGO.
Raspuns: BARACK OBAMA.
Exercit iul 13.3.8. Sa se descifreze mesajul XVLGM OXLDC stiind ca a fost
cifrat cu ajutorul algoritmului Vigen`ere, parola ind BRIDE.
Raspuns: WEDDING DAY.
Exercit iul 13.3.9. Sa se descifreze mesajul IHZSV SKIEE CHWPU ACSH
stiind ca a fost cifrat cu ajutorul algoritmului Vigen`ere, parola ind PARADOX.
Raspuns: THIS SENTENCE IS FALSE.
Exercit iul 13.3.10. Sa se descifreze mesajul MYEYS VOJFQ ZAVLL N stiind
ca a fost cifrat cu ajutorul algoritmului Vigen`ere, parola ind TRANSILVANIA.
Raspuns: THE LAND OF DRACULA.
Exercit iul 13.3.11. Sa se cifreze mesajul OPERATIONAL RESEARCH cu
ajutorul algoritmului Vigen`ere, folosind parola PASSWORD.
Raspuns: DPWJW HZRCA DJAGV DGCZ.
Exercit iul 13.3.12. Sa se descifreze mesajul DPWJW HZRCA DJAGV DGCZ
stiind ca a fost cifrat cu ajutorul algoritmului Vigen`ere, parola ind PASSWORD.
EXERCIT II PROPUSE 171
Raspuns: OPERATIONAL RESEARCH.
Exercit iul 13.3.13. Sa se cifreze mesajul CRIPTOGRAFIE cu ajutorul algo-
ritmului Vigen`ere, folosind parola TEST.
Raspuns: VVAIM SYKTJ AX.
Exercit iul 13.3.14. Sa se descifreze mesajul VVAI MSYK TJAX stiind ca a
fost cifrat cu ajutorul algoritmului Vigen`ere, parola ind TEST.
Raspuns: CRIPTOGRAFIE.
172 SISTEME DE CIFRARE POLIALFABETICE
Capitolul 14
METODA TRANSPOZITIEI
14.1. Breviar teoretic
Metoda transpozit iei asigura, n cadrul sistemelor criptograce, realizarea di-
fuziei: mprastierea proprietat ilor statistice ale textului clar n textul cifrat. Metoda
transpozit iei mbraca mai multe forme: textul este citit ntr-o forma matriceala linie
cu linie sau coloana cu coloana, se permuta liniile si/sau coloanele, rezultatul ind
apoi scris linie cu linie sau coloana cu coloana. Spre exemplu, n cazul transpozit iei
coloanelor, textul clar se citeste, linie cu linie, ntr-o forma tabelara cu n coloane,
acesta ind scris pe coloane n funct ie de cheia de cifrare reprezentata de o permutare
din
n
.
Daca dimensiunea textului clar nu este un multiplu de n atunci acesta se poate
completa sau nu cu un caracter bine precizat.

In faza de preprocesare delimitatorul
de spat iu este ignorat sau nlocuit cu caracterul cel mai put in frecvent din limba n
care este textul clar (n limba romana Q).
14.2. Exercit ii rezolvate
Exercit iul 14.2.1. Sa se cifreze prin metoda transpozit iei (N = 12), pornind
de la parola
CRIPTOGRAFIE
mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR.
Rezolvare: Vom construi secvent a numerica de cifrare asociind ecarei litere din
parola indicele din ordinea lexicograca: astfel literele din parola, scrise n ordine
lexicograca sunt:
173
174 METODA TRANSPOZIT IEI
1 2 3 4 5 6 7 8 9 10 11 12
A C E F G I I O P R R T
deci parola CRIPTOGRAFIE produce permutarea: 2 10 6 9 12 8 5 11 1 4 7 3.
Textul clar este scris ntr-o tabela cu 12 coloane:
2 10 6 9 12 8 5 11 1 4 7 3
S I Q I N Q C R I P T O
G R A F I E Q T A C E R
E A Q E S T E Q A U R Q
Deoarece lungimea textului nu este divizibila cu 12 vom completa ultimul rand cu
o secvent a cunoscuta (n acest caz caracterul Q). Textul cifrat se obt ine citind
coloanele tabelei de cifrare n ordinea indicata de parola numerica: IAASG EORRQ
PCUCQ EQAQT ERQET IFEIR ARTQN IS.
Descifrarea se va realiza n mod similar folosind permutarea inversa
1
.
Daca dimensiunea transpozit iei N este mai mica decat lungimea parolei atunci
se vor ret ine N caractere din parola.
14.3. Exercit ii propuse
Exercit iul 14.3.1. Scriet i un program care sa implementeze funct iile de cifrare/descifrare
specice metodei transpozit iei coloanelor.
Exercit iul 14.3.2. Sa se cifreze mesajul:
ELECTRIC HOTPLATE
printr-o transformare de tip transpozit ie cu ajutorul permutarii = (2, 1, 3).
Raspuns: LTCOL EECIH PTERQ TAQ.
Exercit iul 14.3.3. Sa se cifreze mesajul:
CERCETARI OPERATIONALE
printr-o transformare de tip transpozit ie cu ajutorul permutarii = (3, 1, 2).
Raspuns: EEROR IAQRT IPAOL QCCAQ ETNE.
Exercit iul 14.3.4. Sa se cifreze mesajul CRIPTOGRAFIE prin metoda transpozit iei
utilizand permutarea = (4, 2, 1, 3). Vericat i rezultatul obt inut.
EXERCIT II PROPUSE 175
Exercit iul 14.3.5. Sa se descifreze mesajul:
EORSE TOROE LHDEO VT
cifrat printr-o transformare de tip transpozit ie cu ajutorul permutarii = (2, 3, 1).
Raspuns: THEODORE ROOSEVELT.
Exercit iul 14.3.6. Sa se descifreze mesajul:
SFCME TAEAE NLR
cifrat printr-o transformare de tip transpozit ie cu ajutorul permutarii = (1, 2, 3).
Raspuns: STEFAN CEL MARE.
Exercit iul 14.3.7. Sa se descifreze mesajul:
HTZMA VEUII IAL
cifrat printr-o transformare de tip transpozit ie cu ajutorul permutarii = (2, 3, 1).
Raspuns: MIHAI VITEAZUL.
Exercit iul 14.3.8. Sa se descifreze mesajul:
NMTMA STEDI NEINO NT
cifrat printr-o transformare de tip transpozit ie cu ajutorul permutarii = (2, 3, 1).
Raspuns: SENTIMENT DOMINANT.
Exercit iul 14.3.9. Sa se descifreze mesajul:
TDDDR TEAAU EIASN RLCPR
cifrat printr-o transformare de tip transpozit ie cu ajutorul permutarii = (3, 1, 2).
Raspuns: STANDARDUL DE CRIPTARE.
Exercit iul 14.3.10. Demonstrat i ca algoritmul de cifrare ce utilizeaza transpozit ia
este un sistem nchis.
Exercit iul 14.3.11. Sa se cifreze mesajul:
CERCETARI OPERATIONALE
printr-o transformare de tip transpozit ie cu ajutorul permutarii = (2, 1, 3).
Raspuns: EERPAOLCC AORIARTIETNE.
176 METODA TRANSPOZIT IEI
Exercit iul 14.3.12. Sa se descifreze mesajul:
EERPAOLCC AORIARTIETNE
cifrat printr-o transformare de tip transpozit ie cu ajutorul permutarii = (2, 1, 3).
Raspuns: CERCETARI OPERATIONALE.
Exercit iul 14.3.13. Sa se cifreze mesajul:
OPERATIONAL RESEARCH
printr-o transformare de tip transpozit ie cu ajutorul permutarii = (2, 1, 4, 3).
Raspuns: PTASC OANER RORAE ILEH.
Exercit iul 14.3.14. Sa se descifreze mesajul:
PTASC OANER RORAE ILEH
cifrat printr-o transformare de tip transpozit ie cu ajutorul permutarii = (2, 1, 4, 3).
Raspuns: OPERATIONAL RESEARCH.
Capitolul 15
SISTEME MIXTE
15.1. Breviar teoretic
Sistemele mixte au la baza o cifrare succesiva a mesajului prin metoda substitut iei
si apoi prin metoda transpozit iei sau invers.
Atacarea sistemul de cifrare se realizeaza de la ultima sa componenta catre prima.
Remarcam faptul ca substitut ia simpla este comutativa cu operat ia de transpozit ie
deci se poate oricand aborda mai ntai substitut ia si apoi transpozit ia.

In cazul
utilizarii unui sistem polialfabetic, cu numar necunoscut de alfabete, recomandarea
este ca dupa stabilirea, prin metode statistice, a numarului de alfabete, sa se abor-
deze concomitent identicarea efectiva a alfabetelor si al transpozit iei utilizate.

In
cazul utilizarii unui sistem poligrac (tabele de cifrare) si o transpozit ie este reco-
mandabila o tehnica de tip backtracking.
15.2. Exercit ii rezolvate
Exercit iul 15.2.1. Sa se cifreze mesajul GEOMETRIC FIGURE cu ajutorul
algoritmului lui Cezar (k = 5) si al transpozit iei = (2, 1, 3).
Rezolvare: Mai ntai textul este cifrat cu sistemul Cezar folosind cheia k = 5, deci
corespondent a dintre cele 2 alfabete devine:
text clar A B C D E F G H I ...
text cifrat F G H I J K L M N ...
Astfel se obt ine: LJT RJY WNH KNL ZWJ. Apoi, textul obt inut se aseazantr-o
tabela cu 3 coloane:
177
178 SISTEME MIXTE
2 1 3
L J T
R J Y
W N H
K N L
Z W J
Textul cifrat se determina citind pe coloane n ordinea indicata de permutare
(coloana din mijloc, apoi cea din stanga si n nal cea din dreapta): JJNNWLRW
KZTYHLJ .
Exercit iul 15.2.2. Sa se decripteze mesajul urmator:
DKVUR UTUBK WFCVG ETGOC XWVWC
OCVPQ VUVWG FGHTQ VKUUV KKNKC
RKCPQ OQFKC EWVG
stiind ca a fost cifrat cu ajutorul algoritmului lui Cezar (k = 2) si supracifrat
prin metoda transpozit iei utilizand permutarea (3, 2, 1).
Rezolvare: Cum substitut ia si transpozit ia sunt comutative, putem mai ntai de-
cripta mesajul folosind Cezar cu cheia k = 2 si apoi decripta prin metoda transpozit iei.
Pentru decriptarea mesajului folosind metoda Cezar cu k = 2, ecare caracter se
nlocuieste cu caracterul situat cu 2 pozit ii mai nainte n alfabet:
text cifrat A B C D E F G H I ...
text clar Y Z A B C D E F G ...
Dupa decriptare, textul devine: BITSP SRSZI UDATE CREMA VUTUA MATNO
TSTUE DEFRO TISST IILIA PIANO MODIA CUTE .
Acesta reprezinta un text cifrat prin metoda transpozit iei. Cum textul are 64 de
caractere si permutarea este de lungime 3, atunci numarul de litere pe coloane este:
21, 21 si 22. Coloanele cu numai 21 de caractere sunt cele care corespund valoriilor
luate n ordine descrescatoare din permutarea inversa
1
= (3, 2, 1):
EXERCIT II PROPUSE 179
3 2 1
B U S
I T S
T U T
S A I
P M I
S A L
R T I
S N A
Z O P
I T I
U S A
D T N
A U O
T E M
E D O
C E D
R F I
E R A
M O C
A T U
V I T
E
1 2 3
S U B
S T I
T U T
I A S
I M P
L A S
I T R
A N S
P O Z
I T I
A S U
N T D
O U A
M E T
O D E
D E C
I F R
A R E
C O M
U T A
T I V
E
Dupa rearanjarea coloanelor conform permutarii inverse
1
se obt ine tabela
din dreapta. Citind pe linii se descopera textul clar: SUBSTITUTIA SIMPLA SI
TRANSPOZITIA SUNT DOUA METODE DE CIFRARE COMUTATIVE .
15.3. Exercit ii propuse
Exercit iul 15.3.1. Dezvoltat i o aplicat ie care sa implementeze rutine specice
decriptarii sistemelor mixte compuse din transpozit ii si substitut ii simple.
Exercit iul 15.3.2. Se dau criptogramele:
Criptograma 1:
VXEVW LWXWL DVLPS ODVLW UDQVS
RCLWL DVXQW GRXDP HWRGH GHFLI
UDUHF RPXWD WLYHX
Criptograma 2:
YAHYZ OZAZO GYOSV RGYOZ XGTYV
180 SISTEME MIXTE
UFOZO GYATZ JUAGS KZUJK JKIOL
XGXKI USAZG ZOBKX
Care din armat iile de mai jos sunt adevarate:
a) metoda de cifrare utilizata este o substitut ia simpla;
b) metoda de cifrare utilizata este o transpozit ie;
c) metoda de cifrare este reprezentata de algoritmul lui Cezar;
d) nu se poate preciza sistemul criptograc utilizat.
Justicat i raspunsul. Decriptat i mesajul.
Raspuns: a) si c). Textul clar: SUBSTITUTIA SIMPLA SI TRANSPOZITIA
SUNT DOUA METODE DE CIFRARE COMUTATIVE.
Exercit iul 15.3.3. Se dau criptogramele:
Criptograma 1:
BITSP SRSZI UDATE CREMA VUTUA
MATNO TSTUE DEFRO TISST IILIA
PIANO MODIA CUTE
Criptograma 2:
UTUAM ATNOT STUED EFROT IBITS
PSRSZ IUDAT ECREM AVSST IILIA
PIANO MODIA CUTE
Care din armat iile de mai jos sunt adevarate:
a) metoda de cifrare utilizata este o substitut ia simpla;
b) metoda de cifrare utilizata este o transpozit ie;
c) metoda de cifrare este reprezentata de algoritmul lui Cezar;
d) nu se poate preciza sistemul criptograc utilizat.
Justicat i raspunsul. Decriptat i mesajul.
Raspuns: b). Textul clar: SUBSTITUTIA SIMPLA SI TRANSPOZITIA SUNT
DOUA METODE DE CIFRARE COMUTATIVE.
Exercit iul 15.3.4. Cifrat i mesajul SPECIAL PROPERTY folosind algoritmu-
lui lui Cezar (k = 13) si transpozit ia data de = (2, 4, 3, 1).
Raspuns: PCRFVEE RYCLCNBG.
Exercit iul 15.3.5. Decriptat i mesajul CPKQCG ZGTVTKGOERIH stiind ca
a fost cifrat cu ajutorul algoritmului lui Cezar si al unei transpozit ii.
Raspuns: EXAMEN CRIPTOGRAFIE.
EXERCIT II PROPUSE 181
Exercit iul 15.3.6. Decriptat i mesajul ZGTVTK GOERIHCPKQCG stiind ca
a fost cifrat cu ajutorul algoritmului lui Cezar si al unei transpozit ii.
Raspuns: EXAMEN CRIPTOGRAFIE.
182 SISTEME MIXTE
Capitolul 16
GENERATOARE
PSEUDOALEATOARE
16.1. Breviar teoretic
Un registru de deplasare cu feedback consta n n locat ii de memorie de cate un
bit care se deplaseaza spre dreapta si o funct ie de feedback care exprima orice
element nou a(t), cu t n, al secvent ei n funct ie de elementele generate anterior
a(t n), a(t n + 1), . . . , a(t 1).
Funct ia de feedback trebuie sa e nesingulara, adica de forma:
a(t) = g(a(t 1), . . . , a(t n + 1)) a(t n), unde desemneaza operat ia
SAU exclusiv (XOR). Daca funct ia de feedback este liniara (se poate implementa
doar folosind operat ia SAU exclusiv) spunem ca generatorul este un registru de
deplasare cu feedback liniar (LFSR). Altfel, spunem ca generatorul este un registru
de deplasare cu feedback neliniar (NLFSR).
O locat ie de memorie a registrului se numeste nivel, iar semnalele binare a(0), a(1), . . . ,
a(n 1) sunt ncarcate ca date init iale. Perioada secvent ei produse depinde atat de
numarul de niveluri, cat si de detaliile conexiunilor de feedback. Mai exact, perioada
maxima a secvent ei care poate generata de un registru de deplasare cu feedback,
avand n niveluri si o funct ie de feedback nesingulara este 2
n
1, adica numarul
maxim de stari n care se poate aa un registru cu n niveluri (se exclude starea
nula). LFSR-urile sunt folosite de mult timp pentru teste VSLI, comunicat ii cu
spectru distribuit etc. Funct ia de feedback a unui LFSR are forma:
a(t) = c
1
a(t 1) c
2
a(t 2) . . . c
n1
a(t n + 1) a(t n), (16.1)
unde c
i
{0, 1}. Conexiunea de feedback a unui LFSR poate exprimata printr-un
183
184 GENERATOARE PSEUDOALEATOARE
polinom de feedback:
f(X) = 1 +c
1
X +c
2
X
2
+. . . +c
n1
X
n1
+X
n
,
cu nedeterminata X. Acest polinom decide perioada si comportarea statistica a
secvent ei de iesire. Pentru a preveni o secvent a de iesire triviala, trebuie ca starea
,,zero peste tot sa nu e stare init iala. De exemplu, daca un LFSR cu patru
niveluri are polinomul de feedback:
f(X) = 1 +X +X
2
+X
3
+X
4
,
dependent de starea init iala, atunci el va genera una din secvent ele de perioada 5.
a) 1111011110 . . . ,
b) 1000110001 . . . ,
c) 0100101001 . . . ,
Sau, alt exemplu, daca LFSR are polinomul de feedback dat de f(X) = 1 +X +
X
4
, atunci el genereaza o singura secvent a netriviala de perioada 15, cu cea mai
buna statistica pe care o astfel de secvent a o poate avea:
101100100011110 . . .
Pentru a garanta cea mai mare perioada posibila 2
n
1, polinomul de feedback
f(X) al LFSR-ului trebuie sa e primitiv. Aceasta nsemna ca f(X) trebuie ales
astfel ncat cel mai mic numar ntreg pozitiv T pentru care X
T
1 este divizibil cu
f(X) sa e T = 2
n
1. Exista algoritmi care testeaza primitivismul unui polinom.
Numarul de polinoame primitive de grad n este:
N
p
(n) =
(2
n
1)
n
,
unde (x), cunoscuta ca funct ia lui Euler, desemneaza cardinalul de numere naturale
mai mici ca x si relativ prime cu x. Observam ca daca un polinom f(X) este
primitiv atunci si polinomul reciproc lui adica X
n
f(
1
X
) este primitiv. Se stie ca
orice polinom primitiv este ireductibil. Reciproca nu este adevarata. Numarul de
polinoame ireductibile de grad n n algebra mod p ( p = 2 ) este dat de formula
urmatoare:
N
I
(n) =
1
n

d|n
p
d
(
n
d
),
unde este funct ia lui Moebius denitan felul urmator pentru n =
k

1
p

i
i
: (n) = 0
daca
k

i
> 1, (n) = (1)
k
daca n este produsul a k numere prime distincte si
EXERCIT II REZOLVATE 185
(1) = 1. Legatura ntre funct ia lui Moebius si funct ia lui Euler este data de:
(n)
n
=

d|n
(d)
d
.
Daca k este un numar prim Mersenne, adica k este numar prim de forma 2
n
1
unde n este numar prim, atunci orice polinom ireductibil de grad k (n algebra
mod 2) este primitiv:
N
I
(k) =
1
2
n
1

d|2
n
1
2
d
(
2
n
1
d
) =
1
2
n
1
[2 + 2
2
n
1
]
=
(2
2
n
1
1)
2
n
1
= N
P
(k).
16.2. Exercit ii rezolvate
Exercit iul 16.2.1. O secvent a determinata de polinomul de feedback 1 +X
3
+
X
4
are perioada maxima?
Rezolvare: Notam cu = X mod f(X) o radacina a polinomului de feedback:
1 +
3
+
4
= 0. Succesiv obt inem puterile lui :

1
=;

2
=
2
;

3
=
3
;

4
=1 +
3
;

5
=
4
= (1 +
3
) = 1 + +
3
;

6
=
5
= (1 + +
3
) = 1 + +
2
+
3
;

7
=
6
= (1 + +
2
+
3
) = 1 + +
2
;

8
=
7
= (1 + +
2
) = +
2
+
3
;

9
=
8
= ( +
2
+
3
) = 1 +
2
;

10
=
9
= (1 +
2
) = +
3
;

11
=
10
= ( +
3
) = 1 +
2
+
3
;

12
=
11
= (1 +
2
+
3
) = 1 +;

13
=
12
= (1 +) = +
2
;

14
=
13
= ( +
2
) =
2
+
3
;

15
=
14
= (
2
+
3
) = 1.
Ordinul lui este 2
4
1, n concluzie, polinomul de feedback este primitiv.
186 GENERATOARE PSEUDOALEATOARE
16.3. Exercit ii propuse
Exercit iul 16.3.1. Implementat i o rutina de testat primitivismul unui polinom
din Z
2
[X].
Exercit iul 16.3.2. O secvent a determinata de polinomul de feedback 1 +X
2
+
X
4
are perioada maxima?
Raspuns: Nu. Polinomul nu este ireductibil, deci nu este primitiv.
Exercit iul 16.3.3. O secvent a determinata de polinomul de feedback 1+X+X
4
are perioada maxima?
Raspuns: Da. Polinomul de feedback este primitiv.
Exercit iul 16.3.4. O secvent a determinata de polinomul de feedback 1+X+X
3
are perioada maxima?
Raspuns: Da. Polinomul de feedback este primitiv.
Exercit iul 16.3.5. O secvent a determinata de polinomul de feedback 1 +X +
X
2
+X
3
are perioada maxima?
Raspuns: Nu. Polinomul nu este primitiv.
Exercit iul 16.3.6. O secvent a determinata de polinomul de feedback 1 +X
2
+
X
5
are perioada maxima?
Raspuns: Da. Polinomul de feedback este primitiv.
Exercit iul 16.3.7. O secvent a determinata de polinomul de feedback 1 +X +
X
3
+X
4
+X
5
are perioada maxima?
Raspuns: Da. Polinomul de feedback este primitiv.
Exercit iul 16.3.8. O secvent a determinata de polinomul de feedback 1 +X +
X
3
+X
5
are perioada maxima?
Raspuns: Nu. Polinomul nu este primitiv.
EXERCIT II PROPUSE 187
Exercit iul 16.3.9. O secvent a determinata de polinomul de feedback 1 +X +
X
2
+X
3
+X
5
are perioada maxima?
Raspuns: Da. Polinomul de feedback este primitiv.
Exercit iul 16.3.10. O secvent a determinata de polinomul de feedback 1+X
2
+
X
3
+X
4
+X
5
are perioada maxima?
Raspuns: Da. Polinomul de feedback este primitiv.
188 GENERATOARE PSEUDOALEATOARE
Capitolul 17
CALCULE

IN CORPURI
GALOIS
17.1. Breviar teoretic
Corpul Galois GF(2
n
) este denit de un polinom f(X) Z
2
[X] de grad n.
Elementele acestui corp sunt polinoame.
Operat iile ntre doua polinoame a(X) = a
0
+ a
1
X + . . . a
n
X
n
si b(X) = b
0
+
b
1
X +. . . b
n
X
n
din GF(2
n
) se denesc n modul urmator:
a) a(X) b(X) = c(X), c
i
= (a
i
+b
i
) mod 2;
b) a(X) b(X) = a(X)b(X) mod f(X).
Un element din GF(2
n
) se poate reprezenta sub forma binara (si apoi hexazec-
imala) prin coecient ii sai : a
0
+ a
1
X + . . . + a
n
X
n
se identica cu a
n
. . . a
1
a
0
,
a
i
{0, 1}
Inversul unui element din GF(2
n
) se determina cu algoritmul lui Euclid, exem-
plicat n continuare.
17.2. Exercit ii rezolvate
Exercit iul 17.2.1. Care este inversul elementului {45} (reprezentat n format
hexa) din GF(2
8
) denit de polinomul f(X) = 1 +X +X
3
+X
4
+X
8
.
Rezolvare: Elementului {45} i corespunde polinomul X
6
+X
2
+1. Pentru a aa
inversul lui {45} modf(X) utilizam algoritmul lui Euclid:
X
8
+X
4
+X
3
+X + 1 = X
2
(X
6
+X
2
+ 1) +X
3
+X
2
+X + 1,
X
6
+X
2
+ 1 = (X
3
+X
2
)(X
3
+X
2
+X + 1) + 1,
plecand de la ultima ecuat ie catre prima, succesiv obt inem:
189
190 CALCULE

IN CORPURI GALOIS
1 = (X
3
+X
2
)(X
3
+X
2
+X + 1) +X
6
+X
2
+ 1
1 = (X
3
+X
2
)(X
2
(X
6
+X
2
+ 1) +X
8
+X
4
+X
3
+X + 1) +X
6
+X
2
+ 1
1 = (X
5
+X
4
+ 1)(X
6
+X
2
+ 1) + (X
3
+X
2
+ 1)(X
8
+X
4
+X
3
+X + 1)
deci inversul polinomului X
6
+ X
2
+ 1 este X
5
+ X
4
+ 1. Utilizand codicarea
hexa ajungem la concluzia ca inversul elementului {45} este {31}.
Exercit iul 17.2.2. Sa se adune elementele {57} si {83}n corpul Galois GF(2
8
)
denit de polinomul 1 +X +X
3
+X
4
+X
8
.
Rezolvare: Scrierea binara a celor doua elemente este {57} = {01010111} respec-
tiv {83} = {10000011}. Efectuand calculele obt inem {57} {83} = {11010100} =
{D4}.
Exercit iul 17.2.3. Sa se nmult easca elementele {57} si {83} n corpul Galois
GF(2
8
) denit de polinomul 1 +X +X
3
+X
4
+X
8
.
Rezolvare: {57} {83} = (X
6
+X
4
+X
2
+X + 1)(X
7
+X + 1) = X
13
+X
11
+
X
9
+X
8
+X
6
+X
5
+X
4
+X
3
+1 mod (X
8
+X
4
+X
3
+X +1) = X
7
+X
6
+1 =
{11000001} = {C1}.
17.3. Exercit ii propuse
Exercit iul 17.3.1. Implementat i proceduri de calcul n corp Galois.
Exercit iul 17.3.2. Care este inversul elementului {33} (reprezentat n format
hexa) din GF(2
8
) denit de polinomul 1 +X +X
3
+X
4
+X
8
.
Raspuns: {6C}.
Exercit iul 17.3.3. Care este inversul elementului {12} (reprezentat n format
hexa) din GF(2
8
) denit de polinomul 1 +X +X
3
+X
4
+X
8
.
Raspuns: {AA}.
Exercit iul 17.3.4. Care este inversul elementului {31} (reprezentat n format
hexa) din GF(2
8
) denit de polinomul 1 +X +X
3
+X
4
+X
8
.
Raspuns: {45}.
EXERCIT II PROPUSE 191
Exercit iul 17.3.5. Aratat i ca elementele {12} si {AA} (reprezentate n format
hexa) sunt inversen corpul Galois GF(2
8
) denit de polinomul 1+X+X
3
+X
4
+X
8
.
Exercit iul 17.3.6. Sa se adune elementele {5} si {7} n corpul Galois GF(2
4
)
denit de polinomul 1 +X +X
4
.
Raspuns: {2}.
Exercit iul 17.3.7. Sa se nmult easca elementele {5} si {7} n corpul Galois
GF(2
4
) denit de polinomul 1 +X +X
4
.
Raspuns: {8}.
Exercit iul 17.3.8. Se considera transformarea data de
g(y) =
_
_
_
_
_
_
_
_
_
_
_
_
1 1 1 1 1 0 0 0
0 1 1 1 1 1 0 0
0 0 1 1 1 1 1 0
0 0 0 1 1 1 1 1
1 0 0 0 1 1 1 1
1 1 0 0 0 1 1 1
1 1 1 0 0 0 1 1
1 1 1 1 0 0 0 1
_
_
_
_
_
_
_
_
_
_
_
_
y
1

_
_
_
_
_
_
_
_
_
_
_
_
0
1
1
0
0
0
1
1
_
_
_
_
_
_
_
_
_
_
_
_
(17.1)
unde y
1
este inversul lui y n corpul Galois GF(2
8
) denit de polinomul 1 +
X +X
3
+X
4
+X
8
. Calculat i g(1), g(2), g(3), g(4), g(5).
Raspuns: Transformarea indicata n problema deneste tabela de substitut ie a
algoritmului RIJNDAEL. Valorile solicitate (n zecimal) sunt: g(1) = 124, g(2) =
119, g(3) = 123, g(4) = 242, g(5) = 107.
192 CALCULE

IN CORPURI GALOIS
Capitolul 18
ALGORITMUL RIJNDAEL -
STANDARDUL AES
18.1. Breviar teoretic
Pentru rezolvarea urmatoarelor exercit ii plecam de la ipoteza cunoasterii standar-
dului FIPS 197 - Advanced Encryption Standard compus din patru operat ii (sumare
modulo 2 cu cheia de runda, subtitut ia la nivel de octet, shiftarea liniilor, mixarea
coloanelor etc.) n cadrul procesului de transformare a starilor si din generatorul de
chei de runda.
18.2. Exercit ii rezolvate
Exercit iul 18.2.1. Intrarea n runda i = 6 a algoritmului AES 128/128 pentru
cifrarea textului ,,zero peste tot, cu ajutorul cheii ,,zero peste tot, este:
_

_
D4 55 7E 79
6F B8 05 79
4F 96 BB DE
6C 33 3D 23
_

_
cheia de runda ind:
_

_
EC 14 99 6A
61 25 FF B4
4B 75 09 9B
85 8C 37 A7
_

_
Care este iesirea dupa procesarea rutinelor SubBytes, ShiftRows, MixColumns si
AddRoundKey?
193
194 ALGORITMUL RIJNDAEL - STANDARDUL AES
Rezolvare:
Rutina SubBytes presupune folosirea urmatorului Sbox:
_

_
0 1 2 3 4 5 6 7 8 9 a b c d e f
0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0
2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf
6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 f3 d2
8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08
c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a
d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
f 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16
_

_
Gasirea octetului din S-box corespunzator octetului din stare se face astfel: pentru
octetul D4 se cauta n SBox elementul aat la intersect ia liniei D cu coloana 4 si se
substituie n stare elementul gasit in Sbox. D4 se va substitui cu 48. Procedeul se
aplica similar pentru ceilalt i octet i din stare.
Rezultatul aplicarii rutinei SubBytes se constituie n urmatoarea stare:
_

_
48 FC F3 B6
A8 6C 6B B6
84 90 EA 1D
50 C3 27 26
_

_
Rutina ShiftRows act ioneaza n felul urmator asupra starii: prima linie ramane
neschimbata, a doua linie se roteste la stanga cu un octet, a treia linie se roteste la
stanga cu doi octet i iar a patra linie se roteste la stanga cu trei octet i.
Dupa aplicarea rutinei ShiftRows, starea va urmatoarea:
_

_
48 FC F3 B6
6C 6B B6 A8
EA 1D 84 90
26 50 C3 27
_

_
EXERCIT II REZOLVATE 195
Rutina MixColumns presupunenmult irea ecarei coloane din stare cu urmatoarea
matrice xata:
_

_
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
_

_
Operat iile care rezulta din nmult irea matricilor se fac n corpul Galois GF(2
8
)
si sunt nmult iri de polinoame modulo polinomul generator al corpului GF(2
8
) care
este h(X) = X
8
+ X
4
+ X
3
+ X + 1. Observam ca singurele nmult iri care apar
sunt cele cu 02 si 03. Inmult irea cu polinomul 02 in GF(2
8
) nseamna nmult irea cu
polinomul X.
Fie f(X) = b
7
X
7
+b
6
X
6
+b
5
X
5
+b
4
X
4
+b
3
X
3
+b
2
X
2
+b
1
X +b
0
un polinom
din GF(2
8
). Sa vedem ce presupune nmult irea 02 f(X) adica X f(X):
X f(X) = b
7
X
8
+b
6
X
7
+b
5
X
6
+b
4
X
5
+b
3
X
4
+b
2
X
3
+b
1
X
2
+b
0
X(modm(X)),
unde m(X) este polinomul generator m(X) = X
4
+X
3
+X+1 al corpului Galois
GF(2
8
). Daca b
7
= 0, atunci polinomul este n forma redusa n GF(2
8
) (are gradul
7).
Daca b
7
= 1, atunci:
X f(X) = X
8
mod m(X) +b
6
X
7
+b
5
X
6
+b
4
X
5
+b
3
X
4
+b
2
X
3
+b
1
X
2
+b
0
X.
Deci:
X f(X) = (X
4
+X
3
+X +1) +b
6
X
7
+b
5
X
6
+b
4
X
5
+b
3
X
4
+b
2
X
3
+b
1
X
2
+b
0
X.
Prin urmare, nmult irea cu polinomul X poate implementata, n cazul n care
bitul cel mai semnicativ al polinomului f(X) este 1, ca o operat ie de shift la stanga
cu 1 bit urmata de un XOR cu (00011011), care reprezinta polinomul (X
4
+ X
3
+
X + 1).
Daca bitul cel mai semnicativ al polinomului f(X) este 0, atunci nmult irea
presupune doar operat ie de shift la stanga cu un bit.
Pentru a trece starea curenta prin rutina MixColumns, se nmult este pe rand
ecare coloana din stare cu matricea xata de mai sus.
Vom prezenta doar modul de efectuare al nmult irii:
_

_
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
_

_

_

_
48
6C
EA
26
_

_
196 ALGORITMUL RIJNDAEL - STANDARDUL AES
Coloana rezultat va cont ine urmatoarele linii:
_

_
02 48 03 6C EA26
01 48 02 6C 03 EA26
48 6C 02 EA03 26
03 48 6C EA02 26
_

_
Raman de efectuat nmult irile care apar pe ecare linie:
02 48 = 02 01001000 = 10010000.
03 48 = 02 48 48 = 11011000.
03 6C = 03 01101100 = 02 01101100 01101100 = 11011000 01101100 =
10110100.
02 EA = 02 11101010 = 11010100 00011011 = 11110001.
03 EA = 02 EAEA = 11110001 11101010 = 00011011.
02 26 = 02 00100110 = 01001100.
03 26 = 02 26 26 = 01001100 00100110 = 01101010.
Dupa calculele ramase, coloana rezultat va :
_

_
E8
93
81
12
_

_
Pentru celelalte coloane din stare se procedeaza similar.
Starea rezultata dupa aplicarea rutinei MixColumns este urmatoarea:
_

_
E8 13 7B 23
93 5D D0 71
81 5D 08 4C
12 C9 A1 B7
_

_
Aplicarea rutinei AddRoundKey presupune o simpla operat ie de XOR pe ecare
octet din stare cu octet-ul corespunzator din cheia de runda.
_

_
E8 13 7B 23
93 5D D0 71
81 5D 08 4C
12 C9 A1 B7
_

_

_

_
EC 14 99 6A
61 25 FF B4
4B 75 09 9B
85 8C 37 A7
_

_
=
_

_
04 07 E2 49
F2 78 2F C5
CA 28 01 D7
97 45 96 10
_

_
EXERCIT II PROPUSE 197
18.3. Exercit ii propuse
Exercit iul 18.3.1. Intrarea n runda i = 7 a algoritmului AES 128/128 pentru
cifrarea textului ,,zero peste tot, cu ajutorul cheii ,,zero peste tot, este:
_

_
04 07 E2 49
F2 78 2F C5
CA 28 01 D7
97 45 96 10
_

_
cheia de runda ind:
_

_
21 35 AC C6
75 50 AF 1B
17 62 6B F0
87 0B 3C 9B
_

_
Care este iesirea dupa procesarea rutinelor SubBytes, ShiftRows, MixColumns si
AddRoundKey?
Raspuns: Iesirea din runda 7 este:
_

_
B7 1D 6C 94
AA 25 92 E5
E4 2D 0F 81
C5 4F 81 50
_

_
Exercit iul 18.3.2. Intrarea n runda i = 8 a algoritmului AES 128/128 pentru
cifrarea textului ,,zero peste tot, cu ajutorul cheii ,,zero peste tot, este:
_

_
B7 1D 6C 94
AA 25 92 E5
E4 2D 0F 81
C5 4F 81 50
_

_
cheia de runda ind:
_

_
0E 3B 97 51
F9 A9 06 1D
03 61 0A FA
33 38 04 9F
_

_
Care este iesirea dupa procesarea rutinelor SubBytes, ShiftRows, MixColumns si
AddRoundKey?
198 ALGORITMUL RIJNDAEL - STANDARDUL AES
Raspuns: Iesirea din runda 8 este:
_

_
23 13 AA 2E
37 21 C0 03
8C 63 C6 CB
3C DB 57 95
_

_
Exercit iul 18.3.3. Intrarea n runda i = 8 a algoritmului AES 128/128 pentru
cifrarea textului ,,zero peste tot, cu ajutorul cheii ,,zero peste tot, este:
_

_
23 13 AA 2E
E7 21 C0 03
8C 63 C6 CB
3C DB 57 95
_

_
cheia de runda ind:
_

_
B1 8A 1D 4C
D4 7D 7B 66
D8 B9 B3 49
E2 DA DE 41
_

_
Care este iesirea dupa procesarea rutinelor SubBytes, ShiftRows, MixColumns si
AddRoundKey?
Raspuns: Iesirea din runda 9 este:
_

_
7F 51 0E 29
FE A5 34 29
0E 66 7C EC
95 35 47 CB
_

_
Exercit iul 18.3.4. Executat i o runda completa, pentru algoritmul RIJNDAEL
(AES), cu urmatoarele intrari:
pentru starea curenta:
_

_
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 01
_

_
pentru cheia de runda:
EXERCIT II PROPUSE 199
_

_
62 62 62 62
63 63 63 63
7C 7C 7C 7C
63 63 63 62
_

_
Raspuns: Iesirea din runda este:
_

_
1E 01 01 01
1F 00 00 00
3E 1F 1F 1F
3E 00 00 01
_

_
Exercit iul 18.3.5. Executat i o runda completa, pentru algoritmul RIJNDAEL
(AES), cu urmatoarele intrari:
pentru starea curenta:
_

_
1E 01 01 01
1F 00 00 00
3E 1F 1F 1F
3E 00 00 01
_

_
pentru cheia de runda:
_

_
9B F9 9B F9
73 10 73 10
D6 AA D6 AA
C9 AA C9 AB
_

_
Raspuns: Iesirea din runda este:
_

_
66 D6 17 F9
E0 43 67 CF
D8 E3 13 28
04 F2 5A E9
_

_
Exercit iul 18.3.6. Executat i o runda completa, pentru algoritmul RIJNDAEL
(AES), cu urmatoarele intrari:
pentru starea curenta:
200 ALGORITMUL RIJNDAEL - STANDARDUL AES
_

_
66 D6 17 F9
E0 43 67 CF
D8 E3 13 28
04 F2 5A E9
_

_
pentru cheia de runda:
_

_
55 AC 37 CE
DF CF BC AC
B4 1E C8 62
50 FA 33 98
_

_
Raspuns: Iesirea din runda este:
_

_
7E 09 A1 70
41 86 69 61
45 08 F0 E1
5E B5 DA BF
_

_
Exercit iul 18.3.7. Executat i o runda completa, pentru algoritmul RIJNDAEL
(AES), cu urmatoarele intrari:
pentru starea curenta:
_

_
7E 09 A1 70
41 86 69 61
45 08 F0 E1
5E B5 DA BF
_

_
pentru cheia de runda:
_

_
CC 60 57 99
75 BA 06 AA
F2 EC 24 46
DB 21 12 8A
_

_
Raspuns: Iesirea din runda este:
_

_
79 D2 A2 C2
89 19 96 E1
5E 17 41 0D
0D 93 74 64
_

_
EXERCIT II PROPUSE 201
Exercit iul 18.3.8. Executat i o runda completa, pentru algoritmul RIJNDAEL
(AES), cu urmatoarele intrari:
pentru starea curenta:
_

_
79 D2 A2 C2
89 19 96 E1
5E 17 41 0D
0D 93 74 64
_

_
pentru cheia de runda:
_

_
70 10 47 DE
2F 95 93 39
8C 60 44 02
35 14 06 8C
_

_
Raspuns: Iesirea din runda este:
_

_
A0 CA A4 04
F7 AE 76 D0
36 92 49 D6
25 22 4B 8B
_

_
202 ALGORITMUL RIJNDAEL - STANDARDUL AES
Capitolul 19
CRIPTANALIZA
CIFRURILOR BLOC
19.1. Breviar teoretic
Deoarece nu exista o formula matematica universala care sa poata aplicata n
operat ia de criptanaliza, am propus ca exercit ii la acest capitol modicari ale unor
algoritmi de cifruri bloc consacrate. Sunt date o serie de indicat ii precedate de o
scurta descriere a algoritmilor propriu-zisi.
19.2. Exercit ii rezolvate
Exercit iul 19.2.1. Studiat i urmatorele simplicari ale algoritmului RC5:
-RC5 cu 8 iterat ii dar fara rotat ii;
-RC5 cu 8 iterat ii iar numarul de rotat ii egal cu numarul de iterat ii.
Raspuns.

In cele ce urmeaza facem o scurta descriere a cifrului RC5 cu r iterat ii.
Acesta are lungimea blocului de date variabila dar vom considera n cele ce urmeaza
ca aceasta a fost setata la 64 bit i. Operat ia de cifrare foloseste 2r+2 chei dependente
de cuvintele pe 32 bit i S
0
, S
1
, S
2
, . . . , S
2r+2
unde r este numarul de iterat ii. Pentru
cifrare blocul de date se mparte n doua part i de 32 bit i notate cu L respectiv R
(RC5 face apel la codicarea little-endian pentru mpachetarea octet ilor n cuvinte:
primul octet se transforma n cele mai put in semnicative pozit ii ale lui L, etc.).
Apoi avem:
_
L = L +S
0
,
R = R +S
1
.
203
204 CRIPTANALIZA CIFRURILOR BLOC
Pentru i = 1, . . . , r se executa:
_
L = ((L R) << R) +S
2i
,
R = ((R L) << L) +S
2i+1
.
Iesirea consta n registrele L si R. Simbolul are semnicat ia sumei mod2, sim-
bolul << semnica rotire circulara si n ne simbolul + are semnicat ia sumei mod
2
32
. Operat ia de decriptare este similara (intervin operatorii , >> si ). Modul de
construct ie al secvent ei S (care deriva din cheie) nu este esent ial n cadrul acestui
exercit iu.
Daca setam numarul de iterat ii r = 8 si nu facem nici un fel de rotat ii atunci
pentru i = 1, . . . , 8 se executa:
_
L = (L R) +S
2i
,
R = (R L) +S
2i+1
.
Algoritmul astfel setat nu ndeplineste criteriul de avalansa stricta (schimbarea
unui bit n blocul de text clar produce, n medie, schimbari de 50% la iesire). Schema
de mai sus permite atacul cu ajutorul tehnicii criptanalizei liniare pentru aarea lui
S, deci a cheii efective.
Daca setam numarul de iterat ii r = 8 si numarul de rotat ii egal cu r atunci pentru
i = 1, . . . , 8 se executa:
_
L = ((L R) << 8) +S
2i
,
R = ((R L) << 8) +S
2i+1
.
Algoritmul astfel setat nu ndeplineste criteriul de avalansa stricta. Schema de
mai sus permite atacul cu ajutorul tehnicii criptanalizei diferent ial/liniare pentru
aarea lui S.
Exercit iul 19.2.2. Studiat i urmatorele simplicari ale algoritmului DES:
-DES cu 12 iterat ii dar fara aplicat iile S;
-DES cu 4 iterat ii;
-DES cu 6 iterat ii.
Raspuns. Cifrul bloc DES (proiectat n 1977) este sub controlul unei chei efective
de 56 bit i (cheia de baza este de 64 bit i, 8 bit i ind pentru detect ia erorilor) iar
marimea blocului de date este de 64 bit i. Textul clar este permutat iar apoi este
mpart it n doua blocuri L si R de lungime 32 bit i. Se executa apoi iterativ operat iile
(pentru i = 1, . . . , num arul de iteratii):
_
L
i
= R
i
,
R
i
= L
i
f(R
i1
, K
i
).
EXERCIT II PROPUSE 205

In nal textul este supus permutarii inverse. Ne concentram asupra descrierii


funct iei f : Z
32
2
Z
48
2
Z
32
2
. Init ial blocul R (32 bit i) este extins cu ajutorul
funct iei E la un bloc pe 48 bit i care este sumat mod2 cu cheia K (extinsa la 48
bit i cu ajutorul algoritmului de producere a subcheilor). Opt aplicat ii S : Z
6
2
Z
4
2
produc o iesire pe 32 bit i care este permutata pentru a produce iesirea nala dintr-o
iterat ie. Daca aplicat iile S sunt xe (se selecteaza 4 bit i din 6 n mod x) atunci se
poate aplica tehnica criptanalizei diferent iale (bit ii de la iesire sunt bit ii de la intrare
(sumat i mod2 cu cheia K) dar ntr-o alta ordine).
Algoritmul DES cu 4 cat si cu 6 iterat ii poate spart cu ajutorul tehnicii atacului
cu text clar cunoscut.
19.3. Exercit ii propuse
Exercit iul 19.3.1. Studiat i regula B a algoritmului Skipjack cu 8 iterat ii.
Exercit iul 19.3.2. Ce defect are un algoritm de cifrare care este nchis (un
algoritm de cifrare se numeste nchis daca pentru orice chei k
1
si k
2
exista o cheie
k
3
astfel ncat pentru orice text clar M avem E
k
1
E
k
2
(M) = E
k
3
(M))?
Raspuns. Ca metoda de atac generica se poate opta pentru cifrarea repetitiva.
Exercit iul 19.3.3. Aplicat i tehnica criptanalizei diferent iale si criptanalizei li-
niare asupra algorimului FEAL.
Exercit iul 19.3.4. Studiat i tehnica criptanalizei diferent iale n cazul algorit-
mului DES cu 16 iterat ii.
Exercit iul 19.3.5. Aplicat i tehnica criptanalizei liniare n cazul algoritmului
DES cu 16 iterat ii.
Exercit iul 19.3.6. Avand la dispozit ie un cifru bloc E
k
(.) proiectat i un cifru
ux si viceversa.
Exercit iul 19.3.7. Scriet i funct ia analitica a celor opt funct ii de substitut ie S
ale cifrului DES.
Exercit iul 19.3.8. Fie E
M
(.) si D
K
(.) funct iile de cifrare respectiv descifrare
ale unui cifru. Care este valoarea lui D
K
(E
K
(M))?
206 CRIPTANALIZA CIFRURILOR BLOC
Nota. Descrierea algoritmilor RC5, DES, Skipjack si FEAL poate gasita n
Schneier [67] sau Menezes [47].
Exercit iul 19.3.9. Implementat i modalitat i de testare a cifrurilor bloc.
Exercit iul 19.3.10. Implementat i modalitat i de generare a tabelelor de substi-
tut ie.
Exercit iul 19.3.11. Fie E(, ) o funct ie de cifrare pe m bit i de cheie si n bit i
de date. Care este valoarea maxima a lui m astfel ncat cheia efectiva a cifrului sa
e m?
Capitolul 20
LEMA CHINEZEASC

A A
RESTURILOR
20.1. Breviar teoretic
Teorema 20.1.1. (Lema chinezeasca a resturilor- CRT) Fie m
1
, . . . , m
k
nu-
mere ntregi cu (m
i
, m
j
) = 1 pentru orice i = j. Atunci sistemul
x a
i
mod m
i
are o solut ie unica modulo
k

i=1
m
i
.
Demonstrat ie. Existent a solut iei. Vom nota
M =
k

i=1
m
i
si
M
i
=
M
m
i
pentru orice i = 1, . . . , k.
Deoarece (m
i
, m
j
) = 1 pentru orice i = j avem (M
j
, m
j
) = 1 pentru orice j adica
exista N
j
astfel ca M
j
N
j
= 1 mod m
j
. Atunci daca notam
x =
k

i=0
a
i
M
i
N
i
207
208 LEMA CHINEZEASC

A A RESTURILOR
si reducem modulo m
i
avem:
x =
k

j=0
a
j
M
j
N
j
mod m
i
pentru orice i.
Folosind faptul ca (M
i
, m
j
) = 1 pentru i = j obt inem:
x = a
i
M
i
N
i
mod m
i
= a
i
mod m
i
pentru orice i.
Unicitatea solut iei. Fie x

si x

doua solut ii atunci


x = x

= 0 mod m
i
pentru orice i
deci
x = 0 mod M.
20.2. Exercit ii rezolvate
Exercit iul 20.2.1. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 3 mod 13
x 34 mod 47
x 2 mod 51
Rezolvare:
Solut ia sistemului de congruent e este data de formula:
x =
3

j=1
a
j
M
j
N
j
mod M.
unde a
1
= 3, a
2
= 34, a
3
= 2 iar m
1
= 13, m
2
= 47, m
3
= 51. Se observa ca
m
1
, m
2
si m
3
sunt prime ntre ele.
Calculam M = 13 47 51 = 31161 si M
1
= 47 51 = 2397, M
2
= 13 51 = 663 si
M
3
= 13 47 = 611.
Mai departe trebuie calculat inversul lui M
j
pentru j = 1 , j = 2 si j = 3.
Cu algoritmul lui Euclid extins, se calculeaza N
1
= M
1
1
mod m
1
= 2397
1
mod
13 = 5
1
mod 13 = 8.
Similar se calculeaza N
2
= M
1
2
mod m
2
= 663
1
mod 47 = 5
1
mod 47 = 19,
iar
EXERCIT II PROPUSE 209
N
3
= M
1
3
mod m
3
= 611
1
mod 51 = 50
1
mod 51 = 50.

In acest moment, avem toate datele necesare pentru a calcula solut ia x a sistemu-
lui de congruent e:
x = a
1
M
1
N
1
+a
2
M
2
N
2
+a
3
M
3
N
3
mod M.
Deci x = 3 2397 8 + 34 663 19 + 2 611 50 mod 31161 = 57528 + 428928 +
61100 mod 31161 de unde x = 17819 mod 31161; se poate verica faptul ca ntr-
adevar aceasta este solut ia sistemului.
20.3. Exercit ii propuse
Exercit iul 20.3.1. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 1 mod 13
x 2 mod 17
x 3 mod 11
Raspuns: x = 1158 mod 2431.
Exercit iul 20.3.2. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 3 mod 13
x 2 mod 11
x 2 mod 19
Raspuns: x = 211 mod 2717.
Exercit iul 20.3.3. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 3 mod 5
x 5 mod 7
x 7 mod 11
Raspuns: x = 348 mod 385.
Exercit iul 20.3.4. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 5 mod 17
x 3 mod 19
x 2 mod 23
Raspuns: x = 991 mod 7429.
210 LEMA CHINEZEASC

A A RESTURILOR
Exercit iul 20.3.5. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 5 mod 11
x 3 mod 19
x 2 mod 23
Raspuns: x = 3613 mod 4807.
Exercit iul 20.3.6. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 5 mod 17
x 3 mod 21
x 2 mod 23
Raspuns: x = 4119 mod 8211.
Exercit iul 20.3.7. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 4 mod 21
x 9 mod 31
x 14 mod 23
Raspuns: x = 6178 mod 14973.
Exercit iul 20.3.8. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 4 mod 47
x 9 mod 11
x 3 mod 23
Raspuns: x = 10767 mod 11891.
Exercit iul 20.3.9. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 11 mod 17
x 12 mod 19
x 13 mod 23
Raspuns: x = 3394 mod 7429.
Exercit iul 20.3.10. Sa se rezolve sistemul de ecuat ii:
EXERCIT II PROPUSE 211
_
_
_
x 8 mod 23
x 14 mod 29
x 17 mod 31
Raspuns: x = 1319 mod 20677.
Exercit iul 20.3.11. Sa se rezolve sistemul de ecuat ii:
_
_
_
x 15 mod 23
x 3 mod 19
x 13 mod 36
Raspuns: x = 15241 mod 15732.
212 LEMA CHINEZEASC

A A RESTURILOR
Capitolul 21
SISTEMUL DE CIFRARE
MERKLE-HELLMAN
21.1. Breviar teoretic
Algoritmul de cifrare Merkle-Hellman consta n codicarea mesajului ca o solut ie
a unei probleme de tip rucsac pentru care ponderile {M
1
, ..., M
n
} constituie cheia
de cifrare, si textului clar {b
1
, ..., b
n
} i corespunde textul cifrat
n

i=1
b
i
M
i
.
Denit ia 21.1.1. Un sir de ponderi {M
1
, ..., M
n
} se numeste supercrescator
daca:
M
k
>
k1

i=1
M
i
pentru orice k. (21.1)
Problema rucsacului supercrescator este usor de rezolvat folosind urmatoarea
schema: pentru k = n, ..., 1:
daca M
k
< S atunci b
k
= 1 si S = S M
k
;
altfel b
k
= 0.
Algoritmii de tip rucsac care nu sunt supercrescatori nu sunt usor de rezolvat
si nu exista niciun algoritm rapid care sa rezolve problema. Singura modalitate
cunoscuta de a determina daca b
i
= 1 consta n testarea tuturor solut iilor. Cei mai
rapizi algoritmi de testare au o complexitate exponent iala.
Algoritmul Merkle-Hellman se bazeaza pe aceasta proprietate: cheia privata este
sirul ponderilor pentru un rucsac supercrescator iar cheia publica este sirul ponderilor
213
214 SISTEMUL DE CIFRARE MERKLE-HELLMAN
pentru un rucsac care are aceeasi solut ie, dar nu este supercrescator. Merkle si
Hellman au gasit o metoda prin care se poate transforma o problema a rucsacului
supercrescator ntr-o problema normala a rucsacului. Tehnica de conversie face apel
la aritmetica modulara.
Avand la dispozit ie o problema de tip rucsac supercrescator (cheia privata) cu
ponderile {M
1
, ..., M
n
} atunci aceasta se transforma ntr-o problema de tip rucsac
normala (cheia publica) cu sirul ponderilor
{mM
1
mod p, ..., mM
n
mod p},
unde msi p sunt numere naturale prime ntre ele (acestea fac parte din cheia privata)
si p >
n

i=1
M
i
.
Pentru a cifra un mesaj binar acesta se va mpart i n blocuri de lungimi egale cu
cardinalul mult imii ponderilor. Cifrarea unui bloc b
1
...b
n
va numarul natural:
n

i=1
b
i
(mM
i
mod p).
Pentru descifrare destinatarul mesajului cunoaste cheia privata: ponderile origi-
nale si valorile lui m si p. Acesta va calcula mai ntai pe m
1
mod p. Se va multiplica
apoi textul cifrat cu m
1
mod p iar dupa aceea se va rezolva problema rucsacului
supercrescator pentru a recupera textul original.
21.2. Exercit ii rezolvate
Exercit iul 21.2.1. Sa se construiasca cheia publica pentru algoritmul Merkle-
Hellman reprezentat de cheia privata {2, 3, 6, 13, 27, 52}, modulul p = 105 si multi-
plicatorul m = 31. Cifrat i mesajul 101110.
Rezolvare:
Avand la dispozit ie cheia privata {M
1
, ..., M
n
}, cheia publica se obt ine astfel
{mM
1
mod p, ..., mM
n
mod p}.
Prin urmare, cheia privata pentru datele de mai sus este {31 2 mod 105, 31
3 mod 105, 31 6 mod 105, 31 13 mod 105, 31 27 mod 105, 31 52 mod 105} adica
{62, 93, 81, 88, 102, 37}.
Cifrarea mesajului 101110 ((m
1
, ..., m
6
)) se face dupa formula
n

i=1
m
i
(mM
i
mod
p), adica pe baza cheii publice. Rezultatul va 62 + 81 + 88 + 102, deci mesajul
cifrat este c = 333.
EXERCIT II PROPUSE 215
Exercit iul 21.2.2. Sa se descifreze mesajul C = 4608 cifrat cu ajutorul algo-
ritmului Merkle-Hellman cu parametrii n = 9, cheia privata:
{1, 2, 5, 10, 19, 40, 98, 179, 355},
modulul p = 1717 si multiplicatorul m = 507.
Rezolvare: Se determina C m
1
mod 1717 = 4608 507
1
mod 1717 = 4608
657 mod 1717 = 385.
Apoi se rezolva problema supercrescatoare a rucsacului de dimensiune 385 : 385 =
355 + 19 + 10 + 1. Mesajul clar va cont ine 1 pe pozit iile corespunzatoare acestor
ponderi, deci se obt ine 100110001.
21.3. Exercit ii propuse
Exercit iul 21.3.1. Dezvoltat i o aplicat ie care sa implementeze funct iile de cifrare
si descifrare ale sistemului Merkle-Hellman.
Exercit iul 21.3.2. Sa se construiasca cheia publica pentru algoritmul Merkle-
Hellman reprezentat de cheia privata {2, 3, 6, 13, 27, 52}, modulul p = 105 si multi-
plicatorul m = 31. Cifrat i mesajul 011111.
Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 401.
Exercit iul 21.3.3. Sa se construiasca cheia publica pentru algoritmul Merkle-
Hellman reprezentat de cheia privata {2, 3, 6, 13, 27, 52}, modulul p = 105 si multi-
plicatorul m = 31. Cifrat i mesajul 111110.
Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 426.
Exercit iul 21.3.4. Sa se construiasca cheia publica pentru algoritmul Merkle-
Hellman reprezentat de cheia privata {2, 3, 6, 13, 27, 52}, modulul p = 105 si multi-
plicatorul m = 31. Cifrat i mesajul 001110.
Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 271.
Exercit iul 21.3.5. Sa se descifreze mesajul 333 cifrat cu ajutorul algoritmului
Merkle-Hellman cu urmatorii parametrii: n = 6, cheia privata {2, 3, 6, 13, 27, 52},
modulul p = 105 si multiplicatorul m = 31.
216 SISTEMUL DE CIFRARE MERKLE-HELLMAN
Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul clar 101110.
Exercit iul 21.3.6. Sa se descifreze mesajul 320 cifrat cu ajutorul algoritmului
Merkle-Hellman cu urmatorii parametrii: n = 6, cheia privata {2, 5, 14, 23, 56, 125},
modulul p = 228 si multiplicatorul m = 191.
Raspuns: Cheia publica {154, 43, 166, 61, 208, 163}, m
1
mod p = 191, mesajul
clar 101000.
Exercit iul 21.3.7. Sa se construiasca cheia publica pentru algoritmul Merkle-
Hellman cu urmatorii parametrii: n = 6, cheia privata {3, 4, 11, 25, 50, 113}, modulul
p = 209 si multiplicatorul m = 20. Cifrat i mesajul 27.
Raspuns: Cheia publica este {60, 80, 11, 82, 164, 170}, mesajul cifrat 425.
Exercit iul 21.3.8. Sa se descifreze mesajul 425 cifrat cu ajutorul algoritmului
Merkle-Hellman cu urmatorii parametrii: n = 6, cheia privata {3, 4, 11, 25, 50, 113},
modulul p = 209 si multiplicatorul m = 20.
Raspuns: Cheia publica {60, 80, 11, 82, 164, 170}, m
1
mod p = 115, mesajul clar
011011.
Exercit iul 21.3.9. Sa se construiasca cheia publica pentru algoritmul Merkle-
Hellman cu urmatorii parametrii: n = 6, cheia privata {3, 4, 11, 26, 58, 106}, modulul
p = 238 si multiplicatorul m = 167. Cifrat i mesajul 29.
Raspuns: Cheia publica este {25, 192, 171, 58, 166, 90}, mesajul cifrat 511.
Exercit iul 21.3.10. Sa se descifreze mesajul 511 cifrat cu ajutorul algoritmului
Merkle-Hellman cu urmatorii parametrii: n = 6, cheia privata {3, 4, 11, 26, 58, 106},
modulul p = 238 si multiplicatorul m = 167.
Raspuns: Cheia publica {25, 192, 171, 58, 166, 90}, m
1
mod p = 181, mesajul
clar 011101.
Capitolul 22
SISTEMUL DE CIFRARE RSA
22.1. Breviar teoretic
Algoritmul RSA a fost inventat de catre Ron Rivest, Adi Shamir si Leonard
Adleman si a fost studiat n cadrul unor studii criptanalitice extinse. Securitatea
RSA-ului se bazeaza pe dicultatea factorizarii numerelor mari. Cheia publica si
cheia privata sunt funct ie de o pereche de numere prime mari (de 200 de cifre sau
chiar mai mari). Factorizarea produsului a doua numere prime implica recuperarea
textului clar din textul cifrat, cunoscand cheia publica.
Pentru generarea a doua chei (publica si privata) se aleg aleatoriu doua numere
prime mari p si q. Din rat ionamente de securitate p si q au acelasi ordin de marime.
Se va calcula produsul n = p q. Se va alege apoi, aleatoriu, exponentul public (de
cifrare) e astfel ca e si (p 1)(q 1) sa e relativ prime. Utilizand algoritmul extins
al lui Euclid vom calcula exponentul privat (de descifrare) d astfel ca
ed 1 mod (p 1)(q 1).
Cu alte cuvinte
d e
1
mod (p 1)(q 1).
Remarcam faptul ca d si n sunt relativ prime. Perechea (e, n) constituie cheia
publica iar (d, p, q) este cheia privata. Cele doua numere p si q nu mai sunt necesare
la cifrare/descifrare, dar nu vor niciodata facute publice (cunoasterea lor si a
exponentului de cifrare e conduce imediat la determinarea coecientului de descifrare
d, deci sistemul de criptare devine inutil).
Pentru a cifra un mesaj M l vom diviza n blocuri de lungime mai mica n (cu
date binare vom alege cea mai mare putere a lui 2 mai mica decat n). Daca p
si q sunt numere prime de 100 cifre atunci n va avea sub 200 de cifre iar ecare
mesaj bloc M
i
va avea sub 200 de cifre. Daca trebuie cifrate blocuri de lungime xa
217
218 SISTEMUL DE CIFRARE RSA
atunci vom apela la operat ia de padding cu zero. Mesajul cifrat C se va obt ine prin
concatenarea mesajelor C
i
care au aproximativ aceeiasi lungime. Formula de cifrare
va :
C
i
M
e
i
mod n.
Pentru a descifra un mesaj se calculeaza:
M
i
C
d
i
mod n,
deoarece
C
d
i
(M
e
i
)
d
M
ed
i
M
k(p1)(q1)+1
i
M
i
M
k(p1)(q1)
i
M
i
mod n.
Observat ia 22.1.1. Pentru a evita metodele de factorizare cunoscute numerele
p si q trebuie sa e numere prime tari. Un numar prim p se numeste numar prim
tare daca:
i) p 1 are un factor mare r;
ii) p + 1 are un factor mare s;
iii) r 1 are un factor mare t.
Operat ia de semnare a unui mesaj M se realizeaza prin exponent ierea amprentei
H(M) cu ajutorul cheii private: s = H(M)
d
mod n. Vericarea semnaturii se real-
izeaza prin comparat ia lui H(M) cu s
e
mod n.

In cazurile practice valoarea lui e este un numar relativ mic, deci d are o val-
oare mare. Acest lucru conduce la timpi de rulare diferit i ntre operat iile private
(descifrare/semnare) si cele publice(cifrare/vericare semnatura).
Pentru optimizarea calculelor de vericare a semnaturii se poate utiliza lema
chinezeasca a resturilor (CRT), nsa acest lucru induce vulnerabilitat i n mediul de
implementare.
Astfel, daca p > q, sunt precalculate valorile:
dP = (e
1
mod n) mod (p 1),
dQ = (e
1
mod n) mod (q 1),
qInv = q
1
mod p.

In faza de calcul se executa:


m
1
= c
dP
mod p,
m
2
= c
dQ
mod q,
h = qInv(m
1
m
2
) mod p,
m = m
2
+hq.
Cheia privata ce se stocheaza ind (p, q, dP, dQ, qInv).
EXERCIT II REZOLVATE 219
22.2. Exercit ii rezolvate
Exercit iul 22.2.1. Se da numarul n = 36187829 despre care se cunoaste faptul
ca este un produs de doua numere cu valoarea (n) = 36175776. Factorizat i numarul
n.
Rezolvare: Folosim relat ile p+q = n(p1)(q1)+1 si pq =
_
(p +q)
2
4n.
Obt inem p = 5657 si q = 6397.
Exercit iul 22.2.2. Sa se cifreze mesajul M = 3, utilizand sistemul RSA cu
urmatorii parametrii: N = 187 (modulul de cifrare), e = 7 (exponentul de cifrare).
Rezolvare: Criptograma este: C = M
e
= 3
7
= 2187 = 130 mod 187.
Exercit iul 22.2.3. Sa se descifreze mesajul C = 130, utilizand sistemul RSA
cu urmatorii parametrii: N = 187 = 11 17 (modulul de cifrare), e = 7 (exponentul
de cifrare).
Rezolvare: Deoarece se cunoaste factorizarea N = 1117, se poate calcula (N) =
16 10 = 160, ((N)) = 64.
Exponentul de descifrare va :
d = e
((N))1
= 7
63
= (7
9
)
7
= (40353607)
7
= 7
7
= 823543 = 23 mod 160.
Descifrarea mesajului cifrat C va : C
d
= 130
23
= 3 = M mod 187.
Exercit iul 22.2.4. Sa se descifreze, utilizand CRT, mesajul cifrat c = 8363,
pentru cazul n care p = 137, q = 131, n = p q = 17947, e = 3, d = 11787.
Rezolvare:

In faza de precalcul avem:
dP = (e
1
mod n) mod (p 1) = 91,
dQ = (e
1
mod n) mod (q 1) = 87,
qInv = q
1
mod p = 114.
Calculam apoi:
m
1
= c
dP
mod p = 102,
m
2
= c
dQ
mod q = 120,
h = qInv(m
1
m
2
) mod p = 3,
m = m
2
+hq = 513.
220 SISTEMUL DE CIFRARE RSA
22.3. Exercit ii propuse
Exercit iul 22.3.1. Fie numerele prime p = 211 si q = 167. Sa se cifreze mesajul
TEST cu ajutorul algoritmului RSA, utilizand exponentul public e = 2
8
+ 1. Ele-
mentele din mesajul clar se codica conform codului ASCII.
Raspuns: N = 35237, (N) = 34860, d = 23873, mesajul cifrat este: 01154 05746
04357 01154.
Exercit iul 22.3.2. Sa se descifreze mesajul 01154 05746 04357 01154 cu aju-
torul algoritmului RSA (p = 211 si q = 167), utilizand exponentul public e = 2
8
+1.
Elementele din mesajul clar se decodica conform codului ASCII.
Raspuns: N = 35237, (N) = 34860, d = 23873, mesajul clar este TEST.
Exercit iul 22.3.3. Sa se cifreze mesajul M = 146, utilizand sistemul RSA cu
urmatorii parametrii: n = 187 (modulul de cifrare), e = 7 (exponentul de cifrare).
Raspuns: C = 141.
Exercit iul 22.3.4. Sa se descifreze mesajul C = 141, utilizand sistemul RSA
cu urmatorii parametrii: n = 187 (modulul de cifrare), d = 23(exponentul de de-
scifrare).
Raspuns: M = 146.
Exercit iul 22.3.5. Sa se cifreze mesajul M = 9, utilizand sistemul RSA cu
urmatorii parametrii: n = 187 (modulul de cifrare), e = 7 (exponentul de cifrare).
Raspuns: C = 70.
Exercit iul 22.3.6. Sa se descifreze mesajul C = 70, utilizand sistemul RSA
cu urmatorii parametrii: n = 187 (modulul de cifrare), d = 23 (exponentul de
descifrare).
Raspuns: M = 9.
Exercit iul 22.3.7. Sa se cifreze mesajul M = 3, utilizand sistemul RSA cu
urmatorii parametrii: n = 35237 (modulul de cifrare), e = 11 (exponentul de
cifrare).
EXERCIT II PROPUSE 221
Raspuns: C = 962.
Exercit iul 22.3.8. Sa se descifreze mesajul C = 962, utilizand sistemul RSA
cu urmatorii parametrii: n = 35237 (modulul de cifrare), d = 31691 (exponentul de
descifrare).
Raspuns: M = 3.
Exercit iul 22.3.9. Sa se cifreze mesajul M = 5, utilizand sistemul RSA cu
urmatorii parametrii: n = 221 (modulul de cifrare), e = 11 (exponentul de cifrare).
Raspuns: C = 164.
Exercit iul 22.3.10. Sa se descifreze mesajul C = 164, utilizand sistemul RSA
cu urmatorii parametrii: n = 221 = 13 17 (modulul de cifrare), e = 11 (exponentul
de cifrare).
Raspuns: M = 5, d = 35.
Exercit iul 22.3.11. Sa se cifreze mesajul M = 4, utilizand sistemul RSA cu
urmatorii parametrii: N = 209 (modulul de cifrare), e = 11 (exponentul de cifrare).
Rezolvare: Criptograma este: C = M
e
= 4
11
= 92 mod 209.
Exercit iul 22.3.12. Sa se descifreze mesajul C = 92, utilizand sistemul RSA
cu urmatorii parametrii: N = 209 = 11 19 (modulul de cifrare), e = 11 (exponentul
de cifrare).
Rezolvare: Deoarece se cunoaste factorizarea N = 1119, se poate calcula (N) =
18 10 = 180, d = 131, M = 4.
222 SISTEMUL DE CIFRARE RSA
Capitolul 23
SISTEMUL DE CIFRARE
ELGAMAL
23.1. Breviar teoretic
Algoritmul de cifrare ElGamal este denit de un numar prim p si un element
g Z

p
primitiv, numit generator. Pentru cheia privata x Z

p
se calculeaza y =
g
x
mod p, cheia publica ind tripletul (y, g, p).
Pentru a cifra un mesaj M Z
p
se alege aleatoriu k Z
p1
, textul cifrat ind
(y
1
, y
2
) = (g
k
mod p, My
k
mod p).
Pentru a descifra mesajul (y
1
, y
2
) se calculeaza y
2
(y
x
1
)
1
mod p.
23.2. Exercit ii rezolvate
Exercit iul 23.2.1. Sa se cifreze mesajul M = 4 cu ajutorul algoritmului ElGa-
mal cu parametrii p = 17, g = 14, x = 2.
Rezolvare: Cheia publica este (y, g, p) = (14
2
mod 17, 14, 17) = (9, 14, 17), cheia
privata x = 2. Alegem, spre exemplu, k = 7 relativ prim cu 16 = p 1. Obt inem
mesajul cifrat C = (14
7
mod 17, 4 9
7
mod 17) = {6, 8}.
Exercit iul 23.2.2. Sa se descifreze mesajul {6, 8}, stiind ca a fost cifrat cu
ajutorul algoritmului ElGamal cu parametrii p = 17, g = 14, x = 2.
Rezolvare: Cheia publica este {y, g, p} = {9, 14, 17}, cheia privata x = 2. Mesajul
clar se obt ine aplicand formula y
2
y
x
1
mod p = 4.
223
224 SISTEMUL DE CIFRARE ELGAMAL
23.3. Exercit ii propuse
Exercit iul 23.3.1. Sa se cifreze mesajul 5 cu ajutorul algoritmului ElGamal cu
parametrii p = 23, g = 14, x = 2. Valoarea k utilizata pentru cifrare este 7.
Raspuns: Mesajul cifrat este (19, 11).
Exercit iul 23.3.2. Sa se cifreze mesajul 5 cu ajutorul algoritmului ElGamal cu
parametrii p = 23, g = 14, x = 2. Valoarea k utilizata pentru cifrare este 9.
Raspuns: Mesajul cifrat este (21, 20).
Exercit iul 23.3.3. Sa se cifreze mesajul 3 cu ajutorul algoritmului ElGamal cu
parametrii p = 47, g = 14, x = 3. Valoarea k utilizata pentru cifrare este 5.
Raspuns: Mesajul cifrat este (3, 34).
Exercit iul 23.3.4. Sa se cifreze mesajul 8 cu ajutorul algoritmului ElGamal cu
parametrii p = 47, g = 4, x = 2. Valoarea k utilizata pentru cifrare este 3.
Raspuns: Mesajul cifrat este (17, 9).
Exercit iul 23.3.5. Sa se cifreze mesajul 4 cu ajutorul algoritmului ElGamal cu
parametrii p = 23, g = 7, x = 3. Valoarea k utilizata pentru cifrare este 3.
Raspuns: Mesajul cifrat este (21, 14).
Exercit iul 23.3.6. Sa se descifreze mesajul (17, 9) cu ajutorul algoritmului El-
Gamal cu parametrii p = 47, g = 4, x = 2.
Raspuns: Mesajul clar este 8.
Exercit iul 23.3.7. Sa se descifreze mesajul (3, 34) cu ajutorul algoritmului El-
Gamal cu parametrii p = 47, g = 14, x = 3.
Raspuns: Mesajul clar este 3.
Exercit iul 23.3.8. Sa se descifreze mesajul (21, 14) cu ajutorul algoritmului
ElGamal cu parametrii p = 23, g = 7, x = 3.
Raspuns: Mesajul clar este 4.
Capitolul 24
ARITMETICA PE CURBE
ELIPTICE
24.1. Breviar teoretic
Denit ia 24.1.1. O curba eliptica E este constituita din elemente (numite
puncte) de tipul (x, y) ce satisfac ecuat ia:
y
2
x
3
+ax +b mod p
unde a si b sunt constante astfel ncat 4a
3
+ 27b
2
= 0 mod p si p este un numar
prim, mpreuna cu un element singular, notat O si numit punctul de la innit. Acest
punct poate privit ca ind punctul din varful si de la baza oricarei linii verticale.
O curba eliptica E are o structura de grup abelianmpreuna cu operat ia adunare.
Adunarea a doua puncte de pe o curba eliptica este denita n concordant a cu o
mult ime simpla de reguli (vezi gura 24.1).
Fiind date doua puncte pe E, P
1
(x
1
, y
1
) si P
2
(x
2
, y
2
), avem urmatoarele cazuri:
- daca x
2
= x
1
si y
2
= y
1
atunci P
1
+P
2
= O.
- altfel P
1
+P
2
= (x
3
, y
3
), unde:
_
x
3
=
2
x
1
x
2
y
3
= (x
1
x
3
) y
1
cu
=
_

_
y
2
y
1
x
2
x
1
, daca P
1
= P
2
3x
2
1
+a
2y
1
, daca P
1
= P
2
.
225
226 ARITMETICA PE CURBE ELIPTICE
Figura 24.1: Operat ia de adunare pe o curba eliptica.
Observat ia 24.1.1. A nu se confunda punctul la innit O cu perechea (0, 0).
Punctul la innit apart ine tuturor curbelor eliptice, n timp ce punctul (0, 0) este
un element doar pentru curbele eliptice cu parametrul b = 0.
24.2. Exercit ii rezolvate
Exercit iul 24.2.1. Fie curba eliptica y
2
= x
3
+7x +4 denita peste F
71
. Sa se
adune punctele P(15, 17) si Q(43, 24).
Rezolvare:
Coordoantele punctului P +Q = (x
3
, y
3
), sunt date de formulele:
_
x
3
=
2
x
1
x
2
y
3
= (x
1
x
3
) y
1
unde =
y
2
y
1
x
2
x
1
.
EXERCIT II PROPUSE 227
Pentru calculul = 7 (28
1
mod 71), se foloseste algoritmul lui Euclid care
gaseste 33 = 28
1
mod 71, deci = 231.
Atunci x
3
= 231
2
15 43 mod 71 = 53 iar y
3
= 231(15 53) 17 mod 71 = 9.

In concluzie, coordoantele punctului care reprezinta suma celor doua puncte de pe


curba eliptica data sunt (53, 9).
Exercit iul 24.2.2. Fie curba eliptica y
2
= x
3
+x+3 denita peste F
17
. Aratat i
ca punctul (2, 8) este un generator al punctelor de pe curba eliptica.
Rezolvare: Succesiv putem scrie 1P = (2, 8), 2P = (12, 3), 3P = (16, 16), 4P =
(8, 8), 5P = (7, 9), 6P = (6, 15), 7P = (11, 6), 8P = (3, 13), 9P = (3, 4), 10P =
(11, 11), 11P = (6, 2), 12P = (7, 8), 13P = (8, 9), 14P = (16, 1), 15P = (12, 14),
16P = (2, 9), 17P = O.
24.3. Exercit ii propuse
Exercit iul 24.3.1. Fie curba eliptica y
2
= x
3
+2x +3 denita peste F
23
. Sa se
adune punctele P(6, 1) si Q(13, 8).
Raspuns: R(5, 0).
Exercit iul 24.3.2. Fie curba eliptica y
2
= x
3
+7x+4 denita peste F
71
. Se da
punctul P(15, 17). Aat i 2P.
Raspuns: (66, 25).
Exercit iul 24.3.3. Fie curba eliptica y
2
= x
3
+x + 6 denita peste F
11
. Sa se
arate ca punctul (2, 7) este un generator al punctelor de pe curba eliptica.
Raspuns: 1P = (2, 7), 2P = (5, 2), 3P = (8, 3), 4P = (10, 2), 5P = (3, 6),
6P = (7, 9), 7P = (7, 2), 8P = (3, 5), 9P = (10, 9), 10P = (8, 8), 11P = (5, 9),
12P = (2, 4), 13P = O.
Exercit iul 24.3.4. Fie curba eliptica y
2
= x
3
+ 6x + 11 denita peste F
17
. Se
da punctul P(6, 5). Aat i 2P.
Raspuns: (1, 1).
Exercit iul 24.3.5. Fie curba eliptica y
2
= x
3
+x+3 denita peste F
7
. Aratat i
ca punctul (4, 6) este un generator al punctelor de pe curba eliptica.
228 ARITMETICA PE CURBE ELIPTICE
Raspuns: Succesiv obt inem 1P = (4, 6), 2P = (6, 1), 3P = (5, 0), 4P = (6, 6),
5P = (4, 1), 6P = O.
Exercit iul 24.3.6. Fie curba eliptica y
2
= x
3
+ 9 denita peste F
37
. Se da
punctul P(6, 22). Aat i 2P.
Raspuns: (35, 1).
Exercit iul 24.3.7. Fie curba eliptica y
2
= x
3
+ 9 denita peste F
37
. Se dau
punctele P(6, 22) si Q(8, 15). Aat i P +Q.
Raspuns: (26, 11).
Exercit iul 24.3.8. Fie curba eliptica y
2
= x
3
+11x +20 denita peste F
23
. Se
dau punctele P(7, 7) si Q(15, 15). Aat i P +Q.
Raspuns: (2, 21).
Exercit iul 24.3.9. Fie curba eliptica y
2
= x
3
+ 7x + 11 denita peste F
23
. Se
dau punctele P(21, 14) si Q(7, 9). Aat i P +Q.
Raspuns: (22, 7).
Exercit iul 24.3.10. Fie curba eliptica y
2
= x
3
+ 5x + 5 denita peste F
17
. Se
da punctul P(3, 8). Aat i 3P.
Raspuns: (12, 5).
Exercit iul 24.3.11. Fie curba eliptica y
2
= x
3
+3x denita peste F
11
. Aratat i
ca punctele P(0, 0) si Q(1, 2) apart in curbei. Aat i P +Q.
Raspuns: Cele 2 puncte satisfac ecare ecuat ia curbei eliptice. Suma lor este
(3, 5).
Exercit iul 24.3.12. Fie curba eliptica y
2
= x
3
+6x +11 denita peste F
17
. Se
dau punctele P(12, 3) si Q(6, 12). Aat i P +Q.
Raspuns: (14, 0).
Capitolul 25
SISTEMUL DE CIFRARE
ELGAMAL PE CURBE
ELIPTICE
25.1. Breviar teoretic
Algoritmul ElGamal poate extins pe orice grup nit (G, ), n care problema
logaritmului discret este dicila, n particular si pe grupul punctelor de pe o curba
eliptica.
Astfel, e G pentru care problema logaritmului n subgrupul H = {
i
|i 0}
este dicila. Pe baza cheii private x Z, se construieste =
x
, cheia publica ind
{G, , }.
Pentru a cifra un mesaj M se alege aleatoriu k Z
|H|
si se aplica regula de
cifrare: E(M, k) = (
k
, M
k
).
Mesajul clar m se recupereaza din mesajul cifrat (y
1
, y
2
) dupa regula: y
2
(y
x
1
)
1
.

Intr-adevar y
2
(y
x
1
)
1
= M
k
((
k
)
x
)
1
= M
kx
(
kx
)
1
= M.
25.2. Exercit ii rezolvate
Exercit iul 25.2.1. Sa se cifreze mesajul (10, 9) utilizand curba eliptica (pub-
lica) E : y
2
= x
3
+x + 6 pe Z
11
cu ajutorul algoritmului ElGamal.
Rezolvare: Pentru a calcula punctele curbei eliptice se calculeaza valorile z =
x
3
+x +6 mod 11, se vede care din aceste valori sunt reziduri patratice cu ajutorul
teoremei lui Euler (z este reziduu patratic daca si numai daca z
p1
2
1 mod p) si
229
230 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE
apoi se calculeaza radacinile patrate ale acestor reziduri prin formula y = z
p+1
2
mod
p). Punctele curbei eliptice vor : {(2, 7), (2, 4), (3, 5), (3, 6), (5, 2), (5, 9), (7, 2), (7, 9),
(8, 3), (8, 8), (10, 2), (10, 9), O}.
Grupul E este grup ciclic (numarul de elemente este al grupului este numar prim)
si se ia ca generator pentru acesta elementul (public) = (2, 7). Cheia privata de
descifrare, notata prin d, este o valoare ntre 1 si numarul de puncte de pe o curba
eliptica 1. Cheia publica, notata prin , se obt ine din si exponentul secret d prin
formula = d.
Operat ia de cifrare a mesajul M cu ajutorul cheii (secrete) k este:
E(M, k) = (k, M +k).
Operat ia de descifrare pentru a obt ine M este:
D
k
(y
1
, y
2
) = y
2
dy
1
.
Fie d = 3. Se determina = 3(2, 7) = (8, 3).
Considerand valoarea aleatoare k = 4, se obt ine: E(M, k) = (4(2, 7), (10, 9) +
4(8, 3)) = ((10, 2), (10, 9) + (2, 4)) = ((10, 2), (3, 5))
Exercit iul 25.2.2. Sa se descifreze mesajul ((10, 2), (3, 5)) stiind ca a fost cifrat
cu algoritmul ElGamal utilizand curba eliptica(publica) E : y
2
= x
3
+x + 6 pe Z
11
si cheia privata d = 3.
Rezolvare: Se determina mesajul clar ca ind: M = y
2
dy
1
= (3, 5) 3(10, 2) =
(3, 5) (2, 4) = (3, 5) + (2, 7) = (10, 9).
25.3. Exercit ii propuse
Exercit iul 25.3.1. Se considera algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+ x + 6 peste Z
11
. Aratat i ca = (2, 7) este un generator al grupului E.
Se considera cheia privata d = 5. Sa se cifreze mesajul (10, 9) cu valoarea aleatoare
k = 3.
Raspuns: Valoarea cheii publice este = d = (3, 6). Mesajul cifrat este
(k, M +k) = ((8, 3), (10, 9) + (5, 2)) = ((8, 3), (5, 9)).
Exercit iul 25.3.2. Se considera algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+x+6 peste Z
11
. Aratat i ca = (2, 7) este un generator al grupului E. Sa
se descifreze mesajul ((8, 3), (5, 9)) cu ajutorul cheii private d = 5.
EXERCIT II PROPUSE 231
Raspuns: D
k
(y
1
, y
2
) = (y
2
dy
1
) = ((5, 9) 5(8, 3)) = ((5, 9) (5, 2)) = ((5, 9) +
(5, 9)) = (10, 9).
Exercit iul 25.3.3. Se considera algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+ x + 6 peste Z
13
. Aratat i ca = (4, 3) este un generator al grupului E.
Se considera cheia privata d = 3. Sa se cifreze mesajul (3, 7) cu valoarea aleatoare
k = 4.
Raspuns: Valoarea cheii publice este = d = (3, 7). Mesajul cifrat este
(k, M +k) = ((9, 4), (3, 7) + (4, 10)) = ((9, 4), (2, 9)).
Exercit iul 25.3.4. Se considera algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+x+6 peste Z
13
. Aratat i ca = (4, 3) este un generator al grupului E. Sa
se descifreze mesajul ((9, 4), (2, 9)) cu ajutorul cheii private d = 3.
Raspuns: D
k
(y
1
, y
2
) = (y
2
dy
1
) = ((2, 9)3(9, 4)) = ((2, 9)(4, 10)) = ((2, 9)+
(4, 3)) = (3, 7).
Exercit iul 25.3.5. Se considera algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+ x + 6 peste Z
17
. Se alege generatorul subgrupului ciclic = (1, 5) al lui
E. Se considera cheia privata d = 7. Sa se cifreze mesajul (8, 4) utilizand valoarea
aleatoare k = 3.
Raspuns: Valoarea cheii publice este = d = (7, 13). Mesajul cifrat este
(k, M +k) = ((7, 4), (8, 4) + (1, 5)) = ((7, 4), (16, 2)).
Exercit iul 25.3.6. Se considera algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+x + 6 peste Z
17
. Sa se descifreze mesajul ((7, 4), (16, 2)) cu ajutorul cheii
private d = 3.
Raspuns: D
k
(y
1
, y
2
) = (y
2
dy
1
) = ((16, 2) 7(7, 4)) = ((16, 2) (1, 5)) =
((2, 9) + (1, 12)) = (8, 4).
Exercit iul 25.3.7. Se considera algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+2x+6 peste Z
29
. Se alege generatorul subgrupului ciclic = (20, 10) al lui
E. Se considera cheia privata d = 5. Sa se cifreze mesajul (10, 9) utilizand valoarea
aleatoare k = 6.
Raspuns: Valoarea cheii publice este = d = (1, 3). Mesajul cifrat este
(k, M +k) = ((14, 9), (10, 9) + (14, 9)) = ((14, 9), (5, 20)).
232 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE
Exercit iul 25.3.8. Se considera algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+ 2x + 6 peste Z
29
. Sa se descifreze mesajul ((14, 9), (5, 20)) cu ajutorul
cheii private d = 5.
Raspuns: D
k
(y
1
, y
2
) = (y
2
dy
1
) = ((5, 20) 5(14, 9)) = ((5, 20) (14, 9)) =
((5, 20) + (14, 20)) = (10, 9).
Exercit iul 25.3.9. Se considera algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+2x+7 peste Z
17
. Sa se descifreze mesajul ((16, 2), (2, 6)) cu ajutorul cheii
private d = 5.
Raspuns: D
k
(y
1
, y
2
) = (y
2
dy
1
) = ((2, 6) 5(16, 2)) = ((2, 6) (16, 2)) =
((2, 6) + (16, 15)) = (8, 12).
Capitolul 26
SISTEMUL DE CIFRARE
MENEZES-VANSTONE
26.1. Breviar teoretic

In acest sistem de cifrare - de fapt o varianta a lui ElGamal - curba eliptica


este utilizata pentru mascare, textele clare si cele cifrate putand formate din orice
elemente nenule (nu neaparat puncte din E).
Fie E o curba eliptica peste Z
p
, p > 3 numar prim care cont ine un subgrup ciclic
Gn care problema logaritmului discret este dicila. Pe baza cheii private d Z, se
construieste = d, cheia publica ind {E, , }.
Pentru a cifra mesajul m = (m
1
, m
2
) Z

p
Z

p
se alege aleatoriu k si se con-
struieste textul cifrat (y
0
, y
1
, y
2
) dupa regulile:
y
0
= k, (c
1
, c
2
) = k, y
i
= c
i
m
i
, i = 1, 2.
La descifrare, cunoscand (y
0
, y
1
, y
2
) si cheia privata d se determina textul clar
astfel:
(m
1
, m
2
) = (y
1
c
1
1
mod p, y
2
c
1
2
mod p), unde dy
0
= (c
1
, c
2
)
26.2. Exercit ii rezolvate
Exercit iul 26.2.1. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+ x + 6 peste Z
13
. Aratat i ca = (4, 3) este un generator al
grupului E. Se considera cheia privata d = 3. Sa se cifreze mesajul (3, 7) cu valoarea
aleatoare k = 4.
Rezolvare: Curba eliptica are 13 puncte deci grupul E este ciclic si orice element
este generator.
233
234 SISTEMUL DE CIFRARE MENEZES-VANSTONE
Se calculeaza = 3 = 3 (4, 3) = (3, 7)
Cifrarea mesajului (3, 7) cu valoarea aleatoare k = 4 se face dupa urmatoarea
formula e
k
(x, k) = (y
0
, y
1
, y
2
) unde y
0
= k , (c
1
, c
2
) = k , y
i
= c
i
x
i
(modp)
pentru i = 1, 2.
Calculam y
0
= 4 (4, 3) = (9, 4) iar (c
1
, c
2
) = 4 = 12 = (4, 10) deci c
1
= 4 iar
c
2
= 10
Se calculeaza si y
1
= 4 3 mod 13 = 12 si y
2
= 10 7 mod 13 = 5. Rezultatul
cifrarii mesajului (3, 7) cu valoarea aleatoare k = 4 este ((9,4), 12,5).
26.3. Exercit ii propuse
Exercit iul 26.3.1. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+ x + 6 peste Z
13
. Aratat i ca = (4, 3) este un generator al
grupului E. Se considera cheia privata d = 3. Sa se cifreze mesajul (1, 1) cu valoarea
aleatoare k = 2.
Raspuns: = (3, 7), (y
0
, y
1
, y
2
) = ((2, 9), 11, 3).
Exercit iul 26.3.2. Se considera curba eliptica E : y
2
= x
3
+ x + 6 peste Z
13
.
Cate puncte are aceasta curba? Gasit i un generator al punctelor de pe curba eliptica.
Cate elemente se pot cifra prin algoritmul ElGamal? Dar cu ajutorul algoritmului
Menezes-Vanstone?
Raspuns: Curba are 13 puncte. Cum numarul de puncte este prim, grupul E
este ciclic si deci orice punct din E este generator. Folosind sistemul ElGamal se
pot cifra numai punctele de pe curba, deci 13. Cu Menezes-Vanstone se poate cifra
orice punct din Z
13
Z
13
.
Exercit iul 26.3.3. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+5 peste Z
11
. Cunoscand cheia publica (, ) = ((3, 7), (4, 0)),
sa se cifreze mesajul (5, 2) cu valoarea aleatoare k = 7.
Raspuns: (y
0
, y
1
, y
2
) = ((0, 7), 9, 0).
Exercit iul 26.3.4. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+7x+3 peste Z
17
. Cunoscand cheia publica (, ) = ((12, 8), (7, 2)),
sa se cifreze mesajul (14, 7) cu valoarea aleatoare k = 7.
Raspuns: (y
0
, y
1
, y
2
) = ((12, 9), 13, 3).
EXERCIT II PROPUSE 235
Exercit iul 26.3.5. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+3x+2 peste Z
23
. Cunoscand cheia publica (, ) = ((15, 15), (15, 8)),
sa se cifreze mesajul (13, 19) cu valoarea aleatoare k = 2.
Raspuns: (y
0
, y
1
, y
2
) = ((18, 0), 4, 0).
Exercit iul 26.3.6. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+7 peste Z
23
. Cunoscand cheia publica (, ) = ((5, 21), (16, 15)),
sa se cifreze mesajul (8, 10) cu valoarea aleatoare k = 4.
Raspuns: (y
0
, y
1
, y
2
) = ((21, 8), 13, 12).
Exercit iul 26.3.7. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+7 peste Z
23
. Cunoscand cheia publica (, ) = ((5, 21), (16, 15)),
sa se cifreze mesajul (19, 2) cu valoarea aleatoare k = 5.
Raspuns: (y
0
, y
1
, y
2
) = ((15, 13), 5, 16).
Exercit iul 26.3.8. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+5 peste Z
17
. Cunoscand cheia privata d = 3, sa se descifreze
mesajul (y
0
, y
1
, y
2
) = ((1, 12), 2, 10).
Raspuns: (m
1
, m
2
) = (12, 5).
Exercit iul 26.3.9. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+5x+4 peste Z
19
. Cunoscand cheia privata d = 2, sa se descifreze
mesajul (y
0
, y
1
, y
2
) = ((17, 9), 12, 14).
Raspuns: (m
1
, m
2
) = (11, 11).
Exercit iul 26.3.10. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+7 peste Z
23
. Cunoscand cheia privata d = 7, sa se descifreze
mesajul (y
0
, y
1
, y
2
) = ((21, 8), 8, 4).
Raspuns: (m
1
, m
2
) = (12, 11).
236 SISTEMUL DE CIFRARE MENEZES-VANSTONE
Capitolul 27
FUNCTII DE DISPERSIE
27.1. Breviar teoretic
Problematica funct iilor hash ind deosebit de vasta, n cele ce urmeaza ne vom
opri numai asupra aspectelor strict necesare nt elegerii utilizarii acestor funct ii n
cadrul algoritmilor de semnatura digitala.
Denit ia 27.1.1. O funct ie f se numeste funct ie unidirect ionala daca:
a) ind dat x, este usor de calculat f(x);
b) ind dat f(x), este greu de calculat x.
Denit ia 27.1.2. O funct ie f se numeste funct ie unidirect ionala cu trapa (trap-
door) daca:
a) ind dat x, este usor de calculat f(x);
b) ind dat f(x), este greu de calculat x;
c) pe baza unei informat ii secrete y, este usor de calculat x din f(x).
Denit ia 27.1.3. Funct ia hash este o funct ie care se aplica unui sir de lungime
oarecare obt inandu-se un sir de lungime xata (de obicei, mai mica decat lungimea
sirului de intrare).
Denit ia 27.1.4. O funct ie H se numeste funct ie hash unidirect ional a daca:
a) H este funct ie hash;
b) H este funct ie unidirect ionala.
Pentru a putea folosite pentru semnaturi digitale, funct iile hash unidirect ionale
trebuie sa mai ndeplineasca, printre altele una din urmatoarele doua condit ii:
1) oricare ar M dat, este greu de gasit M

astfel ncat H(M

) = H(M);
237
238 FUNCT II DE DISPERSIE
2) este greu de gasit o pereche oarecare M, M

astfel ncat H(M) = H(M

).
Funct iile hash unidirect ionale care ndeplinesc condit ia (1) se numesc funct ii hash
unidirect ionale slabe (sau universale), iar cele care ndeplinesc condit ia (2) se numesc
funct ii hash unidirect ionale tari (sau fara coliziuni).
Prima condit ie este usor de justicat: daca A a semnat mesajul M cu H(M),
iar B obt ine M

astfel ncat H(M

) = H(M), atunci B ar putea pretinde ca A ar


semnat mesajul M

.
A doua condit ie este justicata de existent a atacului birthday, metoda generala
de atac aplicabila oricarei funct ii hash, atac inspirat de paradoxul matematic al zilei
de nastere.
Datorita atacului birthday, pentru o funct ie hash care are la iesire un sir cu o
lungime de m bit i (2
m
posibilitat i) se pot gasi coliziuni generand doar 2
m/2
perechi
de mesaje-valori hash.

In aceste condit ii, algoritmii hash care produc valori hash de 64 bit i se considera
nesiguri deoarece, cu tehnologia actuala, se pot genera 2
64/2
= 2
32
mesaje si deci
este posibila gasirea de mesaje care sa intre n coliziune. De aceea se recomanda ca
valoarea hash sa e de lungime de cel put in 128 bit i.

In cele ce urmeaza vom descrie funct ia de dispersie Chaum -van Heijt-Ptzmann.


Fie p un numar prim mare astfel ca q =
p 1
2
sa e de asemenea prim. Consideram
, Z
p
elemente primitive. Calculul valorii logaritmului discret log

este dicil
din punct de vedere computat ional. Vom deni funct ia de dispersie Chaum -van
Heijt-Ptzmann h : Z
q
Z
q
Z

p
prin
h(x
1
, x
2
) =
x
1

x
2
mod p.
Daca exista o coliziune pentru funct ia Chaum -van Heijt-Ptzmann atunci cal-
culul logaritmului discret log

este usor.
Sa vedem cum anume se poate determina valoarea logaritmului discret log

. Sa
presupunem ca avem coliziunea h(x
1
, x
2
) = h(x
3
, x
4
) cu (x
1
, x
2
) = (x
3
, x
4
). Deci

x
1

x
2
=
x
3

x
4
mod p sau echivalent
x
1
x
3
=
x
4
x
2
mod p. Fie d = (x
4
x
2
, p
1). Deoarece p 1 = 2q iar q este numar prim avem d {1, 2, q, p 1}.
Cazul d = 1. Deoarece (x
4
x
2
, p 1) = 1 exista y = (x
4
x
2
)
1
mod p. Deci:
=
(x
4
x
2
)y
mod p =
(x
1
x
3
)y
mod p.
Deci log

= (x
1
x
3
)(x
4
x
2
)
1
mod (p 1).
Cazul d = 2. Deoarece p 1 = 2q, q numar prim, rezulta (x
4
x
2
, q) = 1. Fie
y = (x
4
x
2
)
1
mod q. Deci, exista k numar ntreg astfel ncat (x
4
x
2
)y = kq +1.
Deoarece
q
= 1 mod p, rezulta:

(x
4
x
2
)y
=
(kq+1)
= (1)
k
mod p = mod p.
EXERCIT II PROPUSE 239
Acest lucru conduce la:

(x
1
x
3
)y
=
(x
4
x
2
)y
mod p = mod p.
Suntem n una din urmatoarele doua situat ii:
log

= (x
1
x
3
)(x
4
x
2
)
1
mod (p 1),
log

= (x
1
x
3
)(x
4
x
2
)
1
+q mod (p 1),
Se verica direct care dintre rezultate este cel corect.
Cazul d = q. Deoarece 0 x
2
q 1 si 0 x
4
q 1 rezulta faptul ca
(q 1) x
4
x
2
q 1. Acest lucru arata faptul ca este imposibil sa avem
(x
4
x
2
, p 1) = q.
Cazul d = p 1. Aceast caz este posibil numai daca x
4
= x
2
, rezulta x
1
= x
3
.
S-a ajuns la (x
1
, x
2
) = (x
3
, x
4
), ceea ce contrazice ipoteza.
27.2. Exercit ii propuse
Exercit iul 27.2.1. Fie f : Z
2
n
Z
2
n
o funct ie hash pentru care problema
CSP
1
este satisfacuta. Denim funct ia g : Z
2
2n
Z
2
n
prin g(x
1
||x
2
) = f(x
1
x
2
).
Aratat i ca g nu satisface problema CSP.
Exercit iul 27.2.2. Fie p = 12347, = 2, = 8461 parametrii pentru funct ia
de dispersie Chaum - van Heijst - Ptzmann. Fiind data coliziunea
5692

144
=

212

4214
mod p, sa se calculeze log

.
Raspuns: log

= 5689.
Exercit iul 27.2.3. Fie p = 15083, = 154, = 2307 parametrii pentru funct ia
de dispersie Chaum - van Heijst - Ptzmann. Fiind data coliziunea
7431

5564
=

1459

954
mod p, sa se calculeze log

.
1
Fiind data o pereche valid a (x, y) este dicil de aat x
1
= x astfel nc at f(x
1
) = f(x).
240 FUNCT II DE DISPERSIE
Capitolul 28
SEMN

ATURA ELGAMAL
28.1. Breviar teoretic
Fie p un numar prim pentru care problema logaritmului discret n Z
p
este dicila
si Z
p

un element primitiv. Cheia publica se construieste din cheia privata a:


=
a
mod p.
Semnatura mesajului x, calculata cu ajutorul valorii aleatoare (secrete) k Z
p1
,
este denita ca ind (, ) unde:
=
k
mod p si = (H(x) a)k
1
mod (p 1),
H() ind o funct ie hash (H(x) = x daca nu este specicata funct ia hash).
Semnatura (, ) a mesajului x este vericata daca are loc:

=
H(x)
mod p.
28.2. Exercit ii rezolvate
Exercit iul 28.2.1. Sa se semneze mesajul x = 101 cu ajutorul algoritmului
ElGamal specicat de parametrii urmatori: p = 467, = 2, cheia privata a = 127,
alegand valoarea k = 213.
Rezolvare: Se calculeaza =
a
mod p = 2
127
mod 467 = 132
Semnatura mesajului x = 101 cu k = 213 (de remarcat faptul ca (213, 466) = 1
si 213
1
mod 466 = 431) este:
=
k
mod p = 2
213
mod 467 = 29 si = (101 127 29) 431 mod 466 = 16.
241
242 SEMN

ATURA ELGAMAL
28.3. Exercit ii propuse
Exercit iul 28.3.1. Sa se semneze mesajul x = 100 cu ajutorul algoritmului
ElGamal specicat de parametrii urmatori: p = 163, = 2, cheia privata a = 127,
alegand valoarea k = 215.
Raspuns: Semnatura mesajului este (, ) = (52, 24).
Exercit iul 28.3.2. Sa se semneze mesajul x = 102 cu ajutorul algoritmului
ElGamal specicat de parametrii urmatori: p = 467, = 2, cheia privata a = 127,
alegand valoarea k = 213.
Raspuns: Semnatura mesajului este (, ) = (29, 447).
Exercit iul 28.3.3. Sa se semneze mesajul x = 57 cu ajutorul algoritmului El-
Gamal specicat de parametrii urmatori: p = 97, = 3, cheia privata a = 27,
alegand valoarea k = 37.
Raspuns: Semnatura mesajului este (, ) = (66, 39).
Exercit iul 28.3.4. Sa se semneze mesajul x = 29 cu ajutorul algoritmului El-
Gamal specicat de parametrii urmatori: p = 127, = 5, cheia privata a = 13,
alegand valoarea k = 19.
Raspuns: Semnatura mesajului este (, ) = (66, 89).
Exercit iul 28.3.5. Sa se semneze mesajul x = 78 cu ajutorul algoritmului El-
Gamal specicat de parametrii urmatori: p = 131, = 7, cheia privata a = 19,
alegand valoarea k = 17.
Raspuns: Semnatura mesajului este (, ) = (3, 93).
Exercit iul 28.3.6. Mesajul x = 57 a fost semnat cu ajutorul algoritmului El-
Gamal specicat de parametrii urmatori: p = 97, = 3, = 70, obt inandu-se
semnatura (, ) = (66, 39). Este aceasta o semnatura valida?
Raspuns: Semnatura este valida deoarece se satisface relat ia de vericare

mod
p =
x
mod p = 89.
EXERCIT II PROPUSE 243
Exercit iul 28.3.7. Mesajul x = 34 a fost semnat cu ajutorul algoritmului El-
Gamal specicat de parametrii urmatori: p = 131, = 7, = 16, obt inandu-se
semnatura (, ) = (3, 110). Este aceasta o semnatura valida?
Raspuns: Semnatura nu este valida deoarece nu se satisface relat ia de vericare

mod p = 4;
x
mod p = 9.
Exercit iul 28.3.8. Mesajul x = 78 a fost semnat cu ajutorul algoritmului El-
Gamal specicat de parametrii urmatori: p = 131, = 7, = 16, obt inandu-se
semnatura (, ) = (3, 93). Este aceasta o semnatura valida?
Raspuns: Semnatura este valida deoarece se satisface relat ia de vericare

mod
p =
x
mod p = 61.
244 SEMN

ATURA ELGAMAL
Capitolul 29
SEMN

ATURA DSA/ECDSA
29.1. Breviar teoretic
Fie p un numar prim de 512 bit i si q un factor prim de 160 bit i ai lui p 1 si
Z
p

o radacina primitiva de ordin q a unitat ii.


Cheia publica se construieste din cheia privata a: =
a
mod p. Semnatura
mesajului x, calculata cu ajutorul valorii aleatoare (secrete) k Z

q
, este denita ca
ind (, ) unde:
(, ) = ((
k
mod p) mod q, (H(x) +a)k
1
mod q),
H() ind o funct ie hash (H(x) = x daca nu este specicata funct ia hash).
Semnatura (, ) a mesajului x este vericat a daca are loc urmatoarea egalitate,
unde e
1
= H(x)
1
mod q si e
2
=
1
mod q:
(
e
1

e
2
mod p) mod q = .
O varianta a DSA-ului este reprezentata de extensia acesteia pe curbele eliptice
(ECDSA).

In aceasta situat ie se lucreaza pe curba eliptica E peste Z
q
. Elementele
necesare algoritmului sunt:
G(x
G
, y
G
) generatorul punctelor de pe curba eliptica;
n numarul elementelor de pe curba eliptica (sau ordinul lui G daca G nu este
generator);
L
n
numarul de bit i ai lui n;
d
A
cheia privata,d
A
[1, n];
Q
A
= d
A
G cheia publica.

In contexul celor de mai sus, algoritmul ECDSA este urmatorul:


PASUL 1. Se calculeaza e = H(M). Fie z cei cei mai semnicativi L
n
bit i ai
lui e.
PASUL 2. Se alege valoarea aleatoare
1
k in intervalul [1, n 1].
1
valoarea k se numeste cheie efemera.
245
246 SEMN

ATURA DSA/ECDSA
PASUL 3. r = x
1
mod n, unde (x
1
, y
1
) = kG. Daca r = 0 atunci revenim la
PASUL 2.
PASUL 4. s = k
1
(z +rd
A
) mod n. Daca r = 0 atunci revenim la PASUL 2.
PASUL 5. Semnatura este (r, s).
Vericarea semnaturii ECDSA (r, s se realizeaza dupa urmatorul algoritm.
PASUL 1. Daca r, s / [1, n] semnatura este invalida.
PASUL 2. Fie e = H(M), z cei mai semnicativi L
n
bit i ai lui e.
PASUL 3. Se calculeaza: w = s
1
mod n.
PASUL 4. Se calculeaza: u
1
= zw mod n si u
2
= rw mod n.
PASUL 5. Fie (x
1
, y
1
) = u
1
G+u
2
Q
A
.
PASUL 6. Semnatura este valida daca si numai daca r = x
1
mod n.
29.2. Exercit ii rezolvate
Exercit iul 29.2.1. Sa se semneze mesajul x = 100 cu ajutorul algoritmului
DSA specicat de parametrii urmatori: p = 7879, q = 101, = 170, valoarea
aleatoare utilizata k = 50, cheia secreta ind a = 75. Vericat i rezultatul obt inut.
Rezolvare: Se calculeaza:
= (
k
mod p) mod q = (170
50
mod 7879) mod 101 = 2518 mod 101 = 94.
= (x + a)k
1
mod q = (100 + 75 94)50
1
mod 101 = 7150 50
1
mod 101 =
7150 99 mod 101 = 42.
S-a folosit 50
1
(mod101) = 2 mod 101 = 99 (indca 101 = 50 2 + 1).
Vericare:
=
a
mod p = 170
75
mod 7879 = 4567.
e
1
= x
1
mod q = 100 42
1
mod 101 = 100 89 mod 101 = 12.
e
2
=
1
mod q = 94 42
1
mod 101 = 94 89 mod 101 = 84.
Se obt ine:
(
e
1

e
2
mod p) mod q = (170
12
4567
84
mod 7879) mod 101 = 2518 mod 101 =
94 = .
29.3. Exercit ii propuse
Exercit iul 29.3.1. Sa se semneze mesajul x = 101 cu ajutorul algoritmului
DSA specicat de parametrii urmatori: p = 7879, q = 101, = 170, valoarea
aleatoare utilizata k = 50, cheia secreta ind a = 75. Vericat i rezultatul obt inut.
Raspuns: Semnatura mesajului este (, ) = (94, 40). Cheia publica este =
4567.
EXERCIT II PROPUSE 247
Exercit iul 29.3.2. Sa se semneze mesajul x = 102 cu ajutorul algoritmului
DSA specicat de parametrii urmatori: p = 7879, q = 101, = 170, valoarea
aleatoare utilizata k = 50, cheia secreta ind a = 75. Vericat i rezultatul obt inut.
Raspuns: Semnatura mesajului este (, ) = (94, 38). Cheia publica este =
4567.
Exercit iul 29.3.3. Sa se semneze mesajul x = 75 cu ajutorul algoritmului DSA
specicat de parametrii urmatori: p = 131, q = 13, = 7, a = 3, valoarea aleatoare
utilizata k = 11. Vericat i rezultatul obt inut.
Raspuns: Semnatura mesajului este (, ) = (10, 6). Totusi, semnatura nu se
verica pentru ca ord() = 65 si nu q = 13.

In concluzie, algoritmul DSA este setat
impropriu.
Exercit iul 29.3.4. Mesajul x = 502 a fost semnat cu ajutorul algoritmului
DSA specicat de parametrii urmatori: p = 617, q = 11, = 113, = 489, valoarea
aleatoare utilizata k = 21 si s-a obt inut semnatura (, ) = (3, 10). Este aceasta
semnatura valida?
Raspuns: Semnatura este valida deoarece se satisface relat ia de vericare
(
e
1

e
2
mod p) mod q = = 3.
Exercit iul 29.3.5. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA
specicat de parametrii urmatori: p = 7879, q = 101, = 170, = 4567, valoarea
aleatoare utilizata k = 50 si s-a obt inut semnatura (, ) = (94, 78). Este aceasta
semnatura valida?
Raspuns: Semnatura nu este valida deoarece nu se satisface relat ia de vericare
(
e
1

e
2
mod p) mod q = .
Exercit iul 29.3.6. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA
specicat de parametrii urmatori: p = 7879, q = 101, = 170, = 4567, valoarea
aleatoare utilizata k = 50 si s-a obt inut semnatura (, ) = (94, 44). Este aceasta
semnatura valida?
Raspuns: Semnatura este valida deoarece se satisface relat ia de vericare
(
e
1

e
2
mod p) mod q = = 94.
248 SEMN

ATURA DSA/ECDSA
Capitolul 30
PROTOCOLUL
DIFFIE-HELLMAN
30.1. Breviar teoretic
Fie p un numar prim, q un divizor prim al lui p 1 si Z

p
, element de ordin
q. Protocolul Die-Hellman (DH), ce returneaza o cheie comuna de sesiune K este
urmatorul:
PASUL 1. A genereraza aleator a Z

q
si trimite lui B valoarea R
A
=
a
(mod
p).
PASUL 2. B genereraza aleator b Z

q
si trimite lui A valoarea R
B
=
b
(mod
p).
PASUL 3. A calculeaza K = K
A,B
= R
B
a
=
ab
.
PASUL 4. B calculeaza K = K
B,A
= R
A
b
=
ab
.
30.2. Exercit ii rezolvate
Exercit iul 30.2.1. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 25307, = 2, a = 2009, b = 2010.
Raspuns: k = 21554.
Rezolvare:
PASUL 1. A trimite lui B valoarea R
A
=
a
(modp) = 2
2009
mod 25307 =
5755.
PASUL 2. B trimite lui A valoarea R
B
=
b
(modp) = 2
2010
mod 25307 =
11510.
249
250 PROTOCOLUL DIFFIE-HELLMAN
PASUL 3. A calculeaza K = K
A,B
= R
B
a
= 11510
2009
mod 25307 = 21554.
PASUL 4. B calculeaza K = K
B,A
= R
A
b
= 5755
2010
mod 25307 = 21554.
30.3. Exercit ii propuse
Exercit iul 30.3.1. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 25307, = 2, a = 3578, b = 19956.
Raspuns: k = 3694.
Exercit iul 30.3.2. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 25307, = 2, a = 1989, b = 2009.
Raspuns: k = 12034.
Exercit iul 30.3.3. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 17, = 7, a = 9, b = 3.
Raspuns: k = 14.
Exercit iul 30.3.4. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 10163, = 652, a = 6026, b = 3510.
Raspuns: k = 7944.
Exercit iul 30.3.5. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 63299, = 49297, a = 5671, b = 59073.
Raspuns: k = 57286.
Exercit iul 30.3.6. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 1319, = 527, a = 1088, b = 584.
Raspuns: k = 352.
Exercit iul 30.3.7. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 2099, = 1023, a = 1496, b = 648.
Raspuns: k = 612.
EXERCIT II PROPUSE 251
Exercit iul 30.3.8. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 1823, = 776, a = 1515, b = 476.
Raspuns: k = 1555.
Exercit iul 30.3.9. Sa se specice cheia rezultata n urma aplicarii protocolului
Die-Hellman specicat de parametrii: p = 2207, = 371, a = 839, b = 1358.
Raspuns: k = 731.
Exercit iul 30.3.10.

In urma aplicarii protocolului Die-Hellman, una dintre
entitat ile care doresc sa genereze o cheie comun a alege parametrul secret a = 1 (sau
b = 1). Cum poate un atacator determina cheia n acest caz?
252 PROTOCOLUL DIFFIE-HELLMAN
Capitolul 31
PROTOCOLUL BLOM
31.1. Breviar teoretic
Protocolul lui Blom asigura implementarea principiului compartimentarii, ntre
oricare doi participant i, dintr-o mult ime de n utilizatori. Protocolul se bazeaza pe
existent a unei autoritat i de ncredere T. Fie n 3 numarul de utilizatori si p n
un numar prim. Cheia, ce urmeaza a calculata de oricare doi participant i este
un element din Z
p

. Vom nota prin k numarul maxim de intrusi


1
mpotriva carora
poate asigurata protect ia. Vom exemplica protocolul pentru k = 1.
PASUL 0. T face public: numarul prim p si pentru ecare utilizator A un
numar aleator r
A
Z
p
, r
A
= r
B
pentru orice A = B.
PASUL 1. T genereaza aleatoriu trei numere a, b, c Z
p
si formeaza polinomul
2
:
f(X, Y ) = a +b(X +Y ) +cXY mod p.
PASUL 2. Pentru ecare utilizator A, T va construi polinomul:
g
A
(X) = f(X, r
A
) mod p,
pe care l va transmite, cu asigurarea condent ialitat ii, catre A.
PASUL 3. Cheia stabilita de catre A si B va :
K
A,B
= K
B,A
= f(r
A
, r
B
).
1
numit si nivel de compartimentare.
2
pentru k arbitrar polimonul utilizat n cadrul protocolului este f(X, Y ) =

k
i,j=0
a
i,j
X
i
Y
j
mod
p, a
i,j
Z
p
, a
i,j
= a
j,i
pentru orice i, j.
253
254 PROTOCOLUL BLOM
Observat ia 31.1.1. Protocolul Blom, pentru k = 1, este necondit ionat sigur
mpotriva oricarui atac individual. Cu alte cuvinte, orice alt participant C nu poate
determina, din valorile publice r
A
si r
B
, cheia K
A,B
. Acesta este utilizat n schema
de protect ie, utilizata de HDCP (High-bandwidth Digital Content Protection), n
generarea cheilor dintre sursa si destinat ie (playere HD DVD sau televiziunea HD).
31.2. Exercit ii rezolvate
Exercit iul 31.2.1. Specicat i elementele de securitate pentru protocolul Blom,
ce asigura compartimentarea ntre trei utilizatori A, B, C, caracterizat de p = 17,
k = 1, cheile publice ale acestora ind r
A
= 12, r
B
= 7 si r
C
= 1. Valorile alese de
catre T ind a = 8, b = 7, c = 2.
Rezolvare: T construieste polinomul:
f(X, Y ) = 8 + 7(X +Y ) + 2XY.
Polinoamele specice ecarui utilizator sunt:
g
A
(X) = 7 + 14X, g
B
(X) = 6 + 4X, g
C
(X) = 15 + 9X.
Cheile de compartimentare (secrete) sunt:
K
A,B
= 3, K
A,C
= 4, K
B,C
= 10.
A poate calcula K
AB
prin:
g
A
(r
B
) = 7 + 14 7 mod 17 = 3.
B poate calcula K
BA
prin:
g
B
(r
A
) = 6 + 4 12 mod 17 = 3.
31.3. Exercit ii propuse
Exercit iul 31.3.1. Specicat i cheile rezultate n urma protocolului Blom, ce
asigura compartimentareantre trei utilizatori A, B, C, caracterizat de p = 29, k = 1,
cheile publice ale acestora ind r
A
= 1, r
B
= 2 si r
C
= 3. Valorile alese de catre T
ind a = 13, b = 11, c = 17.
EXERCIT II PROPUSE 255
Raspuns. Polinoamele secrete sunt g
A
(X) = 324+28X, g
B
(X) = 6+16X, g
C
(X) =
17 + 4X. Cheile rezultate sunt K
AB
= 22, K
AC
= 21, K
BC
= 25.
Exercit iul 31.3.2. Specicat i cheile rezultate n urma protocolului Blom, ce
asigura compartimentareantre trei utilizatori A, B, C, caracterizat de p = 29, k = 1,
cheile publice ale acestora ind r
A
= 13, r
B
= 11 si r
C
= 17. Valorile alese de catre
T ind a = 1, b = 2, c = 3.
Raspuns. Polinoamele secrete sunt g
A
(X) = 27+12X, g
B
(X) = 23+6X, g
C
(X) =
6 + 24X. Cheile rezultate sunt K
AB
= 14, K
AC
= 28, K
BC
= 9.
256 PROTOCOLUL BLOM
Capitolul 32
PROTOCOLUL SHAMIR DE
PARTAJARE A SECRETELOR
32.1. Breviar teoretic
Schema lui Shamir si propune sa partajeze cheia de cifrare S K = Z
q
la o
mult ime de n participant i (q n + 1) astfel ncat pentru reconstruct ia cheii sa e
nevoie de cooperarea a cel put in k dintre participant i.
Init ializare. n numarul participant ilor, k pragul minim de reconstruct ie al se-
cretului S. Se aleg n valori (publice) distincte x
1
, . . . x
n
si se distribuie ecarui par-
ticipant i valoarea x
i
.
PASUL 1. Se alege de catre autoritatea de distribut ie a secretului TP (Trusted
Party) un numar prim q sucient de mare (q n + 1). Se genereaza aleatoriu, de
catre autoritatea de distribut ie a secretului TP, un polinom de grad k 1:
P(X) =
k1

i=1
a
i
X
i
+S mod q.
PASUL 2 (distribut ia secretului). Autoritatea TP distribuie participantului i
valoarea y
i
= P(X
i
), i = 1, . . . , n.
PASUL 3 (recuperarea secretului). Cu informat ia oferita de k participant i se
poate recupera, prin rezolvarea unui sistem liniar de k ecuat ii, valoarea S. Daca
numarul participant ilor care pun la dispozit ie informat ia y
i
este mai mic decat k,
atunci nu se poate determina S.
257
258 PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR
32.2. Exercit ii rezolvate
Exercit iul 32.2.1. Sa se partajaze secretul S = 13, pentru o schema majoritara
k = 3 din n = 5 participant i, utilizand algoritmul lui Shamir specicat de q = 17,
valorile publice x
i
= i, i = 1, . . . , 5 si valorile aleatoare a[1] = 10, a[2] = 2.
Rezolvare: Se obt ine polinomul P(X) = a
2
X
2
+a
1
X +S = 2X
2
+ 10X + 13.
Secretul se partajeaza n:
y
1
= P(1) = (2 + 10 + 13) mod 17 = 8;
y
2
= P(2) = (8 + 20 + 13) mod 17 = 7;
y
3
= P(3) = (18 + 30 + 13) mod 17 = 10;
y
4
= P(4) = (32 + 40 + 13) mod 17 = 0;
y
5
= P(5) = (50 + 50 + 13) mod 17 = 11.
32.3. Exercit ii propuse
Exercit iul 32.3.1. Sa se partajaze secretul S = 4, pentru o schema majoritara
k = 3 din n = 5 participant i, utilizand algoritmul lui Shamir specicat de q = 17,
valorile publice x
i
= i, i = 1, . . . , 5 si valorile aleatoare a[1] = 10, a[2] = 2.
Raspuns: {16, 15, 1, 8, 2}.
Exercit iul 32.3.2. Sa se partajaze secretul S = 0, pentru o schema majoritara
k = 3 din n = 5 participant i, utilizand algoritmul lui Shamir specicat de q = 17,
valorile publice x
i
= i, i = 1, . . . , 5 si valorile aleatoare a[1] = 10, a[2] = 2.
Raspuns: {12, 11, 14, 4, 15}.
Exercit iul 32.3.3. Sa se reconstituie secretul S, din valorile {12, 4, 15}, stiind
ca acestea au fost obt inute cu ajutorul schemei majoritare (5, 3) a lui Shamir speci-
cata de q = 17 si valorile publice {1, 4, 5}.
Raspuns: S = 0.
Exercit iul 32.3.4. Sa se reconstituie secretul S, din valorile {1, 8, 2}, stiind ca
acestea au fost obt inute cu ajutorul schemei majoritare (5, 3) a lui Shamir specicata
de q = 17 si valorile publice {3, 4, 5}.
Raspuns: S = 4.
EXERCIT II PROPUSE 259
Exercit iul 32.3.5. Sa se reconstituie secretul S, din valorile {10, 0, 11}, stiind
ca acestea au fost obt inute cu ajutorul schemei majoritare (5, 3) a lui Shamir speci-
cata de q = 17 si valorile publice {3, 4, 5}.
Raspuns: S = 13.
Exercit iul 32.3.6. Ce se ntampla daca n protocolul lui Shamir se renunt a la
condit ia de primalitate asupra lui q?
260 PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR
Capitolul 33
SCHEME DE PARTAJARE A
SECRETELOR BAZATE PE
CRT
33.1. Breviar teoretic
Una dintre primele scheme de partajare a secretelor, bazate pe CRT, este schema
Mignotte. Aceasta presupune faptul ca sirul p
1
< p
2
< . . . < p
n
este un sir Mignotte:
k2

i=0
p
ni
<
k

i=0
p
i
.
Secretul S, ce trebuie partajat, trebuie sa apart ina intervalului
1
(, ), unde
=

k
i=0
p
i
si =

k2
i=0
p
ni
. Valorile ce se distribuie ecaruia dintra cei n
participant i sunt S mod p
i
, i = 1, . . . , n. Recuperarea secretului se realizeaza, de
catre k participant i, prin rezolvarea, cu ajutorul CRT, a sistemului S = S
i
j
mod p
i
,
j = 1, . . . , k.
33.2. Exercit ii rezolvate
Exercit iul 33.2.1. Fie sirul {5, 7, 9, 11, 13} o secvent a (5, 3) Mignotte , =
11 13, = 5 7 9, secretul S = 235 (, ). Care sunt secretele ce sunt distribuite
celor cinci participant i?
1
Daca lungimea intervalului este mica, atunci schema nu este practica, existand posibilitatea ca
printre valorile distribuite sa este coliziuni.
261
262 SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT
Rezolvare: S
1
= S mod 5 = 0, S
2
= S mod 7 = 5, S
3
= S mod 9 = 6, S
4
=
S mod 11 = 10, S
5
= S mod 13 = 12. Spre exemplu, grupul {P
1
, P
3
, P
4
} trebuie sa
rezolve problema:
_
_
_
x 0 mod 5
x 6 mod 9
x 10 mod 11
ce are solut ie unica 285.
Capitolul 34
CANALE SUBLIMINALE
34.1. Breviar teoretic

In sistemul de autenticare ElGamal, A alege un numar prim mare q si un element


primitiv Z
q
. Valorile q si sunt publice. Printr-un canal sigur, A si B stabilesc
un numar p Z
q
. Protocolul prin care A transmite lui B mesajul subliminal y Z
q
prin utilizarea textului x este urmatorul:
PASUL 0. A calculeaza =
y
mod q.
PASUL 1. Se determina ca solut ie a ecuat iei x = p +y mod (q 1).
PASUL 2. A trimite lui B tripletul (x, , ).
PASUL 3. B calculeaza a = (
p
)

mod q.
PASUL 4. Daca a =
x
mod q atunci B decide ca mesajul este autentic.
PASUL 5. B recupereaza mesajul subliminal: y = (x p )
1
mod (q 1).
34.2. Exercit ii rezolvate
Exercit iul 34.2.1. Se considera canalul subliminal ElGamal dat de q = 11 si
= 2. Sa presupunem ca se doreste transmiterea mesajului y = 9 folosind cheia
secreta k = 0 si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul
de comunicat ie?
Rezolvare:
PASUL 0. A calculeaza =
y
mod q = 2
9
mod 11 = 6.
PASUL 1. Se determina ca solut ie a ecuat iei x = p + y mod (q 1),
echivalent cu 5 = 0+9 mod 10 de unde rezulta = 59
1
mod 10 = 59 mod 10 = 5.
PASUL 2. A trimite lui B tripletul (x, , ) = (5, 6, 5).
263
264 CANALE SUBLIMINALE
34.3. Exercit ii propuse
Exercit iul 34.3.1. Se considera canalul subliminal ElGamal dat de q = 11 si
= 2. Sa presupunem ca se doreste transmiterea mesajului y = 9 folosind cheia
secreta k = 8 si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul
de comunicat ie?
Raspuns: {5, 6, 3}.
Exercit iul 34.3.2. Se considera canalul subliminal ElGamal dat de q = 11 si
= 2. Sa presupunem ca se doreste transmiterea mesajului y = 1 folosind cheia
secreta k = 8 si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul
de comunicat ie?
Raspuns: {5, 2, 9}.
Exercit iul 34.3.3. Se considera canalul subliminal ElGamal dat de q = 11,
= 2 si cheia secreta k = 8. Se recept ioneaza mesajul {5, 6, 3}. Acesta cont ine
mesaje ascunse?
Raspuns: Mesajul recept ionat este autentic, mesajul subliminal ind y = 9.
Exercit iul 34.3.4. Se considera canalul subliminal ElGamal dat de q = 11,
= 2 si cheia secreta k = 8. Se recept ioneaza mesajul {5, 6, 2}. Acesta cont ine
mesaje ascunse?
Raspuns: Mesajul recept ionat nu este autentic.
Exercit iul 34.3.5. Se considera canalul subliminal ElGamal dat de q = 11,
= 2 si cheia secreta k = 8. Se recept ioneaza mesajul {5, 2, 9}. Acesta cont ine
mesaje ascunse?
Raspuns: Mesajul recept ionat este autentic, mesajul subliminal ind y = 1.
Exercit iul 34.3.6. Se considera canalul subliminal ElGamal dat de q = 11,
= 2 si cheia secreta k = 0. Se recept ioneaza mesajul {5, 6, 5}. Acesta cont ine
mesaje ascunse?
Raspuns: Mesajul recept ionat este autentic, se ajunge la rezolvarea urmatoarei
ecuat ii 5 = 5y mod 10 ce nu are solut ie unica, vericarea autenticitat ii se face prin
EXERCIT II PROPUSE 265
repetarea procedeului de construct ie a mesajului ce se transmite. Se obt ine mesajul
ascuns y = 9.
Exercit iul 34.3.7.

In cadrul protocolui ElGamal, de transmitere a mesajelor
subliminale, autenticatorul obt inut nu este relativ prim cu q 1. Cum se rezolva
aceasta spet a?
266 CANALE SUBLIMINALE
Capitolul 35
PRINCIPII CRIPTOGRAFICE
Exercit iul 1. Metoda one-time pad (OTP) cifreaza un mesaj m prin aplicarea
operat iei XOR cu o cheie secreta k. Avand n vedere ca o cheie buna are, statistic,
jumatate din bit i zero si ca operat ia XOR cu zero nu modica nimic, rezulta ca
metoda OTP lasa jumatate din mesaj n clar. Cu alte cuvinte, prin simpla observare
a unui text cifrat cu aceasta metoda, un atacator cunoaste jumatate din bit ii textului
clar. Acest lucru nseamna, de fapt, ca metoda OTP este una foarte slaba? Cum
poate considerat perfect un cifru bloc care cifreaza numai jumatate din textul
clar?
Exercit iul 2. Pentru vericarea semnaturii ElGamal este necesara efectuarea ope-
rat iei a
x
b
y
mod p unde a, b sunt xate iar x, y sunt variabile. Arat i ca numarul de
nmult iri necesare pentru efectuarea acestui calcul este mai mic decat numarul de
operat ii necesare pentru a calcula a
x
b
y
mod p prin doua exponent ieri succesive.
Exercit iul 3. Consideram doua numere prime p si q. Fie i
p
= p
1
mod q si i
q
=
q
1
mod p iar n = p q. Care este valoarea rezultata n urma operat iei q i
q
+p i
p
?
Putet i explica cum poate folosita aceasta valoare pentru a reduce stocarea cheii
secrete la implementarea RSA CRT?
Exercit iul 4. Se doreste semnarea a doua mesaje cu algoritmul de semnatura El
Gamal. Cum putem calcula valorile g
k
1
si g
k
2
pentru a produce semnaturile ntr-un
timp mai scurt decat cel necesar pentru a calcula doua semnaturi secvent iale?
Exercit iul 5. Consideram protocolul Fiat-Shamir unde secretul s este ales astfel
ncat ncat vs
2
= 1 mod n, v ind cheia publica. Protocolul este dupa cum urmeza:
267
268 PRINCIPII CRIPTOGRAFICE
Alice alege un r aleator si i trimite lui Bob x = r
2
mod n;
Bob raspunde cu un bit aleator e;
Alice raspunde cu y = s
e
r mod n;
Bob verica daca y
2
= v
e
x mod n.
Aratat i ca valorile rezultate n urma protocolului, adica {x, r, y}, denesc o
distribut ie ce poate simulata fara a-l folosi pe s. Explicat i de ce acest lucru
asigura protocolului o securitate foarte buna.
Exercit iul 6. Se da o cutie neagra care ruleaza algoritmul AES (12 runde pentru
o cheie de 192 bit i); cutia cont ine o cheie necunoscuta k si accepta ca parametru
un ntreg r a carui valoare poate setata la 12, 11 sau 10 de catre utilizator. Vi se
permite sa introducet i n cutie texte clare dupa cum dorit i. Cum at i proceda pentru
a ataca aceasta implementare?
Exercit iul 7. Un administrator de sistem are o cheie de 100 de bit i pe care doreste
sa o mparta celor doi utilizatori n care are ncredere n mod egal. El doreste ca
accesul la informat ie sa e posibila numai cand cei doi coopereaza. Cati bit i din
cheie ar trebui sa dea ecaruia din cei doi utilizatori?
Exercit iul 8. Pentru a grabi vericarea semnaturilor s
i
de tip RSA a mesajelor
m
i
, se foloseste urmatoarea idee: se verica daca (

s
i
)
e
=

hash(m
i
) mod n unde
hash reprezinta full domain hash - o schema de semnatura bazata pe RSA care
mai ntai aplica o funct ie hash si apoi semnatura RSA. Aratat i ca aceasta idee nu
este sigura pentru un exponent e mic si propunet i o contramasura.
Exercit iul 9. De ce urmatorul context este nesigur? O autoritate de ncredere
genereaza un modul RSAn a carui factorizare ramane secreta. Autoritatea furnizeaza
ecarui utilizator din sistem o pereche (e
i
, d
i
) asa ncat e
i
d
i
= 1 mod (n) unde
i = j d
i
= d
j
.
Exercit iul 10. Sa presupunem ca cineva trimite mesaje cifrate utilizand DES n
modul de operare OFB cu o valoare init iala secreta (xata) IV .
1) Aratat i cum poate efectuat un atac cu text clar pentru a decripta mesajele
transmise?
2) Este mai bun modul de operare CFB?
3) Dar modul de operare CBC?
269
Exercit iul 11. Dupa ce a studiat protocolul Die-Hellman, un tanar criptograf de-
cide sal implementeze. Pentru a simplica implementarea, el hotaraste sa foloseasca
grupul aditiv (Z
p
, +) n locul grupului multiplicativ (Z

p
, ).

In calitate de criptograf
cu experient a, ce credet i despre acest protocol?
Exercit iul 12. Sa presupunem ca Alice si Bob folosesc chei publice RSA cu acelasi
modul n dar cu exponent i publici diferiti e
1
si e
2
.
1) Aratat i ca Alice poate decripta mesajele trimise lui Bob;
2) Aratat i ca un interceptor pasiv poate decripta mesaje trimise catre Alice si
Bob daca gcd(e
l
, e
2
) = 1.
Exercit iul 13. Presupunem ca n = p q, unde p si q sunt numere prime distincte.
1) Calculat i S = n + 1 (n).
2) Care sunt radacinile ecuat iei x
2
Sx + n? Dat i expresiile acestor radacini si
explicat i cum pot gasite p si q cu ajutorul unui simplu algoritm pentru calculul
radacinilor patrate ntregi?
3) Factorizat i n n urmatoarele doua cazuri:
a) n = 667, (n) = 616;
b) n = 15049, (n) = 14800.
Exercit iul 14. Sa construim un MAC folosind modul CFB de implementare, n
loc de modul CBC: ind date blocurile de text clar
1
, . . . ,
n
, denim vectorul de
int ializare
0
=
1
. Apoi cifram secvent a de blocuri
2
, . . . ,
n
dupa formulele:

i
=
i+1
E(
i1
; K).

In nal, MAC(
1
|| . . .
n
) = E(
i1
; K). Aratat i ca acesta este identic cu CBC
MAC.
Exercit iul 15. Pentru S-boxul S
5
din DES calculat i tendint a variabilei aleatoare:
X
2
Y
1
Y
2
Y
3
Y
4
.
Exercit iul 16.

Intr-un sistem de cifrare simetric, o cheie k este slaba daca e
k
= d
k
.
Determinat i toate cheile slabe ale sistemelor ane peste Z
15
.
270 PRINCIPII CRIPTOGRAFICE
Capitolul 36
ATACURI

IN MEDIUL DE
IMPLEMENTARE
36.1. Breviar teoretic
Atacurile n mediul de implementare presupun o serie de masuratori hardware
asupra modului criptograc:
Atacuri prin masurarea timpului de execut ie. Prin masurarea timpului necesar
efectuarii unor operat ii asupra cheii private, atacatorul poate determina exponent ii
utilizat i n protocolul Die-Hellman, factorul RSA (n special asupra algoritmului
RSA ce foloseste pentru semnatura lema chinezesca a resturilor CRT), precum si o
serie de alte sisteme criptograce cum ar algoritmul de semnatura digitala DSS.
Atacuri prin masurarea puterii consumate. Atacul cu ajutorul analizei simple
a puterii (SPA) consta n masurarea puterii consumate de dispozitiv n timpul
operat iei criptograce. Acest tip de atac se aplica, de regula, dispozitivelor cu
sursa de tensiune exterioara (ca de exemplu smart-cardurile). Consumul de putere
depinde de instruct iunea executata. Astfel, monitorizand consumul de putere, se
poate deduce secvent a de instruct iuni (codul sursa). Daca secvent a de instruct iuni
depinde de lungimea cheii, atunci consumul de putere poate da informat ii despre
cheie.

In majoritatea procesoarelor, patternul puterii consumate de o instruct iune
depinde si de valoarea operanzilor (de exemplu setarea unui bit ntr-un registru
consuma mai multa energie decat stergerea acestuia). Masuratori efectuate asupra
mai multor intrari pot deduce valoarea operandului. Tehnica se numeste analiza
diferent iala a puterii (DPA).
Atacuri cu ajutorul defect iunilor (erorilor) hardware. Echipamentele hardware
pot genera erori (tranziente, latente sau induse) n timpul efectuarii unor operat ii
aritmetice. Prin exploatarea rat ionala a acestor erori se pot recupera cheia privata
271
272 ATACURI

IN MEDIUL DE IMPLEMENTARE
pentru algoritmii de semnatura RSA si Rabin. O serie de protocoale criptograce
cum ar Fiat-Schamir si Schnorr se pot sparge prin folosirea judicioasa a rezultatelor
acestor erori.
Analiza diferent iala a defect iunilor. Analiza diferent ial a a defect iunilor (DFA)
este o schema ce se utilizeaza pentru recuperarea cheilor secrete ale unui sistem crip-
tograc dintr-un dispozitiv HSM (Hardware Security Module) securizat zic. Mod-
elul de defect este acela al defectelor tranziente (aleatoare) si al defectelor induse.
Metoda foloseste la identicarea cheilor n cazul utilizarii unor cifruri cunoscute (de
exemplu DES) si/sau a unor cifruri cu algoritm necunoscut sau la reconstruct ia
algoritmului (cu o structura cunoscuta).
36.2. Exercit ii propuse
Exercit iul 36.2.1. Aratat i ca tehnica DPA poate accelerata folosind un com-
promis spat iu-timp.
Rezolvare: Facet i referire la articolul Computational Improvements to Dieren-
tial Side Channel Analysis, NATO Advanced Research Workshop on Security and
Embedded Systems, August 2005.
Exercit iul 36.2.2. Descriet i un atac prin masurarea timpului de execut ie asupra
unei proceduri de comparat ie a parolelor.
Exercit iul 36.2.3. Pentru a proteja implementarea RSA de un atac prin ma-
surarea timpului de execut ie, dezvoltatorii decid sa adauge la nalul procedurii un
timp de asteptare de durata aleatoare, cuprins ntre 0 si n tacturi de ceas.

In acest
fel, se va elimina total riscul atacului sau acesta va doar ncetinit?
Exercit iul 36.2.4. Numit i 3 factori care determina forma gracului puterii con-
sumate de un microprocesor.
Rezolvare: Instruct iunea, datele manipulate de instruct iune si adresa instruct iunii.
Capitolul 37
RESURSE SOFTWARE
37.1. CrypTool
CrypTool este un pachet software dedicat simularii si analizei de mecanisme crip-
tologice ntr-un mod ilustrativ. De la rolul init ial de instruire n domeniul secu-
ritat ii personalului diverselor companii private, CrypTool a evoluat ntr-un proiect
educat ional de tip open source cu aplicat ii n domeniul criptograei si majoritatea
domeniilor conexe. Produsul vizeaza n primul rand student ii facultat ilor de matem-
atica si informatica, a rmelor ce activeaza n domeniul securitat ii informat iilor pre-
cum si a dezvoltatorilor de aplicat ii sau utlizatorilor de calculatoare n general care
doresc sa-si dobandeasca bagajul minimal de cunostint e criptograce.

In prezent produsul este gratuit si disponibil n mai multe versiuni, prima dintre
acestea ind CrypTool 1.4.x dezvoltata integral n mediul C++. Aceasta s-a extins
ulterior n alte doua versiuni, nca aate la nivel beta, ce folosesc standarde de
dezvoltare de ultima generat ie aandu-se ntr-o continua actualizare. Astfel, n iulie
2008, s-a lansat CryptTool 2.0 dezvoltat n mediul C#, versiune ce furnizeaza o
paleta mai larga de funct ionalitat i combinata cu o interfat a graca cu facilitat i de tip
drag-and-drop. Lanceputul lui 2010 s-a lansat versiunea JCrypTool dezvoltatan
mediul Java, avantajele acestei versiuni ind ca este independenta de platforma pe
care ruleaza (Windows, Linux, Mac) si ca foloseste din plin puternicul instrument
FlexiProvider prin care se pot ncarca cu usurint a module criptograce n orice
aplicat ie construita peste JCA (Java Cryptography Architecture).
CrypTool a fost dezvoltat n colaborare cu institut ii de nvat amant devenind ast-
fel un soft educat ional si un bun instrument de init iere n domeniul criptologiei,
folosindu-se n prezent cu succes in multe universitat i de prestigiu. Datorita ma-
nipularii facile a mecanismelor criptologice precum si a vizualizarii si prezentarii
ntr-o maniera facila si inedita a rezultatelor, CrypTool poate reprezenta compo-
273
274 RESURSE SOFTWARE
nenta practica a cursurilor teoretice din domeniul criptologiei precum si o metoda
rapida de familiarizare cu componente esent iale ale acestui domeniu.
Produsul acopera ambele ramuri ale criptologiei si anume criptograa si crip-
tanaliza.
Sunt tratate majoritatea aspectelor fundamentale ale criptograei. Astfel, pro-
dusul are implementate facilitat i n cadrul ecarui subdomeniu dupa cum urmeaza:
criptograa clasica: cifrurile Caesar, substitut ie monoalfabetica, substitut ie
omofonica, Vigen`ere, Hill, Playfair, ADFGVX, Addition, XOR, Vernam, Solitaire
etc;
criptograa simetrica moderna: cifrurile IDEA, RC2, RC4, DES, 3DES, DESX
precum si tot ii nalistii cifrului AES si anume MARS, RC6, Rijndael, Serpent and
Twosh;
criptograa asimetrica: RSA;
criptograa hibrida: cifrarea datelor realizadu-se cu algoritmi simetrici (AES),
protect ia cheii de cifrare ind asigurata prin metode asimetrice (RSA);
semnaturi digitale: RSA, DSA, ECDSA (Elliptic Curve Digital Signature Al-
gorithm), Nyberg-Rueppel;
funct ii hash: MD2, MD4, MD5, SHA, SHA-1, SHA-2, RIPEMD-160;
generatoare aleatoare: secude, x
2
mod n, LCG (linear congruence generator),
ICG (inverse congruence generator).

In cadrul criptanalizei se regasesc implementate majoritatea atacurilor standard


dupa cum urmeaza:
atac cu text cifrat: Caesar, Vigen`ere, Addition, XOR, Substitution, Playfair;
atac cu text clar: Hill, Single-column transposition;
atac manual: substitut ie mono alfabetica, Playfair, ADFGVX, Solitaire;
atac prin fort a bruta: pentru tot i algoritmii; se presupune e ca entropia textu-
lui clar este mica sau cheia este part ial cunoscuta sau alfabetului textului clar este
cunoscut;
atacuri asupra RSA: bazate pe factorizare sau tehnici care apeleaza la structurile
algebrice (latice);
atacuri asupra sistemelor hibride: atacuri asupra RSA sau AES(side channels
attacks);
atacuri asupra semnaturilor digitale: RSA prin factorizare; viabil pana la
lungime de 250 bit i (adica 75 cifre);
atacuri asupra funct iilor hash: generare coliziuni texte ASCII cu paradoxul
zilelor de nastere (pana la 40 bit i);
analiza aleatorism: bateria de teste FIPS-PUB-140-1, periodicitate, Vitany,
entropie, histograme, autocorelat ii, testul de compresie ZIP etc.

In sprijinul utilizatorilor, CrypTool are implementate o serie de demo-uri si


OPENSSL 275
animat ii prin care sunt exemplicate diverse facilitat i pe care produsul le ofera
folosindu-se primitive criptograce suportate si implementate n aplicat ie ca de ex-
emplu Caesar, Vigen`ere, Nihilist, DES (toate patru cu ANIMAL), Enigma (Flash),
Rijdael/AES (Flash and Java), criptare hibrida si decriptare (AES-RSA si AES-
ECC), generare si vericare de semnaturi digitale, protocolul de schimb de chei
Die-Hellman, secret sharing (CRT sau Shamir), metoda challenge-response (aut-
entiicare), atacuri tip side-channel, securizarea e-mail-ului prin protocolul S/MIME
(Java si Flash), prezentari grace 3D pentru date (pseudo)aleatoare, sensibilitatea
funct iilor hash privind modicari ale textului clar, teoria numerelor si cripto sisteme
RSA (Authorware).
CrypTool cont ine si un modul educat ional interactiv dedicat aplicat iilor crip-
tograce ce necesita aspecte elementare de teoria numerelor denumit NT. Acest
modul introduce utilizatorul n probleme elementare de teoria numerelor precum
algoritmul lui Euclid pentru gasirea celui mai mare divizor comun, testul Fermat
pentru primalitate, factorizarea Fermat, factorizarea Pollard Rho si altele.
Un alt avantaj al produslui CrypTool l reprezinta existent a unui meniu de doc-
umentare consistent si o extindere online a acestuia cont inand n plus explicat ii
privind not iuni generale de criptograe, o cronologie privind dezvoltarea domeniu-
lui, exemple de utilizare a facilitat ilor aplicat iei, index sortat pe topicuri criptograce
si lista de referint e.
Faptul ca pachetul software este open source, ca acopera aspecte legate atat
de criptograa clasica cat si cea moderna, a modalitat ilor multiple de simulare si
vizualizare originale, precum si a modului facil de aplicare si analiza a mecanis-
melor criptograce ne conduc la concluzia ca pachetul CrypTool reprezinta atat o
modalitate rapida de init iere n domeniul criptograei cat si un instrument de lucru
puternic pentru specialisti n vederea studierii si aplicarii n acelasi mediu a a diverse
probleme concrete ce pot aparea in criptograe si criptanaliza.
37.2. OpenSSL
OpenSSL este o suita de aplicat ii ce implementeaza protocoalele Secure Sockets
Layer (SSL v2/v3) si Transport Layer Security (TLS v1) precum si o librarie dedi-
cata ce acopera o gama larga de primitive criptograce. Proiectul este manageriat
de o comunitate de voluntari din ntreaga lume ce comunica, folosind Internetul,
n vederea planicarii si dezvoltarii continue a toolkit-ului OpenSSL precum si a
documentat iei aferente.
OpenSSL este bazat pe libraria SSLeavy dezvoltata de Eric A. Young si Tim
J. Hudson, proiect ncheiat la sfarsitul anului 1998. Asupra produsului act ioneaza
o dubla licent iere, atat cea de OpenSSL cat si cea originala a librariei SSLeavy.
276 RESURSE SOFTWARE
Ambele tipuri de licent e sunt de tipul BSD open-source, toolkit-ul putand astfel
folosit atat pentru scopuri comerciale cat si non-comerciale. Pachetul sofware
foloseste instrumente criptograce puternice, ind dezvoltat continuu si distribuit
legal de cateva tari europene, supunandu-se nsa unor restrict ii de import/export
si uz n unele t ari din lume.
OpenSSL este disponibil n numeroase versiuni ind ntr-o continua dezvoltare,
bug-uri ind des semnalate si corectate. Versiunea stabila curenta este OpenSSL
0.9.8m aceasta ind disponibila din luna februarie 2010; in plus utilizatorii bene-
ciaza de acces online permananent pentru studierea dezvoltarilor ulterioare ultimei
versiuni stabile. Versiunile sunt disponibile pentru majoritatea sistemelor de oper-
are tip UNIX (incluzand Solaris, Linux, Mac OS X si cele patru sisteme de operare
BSD open source), Open VMS si Microsoft Windows.
OpenSSL implementeaza protocoalele SSL si TSL. Transport Layer Security
(TLS) si predecesorul sau Secure Sockets Layer (SSL), sunt protocoale criptograce
ce furnizeaza securitatea comunicat iilor peste ret ele similare Internetului. Cele
doua protocoale permit aplicat iilor de tip client/server sa comunice securizat. TLS
furnizeaza autenticare endpoint precum si condent ialitatea comunicat iilor peste
Internet folosindu-se securizare RSA suportand lungimi de chei de pana la 2048
de bit i. Protocoale sunt utilizate pentru navigare pe Internet, posta electronica,
voice-over-IP (VoIP) etc.
Libraria criptograca OpenSSL implemeneaza o gama larga de algoritmi utilizat i
n diverse standarde utilizate n Internet. Facilitat ile furnizate de aceasta librarie
sunt folosite pentru a implementa SSL, TLS si S/MIME, precum si pentru SSH,
OpenPGP si alte standarde criptograce. Libraria are implementate o varietate de
primitive criptograce si alte facilitat i dupa cum urmeaza:
Algoritmi de cifrare simetrice: Blowsh, CAST, DES, IDEA, RC2, RC4, RC5;
Algoritmi de cifrare asimetrici: RSA (bazat pe factorizarea numerelor mari),
DSA (bazat pe problema logaritmului discret), EC (curbe eliptice) Die-Hellman
key exchange;
Certicate digitale: X509, X509v3;
Funct ii hash si coduri de autenticare: HMAC, MD2, MD4, MD5, MDC2,
RIPEMD, SHA;
Funct ii de control a intrarilor si iesirilor, funct ii de codicare a datelor: PKCS7,
PKCS12, ASN1, BIO, EVP, PEM.
Utilitarul OpenSSL este un tool linie comanda utilizat n gestionarea diverselor
funct ii criptograce din libraria OpenSSL. Acesta poate folosit pentru:
Creare si management de chei private, chei publice si parametrii;
Operat ii ce implica criptograa cu chei publice;
Creare de certicate X.509 , CSRs si CRLs;
MAPLE 277
Calculare de rezumate de mesaj;
Cifrare si descifrare folosind diverse cifruri;
testare client i/servere (SSL/TLS);
Semnaturi si cifrare de mail (S/MIME);
Cereri, generari si vericari de marci temporare.
OpenSSL este unul dintre put inele proiecte open source supuse validarii de confor-
mitate cu standardului FIPS 140-2, utilizat n securitatea calculatoarelor, dezvoltat
de National Institute of Standards and Technology (NIST). Pachetul software n
sine nu este validat, ind dezvoltata o componenta software a acestuia denumita
OpenSSL FIPS Object Module, aceasta ind compatibila cu OpenSSL ind creata
pentru a oferi posibilitatea produselor ce folosesc API de tip OpenSSL de a su-
puse validarii de confomitate FIPS 140-2.

In ianuarie 2006 aceasta componenta fost
certicata, aceasta ind nsa revocata n iulie 2006 datorita unor nelamuriri privind
validitatea interact ionarii modulului cu software extern.

In februarie 2007 produsul
a fost recerticat.
Validarea OpenSSL FIPS Object Module este unica printre toate validarile FIPS
140-2 prin faptul ca producatorul pune la dispozit ie ntreg codul sursa. Prin urmare,
folosit fara nicio modicare si construit pe orice platforma conform documentat iei
pusa la dispozit ie se obt ine direct un modul criptograc validat. Orice modicare
minora asupra codului implica necesitatea revalidarii, proces costisitor (aproximativ
50000$) si ndelungat (ntre 6 si 12 luni). Cea mai recenta validare open source
este OpenSSL FIPS Object Module (Software Version: 1.2), FIPS 140-2 certicate
#1051.

In prezent nu exista niciun alt produs open source supus validarii FIPS
140-2 datorita lispei de nant are. Validarea versiunilor precedente au fost nant ate
de sectorul comercial si sponsori guvernamentali, o parte dintre acestia preferand sa
ramana anonimi.
37.3. MAPLE

In cadrul acestei sect iuni vom exemplica, printr-o serie de exemple, modalitat ile
de rezolvare a problemelor propuse, n cadrul acestei culegeri, cu ajutorul aplicat iei
software MAPLE.
Exemplul 37.3.1. Algoritmul de cifrare ElGamal.
p (ordinul grupului), (generatorul) numere prime publice;
a cheia privata, :=
a
mod p cheia publica;
m mesajul clar;
k numar aleator secret;
278 RESURSE SOFTWARE
regula de cifrare: y
1
:=
k
mod p; y
2
:= (m
k
) mod p;
regula de descifrare: des := y
2
(y
a
1
)
1
mod p.
>
p:=17;
>
alpha:=14;
>
a:=2;
>
beta:=alpha^a mod p;
>
m:=4;
>
k:=4;
>
y1:=alpha^k mod p;
>
y2:=(m*(beta^k)) mod p;
>
text_cifrat:=(y1,y2);
>
text_descifrat:=y2*(y1^a)^(-1) mod p;
Exemplul 37.3.2. Algoritmul de semnatura ElGamal.
p si numere prime publice;
a cheia secreta, :=
a
mod p cheia publica;
x mesajul ce trebuie semnat;
k numar secret;
:=
k
mod p, := (x a )k
1
mod (p 1), sign := (, );
vericarea semnaturii:

mod p =
x
mod p.
>
p:=467;
>
alpha:=2;
>
a:=127;
>
beta:=alpha^a mod p;
>
x:=102;
>
k:=15;
>
gamma:=alpha^k mod p;
>
delta:=(x-a*gamma)*k^(-1) mod (p-1);
>
(beta^gamma*gamma^delta - alpha^x) mod p;
Exemplul 37.3.3. Algoritmul de semnatura DSA.
p si q numere prime (publice);
(public) radacina de ordin q a unitat ii;
a cheia secreta, = (
a
) mod p;
MAPLE 279
x mesajul;
k numar aleatoriu (secret);
sign = (, ) unde = (
k
mod p) mod q si = (x +a ) k
1
mod q.
>
p:=7879;
>
q:=101;
>
alpha:=170;
>
a:=75;
>
beta:=(alpha^a) mod p;
>
x:=1234;
>
k:=50;
>
gamma:=(alpha^k mod p) mod q;
>
delta:=(x+a*gamma)*k^(-1) mod q;
Exemplul 37.3.4. Protocolul Die-Hellman.
Caracteristicile protocolului:
p numar prim (minim 1024 bit i), q divizor prim al lui q 1 (minim 160 bit i);
element de ordin q;
a numar generat de A si trimis lui B;
b numar generat de B si trimis lui A;
cheia comuna este k :=
ab
mod p.
>
p:=25307;
>
alpha:=2;
>
a:=3578;
>
b:=19956;
>
k:=((alpha^a) mod p)^b mod p;
Exemplul 37.3.5. Protocolul Blom.
p numar prim, n numarul de utilizatori;
k = 1 nivel de compartimentare (protocolul este neconditionat sigur mpotriva
atacului unui utilizator);
a, b, c coecient ii polinomului;
A denumire generica participant protocol, r
A
cheia publica a lui A;
f(X, Y )a + b(X + Y ) + cXY polinom (simetric), g
A
(X) = f(X, r
A
) polinomul
secret al lui A;
280 RESURSE SOFTWARE
K matricea cheilor de compartimentare(simetrica).
>
p:=29;
>
a:=1;
>
b:=2;
>
c:=3;
>
n:=3;
>
r:=array(1..n,[13,11,17]);
>
f(X,Y):=a+b*(X+Y)+c*X*Y;
>
g:=array(1..n);
>
for i from 1 to n do:
>
g[i]:=eval(f(X,Y),Y=r[i]) mod p;
>
end do;
>
K:=array(1..n, 1..n);
>
for i from 1 to n do:
>
for j from 1 to n do:
>
K[i,j]:=eval(g[i],X=r[j]) mod p;
>
end do;
>
end do;
>
print(K);
Exemplul 37.3.6. Schema de partajare a lui Shamir.
n numarul de participant i;
k numarul minim de participant i care pot reconstitui secretul;
q numar prim (identica corpul Z[q] n care se lucreaza);
S secretul care se doreste partajat;
x
i
(publice) se distribuie utilizatorilor, i = 1, . . . , n;
a
i
(aleatoare), i = 1, . . . , k 1.
>
n:=5;
>
k:=3;
>
q:=17;
>
S:=13;
>
x[1]:=1;
>
x[2]:=2;
>
x[3]:=3;
MAPLE 281
>
x[4]:=4;
>
x[5]:=5;
>
a[1]:=10;
>
a[2]:=2;
>
p:=S+a[1]*x+a[2]*x^2 mod q;
>
for i from 1 to n do subs(x=x[i],p) mod q
>
od;
Exemplul 37.3.7. Recuperarea secretului din schema lui Shamir.
n numarul de participant i;
k numarul minim de participant i care pot reconstitui secretul; q numar prim
(identica corpul Z[q] n care se lucreaza);
S secretul care se doreste partajat;
x
i
(publice) se distribuie utilizatorilor, i = 1, . . . , n;
s
i
secretul distribuit, i = 1, . . . , k 1;
>
n:=5;
>
k:=3;
>
q:=17;
>
x[1]:=1;
>
x[2]:=2;
>
x[3]:=3;
>
x[4]:=4;
>
x[5]:=5;
>
s[1]:=8;
>
s[2]:=7;
>
s[3]:=10;
>
p:=S+a[1]*x+a[2]*x^2 mod q;
>
solve({subs(x=x[1],p)=s[1],subs(x=x[2],p)=s[2],subs(x=x[3],p)=s[3]
>
},{S,a[1],a[2]});
Exemplul 37.3.8. Canalul subliminal ElGamal.
q numar prim;
element primitiv;
x mesaj cifrat;
y mesaj subliminal;
282 RESURSE SOFTWARE
k cheia secreta;
autenticator;
autenticator;
mesajul subliminal (x, , ).
>
q:=11;
>
alpha:=2;
>
y:=9;
>
x:=5;
>
k:=0;
>
beta:=alpha^y mod q;
>
gama:=y^(-1)*(x-k*beta) mod (q-1);
>
M:=(x,beta,gama);
Exemplul 37.3.9. Extragerea datelor din canalul subliminal ElGamal.
q numar prim;
element primitiv;
x mesaj cifrat;
y mesaj subliminal;
k cheia secreta;
autenticator;
autenticator;
mesajul subliminal (x, , ).
>
q:=11;
>
alpha:=2;
>
k:=0;
>
x:=5;
>
beta:=6;
>
gamma:=5;
>
a:=alpha^x mod q;
>
b:=((alpha^k)^beta)*beta^gamma mod q;
>
if( a= b) then print("Mesaj_Auth_OK");
>
Mesaj_subliminal:=(x-k*beta)*gamma^(-1) mod (q-1);
>
else print("Mesaj_Auth_FAIL")
>
fi;
Capitolul 38
APLICATII PRACTICE

In acest capitol ne propunem sa facem o scurta descriere a celor 4 probleme


date la MITRE Cyber Challenge
1
, n perioada 9-12 ianuarie 2012. Pentru ecare
problema prezentam si cate o sugestie de rezolvare.
Primele trei probleme sunt legatentre ele, n sensul ca pentru rezolvarea celei de-a
doua probleme este nevoie de parola obt inutan urma rezolvarii primei probleme, iar
rezolvarea celei de-a doua probleme ne conduce la un indiciu folositor n rezolvarea
problemei cu numarul trei. Ultima problema este independenta de primele trei,
aceasta avand de fapt rolul de a scoate n evident a o vulnerabilitate a ECDSA
(acelasi tip de vulnerabilitate care a fost folosita si pentru aarea cheii de semnare
de la PlayStation3).
Problema 1. Obiectivul primei probleme este acela de a recunoaste cand s-a
folosit criptograa clasica (cifrurile Caesar, Vigen`ere, Hill etc) n mediul digital.
Scenariul ipotetic este urmatorul: gasim un sier ciudat, pe care nu l-am creat
noi, n calculatorul personal. Acest sier, neededinformation.txt, este pus la
dispozit ie n cadrul problemei.
Se cere decriptarea informat iei cont inute n acest sier si gasirea parolei ascunse
n interiorul sau. Stim ca aceasta parola ncepe cu S, se termina cu D si este
formata numai din majuscule.
Problema se poate rezolva foarte usor folosind pachetul software CrypTool pen-
tru a face o criptanaliza a nedeedinformation.txt: Analysis Symmetric encryp-
tion(classic) Ciphertext-Only Vigen`ere.

In urma acestei criptanalize rezulta pentru nceput ca lungimea cheii folosite este
6, iar la urmatorul pas obt inem cheia SQUARE cu ajutorul careia putem decripta
1
http://www.iccs.fordham.edu/mitre/
283
284 APLICAT II PRACTICE
textul cont inut n neededinformation.txt. La sfarsitul textului decriptat se aa
si parola pe care o cautam:
PASSWORDFORTOMMOROWISSTRONGPASSWORDSAREGOOD.
Problema 2. Aceasta problema si propune sa arate posibilele locuri n care un
adversar poate ascunde informat ii, precum si modurile n care acest lucru se poate
face. Mai precis problema presupune gasirea unor informat ii ascunse n interiorul
unei imagini.
Presupunem ca avem o imagine hiding.gif. Cerint a problemei este aceea de
a gasi informat ia ascunsa n aceasta imagine, stiind ca aceasta ncepe cu h, se
termina cu l, iar marimea ecarei litere conteaza. De asemenea, asa cum am
ment ionat anterior, vom avea nevoie de parola obt inuta la prima problema.
Uitandu-ne la proprietat ile imaginii hiding.gif, observam ca aceasta are 13.3
MB, ceea ce ni se pare suspect de mult. Pentru a vedea mai multe detalii, deschidem
hiding.gif cu UltraEdit si observam ca apare PKn format hexa 50 4B), ceea
ce nseamna ca este vorba despre o arhiva (PK reprezinta init ialele lui Phil Katz).
Prin urmare schimbam extensia si obt inem hinding.zip. Deschizand aceasta
arhiva gasim alte imagini, una dintre ele (care atrage atent ia n mod deosebit) ind
look at me.gif. Pentru a putea vedea aceasta imagine nsa, avem nevoie de parola
obt inuta la problema 1.
Gasim n nal si informat ia pe care o cautam, si anume hollenger.dll.
Problema 3. Cea de-a treia problema este legata de analiza tracului de date.
Presupunem ca avem la dispozit ie o captura de trac de date, day3.pcap.
Se cere sa se gaseasca, cu ajutorul raspunsului de la problema anteriora, sierul
transferat din calculatorul personal catre o sursa necunoscuta. Raspunsul pentru
285
aceasta problema l va constitui informat ia ascunsa n sierul respectiv. Stim ca
ncepe cu P, se termina cu k si marimea ecarei litere este importanta.
Pentru a putea deschide day3.pcap vom folosi Wireshark.

In continuare cautam
hollenger.dll astfel: Edit Find Packet Filter : hollenger.dll (selectam Packet
bytes si String) Find, iar apoi Follow TCP stream.
Observam din nou PK si folosim opt iunea Save as pentru a obt ine day3.zip.
Arhiva cont ine mai multe siere, printre care si hollenger.dll.
Deschidem hollenger.dll cu UltraEdit si observam numarul magic GIF87a
(n format hexa 47 49 46 38 37 61), ceea ce nseamna ca este vorba de o imagine.
Schimband deci extensia obt inem hollenger.gif, aceasta ind o imagine care
cont ine urmatoarea fraza : The Root Password is Pengu1nsR0ck.
Problema 4. Obiectivul acestei probleme este recuperarea unei chei private ECDSA
care a fost folosita pentru semnarea a doua mesaje diferite.

Inainte nsa de a continua prezentarea acestei ultime probleme, reamintim algo-


ritmul de semnatura ECDSA:
286 APLICAT II PRACTICE
Parametrii publici n acest caz sunt: un numar prim p, o curba eliptica E(F
p
) si
un punct G E(F
p
) cu ordG = q, q prim.
Cheia publica (de vericare) V E(F
p
) se construieste cu ajutorul cheii private
(de semnare) 1 s q 1 astfel: V = sG.
Semnatura mesajului m (mod q), calculata cu ajutorul unei chei efemere e (mod
q), este denita ca ind perechea (s
1
, s
2
) = (x
eG
mod q , (m+ss
1
)e
1
mod q), unde
prin x
eG
nt elegem coordonata x a punctului eG E(F
p
).
Semnatura (s
1
, s
2
) a mesajului m este vericata daca are loc urmatoarea egalitate
(n care v
1
= ds
1
2
mod q si v
2
= s
1
s
1
2
mod q ) : x
v
1
G+v
2
V
mod q = s
1
.
Revenim acum la problema noastra. Datele care ne sunt puse la dispozit ie se aa
n trei siere: signatures.txt,parameters.der si public.oct.
Primul sier cont ine valorile hash-urilor si semnaturile pentru cele doua mesaje
(n format hexa):
287
m
1
=DE37B3145DB7359A0ACC13F0A4AFBD67EB496903
s
11
=ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2
s
12
=BE4FA99C9D261C5F387A3ACE025702F6FB7884DD07CE18CAD48654B8
m
2
=28469B02BF0D2CFC86FF43CB612EE8FC05A5DBAA
s
21
=ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2
s
22
=D3540E2B13E51605F5FEB8C87EE8E176E59213F31EA8B8FFDAD077E2
Pentru a putea vedea informat iie din cel de-al doilea sier,parameters.der, vom
folosi OpenSSL astfel:
openssl ecparam -inform DER -in /cygdrive/e/parameters.der
-outform PEM -out /cygdrive/e/parameters.pem
openssl ecparam -text -in /cygdrive/e/parameters.pem -noout
Field Type: prime-field
Prime:
00:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
ff:ff:ff:ff:ff:ff:ff:ff:ff:fe:ff:ff:e5:6d
A: 0
B: 5 (0x5)
Generator (uncompressed):
04:a1:45:5b:33:4d:f0:99:df:30:fc:28:a1:69:a4:
67:e9:e4:70:75:a9:0f:7e:65:0e:b6:b7:a4:5c:7e:
08:9f:ed:7f:ba:34:42:82:ca:fb:d6:f7:e3:19:f7:
c0:b0:bd:59:e2:ca:4b:db:55:6d:61:a5
Order:
01:00:00:00:00:00:00:00:00:00:00:00:00:00:01:
dc:e8:d2:ec:61:84:ca:f0:a9:71:76:9f:b1:f7
Cofactor: 1 (0x1)
Prin urmare, parameters.der cont ine de fapt parametrii publici:
numarul prim p:
p=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D.
curba eliptica E : y
2
= x
3
+ 5 considerata peste F
p
.
coordonatele punctului G ( 04 semnica faptul ca asupra coordonatelor punc-
tului G nu s-a aplicat o compresie, prin urmare jumatate din octet ii care urmeaza
vor constitui coordonata x a punctului G, iar cealalta jumatate coordonata y a
punctului G):
x
G
=85CEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643
y
G
=58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22
numarul prim q, acesta ind ordinul punctului G:
q=010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7.
cofactorul, care n acest caz este 1, ceea ce nseamna ca punctul G este generator
pentru grupul punctelor curbei eliptice considerate.
288 APLICAT II PRACTICE
Pentru ultimul sier, public.oct, folosimUltraEdit si gasim reprezentarea hexa
a informat iei cont inute n interiorul sau:
04:85:CE:EE:9C:98:EF:DF:DF:CF:64:CB:52:2A:77:3F:14:35:D5:
68:17:36:77:D1:D2:8F:C0:06:43:58:A1:05:CC:1A:B1:A5:3D:77:
B2:78:85:07:76:E1:44:19:7F:3F:A4:E2:7A:A6:76:40:8D:FE:22
Aceasta este cheia publica, mai precis punctul V de coordonate:
x
V
=85CEEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643
y
V
=58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22
Avem acum toate datele necesare pentru a aa cheia privata s.
Observat ia importanta pe care se bazeaza nsa ntreaga rezolvare este aceea ca
valorile s
11
si s
21
sunt egale.

In acest caz, daca notam cu e
1
, respectiv e
2
cheile
efemere folosite pentru semnarea mesajelor m
1
, respectiv m
2
, rezulta e ca e
1
=
e
2
= e, e ca e
1
+e
2
= q.
Vom arata cum putem aa cheia privata s daca presupunem ca este vorba de
primul caz, anume ca pentru semnarea celor doua mesaje diferite m
1
si m
2
s-a folosit
aceeasi cheie efemera e. Notand cu r valoare comuna s
11
= s
21
, avem urmatoarele
doua relat ii:
s
21
= (m
1
+sr)e
1
mod q = r
1
si s
22
= (m
2
+sr)e
1
mod q = r
2
de unde putem aa cheia privata s astfel:
r
1
r
2
1
= (m
1
+sr)(m
2
+sr)
1
mod q s = (m
2
r
1
m
1
r
2
)[r(r
2
r
1
)]
1
mod q

In continuare vom lucra n PARI/GP, prin urmare transformam mai ntai toate
valorile de care avem nevoie din baza 16 n baza 10. O metoda de a face acest lucru
poate urmatoarea:
gp> n=length(w);
gp> for(i=1,n,if(w[i]==A,w[i]=10,if(w[i]==B,w[i]=11,if(w[i]==C,w[i]=12,
if(w[i]==D,w[i]=13,if(w[i]==E,w[i]=14,if(w[i]==F,w[i]=15)))))));
gp> W=sum(i=1,n,16^ (i-1)*w[n+1-i]);
Aam acum, n ipoteza ca s-a folosit aceeasi cheie efemera e, cheia privata s:
gp> q=26959946667150639794667015087019640346510327083120074548994958668279;
gp> m1=1268638092138210163260758055822429538066610350339;
gp> m2=229934186335685840756719395324394646288453721002;
gp> r=18187250800097972010521080073937585100154901858571130778437166133474;
gp> r1=20042106687643588872389242180506526832832251371631259823173622191288;
gp> r2=22255471905305126694378074733040389009439136736542793238977855911906;
gp> s=(((m2*r1-m1*r2)%q))*(bezout((r*(r2-r1))%q,q)[1])%q
15010575815029851772642085218329323233091815558722670713086641180071
Vericam ca aceasta este corecta, adica vrem sa vedem daca ntr-adevar are loc
egalitatea V = sG. Pentru aceasta init iallizam curba eliptica E peste care vrem sa
lucram, iar apoi calculam punctul sG:
289
gp> p=2695994666715063979466701508701963067363714442254057248109931527511;
gp> E=ellinit([0,0,0,0,5]*Mod(1,p));
gp> xG=16983810465656793445178183341822322175883642221536626637512293983324;
gp> yG=13272896753306862154536785447615077600479862871316829862783613755813;
gp> G=[xG,yG];
gp> ellpow(E,G,s);
Obt inem ca:
x
sG
= 14091661710852556870833728605751404033863675975464814254659297347139
y
eG
= 9333722541138719487032926806284603775374491724501611657294489976354
Aceste valori sunt egale cu x
V
, respectiv y
V
, prin urmare, cheia privata s pe care
am gasit-o este buna.
Deoarece problema cerea cheia privata s n format hexa, facem n nal si trans-
formarea numarului s din baza 10 n baza 16:
gp> v=vector(60);
gp> v[1]=divrem(s,16)[1];
gp> for(i=2,60,v[i]=divrem(v[i-1],16)[1]);
gp> w=vector(60);
gp> w[1]=divrem(s,16)[2];
gp> for(i=2,60,w[i]=divrem(v[i-1],16)[2]);
gp> S=vector(60,i,w[61-i]);
gp> for(i=1,60,if(S[i]==10,S[i]=A,if(S[i]==11,S[i]=B,if(S[i]==12,S[i]=C,
if(S[i]==13,S[i]=D,if(S[i]==14,S[i]=E,if(S[i]==15,S[i]=F)))))));
Obt inem ca S=8E88B0433C87D1269173487795C81553AD819A1123AE54854B3C0DA7.
290 APLICAT II PRACTICE
Capitolul 39
PROBLEME DE SINTEZ

A
39.1. Enunt uri
1. Completat i: Scopul cifrarii este de a asigura . . . . . . unei comunicat ii.
(a) autenticitatea
(b) condentialitatea
(c) integritatea
(d) nerepudierea
2. Urmatorul text a fost obt inut utilizand sistemul de cifrare Cezar (au fost elim-
inate accentele, spat iile si semnele de punctuat ie): MHPEUDVVHPRQULY-
DOPDLVFHVWSRXUOHWRXIIHU. Care este decriptarea sa?
(a) Chacun semble des yeux approuver mon courroux.
(b) Ma bouche mille fois lui jura le contraire.
(c) Jembrasse mon rival mais cest pour letouer.
(d) De grace, apprenez-moi, Seigneur, mes attentats.
3. Cifrat i textul Attaque `a laube cu ajutorul algoritmului de substitut ie pre-
cizat mai jos.
A B C D E F G H I J K L M
J G F K P R M T S V Z D Q
N O P Q R S T U V W X Y Z
I Y B C W A O X E H N U L
291
292 PROBLEME DE SINTEZ

A
Care este textul cifrat obt inut?
(a) JOOJCXPJDJXGP
(b) SHHSMYVSWSYPV
(c) JOOJCXPJBJXGP
(d) SHHSMYVSZSYPV
4. Cifrul Vigen`ere reprezinta o modalitate de cifrare mbunatat ita a sistemelor
de cifrare cu substitut ie simpla.

In ce consta acesta?
(a) n aplicarea succesiva a mai multor substitut ii alfabetice pe acelasi text.
(b) n aplicarea de substitut ii alfabetice care nu cifreaza niciodata o litera n
ea nsasi.
(c) n cifrarea literelor care apar cel mai frecvent (cum ar e) n mai multe
simboluri diferite.
(d) n alegerea mai multor alfabete de sustitut ie independente si schimbarea
alfabetului folosit, la ecare litera, n mod ciclic.
5. Reprezentarea n baza 2 a numarului 1729 este:
(a) 10010110100
(b) 11011000001
(c) 11001100011
(d) 6C1
6. Propunem urmatorul algoritm de cifrare: Alice si Bob doresc sa schimbe un
mesaj m care reprezinta un numar ntreg ntre 0 si N 1. Pentru aceasta, ei
partajeaza o cheie secreta comuna k extrasa aleator ntre 0 si N 1. Mesajul
cifrat se obt ine ca c = m + k mod N. Ce parere avet i despre securitatea
sistemului?
(a) Proasta: sistemul reprezinta o varianta a sistemului lui Cezar.
(b) Buna, daca adversarul nu cunoaste algoritmul de cifrare.
(c) Foarte buna, cu condit ia sa nu utilizeze cheia k decat o singura data.
(d) Excelenta: sistemul reprezinta o varianta a algoritmului RSA.
7. Alice i trimite lui Bob un mesaj cifrat c obt inut cu ajutorul algoritmului
precedent. Cum determina Bob mesajul original m?
(a) m = c +k mod N
ENUNT URI 293
(b) m = c k mod N
(c) m = c k mod N
(d) m = c
k
mod N
8. Care dintre acronimele urmatoare desemneaza un algoritm de cifrare de tip
bloc?
(a) AES
(b) HMAC
(c) SHA-1
(d) NIST
9. Inversul lui 17 modulo 100:
(a) este 83.
(b) este 53.
(c) este 1/17.
(d) nu exista.
10. Am n posesia mea un mesaj m pe care nu vreau nca sa l divulg, dar doresc
sa pot dovedi peste cat iva ani ca l cunosteam deja n 2010 (conform amprentei
de timp). Pentru aceasta, este sucient sa public astazi:
(a) un text cifrat corespunzator lui m cu o cheie cunoscuta numai de mine.
(b) un text cifrat corespunzator lui m cu o cheie cunoscuta de toata lumea.
(c) imaginea lui m printr-o funct ie de dispersie (funct ie hash).
(d) imaginea lui m printr-un MAC folosind o cheie aleatoare.
11. Funct ia de dispersie (hash) SHA-512 ntoarce valori ntre 0 si 2
512
1. Se
calculeaza imagini prin aceasta funct ie n mod aleator. Care este ordinul de
marime al numerelor pentru care trebuie calculate valorile prin aceasta funct ie
pentru a gasi 2 valori care sa aiba primii 20 de bit i egali?
(a) 20
(b) 1000
(c) 1000000
(d) 2
512
294 PROBLEME DE SINTEZ

A
12. Construim un generator de numere pseudo-aleatoare care init ializeaza cu x
0
cu o valoare ntre 0 si 999 si determina x
n+1
= 500x
n
+ 789 mod 1000.

In ce
condit ii at i utiliza acest generator?
(a) Pentru a produce numere aleatoare ntre 0 si 999, daca nu prezinta interes
nivelul de securitate.
(b) Pentru generarea unei chei de tip one-time pad.
(c) Pentru construct ia unei funct ii de dispersie.
(d) Niciodata.
13. Cum este obt inuta cheia secreta necesara pentru criptarea comunicat iei, la
conectarea la un site web securizat?
(a) Se obt ine din parola introdusa pentru conectare, printr-un algoritm de
derivare a cheii precum PBKDF (Password Based Key Derivation Func-
tion).
(b) Provine din cheia publica a serverului, cont inuta ntr-un certicat.
(c) Provine din cheia privata a serverului, divulgata clientului dupa stabilirea
conexiunii.
(d) Se obt ine n urma unui schimb de chei ntre client si server, precum schim-
bul de chei Die-Hellman.
14. Care este dicultatea de a factoriza un numar prim pe 1024 de bit i astazi?
(a) Este simplu!
(b) Numarul poate factorizat cu ajutorul a cateva mii de calculatoare ac-
tuale care sa ruleze ntre 1 si 2 ani.
(c) Nimeni nu poate face asta momentan, dar poate se va reusi de catre
agent ii precum NSA.
(d) Acest lucru nu va posibil timp de mai multe milenii.
15. Algoritmul RSA (fara padding) este un algoritm de cifrare:
(a) simetric, tip bloc.
(b) simetric, tip uid (debit).
(c) part ial homomorc.
(d) bazat pe identitate.
ENUNT URI 295
16. Fie generatorul Gee descris de trei registre de deplasare LFSR
i
(ale caror
polinoame de feedback sunt primitive de grad 19, 21 si respectiv 24) iar iesirea
de formula: y(t) = a
1
(t) a
3
(t) a
1
(t) a
2
(t). Care este complexitatea LC si
perioada P a acestui generator?
Figura 39.1: Generatorul Gee.
(a) LC= 640, P= 2
64
.
(b) LC=64 , P=(2
19
1)(2
21
1)(2
24
1).
(c) LC=876 , P=(2
19
1)(2
21
1)(2
24
1).
(d) Niciunul dintre raspunsuri nu este corect.
17. Fie secvent a data de reprezentarea binara (scrisa pe 8 bit i) a numarului i,
i = 0, ..., 255 :
00000000
. .
00000001
. .
00000010
. .
00000011
. .
00000100
. .
... 11111111
. .
Care este statistica testului frecvent ei aplicata acestei secvent e binare? Este
secvent a aleatoare, relativ la testul frecvent ei, la riscul de ordinul 1 de 5%?
(a) f
tf
= 256, sirul nu este aleatoriu.
(b) f
tf
= 1, sirul este aleatoriu.
(c) f
tf
= 0, sirul este aleatoriu.
(d) niciunul dintre raspunsuri nu este corect.
18. Care dintre urmatoarele armat ii sunt adevarate:
(a) Atac reusit asupra a doua preimagini ale unei funct ii hash implica reusita
atacului de generare de coliziuni.
296 PROBLEME DE SINTEZ

A
(b) Atac reusit de generare de coliziuni asupra unei funct ii hash implica
reusita atacului asupra a doua preimagini a aceleiasi funct ii hash.
19. Care dintre urmatoarele armat ii sunt adevarate:
(a) Un registru de deplasare de lungime n are perioada de 2
n
1.
(b) Un registru de deplasare de lungime n are perioada maxima de 2
n
1.
(c) Un registru de deplasare de lungime n, cu polinomul caracteristic primi-
tiv, are perioada de 2
n
1.
20. Probabilitatea de coliziune a doua mesaje de lungime n bit i procesate de
aceeasi funct ie hash ideala, ce are iesirea pe m bit i, este:
(a) 2
m
.
(b) 2
n
.
(c) 2
mn
.
(d) 2
mn
.
(e) 2
nm
.
(f) Niciuna din valorile de mai sus.
21. Fie extensia Galois GF(3
2
) generata de radacina polinomului X
2
X 1.

In
aceasta extensie valoarea log
2+1
(1 +) este:
(a) 8.
(b) 4.
(c) 2.
(d) 5.
(e) 6.
(f) Niciuna din valorile de mai sus.
22. Simbolul lui Jacobi
_
6278
9975
_
este:
(a) 1.
(b) 0.
(c) 1.
(d) Niciuna din valorile de mai sus.
ENUNT URI 297
23.

In cadrul unui act iuni judiciare urmeaza a desemnat unul dintre cei doi
judecatorii de serviciu. Deoarece niciunul dintre cei doi nu doreste sa faca acest
lucru n mod benevol, se propune modalitatea de decizie bazata pe rezultatul
obt inut din aruncarea unei monede. Astfel, judecatorul A alege stema sau
banul iar judecatorul B arunca moneda, decizia ind luata n urma rezul-
tatului obt inut. Avand n vedere faptul ca A si B n locat ii zice diferite se
propune, de catre criptograf, urmatorul protocol.
PASUL 1. Participantul A alege x = 0 (stema) sau x = 1 (banul)
si o cheie aleatoare k. Se cifreaza cu ajutorul algoritmului DES valoarea x:
y = DES(x; k).
PASUL 2. A transmite y catre B.
PASUL 3. B arunca o moneda si comunica lui A rezultatul obt inut.
PASUL 4. A comunica lui B cheia k.
PASUL 5. B descifreaza y, cu ajutorul algoritmului DES si obtine ceea ce a
ales A.
Criptograful arma faptul ca participantul A nu si poate schimba opt iunea
datorita valorii transmise y. Aratat i urmatoarele:
a) Utilizand birthday attack utilizatorul A poate trisa;
b) Care este complexitatea atacului de la punctul a)?
c) Care este cerint a primitivei criptograce ce asigura valabilitatea armat iei
participantul A nu si poate schimba opt iunea;
d) Corectat i protocolul astfel ncat sa nu mai e posibil atacul de la punctul
a).
24. Fie p un numar prim si G mult imea tuturor elementelor x Z
p
2 care satisfac
relat ia x 1 mod p. Aratat i faptul ca:
a) G este grup multiplicativ;
b) |G| = p;
c) L : G Z
p
denit de L(x) = (x 1)p
1
mod p este un izomorsm de
grupuri;
d) p+1 este un generator al lui G si izomorsmul este logaritmul n baza p+1
a lui G. Cu alte cuvinte avem: (p + 1)
L(x)
mod p
2
x pentru orice x.
25. Sa consideram algoritmul de semnare DSS cu parametrii p, q, g, o funct ie hash
H si o cheie secreta x.

In cadrul implementarii se precalculeaza perechea
(k, r) ce satisface relat ia r = (g
k
mod p) mod q, aceasta ind utilizata pentru
generarea semnaturilor. Recuperat i cheia privata de semnare.
298 PROBLEME DE SINTEZ

A
26. Protocolul Wired Equivalent Privacy (WEP) utilizatn standardul IEEE 802.11
este utilizat pentru a proteja datele n cadrul transmisiilor wireless. Protocolul
WEP are o cheie K de 40 de bit i, partajata ntre entitat ile ce comunica si
este utilizata pentru protect ia ecarui frame
1
transmis.

In cadrul acestui
exercit iu vom presupune faptul ca cheia K este xa si nu si schimba valoarea.
Pentru ca utilizatorul A sa transmita un frame la B va proceda dupa cum
urmeaza:
PASUL 1. Codicarea CRC: Dandu-se un mesaj de n-bit i M (n este con-
stant), A calculeaza o suma de control de 32 de bit i L(M), unde L este o
funct ie liniara
2
ce nu depinde de K. Textul clar, de lungime (n + 32) bit i,
este P = M||L(M).
PASUL 2. A cifreaza P cu algoritmului RC4, cheia K si vectorul IV de 24 de
bit i specic ecarui frame transmis. Textul cifrat va C = P RC4(IV, K).
PASUL 3. A transmite pe canalul radio (IV, C) catre B.

Intrebari:
a) Anumit i producatori specica faptul ca protocolul WEP are o securitate de
40+24=64 bit i de cheie. Ce parere avet i de acest fapt. Justicat i raspunsul.
b) Care este modalitatea prin care B extrage mesajul original M?
c)

In cadrul unor implementari, vectorul IV de 24 de bit i, este ales aletoriu
la ecare frame transmis. Aratat i ca acest lucru conduce la probleme de
securitate atunci cand tracul de date este mare. Propunet i o modalitate de
remediere a problemei aparute.
d) Sa examinam o alta problema de securitate a protocolului WEP. Vom
presupune faptul ca atacatorul intercepteaza datele (IV, C) transmise de A.
Aratat i faptul ca adversarul, chiar daca nu cunoaste cheia K, poate calcula
usor un text cifrat C

(C

= C) si retransmite (IV, C

) fara ca B sa poata de-


tecta acest lucru. Cate posibilitat i de alegere avem pentru C

? Ce proprietate
a securitat ii este violata?
27. Descifrat i, cu ajutorul algoritmului RSA-CRT, indicand semnicat iile elementelor
algoritmului, mesajul:
C = 9686 9613 7546 2206 1477 1409 2225 4355 8829 0575 9991 1245 7431 9874
6951 2093 0816 2982 2514 5708 3569 3147 6622 8839 8962 8013 3919 9055 1829
9451 5781 5154.
Textul clar este n limba engleza.
1
pachet de date.
2
L(X Y ) = L(X) L(Y ).
ENUNT URI 299
Parametrii algoritmului sunt urmatorii:
a) exponentul de cifrare este e = 9007,
b) p = 3490 5295 1084 7650 9491 4784 9619 9038 9813 3417 7646 3849 3387
8439 9082 0577,
c) q = 0003 2769 1329 9326 6709 5499 6198 8190 8344 6141 3177 6429 6799
2942 5397 9828 8533.
28. Fie numerele prime q = 7541 si p = 2q + 1. Fie = 604 si = 3791.
a) Aratat i ca ord() = ord() = q n Z
q
. Mai mult, aratat i ca si genereaza
acelasi subgrup Gn Z

p
.
b) Denim funct ia hash h : Z
q
Z
q
G prin h(x
1
, x
2
) = x

1
x

2
. Calculat i
h(7431, 5564) si h(1459, 954).
c) La punctul precedent at i obt inut o coliziune pentru h. Folosit i-o pentru a
calcula logaritmul discret dlog

.
d) Folosind logaritmul discret calculat, determinat i si alte coliziuni pentru h.
300 PROBLEME DE SINTEZ

A
39.2. Raspunsuri
1. Raspuns: (b). Pentru autenticitate, se folosesc MAC sau semnaturile electron-
ice. Pentru integritate, n funct ie de nivelul de exigent a, se pot utiliza sume
de control, funct ii hash, MAC, etc.
2. Raspuns: (c). Va putet i ajuta de pozit ia literelor dublate.

Intrebare supli-
mentara: de unde provin aceste versuri?
3. Raspuns: (a). Literele de pe a doua linie sunt imaginile celor din prima linie,
si nu invers.
4. Raspuns: (d). Metoda (a) este doar o substitut ie normala (compunerea a
2 permutari este tot o permutare). Metoda (b) este mai slaba decat prima
ntrucat expune mai multe informat ii despre textul clar. Metoda (c) se numeste
substitut ie polialfabetica.
5. Raspuns: (b). Este de ajuns sa se calculeze restul mpart irii lui 1729 la 4
pentru a elimina (a) si (c). (d) este 1729 n hexazecimal (i.e. n baza 16).
6. Raspuns: (c). Algoritmul este o variant a a one-time pad. Ofera securitate
perfecta daca nu se utilizeaza cheia de criptare decat o singura data. Poate
de asemenea considerat o varianta a cifrului lui Cezar, dar aplicat unei singure
litere si cu un decalaj ales aleator. Utilizat n acest fel, cifrul lui Cezar ar
sigur. Sistemul nu are nicio legatura cu RSA. Raspunsul (b) nu ar satisface
principiul lui Kerckho: un sistem de criptare trebuie sa ramana sigur cand
adversarul cunoaste tot despre acesta, mai put in cheia utilizata.
7. Raspuns: (b). Operat ia inversa adunarii cu k mod N este scaderea cu k mod
N.
8. Raspuns: (a). HMAC este MAC, SHA-1 este o funct ie de dispersie si NIST
este o agent ie americana de standardizare.
9. Raspuns: (b). 53 17 = 1 mod 100
10. Raspuns: (c). La momentul divulgarii mesajului, toata lumea va putea ver-
ica faptul ca hash-ul este corect si ca se cunostea mesajul m la momentul
calculularii acestui hash. Metoda nu permite dezvaluirea mesajului m.
O cifrare a lui m cu o cheie cunoscuta doar de cel care face criptarea nu garan-
teaza nimic: se poate de asemenea publica un cuvant aleator pentru ca ulterior
sa se aleaga cheia care sa corespunda unei criptari corecte. Aceeasi problema
apare n cazul MAC.
R

ASPUNSURI 301
O cheie cunoscuta de toata lumea ar conduce la determinare textului clar m,
ceea ce ar echivalent cu divulgarea mesajului m.
11. Raspuns: (b). Conform paradoxului nasterilor, pentru obt inerea unei coliziuni
pe primii 20 de bit i ai funct iei de dispersie, este necesar sa se calculeze valoare
funct iei hash pentru

2
20
, adica aproximativ 1000 numere.
12. Raspuns: (d). Valoarea lui x
n
este constanta, egala cu 289, ncepand cu al
treilea termen. Deci nu este vorba despre aparit ii aleatoare.
13. Raspuns: (d). Cheia de sesiune este determinata printr-un schimb de chei.
14. Raspuns: (a). Factorizarea unui numar prim este imediata.
15. Raspuns: (c). Proprietatea de homomorsm este aceea ca cifrarea RSA a
produsului a 2 mesaje (modulo N) este produsul cifrarilor corespunzatoare
celor 2 numere.
Restul variantelor sunt eronate, indca RSA este un cifru cu cheie publica,
deci asimetric.
16. Raspuns: (c). Se aplica proprietat ile generatorului Gee.
17. Raspuns: (c).

In aceasta situat ie secvent a supusa testarii este ideala, numarul
de bit i de 0 este egal cu numarul de bit i de 1 si anume 1024.
18. Raspuns: (a).
19. Raspuns: (b), (c). Un registru de deplasare de lungime n are 2
n
1 stari
posibile (starea nula este exclusa).

In situat ia n care polinomul caracteristic
este primitiv atunci el genereaza toate starile posibile.
20. Raspuns: (a). Numarul de iesiri posibile, ale unei funct ii hash ideale cu iesirea
pe m bit i, este 2
m
.
21. Raspuns: (e).
22. Raspuns: (a).
23. Raspuns: a) A va determina doua chei k si k

astfel ncat:
DES(banul; k) = DES(stema, k

).
Pentru acest lucru procedeaza dupa cum urmeaza:
i) A va construi doua liste (DES(banul; k), k) si (DES(stema; k

), k

),
pentru toate cheile k respectiv k

. Listele sunt sortate n raport cu primul


camp al ecarei intrari (i.e. DES(banul; k) respectiv DES(stema; k

)).
302 PROBLEME DE SINTEZ

A
ii) A va cauta coliziuni n cadrul acestor liste si va obt ine k, k

astfel ncat:
DES(banul; k) = DES(stema; k

).
iii) Dupa ce se arunca moneda A comunica lui B cheia k sau k

dupa caz.
b) Complexitatea atacului anterior este reprezentata de cautarea coliziunilor n
cadrul celor doua liste, pe 64 de bit i, DES(banul; k) si DES(stema; k

).
Conform birthday attack este nevoie numai de 2
32
evaluari ale algoritmului
DES pentru a determina o coliziune.
c) Cerint a primitivei criptograce este ca funct iile:
k DES(banul; k) si k DES(stema; k)
sa e rezistente la coliziuni.
d) Se poate utiliza un algoritm de cifrare bloc pe 128 de bit i, spre exemplu
AES (n acest caz birthday attack are nevoie de 2
64
evaluari ale AES). Ca
o alternativa se poate utiliza o funct ie hash h rezistenta la coliziuni. Partic-
ipantul A alege x {stema, banul}, o valoare aleatoare r si calculeaza
y = h(x||r). Dupa ce B face alegerea, A poate dezvalui x si r.
24. Raspuns: a) Vom arata faptul ca G = {x Z
p
2|x 1 mod p} n raport cu
multiplicarea modul p
2
este grup. Pentru aceasta se vor verica urmatoarele:
operat ia este parte stabila, asociativitatea, elementul neutru si elementul simetriz-
abil.
b) Orice element a din Z
p
2
se poate scrie n mod unic a = a
1
+ a
2
p, unde a
1
si a
2
sunt numere ntregi ce satisfac relat ia 0 a
1
, a
2
p 1. Orice element
a din Z
p
2
este n G daca si numai daca elementul corespunzator a
1
este egal
cu 1, de aici rezulta faptul ca |G| = p.
c) Fie a = 1 + kp, 0 k < p si b = 1 + lp, 0 l < p elemente din G. Se
verica faptul ca L este homomorsm: L(a b) = k +l mod p si L(a) +L(b) =
k + l mod p, deci L(a b) = L(a) + L(b). Direct se verica injectivitatea si
sujectivitatea lui L, deci L este izomorsm de grupuri.
d) Avem de aratat faptul ca orice element a G poate scris ca o putere a
lui p + 1. Din binomul lui Newton rezulta:
(p + 1)
2
mod p
2
=
n

i=0
_
n
i
_
p
i
mod p
2
= 1 +np.
Deci, p + 1 genereaza G. Pentru orice y G avem: y = log
p+1
(x) daca si
numai daca x = (p + 1)
y
mod p
2
.
Deoarece (p + 1)
y
mod p
2
= 1 +py, obt inem:
R

ASPUNSURI 303
y =
x 1
p
mod p = L(x).
Acesta funct ie logaritm sta la baza algoritmului criptograc Okamoto-Uchiyama.
25. Raspuns: Sa consideram semnaturile pentru mesajele m si m

. Semnaturile
sunt (r, s) si (r, s

). Avem:
s =
H(m) +xr
k
mod q
s

=
H(m

) +xr
k
mod q.
Deducem
k =
H(m) H(m

)
s s

mod q.
Vom calcula apoi r = (g
k
mod p) mod q si n nal vom recupera x prin formula:
x =
ks H(m)
r
mod q.
26. Raspuns: a) Nu este corect sa se calculeze dimensiunea cheii prin sumarea
dimensiunii celor doua intrari n algoritm deoarece numai una este secreta.
Deci dimensiunea cheii este de 40 de bit i nu de 64 de bit i.
b) Mai ntai B reconstruieste textul clar P

= C RC4(IV, K). Ulterior P

este mpart it n doua part i P

= M

||Q

, unde M

este de n bit i iar Q

de 32
de bit i. B calculeaza L(M

) si compara cu Q

. B accepta mesajul M

daca
si numai daca L(M

) = Q, altfel va respinge mesajul M

.
c) Conform birthday paradox alegand IV aleatoriu la ecare frame rezulta
ca la ecare 2
24
2
5000 frame-uri exista o coliziune pentru doua IV din
cele 5000 transmise de la/catre acelasi utilizator.

In aceasta situat ie avem o
coliziune n sirurile cheie, ceea ce poate conduce la informat ie despre textul
clar ([83]). O alternativa este de a incrementa IV .
304 PROBLEME DE SINTEZ

A
d) Fie M

= M un nou mesaj, unde este un sir de n bit i. Vom calcula


diferent a dintre noul text cifrat C

si C:
C

C = (P

RC4(IV, K)) (P RC4(IV, K))


= P

P
= (M M

)||(L(M) L(M

))
= L().
Deci, pentru orice nenul, adversarul cunoaste faptul ca C

= C(||L())
care verica CRC-ul.

In concluzie acesta are (2
n
1) posibilitat i de alegere
pentru (si C

). Proprietatea violata este cea de integritate a mesajului. O


concluzie ce se desprinde din acest exercit iu este aceea ca CRC-urile (cu sau
fara cheie) ne asigura protect ia contra erorilor de transmisie nu si mpotriva
unui adversar malit ios.
27. Raspuns: Prin calcule directe vom obt ine: d = e
1
= 0001 0669 8614 3685
7802 4442 8687 7132 8920 1547 8070 9906 6339 3786 2801 2262 2449 6631
0631 2591 1774 4708 7334 0168 5974 6230 6553 9685 4451 3277 1090 5360
6095 mod(p 1)(q 1).
Apoi, prin calcul direct sau utilizand CRT:
M = C
d
= 20 0805 0013 0107 0903 0023 1518 0419 0001 1805 0019 1721 0501
1309 1908 0015 1919 0906 1801 0705 modN, N = p q.
Folosind codicarea spat iu= 00, A = 01, B = 02, . . . , Z = 26 obt inem textul
clar:
THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE.
Bibliograe
[1] Abramowitz M., Stegun I.A., Handbook of Mathematical Functions, Wash-
ington, D.C., U.S. Government Printing Oce, 1964.
[2] Anand P., Foundations of Rational Choice Under Risk, Oxford: Oxford Uni-
versity Press, 1993.
[3] Akerlof G. A., Yellen J. L., Rational Models of Irrational Behavior, 1987.
[4] Aumann R. J., Hart S., Handbook of Game Theory with Economic Appli-
cations, 3 vols. Amsterdam: North-Holland, 2002.
[5] Aumann R. J., Maschler M. B., Repeated Games with Incomplete Infor-
mation, Cambridge, Mass.: MIT Press, 1995.
[6] Atanasiu A., Securitatea Informat iei, vol. 1, Criptograe, ed. InfoData, Cluj,
2008.
[7] Atanasiu A., Securitatea Informat iei, vol. 2, Protocoale de securitate, ed.
InfoData, Cluj, 2009.
[8] Baker K., Kropp D., Management Science: An Introduction to the Use of
Decision Models, 1985.
[9] Baase S., Van Gelder A., Computer Algorithms, Introduction to Design
and Analysis, Addison Wesley Longman, 2000.
[10] Bellman R. E., Teoria grafurilor, Editura Tehnica, Bucuresti, 1976.
[11] Bellman R., Dynamic Programming, Princeton University Press, 1957.
[12] Berge C., Theorie des graphes et ses applications, Dunod, 1967.
[13] Berger J., Statistical decision theory and Bayesian Analysis, 2nd ed., New
York: Springer Verlag, 1985.
305
306 BIBLIOGRAFIE
[14] Bertsekas D. P., Dynamic Programming and Optimal Control, 2nd ed.,
Athena Scientic, 2000.
[15] Bertsekos A., Linear Network Optimization, Algorithms and Codes, MIT
Press, 1991.
[16] Biggs N., Lloyd E., Wilson R., Graph Theory, Oxford University Press,
1986.
[17] Bondy J.A., Murty U.S.R., Graph Theory, Springer, 2008.
[18] Baird D., Gertner R. H., Picker R. C. , Game Theory and the Law,
Cambridge, Mass.: Harvard University Press, 1994.
[19] Browson R., Operational Research, 2nd edition, Prentice Hall, 1997.
[20] Budnick F., Richard M., Vollmann T. E. , Principles of Operations
Research for Management, Homewood: Irwin, 1977.
[21] Chartrand G., Introductory Graph Theory, Dover, 1985.
[22] Clemen R., Making Hard Decisions: An Introduction to Decision Analysis,
2nd ed., Belmont CA: Duxbury Press, 1996.
[23] Cormen T., Leiserson C., Rivest R. Introduction to Algorithms MIT
Press, 1990.
[24] Dantzig, George B., Linear Programming and Extensions, Princeton:
Princeton U P, 1963.
[25] De Groot M., Optimal Statistical Decisions, Wiley Classics Library, 2004.
[26] Denardo E.V., Dynamic Programming: Models and Applications, Mineola,
NY: Dover Publications, 2003.
[27] Dimand M. A., Robert W. D., The History of Game Theory, Vol. 1: From
the Beginnings to 1945, London and New York: Routledge, 1996.
[28] Dreyfus S. E., Law A. M., The art and theory of dynamic programming,
Academic Press, 1977.
[29] Dugatkin L. A., Hudson K. R., Game Theory and Animal Behavior, New
York: Oxford University Press, 1998.
[30] Fryer K., Operational Reasearch, Operational Research Society.
BIBLIOGRAFIE 307
[31] Goodwin P., Wright G. Decision Analysis for Management Judgment, 3rd
ed., Chichester: Wiley 2004.
[32] Gibbons Alan, Algorithmic Graph Theory, Cambridge University Press,1985.
[33] Giegerich R., Meyer C., Steen P., A Discipline of Dynamic Program-
ming over Sequence Data, Science of Computer Programming 51 (3), 2004.
[34] Golumbic M., Algorithmic Graph Theory and Perfect Graphs, Academic
Press, 1980.
[35] Harary F., Graph Theory, Reading, MA: Addison-Wesley,1969
[36] Harary F., Palmer E., Graphical Enumeration, New York, NY: Academic
Press,1973.
[37] Harsanyi J. C., Reinhard S., A General Theory of Equilibrium Selection
in Games, Cambridge, Mass.: MIT Press, 1988.
[38] Heims S. J., John Von Neumann and Norbert Wiener: From Mathematics
to the Technologies of Life and Death, Cambridge, Mass.: MIT Press, 1980.
[39] Heinze C. D., Management Science: Introductory Concepts and Applica-
tions, 1982.
[40] Hiller F., Introduction to Operational Research, Mc. Graw Hill, 1995.
[41] Kaufmann A., Metode si modele ale cercetarii operat ionale, Editura Tehnica,
Bucuresti, 1967.
[42] Kaufmann A., Desbazeile G., La methode du chemin critique, Paris, 1969.
[43] Kirby M. W., Operational Research in War and Peace, Imperial College
Press, London, 2003.
[44] Mahadev N.V.R., Peled U. N., Threshold Graphs and Related Topics,
North-Holland, 1995.
[45] Mathur K., Solow D., Management Science: The Art of Decision Making,
1994.
[46] McKinsey, Introduction to the Theory of Games, McGraw-Hill Book Com-
pany, Inc., New York.
[47] Menezes A.J. , Handbook of Applied Cryptography, CRC Press, 1997.
308 BIBLIOGRAFIE
[48] Meyn S., Control Techniques for Complex Networks, Cambridge University
Press, 2007.
[49] Nasar S., A Beautiful Mind: A Biography of John Forbes Nash, Jr., Winner
of the Nobel Prize in Economics, 1994. New York: Simon and Schuster, 1998.
[50] Nash J. F. Jr., Essays on Game Theory, Cheltenham, U.K., and Brookeld,
Vt.: Edward Elgar, 1996.
[51] Naccache D., Mihait a A., Olimid R. F., Oprina A. G., Simion E.,
Criptograe si Securitatea Informat iei. Aplicat ii, MATRIXROM, 2011.
[52] Owen G., Teoria Jocurilor, Editura Tehnica, Bucuresti, 1976.
[53] Pidd M., Tools for Thinking: Modelling in Management Science, J. Wiley &
Sons Ltd., Chichester; 2nd. Edition, 2003.
[54] Peterson M., An Introduction to Decision Theory, Cambridge University
Press,2009.
[55] Popescu O. si al. Matematici pentru economisti, Editura Didactica si Ped-
agogica, Bucuresti, 1992.
[56] Preda V., Teoria deciziilor statistice, Editura Academiei, Bucuresti, 1991.
[57] Raia H., Decision Analysis: Introductory Readings on Choices Under Un-
certainty, McGraw Hill, 1997.
[58] Rapoport A., Albert M. C., Prisoners Dilemma: A Study in Conict and
Cooperation, Ann Arbor: University of Michigan Press, 1965.
[59] Riker W. H., Ordeshook P. C., An Introduction to Positive Political The-
ory, Englewood Clis, N.J.: Prentice Hall, 1973.
[60] Robert C., The Bayesian Choice, 2nd ed., New York: Springer, 2007.
[61] Roth A. E., R. E. Verrecchia, The Shapley Value as Applied to Cost
Allocation: a Reinterpretation, Journal of Accounting Research 17 (1979):
295303.
[62] Rubinstein A., Modeling Bounded Rationality, Cambridge, Mass.: MIT
Press, 1998.
[63] Rumelt R. P., Schendel D. E., Teece D. J., Fundamental Issues in
Strategy: A Research Agenda, Boston: Harvard Business School Press, 1994.
BIBLIOGRAFIE 309
[64] Samuelson L., Evolution and Game Theory, Journal of Economic Perspec-
tives 16, 2002.
[65] Schelling T., The Strategy of Conict, Cambridge, Mass.: Harvard University
Press, 1960.
[66] Schotter A., The Economic Theory of Social Institutions, Cambridge, U.K.:
Cambridge University Press, 1981.
[67] Schneier B., Applied Cryptography, Adison-Wesley, 1998.
[68] Seiz J. A., Game Theory and Bargaining Models, In The Elgar Compan-
ion to Feminist Economics, edited by Janice Peterson and Margaret Lewis.
Cheltenham, U.K., and Northampton, Mass.: Edward Elgar, 1999.
[69] Shafer G., Pearl J., Readings in uncertain reasoning, San Mateo, CA: Mor-
gan Kaufmann,1990.
[70] Shapiro C., The Theory of Business Strategy, RAND Journal of Economics
20, 1989.
[71] Shapley L. S., A Value for nPerson Games, In Harold Kuhn and Albert
W. Tucker, eds., Contributions to the Theory of Games, Vol. 2, Annals of
Mathematics Studies, no. 28. Princeton, N.J.: Princeton University Press,
1953.
[72] Shapley L. S., Shubik M., A Method for Evaluating the Distribution of
Power in a Committee System, American Political Science Review 48, 1954.
[73] Shubik M., A Game-Theoretic Approach to Political Economy, Vol. 2 of
Game Theory in the Social Sciences. Cambridge, Mass.: MIT Press, 1984.
[74] Sierksma G., Linear and Integer Programming: Theory and Practice 2nd ed.
New York: Marcel Dekker, 2002.
[75] Simion E., Oprisan Gh., Elemente de Cercetari Operat ionale si Criptologie,
Politehnica Press, ISBN 973-8449-006, 2002.
[76] Simion E., Preda V., Popescu A., Criptanaliza. Rezultate si Tehnici
Matematice, Universitatea din Bucuresti, ISBN 973575975-6, 2004.
[77] Simion E., Enciclopedie Matematica, Edit ie coordonata de M. Iosifescu, O.
Stanasila si D. Stefanoiu, Editura AGIR, ISBN 978-973-720-288-8, pp. 905-
944, 2010.
310 BIBLIOGRAFIE
[78] Smith J.Q., Decision Analysis: A Bayesian Approach, Chapman and Hall,
1988.
[79] Sniedovich M., Dynamic Programming: Foundations and Principles, Taylor
& Francis, 2010.
[80] Stokey N., Lucas R. E., Prescott E. Recursive Methods in Economic
Dynamics, Harvard Univ. Press, 1989.
[81] Taha H., Operational Research, Prentice Hall, 1994.
[82] Tomescu I., Introducere n combinatoric a, Editura Tehnica, Bucuresti, 1970.
[83] S. Vaudenay, A Classical Introduction to Cryptography: Applications for
Communications Security, Springer-Verlag, 2005.
[84] Wald A., Contributions to the Theory of Statistical Estimation and Testing
Hypotheses, Annals of Mathematical Statistics 10 (4), 1939.
[85] Winston W., Operations Research: Applications and Algorithms, Duxbury
Press; 4th. Edition, 2003.
[86] Zidaroiu C., Programare liniara, Editura Tehnica, Bucuresti, 1983.
[87] Zidaroiu C., Programare dinamica, Editura Tehnica, Bucuresti, 1980.