Sunteți pe pagina 1din 328

Refereni tiinifici:

Prof. univ. dr. Octavian STNIL


Prof. univ. dr. Victor-Valeriu PATRICIU
Conf. univ. dr. Ovidiu ANDRU

Descrierea CIP a Bibliotecii Naionale a Romniei


Cercetri operaionale, probabiliti i criptologie: aplicaii / Emil Simion,
Mircea Andraiu, David Naccache, Gheorghe Simion. - Bucureti : Editura
Academiei Tehnice Militare, 2011
Bibliogr.
ISBN 978-973-640-208-1

I. Simion, Emil
II. Andraiu, Mircea
III. Naccache, David
IV. Simion, Gheorghe

004.056.55
621.928

Editat: Academia Tehnic Militar


Redactor-ef: lt. col. ing. Stelian SPNU

Corectur: Mihaela ZAHARIOIU


Operaiuni tipografice: plt. adj. Petru ANTOCHI,
Silvia STROE, Viorica TOMA, Adrian STNIC

Bun de tipar: 08.08.2011


Hrtie ofset: 70 100 Format: 32 / 70 100
Coli tipar: 18,4 Coli editur: 9,2
Tiparul: Academia Tehnic Militar
Lucrarea conine 292 pagini
0208 C. C-8
Emil Simion Mircea Andraiu
David Naccache Gheorghe Simion

CERCETRI OPERAIONALE,
PROBABILITI I CRIPTOLOGIE
APLICAII

EDITURA ACADEMIEI TEHNICE MILITARE


Bucureti, 2011
i

Cuvant nainte
Cercetarea Operationala a aparut ca disciplina prin formularea, n perioda celei de a
doua conflagratii mondiale, a problemei de transport cand s-a pus problema alocarii eficiente
a resurselor catre unitatile combatante. Ulterior, aceste probleme si-au gasit utilitatea si n
activitatea de management a unitatilor economice. Un rol important n dezvoltarea acestei
teorii l-a avut George Dantzig (1953).
Teoria grafurilor si analiza fluxului maxim sunt modele pentru o serie de probleme de
transport sau de optimizare a traficului ntre procesoare (n cadrul aplicatiilor de multi-
processing n care avem si un cost de comunicare). Problemele concrete de optimizare a
costurilor de aprovizionare, transport si stocare se pot rezolva cu ajutorul acestor modele
matematice. Optimizarea acestor costuri poate duce la economii substantiale n cadrul unei
firme care are ca obiect de activitate astfel de probleme.
Gestiunea optima a stocurilor este o componenta esentiala n planificarea si realizarea
unui plan de marketing si este o componenta de nenlocuit a conducerii economice moderne
n cadrul unei economii de piata. Aceasta teorie si-a gasit mai nou aplicatii n domeniul
proiectarii circuitelor electronice, stocul fiind reprezentat n acest caz de capacitatea de
memorie disponibila.
Totodata, lucrarea de fata contine aplicatii practice abordate de autori n cadrul semi-
nariilor ce se desfasoara la disciplina Criptografie si Securitate, la Facultatea de Matematica
Informatica din cadrul Universitatii din Bucuresti, la masterul de Securitatea Tehnolo-
giei Informatiei, organizat de Academia Tehnica Militara, precum si la masterul de Teo-
ria Codarii si Stocarii Informatiei, organizat de Facultatea de Stiinte Aplicate din cadrul
Universitatii Politehnica Bucuresti.
Aceasta culegere de probleme continua dezvoltarea colaborarii dintre scoala romaneasca
de criptologie si scoala franceza reprezentata n cazul de fata de David Naccache, profe-
sor la universitatea Pantheon-Assas Paris II. Din acest motiv se regasesc, n culegerea de
fata, capitolele dedicate principiilor criptologice si atacurilor n mediul de implementare, ce
acopera un gol din curricula sistemului de nvatamant din Romania, capitole elaborate n
colaborare cu profesorul David Naccache.

Dr. mat. Emil Simion


Dr. mat. Mircea Andrasiu
ii

Prefata
Intrand progresiv n era informatiei, societatile industrializate se gasesc n fata unui para-
dox: pe de o parte, puterea si influenta Europei si a Americii de Nord au crescut semnificativ,
n principal datorita maiestriei modalitatilor prin care se controleaza fluxurile de informatii,
precum si valorii crescute a datelor procesate. Pe de alta parte, dupa cum au demonstrat-o
deja criza Wikileaks sau viermele Stuxnet, apar noi amenintari si vulnerabilitati care fac ca
dependenta noastra de sistemele informationale sa fie cruciala.
De aceea, dezvoltarea atacurilor cibernetice, precum si disponibilitatea online a instru-
mentelor utilizate n activitatea de piraterie conduce la obiective strategice importante si
cultiva necesitatea de a pregati experti pentru acest domeniu.
Criptografia este peste tot n jurul tau. In timp ce tu citesti aceste randuri, n vecinatatea
ta se transmit informatii cifrate prin telefoane mobile, relee de pay-TV, precum si routere
wireless. Mediul n care traim se schimba ntr-un ritm alert. Aceasta evolutie este rezultatul
progresului n domeniul tehnologiilor hardware si al matematicii.
Criptografia aplicata s-a dezvoltat considerabil n ultimii ani, pentru a putea satisface
cerintele crescute de securitate ale diverselor domenii legate de tehnologia informatiei, cum
ar fi telecomunicatiile, retelistica, bazele de date, precum si aplicatiile de telefonie mobila.
Sistemele criptografice sunt din ce n ce mai complexe si mai tehnice si necesita din ce n ce
mai multa putere de calcul (de exemplu schema de cifrare perfect homomorfa a lui Gentry).
In plus, algoritmii criptografici trebuie utilizati mpreuna cu protocoale adecvate, a caror
proiectare si ntelegere necesita o analiza delicata.
Aceasta carte va ofera instrumentele necesare pentru a ncepe sa va dezvoltati aptitudinile
n domeniul criptografiei. In timp ce cititi aceste randuri n limba romana, strainul care sunt
va ndeamna sa realizati ca unele dintre cele mai luminate minti care au adus contributii
acestui domeniu si aveau originile n spatiul lingvistic si cultural romanesc. De exemplu, cel
care a spart masina de cifrat Purple a japonezilor, fapta care a dus la divulgarea secretelor
diplomatice japoneze nainte de intrarea Americii n cel de-al doilea razboi mondial, provenea
din orasul Chisinau, Republica Moldova, oras n care familia lui se mutase dupa plecarea din
Bucuresti la sfarsitul anilor 1890. Stiinta secretelor are o lunga traditie n Romania, tara
care a fost nevoita constant sa se bazeze pe propriile talente pentru a-si pastra independenta.
Expertii au prezis ca urmatoarele razboaie vor ncepe n spatiul cibernetic. Autorii acestei
carti, care sunt pedagogi si cercetatori, au importanta datorie morala de a lasa mostenire
Romaniei astfel de talente vitale.
In trecut, am avut onoarea de a cunoaste sau a fi mentorul unor cercetatori si studenti
romani foarte talentati. Intotdeauna am fost uimit de creativitatea acestora, de dorinta
lor de a-si atinge scopurile, precum si de daruirea pentru munca. Sper ca aceasta carte va
contribui la dezvoltarea continua de asemenea talente, astfel ncat domeniul stiintific caruia
i-am dedicat o buna parte a vietii mele sa beneficieze de acest formidabil rezervor de talente.
Daca sunteti un student talentat si interesat de studii doctorale n domeniu, nu ezitati
sa ma contactati pentru sfaturi.

Prof. David Naccache


Universite Paris II, Pantheon-Assas, PRES Sorbonne Universites
Membru al laboratorului informatic al Ecole normale superieure. Paris, Franta.
Cuprins

I CERCETARI OPERATIONALE 1

1 PROGRAMARE LINIARA 3
1.1. Folosirea eficienta 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. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 PROGRAMARE DINAMICA 17
2.1. Forma unei probleme de optimizare secventiala . . . . . . . . . . . . 17
2.2. Teorema de optim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3. Programare dinamica regresiva . . . . . . . . . . . . . . . . . . . . . 20
2.3.1. Ecuatiile programarii dinamice regresive . . . . . . . . . . . . 20
2.3.2. Rezolvarea problemelor de programare regresiva . . . . . . . 21
2.3.3. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4. Programare dinamica progresiva . . . . . . . . . . . . . . . . . . . . 27
2.4.1. Ecuatiile programarii dinamice progresive . . . . . . . . . . . 27
2.4.2. Rezolvarea problemelor de programare progresiva . . . . . . 28
2.4.3. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3 TEORIA JOCURILOR 33
3.1. Notiuni 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. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4 TEORIA DECIZIILOR STATISTICE 45


4.1. Prezentarea problemelor . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2. Strategii Bayes si strategii minimax . . . . . . . . . . . . . . . . . . . 46
4.3. Cazul efectuarii unor experiente 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. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 initial . . . . . . . . . . 77
6.1.4. Degenerare si ciclare . . . . . . . . . . . . . . . . . . . . . . . 78
6.1.5. Variante ale problemei de transport . . . . . . . . . . . . . . 79
6.1.6. Algoritmul simplex modificat . . . . . . . . . . . . . . . . . . 80
6.1.7. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2. Flux maxim intr-o retea de transport . . . . . . . . . . . . . . . . . . 89
6.2.1. Retele de transport . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.2. Algoritmul Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . 90
6.2.3. Problema de transport ca problema de flux maxim . . . . . . 92
6.2.4. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 achizitie . . . . . . . . . . . . . . . . 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. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

8 PROBABILITATI 123
8.1. Probabiliatea unui eveniment . . . . . . . . . . . . . . . . . . . . . . 123
8.1.1. Cazul finit dimensional si al evenimetelor elementare echiprob-
abile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.1.2. Probabitati geometrice . . . . . . . . . . . . . . . . . . . . . . 124
8.1.3. Frecventa absoluta. Frecventa relativa . . . . . . . . . . . . . 125
8.1.4. Definitia statistica a probabilitatii . . . . . . . . . . . . . . . 126
8.1.5. Definitia axiomatica a probabilitatii . . . . . . . . . . . . . . 126
8.2. Variabile aleatoare normal distribuite . . . . . . . . . . . . . . . . . . 126
8.2.1. Densitatea de probabilitate normala . . . . . . . . . . . . . . 126
8.2.2. Functia Laplace-Gauss . . . . . . . . . . . . . . . . . . . . . . 126
8.2.3. O formula analitica pentru calculul probabilitatii . . . . . . . 127
8.2.4. Inegalitatea lui Cebasev (1821-1894) . . . . . . . . . . . . . . 128
8.2.5. Teorema celor 3 . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.3. Legea numerelor mari . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.4. Teorema limita centrala . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.4.1. Forma Leapunov (1857-1918) a Teoremei Limita Centrala . . 129
8.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limita Centrala 129
8.5. Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.1. Testul 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.2. Testul 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
vi CUPRINS

8.5.3. Testul 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131


8.5.4. Testul 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.5.5. Testul 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.5.6. Testul 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.6. Cateva distributii importante . . . . . . . . . . . . . . . . . . . . . . 134
8.6.1. Repartitii continue . . . . . . . . . . . . . . . . . . . . . . . . 134
8.6.2. Distributii discrete . . . . . . . . . . . . . . . . . . . . . . . . 140
8.6.3. Calculul numeric al cuantilelor . . . . . . . . . . . . . . . . . 141
8.6.4. Intervale de ncredere . . . . . . . . . . . . . . . . . . . . . . 142
8.6.5. Teste statistice . . . . . . . . . . . . . . . . . . . . . . . . . . 144

II CRIPTOLOGIE 147

9 SISTEMUL DE CIFRARE CEZAR 149


9.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
9.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
9.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

10 METODA SUBSTITUTIEI 153


10.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
10.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
10.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

11 SISTEMUL DE CIFRARE PLAYFAIR 159


11.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
11.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
11.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

12 SISTEMUL DE CIFRARE HILL 165


12.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
12.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
12.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

13 SISTEME DE CIFRARE POLIALFABETICE 171


13.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
13.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
13.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
CUPRINS vii

14 METODA TRANSPOZITIEI 177


14.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
14.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
14.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

15 SISTEME MIXTE 181


15.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
15.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
15.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

16 GENERATOARE PSEUDOALEATOARE 187


16.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
16.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
16.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

17 CALCULE IN CORPURI GALOIS 193


17.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
17.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
17.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

18 ALGORITMUL RIJNDAEL - STANDARDUL AES 197


18.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
18.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
18.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

19 CRIPTANALIZA CIFRURILOR BLOC 207


19.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
19.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
19.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

20 LEMA CHINEZEASCA A RESTURILOR 211


20.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
20.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
20.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

21 SISTEMUL DE CIFRARE MERKLE-HELLMAN 217


21.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
21.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
21.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
viii CUPRINS

22 SISTEMUL DE CIFRARE RSA 221


22.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
22.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
22.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

23 SISTEMUL DE CIFRARE ELGAMAL 227


23.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
23.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
23.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

24 ARITMETICA PE CURBE ELIPTICE 229


24.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
24.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
24.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

25 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE 233


25.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
25.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
25.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

26 SISTEMUL DE CIFRARE MENEZES-VANSTONE 237


26.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
26.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
26.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

27 FUNCTII DE DISPERSIE 241


27.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
27.2. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

28 SEMNATURA ELGAMAL 245


28.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
28.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
28.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

29 SEMNATURA DSA/ECDSA 249


29.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
29.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
29.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
CUPRINS ix

30 PROTOCOLUL DIFFIE-HELLMAN 253


30.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
30.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
30.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

31 PROTOCOLUL BLOM 257


31.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
31.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
31.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

32 PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR 261


32.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
32.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
32.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

33 SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT265


33.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
33.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

34 CANALE SUBLIMINALE 267


34.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
34.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
34.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

35 PRINCIPII CRIPTOGRAFICE 271

36 ATACURI IN MEDIUL DE IMPLEMENTARE 275


36.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
36.2. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

37 RESURSE SOFTWARE 277


37.1. CrypTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
37.2. OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
37.3. MAPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

38 APLICATII PRACTICE 287

39 PROBLEME DE SINTEZA 295


39.1. Enunturi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
39.2. Raspunsuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
x CUPRINS

BIBLIOGRAFIE 309
Partea I

CERCETARI
OPERATIONALE

1
Capitolul 1

PROGRAMARE LINIARA

1.1. Folosirea eficienta a resurselor limitate


O problema practica ce apare frecvent n activitatea de conducere economica
este urmatoarea: sunt disponibile mai multe resurse (materii prime, forta de munca,
resurse financiare) n cantitati limitate. Cu ajutorul acestor resurse se pot desfasura
mai multe activitati economice. Problema consta n determinarea nivelurilor ac-
tivitatilor 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 bi cantitatea de resursa de tipul
i care este disponibila. Vom nota prin j, 1 j n, tipul activitatii (procesului
de subproductie) si prin xj nivelul (necunoscut) la care urmeaza sa se desfasoare
aceasta activitate. In sfarsit, vom nota prin aij cantitatea de resursa de tipul i,
1 i m, necesara pentru producerea unei unitati din produsul realizat n procesul
de productie de tipul j, 1 j n, (n general, activitatea de tipul j). Presupunem
aici ca aij depinde numai de tipul resursei si de tipul procesului de productie si nu
de nivelul la care urmeaza sa se desfasoare aceasta activitate.
Cu notatiile introduse, rezulta ca putem exprima cantitatea totala de resursa de
tipul i care va fi efectiv utilizata n procesele de productie:

ai1 x1 + ai2 x2 + . . . + ain xn .

Cum nu putem consuma resursa de tipul i mai mult decat cantitatea disponibila
bi , rezulta ca trebuie satisfacute conditiile:
n
X
aij xj bi , 1 i m. (1.1)
j=1

3
4 PROGRAMARE LINIARA

Deoarece xj reprezinta nivelul la care se desfasoara activitatea de tipul j, rezulta


ca trebuie sa fie de asemenea satisfacute conditiile:

xj 0, 1 j n. (1.2)

Inegalitatile 1.1 sunt numite restrictiile problemei, iar 1.2 sunt numite conditiile
de nenegativitate ale problemei. Sistemul de inegalitati liniare poate avea o infinitate
de solutii, o solutie unica sau nici o solutie (sistem incompatibil). Cazul cel mai
frecvent pentru problemele practice corect puse este cazul n care sistemul 1.1, 1.2 are
o infinitate de solutii. Prin urmare este posibil sa organizam procesele de productie
pentru fabricarea sortimentelor de tipul j, 1 j n, ntr-o infinitate de moduri,
respectand conditiile 1.1 de folosire a resurselor limitate.
Adoptarea unei variante de plan se face pe baza unor criterii economice, cum ar
fi: venitul realizat, beneficiul realizat, cheltuielile de productie, productia fizica, 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 functie liniara. Un exemplu de astfel de criteriu se obtine n
modul urmator. Daca notam prin cj beneficiul unitar adus de activitatea de tipul
j, 1 j n, atunci este clar ca beneficiul total este:
n
X
cj xj . (1.3)
j=1

Problema care se pune este de a afla solutiile sistemului de inegalitati liniare


1.1, 1.2 care asigura obtinerea valorii maxime pentru beneficiul total 1.3. Cu alte
cuvinte, din punct de vedere matematic se cere rezolvarea problemei:
P
n

sup cj xj


j=1
Pn

aij xj bi , 1 i m,


j=1
xj 0, 1 j n,
care este numita problema de programare liniara sau program liniar. Functia liniara
ce se doreste maximizata se numeste functie obiectiv sau functia criteriu sau, nca,
functia de eficienta a problemei.
Problema mentionata poate fi rezolvata cu ajutorul algoritmului simplex sau
simplex dual. Acesta este prezentat pe larg n 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 LINIARA 5

1.2. Forme ale problemelor de programare liniara


Forma standard a unei probleme de programare liniara este:

min(max)c0 x
Ax = b

x0
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:

min c0 x
Ax b

x0
sau
max c0 x
Ax b

x0
Sintaxa MAPLE de scriere a formei canonice pentru problema de maxim este:
> standardize(multime de restrictii);
sau
> convert(multime de restrictii, stdle);
O restrictie 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 contine restrictii si sub forma
de ecuatii.
Deoarece prin operatii 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.

Definitia 1.2.1. Fie problema de programare liniara n forma standard atunci


multimea programelor este definita ca:
P = {x Rn |Ax = b, x 0}.
0
Un punct de minim global al functiei obiectiv z = c x pe multimea programelor
P este numit solutie optima, iar multimea programelor optime ale problemei va fi
notata cu:
0 0
P = {x P | min c x = c x}.
xP
6 PROGRAMARE LINIARA

Definim solutia de baza a sistemului Ax = b ca o solutie x Rn careia compo-


nentelor sale nenule i corespund coloane liniar independente. Daca B este o baza
formata cu coloanele aj1 , . . . , ajm ale matricei A atunci sistemul de ecuatii Ax = b
se poate scrie n forma explicita:
xB = B1 b B1 RxR
n care R este matricea obtinuta din A prin eliminarea coloanelor j1 , . . . , jm . Notand:
B
B1 b =x , B1 aj = yjB , 1 j n,
rezulta ca: X
B
xB =x yjB xj
jR
sau X
B
xB
i =xi
B
yij xj , i B
jR

unde B = {j1 , . . . , jm } si R = {1, . . . , n} B. Solutia de baza corespunzatoare bazei


B
B este xB =x si xR = 0. Este clar ca aceasta solutie de baza este un program daca
este ndeplinita conditia:
B1 b 0.
O baza B care verifica inegalitatea de mai sus se numeste baza primal admisibila.
In problemele practice o astfel de baza se determina prin metoda bazei artificiale.
De foarte multe ori nsa, aceasta este disponibila direct, baza primal admisibila fiind
matricea unitate.
Avem urmatoarea teorema numita teorema fundamentala a programarii liniare.

Teorema 1.2.1. i) Daca problema de programare liniara:



min(max)c0 x
Ax = b

x0
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


mentionate 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 multimea 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 putin la fel de bun ca cel precedent. Metoda furnizeaza, de
asemenea, criterii pentru punerea n evidenta a situatiei cand problema are optim
infinit precum si a cazului n care multimea programelor este vida.
PASUL 0. Se pune problema de optimizat n forma standard:

inf cT x
Ax = b,

x 0.

(Daca problema are restrictii de forma unor inegalitati, atunci se transforma mai
ntai toate inegalitatile n inegalitati de tipul ; scazandu-se variabilele artificiale 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 functia
obiectiv adica z = cT x.
PASUL 1. Se determina o baza B primal admisibila (fie este disponibila di-
rect fie se determina cu ajutorul bazei artificiale prin metoda celor doua faze) si se
calculeaza:



xB = B1 b,
B
z = cTB xB ,

yjB = B1 aj , 1 j n,

z B c , 1 j n.
j j

Aceste valori se trec n tabelul simplex (tabelul 1.1) dupa care trecem la pasul
urmator.
Vom nota cu B multimea indicilor j care determina matricea B si prin R =
{1, . . . , n} B. Tabelul simplex initial are forma:

TABELUL 1.1

c1 ... cj ... cn
V.B. V.V.B. x1 ... xj ... xn
cB xB xB y1B ... yjB ... ynB
z zB z1B c1 ... zjB cj ... znB cn
8 PROGRAMARE LINIARA

B
PASUL 2. Daca zjB cj 0 j R, ne oprim (STOP): x este program optim.
In caz contrar se determina multimea (nevida):

R+ = {j R|zjB cj > 0}

si se trece la pasul urmator.


PASUL 3. Daca exista j R+ pentru care yjB 0 ne oprim (STOP): problema
are optim infinit. In caz contrar, determinam k R+ cu criteriul de intrare n baza:

max(zjB cj ) = zkB ck
j

B > 0} cu criteriul de iesire din baza:


si r B+ = {i B|yik

xB
i xB
r
min ( B
) = B
iB+ yik yrk
B se numeste pivot. Se trece la pasul urmator.
Elementul yrk

PASUL 4. Se considera baza B obtinuta din B prin nlocuirea coloanei ar cu
coloana ak , si se calculeaza valorile (prin formula de schimbare a bazei adica regula de

transformare a tabelului simplex) xB , z B , yjB , zjB cj si se trece la Pasul 2 nlocuind

peste tot baza B cu baza B .
Calculele pot fi simplificate 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 exceptia pivotului care
devine 1;
iii) celelalte elemente se transforma dupa regula dreptunghiului: daca ne ima-
B care trebuie
ginam dreptunghiul a carui diagonala este determinata de elementul yij
B
transformat si pivotul yrk B , atunci noua valoare y
ij se obtine mpartind la pivot
diferenta dintre produsul elementelor yij B y B situate pe diagonala considerata mai
rk
B y B situat pe cealalta diagonala a dreptunghiului.
sus si produsul yrj ik
Observatii. i) Daca la sfarsitul algoritmului zjB cj < 0 j R atunci solutia
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 solutiilor unei probleme de progra-
mare liniara n cazul bidimensional. Domeniul de admisibilitate poate fi:
DUALA UNEI PROBLEME DE PROGRAMARE LINIARA 9

-un poligon convex, iar cel putin unul dintre varfurile sale este solutie a problemei
de optimizare. Se poate ntampla ca solutia sa fie o latura a poligonului convex ce
determina domeniul de definitie, n acest caz avem mai multe solutii;
-un domeniu nemarginit, caz n care problema are optim infinit;
-multimea vida, caz n care problema de optimizare nu are solutie.

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 coeficienti ai functiei obiectiv n
problema duala;
b) coeficientii functiei 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 coeficientilor sistemului de restrictii din problema duala este trans-
pusa matricei coeficientilor sistemului de restrictii primale;
e) variabile duale (primale) asociate unor restrictii primale (duale) concordante
sunt supuse conditiilor de nenegativitate;
f) variabile primale (duale) asociate unor restrictii duale (primale) care sunt
restrictii neconcordante sunt supuse conditiei de nepozitivitate;
g) variabile duale (primale) asociate unor restrictii primale (duale) care sunt
ecuatii nu sunt supuse nici unei conditii privind semnul.
Remarcam ca duala unei probleme n forma canonica este tot n forma canonica.
Enuntam n continuare teorema fundamentala a dualitatii:
Teorema 1.4.1. Fiind dat cuplul de probleme duale:

min c0 x
Ax b

x0

si
max b0 y
A0 y c

y0
una si numai una din afirmatiile urmatoare este adevarata:
a) ambele probleme au programe. In acest caz, ambele probleme au programe
optime si valorile optime ale functiilor obiectiv coincid;
10 PROGRAMARE LINIARA

b) una din probleme are programe, iar cealalta nu are. In acest caz, problema
care nu are programe are optim infinit;
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 afirmam si despre algo-
ritmul simplex primal care rezolva problema primala, dupa care pune n evidenta
solutia problemei duale. Programul MAPLE are o procedura de constructie a dualei.
Sintaxa acesteia este:

> dual(functia liniara, multime de restrictii, nume variabila duala);

1.5. Problema de transport


Sa presupunem ca exista m centre de aprovizionare (depozite) si n centre de
consum (beneficiari). Un produs omogen este depozitat n cantitatile ai , 1 i m,
n centrele de aprovizionare si este cerut n cantitatile bj , 1 j n, la beneficiari.
Vom presupune ca sunt ndeplinite conditiile:

ai 0, 1 i m, bj 0, 1 j n,
(1.4)
a1 + . . . + am = b1 + . . . + bn .
Cu alte cuvinte, presupunem ca disponibilitatile si cererile sunt nenegative, iar
disponibilitatea egaleaza cererea totala. O astfel de problema de transport se numes-
te problema de transport echilibrata.
Problema consta n organizarea transportului de la depozite la beneficiari astfel
ncat sa se obtina cheltuieli minime de transport.
Sa notam cu xij cantitatea (necunoscuta) care urmeaza sa fie transportata de la
depozitul i la beneficiarul j. Cantitatea ce se transporta de la depozitul i la toti
beneficiarii trebuie sa egaleze disponibilitatea de la depozitul respectiv, adica:
n
X
xij = ai , 1 i m. (1.5)
j=1

Analog, cererea totala la beneficiarul j trebuie sa fie egala cu cantitatea care se


transporta de la toate depozitele la acest beneficiar, adica:
m
X
xij = bj , 1 j n. (1.6)
i=1

Evident, cantitatile transportate sunt nenegative, adica:

xij 0, 1 i m, 1 j n. (1.7)
APLICATII 11

Sistemul de inegalitati liniare 1.5-1.7 are n conditiile 1.4 o infinitate de solutii.


Ca si n cazul precedent, pentru adoptarea unui plan de transport vom introduce
un nou criteriu economic. Sa notam pentru aceasta prin cij costul transportului
unei unitati din produsul considerat de la depozitul i la beneficiarul j; evident, si n
acest caz presupunem ca acest cost unitar de transport nu depinde de cantitatea ce
urmeaza sa fie transportata din i n j. Este clar ca cheltuielile de transport sunt:
m X
X n
cij xij .
i=1 j=1

Problema consta n determinarea solutiilor sistemului de ecuatii si inegalitati


1.5-1.7 pentru care costul total de transport este minim, adica:

Pm P n

inf cij xij ,

i=1 j=1



P n
xij = ai , 1 i m,
j=1

P m



xij = bj , 1 j n,


i=1
xij 0, 1 i m, 1 j n.

1.6. Aplicatii

Exercitiul 1.6.1. Sa se scrie duala problemei de programare liniara:




min(2x1 + 3x2 + x3 ),


x1 + x2 + 3x4 3,
2x2 + 5x3 + 4x4 = 5,



x + x3 2,
1
x1 , x2 0, x3 arbitrar, x4 0.
Gasiti solutia optima a problemei primale.

Raspuns: Respectand regulile de formare a problemei duale obtinem:




max(3u1 + 5u2 2u3 ),
u + u 2,


1 3

u1 + 2u2 3,

5u2 + u3 = 1,



3u1 + 4u2 0,

u1 0, u2 arbitrar, u3 0.
12 PROGRAMARE LINIARA

Solutia problemei primale se poate gasi cu metoda simplex primal sau dual. Sin-
taxa MAPLE pentru rezolvarea acestei probleme este:
> with(simplex) :
> obiectiv := 2 x1 + 3 x2 + x3 ;
> restrictii := {x1 + x2 + 3 x4 >= 3, 2 x2 + 5 x3 + 4 x4 = 5, x1 + x3 <= 2};
> minimize(obiectiv, restrictii union {x1 >= 0, x2 >= 0, x4 <= 0});
Solutia furnizata de procedura fiind:
x1 = 0, x2 = 15/2, x3 = 2, x4 = 0,
valoarea functiei obiectiv fiind 41/2.

Exercitiul 1.6.2. Rezolvati urmatoarea problema de programare liniara pre-


cum si duala acesteia:


min(2x1 + 3x2 + x3 ),


x1 + x2 + 3x4 3,
2x2 + 5x3 + 4x4 = 5,



x + x3 2,
1
x1 , x2 0, x3 arbitrar, x4 0.
unde este un parametru real.

Exercitiul 1.6.3. Rezolvati urmatoarea problema de programare liniara pre-


cum si duala acesteia:


min(2x1 + 3x2 + x3 ),


x1 + x2 + 3x4 3 + ,
2x2 + 5x3 + 4x4 = 5 ,



x + x3 2 + 2,
1
x1 , x2 0, x3 arbitrar, x4 0.
este un parametru real.

Raspuns. Execitiile 1.6.2-1.6.3 se pot rezolva fie prin aplicarea metodei simplex
fie prin metoda postoptimizarii considerand n tabelul simplex, obtinut n problema
1.6.1., = 0.

Exercitiul 1.6.4. Sa se rezolve cu algoritmul simplex problema de programare


liniara:

max(2x1 + x2 ),


x1 x2 4,
3x1 x2 18,



x 1 + 2x2 6,

x1 , x2 0.
APLICATII 13

Exercitiul 1.6.5. Sa se minimizeze expresia 2x1 + 3x2 cu sistemul de restrictii:




x1 x2 + x3 = 1,


1 + x2 x4 = 1,
x
x1 2x2 + x5 = 1,



2x1 + x3 x4 = 2,

xi 0, i = 1, . . . , 5.

Raspuns. In urma aplicarii algoritmului simplex primal obtinem solutia x1 =


1, x2 = 0, x3 = 0, x4 = 0, x5 = 0, iar valoarea minima a functiei obiectiv z = 2.

Exercitiul 1.6.6. Rezolvati problema urmatoare:




min(x1 + 6x2 ),

2x1 + x2 3,
x1 + 3x2 4,


x1 , x2 0.

Raspuns. Vom rezolva problema grafic. Se va reprezenta ntr-un sistem de axe


de coordonate domeniul de admisibilitate. Pe acelasi grafic reprezentam si ecuatia
x1 + 6x2 = 0. Obtinem figura 1.1.

Figura 1.1: Domeniul de admisibilitate si functia obiectiv.

1
Vom duce drepte paralele cu x2 = x1 pana se intersecteaza cu domeniul
6
14 PROGRAMARE LINIARA

de admisibilitate. Prima dreapta care realizeaza aceasta intersectie ne furnizeaza


minimul functiei obiectiv zmin = 4.
Solutia optima este x1 = 4, x2 = 0.

Exercitiul 1.6.7. Gasiti minimul functiei 2x1 + 3x2 + x3 cu restrictiile:




x1 + x2 + 3x4 3,

2x2 + 5x3 + 4x4 = 5,
x1 + x3 2,


x1 , x2 , x3 , x4 {0, 1}.

Exercitiul 1.6.8. Sa se rezolve problema de programare liniara n forma stan-


dard:

min(2x1 + 3x2 ),

x1 x2 + x3 = 1,



x1 + x2 x4 = 1,

x1 2x2 + x5 = 1,


2x1 + x3 x4 = 2,


xi 0, 1 i 5.

Raspuns. Pentru rezolvarea problemei prin metoda simplex primal vom rezolva
mai ntai problema:


min(x6 + x7 + x8 ),

x

1 x2 + x3 + x6 = 1,

x1 + x2 x4 + x7 = 1,

x1 2x2 + x5 = 1,



2x1 + x3 x4 + x8 = 2,

xi 0, 1 i 8.
(s-au introdus variabilele ecart x6 , x7 , x8 n restrictiile problemei initiale, cu exceptia
celei de a treia restrictie, unde variabia x5 este asociata unui vector unitar al ma-
tricei coeficientilor). Baza primal admisibila este formata din coloanele matricei A
corespunzatoare variabilelor x6 , x7 , x5 , x8 . Tabelul simplex asociat 1.2 este:

TABELUL 1.2
V.B. V.V.B. x1 x2 x3 x4 x5 x6 x7 x8
x6 1 1 1 1 0 0 1 0 0
x7 1 1 1 0 1 0 0 1 0
x5 1 1 2 0 0 1 0 0 0
x8 2 2 0 1 1 0 0 0 1
4 4 0 2 2 0 0 0 0
APLICATII 15

Vectorul care intra n baza este evident a1 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 x6 , adica a6 . Obtinem deci tabelul simplex 1.3:

TABELUL 1.3
V.B. V.V.B. x1 x2 x3 x4 x5 x6 x7 x8
x1 1 1 1 1 0 0 1 0 0
x7 0 0 2 1 1 0 1 1 0
x5 0 0 1 1 0 1 1 0 0
x8 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 obtinut ne arata ca valoarea functiei obiectiv


este nula. Toate variabilele artificiale sunt nule, dar x7 si x8 sunt nca variabile de
baza. Se vede usor ca variabila x7 poate fi eliminata din baza si nlocuita cu x2 ,
deoarece pivotul y72B = 2 este nenul. Dupa calcule se obtine tabelul simplex 1.4:

TABELUL 1.4
V.B. V.V.B. x1 x2 x3 x4 x5 x6 x7 x8
x1 1 1 0 1/2 1/2 0 1/2 1/2 0
x2 0 0 1 1/2 1/2 0 1/2 1/2 0
x5 0 0 0 3/2 1/2 1 1/2 1/2 0
x8 0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 1 1 0

Variabila artificiala x8 nu mai poate fi eliminata dintre variabilele de baza, deoa-


rece toti coeficientii y8j , 1 j 5, sunt egali cu zero. Acest fapt ne arata ca
ecuatia a patra din problema initiala este o consecinta a celorlalte patru ecuatii
(ecuatia a patra este suma primelor doua ecuatii, situatie ce putea fi observata de
la nceput). In acest caz, ecuatia a patra poate fi neglijata si deci linia a patra
a tabelului simplex poate fi eliminata; partea ramasa a tabelului simplex nu mai
contine variabile artificiale de baza si, ca urmare, prima faza este terminata.
Vom trece acum la faza a doua a metodei, adica la rezolvarea problemei initiale,
folosind drept baza initiala ultima baza obtinuta din tabelul 1.4, dupa eliminarea
ultimei linii.
16 PROGRAMARE LINIARA

Tabelul simplex corespunzator este tabelul 1.5:

TABELUL 1.5
V.B. V.V.B. x1 x2 x3 x4 x5
x1 1 1 0 1/2 1/2 0
x2 0 0 1 1/2 1/2 0
x5 0 0 0 3/2 1/2 1
z 2 0 0 1/2 5/2 0

Deoarece zj cj 0 pentru toti j, 1 j 5, rezulta ca am obtinut programul


optim de baza (degenerat): x1 = 1, x2 = 0, x3 = 0, x4 = 0, x5 = 0, iar valoarea
optima a functiei obiectiv este z = 2.
Capitolul 2

PROGRAMARE DINAMICA

2.1. Forma unei probleme de optimizare secventiala


Programarea dinamica este o metoda de rezolvare a unei clase de probleme,
al caror model matematic prezinta caracteristicile unui sistem secvential. Intr-o
astfel de problema, la fiecare faza t T, cu T R, se alege o solutie (decizie,
strategie, politica) xt dintr-o multime de solutii admisibile Xt , Xt M nt , unde
M R, iar nt N , putandu-se de fiecare data masura eficienta (sau utilitatea)
ut a solutiei alese. Problema de optimizare consta n determinarea solutiei globale
x = (xt )tT care optimizeaza o functie de eficienta globala f care este definita cu
ajutorul functiilor de eficienta partiala ut , t T. Evolutia sistemului este descrisa
si de familia parametrilor de stare (st )tT a caror lege de variatie 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 St multimea starilor la momentul t.

Definitia 2.1.1. (Caracteristicile unui sistem secvential.) O functie s : T St


cu s(t) = st t T, st St se numeste traiectoria, corespunzatoare deciziei globale
x = (xt )tT , a sistemului secvential. Aceasta descrie starea sistemului de-a lungul
ntregii perioade de timp T , n conditiile alegerii deciziei x.

Avem n general:

xt = xt (st )
ut : Sti1 Xti R, uti = uti (sti , xti )
i
ti : Sti1 Xti Sti , ti = ti (sti1 , xti ).

Traiectoria s depinde de starea initiala st0 = s0 St0 , t0 fiind momentul initial.

17
18 PROGRAMARE DINAMICA

Definitia 2.1.2. Se numeste traiectorie optima traiectoria s corespunzatoare


unei decizii optime x care optimizeaza functia obiectiv.

Tehnica programarii dinamice consta n determinarea solutiilor optime globale si


a valorii optime a functiei obiectiv, prin rezolvarea secventiala a unor probleme de
optimizare asociate problemei initiale, dar mult mai simple decat aceasta deoarece
optimul se calculeaza dupa o singura variabila. Bellman a formulat n 1957 prin-
cipiul optimalitatii: o conditie necesara ca o traiectorie s sa fie optima este ca
t1 , t2 T, t1 < t2 , s |[t1 ,t2 ] sa fie traiectorie optima a sistemului restrictionat
la intervalul [t1 , t2 ], cand st1 = s (t1 ) adica orice substrategie a unei strategii optime
este ea nsasi optima.
Pentru a fixa ideile, n cele ce urmeaza, vom presupune ca avem de-a face cu o
problema de minimizare, toate consideratiile fiind valabile fara nici un fel de restrictii
si pentru problema de maxim. Forma generala a unei probleme de optimizare (mini-
mizare) ce urmeaza a fi rezolvata prin aceasta tehnica este urmatoarea:

min{f (u1 (s0 , x1 ), . . . , un (sn1 , xn ))|x1 X1 (s0 ), . . . , xn Xn (sn1 )}
si = i (si1 , xi ), i = 1, n

si Si , i = 1, n.

Problema de optimizare astfel definita se numeste efectiv decompozabila, adica


vectorul de stare si , la iesirea din faza i, nu depinde decat de vectorul de stare si1
si de decizia xi , luata n faza i. Functiile ui sunt functiile de eficienta la faza i cand
se ia decizia xi stiind ca vectorul de stare este si .
Toate elementele descriptive ale unei probleme de optimizare sunt determinate
de o decizie aleasa si de starea initiala s0 :

s1 = 1 (s0 , x1 ) = 1 (s0 , x1 ), u1 (s0 , x1 ) =u1 (s0 , x1 ), x1 X1 (s0 ) =X 1 (s0 )


s2 = 2 (1 (s0 , x1 ), x2 ) = 2 (s0 , x1 , x2 ), u2 (s1 , x2 ),

u2 (1 (s0 , x1 ), x2 ) = u2 (s0 , x1 , x2 ), x2 X2 (1 (s0 , x1 )) =X 2 (s0 , x1 )

...........................................


si = i (i1 (s0 , x1 , x2 , . . . , xi1 ), xi ) = i (s0 , x1 , x2 , . . . , xi ),

ui (si1 , xi ) = ui ( i1 (s0 , x1 , x2 , . . . , uxi1 ), xi ) =ui (s0 , x1 , . . . , xi ),

xi Xi ( i1 (s0 , x1 , x2 , . . . , xi1 ))

= X i (s0 , x1 , . . . , xi1 ) pentru i = 2, n.
TEOREMA DE OPTIM 19

Functia obiectiv se scrie:


f (u1 (s0 , x1 ), u2 (s0 , x1 , x2 ), . . . , un (s0 , x1 , . . . , xn )) =f (s0 , x1 , . . . , xn ).

Definitia 2.1.3. O solutie (decizie) x (s0 ) = (x1 (s0 ), . . . , xn (s0 )) admisibila se


spune ca este optima relativ la starea initiala s0 pentru o problema de optimizare
sub forma secventiala, daca:


f (s0 , x1 (s0 ), . . . , xn (s0 )) = min{f (s0 , x1 , . . . , xn )|x1 X 1 (s0 ), . . . ,

. . . , xi X i (s0 , x1 , . . . , xi1 ), i = 1, n}.

Rezolvarea unei probleme de optimizare pusa n forma secventiala consta n


gasirea unei solutii x (s0 ) = (x1 (s0 ), . . . , xn (s0 )), n functie de starea initiala s0 ,
astfel ncat functia de eficienta globala f sa fie optima.

2.2. Teorema de optim


Pentru a formula teorema de optim trebuie sa definim mai ntai notiunea de
functie decompozabila. In esenta, acest lucru nseamna ca problema se poate de-
scompune ntr-un numar de faze.

Definitia 2.2.1. O functie f : D = S X Y R, unde X, Y si S sunt


multimi nevide se numeste decompozabila daca exista functiile u, v : D R, u fiind
constanta n raport cu variabila y Y (exista u : S X R astfel ncat u (s, x, y) =
u(s, x), (s, x, y) D) si o functie F :u (D)v(D) R, F (, .) monoton crescatoare
pentru fiecare 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 f (s, x, y); min F (u(s, x), min v(s, x, y)); min min f (s, x, y),
x,y x y x y

atunci pentru orice s S avem:

min f (s, x, y) = min F (u(s, x), min v(s, x, y)).


x,y x y
20 PROGRAMARE DINAMICA

2.3. Programare dinamica regresiva


2.3.1. Ecuatiile programarii dinamice regresive
Pentru a pune sub forma unui algoritm problema secventiala trebuie sa existe o
anume legatura de tip recursiv ntre functiile de eficienta trunchiate ale procesului
la fazele i:
fni+1 (ui (si1 , xi ), . . . , un (sn1 , xn )) =
= Fni+1 (ui (si1 , xi ), fni (ui+1 (si , xi+1 ), . . . , un (sn1 , xn )),
unde prin fni+1 s-a notat functia de eficienta asociata procesului de decizie trun-
chiat la fazele i, i + 1, . . . , n pentru i = 1, 2, . . . , n 1, cu f1 (un ) = un si fn = f.
Aceasta proprietate se numeste proprietatea de decompozabilitate a functiei obiectiv.
Ecuatia se rescrie:


f ni+1 (si1 , xi , . . . , xn ) = Fni+1 (ui (si1 , xi ), f ni (i (si1 , xi ),
xi+1 , . . . , xn )),

i = 1, n 1, si1 Si1 , xi Xi (si1 ), xn Xn (sn1 ),



cu f 1 = un si f n =f = f.

Aplicam teorema de optim functiilor f ni+1 pentru i = 1, 2, . . . , n 1 :

min{f ni+1 (si1 , xi , . . . , xn )|xi , . . . , xn } =

= min Fni+1 (ui (si1 , xi ), min{ f ni (i (si1 , xi ), xi+1 , . . .
xi
. . . , xn )|xi+1 , . . . , xn }).

Notam cu gni+1 (si1 ) = min{f ni+1 (si1 , xi , . . . , xn )|xi , . . . , xn }, valoarea opti-
mului procesului de decizie trunchiat la fazele i, i + 1, . . . , n. Avem:
gni (si1 ) = gni (i (si1 , xi ))
si obtinem:
gni+1 (si1 ) = min Fni+1 (ui (si1 , xi ), gni (i (si1 , xi )), i = 1, n 1
xi
cu
g1 (sn1 ) = min un (sn1 , xn ).
xi
Aceste ecuatii se numesc ecuatiile programarii dinamice regresive.
PROGRAMARE DINAMICA REGRESIVA 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 codifica sub forma unei probleme de pro-
gramare liniara, punandu-se n evidenta functia obiectiv si sistemul de restrictii
corespunzator.
PASUL 1. Se pune problema sub forma unui proces secvential de decizie urma-
rindu-se urmatoarele elemente:
i) forma functionala a functiilor de transfer i : Si1 Xi Si :

si = i (si1 , xi ), i = 1, n.

ii) spatiul starilor posibile: S0 , S1 , . . . , Sn ;


iii) spatiul deciziilor: Xi (si1 );
iv) functiile partiale de eficienta ui (si1 , xi ), i = 1, 2, . . . , n;

v) functiile obiectiv ale proceselor trunchiate la fazele i, i+1, . . . , n : f i (xi , . . . , xn )
pentru i = 1, 2, . . . , n.
PASUL 2. Se rezolva problema din faza n, adica se calculeaza:


min{f 1 (sn1 , xn )|xn Xn (sn1 )} = min{un (sn1 , xn )|xn Xn (sn1 )} = g1 (sn1 ),

unde sn1 este parametru.


Deci pentru sn1 Sn1 se determina xn1 (sn1 ) Xn (sn1 ), astfel ncat:

g1 (sn1 ) = un (sn1 , xn1 (sn1 )).

Se atribuie contorului i valoarea n 1. Acest contor are semnificatia fazei i a


procesului secvential.
PASUL 3. Se rezolva problema din faza i a carei necunoscuta este xi , iar si1
este parametru. Deci pentru si1 Si1 , se determina valorile xi (si1 ) Xi (si1 )
pentru care:

gni+1 (si1 ) = Fni+1 (ui (si1 , xi (si1 )), gni (i (si1 , xi (si1 ))))

= min{f ni+1 (si1 , xi , . . . , xn )|xi Xi (si1 )}.

actualizeaza i := i + 1.
PASUL 4. Daca i > 1 goto PASUL 3.
Se determina, pentru s0 S0 , valoarea x1 (s0 ) pentru care avem:

f (s0 , x1 (s0 ), . . . , xn (s0 )) = min{f n (s0 , x1 , . . . , xn )|x1 , . . . , xn } = gn (s0 ),
22 PROGRAMARE DINAMICA

unde x2 (s0 ) = x2 (1 (s0 , x1 (s0 )) etc.


PASUL 5. Se optimizeaza pe multimea vectorilor initiali pentru a afla s0 :

f (s0 , x1 (s0 ), . . . , xn (s0 )) = min gn (s0 ) = gn (s0 ),
s0 S0

atins pentru starea initiala s0 .


PASUL 6. Se scrie solutia optima:

x = (x1 , . . . , xn )

unde x1 = x1 (s0 ), x2 = x2 (1 (s0 , x1 (s0 )) etc.

2.3.3. Aplicatii

Exercitiul 2.3.1. O unitate comerciala trebuie sa raspunda unei cereri de 25


unitati dintr-un anumit tip de produs, cerere esalonata pe o perioada de 4 luni. La
nceputul fiecarei 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 unitatii cu produsul respec-


tiv, astfel ncat toate cererile sa fie satisfacute, stiind ca n depozitul respectiv se
gasesc la nceputul primei luni 3 unitati de produs si ca nu pot fi pastrate n depozit
mai mult de 9 unitati 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 fie de 25 unitati avem: 5 + 7 + + 5 =
= 25 deci = 8. Se codifica problema:
Se noteaza cu xi numarul de unitati comandate la nceputul lunii i si cu si stocul
existent la sfarsitul lunii i. Functia de minimizat este:

12x1 + 10x2 + 9x3 + 10x4 ,

putem deci presupune ca = 1 avand grija ca la final sa nmultim valoarea optima


a functiei obiectiv cu .
PROGRAMARE DINAMICA REGRESIVA 23

Avem: 3 + x1 + x2 + x3 + x4 = 25 sau x1 + x2 + x3 + x4 = 22.


3 + x1 9 si 3 + x1 5 0 deci x1 [2, 6],
3 + x1 5 + x2 9 si 3 + x1 5 + x2 7 0 deci x1 + x2 [9, 11],
3+x1 5+x2 7+x3 9 si 3+x1 5+x2 7+x3 8 0 deci x1 +x2 +x3 [17, 18]
3 + x1 5 + x2 7 + x3 8 + x4 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 unitati de produs) si 3 + x1 5 + x2 7 + x3 8 + x4 5 = 0 (ecuatie
ce constituie o verificare partiala).
Problema de minimizat devine:


min(12x1 + 10x2 + 9x3 + 10x4 )


2 x1 6
9 x1 + x2 11



4 x4 5

x1 + x2 + x3 + x4 = 22.

PASUL 1. Se determina spatiul starilor Si , i = 0, 4:


s0 = 3 S0 = {3},
s1 = s0 + x1 5 = x1 2 S1 = [0, 4],
s2 = s1 + x2 7 = x1 + x2 9 S2 = [0, 2],
s3 = s2 + x3 8 = x1 + x2 + x3 17 S3 = [0, 1],
s4 = s3 + x4 5 = x1 + x2 + x3 + x4 17 5 = 0 S4 = {0}.
Se determina spatiul deciziilor Xi (si1 ), i = 1, n :
x1 X1 (s0 ) = [5 s0 , 9 s0 ] = [2, 6],
x2 X2 (s1 ) = [7 s1 , 9 s1 ],
x3 X3 (s2 ) = [8 s2 , 9 s2 ],
x4 X4 (s3 ) = {5 s3 }.
Functiile de transfer: i (si1 , xi ), i = 1, n :
1 (s0 , x1 ) = s0 + x1 5,
2 (s1 , x2 ) = s1 + x2 7,
3 (s2 , x3 ) = s2 + x3 8,
4 (s3 , x4 ) = s3 + x4 5 = 0.
Functiile partiale de eficienta sunt:
u1 (s0 , x1 ) = 12x1 ,
u2 (s1 , x2 ) = 10x2 ,
u3 (s2 , x3 ) = 9x3 ,
u4 (s3 , x4 ) = 10x4 , si functiile de eficienta ale proceselor de decizie trunchiate la
fazele {i, . . . , 4} (pentru i = 1, . . . , 4) sunt:

f 4 = 12x1 + 10x2 + 9x3 + 10x4 ,

f 3 = 10x2 + 9x3 + 10x4 ,
24 PROGRAMARE DINAMICA


f 2 = 9x3 + 10x4 ,

f 1 = 10x4 .
PASUL 2. Se rezolva problema:


min{f 1 (sn1 , xn )|xn Xn (sn1 )} = min{u4 (s3 , x4 )|x4 X4 (s3 )} =
= min{10x4 |x4 {5 s3 }} = 10(5 s3 ) = 50 10s3 ,

minim atins pentru x4 (s3 ) = 5 s3 .


PASUL 3/4. Se rezolva problema:

min{f 3 |x3 X3 (s2 )} = min{9x3 + 50 10s3 |x3 [8 s2 , 9 s2 ]} =
= min{9x3 + 50 10(s2 + x3 8)|x3 [8 s2 , 9 s2 ]} =
= min{x3 10s2 + 130|x3 [8 s2 , 9 s2 ]} = (9 s2 ) 10s2 + 130 =
= 121 9s2 ,
minim atins pentru x3 (s2 ) = 9 s2 .
Se rezolva problema:

min{f 2 |x2 X2 (s1 )} = min{10x2 + 121 9s2 |x2 [7 s1 , 9 s1 ]} =
= min{10x2 + 121 9(s1 + x2 7)|x2 [7 s1 , 9 s1 ]} =
= min{x2 9s1 + 184|x2 [7 s1 , 9 s1 ]} = 7 s1 9s1 + 184 = 10s1 + 191,

minim atins pentru x2 (s1 ) = 7 s1 .


Se rezolva problema:

min{f 1 |x1 X1 (s0 )} = min{12x1 + 191 10s1 |x1 [2, 6]} =
= min{12x1 + 191 10(s0 + x1 5)|x1 [2, 6]} =
= min{2x1 10s0 + 241|x1 [2, 6]} = 243 10s0 ,

minim atins pentru x1 (s0 ) = 2, s0 = 3.


PASUL 5. Avem:
s1 = s0 + x1 5 = 0 deci x2 (s1 ) = 7,
s2 = s1 + x2 7 = 0 deci x3 (s2 ) = 9,
s3 = s2 + x3 8 = 1 deci x4 (s3 ) = 4.
PASUL 6. Solutia optima x = (2, 7, 9, 4) iar traiectoria optima este s =
(0, 0, 1, 0).

Exercitiul 2.3.2. Un depozit trebuie sa raspunda unei cereri de marfa totale de


unitati de produs de la m beneficiari (cererea fiecarui beneficiar este de i unitati
de produs). Daca costul de aprovizionare si transport al unei unitati de produs la
PROGRAMARE DINAMICA REGRESIVA 25

beneficiarul i este i , iar depozitul dispune initial de unitati de produs si daca


acesta nu poate detine n stoc mai mult de unitati de produs sa se determine
politica optima de reaprovizionare cu produsul respectiv astfel ncat toate cererile
sa fie satisfacute. La final mai exista n stoc unitati de produs.

Indicatie. Se noteaza cu xi numarul de unitati de produs comandate la nceputul


livrarii i si cu si stocul existent dupa livrarea i. Problema de programare ce trebuie
rezolvata este:

Pm

min i xi



P m
i=1

xi = + ,
i=1

Pj Pj j1
P



i xi i + j = 1, m,

i=1 i=1 i=1

xi 0 i = 1, m.

P
m
unde = i . Se vor pune n evidenta functiile reciproce de transfer, functiile
i=1
partiale de eficienta, functiile de eficienta ale proceselor trunchiate, spatiul starilor
si spatiile de decizie.
Problema se va rezolva prin metoda programarii regresive n n faze.

Exercitiul 2.3.3. Sa se gaseasca o planificare optima unei investitii de 5 mili-


oane dolari pentru construirea a trei obiective cunoscand randamentele investitiilor
pe obiective, asa cum sunt prezentate n tabelul 2.2.

TABELUL 2.2
Investitii 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(r1 (x1 ) + r2 (x2 ) + r3 (x3 ))
x1 + x2 + x3 = 5,

xi {0, 1, 2, 3, 4, 5}, i = 1, 2, 3, 4, 5.
26 PROGRAMARE DINAMICA

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


ntai problema sub forma unui proces secvential de decizie. Pentru realizarea acestui
scop, se noteaza cu si , i = 1, 2, 3, suma investita n primul obiectiv, n primul si al
doilea, si respectiv suma investita n cele trei obiective. Avem: s0 = 0, s1 = s0 + x1 ,
s2 = s1 + x2 , s3 = s2 + x3.
Folosind aceste egalitati, obtinem cu ajutorul sistemului de restrictii, S0 = {0},
S1 = S2 = {0, 1, 2, 3, 4, 5}, S3 = {5}.
X1 (s0 ) = {0, 1, 2, 3, 4, 5}, X2 (s1 ) = {0, . . . , 5 s1 }, X3 (s2 ) = {5 s2 }.
Remarcam ca avem urmatoarele functii de transfer:
1 (s0 , x1 ) = s0 + x1 , 2 (s1 , x2 ) = s1 + x2 , 3 (s2 , x3 ) = s2 + x3 .
Functiile partiale de eficienta, precum si functiile de decizie ale proceselor de
decizie trunchiate la fazele {i, . . . , 3} (pentru i = 1, . . . , 3) sunt urmatoarele:
u1 (s0 , x1 ) = r1 (x1 ), u2 (s1 , x2 ) = r2 (x2 ), u3 (s2 , x3 ) = r3 (x3 ),

f 3 = r1 (x1 ) + r2 (x2 ) + r3 (x3 ), f 2 = r2 (x2 ) + r3 (x3 ), f 1 = r3 (x3 ).
Se constata ca problema este decompozabila regresiv cu Fi (, ) = + , unde
i = 2, 3. Se trece acum la rezolvarea problemelor de optim corespunzatoare fiecarei
faze, folosind ecuatiile programarii regresive si obtinem:
Faza 3. Avem:

g1 (s2 ) = max{r3 (x3 )|x3 X3 (s2 )} = r3 (5 s2 ),

obtinut pentru x3 (s2 ) = 5 s2 .


Faza 2. Avem:

g2 (s1 ) = max{r2 (x2 ) + g1 (s1 + x2 )|x2 X2 (s1 )}


= max{r2 (x2 ) + r3 (5 s1 x2 )|x2 X2 (s1 )}.

Succesiv obtinem:
g2 (0) = max{0, 80; 0, 88; 0, 83; 0, 87; 0, 82; 0, 79} = 0, 88 pentru x2 (0) = 1;
g2 (1) = max{0, 65; 0, 72; 0, 71; 0, 69; 0, 63} = 0, 72 pentru x2 (1) = 1;
g2 (2) = max{0, 49; 0, 60; 0, 53; 0, 50} = 0, 60 pentru x2 (2) = 1;
g2 (3) = max{0, 37; 0, 42; 0, 34} = 0, 42 pentru x2 (3) = 1;
g2 (4) = max{0, 19; 0, 23} = 0, 23 pentru x2 (4) = 1;
g2 (5) = max{0} = 0 pentru x2 (5) = 1.
Faza 1. Avem:

g3 (s0 ) = max{r1 (x1 ) + g2 (s0 + x1 )|x1 X1 (s0 )} =


= max{0, 88; 0, 92; 0, 95; 0, 93; 0, 91; 0, 75} = 0, 95,

obtinut pentru x1 (s0 ) = 2, unde s0 = s0 = 0. Avem n continuare, s1 = = s0 +x1 = 2,


de unde x2 (s1 ) = 1; s2 = s1 +x2 = 3, de unde x3 (s2 ) = = 5s2 = 2; s3 = s2 +s3 = 5.
PROGRAMARE DINAMICA PROGRESIVA 27

In concluzie, am obtinut: max(r1 (x1 ) + r2 (x2 ) + r3 (x3 )) = 0, 95, pentru solutia


optima unica x = (x1 , x2 , x3 ) = (2, 1, 2), iar traiectoria optima a procesului este
s = (2, 3, 5).

2.4. Programare dinamica progresiva


2.4.1. Ecuatiile programarii dinamice progresive
Procedura iterativa descrisa n paragraful anterior este valabila fara nici o res-
trictie asupra starii initiale sau finale. Aceste doua stari au n mod evident, roluri
importante, asa cum s-a vazut pentru starea s0 . In timp ce s1 , . . . , sn1 sunt stari
de intrare si iesire, s0 este numai stare de intrare pentru faza 1 a problemei, iar sn
numai stare de iesire pentru faza n a problemei.
Din punct de vedere matematic singurul lucru care deosebeste s0 de sn este sensul
de parcurs adoptat pentru procedura de rezolvare, sens care a fost impus de ecuatiile:

si = i (si1 , xi ), 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 restrictii asupra
starilor s0 si/sau sn .
Daca s0 este impusa, optimizarea din ultima faza a problemei conduce la un
singur gn (s0 ) deoarece s0 nu mai este parametru, iar n faza 1 luam direct s0 = s0 .
Deci schema propusa este viabila.
Daca sn este impusa, adica sn = sn cu sn dat, trebuie ca starea initiala s0 si
solutia optima x (s0 ) sa satisfaca relatia:

sn = n (n1 (. . . 2 (1 (s0 , x1 (s0 )), x2 (s0 )), . . . , xn (s0 )).

Aceasta relatie nu poate fi verificata decat la sfarsitul procedurii, lucru care sporeste
timpul de procesare. Metoda de reducere la cazul precedent este mult mai eficace,
daca vom reusi sa schimbam sensul n care au fost facute calculele adica sa mergem
spre viitor prin folosirea functiilor reciproce de transfer:

si1 = i (si , xi ), i = 1, n.

Functiile elementare de eficienta ui , pentru i = 1, . . . , n, respectiv functia obiectiv


globala f , devin ui ( i (si , xi ), xi ) =ui (si , xi ), pentru i = 1, . . . , n, respectiv:

f (u1 (s0 , x1 ), . . . , un (sn1 , xn )) = f (u1 (s1 , x1 ), . . . , un (sn , xn ))

= f (sn , x1 , . . . , xn ),
28 PROGRAMARE DINAMICA

unde de data aceasta, n mod similar cu ceea ce s-a aratat anterior, toate elementele
descriptive ale problemei pot fi exprimate ca functie de decizie aleasa si starea s0 .
Similar se defineste decompozabilitatea progresiva si se ajunge la ecuatiile 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 codifica sub forma unei probleme de pro-
gramare liniara, punandu-se n evidenta functia obiectiv si sistemul de restrictii
corespunzator.
PASUL 1. Se pune problema sub forma unui proces secvential de decizie avandu-
se n vedere urmatoarele elemente:

i) forma functionala a functiilor reciproce de transfer i : Si Xi Si1 :

si1 = i (si , xi ), i = 1, n.

ii) spatiul starilor posibile: S0 , S1 , . . . , Sn ;



iii) spatiul deciziilor: X i (si );

iv) functiile partiale de eficienta ui (si , xi ), i = 1, 2, . . . , n;


v) functiile obiectiv ale proceselor secventiale trunchiate la fazele 1, . . . , i : f i
(x1 , . . . , xi ) pentru i = 1, 2, . . . , n.
PASUL 2. Se rezolva problema din faza 1, adica se calculeaza:


min{f 1 (s1 , x1 )|x1 X 1 (s1 )} = min{u1 (s1 , x1 )|x1 X 1 (s1 )} = g1 (s1 ),

unde sn1 este parametru. Deci pentru s1 S1 se determina valoarea x1 (sn ) X 1
(s1 ), astfel ncat:

g1 (s1 ) =u1 (s1 , x1 (s1 )).
Se atribuie contorului i valoarea 2. Acest contor are semnificatia fazei i a procesului
secvential.
PASUL 3. Se rezolva problema din faza i a carei necunoscuta este xi , iar si

este parametru. Deci pentru si Si , se determina xi (si ) X i (si ) astfel ncat:

gi (si ) =F i (ui (si , xi (si )), gi1 ( i (si , xi (si )))).

actualizeaza i := i + 1;
PROGRAMARE DINAMICA PROGRESIVA 29

PASUL 4. Daca i < n goto PASUL 3.


PASUL 5. Se determina xn (sn ) X n (sn ) cu sn = sn si avem:


f (sn , x1 (sn ), . . . , xn (sn )) = min{f n (sn , x1 , . . . , xn )|x1 , . . . , xn } =g n (sn ),

unde xn1 (sn1 ) = xn1 = xn1 ( n (sn , xn )) etc.


PASUL 6. Se scrie solutia optima:

x = (x1 , . . . , xn )

unde xn = xn (sn ), xn1 = xn1 ( n (sn , xn )) etc.


Observatii. i) Daca starile s0 sau sn sunt cunoscute, se merge de la starea ne-
cunoscuta spre starea cunoscuta.
ii) Daca ambele stari sunt impuse si daca se pot defini functiile 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. Aplicatii

Exercitiul 2.4.1. Aplicatia similara celei de la paragraful de aplicatii core-


spunzator programarii dinamice regresive.

Raspuns. Pasul 0 este identic cu cel de la rezolvarea aplicatiei de la capitolul


programarii regresive.
PASUL 1. Se determina functiile reciproce de transfer:
1 (s1 , x1 ) = s1 x1 + 5,
2 (s2 , x2 ) = s2 x2 + 7,
3 (s3 , x3 ) = s3 x3 + 8,
4 (s4 , x4 ) = s4 x4 + 5.
Functiile partiale de eficienta sunt:
u1 (s1 , x1 ) = 12x1 ,
u2 (s2 , x2 ) = 10x2 ,
u3 (s3 , x3 ) = 9x3 ,
u4 (s4 , x4 ) = 10x4 .
Functiile de eficienta ale proceselor trunchiate la fazele 1, . . . , i (pentru i =
1, . . . , 4) sunt:

f 1= 12x1 ,

f 2 = 12x1 + 10x2 ,
30 PROGRAMARE DINAMICA


f 3= 12x1 + 10x2 + 9x3 ,

f 4 = 12x1 + 10x2 + 9x3 + 10x4 .
Noile spatii de decizie se determina succesiv:
Din s0 = 3 rezulta s1 x1 + 5 = 3 sau x1 = s1 + 2 de unde x1 {s1 + 2},
din s1 [0, 4] rezulta s2 x2 + 7 [0, 4] de unde x2 [s2 + 3, s2 + 7],
din s2 [0, 2] rezulta s3 x3 + 8 [0, 2] de unde x3 [s3 + 6, s3 + 8],
din s3 [0, 1] rezulta s4 x4 + 5 [0, 1] de unde x4 [s4 + 4, s3 + 5].
PASUL 2. Se rezolva problema din faza 1 adica se calculeaza:

min{f 1 |x1 X 1 (s1 )} = min{12x1 |x1 {s1 + 2}} = 12s1 + 24,
minim atins pentru x1 (s1 ) = s1 + 2.
PASUL 3/4. Se rezolva problema:

min{f 2 |x2 X 2 (s2 )} = min{12x1 + 10x2 |x2 [s2 + 3, s2 + 7]} =
= min{10x2 + 12s1 + 24)|x2 [s2 + 3, s2 + 7]} =
= min{10x2 + 12(s2 x2 + 7) + 24)|x2 [s2 + 3, s2 + 7]} =
= min{2x2 + 12s2 + 108|x2 [s2 + 3, s2 + 7]} =
= 2(s2 + 7) + 12s2 + 108 = 10s2 + 94,
minim atins pentru x2 (s2 ) = s2 + 7.
Se rezolva problema:

min{f 3 |x3 X 3 (s3 )} = min{12x1 + 10x2 + 9x3 |x3 [s3 + 6, s3 + 8]} =
= min{9x3 + 10s2 + 94|x3 [s3 + 6, s3 + 8]} =
= min{9x3 + 10(s3 x3 + 8) + 94|x3 [s3 + 6, s3 + 8]} =
= min{x3 + 10s3 + 174|x3 [s3 + 6, s3 + 8]} =
= s3 8 + 10s3 + 174 = 9s3 + 166,
minim atins pentru x3 (s3 ) = s3 + 8.
Se rezolva problema:

min{f 4 |x4 X 4 (s4 )} = min{12x1 + 10x2 + 9x3 + 10x4 |x4 [s4 + 4, s3 + 5]} =
= min{10x4 + 9s3 + 166|x4 [s4 + 4, s3 + 5]} =
= min{10x4 + 9(s4 x4 + 5) + 166|x4 [s4 + 4, s3 + 5]} =
= min{x4 + 9s4 + 211|x4 [s4 + 4, s3 + 5]} =
= 10s4 + 215 = 215,
minim atins pentru x4 (s4 ) = s4 + 4 = 4, unde s4 = 0.
PASUL 5. Avem:
s3 = s4 x4 + 5 = 1 si x3 = s3 + 8 = 9,
s2 = s3 x3 + 8 = 0 si x2 = s2 + 7 = 7,
s1 = s2 x2 + 7 = 0 si x1 = s1 + 2 = 2.
PASUL 6. Solutia optima este:
PROGRAMARE DINAMICA PROGRESIVA 31

x = (2, 7, 9, 4), iar traiectoria optima s = (0, 0, 1, 0), deci s-a obtinut aceeasi
solutie ca n rezolvarea problemei prin metoda regresiva.

Exercitiul 2.4.2. Un depozit trebuie sa raspunda unei cereri de marfa totale de


unitati de produs de la m beneficiari (cererea fiecarui beneficiar este de i unitati
de produs). Daca costurile de transport al unei unitati de produs la beneficiarul i
este i si daca depozitul dispune initial de unitati de produs, iar daca acesta nu
poate detine n stoc mai mult de unitati de produs sa se determine politica optima
de reaprovizionare cu produsul respectiv astfel ncat toate cererile sa fie satisfacute.
In final depozitul nu mai are nici o cantitate n stoc.

Indicatie. Vom nota cu xi numarul de unitati de produs comandate la nceputul


livrarii i si cu si stocul existent dupa livrarea i. Problema de programare ce trebuie
rezolvata este:

Pm

min i xi




i=1
P x = ,
m
i
i=1

P j Pj j1
P



i xj i + j = 1, m,


i=1 i=1 i=1
xi 0 i = 1, m.

P
m
unde = i . Se vor pune n evidenta functiile reciproce de transfer, functiile
i=1
partiale de eficienta, functiile de eficienta ale proceselor trunchiate, spatiul starilor
si spatiile 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.

Exercitiul 2.4.3. Rezolvati 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. Aplicati pentru rezolvarea problemei algoritmul
simplex primal. Scrieti duala problemei de programare liniara asociata. Rezolvati
programul dual.

Indicatie. Aplicand exercitiul precedent restrictia a doua devine:

1 x1 ,
32 PROGRAMARE DINAMICA

sau 10 3 x1 10 3 deci x1 = 7. Restrictia a treia devine:

1 + 2 x1 + x2 1 + ,

sau 10 + 8 3 3 + x2 10 + 10 3 deci 12 x2 20 etc.

Exercitiul 2.4.4. Generalizati problema de la exercitiul 2.4.2 la o problema cu


n depozite. Rezolvati aceasta problema prin metoda programarii dinamice si apoi
prin metoda de rezolvare a problemelor clasice de transport.

Exercitiul 2.4.5. Un tren de marfa cu capacitatea maxima z trebuie sa trans-


porte diferite cantitati de N marfuri diferite. Sa notam cu vi valoarea celui de al i-lea
tip de marfa si cu wi greutatea sa. Sa se determine ncarcatura de valoare maxima.
Aplicatie numerica N = 3, z = 100 t, v1 = 10$, v2 = 30$, v3 = 5$, w1 = 150 t,
w2 = 20 t, w3 = 30 t.

Indicatie. Daca notam cu xi numarul articolelor din marfa i care sunt ncarcate,
atunci problema de programare liniara de rezolvat este:

PN

max xi vi ,

i=1
P
N

xi wi z,

i=1

xi 0, i = 1, N .

Problema se poate rezolva prin metodele programarii dinamice sau cu algoritmul


simplex.
Capitolul 3

TEORIA JOCURILOR

3.1. Notiuni introductive

De foarte multe ori suntem pusi n fata unor situatii conflictuale a caror evolutie
ulterioara depinde de decizia sau planul adoptat, numita si strategie. Prin termenul
de evolutie se ntelege modificarea unei functii obiectiv numita n acest caz functie
de pierdere sau castig, deci prin joc n cele ce urmeaza se ntelege acea situatie
care functioneaza dupa reguli bine definite, n care doua sau mai multe elemente de-
cizionale, numite jucatori, aleg o decizie dintr-o multime de variante bine specificate.
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 partile implicate n joc urmareste optimizarea
functiei obiectiv, iar strategia care realizeaza aceasta optimizare se numeste strategie
optima.
Din punct de vedere al castigului jocurile se clasifica n:
-jocuri cu suma nula: sunt acele jocuri n care suma pierderilor fiecarui 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 ceilalti jucatori.
O alta clasificare este dupa cardinalul numarului de strategii: jocuri finite sau
infinite.
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 LA (a, b) si LB (a, b) pierderile
corespunzatoare fiecarui jucator, castigul fiind considerat o pierdere negativa. Suma

33
34 TEORIA JOCURILOR

pierderilor celor doi jucatori este:

LA (a, b) + LB (a, b).

Daca jocul este cu suma nula atunci LA (a, b) + LB (a, b) = 0. Deci, LB (a, b) =
LA (a, b) = L(a, b), unde L(a, b) este castigul jucatorului A daca acesta joaca strate-
gia a iar raspunsul lui B fiind 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 definite avem:

Definitia 3.1.1. Se numeste joc tripletul J = (X, Y, L) unde X = {a1 , . . . , am }


si Y = {b1 , ..., bn } sunt multimile de strategii pure ale celor doi jucatori, iar L :
X Y R este functia de castig care se poate exprima sub forma matriceala:

q11 ... q1n
Q = ... ... ...
qm1 ... qmn

n care qij = L(ai , bj ), 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 qij .

Exemplul 3.1.1. Jocul consta n aruncarea monedei n care fiecare 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:

x x
Q= .
x x

3.2. Principiul minimax


Teoria jocurilor are ca rol elaborarea unor planuri rationale de actiune pentru
cazurile conflictuale. Astfel, principiul adoptat este principul minimizarii pierderii
maxime numit si principiul minimax. Jucatorul A actioneaza astfel ncat sa maxi-
mizeze cel mai mic castig pe care-l poate obtine de la jucatorul B, iar jucatorul B
actioneaza astfel ncat sa minimizeze pierderea sa maxima.
Valoarea:
= max min qij
i j
STRATEGII MIXTE SI VALOAREA JOCULUI 35

se numeste valoarea inferioara a jocului si reprezinta cel mai mic castig pe care A l
poate avea de la B, iar valoarea:

= min max qij


j i

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 ai a jucatorului A se numeste dominanta pentru strategia aj daca
qik qjk pentru orice k = 1, n. Strategiile dominate vor fi eliminate din joc de catre
A (acesta doreste sa castige cat mai mult) strategiile dominante ale lui B vor fi
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 obtina un castig mai mare decat cel asigurat prin criteriul
minimax. Vom numi strategie mixta o combinatie 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.
0
Fie X = (x1 , ..., xm ) vectorul probabilitatilor cu care jucatorul A alege strategiile
0
pure {a1 , ..., am } si Y = (y1 , ..., yn ) vectorul probabilitatilor cu care jucatorul B
alege strategiile pure {b1 , ..., bn }. Avem:

xi 0, i = 1, m
P
m
xi = 1,
i=1

si
yj 0, j = 1, n
Pn
yj = 1.
j=1

Castigul mediu realizat de catre A cand el foloseste strategia mixta X, iar B


strategia bj va fi:
Xm
M (X, j) = qij xi .
i=1
36 TEORIA JOCURILOR

Similar, castigul mediu realizat de A cand el foloseste strategia ai , iar B foloseste


strategia mixta Y va fi:
n
X
M (i, Y ) = qij yj .
j=1

Valoarea medie a jocului va fi:


n X
X m m X
X n
M (X, Y ) = qij xi yj = qij xi yj ,
j=1 i=1 i=1 j=1

sau matriceal:
0
M (X, Y ) = X QY.

3.4. Teorema fundamentala a teoriei jocurilor

Teorema 3.4.1. (Valoarea inferioara si valoarea superioara a jocului). Fie X,


Y submultimi ale lui R si fie L : X Y R. Daca exista marimile:

max[min L(x, y)],


xX yY
min[max L(x, y)],
yY xX

atunci:
max[min L(x, y)] min[max L(x, y)].
xX yY yY xX

Definitia 3.4.1. (Punct sa). Punctul (x0 , y0 ) este punct sa al functiei L daca:

L(x, y0 ) L(x0 , y0 ) L(x0 , y).

Teorema 3.4.2. (Conditii necesare si suficiente pentru existenta punctelor sa).


Fie X, Y submultimi ale lui R si fie L : X Y R. Daca exista marimile:

max[min L(x, y)],


xX yY
min[max L(x, y)],
yY xX

atunci conditia necesara si suficienta ca L sa aiba punctul (x0 , y0 ) punct sa este:

max[min L(x, y)] = min[max L(x, y)] = L(x0 , y0 ).


xX yY yY xX
REZOLVAREA JOCURILOR MATRICEALE 37

Teorema 3.4.2 ne spune: conditia necesara si suficienta ca L sa aiba punctul


(x0 , y0 ) punct sa este ca valoarea inferioara a jocului sa fie egala cu valoarea sa
superioara.

Teorema 3.4.3. (Teorema fundamentala a teoriei jocurilor). Fie jocul J =


(X, Y, L). Atunci exista o pereche X0 , Y0 de strategii mixte optime astfel ncat:

max [ min M (X, Y )] = min [ max M (X, Y )] = M (X0 , Y0 ) = v,


XSm Y Sn Y Sn XSm

unde Sm si Sn sunt submultimi ale spatiilor euclidiene m-dimensionale respectiv


n-dimensionale.
Valoarea v se numeste valoarea jocului.

Observatii. i) Un joc nu poate avea decat o singura valoare, chiar daca are mai
multe strategii optime mixte.
ii) Conditia necesara si suficienta ca v sa fie valoarea jocului si X0 , Y0 sa fie
strategii mixte este ca:

M (i, Y0 ) v M (X0 , 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 = (qij ). Daca jucatorul A foloseste strategiile pure ai
cu probabilitatile xi , i = 1, . . . , m atunci acesta poate spera un castig de cel putin
v, care este egal cu valoarea jocului adica:
0

xQv
P m
xi = 1

i=1

xi 0, i = 1, m
0 def
unde v = (v, . . . , v) iar a b ai bi i.
Similar, daca jucatorul B utilizeaza strategiile pure bj cu probabilitatile yj ,
1 j n, el se poate astepta la o pierdere cel mult egala cu valoarea v a jocului:


Qy v
Pn
yj = 1


j=1
yj 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 fie strict pozitiva. In acest sens se pot folosi urmatoarele
observatii:
i) daca fiecarui element al matricei Q i se adauga o constanta k, atunci valoarea
jocului devine v + k, iar strategiile mixte raman neschimbate;
ii) daca fiecare element al matricei Q se nmulteste cu constanta k, atunci valoarea
jocului devine vk, iar strategiile mixte optime raman neschimbate.
Deci prin folosirea adecvata a observatiilor amintite se poate presupune v = 1.
Problemele de rezolvat devin folosind notatia Xi = xi /v:

P
m

min( Xi )
i=1

Q0 X 1

Xi 0, i = 1, m

si
P
n

max( Yj )
j=1

QY 1

Yj 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
piata software.

3.6. Aplicatii

Exercitiul 3.6.1. Se considera jocul n forma matriceala:

TABELUL 3.1
A/B b1 b2 b3 b4 b5
a1 3 5 4 2 1
a2 2 3 1 0 1
a3 4 1 1 0 3
a4 5 0 3 2 4

Matricea jocului este alcatuita n raport cu jucatorul A (maximizant).


APLICATII 39

i) Sa se calculeze valoarea inferioara si valoarea superioara a jocului.


ii) Are jocul punct sa?
iii) Aflati strategiile mixte optime ale celor doi jucatori.

Raspuns. Matricea jocului fiind 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 a4 a3 , deci strategia a3 va fi eliminata din joc de
catre jucatorul A. Deoarece b1 b4 si b3 b4 , atunci jucatorul B elimina din joc
strategiile b1 si b3 (conduc la pierderi mai mari). Astfel jocul se reduce la matricea
redusa Q:
5 2 1
Q = 3 0 1 .
0 2 4
Valoarea inferioara a jocului este:

= max min qij = 0,


i j

si valoarea superioara a jocului este:

= min max qij = 2.


j i

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 profitului minim) este urmatoarea:


max(v)

5x

1 + 3x2 v

2x1 + 2x3 v

x1 x2 + 4x3 v



x + x2 + x3 = 1
1
x1 , x2 , x3 0,

sau daca se noteaza Xi = xi /v pentru i = 1, 2, 3 obtinem problema de programare


liniara:

min(X1 + X2 + X3 )


5X1 + 3X2 1
2X1 + 2X3 1



X X2 + 4X3 1
1
X1 , X2 , X3 0.
Similar, problema de programare liniara corespunzatoare jucatorului B este:
40 TEORIA JOCURILOR



max(Y1 + Y2 + Y3 )


5Y1 + 2Y2 + Y3 1
3Y1 Y2 1



2Y2 + 4Y3 1

Y1 , Y2 , Y3 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, N ON N EGAT IV E);
Solutia 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, N ON N EGAT IV E);
Solutia este: x = 1/3, y = 1/2, z = 0.
Deci strategia optima pentru jucatorul A se determina din:
1 1
X1 = 0, X2 = , X3 = ,
3 2
iar strategia optima a jucatorului B se determina din:
1 1
Y1 = , Y2 = , Y3 = 0.
3 2
Valoarea jocului este v = 6/5 iar strategiile optime sunt pentru A:
2 3
x1 = 0, x2 = , x3 = ,
5 5
respectiv pentru B :
2 3
y1 = , y2 = , y3 = 0.
5 5
x1 = 0 se explica prin faptul ca strategia a1 a3 (n matricea redusa Q), poate fi
eliminata din joc de catre A.

Exercitiul 3.6.2. O firma A doreste sa se lanseze pe piata. Cercetarile efectuate


n acest sens stabilesc ca daca preturile variaza n raport cu cele ale concurentei B,
atunci se obtin rezultatele din tabelul 3.2:
APLICATII 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 firma A n fata concurentei?

Exercitiul 3.6.3. Se considera jocul n forma matriceala:

TABELUL 3.3

A/B b1 b2 b3 b4 b5
a1 3 5 4 2
a2 2 3 0
a3 4 0 3
a4 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) Aflati strategiile mixte optime ale celor doi jucatori.

Exercitiul 3.6.4. Se considera jocul de doua persoane n forma matriceala:

TABELUL 3.4

A/B b1 b2 b3
a1 0
a2 0
a3 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) Aflati strategiile mixte optime ale celor doi jucatori.
42 TEORIA JOCURILOR

Exercitiul 3.6.5. Se considera urmatorul scenariu criptografic: un utilizator


al unui canal de comunicatie poate transmite mesaje cifrate corespunzatoare a trei
categorii de mesaje clare: confidential, secret si strict secret. Utilizatorul poate
opta pentru unul din doua sisteme de cifrare (de exemplu, un sistem simetric si
un sistem asimetric etc). Indicati strategia optima de alegere a sistemului crip-
tografic. Procentele categoriei de secret si pierderile corespunzatoare (cantitate de
mesaj decriptata pe 24 ore de procesare selectiva, estimata procentual de designerul
sistemelor criptografice) sunt date n tabelul 3.5. Care trebuie sa fie procentele pi
pentru ca utilizatorul sa opteze pentru strategia 2?

TABELUL 3.5
Tip mesaj Prob. mesaj S1 S2
confidential p1 0 0,3%
secret p2 0,6% 0,5%
strict secret p3 0,4% 1%

Exercitiul 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 fi 13/4.

Exercitiul 3.6.7. Se considera jocul n forma matriceala (n raport cu jucatorul


A):
TABELUL 3.6
A/B b1 b2 b3 b4
a1 2 3 0 1
a2 1 2 4 3
a3 0 2 3 2
a4 2 3 0 1

i) Sa se determine valoarea inferioara si valoarea superioara a jocului.


ii) Determinati, 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.
APLICATII 43

Exercitiul 3.6.8. Folosind criteriul minimax, sa se rezolve un joc matriceal de


ordinul 3 3 a carui matrice este:

1 3 3
C = 2 0 3 .
2 1 0

Specificati si valorile inferioara si superioara ale jocului. Cum se modifica aceste


strategii daca ultima linie a matricei C se nmulteste cu ? Pentru ce valoare a lui
jocul are punct sa?

Raspuns. Valoarea inferioara a jocului este:

= max min qij = 0,


i j

si valoarea superioara a jocului este:

= min max qij = 2.


j i

Strategia optima (mixta) a primului jucator este unica si este egala cu:
1 2
x1 = , x2 = , x3 = 0.
3 3
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:
1 3 1
y1 = , y2 = , y3 = ,
5 5 5
o alta strategie optima este:
2 1
y1 = 0, y2 = , y3 = .
3 3

Exercitiul 3.6.9. (Dilema prizonierului.) Se considera urmatoarea situatie: doi


suspecti de trafic de droguri sunt anchetati, n stare de arest preventiv, de organele
abilitate, care nu au suficiente dovezi. Procurorul de caz le ofera celor doi, indepen-
dent, posibilitatea de a recunoaste sau nu implicarea n traficul de droguri, precum si
consecintele deciziei. Astfel, n situatia n care ambii recunosc procurorul va prop-
une pedeapsa minima de trei ani pentru cei doi suspecti. 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 situatia n care niciunul nu recunoaste, procurorul
propune, pentru alt delict ce l poate dovedi, pentru fiecare din cei doi suspeti,
pedeapsa de un an. Care este decizia pe care o iau cei doi suspecti de trafic 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 fiind =


3, deci jocul este cu punct sa. Aceasta dilema, n care se afla cei doi suspecti, poate
fi 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


Situatiile 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 inferenta asupra parametrului , utilizand numai
informatia de selectie, teoria deciziilor statistice combina informatia de selectie cu
alte doua aspecte importante legate de consecintele posibile ale adoptarii unei decizii
si de informatia a priori cu privire la parametrul .
Cunoasterea consecintelor posibile ale adoptarii diferitelor decizii presupune o
exprimare cantitativa a castigului sau pierderii produse pentru fiecare decizie posi-
bila si pentru diferitele valori posibile ale parametrului . Functia astfel obtinuta, ce
depinde de decizia adoptata si de parametrul , apare n literatura de specialitate
sub diferite denumiri ca functie castig sau functie utilitate.
Informatia a priori cu privire la parametrul se obtine din alte surse decat cele de
natura statistica ce implica problema de decizie respectiva. Este o informatie care se
obtine dintr-o experienta trecuta cu privire la situatii similare ce implica parametrul
. Aceasta informatie a priori este cuantificata printr-o distributie de probabilitate
cu privire la parametrul . Problema existentei acestei distributii este o problema
destul de discutata. Abordarea teoriei deciziilor prin intermediul unei distributii
a priori corespunde abordarii bayesiane. Problemele legate de teoria deciziilor pot
fi ncadrate n cadrul teoriei jocurilor ceea ce justifica prezentarea acestui capitol
dupa capitolul corespunzator teoriei jocurilor. Decidentul poate avea sau nu posi-
bilitatea efectuarii unor experiente a priori luarii deciziei. Astfel, avem decizii fara
experienta a priori, decizii cu experienta unica (sau decizii cu volum de esantionaj

45
46 TEORIA DECIZIILOR STATISTICE

dat, n care decizia se ia dupa efectuarea tuturor observatiilor) si decizii secventiale


(pe baza observatiei se poate decide efectuarea unei noi observatii sau luarea unei
decizii corespunzatoare). Astfel, paragrafele 4.2 si 4.3 ale acestui capitol abordeaza
strategiile de luare a deciziilor n situatiile n care nu avem experiente a priori, re-
spectiv situatia unei experiente de volum fixat. Deciziile se pot lua n conditii de risc
(dispunem de informatie a priori cu privire la starea parametrului ) sau n conditii
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 fixa ideile sa presupunem ca multimea parametrilor de stare (necunos-
cuta) este finita = {1 , . . . , m }. Sa presupunem ca avem o informatie a priori
despre data de distributia de probabilitate a priori (). Aceasta distributie se
numeste strategie mixta. Sa presupunem ca avem multimea strategiilor pure:

A = {a1 , ..., an }.

Sa notam prin L(, a) valoarea functiei de pierdere:

L : A R+ ,

care este pierderea obtinuta daca se adopta decizia a si starea parametrului este .
Pierderea medie este definita ca:
X
L(, a) = M [L(, a)] = L(, a)(), pentru orice a A.

Numim strategie Bayes actiunea cea mai favorabila a care minimizeaza pierderea
medie, adica a pentru care:

L(, a ) = min L(, a).


aA

Numim strategie minimax actiunea cea mai favorabila a care minimizeaza pier-
derea maxima, adica a pentru care:

max L(, a ) = min max L(, a).


aA

Daca nu ne limitam numai la strategiile pure, atunci vom folosi o combinatie


de strategii pure alese dupa o lege de probabilitate. Aceasta strategie se numeste
strategie mixta.
CAZUL EFECTUARII UNOR EXPERIENTE UNICE 47

Fie (a) = ((a1 ), ..., (am )) distributia de probabilitate care defineste probabili-
tatea cu care se folosesc strategiile pure a1 , ..., am . In general, dispunem de o multime
de strategii mixte:
H = {1 (a), ..., p (a)}.

Atunci pierderile medii sunt date de:


XX
L(, ) = M,a (L(, a)) = L(, a)()(a).
aA

In acest caz trebuie gasita acea strategie mixta H pentru care pierderile
medii sa fie minime:
L(, ) = min L(, ),
H

sau acea strategie mixta H pentru care pierderile maxime sa fie minime:

max L(, ) = min max L(, ).


H

4.3. Cazul efectuarii unor experiente unice


Sa presupunem ca decidentul, pentru a-si largi cunostintele despre starile naturii,
opteaza pentru efectuarea unei experiente unice (de exemplu, pentru a estima influ-
enta unui anumit tip de medicament asupra unei categorii de pacienti, se poate face
o experienta unica ce consta n masurarea zilnica, timp de mai multe luni, a unei
concentratii, dintr-un anumit tip de compus proteic, pentru m pacienti din categoria
respectiva).
Fie Z spatiul rezultatelor z1 , ..., zl ale experientei. Fiecarui rezultat z Z obtinut
cand starea i corespunde o probabilitate determinata de p(z|), care satisface
relatiile:
(
p(z|)
P 0, pentru orice z Z
p(z|) = 1.
zZ

Definitia 4.3.1. Tripletul format din spatiul rezultatelor experientei Z, spa-


tiul starilor naturii si distributia conditionata p(z|) definita pe Z pentru fiecare
, se numeste spatiu de esantionaj. Vom nota acest lucru cu E = (Z, , p).

Definitia 4.3.2. Se numeste functie de decizie functia d : Z A, si asociaza


fiecarui rezultat zk Z o actiune aj 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 , aj ) = L(i , d(zk )) = Lzk (i , d).
Pentru un dat, rezultatul z al experientei va fi o variabila aleatoare determinata de
probabilitatea conditionata p(z|), deci si pierderile Lz (, d) sunt variabile aleatoare
si se vor realiza cu aceeasi probabilitate.

Definitia 4.3.3. Numim functie de risc functia : D R data de:


X
(, d) = M [Lz (, d)] = Lz (, d)p(z|),
zZ

si reprezinta valorea medie a pierderii pe spatiul rezultatelor Z.

Se ajunge la concluzia ca spatiul deciziilor D joaca n problema strategiei n cazul


efectuarii unei experiente unice, acelasi rol ca spatiul A n problema strategiei fara
experiente. Deci metodele de rezolvare ale celor doua tipuri de probleme vor fi
asemanatoare.
Se pot aborda strategii mixte (d) definite pe spatiul D. Functia de risc este n
acest caz:
X
(, ) = M [(, d)] = (, d)(d)
dD
XX
= Lz (, d)p(z|)(d).
dD zZ

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 definit de:
X
(, d) = (, d)().

Strategia pura d se alege astfel ncat:

(, d ) = min (, d).
dD
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 conditii de risc, ceea
ce reprezinta faptul ca sunt cunoscute (sau se pot determina) probabilitatile cores-
punzatoare parametrului .
In continuare ne vom ocupa de procesele de decizie desfasurate n conditii de
incertitudine, deci cand nu se cunosc probabilitatile corespunzatoare lui . Faptul
ca atitudinea fata 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 fi acela al alegerii strategiei indicate ca rezultat al aplicarii
mai multor criterii.
Sa consideram situatia n care dispunem de m strategii pure a1 , . . . , am , iar para-
metrul are n stari posibile 1 , . . . , m . Elementul qij va reprezenta castigul realizat
daca se adopta actiunea ai 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
actiune ai care corespunde la:

max[Qi + (1 )qi ],
i

unde [0, 1] se numeste optimismul decidentului, iar qi = min qij si Qi = max qij .
j j

4.4.2. Criteriul lui Savage

Criteriul lui Savage sau criteriul regretelor alege ca strategie optima acea actiune
ai care corespunde la:
min max bij = max min bij ,
j i i j

(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 (diferenta dintre castigul
realizat prin luarea unei decizii fara a cunoaste starea naturii si cel realizat daca se
cunosteau aceste stari) este definita ca:

bij = max qkj qij , i = 1, m, j = 1, n.


k
50 TEORIA DECIZIILOR STATISTICE

4.4.3. Criteriul Bayes-Laplace


Criteriul lui Bayes-Laplace alege ca strategie optima acea actiune ai care core-
spunde la:
n
1X
max[ qij ],
i n
j=1

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 actiune
ai care corespunde la principiul minimax. Daca jocul nu are punct sa, atunci se
determina strategia mixta optima cu probabilitatile x1 , ..., xm care maximizeaza:
Xm
min[ qij xi ].
j
i=1

4.5. Aplicatii
Exercitiul 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 functiona n trei regimuri a1 , a2 si a3 . Pierderile reflectand
calitatea sunt date n tabelul 4.1.

TABELUL 4.1
() a1 a2 a3
1 0, 6 0 2
2 0, 3 0, 5 2 1
3 0, 1 1 3

Sa se calculeze pierderile medii corespunzatoare repartitiei a priori. Care este


strategia optima n sensul lui Bayes?

Raspuns. Pierderile medii corespunzatoare probabilitatii a priori sunt:

L(, a1 ) = 0 0, 6 + 0, 5 0, 3 + 1 0, 1 = 0, 25

L(, a2 ) = 0, 6 + 2 0, 3 + 0, 1 = 1, 3
APLICATII 51

L(, a3 ) = 2 0, 6 + 1 0, 3 + 3 0, 1 = 1, 8.

Strategia Bayes este acea actiune care minimizeza pierderea medie adica strategia
5 5
a1 daca sau strategia a2 daca .
26 26
5
Remarcam ca pentru = avem doua strategii optime si anume a1 si a2 .
26

Exercitiul 4.5.2. Aceeasi problema ca la 4.5.1. ca de aceasta data dispunem


de o strategie mixta cu frecventele 20%, 30%, respectiv 50%.

Exercitiul 4.5.3. Se considera jocul contra naturii n forma matriceala:

TABELUL 4.2
A/B 1 2 3 4 5
a1 3 5 4 2 1
a2 2 3 1 0 1
a3 4 1 1 0 3
a4 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 Qi qi Qi + (1 )qi
a1 3 5 4 2 1 4 5 9 5
a2 2 3 1 0 1 3 1 4 1
a3 4 1 1 0 3 4 1 5 1
a4 5 0 3 2 4 5 0 5

determinam:
max[Qi + (1 )qi ] = 5
i

unde [0, 1]. Deci strategia optima este a4 .


ii) Pentru aplicarea criteriului lui Savage se determina matricea regretelor:
52 TEORIA DECIZIILOR STATISTICE

TABELUL 4.4
(bij ) 1 2 3 4 5 min bij
j
a1 2 8 0 0 3 0
a2 3 0 3 2 5 0
a3 1 4 3 2 1 1
a4 0 3 1 0 0 0
max bij 3 8 3 2 5 2\1
i

Se observa faptul ca jocul nu are punct sa, si, deci vom determina strategia mixta
cu ajutorul algoritmului simplex primal sau dual. Solutia 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, N ON N EGAT IV E);
solutia problemei fiind x = 0, y = 1/4, z = 1/4, w = 0. Aceasta conduce la
strategia mixta optima:
1 1
x1 = 0, x2 = , x3 = , x4 = 0.
2 2
iii) Pentru aplicarea criteriului lui Bayes-Laplace vom considera echiprobabile
starile i :
TABELUL 4.5
1 P
n
1 2 3 4 5 n qij
j=1
a1 3 5 4 2 1 1
a2 2 3 1 0 1 1
a3 4 1 1 0 3 7/5
a4 5 0 3 2 4 14/5
deci statisticianul va alege strategia a4 deoarece aceasta maximizeaza:
n
1X
qij .
n
j=1

iv) Pentru aplicarea criteriului lui Wald, deoarece jocul nu are punct sa statisti-
cianul va alege o strategie mixta cu probabilitatile x1 , ..., xm care maximizeaza:
Xm
min[ qij xi ].
j
i=1
APLICATII 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, 2 x + 2 y + 4 z + 5 w >= 1, 5 x + 3 y z >= 1,
4 x + y + z + 3 w >= 1, 2 x + 2 w >= 1, x y + 3 z + 4 w >=
1, N ON N EGAT IV E); iar solutia acesteia este x = 0, y = 2/5, z = 0, w = 3/5.
Aceasta conduce la strategia optima:
2 3
x1 = 0, x2 = , x3 = 0, x4 = ,
5 5
valoarea x3 = 0 se explica prin faptul ca strategia a3 a4 .

Exercitiul 4.5.4. Se considera jocul contra naturii n forma matriceala:

TABELUL 4.6
A/B 1 2 3 4 5
a1 3 5 4 2 1
a2 2 3 1 0 1
a3 4 1 1 0 3
a4 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 distributie a
priori asupra parametrului :(0, 2; 0, 1; 0, 1; 0, 1; 0, 6). Care sunt pierderile medii
corespunzatoare distributiei a priori? Care este actiunea optima Bayes corespunza-
toare?
54 TEORIA DECIZIILOR STATISTICE
Capitolul 5

TEORIA GRAFURILOR

5.1. Grafuri orientate


Acest capitol este dedicat n special prezentarii unor notiuni 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 definitii.

Definitia 5.1.1. Un graf orientat G este o pereche G = (X, A), unde X este o
multime finita, 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 initiala sau sursa, iar y, extremitate finala sau destinatie.

Definitia 5.1.2. Un graf neorientat va fi notat cu G = (X, U ), unde X reprezin-


ta multimea nodurilor (varfurilor) grafului, iar U multimea muchiilor. Prin muchie
se va ntelege perechea u = {i, j}, i, j X . Daca i 6= 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.

Definitia 5.1.3. O ruta orientata este un arc (i, j) din G si i se poate asocia o
valoare numerica v(u) sau vij cu semnificatie reala de lungime, distanta, cost etc.

Definitia 5.1.4. Un drum ntre s si t se defineste ca o succesiune de rute orien-


tate : [(s, i1 ), . . . , (in , t)] cu proprietatea ca (s, i1 ), . . . , (in , t) sunt arce n graf.

Definitia 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 fi determinate n acesta lucrare. Unui drum i se


asociaza valoarea drumului v() = vsi1 + . . . + vin t . Numarul de arce prin care trece
un drum se numeste lungimea drumului. Un drum al grafului G poate fi dat ca
un sir de noduri, : [s, i1 , . . . , in , t] unde (s, i1 ), . . . , (in , t) sunt rute orientate.
Se pune problema determinarii unui drum de la s la t cu valoare minima,
adica:
v( ) = min v(),
M (s,t)

unde M (s, t) este multimea drumurilor n graful G de la s la t.


Avem urmatoarea teorema de invarianta 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 fiecarei muchii se nmultesc cu un parametru real
0
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
0
G, iar ntre valorile L (s, t) si L(s, t) ale celor doua drumuri exista relatia:
0
L (s, t) = L(s, t).

Nu se poate formula o regula de invarianta relativ la operatia aditiva (valorile


fiecarei muchii se aduna cu un numar real pozitiv). Gasirea unui contraexemplu se
lasa pe seama cititorului.

5.2. Algoritmul lui Kaufmann


Definitia 5.2.1. Fie G = (X, A) un graf orientat. Vom nota multimea nodurilor
cu {x1 , . . . , xn }. Matricea A = (aij ) data de aij = 1 daca (xi , xj ) A si aij = 0
daca (xi , xj ) / A se numeste matricea arcelor. Matricea D = (dij ) data de relatiile
dij = 1 daca exista drum de la i la j si dij = 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.

Definitia 5.2.2. Puterea de atingere p(xi ) a unui varf xi X n graful G =


(X, A) este egala cu numarul de varfuri la care se poate ajunge din xi , adica cu
ponderea Hamming a vectorului reprezentat de linia i a matricei D.

Sa notam prin (k) (xi ) multimea de varfuri din G la care se poate ajunge din xi
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 dij = = 1


daca si numai daca avem relatia:
n1
[
xj (k) (xi )
k=1

Problema determinarii eficiente a matricei drumurilor a fost rezolvata de A. Kauf-


mann, iar algoritmul corespunzator se mai numeste si algoritmul nmultirii latine.
PASUL 0. Se construieste matricea conexiunilor directe, notata prin K(1) n care
se trec efectiv arcele, inexistenta unui arc (0 n matricea drumurilor) fiind marcata
prin .
PASUL 1. Se construieste matricea destinatiilor posibile K(0) .
PASUL 2. Se compun (nmultire 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.
Observatie. Regula de nmultire latina respecta regula de nmultire 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


Definitia 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 conditie necesara si suficienta


pentru ca un graf fara circuite sa contina un drum hamiltonian.

Teorema 5.3.1. Un graf fara circuite, care are n noduri, contine un drum
hamiltonian, daca si numai daca avem:
n
X n(n 1)
p(xi ) = .
2
i=1

Remarcam ca ntr-un graf fara circuite (un drum n care extremitatile 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 = (dij ), ordonand
varfurile n ordine descrescatoare a puterii de atingere (prin aceasta operatie, 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 dii = 1, atunci graful are circuite
si algoritmul se opreste, deoarece acesta nu se poate aplica.
n(n 1)
PASUL 2. Daca n matricea D exista valori de 1, atunci graful admite
2
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 prezenta
unui element diferit de pe diagonala uneia dintre matricele K(k) din cadrul acestui
algoritm indica atat prezenta 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 partial
orientat, fiecarei muchii u cu extremitatile i si j si valoarea l(u) i se asociaza doua
arce (i, j) si (j, i) cu aceeasi valoare lij = lji = 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 6= s.
PASUL 1. Pentru toate arcele (i, j) A se compara (daca are sens) diferenta
j i cu valoarea lij :
daca j i > lij , atunci j = i + lij ,
daca j i lij , atunci se trece la determinarea altui arc.
Se repeta pasul 1 ntr-o noua iteratie pana cand, pentru toate arcele (i, j) A,
se verifica relatia:
j i lij ,
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 verifica relatia cu egalitate, adica j i = lij . Arcele
ALGORITMUL BELLMAN-KALABA 59

care verifica aceasta egalitate formeaza un graf partial al drumurilor de lungime


minima de la nodul s la toate celelalte noduri ale grafului.
Drumurile de valoare maxima se pot obtine cu algoritmul lui Ford initializand
s = 0, j = , j 6= s si nlocuind inegalitatile (>, ) 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 final t. Fie l(u) valoarea unui arc u .
Daca graful este neorientat, fiecarei muchii cu extremitatile i si j si cu valoarea l(u)
se asociaza doua arce (i, j) si (j, i) cu valori egale lij = lji = l(u).
PASUL 0.
Se asociaza grafului G o matrice V = (vij ) ale carei elemente se determina astfel:

lij daca (i, j)
vij = 0 daca i = j

daca (i, j)
/ .

(0)
De asemenea, se adauga la matricea V o noua linie v (0) = {vi }, unde fiecarui
(0)
nod i al grafului se asociaza un element vi , astfel:

(0)
vi = vit , i 6= t,
(0)
vt = 0.

(0)
Linia vi , conform acestor relatii, coincide cu transpusa coloanei nodului t.
(k) (k) (k)
PASUL k. Se adauga la matricea V linia vi = {vi }. Elementele vi se
calculeaza cu relatiile:

(k) (k1)
vi = min{vi + vij }, i 6= t,
j6=i
(k)
vt = 0.

Algoritmul se opreste, ntr-o etapa, daca:


(k) (k1)
vi = vi , pentru orice nod i.
60 TEORIA GRAFURILOR

(k)
Marimea vi reprezinta valoarea drumului minim de la varful i la nodul final t.
Daca:
(k) (k1)
vi = vj + vtj ,
atunci primul arc n drumul de valoare minima de la nodul i la nodul t este arcul
(i, j). Vom nota cu:
(k) (k) (k1)
succi = {j|vi = vj + vij , j 6= i}

si marcam printr-o noua linie succ(k) la matricea V imediat dupa linia v (k) . Daca
(k) (k)
vi = , atunci succi = .
Drumul de valoare minima de la nodul i la nodul final t este determinat numai
de nodurile marcate prin succ(k) , ncepand cu cele din coloana i.
Observatii:
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 final 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 retine cea
mai mica lungime a drumurilor de la s la i (p(s) = 0).
Se vor considera doua liste L si T . Lista L este lista nodurilor permanente (valorile
sunt fixate), iar T este o lista cu noduri temporare (valorile pot fi modificate). Initial,
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
fi atinse din s, folosind rute orientate permise ale grafului, se introduce pentru fiecare
nod j 6= s din graf un indicator pred(j), care va retine 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: iteratia, 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 apartin listei temporare T .
ARBORI MINIMALI 61

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


tizat n lista L, prin marcarea cu .
PASUL 0. Tabelul contine nodul s marcat cu si acele noduri j pentru care
ruta orientata (s, j) este permisa. Corespunzator p(s) = 0, p(j) = vsj , pred(j) = s.
Se considera marcarea nodului s ca fiind iteratia 0.
Iteratia k.
PASUL 1. Daca n 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 p(j).


jT

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 ) + vi j .

a) daca p(j) > p(i ) + vi j , atunci p(j) = p(i ) + vi j si pred(j) = i ;


b) daca p(j) = p(i ) + vi j , atunci i pred(j);
c) daca p(j) < p(i ) + vi j , atunci se trece la examinarea unui nod din lista T .
Dupa epuizarea listei T se reia pasul 1 n cadrul urmatoarei iteratii. 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 evidentiat, 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


Definitia 5.7.1. Se numeste arbore un graf neorientat finit, conex (ntre orice
doua noduri ale sale s si t exista un drum) si fara cicluri.

Problema ce urmeaza sa o rezolvam are forma: fiind dat un graf G neorientat,


conex sa se extraga din G un arbore partial pentru care suma valorilor muchiilor
este minima.
62 TEORIA GRAFURILOR

Vom presupune, pentru a simplifica 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 = {a1 , . . . , am } multimea muchiilor grafului. Vom nota cu pi = p(ai ) valoarea
muchiei ai . Vom presupune deci ca p1 < . . . < pm .

5.7.1. Algoritmul lui Kruskal


PASUL 1. Se alege muchia a1 de valoare minima.
PASUL 2. Se alege muchia a2 de valoare minima ramasa.
PASUL 3. Se atribuie S = {a1 , a2 }.
PASUL 4. Daca am acoperit toate nodurile grafului, atunci algoritmul se
opreste.
Se alege muchia ar , de valoare minima, din A S, care nu formeaza cicluri cu
muchiile lui S.
PASUL 5. Se actualizeaza S = S {ar } si goto PASUL 4.
Observatie. Daca exista n graf muchii de valori egale, atunci s-ar putea ca
problema sa admita mai multe solutii.

5.8. Aplicatii
Exercitiul 5.8.1. Posibilitatile de comunicare ntre localitatile 1-6 sunt repre-
zentate prin graful din figura 5.1, unde fiecarei 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 6= 1 .
APLICATII 63

TABELUL 5.1

j j Initializare Iteratia 1 Iteratia 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.
Iteratia 1. Pentru fiecare arc (i, j) daca se verifica j i > lij , atunci j =
i + lij .
(1, 2) 2 1 = > 2, atunci 2 = 1 + l12 = 0 + 2 = 2,
(1, 3) 3 1 = > 8, atunci 3 = 1 + l13 = 0 + 8 = 8,
(2, 1) 1 2 = 0 2 = 2 < 2,
(2, 3) 3 2 = 8 2 = 6 > l23 = 3, atunci 3 = 2 + l23 = 2 + 3 = 5,
(2, 4) 4 2 = > 8, atunci 4 = 2 + l24 = 2 + 8 = 10,
(3, 1) 1 3 = 0 5 = 5 < l31 = 8,
(3, 2) 2 3 = 2 5 = 3 < l32 = 4,
(3, 4) 4 3 = 10 5 = 5 = l34 = 5,
(3, 5) 5 3 = 5 = > l35 = 2, atunci 5 = 3 + l35 = 5 + 2 = 7,
(4, 2) 2 4 = 2 10 = 8 < l42 = 8,
(4, 3) 3 4 = 5 10 = 5 < l43 = 5,
(4, 5) 5 4 = 7 10 = 3 < l45 = 3,
(4, 6) 6 4 = > l46 , atunci 6 = 4 + l46 = 10 + 3 = 13,
(5, 3) 3 5 = 5 7 = 2 < l53 = 2,
(5, 4) 4 5 = 10 7 = 3 > l54 = 1, atunci 4 = 5 + l54 = 7 + 1 = 8,
(5, 6) 6 5 = 13 7 = 5 > l56 = 4, atunci 6 = 5 + l56 = 7 + 4 = 11.
Iteratia 2. Se reia pasul 1.
(1, 2) 2 1 = 2 = l12 ,
(1, 3) 3 1 = 5 < l13 = 8,
(2, 1) 1 2 = 2 < l21 = 2,
(2, 3) 3 2 = 3 = l23 ,
(2, 4) 4 2 = 6 < l24 = 8,
(3, 1) 1 3 = 5 < l31 = 8,
(3, 2) 2 3 = 3 < l32 = 4,
(3, 4) 4 3 = 3 < l34 = 5,
(3, 5) 5 3 = 2 = l35 ,
(4, 2) 2 4 = 6 < l42 = 5,
64 TEORIA GRAFURILOR

(4, 3) 3 4 = 3 < l43 = 5,


(4, 5) 5 4 = 1 < l45 = 3,
(4, 6) 6 4 = 3 = l46 ,
(5, 3) 3 5 = 2 < l53 = 2,
(5, 4) 4 5 = 1 = l54 ,
(5, 6) 6 5 = 4 = l56 .
In aceasta iteratie valorile variabilelor j nu s-au modificat. Aceasta nseamna ca
algoritmul s-a terminat, iar drumurile minime ntre 1 si 6 sunt date de arcele (i, j)
care realizeaza egalitatile j i = lij . Aceste arce au fost marcate cu litere bold
n cadrul algoritmului. In etapa a doua arcele care realizeaza aceste egalitati 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.

Exercitiul 5.8.2. Se considera graful din figura 5.2. Sa se determine rutele de


cost minim de la fiecare nod la nodul 6.

Figura 5.2: Graf orientat.

Rezolvare. Pentru rezolvarea problemei aplicam algoritmul Bellman-Kalaba.


Initializare:
(0)
vi = vi6 , i = 1, 2, 3, 4, 5
(0)
v6 = 0.
APLICATII 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) .


(1) (0) (0) (0) (0) (0)
v1 = min{v2 + v12 , v3 + v13 , v4 + v14 , v5 + v15 , v6 + v16 } =
= min{ + 3, + 1, 2 + , 8 + 3, 0 + } = 11,
(1)
succ1 = {5},

(1) (0) (0) (0) (0) (0)


v2 = min{v1 + v21 , v3 + v23 , v4 + v24 , v5 + v25 , v6 + v26 } =
= min{ + 3, + 5, 2 + 8, 8 + , 0 + } = 10,
(1)
succ2 = {4},

(1) (0) (0) (0) (0) (0)


v3 = min{v1 + v31 , v2 + v32 , v4 + v34 , v5 + v35 , v6 + v36 } =
= min{ + 1, + 5, 2 + , 2 + 8, 0 + } = 10,
(1)
succ3 = {5},

(1) (0) (0) (0) (0) (0)


v4 = min{v1 + v41 , v2 + v42 , v3 + v43 , v5 + v45 , v6 + v46 } =
= min{ + , + , + , 8 + 3, 0 + 2} = 2,
66 TEORIA GRAFURILOR

(1)
succ4 = {6},

(1) (0) (0) (0) (0) (0)


v5 = min{v1 + v51 , v2 + v52 , v3 + v53 , v4 + v54 , v6 + v56 } =
= min{ + 3, + , + , 2 + 4, 0 + 8} = 6,
(1)
succ5 = {4},
(1)
v6 = 0.
PASUL 2. Se calculeaza elementele liniei v (2) .
(2) (1) (1) (1) (1) (1)
v1 = min{v2 + v12 , v3 + v13 , v4 + v14 , v5 + v15 , v6 + v16 } =
= min{10 + 3, 10 + 1, 2 + , 6 + 3, 0 + } = 9,
(2)
succ1 = {5},

(2) (1) (1) (1) (1) (1)


v2 = min{v1 + v21 , v3 + v23 , v4 + v24 , v5 + v25 , v6 + v26 } =
= min{11 + 3, 10 + 5, 2 + 8, 6 + , 0 + } = 10,
(2)
succ2 = {4},

(2) (1) (1) (1) (1) (1)


v3 = min{v1 + v31 , v2 + v32 , v4 + v34 , v5 + v35 , v6 + v36 } =
= min{11 + 1, 10 + 5, 2 + , 6 + 2, 0 + } = 8,
(2)
succ3 = {5},

(2) (1) (1) (1) (1) (1)


v4 = min{v1 + v41 , v2 + v42 , v3 + v43 , v5 + v45 , v6 + v46 } =
= min{11 + , 10 + , 10 + , 6 + 3, 0 + 2} = 2,
(2)
succ4 = {6},

(2) (1) (1) (1) (1) (1)


v5 = min{v1 + v51 , v2 + v52 , v3 + v53 , v4 + v54 , v6 + v56 } =
= min{11 + 3, 10 + , 10 + , 2 + 4, 0 + 8} = 6,
(2)
succ5 = {4},
(2)
v6 = 0.
APLICATII 67

PASUL 3. Se calculeaza elementele liniei v (3) .


(3) (2) (2) (2) (2) (2)
v1 = min{v2 + v12 , v3 + v13 , v4 + v14 , v5 + v15 , v6 + v16 } =
= min{10 + 3, 8 + 1, 2 + , 6 + 3, 0 + } = 9,

(3)
succ1 = {3, 5},

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


v2 = min{v1 + v21 , v3 + v23 , v4 + v24 , v5 + v25 , v6 + v26 } =
= min{9 + 3, 8 + 5, 2 + 8, 6 + , 0 + } = 10,

(3)
succ2 = {4},

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


v3 = min{v1 + v31 , v2 + v32 , v4 + v34 , v5 + v35 , v6 + v36 } =
= min{9 + 1, 10 + 5, 2 + , 6 + 2, 0 + } = 8,

(3)
succ3 = {5},

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


v4 = min{v1 + v41 , v2 + v42 , v3 + v43 , v5 + v45 , v6 + v46 } =
= min{9 + , 10 + , 8 + , 6 + 3, 0 + 2} = 2,

(3)
succ4 = {6},

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


v5 = min{v1 + v51 , v2 + v52 , v3 + v53 , v4 + v54 , v6 + v56 } =
= min{9 + 3, 10 + , 8 + , 2 + 4, 0 + 8} = 6,

(3)
succ5 = {4},
(3)
v6 = 0.
(2) (3)
Se observa ca vi = vi , i = 1, . . . , 6, ceea ce nseamna ca algoritmul s-a terminat.
(3)
Elementele vi sunt valorile minimale ale drumurilor de la fiecare varf i la nodul
final 6. Cu ajutorul liniei succ(3) precizam drumurile de la fiecare nod i la nodul
final 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 final 6 avem doua drumuri si anume: 1 = [1, 3, 5, 4, 6], 2 = [1, 5, 4, 6] ambele
(3)
au valoarea egala cu v1 = 9.
68 TEORIA GRAFURILOR

Exercitiul 5.8.3. Posibilitatile de comunicare ntre localitatile 1-6 sunt repre-


zentate prin graful din figura 5.3, unde fiecarei 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.

Exercitiul 5.8.4. Posibilitatile de comunicare ntre localitatile 1-4 sunt repre-


zentate prin graful din figura 5.4, unde fiecarei 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.


Initializare.
APLICATII 69

TABELUL 5.4

j j Initial Iteratia 1
1 1 0 0
2 2 2
3 3 5
4 4 3

Iteratia 1. Pentru fiecare arc (i, j) care verifica relatia j i > lij reactualizam
j = i + lij .
(1, 2) : 2 1 = > l12 2 = 1 + l12 = 2.
(1, 4) : 4 1 = > l41 4 = 1 + l14 = 3.
(2, 1) : 2 1 = 2 < 2.
(2, 3) : 3 2 = > l23 3 = 2 + l23 = 5.
(2, 4) : 4 2 = 1 < l24 .
(3, 2) : 2 3 = 3 < l32 .
(3, 4) : 4 3 = 2 < l34 .
(4, 2) : 2 4 = 1 < l42 .
(4, 3) : 3 4 = 2 < l43 .
Iteratia 2. Pentru fiecare arc (i, j) care verifica relatia j i > lij reactualizam
j = i + lij .
(1, 2) : 2 1 = 2 = l12 .
(1, 4) : 4 1 = 3 = l41 .
(2, 1) : 2 1 = 2 < l21 .
(2, 3) : 3 2 = 3 = l23 .
(2, 4) : 4 2 = 1 = l24 .
(3, 2) : 2 3 = 3 < l32 .
(3, 4) : 4 3 = 2 < l34 .
(4, 2) : 2 4 = 1 < l42 .
(4, 3) : 3 4 = 2 < l43 .
Drumurile de lungime minima ntre nodul 1 si celelalte noduri ale grafului se
reconstituie din figura 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.

Exercitiul 5.8.5. Se considera graful din figura 5.6. Numerele de pe muchii


reprezinta distanta dintre noduri. Sa se determine rutele cele mai scurte si lungimile
lor de la fiecare nod la nodul 1.

Figura 5.6: Graf orientat.

Rezolvare. Se aplica algoritmul Bellman-Kalaba. In final rutele cele mai scurte


de la celelalte noduri ale grafului la nodul 1 se reconstituie din arcele din figura 5.7.
APLICATII 71

Figura 5.7: Reconstructia drumurilor optime care ajung n nodul 1.

Exercitiul 5.8.6. Pentru graful din figura 5.8 determinati 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 obtinut prin ambele metode este urmatorul [0, 1, 3, 5, 7].
Valoarea minima a acestui drum este 37.

Exercitiul 5.8.7. Se considera graful din 5.9. Sa se puna n evidenta urmatoarele


elemente:
i) matricea arcelor (sau matricea conexiunilor directe);
ii) matricea drumurilor;
iii) puterea de atingere a fiecarui varf;
iv) daca graful are circuite;
iv) determinati drumurile hamiltoniene din graf.
72 TEORIA GRAFURILOR

Figura 5.9: Graf orientat.

Rezolvare. i) Matricea conexiunilor directe este:



0 1 0 1
1 0 1 1
A= 0 1 0

0
0 0 0 0
ii) Matricea drumurilor este:

1 1 1 1
1 1 1 1
D=
1

1 1 1
0 0 0 0
iii) Puterile de atingere ale fiecarui varf al grafului sunt: p(x1 ) = 4, p(x2 ) = 4,
p(x3 ) = 4, p(x4 ) = 0.
iv) Graful are circuite, de exemplu {x1 , x2 , x1 } 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:

(x1 , x2 ) (x1 , x4 )
(x2 , x1 ) (x2 , x3 ) (x2 , x4 )
K(1) =

.

(x3 , x2 )

PASUL 1. Matricea destinatiilor posibile:

x2 x4
x1 x3 x4
K(0) = x2 .


APLICATII 73

PASUL 2. Determinam drumurile formate din doua arce din matricea:



(x1 , x2 , x1 ) (x1 , x2 , x4 )
(x , x , x ) (x2 , x1 , x4 )
K(2) = K(1) &K(0) =
(x3 , x2 , x1 )
2 1 2
(x3 , x2 , x3 ) (x3 , x2 , x4 )

PASUL 3. Determinam drumurile formate din trei arce cu ajutorul matricei
K(3) = K(2) &K(0) :

(x1 , x2 , x1 , x2 ) (x1 , x2 , x4 )
(x2 , x1 , x2 , x1 ) (x2 , x1 , x2 , x3 ) (x2 , x1 , x2 , x4 )

(x3 , x2 , x1 , x2 ) sau (x3 , x2 , x3 , x2 ) (x3 , x2 , x1 , x4 )

Algoritmul se opreste pentru ca drumul hamiltonian (daca exista) are lungimea
3 = nr. noduri 1. Deci drumul hamiltonian este (x3 , x2 , x1 , x4 ).

Exercitiul 5.8.8. Sa se gaseasca drumurile hamiltoniene din graful din figura


5.10.

Figura 5.10: Graf orientat.

Rezolvare. Se aplica algoritmul lui Kaufmann si se obtin drumurile hamiltoniene:




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


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



= [3, 1, 6, 2, 5, 4],
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:

Pm P n

inf cij xij ,

i=1 j=1



P n
xij = ai , 1 i m,
j=1 (6.1)

Pm



xij = bj , 1 j n,

i=1

xij 0, 1 i m, 1 j n.
unde:

ai 0, 1 i m,

bj 0, 1 j n,
(6.2)
P

m
ai =
Pn
bj .

i=1 j=1

Teorema 6.1.1. Conditia necesara si suficienta ca sistemul de ecuatii consi-


derat n 6.1 sa aiba solutie nenegativa este ca relatiile 6.2 sa fie 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 ct x
Ax = b

x0

Unei probleme de transport i asociem un tabel de transport care contine 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 fi asociata
cu costul unitar cij , cu necunoscuta xij , cu valoarea xij a variabilei xij dintr-o
anumita solutie (xij ) a sistemului de ecuatii 6.1.

TABELUL 6.1
c11 c12 ... c1n a1
c21 c22 ... c2n a2
... ... ... ... ...
cm1 cm2 ... cmn am
b1 b2 ... bn

Tabelul de transport mai contine o coloana suplimentara n care sunt trecute n


mod obisnuit cantitatile disponibile ai , 1 i m, si o linie suplimentara n care sunt
trecute cererile bj , 1 j n. In celula (i, j) este trecut costul unitar cij ; daca dorim
sa scriem si valoarea xij a variabilei xij , vom mparti celula (i, j) printr-o diagonala
n doua parti si vom scrie cij n partea superioara, iar xij n partea inferioara.
Tabelului de transport T i asociem un graf neorientat avand drept noduri
multimea celulelor (i, j), 1 i m, 1 j n, ale tabelui de transport T si drept
muchii multimile formate din doua celule situate ntr-o aceeasi linie sau coloana a
lui T . In cele ce urmeaza vom considera numai acele subgrafuri partiale ale lui
care se obtin 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 multimea de
noduri ale subgrafului. Un subgraf partial de acest tip al lui se numeste -graf.
Un -graf care este un lant (ciclu) elementar avand cel mult o muchie n fiecare
linie sau coloana a tabelului de transport T va fi numit -lant sau -ciclu.

Algoritmul de transport
PASUL 0. Se determina o solutie de baza admisibila xij (vom vedea ulterior
cum anume) corespunzatoare unei matrice B formata din m + n 1 coloane liniar
PROBLEMA CLASICA DE TRANSPORT 77

independente ale matricei A si apoi multimea B a celulelor de baza, dupa care trecem
la pasul urmator.
PASUL 1. Se rezolva sistemul de ecuatii:

ui + vj = cij , (i, j) B,

se obtine o solutie particulara (ui , vj ) a acestui sistem si se calculeaza valorile zij


cij = ui + vj cij pentru (i, j) R (multimea celulelor care nu sunt n baza).
Daca zij cij 0 pentru toate celulele (i, j) R, ne oprim (STOP): solutia de
baza xij este optima.
In caz contrar se determina (s, k) R cu criteriul de intrare n baza:

max{zij cij } = zsk csk

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{xij } =xrt ,

unde minimul se ia n 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 obtinuta din B prin nlocuirea coloanei art

cu coloana ask . Se determina solutia de baza admisibila xij corespunzatoare lui B
cu ajutorul formulelor de schimbare a bazei:


xij xrt , daca (i, j) are rang par n ciclu,
xij = xij + xrt , daca (i, j) are rang impar n ciclu,

xij , daca (i, j) nu apartine ciclului.

Se trece apoi la pasul 1 nlocuind B cu B si solutia xij cu xij .
Observatie. Daca la terminarea algoritmului avem zij cij < 0 pentru toate
celulele (i, j) R, atunci solutia problemei de transport este unica.

6.1.3. Determinarea unui program de baza initial


Pentru a putea aplica algoritmul de transport enuntat anterior este necesar sa
dispunem de un program de baza initial. Metoda generala de obtinere a unui pro-
gram de baza este urmatoarea. Se fixeaza o celula (i, j) si se atribuie variabilei xij
valoarea minima pe care o poate lua, adica valoarea:
xij = min{ai , bj }.
78 PROBLEME DE TRANSPORT

Daca xij = ai , atunci se elimina din tabelul de transport linia de rang i si se


0
nlocuieste bj prin bj = bj xij . Daca xij = bj , atunci se elimina din tabelul de
0
transport coloana de rang j si se nlocuieste ai cu ai = ai xij . Daca xij = ai = bj ,
atunci se aplica, la alegere, unul dintre procedeele descrise anterior.
In cele trei situatii prezentate se obtine un tabel de transport redus, avand fiecare
o linie sau o coloana mai putin decat cel initial. Urmand procedeul descris pe
toate tabelele reduse care se obtin n continuare, se determina evident un program
al problemei de transport. Metoda generala de obtinere a unui program de baza
pentru problema de transport poate fi particularizata dand diverse reguli de selectie
a celulei (i, j) din tabel care se atribuie valorii xij . Dintre metodele particulare de
determinare a unui program de baza initial le mentionam pe cele care urmeaza.
i) Metoda coltului 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 fiecare pas se alege celula (i, j) corespunzatoare
costului minim cij 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 solutie de baza a problemei de transport n forma standard este nedege-
nerata daca si numai daca numarul componentelor sale nenule este egal cu m + n 1
si este degenerata n caz contrar. Pentru recunoasterea problemelor degenerate este
util urmatorul criteriu.

Propozitie 6.1.1. O problema de transport n forma standard este degenerata


daca si numai daca exista o multime de indici M {1, ..., m} si o multime de indici
N {1, ..., n} astfel ncat:

X X
ai = bj.
iM jN
PROBLEMA CLASICA 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:

Pm P n

inf cij xij ,

i=1 j=1



P n
xij = ai , 1 i m,
j=1

P m



xij bj , 1 j n,


i=1
xij 0, 1 i m, 1 j n.
unde:

ai 0, 1 i m,

bj 0, 1 j n,
Pm Pn

ai bj .
i=1 j=1

Pentru rezolvarea acestei probleme se introduce un depozit fictiv n care disponi-


bilul de resursa este:
Xn Xm
am+1 = bj ai ,
j=1 i=1

adica tocmai excedentul cererii totale. Costurile de transport de la depozitul m + 1


pot fi luate nule sau egale cu penalitatile unitare stabilite prin contracte cu benefi-
ciarii pentru neonorarea cererilor, daca astfel de penalitati 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:

Pm P n

inf cij xij ,

i=1 j=1

P

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

Pm



xij = bj , 1 j n,

i=1

xij 0, 1 i m, 1 j n.
unde:

ai 0, 1 i m,

bj 0, 1 j n,
Pm Pn

ai bj .
i=1 j=1
80 PROBLEME DE TRANSPORT

Pentru rezolvarea acestei probleme se introduce un consumator fictiv care are


cererea:
m
X Xn
bn+1 = ai bj ,
i=1 j=1

adica tocmai excedentul cererii totale. Costurile de transport la beneficiarul n+1 pot
fi 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 capacitati limitate. Forma problemei de trans-
port cu capacitati limitate este urmatoarea:

Pm P n

inf cij xij ,

i=1 j=1



Pn
xij = ai , 1 i m,
j=1

Pm



xij = bj , 1 j n,


i=1
dij xij 0, 1 i m, 1 j n.

unde:

ai 0, 1 i m,

bj 0, 1 j n,





dij 0, 1 i m, 1 j n,

Pm P
n
ai = bj .
i=1 j=1

Pm



ai bj , 1 j n,

i=1

P
n


bj ai , 1 i m.
j=1

Rezolvarea acestei probleme se poate face si cu ajutorul algoritmului simplex ce


este prezentat n subparagraful urmator. Mentionam ca problema se poate aborda
si ca o problema de flux minim.

6.1.6. Algoritmul simplex modificat


Pentru determinarea unui program initial se alege n mod arbitrar o celula (i, j)
si se atribuie lui xij valoarea:


xij = min{ai , bj , dij }.
PROBLEMA CLASICA DE TRANSPORT 81


Daca xij = ai sau xij = bj , atunci procedam n mod obisnuit. Daca xij = dij <

min{ai , bj }, variabila xij nu este considerata variabila de baza. Daca xij = dij =

min{ai , bj }, atunci variabila xij nu este considerata variabila de baza. Valorile (xij )
obtinute n acest mod nu constituie nca un program al problemei: se poate ntampla
ca unele disponibilitati sa nu fie complet epuizate, iar unele cereri sa nu fie integral

satisfacute. Plecand nsa de la valorile (xij ) astfel determinate, putem obtine un
program de baza pentru problema de transport cu capacitati limitate cu algoritmul
care urmeaza.
Sa presupunem ca exista un depozit r, 1 r m, n care a ramas neexpediata
0
cantitatea de resursa ar si beneficiarii s si k, unde cererile au ramas nesatisfacute
0 0 0 0 0
cu cantitatile bs si bk ; evident, avem ar = bs + bk . Algoritmul care transforma (xij )
n programul de baza (xij ) este urmatorul:
PASUL 1. Se adauga la linia r o celula suplimentara n care valoarea variabilei
0
corespunzatoare xr0 este ar . Analog, se adauga la coloanele s si k cate o celula
0
suplimentara n care valorile variabilelor corespunzatoare x0s si x0k sunt bs respectiv
0 0
bk . Se nlocuiesc costurile unitare initiale cij , 1 i m, 1 j n, cu cij = 0 si se
0 0 0
atribuie celulelor nou introduse costuri egale cu unitatea, adica cr0 = c0s = c0k = 1.
PASUL 2. Se rezolva sistemul de ecuatii:


ur = 1,
v = 1,
s

vk = 1,
0
ui + vj = cij , (i, j) B, i 6= r, j 6= s, k.

PASUL 3. Se cauta cu algoritmul de transport obisnuit solutia optima pentru


problema de la pasul 1; evident n solutia optima vom avea:

xr0 = x0s = x0k = 0.

Renuntam la celulele suplimentare si revenim la costurile initiale cij . Solutia astfel


obtinuta este un program de baza.
Conform rezultatului general stabilit la algoritmul simplex, testul de optimalitate
este urmatorul: programul (xij ) este optim daca zij cij 0 pentru toate celulele
secundare (i, j) pentru care xij = 0 si zij cij 0 pentru toate celulele secundare
(i, j) pentru care xij = dij.

6.1.7. Aplicatii

Exercitiul 6.1.1. Sa se gaseasca, prin metoda coltului de N-V si prin metoda


costului minim o solutie de baza pentru problema de transport ale carei date sunt
82 PROBLEME DE TRANSPORT

prezentate n tabelul 6.2. Gasiti pentru aceaste solutii valorile corespunzatoare ale
functiilor obiectiv. Care solutie 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 solutie de baza initiala cu metoda N-V:


x11 = min{11, 5} = 5, eliminam coloana 1,
x12 = min{6, 9} = 6, eliminam linia 1,
x22 = min{11, 3} = 3, eliminam coloana 2,
x23 = min{8, 9} = 8, eliminam linia 2,
x33 = min{1, 8} = 1, eliminam coloana 3,
x34 = min{7, 7} = 7.
Valoarea functiei obiectiv este:

7 5 + 6 8 + 3 4 + 5 8 + 1 1 + 2 7 = 150.

Determinam o solutie de baza initiala prin metoda costului minim:


x33 = min{8, 9} = 8, eliminam lina 3,
x21 = min{11, 5} = 5, eliminam coloana 1,
x14 = min{11, 7} = 7, eliminam coloana 4,
x22 = min{6, 9} = 6, eliminam linia 2,
x13 = min{4, 1} = 1, eliminam coloana 3,
x12 = min{3, 3} = 3.
Valoarea functiei obiectiv este:

8 3 + 5 1 + 3 7 + 2 5 + 4 6 + 1 8 = 92.

Evident solutia de baza obtinuta prin metoda costului minim este mai buna deoarece
costul corespunzator acesteia este mai mic.

Exercitiul 6.1.2. Sa se gaseasca o solutie de baza pentru problema de trans-


port echilibrata ale carei date sunt prezentate n tabelul 6.3. Gasiti valoarea cores-
punzatoare a functiei obiectiv. Gasiti solutia optima a problemei.
TABELUL 6.3
1 3 2 10
3 1 2 5
5 3 7
PROBLEMA CLASICA DE TRANSPORT 83

Raspuns.
PASUL 0. Solutia initiala de baza determinata prin metoda coltului de N-V
este:
x11 = min{5, 10} = 5, eliminam coloana 1,
x12 = min{3, 5} = 3, eliminam coloana 2,
x13 = min{7, 2} = 2, eliminam linia 1,
x23 = min{5, 5} = 5.
Costul aferent acestei solutii este C = 28.

Figura 6.1: Solutia initiala si marcarea celulelor din -ciclu.

Iteratia 1, PASUL 1. i) Rezolvam sistemul (o solutie particulara care se obtine


setand u1 = 0):
ui + vj = cij (i, j) B,
Solutiile acestui sistem se trec pe marginea tabelului de transport (pe verticala
se trec elementele ui , iar pe orizontala se trec elementele vj ).
ii) Calculam elementele:

zij cij = ui + vj cij (i, j) R,

care se trec n colturile din dreapta sus ale fiecarei celule secundare.
iii) Calculam (criteriul de optim):

max (zij cij ) = z22 c22 = 2 > 0


(i,j)R

Criteriul de optim nu este ndeplinit, deci celula (2, 2) intra n baza.


Iteratia 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. Conditia de iesire din baza:
84 PROBLEME DE TRANSPORT

min xij =x12 ,


deci celula (1, 2) iese din baza.


Iteratia 1, PASUL 3. Aplicand formulele de schimbare a bazei obtinem noua
solutie. Costul corespunzator acesteia este:
C1 = 22,
care este mai mic decat costul anterior C0 .
Repetam pasii anteriori:
Iteratia 2, PASUL 1. i) Rezolvam sistemul (o solutie particulara care se obtine
setand u1 = 0):
ui + vj = cij (i, j) B,
Solutiile acestui sistem se trec pe marginea tabelului de transport (pe verticala
se trec elementele ui , iar pe orizontala se trec elementele vj ).
ii) Calculam elementele:
zij cij = ui + vj cij (i, j) R,
care se trec n colturile din dreapta sus ale fiecarei celule secundare.

Figura 6.2: Solutia finala.

iii) Calculam (criteriul de optim):


max (zij cij ) = z12 c12 = 2 < 0,
(i,j)R

solutia este optima, iar aceasta este: x11 = 5, x13 = 5, x22 = 3, x23 = 2.

Exercitiul 6.1.3. Sa se gaseasca o solutie de baza pentru problema de trans-


port echilibrata ale carei date sunt prezentate n tabelul 6.4. Gasiti valoarea cores-
punzatoare a functiei obiectiv. Gasiti solutia optima a problemei.
PROBLEMA CLASICA 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 fie egala cu cererea deci: 15 = 5 +


de unde = 10.
PASUL 0. Determinam o solutie de baza prin metoda costului minim. Deci:
x31 = min{; 10} = , eliminam coloana 1 din tabelul de transport,
x14 = min{7; 2} = 2, eliminam linia 1 din tabelul de transport,
x23 = min{; 3} = , eliminam coloana 3 din tabelul de transport,
x34 = min{4; 9} = 4, eliminam coloana 4 din tabelul de transport,
x32 = min{7; 5} = 5, eliminam linia 3 din tabelul de transport,
x22 = min{2; 2} = 2, eliminam coloana 1 din tabelul de transport.
Costul de transport corespunzator acestei solutii este:

C0 = + 2 + 2 + 12 + 20 + 12 = 49.

Iteratia 1, PASUL 1. i) Rezolvam sistemul (o solutie particulara care se obtine


setand u1 = 0):
ui + vj = cij (i, j) B,

Solutiile acestui sistem se trec pe marginea tabelului de transport (pe verticala


se trec elementele ui , iar pe orizontala se trec elementele vj ).
ii) Calculam elementele:

zij cij = ui + vj cij (i, j) R,

care se trec n colturile din dreapta sus ale fiecarei celule secundare.
iii) Calculam (criteriul de optim):

max (zij cij ) = z24 c24 = > 0.


(i,j)R

Criteriul de optim nu este ndeplinit, deci celula (2, 4) intra n baza.


Iteratia 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. Conditia de iesire din baza:

min xij =x24 ,


deci celula (2, 2) iese din baza.


Iteratia 1, PASUL 3. Aplicand formulele de schimbare a bazei obtinem noua
solutie. Costul corespunzator acesteia este:

C1 = 47,

care este mai mic decat costul anterior C0 .


Repetam pasii anteriori:
Iteratia 2, PASUL 1. i) Rezolvam sistemul (o solutie particulara care se obtine
setand u1 = 0):
ui + vj = cij (i, j) B,
Solutiile acestui sistem se trec pe marginea tabelului de transport (pe verticala
se trec elementele ui , iar pe orizontala se trec elementele vj ).

Figura 6.4: Noua solutie de baza. Aceasta este optima.


PROBLEMA CLASICA DE TRANSPORT 87

ii) Calculam elementele:

zij cij = ui + vj cij (i, j) R,

care se trec n colturile din dreapta sus ale fiecarei celule secundare.
iii) Calculam (criteriul de optim):

max (zij cij ) = z21 c21 = < 0,


(i,j)R

solutia este optima, iar aceasta este:




x14 = 2,

x23 = ,


x
14 = 2,

x31 = ,


x32 = 7,


x34 = 2.

Costul minim va fi 47.

Exercitiul 6.1.4. Sa se gaseasca, prin metoda coltului de N-V si prin metoda


costului minim, o solutie de baza pentru problema de transport ale carei date sunt
prezentate n tabelul 6.5. Gasiti pentru aceaste solutii valorile corespunzatoare ale
functiilor obiectiv. Care solutie este mai buna si de ce? Gasiti solutia 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

Exercitiul 6.1.5. Sa se gaseasca o solutie de baza pentru problema de trans-


port echilibrata ale carei date sunt prezentate n tabelul 6.6. Gasiti valoarea cores-
punzatoare a functiei obiectiv. Gasiti solutia 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


solutia optima este: x14 = 10, x22 = 10, x23 = 5, x31 = 5, x33 = = 15,
x34 = 5.

Exercitiul 6.1.6. Sa se gaseasca o solutie 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. Gasiti
valoarea corespunzatoare a functiei obiectiv. Gasiti solutia 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 fictiv n care
avem 10 . Noul tabel de transport va fi 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 fictiv cu o cerere
de 10. Noul tabel de transport va fi 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 RETEA DE TRANSPORT 89

Exercitiul 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 retea de transport

6.2.1. Retele de transport


In acest paragraf vom reveni la problema de transport. Aceasta va fi abordata
din perspectiva teoriei grafurilor.

Definitia 6.2.1. O retea de transport flux este un graf orientat G = (X, ) n


care fiecare 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 destinatie.

Definitia 6.2.2. Fluxul : XX R este o functie reala ce satisface urmatoarele


proprietati:
i) restrictii 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 fluxului: pentru orice u X {s, t} are loc:
X
(u, v) = 0.
vX

Cantitatea (u, v), poate fi pozitiva sau negativa si se numeste fluxul de retea de
la u la v.

Definitia 6.2.3. Valoarea fluxului este definita ca:


X
|| = (s, v)
vX

sau, cu alte cuvinte, valoarea fluxului este fluxul total de la sursa.


90 PROBLEME DE TRANSPORT

Problema fluxului maxim ntr-un graf G, de la un nod sursa s la un nod destinatie


t, ntr-o retea de transport, consta n determinarea unui flux maxim de la s la t.

6.2.2. Algoritmul Ford-Fulkerson


In acest paragraf prezentam metoda Ford-Fulkerson de rezolvare a problemei
fluxului maxim, respectiv a fluxului minim. Este vorba mai degraba de o metoda
decat de un algoritm pentru ca suporta mai multe implementari cu timpi de rulare
diferiti. Metoda Ford-Fulkerson face apel la trei idei importante care sunt relevante
pentru multe dintre problemele de grafuri: flux compatibil, drum si taietura de
capacitate minima.

Algoritmul de rezolvare a problemei de flux maxim


PASUL 1. In cadrul acestei prime etape se urmareste construirea unui flux
compatibil. Pentru aceasta se considera drumurile nesaturate de la sursa s la
destinatia t. Fie i un drum nesaturat. Fluxul propagat de-a lungul acestui drum
este dat de:
i = min [c(u, v) (u, v)].
(u,v)i

Vom obtine un nou flux care satureaza cel putin un arc cu relatia:

(u, v) + i cand (u, v) i
(u, v) =
(u, v) cand (u, v) / i .

Daca reteaua de transport contine rute neorientate (muchii) n identificarea aces-


tor drumuri vom avea grija ca o ruta neorientata sa nu fie folosita decat ntr-un
singur sens. Astfel, odata cu identificarea unui drum se orienteaza si rutele. Pe
fiecare arc se nsumeaza fluxurile propagate.
Fluxul propagat n retea este egal cu suma fluxurilor de-a lungul drumurilor
identificate: X
= i .
i

PASUL 2. In cadrul etapei a doua se determina fluxul 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 RETEA 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 fie 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 flux dat de
relatia:
k = min( min (c(u, v) (u, v)), min (u, v)), k > 0,
(u,v)B (u,v)C

unde B este multimea arcelor pe care se executa marcaj de tip ii), iar C este multimea
arcelor pe care se executa marcaj de tip iii).
Se obtine un nou flux mbunatatit, cu relatia:

(u, v) + k cand (u, v) B
(u, v) = (u, v) k cand (u, v) C

(u, v) n rest.
Daca nu se mai poate marca nodul de iesire t al retelei, atunci algoritmul s-a
terminat. Suma fluxurilor propagate de-a lungul drumurilor si lanturilor care unesc
nodul de intrare s cu nodul de iesire t, reprezinta fluxul de valoare maxima n reteaua
de transport.
PASUL 3. Se determina taietura de capacitate minima.
Fie A multimea nodurilor nemarcate ale retelei, conform procedeului de mar-
care din pasul 2. Multimea arcelor (i, j) cu i / A si j A (incidente spre inte-
rior multimii A) notata cu A se va numi taietura de capacitate minima n graf.
Aceasta reprezinta o granita ntre nodurile marcate si nodurile nemarcate. Capac-
itatea taieturii se noteaza c( A) si se defineste ca fiind suma capacitatilor arcelor
sale: X
c( A) = c(u, v).
(u,v)A
Conform teoremei Ford-Fulkerson, ntr-o retea de transport data, fluxul de valoare
maxima este egal cu valoarea taieturii de valoare minima, adica:
max () = min c( A).
sA,tA
/

Taietura de capacitate minima reprezinta strangularea n graf. Arcele ei fiind


saturate, nseamna ca pentru marirea fluxului propagat trebuie marita capacitatea
unuia sau mai multor arce ale taieturii.
Observatii:
i) Operatia de marcare este operatia de decizie asupra optimalitatii.
ii) Taietura de capacitate minima are dublu rol si anume:
-verifica rezultatul prin intermediul teoremei Ford-Fulkerson;
-indica locul unde trebuie umblat pentru a mari capacitatea fluxului.
92 PROBLEME DE TRANSPORT

Algoritmul de rezolvare a problemei de flux minim


Pentru a obtine un flux de valoare minima se induce n retea un flux arbitrar cu
conditia (u, v) c(u, v), pentru fiecare arc (u, v).
In vederea determinarii fluxului de valoare minima se considera pentru nceput
lanturile de la nodul final t la nodul de nceput s dupa urmatorul procedeu de
marcare:
i) nodul final 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 fluxul poate fi diminuat.
Daca B este multimea arcelor din lantul din categoria ii) si

= min [(u, v) c(u, v)],


(u,v)B

atunci noul flux diminuat este:



(u, v) + cand (u, v) B
(u, v) = (u, v) cand (u, v) , (u, v) /B

(u, v) n rest.

Daca nu se mai reuseste marcarea nodului de nceput s, nseamna ca nu mai exista


nici un lant de-a lungul caruia fluxul sa poata fi diminuat, deci s-a gasit fluxul de
valoare minima.

6.2.3. Problema de transport ca problema de flux maxim


In acest paragraf vom vedea ca problema clasica de transport se poate modela ca
o problema de flux maxim. Pentru a fixa ideile sa presupunem ca avem m centre de
aprovizionare si n centre de consum (beneficiari), iar transportul se face cu ajutorul
unor sisteme limitate pe fiecare directie dij . Vom construi un graf orientat de la cele
m depozite la cei n beneficiari, valoarea fiecarui arc fiind egala cu valoarea dij , un
nod de intrare Xinput si un nod de iesire din retea Xoutput cu legatura la fiecare
din depozite respectiv beneficiari, valoarea fiecarui arc fiind egala cu ai respectiv bj .
Problema ce urmeaza a fi rezolvata este o problema de flux maxim.
FLUX MAXIM INTR-O RETEA DE TRANSPORT 93

6.2.4. Aplicatii

Exercitiul 6.2.1. Un proces economic dispune de o retea de tranport de genul


celei din figura 6.5. Capacitatile de trasport sunt cele indicate pe figura. Care este
fluxul maxim propagat n sistem ntre punctele 1 si 9? Care este fluxul de la nodul
3 la 5?

Figura 6.5: Flux ntre doua noduri.

Raspuns. Se propaga un flux maxim n reteaua 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 identificarea acestor drumuri vom avea grija ca
o ruta neorientata sa nu fie folosita decat ntr-un singur sens. Astfel, se indica n
continuare aceste drumuri, precum si fluxul propagat pe fiecare dintre ele. Odata
cu identificarea unui drum se orienteaza si rutele. Pe fiecare arc se nsumeaza si
fluxurile propagate. Obtinem deci drumurile:
10 5 10 10
1 = (1 2 6 8 9), 1 = 5.
5 4 6 5 5
2 = (1 2 7 6 8 9), 2 = 4.
1 2 3 2 1 1
3 = (1 2 3 7 6 8 9), 3 = 1.
8 2 8
4 = (1 3 7 9), 4 = 2.
6 5 2 6
5 = (1 3 5 7 9), 5 = 2.
4 3 10
6 = (1 3 5 9), 6 = 3.
1 5 6 7
7 = (1 3 4 5 9), 7 = 1.
10 5 6
8 = (1 4 5 9), 8 = 5.
94 PROBLEME DE TRANSPORT

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


(fig. 6.6) si fiecare drum are cel putin o ruta saturata. Fluxul propagat de-a lungul
P 8
acestor drumuri este egal cu: = i = 23.
i=1

Figura 6.6: Rute orientate.

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


sunt marcate ca n figura 6.7.

Figura 6.7: Marcarea nodurilor.


FLUX MAXIM INTR-O RETEA DE TRANSPORT 95

Nodul final 9 nu poate fi marcat, deci fluxul propagat este maxim. Multimea
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 capacitatii: c( A) = 5 + 6 + 5 + 4 + 3 = 23.


Se observa ca valoarea capacitatii taieturii minime este egala cu valoarea maxima
a fluxului, ceea ce confirma, conform teoremei Ford-Fulkerson, ca fluxul este maxim.
Prin arcul [3, 5] se propaga un flux de 5 fiind 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);
> f low(G, 1, 9);
Orice cantitate suplimentara de flux 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 obtine lantul din figura 6.8, cu = 1.

Figura 6.8: Lant obtinut n urma procesului de marcare.

Fluxul propagat este conform figurii 6.9. Arcele [2, 3] si [3, 4] nu sunt utilizate.
96 PROBLEME DE TRANSPORT

Figura 6.9: Flux propagat.

Observam n figura ca drumul:


4 5 2 2 3
= (1 4 3 2 7 9), = 2.
Situatia este prezentata n figura 6.10, iar fluxul 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 RETEA DE TRANSPORT 97

Exercitiul 6.2.2. Se considera reteaua de transport din figura 6.11. Care este
fluxul maxim propagat ntre nodurile 1 si 5? ( > 0 parametru real).

Figura 6.11: Fluxul propagat. Este pusa n evidenta taietura de capacitate minima.

Raspuns. La pasul 1 se genereaza rute orientate de la nodul 1 la nodul 5 care se


satureaza.
40 15 22
1 : 1 2 3 5, 1 = min{40, 15, 22} = 15;
25 8
2 : 1 2 5, 2 = min{25, 8} = 8;
17 12 12 7
3 : 1 2 4 3 5, 3 = min{17, 12, 12, 7} = 7;
18 18
4 : 1 4 5, 4 = min{18, 18} = 18;
P
4
Fluxul este = i = 48.
i=1
Pasul 2 consta n marcarea nodurilor. Nodul final nu se poate marca, deci fluxul
este maxim (fig.6.12).
Multimea nodurilor nemarcate este: A = {5}.

Figura 6.12: Nodul final 5 nu poate fi marcat, deci fluxul 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 confirma, conform teoremei Ford-Fulkerson, ca
fluxul este maxim. Pentru a mari fluxul trebuie marita capacitatea unuia sau a mai
multor arce ale taieturii de capacitate minima.

Exercitiul 6.2.3. Un anume tip de produs este disponibil n trei depozite n


cantitatile de 30, 40 respectiv 50 t. Acesta este solicitat n doua centre de consum n
cantitatile de 40 respectiv 80 t. Intre sursa si destinatie exista tronsoane directe, iar
transportul se face cu mijloace auto cu capacitati limitate (tonaj) conform tabelului
6.11.

TABELUL 6.11
c1 c2
d1 10 2
d2 20
d3 10 20

Sa se determine un plan optim de transport.

Raspuns. Codificam problema conform grafului din figura 6.13. Pentru aceasta
am introdus nodul d care constituie intrarea n retea si nodul c care constituie iesirea
din reteaua de transport.

Figura 6.13: Codificarea problemei sub forma unei probleme de flux maxim.

Problema se rezolva cu ajutorul algoritmului Ford-Fulkerson. Se propaga un flux


maxim n reteaua 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 RETEA DE TRANSPORT 99

sens) care se satureaza. In identificarea acestor drumuri vom avea grija ca o ruta
neorientata sa nu fie folosita decat ntr-un singur sens. Astfel, se indica n continuare
aceste drumuri precum si fluxul propagat pe fiecare dintre ele. Odata cu identificarea
unui drum se orienteaza si rutele. Pe fiecare arc se nsumeaza si fluxurile propagate.
Obtinem deci drumurile:
30 10 40
1 : d d1 c1 c, 1 = min{30, 10, 40} = 10,
20 2 80
2 : d d1 c2 c, 2 = min{20, 2, 80} = 2,
40 20 30
3 : d d2 c1 c, 3 = min{40, 20, 30} = 20,
50 10 10
4 : d d3 c1 c, 4 = min{50, 10, 10} = 10,
40 20 78
5 : d d3 c2 c, 5 = min{40, 20, 78} = 20.
In acest moment, toate drumurile de la nodul c la nodul d contin rute orientate
si fiecare drum are cel putin o ruta saturata. Fluxul propagat de-a lungul acestor
drumuri este egal cu:
X 5
= i = 62.
i=1

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


sunt marcate ca n figura 6.14.

Figura 6.14: Marcarea nodurilor. Nodul final nu poate fi marcat deci fluxul este
maxim.

Nodul final d nu poate fi marcat, deci, fluxul propagat este maxim. Multimea
nodurilor nemarcate este:
A = {d1 , d2 , d},
100 PROBLEME DE TRANSPORT

si taietura de capacitate maxima cuprinde arcele:

A= {(c1 , d1 ), (c1 , d2 ), (c2 , d1 ), (c3 , d1 ), (c3 , d2 )},

cu valoarea capacitatii:

c( A) = 10 + 2 + 20 + 10 + 20 = 62.

Se observa ca valoarea capacitatii taieturii minime este egala cu valoarea maxima


a fluxului, ceea ce confirma, conform teoremei Ford-Fulkerson, ca fluxul este maxim
(fig. 6.15).

Figura 6.15: Taietura de capacitate minima si fluxul propagat.

Observam ca cererea nu poate fi satisfacuta, deci pentru marirea capacitatii tre-


buie marita capacitatea unuia din arcele taieturii de capacitate minima.

Exercitiul 6.2.4. Sa se scrie un program MAPLE pentru rezolvarea problemelor


de flux maxim ntr-o retea de transport. Verificati rezultatul cu teorema Ford-
Fulkerson.

Raspuns. Pentru fixarea ideilor vom exemplifica programul pe problema 6.2.1.


Vom indica atat sintaxa MAPLE (>) cat si comentariile corespunzatoare (italic).
Se initializeaza: lista de varfuri, lista muchiilor, lista ponderilor, nodul initial s
si nodul final t.
> varf uri := {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 RETEA DE TRANSPORT 101

> s := 1;
> t := 9;
Se creeaza reteaua conform initializarilor.
> with(networks) :
> new(G) :
> addvertex(varf uri, G) :
> addedge(muchii, weights = ponderi, G);
Valoarea fluxului maxim.
> f low(G, s, t);
Taietura de capacitate minima.
> mincut(G, s, t, vf );
Valoarea taieturii de capacitate minima trebuie sa fie egala cu valoarea fluxului
maxim (Teorema Ford-Fulkerson).
> vf ;
Graful G.
> draw(G);

Exercitiul 6.2.5. Pentru ce valoare a parametrului a graful din figura 6.16 ad-
mite un flux maxim ntre nodurile 1 si 3 de 40.

Figura 6.16: Problema de flux maxim ntre nodurile 1 si 3.

Raspuns. Se aplica algoritmul Ford-Fulkerson, dupa care se determina valoarea


parametrului a din ecuatia max = 40.
Deci se executa urmatoarele etape:
a) se genereaza rute orientate de la nodul 1 la nodul 3:
2a 8a 2a
1 : 1 2 5 3, 1 = 2a,
3a 3a a
2 : 1 5 6 3, 2 = a,
102 PROBLEME DE TRANSPORT

8a 3a 4a
3 : 1 6 4 3, 3 = 3a.
Fluxul n retea fiind = 6a;
b) se marcheaza nodurile: {1, 2, 5, 6}.
c) taietura de capacitate minima fiind: {(5, 3), (6, 3), (6, 4)}, valoarea acesteia
fiind egala cu 6a, deci fluxul este maxim.
Ecuatia max = 40 duce la a = 20/3.

Exercitiul 6.2.6. Pentru datele din problema anterioara formulati problema ca


o problema de programare liniara si rezolvati-o prin metoda simplex.

Exercitiul 6.2.7. Pentru reteaua de transport din figura 6.17 cu intrarea 0 si


iesirea 7 si capacitatile scrise pe arce sa se determine:

Figura 6.17: Retea de transport.

i) capacitatile taieturilor multimilor A1 = {1, 4, 6, 7} si A2 = {5, 6, 7};


ii) fluxul maxim care strabate reteaua si valoarea sa;
iii) care capacitate de transport trebuie marita si cu ce valoare pentru a atinge
un flux maxim n retea de 30 ? Solutia indicata este unica?
iv) care este fluxul maxim n reteaua de transport daca suprimam rutele 1 4
respectiv 5 1?

Raspuns. Capacitatile taieturilor multimilor A1 si A2 sunt 50 respectiv 35. Se


aplica algoritmul Ford-Fulkerson. Fluxul maxim n retea va fi egal cu 23. Pentru
marirea fluxului trebuie marite capacitatile taieturii de capacitate minima.
Capitolul 7

TEORIA STOCURILOR

7.1. Formularea modelului matematic


Prin stoc vom ntelege n cele ce urmeaza o rezerva de bunuri materiale desti-
nate vanzarii sau folosirii lor n procesul de productie. 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 fi determinista,
aleatoare cu o repartitie 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 fi 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 specifica problemelor de cercetare operationala si anume de a


codifica 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 functie 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 cantitati egale cu
q, costul unitar de stocare n unitatea de timp este cs , costul de lansare al comenzii
de reaprovizionare este cl (totalul cheltuielilor legate de operatia 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.
1
Pentru fiecare perioada de timp T se fac cheltuielile cl + qT cs (ntr-o perioada
2
T se afla n medie cantitatea q/2). Daca notam cu numarul de reaprovizionari
avem:
Q
= = .
q T
Functia obiectiv C(q) ce trebuie minimizata este:
1 Q 1
(cl + qT cs ) = cl + qcs .
2 q 2
MODELE DETERMINISTE 105

Volumul optim q al unei comenzi de reaprovizionare se obtine din conditia de minim


pentru functia obiectiv C(q). Deci punand conditia:
0
C (q) = 0,

obtinem: r
2Qcl
q = .
cs
00
(C (q) > 0 deci extremul este punct de minim).
Obtinem numarul optim de reaprovizionari:
s
Q Qcs
= = ,
q 2cl

perioada optima: s
2cl
T = =
Qcs
si gestiunea optima: p
C = C(q) = 2Qcs cl .

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 cp .
Perioada constanta T este mpartita n doua subperioade T1 (n care se satisface
cererea si se platesc pentru stocul mediu s/2 cheltuielile de stocare cs ) si T2 (n care
nu se mai satisface cererea si se plateste pentru lipsa medie (q s)/2 costul unitar
de penalizare cp ).
Pentru o perioada T = T1 + T2 se vor face cheltuielile:
s qs
cl + T1 cs + T2 cp .
2 2
Costul global va fi:
s qs
C(q, s) = (cl + T1 cs + T2 cp )
2 2
Q s qs
= cl + T1 cs + T2 cp .
q 2 T 2 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:
T1 s
=
T q
si
T2 qs
= .
T q
De unde:
s
T1 = T
q
si
qs
T2 = T.
q
Deci nlocuind valorile lui T1 si T2 n formula lui C(q, s) obtinem:
Q
C(q, s) = cl + s2 cs + (q s)2 cp .
q 2q 2q
Conditiile de minim pentru functia obiectiv sunt:
C(q, s)
=0
q
si
C(q, s)
= 0.
s
MODELE DETERMINISTE 107

Adica:
1
2
Qcl 2 s2 cs + 2 (q 2 s2 )cp = 0,
q 2q 2q


scs (q s)cp = 0,
q q
de unde obtinem:
2Qcl (cs + cp ) 2
q2 = + s
cp cp
si
cp
s= q.
cs + cp
Obtinem pentru valoarea optima pentru volumul comenzii:
2Qcl cs + cp
q2 = . .
cp cp
cp
Daca notam = (factor de penalizare), obtinem:
cs + cp
s r
2Qcl 1
q = . ,
cp

stocul optim fiind: s


2Qcl
s = q = . .
cp
Functia obiectiv C(q, s) are minimul C(q, s) (acest minim se numeste gestiunea
optima) deoarece matricea hessiana este pozitiv definita.
Numarul optim de reaprovizionari este:
s
Q Qcp
= = . ,
q 2cl

perioada optima: s r
2cl 1
T = = .
Qcp
si gestiunea optima: p
C = C(q, s) = 2Qcs cl . .
Observatie. Daca cp atunci 1 si obtinem 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 achizitie
Presupunem ca se stocheaza un produs al carui consum este o functie 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 cantitati egale
cu q, costul unitar de achizitie sau de productie ca , costul unitar de stocare n
unitatea de timp este cs si se presupune proportional cu cheltuielile facute pentru
apovizionarea cu o unitate de produs, costul fix al comenzii de reaprovizionare este
cb (totalul cheltuielilor legate de operatia 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:
cl = qca + cb ,
costul unitar de stocare:
cb
cs = (ca + ).
q
Functia obiectiv devine:
Q q cb
C(q) = (qca + cb ) + (ca + )
q 2 q
Q 1 1
= cb + qca + Qca + cb .
q 2 2
Din conditia de optim pentru C(q) obtinem:
r
2Qcb
q = .
ca
00
(C (q) > 0, deci extremul este punct de minim).
Obtinem numarul optim de reaprovizionari:
s
Q Qca
= = ,
q 2cb
perioada optima: s
2cb
T = =
Qca
si gestiunea optima:
p 1
C = C(q) = 2Qca cb + Qca + cb .
2
MODELE DETERMINISTE 109

7.2.4. Model de stocare a mai multor produse


In cazurile practice ne confruntam cu situatia stocarii mai multor produse. Vom
presupune ca suntem n cazul modelului 1, deci se stocheaza k produse Pi (i =
1, 2, . . . , k) al caror consum sunt functii liniare de timp, cererea produsului Pi este
Qi pentru o perioada de timp , reaprovizionarea stocului se face instantaneu la
intervale de timp egale cu Ti si n cantitati egale cu qi , costul unitar de stocare n
unitatea de timp este csi , costul de lansare al comenzii de reaprovizionare este cli
(totalul cheltuielilor legate de operatia de reaprovizionare ce nu depinde de qi ) si nu
se admite lipsa de stoc pentru nici un produs.
Costul total de stocare pentru produsul Pi este:
Qi 1
Ci (qi ) = cl + qi csi ,
qi i 2
iar functia obiectiv pentru toate produsele stocate:
k
X
C(q1 , . . . , qk ) = Ci (qi ).
i=1

Cum functiile Ci (qi ) (i = 1, . . . , k) sunt independente, minimul sumei lor are loc
odata cu minimul fiecareia dintre ele si deci avem echivalenta ntre relatiile:
C(q1 , . . . , qk )
=0
qi
si
Ci (qi )
= 0, i = 1, . . . , k.
qi
Gasim pentru produsele Pi valorile:
s
2Qi cli
qi = ,
csi

numarul de reaprovizionari:
s
Qi Qi csi
i = = ,
qi 2cli

perioada optima: s
2cli
T = =
i Qcsi
110 TEORIA STOCURILOR

si gestiunea optima:
k
X
C = Ci ,
i=1
unde: p
Ci = Ci (qi ) = 2Qi cli csi .
Rezultate similare se obtin 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 repartitia:

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 fiind stocul), se penalizeaza
cu o pierdere unitara c1 ; lipsa de stoc, cand x > s, se penalizeaza cu cheltuieli
suplimentare de reaprovizionare unitare c2 ; cheltuielile de stocare sunt foarte mici
n raport cu c1 si c2 si se neglijeaza.
Cazul discret. Variabila aleatoare excedent de stoc Es are repartitia:

sx
Es : , x = 0, 1, . . . , s,
p(x)
cu media:
s
X
M (Es ) = (s x)p(x),
x=0
iar variabila aleatoare lipsa de stoc are repartitia:

xs
Ls : , x = s + 1, s + 2, . . .
p(x)
cu media:

X
M (Ls ) = (x s)p(x).
x=s+1
MODELE PROBABILISTE 111

Functia obiectiv a modelului matematic reprezinta cheltuielile medii totale legate


de managementul stocului, adica:
s
X
X
C(s) = c1 (s x)p(x) + c2 (x s)p(x).
x=0 x=s+1

Stocul optim s se obtine din conditia de minim pentru functia obiectiv C(s).

Teorema 7.3.1. (Optim pentru cazul discret). Functia C(s) si atinge minimul
c2
n punctul s pentru care F (s 1) < < F (s), unde = , iar F (s) = P r(x
c1 + c2
Ps
s) = p(x) este o functie crescatoare.
x=0

Demonstratie.
C(s) este o functie 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 solutie a sistemului de inecuatii:

C(s 1) C(s) > 0
(7.1)
C(s + 1) C(s) > 0.

Avem:
s+1
X
X
C(s + 1) = c1 (s + 1 x)p(x) + c2 (x s 1)p(x) =
x=0 x=s+2
s
X
X
= c1 (s + 1 x)p(x) + c2 (x s 1)p(x) =
x=0 x=s+1
Xs s
X
X
= c1 (s x)p(x) + c1 p(x) + c2 (x s)p(x)
x=0 x=0 x=s+1
X s
X X
c2 p(x) = C(s) + c1 p(x) c2 p(x).
x=s+1 x=0 x=s+1

P
s
Notand F (s) = p(x), avem:
x=0

C(s + 1) = C(s) + (c1 + c2 )F (s) c2 . (7.2)


112 TEORIA STOCURILOR

Analog obtinem:
s1
X
X
C(s 1) = c1 (s 1 x)p(x) + c2 (x s + 1)p(x)
x=0 x=s
s1
X s1
X
X
= c1 (s x)p(x) + c1 p(x) + c2 (x s)p(x)
x=0 x=0 x=s

X s
X
X
+c2 p(x) = c1 (s x)p(x) + c2 (x s)p(x)
x=s x=0 x=s+1
+c1 F (s 1) + c2 (1 F (s 1))

sau

C(s 1) = C(s) (c1 + c2 )F (s 1) + c2 . (7.3)


Inlocuind 7.2 si 7.3 n 7.1 obtinem:

C(s + 1) C(s) = (c1 + c2 )F (s) c2 > 0,


C(s 1) C(s) = (c1 + c2 )F (s 1) + c2 > 0,

de unde:
c2
F (s 1) < < F (s)
c1 + c2
sau
F (s 1) < < F (s)
si teorema este demonstrata.
Observatii:
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 Es are repartitia:

sx
Es : , x [0, s],
f (x)

cu media:
Zs
M (Es ) = (s x)f (x)dx,
0
MODELE PROBABILISTE 113

iar variabila aleatoare lipsa de stoc are repartitia:



xs
Ls : , x [s, ),
f (x)

cu media:
Z
M (Ls ) = (x s)f (x)dx.
s

Functia obiectiv a modelului matematic reprezinta cheltuielile medii totale legate


de managementul stocului, adica:

Zs Z
C(s) = c1 (s x)f (x)dx + c2 (x s)f (x)dx.
0 s

Stocul optim s se obtine din conditia de minim pentru functia obiectiv C(s).

Teorema 7.3.2. (Optim pentru cazul continuu). Functia C(s) si atinge mini-
c2 Rs
mul n punctul s pentru care F (s) = , unde = si F (s) = = f (x)dx.
c1 + c2 0

Demonstratie.

Zs Z
0
C (s) = c1 f (x)dx c2 f (x)dx
0 s

0
si din conditia C (s) = 0, rezulta:

c1 F (s) c2 (1 F (s)) = 0,

de unde:
c2
F (s) = = .
c1 + c2
00
Solutia ecuatiei 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 repartitia:

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 cs , costul unitar de penalizare
pentru lipsa de stoc este cp , iar nivelul stocului la un moment dat este s.
In managementul acestui stoc pe o perioada T se pot ivi doua situatii:
i) cererea nu depaseste stocul (fig.7.3), deci ea este satisfacuta n toata perioada
T , adica avem x s pe perioada T ;
ii) cererea este mai mare decat stocul (fig.7.4), adica x > s, ceea ce face ca n
perioada T1 cererea sa fie satisfacuta, iar n perioada T2 cererea sa nu fie satisfacuta
(T1 + T2 = T ).

Figura 7.3: Cererea nu depaseste stocul.

Prezentam cazul discret si cazul continuu.


Cazul discret. Pentru situatia i) stocul mediu pentru care se plateste costul
unitar de stocare cs , este:
Xs
x
(s )p(x).
2
x=0
MODELE PROBABILISTE 115

Figura 7.4: Cererea depaseste stocul.

Pentru situatia ii) vom avea un stoc mediu:



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

pentru care se platesc cheltuieli unitare de stocare cs pe perioada T1 si o lipsa medie


de stoc (penurie medie):
X
xs
p(x),
2
x=s+1
penalizata cu un cost unitar de penalizare cp pe perioada T2 .
Functia obiectiv a modelului reprezinta cheltuielile medii totale legate de mana-
gementul stocului, pe perioada T , adica:
s
X
X
X
x s xs
CT (s) = cs T (s )p(x) + cs T1 p(x) + cp T2 p(x).
2 2 2
x=0 x=s+1 x=s+1

Avem:
T1 s
=
T x
si
T2 xs
= ,
T s
de unde:
s
T1 = T
x
116 TEORIA STOCURILOR

si
xs
T2 = T
s
Inlocuind valorile lui T1 si T2 n formula lui CT (s) gasim:

CT (s) = T C(s),

unde am notat prin C(s) cheltuielile medii totale n unitatea de timp si:
s
X
X
X
x 1 p(x) 1 (x s)2
C(s) = cs (s )p(x) + cs s2 + cp p(x).
2 2 x 2 x
x=0 x=s+1 x=s+1

Stocul optim s se obtine din conditia de minim pentru functia C(s).

Teorema 7.3.3. (Optim pentru cazul discret). Functia C(s) si atinge minimul
cp
n punctul s pentru care L(s 1) < < L(s), unde = si
cs + cp
s
X
1 X p(x)
L(s) = p(x) + (s + ) .
2 x
x=0 x=s+1

Demonstratie.
Conditia de minim pentru functia discreta C(s) este

< min{C(s 1), C(s + 1)}

conditie ce permite determinarea punctului de minim s ca solutie a sistemului de


inecuatii:
C(s 1) C(s) > 0
C(s + 1) C(s) > 0.
Avem:

s+1
X
X
x 1 p(x)
C(s + 1) = cs (s + 1 )p(x) + cs (s + 1)2 +
2 2 x
x=0 x=s+2

X
1 (x s 1)2
+ cp p(x).
2 x
x=s+2

Sumele din partea a doua a egalitatii se rescriu:


MODELE PROBABILISTE 117

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


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

si


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

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


" s
#
X 1 X p(x)
C(s + 1) = C(s) + (cs + cp ) p(x) + (s + ) cp
2 x
x=0 x=s+1

sau

C(s + 1) C(s) = (cs + cp )L(s) cp .

Analog gasim:
C(s 1) C(s) = (cs + cp )L(s 1) + cp .
Inlocuind aceste relatii n sistemul descris obtinem:

(cs + cp )L(s) cp > 0
(cs + cp )L(s 1) + cp > 0,

de unde rezulta ca L(s 1) < < L(s) si teorema este demonstrata. Se arata
00
simplu ca C (s) > 0 si, deci, s solutia inegalitatilor L(s 1) < < L(s) este punct
de minim. Gestiunea optima se obtine calculand pe C(s).
118 TEORIA STOCURILOR

Cazul continuu. Rationand ca la cazul discret, se obtine pentru functia obiectiv


de la acest model C(s), expresia:
Zs Z Z
x 1 f (x) 1 (x s)2
C(s) = cs (s )f (x)dx + s2 cs dx + cp f (x)dx.
2 2 x 2 x
0 s s

Stocul optim s se obtine din conditia de minim pentru functia C(s).

Teorema 7.3.4. (Optim pentru cazul continuu). Functia C(s) si atinge mini-
cp
mul n punctul s pentru care L(s) = , unde = si:
cs + cp
Z Zs
f (x)
L(s) = F (s) + s dx, cu F (s) = f (x)dx.
x
s 0

Demonstratie.
Avem:
Zs Z Z
0 f (x) (x s)
C (s) = cs f (x)dx + scs dx cp f (x)dx.
x x
0 s s

0
Ecuatia C (s) = 0 ne da:
Z
f (x) cp
F (s) + s dx = , sau L(s) = .
x cs + cp
s

00
Solutia ecuatiei L(s) = o vom nota cu s si deoarece C (s) > 0, aceasta este punct
de minim.

7.4. Aplicatii

Exercitiul 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 face n cantitati
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.
APLICATII 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 = 150$;
l
cs = 0, 5$/t.

Exercitiul 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 cantitati 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;
cs = 0, 025$;



c = 0, 25$;
p
cl = 100$.

Exercitiul 7.4.3. La un magazin alimentar se vand produse lactate care au


un termen de garantie de 3 zile. Necesarul de produse pentru 300 zile este de
250000 bucati, pretul de achizitie de 0,25$, costul fix de lansare al comenzii 500$,
iar coeficientul de proportionalitate 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 garantie), 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 achizitie.
120 TEORIA STOCURILOR


= 300 zile;

Q = 250000;



ca = 0, 25$;

cb = 500$;



= 0, 15;

cu restrictia T 3.

Exercitiul 7.4.4. Se organizeaza pe o perioda de 300 zile stocul produselor


P1 , P2 , P3 , n conditiile modelului de stocare a mai multor produse. Sunt date:

Q1 = 400t;



Q2 = 2500t;



Q3 = 900t;



cl1 = 200$;
cl2 = 150$;



cl3 = 400$;


cs1 = 2$;




cs2 = 2$;

cs3 = 4$.
Sa se stabileasca elementele optime ale activitatii de management a stocului.

Exercitiul 7.4.5. Cererea (n tone) pentru o anumita marfa este o variabila


aleatoare cu densitatea de probabilitate:

(x + ), x [0, 5]
f (x) =
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.

R5
Raspuns. Determinam mai ntai valoarea din conditia (x+) = 1. Obtinem:
0

2
= .
25 + 10

Functia de repartitie va fi:

Zs
s2
F (s) = (x + )ds = ( + s),
2
0
APLICATII 121

iar ecuatia
c2
F (s) =
c1 + c2
devine:
2 s2 2
( + s) = ,
25 + 10 2 3
care este echivalenta cu:
10(5 + 2)
s2 + 2s = 0.
3

Solutia s() = + 13 92 + 30 [0, 5] a acestei ecuatii este stocul optim.
Gestiunea optima va fi C(s()).

Exercitiul 7.4.6. Cererea (n tone) pentru o anumita marfa este o variabila


aleatoare cu densitatea de probabilitate:

(x + ), x [0, 5]
f (x) =
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.

R5
Raspuns. Determinam mai ntai valoarea din conditia (x+) = 1. Obtinem:
0

2
= .
25 + 10
Functia de repartitie va fi:

Zs
s2
F (s) = (x + )ds = ( + s),
2
0

Ecuatia
Z
f (x) cp
F (s) + s dx =
x cp + cs
0

care ne va da stocul optim va fi:


122 TEORIA STOCURILOR

Z
s2 (x2 + ) 10
( + s) + s dx =
2 x 11
s
sau
Z
s2 (x2 + ) 10
( + s) + s dx = ,
2 x 11
s
ecuatie care nu are solutii (integrala este divergenta). Acest lucru ne arata ca nu se
poate calcula mereu un stoc optim.

Exercitiul 7.4.7. In vederea efectuarii unor studii de marketing, o agentie 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.

Exercitiul 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

PROBABILITATI

8.1. Probabiliatea unui eveniment


8.1.1. Cazul finit dimensional si al evenimetelor elementare echiprob-
abile
Fermat (1601-1665) si Pascal (1623-1662) au definit pentru prima data probabil-
itatea realizarii evenimentului A, ca:
Numarul cazurilor favorabile aparitiei evenimentului A
P (A) = .
Numarul total de cazuri
Definitia este valabila n cazul finit dimensional si al evenimentelor elementare
echiprobabile.
Exemple:
a) Se arunca cu doua zaruri. Probabilitatea de a obtine poarta n casa, adica
|n m| = 2, unde n si m sunt numerele de pe zarurile care au iesit la aruncare, este:
8
P (A) = = 0, 22.
36
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:
Ca Cb Cc
P (A) = ++
.
Ca+b+c

c) Schema lui Bernoulli, cu ntoarcere. Intr-o urna sunt a bile albe, b bile negre,
c bile rosii. Se fac n extrageri succesive n a + b + c, cu revenire. Probabilitatea

123
124 PROBABILITATI

sa avem extrase bile albe, bile negre, bile rosii, n = + + , 0 a,


0 b, 0 c este:

n! a b c
P (A) =
!!! a+b+c a+b+c a+b+c

d) Schema lui Poisson (1781-1840). Se considera n urne Ui , i = 1, . . . , n, continand


bile albe si negre, cu probabilitatea ca efectuand la ntamplare o extragere din urna
Ui , i = 1, . . . , n sa apara o bila alba respectiv neagra sunt pi respectiv qi = 1 pi .
Se extrage o bila din fiecare urna. Probabilitate ca din cele n bile extrase, k sa fie
albe si n k sa fie negre este coeficientul lui tk din polinomul:

P (t) = (p1 t + q1 ) (p2 t + q2 ) . . . (pn t + qn ).

8.1.2. Probabitati geometrice


Aria hasurata
Formula utilizata este P (A) = .
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 Buffon (1707-1788).
In plan este trasata o retea de drepte paralele, echidistante, la distanta 1, una de
alta. Se arunca un ac de lungime 0, 5. Probabilitatea ca acul sa atinga reteaua este
1
, se poate arata folosind probabilitati geometrice.

PROBABILIATEA UNUI EVENIMENT 125

c) Se alege la ntamplare un triunghi, din multimea tuturor triunghiurilor. Prob-


1
abilitatea ca triunghiul sa fie ascutitunghic este . Probabilitatea ca triunghiul sa
4
fie dreptunghic este 0. Acestea se pot deduce utilizand probabiliati geometrice.

8.1.3. Frecventa absoluta. Frecventa relativa

Notam cu (fn ) sirul frecventelor absolute ale aparitiei evenimentului A n urma


unor experimente repetate. Fie (n ) sirul frecventelor relative corespunzatoare: n =
fn
. Daca n p si p = P (A), calculata, estimata printr-o alta metoda, atunci avem
n
o mai mare ncredere ca p = P (A).
Frecventa absoluta poate fi privita ca o variabila aleatoare, astfel: f1 variabila
aleatoare care are repartitia:

0 1
,
q p

unde p = P (A), q = 1 p.
f2 este variabila aleatoare care are repartitia:

0 1 0 1 0 1 2
+ = .
q p q p q 2 2qp p2

f3 este variabila aleatoare care are repartitia:



0 1 0 1 0 1 0 1 2 3
+ + = s.a.m.d.
q p q p q p q 3q p 3qp p3
3 2 2

Sirul variabilelor aleatoare fn monitorizeaza aparitia evenimetului A.


Deci fn este variabila aleatoare care are repatitia:

0 1 2 ... n
.
q n Cn1 q n1 p Cn2 q n2 p2 . . . pn

1
Frecventa relativa n este variabila aleatoare n = fn .
n
Prin urmare frecventele absolute si frecventele relative pot fi privite ca siruri
numerice, (fn ) si (n ) si pot fi privite ca varialibele aleatoare (fn ) si (n ).
126 PROBABILITATI

8.1.4. Definitia statistica a probabilitatii


a) Fie experienta aruncarii cu banul. A evenimentul de a apare banul. P (A) =
1
p = . Person a facut experinta de 24000 ori si a obtinut n = 0, 5005..
2
b) S-a facut experinta acului lui Buffon de un numar de 5000 de ori. S-a obtinut
pentru 5000 = 0, 3175, de unde 3, 1496.
Aceste doua exemple, celebre, ne ndreptatesc sa acceptam cu ncredere si sperante
definitia urmatoare: Fie A un eveniment. Repetam experinta de multe ori si cal-
culam fn si n . Daca n se stabilizeaza n jurul unei valori p R, acceptam definitia
P (A) = n = p, n suficient de mare, cand n se stabilizeaza aproape de p. Aceasta
este definitia statistica a probabilitatii lui A.

8.1.5. Definitia axiomatica a probabilitatii

Definitia 8.1.1. (, K, P) se numeste camp de probabilitate daca:


a) 6= (spatiul evenimentelor);
b) K P () (K se numete campul/multimea evenimentelor);
c) P (A), A K, P (A) [0, 1] (probabilitatea evenimentului A).

8.2. Variabile aleatoare normal distribuite


8.2.1. Densitatea de probabilitate normala
(x m)2
1
p(x) = e 2 2 , m R, > 0 se numeste densitatea de probabilitate
2
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 :

8.2.2. Functia Laplace-Gauss


Z x t2
1
(x) = e 2 dt este functia Laplace (1749-1827)-Gauss.
2
(x) are urmatoarele proprietati imdediate:
1
(0) =
2
(x) + (x) = 1, x R
(x) 1, x 3
(x) 0, x 3.
VARIABILE ALEATOARE NORMAL DISTRIBUITE 127

Figura 8.2: Graficul densitatii normale.

Figura 8.3: Graficul functiei Laplace-Gauss.

8.2.3. O formula analitica pentru calculul probabilitatii


Enuntam o teorema de mare importanta.

Teorema 8.2.1. a) Daca f este o variabila aleatoare cu densitatea de probabil-


Z
itate p(x), atunci P ( f ) = p(x)dx.

b) Daca f este o variabila aleatoare normal distribuita, adica p(x) este densitatea
128 PROBABILITATI

m m
normala, atunci: P ( f ) = ( ) ( ).

8.2.4. Inegalitatea lui Cebasev (1821-1894)


Daca f este o variabila aleatoare cu media m si media patratica , atunci: P (|f
2
m| ) 2 , > 0.

8.2.5. Teorema celor 3


a) Daca f este o variabila aleatoare cu media m si abaterea patratica , atunci
8
P (|f m| 3) .
9
b) Daca f este o variabila aleaoare normal distribuita, atunci P (|f m| 3) 1.

8.3. Legea numerelor mari


p
Fie (, K, P ) un camp de probabilitate si (fn ), f variabile aleatoare. fn f daca
si numai daca pentru orice > 0, limn P (|fn f | ) = 0.

Teorema 8.3.1. Fie (, K, P ) un camp de probabilitate, A K, si p = P (A).


Fie (fn ) sirul frecventelor absolute si (n ) sirul frecventelor atasate unor experimente
succesive. Fie (f n ) sirul variabilelor aleatoare al frecventelor absolute si ( n ) sirul
variabilelor aleatoare al frecventelor relative ale aparitiei evenimentului A. Atunci:
a) n p n imensa
majoritate a cazurilor.
p p
b) n p = .
1

p p
Observatie. Daca n p = , deci totdeauna n tinde n probabilitate la
1

p
variabila aleatoare . Evident sunt miracole cand n nu converge la p dar n
1
imensa majoritate a cazurilor n p.
Legea numerelor mari da relatia dintre p = P (A), probabilitatea lui A, calculata
sau estimata ntr-un anume mod si probabilitatea lui A n 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.
TESTE 129

8.4.1. Forma Leapunov (1857-1918) a Teoremei Limita Centrala

Teorema 8.4.1. Fie (fn ) un sir de variabile aleatoare pe (, K, P), astfel ncat:
1. (fn ) variabile aleatoare independente;
2. (fn ) sunt din aceeiasi lume, adica au aceiasi densitate de probabilitate (sau
aceiasi matrice de repartitie), deci au aceiasi medie m si aceiasi medie patratica 2 .
nm
Atunci, pentru n mare avem: P ( f1 + . . . + fn ) ( )
n
nm
( ).
n

Observatia 8.4.1. Comparand teorema de mai sus cu formula de la punctul


8.2.3 se poate enunta urmatorul rezultat, numit Miracolul Gauss-Lapace:
Daca f1 , . . . fn , . . . sunt variabile aleatoare independente, din aceeiasi lume,
atunci pentru n mare, F = f1 + . . . fn se comporta ca o variabila aleatoare normal

distribuita cu media M = n m si abaterea medie patratica n.

8.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limita Cen-


trala

Teorema 8.4.2. Fie (fn ) un sir de variabile aleatoare pe (, K, P), astfel ncat:
1. (fn ) variabile aleatoare independente.
0 1
2. (fn ) variabile aleatoare, din aceeiasi lume, Bernoulliana cu X = .
q p
np
Atunci, pentru n mare avem: P ( f1 + . . . + fn ) ( )
npq
np
( ).
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 parti. Partea 1 este partea teoretica, partile 2 si 3
contin aplicatii referitoare a legea numerelor mari si teorema limita centrala.

8.5.1. Testul 1
Exercitiul 8.5.1.1. a) Enuntati teorema celor 3.
b) Legea uniforma pe intervalul [10, 20]. Media si abaterea medie patratica pentru
o variabila aleatoare uniform repartizata pe [10, 20].
130 PROBABILITATI

c) Fie (fn ) variabile aleatoare, care au densitatile de probabiliatate (pn ), respec-


tiv, unde pn are graficul:

Figura 8.4: Densitatea de probabilitate.


p
Sirul de variabile aleatoare fn converge n probabilitate, la 0 (fn 0)?

Exercitiul 8.5.1.2. O retea de traficanti de droguri pun droguri n pachetele


ntre 10g si 50g. Distributia se apreciaza ca se face uniform. Pachetele se pun n bax-
uri, fiecare bax, avand 1000 pachetele. 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.

Exercitiul 8.5.1.3. Se considera ecuatia ax2 + bx + 1 = 0, a 6= 0, a, b R,


1 a 1, 2 b 2.
Se aleg la ntamplare a, b n conditiile de mai sus.
Se cere:
a) Sa se determine p = P (A), probabilitatea ca ambele radacini sa fie reale.
b) Sa se determine n N astfel ncat P (|n p| 0, 01) = 0, 7, unde n
este variabila aleatoare a frecventelor relative ale aparitiei evenimentului A, A fiind
evenimentul ca ambele radacini sa fie reale.

8.5.2. Testul 2

Exercitiul 8.5.2.1. a) Densitatea de probabilitate normala. Definitie, pro-


prietati, graficul.
b) Daca f este o variabila aleatoare normal distribuita, cu m = 70, = 5, calculati
P (60 f 70).
c) Enuntati teorema limita centrala sub forma Moivre-Laplace.
TESTE 131

Exercitiul 8.5.2.2. Se aunca doua zaruri. Notam cu A evenimentul ca suma


zarurilor sa fie 7.
a) Calculati P (A).
b) Determinati variabila aleatoare ce monitorizeaza aparitia evenimentului A.
Determinati m si .
c) Determinati n N, de cate ori trebuie facuta experienta, astfel ncat P (|n
p| 0, 01) = 0, 8, unde n este variabila aleatoare a frecventelor relative ale aparitiei
evenimentului A.

Exercitiul 8.5.2.3. O banca are 10000 clienti. Se estimeaza ca un client pe o


perioada de o luna are urmatoarele optiuni:
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 clientilor. Determinati:
a) P (S 0), situatia n care banca este n mare dificultate;
b) P (S 1000000), situatia n care banca are mare profit;
c) P (500000 S 700000).

8.5.3. Testul 3

Exercitiul 8.5.3.1. a) (x), functia lui Laplace. Definitie, proprietati, graficul.


Calculati (1) + (2).
b) Enuntul legii numerelor mari sub forma lui Bernoulli.

Exercitiul 8.5.3.2. Se alege la ntamplare o pereche de numere (x, y), 1


x, y 1. Notam cu A evenimentul ca x2 + y 2 1.
a) Determinati p = P (A).
b) Se noteaza cu n sirul variabilelor aleatoare ale frecventelor relative ale aparitiei
evenimentului A. Determinati n astfel ncat P (|n p| 0, 01) = 0, 8.

Exercitiul 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.
P
Se face experienta de 1000 ori si se noteaza S = s.
Determinati P (100 S 150).
132 PROBABILITATI

8.5.4. Testul 4

Exercitiul 8.5.4.1. a) Inegalitatea lui Cebasev.


1
b) Fie f o variabila aleatoare care are densitatea de probabilitate p(x) = .
(x2 + 1)
Determinati P (0 f 1).

Exercitiul 8.5.4.2. Se alege un triunghi, n mod aleatoriu, din multimea tu-


turor triunghiurilor. Fie A evenimentul ca un unghi al triunghiului ales sa fie mai
mare sau egal cu 120 . Fie p = P (A).
a) Calculati p.
b) Se efectueaza aceasta experienta 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 exprienta, astfel ncat n p, cu
eroare de cel mult 0, 01 cu o probabilitatea de 0, 7.

Exercitiul 8.5.4.3. Se arunca 1000 zaruri. Se noteaza cu S suma tuturor


zarurilor. Determinati n = P (3500 S 4000) si m = P (4000 S 6000).
Care numar este mai mare, n sau m?

8.5.5. Testul 5
Exercitiul 8.5.5.1. a) Teorema celor 3. Deduceti o teorema analoaga 2.
n 1
b) Fie densitatea de probabilitate pn (x) = 2 .
x + n2
p
fn variabila aleatoare cu densitatea de probabilitate pn . fn 0?

Exercitiul 8.5.5.2. Fie f1 , . . . , f1000 variabile aleatoare independente, definite


(, K, P). Presupunem ca variabilele aleatoare au aceiasi densitate de probabilitate
p(x), a carui grafic este reprezentat n figura 8.5.
a) Determinati m si , media si abaterea medie patratica a acestor variabile
aleatoare.
b) Notam cu S = f1 + . . . f1000 . Determinati P (S 1350).

Observatia 8.5.1. Problema de mai sus poate fi privita astfel: f1 , f2 , . . . f1000


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 fie n situatia S 1350
puncte sau S 135000 RON.
TESTE 133

Figura 8.5: Densitatea de probabilitate.

Exercitiul 8.5.5.3. Fie (fn ) un sir de variabile aleatoare simple pe (, K, P) a


!
1 0 1
caror repartitie este: 1 2 1 .
1
n n n
a) Calculati mn si n , mediile si abaterile medii patratice ale lui fn .
p
b) Decideti daca fn 0.

8.5.6. Testul 6
p
Exercitiul 8.5.6.1. a) Definiti convergenta n probabilitate, fn f.
b) Se considera (fn ), un sir de variabile aleatoare care au densitatea de probabil-
itate pn , acestea avand graficul din figura 8.6.
p
Decideti daca fn 0.
c) Aceiasi ntrebare ca la punctul b) daca pn are graficul din figura 8.7.

Exercitiul 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?

Exercitiul 8.5.6.3. Probabilitatea de castig la ruleta este 0, 45. Presupunem ca


la fiecare joc castiga sau pierde 1 euro. Cate jocuri trebuie jucate astfel ncat cu
probabilitatea de 0, 5 castigul cazinoului sa fie de cel putin 1000 euro?
134 PROBABILITATI

Figura 8.6: Densitatea de probabilitate.

Figura 8.7: Densitatea de probabilitate.

8.6. Cateva distributii importante


8.6.1. Repartitii continue
Vom prezenta o serie de distributii continue precum si principalele lor proprietati.

Repartitia normala

Definitia 8.6.1. (Repartitia normala). Vom spune ca variabila aleatoare X


urmeaza o repartitie normala de parametrii si 2 (vom nota acest lucru prin
CATEVA DISTRIBUTII IMPORTANTE 135

X N (, 2 )) daca are densitatea de repartitie:

(x )2
1
n(x; , 2 ) = e 2 2 , x R.
2

Teorema 8.6.1. Media si dispersia unei variabile aleatoare X repartizata nor-


mal de parametrii si 2 este:

M (X) = ,

respectiv
D2 (X) = 2 .

Teorema 8.6.2. Daca X1 si X2 au o repartitie N (1 , 12 ), respectiv N (2 , 22 )


atunci
X1 + X2 N (1 + 2 , 2 12 + 2 22 )

unde , R.

Repartitia lognormala

Definitia 8.6.2. (Repartitia lognormala). Vom spune ca variabila aleatoare


X(X > 0) urmeaza o repartitie lognormala (vom nota acest lucru prin X LN (, 2 ))
daca logaritmul ei are densitatea de repartitie N (, 2 ).

Teorema 8.6.3. Media si dispersia unei variabile aleatoare X repartizata log-


normal de parametrii si 2 este:
1 2
M (X) = e+ 2 ,

respectiv
2 2
D2 (X) = e2+ (e 1).

Teorema 8.6.4. Daca variabila aleatoare X urmeaza o repartitie lognormala


de parametrii si 2 0 atunci repartitia lognormala standardizata tinde catre
repartitia N (0, 1).
136 PROBABILITATI

Teorema 8.6.5. Daca X1 si X2 au o repartitie LN (1 , 12 ), respectiv LN (2 , 22 )


atunci:
e X11 X22 N ( + 1 1 + 2 2 , 12 12 + 22 22 )

unde > 0 si 1 , 2 R.

Repartitia uniforma

Definitia 8.6.3. Vom spune ca variabila aleatoare X are o repartitie uniforma


n intervalul [a, b] (vom scrie acest lucru prin X U (a, b)) daca densitatea sa de
repartitie este:
1
u(x) = , x [a, b] si u(x) = 0, x
/ [a, b].
ba

Teorema 8.6.6. Media si dispersia unei variabile aleatoare X repartizata U (a, b) :


a+b
M (X) = ,
2

respectiv
(b a)2
D2 (X) = .
12

Repartitia exponentiala

Definitia 8.6.4. Vom spune despre variabila aleatoare X ca urmeaza o repartitie


exponentiala de parametru > 0 (vom scrie acest lucru X Exp()) daca densi-
tatea de repartitie este f (t) = et pentru t 0 si f (t) = 0 pentru t < 0.

Teorema 8.6.7. Daca X Exp() atunci


1
M (X) = ,

1
D2 (X) =
2

si
r!
M (X r ) = .
r
CATEVA DISTRIBUTII IMPORTANTE 137

Exercitiul 8.6.1. Daca X si Y sunt variabile aleatoare independente repartizate


Exp() atunci
X
Exp().
X +Y

Repartitia gama

Definitia 8.6.5. Vom spune despre o variabila aleatoare ca urmeaza o repartitie


gama de parametrii si (vom scrie acest lucru X (, )) daca are densitatea
de repartitie:
1 x
f (x) = x1 e , 0 x < .
()
unde este functia lui Euler definita prin formula:
Z
() = x1 ex dx.
0

Teorema 8.6.8. Daca X (1 , ) si Y (2 , ) sunt variabile aleatoare


independente atunci:
a) X + Y (1 + 2 , );
X
b) are densitatea de repartitie:
Y
(1 + 2 ) 1 1
h(x) = x (1 + x)(1 +2 ) , x 0.
(1 )(2 )

Generalizand la n variabile aleatoare, obtinem repartitia Dirichlet.

Teorema 8.6.9. Daca Xi (i , 1) sunt k + 1 variabile aleatoare independente


atunci repartitia variabilelor aleatoare Y1 , . . . , Yk+1 date de:

Y = Xj
j , j = 1, . . . , k
X1 + . . . + Xk+1
Y = X + ... + X
k+1 1 k+1

are forma (repartitia Dirichlet):


P
k+1 Q
k P
k
( i ) yii 1 (1 yi )k+1 1
i=1 i=1 i=1
,
Q
k+1
(i )
i=1
138 PROBABILITATI

unde 0 < yj si y1 + . . . + yk < 1.

n
Un alt caz particular important al repartitiei gama se obtine pentru = cu
2
2
orice n ntreg pozitiv si = 2 . Repartitia astfel obtinuta se numeste repartitia
2 cu n grade de libertate.

Observatia 8.6.1. Pentru n = 2 repartitia 2 devine repartitia exponentiala.

Teorema 8.6.10. Daca Xi N (0, 2 ) sunt n variabile independente atunci


variabila aleatoare:
Xn
Y = Xj2 2 (n).
i=1

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

X n 2
N (0, 1).
2 2n

De obicei, cunatilele repartitiei 2 (n) sunt tabelate pana la n = 30, deoarce


pentru n > 30 este posibil sa se foloseasca cunatilele repartitiei N (0, 1).
CATEVA DISTRIBUTII IMPORTANTE 139

Repartitia beta

Definitia 8.6.6. Vom spune ca variabila aleatoare X urmeaza o repartitie beta


de parametrii si (vom scrie acest lucru ca X Be(, )), daca are densitatea
de repartitie:
(
(+) 1
()() x (1 x)1 , 0 < x < 1; , > 0
f (x) =
0 n rest.

Definitia 8.6.7. Repartitia F (m, n) este obtinuta ca o transformare a repartitie


beta:
X
Y = unde X Be(, )
(1 X)
m
cu = 2 si = n2 . Distributia corespunzatoare variabilei Y F (m, n) este:
(
( m+n )
( m
2
)( n y 1 (1 + y)(+) , 0 < x < 1; , > 0
f (x) = 2 2
)
0 n rest.

Teorema 8.6.12. Daca X 2 (m) si Y 2 (n) atunci:

X/m
F = Be(, ).
Y /n

Definitia 8.6.8. Repartitia t(n) (t cu n grade de liberatate) este obtinuta ca o


transformare a repartitie F (1; n) si anume:

t= X

iar densitatea de repartitie corespunzatoare este:


(
( n+1 ) x2 n+1
2 n (1 + n)
2 , < x < ; n = 1, 2, 3, . . .
f (x) = n( 2 )
0 n rest.

Teorema 8.6.13. Daca X N (0, 1) si Y 2 (n) atunci

X
t = q t(n).
Y
n
140 PROBABILITATI

Repartitia Cauchy

Definitia 8.6.9. Repartitia Cauchy C(; ) este definita de densitatea de repar-


titie:
1
f (x) = , x R, > 0.
2 + (x )2

Observatia 8.6.2. Repartitia Cauchy este un exemplu de repartitie care nu are


momente.

8.6.2. Distributii discrete


Vom prezenta principalele distributii discrete: Bernoulli, Binomiala, Poisson,
hipergeometrica si geometrica.

Distributia Bernoulli

Definitia 8.6.10. Distributia 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 distributie Bernoulli de para-


metru p atunci media este M (X) = p iar dispersia D2 (X) = p(1 p).

Distributia binomiala

Definitia 8.6.11. Distributia binomiala Bi(n, p) de parametrii n si p este data


de P (X = i) = Cni pni (1 p)i pentru i = 0, . . . , n.

Teorema 8.6.15. Daca variabila X urmeaza o distributie binomiala Bi(n, p)atunci


media este M (X) = np iar dispersia D2 (X) = np(1 p).

Teorema 8.6.16. Daca X1 , . . . , Xn sunt n variabile aleatoare independente repar-


Pn
tizate Bernoulli de parametru p atunci variabila Xi urmeaza o repartitie bino-
i=1
miala Bi(n, p).

Observatia 8.6.3. Distributia binomiala Bi(n, p) de parametrii n si p este mod-


elata de selectia cu revenire dintr-o urna U (a, b) care contine a bile albe si b bile
negre si este probabilitatea ca din n extrageri sa se obtina k bile albe:
CATEVA DISTRIBUTII IMPORTANTE 141

k nk
a n
P (X = k) = Cnk 1 .
a+b a+b

Distributia Poisson
Distributia Poisson se obtine din distributia Bi(n, p) cand n , p 0 si
produsul n p = este constant. Functia densitate de probabilitate este data de:
k e
P (X = k) = , k = 0, 1, 2, . . .
k!

Distributia hipergeometica
Distributia hipergeometrica este modelata de o selectie fara revenire dintr-o urna
U (a, b) care contine a bile albe si b bile negre si este probabilitatea ca din n extrageri
sa se obtina k bile albe:
Cak Cbnk
P (X = k) = n unde n a + b si k a.
Ca+b

Distributia geometrica
Distributia geometrica are functia de densitate de probabilitate data de:
P (X = n) = p(1 p)n , pentru n = 0, 1, . . .
Este numita distributia lui Pascal (1623-1662) si mai este numita distributia
primului succes.

8.6.3. Calculul numeric al cuantilelor


Vom prezenta doua metode numerice de calcul a cuantilei de ordinul pentru
repartitia N (0, 1), respectiv repartitia 2 (n).

Cuantila repartitiei normale


Fara restrangerea generalitatii putem presupune ca [0, 0, 5]. Atunci, utilizand
tehnica dezvoltarii n fractii continue, vom obtine:
P
2
ai i r
i=0 1
u = , = ln ,
P
3 2
bi i
i=0
142 PROBABILITATI

unde constantele ai si bi sunt:




a0 = 2, 515517

a1 = 0, 802853




a2 = 0, 010328
b0 = 1



b1 = 1, 432877


b2 = 0, 189269


b3 = 0, 001308.

Cuantilele repartitiei chi-patrat


Cuantila de ordinul a repartitiei 2 (n), pentru n > 30, este data de:
2 2 1
h = n + 2nu + u2 + O( ).
3 3 n

Pentru detalii se poate consulta Abramowitz si Stegun [1].

8.6.4. Intervale de ncredere


Se numeste interval de ncredere cu nivelul de semnificatie al caracteristicii
(medie, dispersie, proportie etc.) c al unei variabile aleatoare X un interval [a; b] cu
proprietatea:

Pr(c [a; b]) 1 ,

valoarea 1 se numeste nivel de ncredere.


Fie {x1 , . . . xn } realizarile a n variabile aleatoare independente identic repartizate
ca si X (din lumea lui X). Atunci:
x1 + . . . + xn
x =
n
este un estimator nedeplasat pentru media m a variabilei aleatoare X si:

(x1 x)2 + . . . (xn x)2


s2 =
n1
este un estimator nedeplasat pentru dispersia 2 a variabilei aleatoare X.

1. Intervalul de ncredere pentru media m a unei populatii normale, cu cunos-


cut. Intervalul de ncredere pentru media m a unei populatii nu neaparat
normale dar n 30, cu cunoscut.
CATEVA DISTRIBUTII IMPORTANTE 143


x z1 2 < m < x + z1 2
n n
nivelul de ncredere este 1 , iar z1 2 fiind determinat din relatia:


(z1 2 ) = Pr(z z1 2 ) = 1 .
2
2. Intervalul de ncredere pentru media m a unei populatii normale, cu ne-
cunoscut si n 30, este:
s s
x t1 2 ;n1 < m < x + t1 2 ;n1
n n
nivelul de ncredere este 1 , iar t1 2 (n 1) fiind determinat din relatia:


Pr(t t1 2 ;n1 ) = 1 ,
2
unde numarul gradelor de libertate al repartitiei t este n 1.
3. Intervalul de ncredere pentru proportia p a unei populatii repartizate binomial
este:
r r
pq pq
p z1 2 < p < p + z1 2
n n
nivelul de ncredere este 1 , iar z1 2 fiind determinat din relatia:


(z1 2 ) = Pr(z z1 2 ) = 1 ,
2
unde np 5, nq 5, p + q = 1.
4. Intervalul de ncredere pentru dispersia 2 a unei populatii normale este:

(n 1)s2 2 (n 1)s2
< <
21 ;n1 2 ;n1
2 2

nivelul de ncredere este 1 , iar 2 ;n1 fiind determinat din relatia:


2


Pr(2 2 ;n1 ) = ,
2 2
unde numarul gradelor de libertate al repartitiei 2 este n 1.
144 PROBABILITATI

8.6.5. Teste statistice


Fie doua ipoteze statistice H0 (ipoteza nula) si HA (ipoteza alternativa) asupra
caracteristicii unei variabile aleatoare. Definim:
1 = Pr(accept H0 |H0 adevarata) probabilitatea aparitiei unui rezultat neg-
ativ;
= Pr(resping H0 |H0 adevarata) probabilitatea aparitiei unui rezultat fals
pozitiv;
1 = Pr(resping H0 |H0 falsa) probabilitatea aparitiei unui rezultat pozitiv;
= Pr(accept H0 |H0 falsa) probabilitatea aparitiei unui rezultat fals negativ.
Decizia referitoare la apartenenta la una din cele doua ipoteze se face pe baza
unei functii de test f calculata dintr-un esantion X1 , ..., Xn de volum n. Regiunea
de acceptare a ipotezei alternative, deci de respingere a ipotezei nule se numeste
regiune critica. Ideal este ca ambele tipuri de erori sa fie minime. Acest lucru nu
este posibil pentru testele bazate pe intervale de ncredere pentru care valoarea
este fixata.
Valoarea P este cel mai mic prag de semnificatie (risc de ordinul 1) pentru care
se respinge ipoteza nula H0 (pe baza valorilor statisticii f (X1 , ..., Xn )) deci:

P resping H0 la pragul ,

si
<P accept H0 la pragul .

Observatia 8.6.4. Valoarea P asociata unei statistici f (X1 , ..., Xn ) se obtine


din ecuatia P = P r(resping H0 | regiunea de respingere pentru H0 data de valoarea
f ).

1. Pentru ipoteza nula H0 : m = m0 de verificare a mediei m a unei populatii


nu neaparat normale, cu cunoscut, pentru care volumul sondajului n 30,
versus ipoteza alternativa HA : m m0 , regiunea critica este data de:

n(x m0 )
z= z1 .

2. Pentru ipoteza nula H0 : m = m0 de verificare a mediei m a unei populatii
nu neaparat normale, cu cunoscut, pentru care volumul sondajului n 30,
versus ipoteza alternativa HA : m m0 , regiunea critica este data de:

n(x m0 )
z= z .

CATEVA DISTRIBUTII IMPORTANTE 145

Figura 8.8: Interpretarea testelor statistice.

3. Pentru ipoteza nula H0 : m = m0 de verificare a mediei m a unei populatii


nu neaparat normale, cu cunoscut, pentru care volumul sondajului n 30,
versus ipoteza alternativa HA : m 6= m0 , regiunea critica este data de:

n(x m0 ) n(x m0 )
z= z 2 sau z = z1 2 .

4. Pentru ipoteza nula H0 : m = m0 de verificare a mediei m a unei populatii


normale, cu necunoscut, pentru care volumul sondajului n 30, versus
ipoteza alternativa HA : m 6= m0 , regiunea critica este data de:

n(x m0 ) n(x m0 )
t= t 2 ;n1 sau t = t1 2 ;n1 .
s s

5. Pentru ipoteza nula H0 : m1 = m2 de verificare a egalitatilor mediilor m1 si m2


unor populatii nu neaparat normale, cu 1 respectiv 2 cunoscute, pentru care
volumul sondajului n 30, m 30, versus ipoteza alternativa HA : m1 6= m2 ,
regiunea critica este data de:

x y x y
z=q z 2 sau z = q z1 2 .
12 22 12 22
n m n m
146 PROBABILITATI

6. Pentru ipoteza nula H0 : 2 = 02 de verificare a egalitatilor dispersiilor unei


populatii normale versus ipoteza alternativa HA : 2 > 02 , regiunea critica
este data de:

(n 1)s2
2 = 21;n1 .
02

7. Pentru ipoteza nula H0 : 2 = 02 de verificare a egalitatilor dispersiilor unei


populatii normale versus ipoteza alternativa HA : 2 < 02 , regiunea critica
este data de:

(n 1)s2
2 = 2;n1 .
02

8. Pentru ipoteza nula H0 : 2 = 02 de verificare a egalitatilor dispersiilor unei


populatii normale versus ipoteza alternativa HA : 2 6= 02 , regiunea critica
este data de:

(n 1)s2
2 = 2 ;n1
02 2

sau

(n 1)s2
2 = 2 21 ;n1 .
0 2
Partea II

CRIPTOLOGIE

147
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 spatiu este ignorat sau nlocuit cu car-
acterul cel mai putin frecvent din limba n care este textul clar (n limba romana
Q).
Fiecarei litere din textul sursa i se asociaza ordinea lexicografica 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. Exercitii rezolvate


Exercitiul 9.2.1. Sa se cifreze mesajul:
CRIPTOGRAFIE
algoritmul utilizat fiind cifrul lui Cezar cu cheia de cifrare k = 7.

Rezolvare: Se cifreaza litera cu litera, tinand cont de pozitia 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;

149
150 SISTEMUL DE CIFRARE CEZAR

Se continua n mod analog pentru fiecare litera si n final se obtine JYPWA


VNYHM PL.

Exercitiul 9.2.2. Sa se decripteze mesajul:


JAJSN SHWDU YTQTL DXNQJ SHJNX LTQIJ SXXXX
algoritmul utilizat fiind cifrul lui Cezar. Indicati cheia de cifrare.

Rezolvare: Se verifica, pe rand, toate cheile posibile, pana cand se obtine un text
cu sens. In functie de lungimea cheii, corespondenta 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 presupune nlocuirea fiecarei litere cu litera corespunzatoare


n alfabetul rotit cu k pozitii.
Decriptand fiecare caracter n corespondentul sau clar se obtine, 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 obtine: EVEN IN CRYPTOLOGY
SILENCE IS GOLDEN.

9.3. Exercitii propuse


Exercitiul 9.3.1. Scrieti o aplicatie care sa implementeze urmatoarele functii:
- cifrarea unui text cu ajutorul algoritmului de cifrare Cezar;
EXERCITII PROPUSE 151

- 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 solutiilor posibile.
Verificati rezultatul pe datele de intrare din exercitiile urmatoare.

Exercitiul 9.3.2. Sa se cifreze mesajul:


MIRACLE
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 3.

Raspuns: PLUDFOH.

Exercitiul 9.3.3. Sa se cifreze mesajul:


CALCULATOR
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 11.

Raspuns: NLWNF WLEZC.

Exercitiul 9.3.4. Sa se cifreze mesajul:


ELECTRONIC MAIL
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 5.

Raspuns: JQJHY WTSNH RFNQ.

Exercitiul 9.3.5. Sa se cifreze mesajul:


DIGITAL SIGNATURE
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 2.

Raspuns: FKIKV CNUKI PCVWT G.

Exercitiul 9.3.6. Sa se decripteze mesajul:


IGQTI GYCUJ KPIVQ PXXXX
algoritmul utilizat fiind cifrul lui Cezar. Indicati cheia de cifrare.

Raspuns: GEORGE WASHINGTON, k = 2.

Exercitiul 9.3.7. Sa se decripteze mesajul:


UIPNB TKFGG FSTPO
algoritmul utilizat fiind cifrul lui Cezar. Indicati cheia de cifrare.

Raspuns: THOMAS JEFFERSON, k = 1.


152 SISTEMUL DE CIFRARE CEZAR

Exercitiul 9.3.8. Sa se decripteze mesajul:


AREYY KYYOS VYUTM XGTZ
algoritmul utilizat fiind cifrul lui Cezar. Indicati cheia de cifrare.

Raspuns: ULYSSES SIMPSON GRANT, k = 6.

Exercitiul 9.3.9. Sa se decripteze mesajul:


CDTC JCON KPEQ NP
algoritmul utilizat fiind cifrul lui Cezar. Indicati cheia de cifrare.

Raspuns: ABRAHAM LINCOLN, k = 2.

Exercitiul 9.3.10. Sa se decripteze mesajul:


ECFDEPO ALCEJ
algoritmul utilizat fiind cifrul lui Cezar. Indicati cheia de cifrare.

Raspuns: TRUSTED PARTY, k = 11.

Exercitiul 9.3.11. Sa se cifreze mesajul:


EXAMEN CRIPTOGRAFIE
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 3.

Raspuns: HADPH QFULS WRJUD ILH.

Exercitiul 9.3.12. Sa se decripteze mesajul:


HADPH QFULS WRJUD ILH
algoritmul utilizat fiind cifrul lui Cezar. Indicati cheia de cifrare.

Raspuns: EXAMEN CRIPTOGRAFIE, k = 3.

Exercitiul 9.3.13. Sa se cifreze mesajul:


KANSAS CITY
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 4.

Raspuns: OERWE WGMXC.

Exercitiul 9.3.14. Sa se decripteze mesajul:


OERWE WGMXC
algoritmul utilizat fiind cifrul lui Cezar. Indicati cheia de cifrare.

Raspuns: KANSAS CITY, k = 4.


Capitolul 10

METODA SUBSTITUTIEI

10.1. Breviar teoretic


Operatia de cifrare se bazeaza pe o corespondenta 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 spatiul. Alfabetul
cifrat poate fi format din aceeleasi caractere sau doar din cele 26 de litere (ale limbii
romane) caz n care spatiul se va nlocui cu cea mai putin frecventa litera (Q) sau
se va ignora pur si simplu. In continuare, delimitatorul de cuvant este nlocuit cu
litera Q.
Corespondenta dintre cele doua alfabete poate fi:
- aleatoare;
- pseudoaleatoare: plecand de la o parola se construieste alfabetul cifrat.
Intrucat n cazul corespondentei aleatoare lucrurile sunt cat se poate de clare,
vom prezenta pe scurt o metoda de constructie a corespondentei 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 aparitiei, literele din parola;
- se scriu literele alfabetului care nu apar n parola.
Corespondenta ntre cele doua alfabete se realizeaza dupa regula alfabet n alfabet
dupa o permutare fixa (aceasta poate fi chiar permutarea identica iar la descifrare
se aplica aceelasi procedeu dar cu inversa permutarii ).
In functie de forma permutarii substitutia se numeste:
- directa (alfabetul cifrat are acelasi sens lexicografic cu alfabetul clar, sunt n
total 26 astfel de substitutii). Exemplu de substitutie 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

153
154 METODA SUBSTITUTIEI

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 lexicografic cu alfabetul clar, sunt n
total 26 de astfel de substitutii). Exemplu de substitutie 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 substitutii 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 lexicografica):

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 lexicografica):

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 substitutia este directa daca nu este
specificat altfel.

Definitia 10.1.1. Un cifru de substitutie liniar de la Zm la Zm (m fiind


numarul de caractere al alfabetului sursa) poate fi descris prin functia f : Zm Zm
definita prin f (x) = x + cu gcd(, m) = 1, functia de descifrare fiind f 1 (x) =
1 (x ). Cheia de cifrare o formeaza numerele si .

Observatia 10.1.1. Cifrul de substitutie are proprietatea de confuzie (ascun-


derea legaturii dintre textul clar si textul cifrat).
EXERCITII REZOLVATE 155

10.2. Exercitii rezolvate


Exercitiul 10.2.1. Sa se construiasca alfabetul de cifrare cu ajutorul parolei

T EST ARESIST EM

iar apoi sa se cifreze mesajul IN CRIPTOGRAFIE NICI O REGULA NU ESTE


ABSOLUTA. Permutarea care realizeaza corespondenta 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:
Corepondenta 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

Corepondenta 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 spatiul este nlocuit cu cea mai putin
frecventa litera:

IN QCRIP T OGRAF IEQN ICIQOQREGU LAQN U QEST EQABSOLU T A.

Mesajul cifrat va fi:


OHDXC OFMGQ CZUOV DHOXO DGDCV QIKZD HIDVB MVDZY BGKIM
Z.
156 METODA SUBSTITUTIEI

Exercitiul 10.2.2. Sa se descifreze mesajul:


DOJMD OVPGF OMATN BXXXX
algoritmul utilizat fiind o substitutie simpla determinata de cuvantul cheie PASS-
WORD.

Rezolvare:
Corespondenta 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. Exercitii propuse


Exercitiul 10.3.1. Dezvoltati o aplicatie care sa simuleze executia functiilor de
cifrare/descifrare corespunzatoare metodei substitutiei.

Exercitiul 10.3.2. Dezvoltati o aplicatie care sa decripteze, prin metoda frecventei,


mesajele cifrate prin metoda substitutiei.

Exercitiul 10.3.3. Dezvoltati o aplicatie care sa decripteze, prin metoda atac-


ului cu text clar cunoscut, mesajele cifrate prin metoda substitutiei.

Exercitiul 10.3.4. Sa se cifreze mesajul:


WEB DESIGN
algoritmul utilizat fiind o substitutie simpla determinata de cuvantul cheie BROWSER.

Raspuns: VSRWS PDAJ.

Exercitiul 10.3.5. Sa se cifreze mesajul:


PUBLIC KEY
algoritmul utilizat fiind o substitutie simpla determinata de cuvantul cheie
ASYMMETRIC.

Raspuns: KQSFC YDEX.


EXERCITII PROPUSE 157

Exercitiul 10.3.6. Sa se descifreze mesajul:


ONCJB DFJPT DCJKN KKQTV TDSXXX
algoritmul utilizat fiind o substitutie simpla determinata de cuvantul cheie CRIP-
TOGRAFIE.

Raspuns: FRANKLIN DELANO ROOSEVELT.

Exercitiul 10.3.7. Sa se descifreze mesajul:


EKBJO DSZAT NCGPF TJJTP YXXXX
algoritmul utilizat fiind o substitutie simpla determinata de cuvantul cheie CRIPTO.

Raspuns: JOHN FITZGERALD KENNEDY.

Exercitiul 10.3.8. Demonstrati ca metoda de cifrare prin substitutie este un


sistem nchis.

Exercitiul 10.3.9. Sa se cifreze mesajul:


PRIVATE KEY
algoritmul utilizat fiind o substitutie simpla determinata de cuvantul cheie
BUCURESTI.

Raspuns: LNAVB PEFEY.

Exercitiul 10.3.10. Sa se descifreze mesajul:


LNAVB PEFEY
algoritmul utilizat fiind o substitutie simpla determinata de cuvantul cheie BU-
CURESTI.

Raspuns: PRIVATE KEY.

Exercitiul 10.3.11. Sa se cifreze mesajul:


ASSYMETRIC ENCRYPTION
algoritmul utilizat fiind o substitutie simpla determinata de cuvantul cheie
BRASOV.

Exercitiul 10.3.12. Sa se descifreze mesajul:


BPPYI OQNEA OJANY LQEKJ
algoritmul utilizat fiind o substitutie simpla determinata de cuvantul cheie BRASOV.

Raspuns: ASSYMETRIC ENCRYPTION.


158 METODA SUBSTITUTIEI
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 digrafice (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 substitutie monoalfabetice.
Descriem n continuare modul de utilizare n cazul alfabetului latin compus din
26 litere. Literele alfabetului A Z sunt trecute ntr-un careu de 5 5 (litera I fiind
asimilata literei J). Textul clar este preprocesat astfel ncat acesta sa fie compatibil
cu matricea de cifrare: delimitatorul de cuvant este ignorat sau este nlocuit cu cea
mai putin 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 fiind 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.

Observatia 11.1.1. Daca o digrama apare n textul clar n ordine inversa atunci

159
160 SISTEMUL DE CIFRARE PLAYFAIR

acelasi lucru se va ntampla si n textul cifrat.

Observatia 11.1.2. Algoritmul Playfair nu are regula pentru cifrarea literelor


duble: digramele ce contin doua litere identice sunt sparte prin introducerea artifi-
ciala a unei alte litere.

Observatia 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 frecventei
digramelor de text clar combinata cu metoda comparatiei patternurilor din textul
cifrat cu patternuri din dictionar.

11.2. Exercitii rezolvate


Exercitiul 11.2.1. Sa se construiasca matricea de cifrare Playfair cu ajutorul
parolei

CRIP T OGRAF IE

iar apoi sa se cifreze mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR.

Rezolvare: Matricea Playfair se obtine trecand literele din parola o singura data
n careul de 5 5 iar apoi celelalte litere ale alfabetului n ordine lexicografica:

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 finalul mesajului (pentru ca acesta sa aiba lungime para):

SIQIN QCRIP T OGRAF IEQT ACEREAQEST EQAU RQ.

Exemplificam pentru fiecare caz cate o digrama:

SI - conform regulii de cifrare se formeaza dreptunghiul cu colturile I si S


parcurs n sensul IQSP. Textul cifrat l constituie digrama formata din colturile
care nu apar n textul clar, luate conform ordinii de parcurgere: QP.
EXERCITII PROPUSE 161

QI - ntrucat literele sunt pe aceeasi coloana se aplica regula cifreaza n jos,


descifreaza n sus, obtinandu-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, obtinandu-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.

Exercitiul 11.2.2. Sa se descifreze mesajul:


UFRIL ERGPC RQAW
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind CRIPTOGRAFIE.

Rezolvare: Matricea Playfair este aceeasi din exercitiul anterior, fiind formata
pornind de la aceeasi parola.
Exemplificam pentru fiecare caz operatia de descifrare pe cate o digrama:

UF - conform regulii de descifrare, se formeaza dreptunghiul cu colturile U si


F. Textul clar l constituie celelalte 2 colturi, primul caracter al textului clar
fiind cel care se gaseste pe aceeasi linie cu primul caracter n clar din digrama.
Se obtine SE.

RI - ntrucat literele sunt situate pe aceeasi linie se aplica regula cifreaza la


dreapta, descifreaza la stanga, obtinandu-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, obtinandu-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. Exercitii propuse


Exercitiul 11.3.1. Scrieti o aplicatie care sa implementeze urmatoarele functii:
- cifrarea unui text cu ajutorul algoritmului Playfair;
- descifrarea unui text cifrat cu algoritmul Playfair;
Verificati rezultatul pe datele de intrare din exercitiile urmatoare.
162 SISTEMUL DE CIFRARE PLAYFAIR

Exercitiul 11.3.2. Sa se cifreze mesajul:


SECURITY IS CHANGING FIELD
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind CHANNEL.

Raspuns: UAEQQ KYNMQ HANEL PEFLO CGMA.

Exercitiul 11.3.3. Sa se cifreze mesajul:


AUTONOMOUS ATTACK AGENTS
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind MALICIOUS.

Raspuns: UFNDV EOESB CPZQL MFCHF PNGL.

Exercitiul 11.3.4. Sa se cifreze mesajul:


VALUABLE SOURCE OF REFERENCE
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind INSTITUTE.

Raspuns: WERDB CFDNP DZDAM GMDMF MDTABV.

Exercitiul 11.3.5. Sa se cifreze mesajul:


THE CIRCLE
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind ALBUM.

Raspuns: POFDKQDAKB.

Exercitiul 11.3.6. Sa se descifreze mesajul:


KDDPM RUBVR PTSFU HPEBV
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind PASSWORD.

Raspuns: GERALD RUDOLPH FORD.

Exercitiul 11.3.7. Sa se descifreze mesajul:


KDPEK DOSTF RDRXB NBBBB
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind PASSWORD.

Raspuns: GEORGE WALKER BUSH.

Exercitiul 11.3.8. Sa se descifreze mesajul:


KDPEK DKBDC RDQOP MTKDC XPNS
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind PASSWORD.
EXERCITII PROPUSE 163

Raspuns: GEORGE HERBERT WALKER BUSH.

Exercitiul 11.3.9. Sa se descifreze mesajul:


GBQY YAAO RNBM
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind TEST.

Raspuns: HARRY TRUMAN.

Exercitiul 11.3.10. Sa se descifreze mesajul:


PIGOY CLETY AEYLQ VSFWN
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind CRYPTOOL.

Raspuns: THE ART OF PROGRAMMING.

Exercitiul 11.3.11. Sa se cifreze mesajul:


SINAIA
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind SECRET KEY.

Raspuns: RFOYHB.

Exercitiul 11.3.12. Sa se descifreze mesajul:


RFOYHB
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind SECRET KEY.

Raspuns: SINAIA.

Exercitiul 11.3.13. Sa se cifreze mesajul:


PREDEAL
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind PASSWORD.

Raspuns: RFRBD ONU.

Exercitiul 11.3.14. Sa se descifreze mesajul:


RFRBD ONU
Algoritmul utilizat este cifrul lui Playfair, parola utilizata fiind PASSWORD.

Raspuns: PREDEAL.
164 SISTEMUL DE CIFRARE PLAYFAIR
Capitolul 12

SISTEMUL DE CIFRARE
HILL

12.1. Breviar teoretic


Sistemul de cifrare Hill este o metoda de substitutie poligrafica bazata pe calcule
efectuate n algebra mod p.
In faza de preprocesare delimitatorul de spatiu este ignorat sau nlocuit cu car-
acterul cel mai putin 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
fiind 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 nmultirile: o prima subclasa are ca regula de
cifrare operatia de nmultire C = MK cu descifrarea M = CK1 iar a doua subclasa
foloseste ca regula de cifrare nmultirea C = KM avand descifrarea corespunzatoare
M = K1 C.

Observatia 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.

Observatia 12.1.2. In cazul alfabetului latin p = 26, cheia de cifrare K trebuie


sa fie o matrice inversabila mod 26.

165
166 SISTEMUL DE CIFRARE HILL

12.2. Exercitii rezolvate


Exercitiul 12.2.1. Sa se cifreze mesajul:
BLAZE OF GLORY.
Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare fiind matricea:

J B
.
V I

Rezolvare: Prin nlocuirea literelor din cheie cu pozitiile corespunzatoare din


alfabet (A - 0, B - 1, etc.) se obtine:

9 1
K= .
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:

9 1
C= 1 11 mod 26 = 6 11 = G L .
21 8

Deci, BL se cifreaza n GL. Se continua n mod analog. In final se obtine:


GLFSS MPBDT HB.

Exercitiul 12.2.2. Sa se descifreze mesajul:


JESHB JJAZM TANCF VBJXX.
Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare fiind matricea:

H U
.
D F

Rezolvare: Prin nlocuirea literelor din cheie cu pozitiile corespunzatoare din


alfabet (A - 0, B - 1, etc.) se obtine:

7 20
K= .
3 5

Se determina inversa matricei K mod 26 :


EXERCITII PROPUSE 167

K1 = 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

5 20 5 6
K = mod 26 = .
3 7 23 7
S-a obtinut:

1 5 6
K = .
23 7
Pentru descifrarea perechii JE, se determina matricea linie care contine valorile
corespunzatoare din alfabet:

C= J E = 9 4 .
Prin nmultire cu cheia de descifrare se obtine:

5 6
M= 9 4 mod 26 = 7 4 = H E .
23 7
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 final, dupa efectuarea tuturor calculelor si regruparea literelor, se obtine: HER-
BERT CLARK HOOVER.

12.3. Exercitii propuse


Exercitiul 12.3.1. Scrieti o aplicatie care sa implementeze functiile de cifrare
si descifrare, specifice algoritmului Hill cu p = 26.
Verificati rezultatul pe datele de intrare din exercitiile urmatoare.

Exercitiul 12.3.2. Sa se cifreze mesajul:


COMPLETE AND PROPER PACKAGE.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

N T
.
C R
168 SISTEMUL DE CIFRARE HILL

Raspuns: GIZTL MLCNN MBTML UMDMI AUYC.

Exercitiul 12.3.3. Sa se cifreze mesajul:


ESOTERIC TOPIC OF RESEARCH.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

B Y
.
G P

Raspuns: ICYXC NUOZQ LMIYD LICES DWHM.

Exercitiul 12.3.4. Sa se cifreze mesajul:


BENJAMIN HARRISON.
Algoritmul utilizat este cifrul lui Hill (3 3), cheia de cifrare fiind matricea:

A B C
B C A .
C A B

Rapuns: EJPYJ EBIXZ IRUSE ANA.

Exercitiul 12.3.5. Sa se descifreze mesajul:


ZKNAW NIOZO BRXSW QNNXX.
Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare fiind matricea:

B E
.
V H

Rapuns: RONALD WILSON REAGAN.

Exercitiul 12.3.6. Sa se descifreze mesajul:


ZPXUB IRHNU VXWSP DJTNN.
Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare fiind matricea:

J D
.
X C

Rapuns: RICHARD MILHOUS NIXON.

Exercitiul 12.3.7. Sa se descifreze mesajul:


EJPYJ EBIXZ IRUSE ANA.
EXERCITII PROPUSE 169

Algoritmul utilizat la cifrare este cifrul lui Hill (3 3), cheia de cifrare fiind
matricea:
A B C
B C A .
C A B

Rapuns: BENJAMIN HARRISON.

Exercitiul 12.3.8. Sa se descifreze mesajul:


NYNAF JUWBL ZXANM NGLEI JQWF
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

J S
.
W V

Raspuns: FINAL ROUND TRANSFORMATION.

Exercitiul 12.3.9. Sa se descifreze mesajul:


NKTNM QZQEY WVDIA CIGMG.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

D I
.
K B

Raspuns: RETRIEVE YOUR BAGGAGE.

Exercitiul 12.3.10. Demonstrati ca algoritmul lui Hill este un algoritm de


cifrare nchis.

Exercitiul 12.3.11. Sa se cifreze mesajul:


OPERATIONAL RESEARCH.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

F H
.
H I

Raspuns: TKJID WIMNN SFQQU CVFLD.

Exercitiul 12.3.12. Sa se descifreze mesajul:


TKJID WIMNN SFQQU CVFLD.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

F H
.
H I
170 SISTEMUL DE CIFRARE HILL

Raspuns: OPERATIONAL RESEARCH.

Exercitiul 12.3.13. Sa se cifreze mesajul:


CRYPTOLOGY.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

T E
.
S T

Raspuns: CVWPB KFWCS.

Exercitiul 12.3.14. Sa se cifreze mesajul:


NAVAJO CODE.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

L Q
.
L J

Raspuns: NNXXL RMSTR.

Exercitiul 12.3.15. Sa se descifreze mesajul:


CVWPB KFWCS.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

T E
.
S T

Raspuns: CRYPTOLOGY.

Exercitiul 12.3.16. Sa se descifreze mesajul:


NNXXL RMSTR.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:

L Q
.
L J

Raspuns: NAVAJO CODE.


Capitolul 13

SISTEME DE CIFRARE
POLIALFABETICE

13.1. Breviar teoretic


Un sistem de cifrare de tip substitutie polialfabetica este generalizarea sistemului
de cifrare de substitutie monoalfabetica, fiind compus dintr-un numar N de alfabete.
Fiecare alfabet reprezinta o permutare (stabilita n functie 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 identificat prin aplicarea analizei frecventelor
de apatitie a literelor n secvente decimate din textul cifrat.
Un exemplu de sistem polialfabetic este algoritmul lui Vigenere n care parola
k1 , . . . , kn este folosita periodic pentru a transforma caracterul mj {A, . . . , Z} din
textul clar dupa formula: cj = (mj + kj mod n ) mod 26. Pentru descifrare se foloseste
formula: mj = (cj kj mod n ) mod 26.
Atacul sistemelor polialfabetice este similar cu atacul a N sisteme de substitutie
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 suficient 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 reconstructie partiala (pe baza frecven-
telor (j + 1)gramelor) a alfabetelor i, . . . , i + j.
PASUL 3. Conform celor N alfabete reconstruieste textul clar.

171
172 SISTEME DE CIFRARE POLIALFABETICE

Observatia 13.1.1. Procedura descrisa mai sus are ca parametru implicit de


analiza numarul maxim de legaturi 4 : astfel, 1gramele sunt caracterele, 2gramele
sunt dubletii, etc.

13.2. Exercitii rezolvate


Exercitiul 13.2.1. Sa se cifreze mesajul WINDS OF CHANGE cu ajutorul
algoritmului Vigenere, parola fiind FUTURE.

Rezolvare: Aplicand cifrarea pentru fiecare caracter al textului clar, tinand cont
de pozitia acestora n alfabet, se obtine:

j mj kj(mod 6) cj = (mj + kj(mod 6) )(mod 26)


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 D3 U 20 (3 + 20)(mod 26) = 23 X
5 S 18 R 17 (18 + 17)(mod 26) = 9 J
6 O 14 E4 (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 E4 (6 + 4)(mod 26) = 10 K
13 E4 F 5 (4 + 5)(mod 26) = 9 J

Rezulta textul cifrat: BCGXJ SKWAU EKJ.

Exercitiul 13.2.2. Sa se descifreze mesajul IHWGZ CIHGO GKAJV OI stiind


ca a fost cifrat cu ajutorul algoritmului Vigenere, parola fiind PASSWORD.

Rezolvare: Aplicand descifrarea pentru fiecare caracter al textului cifrat, tinand


cont de pozitia acestora n alfabet, se obtine:
EXERCITII PROPUSE 173

j cj kj(mod 8) mj = (cj kj(mod 8) )(mod 26)


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 D3 (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 D3 (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. Exercitii propuse


Exercitiul 13.3.1. Sa se cifreze mesajul OPTIMISTIC cu ajutorul algoritmului
Vigenere, folosind parola GOODDAYS.

Raspuns: UDHLPIQLOQ.

Exercitiul 13.3.2. Sa se cifreze mesajul THANK YOU cu ajutorul algoritmului


Vigenere, folosind parola POLITE.

Raspuns: IVLVD CDI.

Exercitiul 13.3.3. Sa se cifreze mesajul GOING BACK IN TIME cu ajutorul


algoritmului Vigenere, folosind parola MEMORY.

Raspuns: SSUBX ZMGW WE RUQQ.

Exercitiul 13.3.4. Sa se cifreze mesajul FAST CARS cu ajutorul algoritmului


Vigenere, folosind parola RADAR.
174 SISTEME DE CIFRARE POLIALFABETICE

Raspuns: WAVT TRRV.

Exercitiul 13.3.5. Sa se cifreze mesajul SUITCASE cu ajutorul algoritmului


Vigenere, folosind parola TRIP.

Raspuns: LLQIVRAT.

Exercitiul 13.3.6. Sa se descifreze mesajul WIUXGHG WXGALFYK stiind


ca a fost cifrat cu ajutorul algoritmului Vigenere, parola fiind TEST.

Raspuns: DECENDO DECISMUS.

Exercitiul 13.3.7. Sa se descifreze mesajul UAEGQD OOGAT stiind ca a fost


cifrat cu ajutorul algoritmului Vigenere, parola fiind TANGO.

Raspuns: BARACK OBAMA.

Exercitiul 13.3.8. Sa se descifreze mesajul XVLGM OXLDC stiind ca a fost


cifrat cu ajutorul algoritmului Vigenere, parola fiind BRIDE.

Raspuns: WEDDING DAY.

Exercitiul 13.3.9. Sa se descifreze mesajul IHZSV SKIEE CHWPU ACSH


stiind ca a fost cifrat cu ajutorul algoritmului Vigenere, parola fiind PARADOX.

Raspuns: THIS SENTENCE IS FALSE.

Exercitiul 13.3.10. Sa se descifreze mesajul MYEYS VOJFQ ZAVLL N stiind


ca a fost cifrat cu ajutorul algoritmului Vigenere, parola fiind TRANSILVANIA.

Raspuns: THE LAND OF DRACULA.

Exercitiul 13.3.11. Sa se cifreze mesajul OPERATIONAL RESEARCH cu


ajutorul algoritmului Vigenere, folosind parola PASSWORD.

Raspuns: DPWJW HZRCA DJAGV DGCZ.

Exercitiul 13.3.12. Sa se descifreze mesajul DPWJW HZRCA DJAGV DGCZ


stiind ca a fost cifrat cu ajutorul algoritmului Vigenere, parola fiind PASSWORD.
EXERCITII PROPUSE 175

Raspuns: OPERATIONAL RESEARCH.

Exercitiul 13.3.13. Sa se cifreze mesajul CRIPTOGRAFIE cu ajutorul algo-


ritmului Vigenere, folosind parola TEST.

Raspuns: VVAIM SYKTJ AX.

Exercitiul 13.3.14. Sa se descifreze mesajul VVAI MSYK TJAX stiind ca a


fost cifrat cu ajutorul algoritmului Vigenere, parola fiind TEST.

Raspuns: CRIPTOGRAFIE.
176 SISTEME DE CIFRARE POLIALFABETICE
Capitolul 14

METODA TRANSPOZITIEI

14.1. Breviar teoretic


Metoda transpozitiei asigura, n cadrul sistemelor criptografice, realizarea di-
fuziei: mprastierea proprietatilor statistice ale textului clar n textul cifrat. Metoda
transpozitiei 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 fiind
apoi scris linie cu linie sau coloana cu coloana. Spre exemplu, n cazul transpozitiei
coloanelor, textul clar se citeste, linie cu linie, ntr-o forma tabelara cu n coloane,
acesta fiind scris pe coloane n functie 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 spatiu este ignorat sau nlocuit cu caracterul cel mai putin frecvent din limba n
care este textul clar (n limba romana Q).

14.2. Exercitii rezolvate


Exercitiul 14.2.1. Sa se cifreze prin metoda transpozitiei (N = 12), pornind
de la parola

CRIP T OGRAF IE

mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR.

Rezolvare: Vom construi secventa numerica de cifrare asociind fiecarei litere din
parola indicele din ordinea lexicografica: astfel literele din parola, scrise n ordine
lexicografica sunt:

177
178 METODA TRANSPOZITIEI

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 CRIP T OGRAF IE 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 secventa cunoscuta (n acest caz caracterul Q). Textul cifrat se obtine 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 transpozitiei N este mai mica decat lungimea parolei atunci
se vor retine N caractere din parola.

14.3. Exercitii propuse


Exercitiul 14.3.1. Scrieti un program care sa implementeze functiile de cifrare/descifrare
specifice metodei transpozitiei coloanelor.

Exercitiul 14.3.2. Sa se cifreze mesajul:


ELECTRIC HOTPLATE
printr-o transformare de tip transpozitie cu ajutorul permutarii = (2, 1, 3).

Raspuns: LTCOL EECIH PTERQ TAQ.

Exercitiul 14.3.3. Sa se cifreze mesajul:


CERCETARI OPERATIONALE
printr-o transformare de tip transpozitie cu ajutorul permutarii = (3, 1, 2).

Raspuns: EEROR IAQRT IPAOL QCCAQ ETNE.

Exercitiul 14.3.4. Sa se cifreze mesajul CRIPTOGRAFIE prin metoda transpozitiei


utilizand permutarea = (4, 2, 1, 3). Verificati rezultatul obtinut.
EXERCITII PROPUSE 179

Exercitiul 14.3.5. Sa se descifreze mesajul:


EORSE TOROE LHDEO VT
cifrat printr-o transformare de tip transpozitie cu ajutorul permutarii = (2, 3, 1).

Raspuns: THEODORE ROOSEVELT.

Exercitiul 14.3.6. Sa se descifreze mesajul:


SFCME TAEAE NLR
cifrat printr-o transformare de tip transpozitie cu ajutorul permutarii = (1, 2, 3).

Raspuns: STEFAN CEL MARE.

Exercitiul 14.3.7. Sa se descifreze mesajul:


HTZMA VEUII IAL
cifrat printr-o transformare de tip transpozitie cu ajutorul permutarii = (2, 3, 1).

Raspuns: MIHAI VITEAZUL.

Exercitiul 14.3.8. Sa se descifreze mesajul:


NMTMA STEDI NEINO NT
cifrat printr-o transformare de tip transpozitie cu ajutorul permutarii = (2, 3, 1).

Raspuns: SENTIMENT DOMINANT.

Exercitiul 14.3.9. Sa se descifreze mesajul:


TDDDR TEAAU EIASN RLCPR
cifrat printr-o transformare de tip transpozitie cu ajutorul permutarii = (3, 1, 2).

Raspuns: STANDARDUL DE CRIPTARE.

Exercitiul 14.3.10. Demonstrati ca algoritmul de cifrare ce utilizeaza transpozitia


este un sistem nchis.

Exercitiul 14.3.11. Sa se cifreze mesajul:


CERCETARI OPERATIONALE
printr-o transformare de tip transpozitie cu ajutorul permutarii = (2, 1, 3).

Raspuns: EERPAOLCC AORIARTIETNE.


180 METODA TRANSPOZITIEI

Exercitiul 14.3.12. Sa se descifreze mesajul:


EERPAOLCC AORIARTIETNE
cifrat printr-o transformare de tip transpozitie cu ajutorul permutarii = (2, 1, 3).

Raspuns: CERCETARI OPERATIONALE.

Exercitiul 14.3.13. Sa se cifreze mesajul:


OPERATIONAL RESEARCH
printr-o transformare de tip transpozitie cu ajutorul permutarii = (2, 1, 4, 3).

Raspuns: PTASC OANER RORAE ILEH.

Exercitiul 14.3.14. Sa se descifreze mesajul:


PTASC OANER RORAE ILEH
cifrat printr-o transformare de tip transpozitie 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 substitutiei
si apoi prin metoda transpozitiei sau invers.
Atacarea sistemul de cifrare se realizeaza de la ultima sa componenta catre prima.
Remarcam faptul ca substitutia simpla este comutativa cu operatia de transpozitie
deci se poate oricand aborda mai ntai substitutia si apoi transpozitia. 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 identificarea efectiva a alfabetelor si al transpozitiei utilizate. In
cazul utilizarii unui sistem poligrafic (tabele de cifrare) si o transpozitie este reco-
mandabila o tehnica de tip backtracking.

15.2. Exercitii rezolvate


Exercitiul 15.2.1. Sa se cifreze mesajul GEOMETRIC FIGURE cu ajutorul
algoritmului lui Cezar (k = 5) si al transpozitiei = (2, 1, 3).

Rezolvare: Mai ntai textul este cifrat cu sistemul Cezar folosind cheia k = 5, deci
corespondenta 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 obtine: LJT RJY WNH KNL ZWJ. Apoi, textul obtinut se aseaza ntr-o
tabela cu 3 coloane:

181
182 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 final cea din dreapta): JJNNWLRW
KZTYHLJ .

Exercitiul 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 transpozitiei utilizand permutarea (3, 2, 1).

Rezolvare: Cum substitutia si transpozitia sunt comutative, putem mai ntai de-
cripta mesajul folosind Cezar cu cheia k = 2 si apoi decripta prin metoda transpozitiei.
Pentru decriptarea mesajului folosind metoda Cezar cu k = 2, fiecare caracter se
nlocuieste cu caracterul situat cu 2 pozitii 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 transpozitiei. 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):
EXERCITII PROPUSE 183

3 2 1 1 2 3
B U S S U B
I T S S T I
T U T T U T
S A I I A S
P M I I M P
S A L L A S
R T I I T R
S N A A N S
Z O P P O Z
I T I I T I
U S A A S U
D T N N T D
A U O O U A
T E M M E T
E D O O D E
C E D D E C
R F I I F R
E R A A R E
M O C C O M
A T U U T A
V I T T I V
E E

Dupa rearanjarea coloanelor conform permutarii inverse 1 se obtine tabela


din dreapta. Citind pe linii se descopera textul clar: SUBSTITUTIA SIMPLA SI
TRANSPOZITIA SUNT DOUA METODE DE CIFRARE COMUTATIVE .

15.3. Exercitii propuse


Exercitiul 15.3.1. Dezvoltati o aplicatie care sa implementeze rutine specifice
decriptarii sistemelor mixte compuse din transpozitii si substitutii simple.

Exercitiul 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
184 SISTEME MIXTE

UFOZO GYATZ JUAGS KZUJK JKIOL


XGXKI USAZG ZOBKX
Care din afirmatiile de mai jos sunt adevarate:
a) metoda de cifrare utilizata este o substitutia simpla;
b) metoda de cifrare utilizata este o transpozitie;
c) metoda de cifrare este reprezentata de algoritmul lui Cezar;
d) nu se poate preciza sistemul criptografic utilizat.
Justificati raspunsul. Decriptati mesajul.

Raspuns: a) si c). Textul clar: SUBSTITUTIA SIMPLA SI TRANSPOZITIA


SUNT DOUA METODE DE CIFRARE COMUTATIVE.

Exercitiul 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 afirmatiile de mai jos sunt adevarate:
a) metoda de cifrare utilizata este o substitutia simpla;
b) metoda de cifrare utilizata este o transpozitie;
c) metoda de cifrare este reprezentata de algoritmul lui Cezar;
d) nu se poate preciza sistemul criptografic utilizat.
Justificati raspunsul. Decriptati mesajul.

Raspuns: b). Textul clar: SUBSTITUTIA SIMPLA SI TRANSPOZITIA SUNT


DOUA METODE DE CIFRARE COMUTATIVE.

Exercitiul 15.3.4. Cifrati mesajul SPECIAL PROPERTY folosind algoritmu-


lui lui Cezar (k = 13) si transpozitia data de = (2, 4, 3, 1).

Raspuns: PCRFVEE RYCLCNBG.

Exercitiul 15.3.5. Decriptati mesajul CPKQCG ZGTVTKGOERIH stiind ca


a fost cifrat cu ajutorul algoritmului lui Cezar si al unei transpozitii.

Raspuns: EXAMEN CRIPTOGRAFIE.


EXERCITII PROPUSE 185

Exercitiul 15.3.6. Decriptati mesajul ZGTVTK GOERIHCPKQCG stiind ca


a fost cifrat cu ajutorul algoritmului lui Cezar si al unei transpozitii.

Raspuns: EXAMEN CRIPTOGRAFIE.


186 SISTEME MIXTE
Capitolul 16

GENERATOARE
PSEUDOALEATOARE

16.1. Breviar teoretic


Un registru de deplasare cu feedback consta n n locatii de memorie de cate un
bit care se deplaseaza spre dreapta si o functie de feedback care exprima orice
element nou a(t), cu t n, al secventei n functie de elementele generate anterior
a(t n), a(t n + 1), . . . , a(t 1).
Functia de feedback trebuie sa fie nesingulara, adica de forma:
a(t) = g(a(t 1), . . . , a(t n + 1)) a(t n), unde desemneaza operatia
SAU exclusiv (XOR). Daca functia de feedback este liniara (se poate implementa
doar folosind operatia 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 locatie de memorie a registrului se numeste nivel, iar semnalele binare a(0), a(1), . . . ,
a(n 1) sunt ncarcate ca date initiale. Perioada secventei produse depinde atat de
numarul de niveluri, cat si de detaliile conexiunilor de feedback. Mai exact, perioada
maxima a secventei care poate fi generata de un registru de deplasare cu feedback,
avand n niveluri si o functie de feedback nesingulara este 2n 1, adica numarul
maxim de stari n care se poate afla un registru cu n niveluri (se exclude starea
nula). LFSR-urile sunt folosite de mult timp pentru teste VSLI, comunicatii cu
spectru distribuit etc. Functia de feedback a unui LFSR are forma:

a(t) = c1 a(t 1) c2 a(t 2) . . . cn1 a(t n + 1) a(t n), (16.1)

unde ci {0, 1}. Conexiunea de feedback a unui LFSR poate fi exprimata printr-un

187
188 GENERATOARE PSEUDOALEATOARE

polinom de feedback:

f (X) = 1 + c1 X + c2 X 2 + . . . + cn1 X n1 + X n ,

cu nedeterminata X. Acest polinom decide perioada si comportarea statistica a


secventei de iesire. Pentru a preveni o secventa de iesire triviala, trebuie ca starea
,,zero peste tot sa nu fie stare initiala. 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 initiala, atunci el va genera una din secventele 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 secventa netriviala de perioada 15, cu cea mai
buna statistica pe care o astfel de secventa o poate avea:
101100100011110 . . .
Pentru a garanta cea mai mare perioada posibila 2n 1, polinomul de feedback
f (X) al LFSR-ului trebuie sa fie 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 fie T = 2n 1. Exista algoritmi care testeaza primitivismul unui polinom.
Numarul de polinoame primitive de grad n este:

(2n 1)
Np (n) = ,
n
unde (x), cunoscuta ca functia 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 ( X1 ) 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:
1X d n
NI (n) = p ( ),
n d
d|n

Q
k
unde este functia lui Moebius definita n felul urmator pentru n = pi i : (n) = 0
1
Q
k
daca i > 1, (n) = (1)k daca n este produsul a k numere prime distincte si
i
EXERCITII REZOLVATE 189

(1) = 1. Legatura ntre functia lui Moebius si functia lui Euler este data de:

(n) X (d)
= .
n d
d|n

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

1 X 2n 1 1 n
NI (k) = 2d ( )= n [2 + 22 1 ]
2n 1 n d 2 1
d|2 1
n
(22 1 1)
= = NP (k).
2n 1

16.2. Exercitii rezolvate


Exercitiul 16.2.1. O secventa determinata de polinomul de feedback 1 + X 3 +
X4 are perioada maxima?

Rezolvare: Notam cu = X mod f (X) o radacina a polinomului de feedback:


1 + 3 + 4 = 0. Succesiv obtinem 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 24 1, n concluzie, polinomul de feedback este primitiv.
190 GENERATOARE PSEUDOALEATOARE

16.3. Exercitii propuse


Exercitiul 16.3.1. Implementati o rutina de testat primitivismul unui polinom
din Z2 [X].

Exercitiul 16.3.2. O secventa determinata de polinomul de feedback 1 + X 2 +


X4 are perioada maxima?

Raspuns: Nu. Polinomul nu este ireductibil, deci nu este primitiv.

Exercitiul 16.3.3. O secventa determinata de polinomul de feedback 1+X+X 4


are perioada maxima?

Raspuns: Da. Polinomul de feedback este primitiv.

Exercitiul 16.3.4. O secventa determinata de polinomul de feedback 1+X+X 3


are perioada maxima?

Raspuns: Da. Polinomul de feedback este primitiv.

Exercitiul 16.3.5. O secventa determinata de polinomul de feedback 1 + X +


X2 + X 3 are perioada maxima?

Raspuns: Nu. Polinomul nu este primitiv.

Exercitiul 16.3.6. O secventa determinata de polinomul de feedback 1 + X 2 +


X5 are perioada maxima?

Raspuns: Da. Polinomul de feedback este primitiv.

Exercitiul 16.3.7. O secventa determinata de polinomul de feedback 1 + X +


X3 + X 4 + X 5 are perioada maxima?

Raspuns: Da. Polinomul de feedback este primitiv.

Exercitiul 16.3.8. O secventa determinata de polinomul de feedback 1 + X +


X 3 + X 5 are perioada maxima?

Raspuns: Nu. Polinomul nu este primitiv.


EXERCITII PROPUSE 191

Exercitiul 16.3.9. O secventa determinata de polinomul de feedback 1 + X +


X2 + X 3 + X 5 are perioada maxima?

Raspuns: Da. Polinomul de feedback este primitiv.

Exercitiul 16.3.10. O secventa determinata de polinomul de feedback 1+X 2 +


X 3 + X 4 + X 5 are perioada maxima?

Raspuns: Da. Polinomul de feedback este primitiv.


192 GENERATOARE PSEUDOALEATOARE
Capitolul 17

CALCULE IN CORPURI
GALOIS

17.1. Breviar teoretic


Corpul Galois GF (2n ) este definit de un polinom f (X) Z2 [X] de grad n.
Elementele acestui corp sunt polinoame.
Operatiile ntre doua polinoame a(X) = a0 + a1 X + . . . an X n si b(X) = b0 +
b1 X + . . . bn X n din GF (2n ) se definesc n modul urmator:
a) a(X) b(X) = c(X), ci = (ai + bi ) mod 2;
b) a(X) b(X) = a(X)b(X) mod f (X).
Un element din GF (2n ) se poate reprezenta sub forma binara (si apoi hexazec-
imala) prin coeficientii sai : a0 + a1 X + . . . + an X n se identifica cu an . . . a1 a0 ,
ai {0, 1}
Inversul unui element din GF (2n ) se determina cu algoritmul lui Euclid, exem-
plificat n continuare.

17.2. Exercitii rezolvate


Exercitiul 17.2.1. Care este inversul elementului {45} (reprezentat n format
hexa) din GF (28 ) definit 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 afla


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 ecuatie catre prima, succesiv obtinem:

193
194 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 codificarea
hexa ajungem la concluzia ca inversul elementului {45} este {31}.

Exercitiul 17.2.2. Sa se adune elementele {57} si {83} n corpul Galois GF (28 )


definit 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 obtinem {57} {83} = {11010100} =
{D4}.

Exercitiul 17.2.3. Sa se nmulteasca elementele {57} si {83} n corpul Galois


GF (28 ) definit 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. Exercitii propuse


Exercitiul 17.3.1. Implementati proceduri de calcul n corp Galois.

Exercitiul 17.3.2. Care este inversul elementului {33} (reprezentat n format


hexa) din GF (28 ) definit de polinomul 1 + X + X 3 + X 4 + X 8 .

Raspuns: {6C}.

Exercitiul 17.3.3. Care este inversul elementului {12} (reprezentat n format


hexa) din GF (28 ) definit de polinomul 1 + X + X 3 + X 4 + X 8 .

Raspuns: {AA}.

Exercitiul 17.3.4. Care este inversul elementului {31} (reprezentat n format


hexa) din GF (28 ) definit de polinomul 1 + X + X 3 + X 4 + X 8 .

Raspuns: {45}.
EXERCITII PROPUSE 195

Exercitiul 17.3.5. Aratati ca elementele {12} si {AA} (reprezentate n format


hexa) sunt inverse n corpul Galois GF (28 ) definit de polinomul 1+X +X 3 +X 4 +X 8 .

Exercitiul 17.3.6. Sa se adune elementele {5} si {7} n corpul Galois GF (24 )


definit de polinomul 1 + X + X 4 .

Raspuns: {2}.

Exercitiul 17.3.7. Sa se nmulteasca elementele {5} si {7} n corpul Galois


GF (24 ) definit de polinomul 1 + X + X 4 .

Raspuns: {8}.

Exercitiul 17.3.8. Se considera transformarea data de



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

0 0 1 1 1 1 1 0 1

0 0 0 1 1 1 1 1 1 0
g(y) =

y


(17.1)
1 0 0 0 1 1 1 1 0
1 1 0 0 0 1 1 1 0

1 1 1 0 0 0 1 1 1
1 1 1 1 0 0 0 1 1
unde y1 este inversul lui y n corpul Galois GF (28 ) definit de polinomul 1 +
X + X 3 + X 4 + X 8 . Calculati g(1), g(2), g(3), g(4), g(5).

Raspuns: Transformarea indicata n problema defineste tabela de substitutie a


algoritmului RIJNDAEL. Valorile solicitate (n zecimal) sunt: g(1) = 124, g(2) =
119, g(3) = 123, g(4) = 242, g(5) = 107.
196 CALCULE IN CORPURI GALOIS
Capitolul 18

ALGORITMUL RIJNDAEL -
STANDARDUL AES

18.1. Breviar teoretic


Pentru rezolvarea urmatoarelor exercitii plecam de la ipoteza cunoasterii standar-
dului FIPS 197 - Advanced Encryption Standard compus din patru operatii (sumare
modulo 2 cu cheia de runda, subtitutia 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. Exercitii rezolvate


Exercitiul 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 fiind:

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?

197
198 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 ff 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 aflat la intersectia 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 ceilalti octeti 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 actioneaza 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 octeti iar a patra linie se roteste la stanga cu trei octeti.
Dupa aplicarea rutinei ShiftRows, starea va fi urmatoarea:

48 FC F3 B6
6C 6B B6 A8

EA 1D 84 90
26 50 C3 27
EXERCITII REZOLVATE 199

Rutina MixColumns presupune nmultirea fiecarei coloane din stare cu urmatoarea


matrice fixata:

02 03 01 01
01 02 03 01

01 01 02 03
03 01 01 02

Operatiile care rezulta din nmultirea matricilor se fac n corpul Galois GF(28 )
si sunt nmultiri de polinoame modulo polinomul generator al corpului GF(28 ) care
este h(X) = X 8 + X 4 + X 3 + X + 1. Observam ca singurele nmultiri care apar
sunt cele cu 02 si 03. Inmultirea cu polinomul 02 in GF (28 ) nseamna nmultirea cu
polinomul X.
Fie f (X) = b7 X 7 + b6 X 6 + b5 X 5 + b4 X 4 + b3 X 3 + b2 X 2 + b1 X + b0 un polinom
din GF (28 ). Sa vedem ce presupune nmultirea 02 f (X) adica X f (X):

X f (X) = b7 X 8 + b6 X 7 + b5 X 6 + b4 X 5 + b3 X 4 + b2 X 3 + b1 X 2 + b0 X(modm(X)),

unde m(X) este polinomul generator m(X) = X 4 + X 3 + X + 1 al corpului Galois


GF(28 ). Daca b7 = 0, atunci polinomul este n forma redusa n GF (28 ) (are gradul
7).
Daca b7 = 1, atunci:

X f (X) = X 8 mod m(X) + b6 X 7 + b5 X 6 + b4 X 5 + b3 X 4 + b2 X 3 + b1 X 2 + b0 X.

Deci:

X f (X) = (X 4 + X 3 + X + 1) + b6 X 7 + b5 X 6 + b4 X 5 + b3 X 4 + b2 X 3 + b1 X 2 + b0 X.

Prin urmare, nmultirea cu polinomul X poate fi implementata, n cazul n care


bitul cel mai semnificativ al polinomului f (X) este 1, ca o operatie 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 semnificativ al polinomului f (X) este 0, atunci nmultirea
presupune doar operatie de shift la stanga cu un bit.
Pentru a trece starea curenta prin rutina MixColumns, se nmulteste pe rand
fiecare coloana din stare cu matricea fixata de mai sus.
Vom prezenta doar modul de efectuare al nmultirii:

02 03 01 01 48
01 02 03 01 6C

01 01 02 03 EA
03 01 01 02 26
200 ALGORITMUL RIJNDAEL - STANDARDUL AES

Coloana rezultat va contine urmatoarele linii:



02 48 03 6C EA 26
01 48 02 6C 03 EA 26

48 6C 02 EA 03 26
03 48 6C EA 02 26

Raman de efectuat nmultirile care apar pe fiecare 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 EA EA = 11110001 11101010 = 00011011.
02 26 = 02 00100110 = 01001100.
03 26 = 02 26 26 = 01001100 00100110 = 01101010.
Dupa calculele ramase, coloana rezultat va fi:

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 operatie de XOR pe fiecare


octet din stare cu octet-ul corespunzator din cheia de runda.


E8 13 7B 23 EC 14 99 6A 04 07 E2 49
93 5D D0 71 61 25 FF B4 F2 78 2F C5
=
81 5D 08 4C 4B 75 09 9B CA 28 01 D7
12 C9 A1 B7 85 8C 37 A7 97 45 96 10
EXERCITII PROPUSE 201

18.3. Exercitii propuse


Exercitiul 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 fiind:



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

Exercitiul 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 fiind:



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?
202 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

Exercitiul 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 fiind:



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

Exercitiul 18.3.4. Executati 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:


EXERCITII PROPUSE 203


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

Exercitiul 18.3.5. Executati 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

Exercitiul 18.3.6. Executati o runda completa, pentru algoritmul RIJNDAEL


(AES), cu urmatoarele intrari:
pentru starea curenta:
204 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

Exercitiul 18.3.7. Executati 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
EXERCITII PROPUSE 205

Exercitiul 18.3.8. Executati 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
206 ALGORITMUL RIJNDAEL - STANDARDUL AES
Capitolul 19

CRIPTANALIZA
CIFRURILOR BLOC

19.1. Breviar teoretic


Deoarece nu exista o formula matematica universala care sa poata fi aplicata n
operatia de criptanaliza, am propus ca exercitii la acest capitol modificari ale unor
algoritmi de cifruri bloc consacrate. Sunt date o serie de indicatii precedate de o
scurta descriere a algoritmilor propriu-zisi.

19.2. Exercitii rezolvate


Exercitiul 19.2.1. Studiati urmatorele simplificari ale algoritmului RC5:
-RC5 cu 8 iteratii dar fara rotatii;
-RC5 cu 8 iteratii iar numarul de rotatii egal cu numarul de iteratii.

Raspuns. In cele ce urmeaza facem o scurta descriere a cifrului RC5 cu r iteratii.


Acesta are lungimea blocului de date variabila dar vom considera n cele ce urmeaza
ca aceasta a fost setata la 64 biti. Operatia de cifrare foloseste 2r+2 chei dependente
de cuvintele pe 32 biti S0 , S1 , S2 , . . . , S2r+2 unde r este numarul de iteratii. Pentru
cifrare blocul de date se mparte n doua parti de 32 biti notate cu L respectiv R
(RC5 face apel la codificarea little-endian pentru mpachetarea octetilor n cuvinte:
primul octet se transforma n cele mai putin semnificative pozitii ale lui L, etc.).
Apoi avem:

L = L + S0 ,
R = R + S1 .

207
208 CRIPTANALIZA CIFRURILOR BLOC

Pentru i = 1, . . . , r se executa:

L = ((L R) << R) + S2i ,
R = ((R L) << L) + S2i+1 .
Iesirea consta n registrele L si R. Simbolul are semnificatia sumei mod 2, sim-
bolul << semnifica rotire circulara si n fine simbolul + are semnificatia sumei mod
232 . Operatia de decriptare este similara (intervin operatorii , >> si ). Modul de
constructie al secventei S (care deriva din cheie) nu este esential n cadrul acestui
exercitiu.
Daca setam numarul de iteratii r = 8 si nu facem nici un fel de rotatii atunci
pentru i = 1, . . . , 8 se executa:

L = (L R) + S2i ,
R = (R L) + S2i+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 aflarea lui
S, deci a cheii efective.
Daca setam numarul de iteratii r = 8 si numarul de rotatii egal cu r atunci pentru
i = 1, . . . , 8 se executa:

L = ((L R) << 8) + S2i ,
R = ((R L) << 8) + S2i+1 .
Algoritmul astfel setat nu ndeplineste criteriul de avalansa stricta. Schema de
mai sus permite atacul cu ajutorul tehnicii criptanalizei diferential/liniare pentru
aflarea lui S.

Exercitiul 19.2.2. Studiati urmatorele simplificari ale algoritmului DES:


-DES cu 12 iteratii dar fara aplicatiile S;
-DES cu 4 iteratii;
-DES cu 6 iteratii.

Raspuns. Cifrul bloc DES (proiectat n 1977) este sub controlul unei chei efective
de 56 biti (cheia de baza este de 64 biti, 8 biti fiind pentru detectia erorilor) iar
marimea blocului de date este de 64 biti. Textul clar este permutat iar apoi este
mpartit n doua blocuri L si R de lungime 32 biti. Se executa apoi iterativ operatiile
(pentru i = 1, . . . , numarul de iteratii):

Li = Ri ,
Ri = Li f (Ri1 , Ki ).
EXERCITII PROPUSE 209

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


functiei f : Z32 48 32
2 Z2 Z2 . Initial blocul R (32 biti) este extins cu ajutorul
functiei E la un bloc pe 48 biti care este sumat mod2 cu cheia K (extinsa la 48
biti cu ajutorul algoritmului de producere a subcheilor). Opt aplicatii S : Z62 Z42
produc o iesire pe 32 biti care este permutata pentru a produce iesirea finala dintr-o
iteratie. Daca aplicatiile S sunt fixe (se selecteaza 4 biti din 6 n mod fix) atunci se
poate aplica tehnica criptanalizei diferentiale (bitii de la iesire sunt bitii de la intrare
(sumati mod2 cu cheia K) dar ntr-o alta ordine).
Algoritmul DES cu 4 cat si cu 6 iteratii poate fi spart cu ajutorul tehnicii atacului
cu text clar cunoscut.

19.3. Exercitii propuse


Exercitiul 19.3.1. Studiati regula B a algoritmului Skipjack cu 8 iteratii.

Exercitiul 19.3.2. Ce defect are un algoritm de cifrare care este nchis (un
algoritm de cifrare se numeste nchis daca pentru orice chei k1 si k2 exista o cheie
k3 astfel ncat pentru orice text clar M avem Ek1 Ek2 (M ) = Ek3 (M ))?

Raspuns. Ca metoda de atac generica se poate opta pentru cifrarea repetitiva.

Exercitiul 19.3.3. Aplicati tehnica criptanalizei diferentiale si criptanalizei li-


niare asupra algorimului FEAL.

Exercitiul 19.3.4. Studiati tehnica criptanalizei diferentiale n cazul algorit-


mului DES cu 16 iteratii.

Exercitiul 19.3.5. Aplicati tehnica criptanalizei liniare n cazul algoritmului


DES cu 16 iteratii.

Exercitiul 19.3.6. Avand la dispozitie un cifru bloc Ek (.) proiectati un cifru


flux si viceversa.

Exercitiul 19.3.7. Scrieti functia analitica a celor opt functii de substitutie S


ale cifrului DES.

Exercitiul 19.3.8. Fie EM (.) si DK (.) functiile de cifrare respectiv descifrare


ale unui cifru. Care este valoarea lui DK (EK (M ))?
210 CRIPTANALIZA CIFRURILOR BLOC

Nota. Descrierea algoritmilor RC5, DES, Skipjack si FEAL poate fi gasita n


Schneier [67] sau Menezes [47].

Exercitiul 19.3.9. Implementati modalitati de testare a cifrurilor bloc.

Exercitiul 19.3.10. Implementati modalitati de generare a tabelelor de substi-


tutie.

Exercitiul 19.3.11. Fie E(, ) o functie de cifrare pe m biti de cheie si n biti


de date. Care este valoarea maxima a lui m astfel ncat cheia efectiva a cifrului sa
fie m?
Capitolul 20

LEMA CHINEZEASCA A
RESTURILOR

20.1. Breviar teoretic


Teorema 20.1.1. (Lema chinezeasca a resturilor- CRT) Fie m1 , . . . , mk nu-
mere ntregi cu (mi , mj ) = 1 pentru orice i 6= j. Atunci sistemul

x ai mod mi

Q
k
are o solutie unica modulo mi .
i=1

Demonstratie. Existenta solutiei. Vom nota


k
Y
M= mi
i=1

si
M
Mi = pentru orice i = 1, . . . , k.
mi
Deoarece (mi , mj ) = 1 pentru orice i 6= j avem (Mj , mj ) = 1 pentru orice j adica
exista Nj astfel ca Mj Nj = 1 mod mj . Atunci daca notam

k
X
x= ai Mi Ni
i=0

211
212 LEMA CHINEZEASCA A RESTURILOR

si reducem modulo mi avem:


k
X
x= aj Mj Nj mod mi pentru orice i.
j=0

Folosind faptul ca (Mi , mj ) 6= 1 pentru i 6= j obtinem:

x = ai Mi Ni mod mi
= ai mod mi pentru orice i.
0 00
Unicitatea solutiei. Fie x si x doua solutii atunci
0 00
x = x x = 0 mod mi pentru orice i

deci
x = 0 mod M.

20.2. Exercitii rezolvate


Exercitiul 20.2.1. Sa se rezolve sistemul de ecuatii:

x 3 mod 13
x 34 mod 47

x 2 mod 51

Rezolvare:
Solutia sistemului de congruente este data de formula:
3
X
x= aj Mj Nj mod M.
j=1

unde a1 = 3, a2 = 34, a3 = 2 iar m1 = 13, m2 = 47, m3 = 51. Se observa ca


m1 , m2 si m3 sunt prime ntre ele.
Calculam M = 13 47 51 = 31161 si M1 = 47 51 = 2397, M2 = 13 51 = 663 si
M3 = 13 47 = 611.
Mai departe trebuie calculat inversul lui Mj pentru j = 1 , j = 2 si j = 3.
Cu algoritmul lui Euclid extins, se calculeaza N1 = M11 mod m1 = 23971 mod
13 = 51 mod 13 = 8.
Similar se calculeaza N2 = M21 mod m2 = 6631 mod 47 = 51 mod 47 = 19,
iar
EXERCITII PROPUSE 213

N3 = M31 mod m3 = 6111 mod 51 = 501 mod 51 = 50.


In acest moment, avem toate datele necesare pentru a calcula solutia x a sistemu-
lui de congruente:
x = a1 M1 N1 + a2 M2 N2 + a3 M3 N3 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 verifica faptul ca ntr-
adevar aceasta este solutia sistemului.

20.3. Exercitii propuse


Exercitiul 20.3.1. Sa se rezolve sistemul de ecuatii:

x 1 mod 13
x 2 mod 17

x 3 mod 11

Raspuns: x = 1158 mod 2431.

Exercitiul 20.3.2. Sa se rezolve sistemul de ecuatii:



x 3 mod 13
x 2 mod 11

x 2 mod 19

Raspuns: x = 211 mod 2717.

Exercitiul 20.3.3. Sa se rezolve sistemul de ecuatii:



x 3 mod 5
x 5 mod 7

x 7 mod 11

Raspuns: x = 348 mod 385.

Exercitiul 20.3.4. Sa se rezolve sistemul de ecuatii:



x 5 mod 17
x 3 mod 19

x 2 mod 23

Raspuns: x = 991 mod 7429.


214 LEMA CHINEZEASCA A RESTURILOR

Exercitiul 20.3.5. Sa se rezolve sistemul de ecuatii:



x 5 mod 11
x 3 mod 19

x 2 mod 23

Raspuns: x = 3613 mod 4807.

Exercitiul 20.3.6. Sa se rezolve sistemul de ecuatii:



x 5 mod 17
x 3 mod 21

x 2 mod 23

Raspuns: x = 4119 mod 8211.

Exercitiul 20.3.7. Sa se rezolve sistemul de ecuatii:



x 4 mod 21
x 9 mod 31

x 14 mod 23

Raspuns: x = 6178 mod 14973.

Exercitiul 20.3.8. Sa se rezolve sistemul de ecuatii:



x 4 mod 47
x 9 mod 11

x 3 mod 23

Raspuns: x = 10767 mod 11891.

Exercitiul 20.3.9. Sa se rezolve sistemul de ecuatii:



x 11 mod 17
x 12 mod 19

x 13 mod 23

Raspuns: x = 3394 mod 7429.

Exercitiul 20.3.10. Sa se rezolve sistemul de ecuatii:


EXERCITII PROPUSE 215

x 8 mod 23
x 14 mod 29

x 17 mod 31

Raspuns: x = 1319 mod 20677.

Exercitiul 20.3.11. Sa se rezolve sistemul de ecuatii:



x 15 mod 23
x 3 mod 19

x 13 mod 36

Raspuns: x = 15241 mod 15732.


216 LEMA CHINEZEASCA A RESTURILOR
Capitolul 21

SISTEMUL DE CIFRARE
MERKLE-HELLMAN

21.1. Breviar teoretic


Algoritmul de cifrare Merkle-Hellman consta n codificarea mesajului ca o solutie
a unei probleme de tip rucsac pentru care ponderile {M1 , ..., Mn } constituie cheia
P
n
de cifrare, si textului clar {b1 , ..., bn } i corespunde textul cifrat bi Mi .
i=1

Definitia 21.1.1. Un sir de ponderi {M1 , ..., Mn } se numeste supercrescator


daca:
k1
X
Mk > Mi pentru orice k. (21.1)
i=1

Problema rucsacului supercrescator este usor de rezolvat folosind urmatoarea


schema: pentru k = n, ..., 1:

daca Mk < S atunci bk = 1 si S = S Mk ;

altfel bk = 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 bi = 1 consta n testarea tuturor solutiilor. Cei mai
rapizi algoritmi de testare au o complexitate exponentiala.
Algoritmul Merkle-Hellman se bazeaza pe aceasta proprietate: cheia privata este
sirul ponderilor pentru un rucsac supercrescator iar cheia publica este sirul ponderilor

217
218 SISTEMUL DE CIFRARE MERKLE-HELLMAN

pentru un rucsac care are aceeasi solutie, 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 dispozitie o problema de tip rucsac supercrescator (cheia privata) cu
ponderile {M1 , ..., Mn } atunci aceasta se transforma ntr-o problema de tip rucsac
normala (cheia publica) cu sirul ponderilor

{mM1 mod p, ..., mMn mod p},

unde m si p sunt numere naturale prime ntre ele (acestea fac parte din cheia privata)
P
n
si p > Mi .
i=1
Pentru a cifra un mesaj binar acesta se va mparti n blocuri de lungimi egale cu
cardinalul multimii ponderilor. Cifrarea unui bloc b1 ...bn va fi numarul natural:
n
X
bi (mMi mod p).
i=1

Pentru descifrare destinatarul mesajului cunoaste cheia privata: ponderile origi-


nale si valorile lui m si p. Acesta va calcula mai ntai pe m1 mod p. Se va multiplica
apoi textul cifrat cu m1 mod p iar dupa aceea se va rezolva problema rucsacului
supercrescator pentru a recupera textul original.

21.2. Exercitii rezolvate


Exercitiul 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. Cifrati mesajul 101110.

Rezolvare:
Avand la dispozitie cheia privata {M1 , ..., Mn }, cheia publica se obtine astfel
{mM1 mod p, ..., mMn 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}.
Pn
Cifrarea mesajului 101110 ((m1 , ..., m6 )) se face dupa formula mi (mMi mod
i=1
p), adica pe baza cheii publice. Rezultatul va fi 62 + 81 + 88 + 102, deci mesajul
cifrat este c = 333.
EXERCITII PROPUSE 219

Exercitiul 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 m1 mod 1717 = 4608 5071 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 contine 1 pe pozitiile corespunzatoare acestor
ponderi, deci se obtine 100110001.

21.3. Exercitii propuse


Exercitiul 21.3.1. Dezvoltati o aplicatie care sa implementeze functiile de cifrare
si descifrare ale sistemului Merkle-Hellman.

Exercitiul 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. Cifrati mesajul 011111.

Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 401.

Exercitiul 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. Cifrati mesajul 111110.

Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 426.

Exercitiul 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. Cifrati mesajul 001110.

Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 271.

Exercitiul 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.
220 SISTEMUL DE CIFRARE MERKLE-HELLMAN

Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul clar 101110.

Exercitiul 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}, m1 mod p = 191, mesajul
clar 101000.

Exercitiul 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. Cifrati mesajul 27.

Raspuns: Cheia publica este {60, 80, 11, 82, 164, 170}, mesajul cifrat 425.

Exercitiul 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}, m1 mod p = 115, mesajul clar
011011.

Exercitiul 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. Cifrati mesajul 29.

Raspuns: Cheia publica este {25, 192, 171, 58, 166, 90}, mesajul cifrat 511.

Exercitiul 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}, m1 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 dificultatea factorizarii numerelor mari. Cheia publica si
cheia privata sunt functie 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 rationamente 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 fie 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 e1 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 fi niciodata facute publice (cunoasterea lor si a
exponentului de cifrare e conduce imediat la determinarea coeficientului 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 fiecare
mesaj bloc Mi va avea sub 200 de cifre. Daca trebuie cifrate blocuri de lungime fixa

221
222 SISTEMUL DE CIFRARE RSA

atunci vom apela la operatia de padding cu zero. Mesajul cifrat C se va obtine prin
concatenarea mesajelor Ci care au aproximativ aceeiasi lungime. Formula de cifrare
va fi:
Ci Mie mod n.
Pentru a descifra un mesaj se calculeaza:
Mi Cid mod n,
deoarece
k(p1)(q1)+1
Cid (Mie )d Mied Mi
k(p1)(q1)
Mi Mi Mi mod n.

Observatia 22.1.1. Pentru a evita metodele de factorizare cunoscute numerele


p si q trebuie sa fie 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.

Operatia de semnare a unui mesaj M se realizeaza prin exponentierea amprentei


H(M ) cu ajutorul cheii private: s = H(M )d mod n. Verificarea semnaturii se real-
izeaza prin comparatia lui H(M ) cu se 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 diferiti ntre operatiile private
(descifrare/semnare) si cele publice(cifrare/verificare semnatura).
Pentru optimizarea calculelor de verificare a semnaturii se poate utiliza lema
chinezeasca a resturilor (CRT), nsa acest lucru induce vulnerabilitati n mediul de
implementare.
Astfel, daca p > q, sunt precalculate valorile:
dP = (e1 mod n) mod (p 1),
dQ = (e1 mod n) mod (q 1),
qInv = q 1 mod p.
In faza de calcul se executa:
m1 = cdP mod p,
m2 = cdQ mod q,
h = qInv(m1 m2 ) mod p,
m = m2 + hq.
Cheia privata ce se stocheaza fiind (p, q, dP, dQ, qInv).
EXERCITII REZOLVATE 223

22.2. Exercitii rezolvate


Exercitiul 22.2.1. Se da numarul n = 36187829 despre care se cunoaste faptul
ca este un produs de doua numere cu valoarea (n) = 36175776. Factorizati numarul
n.
p
Rezolvare: Folosim relatile p+q = n(p1)(q 1)+1 si pq = (p + q)2 4n.
Obtinem p = 5657 si q = 6397.

Exercitiul 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 = 37 = 2187 = 130 mod 187.

Exercitiul 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 fi:
d = e((N ))1 = 763 = (79 )7 = (40353607)7 = 77 = 823543 = 23 mod 160.
Descifrarea mesajului cifrat C va fi: C d = 13023 = 3 = M mod 187.

Exercitiul 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 = (e1 mod n) mod (p 1) = 91,


dQ = (e1 mod n) mod (q 1) = 87,
qInv = q 1 mod p = 114.
Calculam apoi:

m1 = cdP mod p = 102,


m2 = cdQ mod q = 120,
h = qInv(m1 m2 ) mod p = 3,
m = m2 + hq = 513.
224 SISTEMUL DE CIFRARE RSA

22.3. Exercitii propuse


Exercitiul 22.3.1. Fie numerele prime p = 211 si q = 167. Sa se cifreze mesajul
TEST cu ajutorul algoritmului RSA, utilizand exponentul public e = 28 + 1. Ele-
mentele din mesajul clar se codifica conform codului ASCII.

Raspuns: N = 35237, (N ) = 34860, d = 23873, mesajul cifrat este: 01154 05746


04357 01154.

Exercitiul 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 = 28 + 1.
Elementele din mesajul clar se decodifica conform codului ASCII.

Raspuns: N = 35237, (N ) = 34860, d = 23873, mesajul clar este TEST.

Exercitiul 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.

Exercitiul 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.

Exercitiul 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.

Exercitiul 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.

Exercitiul 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).
EXERCITII PROPUSE 225

Raspuns: C = 962.

Exercitiul 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.

Exercitiul 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.

Exercitiul 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.

Exercitiul 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 = 411 = 92 mod 209.

Exercitiul 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.
226 SISTEMUL DE CIFRARE RSA
Capitolul 23

SISTEMUL DE CIFRARE
ELGAMAL

23.1. Breviar teoretic


Algoritmul de cifrare ElGamal este definit de un numar prim p si un element
g Zp primitiv, numit generator. Pentru cheia privata x Zp se calculeaza y =
g x mod p, cheia publica fiind tripletul (y, g, p).
Pentru a cifra un mesaj M Zp se alege aleatoriu k Zp1 , textul cifrat fiind
(y1 , y2 ) = (g k mod p, M y k mod p).
Pentru a descifra mesajul (y1 , y2 ) se calculeaza y2 (y1x )1 mod p.

23.2. Exercitii rezolvate


Exercitiul 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) = (142 mod 17, 14, 17) = (9, 14, 17), cheia
privata x = 2. Alegem, spre exemplu, k = 7 relativ prim cu 16 = p 1. Obtinem
mesajul cifrat C = (147 mod 17, 4 97 mod 17) = {6, 8}.

Exercitiul 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 obtine aplicand formula y2 y1x mod p = 4.

227
228 SISTEMUL DE CIFRARE ELGAMAL

23.3. Exercitii propuse


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

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

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

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

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

Exercitiul 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.

Exercitiul 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.

Exercitiul 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


Definitia 24.1.1. O curba eliptica E este constituita din elemente (numite
puncte) de tipul (x, y) ce satisfac ecuatia:

y 2 x3 + ax + b mod p

unde a si b sunt constante astfel ncat 4a3 + 27b2 6= 0 mod p si p este un numar
prim, mpreuna cu un element singular, notat O si numit punctul de la infinit. Acest
punct poate fi privit ca fiind punctul din varful si de la baza oricarei linii verticale.

O curba eliptica E are o structura de grup abelian mpreuna cu operatia adunare.


Adunarea a doua puncte de pe o curba eliptica este definita n concordanta cu o
multime simpla de reguli (vezi figura 24.1).
Fiind date doua puncte pe E, P1 (x1 , y1 ) si P2 (x2 , y2 ), avem urmatoarele cazuri:
- daca x2 = x1 si y2 = y1 atunci P1 + P2 = O.
- altfel P1 + P2 = (x3 , y3 ), unde:

x3 = 2 x1 x2
y3 = (x1 x3 ) y1
cu y y
2 1
, daca P1 6= P2
x2 x1
= 3x21 + a

, daca P1 = P2 .
2y1

229
230 ARITMETICA PE CURBE ELIPTICE

Figura 24.1: Operatia de adunare pe o curba eliptica.

Observatia 24.1.1. A nu se confunda punctul la infinit O cu perechea (0, 0).


Punctul la infinit apartine tuturor curbelor eliptice, n timp ce punctul (0, 0) este
un element doar pentru curbele eliptice cu parametrul b = 0.

24.2. Exercitii rezolvate


Exercitiul 24.2.1. Fie curba eliptica y 2 = x3 + 7x + 4 definita peste F71 . Sa se
adune punctele P (15, 17) si Q(43, 24).

Rezolvare:
Coordoantele punctului P + Q = (x3 , y3 ), sunt date de formulele:

x3 = 2 x1 x2
y3 = (x1 x3 ) y1

y2 y1
unde = x2 x1 .
EXERCITII PROPUSE 231

Pentru calculul = 7 (281 mod 71), se foloseste algoritmul lui Euclid care
gaseste 33 = 281 mod 71, deci = 231.
Atunci x3 = 2312 15 43 mod 71 = 53 iar y3 = 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).

Exercitiul 24.2.2. Fie curba eliptica y 2 = x3 +x+3 definita peste F17 . Aratati
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. Exercitii propuse


Exercitiul 24.3.1. Fie curba eliptica y 2 = x3 + 2x + 3 definita peste F23 . Sa se
adune punctele P (6, 1) si Q(13, 8).

Raspuns: R(5, 0).

Exercitiul 24.3.2. Fie curba eliptica y 2 = x3 + 7x + 4 definita peste F71 . Se da


punctul P (15, 17). Aflati 2P .

Raspuns: (66, 25).

Exercitiul 24.3.3. Fie curba eliptica y 2 = x3 + x + 6 definita peste F11 . 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.

Exercitiul 24.3.4. Fie curba eliptica y 2 = x3 + 6x + 11 definita peste F17 . Se


da punctul P (6, 5). Aflati 2P .

Raspuns: (1, 1).

Exercitiul 24.3.5. Fie curba eliptica y 2 = x3 + x + 3 definita peste F7 . Aratati


ca punctul (4, 6) este un generator al punctelor de pe curba eliptica.
232 ARITMETICA PE CURBE ELIPTICE

Raspuns: Succesiv obtinem 1P = (4, 6), 2P = (6, 1), 3P = (5, 0), 4P = (6, 6),
5P = (4, 1), 6P = O.

Exercitiul 24.3.6. Fie curba eliptica y 2 = x3 + 9 definita peste F37 . Se da


punctul P (6, 22). Aflati 2P .

Raspuns: (35, 1).

Exercitiul 24.3.7. Fie curba eliptica y 2 = x3 + 9 definita peste F37 . Se dau


punctele P (6, 22) si Q(8, 15). Aflati P + Q.

Raspuns: (26, 11).

Exercitiul 24.3.8. Fie curba eliptica y 2 = x3 + 11x + 20 definita peste F23 . Se


dau punctele P (7, 7) si Q(15, 15). Aflati P + Q.

Raspuns: (2, 21).

Exercitiul 24.3.9. Fie curba eliptica y 2 = x3 + 7x + 11 definita peste F23 . Se


dau punctele P (21, 14) si Q(7, 9). Aflati P + Q.

Raspuns: (22, 7).

Exercitiul 24.3.10. Fie curba eliptica y 2 = x3 + 5x + 5 definita peste F17 . Se


da punctul P (3, 8). Aflati 3P .

Raspuns: (12, 5).

Exercitiul 24.3.11. Fie curba eliptica y 2 = x3 + 3x definita peste F11 . Aratati


ca punctele P (0, 0) si Q(1, 2) apartin curbei. Aflati P + Q.

Raspuns: Cele 2 puncte satisfac fiecare ecuatia curbei eliptice. Suma lor este
(3, 5).

Exercitiul 24.3.12. Fie curba eliptica y 2 = x3 + 6x + 11 definita peste F17 . Se


dau punctele P (12, 3) si Q(6, 12). Aflati P + Q.

Raspuns: (14, 0).


Capitolul 25

SISTEMUL DE CIFRARE
ELGAMAL PE CURBE
ELIPTICE

25.1. Breviar teoretic


Algoritmul ElGamal poate fi extins pe orice grup finit (G, ), n care problema
logaritmului discret este dificila, n particular si pe grupul punctelor de pe o curba
eliptica.
Astfel, fie G pentru care problema logaritmului n subgrupul H = {i |i 0}
este dificila. Pe baza cheii private x Z, se construieste = x , cheia publica fiind
{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 (y1 , y2 ) dupa regula: y2 (y1x )1 .
Intr-adevar y2 (y1x )1 = M k ((k )x )1 = M kx (kx )1 = M.

25.2. Exercitii rezolvate


Exercitiul 25.2.1. Sa se cifreze mesajul (10, 9) utilizand curba eliptica (pub-
lica) E : y 2 = x3 + x + 6 pe Z11 cu ajutorul algoritmului ElGamal.

Rezolvare: Pentru a calcula punctele curbei eliptice se calculeaza valorile z =


x3 + x + 6 mod 11, se vede care din aceste valori sunt reziduri patratice cu ajutorul
p1
teoremei lui Euler (z este reziduu patratic daca si numai daca z 2 1 mod p) si

233
234 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE

p+1
apoi se calculeaza radacinile patrate ale acestor reziduri prin formula y = z 2 mod
p). Punctele curbei eliptice vor fi: {(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 obtine din si exponentul secret d prin
formula = d.
Operatia de cifrare a mesajul M cu ajutorul cheii (secrete) k este:

E(M, k) = (k, M + k).

Operatia de descifrare pentru a obtine M este:

Dk (y1 , y2 ) = y2 dy1 .

Fie d = 3. Se determina = 3(2, 7) = (8, 3).


Considerand valoarea aleatoare k = 4, se obtine: E(M, k) = (4(2, 7), (10, 9) +
4(8, 3)) = ((10, 2), (10, 9) + (2, 4)) = ((10, 2), (3, 5))

Exercitiul 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 = x3 + x + 6 pe Z11
si cheia privata d = 3.

Rezolvare: Se determina mesajul clar ca fiind: M = y2 dy1 = (3, 5) 3(10, 2) =


(3, 5) (2, 4) = (3, 5) + (2, 7) = (10, 9).

25.3. Exercitii propuse


Exercitiul 25.3.1. Se considera algoritmul ElGamal precizat de parametrii E :
y 2 = x3 + x + 6 peste Z11 . Aratati 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)).

Exercitiul 25.3.2. Se considera algoritmul ElGamal precizat de parametrii E :


y2 = x3 + x + 6 peste Z11 . Aratati ca = (2, 7) este un generator al grupului E. Sa
se descifreze mesajul ((8, 3), (5, 9)) cu ajutorul cheii private d = 5.
EXERCITII PROPUSE 235

Raspuns: Dk (y1 , y2 ) = (y2 dy1 ) = ((5, 9) 5(8, 3)) = ((5, 9) (5, 2)) = ((5, 9) +
(5, 9)) = (10, 9).

Exercitiul 25.3.3. Se considera algoritmul ElGamal precizat de parametrii E :


y2 = x3 + x + 6 peste Z13 . Aratati 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)).

Exercitiul 25.3.4. Se considera algoritmul ElGamal precizat de parametrii E :


y2 = x3 + x + 6 peste Z13 . Aratati ca = (4, 3) este un generator al grupului E. Sa
se descifreze mesajul ((9, 4), (2, 9)) cu ajutorul cheii private d = 3.

Raspuns: Dk (y1 , y2 ) = (y2 dy1 ) = ((2, 9)3(9, 4)) = ((2, 9)(4, 10)) = ((2, 9)+
(4, 3)) = (3, 7).

Exercitiul 25.3.5. Se considera algoritmul ElGamal precizat de parametrii E :


y 2 = x3 + x + 6 peste Z17 . 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)).

Exercitiul 25.3.6. Se considera algoritmul ElGamal precizat de parametrii E :


y2 = x3 + x + 6 peste Z17 . Sa se descifreze mesajul ((7, 4), (16, 2)) cu ajutorul cheii
private d = 3.

Raspuns: Dk (y1 , y2 ) = (y2 dy1 ) = ((16, 2) 7(7, 4)) = ((16, 2) (1, 5)) =
((2, 9) + (1, 12)) = (8, 4).

Exercitiul 25.3.7. Se considera algoritmul ElGamal precizat de parametrii E :


y 2 = x3 + 2x + 6 peste Z29 . 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)).
236 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE

Exercitiul 25.3.8. Se considera algoritmul ElGamal precizat de parametrii E :


y2 = x3 + 2x + 6 peste Z29 . Sa se descifreze mesajul ((14, 9), (5, 20)) cu ajutorul
cheii private d = 5.

Raspuns: Dk (y1 , y2 ) = (y2 dy1 ) = ((5, 20) 5(14, 9)) = ((5, 20) (14, 9)) =
((5, 20) + (14, 20)) = (10, 9).

Exercitiul 25.3.9. Se considera algoritmul ElGamal precizat de parametrii E :


y 2 = x3 + 2x + 7 peste Z17 . Sa se descifreze mesajul ((16, 2), (2, 6)) cu ajutorul cheii
private d = 5.

Raspuns: Dk (y1 , y2 ) = (y2 dy1 ) = ((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 fi formate din orice
elemente nenule (nu neaparat puncte din E).
Fie E o curba eliptica peste Zp , p > 3 numar prim care contine un subgrup ciclic
G n care problema logaritmului discret este dificila. Pe baza cheii private d Z, se
construieste = d, cheia publica fiind {E, , }.
Pentru a cifra mesajul m = (m1 , m2 ) Zp Zp se alege aleatoriu k si se con-
struieste textul cifrat (y0 , y1 , y2 ) dupa regulile:
y0 = k, (c1 , c2 ) = k, yi = ci mi , i = 1, 2.
La descifrare, cunoscand (y0 , y1 , y2 ) si cheia privata d se determina textul clar
astfel:
(m1 , m2 ) = (y1 c1 1
1 mod p, y2 c2 mod p), unde dy0 = (c1 , c2 )

26.2. Exercitii rezolvate


Exercitiul 26.2.1. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y 2 = x3 + x + 6 peste Z13 . Aratati 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.

237
238 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 ek (x, k) = (y0 , y1 , y2 ) unde y0 = k , (c1 , c2 ) = k , yi = ci xi (modp)
pentru i = 1, 2.
Calculam y0 = 4 (4, 3) = (9, 4) iar (c1 , c2 ) = 4 = 12 = (4, 10) deci c1 = 4 iar
c2 = 10
Se calculeaza si y1 = 4 3 mod 13 = 12 si y2 = 10 7 mod 13 = 5. Rezultatul
cifrarii mesajului (3, 7) cu valoarea aleatoare k = 4 este ((9,4), 12,5).

26.3. Exercitii propuse


Exercitiul 26.3.1. Se considera algoritmul Menezes-Vanstone precizat de para-
metrii E : y 2 = x3 + x + 6 peste Z13 . Aratati 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), (y0 , y1 , y2 ) = ((2, 9), 11, 3).

Exercitiul 26.3.2. Se considera curba eliptica E : y 2 = x3 + x + 6 peste Z13 .


Cate puncte are aceasta curba? Gasiti 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 Z13 Z13 .

Exercitiul 26.3.3. Se considera algoritmul Menezes-Vanstone precizat de para-


metrii E : y 2 = x3 +2x+5 peste Z11 . Cunoscand cheia publica (, ) = ((3, 7), (4, 0)),
sa se cifreze mesajul (5, 2) cu valoarea aleatoare k = 7.

Raspuns: (y0 , y1 , y2 ) = ((0, 7), 9, 0).

Exercitiul 26.3.4. Se considera algoritmul Menezes-Vanstone precizat de para-


metrii E : y 2 = x3 +7x+3 peste Z17 . Cunoscand cheia publica (, ) = ((12, 8), (7, 2)),
sa se cifreze mesajul (14, 7) cu valoarea aleatoare k = 7.

Raspuns: (y0 , y1 , y2 ) = ((12, 9), 13, 3).


EXERCITII PROPUSE 239

Exercitiul 26.3.5. Se considera algoritmul Menezes-Vanstone precizat de para-


metrii E : y 2 = x3 +3x+2 peste Z23 . Cunoscand cheia publica (, ) = ((15, 15), (15, 8)),
sa se cifreze mesajul (13, 19) cu valoarea aleatoare k = 2.

Raspuns: (y0 , y1 , y2 ) = ((18, 0), 4, 0).

Exercitiul 26.3.6. Se considera algoritmul Menezes-Vanstone precizat de para-


metrii E : y 2 = x3 +2x+7 peste Z23 . Cunoscand cheia publica (, ) = ((5, 21), (16, 15)),
sa se cifreze mesajul (8, 10) cu valoarea aleatoare k = 4.

Raspuns: (y0 , y1 , y2 ) = ((21, 8), 13, 12).

Exercitiul 26.3.7. Se considera algoritmul Menezes-Vanstone precizat de para-


metrii E : y 2 = x3 +2x+7 peste Z23 . Cunoscand cheia publica (, ) = ((5, 21), (16, 15)),
sa se cifreze mesajul (19, 2) cu valoarea aleatoare k = 5.

Raspuns: (y0 , y1 , y2 ) = ((15, 13), 5, 16).

Exercitiul 26.3.8. Se considera algoritmul Menezes-Vanstone precizat de para-


metrii E : y 2 = x3 +2x+5 peste Z17 . Cunoscand cheia privata d = 3, sa se descifreze
mesajul (y0 , y1 , y2 ) = ((1, 12), 2, 10).

Raspuns: (m1 , m2 ) = (12, 5).

Exercitiul 26.3.9. Se considera algoritmul Menezes-Vanstone precizat de para-


metrii E : y 2 = x3 +5x+4 peste Z19 . Cunoscand cheia privata d = 2, sa se descifreze
mesajul (y0 , y1 , y2 ) = ((17, 9), 12, 14).

Raspuns: (m1 , m2 ) = (11, 11).

Exercitiul 26.3.10. Se considera algoritmul Menezes-Vanstone precizat de para-


metrii E : y 2 = x3 +2x+7 peste Z23 . Cunoscand cheia privata d = 7, sa se descifreze
mesajul (y0 , y1 , y2 ) = ((21, 8), 8, 4).

Raspuns: (m1 , m2 ) = (12, 11).


240 SISTEMUL DE CIFRARE MENEZES-VANSTONE
Capitolul 27

FUNCTII DE DISPERSIE

27.1. Breviar teoretic


Problematica functiilor hash fiind deosebit de vasta, n cele ce urmeaza ne vom
opri numai asupra aspectelor strict necesare ntelegerii utilizarii acestor functii n
cadrul algoritmilor de semnatura digitala.

Definitia 27.1.1. O functie f se numeste functie unidirectionala daca:


a) fiind dat x, este usor de calculat f (x);
b) fiind dat f (x), este greu de calculat x.

Definitia 27.1.2. O functie f se numeste functie unidirectionala cu trapa (trap-


door) daca:
a) fiind dat x, este usor de calculat f (x);
b) fiind dat f (x), este greu de calculat x;
c) pe baza unei informatii secrete y, este usor de calculat x din f (x).

Definitia 27.1.3. Functia hash este o functie care se aplica unui sir de lungime
oarecare obtinandu-se un sir de lungime fixata (de obicei, mai mica decat lungimea
sirului de intrare).

Definitia 27.1.4. O functie H se numeste functie hash unidirectionala daca:


a) H este functie hash;
b) H este functie unidirectionala.

Pentru a putea fi folosite pentru semnaturi digitale, functiile hash unidirectionale


trebuie sa mai ndeplineasca, printre altele una din urmatoarele doua conditii:
0 0
1) oricare ar fi M dat, este greu de gasit M astfel ncat H(M ) = H(M );

241
242 FUNCTII DE DISPERSIE

0 0
2) este greu de gasit o pereche oarecare M , M astfel ncat H(M ) = H(M ).
Functiile hash unidirectionale care ndeplinesc conditia (1) se numesc functii hash
unidirectionale slabe (sau universale), iar cele care ndeplinesc conditia (2) se numesc
functii hash unidirectionale tari (sau fara coliziuni).
Prima conditie este usor de justificat: daca A a semnat mesajul M cu H(M ),
0 0
iar B obtine M astfel ncat H(M ) = H(M ), atunci B ar putea pretinde ca A ar fi
0
semnat mesajul M .
A doua conditie este justificata de existenta atacului birthday, metoda generala
de atac aplicabila oricarei functii hash, atac inspirat de paradoxul matematic al zilei
de nastere.
Datorita atacului birthday, pentru o functie hash care are la iesire un sir cu o
lungime de m biti (2m posibilitati) se pot gasi coliziuni generand doar 2m/2 perechi
de mesaje-valori hash.
In aceste conditii, algoritmii hash care produc valori hash de 64 biti se considera
nesiguri deoarece, cu tehnologia actuala, se pot genera 264/2 = 232 mesaje si deci
este posibila gasirea de mesaje care sa intre n coliziune. De aceea se recomanda ca
valoarea hash sa fie de lungime de cel putin 128 biti.
In cele ce urmeaza vom descrie functia de dispersie Chaum -van Heijt-Pfitzmann.
p1
Fie p un numar prim mare astfel ca q = sa fie de asemenea prim. Consideram
2
, Zp elemente primitive. Calculul valorii logaritmului discret log este dificil
din punct de vedere computational. Vom defini functia de dispersie Chaum -van
Heijt-Pfitzmann h : Zq Zq Zp prin

h(x1 , x2 ) = x1 x2 mod p.

Daca exista o coliziune pentru functia Chaum -van Heijt-Pfitzmann 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(x1 , x2 ) = h(x3 , x4 ) cu (x1 , x2 ) 6= (x3 , x4 ). Deci
x1 x2 = x3 x4 mod p sau echivalent x1 x3 = x4 x2 mod p. Fie d = (x4 x2 , p
1). Deoarece p 1 = 2q iar q este numar prim avem d {1, 2, q, p 1}.
Cazul d = 1. Deoarece (x4 x2 , p 1) = 1 exista y = (x4 x2 )1 mod p. Deci:

= (x4 x2 )y mod p = (x1 x3 )y mod p.

Deci log = (x1 x3 )(x4 x2 )1 mod (p 1).


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

(x4 x2 )y = (kq+1) = (1)k mod p = mod p.


EXERCITII PROPUSE 243

Acest lucru conduce la:

(x1 x3 )y = (x4 x2 )y mod p = mod p.

Suntem n una din urmatoarele doua situatii:

log = (x1 x3 )(x4 x2 )1 mod (p 1),

log = (x1 x3 )(x4 x2 )1 + q mod (p 1),

Se verifica direct care dintre rezultate este cel corect.


Cazul d = q. Deoarece 0 x2 q 1 si 0 x4 q 1 rezulta faptul ca
(q 1) x4 x2 q 1. Acest lucru arata faptul ca este imposibil sa avem
(x4 x2 , p 1) = q.
Cazul d = p 1. Aceast caz este posibil numai daca x4 = x2 , rezulta x1 = x3 .
S-a ajuns la (x1 , x2 ) = (x3 , x4 ), ceea ce contrazice ipoteza.

27.2. Exercitii propuse


Exercitiul 27.2.1. Fie f : Z2 n Z2 n o functie hash pentru care problema
CSP 1 este satisfacuta. Definim functia g : Z2 2n Z2 n prin g(x1 ||x2 ) = f (x1 x2 ).
Aratati ca g nu satisface problema CSP.

Exercitiul 27.2.2. Fie p = 12347, = 2, = 8461 parametrii pentru functia


de dispersie Chaum - van Heijst - Pfitzmann. Fiind data coliziunea 5692 144 =
212 4214 mod p, sa se calculeze log .

Raspuns: log = 5689.

Exercitiul 27.2.3. Fie p = 15083, = 154, = 2307 parametrii pentru functia


de dispersie Chaum - van Heijst - Pfitzmann. Fiind data coliziunea 7431 5564 =
1459 954 mod p, sa se calculeze log .

1
Fiind data o pereche valida (x, y) este dificil de aflat x1 6= x astfel ncat f (x1 ) = f (x).
244 FUNCTII DE DISPERSIE
Capitolul 28

SEMNATURA ELGAMAL

28.1. Breviar teoretic

Fie p un numar prim pentru care problema logaritmului discret n Zp este dificila
si Zp un element primitiv. Cheia publica se construieste din cheia privata a:
= a mod p.
Semnatura mesajului x, calculata cu ajutorul valorii aleatoare (secrete) k Zp1 ,
este definita ca fiind (, ) unde:
= k mod p si = (H(x) a)k 1 mod (p 1),
H() fiind o functie hash (H(x) = x daca nu este specificata functia hash).
Semnatura (, ) a mesajului x este verificata daca are loc:
= H(x) mod p.

28.2. Exercitii rezolvate


Exercitiul 28.2.1. Sa se semneze mesajul x = 101 cu ajutorul algoritmului
ElGamal specificat de parametrii urmatori: p = 467, = 2, cheia privata a = 127,
alegand valoarea k = 213.

Rezolvare: Se calculeaza = a mod p = 2127 mod 467 = 132


Semnatura mesajului x = 101 cu k = 213 (de remarcat faptul ca (213, 466) = 1
si 2131 mod 466 = 431) este:

= k mod p = 2213 mod 467 = 29 si = (101 127 29) 431 mod 466 = 16.

245
246 SEMNATURA ELGAMAL

28.3. Exercitii propuse


Exercitiul 28.3.1. Sa se semneze mesajul x = 100 cu ajutorul algoritmului
ElGamal specificat de parametrii urmatori: p = 163, = 2, cheia privata a = 127,
alegand valoarea k = 215.

Raspuns: Semnatura mesajului este (, ) = (52, 24).

Exercitiul 28.3.2. Sa se semneze mesajul x = 102 cu ajutorul algoritmului


ElGamal specificat de parametrii urmatori: p = 467, = 2, cheia privata a = 127,
alegand valoarea k = 213.

Raspuns: Semnatura mesajului este (, ) = (29, 447).

Exercitiul 28.3.3. Sa se semneze mesajul x = 57 cu ajutorul algoritmului El-


Gamal specificat de parametrii urmatori: p = 97, = 3, cheia privata a = 27,
alegand valoarea k = 37.

Raspuns: Semnatura mesajului este (, ) = (66, 39).

Exercitiul 28.3.4. Sa se semneze mesajul x = 29 cu ajutorul algoritmului El-


Gamal specificat de parametrii urmatori: p = 127, = 5, cheia privata a = 13,
alegand valoarea k = 19.

Raspuns: Semnatura mesajului este (, ) = (66, 89).

Exercitiul 28.3.5. Sa se semneze mesajul x = 78 cu ajutorul algoritmului El-


Gamal specificat de parametrii urmatori: p = 131, = 7, cheia privata a = 19,
alegand valoarea k = 17.

Raspuns: Semnatura mesajului este (, ) = (3, 93).

Exercitiul 28.3.6. Mesajul x = 57 a fost semnat cu ajutorul algoritmului El-


Gamal specificat de parametrii urmatori: p = 97, = 3, = 70, obtinandu-se
semnatura (, ) = (66, 39). Este aceasta o semnatura valida?

Raspuns: Semnatura este valida deoarece se satisface relatia de verificare mod


p = x mod p = 89.
EXERCITII PROPUSE 247

Exercitiul 28.3.7. Mesajul x = 34 a fost semnat cu ajutorul algoritmului El-


Gamal specificat de parametrii urmatori: p = 131, = 7, = 16, obtinandu-se
semnatura (, ) = (3, 110). Este aceasta o semnatura valida?

Raspuns: Semnatura nu este valida deoarece nu se satisface relatia de verificare


mod p = 4; x mod p = 9.

Exercitiul 28.3.8. Mesajul x = 78 a fost semnat cu ajutorul algoritmului El-


Gamal specificat de parametrii urmatori: p = 131, = 7, = 16, obtinandu-se
semnatura (, ) = (3, 93). Este aceasta o semnatura valida?

Raspuns: Semnatura este valida deoarece se satisface relatia de verificare mod


p = x mod p = 61.
248 SEMNATURA ELGAMAL
Capitolul 29

SEMNATURA DSA/ECDSA

29.1. Breviar teoretic


Fie p un numar prim de 512 biti si q un factor prim de 160 biti ai lui p 1 si
Zp o radacina primitiva de ordin q a unitatii.
Cheia publica se construieste din cheia privata a: = a mod p. Semnatura
mesajului x, calculata cu ajutorul valorii aleatoare (secrete) k Zq , este definita ca
fiind (, ) unde:
(, ) = ((k mod p) mod q, (H(x) + a)k 1 mod q),
H() fiind o functie hash (H(x) = x daca nu este specificata functia hash).
Semnatura (, ) a mesajului x este verificata daca are loc urmatoarea egalitate,
unde e1 = H(x) 1 mod q si e2 = 1 mod q:
(e1 e2 mod p) mod q = .
O varianta a DSA-ului este reprezentata de extensia acesteia pe curbele eliptice
(ECDSA). In aceasta situatie se lucreaza pe curba eliptica E peste Zq . Elementele
necesare algoritmului sunt:
G(xG , yG ) generatorul punctelor de pe curba eliptica;
n numarul elementelor de pe curba eliptica (sau ordinul lui G daca G nu este
generator);
Ln numarul de biti ai lui n;
dA cheia privata,dA [1, n];
QA = dA 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 semnificativi Ln biti ai
lui e.
PASUL 2. Se alege valoarea aleatoare1 k in intervalul [1, n 1].
1
valoarea k se numeste cheie efemera.

249
250 SEMNATURA DSA/ECDSA

PASUL 3. r = x1 mod n, unde (x1 , y1 ) = kG. Daca r = 0 atunci revenim la


PASUL 2.
PASUL 4. s = k 1 (z + rdA ) mod n. Daca r = 0 atunci revenim la PASUL 2.
PASUL 5. Semnatura este (r, s).
Verificarea 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 semnificativi Ln biti ai lui e.
PASUL 3. Se calculeaza: w = s1 mod n.
PASUL 4. Se calculeaza: u1 = zw mod n si u2 = rw mod n.
PASUL 5. Fie (x1 , y1 ) = u1 G + u2 QA .
PASUL 6. Semnatura este valida daca si numai daca r = x1 mod n.

29.2. Exercitii rezolvate


Exercitiul 29.2.1. Sa se semneze mesajul x = 100 cu ajutorul algoritmului
DSA specificat de parametrii urmatori: p = 7879, q = 101, = 170, valoarea
aleatoare utilizata k = 50, cheia secreta fiind a = 75. Verificati rezultatul obtinut.

Rezolvare: Se calculeaza:
= (k mod p) mod q = (17050 mod 7879) mod 101 = 2518 mod 101 = 94.
= (x + a)k 1 mod q = (100 + 75 94)501 mod 101 = 7150 501 mod 101 =
7150 99 mod 101 = 42.
S-a folosit 501 (mod101) = 2 mod 101 = 99 (fiindca 101 = 50 2 + 1).
Verificare:
= a mod p = 17075 mod 7879 = 4567.
e1 = x 1 mod q = 100 421 mod 101 = 100 89 mod 101 = 12.
e2 = 1 mod q = 94 421 mod 101 = 94 89 mod 101 = 84.
Se obtine:
(e1 e2 mod p) mod q = (17012 456784 mod 7879) mod 101 = 2518 mod 101 =
94 = .

29.3. Exercitii propuse


Exercitiul 29.3.1. Sa se semneze mesajul x = 101 cu ajutorul algoritmului
DSA specificat de parametrii urmatori: p = 7879, q = 101, = 170, valoarea
aleatoare utilizata k = 50, cheia secreta fiind a = 75. Verificati rezultatul obtinut.

Raspuns: Semnatura mesajului este (, ) = (94, 40). Cheia publica este =


4567.
EXERCITII PROPUSE 251

Exercitiul 29.3.2. Sa se semneze mesajul x = 102 cu ajutorul algoritmului


DSA specificat de parametrii urmatori: p = 7879, q = 101, = 170, valoarea
aleatoare utilizata k = 50, cheia secreta fiind a = 75. Verificati rezultatul obtinut.

Raspuns: Semnatura mesajului este (, ) = (94, 38). Cheia publica este =


4567.

Exercitiul 29.3.3. Sa se semneze mesajul x = 75 cu ajutorul algoritmului DSA


specificat de parametrii urmatori: p = 131, q = 13, = 7, a = 3, valoarea aleatoare
utilizata k = 11. Verificati rezultatul obtinut.

Raspuns: Semnatura mesajului este (, ) = (10, 6). Totusi, semnatura nu se


verifica pentru ca ord() = 65 si nu q = 13. In concluzie, algoritmul DSA este setat
impropriu.

Exercitiul 29.3.4. Mesajul x = 502 a fost semnat cu ajutorul algoritmului


DSA specificat de parametrii urmatori: p = 617, q = 11, = 113, = 489, valoarea
aleatoare utilizata k = 21 si s-a obtinut semnatura (, ) = (3, 10). Este aceasta
semnatura valida?

Raspuns: Semnatura este valida deoarece se satisface relatia de verificare


(e1 e2 mod p) mod q = = 3.

Exercitiul 29.3.5. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA


specificat de parametrii urmatori: p = 7879, q = 101, = 170, = 4567, valoarea
aleatoare utilizata k = 50 si s-a obtinut semnatura (, ) = (94, 78). Este aceasta
semnatura valida?

Raspuns: Semnatura nu este valida deoarece nu se satisface relatia de verificare


(e1 e2 mod p) mod q 6= .

Exercitiul 29.3.6. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA


specificat de parametrii urmatori: p = 7879, q = 101, = 170, = 4567, valoarea
aleatoare utilizata k = 50 si s-a obtinut semnatura (, ) = (94, 44). Este aceasta
semnatura valida?

Raspuns: Semnatura este valida deoarece se satisface relatia de verificare


(e1 e2 mod p) mod q = = 94.
252 SEMNATURA 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 Zp , element de ordin
q. Protocolul Diffie-Hellman (DH), ce returneaza o cheie comuna de sesiune K este
urmatorul:
PASUL 1. A genereraza aleator a Zq si trimite lui B valoarea RA = a (mod
p).
PASUL 2. B genereraza aleator b Zq si trimite lui A valoarea RB = b (mod
p).
PASUL 3. A calculeaza K = KA,B = RB a = ab .
PASUL 4. B calculeaza K = KB,A = RA b = ab .

30.2. Exercitii rezolvate


Exercitiul 30.2.1. Sa se specifice cheia rezultata n urma aplicarii protocolului
Diffie-Hellman specificat de parametrii: p = 25307, = 2, a = 2009, b = 2010.

Raspuns: k = 21554.
Rezolvare:
PASUL 1. A trimite lui B valoarea RA = a (modp) = 22009 mod 25307 =
5755.
PASUL 2. B trimite lui A valoarea RB = b (modp) = 22010 mod 25307 =
11510.

253
254 PROTOCOLUL DIFFIE-HELLMAN

PASUL 3. A calculeaza K = KA,B = RB a = 115102009 mod 25307 = 21554.


PASUL 4. B calculeaza K = KB,A = RA b = 57552010 mod 25307 = 21554.

30.3. Exercitii propuse


Exercitiul 30.3.1. Sa se specifice cheia rezultata n urma aplicarii protocolului
Diffie-Hellman specificat de parametrii: p = 25307, = 2, a = 3578, b = 19956.

Raspuns: k = 3694.

Exercitiul 30.3.2. Sa se specifice cheia rezultata n urma aplicarii protocolului


Diffie-Hellman specificat de parametrii: p = 25307, = 2, a = 1989, b = 2009.

Raspuns: k = 12034.

Exercitiul 30.3.3. Sa se specifice cheia rezultata n urma aplicarii protocolului


Diffie-Hellman specificat de parametrii: p = 17, = 7, a = 9, b = 3.

Raspuns: k = 14.

Exercitiul 30.3.4. Sa se specifice cheia rezultata n urma aplicarii protocolului


Diffie-Hellman specificat de parametrii: p = 10163, = 652, a = 6026, b = 3510.

Raspuns: k = 7944.

Exercitiul 30.3.5. Sa se specifice cheia rezultata n urma aplicarii protocolului


Diffie-Hellman specificat de parametrii: p = 63299, = 49297, a = 5671, b = 59073.

Raspuns: k = 57286.

Exercitiul 30.3.6. Sa se specifice cheia rezultata n urma aplicarii protocolului


Diffie-Hellman specificat de parametrii: p = 1319, = 527, a = 1088, b = 584.

Raspuns: k = 352.

Exercitiul 30.3.7. Sa se specifice cheia rezultata n urma aplicarii protocolului


Diffie-Hellman specificat de parametrii: p = 2099, = 1023, a = 1496, b = 648.

Raspuns: k = 612.
EXERCITII PROPUSE 255

Exercitiul 30.3.8. Sa se specifice cheia rezultata n urma aplicarii protocolului


Diffie-Hellman specificat de parametrii: p = 1823, = 776, a = 1515, b = 476.

Raspuns: k = 1555.

Exercitiul 30.3.9. Sa se specifice cheia rezultata n urma aplicarii protocolului


Diffie-Hellman specificat de parametrii: p = 2207, = 371, a = 839, b = 1358.

Raspuns: k = 731.

Exercitiul 30.3.10. In urma aplicarii protocolului Diffie-Hellman, una dintre


entitatile care doresc sa genereze o cheie comuna alege parametrul secret a = 1 (sau
b = 1). Cum poate un atacator determina cheia n acest caz?
256 PROTOCOLUL DIFFIE-HELLMAN
Capitolul 31

PROTOCOLUL BLOM

31.1. Breviar teoretic


Protocolul lui Blom asigura implementarea principiului compartimentarii, ntre
oricare doi participanti, dintr-o multime de n utilizatori. Protocolul se bazeaza pe
existenta unei autoritati de ncredere T . Fie n 3 numarul de utilizatori si p n
un numar prim. Cheia, ce urmeaza a fi calculata de oricare doi participanti este
un element din Zp . Vom nota prin k numarul maxim de intrusi1 mpotriva carora
poate fi asigurata protectia. Vom exemplifica protocolul pentru k = 1.
PASUL 0. T face public: numarul prim p si pentru fiecare utilizator A un
numar aleator rA Zp , rA 6= rB pentru orice A 6= B.
PASUL 1. T genereaza aleatoriu trei numere a, b, c Zp si formeaza polinomul2 :

f (X, Y ) = a + b(X + Y ) + cXY mod p.

PASUL 2. Pentru fiecare utilizator A, T va construi polinomul:

gA (X) = f (X, rA ) mod p,

pe care l va transmite, cu asigurarea confidentialitatii, catre A.


PASUL 3. Cheia stabilita de catre A si B va fi:

KA,B = KB,A = f (rA , rB ).


1
numit si nivel de compartimentare.
P
2
pentru k arbitrar polimonul utilizat n cadrul protocolului este f (X, Y ) = ki,j=0 ai,j X i Y j mod
p, ai,j Zp , ai,j = aj,i pentru orice i, j.

257
258 PROTOCOLUL BLOM

Observatia 31.1.1. Protocolul Blom, pentru k = 1, este neconditionat sigur


mpotriva oricarui atac individual. Cu alte cuvinte, orice alt participant C nu poate
determina, din valorile publice rA si rB , cheia KA,B . Acesta este utilizat n schema
de protectie, utilizata de HDCP (High-bandwidth Digital Content Protection), n
generarea cheilor dintre sursa si destinatie (playere HD DVD sau televiziunea HD).

31.2. Exercitii rezolvate

Exercitiul 31.2.1. Specificati 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 fiind rA = 12, rB = 7 si rC = 1. Valorile alese de
catre T fiind a = 8, b = 7, c = 2.

Rezolvare: T construieste polinomul:

f (X, Y ) = 8 + 7(X + Y ) + 2XY.

Polinoamele specifice fiecarui utilizator sunt:

gA (X) = 7 + 14X, gB (X) = 6 + 4X, gC (X) = 15 + 9X.

Cheile de compartimentare (secrete) sunt:

KA,B = 3, KA,C = 4, KB,C = 10.

A poate calcula KAB prin:

gA (rB ) = 7 + 14 7 mod 17 = 3.

B poate calcula KBA prin:

gB (rA ) = 6 + 4 12 mod 17 = 3.

31.3. Exercitii propuse

Exercitiul 31.3.1. Specificati cheile rezultate n urma protocolului Blom, ce


asigura compartimentarea ntre trei utilizatori A, B, C, caracterizat de p = 29, k = 1,
cheile publice ale acestora fiind rA = 1, rB = 2 si rC = 3. Valorile alese de catre T
fiind a = 13, b = 11, c = 17.
EXERCITII PROPUSE 259

Raspuns. Polinoamele secrete sunt gA (X) = 324+28X, gB (X) = 6+16X, gC (X) =


17 + 4X. Cheile rezultate sunt KAB = 22, KAC = 21, KBC = 25.

Exercitiul 31.3.2. Specificati cheile rezultate n urma protocolului Blom, ce


asigura compartimentarea ntre trei utilizatori A, B, C, caracterizat de p = 29, k = 1,
cheile publice ale acestora fiind rA = 13, rB = 11 si rC = 17. Valorile alese de catre
T fiind a = 1, b = 2, c = 3.

Raspuns. Polinoamele secrete sunt gA (X) = 27+12X, gB (X) = 23+6X, gC (X) =


6 + 24X. Cheile rezultate sunt KAB = 14, KAC = 28, KBC = 9.
260 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 = Zq la o


multime de n participanti (q n + 1) astfel ncat pentru reconstructia cheii sa fie
nevoie de cooperarea a cel putin k dintre participanti.
Initializare. n numarul participantilor, k pragul minim de reconstructie al se-
cretului S. Se aleg n valori (publice) distincte x1 , . . . xn si se distribuie fiecarui par-
ticipant i valoarea xi .
PASUL 1. Se alege de catre autoritatea de distributie a secretului T P (Trusted
Party) un numar prim q suficient de mare (q n + 1). Se genereaza aleatoriu, de
catre autoritatea de distributie a secretului T P , un polinom de grad k 1:

k1
X
P (X) = ai X i + S mod q.
i=1

PASUL 2 (distributia secretului). Autoritatea T P distribuie participantului i


valoarea yi = P (Xi ), i = 1, . . . , n.
PASUL 3 (recuperarea secretului). Cu informatia oferita de k participanti se
poate recupera, prin rezolvarea unui sistem liniar de k ecuatii, valoarea S. Daca
numarul participantilor care pun la dispozitie informatia yi este mai mic decat k,
atunci nu se poate determina S.

261
262 PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR

32.2. Exercitii rezolvate


Exercitiul 32.2.1. Sa se partajaze secretul S = 13, pentru o schema majoritara
k = 3 din n = 5 participanti, utilizand algoritmul lui Shamir specificat de q = 17,
valorile publice xi = i, i = 1, . . . , 5 si valorile aleatoare a[1] = 10, a[2] = 2.

Rezolvare: Se obtine polinomul P (X) = a2 X 2 + a1 X + S = 2X 2 + 10X + 13.


Secretul se partajeaza n:
y1 = P (1) = (2 + 10 + 13) mod 17 = 8;
y2 = P (2) = (8 + 20 + 13) mod 17 = 7;
y3 = P (3) = (18 + 30 + 13) mod 17 = 10;
y4 = P (4) = (32 + 40 + 13) mod 17 = 0;
y5 = P (5) = (50 + 50 + 13) mod 17 = 11.

32.3. Exercitii propuse


Exercitiul 32.3.1. Sa se partajaze secretul S = 4, pentru o schema majoritara
k = 3 din n = 5 participanti, utilizand algoritmul lui Shamir specificat de q = 17,
valorile publice xi = i, i = 1, . . . , 5 si valorile aleatoare a[1] = 10, a[2] = 2.

Raspuns: {16, 15, 1, 8, 2}.

Exercitiul 32.3.2. Sa se partajaze secretul S = 0, pentru o schema majoritara


k = 3 din n = 5 participanti, utilizand algoritmul lui Shamir specificat de q = 17,
valorile publice xi = i, i = 1, . . . , 5 si valorile aleatoare a[1] = 10, a[2] = 2.

Raspuns: {12, 11, 14, 4, 15}.

Exercitiul 32.3.3. Sa se reconstituie secretul S, din valorile {12, 4, 15}, stiind


ca acestea au fost obtinute cu ajutorul schemei majoritare (5, 3) a lui Shamir speci-
ficata de q = 17 si valorile publice {1, 4, 5}.

Raspuns: S = 0.

Exercitiul 32.3.4. Sa se reconstituie secretul S, din valorile {1, 8, 2}, stiind ca


acestea au fost obtinute cu ajutorul schemei majoritare (5, 3) a lui Shamir specificata
de q = 17 si valorile publice {3, 4, 5}.

Raspuns: S = 4.
EXERCITII PROPUSE 263

Exercitiul 32.3.5. Sa se reconstituie secretul S, din valorile {10, 0, 11}, stiind


ca acestea au fost obtinute cu ajutorul schemei majoritare (5, 3) a lui Shamir speci-
ficata de q = 17 si valorile publice {3, 4, 5}.

Raspuns: S = 13.

Exercitiul 32.3.6. Ce se ntampla daca n protocolul lui Shamir se renunta la


conditia de primalitate asupra lui q?
264 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 p1 < p2 < . . . < pn este un sir Mignotte:
k2
Y k
Y
pni < pi .
i=0 i=0

Secretul
Qk S, ce trebuie Qk2partajat, trebuie sa apartina intervalului1 (, ), unde
= i=0 pi si = i=0 pni . Valorile ce se distribuie fiecaruia dintra cei n
participanti sunt S mod pi , i = 1, . . . , n. Recuperarea secretului se realizeaza, de
catre k participanti, prin rezolvarea, cu ajutorul CRT, a sistemului S = Sij mod pi ,
j = 1, . . . , k.

33.2. Exercitii rezolvate

Exercitiul 33.2.1. Fie sirul {5, 7, 9, 11, 13} o secventa (5, 3) Mignotte , =
11 13, = 5 7 9, secretul S = 235 (, ). Care sunt secretele ce sunt distribuite
celor cinci participanti?
1
Daca lungimea intervalului este mica, atunci schema nu este practica, existand posibilitatea ca
printre valorile distribuite sa este coliziuni.

265
266 SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT

Rezolvare: S1 = S mod 5 = 0, S2 = S mod 7 = 5, S3 = S mod 9 = 6, S4 =


S mod 11 = 10, S5 = S mod 13 = 12. Spre exemplu, grupul {P1 , P3 , P4 } trebuie sa
rezolve problema:

x 0 mod 5
x 6 mod 9

x 10 mod 11

ce are solutie unica 285.


Capitolul 34

CANALE SUBLIMINALE

34.1. Breviar teoretic


In sistemul de autentificare ElGamal, A alege un numar prim mare q si un element
primitiv Zq . Valorile q si sunt publice. Printr-un canal sigur, A si B stabilesc
un numar p Zq . Protocolul prin care A transmite lui B mesajul subliminal y Zq
prin utilizarea textului x este urmatorul:
PASUL 0. A calculeaza = y mod q.
PASUL 1. Se determina ca solutie a ecuatiei 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. Exercitii rezolvate


Exercitiul 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 comunicatie?

Rezolvare:
PASUL 0. A calculeaza = y mod q = 29 mod 11 = 6.
PASUL 1. Se determina ca solutie a ecuatiei x = p + y mod (q 1),
echivalent cu 5 = 0+9 mod 10 de unde rezulta = 591 mod 10 = 59 mod 10 = 5.
PASUL 2. A trimite lui B tripletul (x, , ) = (5, 6, 5).

267
268 CANALE SUBLIMINALE

34.3. Exercitii propuse


Exercitiul 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 comunicatie?

Raspuns: {5, 6, 3}.

Exercitiul 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 comunicatie?

Raspuns: {5, 2, 9}.

Exercitiul 34.3.3. Se considera canalul subliminal ElGamal dat de q = 11,


= 2 si cheia secreta k = 8. Se receptioneaza mesajul {5, 6, 3}. Acesta contine
mesaje ascunse?

Raspuns: Mesajul receptionat este autentic, mesajul subliminal fiind y = 9.

Exercitiul 34.3.4. Se considera canalul subliminal ElGamal dat de q = 11,


= 2 si cheia secreta k = 8. Se receptioneaza mesajul {5, 6, 2}. Acesta contine
mesaje ascunse?

Raspuns: Mesajul receptionat nu este autentic.

Exercitiul 34.3.5. Se considera canalul subliminal ElGamal dat de q = 11,


= 2 si cheia secreta k = 8. Se receptioneaza mesajul {5, 2, 9}. Acesta contine
mesaje ascunse?

Raspuns: Mesajul receptionat este autentic, mesajul subliminal fiind y = 1.

Exercitiul 34.3.6. Se considera canalul subliminal ElGamal dat de q = 11,


= 2 si cheia secreta k = 0. Se receptioneaza mesajul {5, 6, 5}. Acesta contine
mesaje ascunse?

Raspuns: Mesajul receptionat este autentic, se ajunge la rezolvarea urmatoarei


ecuatii 5 = 5 y mod 10 ce nu are solutie unica, verificarea autenticitatii se face prin
EXERCITII PROPUSE 269

repetarea procedeului de constructie a mesajului ce se transmite. Se obtine mesajul


ascuns y = 9.

Exercitiul 34.3.7. In cadrul protocolui ElGamal, de transmitere a mesajelor


subliminale, autentificatorul obtinut nu este relativ prim cu q 1. Cum se rezolva
aceasta speta?
270 CANALE SUBLIMINALE
Capitolul 35

PRINCIPII CRIPTOGRAFICE

Exercitiul 1. Metoda one-time pad (OTP) cifreaza un mesaj m prin aplicarea


operatiei XOR cu o cheie secreta k. Avand n vedere ca o cheie buna are, statistic,
jumatate din biti zero si ca operatia XOR cu zero nu modifica 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 bitii textului
clar. Acest lucru nseamna, de fapt, ca metoda OTP este una foarte slaba? Cum
poate fi considerat perfect un cifru bloc care cifreaza numai jumatate din textul
clar?

Exercitiul 2. Pentru verificarea semnaturii ElGamal este necesara efectuarea ope-


ratiei ax by mod p unde a, b sunt fixate iar x, y sunt variabile. Arati ca numarul de
nmultiri necesare pentru efectuarea acestui calcul este mai mic decat numarul de
operatii necesare pentru a calcula ax by mod p prin doua exponentieri succesive.

Exercitiul 3. Consideram doua numere prime p si q. Fie ip = p1 mod q si iq =


q 1 mod p iar n = p q. Care este valoarea rezultata n urma operatiei q iq + p ip ?
Puteti explica cum poate fi folosita aceasta valoare pentru a reduce stocarea cheii
secrete la implementarea RSA CRT?

Exercitiul 4. Se doreste semnarea a doua mesaje cu algoritmul de semnatura El


Gamal. Cum putem calcula valorile g k1 si g k2 pentru a produce semnaturile ntr-un
timp mai scurt decat cel necesar pentru a calcula doua semnaturi secventiale?

Exercitiul 5. Consideram protocolul Fiat-Shamir unde secretul s este ales astfel


ncat ncat vs2 = 1 mod n, v fiind cheia publica. Protocolul este dupa cum urmeza:

271
272 PRINCIPII CRIPTOGRAFICE

Alice alege un r aleator si i trimite lui Bob x = r2 mod n;

Bob raspunde cu un bit aleator e;

Alice raspunde cu y = se r mod n;

Bob verifica daca y 2 = v e x mod n.

Aratati ca valorile rezultate n urma protocolului, adica {x, r, y}, definesc o


distributie ce poate fi simulata fara a-l folosi pe s. Explicati de ce acest lucru
asigura protocolului o securitate foarte buna.

Exercitiul 6. Se da o cutie neagra care ruleaza algoritmul AES (12 runde pentru
o cheie de 192 biti); cutia contine o cheie necunoscuta k si accepta ca parametru
un ntreg r a carui valoare poate fi setata la 12, 11 sau 10 de catre utilizator. Vi se
permite sa introduceti n cutie texte clare dupa cum doriti. Cum ati proceda pentru
a ataca aceasta implementare?

Exercitiul 7. Un administrator de sistem are o cheie de 100 de biti pe care doreste


sa o mparta celor doi utilizatori n care are ncredere n mod egal. El doreste ca
accesul la informatie sa fie posibila numai cand cei doi coopereaza. Cati biti din
cheie ar trebui sa dea fiecaruia din cei doi utilizatori?

Exercitiul 8. Pentru a grabi verificarea semnaturilor Q e si de


Q tip RSA a mesajelor
mi , se foloseste urmatoarea idee: se verifica daca ( si ) = hash(mi ) mod n unde
hash reprezinta full domain hash - o schema de semnatura bazata pe RSA care
mai ntai aplica o functie hash si apoi semnatura RSA. Aratati ca aceasta idee nu
este sigura pentru un exponent e mic si propuneti o contramasura.

Exercitiul 9. De ce urmatorul context este nesigur? O autoritate de ncredere


genereaza un modul RSA n a carui factorizare ramane secreta. Autoritatea furnizeaza
fiecarui utilizator din sistem o pereche (ei , di ) asa ncat ei di = 1 mod (n) unde
i 6= j di 6= dj .

Exercitiul 10. Sa presupunem ca cineva trimite mesaje cifrate utilizand DES n


modul de operare OFB cu o valoare initiala secreta (fixata) IV .
1) Aratati cum poate fi 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?
273

Exercitiul 11. Dupa ce a studiat protocolul Diffie-Hellman, un tanar criptograf de-


cide sa l implementeze. Pentru a simplifica implementarea, el hotaraste sa foloseasca
grupul aditiv (Zp , +) n locul grupului multiplicativ (Zp , ). In calitate de criptograf
cu experienta, ce credeti despre acest protocol?

Exercitiul 12. Sa presupunem ca Alice si Bob folosesc chei publice RSA cu acelasi
modul n dar cu exponenti publici diferiti e1 si e2 .
1) Aratati ca Alice poate decripta mesajele trimise lui Bob;
2) Aratati ca un interceptor pasiv poate decripta mesaje trimise catre Alice si
Bob daca gcd(el , e2 ) = 1.

Exercitiul 13. Presupunem ca n = p q, unde p si q sunt numere prime distincte.


1) Calculati S = n + 1 (n).
2) Care sunt radacinile ecuatiei x2 Sx + n? Dati expresiile acestor radacini si
explicati cum pot fi gasite p si q cu ajutorul unui simplu algoritm pentru calculul
radacinilor patrate ntregi?
3) Factorizati n n urmatoarele doua cazuri:
a) n = 667, (n) = 616;
b) n = 15049, (n) = 14800.

Exercitiul 14. Sa construim un MAC folosind modul CFB de implementare, n


loc de modul CBC: fiind date blocurile de text clar 1 , . . . , n , definim vectorul de
intializare 0 = 1 . Apoi cifram secventa de blocuri 2 , . . . , n dupa formulele:

i = i+1 E(i1 ; K).

In final, M AC(1 || . . . n ) = E(i1 ; K). Aratati ca acesta este identic cu CBC


MAC.

Exercitiul 15. Pentru S-boxul S5 din DES calculati tendinta variabilei aleatoare:

X2 Y1 Y2 Y3 Y4 .

Exercitiul 16. Intr-un sistem de cifrare simetric, o cheie k este slaba daca ek = dk .
Determinati toate cheile slabe ale sistemelor afine peste Z15 .
274 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 criptografic:
Atacuri prin masurarea timpului de executie. Prin masurarea timpului necesar
efectuarii unor operatii asupra cheii private, atacatorul poate determina exponentii
utilizati n protocolul Diffie-Hellman, factorul RSA (n special asupra algoritmului
RSA ce foloseste pentru semnatura lema chinezesca a resturilor CRT), precum si o
serie de alte sisteme criptografice cum ar fi 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
operatiei criptografice. Acest tip de atac se aplica, de regula, dispozitivelor cu
sursa de tensiune exterioara (ca de exemplu smart-cardurile). Consumul de putere
depinde de instructiunea executata. Astfel, monitorizand consumul de putere, se
poate deduce secventa de instructiuni (codul sursa). Daca secventa de instructiuni
depinde de lungimea cheii, atunci consumul de putere poate da informatii despre
cheie. In majoritatea procesoarelor, patternul puterii consumate de o instructiune
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
diferentiala a puterii (DPA).
Atacuri cu ajutorul defectiunilor (erorilor) hardware. Echipamentele hardware
pot genera erori (tranziente, latente sau induse) n timpul efectuarii unor operatii
aritmetice. Prin exploatarea rationala a acestor erori se pot recupera cheia privata

275
276 ATACURI IN MEDIUL DE IMPLEMENTARE

pentru algoritmii de semnatura RSA si Rabin. O serie de protocoale criptografice


cum ar fi Fiat-Schamir si Schnorr se pot sparge prin folosirea judicioasa a rezultatelor
acestor erori.
Analiza diferentiala a defectiunilor. Analiza diferentiala a defectiunilor (DFA)
este o schema ce se utilizeaza pentru recuperarea cheilor secrete ale unui sistem crip-
tografic dintr-un dispozitiv HSM (Hardware Security Module) securizat fizic. Mod-
elul de defect este acela al defectelor tranziente (aleatoare) si al defectelor induse.
Metoda foloseste la identificarea cheilor n cazul utilizarii unor cifruri cunoscute (de
exemplu DES) si/sau a unor cifruri cu algoritm necunoscut sau la reconstructia
algoritmului (cu o structura cunoscuta).

36.2. Exercitii propuse


Exercitiul 36.2.1. Aratati ca tehnica DPA poate fi accelerata folosind un com-
promis spatiu-timp.

Rezolvare: Faceti referire la articolul Computational Improvements to Differen-


tial Side Channel Analysis, NATO Advanced Research Workshop on Security and
Embedded Systems, August 2005.

Exercitiul 36.2.2. Descrieti un atac prin masurarea timpului de executie asupra


unei proceduri de comparatie a parolelor.

Exercitiul 36.2.3. Pentru a proteja implementarea RSA de un atac prin ma-


surarea timpului de executie, dezvoltatorii decid sa adauge la finalul 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 fi doar ncetinit?

Exercitiul 36.2.4. Numiti 3 factori care determina forma graficului puterii con-
sumate de un microprocesor.

Rezolvare: Instructiunea, datele manipulate de instructiune si adresa instructiunii.


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 initial de instruire n domeniul secu-
ritatii personalului diverselor companii private, CrypTool a evoluat ntr-un proiect
educational de tip open source cu aplicatii n domeniul criptografiei si majoritatea
domeniilor conexe. Produsul vizeaza n primul rand studentii facultatilor de matem-
atica si informatica, a firmelor ce activeaza n domeniul securitatii informatiilor pre-
cum si a dezvoltatorilor de aplicatii sau utlizatorilor de calculatoare n general care
doresc sa-si dobandeasca bagajul minimal de cunostinte criptografice.
In prezent produsul este gratuit si disponibil n mai multe versiuni, prima dintre
acestea fiind CrypTool 1.4.x dezvoltata integral n mediul C++. Aceasta s-a extins
ulterior n alte doua versiuni, nca aflate la nivel beta, ce folosesc standarde de
dezvoltare de ultima generatie aflandu-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 functionalitati combinata cu o interfata grafica cu facilitati de tip
drag-and-drop. La nceputul lui 2010 s-a lansat versiunea JCrypTool dezvoltata n
mediul Java, avantajele acestei versiuni fiind 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 usurinta module criptografice n orice
aplicatie construita peste JCA (Java Cryptography Architecture).
CrypTool a fost dezvoltat n colaborare cu institutii de nvatamant devenind ast-
fel un soft educational si un bun instrument de initiere n domeniul criptologiei,
folosindu-se n prezent cu succes in multe universitati 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-

277
278 RESURSE SOFTWARE

nenta practica a cursurilor teoretice din domeniul criptologiei precum si o metoda


rapida de familiarizare cu componente esentiale ale acestui domeniu.
Produsul acopera ambele ramuri ale criptologiei si anume criptografia si crip-
tanaliza.
Sunt tratate majoritatea aspectelor fundamentale ale criptografiei. Astfel, pro-
dusul are implementate facilitati n cadrul fiecarui subdomeniu dupa cum urmeaza:
criptografia clasica: cifrurile Caesar, substitutie monoalfabetica, substitutie
omofonica, Vigenere, Hill, Playfair, ADFGVX, Addition, XOR, Vernam, Solitaire
etc;
criptografia simetrica moderna: cifrurile IDEA, RC2, RC4, DES, 3DES, DESX
precum si totii finalistii cifrului AES si anume MARS, RC6, Rijndael, Serpent and
Twofish;
criptografia asimetrica: RSA;
criptografia hibrida: cifrarea datelor realizadu-se cu algoritmi simetrici (AES),
protectia cheii de cifrare fiind asigurata prin metode asimetrice (RSA);
semnaturi digitale: RSA, DSA, ECDSA (Elliptic Curve Digital Signature Al-
gorithm), Nyberg-Rueppel;
functii hash: MD2, MD4, MD5, SHA, SHA-1, SHA-2, RIPEMD-160;
generatoare aleatoare: secude, x2 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, Vigenere, Addition, XOR, Substitution, Playfair;
atac cu text clar: Hill, Single-column transposition;
atac manual: substitutie mono alfabetica, Playfair, ADFGVX, Solitaire;
atac prin forta bruta: pentru toti algoritmii; se presupune fie ca entropia textu-
lui clar este mica sau cheia este partial 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 biti (adica 75 cifre);
atacuri asupra functiilor hash: generare coliziuni texte ASCII cu paradoxul
zilelor de nastere (pana la 40 biti);
analiza aleatorism: bateria de teste FIPS-PUB-140-1, periodicitate, Vitany,
entropie, histograme, autocorelatii, testul de compresie ZIP etc.
In sprijinul utilizatorilor, CrypTool are implementate o serie de demo-uri si
OPENSSL 279

animatii prin care sunt exemplificate diverse facilitati pe care produsul le ofera
folosindu-se primitive criptografice suportate si implementate n aplicatie ca de ex-
emplu Caesar, Vigenere, Nihilist, DES (toate patru cu ANIMAL), Enigma (Flash),
Rijdael/AES (Flash and Java), criptare hibrida si decriptare (AES-RSA si AES-
ECC), generare si verificare de semnaturi digitale, protocolul de schimb de chei
Diffie-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 grafice 3D pentru date (pseudo)aleatoare, sensibilitatea
functiilor hash privind modificari ale textului clar, teoria numerelor si cripto sisteme
RSA (Authorware).
CrypTool contine si un modul educational interactiv dedicat aplicatiilor crip-
tografice 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 existenta unui meniu de doc-
umentare consistent si o extindere online a acestuia continand n plus explicatii
privind notiuni generale de criptografie, o cronologie privind dezvoltarea domeniu-
lui, exemple de utilizare a facilitatilor aplicatiei, index sortat pe topicuri criptografice
si lista de referinte.
Faptul ca pachetul software este open source, ca acopera aspecte legate atat
de criptografia clasica cat si cea moderna, a modalitatilor multiple de simulare si
vizualizare originale, precum si a modului facil de aplicare si analiza a mecanis-
melor criptografice ne conduc la concluzia ca pachetul CrypTool reprezinta atat o
modalitate rapida de initiere n domeniul criptografiei 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 criptografie si criptanaliza.

37.2. OpenSSL
OpenSSL este o suita de aplicatii 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 criptografice. Proiectul este manageriat
de o comunitate de voluntari din ntreaga lume ce comunica, folosind Internetul,
n vederea planificarii si dezvoltarii continue a toolkit-ului OpenSSL precum si a
documentatiei aferente.
OpenSSL este bazat pe libraria SSLeavy dezvoltata de Eric A. Young si Tim
J. Hudson, proiect ncheiat la sfarsitul anului 1998. Asupra produsului actioneaza
o dubla licentiere, atat cea de OpenSSL cat si cea originala a librariei SSLeavy.
280 RESURSE SOFTWARE

Ambele tipuri de licente sunt de tipul BSD open-source, toolkit-ul putand astfel
fi folosit atat pentru scopuri comerciale cat si non-comerciale. Pachetul sofware
foloseste instrumente criptografice puternice, fiind dezvoltat continuu si distribuit
legal de cateva tari europene, supunandu-se nsa unor restrictii de import/export
si uz n unele tari din lume.
OpenSSL este disponibil n numeroase versiuni fiind ntr-o continua dezvoltare,
bug-uri fiind des semnalate si corectate. Versiunea stabila curenta este OpenSSL
0.9.8m aceasta fiind disponibila din luna februarie 2010; in plus utilizatorii benefi-
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 criptografice
ce furnizeaza securitatea comunicatiilor peste retele similare Internetului. Cele
doua protocoale permit aplicatiilor de tip client/server sa comunice securizat. TLS
furnizeaza autentificare endpoint precum si confidentialitatea comunicatiilor peste
Internet folosindu-se securizare RSA suportand lungimi de chei de pana la 2048
de biti. Protocoale sunt utilizate pentru navigare pe Internet, posta electronica,
voice-over-IP (VoIP) etc.
Libraria criptografica OpenSSL implemeneaza o gama larga de algoritmi utilizati
n diverse standarde utilizate n Internet. Facilitatile furnizate de aceasta librarie
sunt folosite pentru a implementa SSL, TLS si S/MIME, precum si pentru SSH,
OpenPGP si alte standarde criptografice. Libraria are implementate o varietate de
primitive criptografice si alte facilitati dupa cum urmeaza:
Algoritmi de cifrare simetrice: Blowfish, 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) Diffie-Hellman
key exchange;
Certificate digitale: X509, X509v3;
Functii hash si coduri de autentificare: HMAC, MD2, MD4, MD5, MDC2,
RIPEMD, SHA;
Functii de control a intrarilor si iesirilor, functii de codificare a datelor: PKCS7,
PKCS12, ASN1, BIO, EVP, PEM.
Utilitarul OpenSSL este un tool linie comanda utilizat n gestionarea diverselor
functii criptografice din libraria OpenSSL. Acesta poate fi folosit pentru:
Creare si management de chei private, chei publice si parametrii;
Operatii ce implica criptografia cu chei publice;
Creare de certificate X.509 , CSRs si CRLs;
MAPLE 281

Calculare de rezumate de mesaj;


Cifrare si descifrare folosind diverse cifruri;
testare clienti/servere (SSL/TLS);
Semnaturi si cifrare de mail (S/MIME);
Cereri, generari si verificari de marci temporare.
OpenSSL este unul dintre putinele 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, fiind dezvoltata o componenta software a acestuia denumita
OpenSSL FIPS Object Module, aceasta fiind compatibila cu OpenSSL fiind creata
pentru a oferi posibilitatea produselor ce folosesc API de tip OpenSSL de a fi su-
puse validarii de confomitate FIPS 140-2. In ianuarie 2006 aceasta componenta fost
certificata, aceasta fiind nsa revocata n iulie 2006 datorita unor nelamuriri privind
validitatea interactionarii modulului cu software extern. In februarie 2007 produsul
a fost recertificat.
Validarea OpenSSL FIPS Object Module este unica printre toate validarile FIPS
140-2 prin faptul ca producatorul pune la dispozitie ntreg codul sursa. Prin urmare,
folosit fara nicio modificare si construit pe orice platforma conform documentatiei
pusa la dispozitie se obtine direct un modul criptografic validat. Orice modificare
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 certificate
#1051. In prezent nu exista niciun alt produs open source supus validarii FIPS
140-2 datorita lispei de finantare. Validarea versiunilor precedente au fost finantate
de sectorul comercial si sponsori guvernamentali, o parte dintre acestia preferand sa
ramana anonimi.

37.3. MAPLE
In cadrul acestei sectiuni vom exemplifica, printr-o serie de exemple, modalitatile
de rezolvare a problemelor propuse, n cadrul acestei culegeri, cu ajutorul aplicatiei
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;
282 RESURSE SOFTWARE

regula de cifrare: y1 := k mod p; y2 := (m k ) mod p;


regula de descifrare: des := y2 (y1a )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 := (, );
verificarea 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 unitatii;
a cheia secreta, = (a ) mod p;
MAPLE 283

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 Diffie-Hellman.

Caracteristicile protocolului:
p numar prim (minim 1024 biti), q divizor prim al lui q 1 (minim 160 biti);
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 coeficientii polinomului;
A denumire generica participant protocol, rA cheia publica a lui A;
f (X, Y )a + b(X + Y ) + cXY polinom (simetric), gA (X) = f (X, rA ) polinomul
secret al lui A;
284 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 participanti;
k numarul minim de participanti care pot reconstitui secretul;
q numar prim (identifica corpul Z[q] n care se lucreaza);
S secretul care se doreste partajat;
xi (publice) se distribuie utilizatorilor, i = 1, . . . , n;
ai (aleatoare), i = 1, . . . , k 1.
> n:=5;

> k:=3;

> q:=17;

> S:=13;

> x[1]:=1;

> x[2]:=2;

> x[3]:=3;
MAPLE 285

> 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 participanti;
k numarul minim de participanti care pot reconstitui secretul; q numar prim
(identifica corpul Z[q] n care se lucreaza);
S secretul care se doreste partajat;
xi (publice) se distribuie utilizatorilor, i = 1, . . . , n;
si 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;
286 RESURSE SOFTWARE

k cheia secreta;
autentificator;
autentificator;
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;
autentificator;
autentificator;
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 fiecare
problema prezentam si cate o sugestie de rezolvare.
Primele trei probleme sunt legate ntre ele, n sensul ca pentru rezolvarea celei de-a
doua probleme este nevoie de parola obtinuta n 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 evidenta o vulnerabilitate a ECDSA
(acelasi tip de vulnerabilitate care a fost folosita si pentru aflarea cheii de semnare
de la PlayStation3).

Problema 1. Obiectivul primei probleme este acela de a recunoaste cand s-a


folosit criptografia clasica (cifrurile Caesar, Vigenere, Hill etc) n mediul digital.
Scenariul ipotetic este urmatorul: gasim un fisier ciudat, pe care nu l-am creat
noi, n calculatorul personal. Acest fisier, neededinformation.txt, este pus la
dispozitie n cadrul problemei.
Se cere decriptarea informatiei continute n acest fisier 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 Vigenere.
In urma acestei criptanalize rezulta pentru nceput ca lungimea cheii folosite este
6, iar la urmatorul pas obtinem cheia SQUARE cu ajutorul careia putem decripta
1
http://www.iccs.fordham.edu/mitre/

287
288 APLICATII PRACTICE

textul continut n neededinformation.txt. La sfarsitul textului decriptat se afla


si parola pe care o cautam:
PASSWORDFORTOMMOROWISSTRONGPASSWORDSAREGOOD.

Problema 2. Aceasta problema si propune sa arate posibilele locuri n care un


adversar poate ascunde informatii, precum si modurile n care acest lucru se poate
face. Mai precis problema presupune gasirea unor informatii ascunse n interiorul
unei imagini.
Presupunem ca avem o imagine hiding.gif. Cerinta problemei este aceea de
a gasi informatia ascunsa n aceasta imagine, stiind ca aceasta ncepe cu h, se
termina cu l, iar marimea fiecarei litere conteaza. De asemenea, asa cum am
mentionat anterior, vom avea nevoie de parola obtinuta la prima problema.
Uitandu-ne la proprietatile 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 initialele lui Phil Katz).
Prin urmare schimbam extensia si obtinem hinding.zip. Deschizand aceasta
arhiva gasim alte imagini, una dintre ele (care atrage atentia n mod deosebit) fiind
look at me.gif. Pentru a putea vedea aceasta imagine nsa, avem nevoie de parola
obtinuta la problema 1.
Gasim n final si informatia pe care o cautam, si anume hollenger.dll.

Problema 3. Cea de-a treia problema este legata de analiza traficului de date.
Presupunem ca avem la dispozitie o captura de trafic de date, day3.pcap.
Se cere sa se gaseasca, cu ajutorul raspunsului de la problema anteriora, fisierul
transferat din calculatorul personal catre o sursa necunoscuta. Raspunsul pentru
289

aceasta problema l va constitui informatia ascunsa n fisierul respectiv. Stim ca


ncepe cu P, se termina cu k si marimea fiecarei 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 optiunea Save as pentru a obtine day3.zip.
Arhiva contine mai multe fisiere, 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 obtinem hollenger.gif, aceasta fiind o imagine care
contine 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:
290 APLICATII PRACTICE

Parametrii publici n acest caz sunt: un numar prim p, o curba eliptica E(Fp ) si
un punct G E(Fp ) cu ordG = q, q prim.
Cheia publica (de verificare) V E(Fp ) 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 definita ca fiind perechea (s1 , s2 ) = (xeG mod q , (m + ss1 )e1 mod q), unde
prin xeG ntelegem coordonata x a punctului eG E(Fp ).
Semnatura (s1 , s2 ) a mesajului m este verificata daca are loc urmatoarea egalitate
(n care v1 = ds1 1
2 mod q si v2 = s1 s2 mod q ) : xv1 G+v2 V mod q = s1 .
Revenim acum la problema noastra. Datele care ne sunt puse la dispozitie se afla
n trei fisiere: signatures.txt,parameters.der si public.oct.
Primul fisier contine valorile hash-urilor si semnaturile pentru cele doua mesaje
(n format hexa):
291

m1 =DE37B3145DB7359A0ACC13F0A4AFBD67EB496903
s11 =ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2
s12 =BE4FA99C9D261C5F387A3ACE025702F6FB7884DD07CE18CAD48654B8
m2 =28469B02BF0D2CFC86FF43CB612EE8FC05A5DBAA
s21 =ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2
s22 =D3540E2B13E51605F5FEB8C87EE8E176E59213F31EA8B8FFDAD077E2
Pentru a putea vedea informatiie din cel de-al doilea fisier,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 contine de fapt parametrii publici:
numarul prim p:
p=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D.
curba eliptica E : y 2 = x3 + 5 considerata peste Fp .
coordonatele punctului G ( 04 semnifica faptul ca asupra coordonatelor punc-
tului G nu s-a aplicat o compresie, prin urmare jumatate din octetii care urmeaza
vor constitui coordonata x a punctului G, iar cealalta jumatate coordonata y a
punctului G):
xG =85CEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643
yG =58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22
numarul prim q, acesta fiind 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.
292 APLICATII PRACTICE

Pentru ultimul fisier, public.oct, folosim UltraEdit si gasim reprezentarea hexa


a informatiei continute 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:
xV =85CEEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643
yV =58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22
Avem acum toate datele necesare pentru a afla cheia privata s.
Observatia importanta pe care se bazeaza nsa ntreaga rezolvare este aceea ca
valorile s11 si s21 sunt egale. In acest caz, daca notam cu e1 , respectiv e2 cheile
efemere folosite pentru semnarea mesajelor m1 , respectiv m2 , rezulta fie ca e1 =
e2 = e, fie ca e1 + e2 = q.
Vom arata cum putem afla cheia privata s daca presupunem ca este vorba de
primul caz, anume ca pentru semnarea celor doua mesaje diferite m1 si m2 s-a folosit
aceeasi cheie efemera e. Notand cu r valoare comuna s11 = s21 , avem urmatoarele
doua relatii:
s21 = (m1 + sr)e1 mod q = r1 si s22 = (m2 + sr)e1 mod q = r2
de unde putem afla cheia privata s astfel:
r1 r2 1 = (m1 + sr)(m2 + sr)1 mod q s = (m2 r1 m1 r2 )[r(r2 r1 )]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 fi 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]);
Aflam 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
Verificam ca aceasta este corecta, adica vrem sa vedem daca ntr-adevar are loc
egalitatea V = sG. Pentru aceasta initiallizam curba eliptica E peste care vrem sa
lucram, iar apoi calculam punctul sG:
293

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);
Obtinem ca:
xsG = 14091661710852556870833728605751404033863675975464814254659297347139
yeG = 9333722541138719487032926806284603775374491724501611657294489976354
Aceste valori sunt egale cu xV , respectiv yV , prin urmare, cheia privata s pe care
am gasit-o este buna.
Deoarece problema cerea cheia privata s n format hexa, facem n final 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)))))));
Obtinem ca S=8E88B0433C87D1269173487795C81553AD819A1123AE54854B3C0DA7.
294 APLICATII PRACTICE
Capitolul 39

PROBLEME DE SINTEZA

39.1. Enunturi
1. Completati: Scopul cifrarii este de a asigura . . . . . . unei comunicatii.

(a) autenticitatea
(b) confidentialitatea
(c) integritatea
(d) nerepudierea

2. Urmatorul text a fost obtinut utilizand sistemul de cifrare Cezar (au fost elim-
inate accentele, spatiile si semnele de punctuatie): 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 letouffer.
(d) De grace, apprenez-moi, Seigneur, mes attentats.

3. Cifrati textul Attaque a laube cu ajutorul algoritmului de substitutie 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

295
296 PROBLEME DE SINTEZA

Care este textul cifrat obtinut?

(a) JOOJCXPJDJXGP
(b) SHHSMYVSWSYPV
(c) JOOJCXPJBJXGP
(d) SHHSMYVSZSYPV

4. Cifrul Vigenere reprezinta o modalitate de cifrare mbunatatita a sistemelor


de cifrare cu substitutie simpla. In ce consta acesta?

(a) n aplicarea succesiva a mai multor substitutii alfabetice pe acelasi text.


(b) n aplicarea de substitutii alfabetice care nu cifreaza niciodata o litera n
ea nsasi.
(c) n cifrarea literelor care apar cel mai frecvent (cum ar fi e) n mai multe
simboluri diferite.
(d) n alegerea mai multor alfabete de sustitutie independente si schimbarea
alfabetului folosit, la fiecare 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 obtine ca c = m + k mod N . Ce parere aveti 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 conditia 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 obtinut cu ajutorul algoritmului


precedent. Cum determina Bob mesajul original m?

(a) m = c + k mod N
ENUNTURI 297

(b) m = c k mod N
(c) m = c k mod N
(d) m = ck 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 cativa ani ca l cunosteam deja n 2010 (conform amprentei
de timp). Pentru aceasta, este suficient 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 functie de dispersie (functie hash).
(d) imaginea lui m printr-un MAC folosind o cheie aleatoare.

11. Functia de dispersie (hash) SHA-512 ntoarce valori ntre 0 si 2512 1. Se


calculeaza imagini prin aceasta functie n mod aleator. Care este ordinul de
marime al numerelor pentru care trebuie calculate valorile prin aceasta functie
pentru a gasi 2 valori care sa aiba primii 20 de biti egali?

(a) 20
(b) 1000
(c) 1000000
(d) 2512
298 PROBLEME DE SINTEZA

12. Construim un generator de numere pseudo-aleatoare care initializeaza cu x0


cu o valoare ntre 0 si 999 si determina xn+1 = 500xn + 789 mod 1000. In ce
conditii ati 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 constructia unei functii de dispersie.
(d) Niciodata.

13. Cum este obtinuta cheia secreta necesara pentru criptarea comunicatiei, la
conectarea la un site web securizat?

(a) Se obtine 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, continuta ntr-un certificat.
(c) Provine din cheia privata a serverului, divulgata clientului dupa stabilirea
conexiunii.
(d) Se obtine n urma unui schimb de chei ntre client si server, precum schim-
bul de chei Diffie-Hellman.

14. Care este dificultatea de a factoriza un numar prim pe 1024 de biti astazi?

(a) Este simplu!


(b) Numarul poate fi 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
agentii precum NSA.
(d) Acest lucru nu va fi posibil timp de mai multe milenii.

15. Algoritmul RSA (fara padding) este un algoritm de cifrare:

(a) simetric, tip bloc.


(b) simetric, tip fluid (debit).
(c) partial homomorfic.
(d) bazat pe identitate.
ENUNTURI 299

16. Fie generatorul Geffe descris de trei registre de deplasare LFSRi (ale caror
polinoame de feedback sunt primitive de grad 19, 21 si respectiv 24) iar iesirea
de formula: y(t) = a1 (t) a3 (t) a1 (t) a2 (t). Care este complexitatea LC si
perioada P a acestui generator?

Figura 39.1: Generatorul Geffe.

(a) LC= 640, P= 264 .


(b) LC=64 , P=(219 1)(221 1)(224 1).
(c) LC=876 , P=(219 1)(221 1)(224 1).
(d) Niciunul dintre raspunsuri nu este corect.

17. Fie secventa data de reprezentarea binara (scrisa pe 8 biti) a numarului i,


i = 0, ..., 255 :
| {z } 00000001
00000000 | {z } 00000010
| {z } 00000011
| {z } 00000100
| {z } ... 11111111
| {z }
Care este statistica testului frecventei aplicata acestei secvente binare? Este
secventa aleatoare, relativ la testul frecventei, la riscul de ordinul 1 de 5%?

(a) ftf = 256, sirul nu este aleatoriu.


(b) ftf = 1, sirul este aleatoriu.
(c) ftf = 0, sirul este aleatoriu.
(d) niciunul dintre raspunsuri nu este corect.

18. Care dintre urmatoarele afirmatii sunt adevarate:

(a) Atac reusit asupra a doua preimagini ale unei functii hash implica reusita
atacului de generare de coliziuni.
300 PROBLEME DE SINTEZA

(b) Atac reusit de generare de coliziuni asupra unei functii hash implica
reusita atacului asupra a doua preimagini a aceleiasi functii hash.

19. Care dintre urmatoarele afirmatii sunt adevarate:

(a) Un registru de deplasare de lungime n are perioada de 2n 1.


(b) Un registru de deplasare de lungime n are perioada maxima de 2n 1.
(c) Un registru de deplasare de lungime n, cu polinomul caracteristic primi-
tiv, are perioada de 2n 1.

20. Probabilitatea de coliziune a doua mesaje de lungime n biti procesate de


aceeasi functie hash ideala, ce are iesirea pe m biti, este:

(a) 2m .
(b) 2n .
(c) 2mn .
(d) 2mn .
(e) 2nm .
(f) Niciuna din valorile de mai sus.

21. Fie extensia Galois GF(32 ) generata de radacina polinomului X 2 X 1. In


aceasta extensie valoarea log2+1 (1 + ) este:

(a) 8.
(b) 4.
(c) 2.
(d) 5.
(e) 6.
(f) Niciuna din valorile de mai sus.

6278
22. Simbolul lui Jacobi este:
9975

(a) 1.
(b) 0.
(c) 1.
(d) Niciuna din valorile de mai sus.
ENUNTURI 301

23. In cadrul unui actiuni judiciare urmeaza a fi 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
obtinut din aruncarea unei monede. Astfel, judecatorul A alege stema sau
banul iar judecatorul B arunca moneda, decizia fiind luata n urma rezul-
tatului obtinut. Avand n vedere faptul ca A si B n locatii fizice 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 obtinut.
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 afirma faptul ca participantul A nu si poate schimba optiunea
datorita valorii transmise y. Aratati urmatoarele:
a) Utilizand birthday attack utilizatorul A poate trisa;
b) Care este complexitatea atacului de la punctul a)?
c) Care este cerinta primitivei criptografice ce asigura valabilitatea afirmatiei
participantul A nu si poate schimba optiunea;
d) Corectati protocolul astfel ncat sa nu mai fie posibil atacul de la punctul
a).
24. Fie p un numar prim si G multimea tuturor elementelor x Zp2 care satisfac
relatia x 1 mod p. Aratati faptul ca:
a) G este grup multiplicativ;
b) |G| = p;
c) L : G Zp definit de L(x) = (x 1)p1 mod p este un izomorfism de
grupuri;
d) p + 1 este un generator al lui G si izomorfismul este logaritmul n baza p + 1
a lui G. Cu alte cuvinte avem: (p + 1)L(x) mod p2 x pentru orice x.
25. Sa consideram algoritmul de semnare DSS cu parametrii p, q, g, o functie hash
H si o cheie secreta x. In cadrul implementarii se precalculeaza perechea
(k, r) ce satisface relatia r = (g k mod p) mod q, aceasta fiind utilizata pentru
generarea semnaturilor. Recuperati cheia privata de semnare.
302 PROBLEME DE SINTEZA

26. Protocolul Wired Equivalent Privacy (WEP) utilizat n standardul IEEE 802.11
este utilizat pentru a proteja datele n cadrul transmisiilor wireless. Protocolul
WEP are o cheie K de 40 de biti, partajata ntre entitatile ce comunica si
este utilizata pentru protectia fiecarui frame1 transmis. In cadrul acestui
exercitiu vom presupune faptul ca cheia K este fixa si nu si schimba valoarea.
Pentru ca utilizatorul A sa transmita un frame la B va proceda dupa cum
urmeaza:
PASUL 1. Codificarea CRC: Dandu-se un mesaj de n-biti M (n este con-
stant), A calculeaza o suma de control de 32 de biti L(M ), unde L este o
functie liniara 2 ce nu depinde de K. Textul clar, de lungime (n + 32) biti,
este P = M ||L(M ).
PASUL 2. A cifreaza P cu algoritmului RC4, cheia K si vectorul IV de 24 de
biti specific fiecarui frame transmis. Textul cifrat va fi C = P RC4(IV, K).
PASUL 3. A transmite pe canalul radio (IV, C) catre B.
Intrebari:
a) Anumiti producatori specifica faptul ca protocolul WEP are o securitate de
40+24=64 biti de cheie. Ce parere aveti de acest fapt. Justificati raspunsul.
b) Care este modalitatea prin care B extrage mesajul original M ?
c) In cadrul unor implementari, vectorul IV de 24 de biti, este ales aletoriu
la fiecare frame transmis. Aratati ca acest lucru conduce la probleme de
securitate atunci cand traficul de date este mare. Propuneti 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.
Aratati faptul ca adversarul, chiar daca nu cunoaste cheia K, poate calcula
usor un text cifrat C (C 6= C) si retransmite (IV, C ) fara ca B sa poata de-
tecta acest lucru. Cate posibilitati de alegere avem pentru C ? Ce proprietate
a securitatii este violata?

27. Descifrati, cu ajutorul algoritmului RSA-CRT, indicand semnificatiile 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 ).
ENUNTURI 303

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) Aratati ca ord() = ord() = q n Zq . Mai mult, aratati ca si genereaza
acelasi subgrup G n Zp .
b) Definim functia hash h : Zq Zq G prin h(x1 , x2 ) = x1 x2 . Calculati
h(7431, 5564) si h(1459, 954).
c) La punctul precedent ati obtinut o coliziune pentru h. Folositi-o pentru a
calcula logaritmul discret dlog .
d) Folosind logaritmul discret calculat, determinati si alte coliziuni pentru h.
304 PROBLEME DE SINTEZA

39.2. Raspunsuri
1. Raspuns: (b). Pentru autenticitate, se folosesc MAC sau semnaturile electron-
ice. Pentru integritate, n functie de nivelul de exigenta, se pot utiliza sume
de control, functii hash, MAC, etc.

2. Raspuns: (c). Va puteti ajuta de pozitia 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 substitutie normala (compunerea a


2 permutari este tot o permutare). Metoda (b) este mai slaba decat prima
ntrucat expune mai multe informatii despre textul clar. Metoda (c) se numeste
substitutie polialfabetica.

5. Raspuns: (b). Este de ajuns sa se calculeze restul mpartirii 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 varianta a one-time pad. Ofera securitate


perfecta daca nu se utilizeaza cheia de criptare decat o singura data. Poate fi
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 fi
sigur. Sistemul nu are nicio legatura cu RSA. Raspunsul (b) nu ar satisface
principiul lui Kerckhoff: un sistem de criptare trebuie sa ramana sigur cand
adversarul cunoaste tot despre acesta, mai putin cheia utilizata.

7. Raspuns: (b). Operatia inversa adunarii cu k mod N este scaderea cu k mod


N.

8. Raspuns: (a). HMAC este MAC, SHA-1 este o functie de dispersie si NIST
este o agentie americana de standardizare.

9. Raspuns: (b). 53 17 = 1 mod 100

10. Raspuns: (c). La momentul divulgarii mesajului, toata lumea va putea ver-
ifica 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.
RASPUNSURI 305

O cheie cunoscuta de toata lumea ar conduce la determinare textului clar m,


ceea ce ar fi echivalent cu divulgarea mesajului m.

11. Raspuns: (b). Conform paradoxului nasterilor, pentru obtinerea unei coliziuni
pe primii 20 de biti aifunctiei de dispersie, este necesar sa se calculeze valoare
functiei hash pentru 220 , adica aproximativ 1000 numere.

12. Raspuns: (d). Valoarea lui xn este constanta, egala cu 289, ncepand cu al
treilea termen. Deci nu este vorba despre aparitii 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 homomorfism este aceea ca cifrarea RSA a


produsului a 2 mesaje (modulo N ) este produsul cifrarilor corespunzatoare
celor 2 numere.
Restul variantelor sunt eronate, fiindca RSA este un cifru cu cheie publica,
deci asimetric.

16. Raspuns: (c). Se aplica proprietatile generatorului Geffe.

17. Raspuns: (c). In aceasta situatie secventa supusa testarii este ideala, numarul
de biti de 0 este egal cu numarul de biti de 1 si anume 1024.

18. Raspuns: (a).

19. Raspuns: (b), (c). Un registru de deplasare de lungime n are 2n 1 stari


posibile (starea nula este exclusa). In situatia n care polinomul caracteristic
este primitiv atunci el genereaza toate starile posibile.

20. Raspuns: (a). Numarul de iesiri posibile, ale unei functii hash ideale cu iesirea
pe m biti, este 2m .

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 fiecarei intrari (i.e. DES(banul; k) respectiv DES(stema; k )).
306 PROBLEME DE SINTEZA

ii) A va cauta coliziuni n cadrul acestor liste si va obtine 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 biti, DES(banul; k) si DES(stema; k ).
Conform birthday attack este nevoie numai de 232 evaluari ale algoritmului
DES pentru a determina o coliziune.
c) Cerinta primitivei criptografice este ca functiile:
k DES(banul; k) si k DES(stema; k)
sa fie rezistente la coliziuni.
d) Se poate utiliza un algoritm de cifrare bloc pe 128 de biti, spre exemplu
AES (n acest caz birthday attack are nevoie de 264 evaluari ale AES). Ca
o alternativa se poate utiliza o functie 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 Zp2 |x 1 mod p} n raport cu


multiplicarea modul p2 este grup. Pentru aceasta se vor verifica urmatoarele:
operatia este parte stabila, asociativitatea, elementul neutru si elementul simetriz-
abil.
2
b) Orice element a din Zp se poate scrie n mod unic a = a1 + a2 p, unde a1
si a2 sunt numere ntregi ce satisfac relatia 0 a1 , a2 p 1. Orice element
2
a din Zp este n G daca si numai daca elementul corespunzator a1 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
verifica faptul ca L este homomorfism: 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 verifica injectivitatea si
sujectivitatea lui L, deci L este izomorfism de grupuri.
d) Avem de aratat faptul ca orice element a G poate fi scris ca o putere a
lui p + 1. Din binomul lui Newton rezulta:
Xn
2 2 n i
(p + 1) mod p = p mod p2 = 1 + np.
i
i=0

Deci, p + 1 genereaza G. Pentru orice y G avem: y = logp+1 (x) daca si


numai daca x = (p + 1)y mod p2 .
Deoarece (p + 1)y mod p2 = 1 + py, obtinem:
RASPUNSURI 307

x1
y= mod p = L(x).
p

Acesta functie logaritm sta la baza algoritmului criptografic Okamoto-Uchiyama.

25. Raspuns: Sa consideram semnaturile pentru mesajele m si m . Semnaturile


sunt (r, s) si (r, s ). Avem:

H(m) + xr
s= mod q
k

H(m ) + xr
s = mod q.
k

Deducem
H(m) H(m )
k= mod q.
s s

Vom calcula apoi r = (g k mod p) mod q si n final vom recupera x prin formula:

ks H(m)
x= mod q.
r

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 biti nu de 64 de biti.
b) Mai ntai B reconstruieste textul clar P = C RC4(IV, K). Ulterior P
este mpartit n doua parti P = M ||Q , unde M este de n biti iar Q de 32
de biti. 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 fiecare frame rezulta
24
ca la fiecare 2 2 5000 frame-uri exista o coliziune pentru doua IV din
cele 5000 transmise de la/catre acelasi utilizator. In aceasta situatie avem o
coliziune n sirurile cheie, ceea ce poate conduce la informatie despre textul
clar ([83]). O alternativa este de a incrementa IV .
308 PROBLEME DE SINTEZA

d) Fie M = M un nou mesaj, unde este un sir de n biti. Vom calcula


diferenta 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 verifica CRC-ul. In concluzie acesta are (2n 1) posibilitati de alegere
pentru (si C ). Proprietatea violata este cea de integritate a mesajului. O
concluzie ce se desprinde din acest exercitiu este aceea ca CRC-urile (cu sau
fara cheie) ne asigura protectia contra erorilor de transmisie nu si mpotriva
unui adversar malitios.

27. Raspuns: Prin calcule directe vom obtine: d = e1 = 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 codificarea spatiu= 00, A = 01, B = 02, . . . , Z = 26 obtinem textul
clar:
THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE.
Bibliografie

[1] Abramowitz M., Stegun I.A., Handbook of Mathematical Functions, Wash-


ington, D.C., U.S. Government Printing Office, 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 Informatiei, vol. 1, Criptografie, ed. InfoData, Cluj,
2008.

[7] Atanasiu A., Securitatea Informatiei, 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.

309
310 BIBLIOGRAFIE

[14] Bertsekas D. P., Dynamic Programming and Optimal Control, 2nd ed.,
Athena Scientific, 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 311

[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., Steffen 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 operationale, 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.


312 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 Brookfield,
Vt.: Edward Elgar, 1996.

[51] Naccache D., Mihaita A., Olimid R. F., Oprina A. G., Simion E.,
Criptografie si Securitatea Informatiei. Aplicatii, 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] Raiffa H., Decision Analysis: Introductory Readings on Choices Under Un-
certainty, McGraw Hill, 1997.

[58] Rapoport A., Albert M. C., Prisoners Dilemma: A Study in Conflict and
Cooperation, Ann Arbor: University of Michigan Press, 1965.

[59] Riker W. H., Ordeshook P. C., An Introduction to Positive Political The-


ory, Englewood Cliffs, 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 313

[64] Samuelson L., Evolution and Game Theory, Journal of Economic Perspec-
tives 16, 2002.

[65] Schelling T., The Strategy of Conflict, 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 Operationale 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, Editie coordonata de M. Iosifescu, O.


Stanasila si D. Stefanoiu, Editura AGIR, ISBN 978-973-720-288-8, pp. 905-
944, 2010.
314 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 combinatorica, 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.

S-ar putea să vă placă și