Documente Academic
Documente Profesional
Documente Cultură
Cercetari Operationale PDF
Cercetari Operationale PDF
I. Simion, Emil
II. Andraiu, Mircea
III. Naccache, David
IV. Simion, Gheorghe
004.056.55
621.928
CERCETRI OPERAIONALE,
PROBABILITI I CRIPTOLOGIE
APLICAII
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.
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.
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
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
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
II CRIPTOLOGIE 147
BIBLIOGRAFIE 309
Partea I
CERCETARI
OPERATIONALE
1
Capitolul 1
PROGRAMARE LINIARA
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
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
(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}
max(zjB cj ) = zkB ck
j
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.
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:
xij 0, 1 i m, 1 j n. (1.7)
APLICATII 11
1.6. Aplicatii
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.
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.
1
Vom duce drepte paralele cu x2 = x1 pana se intersecteaza cu domeniul
6
14 PROGRAMARE LINIARA
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
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
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
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
PROGRAMARE DINAMICA
Avem n general:
xt = xt (st )
ut : Sti1 Xti R, uti = uti (sti , xti )
i
ti : Sti1 Xti Sti , ti = ti (sti1 , xti ).
17
18 PROGRAMARE DINAMICA
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
f (u1 (s0 , x1 ), u2 (s0 , x1 , x2 ), . . . , un (s0 , x1 , . . . , xn )) =f (s0 , x1 , . . . , xn ).
f (s0 , x1 (s0 ), . . . , xn (s0 )) = min{f (s0 , x1 , . . . , xn )|x1 X 1 (s0 ), . . . ,
. . . , xi X i (s0 , x1 , . . . , xi1 ), i = 1, n}.
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
f ni+1 (si1 , xi , . . . , xn ) = Fni+1 (ui (si1 , xi ), f ni (i (si1 , xi ),
xi+1 , . . . , xn )),
si = i (si1 , xi ), i = 1, n.
min{f 1 (sn1 , xn )|xn Xn (sn1 )} = min{un (sn1 , xn )|xn Xn (sn1 )} = g1 (sn1 ),
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
x = (x1 , . . . , xn )
2.3.3. Aplicatii
TABELUL 2.1
luna i 1 2 3 4
cererea 5 7 5
pret 12 10 9 10
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:
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 ,
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.
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
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:
si = i (si1 , xi ), i = 1, n,
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.
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.
actualizeaza i := i + 1;
PROGRAMARE DINAMICA PROGRESIVA 29
x = (x1 , . . . , xn )
2.4.3. Aplicatii
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.
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.
1 x1 ,
32 PROGRAMARE DINAMICA
1 + 2 x1 + x2 1 + ,
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 .
TEORIA JOCURILOR
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
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:
se numeste valoarea inferioara a jocului si reprezinta cel mai mic castig pe care A l
poate avea de la B, iar valoarea:
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.
si
yj 0, j = 1, n
Pn
yj = 1.
j=1
sau matriceal:
0
M (X, Y ) = X QY.
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:
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:
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
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
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,
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.
TABELUL 3.2
A/B 5% 0% +5%
5% 2 4 4
0% 1 0 3
+5% 3 2 0
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
TABELUL 3.4
A/B b1 b2 b3
a1 0
a2 0
a3 0
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%
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
TEORIA DECIZIILOR
STATISTICE
45
46 TEORIA DECIZIILOR STATISTICE
A = {a1 , ..., an }.
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:
Numim strategie minimax actiunea cea mai favorabila a care minimizeaza pier-
derea maxima, adica a pentru care:
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)}.
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:
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 (, ),
(, d ) = min (, d).
dD
DECIZII OPTIME N CAZ DE INCERTITUDINE 49
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
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:
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
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
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
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
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
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
TEORIA GRAFURILOR
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.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.5. Un drum care nu trece de doua ori printr-un nod al sau se
numeste drum elementar.
55
56 TEORIA GRAFURILOR
Remarcam ca ntr-un graf avand n noduri orice drum elementar are lungimea de
cel mult n 1.
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.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.
(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.
(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.
p(j) cu p(i ) + vi j .
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.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.
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
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
si
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 -
(1)
succ4 = {6},
(3)
succ1 = {3, 5},
(3)
succ2 = {4},
(3)
succ3 = {5},
(3)
succ4 = {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
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.6. Pentru graful din figura 5.8 determinati drumurile de lungime
minima ntre nodul 0 si 7. Care este valoarea minima a acestui drum?
APLICATII 73
PROBLEME DE TRANSPORT
75
76 PROBLEME DE TRANSPORT
TABELUL 6.1
c11 c12 ... c1n a1
c21 c22 ... c2n a2
... ... ... ... ...
cm1 cm2 ... cmn am
b1 b2 ... bn
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,
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.
X X
ai = bj.
iM jN
PROBLEMA CLASICA DE TRANSPORT 79
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
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.
6.1.7. Aplicatii
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
7 5 + 6 8 + 3 4 + 5 8 + 1 1 + 2 7 = 150.
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.
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.
care se trec n colturile din dreapta sus ale fiecarei celule secundare.
iii) Calculam (criteriul de optim):
solutia este optima, iar aceasta este: x11 = 5, x13 = 5, x22 = 3, x23 = 2.
TABELUL 6.4
2 3 4 2
3 6 2 4 3
4 5 3
7 6
C0 = + 2 + 2 + 12 + 20 + 12 = 49.
care se trec n colturile din dreapta sus ale fiecarei celule secundare.
iii) Calculam (criteriul de optim):
Figura 6.3: -ciclul format de celula (2,4) cu o parte a celulelor din baza, celulele
de rang par sunt marcate cu .
C1 = 47,
care se trec n colturile din dreapta sus ale fiecarei celule secundare.
iii) Calculam (criteriul de optim):
TABELUL 6.7
2 3 4 1 2
3 6 2 4 3
1 4 5 3
1 7 1 6
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
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
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
Cantitatea (u, v), poate fi pozitiva sau negativa si se numeste fluxul de retea de
la u la v.
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 .
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
/
6.2.4. Aplicatii
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)},
Fluxul propagat este conform figurii 6.9. Arcele [2, 3] si [3, 4] nu sunt utilizate.
96 PROBLEME DE TRANSPORT
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.
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.
TABELUL 6.11
c1 c2
d1 10 2
d2 20
d3 10 20
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.
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
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
cu valoarea capacitatii:
c( A) = 10 + 2 + 20 + 10 + 20 = 62.
> 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.
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.
TEORIA STOCURILOR
103
104 TEORIA STOCURILOR
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
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 .
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
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
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.
X : (x, p(x)), x = 0, 1, 2, . . .
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
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
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
cu media:
Z
M (Ls ) = (x s)f (x)dx.
s
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
X : (x, p(x)), x = 0, 1, 2, . . .
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
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
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
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
sau
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
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
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
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()).
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
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.
PROBABILITATI
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
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
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
m m
normala, atunci: P ( f ) = ( ) ( ).
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
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
8.5.2. Testul 2
8.5.3. Testul 3
8.5.4. Testul 4
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?
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?
Repartitia normala
(x )2
1
n(x; , 2 ) = e 2 2 , x R.
2
M (X) = ,
respectiv
D2 (X) = 2 .
unde , R.
Repartitia lognormala
respectiv
2 2
D2 (X) = e2+ (e 1).
unde > 0 si 1 , 2 R.
Repartitia uniforma
respectiv
(b a)2
D2 (X) = .
12
Repartitia exponentiala
1
D2 (X) =
2
si
r!
M (X r ) = .
r
CATEVA DISTRIBUTII IMPORTANTE 137
Repartitia gama
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.
X n 2
N (0, 1).
2 2n
Repartitia beta
X/m
F = Be(, ).
Y /n
X
t = q t(n).
Y
n
140 PROBABILITATI
Repartitia Cauchy
Distributia Bernoulli
Distributia binomiala
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.
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
Pr(2 2 ;n1 ) = ,
2 2
unde numarul gradelor de libertate al repartitiei 2 este n 1.
144 PROBABILITATI
P resping H0 la pragul ,
si
<P accept H0 la pragul .
x y x y
z=q z 2 sau z = q z1 2 .
12 22 12 22
n m n m
146 PROBABILITATI
(n 1)s2
2 = 21;n1 .
02
(n 1)s2
2 = 2;n1 .
02
(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
149
150 SISTEMUL DE CIFRARE CEZAR
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
... .. .. .. .. .. .. .. .. ..
Raspuns: PLUDFOH.
METODA SUBSTITUTIEI
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
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.
T EST ARESIST EM
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
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:
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
SISTEMUL DE CIFRARE
PLAYFAIR
Observatia 11.1.1. Daca o digrama apare n textul clar n ordine inversa atunci
159
160 SISTEMUL DE CIFRARE PLAYFAIR
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.
CRIP T OGRAF IE
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
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:
Raspuns: POFDKQDAKB.
Raspuns: RFOYHB.
Raspuns: SINAIA.
Raspuns: PREDEAL.
164 SISTEMUL DE CIFRARE PLAYFAIR
Capitolul 12
SISTEMUL DE CIFRARE
HILL
165
166 SISTEMUL DE CIFRARE HILL
Digrama se cifreaza n:
9 1
C= 1 11 mod 26 = 6 11 = G L .
21 8
Algoritmul utilizat la cifrare este cifrul lui Hill (3 3), cheia de cifrare fiind
matricea:
A B C
B C A .
C A B
Raspuns: CRYPTOLOGY.
SISTEME DE CIFRARE
POLIALFABETICE
171
172 SISTEME DE CIFRARE POLIALFABETICE
Rezolvare: Aplicand cifrarea pentru fiecare caracter al textului clar, tinand cont
de pozitia acestora n alfabet, se obtine:
Raspuns: UDHLPIQLOQ.
Raspuns: LLQIVRAT.
Raspuns: CRIPTOGRAFIE.
176 SISTEME DE CIFRARE POLIALFABETICE
Capitolul 14
METODA TRANSPOZITIEI
CRIP T OGRAF IE
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
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
SISTEME MIXTE
Rezolvare: Mai ntai textul este cifrat cu sistemul Cezar folosind cheia k = 5, deci
corespondenta dintre cele 2 alfabete devine:
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
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:
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
GENERATOARE
PSEUDOALEATOARE
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 ,
f (X) = 1 + X + X 2 + X 3 + X 4 ,
(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
CALCULE IN CORPURI
GALOIS
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}.
Rezolvare: Scrierea binara a celor doua elemente este {57} = {01010111} respec-
tiv {83} = {10000011}. Efectuand calculele obtinem {57} {83} = {11010100} =
{D4}.
Raspuns: {6C}.
Raspuns: {AA}.
Raspuns: {45}.
EXERCITII PROPUSE 195
Raspuns: {2}.
Raspuns: {8}.
ALGORITMUL RIJNDAEL -
STANDARDUL AES
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
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)),
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.
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
62 62 62 62
63 63 63 63
7C 7C 7C 7C
63 63 63 62
66 D6 17 F9
E0 43 67 CF
D8 E3 13 28
04 F2 5A E9
CRIPTANALIZA
CIFRURILOR BLOC
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 .
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
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 ))?
LEMA CHINEZEASCA A
RESTURILOR
x ai mod mi
Q
k
are o solutie unica modulo 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
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.
Rezolvare:
Solutia sistemului de congruente este data de formula:
3
X
x= aj Mj Nj mod M.
j=1
SISTEMUL DE CIFRARE
MERKLE-HELLMAN
altfel bk = 0.
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
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
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
Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 401.
Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 426.
Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 271.
Raspuns: Cheia publica {62, 93, 81, 88, 102, 37}, mesajul clar 101110.
Raspuns: Cheia publica {154, 43, 166, 61, 208, 163}, m1 mod p = 191, mesajul
clar 101000.
Raspuns: Cheia publica este {60, 80, 11, 82, 164, 170}, mesajul cifrat 425.
Raspuns: Cheia publica {60, 80, 11, 82, 164, 170}, m1 mod p = 115, mesajul clar
011011.
Raspuns: Cheia publica este {25, 192, 171, 58, 166, 90}, mesajul cifrat 511.
Raspuns: Cheia publica {25, 192, 171, 58, 166, 90}, m1 mod p = 181, mesajul
clar 011101.
Capitolul 22
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.
Raspuns: C = 141.
Raspuns: M = 146.
Raspuns: C = 70.
Raspuns: M = 9.
Raspuns: C = 962.
Raspuns: M = 3.
Raspuns: C = 164.
Raspuns: M = 5, d = 35.
SISTEMUL DE CIFRARE
ELGAMAL
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}.
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
ARITMETICA PE CURBE
ELIPTICE
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.
229
230 ARITMETICA PE CURBE ELIPTICE
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.
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.
Raspuns: Succesiv obtinem 1P = (4, 6), 2P = (6, 1), 3P = (5, 0), 4P = (6, 6),
5P = (4, 1), 6P = O.
Raspuns: Cele 2 puncte satisfac fiecare ecuatia curbei eliptice. Suma lor este
(3, 5).
SISTEMUL DE CIFRARE
ELGAMAL PE CURBE
ELIPTICE
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:
Dk (y1 , y2 ) = y2 dy1 .
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.
Raspuns: Valoarea cheii publice este = d = (3, 6). Mesajul cifrat este
(k, M + k) = ((8, 3), (10, 9) + (5, 2)) = ((8, 3), (5, 9)).
Raspuns: Dk (y1 , y2 ) = (y2 dy1 ) = ((5, 9) 5(8, 3)) = ((5, 9) (5, 2)) = ((5, 9) +
(5, 9)) = (10, 9).
Raspuns: Valoarea cheii publice este = d = (3, 7). Mesajul cifrat este
(k, M + k) = ((9, 4), (3, 7) + (4, 10)) = ((9, 4), (2, 9)).
Raspuns: Dk (y1 , y2 ) = (y2 dy1 ) = ((2, 9)3(9, 4)) = ((2, 9)(4, 10)) = ((2, 9)+
(4, 3)) = (3, 7).
Raspuns: Valoarea cheii publice este = d = (7, 13). Mesajul cifrat este
(k, M + k) = ((7, 4), (8, 4) + (1, 5)) = ((7, 4), (16, 2)).
Raspuns: Dk (y1 , y2 ) = (y2 dy1 ) = ((16, 2) 7(7, 4)) = ((16, 2) (1, 5)) =
((2, 9) + (1, 12)) = (8, 4).
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
Raspuns: Dk (y1 , y2 ) = (y2 dy1 ) = ((5, 20) 5(14, 9)) = ((5, 20) (14, 9)) =
((5, 20) + (14, 20)) = (10, 9).
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
Rezolvare: Curba eliptica are 13 puncte deci grupul E este ciclic si orice element
este generator.
237
238 SISTEMUL DE CIFRARE 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 .
FUNCTII DE DISPERSIE
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).
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:
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
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.
= k mod p = 2213 mod 467 = 29 si = (101 127 29) 431 mod 466 = 16.
245
246 SEMNATURA ELGAMAL
SEMNATURA DSA/ECDSA
249
250 SEMNATURA DSA/ECDSA
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 = .
PROTOCOLUL
DIFFIE-HELLMAN
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
Raspuns: k = 3694.
Raspuns: k = 12034.
Raspuns: k = 14.
Raspuns: k = 7944.
Raspuns: k = 57286.
Raspuns: k = 352.
Raspuns: k = 612.
EXERCITII PROPUSE 255
Raspuns: k = 1555.
Raspuns: k = 731.
PROTOCOLUL BLOM
257
258 PROTOCOLUL BLOM
gA (rB ) = 7 + 14 7 mod 17 = 3.
gB (rA ) = 6 + 4 12 mod 17 = 3.
PROTOCOLUL SHAMIR DE
PARTAJARE A SECRETELOR
k1
X
P (X) = ai X i + S mod q.
i=1
261
262 PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR
Raspuns: S = 0.
Raspuns: S = 4.
EXERCITII PROPUSE 263
Raspuns: S = 13.
SCHEME DE PARTAJARE A
SECRETELOR BAZATE PE
CRT
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.
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
CANALE SUBLIMINALE
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
PRINCIPII CRIPTOGRAFICE
271
272 PRINCIPII CRIPTOGRAFICE
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 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 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
275
276 ATACURI IN MEDIUL DE IMPLEMENTARE
Exercitiul 36.2.4. Numiti 3 factori care determina forma graficului puterii con-
sumate de un microprocesor.
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
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
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.
> alpha:=14;
> a:=2;
> m:=4;
> k:=4;
> text_cifrat:=(y1,y2);
> alpha:=2;
> a:=127;
> x:=102;
> k:=15;
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;
> x:=1234;
> k:=50;
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;
> 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);
> print(K);
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;
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]});
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);
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
287
288 APLICATII PRACTICE
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
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
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 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
(a) JOOJCXPJDJXGP
(b) SHHSMYVSWSYPV
(c) JOOJCXPJBJXGP
(d) SHHSMYVSZSYPV
(a) 10010110100
(b) 11011000001
(c) 11001100011
(d) 6C1
(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
(a) AES
(b) HMAC
(c) SHA-1
(d) NIST
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) 20
(b) 1000
(c) 1000000
(d) 2512
298 PROBLEME DE SINTEZA
(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?
14. Care este dificultatea de a factoriza un numar prim pe 1024 de biti astazi?
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?
(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.
(a) 2m .
(b) 2n .
(c) 2mn .
(d) 2mn .
(e) 2nm .
(f) Niciuna din valorile de mai sus.
(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?
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.
3. Raspuns: (a). Literele de pe a doua linie sunt imaginile celor din prima linie,
si nu invers.
8. Raspuns: (a). HMAC este MAC, SHA-1 este o functie de dispersie si NIST
este o agentie americana de standardizare.
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
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.
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.
20. Raspuns: (a). Numarul de iesiri posibile, ale unei functii hash ideale cu iesirea
pe m biti, este 2m .
x1
y= mod p = L(x).
p
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
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
[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.
[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.
[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.
[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.
[25] De Groot M., Optimal Statistical Decisions, Wiley Classics Library, 2004.
[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.
[31] Goodwin P., Wright G. Decision Analysis for Management Judgment, 3rd
ed., Chichester: Wiley 2004.
[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.
[36] Harary F., Palmer E., Graphical Enumeration, New York, NY: Academic
Press,1973.
[38] Heims S. J., John Von Neumann and Norbert Wiener: From Mathematics
to the Technologies of Life and Death, Cambridge, Mass.: MIT Press, 1980.
[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.
[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.
[53] Pidd M., Tools for Thinking: Modelling in Management Science, J. Wiley &
Sons Ltd., Chichester; 2nd. Edition, 2003.
[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.
[60] Robert C., The Bayesian Choice, 2nd ed., New York: Springer, 2007.
[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.
[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.
[74] Sierksma G., Linear and Integer Programming: Theory and Practice 2nd ed.
New York: Marcel Dekker, 2002.
[76] Simion E., Preda V., Popescu A., Criptanaliza. Rezultate si Tehnici
Matematice, Universitatea din Bucuresti, ISBN 973575975-6, 2004.
[78] Smith J.Q., Decision Analysis: A Bayesian Approach, Chapman and Hall,
1988.
[84] Wald A., Contributions to the Theory of Statistical Estimation and Testing
Hypotheses, Annals of Mathematical Statistics 10 (4), 1939.