P. 1
Cercetari Operationale, Probabilitati Si Criptologie. Aplicatii_Ed I_rev 20.10.2012

Cercetari Operationale, Probabilitati Si Criptologie. Aplicatii_Ed I_rev 20.10.2012

|Views: 13|Likes:
Published by nic123456456

More info:

Published by: nic123456456 on Oct 27, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/04/2013

pdf

text

original

Sections

  • PROGRAMARE LINIAR˘A
  • 1.1. Folosirea eficient˘a a resurselor limitate
  • 1.2. Forme ale problemelor de programare liniar˘a
  • 1.3. Algoritmul simplex (Dantzig)
  • 1.4. Duala unei probleme de programare liniar˘a
  • 1.5. Problema de transport
  • 1.6. Aplicat¸ii
  • PROGRAMARE DINAMIC˘A
  • 2.1. Forma unei probleme de optimizare secvent¸ial˘a
  • 2.2. Teorema de optim
  • 2.3. Programare dinamic˘a regresiv˘a
  • 2.3.1. Ecuat¸iile program˘arii dinamice regresive
  • 2.3.2. Rezolvarea problemelor de programare regresiv˘a
  • 2.3.3. Aplicat¸ii
  • 2.4. Programare dinamic˘a progresiv˘a
  • 2.4.1. Ecuat¸iile program˘arii dinamice progresive
  • 2.4.2. Rezolvarea problemelor de programare progresiv˘a
  • 2.4.3. Aplicat¸ii
  • TEORIA JOCURILOR
  • 3.1. Not¸iuni introductive
  • 3.2. Principiul minimax
  • 3.3. Strategii mixte ¸si valoarea jocului
  • 3.4. Teorema fundamental˘a a teoriei jocurilor
  • 3.5. Rezolvarea jocurilor matriceale
  • 3.5.1. Formularea problemei de optimizare
  • 3.5.2. Reducerea la probleme de programare liniar˘a
  • 3.6. Aplicat¸ii
  • 4.1. Prezentarea problemelor
  • 4.2. Strategii Bayes ¸si strategii minimax
  • 4.3. Cazul efectu˘arii unor experient¸e unice
  • 4.4. Decizii optime ˆın caz de incertitudine
  • 4.4.1. Criteriul lui Hurwicz
  • 4.4.2. Criteriul lui Savage
  • 4.4.3. Criteriul Bayes-Laplace
  • 4.4.4. Criteriul lui Wald
  • 4.5. Aplicat¸ii
  • TEORIA GRAFURILOR
  • 5.1. Grafuri orientate
  • 5.2. Algoritmul lui Kaufmann
  • 5.3. Algoritmul lui Chen
  • 5.4. Algoritmul lui Ford
  • 5.5. Algoritmul Bellman-Kalaba
  • 5.6. Algoritmul lui Dijkstra
  • 5.7. Arbori minimali
  • 5.7.1. Algoritmul lui Kruskal
  • 5.8. Aplicat¸ii
  • PROBLEME DE TRANSPORT
  • 6.1. Problema clasic˘a de transport
  • 6.1.1. Formularea problemei
  • 6.1.2. Algoritmul de transport (adaptarea algoritmului simplex)
  • 6.1.3. Determinarea unui program de baz˘a init¸ial
  • 6.1.4. Degenerare ¸si ciclare
  • 6.1.5. Variante ale problemei de transport
  • 6.1.6. Algoritmul simplex modificat
  • 6.1.7. Aplicat¸ii
  • 6.2. Flux maxim intr-o ret¸ea de transport
  • 6.2.1. Ret¸ele de transport
  • 6.2.2. Algoritmul Ford-Fulkerson
  • 6.2.3. Problema de transport ca problem˘a de flux maxim
  • 6.2.4. Aplicat¸ii
  • TEORIA STOCURILOR
  • 7.1. Formularea modelului matematic
  • 7.2. Modele deterministe
  • 7.2.4. Model de stocare a mai multor produse
  • 7.3. Modele probabiliste
  • 7.4. Aplicat¸ii
  • 8.1. Probabiliatea unui eveniment
  • 8.1.2. Probabit˘at¸i geometrice
  • 8.1.3. Frecvent¸˘a absolut˘a. Frecvent¸˘a relativ˘a
  • 8.1.4. Definit¸ia statistic˘a a probabilit˘at¸ii
  • 8.2. Variabile aleatoare normal distribuite
  • 8.2.1. Densitatea de probabilitate normal˘a
  • 8.2.2. Funct¸ia Laplace-Gauss
  • 8.2.3. O formul˘a analitic˘a pentru calculul probabilit˘at¸ii
  • 8.2.4. Inegalitatea lui Cebˆa¸sev (1821-1894)
  • 8.2.5. Teorema celor 3σ
  • 8.3. Legea numerelor mari
  • 8.4. Teorema limit˘a central˘a
  • 8.4.1. Forma Leapunov (1857-1918) a Teoremei Limit˘a Central˘a
  • 8.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limit˘a Cen- tral˘a
  • 8.5. Teste
  • 8.5.1. Testul 1
  • 8.5.2. Testul 2
  • 8.5.3. Testul 3
  • 8.5.4. Testul 4
  • 8.5.5. Testul 5
  • 8.5.6. Testul 6
  • 8.6. Cˆateva distribut¸ii importante
  • 8.6.1. Repartit¸ii continue
  • 8.6.2. Distribut¸ii discrete
  • 8.6.3. Calculul numeric al cuantilelor
  • CRIPTOLOGIE
  • 9.1. Breviar teoretic
  • 9.2. Exercit¸ii rezolvate
  • 9.3. Exercit¸ii propuse
  • METODA SUBSTITUT¸IEI
  • 10.1. Breviar teoretic
  • 10.2. Exercit¸ii rezolvate
  • 10.3. Exercit¸ii propuse
  • 11.1. Breviar teoretic
  • 11.2. Exercit¸ii rezolvate
  • 11.3. Exercit¸ii propuse
  • 12.1. Breviar teoretic
  • 12.2. Exercit¸ii rezolvate
  • 12.3. Exercit¸ii propuse
  • 13.1. Breviar teoretic
  • 13.2. Exercit¸ii rezolvate
  • 13.3. Exercit¸ii propuse
  • METODA TRANSPOZIT¸IEI
  • 14.1. Breviar teoretic
  • 14.2. Exercit¸ii rezolvate
  • 14.3. Exercit¸ii propuse
  • 15.1. Breviar teoretic
  • 15.2. Exercit¸ii rezolvate
  • 15.3. Exercit¸ii propuse
  • 16.1. Breviar teoretic
  • 16.2. Exercit¸ii rezolvate
  • 16.3. Exercit¸ii propuse
  • 17.1. Breviar teoretic
  • 17.2. Exercit¸ii rezolvate
  • 17.3. Exercit¸ii propuse
  • 18.1. Breviar teoretic
  • 18.2. Exercit¸ii rezolvate
  • 18.3. Exercit¸ii propuse
  • 19.1. Breviar teoretic
  • 19.2. Exercit¸ii rezolvate
  • 19.3. Exercit¸ii propuse
  • 20.1. Breviar teoretic
  • 20.2. Exercit¸ii rezolvate
  • 20.3. Exercit¸ii propuse
  • 21.1. Breviar teoretic
  • 21.2. Exercit¸ii rezolvate
  • 21.3. Exercit¸ii propuse
  • SISTEMUL DE CIFRARE RSA
  • 22.1. Breviar teoretic
  • 22.2. Exercit¸ii rezolvate
  • 22.3. Exercit¸ii propuse
  • 23.1. Breviar teoretic
  • 23.2. Exercit¸ii rezolvate
  • 23.3. Exercit¸ii propuse
  • 24.1. Breviar teoretic
  • 24.2. Exercit¸ii rezolvate
  • 24.3. Exercit¸ii propuse
  • 25.1. Breviar teoretic
  • 25.2. Exercit¸ii rezolvate
  • 25.3. Exercit¸ii propuse
  • 26.1. Breviar teoretic
  • 26.2. Exercit¸ii rezolvate
  • 26.3. Exercit¸ii propuse
  • FUNCT¸II DE DISPERSIE
  • 27.1. Breviar teoretic
  • 27.2. Exercit¸ii propuse
  • SEMN˘ATURA ELGAMAL
  • 28.1. Breviar teoretic
  • 28.2. Exercit¸ii rezolvate
  • 28.3. Exercit¸ii propuse
  • SEMN˘ATURA DSA/ECDSA
  • 29.1. Breviar teoretic
  • 29.2. Exercit¸ii rezolvate
  • 29.3. Exercit¸ii propuse
  • 30.1. Breviar teoretic
  • 30.2. Exercit¸ii rezolvate
  • 30.3. Exercit¸ii propuse
  • PROTOCOLUL BLOM
  • 31.1. Breviar teoretic
  • 31.2. Exercit¸ii rezolvate
  • 31.3. Exercit¸ii propuse
  • 32.1. Breviar teoretic
  • 32.2. Exercit¸ii rezolvate
  • 32.3. Exercit¸ii propuse
  • 33.1. Breviar teoretic
  • 33.2. Exercit¸ii rezolvate
  • CANALE SUBLIMINALE
  • 34.1. Breviar teoretic
  • 34.2. Exercit¸ii rezolvate
  • 34.3. Exercit¸ii propuse
  • PRINCIPII CRIPTOGRAFICE
  • 36.1. Breviar teoretic
  • 36.2. Exercit¸ii propuse
  • RESURSE SOFTWARE
  • 37.1. CrypTool
  • 37.2. OpenSSL
  • 37.3. MAPLE
  • APLICAT¸II PRACTICE
  • PROBLEME DE SINTEZ˘A
  • 39.1. Enunt¸uri
  • 39.2. R˘aspunsuri

Emil Simion Mircea Andraşiu

David Naccache Gheorghe Simion








CERCETĂRI OPERAŢIONALE,
PROBABILITĂŢI ŞI CRIPTOLOGIE
APLICAŢII
















EDITURA ACADEMIEI TEHNICE MILITARE
Bucureşti, 2011

Referenţi ştiinţifici:
Prof. univ. dr. Octavian STĂNĂŞILĂ
Prof. univ. dr. Victor-Valeriu PATRICIU
Conf. univ. dr. Ovidiu ŞANDRU



Descrierea CIP a Bibliotecii Naţionale a României
Cercetări operaţionale, probabilităţi şi criptologie: aplicaţii / Emil Simion,
Mircea Andraşiu, David Naccache, Gheorghe Simion. - Bucureşti : Editura
Academiei Tehnice Militare, 2011
Bibliogr.
ISBN 978-973-640-208-1

I. Simion, Emil
II. Andraşiu, Mircea
III. Naccache, David
IV. Simion, Gheorghe

004.056.55
621.928








Editat: Academia Tehnică Militară
Redactor-şef: lt. col. ing. Stelian SPÎNU

Corectură: Mihaela ZAHARIOIU
Operaţiuni tipografice: plt. adj. Petru ANTOCHI,
Silvia STROE, Viorica TOMA, Adrian STĂNICĂ
Bun de tipar: 08.08.2011
Hârtie ofset: 70 × 100 Format: 32 / 70 × 100
Coli tipar: 18,4 Coli editură: 9,2
Tiparul: Academia Tehnică Militară
Lucrarea conţine 292 pagini
0208 C. C-8

i
Cuvˆant ˆınainte
Cercetarea Operat ¸ional˘a a ap˘arut ca disciplin˘a prin formularea, ˆın perioda celei de a
doua conflagrat ¸ii mondiale, a problemei de transport cˆand s-a pus problema aloc˘arii eficiente
a resurselor c˘atre unit˘at ¸ile combatante. Ulterior, aceste probleme ¸si-au g˘asit utilitatea ¸si ˆın
activitatea de management a unit˘at ¸ilor 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 aplicat ¸iilor 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 substant ¸iale ˆın cadrul unei
firme care are ca obiect de activitate astfel de probleme.
Gestiunea optim˘a a stocurilor este o component˘a esent ¸ial˘a ˆın planificarea ¸si realizarea
unui plan de marketing ¸si este o component˘a de neˆınlocuit a conducerii economice moderne
ˆın cadrul unei economii de piat ¸˘a. Aceasta teorie ¸si-a g˘asit mai nou aplicat ¸ii ˆın domeniul
proiect˘arii circuitelor electronice, stocul fiind reprezentat ˆın acest caz de capacitatea de
memorie disponibil˘a.
Totodat˘a, lucrarea de fat ¸˘a cont ¸ine aplicat ¸ii practice abordate de autori ˆın cadrul semi-
nariilor ce se desf˘a¸soar˘a la disciplina Criptografie ¸si Securitate, la Facultatea de Matematic˘a
Informatic˘a din cadrul Universit˘at ¸ii din Bucure¸sti, la masterul de Securitatea Tehnolo-
giei Informat ¸iei, organizat de Academia Tehnic˘a Militar˘a, precum ¸si la masterul de Teo-
ria Cod˘arii ¸si Stoc˘arii Informat ¸iei, organizat de Facultatea de S¸tiint ¸e Aplicate din cadrul
Universit˘at ¸ii Politehnica Bucure¸sti.
Aceast˘a culegere de probleme continu˘a dezvoltarea colabor˘arii dintre ¸scoala romˆaneasc˘a
de criptologie ¸si ¸scoala francez˘a reprezentat˘a ˆın cazul de fat ¸˘a de David Naccache, profe-
sor la universitatea Pantheon-Assas Paris II. Din acest motiv se reg˘asesc, ˆın culegerea de
fat ¸˘ a, capitolele dedicate principiilor criptologice ¸si atacurilor ˆın mediul de implementare, ce
acoper˘a un gol din curricula sistemului de ˆınv˘at ¸˘amˆant din Romania, capitole elaborate ˆın
colaborare cu profesorul David Naccache.
Dr. mat. Emil Simion
Dr. mat. Mircea Andra¸siu
ii
Prefat ¸˘a
Intrˆand progresivˆın era informat ¸iei, societ˘at ¸ile industrializate se g˘asesc ˆın fat ¸a unui para-
dox: pe de o parte, puterea ¸si influent ¸a Europei ¸si a Americii de Nord au crescut semnificativ,
ˆın principal datorit˘a m˘aiestriei modalit˘at ¸ilor prin care se controleaz˘a fluxurile de informat ¸ii,
precum ¸si valorii crescute a datelor procesate. Pe de alt˘a parte, dup˘a cum au demonstrat-o
deja criza Wikileaks sau viermele Stuxnet, apar noi amenint ¸˘ari ¸si vulnerabilit˘at ¸i care fac ca
dependent ¸a noastr˘a de sistemele informat ¸ionale s˘a fie crucial˘a.
De aceea, dezvoltarea atacurilor cibernetice, precum ¸si disponibilitatea online a instru-
mentelor utilizate ˆın activitatea de piraterie conduce la obiective strategice importante ¸si
cultiv˘a necesitatea de a preg˘ati expert ¸i pentru acest domeniu.
Criptografia este peste tot ˆın jurul t˘au.
ˆ
In timp ce tu cite¸sti aceste rˆanduri, ˆın vecin˘atatea
ta se transmit informat ¸ii cifrate prin telefoane mobile, relee de pay-TV, precum ¸si routere
wireless. Mediul ˆın care tr˘aim se schimb˘a ˆıntr-un ritm alert. Aceast˘a evolut ¸ie este rezultatul
progresului ˆın domeniul tehnologiilor hardware ¸si al matematicii.
Criptografia aplicat˘a s-a dezvoltat considerabil ˆın ultimii ani, pentru a putea satisface
cerint ¸ele crescute de securitate ale diverselor domenii legate de tehnologia informat ¸iei, cum
ar fi telecomunicat ¸iile, ret ¸elistica, bazele de date, precum ¸si aplicat ¸iile de telefonie mobil˘a.
Sistemele criptografice sunt din ce ˆın ce mai complexe ¸si mai tehnice ¸si necesit˘a din ce ˆın ce
mai mult˘a putere de calcul (de exemplu schema de cifrare perfect homomorf˘a a lui Gentry).
ˆ
In plus, algoritmii criptografici trebuie utilizat ¸i ˆımpreun˘a cu protocoale adecvate, a c˘aror
proiectare ¸si ˆınt ¸elegere necesit˘a o analiz˘a delicat˘a.
Aceast˘a carte v˘a ofer˘a instrumentele necesare pentru aˆıncepe s˘a v˘a dezvoltat ¸i aptitudinile
ˆın domeniul criptografiei.
ˆ
In timp ce citit ¸i aceste rˆanduri ˆın limba romˆan˘a, str˘ainul care sunt
v˘a ˆındeamn˘a s˘a realizat ¸i c˘a unele dintre cele mai luminate mint ¸i care au adus contribut ¸ii
acestui domeniuˆı¸si aveau originile ˆın spat ¸iul lingvistic ¸si cultural romˆanesc. De exemplu, cel
care a spart ma¸sina de cifrat ”Purple” a japonezilor, fapt˘a care a dus la divulgarea secretelor
diplomatice japonezeˆınainte de intrarea Americii ˆın cel de-al doilea r˘azboi mondial, provenea
din ora¸sul Chi¸sin˘au, Republica Moldova, ora¸s ˆın care familia lui se mutase dup˘a plecarea din
Bucure¸sti la sfˆar¸situl anilor 1890. S¸tiint ¸a secretelor are o lung˘a tradit ¸ie ˆın Romˆania, t ¸ar˘a
care a fost nevoit˘a constant s˘a se bazeze pe propriile talente pentru a-¸si p˘astra independent ¸a.
Expert ¸ii au prezis c˘a urm˘atoarele r˘azboaie vor ˆıncepe ˆın spat ¸iul cibernetic. Autorii acestei
c˘art ¸i, care sunt pedagogi ¸si cercet˘atori, au importanta datorie moral˘a de a l˘asa mo¸stenire
Romˆaniei astfel de talente vitale.
ˆ
In trecut, am avut onoarea de a cunoa¸ste sau a fi mentorul unor cercet˘atori ¸si student ¸i
romˆani foarte talentat ¸i.
ˆ
Intotdeauna am fost uimit de creativitatea acestora, de dorint ¸a
lor de a-¸si atinge scopurile, precum ¸si de d˘aruirea pentru munc˘a. Sper c˘a aceast˘a carte va
contribui la dezvoltarea continu˘a de asemenea talente, astfel ˆıncˆat domeniul ¸stiint ¸ific c˘aruia
i-am dedicat o bun˘a parte a viet ¸ii mele s˘a beneficieze de acest formidabil rezervor de talente.
Dac˘a suntet ¸i un student talentat ¸si interesat de studii doctorale ˆın domeniu, nu ezitat ¸i
s˘a m˘a contactat ¸i pentru sfaturi.
Prof. David Naccache
Universit´e Paris II, Pantheon-Assas, PRES Sorbonne Universit´es
Membru al laboratorului informatic al Ecole normale superi´eure. Paris, Frant ¸a.
Cuprins
I CERCET
˘
ARI OPERAT¸IONALE 1
1 PROGRAMARE LINIAR
˘
A 3
1.1. Folosirea eficient˘a a resurselor limitate . . . . . . . . . . . . . . . . . 3
1.2. Forme ale problemelor de programare liniar˘a . . . . . . . . . . . . . 5
1.3. Algoritmul simplex (Dantzig) . . . . . . . . . . . . . . . . . . . . . . 7
1.4. Duala unei probleme de programare liniar˘a . . . . . . . . . . . . . . 9
1.5. Problema de transport . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6. Aplicat ¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 PROGRAMARE DINAMIC
˘
A 17
2.1. Forma unei probleme de optimizare secvent ¸ial˘a . . . . . . . . . . . . 17
2.2. Teorema de optim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3. Programare dinamic˘a regresiv˘a . . . . . . . . . . . . . . . . . . . . . 20
2.3.1. Ecuat ¸iile program˘arii dinamice regresive . . . . . . . . . . . . 20
2.3.2. Rezolvarea problemelor de programare regresiv˘a . . . . . . . 21
2.3.3. Aplicat ¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4. Programare dinamic˘a progresiv˘a . . . . . . . . . . . . . . . . . . . . 27
2.4.1. Ecuat ¸iile program˘arii dinamice progresive . . . . . . . . . . . 27
2.4.2. Rezolvarea problemelor de programare progresiv˘a . . . . . . 28
2.4.3. Aplicat ¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 TEORIA JOCURILOR 33
3.1. Not ¸iuni introductive . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2. Principiul minimax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3. Strategii mixte ¸si valoarea jocului . . . . . . . . . . . . . . . . . . . . 35
3.4. Teorema fundamental˘a 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 liniar˘a . . . . . . . . . 38
iii
iv CUPRINS
3.6. Aplicat ¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4 TEORIA DECIZIILOR STATISTICE 45
4.1. Prezentarea problemelor . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2. Strategii Bayes ¸si strategii minimax . . . . . . . . . . . . . . . . . . . 46
4.3. Cazul efectu˘arii unor experient ¸e unice . . . . . . . . . . . . . . . . . 47
4.4. Decizii optime ˆın caz de incertitudine . . . . . . . . . . . . . . . . . . 49
4.4.1. Criteriul lui Hurwicz . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.2. Criteriul lui Savage . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.3. Criteriul Bayes-Laplace . . . . . . . . . . . . . . . . . . . . . 50
4.4.4. Criteriul lui Wald . . . . . . . . . . . . . . . . . . . . . . . . 50
4.5. Aplicat ¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5 TEORIA GRAFURILOR 55
5.1. Grafuri orientate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2. Algoritmul lui Kaufmann . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3. Algoritmul lui Chen . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4. Algoritmul lui Ford . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5. Algoritmul Bellman-Kalaba . . . . . . . . . . . . . . . . . . . . . . . 59
5.6. Algoritmul lui Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.7. Arbori minimali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.7.1. Algoritmul lui Kruskal . . . . . . . . . . . . . . . . . . . . . . 62
5.8. Aplicat ¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6 PROBLEME DE TRANSPORT 75
6.1. Problema clasic˘a 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 baz˘a init ¸ial . . . . . . . . . . 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. Aplicat ¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2. Flux maxim intr-o ret ¸ea de transport . . . . . . . . . . . . . . . . . . 89
6.2.1. Ret ¸ele de transport . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.2. Algoritmul Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . 90
6.2.3. Problema de transport ca problem˘a de flux maxim . . . . . . 92
6.2.4. Aplicat ¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
CUPRINS v
7 TEORIA STOCURILOR 103
7.1. Formularea modelului matematic . . . . . . . . . . . . . . . . . . . . 103
7.2. Modele deterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.2.1. Model de stocare a unui produs cu cerere constant˘a, perioad˘a
constant˘a de reaprovizionare ¸si f˘ar˘a lips˘a de stoc . . . . . . . 104
7.2.2. Model de stocare a unui produs cu cerere constant˘a, perioad˘a
constant˘a de reaprovizionare ¸si cu posibilitatea lipsei de stoc 105
7.2.3. Model de stocare a unui produs cu cerere constant˘a, perioad˘a
constant˘a de reaprovizionare ¸si f˘ar˘a lips˘a de stoc, luˆand ˆın
considerare ¸si costul de achizit ¸ie . . . . . . . . . . . . . . . . 108
7.2.4. Model de stocare a mai multor produse . . . . . . . . . . . . 109
7.3. Modele probabiliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.3.1. Model de stocare a unui produs cu cerere aleatoare, cu pierdere
ˆın cazul surplusului de stoc, cu cheltuieli suplimentare ˆın cazul
lipsei de stoc ¸si cu cost de stocare neglijabil . . . . . . . . . . 110
7.3.2. Model de stocare a unui produs cu cerere aleatoare, cu cost
de stocare ¸si cost de penalizare pentru lips˘a de stoc . . . . . 114
7.4. Aplicat ¸ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8 PROBABILIT
˘
AT¸I 123
8.1. Probabiliatea unui eveniment . . . . . . . . . . . . . . . . . . . . . . 123
8.1.1. Cazul finit dimensional ¸si al evenimetelor elementare echiprob-
abile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.1.2. Probabit˘at ¸i geometrice . . . . . . . . . . . . . . . . . . . . . . 124
8.1.3. Frecvent ¸˘a absolut˘a. Frecvent ¸˘a relativ˘a . . . . . . . . . . . . . 124
8.1.4. Definit ¸ia statistic˘a a probabilit˘at ¸ii . . . . . . . . . . . . . . . 125
8.2. Variabile aleatoare normal distribuite . . . . . . . . . . . . . . . . . . 126
8.2.1. Densitatea de probabilitate normal˘a . . . . . . . . . . . . . . 126
8.2.2. Funct ¸ia Laplace-Gauss . . . . . . . . . . . . . . . . . . . . . . 126
8.2.3. O formul˘a analitic˘a pentru calculul probabilit˘at ¸ii . . . . . . . 127
8.2.4. Inegalitatea lui Cebˆa¸sev (1821-1894) . . . . . . . . . . . . . . 127
8.2.5. Teorema celor 3σ . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.3. Legea numerelor mari . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.4. Teorema limit˘a central˘a . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.4.1. Forma Leapunov (1857-1918) a Teoremei Limit˘a Central˘a . . 128
8.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limit˘a Central˘a129
8.5. Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.1. Testul 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.2. Testul 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.5.3. Testul 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
vi CUPRINS
8.5.4. Testul 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.5.5. Testul 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.5.6. Testul 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.6. Cˆateva distribut ¸ii importante . . . . . . . . . . . . . . . . . . . . . . 134
8.6.1. Repartit ¸ii continue . . . . . . . . . . . . . . . . . . . . . . . . 134
8.6.2. Distribut ¸ii discrete . . . . . . . . . . . . . . . . . . . . . . . . 139
8.6.3. Calculul numeric al cuantilelor . . . . . . . . . . . . . . . . . 140
II CRIPTOLOGIE 143
9 SISTEMUL DE CIFRARE CEZAR 145
9.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
10 METODA SUBSTITUT¸IEI 149
10.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
10.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
10.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
11 SISTEMUL DE CIFRARE PLAYFAIR 155
11.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
11.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
11.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
12 SISTEMUL DE CIFRARE HILL 161
12.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
12.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
12.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
13 SISTEME DE CIFRARE POLIALFABETICE 167
13.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
13.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
13.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
14 METODA TRANSPOZIT¸IEI 173
14.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
14.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
14.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
CUPRINS vii
15 SISTEME MIXTE 177
15.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
15.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
15.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
16 GENERATOARE PSEUDOALEATOARE 183
16.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
16.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
16.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
17 CALCULE
ˆ
IN CORPURI GALOIS 189
17.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
17.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
17.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
18 ALGORITMUL RIJNDAEL - STANDARDUL AES 193
18.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
18.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
18.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
19 CRIPTANALIZA CIFRURILOR BLOC 203
19.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
19.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
19.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
20 LEMA CHINEZEASC
˘
A A RESTURILOR 207
20.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
20.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
20.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
21 SISTEMUL DE CIFRARE MERKLE-HELLMAN 213
21.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
21.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
21.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
22 SISTEMUL DE CIFRARE RSA 217
22.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
22.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
22.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
viii CUPRINS
23 SISTEMUL DE CIFRARE ELGAMAL 223
23.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
23.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
23.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
24 ARITMETICA PE CURBE ELIPTICE 225
24.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
24.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
24.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
25 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE 229
25.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
25.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
25.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
26 SISTEMUL DE CIFRARE MENEZES-VANSTONE 233
26.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
26.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
26.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
27 FUNCT¸II DE DISPERSIE 237
27.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
27.2. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
28 SEMN
˘
ATURA ELGAMAL 241
28.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
28.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
28.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
29 SEMN
˘
ATURA DSA/ECDSA 245
29.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
29.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
29.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
30 PROTOCOLUL DIFFIE-HELLMAN 249
30.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
30.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
30.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
CUPRINS ix
31 PROTOCOLUL BLOM 253
31.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
31.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
31.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
32 PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR 257
32.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
32.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
32.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
33 SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT261
33.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
33.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
34 CANALE SUBLIMINALE 263
34.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
34.2. Exercit ¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
34.3. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
35 PRINCIPII CRIPTOGRAFICE 267
36 ATACURI
ˆ
IN MEDIUL DE IMPLEMENTARE 271
36.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
36.2. Exercit ¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
37 RESURSE SOFTWARE 273
37.1. CrypTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
37.2. OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
37.3. MAPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
38 APLICAT¸II PRACTICE 283
39 PROBLEME DE SINTEZ
˘
A 291
39.1. Enunt ¸uri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
39.2. R˘aspunsuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
BIBLIOGRAFIE 305
x CUPRINS
Partea I
CERCET
˘
ARI
OPERAT¸IONALE
1
Capitolul 1
PROGRAMARE LINIAR
˘
A
1.1. Folosirea eficient˘a a resurselor limitate
O problem˘a practic˘a ce apare frecvent ˆın activitatea de conducere economic˘a
este urm˘atoarea: sunt disponibile mai multe resurse (materii prime, fort ¸˘a de munc˘a,
resurse financiare) ˆın cantit˘at ¸i limitate. Cu ajutorul acestor resurse se pot desf˘a¸sura
mai multe activit˘at ¸i economice. Problema const˘a ˆın determinarea nivelurilor ac-
tivit˘at ¸ilor luate ˆın considerare care s˘a se ˆıncadreze ˆın limit˘arile precizate ale resur-
selor ¸si s˘a asigure satisfacerea optim˘a a unui anumit criteriu.
S˘a not˘am cu i, 1 ≤ i ≤ m, tipul resursei ¸si cu b
i
cantitatea de resurs˘a de tipul
i care este disponibil˘a. Vom nota prin j, 1 ≤ j ≤ n, tipul activit˘at ¸ii (procesului
de subproduct ¸ie) ¸si prin x
j
nivelul (necunoscut) la care urmeaz˘a s˘a se desf˘a¸soare
aceast˘a activitate.
ˆ
In sfˆar¸sit, vom nota prin a
ij
cantitatea de resurs˘a de tipul i,
1 ≤ i ≤ m, necesar˘a pentru producerea unei unit˘at ¸i din produsul realizat ˆın procesul
de product ¸ie de tipul j, 1 ≤ j ≤ n, (ˆın general, activitatea de tipul j). Presupunem
aici c˘a a
ij
depinde numai de tipul resursei ¸si de tipul procesului de product ¸ie ¸si nu
de nivelul la care urmeaz˘a s˘a se desf˘a¸soare aceast˘a activitate.
Cu notat ¸iile introduse, rezult˘a c˘a putem exprima cantitatea total˘a de resurs˘a de
tipul i care va fi efectiv utilizat˘a ˆın procesele de product ¸ie:
a
i1
x
1
+a
i2
x
2
+. . . +a
in
x
n
.
Cum nu putem consuma resursa de tipul i mai mult decˆat cantitatea disponibil˘a
b
i
, rezult˘a c˘a trebuie satisf˘acute condit ¸iile:
n

j=1
a
ij
x
j
≤ b
i
, 1 ≤ i ≤ m. (1.1)
3
4 PROGRAMARE LINIAR
˘
A
Deoarece x
j
reprezint˘a nivelul la care se desf˘a¸soar˘a activitatea de tipul j, rezult˘a
c˘a trebuie s˘a fie de asemenea satisf˘acute condit ¸iile:
x
j
≥ 0, 1 ≤ j ≤ n. (1.2)
Inegalit˘at ¸ile 1.1 sunt numite restrict ¸iile problemei, iar 1.2 sunt numite condit ¸iile
de nenegativitate ale problemei. Sistemul de inegalit˘at ¸i liniare poate avea o infinitate
de solut ¸ii, o solut ¸ie unic˘a sau nici o solut ¸ie (sistem incompatibil). Cazul cel mai
frecvent pentru problemele practice corect puse este cazul ˆın care sistemul 1.1, 1.2 are
o infinitate de solut ¸ii. Prin urmare este posibil s˘a organiz˘am procesele de product ¸ie
pentru fabricarea sortimentelor de tipul j, 1 ≤ j ≤ n, ˆıntr-o infinitate de moduri,
respectˆand condit ¸iile 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 product ¸ie, product ¸ia fizic˘a, con-
sumurile de materii prime ¸si materiale, consumurile de energie etc. Vom presupune
ˆın cele ce urmeaz˘a c˘a putem formula un singur criteriu pe baza c˘aruia adopt˘am
decizia. Mai mult, vom presupune c˘a acest criteriu este reprezentat din punct de
vedere matematic de o funct ¸ie liniar˘a. Un exemplu de astfel de criteriu se obt ¸ine ˆın
modul urm˘ator. Dac˘a not˘am prin c
j
beneficiul unitar adus de activitatea de tipul
j, 1 ≤ j ≤ n, atunci este clar c˘a beneficiul total este:
n

j=1
c
j
x
j
. (1.3)
Problema care se pune este de a afla solut ¸iile sistemului de inegalit˘at ¸i liniare
1.1, 1.2 care asigur˘a obt ¸inerea valorii maxime pentru beneficiul total 1.3. Cu alte
cuvinte, din punct de vedere matematic se cere rezolvarea problemei:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
sup
n

j=1
c
j
x
j
n

j=1
a
ij
x
j
≤ b
i
, 1 ≤ i ≤ m,
x
j
≥ 0, 1 ≤ j ≤ n,
care este numit˘a problema de programare liniar˘a sau program liniar. Funct ¸ia liniar˘a
ce se dore¸ste maximizat˘a se nume¸ste funct ¸ie obiectiv sau funct ¸ia criteriu sau, ˆınc˘a,
funct ¸ia de eficient ¸˘a a problemei.
Problema ment ¸ionat˘a poate fi rezolvat˘a cu ajutorul algoritmului simplex sau
simplex dual. Acesta este prezentat pe largˆın literatura de specialitate (Zid˘aroiu). O
serie de produse soft ca MATLAB sau MAPLE au rutine specializate de rezolvare
a problemelor de optimizare cu ajutorul acestor metode. Din acest motiv, omitem
prezentarea rezolv˘arii complete a problemelor prin aceste metode.
FORME ALE PROBLEMELOR DE PROGRAMARE LINIAR
˘
A 5
1.2. Forme ale problemelor de programare liniar˘a
Forma standard a unei probleme de programare liniar˘a este:
_
_
_
min(max)c

x
Ax = b
x ≥ 0
Remarc˘am c˘a o problem˘a de maxim se poate transforma ˆıntr-o problem˘a de minim
prin folosirea formulei max(−f) = −min(f).
Forma canonic˘a a unei probleme de programare liniar˘a este:
_
_
_
minc

x
Ax ≥ b
x ≥ 0
sau
_
_
_
max c

x
Ax ≤ b
x ≥ 0
Sintaxa MAPLE de scriere a formei canonice pentru problema de maxim este:
> standardize(mult ¸ime de restrict ¸ii);
sau
> convert(mult ¸ime de restrict ¸ii, stdle);
O restrict ¸ie a unei probleme de programare liniar˘a este numit˘a concordant˘a dac˘a
este o inegalitate de tipul ≥ pentru problema de minim ¸si o inegalitate de tipul ≤
pentru problema de maxim.
Forma mixt˘a a unei probleme de programare liniar˘a cont ¸ine restrict ¸ii ¸si sub form˘a
de ecuat ¸ii.
Deoarece prin operat ¸ii matematice orice problem˘a de programare liniar˘a se poate
aduce ˆın forma canonic˘a a problemei, pentru cazul de minim vom lucra numai cu
astfel de probleme, adic˘a cu probleme ˆın forma canonic˘a.
Definit ¸ia 1.2.1. Fie problema de programare liniar˘a ˆın forma standard atunci
mult ¸imea programelor este definit˘a ca:
P = {x ∈ R
n
|Ax = b, x ≥ 0}.
Un punct de minim global al funct ¸iei obiectiv z = c

x pe mult ¸imea programelor
P este numit solut ¸ie optim˘a, iar mult ¸imea programelor optime ale problemei va fi
notat˘a cu:
P

= {x ∈ P| min
x∈P
c

x = c

x}.
6 PROGRAMARE LINIAR
˘
A
Definim solut ¸ia de baz˘a a sistemului Ax = b ca o solut ¸ie x ∈ R
n
c˘areia compo-
nentelor sale nenule ˆıi corespund coloane liniar independente. Dac˘a B este o baz˘a
format˘a cu coloanele a
j
1
, . . . , a
j
m
ale matricei A atunci sistemul de ecuat ¸ii Ax = b
se poate scrie ˆın forma explicit˘a:
x
B
= B
−1
b −B
−1
Rx
R
ˆın care Reste matricea obt ¸inut˘a din Aprin eliminarea coloanelor j
1
, . . . , j
m
. Notˆand:
B
−1
b =x
B
, B
−1
a
j
= y
B
j
, 1 ≤ j ≤ n,
rezult˘a c˘a:
x
B
=x
B

j∈R
y
B
j
x
j
sau
x
B
i
=x
B
i

j∈R
y
B
ij
x
j
, i ∈ B
unde B = {j
1
, . . . , j
m
} ¸si R = {1, . . . , n}− B. Solut ¸ia de baz˘a corespunz˘atoare bazei
B este x
B
=x
B
¸si x
R
= 0. Este clar c˘a aceast˘a solut ¸ie de baz˘a este un program dac˘a
este ˆındeplinit˘a condit ¸ia:
B
−1
b ≥ 0.
O baz˘a B care verific˘a inegalitatea de mai sus se nume¸ste baz˘a primal admisibil˘a.
ˆ
In problemele practice o astfel de baz˘a se determin˘a prin metoda bazei artificiale.
De foarte multe ori ˆıns˘a, aceasta este disponibil˘a direct, baza primal admisibil˘a fiind
matricea unitate.
Avem urm˘atoarea teorem˘a numit˘a teorema fundamental˘a a program˘arii liniare.
Teorema 1.2.1. i) Dac˘a problema de programare liniar˘a:
_
_
_
min(max)c

x
Ax = b
x ≥ 0
are un program optim, atunci ea are un program de baz˘a.
ii) Dac˘a problema de mai sus are un program optim, atunci ea are un program
optim de baz˘a.
Algoritmul fundamental pentru rezolvarea problemelor de programare liniar˘a
ment ¸ionate se nume¸ste algoritmul simplex primal ¸si a fost elaborat de George Dantzig
ˆın anul 1951. Algoritmul este descris ˆın orice carte fundamental˘a de programare
liniar˘a ¸si este implementat ˆın majoritatea softurilor matematice de prelucrare de
date.
ALGORITMUL SIMPLEX (DANTZIG) 7
1.3. Algoritmul simplex (Dantzig)
Pentru rezolvarea problemelor de programare liniar˘a s-a impus algoritmul simplex
datorat lui G.B. Dantzig (1951). Aceast˘a metod˘a ne permite s˘a explor˘am ˆın mod
sistematic mult ¸imea programelor de baz˘a a unei probleme de programare liniar˘a
ˆın forma standard prin trecerea de la un program de baz˘a la un program de baz˘a
vecin, care este cel put ¸in la fel de bun ca cel precedent. Metoda furnizeaz˘a, de
asemenea, criterii pentru punerea ˆın evident ¸˘a a situat ¸iei cˆand problema are optim
infinit precum ¸si a cazului ˆın care mult ¸imea programelor este vid˘a.
PASUL 0. Se pune problema de optimizat ˆın forma standard:
_
_
_
inf c
T
x
Ax = b,
x ≥ 0.
(Dac˘a problema are restrict ¸ii de forma unor inegalit˘at ¸i, atunci se transform˘a mai
ˆıntˆai toate inegalit˘at ¸ile ˆın inegalit˘at ¸i de tipul ≥; sc˘azˆandu-se variabilele artificiale y,
problema de maxim se va transforma ˆın problem˘a de minim etc.). A este o matrice
cu m linii ¸si n coloane pentru care avem rang(A) = m < n. Vom nota cu z funct ¸ia
obiectiv adic˘a z = c
T
x.
PASUL 1. Se determin˘a o baz˘a B primal admisibil˘a (fie este disponibil˘a di-
rect fie se determin˘a cu ajutorul bazei artificiale prin metoda celor dou˘a faze) ¸si se
calculeaz˘a:
_
¸
¸
¸
_
¸
¸
¸
_
x
B
= B
−1
b,
z
B
= c
T
B
x
B
,
y
B
j
= B
−1
a
j
, 1 ≤ j ≤ n,
z
B
j
−c
j
, 1 ≤ j ≤ n.
Aceste valori se trec ˆın tabelul simplex (tabelul 1.1) dup˘a care trecem la pasul
urm˘ator.
Vom nota cu B mult ¸imea indicilor j care determin˘a matricea B ¸si prin R =
{1, . . . , n} −B. Tabelul simplex init ¸ial are forma:
TABELUL 1.1
c
1
. . . c
j
. . . c
n
V.B. V.V.B. x
1
. . . x
j
. . . x
n
c
B
x
B
x
B
y
B
1
. . . y
B
j
. . . y
B
n
z z
B
z
B
1
−c
1
. . . z
B
j
−c
j
. . . z
B
n
−c
n
8 PROGRAMARE LINIAR
˘
A
PASUL 2. Dac˘a z
B
j
−c
j
≤ 0 ∀j ∈ R, ne oprim (STOP): x
B
este program optim.
ˆ
In caz contrar se determin˘a mult ¸imea (nevid˘a):
R
+
= {j ∈ R|z
B
j
−c
j
> 0}
¸si se trece la pasul urm˘ator.
PASUL 3. Dac˘a exist˘a j ∈ R
+
pentru care y
B
j
≤ 0 ne oprim (STOP): problema
are optim infinit.
ˆ
In caz contrar, determin˘am k ∈ R
+
cu criteriul de intrare ˆın baz˘a:
max
j
(z
B
j
−c
j
) = z
B
k
−c
k
¸si r ∈ B
+
= {i ∈ B|y
B
ik
> 0} cu criteriul de ie¸sire din baz˘ a:
min
i∈B
+
(
x
B
i
y
B
ik
) =
x
B
r
y
B
rk
Elementul y
B
rk
se nume¸ste pivot. Se trece la pasul urm˘ator.
PASUL 4. Se consider˘a baza

B
obt ¸inut˘a din B prin ˆınlocuirea coloanei a
r
cu
coloana a
k
, ¸si se calculeaz˘a valorile (prin formula de schimbare a bazei adic˘a regula de
transformare a tabelului simplex) x

B
, z

B
, y

B
j
, z

B
j
−c
j
¸si se trece la Pasul 2 ˆınlocuind
peste tot baza B cu baza

B
.
Calculele pot 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 except ¸ia pivotului care
devine 1;
iii) celelalte elemente se transform˘a dup˘a regula dreptunghiului: dac˘a ne ima-
gin˘am dreptunghiul a c˘arui diagonal˘a este determinat˘a de elementul y
B
ij
care trebuie
transformat ¸si pivotul y
B
rk
, atunci noua valoare

y
B
ij
se obt ¸ine ˆımp˘art ¸ind la pivot
diferent ¸a dintre produsul elementelor y
B
ij
y
B
rk
situate pe diagonala considerat˘a mai
sus ¸si produsul y
B
rj
y
B
ik
situat pe cealalt˘a diagonal˘a a dreptunghiului.
Observat ¸ii. i) Dac˘a la sfˆar¸situl algoritmului z
B
j
− c
j
< 0 ∀j ∈ R atunci solut ¸ia
problemei este unic˘a.
ii) Este posibil ca ˆın cadrul algoritmului simplex s˘a apar˘a fenomenul de ciclare
(prin trecerea de la o baz˘a la alta s˘a ajung ˆıntr-o baz˘a deja procesat˘a). Exist˘a mai
multe tehnici de evitare a acestui fenomen asupra c˘arora nu ne vom opri ˆıns˘a.
iii) Se poate da ¸si o interpretare geometric˘a a solut ¸iilor unei probleme de progra-
mare liniar˘a ˆın cazul bidimensional. Domeniul de admisibilitate poate fi:
DUALA UNEI PROBLEME DE PROGRAMARE LINIAR
˘
A 9
-un poligon convex, iar cel put ¸in unul dintre vˆarfurile sale este solut ¸ie a problemei
de optimizare. Se poate ˆıntˆampla ca solut ¸ia s˘a fie o latur˘a a poligonului convex ce
determin˘a domeniul de definit ¸ie, ˆın acest caz avem mai multe solut ¸ii;
-un domeniu nem˘arginit, caz ˆın care problema are optim infinit;
-mult ¸imea vid˘a, caz ˆın care problema de optimizare nu are solut ¸ie.
1.4. Duala unei probleme de programare liniar˘a
Avˆand o problem˘a de programare liniar˘a, problema construit˘a dup˘a urm˘atoarele
reguli se nume¸ste problema dual˘a:
a) termenii liberi din problema primal˘a devin coeficient ¸i ai funct ¸iei obiectiv ˆın
problema dual˘a;
b) coeficient ¸ii funct ¸iei obiectiv din problema primal˘a devin termeni liberi ˆın prob-
lema dual˘a;
c) o problem˘a de maximizare (minimizare) devine o problem˘a de minimizare
(maximizare);
d) matricea coeficient ¸ilor sistemului de restrict ¸ii din problema dual˘a este trans-
pusa matricei coeficient ¸ilor sistemului de restrict ¸ii primale;
e) variabile duale (primale) asociate unor restrict ¸ii primale (duale) concordante
sunt supuse condit ¸iilor de nenegativitate;
f) variabile primale (duale) asociate unor restrict ¸ii duale (primale) care sunt
restrict ¸ii neconcordante sunt supuse condit ¸iei de nepozitivitate;
g) variabile duale (primale) asociate unor restrict ¸ii primale (duale) care sunt
ecuat ¸ii nu sunt supuse nici unei condit ¸ii privind semnul.
Remarc˘am c˘a duala unei probleme ˆın forma canonic˘a este tot ˆın forma canonic˘a.
Enunt ¸˘am ˆın continuare teorema fundamental˘a a dualit˘at ¸ii:
Teorema 1.4.1. Fiind dat cuplul de probleme duale:
_
_
_
minc

x
Ax ≥ b
x ≥ 0
¸si
_
_
_
max b

y
A

y ≤ c
y ≥ 0
una ¸si numai una din afirmat ¸iile urm˘atoare este adev˘arat˘a:
a) ambele probleme au programe.
ˆ
In acest caz, ambele probleme au programe
optime ¸si valorile optime ale funct ¸iilor obiectiv coincid;
10 PROGRAMARE LINIAR
˘
A
b) una din probleme are programe, iar cealalt˘ a nu are.
ˆ
In acest caz, problema
care nu are programe are optim infinit;
c) nici una din probleme nu are programe.
Exist˘a un algoritm numit algoritmul simplex dual care rezolv˘a problema primal˘a
prin intermediul problemei duale. Acela¸si lucru putem s˘a-l afirm˘am ¸si despre algo-
ritmul simplex primal care rezolv˘a problema primal˘a, dup˘a care pune ˆın evident ¸˘a
solut ¸ia problemei duale. Programul MAPLE are o procedur˘a de construct ¸ie a dualei.
Sintaxa acesteia este:
> dual(funct ¸ia liniar˘a, mult ¸ime de restrict ¸ii, nume variabila dual˘a);
1.5. Problema de transport
S˘a presupunem c˘a exist˘a m centre de aprovizionare (depozite) ¸si n centre de
consum (beneficiari). Un produs omogen este depozitat ˆın cantit˘at ¸ile a
i
, 1 ≤ i ≤ m,
ˆın centrele de aprovizionare ¸si este cerut ˆın cantit˘at ¸ile b
j
, 1 ≤ j ≤ n, la beneficiari.
Vom presupune c˘a sunt ˆındeplinite condit ¸iile:
_
a
i
≥ 0, 1 ≤ i ≤ m, b
j
≥ 0, 1 ≤ j ≤ n,
a
1
+. . . +a
m
= b
1
+. . . +b
n
.
(1.4)
Cu alte cuvinte, presupunem c˘a disponibilitat ¸ile ¸si cererile sunt nenegative, iar
disponibilitatea egaleaz˘a cererea total˘a. O astfel de problem˘a de transport se nume¸s-
te problem˘ a de transport echilibrat˘a.
Problema const˘a ˆın organizarea transportului de la depozite la beneficiari astfel
ˆıncˆat s˘a se obt ¸in˘a cheltuieli minime de transport.
S˘a not˘am cu x
ij
cantitatea (necunoscut˘a) care urmeaz˘a s˘a fie transportat˘a de la
depozitul i la beneficiarul j. Cantitatea ce se transport˘a de la depozitul i la tot ¸i
beneficiarii trebuie s˘a egaleze disponibilitatea de la depozitul respectiv, adic˘a:
n

j=1
x
ij
= a
i
, 1 ≤ i ≤ m. (1.5)
Analog, cererea total˘a la beneficiarul j trebuie s˘a fie egal˘a cu cantitatea care se
transport˘a de la toate depozitele la acest beneficiar, adic˘a:
m

i=1
x
ij
= b
j
, 1 ≤ j ≤ n. (1.6)
Evident, cantit˘at ¸ile transportate sunt nenegative, adic˘a:
x
ij
≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n. (1.7)
APLICAT¸ II 11
Sistemul de inegalit˘at ¸i liniare 1.5-1.7 are ˆın condit ¸iile 1.4 o infinitate de solut ¸ii.
Ca ¸si ˆın cazul precedent, pentru adoptarea unui plan de transport vom introduce
un nou criteriu economic. S˘a not˘am pentru aceasta prin c
ij
costul transportului
unei unit˘at ¸i din produsul considerat de la depozitul i la beneficiarul j; evident, ¸si ˆın
acest caz presupunem c˘a acest cost unitar de transport nu depinde de cantitatea ce
urmeaz˘a s˘a fie transportat˘a din i ˆın j. Este clar c˘a cheltuielile de transport sunt:
m

i=1
n

j=1
c
ij
x
ij
.
Problema const˘a ˆın determinarea solut ¸iilor sistemului de ecuat ¸ii ¸si inegalit˘at ¸i
1.5-1.7 pentru care costul total de transport este minim, adic˘a:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

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

i=1
x
ij
= b
j
, 1 ≤ j ≤ n,
x
ij
≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n.
1.6. Aplicat ¸ii
Exercit ¸iul 1.6.1. S˘a se scrie duala problemei de programare liniar˘a:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
min(2x
1
+ 3x
2
+x
3
),
x
1
+x
2
+ 3x
4
≥ 3,
2x
2
+ 5x
3
+ 4x
4
= 5,
x
1
+x
3
≤ −2,
x
1
, x
2
≥ 0, x
3
arbitrar, x
4
≤ 0.
G˘asit ¸i solut ¸ia optim˘a a problemei primale.
R˘aspuns: Respectˆand regulile de formare a problemei duale obt ¸inem:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
max(3u
1
+ 5u
2
−2u
3
),
u
1
+u
3
≤ 2,
u
1
+ 2u
2
≤ 3,
5u
2
+u
3
= 1,
3u
1
+ 4u
2
≥ 0,
u
1
≥ 0, u
2
arbitrar, u
3
≤ 0.
12 PROGRAMARE LINIAR
˘
A
Solut ¸ia problemei primale se poate g˘asi cu metoda simplex primal sau dual. Sin-
taxa MAPLE pentru rezolvarea acestei probleme este:
> with(simplex) :
> obiectiv := 2 ∗ x
1
+ 3 ∗ x
2
+x
3
;
> restrictii := {x
1
+x
2
+3∗x
4
>= 3, 2∗x
2
+5∗x
3
+4∗x
4
= 5, x
1
+x
3
<= −2};
> minimize(obiectiv, restrictii union x
1
>= 0, x
2
>= 0, x
4
<= 0);
Solut ¸ia furnizat˘a de procedur˘a fiind:
x
1
= 0, x
2
= 15/2, x
3
= −2, x
4
= 0,
valoarea funct ¸iei obiectiv fiind 41/2.
Exercit ¸iul 1.6.2. Rezolvat ¸i urm˘atoarea problem˘a de programare liniar˘a pre-
cum ¸si duala acesteia:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
min(2αx
1
+ 3αx
2
+αx
3
),
x
1
+x
2
+ 3x
4
≥ 3,
2x
2
+ 5x
3
+ 4x
4
= 5,
x
1
+x
3
≤ −2,
x
1
, x
2
≥ 0, x
3
arbitrar, x
4
≤ 0.
unde α este un parametru real.
Exercit ¸iul 1.6.3. Rezolvat ¸i urm˘atoarea problem˘a de programare liniar˘a pre-
cum ¸si duala acesteia:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
min(2x
1
+ 3x
2
+x
3
),
x
1
+x
2
+ 3x
4
≥ 3 +α,
2x
2
+ 5x
3
+ 4x
4
= 5 −α,
x
1
+x
3
≤ −2 + 2α,
x
1
, x
2
≥ 0, x
3
arbitrar, x
4
≤ 0.
α este un parametru real.
R˘aspuns. Execit ¸iile 1.6.2-1.6.3 se pot rezolva fie prin aplicarea metodei simplex
fie prin metoda postoptimiz˘arii considerˆand ˆın tabelul simplex, obt ¸inut ˆın problema
1.6.1., α = 0.
Exercit ¸iul 1.6.4. S˘a se rezolve cu algoritmul simplex problema de programare
liniar˘a:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
max(2x
1
+x
2
),
x
1
−x
2
≤ 4,
3x
1
−x
2
≤ 18,
−x
1
+ 2x
2
≤ 6,
x
1
, x
2
≥ 0.
APLICAT¸ II 13
Exercit ¸iul 1.6.5. S˘a se minimizeze expresia 2x
1
+3x
2
cu sistemul de restrict ¸ii:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
x
1
−x
2
+x
3
= 1,
x
1
+x
2
−x
4
= 1,
x
1
−2x
2
+x
5
= 1,
2x
1
+x
3
−x
4
= 2,
x
i
≥ 0, i = 1, . . . , 5.
R˘aspuns.
ˆ
In urma aplic˘arii algoritmului simplex primal obt ¸inem solut ¸ia x

1
=
1, x

2
= 0, x

3
= 0, x

4
= 0, x

5
= 0, iar valoarea minim˘a a funct ¸iei obiectiv z

= 2.
Exercit ¸iul 1.6.6. Rezolvat ¸i problema urm˘atoare:
_
¸
¸
_
¸
¸
_
min(x
1
+ 6x
2
),
2x
1
+x
2
≥ 3,
x
1
+ 3x
2
≥ 4,
x
1
, x
2
≥ 0.
R˘aspuns. Vom rezolva problema grafic. Se va reprezenta ˆıntr-un sistem de axe
de coordonate domeniul de admisibilitate. Pe acela¸si grafic reprezent˘am ¸si ecuat ¸ia
x
1
+ 6x
2
= 0. Obt ¸inem figura 1.1.
Figura 1.1: Domeniul de admisibilitate ¸si funct ¸ia obiectiv.
Vom duce drepte paralele cu x
2
= −
1
6
x
1
pˆan˘a se intersecteaz˘a cu domeniul
14 PROGRAMARE LINIAR
˘
A
de admisibilitate. Prima dreapt˘a care realizeaz˘a aceast˘a intersect ¸ie ne furnizeaz˘a
minimul funct ¸iei obiectiv z
min
= 4.
Solut ¸ia optim˘a este x

1
= 4, x

2
= 0.
Exercit ¸iul 1.6.7. G˘asit ¸i minimul funct ¸iei 2x
1
+ 3x
2
+x
3
cu restrict ¸iile:
_
¸
¸
_
¸
¸
_
x
1
+x
2
+ 3x
4
≥ 3,
2x
2
+ 5x
3
+ 4x
4
= 5,
x
1
+x
3
≤ −2,
x
1
, x
2
, x
3
, x
4
∈ {0, 1}.
Exercit ¸iul 1.6.8. S˘a se rezolve problema de programare liniar˘a ˆın forma stan-
dard:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
min(2x
1
+ 3x
2
),
x
1
−x
2
+x
3
= 1,
x
1
+x
2
−x
4
= 1,
x
1
−2x
2
+x
5
= 1,
2x
1
+x
3
−x
4
= 2,
x
i
≥ 0, 1 ≤ i ≤ 5.
R˘aspuns. Pentru rezolvarea problemei prin metoda simplex primal vom rezolva
mai ˆıntˆai problema:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
min(x
6
+x
7
+x
8
),
x
1
−x
2
+x
3
+x
6
= 1,
x
1
+x
2
−x
4
+x
7
= 1,
x
1
−2x
2
+x
5
= 1,
2x
1
+x
3
−x
4
+x
8
= 2,
x
i
≥ 0, 1 ≤ i ≤ 8.
(s-au introdus variabilele ecart x
6
, x
7
, x
8
ˆın restrict ¸iile problemei init ¸iale, cu except ¸ia
celei de a treia restrict ¸ie, unde variabia x
5
este asociat˘a unui vector unitar al ma-
tricei coeficient ¸ilor). Baza primal admisibil˘a este format˘a din coloanele matricei A
corespunz˘atoare variabilelor x
6
, x
7
, x
5
, x
8
. Tabelul simplex asociat 1.2 este:
TABELUL 1.2
V.B. V.V.B. x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
6
1 1 −1 1 0 0 1 0 0
x
7
1 1 1 0 −1 0 0 1 0
x
5
1 1 −2 0 0 1 0 0 0
x
8
2 2 0 1 −1 0 0 0 1
4 4 0 2 −2 0 0 0 0
APLICAT¸ II 15
Vectorul care intr˘a ˆın baz˘a este evident a
1
conform criteriului de intrare ˆın
baz˘a. Dup˘a cum ne indic˘a criteriul de ie¸sire din baz˘a, oricare dintre variabilele
de baz˘a poate p˘ar˘asi baza: pentru a face o alegere, vom elimina din baz˘a vectorul
coespunz˘ator variabilei x
6
, adic˘a a
6
. Obt ¸inem deci tabelul simplex 1.3:
TABELUL 1.3
V.B. V.V.B. x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
1
1 1 −1 1 0 0 1 0 0
x
7
0 0 2 −1 −1 0 −1 1 0
x
5
0 0 −1 −1 0 1 −1 0 0
x
8
0 0 2 −1 −1 0 −2 0 1
0 0 4 −2 −2 0 −4 0 0
Se observ˘a c˘a tabelul simplex 1.3 obt ¸inut ne arat˘a c˘a valoarea funct ¸iei obiectiv
este nul˘a. Toate variabilele artificiale sunt nule, dar x
7
¸si x
8
sunt ˆınc˘a variabile de
baz˘a. Se vede u¸sor c˘a variabila x
7
poate fi eliminat˘a din baz˘a ¸si ˆınlocuit˘a cu x
2
,
deoarece pivotul y
B
72
= 2 este nenul. Dup˘a calcule se obt ¸ine tabelul simplex 1.4:
TABELUL 1.4
V.B. V.V.B. x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
1
1 1 0 1/2 −1/2 0 1/2 1/2 0
x
2
0 0 1 −1/2 −1/2 0 −1/2 1/2 0
x
5
0 0 0 −3/2 −1/2 1 −1/2 1/2 0
x
8
0 0 0 0 0 0 −1 −1 1
0 0 0 0 0 0 −1 −1 0
Variabila artificial˘a x
8
nu mai poate fi eliminat˘a dintre variabilele de baz˘a, deoa-
rece tot ¸i coeficient ¸ii y
8j
, 1 ≤ j ≤ 5, sunt egali cu zero. Acest fapt ne arat˘a c˘a
ecuat ¸ia a patra din problema init ¸ial˘a este o consecint ¸˘a a celorlalte patru ecuat ¸ii
(ecuat ¸ia a patra este suma primelor dou˘a ecuat ¸ii, situat ¸ie ce putea fi observat˘a de
la ˆınceput).
ˆ
In acest caz, ecuat ¸ia a patra poate fi neglijat˘a ¸si deci linia a patra
a tabelului simplex poate fi eliminat˘a; partea r˘amas˘a a tabelului simplex nu mai
cont ¸ine variabile artificiale de baz˘a ¸si, ca urmare, prima faz˘a este terminat˘a.
Vom trece acum la faza a doua a metodei, adic˘a la rezolvarea problemei init ¸iale,
folosind drept baz˘a init ¸ial˘a ultima baz˘a obt ¸inut˘a din tabelul 1.4, dup˘a eliminarea
ultimei linii.
16 PROGRAMARE LINIAR
˘
A
Tabelul simplex corespunz˘ator este tabelul 1.5:
TABELUL 1.5
V.B. V.V.B. x
1
x
2
x
3
x
4
x
5
x
1
1 1 0 1/2 −1/2 0
x
2
0 0 1 −1/2 −1/2 0
x
5
0 0 0 −3/2 −1/2 1
z 2 0 0 −1/2 −5/2 0
Deoarece z
j
− c
j
≤ 0 pentru tot ¸i j, 1 ≤ j ≤ 5, rezult˘a c˘a am obt ¸inut programul
optim de baz˘a (degenerat): x

1
= 1, x

2
= 0, x

3
= 0, x

4
= 0, x

5
= 0, iar valoarea
optim˘a a funct ¸iei obiectiv este z

= 2.
Capitolul 2
PROGRAMARE DINAMIC
˘
A
2.1. Forma unei probleme de optimizare secvent ¸ial˘a
Programarea dinamic˘a este o metod˘a de rezolvare a unei clase de probleme,
al c˘aror model matematic prezint˘a caracteristicile unui sistem secvent ¸ial.
ˆ
Intr-o
astfel de problem˘a, la fiecare faz˘a t ∈ T, cu T ⊂ R, se alege o solut ¸ie (decizie,
strategie, politic˘a) x
t
dintr-o mult ¸ime de solut ¸ii admisibile X
t
, X
t
⊆ M
n
t
, unde
M ⊆ R, iar n
t
∈ N

, putˆandu-se de fiecare dat˘a m˘asura eficient ¸a (sau utilitatea)
u
t
a solut ¸iei alese. Problema de optimizare const˘a ˆın determinarea solut ¸iei globale
x = (x
t
)
t∈T
care optimizeaz˘a o funct ¸ie de eficient ¸˘a global˘a f care este definit˘a cu
ajutorul funct ¸iilor de eficient ¸˘ a part ¸ial˘a u
t
, t ∈ T. Evolut ¸ia sistemului este descris˘a
¸si de familia parametrilor de stare (s
t
)
t∈T
a c˘aror lege de variat ¸ie este cunoscut˘a
¸si dependent˘a de deciziile alese (dac˘a legea este determinist˘a avem o problem˘a de
programare dinamic˘a determinist˘a, iar dac˘a legea este probabilist˘a avem o problem˘a
de programare stochastic˘a). S˘a not˘am cu S
t
mult ¸imea st˘arilor la momentul t.
Definit ¸ia 2.1.1. (Caracteristicile unui sistem secvent ¸ial.) O funct ¸ie s : T →S
t
cu s(t) = s
t
∀t ∈ T, s
t
∈ S
t
se nume¸ste traiectoria, corespunz˘atoare deciziei globale
x = (x
t
)
t∈T
, a sistemului secvent ¸ial. Aceasta descrie starea sistemului de-a lungul
ˆıntregii perioade de timp T, ˆın condit ¸iile alegerii deciziei x.
Avem ˆın general:
_
_
_
x
t
= x
t
(s
t
)
u
t
i
: S
t
i−1
×X
t
i
→R, u
t
i
= u
t
i
(s
t
i
, x
t
i
)
τ
t
i
: S
t
i−1
×X
t
i
→S
t
i
, τ
t
i
= τ
t
i
(s
t
i−1
, x
t
i
).
Traiectoria s depinde de starea init ¸ial˘a s
t
0
= s
0
∈ S
t
0
, t
0
fiind momentul init ¸ial.
17
18 PROGRAMARE DINAMIC
˘
A
Definit ¸ia 2.1.2. Se nume¸ste traiectorie optim˘a traiectoria s

corespunz˘atoare
unei decizii optime x

care optimizeaz˘a funct ¸ia obiectiv.
Tehnica program˘arii dinamice const˘a ˆın determinarea solut ¸iilor optime globale ¸si
a valorii optime a funct ¸iei obiectiv, prin rezolvarea secvent ¸ial˘a a unor probleme de
optimizare asociate problemei init ¸iale, dar mult mai simple decˆat aceasta deoarece
optimul se calculeaz˘a dup˘a o singur˘a variabil˘a. Bellman a formulat ˆın 1957 prin-
cipiul optimalit˘at ¸ii: o condit ¸ie necesar˘a ca o traiectorie s

s˘a fie optim˘a este ca
∀t
1
, t
2
∈ T, t
1
< t
2
, s

|
[t
1
,t
2
]
s˘a fie traiectorie optim˘a a sistemului restrict ¸ionat
la intervalul [t
1
, t
2
], cˆand s
t
1
= s

(t
1
) adic˘a orice substrategie a unei strategii optime
este ea ˆıns˘a¸si optim˘a.
Pentru a fixa ideile, ˆın cele ce urmeaz˘a, vom presupune c˘a avem de-a face cu o
problem˘a de minimizare, toate considerat ¸iile fiind valabile f˘ar˘a nici un fel de restrict ¸ii
¸si pentru problema de maxim. Forma general˘a a unei probleme de optimizare (mini-
mizare) ce urmeaz˘a a fi rezolvat˘a prin aceast˘a tehnic˘a este urm˘atoarea:
_
_
_
min{f(u
1
(s
0
, x
1
), . . . , u
n
(s
n−1
, x
n
))|x
1
∈ X
1
(s
0
), . . . , x
n
∈ X
n
(s
n−1
)}
s
i
= τ
i
(s
i−1
, x
i
), i = 1, n
s
i
∈ S
i
, i = 1, n.
Problema de optimizare astfel definit˘a se nume¸ste efectiv decompozabil˘ a, adic˘a
vectorul de stare s
i
, la ie¸sirea din faza i, nu depinde decˆat de vectorul de stare s
i−1
¸si de decizia x
i
, luat˘a ˆın faza i. Funct ¸iile u
i
sunt funct ¸iile de eficient ¸˘a la faza i cˆand
se ia decizia x
i
¸stiind c˘a vectorul de stare este s
i
.
Toate elementele descriptive ale unei probleme de optimizare sunt determinate
de o decizie aleas˘a ¸si de starea init ¸ial˘a s
0
:
s
1
= τ
1
(s
0
, x
1
) =

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

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

X1
(s
0
)
s
2
= τ
2

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

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

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

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

1
(s
0
, x
1
)) =

X2
(s
0
, x
1
)
...........................................
s
i
= τ
i

i−1
(s
0
, x
1
, x
2
, . . . , x
i−1
), x
i
) =

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

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

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

τ
i−1
(s
0
, x
1
, x
2
, . . . , x
i−1
))
=

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

u
1
(s
0
, x
1
),

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

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

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

(s
0
) = (x

1
(s
0
), . . . , x

n
(s
0
)) admisibil˘a se
spune c˘a este optim˘a relativ la starea init ¸ial˘a s
0
pentru o problem˘a de optimizare
sub forma secvent ¸ial˘a, dac˘a:

f (s
0
, x

1
(s
0
), . . . , x

n
(s
0
)) = min{

f (s
0
, x

1
, . . . , x

n
)|x
1


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


Xi
(s
0
, x
1
, . . . , x
i−1
), i = 1, n}.
Rezolvarea unei probleme de optimizare pus˘a ˆın forma secvent ¸ial˘a const˘a ˆın
g˘asirea unei solut ¸ii x

(s
0
) = (x

1
(s
0
), . . . , x

n
(s
0
)), ˆın funct ¸ie de starea init ¸ial˘a s
0
,
astfel ˆıncˆat funct ¸ia de eficient ¸˘a global˘a f s˘a fie optim˘a.
2.2. Teorema de optim
Pentru a formula teorema de optim trebuie s˘a definim mai ˆıntˆai not ¸iunea de
funct ¸ie decompozabil˘a.
ˆ
In esent ¸˘a, acest lucru ˆınseamn˘a c˘a problema se poate de-
scompune ˆıntr-un num˘ar de faze.
Definit ¸ia 2.2.1. O funct ¸ie f : D = S × X × Y → R, unde X, Y ¸si S sunt
mult ¸imi nevide se nume¸ste decompozabil˘a dac˘a exist˘a funct ¸iile u, v : D →R, u fiind
constant˘a ˆın raport cu variabila y ∈ Y (exist˘a u : S×X →R astfel ˆıncˆat u (s, x, y) =
u(s, x), ∀(s, x, y) ∈ D) ¸si o funct ¸ie F :u (D)×v(D) →R, F(α, .) monoton cresc˘atoare
pentru fiecare α ∈u (D), astfel ˆıncˆat f(s, x, y) = F(u(s, x), v(s, x, y)) ∀(s, x, y) ∈ D.
Teorema 2.2.1. ( Teorema de optim). Dac˘a F este decompozabil˘a ¸si dac˘a exist˘a
pentru orice s ∈ S :
min
x,y
f(s, x, y); min
x
F(u(s, x), min
y
v(s, x, y)); min
x
min
y
f(s, x, y),
atunci pentru orice s ∈ S avem:
min
x,y
f(s, x, y) = min
x
F(u(s, x), min
y
v(s, x, y)).
20 PROGRAMARE DINAMIC
˘
A
2.3. Programare dinamic˘a regresiv˘a
2.3.1. Ecuat ¸iile program˘arii dinamice regresive
Pentru a pune sub forma unui algoritm problema secvent ¸ial˘a trebuie s˘a existe o
anume leg˘atur˘a de tip recursiv ˆıntre funct ¸iile de eficient ¸˘a trunchiate ale procesului
la fazele i:
f
n−i+1
(u
i
(s
i−1
, x
i
), . . . , u
n
(s
n−1
, x
n
)) =
= F
n−i+1
(u
i
(s
i−1
, x
i
), f
n−i
(u
i+1
(s
i
, x
i+1
), . . . , u
n
(s
n−1
, x
n
)),
unde prin f
n−i+1
s-a notat funct ¸ia de eficient ¸˘ a asociat˘a procesului de decizie trun-
chiat la fazele i, i + 1, . . . , n pentru i = 1, 2, . . . , n − 1, cu f
1
(u
n
) = u
n
¸si f
n
= f.
Aceast˘a proprietate se nume¸ste proprietatea de decompozabilitate a funct ¸iei obiectiv.
Ecuat ¸ia se rescrie:

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

f
n−i

i
(s
i−1
, x
i
),
x
i+1
, . . . , x
n
)),
∀i = 1, n −1, ∀s
i−1
∈ S
i−1
, ∀x
i
∈ X
i
(s
i−1
), ∀x
n
∈ X
n
(s
n−1
),
cu

f
1
= u
n
¸si

f
n
=

f= f.
Aplic˘am teorema de optim funct ¸iilor

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

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

f
n−i

i
(s
i−1
, x
i
), x
i+1
, . . .
. . . , x
n
)|x
i+1
, . . . , x
n
}).
Not˘am cu g
n−i+1
(s
i−1
) = min{

f
n−i+1
(s
i−1
, x
i
, . . . , x
n
)|x
i
, . . . , x
n
}, valoarea opti-
mului procesului de decizie trunchiat la fazele i, i + 1, . . . , n. Avem:
g
n−i
(s
i−1
) = g
n−i

i
(s
i−1
, x
i
))
¸si obt ¸inem:
g
n−i+1
(s
i−1
) = min
x
i
F
n−i+1
(u
i
(s
i−1
, x
i
), g
n−i

i
(s
i−1
, x
i
)), i = 1, n −1
cu
g
1
(s
n−1
) = min
x
i
u
n
(s
n−1
, x
n
).
Aceste ecuat ¸ii se numesc ecuat ¸iile program˘arii dinamice regresive.
PROGRAMARE DINAMIC
˘
A REGRESIV
˘
A 21
2.3.2. Rezolvarea problemelor de programare regresiv˘a
Elementele prezentate ˆın paragrafele precedente ne permit s˘a elabor˘am urm˘atorul
algoritm de rezolvare a problemelor de optimizare dinamice regresive.
PASUL 0. Problema matematic˘a se codific˘a sub forma unei probleme de pro-
gramare liniar˘a, punˆandu-se ˆın evident ¸˘a funct ¸ia obiectiv ¸si sistemul de restrict ¸ii
corespunz˘ator.
PASUL 1. Se pune problema sub forma unui proces secvent ¸ial de decizie urm˘a-
rindu-se urm˘atoarele elemente:
i) forma funct ¸ional˘a a funct ¸iilor de transfer τ
i
: S
i−1
×X
i
→S
i
:
s
i
= τ
i
(s
i−1
, x
i
), i = 1, n.
ii) spat ¸iul st˘arilor posibile: S
0
, S
1
, . . . , S
n
;
iii) spat ¸iul deciziilor: X
i
(s
i−1
);
iv) funct ¸iile part ¸iale de eficient ¸˘a u
i
(s
i−1
, x
i
), i = 1, 2, . . . , n;
v) funct ¸iile obiectiv ale proceselor trunchiate la fazele i, i+1, . . . , n :

f
i
(x
i
, . . . , x
n
)
pentru i = 1, 2, . . . , n.
PASUL 2. Se rezolv˘a problema din faza n, adic˘a se calculeaz˘a:
min{

f
1
(s
n−1
, x
n
)|x
n
∈ X
n
(s
n−1
)} = min{u
n
(s
n−1
, x
n
)|x
n
∈ X
n
(s
n−1
)} = g
1
(s
n−1
),
unde s
n−1
este parametru.
Deci pentru s
n−1
∈ S
n−1
se determin˘a x

n−1
(s
n−1
) ∈ X
n
(s
n−1
), astfel ˆıncˆat:
g
1
(s
n−1
) = u
n
(s
n−1
, x

n−1
(s
n−1
)).
Se atribuie contorului i valoarea n − 1. Acest contor are semnificat ¸ia fazei i a
procesului secvent ¸ial.
PASUL 3. Se rezolv˘a problema din faza i a c˘arei necunoscut˘a este x
i
, iar s
i−1
este parametru. Deci pentru s
i−1
∈ S
i−1
, se determin˘a valorile x

i
(s
i−1
) ∈ X
i
(s
i−1
)
pentru care:
g
n−i+1
(s
i−1
) = F
n−i+1
(u
i
(s
i−1
, x

i
(s
i−1
)), g
n−i

i
(s
i−1
, x

i
(s
i−1
))))
= min{

f
n−i+1
(s
i−1
, x
i
, . . . , x
n
)|x
i
∈ X
i
(s
i−1
)}.
actualizeaz˘a i := i + 1.
PASUL 4. Dac˘a i > 1 goto PASUL 3.
Se determin˘a, pentru s
0
∈ S
0
, valoarea x

1
(s
0
) pentru care avem:

f (s
0
, x

1
(s
0
), . . . , x

n
(s
0
)) = min{

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

2
(s
0
) = x

2

1
(s
0
, x

1
(s
0
)) etc.
PASUL 5. Se optimizeaz˘a pe mult ¸imea vectorilor init ¸iali pentru a afla s

0
:

f (s

0
, x

1
(s

0
), . . . , x

n
(s

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

0
),
atins pentru starea init ¸ial˘a s

0
.
PASUL 6. Se scrie solut ¸ia optim˘a:
x

= (x

1
, . . . , x

n
)
unde x

1
= x

1
(s

0
), x

2
= x

2

1
(s
0
, x

1
(s
0
)) etc.
2.3.3. Aplicat ¸ii
Exercit ¸iul 2.3.1. O unitate comercial˘a trebuie s˘a r˘aspund˘a unei cereri de 25
unit˘at ¸i dintr-un anumit tip de produs, cerere e¸salonat˘a pe o perioad˘a de 4 luni. La
ˆınceputul fiec˘arei luni, unitatea se poate aproviziona cu orice cantitate din produsul
respectiv, la un pret ¸ ce variaz˘a de la lun˘a la lun˘a, conform datelor din tabelul 2.1:
TABELUL 2.1
luna i 1 2 3 4
cererea 5 7 α 5
pret ¸ 12β 10β 9β 10β
S˘a se determine politica optim˘a de reaprovizionare a unit˘at ¸ii cu produsul respec-
tiv, astfel ˆıncˆat toate cererile s˘a fie satisf˘acute, ¸stiind c˘a ˆın depozitul respectiv se
g˘asesc la ˆınceputul primei luni 3 unit˘at ¸i de produs ¸si c˘a nu pot fi p˘astrate ˆın depozit
mai mult de 9 unit˘at ¸i de produs, iar la sfˆar¸situl ultimei luni toate produsele au fost
vˆandute. Parametrul β este un num˘ar real strict pozitiv.
R˘aspuns.
PASUL 0. Deoarece cererea trebuie s˘a fie de 25 unit˘at ¸i avem: 5 + 7 +α + 5 =
= 25 deci α = 8. Se codific˘a problema:
Se noteaz˘a cu x
i
num˘arul de unit˘at ¸i comandate la ˆınceputul lunii i ¸si cu s
i
stocul
existent la sfˆar¸situl lunii i. Funct ¸ia de minimizat este:
12βx
1
+ 10βx
2
+ 9βx
3
+ 10βx
4
,
putem deci presupune c˘a β = 1 avˆand grij˘a ca la final s˘a ˆınmult ¸im valoarea optim˘a
a funct ¸iei obiectiv cu β.
PROGRAMARE DINAMIC
˘
A REGRESIV
˘
A 23
Avem: 3 +x
1
+x
2
+x
3
+x
4
= 25 sau x
1
+x
2
+x
3
+x
4
= 22.
3 +x
1
≤ 9 ¸si 3 +x
1
−5 ≥ 0 deci x
1
∈ [2, 6],
3 +x
1
−5 +x
2
≤ 9 ¸si 3 +x
1
−5 +x
2
−7 ≥ 0 deci x
1
+x
2
∈ [9, 11],
3+x
1
−5+x
2
−7+x
3
≤ 9 ¸si 3+x
1
−5+x
2
−7+x
3
−8 ≥ 0 deci x
1
+x
2
+x
3
∈ [17, 18]
3 +x
1
−5 +x
2
−7 +x
3
−8 +x
4
≤ 9 (echivalent cu 5 ≤ 9 inegalitate care spune
c˘a dup˘a ce s-a efectuat comanda la ˆınceputul lunii a 4-a mai este de satisf˘acut o
cerere de 5 unit˘at ¸i de produs) ¸si 3 +x
1
−5 +x
2
−7 +x
3
−8 +x
4
−5 = 0 (ecuat ¸ie
ce constituie o verificare part ¸ial˘a).
Problema de minimizat devine:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
min(12x
1
+ 10x
2
+ 9x
3
+ 10x
4
)
2 ≤ x
1
≤ 6
9 ≤ x
1
+x
2
≤ 11
4 ≤ x
4
≤ 5
x
1
+x
2
+x
3
+x
4
= 22.
PASUL 1. Se determin˘a spat ¸iul st˘arilor S
i
, i = 0, 4:
s
0
= 3 ∈ S
0
= {3},
s
1
= s
0
+x
1
−5 = x
1
−2 ∈ S
1
= [0, 4],
s
2
= s
1
+x
2
−7 = x
1
+x
2
−9 ∈ S
2
= [0, 2],
s
3
= s
2
+x
3
−8 = x
1
+x
2
+x
3
−17 ∈ S
3
= [0, 1],
s
4
= s
3
+x
4
−5 = x
1
+x
2
+x
3
+x
4
−17 −5 = 0 ∈ S
4
= {0}.
Se determin˘a spat ¸iul deciziilor X
i
(s
i−1
), i = 1, n :
x
1
∈ X
1
(s
0
) = [5 −s
0
, 9 −s
0
] = [2, 6],
x
2
∈ X
2
(s
1
) = [7 −s
1
, 9 −s
1
],
x
3
∈ X
3
(s
2
) = [8 −s
2
, 9 −s
2
],
x
4
∈ X
4
(s
3
) = {5 −s
3
}.
Funct ¸iile de transfer: τ
i
(s
i−1
, x
i
), i = 1, n :
τ
1
(s
0
, x
1
) = s
0
+x
1
−5,
τ
2
(s
1
, x
2
) = s
1
+x
2
−7,
τ
3
(s
2
, x
3
) = s
2
+x
3
−8,
τ
4
(s
3
, x
4
) = s
3
+x
4
−5 = 0.
Funct ¸iile part ¸iale de eficient ¸˘a sunt:
u
1
(s
0
, x
1
) = 12x
1
,
u
2
(s
1
, x
2
) = 10x
2
,
u
3
(s
2
, x
3
) = 9x
3
,
u
4
(s
3
, x
4
) = 10x
4
, ¸si funct ¸iile de eficient ¸˘a ale proceselor de decizie trunchiate la
fazele {i, . . . , 4} (pentru i = 1, . . . , 4) sunt:

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

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

f
2
= 9x
3
+ 10x
4
,

f
1
= 10x
4
.
PASUL 2. Se rezolv˘a problema:
min{

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

4
(s
3
) = 5 −s
3
.
PASUL 3/4. Se rezolv˘a problema:
min{

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

3
(s
2
) = 9 −s
2
.
Se rezolv˘a problema:
min{

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

2
(s
1
) = 7 −s
1
.
Se rezolv˘a problema:
min{

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

1
(s

0
) = 2, s

0
= 3.
PASUL 5. Avem:
s

1
= s

0
+x

1
−5 = 0 deci x

2
(s
1
) = 7,
s

2
= s

1
+x

2
−7 = 0 deci x

3
(s
2
) = 9,
s

3
= s

2
+x

3
−8 = 1 deci x

4
(s
3
) = 4.
PASUL 6. Solut ¸ia optim˘a x

= (2, 7, 9, 4) iar traiectoria optim˘a este s

=
(0, 0, 1, 0).
Exercit ¸iul 2.3.2. Un depozit trebuie s˘a r˘aspund˘a unei cereri de marf˘a totale de
α unit˘at ¸i de produs de la m beneficiari (cererea fiec˘arui beneficiar este de α
i
unit˘at ¸i
de produs). Dac˘a costul de aprovizionare ¸si transport al unei unit˘at ¸i de produs la
PROGRAMARE DINAMIC
˘
A REGRESIV
˘
A 25
beneficiarul i este β
i
, iar depozitul dispune init ¸ial de γ unit˘at ¸i de produs ¸si dac˘a
acesta nu poate det ¸ine ˆın stoc mai mult de δ unit˘at ¸i de produs s˘a se determine
politica optim˘a de reaprovizionare cu produsul respectiv astfel ˆıncˆat toate cererile
s˘a fie satisf˘acute. La final mai exist˘a ˆın stoc ε unit˘at ¸i de produs.
Indicat ¸ie. Se noteaz˘a cu x
i
num˘arul de unit˘at ¸i de produs comandate la ˆınceputul
livr˘arii i ¸si cu s
i
stocul existent dup˘a livrarea i. Problema de programare ce trebuie
rezolvat˘a este:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
min
m

i=1
β
i
x
i
m

i=1
x
i
= α −γ +ε,
j

i=1
α
i
−γ ≤
j

i=1
x
i

j−1

i=1
α
i
+δ −γ ∀j = 1, m,
x
i
≥ 0 ∀i = 1, m.
unde α =
m

i=1
α
i
. Se vor pune ˆın evident ¸˘a funct ¸iile reciproce de transfer, funct ¸iile
part ¸iale de eficient ¸˘a, funct ¸iile de eficient ¸˘a ale proceselor trunchiate, spat ¸iul st˘arilor
¸si spat ¸iile de decizie.
Problema se va rezolva prin metoda program˘arii regresive ˆın n faze.
Exercit ¸iul 2.3.3. S˘a se g˘aseasc˘a o planificare optim˘a unei investit ¸ii de 5 mili-
oane dolari pentru construirea a trei obiective cunoscˆand randamentele investit ¸iilor
pe obiective, a¸sa cum sunt prezentate ˆın tabelul 2.2.
TABELUL 2.2
Investit ¸ii Obiectiv 1 Obiectiv 2 Obiectiv 3
0 0 0 0
1 0, 20 0, 23 0, 19
2 0, 35 0, 34 0, 37
3 0, 51 0, 50 0, 49
4 0, 68 0, 63 0, 65
5 0, 75 0, 79 0, 80
R˘aspuns. Modelul matematic al problemei este:
_
_
_
max(r
1
(x
1
) +r
2
(x
2
) +r
3
(x
3
))
x
1
+x
2
+x
3
= 5,
x
i
∈ {0, 1, 2, 3, 4, 5}, i = 1, 2, 3, 4, 5.
26 PROGRAMARE DINAMIC
˘
A
ˆ
In vederea rezolv˘arii problemei cu ajutorul program˘arii dinamice, se pune mai
ˆıntˆai problema sub forma unui proces secvent ¸ial de decizie. Pentru realizarea acestui
scop, se noteaz˘a cu s
i
, i = 1, 2, 3, suma investit˘a ˆın primul obiectiv, ˆın primul ¸si al
doilea, ¸si respectiv suma investit˘a ˆın cele trei obiective. Avem: s
0
= 0, s
1
= s
0
+x
1
,
s
2
= s
1
+x
2
, s
3
= s
2
+x
3.
Folosind aceste egalit˘at ¸i, obt ¸inem cu ajutorul sistemului de restrict ¸ii, S
0
= {0},
S
1
= S
2
= {0, 1, 2, 3, 4, 5}, S
3
= {5}.
X
1
(s
0
) = {0, 1, 2, 3, 4, 5}, X
2
(s
1
) = {0, . . . , 5 −s
1
}, X
3
(s
2
) = {5 −s
2
}.
Remarc˘am c˘a avem urm˘atoarele funct ¸ii de transfer:
τ
1
(s
0
, x
1
) = s
0
+x
1
, τ
2
(s
1
, x
2
) = s
1
+x
2
, τ
3
(s
2
, x
3
) = s
2
+x
3
.
Funct ¸iile part ¸iale de eficient ¸˘a, precum ¸si funct ¸iile de decizie ale proceselor de
decizie trunchiate la fazele {i, . . . , 3} (pentru i = 1, . . . , 3) sunt urm˘atoarele:
u
1
(s
0
, x
1
) = r
1
(x
1
), u
2
(s
1
, x
2
) = r
2
(x
2
), u
3
(s
2
, x
3
) = r
3
(x
3
),

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

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

f
1
= r
3
(x
3
).
Se constat˘a c˘a problema este decompozabil˘a regresiv cu F
i
(α, β) = α + β, unde
i = 2, 3. Se trece acum la rezolvarea problemelor de optim corespunz˘atoare fiec˘arei
faze, folosind ecuat ¸iile program˘arii regresive ¸si obt ¸inem:
Faza 3. Avem:
g
1
(s
2
) = max{r
3
(x
3
)|x
3
∈ X
3
(s
2
)} = r
3
(5 −s
2
),
obt ¸inut pentru x

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

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

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

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

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

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

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

1
(s

0
) = 2, unde s

0
= s
0
= 0. Avemˆın continuare, s

1
= = s

0
+x

1
= 2,
de unde x

2
(s

1
) = 1; s

2
= s

1
+x

2
= 3, de unde x

3
(s

2
) = = 5−s

2
= 2; s

3
= s

2
+s

3
= 5.
PROGRAMARE DINAMIC
˘
A PROGRESIV
˘
A 27
ˆ
In concluzie, am obt ¸inut: max(r
1
(x
1
) + r
2
(x
2
) + r
3
(x
3
)) = 0, 95, pentru solut ¸ia
optim˘a unic˘a x

= (x

1
, x

2
, x

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

= (2, 3, 5).
2.4. Programare dinamic˘a progresiv˘a
2.4.1. Ecuat ¸iile program˘arii dinamice progresive
Procedura iterativ˘a descris˘a ˆın paragraful anterior este valabil˘a f˘ar˘a nici o res-
trict ¸ie asupra st˘arii init ¸iale sau finale. Aceste dou˘a st˘ari au ˆın mod evident, roluri
importante, a¸sa cum s-a v˘azut pentru starea s
0
.
ˆ
In timp ce s
1
, . . . , s
n−1
sunt st˘ari
de intrare ¸si ie¸sire, s
0
este numai stare de intrare pentru faza 1 a problemei, iar s
n
numai stare de ie¸sire pentru faza n a problemei.
Din punct de vedere matematic singurul lucru care deosebe¸ste s
0
de s
n
este sensul
de parcurs adoptat pentru procedura de rezolvare, sens care a fost impus de ecuat ¸iile:
s
i
= τ
i
(s
i−1
, x
i
), i = 1, n,
ce conduc la o procedur˘a de rezolvare de la ultima faz˘a spre prima faz˘a a problemei,
altfel spus, am mers spre trecut.
ˆ
In anumite probleme se pot pune restrict ¸ii asupra
st˘arilor s
0
¸si/sau s
n
.
Dac˘a s
0
este impus˘a, optimizarea din ultima faz˘a a problemei conduce la un
singur g
n
(s
0
) deoarece s
0
nu mai este parametru, iar ˆın faza 1 lu˘am direct s
0
= s

0
.
Deci schema propus˘a este viabil˘a.
Dac˘a s
n
este impus˘a, adic˘a s
n
= s

n
cu s

n
dat, trebuie ca starea init ¸ial˘a s
0
¸si
solut ¸ia optim˘a x

(s
0
) s˘a satisfac˘a relat ¸ia:
s

n
= τ
n

n−1
(. . . τ
2

1
(s
0
, x

1
(s
0
)), x

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

n
(s
0
)).
Aceast˘a relat ¸ie nu poate fi verificat˘a decˆat la sfˆar¸situl procedurii, lucru care spore¸ste
timpul de procesare. Metoda de reducere la cazul precedent este mult mai eficace,
dac˘a vom reu¸si s˘a schimb˘am sensul ˆın care au fost f˘acute calculele adic˘a s˘a mergem
spre viitor prin folosirea funct ¸iilor reciproce de transfer:
s
i−1

i
(s
i
, x
i
), i = 1, n.
Funct ¸iile elementare de eficient ¸˘a u
i
, pentru i = 1, . . . , n, respectiv funct ¸ia obiectiv
global˘a f, devin u
i

i
(s
i
, x
i
), x
i
) =u
i
(s
i
, x
i
), pentru i = 1, . . . , n, respectiv:
f(u
1
(s
0
, x
1
), . . . , u
n
(s
n−1
, x
n
)) = f(

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

u
n
(s
n
, x
n
))
=

f (s
n
, x
1
, . . . , x
n
),
28 PROGRAMARE DINAMIC
˘
A
unde de data aceasta, ˆın mod similar cu ceea ce s-a ar˘atat anterior, toate elementele
descriptive ale problemei pot fi exprimate ca funct ¸ie de decizie aleas˘a ¸si starea s
0
.
Similar se define¸ste decompozabilitatea progresiv˘a ¸si se ajunge la ecuat ¸iile pro-
gram˘arii dinamice progresive.
2.4.2. Rezolvarea problemelor de programare progresiv˘a
Elementele prezentate ˆın paragrafele precedente ne permit s˘a elabor˘am urm˘atorul
algoritm de rezolvare a problemelor de optimizare dinamice progresive.
PASUL 0. Problema matematic˘a se codific˘a sub forma unei probleme de pro-
gramare liniar˘a, punˆandu-se ˆın evident ¸˘a funct ¸ia obiectiv ¸si sistemul de restrict ¸ii
corespunz˘ator.
PASUL 1. Se pune problema sub forma unui proces secvent ¸ial de decizie avˆandu-
se ˆın vedere urm˘atoarele elemente:
i) forma funct ¸ional˘a a funct ¸iilor reciproce de transfer

τ
i
: S
i
×X
i
→S
i−1
:
s
i−1
=

τ
i
(s
i
, x
i
), i = 1, n.
ii) spat ¸iul st˘arilor posibile: S
0
, S
1
, . . . , S
n
;
iii) spat ¸iul deciziilor:

Xi
(s
i
);
iv) funct ¸iile part ¸iale de eficient ¸˘a

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


f
i
(x
1
, . . . , x
i
) pentru i = 1, 2, . . . , n.
PASUL 2. Se rezolv˘a problema din faza 1, adic˘a se calculeaz˘a:
min{

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


X1
(s
1
)} = min{

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


X1
(s
1
)} = g
1
(s
1
),
unde s
n−1
este parametru. Deci pentru s
1
∈ S
1
se determin˘a valoarea x

1
(s
n
) ∈

X1
(s
1
), astfel ˆıncˆat:
g
1
(s
1
) =

u
1
(s
1
, x

1
(s
1
)).
Se atribuie contorului i valoarea 2. Acest contor are semnificat ¸ia fazei i a procesului
secvent ¸ial.
PASUL 3. Se rezolv˘a problema din faza i a c˘arei necunoscut˘a este x
i
, iar s
i
este parametru. Deci pentru s
i
∈ S
i
, se determin˘a x

i
(s
i
) ∈

Xi
(s
i
) astfel ˆıncˆat:
g
i
(s
i
) =

Fi
(

u
i
(s
i
, x

i
(s
i
)), g
i−1
(

τ
i
(s
i
, x

i
(s
i
)))).
actualizeaz˘a i := i + 1;
PROGRAMARE DINAMIC
˘
A PROGRESIV
˘
A 29
PASUL 4. Dac˘a i < n goto PASUL 3.
PASUL 5. Se determin˘a x

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

n
¸si avem:


f (s

n
, x

1
(s

n
), . . . , x

n
(s

n
)) = min{

f
n
(s

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

n
),
unde x

n−1
(s

n−1
) = x

n−1
= x

n−1

n
(s

n
, x

n
)) etc.
PASUL 6. Se scrie solut ¸ia optim˘a:
x

= (x

1
, . . . , x

n
)
unde x

n
= x

n
(s

n
), x

n−1
= x

n−1

n
(s

n
, x

n
)) etc.
Observat ¸ii. i) Dac˘a st˘arile s
0
sau s
n
sunt cunoscute, se merge de la starea ne-
cunoscut˘a spre starea cunoscut˘a.
ii) Dac˘a ambele st˘ari sunt impuse ¸si dac˘a se pot defini funct ¸iile de transfer atˆat
ˆıntr-un sens cˆat ¸si ˆın cel˘alalt atunci se poate opta pentru oricare dintre cele dou˘a
metode de rezolvare, adic˘a progresiv sau regresiv.
2.4.3. Aplicat ¸ii
Exercit ¸iul 2.4.1. Aplicat ¸ia similar˘a celei de la paragraful de aplicat ¸ii core-
spunz˘ator program˘arii dinamice regresive.
R˘aspuns. Pasul 0 este identic cu cel de la rezolvarea aplicat ¸iei de la capitolul
program˘arii regresive.
PASUL 1. Se determin˘a funct ¸iile reciproce de transfer:
τ
1
(s
1
, x
1
) = s
1
−x
1
+ 5,
τ
2
(s
2
, x
2
) = s
2
−x
2
+ 7,
τ
3
(s
3
, x
3
) = s
3
−x
3
+ 8,
τ
4
(s
4
, x
4
) = s
4
−x
4
+ 5.
Funct ¸iile part ¸iale de eficient ¸˘a sunt:
u
1
(s
1
, x
1
) = 12x
1
,
u
2
(s
2
, x
2
) = 10x
2
,
u
3
(s
3
, x
3
) = 9x
3
,
u
4
(s
4
, x
4
) = 10x
4
.
Funct ¸iile de eficient ¸˘a ale proceselor trunchiate la fazele 1, . . . , i (pentru i =
1, . . . , 4) sunt:

f
1
= 12x
1
,

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

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

f
4
= 12x
1
+ 10x
2
+ 9x
3
+ 10x
4
.
Noile spat ¸ii de decizie se determin˘a succesiv:
Din s
0
= 3 rezult˘a s
1
−x
1
+ 5 = 3 sau x
1
= s
1
+ 2 de unde x
1
∈ {s
1
+ 2},
din s
1
∈ [0, 4] rezult˘a s
2
−x
2
+ 7 ∈ [0, 4] de unde x
2
∈ [s
2
+ 3, s
2
+ 7],
din s
2
∈ [0, 2] rezult˘a s
3
−x
3
+ 8 ∈ [0, 2] de unde x
3
∈ [s
3
+ 6, s
3
+ 8],
din s
3
∈ [0, 1] rezult˘a s
4
−x
4
+ 5 ∈ [0, 1] de unde x
4
∈ [s
4
+ 4, s
3
+ 5].
PASUL 2. Se rezolv˘a problema din faza 1 adic˘a se calculeaz˘a:
min{

f
1
|x
1

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

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

f
2
|x
2

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

2
(s
2
) = s
2
+ 7.
Se rezolv˘a problema:
min{

f
3
|x
3

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

3
(s
3
) = s
3
+ 8.
Se rezolv˘a problema:
min{

f
4
|x
4

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

4
(s

4
) = s

4
+ 4 = 4, unde s

4
= 0.
PASUL 5. Avem:
s

3
= s

4
−x

4
+ 5 = 1 ¸si x

3
= s

3
+ 8 = 9,
s

2
= s

3
−x

3
+ 8 = 0 ¸si x

2
= s

2
+ 7 = 7,
s

1
= s

2
−x

2
+ 7 = 0 ¸si x

1
= s

1
+ 2 = 2.
PASUL 6. Solut ¸ia optim˘a este:
PROGRAMARE DINAMIC
˘
A PROGRESIV
˘
A 31
x

= (2, 7, 9, 4), iar traiectoria optim˘a s

= (0, 0, 1, 0), deci s-a obt ¸inut aceea¸si
solut ¸ie ca ˆın rezolvarea problemei prin metoda regresiv˘a.
Exercit ¸iul 2.4.2. Un depozit trebuie s˘a r˘aspund˘a unei cereri de marf˘a totale de
α unit˘at ¸i de produs de la m beneficiari (cererea fiec˘arui beneficiar este de α
i
unit˘at ¸i
de produs). Dac˘a costurile de transport al unei unit˘at ¸i de produs la beneficiarul i
este β
i
¸si dac˘a depozitul dispune init ¸ial de γ unit˘at ¸i de produs, iar dac˘a acesta nu
poate det ¸ine ˆın stoc mai mult de δ unit˘at ¸i de produs s˘a se determine politica optim˘a
de reaprovizionare cu produsul respectiv astfel ˆıncˆat toate cererile s˘a fie satisf˘acute.
ˆ
In final depozitul nu mai are nici o cantitate ˆın stoc.
Indicat ¸ie. Vom nota cu x
i
num˘arul de unit˘at ¸i de produs comandate la ˆınceputul
livr˘arii i ¸si cu s
i
stocul existent dup˘a livrarea i. Problema de programare ce trebuie
rezolvat˘a este:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
min
m

i=1
β
i
x
i
m

i=1
x
i
= α −γ,
j

i=1
α
i
−γ ≤
j

i=1
x
j

j−1

i=1
α
i
+δ −γ ∀j = 1, m,
x
i
≥ 0 ∀i = 1, m.
unde α =
m

i=1
α
i
. Se vor pune ˆın evident ¸˘a funct ¸iile reciproce de transfer, funct ¸iile
part ¸iale de eficient ¸˘a, funct ¸iile de eficient ¸˘a ale proceselor trunchiate, spat ¸iul st˘arilor
¸si spat ¸iile de decizie.
Problema se poate rezolva ¸si prin programare dinamic˘a progresiv˘a ˆın n faze ¸si
evident ¸si prin metoda program˘arii dinamice regresive sau cu ajutorul algoritmilor
simplex primal ori simplex dual prin aducerea acesteia la forma standard.
Exercit ¸iul 2.4.3. Rezolvat ¸i numeric prin programare dinamic˘a regresiv˘a ¸si pro-
gresiv˘a problema anterioar˘a pentru m = 3, α = 25 (α
1
= 10, α
2
= = 8, α
3
= 7), β
1
=
3, β
2
= 10, β
3
= 4, γ = 3 ¸si δ = 10. Aplicat ¸i pentru rezolvarea problemei algoritmul
simplex primal. Scriet ¸i duala problemei de programare liniar˘a asociat˘a. Rezolvat ¸i
programul dual.
Indicat ¸ie. Aplicˆand exercit ¸iul precedent restrict ¸ia a doua devine:
α
1
−γ ≤ x
1
≤ δ −γ,
32 PROGRAMARE DINAMIC
˘
A
sau 10 −3 ≤ x
1
≤ 10 −3 deci x
1
= 7. Restrict ¸ia a treia devine:
α
1

2
−γ ≤ x
1
+x
2
≤ α
1
+δ −γ,
sau 10 + 8 −3 ≤ 3 +x
2
≤ 10 + 10 −3 deci 12 ≤ x
2
≤ 20 etc.
Exercit ¸iul 2.4.4. Generalizat ¸i problema de la exercit ¸iul 2.4.2 la o problem˘a cu
n depozite. Rezolvat ¸i aceast˘a problem˘a prin metoda program˘arii dinamice ¸si apoi
prin metoda de rezolvare a problemelor clasice de transport.
Exercit ¸iul 2.4.5. Un tren de marf˘a cu capacitatea maxim˘a z trebuie s˘a trans-
porte diferite cantit˘at ¸i de N m˘arfuri diferite. S˘a not˘am cu v
i
valoarea celui de al i-lea
tip de marf˘a ¸si cu w
i
greutatea sa. S˘a se determine ˆınc˘arc˘atura de valoare maxim˘a.
Aplicat ¸ie numeric˘a N = 3, z = 100 t, v
1
= 10$, v
2
= 30$, v
3
= 5$, w
1
= 150 t,
w
2
= 20 t, w
3
= 30 t.
Indicat ¸ie. Dac˘a not˘am cu x
i
num˘arul articolelor din marfa i care sunt ˆınc˘arcate,
atunci problema de programare liniar˘a de rezolvat este:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
max
N

i=1
x
i
v
i
,
N

i=1
x
i
w
i
≤ z,
x
i
≥ 0, i = 1, N.
Problema se poate rezolva prin metodele program˘arii dinamice sau cu algoritmul
simplex.
Capitolul 3
TEORIA JOCURILOR
3.1. Not ¸iuni introductive
De foarte multe ori suntem pu¸si ˆın fat ¸a unor situat ¸ii conflictuale a c˘aror evolut ¸ie
ulterioar˘a depinde de decizia sau planul adoptat, numit˘a ¸si strategie. Prin termenul
de evolut ¸ie se ˆınt ¸elege modificarea unei funct ¸ii obiectiv numit˘a ˆın acest caz funct ¸ie
de pierdere sau cˆa¸stig, deci prin joc ˆın cele ce urmeaz˘a se ˆınt ¸elege acea situat ¸ie
care funct ¸ioneaz˘a dup˘a reguli bine definite, ˆın care dou˘a sau mai multe elemente de-
cizionale, numite juc˘atori, aleg o decizie dintr-o mult ¸ime de variante bine specificate.
Deoarece jocurile de care ne vom ocupa au la baz˘a aceste elemente decizionale, ele se
vor numi jocuri strategice. Spunem despre strategia unui joc c˘a este o strategie pur˘a
dac˘a unul dintre adversari alege una din cele m variante dup˘a care jocul se opre¸ste.
Strategia mixt˘a presupune continuarea partidei, iar alegerea variantei se face cu o
anumit˘a probabilitate. Fiecare din p˘art ¸ile implicate ˆın joc urm˘are¸ste optimizarea
funct ¸iei obiectiv, iar strategia care realizeaz˘a aceast˘a optimizare se nume¸ste strategie
optim˘a.
Din punct de vedere al cˆa¸stigului jocurile se clasific˘a ˆın:
-jocuri cu suma nul˘a: sunt acele jocuri ˆın care suma pierderilor fiec˘arui juc˘ator
este egal˘a cu suma cˆa¸stigurilor tuturor juc˘atorilor;
-jocuri f˘ar˘a sum˘a nul˘a: sunt acele jocuri ˆın care o parte din pierderea ¸si/sau
cˆa¸stigul unui juc˘ator nu se reg˘ase¸ste la ceilalt ¸i juc˘atori.
O alt˘a clasificare este dup˘a cardinalul num˘arului de strategii: jocuri finite sau
infinite.
Fie X ¸si Y strategiile pure a doi juc˘atorilor A respectiv B ¸si a ∈ X ¸si b ∈ Y
strategile pure alese de c˘atre ace¸stia. Vom nota cu L
A
(a, b) ¸si L
B
(a, b) pierderile
corespunz˘atoare fiec˘arui juc˘ator, cˆa¸stigul fiind considerat o pierdere negativ˘a. Suma
33
34 TEORIA JOCURILOR
pierderilor celor doi juc˘atori este:
L
a
(a, b) +L
b
(a, b).
Dac˘a jocul este cu suma nul˘a atunci L
A
(a, b) + L
B
(a, b) = 0. Deci, L
B
(a, b) =
−L
A
(a, b) = L(a, b), unde L(a, b) este cˆa¸stigul juc˘atorului A dac˘a acesta joac˘a strate-
gia a iar r˘aspunsul lui B fiind prin strategia b.
Jocurile de tip poker sunt jocuri cu suma nul˘a, iar jocurile de tip Casino sunt
f˘ar˘a suma nul˘a (se pl˘atesc impozite c˘atre stat sau se pl˘atesc taxe c˘atre proprietarul
jocului). Formalizˆand cele definite avem:
Definit ¸ia 3.1.1. Se nume¸ste joc tripletul J = (X, Y, L) unde X = {a
1
, . . . , a
m
}
¸si Y = {b
1
, ..., b
n
} sunt mult ¸imile de strategii pure ale celor doi juc˘atori, iar L :
X ×Y →R este funct ¸ia de cˆa¸stig care se poate exprima sub forma matriceal˘a:
Q =
_
_
q
11
... q
1n
... ... ...
q
m1
... q
mn
_
_
ˆın care q
ij
= L(a
i
, b
j
), i = 1, m, j = 1, n. Forma matriceal˘a a unui joc se nume¸ste
forma normal˘a. Matricea jocului este alc˘atuit˘a ˆın raport cu juc˘atorul A numit
juc˘ator maximizant. Juc˘atorul B se va numi juc˘ator minimizant, iar matricea sa va
avea elementele −q
ij
.
Exemplul 3.1.1. Jocul const˘a ˆın aruncarea monedei ˆın care fiecare juc˘ator
poate alege, independent de cel˘alalt stema S sau banul B. Dac˘a alegerile coin-
cid, atunci juc˘atorul 2 prime¸ste de la juc˘atorul 1 suma x.
ˆ
In caz contrar juc˘atorul 1
prime¸ste de la juc˘atorul 2 suma x. Matricea jocului este:
Q =
_
−x x
x −x
_
.
3.2. Principiul minimax
Teoria jocurilor are ca rol elaborarea unor planuri rat ¸ionale de act ¸iune pentru
cazurile conflictuale. Astfel, principiul adoptat este principul minimiz˘arii pierderii
maxime numit ¸si principiul minimax. Juc˘atorul A act ¸ioneaz˘a astfel ˆıncˆat s˘a maxi-
mizeze cel mai mic cˆa¸stig pe care-l poate obt ¸ine de la juc˘atorul B, iar juc˘atorul B
act ¸ioneaz˘a astfel ˆıncˆat s˘a minimizeze pierderea sa maxim˘a.
Valoarea:
α = max
i
min
j
q
ij
STRATEGII MIXTE S¸I VALOAREA JOCULUI 35
se nume¸ste valoarea inferioar˘a a jocului ¸si reprezint˘a cel mai mic cˆa¸stig pe care Aˆıl
poate avea de la B, iar valoarea:
β = min
j
max
i
q
ij
se nume¸ste valoarea superioar˘a a jocului ¸si reprezint˘a cea mai mare pierdere pe care
B o poate avea.
Jocurile pentru care α = β se numesc jocuri cu punct ¸sa, iar valoarea comun˘a a
acestor dou˘a valori se nume¸ste valoarea jocului. Elementul care realizeaz˘a aceast˘a
egalitate se nume¸ste punct ¸sa.
O strategie a
i
a juc˘atorului A se nume¸ste dominant˘a pentru strategia a
j
dac˘a
q
ik
≥ q
jk
pentru orice k = 1, n. Strategiile dominate vor fi eliminate din joc de c˘atre
A (acesta dore¸ste s˘a cˆa¸stige cˆat mai mult) strategiile dominante ale lui B vor fi
eliminate din politica sa pentru c˘a duc la pierderi mai mari.
3.3. Strategii mixte ¸si valoarea jocului
Jocurile cu punct ¸sa reprezint˘a o clas˘a particular˘a de jocuri ¸si se pune ˆın mod
natural ˆıntrebarea dac˘a, ˆın ipoteza repet˘arii partidelor, nu se poate g˘asi o strategie
prin care juc˘atorul A s˘a obt ¸in˘a un cˆa¸stig mai mare decˆat cel asigurat prin criteriul
minimax. Vom numi strategie mixt˘a o combinat ¸ie probabilist˘a de strategii pure.
Strategiile mixte au dublu rol:
1. de a ˆımpiedica adversarul s˘a cunoasc˘a strategia aleas˘a;
2. de a m˘ari cˆa¸stigul garantat de valoarea inferioar˘a a jocului.
Fie X = (x
1
, ..., x
m
)

vectorul probabilit˘at ¸ilor cu care juc˘atorul A alege strategiile
pure {a
1
, ..., a
m
} ¸si Y = (y
1
, ..., y
n
)

vectorul probabilit˘at ¸ilor cu care juc˘atorul B
alege strategiile pure {b
1
, ..., b
n
}. Avem:
_
_
_
x
i
≥ 0, i = 1, m
m

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

j=1
y
j
= 1.
Cˆa¸stigul mediu realizat de c˘atre A cˆand el folose¸ste strategia mixt˘a X, iar B
strategia b
j
va fi:
M(X, j) =
m

i=1
q
ij
x
i
.
36 TEORIA JOCURILOR
Similar, cˆa¸stigul mediu realizat de A cˆand el folose¸ste strategia a
i
, iar B folose¸ste
strategia mixt˘a Y va fi:
M(i, Y ) =
n

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

j=1
m

i=1
q
ij
x
i
y
j
=
m

i=1
n

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

QY.
3.4. Teorema fundamental˘a a teoriei jocurilor
Teorema 3.4.1. (Valoarea inferioar˘ a ¸si valoarea superioar˘a a jocului). Fie X,
Y submult ¸imi ale lui R ¸si fie L : X ×Y →R. Dac˘a exist˘a m˘arimile:
max
x∈X
[min
y∈Y
L(x, y)],
min
y∈Y
[max
x∈X
L(x, y)],
atunci:
max
x∈X
[min
y∈Y
L(x, y)] ≤ min
y∈Y
[max
x∈X
L(x, y)].
Definit ¸ia 3.4.1. (Punct ¸sa). Punctul (x
0
, y
0
) este punct ¸sa al funct ¸iei L dac˘a:
L(x, y
0
) ≤ L(x
0
, y
0
) ≤ L(x
0
, y).
Teorema 3.4.2. (Condit ¸ii necesare ¸si suficiente pentru existent ¸a punctelor ¸sa).
Fie X, Y submult ¸imi ale lui R ¸si fie L : X ×Y →R. Dac˘a exist˘a m˘arimile:
max
x∈X
[min
y∈Y
L(x, y)],
min
y∈Y
[max
x∈X
L(x, y)],
atunci condit ¸ia necesar˘ a ¸si suficient˘a ca L s˘a aib˘a punctul (x
0
, y
0
) punct ¸sa este:
max
x∈X
[min
y∈Y
L(x, y)] = min
y∈Y
[max
x∈X
L(x, y)] = L(x
0
, y
0
).
REZOLVAREA JOCURILOR MATRICEALE 37
Teorema 3.4.2 ne spune: condit ¸ia necesar˘a ¸si suficient˘a ca L s˘a aib˘a punctul
(x
0
, y
0
) punct ¸sa este ca valoarea inferioar˘a a jocului s˘a fie egal˘a cu valoarea sa
superioar˘a.
Teorema 3.4.3. (Teorema fundamental˘a a teoriei jocurilor). Fie jocul J =
(X, Y, L). Atunci exist˘a o pereche X
0
, Y
0
de strategii mixte optime astfel ˆıncˆat:
max
X∈S
m
[ min
Y ∈S
n
M(X, Y )] = min
Y ∈S
n
[ max
X∈S
m
M(X, Y )] = M(X
0
, Y
0
) = v,
unde S
m
¸si S
n
sunt submult ¸imi ale spat ¸iilor euclidiene m-dimensionale respectiv
n-dimensionale.
Valoarea v se nume¸ste valoarea jocului.
Observat ¸ii. i) Un joc nu poate avea decˆat o singur˘a valoare, chiar dac˘a are mai
multe strategii optime mixte.
ii) Condit ¸ia necesar˘a ¸si suficient˘a ca v s˘a fie valoarea jocului ¸si X
0
, Y
0
s˘a fie
strategii mixte este ca:
M(i, Y
0
) ≤ v ≤ M(X
0
, j), 1 ≤ i ≤ m, 1 ≤ j ≤ n.
3.5. Rezolvarea jocurilor matriceale
3.5.1. Formularea problemei de optimizare
Fie un joc cu matricea Q = (q
ij
). Dac˘a juc˘atorul A folose¸ste strategiile pure a
i
cu probabilit˘at ¸ile x
i
, i = 1, . . . , m atunci acesta poate spera un cˆa¸stig de cel put ¸in
v, care este egal cu valoarea jocului adic˘a:
_
¸
¸
_
¸
¸
_
x

Q ≥ v
m

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

iar a ≥ b
def
⇔ a
i
≥ b
i
∀i.
Similar, dac˘a juc˘atorul B utilizeaz˘a strategiile pure b
j
cu probabilit˘at ¸ile y
j
,
1 ≤ j ≤ n, el se poate a¸stepta la o pierdere cel mult egal˘a cu valoarea v a jocului:
_
¸
¸
_
¸
¸
_
Qy ≤ v
n

j=1
y
j
= 1
y
j
≥ 0, j = 1, n
38 TEORIA JOCURILOR
3.5.2. Reducerea la probleme de programare liniar˘a
Pentru a transforma cele dou˘a sisteme ˆın modele de programare liniar˘a este nece-
sar ca valoarea jocului v s˘a fie strict pozitiv˘a.
ˆ
In acest sens se pot folosi urm˘atoarele
observat ¸ii:
i) dac˘a fiec˘arui element al matricei Q i se adaug˘a o constant˘a k, atunci valoarea
jocului devine v +k, iar strategiile mixte r˘amˆan neschimbate;
ii) dac˘a fiecare element al matricei Qseˆınmult ¸e¸ste cu constanta k, atunci valoarea
jocului devine vk, iar strategiile mixte optime r˘amˆan neschimbate.
Deci prin folosirea adecvat˘a a observat ¸iilor amintite se poate presupune v = 1.
Problemele de rezolvat devin folosind notat ¸ia X
i
= x
i
/v:
_
¸
¸
_
¸
¸
_
min(
m

i=1
X
i
)
Q

X ≥ 1
X
i
≥ 0, i = 1, m
¸si
_
¸
¸
_
¸
¸
_
max(
n

j=1
Y
j
)
QY ≤ 1
Y
j
≥ 0, j = 1, n.
Cele dou˘a probleme de programare liniar˘a sunt ˆın forma canonic˘a ¸si sunt duale
una alteia. Acestea se pot rezolva prin metodele simplex sau simplex-dual. Se poate
apela pentru rezolvarea acestor probleme la programele specializate existente pe
piat ¸a software.
3.6. Aplicat ¸ii
Exercit ¸iul 3.6.1. Se consider˘a jocul ˆın forma matriceal˘a:
TABELUL 3.1
A/B b
1
b
2
b
3
b
4
b
5
a
1
3 −5 4 2 1
a
2
2 3 1 0 −1
a
3
4 −1 1 0 3
a
4
5 0 3 2 4
Matricea jocului este alc˘atuit˘a ˆın raport cu juc˘atorul A (maximizant).
APLICAT¸ II 39
i) S˘a se calculeze valoarea inferioar˘a ¸si valoarea superioar˘a a jocului.
ii) Are jocul punct ¸sa?
iii) Aflat ¸i strategiile mixte optime ale celor doi juc˘atori.
R˘aspuns. Matricea jocului fiind alc˘atuit˘a ˆın raport cu juc˘atorul A, care este
juc˘ator maximizant, acesta dore¸ste s˘a cˆa¸stige cˆat mai mult ¸si va elimina din joc
strategiile dominate. Avem a
4
a
3
, deci strategia a
3
va fi eliminat˘a din joc de
c˘atre juc˘atorul A. Deoarece b
1
b
4
¸si b
3
b
4
, atunci juc˘atorul B elimin˘a din joc
strategiile b
1
¸si b
3
(conduc la pierderi mai mari). Astfel jocul se reduce la matricea
redus˘a Q:
Q =
_
_
−5 2 1
3 0 −1
0 2 4
_
_
.
Valoarea inferioar˘a a jocului este:
α = max
i
min
j
q
ij
= 0,
¸si valoarea superioar˘a a jocului este:
β = min
j
max
i
q
ij
= 2.
Deoarece α < β jocul nu are punct ¸sa. Valoarea jocului v ∈ [0, 2].
Problema de programare liniar˘a pe care trebuie s˘a o rezolve juc˘atorul maximizant
A (maximizarea profitului minim) este urm˘atoarea:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
max(v)
−5x
1
+ 3x
2
≥ v
2x
1
+ 2x
3
≥ v
x
1
−x
2
+ 4x
3
≥ v
x
1
+x
2
+x
3
= 1
x
1
, x
2
, x
3
≥ 0,
sau dac˘a se noteaz˘a X
i
= x
i
/v pentru i = 1, 2, 3 obt ¸inem problema de programare
liniar˘a:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
min(X
1
+X
2
+X
3
)
−5X
1
+ 3X
2
≥ 1
2X
1
+ 2X
3
≥ 1
X
1
−X
2
+ 4X
3
≥ 1
X
1
, X
2
, X
3
≥ 0.
Similar, problema de programare liniar˘a corespunz˘atoare juc˘atorului B este:
40 TEORIA JOCURILOR
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
max(Y
1
+Y
2
+Y
3
)
−5Y
1
+ 2Y
2
+Y
3
≤ 1
3Y
1
−Y
2
≤ 1
2Y
2
+ 4Y
3
≤ 1
Y
1
, Y
2
, Y
3
≥ 0.
Cele dou˘a probleme de programare liniar˘a 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 juc˘atorul
A (maximizant):
> with(simplex) :
> minimize(x +y +z, −5 ∗ x + 3 ∗ y >= 1, 2 ∗ x + 2 ∗ z >= 1,
x −y + 4 ∗ z >= 1, NONNEGATIV E);
Solut ¸ia este: x = 0, y = 1/3, z = 1/2,
iar respectiv pentru juc˘atorul B (minimizant):
> maximize(x +y +z, −5 ∗ x + 2 ∗ y +z <= 1, 3 ∗ x −z <= 1,
2 ∗ y + 4 ∗ z <= 1, NONNEGATIV E);
Solut ¸ia este: x = 1/3, y = 1/2, z = 0.
Deci strategia optim˘a pentru juc˘atorul A se determin˘a din:
X
1
= 0, X
2
=
1
3
, X
3
=
1
2
,
iar strategia optim˘a a juc˘atorului B se determin˘a din:
Y
1
=
1
3
, Y
2
=
1
2
, Y
3
= 0.
Valoarea jocului este v = 6/5 iar strategiile optime sunt pentru A:
x
1
= 0, x
2
=
2
5
, x
3
=
3
5
,
respectiv pentru B :
y
1
=
2
5
, y
2
=
3
5
, y
3
= 0.
x
1
= 0 se explic˘a prin faptul c˘a strategia a
1
≺ a
3
(ˆın matricea redus˘a Q), poate fi
eliminat˘a din joc de c˘atre A.
Exercit ¸iul 3.6.2. O firm˘a A dore¸ste s˘a se lanseze pe piat ¸˘a. Cercet˘arile efectuate
ˆın acest sens stabilesc c˘a dac˘a pret ¸urile variaz˘a ˆın raport cu cele ale concurent ¸ei B,
atunci se obt ¸in rezultatele din tabelul 3.2:
APLICAT¸ II 41
TABELUL 3.2
A/B −5% 0% +5%
−5% −2 −4 −4
0% −1 0 −3
+5% −3 2 0
Ce strategie mixt˘a va adopta firma Aˆın fat ¸a concurent ¸ei?
Exercit ¸iul 3.6.3. Se consider˘a jocul ˆın forma matriceal˘a:
TABELUL 3.3
A/B b
1
b
2
b
3
b
4
b
5
a
1
3ρ −5ρ 4ρ 2ρ ρ
a
2
2ρ 3ρ ρ 0 −ρ
a
3
4ρ −ρ ρ 0 3ρ
a
4
5ρ 0 3ρ 2ρ 4ρ
Matricea jocului este alc˘atuit˘a ˆın raport cu juc˘atorul A (maximizant), iar ρ este
un parametru real strict pozitiv.
i) S˘a se calculeze valoarea inferioar˘a ¸si valoarea superioar˘a a jocului.
ii) Are jocul punct ¸sa?
iii) Aflat ¸i strategiile mixte optime ale celor doi juc˘atori.
Exercit ¸iul 3.6.4. Se consider˘a jocul de dou˘a persoane ˆın forma matriceal˘a:
TABELUL 3.4
A/B b
1
b
2
b
3
a
1
0 α −β
a
2
−β 0 α
a
3
α −β 0
Matricea jocului este alc˘atuit˘a ˆın raport cu juc˘atorul A, (maximizant) iar α ¸si β
sunt parametri reali strict pozitivi.
i) S˘a se calculeze valoarea inferioar˘a ¸si valoarea superioar˘a a jocului.
ii) Are jocul punct ¸sa?
iii) Aflat ¸i strategiile mixte optime ale celor doi juc˘atori.
42 TEORIA JOCURILOR
Exercit ¸iul 3.6.5. Se consider˘a urm˘atorul scenariu criptografic: un utilizator
al unui canal de comunicat ¸ie poate transmite mesaje cifrate corespunz˘atoare a trei
categorii de mesaje clare: confident ¸ial, secret ¸si strict secret. Utilizatorul poate
opta pentru unul din dou˘a sisteme de cifrare (de exemplu, un sistem simetric ¸si
un sistem asimetric etc). Indicat ¸i strategia optim˘a de alegere a sistemului crip-
tografic. Procentele categoriei de secret ¸si pierderile corespunz˘atoare (cantitate de
mesaj decriptat˘a pe 24 ore de procesare selectiv˘a, estimat˘a procentual de designerul
sistemelor criptografice) sunt date ˆın tabelul 3.5. Care trebuie s˘a fie procentele p
i
pentru ca utilizatorul s˘a opteze pentru strategia 2?
TABELUL 3.5
Tip mesaj Prob. mesaj S 1 S 2
confident ¸ial p
1
0 0,3%
secret p
2
0,6% 0,5%
strict secret p
3
0,4% 1%
Exercit ¸iul 3.6.6. S˘a se determine o pereche de strategii optime ¸si valoarea
urm˘atorului joc matriceal:
_
_
3 6 1 4
5 2 4 2
1 4 3 5
_
_
.
R˘aspuns. Se va scrie problema de optimizare pentru primul juc˘ator ¸si se rezolv˘a
aceasta. Valoarea jocului va fi 13/4.
Exercit ¸iul 3.6.7. Se consider˘a jocul ˆın forma matriceal˘a (ˆın raport cu juc˘atorul
A):
TABELUL 3.6
A/B b
1
b
2
b
3
b
4
a
1
2 3 0 1
a
2
1 2 4 3
a
3
0 2 3 2
a
4
2 3 0 1
i) S˘a se determine valoarea inferioar˘a ¸si valoarea superioar˘a a jocului.
ii) Determinat ¸i, dac˘a exist˘a, punctul ¸sa al jocului.
iii) S˘a se determine strategiile mixte ale celor doi juc˘atori.
R˘aspuns. Valoarea inferioar˘a a jocului este 1, iar valoarea superioar˘a este 2.
Valoarea jocului este 8/5.
APLICAT¸ II 43
Exercit ¸iul 3.6.8. Folosind criteriul minimax, s˘a se rezolve un joc matriceal de
ordinul 3 ×3 a c˘arui matrice este:
C =
_
_
−1 3 −3
2 0 3
2 1 0
_
_
.
Specificat ¸i ¸si valorile inferioar˘a ¸si superioar˘a ale jocului. Cum se modific˘a aceste
strategii dac˘a ultima linie a matricei C se ˆınmult ¸e¸ste cu γ? Pentru ce valoare a lui
γ jocul are punct ¸sa?
R˘aspuns. Valoarea inferioar˘a a jocului este:
α = max
i
min
j
q
ij
= 0,
¸si valoarea superioar˘a a jocului este:
β = min
j
max
i
q
ij
= 2.
Strategia optim˘a (mixt˘a) a primului juc˘ator este unic˘a ¸si este egal˘a cu:
x
1
=
1
3
, x
2
=
2
3
, x
3
= 0.
Valoarea jocului (aceasta este unic˘a) este egal˘a cu v = 1.
Strategia optim˘a a celui de-al doilea juc˘ator nu este unic˘a. O strategie optim˘a
este spre exemplu:
y
1
=
1
5
, y
2
=
3
5
, y
3
=
1
5
,
o alt˘a strategie optim˘a este:
y
1
= 0, y
2
=
2
3
, y
3
=
1
3
.
Exercit ¸iul 3.6.9. (Dilema prizonierului.) Se consider˘a urm˘atoarea situat ¸ie: doi
suspect ¸i de trafic de droguri sunt anchetat ¸i, ˆın stare de arest preventiv, de organele
abilitate, care nu au suficiente dovezi. Procurorul de caz le ofer˘a celor doi, indepen-
dent, posibilitatea de a recunoa¸ste sau nu implicareaˆın traficul de droguri, precum ¸si
consecint ¸ele deciziei. Astfel, ˆın situat ¸ia ˆın care ambii recunosc procurorul va prop-
une pedeaps˘a minim˘a de trei ani pentru cei doi suspect ¸i.
ˆ
In cazul ˆın care doar
unul recunoa¸ste pentru acesta procurorul va propune aceeia¸si pedeaps˘a de trei ani
44 TEORIA JOCURILOR
cu suspendare (eliberare), pentru complicele sau propunˆand pedeapsa maxim˘a de
cinsprezece ani cu executare.
ˆ
In situat ¸ia ˆın care niciunul nu recunoa¸ste, procurorul
propune, pentru alt delict ce ˆıl poate dovedi, pentru fiecare din cei doi suspet ¸i,
pedeapsa de un an. Care este decizia pe care o iau cei doi suspect ¸i de trafic de
droguri?
R˘aspuns. Forma matriceal˘a a jocului este:
A/B coopereaz˘a nu coopereaz˘a
coopereaz˘a (−3, −3) (0, −15)
nu coopereaz˘a (−15, 0) (−1, −1)
Valoarea inferioar˘a a jocului este α = −3, valoarea superioar˘a a jocului fiind β =
−3, deci jocul este cu punct ¸sa. Aceast˘a dilem˘a, ˆın care se afl˘a cei doi suspect ¸i, poate
fi numit˘a paradox, deoarece decizia acestora luat˘a individual ¸si con¸stient (aceea de
a m˘arturisi) ¸si decizia colectiv˘a (aceea de a t˘ainui) sunt divergente.
Capitolul 4
TEORIA DECIZIILOR
STATISTICE
4.1. Prezentarea problemelor
Situat ¸iile reale necesit˘a adoptarea unor decizii ce trebuie determinate utilizˆand
diverse criterii. Spre deosebire de statistica matematic˘a clasic˘a, care se ocupa de
dezvoltarea unor teorii ¸si tehnici de inferent ¸˘a asupra parametrului θ, utilizˆand numai
informat ¸ia de select ¸ie, teoria deciziilor statistice combin˘a informat ¸ia de select ¸ie cu
alte dou˘a aspecte importante legate de consecint ¸ele posibile ale adopt˘arii unei decizii
¸si de informat ¸ia a priori cu privire la parametrul θ.
Cunoa¸sterea consecint ¸elor posibile ale adopt˘arii diferitelor decizii presupune o
exprimare cantitativ˘a a cˆa¸stigului sau pierderii produse pentru fiecare decizie posi-
bil˘a ¸si pentru diferitele valori posibile ale parametrului θ. Funct ¸ia astfel obt ¸inut˘a, ce
depinde de decizia adoptat˘a ¸si de parametrul θ, apare ˆın literatura de specialitate
sub diferite denumiri ca funct ¸ie cˆa¸stig sau funct ¸ie utilitate.
Informat ¸ia a priori cu privire la parametrul θ se obt ¸ine din alte surse decˆat cele de
natur˘a statistic˘a ce implic˘a problema de decizie respectiv˘a. Este o informat ¸ie care se
obt ¸ine dintr-o experient ¸˘a trecut˘a cu privire la situat ¸ii similare ce implic˘a parametrul
θ. Aceast˘a informat ¸ie a priori este cuantificat˘a printr-o distribut ¸ie de probabilitate
cu privire la parametrul θ. Problema existent ¸ei acestei distribut ¸ii este o problem˘a
destul de discutat˘a. Abordarea teoriei deciziilor prin intermediul unei distribut ¸ii
a priori corespunde abord˘arii bayesiane. Problemele legate de teoria deciziilor pot
fi ˆıncadrate ˆın cadrul teoriei jocurilor ceea ce justific˘a prezentarea acestui capitol
dup˘a capitolul corespunz˘ator teoriei jocurilor. Decidentul poate avea sau nu posi-
bilitatea efectu˘arii unor experient ¸e a priori lu˘arii deciziei. Astfel, avem decizii f˘ar˘a
experient ¸˘a a priori, decizii cu experient ¸˘a unic˘a (sau decizii cu volum de e¸santionaj
45
46 TEORIA DECIZIILOR STATISTICE
dat, ˆın care decizia se ia dup˘a efectuarea tuturor observat ¸iilor) ¸si decizii secvent ¸iale
(pe baza observat ¸iei se poate decide efectuarea unei noi observat ¸ii sau luarea unei
decizii corespunz˘atoare). Astfel, paragrafele 4.2 ¸si 4.3 ale acestui capitol abordeaz˘a
strategiile de luare a deciziilor ˆın situat ¸iile ˆın care nu avem experient ¸e a priori, re-
spectiv situat ¸ia unei experient ¸e de volum fixat. Deciziile se pot lua ˆın condit ¸ii de risc
(dispunem de informat ¸ie a priori cu privire la starea parametrului θ) sau ˆın condit ¸ii
de incertitudine. Astfel, paragraful 4.4 prezint˘a o serie de criterii pentru alegerea
deciziilor optime ˆın caz de incertitudine.
4.2. Strategii Bayes ¸si strategii minimax
Pentru a fixa ideile s˘a presupunem c˘a mult ¸imea parametrilor de stare (necunos-
cut˘a) θ este finit˘a Θ = {θ
1
, . . . , θ
m
}. S˘a presupunem c˘a avem o informat ¸ie a priori
despre θ dat˘a de distribut ¸ia de probabilitate a priori ξ(θ). Aceast˘a distribut ¸ie se
nume¸ste strategie mixt˘a. S˘a presupunem c˘a avem mult ¸imea strategiilor pure:
A = {a
1
, ..., a
n
}.
S˘a not˘am prin L(θ, a) valoarea funct ¸iei de pierdere:
L : Θ×A →R
+
,
care este pierderea obt ¸inut˘a dac˘a se adopt˘a decizia a ¸si starea parametrului este θ.
Pierderea medie este definit˘a ca:
L(ξ, a) = M[L(θ, a)] =

θ∈Θ
L(θ, a)ξ(θ), pentru orice a ∈ A.
Numim strategie Bayes act ¸iunea cea mai favorabil˘a a

care minimizeaz˘a pierderea
medie, adic˘a a

pentru care:
L(ξ, a

) = min
a∈A
L(ξ, a).
Numim strategie minimax act ¸iunea cea mai favorabil˘a a

care minimizeaz˘a pier-
derea maxim˘a, adic˘a a

pentru care:
max
θ∈Θ
L(ξ, a

) = min
a∈A
max
θ∈Θ
L(ξ, a).
Dac˘a nu ne limit˘am numai la strategiile pure, atunci vom folosi o combinat ¸ie
de strategii pure alese dup˘a o lege de probabilitate. Aceast˘a strategie se nume¸ste
strategie mixt˘a.
CAZUL EFECTU
˘
ARII UNOR EXPERIENT¸ E UNICE 47
Fie η(a) = (η(a
1
), ..., η(a
m
)) distribut ¸ia de probabilitate care define¸ste probabili-
tatea cu care se folosesc strategiile pure a
1
, ..., a
m
.
ˆ
In general, dispunem de o mult ¸ime
de strategii mixte:
H = {η
1
(a), ..., η
p
(a)}.
Atunci pierderile medii sunt date de:
L(ξ, η) = M
θ,a
(L(θ, a)) =

θ∈Θ

a∈A
L(θ, a)ξ(θ)η(a).
ˆ
In acest caz trebuie g˘asit˘a acea strategie mixt˘a η

∈ H pentru care pierderile
medii s˘a fie minime:
L(ξ, η

) = min
η∈H
L(ξ, η),
sau acea strategie mixt˘a η

∈ H pentru care pierderile maxime s˘a fie minime:
max
θ∈Θ
L(ξ, η

) = min
η∈H
max
θ∈Θ
L(ξ, η).
4.3. Cazul efectu˘arii unor experient ¸e unice
S˘a presupunem c˘a decidentul, pentru a-¸si l˘argi cuno¸stint ¸ele despre st˘arile naturii,
opteaz˘a pentru efectuarea unei experient ¸e unice (de exemplu, pentru a estima influ-
ent ¸a unui anumit tip de medicament asupra unei categorii de pacient ¸i, se poate face
o experient ¸˘a unic˘a ce const˘a ˆın m˘asurarea zilnic˘a, timp de mai multe luni, a unei
concentrat ¸ii, dintr-un anumit tip de compus proteic, pentru m pacient ¸i din categoria
respectiv˘a).
Fie Z spat ¸iul rezultatelor z
1
, ..., z
l
ale experient ¸ei. Fiec˘arui rezultat z ∈ Z obt ¸inut
cˆand starea θ ∈ Θˆıi corespunde o probabilitate determinat˘a de p(z|θ), care satisface
relat ¸iile:
_
p(z|θ) ≥ 0, pentru orice z ∈ Z

z∈Z
p(z|θ) = 1.
Definit ¸ia 4.3.1. Tripletul format din spat ¸iul rezultatelor experient ¸ei Z, spa-
t ¸iul st˘arilor naturii Θ ¸si distribut ¸ia condit ¸ionat˘a p(z|θ) definit˘a pe Z pentru fiecare
θ ∈ Θ, se nume¸ste spat ¸iu de e¸santionaj. Vom nota acest lucru cu E = (Z, Θ, p).
Definit ¸ia 4.3.2. Se nume¸ste funct ¸ie de decizie funct ¸ia d : Z → A, ¸si asociaz˘a
fiec˘arui rezultat z
k
∈ Z o act ¸iune a
j
∈ A, j = 1, n.
48 TEORIA DECIZIILOR STATISTICE
Pierderea suferit˘a ˆın cazul ˆın care starea parametrului θ este θ
i
, i = 1, m este
dat˘a de:
L(θ
i
, a
j
) = L(θ
i
, d(z
k
)) = L
z
k

i
, d).
Pentru un θ dat, rezultatul z al experient ¸ei va fi o variabil˘a aleatoare determinat˘a de
probabilitatea condit ¸ionat˘a p(z|θ), deci ¸si pierderile L
z
(θ, d) sunt variabile aleatoare
¸si se vor realiza cu aceea¸si probabilitate.
Definit ¸ia 4.3.3. Numim funct ¸ie de risc funct ¸ia ρ : Θ×D →R dat˘a de:
ρ(θ, d) = M[L
z
(θ, d)] =

z∈Z
L
z
(θ, d)p(z|θ),
¸si reprezint˘a valorea medie a pierderii pe spat ¸iul rezultatelor Z.
Se ajunge la concluzia c˘a spat ¸iul deciziilor D joac˘a ˆın problema strategiei ˆın cazul
efectu˘arii unei experient ¸e unice, acela¸si rol ca spat ¸iul A ˆın problema strategiei f˘ar˘a
experient ¸e. Deci metodele de rezolvare ale celor dou˘a tipuri de probleme vor fi
asem˘an˘atoare.
Se pot aborda strategii mixte η(d) definite pe spat ¸iul D. Funct ¸ia de risc este ˆın
acest caz:
ρ(θ, η) = M[ρ(θ, d)] =

d∈D
ρ(θ, d)η(d)
=

d∈D

z∈Z
L
z
(θ, d)p(z|θ)η(d).
Principiul minimax const˘a din alegerea acelei strategii η

(d) pentru care riscul
mediu este cel mai mic, ˆın cazul ˆın care starea parametrului θ este cea mai defavo-
rabil˘a. Strategia η

(d) se alege astfel ˆıncˆat:
ρ(θ, η

) = min
η
max
θ∈Θ
ρ(θ, η),
iar valoarea corespuz˘atore a riscului se nume¸ste risc minimax.
Principiul lui Bayes minimizeaz˘a riscul mediu definit de:
ρ(ξ, d) =

θ∈Θ
ρ(θ, d)ξ(θ).
Strategia pur˘a d

se alege astfel ˆıncˆat:
ρ(ξ, d

) = min
d∈D
ρ(ξ, d).
DECIZII OPTIME ˆıN CAZ DE INCERTITUDINE 49
4.4. Decizii optime ˆın caz de incertitudine
Pˆan˘a ˆın acest punct au fost tratate procesele de decizii ˆın condit ¸ii de risc, ceea
ce reprezint˘a faptul c˘a sunt cunoscute (sau se pot determina) probabilit˘at ¸ile cores-
punz˘atoare parametrului θ ∈ Θ.
ˆ
In continuare ne vom ocupa de procesele de decizie desf˘a¸surate ˆın condit ¸ii de
incertitudine, deci cˆand nu se cunosc probabilit˘at ¸ile corespunz˘atoare lui θ. Faptul
c˘a atitudinea fat ¸˘a de decizie este subiectiv˘a face ca ˆın teoria deciziilor s˘a nu existe
criterii universal valabile. Vom prezenta cˆateva criterii de alegere a deciziei ˆın caz de
incertitudine, precizˆand c˘a aplicarea lor poate duce la rezultate diferite. Un mod de
a alege o decizie ar putea fi acela al alegerii strategiei indicate ca rezultat al aplic˘arii
mai multor criterii.
S˘a consider˘am situat ¸ia ˆın care dispunem de m strategii pure a
1
, . . . , a
m
, iar para-
metrul θ are n st˘ari posibile θ
1
, . . . , θ
m
. Elementul q
ij
va reprezenta cˆa¸stigul realizat
dac˘a se adopt˘a act ¸iunea a
i
¸si starea parametrului θ este θ
j
, i = 1, m, j = 1, n.
4.4.1. Criteriul lui Hurwicz
Criteriul lui Hurwicz sau criteriul optimismului alege ca strategie optim˘a acea
act ¸iune a
i
care corespunde la:
max
i
[εQ
i
+ (1 −ε)q
i
],
unde ε ∈ [0, 1] se nume¸ste optimismul decidentului, iar q
i
= min
j
q
ij
¸si Q
i
= max
j
q
ij
.
4.4.2. Criteriul lui Savage
Criteriul lui Savage sau criteriul regretelor alege ca strategie optim˘a acea act ¸iune
a
i
care corespunde la:
min
j
max
i
b
ij
= max
i
min
j
b
ij
,
(dac˘a nu se poate alege o strategie pur˘a, adic˘a matricea nu are punct ¸sa, se va deter-
mina o strategie mixt˘a optim˘a), unde matricea regretelor (diferent ¸a dintre cˆa¸stigul
realizat prin luarea unei decizii f˘ar˘a a cunoa¸ste starea naturii ¸si cel realizat dac˘a se
cuno¸steau aceste st˘ari) este definit˘a ca:
b
ij
= max
k
q
kj
−q
ij
, i = 1, m, j = 1, n.
50 TEORIA DECIZIILOR STATISTICE
4.4.3. Criteriul Bayes-Laplace
Criteriul lui Bayes-Laplace alege ca strategie optim˘a acea act ¸iune a
i
care core-
spunde la:
max
i
[
1
n
n

j=1
q
ij
],
adic˘a se presupune c˘a toate st˘arile naturii au aceea¸si probabilitate.
4.4.4. Criteriul lui Wald
Criteriul lui Wald alege, dac˘a jocul are punct ¸sa, ca strategie optim˘a acea act ¸iune
a
i
care corespunde la principiul minimax. Dac˘a jocul nu are punct ¸sa, atunci se
determin˘a strategia mixt˘a optim˘a cu probabilit˘at ¸ile x
1
, ..., x
m
care maximizeaz˘a:
min
j
[
m

i=1
q
ij
x
i
].
4.5. Aplicat ¸ii
Exercit ¸iul 4.5.1. O linie de fabricare a cimentului poate folosi ca materie prim˘a
trei tipuri de nisip ai c˘arui parametri sunt θ
1
, θ
2
, respectiv θ
3
. Se ¸stie c˘a linia tehno-
logic˘a poate folosi ˆın medie 60% din primul tip, 30% din al doilea tip ¸si 10% din
al treilea tip ¸si c˘a poate funct ¸iona ˆın trei regimuri a
1
, a
2
¸si a
3
. Pierderile reflectˆand
calitatea sunt date ˆın tabelul 4.1.
TABELUL 4.1
Θ ξ(θ) a
1
a
2
a
3
θ
1
0, 6 0 α 2
θ
2
0, 3 0, 5 2α 1
θ
3
0, 1 1 α 3
S˘a se calculeze pierderile medii corespunz˘atoare repartit ¸iei a priori. Care este
strategia optim˘a ˆın sensul lui Bayes?
R˘aspuns. Pierderile medii corespunz˘atoare probabilit˘at ¸ii a priori sunt:
L(ξ, a
1
) = 0 · 0, 6 + 0, 5 · 0, 3 + 1 · 0, 1 = 0, 25
L(ξ, a
2
) = α · 0, 6 + 2α · 0, 3 +α · 0, 1 = 1, 3 · α
APLICAT¸ II 51
L(ξ, a
3
) = 2 · 0, 6 + 1 · 0, 3 + 3 · 0, 1 = 1, 8.
Strategia Bayes este acea act ¸iune care minimizez˘a pierderea medie adic˘a strategia
a
1
dac˘a α ≥
5
26
sau strategia a
2
dac˘a α ≤
5
26
.
Remarc˘am c˘a pentru α =
5
26
avem dou˘a strategii optime ¸si anume a
1
¸si a
2
.
Exercit ¸iul 4.5.2. Aceea¸si problem˘a ca la 4.5.1. c˘a de aceast˘a dat˘a dispunem
de o strategie mixt˘a cu frecvent ¸ele 20%, 30%, respectiv 50%.
Exercit ¸iul 4.5.3. Se consider˘a jocul contra naturii ˆın forma matriceal˘a:
TABELUL 4.2
A/B θ
1
θ
2
θ
3
θ
4
θ
5
a
1
3 −5 4 2 1
a
2
2 3 1 0 −1
a
3
4 −1 1 0 3
a
4
5 0 3 2 4
Matricea jocului este alc˘atuit˘a ˆın raport cu juc˘atorul statistician A (maximizant)
¸si reprezint˘a cˆa¸stigurile realizate de acesta.
S˘a se aplice criteriile lui Hurwicz, Savage, Bayes ¸si Wald pentru alegerea deciziei
optime.
R˘aspuns. i) Pentru aplicarea criteriului lui Hurwicz:
TABELUL 4.3
θ
1
θ
2
θ
3
θ
4
θ
5
Q
i
q
i
εQ
i
+ (1 −ε)q
i
a
1
3 −5 4 2 1 4 −5 9ε −5
a
2
2 3 1 0 −1 3 −1 4ε −1
a
3
4 −1 1 0 3 4 −1 5ε −1
a
4
5 0 3 2 4 5 0 5ε
determin˘am:
max
i
[εQ
i
+ (1 −ε)q
i
] = 5ε
unde ε ∈ [0, 1]. Deci strategia optim˘a este a
4
.
ii) Pentru aplicarea criteriului lui Savage se determin˘a matricea regretelor:
52 TEORIA DECIZIILOR STATISTICE
TABELUL 4.4
(b
ij
) θ
1
θ
2
θ
3
θ
4
θ
5
min
j
b
ij
a
1
2 8 0 0 3 0
a
2
3 0 3 2 5 0
a
3
1 4 3 2 1 1
a
4
0 3 1 0 0 0
max
i
b
ij
3 8 3 2 5 5\1
Se observ˘a faptul c˘a jocul nu are punct ¸sa, ¸si, deci vom determina strategia mixt˘a
cu ajutorul algoritmului simplex primal sau dual. Solut ¸ia problemei ata¸sate se poate
rezolva cu ajutorul programului MAPLE, iar sintaxa pentru aceasta este:
> with(simplex) :
> minimize(x + y + z + w, 2 ∗ x + 3 ∗ y + z >= 1, 8 ∗ x + 4 ∗ z + 3 ∗ w >=
1, 3 ∗ y + 3 ∗ z >= 1,
2 ∗ y + 2 ∗ z >= 1, 3 ∗ x + 5 ∗ y +z >= 1, NONNEGATIV E);
solut ¸ia problemei fiind x = 0, y = 1/4, z = 1/4, w = 0. Aceasta conduce la
strategia mixt˘a optim˘a:
x
1
= 0, x
2
=
1
2
, x
3
=
1
2
, x
4
= 0.
iii) Pentru aplicarea criteriului lui Bayes-Laplace vom considera echiprobabile
st˘arile θ
i
:
TABELUL 4.5
θ
1
θ
2
θ
3
θ
4
θ
5
1
n
n

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

j=1
q
ij
.
iv) Pentru aplicarea criteriului lui Wald, deoarece jocul nu are punct ¸sa statisti-
cianul va alege o strategie mixt˘a cu probabilit˘at ¸ile x
1
, ..., x
m
care maximizeaz˘a:
min
j
[
m

i=1
q
ij
x
i
].
APLICAT¸ II 53
Strategia optim˘a se determin˘a cu ajutorul algoritmului simplex. Sintaxa MAPLE
pentru rezolvarea problemei de programare liniar˘a ata¸sat˘a jocului este:
> with(simplex) :
> minimize(x+y +z +w, 2∗x+2∗y +4∗z +5∗w >= 1, −5∗x+3∗y −z >= 1,
4 ∗ x + y + z + 3 ∗ w >= 1, 2 ∗ x + 2 ∗ w >= 1, x − y + 3 ∗ z + 4 ∗ w >=
1, NONNEGATIV E); iar solut ¸ia acesteia este x = 0, y = 2/5, z = 0, w = 3/5.
Aceasta conduce la strategia optim˘a:
x
1
= 0, x
2
=
2
5
, x
3
= 0, x
4
=
3
5
,
valoarea x
3
= 0 se explic˘a prin faptul c˘a strategia a
3
≺ a
4
.
Exercit ¸iul 4.5.4. Se consider˘a jocul contra naturii ˆın forma matriceal˘a:
TABELUL 4.6
A/B θ
1
θ
2
θ
3
θ
4
θ
5
a
1
3 −5 4 2 1
a
2
2 3 1 0 −1
a
3
4 −1 1 0 3
a
4
5 0 3 2 4
Matricea jocului este alc˘atuit˘a ˆın raport cu juc˘atorul statistician A (maximizant)
¸si reprezint˘a cˆa¸stigurile realizate de acesta. Dispunem de urm˘atorea distribut ¸ie a
priori asupra parametrului θ :(0, 2; 0, 1; 0, 1; 0, 1; 0, 6). Care sunt pierderile medii
corespunz˘atoare distribut ¸iei a priori? Care este act ¸iunea optim˘a Bayes corespunz˘a-
toare?
54 TEORIA DECIZIILOR STATISTICE
Capitolul 5
TEORIA GRAFURILOR
5.1. Grafuri orientate
Acest capitol este dedicat ˆın special prezent˘arii unor not ¸iuni elementare de teoria
grafurilor punˆandu-se accentul pe algoritmii lui Ford, Bellman-Kalaba ¸si Dijkstra de
determinare a drumurilor optime ˆıntr-un graf.
ˆ
Incepem printr-o serie de definit ¸ii.
Definit ¸ia 5.1.1. Un graf orientat G este o pereche G = (X, A), unde X este o
mult ¸ime finit˘a, 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, vˆarful
x se nume¸ste extremitate init ¸ial˘a sau surs˘a, iar y, extremitate final˘a sau destinat ¸ie.
Definit ¸ia 5.1.2. Un graf neorientat va fi notat cu G = (X, U), unde X reprezin-
t˘a mult ¸imea nodurilor (vˆarfurilor) grafului, iar U mult ¸imea muchiilor. Prin muchie
se va ˆınt ¸elege perechea u = {i, j}, i, j ∈ X . Dac˘a i = j perechea {i, j} este egal˘a
cu perechea {j, i}, iar muchiile ordonate (i, j) ¸si (j, i) reprezint˘a arce distincte. O
muchie se reprezint˘a printr-o linie care une¸ste cele dou˘a noduri ¸si se noteaz˘a cu
u = [i, j], i, j ∈ X.
Definit ¸ia 5.1.3. O rut˘a orientat˘a este un arc (i, j) din G ¸si i se poate asocia o
valoare numeric˘a v(u) sau v
ij
cu semnificat ¸ie real˘a de lungime, distant ¸˘a, cost etc.
Definit ¸ia 5.1.4. Un drumˆıntre s ¸si t se define¸ste ca o succesiune de rute orien-
tate µ : [(s, i
1
), . . . , (i
n
, t)] cu proprietatea c˘a (s, i
1
), . . . , (i
n
, t) sunt arce ˆın graf.
Definit ¸ia 5.1.5. Un drum care nu trece de dou˘a ori printr-un nod al s˘au se
nume¸ste drum elementar.
55
56 TEORIA GRAFURILOR
Drumurile elementare vor fi determinate ˆın acest˘a lucrare. Unui drum µ i se
asociaz˘a valoarea drumului v(µ) = v
si
1
+. . . +v
i
n
t
. Num˘arul de arce prin care trece
un drum se nume¸ste lungimea drumului. Un drum µ al grafului G poate fi dat ca
un ¸sir de noduri, µ : [s, i
1
, . . . , i
n
, t] unde (s, i
1
), . . . , (i
n
, t) sunt rute orientate.
Se pune problema determin˘arii unui drum µ

de la s la t cu valoare minim˘a,
adic˘a:
v(µ

) = min
µ∈M(s,t)
v(µ),
unde M(s, t) este mult ¸imea drumurilor ˆın graful G de la s la t.
Avem urm˘atoarea teorem˘a de invariant ¸˘a la multiplicare.
Teorema 5.1.1. Fie un graf orientat G ¸si D un drum de lungime minim˘a ˆıntre
dou˘a noduri s ¸si t. Dac˘a valorile fiec˘arei muchii se ˆınmult ¸esc cu un parametru real
strict pozitiv α, atunci ˆın noul graf G

drumul de lungime minim˘a dintre nodurile s
¸si t este identic (ca succesiune a nodurilor) cu drumul de lungime minim˘a din graful
G, iar ˆıntre valorile L

(s, t) ¸si L(s, t) ale celor dou˘a drumuri exist˘a relat ¸ia:
L

(s, t) = αL(s, t).
Nu se poate formula o regul˘a de invariant ¸˘a relativ la operat ¸ia aditiv˘a (valorile
fiec˘arei muchii se adun˘a cu un num˘ar real pozitiv). G˘asirea unui contraexemplu se
las˘a pe seama cititorului.
5.2. Algoritmul lui Kaufmann
Definit ¸ia 5.2.1. Fie G = (X, A) un graf orientat. Vom nota mult ¸imea nodurilor
cu {x
1
, . . . , x
n
}. Matricea A = (a
ij
) dat˘a de a
ij
= 1 dac˘a (x
i
, x
j
) ∈ A ¸si a
ij
= 0
dac˘a (x
i
, x
j
) / ∈ A se nume¸ste matricea arcelor. Matricea D = (d
ij
) dat˘a de relat ¸iile
d
ij
= 1 dac˘a exist˘a drum de la i la j ¸si d
ij
= 0 dac˘a nu exist˘a drum de la i la j se
nume¸ste matricea drumurilor.
Remarc˘am c˘a ˆıntr-un graf avˆand n noduri orice drum elementar are lungimea de
cel mult n −1.
Definit ¸ia 5.2.2. Puterea de atingere p(x
i
) a unui vˆarf x
i
∈ X ˆın graful G =
(X, A) este egal˘a cu num˘arul de vˆarfuri la care se poate ajunge din x
i
, adic˘a cu
ponderea Hamming a vectorului reprezentat de linia i a matricei D.
S˘a not˘am prin Γ
(k)
(x
i
) mult ¸imea de vˆarfuri din G la care se poate ajunge din x
i
folosind drumuri elementare formate din k arce. Avem urm˘atorea teorem˘a:
ALGORITMUL LUI CHEN 57
Teorema 5.2.1. Fie G un graf avˆand n vˆarfuri, atunci elementul d
ij
= = 1
dac˘a ¸si numai dac˘a avem relat ¸ia:
x
j

n−1
_
k=1
Γ
(k)
(x
i
)
Problema determin˘arii eficiente a matricei drumurilor a fost rezolvat˘a de A. Kauf-
mann, iar algoritmul corespunz˘ator se mai nume¸ste ¸si algoritmul ˆınmult ¸irii latine.
PASUL 0. Se construie¸ste matricea conexiunilor directe, notat˘a prin K
(1)
ˆın care
se trec efectiv arcele, inexistent ¸a unui arc (0 ˆın matricea drumurilor) fiind marcat˘a
prin ∗.
PASUL 1. Se construie¸ste matricea destinat ¸iilor posibile K
(0)
.
PASUL 2. Se compun (ˆınmult ¸ire latin˘a) matricele K
(1)
¸si K
(0)
: K
(1)
&K
(0)
.
PASUL k. Recursiv, calcul˘am matricea K
(k+1)
= K
(k)
&K
(0)
, care ne va da
lista drumurilor formate din k + 1 arce.
Observat ¸ie. Regula de ˆınmult ¸ire latin˘a respect˘a regula de ˆınmult ¸ire a matricelor
¸si ˆın plus dac˘a unul din elementele participante la calcul este ∗, atunci rezultatul
este ∗ ¸si ˆın caz contrar rezultatul compunerii const˘a ˆın concatenarea simbolurilor
participante.
5.3. Algoritmul lui Chen
Definit ¸ia 5.3.1. Un drum elementar se nume¸ste drum hamiltonian dac˘a trece
o singur˘a dat˘a prin toate nodurile grafului.
Urm˘atoarea teorem˘a, atribuit˘a lui Chen, este o condit ¸ie necesar˘a ¸si suficient˘a
pentru ca un graf f˘ar˘a circuite s˘a cont ¸in˘a un drum hamiltonian.
Teorema 5.3.1. Un graf f˘ar˘a circuite, care are n noduri, cont ¸ine un drum
hamiltonian, dac˘a ¸si numai dac˘a avem:
n

i=1
p(x
i
) =
n(n −1)
2
.
Remarc˘am c˘a ˆıntr-un graf f˘ar˘a circuite (un drumˆın care extremit˘at ¸ile coincid se
nume¸ste circuit), exist˘a cel mult un drum hamiltonian.
Algoritmul de determinare a drumurilor hamiltoniene ˆın grafuri f˘ar˘a circuite este
prezentat ˆın cele ce urmeaz˘a.
PASUL 0. Pentru graful G scriem matricea drumurilor D = (d
ij
), ordonˆand
vˆarfurile ˆın ordine descresc˘atoare a puterii de atingere (prin aceast˘a operat ¸ie, dac˘a
58 TEORIA GRAFURILOR
graful nu are circuite atunci toate valorile de 1 din matrice vor ap˘area deasupra
diagonalei principale).
PASUL 1. Dac˘a exist˘a un indice i pentru care d
ii
= 1, atunci graful are circuite
¸si algoritmul se opre¸ste, deoarece acesta nu se poate aplica.
PASUL 2. Dac˘a ˆın matricea D exist˘a
n(n −1)
2
valori de 1, atunci graful admite
un drum hamiltonian ¸si se trece la pasul 3; ˆın caz contrar graful nu are un drum
hamiltonian, iar algoritmul se opre¸ste.
PASUL 3. Ordinea vˆarfurilor ˆın cadrul drumului hamiltonian este dat˘a de
ordinea descresc˘atoare a puterilor de atingere.
Pentru grafurile care au circuite algoritmul de determinare a drumurilor hamil-
toniene este dat de algoritmul lui Kaufmann prezentat anterior. Astfel prezent ¸a
unui element diferit de ∗ pe diagonala uneia dintre matricele K
(k)
din cadrul acestui
algoritm indic˘a atˆat prezent ¸a unui circuit hamiltonian cˆat ¸si ordinea vˆarfurilor.
5.4. Algoritmul lui Ford
Algoritmul lui Ford determin˘a drumurile de valoare minim˘a ˆıntr-un graf orientat
G = (X, A) cu ¸si f˘ar˘a circuite, de la un nod s la toate celelalte noduri. Fie l(u)
valoarea unui arc u ∈ A.
ˆ
In particular, ˆın cazul ˆın care se cere, algoritmul determin˘a drumurile de valoare
minim˘a de la nodul s la orice alt nod t. Dac˘a graful este neorientat sau part ¸ial
orientat, fiec˘arei muchii u cu extremit˘at ¸ile i ¸si j ¸si valoarea l(u) i se asociaz˘a dou˘a
arce (i, j) ¸si (j, i) cu aceea¸si valoare l
ij
= l
ji
= l(u).
Fiec˘arui nod j i se asociaz˘a o variabil˘a λ
j
care va da valoarea cea mai mic˘a de la
nodul s la nodul j, (λ
s
= 0).
PASUL 0. Se ˆıntocme¸ste un tabel cu toate nodurile grafului ¸si corespunz˘ator
cu valorile:
λ
s
= 0, λ
j
= ∞, j = s.
PASUL 1. Pentru toate arcele (i, j) ∈ A se compar˘a (dac˘a are sens) diferent ¸a
λ
j
−λ
i
cu valoarea l
ij
:
dac˘a λ
j
−λ
i
> l
ij
, atunci λ
j
= λ
i
+l
ij
,
dac˘a λ
j
−λ
i
≤ l
ij
, atunci se trece la determinarea altui arc.
Se repet˘a pasul 1 ˆıntr-o nou˘a iterat ¸ie pˆan˘a cˆand, pentru toate arcele (i, j) ∈ A,
se verific˘a relat ¸ia:
λ
j
−λ
i
≤ l
ij
,
dup˘a care se trece la pasul 2.
PASUL 2. Drumurile de valoare minim˘a de la nodul s la celelalte noduri se re-
constituie din arcele (i, j) care verific˘a relat ¸ia cu egalitate, adic˘a λ
j
−λ
i
= l
ij
. Arcele
ALGORITMUL BELLMAN-KALABA 59
care verific˘a aceast˘a egalitate formeaz˘a un graf part ¸ial al drumurilor de lungime
minim˘a de la nodul s la toate celelalte noduri ale grafului.
Drumurile de valoare maxim˘a se pot obt ¸ine cu algoritmul lui Ford init ¸ializˆand
λ
s
= 0, λ
j
= −∞, j = s ¸si ˆınlocuind inegalit˘at ¸ile (>, ≤) din pa¸sii 1 ¸si 2 prin (<, ≥),
iar cuvˆantul min prin max.
5.5. Algoritmul Bellman-Kalaba
Algoritmul Bellman-Kalaba este un algoritm care se aplic˘a unui graf orientat cu
¸si f˘ar˘a circuite, cu ajutorul c˘aruia se determin˘a drumul minim sau drumurile minime
de la toate nodurile grafului la un nod final t. Fie l(u) valoarea unui arc u ∈ Γ.
Dac˘a graful este neorientat, fiec˘arei muchii cu extremit˘at ¸ile i ¸si j ¸si cu valoarea l(u)
se asociaz˘a dou˘a arce (i, j) ¸si (j, i) cu valori egale l
ij
= l
ji
= l(u).
PASUL 0.
Se asociaz˘a grafului G o matrice V = (v
ij
) ale c˘arei elemente se determin˘a astfel:
v
ij
=
_
_
_
l
ij
dac˘a (i, j) ∈ Γ
0 dac˘a i = j
∞ dac˘a (i, j) / ∈ Γ.
De asemenea, se adaug˘a la matricea V o nou˘a linie v
(0)
= {v
(0)
i
}, unde fiec˘arui
nod i al grafului se asociaz˘a un element v
(0)
i
, astfel:
v
(0)
i
= v
it
, i = t,
v
(0)
t
= 0.
Linia v
(0)
i
, conform acestor relat ¸ii, coincide cu transpusa coloanei nodului t.
PASUL k. Se adaug˘a la matricea V linia v
(k)
i
= {v
(k)
i
}. Elementele v
(k)
i
se
calculeaz˘a cu relat ¸iile:
v
(k)
i
= min
j=i
{v
(k−1)
i
+v
ij
}, i = t,
v
(k)
t
= 0.
Algoritmul se opre¸ste, ˆıntr-o etap˘a, dac˘a:
v
(k)
i
= v
(k−1)
i
, pentru orice nod i.
60 TEORIA GRAFURILOR
M˘arimea v
(k)
i
reprezint˘a valoarea drumului minim de la vˆarful i la nodul final t.
Dac˘a:
v
(k)
i
= v
(k−1)
j
+v
tj
,
atunci primul arc ˆın drumul de valoare minim˘a de la nodul i la nodul t este arcul
(i, j). Vom nota cu:
succ
(k)
i
= {j|v
(k)
i
= v
(k−1)
j
+v
ij
, j = i}
¸si marc˘am printr-o nou˘a linie succ
(k)
la matricea V imediat dup˘a linia v
(k)
. Dac˘a
v
(k)
i
= ∞, atunci succ
(k)
i
= ∅.
Drumul de valoare minim˘a de la nodul i la nodul final t este determinat numai
de nodurile marcate prin succ
(k)
, ˆıncepˆand cu cele din coloana i.
Observat ¸ii:
i) Algoritmul lui Ford determin˘a drumurile de valoare minim˘a (sau maxim˘a) care
pleac˘a de la un nod surs˘a s c˘atre toate celelalte noduri ale grafului.
ii) Algoritmul Bellman-Kalaba determin˘a drumurile de valoare minim˘a (sau ma-
xim˘a) care sosesc ˆıntr-un nod final t de la celelalte noduri ale grafului.
5.6. Algoritmul lui Dijkstra
Ideea de baz˘a a algoritmului lui Dijkstra este de a pleca din nodul s ¸si de a eticheta
celelalte noduri ˆın ordinea dep˘art˘arii lor, ˆın sensul lungimii, de nodul surs˘a s.
Fiec˘arui nod j i se asociaz˘a o variabil˘a p(j), care ˆın orice moment va ret ¸ine cea
mai mic˘a lungime a drumurilor de la s la i (p(s) = 0).
Se vor considera dou˘a liste L¸si T. Lista L este lista nodurilor permanente (valorile
sunt fixate), iar T este o list˘a cu noduri temporare (valorile pot fi modificate). Init ¸ial,
lista L = {s} iar lista ¸si T se compune din acele nodurie j ∈ X pentru care ruta
(s, j) este permis˘a. Un nod i

din lista T a c˘arui variabil˘a p(i

) are valoarea cea mai
mic˘a se include ˆın lista L.
ˆ
In lista T se includ apoi, toate nodurile j, care nu sunt
ˆınscrise ˆın aceast˘a list˘a ¸si ruta (i, j) este permis˘a.
Pentru a reconstrui drumurile de lungime minim˘a de la s la toate nodurile ce pot
fi atinse din s, folosind rute orientate permise ale grafului, se introduce pentru fiecare
nod j = s din graf un indicator pred(j), care va ret ¸ine ˆın orice moment ultimul nod
dinaintea lui j, pe drumul de la s la j care a fost g˘asit a avea cea mai scurt˘a lungime
pˆan˘a ˆın acel moment (pred(s) = 0).
Algoritmul lucreaz˘a ˆıntr-un tabel cu coloanele: iterat ¸ia, lista L, nodul j, variabila
p(j) ¸si indicatorul pred(j). Faptul c˘a un nod j este inclus ˆın lista permanent˘a L,
se marcheaz˘a prin ∗ ˆın stˆanga tabelului (coloana L), ˆın dreptul nodului j.
ˆ
In orice
moment, nodurile din tabel f˘ar˘a marcajul ∗ apart ¸in listei temporare T.
ARBORI MINIMALI 61
ˆ
In stˆanga tabelului se precizeaz˘a iterat ¸ia ˆın care nodul respectiv este permanen-
tizat ˆın lista L, prin marcarea cu ∗.
PASUL 0. Tabelul cont ¸ine nodul s marcat cu ∗ ¸si acele noduri j pentru care
ruta orientat˘a (s, j) este permis˘a. Corespunz˘ator p(s) = 0, p(j) = v
sj
, pred(j) = s.
Se consider˘a marcarea nodului s ca fiind iterat ¸ia 0.
Iterat ¸ia k.
PASUL 1. Dac˘aˆın tabel lista T este vid˘a, atunci toate nodurile sunt permanente
(marcate cu ∗). Graful este analizat ˆın ˆıntregime ¸si algoritmul se opre¸ste.
PASUL 2. Se alege i

∈ T cu proprietatea:
p(i

) = min
j∈T
p(j).
Dac˘a i

≡ t algoritmul se opre¸ste, ¸si se determin˘a drumul de lungime minim˘a de
la s la t.
ˆ
In caz contrar, nodul i

este transferat ˆın lista L, prin marcarea cu ∗ ¸si
astfel este scos din lista T.
ˆ
In lista T se ˆınscriu toate nodurile j ∈ T cu proprietatea
c˘a ruta (i

, j) este permis˘a. Se iau p(j) = ∞ ¸si pred(j) = ∅.
PASUL 3. Se corecteaz˘a valorile variabilelor corespunz˘atoare nodurilor j ∈ T
adiacente cu nodul i

comparˆand:
p(j) cu p(i

) +v
i

j
.
a) dac˘a p(j) > p(i

) +v
i

j
, atunci p(j) = p(i

) +v
i

j
¸si pred(j) = i

;
b) dac˘a p(j) = p(i

) +v
i

j
, atunci i ∈ pred(j);
c) dac˘a p(j) < p(i

) +v
i

j
, atunci se trece la examinarea unui nod din lista T.
Dup˘a epuizarea listei T se reia pasul 1 ˆın cadrul urm˘atoarei iterat ¸ii. Dup˘a oprirea
algoritmului ¸si atingerea nodului t (ˆın pasul 2) drumul de lungime minim˘a se recon-
stituie din aproape ˆın aproape de la nodul t c˘atre nodul s cu ajutorul indicatorilor
pred(j).
Dac˘a nodul t nu este evident ¸iat, dup˘a oprirea algoritmului se reconstituie, ˆın
acela¸si fel, graful drumurilor de lungime minim˘a de la s la orice alt nod ˆın graf.
5.7. Arbori minimali
Definit ¸ia 5.7.1. Se nume¸ste arbore un graf neorientat finit, conex (ˆıntre orice
dou˘a noduri ale sale s ¸si t exist˘a un drum) ¸si f˘ar˘a cicluri.
Problema ce urmeaz˘a s˘a o rezolv˘am are forma: fiind dat un graf G neorientat,
conex s˘a se extrag˘a din G un arbore part ¸ial pentru care suma valorilor muchiilor
este minim˘a.
62 TEORIA GRAFURILOR
Vom presupune, pentru a simplifica ideile, c˘a ˆıntre orice dou˘a noduri ale grafului
G exist˘a cˆate o muchie, ¸si c˘a toate valorile muchiilor sunt diferite dou˘a cˆate dou˘a.
Fie A = {a
1
, . . . , a
m
} mult ¸imea muchiilor grafului. Vom nota cu p
i
= p(a
i
) valoarea
muchiei a
i
. Vom presupune deci c˘a p
1
< . . . < p
m
.
5.7.1. Algoritmul lui Kruskal
PASUL 1. Se alege muchia a
1
de valoare minim˘a.
PASUL 2. Se alege muchia a
2
de valoare minim˘a r˘amas˘a.
PASUL 3. Se atribuie S = {a
1
, a
2
}.
PASUL 4. Dac˘a am acoperit toate nodurile grafului, atunci algoritmul se
opre¸ste.
Se alege muchia a
r
, de valoare minim˘a, din A − S, care nu formeaz˘a cicluri cu
muchiile lui S.
PASUL 5. Se actualizeaz˘a S = S ∪ {a
r
} ¸si goto PASUL 4.
Observat ¸ie. Dac˘a exist˘a ˆın graf muchii de valori egale, atunci s-ar putea ca
problema s˘a admit˘a mai multe solut ¸ii.
5.8. Aplicat ¸ii
Exercit ¸iul 5.8.1. Posibilit˘at ¸ile de comunicare ˆıntre localit˘at ¸ile 1-6 sunt repre-
zentate prin graful din figura 5.1, unde fiec˘arei muchii (sau arc) i se atribuie lungimea
tronsoanelor respective. Se cere drumul de lungime minim˘a ˆıntre 1 ¸si 6.
Figura 5.1: Graf orientat.
Rezolvare. Pentru rezolvarea problemei vom aplica algoritmul lui Ford. Problema
se poate rezolva ¸si cu algoritmul lui Bellman-Kalaba.
PASUL 0. λ
1
= 0, λ
j
= ∞, j = 1 .
APLICAT¸ II 63
TABELUL 5.1
j λ
j
Init ¸ializare Iterat ¸ia 1 Iterat ¸ia 2
1 λ
1
0 0 0
2 λ
2
∞ 2 2
3 λ
3
∞ 8,5 5
4 λ
4
∞ 10,8 8
5 λ
5
∞ 7 7
6 λ
6
∞ 13,11 11
PASUL 1.
Iterat ¸ia 1. Pentru fiecare arc (i, j) dac˘a se verific˘a λ
j
− λ
i
> l
ij
, atunci λ
j
=
λ
i
+l
ij
.
(1, 2) λ
2
−λ
1
= ∞> 2, atunci λ
2
= λ
1
+l
12
= 0 + 2 = 2,
(1, 3) λ
3
−λ
1
= ∞> 8, atunci λ
3
= λ
1
+l
13
= 0 + 8 = 8,
(2, 1) λ
1
−λ
2
= 0 −2 = −2 < 2,
(2, 3) λ
3
−λ
2
= 8 −2 = 6 > l
23
= 3, atunci λ
3
= λ
2
+l
23
= 2 + 3 = 5,
(2, 4) λ
4
−λ
2
= ∞> 8, atunci λ
4
= λ
2
+l
24
= 2 + 8 = 10,
(3, 1) λ
1
−λ
3
= 0 −5 = −5 < l
31
= 8,
(3, 2) λ
2
−λ
3
= 2 −5 = −3 < l
32
= 4,
(3, 4) λ
4
−λ
3
= 10 −5 = 5 = l
34
= 5,
(3, 5) λ
5
−λ
3
= ∞−5 = ∞> l
35
= 2, atunci λ
5
= λ
3
+l
35
= 5 + 2 = 7,
(4, 2) λ
2
−λ
4
= 2 −10 = −8 < l
42
= 8,
(4, 3) λ
3
−λ
4
= 5 −10 = −5 < l
43
= 5,
(4, 5) λ
5
−λ
4
= 7 −10 = −3 < l
45
= 3,
(4, 6) λ
6
−λ
4
= ∞> l
46
, atunci λ
6
= λ
4
+l
46
= 10 + 3 = 13,
(5, 3) λ
3
−λ
5
= 5 −7 = −2 < l
53
= 2,
(5, 4) λ
4
−λ
5
= 10 −7 = 3 > l
54
= 1, atunci λ
4
= λ
5
+l
54
= 7 + 1 = 8,
(5, 6) λ
6
−λ
5
= 13 −7 = 5 > l
56
= 4, atunci λ
6
= λ
5
+l
56
= 7 + 4 = 11.
Iterat ¸ia 2. Se reia pasul 1.
(1, 2) λ
2
−λ
1
= 2 = l
12
,
(1, 3) λ
3
−λ
1
= 5 < l
13
= 8,
(2, 1) λ
1
−λ
2
= −2 < l
21
= 2,
(2, 3) λ
3
−λ
2
= 3 = l
23
,
(2, 4) λ
4
−λ
2
= 6 < l
24
= 8,
(3, 1) λ
1
−λ
3
= −5 < l
31
= 8,
(3, 2) λ
2
−λ
3
= −3 < l
32
= 4,
(3, 4) λ
4
−λ
3
= 3 < l
34
= 5,
(3, 5) λ
5
−λ
3
= 2 = l
35
,
(4, 2) λ
2
−λ
4
= −6 < l
42
= 5,
64 TEORIA GRAFURILOR
(4, 3) λ
3
−λ
4
= −3 < l
43
= 5,
(4, 5) λ
5
−λ
4
= −1 < l
45
= 3,
(4, 6) λ
6
−λ
4
= 3 = l
46
,
(5, 3) λ
3
−λ
5
= −2 < l
53
= 2,
(5, 4) λ
4
−λ
5
= 1 = l
54
,
(5, 6) λ
6
−λ
5
= 4 = l
56
.
ˆ
In aceast˘a iterat ¸ie valorile variabilelor λ
j
nu s-au modificat. Aceasta ˆınseamn˘a c˘a
algoritmul s-a terminat, iar drumurile minime ˆıntre 1 ¸si 6 sunt date de arcele (i, j)
care realizeaz˘a egalit˘at ¸ile λ
j
− λ
i
= l
ij
. Aceste arce au fost marcate cu litere bold
ˆın cadrul algoritmului.
ˆ
In etapa a doua arcele care realizeaz˘a aceste egalit˘at ¸i sunt:
(1, 2), (2, 3), (3, 5), (4, 6), (5, 4), (5, 6).
Astfel ˆıntre 1 ¸si 6 am dou˘a drumuri minime ¸si anume:
µ
1
: [1, 2, 3, 5, 4, 6], l(µ
1
) = 11,
¸si
µ
2
: [1, 2, 3, 5, 6], l(µ
2
) = 11.
Exercit ¸iul 5.8.2. Se consider˘a graful din figura 5.2. S˘a se determine rutele de
cost minim de la fiecare nod la nodul 6.
Figura 5.2: Graf orientat.
Rezolvare. Pentru rezolvarea problemei aplic˘am algoritmul Bellman-Kalaba.
Init ¸ializare:
v
(0)
i
= v
i6
, i = 1, 2, 3, 4, 5
v
(0)
6
= 0.
APLICAT¸ II 65
Se scriu aceste valori ˆın linia v
(0)
a tabelului 5.2. Deci, coloana 6 este transpus˘a ˆın
linia de ˆınceput v
(0)
.
TABELUL 5.2
1 2 3 4 5 6
1 0 3 1 ∞ 3 ∞
2 3 0 5 8 ∞ ∞
3 1 5 0 ∞ 2 ∞
4 ∞ ∞ ∞ 0 3 2
5 3 ∞ ∞ 4 0 8
6 ∞ ∞ ∞ ∞ ∞ 0
v
(0)
∞ ∞ ∞ 2 8 0
v
(1)
11 10 10 2 6 0
succ
(1)
5 4 4 6 4 -
v
(2)
9 10 8 2 6 0
succ
(2)
5 4 5 6 4 -
v
(3)
9 10 8 2 6 0
succ
(3)
3,5 4 5 6 4 -
PASUL 1. Se calculeaz˘a elementele liniei v
(1)
.
v
(1)
1
= min{v
(0)
2
+v
12
, v
(0)
3
+v
13
, v
(0)
4
+v
14
, v
(0)
5
+v
15
, v
(0)
6
+v
16
} =
= min{∞+ 3, ∞+ 1, 2 +∞, 8 + 3, 0 +∞} = 11,
succ
(1)
1
= {5},
v
(1)
2
= min{v
(0)
1
+v
21
, v
(0)
3
+v
23
, v
(0)
4
+v
24
, v
(0)
5
+v
25
, v
(0)
6
+v
26
} =
= min{∞+ 3, ∞+ 5, 2 + 8, 8 +∞, 0 +∞} = 10,
succ
(1)
2
= {4},
v
(1)
3
= min{v
(0)
1
+v
31
, v
(0)
2
+v
32
, v
(0)
4
+v
34
, v
(0)
5
+v
35
, v
(0)
6
+v
36
} =
= min{∞+ 1, ∞+ 5, 2 +∞, 2 + 8, 0 +∞} = 10,
succ
(1)
3
= {5},
v
(1)
4
= min{v
(0)
1
+v
41
, v
(0)
2
+v
42
, v
(0)
3
+v
43
, v
(0)
5
+v
45
, v
(0)
6
+v
46
} =
= min{∞+∞, ∞+∞, ∞+∞, 8 + 3, 0 + 2} = 2,
66 TEORIA GRAFURILOR
succ
(1)
4
= {6},
v
(1)
5
= min{v
(0)
1
+v
51
, v
(0)
2
+v
52
, v
(0)
3
+v
53
, v
(0)
4
+v
54
, v
(0)
6
+v
56
} =
= min{∞+ 3, ∞+∞, ∞+∞, 2 + 4, 0 + 8} = 6,
succ
(1)
5
= {4},
v
(1)
6
= 0.
PASUL 2. Se calculeaz˘a elementele liniei v
(2)
.
v
(2)
1
= min{v
(1)
2
+v
12
, v
(1)
3
+v
13
, v
(1)
4
+v
14
, v
(1)
5
+v
15
, v
(1)
6
+v
16
} =
= min{10 + 3, 10 + 1, 2 +∞, 6 + 3, 0 +∞} = 9,
succ
(2)
1
= {5},
v
(2)
2
= min{v
(1)
1
+v
21
, v
(1)
3
+v
23
, v
(1)
4
+v
24
, v
(1)
5
+v
25
, v
(1)
6
+v
26
} =
= min{11 + 3, 10 + 5, 2 + 8, 6 +∞, 0 +∞} = 10,
succ
(2)
2
= {4},
v
(2)
3
= min{v
(1)
1
+v
31
, v
(1)
2
+v
32
, v
(1)
4
+v
34
, v
(1)
5
+v
35
, v
(1)
6
+v
36
} =
= min{11 + 1, 10 + 5, 2 +∞, 6 + 2, 0 +∞} = 8,
succ
(2)
3
= {5},
v
(2)
4
= min{v
(1)
1
+v
41
, v
(1)
2
+v
42
, v
(1)
3
+v
43
, v
(1)
5
+v
45
, v
(1)
6
+v
46
} =
= min{11 +∞, 10 +∞, 10 +∞, 6 + 3, 0 + 2} = 2,
succ
(2)
4
= {6},
v
(2)
5
= min{v
(1)
1
+v
51
, v
(1)
2
+v
52
, v
(1)
3
+v
53
, v
(1)
4
+v
54
, v
(1)
6
+v
56
} =
= min{11 + 3, 10 +∞, 10 +∞, 2 + 4, 0 + 8} = 6,
succ
(2)
5
= {4},
v
(2)
6
= 0.
APLICAT¸ II 67
PASUL 3. Se calculeaz˘a elementele liniei v
(3)
.
v
(3)
1
= min{v
(2)
2
+v
12
, v
(2)
3
+v
13
, v
(2)
4
+v
14
, v
(2)
5
+v
15
, v
(2)
6
+v
16
} =
= min{10 + 3, 8 + 1, 2 +∞, 6 + 3, 0 +∞} = 9,
succ
(3)
1
= {3, 5},
v
(3)
2
= min{v
(2)
1
+v
21
, v
(2)
3
+v
23
, v
(2)
4
+v
24
, v
(2)
5
+v
25
, v
(2)
6
+v
26
} =
= min{9 + 3, 8 + 5, 2 + 8, 6 +∞, 0 +∞} = 10,
succ
(3)
2
= {4},
v
(3)
3
= min{v
(2)
1
+v
31
, v
(2)
2
+v
32
, v
(2)
4
+v
34
, v
(2)
5
+v
35
, v
(2)
6
+v
36
} =
= min{9 + 1, 10 + 5, 2 +∞, 6 + 2, 0 +∞} = 8,
succ
(3)
3
= {5},
v
(3)
4
= min{v
(2)
1
+v
41
, v
(2)
2
+v
42
, v
(2)
3
+v
43
, v
(2)
5
+v
45
, v
(2)
6
+v
46
} =
= min{9 +∞, 10 +∞, 8 +∞, 6 + 3, 0 + 2} = 2,
succ
(3)
4
= {6},
v
(3)
5
= min{v
(2)
1
+v
51
, v
(2)
2
+v
52
, v
(2)
3
+v
53
, v
(2)
4
+v
54
, v
(2)
6
+v
56
} =
= min{9 + 3, 10 +∞, 8 +∞, 2 + 4, 0 + 8} = 6,
succ
(3)
5
= {4},
v
(3)
6
= 0.
Se observ˘a c˘a v
(2)
i
= v
(3)
i
, i = 1, . . . , 6, ceea ceˆınseamn˘a c˘a algoritmul s-a terminat.
Elementele v
(3)
i
sunt valorile minimale ale drumurilor de la fiecare vˆarf i la nodul
final 6. Cu ajutorul liniei succ
(3)
preciz˘am 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 dou˘a drumuri ¸si anume: µ
1
= [1, 3, 5, 4, 6], µ
2
= [1, 5, 4, 6] ambele
au valoarea egal˘a cu v
(3)
1
= 9.
68 TEORIA GRAFURILOR
Exercit ¸iul 5.8.3. Posibilit˘at ¸ile de comunicare ˆıntre localit˘at ¸ile 1-6 sunt repre-
zentate prin graful din figura 5.3, unde fiec˘arei muchii i se atribuie lungimea tron-
sonului respectiv. Se cere drumul de lungime minim˘a ˆıntre 2 ¸si toate celelalte noduri
ale grafului precum ¸si valoarea acestui drum.
Figura 5.3: Graf orientat.
Rezolvare. Exemplu: ˆıntre 2 ¸si 4 exist˘a trei drumuri minime ¸si anume: µ
1
:
[2, 1, 5, 3, 4], l(µ
1
) = 11a, µ
2
: [2, 1, 5, 3, 6, 4], l(µ
2
) = 11a, ¸si µ
3
: [2, 1, 5, 6, 4], l(µ
2
) =
11a.
Exercit ¸iul 5.8.4. Posibilit˘at ¸ile de comunicare ˆıntre localit˘at ¸ile 1-4 sunt repre-
zentate prin graful din figura 5.4, unde fiec˘arei muchii i se atribuie lungimea tron-
sonului respectiv. Se cere drumul de lungime minim˘a ˆıntre 1 ¸si toate celelalte noduri
ale grafului precum ¸si valoarea acestui drum.
Figura 5.4: Graf orientat.
Rezolvare. Se aplic˘a algoritmul lui Ford.
Init ¸ializare.
APLICAT¸ II 69
TABELUL 5.4
j λ
j
Init ¸ial Iterat ¸ia 1
1 λ
1
0 0
2 λ
2
∞ 2
3 λ
3
∞ 5
4 λ
4
∞ 3
Iterat ¸ia 1. Pentru fiecare arc (i, j) care verific˘a relat ¸ia λ
j
−λ
i
> l
ij
reactualiz˘am
λ
j
= λ
i
+l
ij
.
(1, 2) : λ
2
−λ
1
= ∞> l
12
⇒λ
2
= λ
1
+l
12
= 2.
(1, 4) : λ
4
−λ
1
= ∞> l
41
⇒λ
4
= λ
1
+l
14
= 3.
(2, 1) : λ
2
−λ
1
= −2 < 2.
(2, 3) : λ
3
−λ
2
= ∞> l
23
⇒λ
3
= λ
2
+l
23
= 5.
(2, 4) : λ
4
−λ
2
= 1 < l
24
.
(3, 2) : λ
2
−λ
3
= −3 < l
32
.
(3, 4) : λ
4
−λ
3
= −2 < l
34
.
(4, 2) : λ
2
−λ
4
= −1 < l
42
.
(4, 3) : λ
3
−λ
4
= 2 < l
43
.
Iterat ¸ia 2. Pentru fiecare arc (i, j) care verific˘a relat ¸ia λ
j
−λ
i
> l
ij
reactualiz˘am
λ
j
= λ
i
+l
ij
.
(1, 2) : λ
2
−λ
1
= 2 = l
12
.
(1, 4) : λ
4
−λ
1
= 3 = l
41
.
(2, 1) : λ
2
−λ
1
= −2 < l
21
.
(2, 3) : λ
3
−λ
2
= 3 = l
23
.
(2, 4) : λ
4
−λ
2
= 1 = l
24
.
(3, 2) : λ
2
−λ
3
= −3 < l
32
.
(3, 4) : λ
4
−λ
3
= −2 < l
34
.
(4, 2) : λ
2
−λ
4
= −1 < l
42
.
(4, 3) : λ
3
−λ
4
= 2 < l
43
.
Drumurile de lungime minim˘a ˆıntre nodul 1 ¸si celelalte noduri ale grafului se
reconstituie din figura 5.5. Drumul de lungime minim˘a dintre nodul 1 ¸si nodul 3
este [1, 2, 3] ¸si are valoarea 5.
70 TEORIA GRAFURILOR
Figura 5.5: Drumurile optime ˆıntre nodul 1 ¸si celelalte noduri ale grafului.
Exercit ¸iul 5.8.5. Se consider˘a graful din figura 5.6. Numerele de pe muchii
reprezint˘a distant ¸a dintre noduri. S˘a se determine rutele cele mai scurte ¸si lungimile
lor de la fiecare nod la nodul 1.
Figura 5.6: Graf orientat.
Rezolvare. Se aplic˘a algoritmul Bellman-Kalaba.
ˆ
In final rutele cele mai scurte
de la celelalte noduri ale grafului la nodul 1 se reconstituie din arcele din figura 5.7.
APLICAT¸ II 71
Figura 5.7: Reconstruct ¸ia drumurilor optime care ajung ˆın nodul 1.
Exercit ¸iul 5.8.6. Pentru graful din figura 5.8 determinat ¸i drumurile de lungime
minim˘a ˆıntre nodul 0 ¸si 7. Care este valoarea minim˘a a acestui drum?
Figura 5.8: Graf orientat.
Rezolvare. Se aplic˘a algoritmul Bellman-Kalaba sau Ford. Drumul de lungime
minim˘a dintre nodul 0 ¸si 7 obt ¸inut prin ambele metode este urm˘atorul [0, 1, 3, 5, 7].
Valoarea minim˘a a acestui drum este 37.
Exercit ¸iul 5.8.7. Se consider˘a graful din 5.9. S˘a se pun˘aˆın evident ¸˘a urm˘atoarele
elemente:
i) matricea arcelor (sau matricea conexiunilor directe);
ii) matricea drumurilor;
iii) puterea de atingere a fiec˘arui vˆarf;
iv) dac˘a graful are circuite;
iv) determinat ¸i drumurile hamiltoniene din graf.
72 TEORIA GRAFURILOR
Figura 5.9: Graf orientat.
Rezolvare. i) Matricea conexiunilor directe este:
A =
_
_
_
_
0 1 0 1
1 0 1 1
0 1 0 0
0 0 0 0
_
_
_
_
ii) Matricea drumurilor este:
D =
_
_
_
_
1 1 1 1
1 1 1 1
1 1 1 1
0 0 0 0
_
_
_
_
iii) Puterile de atingere ale fiec˘arui vˆarf al grafului sunt: p(x
1
) = 4, p(x
2
) = 4,
p(x
3
) = 4, p(x
4
) = 0.
iv) Graful are circuite, de exemplu {x
1
, x
2
, x
1
} este un circuit, deci algoritmul lui
Chen nu se poate aplica.
v) Graful avˆand circuite, pentru determinarea drumurilor hamiltoniene vom aplica
algoritmul lui Kaufmann.
PASUL 0. Matricea conexiunilor directe:
K
(1)
=
_
_
_
_
∗ (x
1
, x
2
) ∗ (x
1
, x
4
)
(x
2
, x
1
) ∗ (x
2
, x
3
) (x
2
, x
4
)
∗ (x
3
, x
2
) ∗ ∗
∗ ∗ ∗ ∗
_
_
_
_
.
PASUL 1. Matricea destinat ¸iilor posibile:
K
(0)
=
_
_
_
_
∗ x
2
∗ x
4
x
1
∗ x
3
x
4
∗ x
2
∗ ∗
∗ ∗ ∗ ∗
_
_
_
_
.
APLICAT¸ II 73
PASUL 2. Determin˘am drumurile formate din dou˘a arce din matricea:
K
(2)
= K
(1)
&K
(0)
=
_
_
_
_
(x
1
, x
2
, x
1
) ∗ ∗ (x
1
, x
2
, x
4
)
∗ (x
2
, x
1
, x
2
) ∗ (x
2
, x
1
, x
4
)
(x
3
, x
2
, x
1
) ∗ (x
3
, x
2
, x
3
) (x
3
, x
2
, x
4
)
∗ ∗ ∗ ∗
_
_
_
_
PASUL 3. Determin˘am drumurile formate din trei arce cu ajutorul matricei
K
(3)
= K
(2)
&K
(0)
:
_
_
_
_
∗ (x
1
, x
2
, x
1
, x
2
) ∗ (x
1
, x
2
, x
4
)
(x
2
, x
1
, x
2
, x
1
) (x
2
, x
1
, x
2
, x
3
) ∗ (x
2
, x
1
, x
2
, x
4
)
∗ (x
3
, x
2
, x
1
, x
2
) sau (x
3
, x
2
, x
3
, x
2
) ∗ (x
3
, x
2
, x
1
, x
4
)
∗ ∗ ∗ ∗
_
_
_
_
Algoritmul se opre¸ste pentru c˘a drumul hamiltonian (dac˘a exist˘a) are lungimea
3 = nr. noduri −1. Deci drumul hamiltonian este (x
3
, x
2
, x
1
, x
4
).
Exercit ¸iul 5.8.8. S˘a se g˘aseasc˘a drumurile hamiltoniene din graful din figura
5.10.
Figura 5.10: Graf orientat.
Rezolvare. Se aplic˘a algoritmul lui Kaufmann ¸si se obt ¸in drumurile hamiltoniene:
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
µ
1
= [1, 2, 3, 4, 6, 5],
µ
2
= [2, 3, 1, 6, 5, 4],
µ
3
= [3, 1, 2, 5, 4, 6],
µ
4
= [3, 1, 6, 2, 5, 4],
µ
5
= [5, 4, 6, 2, 3, 1].
74 TEORIA GRAFURILOR
Capitolul 6
PROBLEME DE TRANSPORT
6.1. Problema clasic˘a de transport
6.1.1. Formularea problemei
Problema de transport ˆın forma standard are forma urm˘atoare:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

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

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

i=1
a
i
=
n

j=1
b
j
.
(6.2)
Teorema 6.1.1. Condit ¸ia necesar˘a ¸si suficient˘a ca sistemul de ecuat ¸ii consi-
derat ˆın 6.1 s˘a aib˘a solut ¸ie nenegativ˘a este ca relat ¸iile 6.2 s˘a fie ˆındeplinite.
75
76 PROBLEME DE TRANSPORT
6.1.2. Algoritmul de transport (adaptarea algoritmului simplex)
Fundamente teoretice
Problema de transport se poate scrie ˆın forma matriceal˘a:
_
_
_
inf c
t
x
Ax = b
x ≥ 0
Unei probleme de transport ˆıi asociem un tabel de transport care cont ¸ine datele
numerice ale problemei de transport. Tabelul de transport 6.1 are m linii ¸si n
coloane. Fiecare celul˘a (i, j), 1 ≤ i ≤ m, 1 ≤ j ≤ n, a acestui tabel poate fi asociat˘a
cu costul unitar c
ij
, cu necunoscut˘a x
ij
, cu valoarea x
ij
a variabilei x
ij
dintr-o
anumit˘a solut ¸ie (x
ij
) a sistemului de ecuat ¸ii 6.1.
TABELUL 6.1
c
11
c
12
... c
1n
a
1
c
21
c
22
... c
2n
a
2
... ... ... ... ...
c
m1
c
m2
... c
mn
a
m
b
1
b
2
... b
n
Tabelul de transport mai cont ¸ine o coloan˘a suplimentar˘a ˆın care sunt trecute ˆın
mod obi¸snuit cantit˘at ¸ile disponibile a
i
, 1 ≤ i ≤ m, ¸si o linie suplimentar˘aˆın care sunt
trecute cererile b
j
, 1 ≤ j ≤ n.
ˆ
In celula (i, j) este trecut costul unitar c
ij
; dac˘a dorim
s˘a scriem ¸si valoarea x
ij
a variabilei x
ij
, vom ˆımp˘art ¸i celula (i, j) printr-o diagonal˘a
ˆın dou˘a p˘art ¸i ¸si vom scrie c
ij
ˆın partea superioar˘a, iar x
ij
ˆın partea inferioar˘a.
Tabelului de transport T ˆıi asociem un graf neorientat Γ avˆand drept noduri
mult ¸imea celulelor (i, j), 1 ≤ i ≤ m, 1 ≤ j ≤ n, ale tabelui de transport T ¸si drept
muchii mult ¸imile formate din dou˘a celule situate ˆıntr-o aceea¸si linie sau coloan˘a a
lui T.
ˆ
In cele ce urmeaz˘a vom considera numai acele subgrafuri part ¸iale ale lui Γ
care se obt ¸in prin unirea cu muchii a celulelor vecine, adic˘a a celulelor situate pe
o aceea¸si linie sau coloan˘a a lui T ˆıntre care nu exist˘a alte celule din mult ¸imea de
noduri ale subgrafului. Un subgraf part ¸ial de acest tip al lui Γ se nume¸ste π-graf.
Un π-graf care este un lant ¸ (ciclu) elementar avˆand cel mult o muchie ˆın fiecare
linie sau coloan˘a a tabelului de transport T va fi numit µ-lant ¸ sau µ-ciclu.
Algoritmul de transport
PASUL 0. Se determin˘a o solut ¸ie de baz˘a admisibil˘a x
ij
(vom vedea ulterior
cum anume) corespunz˘atoare unei matrice B format˘a din m + n − 1 coloane liniar
PROBLEMA CLASIC
˘
A DE TRANSPORT 77
independente ale matricei A¸si apoi mult ¸imea B a celulelor de baz˘a, dup˘a care trecem
la pasul urm˘ator.
PASUL 1. Se rezolv˘a sistemul de ecuat ¸ii:
u
i
+v
j
= c
ij
, ∀(i, j) ∈ B,
se obt ¸ine o solut ¸ie particular˘a (u
i
, v
j
) a acestui sistem ¸si se calculeaz˘a valorile z
ij

c
ij
= u
i
+v
j
−c
ij
pentru ∀(i, j) ∈ R (mult ¸imea celulelor care nu sunt ˆın baz˘a).
Dac˘a z
ij
−c
ij
≤ 0 pentru toate celulele (i, j) ∈ R, ne oprim (STOP): solut ¸ia de
baz˘a x
ij
este optim˘a.
ˆ
In caz contrar se determin˘a (s, k) ∈ R cu criteriul de intrare ˆın baz˘a:
max{z
ij
−c
ij
} = z
sk
−c
sk
¸si se trece la pasul urm˘ator.
PASUL 2. Se determin˘a µ-ciclul format de (s, k) ∈ R cu o parte din celulele din
B, se adopt˘a un sens de parcurs ¸si se numeroteaz˘a celulele sale ˆıncepˆand cu celula
(s, k). Se determin˘a apoi celula (r, t) ∈ B cu criteriul de ie¸sire din baz˘a:
min{x
ij
} =x
rt
,
unde minimul se iaˆın raport cu toate celulele (i, j) de rang par ˆın µ-ciclul determinat
anterior. Se trece apoi la pasul urm˘ator.
PASUL 3. Se consider˘a matricea

B
obt ¸inut˘a din B prin ˆınlocuirea coloanei a
rt
cu coloana a
sk
. Se determin˘a solut ¸ia de baz˘a admisibil˘a

x
ij
corespunz˘atoare lui

B
cu ajutorul formulelor de schimbare a bazei:

x
ij
=
_
_
_
x
ij
− x
rt
, dac˘a (i, j) are rang par ˆın µ −ciclu,
x
ij
+ x
rt
, dac˘a (i, j) are rang impar ˆın µ −ciclu,
x
ij
, dac˘a (i, j) nu apart ¸ine µ −ciclului.
Se trece apoi la pasul 1 ˆınlocuind B cu

B
¸si solut ¸ia x
ij
cu

x
ij
.
Observat ¸ie. Dac˘a la terminarea algoritmului avem z
ij
− c
ij
< 0 pentru toate
celulele (i, j) ∈ R, atunci solut ¸ia problemei de transport este unic˘a.
6.1.3. Determinarea unui program de baz˘a init ¸ial
Pentru a putea aplica algoritmul de transport enunt ¸at anterior este necesar s˘a
dispunem de un program de baz˘a init ¸ial. Metoda general˘a de obt ¸inere a unui pro-
gram de baz˘a este urm˘atoarea. Se fixeaz˘a o celul˘a (i, j) ¸si se atribuie variabilei x
ij
valoarea minim˘a pe care o poate lua, adic˘a valoarea:
x
ij
= min{a
i
, b
j
}.
78 PROBLEME DE TRANSPORT
Dac˘a x
ij
= a
i
, atunci se elimin˘a din tabelul de transport linia de rang i ¸si se
ˆınlocuie¸ste b
j
prin b

j
= b
j
− x
ij
. Dac˘a x
ij
= b
j
, atunci se elimin˘a din tabelul de
transport coloana de rang j ¸si se ˆınlocuie¸ste a
i
cu a

i
= a
i
− x
ij
. Dac˘a x
ij
= a
i
= b
j
,
atunci se aplic˘a, la alegere, unul dintre procedeele descrise anterior.
ˆ
In cele trei situat ¸ii prezentate se obt ¸ine un tabel de transport redus, avˆand fiecare
o linie sau o coloan˘a mai put ¸in decˆat cel init ¸ial. Urmˆand procedeul descris pe
toate tabelele reduse care se obt ¸in ˆın continuare, se determin˘a evident un program
al problemei de transport. Metoda general˘a de obt ¸inere a unui program de baz˘a
pentru problema de transport poate fi particularizat˘a dˆand diverse reguli de select ¸ie
a celulei (i, j) din tabel care se atribuie valorii x
ij
. Dintre metodele particulare de
determinare a unui program de baz˘a init ¸ial le ment ¸ion˘am pe cele care urmeaz˘a.
i) Metoda colt ¸ului de nord-vest. Aceast˘a metod˘a const˘a ˆın alegerea celulei (i, j)
situate ˆın prima linie ¸si prima coloan˘a ale tabelelor de transport utilizate.
ii) Metoda costului minim. La fiecare pas se alege celula (i, j) corespunz˘atoare
costului minim c
ij
din tabelele de transport utilizate.
6.1.4. Degenerare ¸si ciclare
Ca ¸si ˆın cazul general al problemelor de programare liniar˘a, degenerarea pro-
gramelor de baz˘a poate face s˘a apar˘a fenomenul de ciclare ˆın algoritmul de transport.
Evident, o solut ¸ie de baz˘a a problemei de transport ˆın forma standard este nedege-
nerat˘a dac˘a ¸si numai dac˘a num˘arul componentelor sale nenule este egal cu m+n−1
¸si este degenerat˘a ˆın caz contrar. Pentru recunoa¸sterea problemelor degenerate este
util urm˘atorul criteriu.
Propozit ¸ie 6.1.1. O problem˘a de transport ˆın forma standard este degenerat˘ a
dac˘a ¸si numai dac˘a exist˘a o mult ¸ime de indici M ⊂ {1, ..., m} ¸si o mult ¸ime de indici
N ⊂ {1, ..., n} astfel ˆıncˆat:

i∈M
a
i
=

j∈N
b
j.
PROBLEMA CLASIC
˘
A DE TRANSPORT 79
6.1.5. Variante ale problemei de transport
Problema de transport cu cerere excedentar˘a. Forma problemei de trans-
port cu cerere excedentar˘a este urm˘atoarea:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

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

i=1
x
ij
≤ b
j
, 1 ≤ j ≤ n,
x
ij
≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n.
unde:
_
¸
¸
_
¸
¸
_
a
i
≥ 0, 1 ≤ i ≤ m,
b
j
≥ 0, 1 ≤ j ≤ n,
m

i=1
a
i

n

j=1
b
j
.
Pentru rezolvarea acestei probleme se introduce un depozit fictiv ˆın care disponi-
bilul de resurs˘a este:
a
m+1
=
n

j=1
b
j

m

i=1
a
i
,
adic˘a tocmai excedentul cererii totale. Costurile de transport de la depozitul m+1
pot fi luate nule sau egale cu penalit˘at ¸ile unitare stabilite prin contracte cu benefi-
ciarii pentru neonorarea cererilor, dac˘a astfel de penalit˘at ¸i exist˘a. Problema devine
atunci o problem˘a standard de transport, care se rezolv˘a prin algoritmul cunoscut.
Problema de transport cu ofert˘a excedentar˘a. Forma problemei de trans-
port cu ofert˘a excedentar˘a este urm˘atoarea:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

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

i=1
x
ij
= b
j
, 1 ≤ j ≤ n,
x
ij
≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n.
unde:
_
¸
¸
_
¸
¸
_
a
i
≥ 0, 1 ≤ i ≤ m,
b
j
≥ 0, 1 ≤ j ≤ n,
m

i=1
a
i

n

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

i=1
a
i

n

j=1
b
j
,
adic˘a 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 problem˘a standard de transport, care se rezolv˘a prin algoritmul
cunoscut.
Problema de transport cu capacit˘at ¸i limitate. Forma problemei de trans-
port cu capacit˘at ¸i limitate este urm˘atoarea:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
inf
m

i=1
n

j=1
c
ij
x
ij
,
n

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

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

i=1
a
i
=
n

j=1
b
j
.
m

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

j=1
b
j
≥ a
i
, 1 ≤ i ≤ m.
Rezolvarea acestei probleme se poate face ¸si cu ajutorul algoritmului simplex ce
este prezentat ˆın subparagraful urm˘ator. Ment ¸ion˘am c˘a problema se poate aborda
¸si ca o problem˘a de flux minim.
6.1.6. Algoritmul simplex modificat
Pentru determinarea unui program init ¸ial se alege ˆın mod arbitrar o celul˘a (i, j)
¸si se atribuie lui x
ij
valoarea:

x
ij
= min{a
i
, b
j
, d
ij
}.
PROBLEMA CLASIC
˘
A DE TRANSPORT 81
Dac˘a

x
ij
= a
i
sau

x
ij
= b
j
, atunci proced˘am ˆın mod obi¸snuit. Dac˘a

x
ij
= d
ij
<
min{a
i
, b
j
}, variabila x
ij
nu este considerat˘a variabil˘a de baz˘a. Dac˘a

x
ij
= d
ij
=
min{a
i
, b
j
}, atunci variabila x
ij
nu este considerat˘a variabil˘a de baz˘a. Valorile (

x
ij
)
obt ¸inute ˆın acest mod nu constituie ˆınc˘a un program al problemei: se poate ˆıntˆampla
ca unele disponibilit˘at ¸i s˘a nu fie complet epuizate, iar unele cereri s˘a nu fie integral
satisf˘acute. Plecˆand ˆıns˘a de la valorile (

x
ij
) astfel determinate, putem obt ¸ine un
program de baz˘a pentru problema de transport cu capacit˘at ¸i limitate cu algoritmul
care urmeaz˘a.
S˘a presupunem c˘a exist˘a un depozit r, 1 ≤ r ≤ m, ˆın care a r˘amas neexpediat˘a
cantitatea de resurs˘a a

r
¸si beneficiarii s ¸si k, unde cererile au r˘amas nesatisf˘acute
cu cantit˘at ¸ile b

s
¸si b

k
; evident, avem a

r
= b

s
+b

k
. Algoritmul care transform˘a (

x
ij
)
ˆın programul de baz˘a (x
ij
) este urm˘atorul:
PASUL 1. Se adaug˘a la linia r o celul˘a suplimentar˘a ˆın care valoarea variabilei
corespunz˘atoare x
r0
este a

r
. Analog, se adaug˘a la coloanele s ¸si k cˆate o celul˘a
suplimentar˘a ˆın care valorile variabilelor corespunz˘atoare x
0s
¸si x
0k
sunt b

s
respectiv
b

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

ij
= 0 ¸si se
atribuie celulelor nou introduse costuri egale cu unitatea, adic˘a c

r0
= c

0s
= c

0k
= 1.
PASUL 2. Se rezolv˘a sistemul de ecuat ¸ii:
_
¸
¸
_
¸
¸
_
u
r
= 1,
v
s
= 1,
v
k
= 1,
u
i
+v
j
= c

ij
, (i, j) ∈ B, i = r, j = s, k.
PASUL 3. Se caut˘a cu algoritmul de transport obi¸snuit solut ¸ia optim˘a pentru
problema de la pasul 1; evident ˆın solut ¸ia optim˘a vom avea:
x
r0
= x
0s
= x
0k
= 0.
Renunt ¸˘am la celulele suplimentare ¸si revenim la costurile init ¸iale c
ij
. Solut ¸ia astfel
obt ¸inut˘a este un program de baz˘a.
Conform rezultatului general stabilit la algoritmul simplex, testul de optimalitate
este urm˘atorul: programul (x

ij
) este optim dac˘a z
ij
− c
ij
≤ 0 pentru toate celulele
secundare (i, j) pentru care x

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

ij
= d
ij.
6.1.7. Aplicat ¸ii
Exercit ¸iul 6.1.1. S˘a se g˘aseasc˘a, prin metoda colt ¸ului de N-V ¸si prin metoda
costului minim o solut ¸ie de baz˘a pentru problema de transport ale c˘arei date sunt
82 PROBLEME DE TRANSPORT
prezentate ˆın tabelul 6.2. G˘asit ¸i pentru aceaste solut ¸ii valorile corespunz˘atoare ale
funct ¸iilor obiectiv. Care solut ¸ie este mai bun˘a ¸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
Determin˘am mai ˆıntˆai o solut ¸ie de baz˘a init ¸ial˘a cu metoda N-V:
x
11
= min{11, 5} = 5, elimin˘am coloana 1,
x
12
= min{6, 9} = 6, elimin˘am linia 1,
x
22
= min{11, 3} = 3, elimin˘am coloana 2,
x
23
= min{8, 9} = 8, elimin˘am linia 2,
x
33
= min{1, 8} = 1, elimin˘am coloana 3,
x
34
= min{7, 7} = 7.
Valoarea funct ¸iei obiectiv este:
7 · 5 + 6 · 8 + 3 · 4 + 5 · 8 + 1 · 1 + 2 · 7 = 150.
Determin˘am o solut ¸ie de baz˘a init ¸ial˘a prin metoda costului minim:
x
33
= min{8, 9} = 8, elimin˘am lina 3,
x
21
= min{11, 5} = 5, elimin˘am coloana 1,
x
14
= min{11, 7} = 7, elimin˘am coloana 4,
x
22
= min{6, 9} = 6, elimin˘am linia 2,
x
13
= min{4, 1} = 1, elimin˘am coloana 3,
x
12
= min{3, 3} = 3.
Valoarea funct ¸iei obiectiv este:
8 · 3 + 5 · 1 + 3 · 7 + 2 · 5 + 4 · 6 + 1 · 8 = 92.
Evident solut ¸ia de baz˘a obt ¸inut˘a prin metoda costului minim este mai bun˘a deoarece
costul corespunz˘ator acesteia este mai mic.
Exercit ¸iul 6.1.2. S˘a se g˘aseasc˘a o solut ¸ie de baz˘a pentru problema de trans-
port echilibrat˘a ale c˘arei date sunt prezentate ˆın tabelul 6.3. G˘asit ¸i valoarea cores-
punz˘atoare a funct ¸iei obiectiv. G˘asit ¸i solut ¸ia optim˘a a problemei.
TABELUL 6.3
1 3 2 10
3 1 2 5
5 3 7
PROBLEMA CLASIC
˘
A DE TRANSPORT 83
R˘aspuns.
PASUL 0. Solut ¸ia init ¸ial˘a de baz˘a determinat˘a prin metoda colt ¸ului de N-V
este:
x
11
= min{5, 10} = 5, elimin˘am coloana 1,
x
12
= min{3, 5} = 3, elimin˘am coloana 2,
x
13
= min{7, 2} = 2, elimin˘am linia 1,
x
23
= min{5, 5} = 5.
Costul aferent acestei solut ¸ii este C = 28.
Figura 6.1: Solut ¸ia init ¸ial˘a ¸si marcarea celulelor din µ-ciclu.
Iterat ¸ia 1, PASUL 1. i) Rezolv˘am sistemul (o solut ¸ie particular˘a care se obt ¸ine
setˆand u
1
= 0):
u
i
+v
j
= c
ij
∀(i, j) ∈ B,
Solut ¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a
se trec elementele u
i
, iar pe orizontal˘a se trec elementele v
j
).
ii) Calcul˘am elementele:
z
ij
−c
ij
= u
i
+v
j
−c
ij
∀(i, j) ∈ R,
care se trec ˆın colt ¸urile din dreapta sus ale fiec˘arei celule secundare.
iii) Calcul˘am (criteriul de optim):
max
(i,j)∈R
(z
ij
−c
ij
) = z
22
−c
22
= 2 > 0
Criteriul de optim nu este ˆındeplinit, deci celula (2, 2) intr˘a ˆın baz˘a.
Iterat ¸ia 1, PASUL 2. Pentru a determina care celul˘a iese din baz˘a determin˘am
µ-ciclul format din celula (2, 2) cu o parte a celulelor din baz˘a:
(2, 2), (2, 3)

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

, (2, 2).
Se adopt˘a un sens de parcurs al acestui µ-ciclu marcˆandu-se cu ∗ celulele de rang
par. Condit ¸ia de ie¸sire din baz˘a:
84 PROBLEME DE TRANSPORT
min

x
ij
=x
12
,
deci celula (1, 2) iese din baz˘a.
Iterat ¸ia 1, PASUL 3. Aplicˆand formulele de schimbare a bazei obt ¸inem noua
solut ¸ie. Costul corespunz˘ator acesteia este:
C
1
= 22,
care este mai mic decˆat costul anterior C
0
.
Repet˘am pa¸sii anteriori:
Iterat ¸ia 2, PASUL 1. i) Rezolv˘am sistemul (o solut ¸ie particular˘a care se obt ¸ine
setˆand u
1
= 0):
u
i
+v
j
= c
ij
∀(i, j) ∈ B,
Solut ¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a
se trec elementele u
i
, iar pe orizontal˘a se trec elementele v
j
).
ii) Calcul˘am elementele:
z
ij
−c
ij
= u
i
+v
j
−c
ij
∀(i, j) ∈ R,
care se trec ˆın colt ¸urile din dreapta sus ale fiec˘arei celule secundare.
Figura 6.2: Solut ¸ia final˘a.
iii) Calcul˘am (criteriul de optim):
max
(i,j)∈R
(z
ij
−c
ij
) = z
12
−c
12
= −2 < 0,
solut ¸ia este optim˘a, iar aceasta este: x
11
= 5, x
13
= 5, x
22
= 3, x
23
= 2.
Exercit ¸iul 6.1.3. S˘a se g˘aseasc˘a o solut ¸ie de baz˘a pentru problema de trans-
port echilibrat˘a ale c˘arei date sunt prezentate ˆın tabelul 6.4. G˘asit ¸i valoarea cores-
punz˘atoare a funct ¸iei obiectiv. G˘asit ¸i solut ¸ia optim˘a a problemei.
PROBLEMA CLASIC
˘
A DE TRANSPORT 85
TABELUL 6.4
2α 3α 4α α 2β
3α 6α 2α 4α 3β
α 4α 5α 3α λ
β 7β β 6β
R˘aspuns. Cantitatea disponibil˘a trebuie s˘a fie egal˘a cu cererea deci: 15β = 5β+λ
de unde λ = 10β.
PASUL 0. Determin˘am o solut ¸ie de baz˘a prin metoda costului minim. Deci:
x
31
= min{β; 10β} = β, elimin˘am coloana 1 din tabelul de transport,
x
14
= min{7β; 2β} = 2β, elimin˘am linia 1 din tabelul de transport,
x
23
= min{β; 3β} = β, elimin˘am coloana 3 din tabelul de transport,
x
34
= min{4β; 9β} = 4β, elimin˘am coloana 4 din tabelul de transport,
x
32
= min{7β; 5β} = 5β, elimin˘am linia 3 din tabelul de transport,
x
22
= min{2β; 2β} = 2β, elimin˘am coloana 1 din tabelul de transport.
Costul de transport corespunz˘ator acestei solut ¸ii este:
C
0
= αβ + 2αβ + 2αβ + 12αβ + 20αβ + 12αβ = 49αβ.
Iterat ¸ia 1, PASUL 1. i) Rezolv˘am sistemul (o solut ¸ie particular˘a care se obt ¸ine
setˆand u
1
= 0):
u
i
+v
j
= c
ij
∀(i, j) ∈ B,
Solut ¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a
se trec elementele u
i
, iar pe orizontal˘a se trec elementele v
j
).
ii) Calcul˘am elementele:
z
ij
−c
ij
= u
i
+v
j
−c
ij
∀(i, j) ∈ R,
care se trec ˆın colt ¸urile din dreapta sus ale fiec˘arei celule secundare.
iii) Calcul˘am (criteriul de optim):
max
(i,j)∈R
(z
ij
−c
ij
) = z
24
−c
24
= α > 0.
Criteriul de optim nu este ˆındeplinit, deci celula (2, 4) intr˘a ˆın baz˘a.
Iterat ¸ia 1, PASUL 2. Pentru a determina care celul˘a iese din baz˘a determin˘am
µ-ciclul format din celula (2, 4) cu o parte a celulelor din baz˘a:
(2, 4), (3, 4)

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

, (2, 4).
86 PROBLEME DE TRANSPORT
Figura 6.3: µ-ciclul format de celula (2,4) cu o parte a celulelor din baz˘a, celulele
de rang par sunt marcate cu ∗.
Se adopt˘a un sens de parcurs al acestui µ-ciclu marcˆandu-se cu ∗ celulele de rang
par. Condit ¸ia de ie¸sire din baz˘a:
min

x
ij
=x
24
,
deci celula (2, 2) iese din baz˘a.
Iterat ¸ia 1, PASUL 3. Aplicˆand formulele de schimbare a bazei obt ¸inem noua
solut ¸ie. Costul corespunz˘ator acesteia este:
C
1
= 47αβ,
care este mai mic decˆat costul anterior C
0
.
Repet˘am pa¸sii anteriori:
Iterat ¸ia 2, PASUL 1. i) Rezolv˘am sistemul (o solut ¸ie particular˘a care se obt ¸ine
setˆand u
1
= 0):
u
i
+v
j
= c
ij
∀(i, j) ∈ B,
Solut ¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a
se trec elementele u
i
, iar pe orizontal˘a se trec elementele v
j
).
Figura 6.4: Noua solut ¸ie de baz˘a. Aceasta este optim˘a.
PROBLEMA CLASIC
˘
A DE TRANSPORT 87
ii) Calcul˘am elementele:
z
ij
−c
ij
= u
i
+v
j
−c
ij
∀(i, j) ∈ R,
care se trec ˆın colt ¸urile din dreapta sus ale fiec˘arei celule secundare.
iii) Calcul˘am (criteriul de optim):
max
(i,j)∈R
(z
ij
−c
ij
) = z
21
−c
21
= −α < 0,
solut ¸ia este optim˘a, iar aceasta este:
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
x
14
= 2β,
x
23
= β,
x
14
= 2β,
x
31
= β,
x
32
= 7β,
x
34
= 2β.
Costul minim va fi 47αβ.
Exercit ¸iul 6.1.4. S˘a se g˘aseasc˘a, prin metoda colt ¸ului de N-V ¸si prin metoda
costului minim, o solut ¸ie de baz˘a pentru problema de transport ale c˘arei date sunt
prezentate ˆın tabelul 6.5. G˘asit ¸i pentru aceaste solut ¸ii valorile corespunz˘atoare ale
funct ¸iilor obiectiv. Care solut ¸ie este mai bun˘a ¸si de ce? G˘asit ¸i solut ¸ia optim˘a a
problemei.
TABELUL 6.5
8 3 5 2 10
4 1 6 7 15
1 9 4 3 25
5 10 20 15
Exercit ¸iul 6.1.5. S˘a se g˘aseasc˘a o solut ¸ie de baz˘a pentru problema de trans-
port echilibrat˘a ale c˘arei date sunt prezentate ˆın tabelul 6.6. G˘asit ¸i valoarea cores-
punz˘atoare a funct ¸iei obiectiv. G˘asit ¸i solut ¸ia optim˘a a problemei.
TABELUL 6.6
8α 3α 5α 2α 10β
4α α 6α 7α 15β
α 9α 4α 3α λ
5β 10β 20β 15β
88 PROBLEME DE TRANSPORT
R˘aspuns. Se determin˘a λ = 25β. Valoarea minim˘a a costului este 140αβ, iar
solut ¸ia optim˘a este: x
14
= 10β, x
22
= 10β, x
23
= 5β, x
31
= 5β, x
33
= = 15β,
x
34
= 5β.
Exercit ¸iul 6.1.6. S˘a se g˘aseasc˘a o solut ¸ie de baz˘a pentru problema de transport
ale carei date sunt prezentate ˆın tabelul 6.7. Costurile unitare de penalizare pentru
nesatisfacerea cererii sunt egale cu 2, iar costurile de stocare sunt nule. G˘asit ¸i
valoarea corespunz˘atoare a funct ¸iei obiectiv. G˘asit ¸i solut ¸ia optim˘a a problemei.
TABELUL 6.7
2 3 4 1 2
3 6 2 4 3
1 4 5 3 λ
1 7 1 6
R˘aspuns. Pentru λ < 10 problema este o problem˘a de transport cu cerere exce-
dentar˘a (cererea este mai mare ca oferta). Vom introduce un depozit fictiv ˆın care
avem 10 −λ. Noul tabel de transport va fi tabelul 6.8:
TABELUL 6.8
2 3 4 1 2
3 6 2 4 3
1 4 5 3 λ
2 2 2 2 10 −λ
1 7 1 6
Noua problem˘a de transport este echilibrat˘a ¸si se rezolv˘a cu algoritmul cunoscut.
Pentru λ = 10 problema este o problem˘a de transport echilibrat˘a a c˘arei rezolvare
se face cu ajutorul algoritmului cunoscut.
Pentru λ > 10 problema este o problem˘a de transport cu ofert˘a excedentar˘a
(oferta este mai mare ca cererea). Vom introduce un consumator fictiv cu o cerere
de λ −10. Noul tabel de transport va fi tabelul 6.9:
TABELUL 6.9
2 3 4 1 0 2
3 6 2 4 0 3
1 4 5 3 0 λ
1 7 1 6 λ −10
Noua problem˘a de transport este echilibrat˘a ¸si se rezolv˘a cu algoritmul cunoscut.
FLUX MAXIM INTR-O RET¸ EA DE TRANSPORT 89
Exercit ¸iul 6.1.7. Pentru ce valoare a costului unitar c problema ale c˘arei date
sunt prezentate ˆın tabelul 6.10 are optimul egal cu 140?
TABELUL 6.10
8 3 5 2 10
4 1 c 7 15
1 9 4 3 25
5 10 20 15
6.2. Flux maxim intr-o ret ¸ea de transport
6.2.1. Ret ¸ele de transport
ˆ
In acest paragraf vom reveni la problema de transport. Aceasta va fi abordat˘a
din perspectiva teoriei grafurilor.
Definit ¸ia 6.2.1. O ret ¸ea de transport flux este un graf orientat G = (X, Γ) ˆın
care fiecare muchie (u, v) ∈ Γ are o capacitate c(u, v) ≥ 0. Dac˘a (u, v) / ∈ Γ, atunci
c(u, v) = 0.
Fie s nodul surs˘a ¸si t nodul destinat ¸ie.
Definit ¸ia 6.2.2. Fluxul ϕ : X×X →Reste o funct ¸ie real˘a ce satisface urm˘atoarele
propriet˘at ¸i:
i) restrict ¸ii de capacitate: pentru orice u, v ∈ X, ϕ(u, v) ≤ c(u, v) (un arc care
realizeaz˘a egalitate se nume¸ste arc saturat);
ii) antisimetrie: pentru orice u, v ∈ X, ϕ(u, v) = −ϕ(v, u);
iii) conservarea fluxului: pentru orice u ∈ X −{s, t} are loc:

v∈X
ϕ(u, v) = 0.
Cantitatea ϕ(u, v), poate fi pozitiv˘a sau negativ˘a ¸si se nume¸ste fluxul de ret ¸ea de
la u la v.
Definit ¸ia 6.2.3. Valoarea fluxului Φ este definit˘a ca:
|Φ| =

v∈X
ϕ(s, v)
sau, cu alte cuvinte, valoarea fluxului este fluxul total de la surs˘a.
90 PROBLEME DE TRANSPORT
Problema fluxului maximˆıntr-un graf G, de la un nod surs˘a s la un nod destinat ¸ie
t, ˆıntr-o ret ¸ea de transport, const˘a ˆın determinarea unui flux maxim de la s la t.
6.2.2. Algoritmul Ford-Fulkerson
ˆ
In acest paragraf prezent˘am metoda Ford-Fulkerson de rezolvare a problemei
fluxului maxim, respectiv a fluxului minim. Este vorba mai degrab˘a de o metod˘a
decˆat de un algoritm pentru c˘a suport˘a mai multe implement˘ari cu timpi de rulare
diferit ¸i. Metoda Ford-Fulkerson face apel la trei idei importante care sunt relevante
pentru multe dintre problemele de grafuri: flux compatibil, drum ¸si t˘aietur˘a de
capacitate minim˘a.
Algoritmul de rezolvare a problemei de flux maxim
PASUL 1.
ˆ
In cadrul acestei prime etape se urm˘are¸ste construirea unui flux
compatibil. Pentru aceasta se consider˘a drumurile nesaturate de la sursa s la
destinat ¸ia t. Fie µ
i
un drum nesaturat. Fluxul propagat de-a lungul acestui drum
este dat de:
ϕ
i
= min
(u,v)∈µ
i
[c(u, v) −ϕ(u, v)].
Vom obt ¸ine un nou flux care satureaz˘a cel put ¸in un arc cu relat ¸ia:
ϕ(u, v) =
_
ϕ(u, v) +ϕ
i
cˆand (u, v) ∈ µ
i
ϕ(u, v) cˆand (u, v) / ∈ µ
i
.
Dac˘a ret ¸eaua de transport cont ¸ine rute neorientate (muchii) ˆın identificarea aces-
tor drumuri vom avea grij˘a ca o rut˘a neorientat˘a s˘a nu fie folosit˘a decˆat ˆıntr-un
singur sens. Astfel, odat˘a cu identificarea unui drum se orienteaz˘a ¸si rutele. Pe
fiecare arc se ˆınsumeaz˘a fluxurile propagate.
Fluxul propagat ˆın ret ¸ea este egal cu suma fluxurilor de-a lungul drumurilor
identificate:
Φ =

i
ϕ
i
.
PASUL 2.
ˆ
In cadrul etapei a doua se determin˘a fluxul de valoare maxim˘a cu
ajutorul urm˘atorului procedeu de marcare:
i) se marcheaz˘a intrarea s cu [+];
ii) dac˘a nodul i este marcat ¸si (i, j) ∈ Γ cu ϕ(i, j) < c(i, j), atunci nodul j se
marcheaz˘a cu [+i];
iii) dac˘a nodul j este marcat ¸si (i, j) ∈ Γ cu ϕ(i, j) > 0, atunci nodul i se
marcheaz˘a cu [−j];
FLUX MAXIM INTR-O RET¸ EA DE TRANSPORT 91
iv) dac˘a i este un nod marcat ¸si (i, j) este arc saturat, atunci nodul j nu se
marcheaz˘a.
Dac˘a se reu¸se¸ste ca ie¸sirea t s˘a fie marcat˘a, atunci exist˘a un drum sau lant ¸ de
la s la t. De-a lungul acestui drum sau lant ¸ notat cu µ
k
se propag˘a un flux dat de
relat ¸ia:
ϕ
k
= min( min
(u,v)∈B
(c(u, v) −ϕ(u, v)), min
(u,v)∈C
ϕ(u, v)), ϕ
k
> 0,
unde B este mult ¸imea arcelor pe care se execut˘a marcaj de tip ii), iar C este mult ¸imea
arcelor pe care se execut˘a marcaj de tip iii).
Se obt ¸ine un nou flux ˆımbun˘at˘at ¸it, cu relat ¸ia:
ϕ(u, v) =
_
_
_
ϕ(u, v) +ϕ
k
cˆand (u, v) ∈ B
ϕ(u, v) −ϕ
k
cˆand (u, v) ∈ C
ϕ(u, v) ˆın rest.
Dac˘a nu se mai poate marca nodul de ie¸sire t al ret ¸elei, atunci algoritmul s-a
terminat. Suma fluxurilor propagate de-a lungul drumurilor ¸si lant ¸urilor care unesc
nodul de intrare s cu nodul de ie¸sire t, reprezint˘a fluxul de valoare maxim˘aˆın ret ¸eaua
de transport.
PASUL 3. Se determin˘a t˘aietura de capacitate minim˘a.
Fie A mult ¸imea nodurilor nemarcate ale ret ¸elei, conform procedeului de mar-
care din pasul 2. Mult ¸imea arcelor (i, j) cu i / ∈ A ¸si j ∈ A (incidente spre inte-
rior mult ¸imii A) notat˘a cu ∪
A
se va numi t˘aietur˘a de capacitate minim˘a ˆın graf.
Aceasta reprezint˘a o granit ¸˘a ˆıntre nodurile marcate ¸si nodurile nemarcate. Capac-
itatea t˘aieturii se noteaz˘a c(∪
A
) ¸si se define¸ste ca fiind suma capacitatilor arcelor
sale:
c(∪
A
) =

(u,v)∈∪A
c(u, v).
Conform teoremei Ford-Fulkerson, ˆıntr-o ret ¸ea de transport dat˘a, fluxul de valoare
maxim˘a este egal cu valoarea t˘aieturii de valoare minim˘a, adic˘a:
max
ϕ
Φ(ϕ) = min
s/ ∈A,t∈A
c(∪
A
).
T˘aietura de capacitate minim˘a reprezint˘a ¸strangularea ˆın graf. Arcele ei fiind
saturate, ˆınseamn˘a c˘a pentru m˘arirea fluxului propagat trebuie m˘arit˘a capacitatea
unuia sau mai multor arce ale t˘aieturii.
Observat ¸ii:
i) Operat ¸ia de marcare este operat ¸ia de decizie asupra optimalitat ¸ii.
ii) T˘aietura de capacitate minim˘a are dublu rol ¸si anume:
-verific˘a rezultatul prin intermediul teoremei Ford-Fulkerson;
-indic˘a locul unde trebuie umblat pentru a m˘ari capacitatea fluxului.
92 PROBLEME DE TRANSPORT
Algoritmul de rezolvare a problemei de flux minim
Pentru a obt ¸ine un flux de valoare minim˘a se induce ˆın ret ¸ea un flux arbitrar cu
condit ¸ia ϕ(u, v) ≥ c(u, v), pentru fiecare arc (u, v).
ˆ
In vederea determin˘arii fluxului de valoare minim˘a se consider˘a pentru ˆınceput
lant ¸urile de la nodul final t la nodul de ˆınceput s dup˘a urm˘atorul procedeu de
marcare:
i) nodul final t se marcheaz˘a cu [+t];
ii) dac˘a j este nod marcat, (i, j) arc ¸si ϕ(i, j) > c(i, j), atunci nodul i se marcheaz˘a
cu [−j];
iii) dac˘a i este nod marcat ¸si (i, j) arc, atunci nodul j se marcheaz˘a cu [+i].
Dac˘a se reu¸se¸ste marcarea nodului de ˆınceput s ˆınseamn˘a c˘a s-a g˘asit un lant ¸ µ
de-a lungul c˘aruia fluxul poate fi diminuat.
Dac˘a B este mult ¸imea arcelor din lant ¸ul µ din categoria ii) ¸si
θ = min
(u,v)∈B
[ϕ(u, v) −c(u, v)],
atunci noul flux diminuat este:
ϕ(u, v) =
_
_
_
ϕ(u, v) +θ cˆand (u, v) ∈ B
ϕ(u, v) −θ cˆand (u, v) ∈ µ, (u, v) / ∈ B
ϕ(u, v) ˆın rest.
Dac˘a nu se mai reu¸se¸ste marcarea nodului deˆınceput s, ˆınseamn˘a c˘a nu mai exist˘a
nici un lant ¸ de-a lungul c˘aruia fluxul s˘a poat˘a fi diminuat, deci s-a g˘asit fluxul de
valoare minim˘a.
6.2.3. Problema de transport ca problem˘a de flux maxim
ˆ
In acest paragraf vom vedea c˘a problema clasic˘a de transport se poate modela ca
o problem˘a de flux maxim. Pentru a fixa ideile s˘a presupunem c˘a avem m centre de
aprovizionare ¸si n centre de consum (beneficiari), iar transportul se face cu ajutorul
unor sisteme limitate pe fiecare direct ¸ie d
ij
. Vom construi un graf orientat de la cele
m depozite la cei n beneficiari, valoarea fiec˘arui arc fiind egal˘a cu valoarea d
ij
, un
nod de intrare X
input
¸si un nod de ie¸sire din ret ¸ea X
output
cu leg˘atur˘a la fiecare
din depozite respectiv beneficiari, valoarea fiec˘arui arc fiind egal˘a cu a
i
respectiv b
j
.
Problema ce urmeaz˘a a fi rezolvat˘a este o problem˘a de flux maxim.
FLUX MAXIM INTR-O RET¸ EA DE TRANSPORT 93
6.2.4. Aplicat ¸ii
Exercit ¸iul 6.2.1. Un proces economic dispune de o ret ¸ea de tranport de genul
celei din figura 6.5. Capacit˘at ¸ile de trasport sunt cele indicate pe figur˘a. Care este
fluxul maxim propagat ˆın sistem ˆıntre punctele 1 ¸si 9? Care este fluxul de la nodul
3 la 5?
Figura 6.5: Flux ˆıntre dou˘a noduri.
R˘aspuns. Se propag˘a un flux maximˆın ret ¸eaua de transport de la nodul 1 la nodul
9. Pentru aceasta se genereaz˘a drumuri de la nodul 1 la nodul 9 (rute orientate, ˆın
acela¸si sens) care se satureaz˘a.
ˆ
In identificarea acestor drumuri vom avea grij˘a ca
o rut˘a neorientat˘a s˘a nu fie folosit˘a decˆat ˆıntr-un singur sens. Astfel, se indic˘a ˆın
continuare aceste drumuri, precum ¸si fluxul propagat pe fiecare dintre ele. Odat˘a
cu identificarea unui drum se orienteaz˘a ¸si rutele. Pe fiecare arc se ˆınsumeaz˘a ¸si
fluxurile propagate. Obt ¸inem deci drumurile:
µ
1
= (1
10
→2
5
→6
10
→8
10
→9), ϕ
1
= 5.
µ
2
= (1
5
→2
4
→7
6
→6
5
→8
5
→9), ϕ
2
= 4.
µ
3
= (1
1
→2
2
→3
3
→7
2
→6
1
→8
1
→9), ϕ
3
= 1.
µ
4
= (1
8
→3
2
→7
8
→9), ϕ
4
= 2.
µ
5
= (1
6
→3
5
→5
2
→7
6
→9), ϕ
5
= 2.
µ
6
= (1
4
→3
3
→5
10
→9), ϕ
6
= 3.
µ
7
= (1
1
→3
5
→4
6
→5
7
→9), ϕ
7
= 1.
µ
8
= (1
10
→4
5
→5
6
→9), ϕ
8
= 5.
94 PROBLEME DE TRANSPORT
ˆ
In acest moment, toate drumurile de la nodul 1 la nodul 9 cont ¸in rute orientate
(fig. 6.6) ¸si fiecare drum are cel put ¸in o rut˘a saturat˘a. Fluxul propagat de-a lungul
acestor drumuri este egal cu: Φ =
8

i=1
ϕ
i
= 23.
Figura 6.6: Rute orientate.
ˆ
In etapa urm˘atoare vom aplica procedeul de marcare. Astfel, urm˘atoarele noduri
sunt marcate ca ˆın figura 6.7.
Figura 6.7: Marcarea nodurilor.
FLUX MAXIM INTR-O RET¸ EA DE TRANSPORT 95
Nodul final 9 nu poate fi marcat, deci fluxul propagat este maxim. Mult ¸imea
nodurilor nemarcate este: A = {5, 6, 7, 8, 9}, t˘aietura de capacitate minim˘a cuprinde
arcele:

A
= {(3, 5), (4, 5), (2, 6), (2, 7), (3, 7)},
cu valoarea capacit˘at ¸ii: c(∪
A
) = 5 + 6 + 5 + 4 + 3 = 23.
Se observ˘a c˘a valoarea capacit˘at ¸ii t˘aieturii minime este egal˘a cu valoarea maxim˘a
a fluxului, ceea ce confirm˘a, conform teoremei Ford-Fulkerson, c˘a fluxul este maxim.
Prin arcul [3, 5] se propag˘a un flux de 5 fiind la capacitate maxim˘a.
Sintaxa MAPLE pentru rezolvarea acestei probleme este:
> with(networks) :
> new(G) :
> addvertex(1, 2, 3, 4, 5, 6, 7, 8, 9, G) :
> addedge([{1, 2}, {1, 3}, {1, 4}, {2, 6}, {2, 7}, {2, 3}, {3, 4},
{3, 7}, {3, 5}, {6, 7}, {6, 8}, {4, 5}, {5, 7}, {5, 9}, {7, 8}, {7, 9}, {8, 9}]);
> weights = [10, 8, 10, 5, 4, 2, 5, 3, 5, 6, 10, 6, 2, 10, 3, 8, 10], G);
> flow(G, 1, 9);
Orice cantitate suplimentar˘a de flux trebuie s˘a treac˘a prin una sau mai multe
arce ale t˘aieturii. S˘a presupunem c˘a se ˆınlocuie¸ste conducta ˆıntre nodurile 2 ¸si 7 de
capacitate 4 cu una de capacitate 7.
Prin aplicarea procedeului de marcare se obt ¸ine lant ¸ul din figura 6.8, cu φ = 1.
Figura 6.8: Lant ¸ obt ¸inut ˆın urma procesului de marcare.
Fluxul propagat este conform figurii 6.9. Arcele [2, 3] ¸si [3, 4] nu sunt utilizate.
96 PROBLEME DE TRANSPORT
Figura 6.9: Flux propagat.
Observ˘am ˆın figur˘a c˘a drumul:
µ = (1
4
→4
5
→3
2
→2
2
→7
3
→9), ϕ = 2.
Situat ¸ia este prezentat˘a ˆın figura 6.10, iar fluxul propagat este egal cu 26.
Figura 6.10: Flux propagat ¸si t˘aietura de capacitate minim˘a.
Noua t˘aietur˘a de capacitatea egal˘a cu 26, are valoarea minim˘a ¸si cuprinde arcele:
{(1, 2), (3, 2), (3, 7), (3, 5), (4, 5)}
FLUX MAXIM INTR-O RET¸ EA DE TRANSPORT 97
Exercit ¸iul 6.2.2. Se consider˘a ret ¸eaua 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 pus˘a ˆın evident ¸˘a t˘aietura de capacitate minim˘a.
R˘aspuns. La pasul 1 se genereaz˘a rute orientate de la nodul 1 la nodul 5 care se
satureaz˘a.
µ
1
: 1
40α
−→2
15α
−→3
22α
−→5, ϕ
1
= min{40α, 15α, 22α} = 15α;
µ
2
: 1
25α
−→2

−→5, ϕ
2
= min{25α, 8α} = 8α;
µ
3
: 1
17α
−→2
12α
−→4
12α
−→3

−→5, ϕ
3
= min{17α, 12α, 12α, 7α} = 7α;
µ
4
: 1
18α
−→4
18α
−→5, ϕ
4
= min{18α, 18α} = 18α;
Fluxul este Φ =
4

i=1
ϕ
i
= 48α.
Pasul 2 const˘a ˆın marcarea nodurilor. Nodul final nu se poate marca, deci fluxul
este maxim (fig.6.12).
Mult ¸imea nodurilor nemarcate este: A = {5}.
Figura 6.12: Nodul final 5 nu poate fi marcat, deci fluxul nu este maxim.
98 PROBLEME DE TRANSPORT
T˘aietura de capacitate maxim˘a este: ∪
A
= {(4, 5), (2, 5), (3, 5)}, iar capacitatea
acesteia este c(∪
A
) = 48α ceea ce confirm˘a, conform teoremei Ford-Fulkerson, c˘a
fluxul este maxim. Pentru a m˘ari fluxul trebuie m˘arit˘a capacitatea unuia sau a mai
multor arce ale t˘aieturii de capacitate minim˘a.
Exercit ¸iul 6.2.3. Un anume tip de produs este disponibil ˆın trei depozite ˆın
cantit˘at ¸ile de 30, 40 respectiv 50 t. Acesta este solicitat ˆın dou˘a centre de consumˆın
cantit˘at ¸ile de 40 respectiv 80 t.
ˆ
Intre surs˘a ¸si destinat ¸ie exist˘a tronsoane directe, iar
transportul se face cu mijloace auto cu capacit˘at ¸i limitate (tonaj) conform tabelului
6.11.
TABELUL 6.11
c
1
c
2
d
1
10 2
d
2
20 −
d
3
10 20
S˘a se determine un plan optim de transport.
R˘aspuns. Codific˘am problema conform grafului din figura 6.13. Pentru aceasta
am introdus nodul d care constituie intrarea ˆın ret ¸ea ¸si nodul c care constituie ie¸sirea
din ret ¸eaua de transport.
Figura 6.13: Codificarea problemei sub forma unei probleme de flux maxim.
Problema se rezolv˘a cu ajutorul algoritmului Ford-Fulkerson. Se propag˘a un flux
maxim ˆın ret ¸eaua de transport de la nodul d (input) la nodul c (output). Pentru
aceasta se genereaz˘a drumuri de la nodul d la nodul c (rute orientate, ˆın acela¸si
FLUX MAXIM INTR-O RET¸ EA DE TRANSPORT 99
sens) care se satureaz˘a.
ˆ
In identificarea acestor drumuri vom avea grij˘a ca o rut˘a
neorientat˘a s˘a nu fie folosit˘a decˆat ˆıntr-un singur sens. Astfel, se indic˘aˆın continuare
aceste drumuri precum ¸si fluxul propagat pe fiecare dintre ele. Odat˘a cu identificarea
unui drum se orienteaz˘a ¸si rutele. Pe fiecare arc se ˆınsumeaz˘a ¸si fluxurile propagate.
Obt ¸inem deci drumurile:
µ
1
: d
30
−→d
1
10
−→c
1
40
−→c, ϕ
1
= min{30, 10, 40} = 10,
µ
2
: d
20
−→d
1
2
−→c
2
80
−→c, ϕ
2
= min{20, 2, 80} = 2,
µ
3
: d
40
−→d
2
20
−→c
1
30
−→c, ϕ
3
= min{40, 20, 30} = 20,
µ
4
: d
50
−→d
3
10
−→c
1
10
−→c, ϕ
4
= min{50, 10, 10} = 10,
µ
5
: d
40
−→d
3
20
−→c
2
78
−→c, ϕ
5
= min{40, 20, 78} = 20.
ˆ
In acest moment, toate drumurile de la nodul c la nodul d cont ¸in rute orientate
¸si fiecare drum are cel put ¸in o rut˘a saturat˘a. Fluxul propagat de-a lungul acestor
drumuri este egal cu:
Φ =
5

i=1
ϕ
i
= 62.
ˆ
In etapa urm˘atoare vom aplica procedeul de marcare. Astfel, urm˘atoarele noduri
sunt marcate ca ˆın figura 6.14.
Figura 6.14: Marcarea nodurilor. Nodul final nu poate fi marcat deci fluxul este
maxim.
Nodul final d nu poate fi marcat, deci, fluxul propagat este maxim. Mult ¸imea
nodurilor nemarcate este:
A = {d
1
, d
2
, d},
100 PROBLEME DE TRANSPORT
¸si t˘aietura de capacitate maxim˘a cuprinde arcele:

A
= {(c
1
, d
1
), (c
1
, d
2
), (c
2
, d
1
), (c
3
, d
1
), (c
3
, d
2
)},
cu valoarea capacit˘at ¸ii:
c(∪
A
) = 10 + 2 + 20 + 10 + 20 = 62.
Se observ˘a c˘a valoarea capacit˘at ¸ii t˘aieturii minime este egal˘a cu valoarea maxim˘a
a fluxului, ceea ce confirm˘a, conform teoremei Ford-Fulkerson, c˘a fluxul este maxim
(fig. 6.15).
Figura 6.15: T˘aietura de capacitate minim˘a ¸si fluxul propagat.
Observ˘am c˘a cererea nu poate fi satisf˘acut˘a, deci pentru m˘arirea capacit˘at ¸ii tre-
buie m˘arit˘a capacitatea unuia din arcele t˘aieturii de capacitate minim˘a.
Exercit ¸iul 6.2.4. S˘a se scrie un program MAPLE pentru rezolvarea problemelor
de flux maxim ˆıntr-o ret ¸ea de transport. Verificat ¸i rezultatul cu teorema Ford-
Fulkerson.
R˘aspuns. Pentru fixarea ideilor vom exemplifica programul pe problema 6.2.1.
Vom indica atˆat sintaxa MAPLE (>) cˆat ¸si comentariile corespunz˘atoare (italic).
Se init ¸ializeaz˘a: lista de vˆarfuri, lista muchiilor, lista ponderilor, nodul init ¸ial s
¸si nodul final t.
> varfuri := {1, 2, 3, 4, 5, 6, 7, 8, 9};
> muchii := [{1, 2}, {1, 3}, {1, 4}, {2, 6}, {2, 7}, {2, 3}, {3, 4}, {3, 7},
{3, 5}, {6, 7}, {6, 8}, {4, 5}, {5, 7}, {5, 9}, {7, 8}, {7, 9}, {8, 9}];
> ponderi := [10, 8, 10, 5, 4, 2, 5, 3, 5, 6, 10, 6, 2, 10, 3, 8, 10];
FLUX MAXIM INTR-O RET¸ EA DE TRANSPORT 101
> s := 1;
> t := 9;
Se creeaz˘a ret ¸eaua conform init ¸ializ˘arilor.
> with(networks) :
> new(G) :
> addvertex(varfuri, G) :
> addedge(muchii, weights = ponderi, G);
Valoarea fluxului maxim.
> flow(G, s, t);
T˘aietura de capacitate minim˘a.
> mincut(G, s, t, vf);
Valoarea t˘aieturii de capacitate minim˘a trebuie s˘a fie egal˘ a cu valoarea fluxului
maxim (Teorema Ford-Fulkerson).
> vf;
Graful G.
> draw(G);
Exercit ¸iul 6.2.5. Pentru ce valoare a parametrului a graful din figura 6.16 ad-
mite un flux maxim ˆıntre nodurile 1 ¸si 3 de 40.
Figura 6.16: Problema de flux maxim ˆıntre nodurile 1 ¸si 3.
R˘aspuns. Se aplic˘a algoritmul Ford-Fulkerson, dup˘a care se determin˘a valoarea
parametrului a din ecuat ¸ia Φ
max
= 40.
Deci se execut˘a urm˘atoarele etape:
a) se genereaz˘a rute orientate de la nodul 1 la nodul 3:
µ
1
: 1
2a
→2
8a
→5
2a
→3, ϕ
1
= 2a,
µ
2
: 1
3a
→5
3a
→6
a
→3, ϕ
2
= a,
102 PROBLEME DE TRANSPORT
µ
3
: 1
8a
→6
3a
→4
4a
→3, ϕ
3
= 3a.
Fluxul ˆın ret ¸ea fiind Φ = 6a;
b) se marcheaz˘a nodurile: {1, 2, 5, 6}.
c) t˘aietura de capacitate minim˘a fiind: {(5, 3), (6, 3), (6, 4)}, valoarea acesteia
fiind egal˘a cu 6a, deci fluxul este maxim.
Ecuat ¸ia Φ
max
= 40 duce la a = 20/3.
Exercit ¸iul 6.2.6. Pentru datele din problema anterioar˘a formulat ¸i problema ca
o problem˘a de programare liniar˘a ¸si rezolvat ¸i-o prin metoda simplex.
Exercit ¸iul 6.2.7. Pentru ret ¸eaua de transport din figura 6.17 cu intrarea 0 ¸si
ie¸sirea 7 ¸si capacit˘at ¸ile scrise pe arce s˘a se determine:
Figura 6.17: Ret ¸ea de transport.
i) capacit˘at ¸ile t˘aieturilor mult ¸imilor A
1
= {1, 4, 6, 7} ¸si A
2
= {5, 6, 7};
ii) fluxul maxim care str˘abate ret ¸eaua ¸si valoarea sa;
iii) care capacitate de transport trebuie m˘arit˘a ¸si cu ce valoare pentru a atinge
un flux maxim ˆın ret ¸ea de 30 ? Solut ¸ia indicat˘a este unic˘a?
iv) care este fluxul maxim ˆın ret ¸eaua de transport dac˘a suprim˘am rutele 1 − 4
respectiv 5 −1?
R˘aspuns. Capacit˘at ¸ile t˘aieturilor mult ¸imilor A
1
¸si A
2
sunt 50 respectiv 35. Se
aplic˘a algoritmul Ford-Fulkerson. Fluxul maxim ˆın ret ¸ea va fi egal cu 23. Pentru
m˘arirea fluxului trebuie m˘arite capacit˘at ¸ile t˘aieturii de capacitate minim˘a.
Capitolul 7
TEORIA STOCURILOR
7.1. Formularea modelului matematic
Prin stoc vom ˆınt ¸elege ˆın cele ce urmeaz˘a o rezerv˘a de bunuri materiale desti-
nate vˆanz˘arii sau folosirii lor ˆın procesul de product ¸ie. Constituirea unui stoc pre-
supune cheltuieli de aprovizionare, cheltuieli de stocaj, pierderi pentru deprecierea
m˘arfurilor etc. Orice gestiune de stoc presupune intr˘ari ˆın stoc (inputs) ¸si ie¸siri
din stoc (outputs), determinate de cererea de bunuri care poate fi determinist˘a,
aleatoare cu o repartit ¸ie cunoscut˘a statistic sau necunoscut˘a. Elementele principale
care intervin ˆın activitatea de management al stocului sunt:
-cererea de bunuri;
-nivelul stocului;
-volumul comenzii de reaprovizionare;
-perioada de reaprovizionare;
-costul de stocare;
-costul de penalizare;
-costul de lansare al comenzii;
-alte costuri.
Deciziile care se iau ˆın organizarea unui stoc au la baz˘a un criteriu de optim, de-
terminat de politica economic˘a. Vom numi politic˘a optim˘a acea activitate de mana-
gement al stocului care implic˘a un cost total minim. Elementele unei politici optime
sunt: nivelul optim al stocului, volumul optim al unei comenzi de reaprovizionare,
perioada optim˘a de reaprovizionare, num˘arul optim de reaprovizion˘ari, costul total
optim numit ¸si gestiunea optim˘a.
Modelele matematice permit stabilirea politicilor optime. Dup˘a natura cererii,
modelele pot fi deterministe sau aleatorii.
ˆ
In cele ce urmeaz˘a sunt prezentate o
serie de modele matematice consacrate din teoria stocurilor. Strategia de abordare
103
104 TEORIA STOCURILOR
a problemelor este specific˘a problemelor de cercetare operat ¸ional˘a ¸si anume de a
codifica corespunz˘ator problema matematic˘a ˆıntr-o problem˘a de optimizare.
7.2. Modele deterministe
7.2.1. Model de stocare a unui produs cu cerere constant˘a, pe-
rioad˘a constant˘a de reaprovizionare ¸si f˘ar˘a lips˘a de stoc
Presupunem c˘a se stocheaz˘a un produs al c˘arui consum este o funct ¸ie liniar˘a
de timp, cererea produsului este Q pentru o perioad˘a de timp θ, reaprovizionarea
stocului se face instantaneu la intervale de timp egale cu T ¸si ˆın cantit˘at ¸i egale cu
q, costul unitar de stocare ˆın unitatea de timp este c
s
, costul de lansare al comenzii
de reaprovizionare este c
l
(totalul cheltuielilor legate de operat ¸ia de reaprovizionare
ce nu depinde de q) ¸si nu se admite lipsa de stoc.
Figura 7.1: Model de stocare a unui produs cu cerere constant˘a, perioad˘a constant˘a
de reaprovizionare ¸si f˘ar˘a lips˘a de stoc.
Pentru fiecare perioad˘a de timp T se fac cheltuielile c
l
+
1
2
qTc
s
(ˆıntr-o perioad˘a
T se afl˘a ˆın medie cantitatea q/2). Dac˘a not˘am cu ν num˘arul de reaprovizion˘ari
avem:
ν =
Q
q
=
θ
T
.
Funct ¸ia obiectiv C(q) ce trebuie minimizat˘a este:
(c
l
+
1
2
qTc
s
)ν =
Q
q
c
l
+
1
2
qθc
s
.
MODELE DETERMINISTE 105
Volumul optim ˆ q al unei comenzi de reaprovizionare se obt ¸ine din condit ¸ia de minim
pentru funct ¸ia obiectiv C(q). Deci punˆand condit ¸ia:
C

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

(ˆ q) > 0 deci extremul este punct de minim).
Obt ¸inem num˘arul optim de reaprovizion˘ari:
ˆ ν =
Q
ˆ q
=
¸
Qθc
s
2c
l
,
perioada optim˘a:
ˆ
T =
θ
ˆ ν
=
¸
2θc
l
Qc
s
¸si gestiunea optim˘a:
ˆ
C = C(ˆ q) =
_
2Qθc
s
c
l
.
7.2.2. Model de stocare a unui produs cu cerere constant˘a, pe-
rioad˘a constant˘a de reaprovizionare ¸si cu posibilitatea lipsei
de stoc
ˆ
In acest model se admit ipotezele de la modelul anterior cu deosebirea c˘a se
admite ¸si lips˘a de stoc penalizat˘a cu un cost unitar de penalizare c
p
.
Perioada constant˘a T este ˆımp˘art ¸it˘a ˆın dou˘a subperioade T
1
(ˆın care se satisface
cererea ¸si se pl˘atesc pentru stocul mediu s/2 cheltuielile de stocare c
s
) ¸si T
2
(ˆın care
nu se mai satisface cererea ¸si se pl˘ate¸ste pentru lipsa medie (q − s)/2 costul unitar
de penalizare c
p
).
Pentru o perioad˘a T = T
1
+T
2
se vor face cheltuielile:
c
l
+
s
2
T
1
c
s
+
q −s
2
T
2
c
p
.
Costul global va fi:
C(q, s) = (c
l
+
s
2
T
1
c
s
+
q −s
2
T
2
c
p

=
Q
q
c
l
+
s
2
T
1
c
s
θ
T
+
q −s
2
T
2
c
p
θ
T
.
106 TEORIA STOCURILOR
Figura 7.2: Model de stocare a unui produs cu cerere constant˘a, perioad˘a constant˘a
de reaprovizionare ¸si cu posibilitatea lipsei de stoc.
Avem:
T
1
T
=
s
q
¸si
T
2
T
=
q −s
q
.
De unde:
T
1
=
s
q
T
¸si
T
2
=
q −s
q
T.
Deci ˆınlocuind valorile lui T
1
¸si T
2
ˆın formula lui C(q, s) obt ¸inem:
C(q, s) =
Q
q
c
l
+
θ
2q
s
2
c
s
+
θ
2q
(q −s)
2
c
p
.
Condit ¸iile de minim pentru funct ¸ia obiectiv sunt:
∂C(q, s)
∂q
= 0
¸si
∂C(q, s)
∂s
= 0.
MODELE DETERMINISTE 107
Adic˘a:

1
q
2
Qc
l

θ
2q
2
s
2
c
s
+
θ
2q
2
(q
2
−s
2
)c
p
= 0,
θ
q
sc
s

θ
q
(q −s)c
p
= 0,
de unde obt ¸inem:
q
2
=
2Qc
l
θc
p
+
(c
s
+c
p
)
c
p
s
2
¸si
s =
c
p
c
s
+c
p
q.
Obt ¸inem pentru valoarea optim˘a pentru volumul comenzii:
ˆ
q
2
=
2Qc
l
θc
p
.
c
s
+c
p
c
p
.
Dac˘a not˘am ρ =
c
p
c
s
+c
p
(factor de penalizare), obt ¸inem:
ˆ q =
¸
2Qc
l
θc
p
.
_
1
ρ
,
stocul optim fiind:
ˆ s = ρˆ q =
¸
2Qc
l
θc
p
.

ρ.
Funct ¸ia obiectiv C(q, s) are minimul C(ˆ q, ˆ s) (acest minim se nume¸ste gestiunea
optim˘a) deoarece matricea hessian˘a este pozitiv definit˘a.
Num˘arul optim de reaprovizion˘ari este:
ˆ ν =
Q
ˆ q
=
¸
Qθc
s
2c
l
.

ρ,
perioada optim˘a:
ˆ
T =
θ
ˆ ν
=
¸
2θc
l
Qc
s
.
_
1
ρ
¸si gestiunea optim˘a:
ˆ
C = C(ˆ q, ˆ s) =
_
2Qθc
s
c
l
.

ρ.
Observat ¸ie. Dac˘a c
p
→∞ atunci ρ →1 ¸si obt ¸inem modelul anterior.
108 TEORIA STOCURILOR
7.2.3. Model de stocare a unui produs cu cerere constant˘a, pe-
rioad˘a constant˘a de reaprovizionare ¸si f˘ar˘a lips˘a de stoc,
luˆand ˆın considerare ¸si costul de achizit ¸ie
Presupunem c˘a se stocheaz˘a un produs al c˘arui consum este o funct ¸ie liniar˘a
de timp, cererea produsului este Q pentru o perioad˘a de timp θ, reaprovizionarea
stocului se face instantaneu la intervale de timp egale cu T ¸si ˆın cantit˘at ¸i egale
cu q, costul unitar de achizit ¸ie sau de product ¸ie c
a
, costul unitar de stocare ˆın
unitatea de timp este c
s
¸si se presupune proport ¸ional cu cheltuielile f˘acute pentru
apovizionarea cu o unitate de produs, costul fix al comenzii de reaprovizionare este
c
b
(totalul cheltuielilor legate de operat ¸ia de reaprovizionare ce nu depinde de q) ¸si
nu se admite lipsa de stoc.
Acest model este o variant˘a a modelului 1 ˆın care costul de lansare al comenzii
este:
c
l
= qc
a
+c
b
,
costul unitar de stocare:
c
s
= α(c
a
+
c
b
q
).
Funct ¸ia obiectiv devine:
C(q) =
Q
q
(qc
a
+c
b
) +
q
2
θα(c
a
+
c
b
q
)
=
Q
q
c
b
+
1
2
θαqc
a
+Qc
a
+
1
2
θαc
b
.
Din condit ¸ia de optim pentru C(q) obt ¸inem:
ˆ q =
_
2Qc
b
αθc
a
.
(C

(ˆ q) > 0, deci extremul este punct de minim).
Obt ¸inem num˘arul optim de reaprovizion˘ari:
ˆ ν =
Q
ˆ q
=
¸
αQθc
a
2c
b
,
perioada optim˘a:
ˆ
T =
θ
ˆ ν
=
¸
2θc
b
αQc
a
¸si gestiunea optim˘a:
ˆ
C = C(ˆ q) =
_
2αQθc
a
c
b
+Qc
a
+
1
2
αθc
b
.
MODELE DETERMINISTE 109
7.2.4. Model de stocare a mai multor produse
ˆ
In cazurile practice ne confrunt˘am cu situat ¸ia stoc˘arii mai multor produse. Vom
presupune c˘a suntem ˆın cazul modelului 1, deci se stocheaz˘a k produse P
i
(i =
1, 2, . . . , k) al c˘aror consum sunt funct ¸ii liniare de timp, cererea produsului P
i
este
Q
i
pentru o perioad˘a de timp θ, reaprovizionarea stocului se face instantaneu la
intervale de timp egale cu T
i
¸si ˆın cantit˘at ¸i egale cu q
i
, costul unitar de stocare ˆın
unitatea de timp este c
s
i
, costul de lansare al comenzii de reaprovizionare este c
l
i
(totalul cheltuielilor legate de operat ¸ia de reaprovizionare ce nu depinde de q
i
) ¸si nu
se admite lipsa de stoc pentru nici un produs.
Costul total de stocare pentru produsul P
i
este:
C
i
(q
i
) =
Q
i
q
i
c
l
i
+
1
2
q
i
θc
s
i
,
iar funct ¸ia obiectiv pentru toate produsele stocate:
C(q
1
, . . . , q
k
) =
k

i=1
C
i
(q
i
).
Cum funct ¸iile C
i
(q
i
) (i = 1, . . . , k) sunt independente, minimul sumei lor are loc
odat˘a cu minimul fiec˘areia dintre ele ¸si deci avem echivalent ¸˘a ˆıntre relat ¸iile:
∂C(q
1
, . . . , q
k
)
∂q
i
= 0
¸si
∂C
i
(q
i
)
∂q
i
= 0, i = 1, . . . , k.
G˘asim pentru produsele P
i
valorile:
ˆ q
i
=
¸
2Q
i
c
l
i
θc
s
i
,
num˘arul de reaprovizion˘ari:
ˆ ν
i
=
Q
i
ˆ q
i
=
¸
Q
i
θc
si
2c
l
i
,
perioada optim˘a:
ˆ
T =
θ
ˆ ν
i
=
¸
2θc
l
i
Qc
s
i
110 TEORIA STOCURILOR
¸si gestiunea optim˘a:
ˆ
C =
k

i=1
ˆ
C
i
,
unde:
ˆ
C
i
= C
i
(q
i
) =
_
2θQ
i
c
l
i
c
s
i
.
Rezultate similare se obt ¸in pentru celelalte modele.
7.3. Modele probabiliste
7.3.1. Model de stocare a unui produs cu cerere aleatoare, cu
pierdere ˆın cazul surplusului de stoc, cu cheltuieli supli-
mentare ˆın cazul lipsei de stoc ¸si cu cost de stocare neglijabil
Presupunem c˘a se stocheaz˘a un singur produs a c˘arui cerere este o variabil˘a
aleatoare X cu repartit ¸ia:
X : (x, p(x)), x = 0, 1, 2, . . .
pentru cerere discret˘a ¸si:
X : (x, f(x)), x ∈ [0, ∞)
pentru cerere continu˘a; excedentul de stoc, cˆand x ≤ s (s fiind stocul), se penalizeaz˘a
cu o pierdere unitar˘a c
1
; lipsa de stoc, cˆand x > s, se penalizeaz˘a cu cheltuieli
suplimentare de reaprovizionare unitare c
2
; cheltuielile de stocare sunt foarte mici
ˆın raport cu c
1
¸si c
2
¸si se neglijeaz˘a.
Cazul discret. Variabila aleatoare excedent de stoc E
s
are repartit ¸ia:
E
s
:
_
s −x
p(x)
_
, x = 0, 1, . . . , s,
cu media:
M(E
s
) =
s

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

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

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

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

x=0
p(x) este o funct ¸ie cresc˘atoare.
Demonstra¸tie.
C(s) este o funct ¸ie discret˘a ¸si ˆ s este punct de minim dac˘a ¸si numai dac˘a avem
C(ˆ s) < min{C(ˆ s −1), C(ˆ s +1)}. Aceast˘a dubl˘a inegalitate permite determinarea lui
ˆ s ca solut ¸ie a sistemului de inecuat ¸ii:
_
C(s −1) −C(s) > 0
C(s + 1) −C(s) > 0.
(7.1)
Avem:
C(s + 1) = c
1
s+1

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

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

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

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

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

x=0
p(x) +c
2

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

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

x=0
p(x) −c
2

x=s+1
p(x).
Notˆand F(s) =
s

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

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

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

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

x=0
p(x) +c
2

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

x=s
p(x) = c
1
s

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

x=s+1
(x −s)p(x)
+c
1
F(s −1) +c
2
(1 −F(s −1))
sau
C(s −1) = C(s) −(c
1
+c
2
)F(s −1) +c
2
. (7.3)
ˆ
Inlocuind 7.2 ¸si 7.3 ˆın 7.1 obt ¸inem:
C(s + 1) −C(s) = (c
1
+c
2
)F(s) −c
2
> 0,
C(s −1) −C(s) = −(c
1
+c
2
)F(s −1) +c
2
> 0,
de unde:
F(s −1) <
c
2
c
1
+c
2
< F(s)
sau
F(s −1) < ρ < F(s)
¸si teorema este demonstrat˘a.
Observat ¸ii:
i) Dac˘a F(ˆ s − 1) < ρ < F(ˆ s) ¸si deoarece F(s) este cresc˘atoare atunci exist˘a ˆ s
unic.
ii) Dac˘a F(ˆ s −1) < ρ = F(ˆ s) atunci C(s) are dou˘a puncte de minim ˆ s ¸si ˆ s + 1.
iii) Dac˘a F(ˆ s −1) = ρ < F(ˆ s) atunci C(s) are dou˘a puncte de minim ˆ s −1 ¸si ˆ s.
Cazul continuu. Variabila excedent de stoc E
s
are repartit ¸ia:
E
s
:
_
s −x
f(x)
_
, x ∈ [0, s],
cu media:
M(E
s
) =
s
_
0
(s −x)f(x)dx,
MODELE PROBABILISTE 113
iar variabila aleatoare lips˘a de stoc are repartit ¸ia:
L
s
:
_
x −s
f(x)
_
, x ∈ [s, ∞),
cu media:
M(L
s
) =

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

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

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

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

(s) = 0, rezult˘a:
c
1
F(s) −c
2
(1 −F(s)) = 0,
de unde:
F(s) =
c
2
c
1
+c
2
= ρ.
Solut ¸ia ecuat ¸iei F(s) = ρ o vom nota cu ˆ s ¸si deoarece C

(s) > 0, aceasta este
punct de minim.
114 TEORIA STOCURILOR
7.3.2. Model de stocare a unui produs cu cerere aleatoare, cu
cost de stocare ¸si cost de penalizare pentru lips˘a de stoc
Presupunem c˘a se stocheaz˘a un singur produs a c˘arui cerere este o variabil˘a
aleatoare X cu repartit ¸ia:
X : (x, p(x)), x = 0, 1, 2, . . .
pentru cerere discret˘a ¸si
X : (x, f(x)), x ∈ [0, ∞)
pentru cerere continu˘a, costul unitar de stocare este c
s
, costul unitar de penalizare
pentru lips˘a de stoc este c
p
, iar nivelul stocului la un moment dat este s.
ˆ
In managementul acestui stoc pe o perioad˘a T se pot ivi dou˘a situat ¸ii:
i) cererea nu dep˘a¸se¸ste stocul (fig.7.3), deci ea este satisf˘acut˘a ˆın toat˘a perioada
T, adic˘a avem x ≤ s pe perioada T;
ii) cererea este mai mare decˆat stocul (fig.7.4), adic˘a x > s, ceea ce face ca ˆın
perioada T
1
cererea s˘a fie satisf˘acut˘a, iar ˆın perioada T
2
cererea s˘a nu fie satisf˘acut˘a
(T
1
+T
2
= T).
Figura 7.3: Cererea nu dep˘a¸se¸ste stocul.
Prezent˘am cazul discret ¸si cazul continuu.
Cazul discret. Pentru situat ¸ia i) stocul mediu pentru care se pl˘ate¸ste costul
unitar de stocare c
s
, este:
s

x=0
(s −
x
2
)p(x).
MODELE PROBABILISTE 115
Figura 7.4: Cererea dep˘a¸se¸ste stocul.
Pentru situat ¸ia ii) vom avea un stoc mediu:

x=s+1
s
2
p(x),
pentru care se pl˘atesc cheltuieli unitare de stocare c
s
pe perioada T
1
¸si o lips˘a medie
de stoc (penurie medie):

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

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

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

x=s+1
x −s
2
p(x).
Avem:
T
1
T
=
s
x
¸si
T
2
T
=
x −s
s
,
de unde:
T
1
=
s
x
T
116 TEORIA STOCURILOR
¸si
T
2
=
x −s
s
T
ˆ
Inlocuind valorile lui T
1
¸si T
2
ˆın formula lui C
T
(s) g˘asim:
C
T
(s) = TC(s),
unde am notat prin C(s) cheltuielile medii totale ˆın unitatea de timp ¸si:
C(s) = c
s
s

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

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

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

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

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

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

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

x=s+2
(x −s −1)
2
x
p(x).
Sumele din partea a doua a egalit˘at ¸ii se rescriu:
MODELE PROBABILISTE 117
s+1

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

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

x=0
p(x) =
=
s

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

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

x=s+2
p(x)
x
=

x=s+1
p(x)
x

p(s + 1)
s + 1
¸si

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

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

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

x=s+1

(x −s)
2
x
p(x) +

x=s+1
p(x)
x
=

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

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

x=s+1
p(x)
x
.
ˆ
Inlocuind aceste sume ˆın formula lui C(s + 1) obt ¸inem:
C(s + 1) = C(s) + (c
s
+c
p
)
_
s

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

x=s+1
p(x)
x
_
−c
p
sau
C(s + 1) −C(s) = (c
s
+c
p
)L(s) −c
p
.
Analog g˘asim:
C(s −1) −C(s) = −(c
s
+c
p
)L(s −1) +c
p
.
ˆ
Inlocuind aceste relat ¸ii ˆın sistemul descris obt ¸inem:
_
(c
s
+c
p
)L(s) −c
p
> 0
−(c
s
+c
p
)L(s −1) +c
p
> 0,
de unde rezult˘a c˘a L(s − 1) < ρ < L(s) ¸si teorema este demonstrat˘a. Se arat˘a
simplu c˘a C

(ˆ s) > 0 ¸si, deci, ˆ s solut ¸ia inegalit˘at ¸ilor L(s −1) < ρ < L(s) este punct
de minim. Gestiunea optim˘a se obt ¸ine calculˆand pe C(ˆ s).
118 TEORIA STOCURILOR
Cazul continuu. Rat ¸ionˆand ca la cazul discret, se obt ¸ine pentru funct ¸ia obiectiv
de la acest model C(s), expresia:
C(s) = c
s
s
_
0
(s −
x
2
)f(x)dx +
1
2
s
2
c
s

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

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

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

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

_
s
f(x)
x
dx −c
p

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

(s) = 0 ne d˘a:
F(s) +s

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

(ˆ s) > 0, aceasta este punct
de minim.
7.4. Aplicat ¸ii
Exercit ¸iul 7.4.1. O unitate comercial˘a are o cerere anual˘a (365 zile) de 2000t
benzin˘a. Costul de lansare al comenzii este de 150$, iar costul de stocare pe zi este de
0,5$/t.
ˆ
In ipoteza c˘a se admite un consum uniform, aprovizionarea se faceˆın cantit˘at ¸i
egale ¸si c˘a nu se admite lipsa benzinei din stoc, s˘a se determine: volumul optim
al unei comenzi, num˘arul optim de reaprovizion˘ari, perioada optim˘a ¸si gestiunea
optim˘a.
APLICAT¸ II 119
R˘aspuns. Modelul matematic al problemei este un model de stocare a unui produs
cu cerere constant˘a, perioad˘a constant˘a de reaprovizionare ¸si f˘ar˘a lips˘a de stoc.
Datele problemei sunt:
_
¸
¸
_
¸
¸
_
Q = 2000 t;
θ = 365 zile;
c
l
= 150$;
c
s
= 0, 5$/t.
Exercit ¸iul 7.4.2. La un magazin se estimeaz˘a c˘a cererea lunar˘a (30 zile) pentru
un anume tip de produs este de 6000 kg. Costul zilnic de stocare pentru 10 kg din
marfa respectiv˘a este de 0, 25$, costul de lansare a unei comenzi este de 100$ ¸si
costul de penalizare de 0, 25$ /kg.
ˆ
In ipoteza c˘a se admite o vˆanzare uniform˘a,
aprovizionarea se face ˆın cantit˘at ¸i egale ¸si la intervale egale de timp, s˘a se determine
volumul optim al unei comenzi, stocul optim, num˘arul optim de reaprovizion˘ari,
perioada optim˘a ¸si gestiunea optim˘a.
R˘aspuns. Modelul matematic al problemei este un model de stocare a unui produs
cu cerere constant˘a, perioad˘a constant˘a de reaprovizionare ¸si cu posibilitatea lipsei
de stoc.
_
¸
¸
¸
¸
_
¸
¸
¸
¸
_
Q = 6000 kg;
θ = 30 zile;
c
s
= 0, 025$;
c
p
= 0, 25$;
c
l
= 100$.
Exercit ¸iul 7.4.3. La un magazin alimentar se vˆand produse lactate care au
un termen de garant ¸ie de 3 zile. Necesarul de produse pentru 300 zile este de
250000 buc˘at ¸i, pret ¸ul de achizit ¸ie de 0,25$, costul fix de lansare al comenzii 500$,
iar coeficientul de proport ¸ionalitate de 0,015.
ˆ
In ipoteza c˘a se admite o vˆanzare
uniform˘a, aprovizionarea se face la intervale egale ¸si c˘a nu se admite lipsa de stoc,
s˘a se stabileasc˘a, dac˘a este posibil (nu se dep˘a¸se¸ste termenul de garant ¸ie), comanda
optim˘a, num˘arul optim de comenzi ¸si gestiunea optim˘a.
R˘aspuns. Modelul matematic al problemei este un model de stocare a unui produs
cu cerere constant˘a, perioad˘a constant˘a de reaprovizionare ¸si f˘ar˘a lips˘a de stoc, luˆand
ˆın considerare ¸si costul de achizit ¸ie.
120 TEORIA STOCURILOR
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
θ = 300 zile;
Q = 250000;
c
a
= 0, 25$;
c
b
= 500$;
α = 0, 15;
cu restrict ¸ia T ≤ 3.
Exercit ¸iul 7.4.4. Se organizeaz˘a pe o period˘a de 300 zile stocul produselor
P
1
, P
2
, P
3
, ˆın condit ¸iile modelului de stocare a mai multor produse. Sunt date:
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
Q
1
= 400t;
Q
2
= 2500t;
Q
3
= 900t;
c
l
1
= 200$;
c
l
2
= 150$;
c
l
3
= 400$;
c
s
1
= 2$;
c
s
2
= 2$;
c
s
3
= 4$.
S˘a se stabileasc˘a elementele optime ale activit˘at ¸ii de management a stocului.
Exercit ¸iul 7.4.5. Cererea (ˆın tone) pentru o anumit˘a marf˘a este o variabil˘a
aleatoare cu densitatea de probabilitate:
f(x) =
_
λ(x +α), x ∈ [0, 5]
0, ˆın rest.
S¸tiind c˘a surplusul de marf˘a se vinde cu o pierdere de 10$ /t, iar ˆın cazul lipsei
de marf˘a se fac cheltuieli suplimentare de aprovizionare de 20$/t, s˘a se optimizeze
stocul. Parametrul α este un num˘ar ˆıntreg bine precizat.
R˘aspuns. Determin˘am mai ˆıntˆai valoarea λ din condit ¸ia
5
_
0
λ(x+α) = 1. Obt ¸inem:
λ =
2
25 + 10α
.
Funct ¸ia de repartit ¸ie va fi:
F(s) = λ
s
_
0
(x +α)ds = λ(
s
2
2
+αs),
APLICAT¸ II 121
iar ecuat ¸ia
F(s) =
c
2
c
1
+c
2
devine:
2
25 + 10α
(
s
2
2
+αs) =
2
3
,
care este echivalent˘a cu:
s
2
+ 2αs −
10(5 + 2α)
3
= 0.
Solut ¸ia ˆ s(α) = −α +
1
3


2
+ 30 ∈ [0, 5] a acestei ecuat ¸ii este stocul optim.
Gestiunea optim˘a va fi C(ˆ s(α)).
Exercit ¸iul 7.4.6. Cererea (ˆın tone) pentru o anumit˘a marf˘a este o variabil˘a
aleatoare cu densitatea de probabilitate:
f(x) =
_
λ(x +α), x ∈ [0, 5]
0, ˆın rest.
S¸tiind c˘a costul de stocare este de 1$/t, iar ˆın cazul lipsei de marf˘a cheltuielile
de penalizare sunt de 10$/t, s˘a se optimizeze stocul. Parametrul α este un num˘ar
ˆıntreg bine precizat.
R˘aspuns. Determin˘am mai ˆıntˆai valoarea λ din condit ¸ia
5
_
0
λ(x+α) = 1. Obt ¸inem:
λ =
2
25 + 10α
.
Funct ¸ia de repartit ¸ie va fi:
F(s) = λ
s
_
0
(x +α)ds = λ(
s
2
2
+αs),
Ecuat ¸ia
F(s) +s

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

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

_
s
λ(x
2
+α)
x
dx =
10
11
,
ecuat ¸ie care nu are solut ¸ii (integrala este divergent˘a). Acest lucru ne arat˘a c˘a nu se
poate calcula mereu un stoc optim.
Exercit ¸iul 7.4.7.
ˆ
In vederea efectu˘arii unor studii de marketing, o agent ¸ie comer-
cial˘a cump˘ar˘a un calculator electronic. Calculatorul este dotat cu un num˘ar de cir-
cuite integrate care ˆın caz de defectare se schimb˘a. Se ¸stie c˘a acest tip de circuite
cump˘arate odat˘a cu calculatorul cost˘a 5$ bucata, iar comanda special˘a cost˘a 10$
bucata. Datele statistice arat˘a urm˘atoarea cerere de terminale (tabelul 7.1):
TABELUL 7.1
Circuite ˆınlocuite (x) 0 1 2 3 4
Num˘ar calculatoare cu x circuite ˆınlocuite 1 2 4 2 1
ˆ
In ipoteza costului de stocare neglijabil, s˘a se determine stocul optim de circuite
integrate comandate o dat˘a cu calculatorul precum ¸si gestiunea optim˘a.
R˘aspuns. Modelul matematic corespunz˘ator este modelul de stocare a unui pro-
dus cu cerere aleatoare, cu pierdere ˆın cazul surplusului de stoc, cu cheltuieli supli-
mentare ˆın cazul lipsei de stoc ¸si cu cost de stocare neglijabil.
Exercit ¸iul 7.4.8. Se ¸stie c˘a un anumit produs are o cerere lunar˘a aleatoare
conform cu tabelul 7.2:
TABELUL 7.2
cererea x 1 2 3 4
p(x) 0,2 0,3 0,4 0,1
ˆ
In ipoteza c˘a se admit cheltuieli de stocare pe zi pentru o ton˘a de 1$ ¸si c˘a lipsa
de stoc este penalizat˘a cu 3$ pe zi pentru o ton˘a lips˘a, s˘a se determine stocul optim.
R˘aspuns. Modelul matematic corespunz˘ator este modelul de stocare a unui pro-
dus cu cerere aleatoare, cu cost de stocare ¸si cost de penalizare pentru lips˘a de stoc
(caz discret).
Capitolul 8
PROBABILIT
˘
AT¸I
8.1. Probabiliatea unui eveniment
8.1.1. Cazul finit dimensional ¸si al evenimetelor elementare echiprob-
abile
Fermat (1601-1665) ¸si Pascal (1623-1662) au definit pentru prima dat˘a probabil-
itatea realiz˘arii evenimentului A, ca:
P(A) =
Num˘arul cazurilor favorabile aparit ¸iei evenimentului A
Num˘arul total de cazuri
.
Definit ¸ia este valabil˘a ˆın cazul finit dimensional ¸si al evenimentelor elementare
echiprobabile.
Exemple:
a) Se arunc˘a cu dou˘a zaruri. Probabilitatea de a obt ¸ine poart˘a ˆın cas˘a, adic˘a
|n−m| = 2, unde n ¸si m sunt numerele de pe zarurile care au ie¸sit la aruncare, este:
P(A) =
8
36
= 0, 22.
b) Schema lui Bernoulli (1700-1782), f˘ar˘a ˆıntoarcere.
ˆ
Intr-o urn˘a sunt a bile albe,
b bile negre, c bile ro¸sii. Se fac n extrageri succesive n ≤ a + b + c, f˘ar˘a revenire.
Probabilitatea s˘a avem extrase α bile albe, β bile negre, γ bile ro¸sii, n = α +β +γ,
0 ≤ α ≤ a, 0 ≤ β ≤ b, 0 ≤ γ ≤ c este:
P(A) =
C
α
a
· C
β
b
· C
γ
c
C
α+β+γ
a+b+c
.
123
124 PROBABILIT
˘
AT¸ I
8.1.2. Probabit˘at ¸i geometrice
Formula utilizat˘a este P(A) =
Aria ha¸surat˘a
Aria total˘a
.
Exemple:
a) Se aleg la ˆıntˆamplare dou˘a numere, −1 ≤ α, β ≤ 1. Care este probabiliatea ca
α
2

2
≤ 1?
Figura 8.1: Exemplu de probabilitate geometric˘a.
P(A) =
π
4
.
b) Acul lui Buffon (1707-1788).
ˆ
In plan este trasat˘a o ret ¸ea de drepte paralele, echidistante, la distant ¸a 1, una de
alta. Se arunc˘a un arc de lungime 0, 5. Probabilitatea ca acul s˘a ating˘a ret ¸eaua este
1
π
, se poate ar˘ata folosind probabili˘at ¸i geometrice.
c) Se alege la ˆıntˆamplare un triunghi, din mult ¸imea tuturor triunghiurilor. Prob-
abilitatea ca triunghiul s˘a fie ascut ¸itunghic este
1
4
. Probabilitatea ca triunghiul s˘a
fie dreptunghic este 0. Acestea se pot deduce utilizˆand probabili˘at ¸i geometrice.
8.1.3. Frecvent ¸˘a absolut˘a. Frecvent ¸˘a relativ˘a
Not˘am cu (f
n
) ¸sirul frecvent ¸elor absolute ale aparit ¸iei evenimentului A ˆın urma
unor experimente repetate. Fie (ν
n
) ¸sirul frecvent ¸elor relative corespunz˘atoare: ν
n
=
f
n
n
. Dac˘a ν
n
→p ¸si p = P(A), calculat˘a, estimat˘a printr-o alt˘a metod˘a, atunci avem
o mai mare ˆıncredere c˘a p = P(A).
Frecvent ¸a absolut˘a poate fi privit˘a ca o variabil˘a aleatoare, astfel:
¯
f
1
variabila
aleatoare care are repartit ¸ia:
PROBABILIATEA UNUI EVENIMENT 125
_
0 1
q p
_
,
unde p = P(A), q = 1 −p.
¯
f
2
este variabila aleatoare care are repartit ¸ia:
_
0 1
q p
_
+
_
0 1
q p
_
=
_
0 1 2
q
2
2qp p
2
_
.
¯
f
3
este variabila aleatoare care are repartit ¸ia:
_
0 1
q p
_
+
_
0 1
q p
_
+
_
0 1
q p
_
=
_
0 1 2 3
q
3
3q
2
p 3qp
2
p
3
_
¸s.a.m.d.
S¸irul variabilelor aleatoare
¯
f
n
monitorizeaz˘a aparit ¸ia evenimetului A.
Deci
¯
f
n
este variabila aleatoare care are repatit ¸ia:
_
0 1 2 . . . n
q
n
C
1
n
q
n−1
p C
2
n
q
n−2
p
2
. . . p
n
_
.
Frecvent ¸a relativ˘a ¯ ν
n
este variabila aleatoare ¯ ν
n
=
1
n
·
¯
f
n
.
Prin urmare frecvent ¸ele absolute ¸si frecvent ¸ele relative pot fi privite ca ¸siruri
numerice, (f
n
) ¸si (ν
n
) ¸si pot fi privite ca varialibele aleatoare (
¯
f
n
) ¸si (¯ ν
n
).
8.1.4. Definit ¸ia statistic˘a a probabilit˘at ¸ii
a) Fie experient ¸a arunc˘arii cu banul. A evenimentul de a apare banul. P(A) =
p =
1
2
. Person a facut experint ¸a de 24000 ori ¸si a obt ¸inut ν
n
= 0, 5005..
b) S-a f˘acut experint ¸a acului lui Buffon de un num˘ar de 5000 de ori. S-a obt ¸inut
pentru ν
5000
= 0, 3175, de unde π ≈ 3, 1496.
Aceste dou˘a exemple, celebre, neˆındrept˘at ¸esc s˘a accept˘am cuˆıncredere ¸si sperant ¸e
definit ¸ia urm˘atoare: Fie A un eveniment. Repet˘am experint ¸a de multe ori ¸si cal-
cul˘am f
n
¸si ν
n
. Dac˘a ν
n
se stabilizeaz˘a ˆın jurul unei valori p ∈ R, accept˘am definit ¸ia
P(A) = ν
n
= p, n suficient de mare, cˆand ν
n
se stabilizeaz˘a aproape de p. Aceasta
este definit ¸ia statistic˘a a probabilit˘at ¸ii lui A.
126 PROBABILIT
˘
AT¸ I
8.2. Variabile aleatoare normal distribuite
8.2.1. Densitatea de probabilitate normal˘a
p(x) =
1
σ


e

(x −m)
2

2
, m ∈ R, σ > 0 se nume¸ste densitatea de probabilitate
normal˘a, densitatea de probabilitate a lui Gauss (1777-1855).
O variabil˘a aleatoare care are densitatea p(x) se nume¸ste normal distribuit˘a ¸si
are media m ¸si abaterea p˘atratic˘a σ :
Figura 8.2: Graficul densit˘at ¸ii normale.
8.2.2. Funct ¸ia Laplace-Gauss
Φ(x) =
1


_
x
−∞
e

t
2
2
dt este funct ¸ia Laplace (1749-1827)-Gauss.
Φ(x) are urm˘atoarele propriet˘at ¸i imdediate:
Φ(0) =
1
2
Φ(x) + Φ(−x) = 1, x ∈ R
Φ(x) ≈ 1, x ≥ 3
Φ(x) ≈ 0, x ≤ −3.
LEGEA NUMERELOR MARI 127
Figura 8.3: Graficul funct ¸iei Laplace-Gauss.
8.2.3. O formul˘a analitic˘a pentru calculul probabilit˘at ¸ii
Enunt ¸˘am o teorem˘a de mare important ¸˘a.
Teorema 8.2.1. a) Dac˘a f este o variabil˘a aleatoare cu densitatea de probabil-
itate p(x), atunci P(α ≤ f ≤ β) =
_
β
α
p(x)dx.
b) Dac˘a f este o variabil˘a aleatoare normal distribuit˘a, adic˘a p(x) este densitatea
normal˘a, atunci: P(α ≤ f ≤ β) = Φ(
β −m
σ
) −Φ(
α −m
σ
).
8.2.4. Inegalitatea lui Cebˆa¸sev (1821-1894)
Dac˘a f este o variabil˘a aleatoare cu media m ¸si media p˘atratic˘a σ, atunci: P(|f −
m| ≥ ) ≤
σ
2

2
, > 0.
8.2.5. Teorema celor 3σ
a) Dac˘a f este o variabil˘a aleatoare cu media m ¸si abaterea p˘atratic˘a σ, atunci
P(|f −m| ≤ 3σ) ≥
8
9
.
b) Dac˘a f este o variabil˘a aleaoare normal distribuit˘a, atunci P(|f−m| ≤ 3σ) ≈ 1.
8.3. Legea numerelor mari
Fie (Ω, K, P) un cˆamp de probabilitate ¸si (f
n
), f variabile aleatoare. f
n
p
→f dac˘a
¸si numai dac˘a pentru orice > 0, lim
n→∞
P(|f
n
−f| ≥ ) = 0.
128 PROBABILIT
˘
AT¸ I
Teorema 8.3.1. Fie (Ω, K, P) un cˆamp de probabilitate, A ∈ K, ¸si p = P(A).
Fie (f
n
) ¸sirul frecvent ¸elor absolute ¸si (ν
n
) ¸sirul frecvent ¸elor ata¸sate unor experimente
succesive. Fie (f
n
) ¸sirul variabilelor aleatoare al frecvent ¸elor absolute ¸si (ν
n
) ¸sirul
variabilelor aleatoare al frecvent ¸elor relative ale apari¸tiei evenimentului A. Atunci:
a) ν
n
→p ˆın ”imensa majoritate” a cazurilor.
b) ν
n
p
→p =
_
p
1
_
.
Observat ¸ie. Dac˘a ν
n
p
→ p =
_
p
1
_
, deci totdeauna ν
n
tinde ˆın probabilitate la
variabila aleatoare
_
p
1
_
. Evident sunt ”miracole” cˆand ν
n
nu converge la p dar ˆın
”imensa majoritate” a cazurilor ν
n
→p.
Legea numerelor mari d˘a relat ¸ia dintre p = P(A), probabilitatea lui A, calculat˘a
sau estimat˘a ˆıntr-un anume mod ¸si probabilitatea lui Aˆın sens statistic.
8.4. Teorema limit˘a central˘a
Sunt multe variante ˆın care se prezint˘a acest important rezultat, care se mai
nume¸ste Teorema fundamental˘a a statisticii.
8.4.1. Forma Leapunov (1857-1918) a Teoremei Limit˘a Central˘a
Teorema 8.4.1. Fie (f
n
) un ¸sir de variabile aleatoare pe (Ω, K, P), astfel ˆıncˆat:
1. (f
n
) variabile aleatoare independente;
2. (f
n
) sunt din aceeia¸si ”lume”, adic˘a au aceia¸si densitate de probabilitate (sau
aceia¸si matrice de repartit ¸ie), deci au aceia¸si medie m ¸si aceia¸si medie p˘atratic˘a σ
2
.
Atunci, pentru n ”mare” avem: P(α ≤ f
1
+ . . . + f
n
≤ β) ≈ Φ(
β −n · m
σ

n
) −
Φ(
α −n · m
σ

n
).
Observat ¸ia 8.4.1. Comparˆand teorema de mai sus cu formula de la punctul
8.2.3 se poate enunt ¸a urm˘atorul rezultat, numit Miracolul Gauss-Lapace:
Dac˘a f
1
, . . . f
n
, . . . sunt variabile aleatoare independente, din aceeia¸si ”lume”,
atunci pentru n ”mare”, F = f
1
+. . . f
n
se comport˘a ca o variabil˘a aleatoare normal
distribuit˘a cu media M = n · m ¸si abaterea medie p˘atratic˘a σ ·

n.
TESTE 129
8.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limit˘a Cen-
tral˘a
Teorema 8.4.2. Fie (f
n
) un ¸sir de variabile aleatoare pe (Ω, K, P), astfel ˆıncˆat:
1. (f
n
) variabile aleatoare independente.
2. (f
n
) variabile aleatoare, din aceeia¸si ”lume”, Bernoullian˘a cu X =
_
0 1
q p
_
.
Atunci, pentru n ”mare” avem: P(α ≤ f
1
+ . . . + f
n
≤ β) ≈ Φ(
β −n · p

npq
) −
Φ(
α −n · p

npq
).
8.5. Teste
ˆ
In cele ce urmeaz˘a vom prezenta cˆateva teste ce au fost sau se pot propune la
un examen. Fiecare test are trei p˘art ¸i. Partea 1 este partea teoretic˘a, p˘art ¸ile 2 ¸si 3
cont ¸in aplicat ¸ii referitoare a legea numerelor mari ¸si teorema limit˘a central˘a.
8.5.1. Testul 1
Exercit ¸iul 8.5.1.1. a) Enunt ¸at ¸i teorema celor 3σ.
b) Legea uniform˘a pe intervalul [10, 20]. Media ¸si abaterea medie p˘atratica pentru
o variabil˘a aleatoare uniform repartizat˘a pe [10, 20].
c) Fie (f
n
) variabile aleatoare, care au densit˘at ¸ile de probabiliatate (p
n
), respec-
tiv, unde p
n
are graficul:
Figura 8.4: Densitatea de probabilitate.
S¸irul de variabile aleatoare f
n
converge ˆın probabilitate, la 0 (f
n
p
→0)?
130 PROBABILIT
˘
AT¸ I
Exercit ¸iul 8.5.1.2. O ret ¸ea de traficant ¸i de droguri pun droguri ˆın pachet ¸ele
ˆıntre 10g ¸si 50g. Distribut ¸ia se apreciaz˘a c˘a se face uniform. Pachetele se punˆın bax-
uri, fiecare bax, avˆand 1000 pachet ¸ele. Baxul este respins la controlul vamal dac˘a are
mai mult de 32Kg. Folosind teorema limit˘a central˘a s˘a se determine probabilitatea
ca baxul s˘a treac˘a controlul vamal.
Exercit ¸iul 8.5.1.3. Se consider˘a ecuat ¸ia ax
2
+ bx + 1 = 0, a = 0, a, b ∈ R,
−1 ≤ a ≤ 1, −2 ≤ b ≤ 2.
Se aleg la ˆıntˆamplare a, b ˆın condit ¸iile de mai sus.
Se cere:
a) S˘a se determine p = P(A), probabilitatea ca ambele r˘ad˘acini s˘a fie reale.
b) S˘a se determine n ∈ N astfel ˆıncˆat P(|¯ ν
n
− p| ≤ 0, 01) = 0, 7, unde ¯ ν
n
este variabila aleatoare a frecvent ¸elor relative ale aparit ¸iei evenimentului A, A fiind
evenimentul ca ambele r˘ad˘acini s˘a fie reale.
8.5.2. Testul 2
Exercit ¸iul 8.5.2.1. a) Densitatea de probabilitate normal˘a. Definit ¸ie, pro-
priet˘at ¸i, graficul.
b) Dac˘a f este o variabil˘a aleatoare normal distribuit˘a, cu m = 70, σ = 5, calculat ¸i
P(60 ≤ f ≤ 70).
c) Enunt ¸at ¸i teorema limit˘a central˘a sub forma Moivre-Laplace.
Exercit ¸iul 8.5.2.2. Se aunc˘a dou˘a zaruri. Not˘am cu A evenimentul ca suma
zarurilor s˘a fie 7.
a) Calculat ¸i P(A).
b) Determinat ¸i variabila aleatoare ce monitorizeaz˘a ”aparit ¸ia” evenimentului A.
Determinat ¸i m ¸si σ.
c) Determinat ¸i n ∈ N, de cˆate ori trebuie f˘acut˘a experient ¸a, astfel ˆıncˆat P(|¯ ν
n

p| ≤ 0, 01) = 0, 8, unde ¯ ν
n
este variabila aleatoare a frecvent ¸elor relative ale aparit ¸iei
evenimentului A.
Exercit ¸iul 8.5.2.3. O banc˘a are 10000 client ¸i. Se estimeaz˘a c˘a un client pe o
perioad˘a de o lun˘a are urm˘atoarele opt ¸iuni:
i) ˆın 30% din cazuri face un ˆımprumut de 100 euro;
ii) ˆın 20% din cazuri nu face ˆımprumut, nu face economii;
iii) ˆın 20% din cazuri face economii de 100 euro;
iv) ˆın 30% din cazuri face un ˆımprumut de 200 euro.
Not˘am cu S suma conturilor tuturor client ¸ilor. Determinat ¸i:
a) P(S ≤ 0), situat ¸ia ˆın care banca este ˆın mare dificultate;
TESTE 131
b) P(S ≥ 1000000), situat ¸ia ˆın care banca are mare profit;
c) P(500000 ≤ S ≤ 700000).
8.5.3. Testul 3
Exercit ¸iul 8.5.3.1. a) Φ(x), funct ¸ia lui Laplace. Definit ¸ie, propriet˘at ¸i, graficul.
Calculat ¸i Φ(1) + Φ(−2).
b) Enunt ¸ul legii numerelor mari sub forma lui Bernoulli.
Exercit ¸iul 8.5.3.2. Se alege la ˆıntˆamplare o pereche de numere (x, y), −1 ≤
x, y ≤ 1. Not˘am cu A evenimentul ca x
2
+y
2
≤ 1.
a) Determinat ¸i p = P(A).
b) Se noteaz˘a cu ¯ ν
n
¸sirul variabilelor aleatoare ale frecvent ¸elor relative ale aparit ¸iei
evenimentului A. Determinat ¸i n astfel ˆıncˆat P(|¯ ν
n
−p| ≤ 0, 01) = 0, 8.
Exercit ¸iul 8.5.3.3. Se arunc˘a cu dou˘a zaruri ¸si se noteaz˘a suma zarurilor cu s.
Se acord˘a −1 puncte dac˘a s ≤ 5.
Se acord˘a 0 puncte dac˘a s = 6 sau s = 7.
Se acord˘a 1 punct dac˘a s ≥ 8.
Se face experient ¸a de 1000 ori ¸si se noteaz˘a S =

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

. Fie p = P(A).
a) Calculat ¸i p.
b) Se efectueaz˘a aceast˘a experient ¸˘a de 1000 ori. S˘a se determine probabilitatea
ca evenimentul A s˘a se produc˘a de un num˘ar de ori cupris ˆıntre 100 ¸si 200 ori.
c) S˘a se determine de cˆate ori trebuie efectuat˘a exprient ¸a, astfel ˆıncˆat ¯ ν
n
≈ p, cu
eroare de cel mult 0, 01 cu o probabilitatea de 0, 7.
Exercit ¸iul 8.5.4.3. Se arunc˘a 1000 zaruri. Se noteaz˘a cu S suma tuturor
zarurilor. Determinat ¸i n = P(3500 ≤ S ≤ 4000) ¸si m = P(4000 ≤ S ≤ 6000).
Care num˘ar este mai mare, n sau m?
132 PROBABILIT
˘
AT¸ I
8.5.5. Testul 5
Exercit ¸iul 8.5.5.1. a) Teorema celor 3σ. Deducet ¸i o teorem˘a analoag˘a 2σ.
b) Fie densitatea de probabilitate p
n
(x) =
n
π
·
1
x
2
+n
2
.
f
n
variabila aleatoare cu densitatea de probabilitate p
n
. f
n
p
→0?
Exercit ¸iul 8.5.5.2. Fie f
1
, . . . , f
1000
variabile aleatoare independente, definite
(Ω, K, P). Presupunem c˘a variabilele aleatoare au aceia¸si densitate de probabilitate
p(x), a c˘arui grafic este reprezentat ˆın figura 8.5.
Figura 8.5: Densitatea de probabilitate.
a) Determinat ¸i m ¸si σ, media ¸si abaterea medie p˘atratic˘a a acestor variabile
aleatoare.
b) Not˘am cu S = f
1
+. . . f
1000
. Determinat ¸i P(S ≤ 1350).
Observat ¸ia 8.5.1. Problema de mai sus poate fi privit˘a astfel: f
1
, f
2
, . . . f
1000
sunt conturi ”independente” cu densitatea de probabilitatea p(x). Fiecare cont este
ˆıntre −3 ≤ x ≤ 7 puncte sau ˆıntre −300 RON ¸si 700 RON, distribuite dup˘a legea
p(x). S˘a se determine probabilitatea ca suma conturilor sa fie ˆın situat ¸ia S ≤ 1350
puncte sau S ≤ 135000 RON.
Exercit ¸iul 8.5.5.3. Fie (f
n
) un ¸sir de variabile aleatoare simple pe (Ω, K, P) a
c˘aror repartit ¸ie este:
_
−1 0 1
1
n
1 −
2
n
1
n
_
.
a) Calculat ¸i m
n
¸si σ
n
, mediile ¸si abaterile medii p˘atratice ale lui f
n
.
b) Decidet ¸i dac˘a f
n
p
→0.
TESTE 133
8.5.6. Testul 6
Exercit ¸iul 8.5.6.1. a) Definit ¸i convergent ¸a ˆın probabilitate, f
n
p
→f.
b) Se consider˘a (f
n
), un ¸sir de variabile aleatoare care au densitatea de probabil-
itate p
n
, acestea avˆand graficul din figura 8.6.
Figura 8.6: Densitatea de probabilitate.
Decidet ¸i dac˘a f
n
p
→0.
c) Aceia¸si ˆıntrebare ca la punctul b) dac˘a p
n
are graficul din figura 8.7.
Figura 8.7: Densitatea de probabilitate.
Exercit ¸iul 8.5.6.2. Cˆa¸stigul zilnic al unui juc˘ator la rulet˘a este repartizat uni-
form ˆın intervalul [−45, 55]. Care este probabilitatea ca el s˘a cˆa¸stige 1000 euro ˆın
100 zile?
134 PROBABILIT
˘
AT¸ I
Exercit ¸iul 8.5.6.3. Probabilitatea de cˆa¸stig la rulet˘a este 0, 45. Presupunem c˘a
la fiecare joc cˆa¸stig˘a sau pierde 1 euro. Cˆate jocuri trebuie jucate astfel ˆıncˆat cu
probabilitatea de 0, 5 cˆa¸stigul cazinoului s˘a fie de cel put ¸in 1000 euro?
8.6. Cˆateva distribut ¸ii importante
8.6.1. Repartit ¸ii continue
Vom prezenta o serie de distribut ¸ii continue precum ¸si principalele lor propriet˘at ¸i.
Repartit ¸ia normal˘a
Definit ¸ia 8.6.1. (Repartit ¸ia normal˘a). Vom spune c˘a variabila aleatoare X
urmeaz˘a o repartit ¸ie normal˘a de parametrii µ ¸si σ
2
(vom nota acest lucru prin
X ∼ N(µ, σ
2
)) dac˘a are densitatea de repartit ¸ie:
n(x; µ, σ
2
) =
1
σ


e

(x −µ)
2

2
, x ∈ R.
Teorema 8.6.1. Media ¸si dispersia unei variabile aleatoare X repartizat˘a nor-
mal de parametrii µ ¸si σ
2
este:
M(X) = µ,
respectiv
D
2
(X) = σ
2
.
Teorema 8.6.2. Dac˘a X
1
¸si X
2
au o repartit ¸ie N(µ
1
, σ
2
1
), respectiv N(µ
2
, σ
2
2
)
atunci
αX
1
+βX
2
∼ N(αµ
1
+βµ
2
, α
2
σ
2
1

2
σ
2
2
)
unde α, β ∈ R.
Repartit ¸ia lognormal˘a
Definit ¸ia 8.6.2. (Repartit ¸ia lognormal˘a). Vom spune c˘a variabila aleatoare
X(X > 0) urmeaz˘a o repartit ¸ie lognormal˘a (vom nota acest lucru prin X ∼ LN(µ, σ
2
))
dac˘a logaritmul ei are densitatea de repartit ¸ie N(µ, σ
2
).
C
ˆ
ATEVA DISTRIBUT¸ II IMPORTANTE 135
Teorema 8.6.3. Media ¸si dispersia unei variabile aleatoare X repartizat˘a log-
normal de parametrii µ ¸si σ
2
este:
M(X) = e
µ+
1
2
σ
2
,
respectiv
D
2
(X) = e
2µ+σ
2
(e
σ
2
−1).
Teorema 8.6.4. Dac˘a variabila aleatoare X urmeaz˘ a o repartit ¸ie lognormal˘a
de parametrii µ ¸si σ
2
→ 0 atunci repartit ¸ia lognormal˘a standardizat˘a tinde c˘atre
repartit ¸ia N(0, 1).
Teorema 8.6.5. Dac˘a X
1
¸si X
2
au o repartit ¸ie LN(µ
1
, σ
2
1
), respectiv LN(µ
2
, σ
2
2
)
atunci:
e
β
X
α
1
1
X
α
2
2
∼ N(β +α
1
µ
1

2
µ
2
, α
2
1
σ
2
1

2
2
σ
2
2
)
unde β > 0 ¸si α
1
, α
2
∈ R.
Repartit ¸ia uniform˘a
Definit ¸ia 8.6.3. Vom spune c˘a variabila aleatoare X are o repartit ¸ie uniform˘a
ˆın intervalul [a, b] (vom scrie acest lucru prin X ∼ U(a, b)) dac˘a densitatea sa de
repartit ¸ie este:
u(x) =
1
b −a
, x ∈ [a, b] ¸si u(x) = 0, x / ∈ [a, b].
Teorema 8.6.6. Media ¸si dispersia unei variabile aleatoare X repartizat˘a U(a, b) :
M(X) =
a +b
2
,
respectiv
D
2
(X) =
(b −a)
2
12
.
136 PROBABILIT
˘
AT¸ I
Repartit ¸ia exponent ¸ial˘a
Definit ¸ia 8.6.4. Vom spune despre variabila aleatoare X c˘a urmeaz˘a o repartit ¸ie
exponent ¸ial˘a de parametru λ > 0 (vom scrie acest lucru X ∼ Exp(λ)) dac˘a densi-
tatea de repartit ¸ie este f(t) = λe
−λt
pentru t ≥ 0 ¸si f(t) = 0 pentru t < 0.
Teorema 8.6.7. Dac˘a X ∼ Exp(λ) atunci
M(X) =
1
λ
,
D
2
(X) =
1
λ
2
¸si
M(X
r
) =
r!
λ
r
.
Exercit ¸iul 8.6.1. Dac˘a X ¸si Y sunt variabile aleatoare independente repartizate
Exp(λ) atunci
X
X +Y
∼ Exp(λ).
Repartit ¸ia gama
Definit ¸ia 8.6.5. Vom spune despre o variabil˘a aleatoare c˘a urmeaz˘a o repartit ¸ie
gama de parametrii α ¸si β (vom scrie acest lucru X ∼ γ(α, β)) dac˘a are densitatea
de repartit ¸ie:
f(x) =
1
β
α
Γ(α)
x
α−1
e

x
β
, 0 ≤ x < ∞.
unde Γ este funct ¸ia lui Euler definit˘a prin formula:
Γ(α) =

_
0
x
α−1
e
−x
dx.
Teorema 8.6.8. Dac˘a X ∼ γ(α
1
, β) ¸si Y ∼ γ(α
2
, β) sunt variabile aleatoare
independente atunci:
a) X +Y ∼ γ(α
1

2
, β);
C
ˆ
ATEVA DISTRIBUT¸ II IMPORTANTE 137
b)
X
Y
are densitatea de repartit ¸ie:
h(x) =
Γ(α
1

2
)
Γ(α
1
)Γ(α
2
)
x
α
1
−1
(1 +x)
−(α
1

2
)
, x ≥ 0.
Generalizˆand la n variabile aleatoare, obt ¸inem repartit ¸ia Dirichlet.
Teorema 8.6.9. Dac˘a X
i
∼ γ(α
i
, 1) sunt k +1 variabile aleatoare independente
atunci repartit ¸ia variabilelor aleatoare Y
1
, . . . , Y
k+1
date de:
_
Y
j
=
X
j
X
1
+...+X
k+1
, j = 1, . . . , k
Y
k+1
= X
1
+. . . +X
k+1
are forma (repartit ¸ia Dirichlet):
Γ(
k+1

i=1
α
i
)
k

i=1
y
α
i
−1
i
(1 −
k

i=1
y
i
)
α
k+1
−1
k+1

i=1
Γ(α
i
)
,
unde 0 < y
j
¸si y
1
+. . . +y
k
< 1.
Un alt caz particular important al repartit ¸iei gama se obt ¸ine pentru α =
n
2
cu
orice n ˆıntreg pozitiv ¸si β = 2σ
2
. Repartit ¸ia astfel obt ¸inut˘a se nume¸ste repartit ¸ia
χ
2
cu n grade de libertate.
Observat ¸ia 8.6.1. Pentru n = 2 repartit ¸ia χ
2
devine repartit ¸ia exponent ¸ial˘a.
Teorema 8.6.10. Dac˘a X
i
∼ N(0, σ
2
) sunt n variabile independente atunci
variabila aleatoare:
Y =
n

i=1
X
2
j
∼ χ
2
(n).
Teorema 8.6.11. Dac˘a X ∼ χ
2
(n), atunci asimptotic
X −nσ
2
σ
2

2n
∼ N(0, 1).
De obicei, cunatilele repartit ¸iei χ
2
(n) sunt tabelate pˆan˘a la n = 30, deoarce
pentru n > 30 este posibil s˘a se foloseasc˘a cunatilele repartit ¸iei N(0, 1).
138 PROBABILIT
˘
AT¸ I
Repartit ¸ia beta
Definit ¸ia 8.6.6. Vom spune c˘a variabila aleatoare X urmeaz˘a o repartit ¸ie beta
de parametrii α ¸si β (vom scrie acest lucru ca X ∼ Be(α, β)), dac˘a are densitatea
de repartit ¸ie:
f(x) =
_
Γ(α+β)
Γ(α)Γ(β)
x
α−1
(1 −x)
β−1
, 0 < x < 1; α, β > 0
0 ˆın rest.
Definit ¸ia 8.6.7. Repartit ¸ia F(m, n) este obt ¸inut˘a ca o transformare a repartit ¸ie
beta:
Y =
βX
α(1 −X)
unde X ∼ Be(α, β)
cu α =
m
2
¸si β =
n
2
. Distribut ¸ia corespunz˘atoare variabilei Y ∼ F(m, n) este:
f(x) =
_
Γ(
m+n
2
)
Γ(
m
2
)Γ(
n
2
)
_
α
β
_
α
y
α−1
(1 +
α
β
y)
−(α+β)
, 0 < x < 1; α, β > 0
0 ˆın rest.
Teorema 8.6.12. Dac˘a X ∼ χ
2
(m) ¸si Y ∼ χ
2
(n) atunci:
F =
X/m
Y/n
∼ Be(α, β).
Definit ¸ia 8.6.8. Repartit ¸ia t(n) (t cu n grade de liberatate) este obt ¸inut˘a ca o
transformare a repartit ¸ie F(1; n) ¸si anume:
t =

X
iar densitatea de repartit ¸ie corespunz˘atoare este:
f(x) =
_
Γ(
n+1
2
)

πnΓ(
n
2
)
(1 +
x
2
n
)

n+1
2
, −∞< x < ∞; n = 1, 2, 3, . . .
0 ˆın rest.
Teorema 8.6.13. Dac˘a X ∼ N(0, 1) ¸si Y ∼ χ
2
(n) atunci
t =
X
_
Y
n
∼ t(n).
C
ˆ
ATEVA DISTRIBUT¸ II IMPORTANTE 139
Repartit ¸ia Cauchy
Definit ¸ia 8.6.9. Repartit ¸ia Cauchy C(µ; θ) este definit˘a de densitatea de repar-
tit ¸ie:
f(x) =
µ
π
1
µ
2
+ (x −θ)
2
, x ∈ R, µ > 0.
Observat ¸ia 8.6.2. Repartit ¸ia Cauchy este un exemplu de repartit ¸ie care nu are
momente.
8.6.2. Distribut ¸ii discrete
Vom prezenta principalele distribut ¸ii discrete: Bernoulli, Binomial˘a, Poisson,
hipergeometric˘a ¸si geometric˘a.
Distribut ¸ia Bernoulli
Definit ¸ia 8.6.10. Distribut ¸ia Bernoulli de parametru p este dat˘a de P(X =
1) = p ¸si P(X = 0) = 1 −p, cu p ∈ (0, 1).
Teorema 8.6.14. Dac˘a variabila X urmeaz˘a o distribut ¸ie Bernoulli de para-
metru p atunci media este M(X) = p iar dispersia D
2
(X) = p(1 −p).
Distribut ¸ia binomial˘a
Definit ¸ia 8.6.11. Distribut ¸ia binomial˘a Bi(n, p) de parametrii n ¸si p este dat˘a
de P(X = i) = C
i
n
p
n−i
(1 −p)
i
pentru i = 0, . . . , n.
Teorema 8.6.15. Dac˘a variabila X urmeaz˘a o distribut ¸ie binomial˘a Bi(n, p)atunci
media este M(X) = np iar dispersia D
2
(X) = np(1 −p).
Teorema 8.6.16. Dac˘a X
1
, . . . , X
n
sunt n variabile aleatoare independente repar-
tizate Bernoulli de parametru p atunci variabila
n

i=1
X
i
urmeaz˘a o repartit ¸ie bino-
mial˘a Bi(n, p).
Observat ¸ia 8.6.3. Distribut ¸ia binomial˘a Bi(n, p) de parametrii n ¸si p este mod-
elat˘a de select ¸ia cu revenire dintr-o urn˘a U(a, b) care cont ¸ine a bile albe ¸si b bile
negre ¸si este probabilitatea ca din n extrageri s˘a se obt ¸in˘a k bile albe:
140 PROBABILIT
˘
AT¸ I
P(X = k) = C
k
n
_
a
a +b
_
k
_
1 −
n
a +b
_
n−k
.
Distribut ¸ia Poisson
Distribut ¸ia Poisson se obt ¸ine din distribut ¸ia Bi(n, p) cˆand n → ∞, p → 0 ¸si
produsul n · p = λ este constant. Funct ¸ia densitate de probabilitate este dat˘a de:
P(X = k) =
λ
k
e
−λ
k!
, k = 0, 1, 2, . . .
Distribut ¸ia hipergeometic˘a
Distribut ¸ia hipergeometric˘a este modelat˘a de o select ¸ie f˘ar˘a revenire dintr-o urn˘a
U(a, b) care cont ¸ine a bile albe ¸si b bile negre ¸si este probabilitatea ca din n extrageri
s˘a se obt ¸in˘a k bile albe:
P(X = k) =
C
k
a
C
n−k
b
C
n
a+b
unde n ≤ a +b ¸si k ≤ a.
Distribut ¸ia geometric˘a
Distribut ¸ia geometric˘a are funct ¸ia de densitate de probabilitate dat˘a de:
P(X = n) = p(1 −p)
n
, pentru n = 0, 1, . . .
Este numit˘a distribut ¸ia lui Pascal (1623-1662) ¸si mai este numit˘a distribut ¸ia
primului succes.
8.6.3. Calculul numeric al cuantilelor
Vom prezenta dou˘a metode numerice de calcul a cuantilei de ordinul α pentru
repartit ¸ia N(0, 1), respectiv repartit ¸ia χ
2
(n).
Cuantila repartit ¸iei normale
F˘ar˘a restrˆangerea generalit˘at ¸ii putem presupune c˘a α ∈ [0, 0, 5]. Atunci, utilizˆand
tehnica dezvolt˘arii ˆın fract ¸ii continue, vom obt ¸ine:
u
α
= ω −
2

i=0
a
i
ω
i
3

i=0
b
i
ω
i
, ω =
_
ln
1
α
2
,
C
ˆ
ATEVA DISTRIBUT¸ II IMPORTANTE 141
unde constantele a
i
¸si b
i
sunt:
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
a
0
= 2, 515517
a
1
= 0, 802853
a
2
= 0, 010328
b
0
= 1
b
1
= 1, 432877
b
2
= 0, 189269
b
3
= 0, 001308.
Cuantilele repartit ¸iei chi-p˘atrat
Cuantila de ordinul α a repartit ¸iei χ
2
(n), pentru n > 30, este dat˘a de:
h
α
= n +

2nu
α
+
2
3
u
2
α

2
3
+O(
1

n
).
Pentru detalii se poate consulta Abramowitz ¸si Stegun [1].
142 PROBABILIT
˘
AT¸ I
Partea II
CRIPTOLOGIE
143
Capitolul 9
SISTEMUL DE CIFRARE
CEZAR
9.1. Breviar teoretic
Algoritmul de cifrare al lui Cezar este un sistem de cifrare monoalfabetic pentru
care textul clar este construit din literele alfabetului latin A −Z ¸si cheia de cifrare
este reprezentat˘a de un num˘ar ˆıntreg k ∈ {0, . . . , 25}.
ˆ
In faza de preprocesare, delimitatorul de spat ¸iu este ignorat sau ˆınlocuit cu car-
acterul cel mai put ¸in frecvent din limba ˆın care este textul clar (ˆın limba romˆan˘a
Q).
Fiecarei litere din textul surs˘a i se asociaz˘a ordinea lexicografic˘a x. Pentru cifrare,
aceasta se ˆınlocuie¸ste prin caracterul cod (x + k) mod 26. Pentru descifrare se uti-
lizeaz˘a regula invers˘a: (x −k) mod 26.
9.2. Exercit ¸ii rezolvate
Exercit ¸iul 9.2.1. S˘a se cifreze mesajul:
CRIPTOGRAFIE
algoritmul utilizat fiind cifrul lui Cezar cu cheia de cifrare k = 7.
Rezolvare: Se cifreaz˘a liter˘a cu liter˘a, t ¸inˆand cont de pozit ¸ia ocupat˘a de litere ˆın
alfabet:
- Literei C ˆıi corespunde x = 2, deci se va cifra ˆın (2 + 7) mod 26 = 9 adic˘a J;
- Literei R ˆıi corespunde x = 16, deci se va cifra ˆın (17 + 7) mod 26 = 24, adic˘a
Y;
145
146 SISTEMUL DE CIFRARE CEZAR
Se continu˘a ˆın mod analog pentru fiecare liter˘a ¸si ˆın final se obt ¸ine JYPWA
VNYHM PL.
Exercit ¸iul 9.2.2. S˘a se decripteze mesajul:
JAJSN SHWDU YTQTL DXNQJ SHJNX LTQIJ SXXXX
algoritmul utilizat fiind cifrul lui Cezar. Indicat ¸i cheia de cifrare.
Rezolvare: Se verific˘a, pe rˆand, toate cheile posibile, pˆan˘a cˆand se obt ¸ine un text
cu sens.
ˆ
In funct ¸ie de lungimea cheii, corespondent ¸a dintre literele textului clar ¸si
cele ale textului cifrat devine:
x 0 1 2 3 4 5 6 ... 25
textul clar A B C D E F G ... Z
k = 1 B C D E F G H ... A
k = 2 C D E F G H I ... B
k = 3 D E F G H I J ... C
k = 4 E F G H I J K ... D
k = 5 F G H I J K L ... E
... .. .. .. .. .. .. .. .. ..
Se observ˘a c˘a sistemul presupuneˆınlocuirea fiec˘arei litere cu litera corespunz˘atoare
ˆın alfabetul rotit cu k pozit ¸ii.
Decriptˆand fiecare caracter ˆın corespondentul s˘au clar se obt ¸ine, pe rˆand:
- pentru k = 1 : IZIRM RGVCT XSPSK CWMPI RGIMW KSPHI
RWWWW
- pentru k = 2 : HYHQL QFUBS WRORJ BVLOH QFHLV JROGH
QVVVV
- pentru k = 3 : GXGPK PETAR VQNQI AUKNG PEGKU IQNFG
PUUUU
- pentru k = 4 : FWFOJ ODSZQ UPMPH ZTJMF ODFJT HPMEF
OTTTT
- pentru k = 5 : EVENI NCRYP TOLOG YSILE NCEIS GOLDE NSSSS
Dup˘a o regrupare a literelor, pentru k = 5 se obt ¸ine: EVEN IN CRYPTOLOGY
SILENCE IS GOLDEN.
9.3. Exercit ¸ii propuse
Exercit ¸iul 9.3.1. Scriet ¸i o aplicat ¸ie care s˘a implementeze urm˘atoarele funct ¸ii:
- cifrarea unui text cu ajutorul algoritmului de cifrare Cezar;
EXERCIT¸ II PROPUSE 147
- descifrarea unui text cifrat cu algoritmul lui Cezar;
- decriptarea unui text, despre care se ¸stie c˘a a fost cifrat prin metoda Cezar,
prin generarea tuturor solut ¸iilor posibile.
Verificat ¸i rezultatul pe datele de intrare din exercit ¸iile urm˘atoare.
Exercit ¸iul 9.3.2. S˘a se cifreze mesajul:
MIRACLE
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 3.
R˘aspuns: PLUDFOH.
Exercit ¸iul 9.3.3. S˘a se cifreze mesajul:
CALCULATOR
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 11.
R˘aspuns: NLWNF WLEZC.
Exercit ¸iul 9.3.4. S˘a se cifreze mesajul:
ELECTRONIC MAIL
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 5.
R˘aspuns: JQJHY WTSNH RFNQ.
Exercit ¸iul 9.3.5. S˘a se cifreze mesajul:
DIGITAL SIGNATURE
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 2.
R˘aspuns: FKIKV CNUKI PCVWT G.
Exercit ¸iul 9.3.6. S˘a se decripteze mesajul:
IGQTI GYCUJ KPIVQ PXXXX
algoritmul utilizat fiind cifrul lui Cezar. Indicat ¸i cheia de cifrare.
R˘aspuns: GEORGE WASHINGTON, k = 2.
Exercit ¸iul 9.3.7. S˘a se decripteze mesajul:
UIPNB TKFGG FSTPO
algoritmul utilizat fiind cifrul lui Cezar. Indicat ¸i cheia de cifrare.
R˘aspuns: THOMAS JEFFERSON, k = 1.
148 SISTEMUL DE CIFRARE CEZAR
Exercit ¸iul 9.3.8. S˘a se decripteze mesajul:
AREYY KYYOS VYUTM XGTZ
algoritmul utilizat fiind cifrul lui Cezar. Indicat ¸i cheia de cifrare.
R˘aspuns: ULYSSES SIMPSON GRANT, k = 6.
Exercit ¸iul 9.3.9. S˘a se decripteze mesajul:
CDTC JCON KPEQ NP
algoritmul utilizat fiind cifrul lui Cezar. Indicat ¸i cheia de cifrare.
R˘aspuns: ABRAHAM LINCOLN, k = 2.
Exercit ¸iul 9.3.10. S˘a se decripteze mesajul:
ECFDEPO ALCEJ
algoritmul utilizat fiind cifrul lui Cezar. Indicat ¸i cheia de cifrare.
R˘aspuns: TRUSTED PARTY, k = 11.
Exercit ¸iul 9.3.11. S˘a se cifreze mesajul:
EXAMEN CRIPTOGRAFIE
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 3.
R˘aspuns: HADPH QFULS WRJUD ILH.
Exercit ¸iul 9.3.12. S˘a se decripteze mesajul:
HADPH QFULS WRJUD ILH
algoritmul utilizat fiind cifrul lui Cezar. Indicat ¸i cheia de cifrare.
R˘aspuns: EXAMEN CRIPTOGRAFIE, k = 3.
Exercit ¸iul 9.3.13. S˘a se cifreze mesajul:
KANSAS CITY
algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 4.
R˘aspuns: OERWE WGMXC.
Exercit ¸iul 9.3.14. S˘a se decripteze mesajul:
OERWE WGMXC
algoritmul utilizat fiind cifrul lui Cezar. Indicat ¸i cheia de cifrare.
R˘aspuns: KANSAS CITY, k = 4.
Capitolul 10
METODA SUBSTITUT¸IEI
10.1. Breviar teoretic
Operat ¸ia de cifrare se bazeaz˘a pe o corespondent ¸˘a biunivoc˘a ˆıntre alfabetul clar
¸si alfabetul cifrat. Se presupune c˘a alfabetul clar este format din cele 26 de litere
(ˆın limba romˆan˘a f˘ar˘a diacritice) plus delimitatorul de cuvˆant spat ¸iul. Alfabetul
cifrat poate fi format din aceelea¸si caractere sau doar din cele 26 de litere (ale limbii
romˆane) caz ˆın care spat ¸iul se va ˆınlocui cu cea mai put ¸in frecvent˘a liter˘a (Q) sau
se va ignora pur ¸si simplu.
ˆ
In continuare, delimitatorul de cuvˆant este ˆınlocuit cu
litera Q.
Corespondent ¸a dintre cele dou˘a alfabete poate fi:
- aleatoare;
- pseudoaleatoare: plecˆand de la o parol˘a se construie¸ste alfabetul cifrat.
ˆ
Intrucˆat ˆın cazul corespondent ¸ei aleatoare lucrurile sunt cˆat se poate de clare,
vom prezenta pe scurt o metod˘a de construct ¸ie a corespondent ¸ei ˆın cel de-al doilea
caz. Pornind de la o parol˘a, alfabetul cifrat este construit dup˘a urm˘atorul algoritm:
- se scriu, o singur˘a dat˘a, ˆın ordinea aparit ¸iei, literele din parol˘a;
- se scriu literele alfabetului care nu apar ˆın parol˘a.
Corespondent ¸aˆıntre cele dou˘a alfabete se realizeaz˘a dup˘a regula alfabet ˆın alfabet
dup˘a o permutare fix˘a σ (aceasta poate fi chiar permutarea identic˘a iar la descifrare
se aplic˘a aceela¸si procedeu dar cu inversa permut˘arii σ).
ˆ
In funct ¸ie de forma permut˘arii substitut ¸ia se nume¸ste:
- direct˘a (alfabetul cifrat are acela¸si sens lexicografic cu alfabetul clar, sunt ˆın
total 26 astfel de substitut ¸ii). Exemplu de substitut ¸ie direct˘a:
A B C D E F G H I J K L M
G H I J K L M N O P Q R S
149
150 METODA SUBSTITUT¸ IEI
N O P Q R S T U V W X Y Z
T U V W X Y Z A B C D E F
- invers˘a (alfabetul cifrat are sens invers lexicografic cu alfabetul clar, sunt ˆın
total 26 de astfel de substitut ¸ii). Exemplu de substitut ¸ie invers˘a:
A B C D E F G H I J K L M
U T S R Q P O N M L K J I
N O P Q R S T U V W X Y Z
H G F E D C B A Z Y X W V
Reamintim aici trei exemple celebre (vechile coduri ebraice) de substitut ¸ii reciproce
(dac˘a litera X se substituie cu litera Y atunci Y se va substitui cu X) ¸si anume:
- atbash (prima jum˘atate a literelor alfabetului se mapeaz˘a ˆın cea de-a dou˘a
jum˘atate ˆın ordine invers lexicografic˘a):
A B C D E F G H I J K L M
Z Y X W V U T S R Q P O N
- albam (prima jum˘atate a literelor alfabetului se mapeaz˘a ˆın cea de-a dou˘a
jum˘atate ˆın ordine lexicografic˘a):
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 urmeaz˘a vom presupune faptul c˘a substitut ¸ia este direct˘a dac˘a nu este
specificat altfel.
Definit ¸ia 10.1.1. Un cifru de substitut ¸ie liniar de la Z
m
la Z
m
(m fiind
num˘arul de caractere al alfabetului surs˘a) poate fi descris prin funct ¸ia f : Z
m
→Z
m
definit˘a prin f(x) = αx + β cu gcd(α, m) = 1, funct ¸ia de descifrare fiind f
−1
(x) =
α
−1
(x −β). Cheia de cifrare o formeaz˘a numerele α ¸si β.
Observat ¸ia 10.1.1. Cifrul de substitut ¸ie are proprietatea de confuzie (ascun-
derea leg˘aturii dintre textul clar ¸si textul cifrat).
EXERCIT¸ II REZOLVATE 151
10.2. Exercit ¸ii rezolvate
Exercit ¸iul 10.2.1. S˘a se construiasc˘a alfabetul de cifrare cu ajutorul parolei
TESTARESISTEM
iar apoi s˘a se cifreze mesajul IN CRIPTOGRAFIE NICI O REGULA NU ESTE
ABSOLUTA. Permutarea care realizeaz˘a corespondent ¸a este:
0 1 2 3 4 5 6 7 8 9 10 11 12
25 24 23 22 21 20 19 18 17 16 15 14 13
13 14 15 16 17 18 19 20 21 22 23 24 25
12 11 10 9 8 7 6 5 4 3 2 1 0
Rezolvare:
Corepondent ¸a dintre alfabetul clar ¸si alfabetul de cifrare (ˆınainte de realizarea
permut˘arii) este:
A B C D E F G H I J K L M
T E S A R I M B C D F G H
N O P Q R S T U V W X Y Z
J K L N O P Q U V W X Y Z
Corepondent ¸a dintre alfabetul clar ¸si alfabetul de cifrare dup˘a realizarea per-
mut˘arii este:
A B C D E F G H I J K L M
Z Y X W V U Q P O N L K J
N O P Q R S T U V W X Y Z
H G F D C B M I R A S E T
Mesajul clar se proceseaz˘a astfel ˆıncˆat spat ¸iul este ˆınlocuit cu cea mai put ¸in
frecvent˘a liter˘a:
INQCRIPTOGRAFIEQNICIQOQREGULAQNUQESTEQABSOLUTA.
Mesajul cifrat va fi:
OHDXC OFMGQ CZUOV DHOXO DGDCV QIKZD HIDVB MVDZY BGKIM
Z.
152 METODA SUBSTITUT¸ IEI
Exercit ¸iul 10.2.2. S˘a se descifreze mesajul:
DOJMD OVPGF OMATN BXXXX
algoritmul utilizat fiind o substitut ¸ie simpl˘a determinat˘a de cuvˆantul cheie PASS-
WORD.
Rezolvare:
Corespondent ¸a dintre alfabetul clar ¸si alfabetul de cifrare este:
A B C D E F G H I J K L M
P A S W O R D B C E F G H
N O P Q R S T U V W X Y Z
I J K L M N Q T U V X Y Z
Mesajul clar devine (dupa o regrupare a literelor) GEORGE WALKER BUSH.
Se observ˘a c˘a de aceast˘a dat˘a nu s-a mai folosit Q pe post de delimitator de cuvˆant.
10.3. Exercit ¸ii propuse
Exercit ¸iul 10.3.1. Dezvoltat ¸i o aplicat ¸ie care s˘a simuleze execut ¸ia funct ¸iilor de
cifrare/descifrare corespunz˘atoare metodei substitut ¸iei.
Exercit ¸iul 10.3.2. Dezvoltat ¸i o aplicat ¸ie care s˘a decripteze, prin metoda frecvent ¸ei,
mesajele cifrate prin metoda substitut ¸iei.
Exercit ¸iul 10.3.3. Dezvoltat ¸i o aplicat ¸ie care s˘a decripteze, prin metoda atac-
ului cu text clar cunoscut, mesajele cifrate prin metoda substitut ¸iei.
Exercit ¸iul 10.3.4. S˘a se cifreze mesajul:
WEB DESIGN
algoritmul utilizat fiind o substitut ¸ie simpl˘a determinat˘a de cuvˆantul cheie BROWSER.
R˘aspuns: VSRWS PDAJ.
Exercit ¸iul 10.3.5. S˘a se cifreze mesajul:
PUBLIC KEY
algoritmul utilizat fiind o substitut ¸ie simpl˘a determinat˘a de cuvˆantul cheie
ASYMMETRIC.
R˘aspuns: KQSFC YDEX.
EXERCIT¸ II PROPUSE 153
Exercit ¸iul 10.3.6. S˘a se descifreze mesajul:
ONCJB DFJPT DCJKN KKQTV TDSXXX
algoritmul utilizat fiind o substitut ¸ie simpl˘a determinat˘a de cuvˆantul cheie CRIP-
TOGRAFIE.
R˘aspuns: FRANKLIN DELANO ROOSEVELT.
Exercit ¸iul 10.3.7. S˘a se descifreze mesajul:
EKBJO DSZAT NCGPF TJJTP YXXXX
algoritmul utilizat fiind o substitut ¸ie simpl˘a determinat˘a de cuvˆantul cheie CRIPTO.
R˘aspuns: JOHN FITZGERALD KENNEDY.
Exercit ¸iul 10.3.8. Demonstrat ¸i c˘a metoda de cifrare prin substitut ¸ie este un
sistem ˆınchis.
Exercit ¸iul 10.3.9. S˘a se cifreze mesajul:
PRIVATE KEY
algoritmul utilizat fiind o substitut ¸ie simpl˘a determinat˘a de cuvˆantul cheie
BUCURESTI.
R˘aspuns: LNAVB PEFEY.
Exercit ¸iul 10.3.10. S˘a se descifreze mesajul:
LNAVB PEFEY
algoritmul utilizat fiind o substitut ¸ie simpl˘a determinat˘a de cuvˆantul cheie BU-
CURESTI.
R˘aspuns: PRIVATE KEY.
Exercit ¸iul 10.3.11. S˘a se cifreze mesajul:
ASSYMETRIC ENCRYPTION
algoritmul utilizat fiind o substitut ¸ie simpl˘a determinat˘a de cuvˆantul cheie
BRASOV.
Exercit ¸iul 10.3.12. S˘a se descifreze mesajul:
BPPYI OQNEA OJANY LQEKJ
algoritmul utilizat fiind o substitut ¸ie simpl˘a determinat˘a de cuvˆantul cheie BRASOV.
R˘aspuns: ASSYMETRIC ENCRYPTION.
154 METODA SUBSTITUT¸ IEI
Capitolul 11
SISTEMUL DE CIFRARE
PLAYFAIR
11.1. Breviar teoretic
Sistemul Playfair, propus ˆın anul 1854 de Charles Wheatstone dar promovat
pentru utilizare de Lordul Playfair, este unul dintre cele mai cunoscute sisteme de
cifrare digrafice (transform˘a un grup de 2 litere ˆıntr-un grup de alte dou˘a litere).
Acest sistem de cifrare este foarte simplu de folosit ¸si mult mai sigur decˆat sistemele
de substitut ¸ie monoalfabetice.
Descriem ˆın continuare modul de utilizare ˆın cazul alfabetului latin compus din
26 litere. Literele alfabetului A−Z sunt trecute ˆıntr-un careu de 5×5 (litera I fiind
asimilat˘a literei J). Textul clar este preprocesat astfel ˆıncˆat acesta s˘a fie compatibil
cu matricea de cifrare: delimitatorul de cuvˆant este ignorat sau este ˆınlocuit cu cea
mai put ¸in frecvent˘a liter˘a, litera I este asimilat˘a cu litera J, ¸si dac˘a este cazul, se
adaug˘a o liter˘a la text pentru a avea un num˘ar par de digrame.
Regula de cifrare este urm˘atoarea:
i) Dac˘a digrama care se dore¸ste cifrat˘a nu are literele pe aceea¸si linie sau coloan˘a,
atunci regula de cifrare este regula dreptunghiului, traseul fiind pe vertical˘a de la cea
de-a doua liter˘a a digramei c˘atre prima liter˘a. Sau, altfel spus, prima litera a perechii
cifrate este aceea care se gaseste pe aceeasi linie cu prima litera a perechii ˆın clar.
ii) Dac˘a digrama ce se dore¸ste cifrat˘a are literele pe aceea¸si linie, atunci se aplic˘a
regula: cifreaz˘a la dreapta, descifreaz˘a la stˆanga.
iii) Dac˘a digrama ce se dore¸ste cifrat˘a are literele pe aceeia¸si coloan˘a, atunci se
aplic˘a regula: cifreaz˘a ˆın jos, descifreaz˘a ˆın sus.
Observat ¸ia 11.1.1. Dac˘a o digram˘a apareˆın textul clar ˆın ordine invers˘a atunci
155
156 SISTEMUL DE CIFRARE PLAYFAIR
acela¸si lucru se va ˆıntˆampla ¸si ˆın textul cifrat.
Observat ¸ia 11.1.2. Algoritmul Playfair nu are regul˘a pentru cifrarea literelor
duble: digramele ce cont ¸in dou˘a litere identice sunt sparte prin introducerea artifi-
cial˘a a unei alte litere.
Observat ¸ia 11.1.3. Algoritmul Playfair apare ca o extindere, ˆın sensul reducerii
num˘arului de tabele rectangulare folosite (de la dou˘a la unul), al cifrului cu 2 tabele.
Metoda cea mai frevent˘a de atac a acestui tip de cifru const˘a ˆın analiza frecvent ¸ei
digramelor de text clar combinat˘a cu metoda comparat ¸iei patternurilor din textul
cifrat cu patternuri din dict ¸ionar.
11.2. Exercit ¸ii rezolvate
Exercit ¸iul 11.2.1. S˘a se construiasc˘a matricea de cifrare Playfair cu ajutorul
parolei
CRIPTOGRAFIE
iar apoi s˘a se cifreze mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR.
Rezolvare: Matricea Playfair se obt ¸ine trecˆand literele din parol˘a o singur˘a dat˘a
ˆın careul de 5 ×5 iar apoi celelalte litere ale alfabetului ˆın ordine lexicografic˘a:
C R I/J P T
O G A F E
B D H K L
M N Q S U
V W X Y Z
Mesajul este preprocesat, prin introducerea literei Q ca delimitator de cuvˆant ¸si
la finalul mesajului (pentru ca acesta s˘a aib˘a lungime par˘a):
SIQINQCRIPTOGRAFIEQTACEREAQESTEQAURQ.
Exemplific˘am pentru fiecare caz cˆate o digram˘a:
• SI - conform regulii de cifrare se formeaz˘a dreptunghiul cu colt ¸urile I ¸si S
parcurs ˆın sensul IQSP. Textul cifrat ˆıl constituie digrama format˘a din colt ¸urile
care nu apar ˆın textul clar, luate conform ordinii de parcurgere: QP.
EXERCIT¸ II PROPUSE 157
• QI - ˆıntrucˆat literele sunt pe aceea¸si coloan˘a se aplic˘a regula cifreaz˘a ˆın jos,
descifreaz˘a ˆın sus, obt ¸inˆandu-se digrama XA ( X este litera situat˘a sub Q ¸si A
este litera situat˘a sub I).
• NQ - ˆıntrucˆat literele sunt situate pe aceea¸si linie se aplic˘a regula cifreaz˘a la
dreapta, descifreaz˘a la stˆanga, obt ¸inˆandu-se digrama QS(Q este in dreapta lui
N ¸si S este ˆın dreapta lui Q).
ˆ
In continuare, respectˆand regulile de cifrare Playfair mesajul cifrat devine:
QPXAQ SRIPT CEDGF ETAUI OIGTO FUAUP AUEQI NXXXX.
Exercit ¸iul 11.2.2. S˘a se descifreze mesajul:
UFRIL ERGPC RQAW
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind CRIPTOGRAFIE.
Rezolvare: Matricea Playfair este aceea¸si din exercit ¸iul anterior, fiind format˘a
pornind de la aceea¸si parol˘a.
Exemplific˘am pentru fiecare caz operat ¸ia de descifrare pe cˆate o digram˘a:
• UF - conform regulii de descifrare, se formeaz˘a dreptunghiul cu colt ¸urile U ¸si
F. Textul clar ˆıl constituie celelalte 2 colt ¸uri, primul caracter al textului clar
fiind cel care se g˘ase¸ste pe aceea¸si linie cu primul caracter ˆın clar din digram˘a.
Se obt ¸ine SE.
• RI - ˆıntrucˆat literele sunt situate pe aceea¸si linie se aplic˘a regula cifreaz˘a la
dreapta, descifreaz˘a la stˆanga, obt ¸inˆandu-se digrama CR(R este in stˆanga lui
R ¸si R este ˆın stˆanga lui I).
• LE - ˆıntrucˆat literele sunt pe aceea¸si coloan˘a se aplic˘a regula cifreaz˘a ˆın jos,
descifreaz˘a ˆın sus, obt ¸inˆandu-se digrama ET (E este litera situat˘a deasupra lui
L ¸si T este litera situat˘a deasupra lui E).
ˆ
In continuare, respectˆand regulile de descifrare Playfair mesajul cifrat devine:
SECRET WRITING.
11.3. Exercit ¸ii propuse
Exercit ¸iul 11.3.1. Scriet ¸i o aplicat ¸ie care s˘a implementeze urm˘atoarele funct ¸ii:
- cifrarea unui text cu ajutorul algoritmului Playfair;
- descifrarea unui text cifrat cu algoritmul Playfair;
Verificat ¸i rezultatul pe datele de intrare din exercit ¸iile urm˘atoare.
158 SISTEMUL DE CIFRARE PLAYFAIR
Exercit ¸iul 11.3.2. S˘a se cifreze mesajul:
SECURITY IS CHANGING FIELD
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind CHANNEL.
R˘aspuns: UAEQQ KYNMQ HANEL PEFLO CGMA.
Exercit ¸iul 11.3.3. S˘a se cifreze mesajul:
AUTONOMOUS ATTACK AGENTS
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind MALICIOUS.
R˘aspuns: UFNDV EOESB CPZQL MFCHF PNGL.
Exercit ¸iul 11.3.4. S˘a se cifreze mesajul:
VALUABLE SOURCE OF REFERENCE
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind INSTITUTE.
R˘aspuns: WERDB CFDNP DZDAM GMDMF MDTABV.
Exercit ¸iul 11.3.5. S˘a se cifreze mesajul:
THE CIRCLE
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind ALBUM.
R˘aspuns: POFDKQDAKB.
Exercit ¸iul 11.3.6. S˘a se descifreze mesajul:
KDDPM RUBVR PTSFU HPEBV
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD.
R˘aspuns: GERALD RUDOLPH FORD.
Exercit ¸iul 11.3.7. S˘a se descifreze mesajul:
KDPEK DOSTF RDRXB NBBBB
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD.
R˘aspuns: GEORGE WALKER BUSH.
Exercit ¸iul 11.3.8. S˘a se descifreze mesajul:
KDPEK DKBDC RDQOP MTKDC XPNS
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD.
EXERCIT¸ II PROPUSE 159
R˘aspuns: GEORGE HERBERT WALKER BUSH.
Exercit ¸iul 11.3.9. S˘a se descifreze mesajul:
GBQY YAAO RNBM
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind TEST.
R˘aspuns: HARRY TRUMAN.
Exercit ¸iul 11.3.10. S˘a se descifreze mesajul:
PIGOY CLETY AEYLQ VSFWN
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind CRYPTOOL.
R˘aspuns: THE ART OF PROGRAMMING.
Exercit ¸iul 11.3.11. S˘a se cifreze mesajul:
SINAIA
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind SECRET KEY.
R˘aspuns: RFOYHB.
Exercit ¸iul 11.3.12. S˘a se descifreze mesajul:
RFOYHB
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind SECRET KEY.
R˘aspuns: SINAIA.
Exercit ¸iul 11.3.13. S˘a se cifreze mesajul:
PREDEAL
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD.
R˘aspuns: RFRBD ONU.
Exercit ¸iul 11.3.14. S˘a se descifreze mesajul:
RFRBD ONU
Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD.
R˘aspuns: PREDEAL.
160 SISTEMUL DE CIFRARE PLAYFAIR
Capitolul 12
SISTEMUL DE CIFRARE
HILL
12.1. Breviar teoretic
Sistemul de cifrare Hill este o metod˘a de substitut ¸ie poligrafic˘a bazat˘a pe calcule
efectuate ˆın algebra mod p.
ˆ
In faza de preprocesare delimitatorul de spat ¸iu este ignorat sau ˆınlocuit cu car-
acterul cel mai put ¸in frecvent din limba ˆın care este textul clar (ˆın limba romˆan˘a
Q).
Algoritmul proceseaz˘a un bloc de date M de n caractere (litere), cheia de cifrare
fiind reprezentat˘a de o matrice K de dimensiune n ×n, inversabil˘a mod p.
Exist˘a dou˘a subclase ale algoritmului Hill pentru care regulile de cifrare difer˘a
prin ordinea ˆın care se efectueaz˘a ˆınmult ¸irile: o prima subclasa are ca regul˘a de
cifrare operat ¸ia deˆınmult ¸ire C = MKcu descifrarea M = CK
−1
iar a doua subclasa
folose¸ste ca regul˘a de cifrare ˆınmult ¸irea C = KM avˆand descifrarea corespunz˘atoare
M = K
−1
C.
Observat ¸ia 12.1.1. Dac˘a matricea K este simetric˘a (matricea K ¸si transpusa
ei sunt egale) atunci regulile de cifrare pentru cele dou˘a subclase sunt echivalente.
Observat ¸ia 12.1.2.
ˆ
In cazul alfabetului latin p = 26, cheia de cifrare K trebuie
s˘a fie o matrice inversabil˘a mod 26.
161
162 SISTEMUL DE CIFRARE HILL
12.2. Exercit ¸ii rezolvate
Exercit ¸iul 12.2.1. S˘a se cifreze mesajul:
BLAZE OF GLORY.
Algoritmul utilizat este cifrul lui Hill (2 ×2), cheia de cifrare fiind matricea:
_
J B
V I
_
.
Rezolvare: Prin ˆınlocuirea literelor din cheie cu pozit ¸iile corespunz˘atoare din
alfabet (A - 0, B - 1, etc.) se obt ¸ine:
K =
_
9 1
21 8
_
.
Textul clar se sparge ˆın blocuri de 2 caractere, care se cifreaz˘a pe rˆand. De
exemplu, BL corespunde matricii
M =
_
1 11
_
.
Digrama se cifreaz˘a ˆın:
C =
_
1 11
_
_
9 1
21 8
_
mod 26 =
_
6 11
_
=
_
G L
_
.
Deci, BL se cifreaz˘a ˆın GL. Se continu˘a ˆın mod analog.
ˆ
In final se obt ¸ine:
GLFSS MPBDT HB.
Exercit ¸iul 12.2.2. S˘a se descifreze mesajul:
JESHB JJAZM TANCF VBJXX.
Algoritmul utilizat este cifrul lui Hill (2 ×2), cheia de cifrare fiind matricea:
_
H U
D F
_
.
Rezolvare: Prin ˆınlocuirea literelor din cheie cu pozit ¸iile corespunz˘atoare din
alfabet (A - 0, B - 1, etc.) se obt ¸ine:
K =
_
7 20
3 5
_
.
Se determin˘a inversa matricei K mod 26 :
EXERCIT¸ II PROPUSE 163
K
−1
= det(K)
−1
K

mod 26, unde
det(K)
−1
mod 26 = (7 · 5 −3 · 20)
−1
mod 26 = (−25)
−1
mod 26 = 1
¸si
K

=
_
5 −20
−3 7
_
mod 26 =
_
5 6
23 7
_
.
S-a obt ¸inut:
K
−1
=
_
5 6
23 7
_
.
Pentru descifrarea perechii JE, se determin˘a matricea linie care cont ¸ine valorile
corespunz˘atoare din alfabet:
C =
_
J E
_
=
_
9 4
_
.
Prin ˆınmult ¸ire cu cheia de descifrare se obt ¸ine:
M =
_
9 4
_
_
5 6
23 7
_
mod 26 =
_
7 4
_
=
_
H E
_
.
Deci, JE se descifreaz˘a ˆın HE.
Se procedeaz˘a ˆın mod analog pentru toate perechile de cˆate 2 caractere cifrate:
SH se descifreaz˘a ˆın RB, BJ ˆın ER, etc.
ˆ
In final, dup˘a efectuarea tuturor calculelor ¸si regruparea literelor, se obt ¸ine: HER-
BERT CLARK HOOVER.
12.3. Exercit ¸ii propuse
Exercit ¸iul 12.3.1. Scriet ¸i o aplicat ¸ie care s˘a implementeze funct ¸iile de cifrare
¸si descifrare, specifice algoritmului Hill cu p = 26.
Verificat ¸i rezultatul pe datele de intrare din exercit ¸iile urm˘atoare.
Exercit ¸iul 12.3.2. S˘a se cifreze mesajul:
COMPLETE AND PROPER PACKAGE.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
N T
C R
_
.
164 SISTEMUL DE CIFRARE HILL
R˘aspuns: GIZTL MLCNN MBTML UMDMI AUYC.
Exercit ¸iul 12.3.3. S˘a se cifreze mesajul:
ESOTERIC TOPIC OF RESEARCH.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
B Y
G P
_
.
R˘aspuns: ICYXC NUOZQ LMIYD LICES DWHM.
Exercit ¸iul 12.3.4. S˘a se cifreze mesajul:
BENJAMIN HARRISON.
Algoritmul utilizat este cifrul lui Hill (3 ×3), cheia de cifrare fiind matricea:
_
_
A B C
B C A
C A B
_
_
.
R˘apuns: EJPYJ EBIXZ IRUSE ANA.
Exercit ¸iul 12.3.5. S˘a se descifreze mesajul:
ZKNAW NIOZO BRXSW QNNXX.
Algoritmul utilizat este cifrul lui Hill (2 ×2), cheia de cifrare fiind matricea:
_
B E
V H
_
.
R˘apuns: RONALD WILSON REAGAN.
Exercit ¸iul 12.3.6. S˘a se descifreze mesajul:
ZPXUB IRHNU VXWSP DJTNN.
Algoritmul utilizat este cifrul lui Hill (2 ×2), cheia de cifrare fiind matricea:
_
J D
X C
_
.
R˘apuns: RICHARD MILHOUS NIXON.
Exercit ¸iul 12.3.7. S˘a se descifreze mesajul:
EJPYJ EBIXZ IRUSE ANA.
EXERCIT¸ II PROPUSE 165
Algoritmul utilizat la cifrare este cifrul lui Hill (3 × 3), cheia de cifrare fiind
matricea:
_
_
A B C
B C A
C A B
_
_
.
R˘apuns: BENJAMIN HARRISON.
Exercit ¸iul 12.3.8. S˘a se descifreze mesajul:
NYNAF JUWBL ZXANM NGLEI JQWF
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
J S
W V
_
.
R˘aspuns: FINAL ROUND TRANSFORMATION.
Exercit ¸iul 12.3.9. S˘a se descifreze mesajul:
NKTNM QZQEY WVDIA CIGMG.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
D I
K B
_
.
R˘aspuns: RETRIEVE YOUR BAGGAGE.
Exercit ¸iul 12.3.10. Demonstrat ¸i c˘a algoritmul lui Hill este un algoritm de
cifrare ˆınchis.
Exercit ¸iul 12.3.11. S˘a se cifreze mesajul:
OPERATIONAL RESEARCH.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
F H
H I
_
.
R˘aspuns: TKJID WIMNN SFQQU CVFLD.
Exercit ¸iul 12.3.12. S˘a se descifreze mesajul:
TKJID WIMNN SFQQU CVFLD.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
F H
H I
_
.
166 SISTEMUL DE CIFRARE HILL
R˘aspuns: OPERATIONAL RESEARCH.
Exercit ¸iul 12.3.13. S˘a se cifreze mesajul:
CRYPTOLOGY.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
T E
S T
_
.
R˘aspuns: CVWPB KFWCS.
Exercit ¸iul 12.3.14. S˘a se cifreze mesajul:
NAVAJO CODE.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
L Q
L J
_
.
R˘aspuns: NNXXL RMSTR.
Exercit ¸iul 12.3.15. S˘a se descifreze mesajul:
CVWPB KFWCS.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
T E
S T
_
.
R˘aspuns: CRYPTOLOGY.
Exercit ¸iul 12.3.16. S˘a se descifreze mesajul:
NNXXL RMSTR.
Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
_
L Q
L J
_
.
R˘aspuns: NAVAJO CODE.
Capitolul 13
SISTEME DE CIFRARE
POLIALFABETICE
13.1. Breviar teoretic
Un sistem de cifrare de tip substitut ¸ie polialfabetic˘a este generalizarea sistemului
de cifrare de substitut ¸ie monoalfabetic˘a, fiind compus dintr-un num˘ar N de alfabete.
Fiecare alfabet reprezint˘a o permutare (stabilit˘a ˆın funct ¸ie de parol˘a) a alfabetului
de intrare. Algoritmul de cifrare const˘a ˆın substituirea celei de a i−a litere m din
textul clar cu litera corespunz˘atoare din cel de al i mod N alfabet.
Sistemele polialfabetice sunt u¸sor de identificat prin aplicarea analizei frecvent ¸elor
de apatit ¸ie a literelor ˆın secvent ¸e decimate din textul cifrat.
Un exemplu de sistem polialfabetic este algoritmul lui Vigen`ere ˆın care parola
k
1
, . . . , k
n
este folosit˘a periodic pentru a transforma caracterul m
j
∈ {A, . . . , Z} din
textul clar dup˘a formula: c
j
= (m
j
+k
j mod n
) mod 26. Pentru descifrare se folose¸ste
formula: m
j
= (c
j
−k
j mod n
) mod 26.
Atacul sistemelor polialfabetice este similar cu atacul a N sisteme de substitut ¸ie
monoalfabetic˘a. Deci, o procedur˘a de tip divide et impera are o complexitate de
O(N). Procedura este descris˘a ˆın continuare:
Intrare: Textul cifrat de lungime M suficient de mare.
Ie¸sire: Textul clar corespunz˘ator sistemului de cifrare polialfabetic.
PASUL 1. Determin˘a num˘arul de alfabete N.
PASUL 2. Pentru j = 0 to 4 execut˘a:
pentru i = 1 to N −j execut˘a:
aplic˘a procedura de reconstruct ¸ie part ¸ial˘a (pe baza frecven-
t ¸elor (j + 1)−gramelor) a alfabetelor i, . . . , i +j.
PASUL 3. Conform celor N alfabete reconstruie¸ste textul clar.
167
168 SISTEME DE CIFRARE POLIALFABETICE
Observat ¸ia 13.1.1. Procedura descris˘a mai sus are ca parametru implicit de
analiz˘a num˘arul maxim de leg˘aturi 4 : astfel, 1−gramele sunt caracterele, 2−gramele
sunt dublet ¸ii, etc.
13.2. Exercit ¸ii rezolvate
Exercit ¸iul 13.2.1. S˘a se cifreze mesajul WINDS OF CHANGE cu ajutorul
algoritmului Vigen`ere, parola fiind FUTURE.
Rezolvare: Aplicˆand cifrarea pentru fiecare caracter al textului clar, t ¸inˆand cont
de pozit ¸ia acestora ˆın alfabet, se obt ¸ine:
j m
j
k
j(mod6)
c
j
= (m
j
+k
j(mod6)
)(mod26)
1 W −22 F −5 (22 + 5)(mod 26) = 1 −B
2 I −8 U −20 (8 + 20)(mod 26) = 2 −C
3 N −13 T −19 (13 + 19)(mod 26) = 6 −G
4 D −3 U −20 (3 + 20)(mod 26) = 23 −X
5 S −18 R −17 (18 + 17)(mod 26) = 9 −J
6 O −14 E −4 (14 + 4)(mod 26) = 18 −S
7 F −5 F −5 (5 + 5)(mod 26) = 10 −K
8 C −2 U −20 (2 + 20)(mod 26) = 22 −W
9 H −7 T −19 (7 + 19)(mod 26) = 0 −A
10 A−0 U −20 (0 + 20)(mod 26) = 20 −U
11 N −13 R −17 (13 + 17)(mod 26) = 4 −E
12 G−6 E −4 (6 + 4)(mod 26) = 10 −K
13 E −4 F −5 (4 + 5)(mod 26) = 9 −J
Rezult˘a textul cifrat: BCGXJ SKWAU EKJ.
Exercit ¸iul 13.2.2. S˘a se descifreze mesajul IHWGZ CIHGO GKAJV OI ¸stiind
c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind PASSWORD.
Rezolvare: Aplicˆand descifrarea pentru fiecare caracter al textului cifrat, t ¸inˆand
cont de pozit ¸ia acestora ˆın alfabet, se obt ¸ine:
EXERCIT¸ II PROPUSE 169
j c
j
k
j(mod8)
m
j
= (c
j
−k
j(mod8)
)(mod26)
1 I −8 P −15 (8 −15)(mod 26) = 19 −T
2 H −7 A−0 (7 −0)(mod 26) = 7 −H
3 W −22 S −18 (22 −18)(mod 26) = 4 −E
4 G−6 S −18 (6 −18)(mod 26) = 14 −O
5 Z −25 W −22 (25 −22)(mod 26) = 3 −D
6 C −2 0 −14 (2 −14)(mod 26) = 14 −O
7 I −8 R −17 (8 −17)(mod 26) = 17 −R
8 H −7 D −3 (7 −3)(mod 26) = 4 −E
9 G−6 P −15 (6 −15)(mod 26) = 17 −R
10 O −14 A−0 (14 −0)(mod 26) = 14 −O
11 G−6 S −18 (6 −18)(mod 26) = 14 −O
12 K −10 S −18 (10 −18)(mod 26) = 18 −S
13 A−0 W −22 (0 −22)(mod 26) = 4 −E
14 J −9 0 −14 (9 −14)(mod 26) = 21 −V
15 V −21 R −17 (21 −17)(mod 26) = 4 −E
16 O −14 D −3 (14 −3)(mod 26) = 11 −L
17 I −8 P −15 (8 −15)(mod 26) = 19 −T
Dupa gruparea literelor rezult˘a: THEODORE ROOSEVELT.
13.3. Exercit ¸ii propuse
Exercit ¸iul 13.3.1. S˘a se cifreze mesajul OPTIMISTIC cu ajutorul algoritmului
Vigen`ere, folosind parola GOODDAYS.
R˘aspuns: UDHLPIQLOQ.
Exercit ¸iul 13.3.2. S˘a se cifreze mesajul THANK YOU cu ajutorul algoritmului
Vigen`ere, folosind parola POLITE.
R˘aspuns: IVLVD CDI.
Exercit ¸iul 13.3.3. S˘a se cifreze mesajul GOING BACK IN TIME cu ajutorul
algoritmului Vigen`ere, folosind parola MEMORY.
R˘aspuns: SSUBX ZMGW WE RUQQ.
Exercit ¸iul 13.3.4. S˘a se cifreze mesajul FAST CARS cu ajutorul algoritmului
Vigen`ere, folosind parola RADAR.
170 SISTEME DE CIFRARE POLIALFABETICE
R˘aspuns: WAVT TRRV.
Exercit ¸iul 13.3.5. S˘a se cifreze mesajul SUITCASE cu ajutorul algoritmului
Vigen`ere, folosind parola TRIP.
R˘aspuns: LLQIVRAT.
Exercit ¸iul 13.3.6. S˘a se descifreze mesajul WIUXGHG WXGALFYK ¸stiind
c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind TEST.
R˘aspuns: DECENDO DECISMUS.
Exercit ¸iul 13.3.7. S˘a se descifreze mesajul UAEGQD OOGAT ¸stiind c˘a a fost
cifrat cu ajutorul algoritmului Vigen`ere, parola fiind TANGO.
R˘aspuns: BARACK OBAMA.
Exercit ¸iul 13.3.8. S˘a se descifreze mesajul XVLGM OXLDC ¸stiind c˘a a fost
cifrat cu ajutorul algoritmului Vigen`ere, parola fiind BRIDE.
R˘aspuns: WEDDING DAY.
Exercit ¸iul 13.3.9. S˘a se descifreze mesajul IHZSV SKIEE CHWPU ACSH
¸stiind c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind PARADOX.
R˘aspuns: THIS SENTENCE IS FALSE.
Exercit ¸iul 13.3.10. S˘a se descifreze mesajul MYEYS VOJFQ ZAVLL N ¸stiind
c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind TRANSILVANIA.
R˘aspuns: THE LAND OF DRACULA.
Exercit ¸iul 13.3.11. S˘a se cifreze mesajul OPERATIONAL RESEARCH cu
ajutorul algoritmului Vigen`ere, folosind parola PASSWORD.
R˘aspuns: DPWJW HZRCA DJAGV DGCZ.
Exercit ¸iul 13.3.12. S˘a se descifreze mesajul DPWJW HZRCA DJAGV DGCZ
¸stiind c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind PASSWORD.
EXERCIT¸ II PROPUSE 171
R˘aspuns: OPERATIONAL RESEARCH.
Exercit ¸iul 13.3.13. S˘a se cifreze mesajul CRIPTOGRAFIE cu ajutorul algo-
ritmului Vigen`ere, folosind parola TEST.
R˘aspuns: VVAIM SYKTJ AX.
Exercit ¸iul 13.3.14. S˘a se descifreze mesajul VVAI MSYK TJAX ¸stiind c˘a a
fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind TEST.
R˘aspuns: CRIPTOGRAFIE.
172 SISTEME DE CIFRARE POLIALFABETICE
Capitolul 14
METODA TRANSPOZIT¸IEI
14.1. Breviar teoretic
Metoda transpozit ¸iei asigur˘a, ˆın cadrul sistemelor criptografice, realizarea di-
fuziei: ˆımpr˘a¸stierea propriet˘at ¸ilor statistice ale textului clar ˆın textul cifrat. Metoda
transpozit ¸iei ˆımbrac˘a mai multe forme: textul este citit ˆıntr-o form˘a matriceal˘a linie
cu linie sau coloan˘a cu coloan˘a, se permut˘a liniile ¸si/sau coloanele, rezultatul fiind
apoi scris linie cu linie sau coloan˘a cu coloan˘a. Spre exemplu, ˆın cazul transpozit ¸iei
coloanelor, textul clar se cite¸ste, linie cu linie, ˆıntr-o form˘a tabelar˘a cu n coloane,
acesta fiind scris pe coloane ˆın funct ¸ie de cheia de cifrare reprezentat˘a de o permutare
din σ
n
.
Dac˘a dimensiunea textului clar nu este un multiplu de n atunci acesta se poate
completa sau nu cu un caracter bine precizat.
ˆ
In faza de preprocesare delimitatorul
de spat ¸iu este ignorat sau ˆınlocuit cu caracterul cel mai put ¸in frecvent din limba ˆın
care este textul clar (ˆın limba romˆan˘a Q).
14.2. Exercit ¸ii rezolvate
Exercit ¸iul 14.2.1. S˘a se cifreze prin metoda transpozit ¸iei (N = 12), pornind
de la parola
CRIPTOGRAFIE
mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR.
Rezolvare: Vom construi secvent ¸a numeric˘a de cifrare asociind fiec˘arei litere din
parol˘a indicele din ordinea lexicografic˘a: astfel literele din parol˘a, scrise ˆın ordine
lexicografic˘a sunt:
173
174 METODA TRANSPOZIT¸ IEI
1 2 3 4 5 6 7 8 9 10 11 12
A C E F G I I O P R R T
deci parola CRIPTOGRAFIE produce permutarea: 2 10 6 9 12 8 5 11 1 4 7 3.
Textul clar este scris ˆıntr-o tabel˘a cu 12 coloane:
2 10 6 9 12 8 5 11 1 4 7 3
S I Q I N Q C R I P T O
G R A F I E Q T A C E R
E A Q E S T E Q A U R Q
Deoarece lungimea textului nu este divizibil˘a cu 12 vom completa ultimul rˆand cu
o secvent ¸˘a cunoscut˘a (ˆın acest caz caracterul Q). Textul cifrat se obt ¸ine citind
coloanele tabelei de cifrare ˆın ordinea indicat˘a de parola numeric˘a: IAASG EORRQ
PCUCQ EQAQT ERQET IFEIR ARTQN IS.
Descifrarea se va realiza ˆın mod similar folosind permutarea invers˘a σ
−1
.
Dac˘a dimensiunea transpozit ¸iei N este mai mic˘a decˆat lungimea parolei atunci
se vor ret ¸ine N caractere din parol˘a.
14.3. Exercit ¸ii propuse
Exercit ¸iul 14.3.1. Scriet ¸i un program care s˘a implementeze funct ¸iile de cifrare/descifrare
specifice metodei transpozit ¸iei coloanelor.
Exercit ¸iul 14.3.2. S˘a se cifreze mesajul:
ELECTRIC HOTPLATE
printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (2, 1, 3).
R˘aspuns: LTCOL EECIH PTERQ TAQ.
Exercit ¸iul 14.3.3. S˘a se cifreze mesajul:
CERCETARI OPERATIONALE
printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (3, 1, 2).
R˘aspuns: EEROR IAQRT IPAOL QCCAQ ETNE.
Exercit ¸iul 14.3.4. S˘a se cifreze mesajul CRIPTOGRAFIE prin metoda transpozit ¸iei
utilizˆand permutarea σ = (4, 2, 1, 3). Verificat ¸i rezultatul obt ¸inut.
EXERCIT¸ II PROPUSE 175
Exercit ¸iul 14.3.5. S˘a se descifreze mesajul:
EORSE TOROE LHDEO VT
cifrat printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (2, 3, 1).
R˘aspuns: THEODORE ROOSEVELT.
Exercit ¸iul 14.3.6. S˘a se descifreze mesajul:
SFCME TAEAE NLR
cifrat printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (1, 2, 3).
R˘aspuns: STEFAN CEL MARE.
Exercit ¸iul 14.3.7. S˘a se descifreze mesajul:
HTZMA VEUII IAL
cifrat printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (2, 3, 1).
R˘aspuns: MIHAI VITEAZUL.
Exercit ¸iul 14.3.8. S˘a se descifreze mesajul:
NMTMA STEDI NEINO NT
cifrat printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (2, 3, 1).
R˘aspuns: SENTIMENT DOMINANT.
Exercit ¸iul 14.3.9. S˘a se descifreze mesajul:
TDDDR TEAAU EIASN RLCPR
cifrat printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (3, 1, 2).
R˘aspuns: STANDARDUL DE CRIPTARE.
Exercit ¸iul 14.3.10. Demonstrat ¸i c˘a algoritmul de cifrare ce utilizeaz˘a transpozit ¸ia
este un sistem ˆınchis.
Exercit ¸iul 14.3.11. S˘a se cifreze mesajul:
CERCETARI OPERATIONALE
printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (2, 1, 3).
R˘aspuns: EERPAOLCC AORIARTIETNE.
176 METODA TRANSPOZIT¸ IEI
Exercit ¸iul 14.3.12. S˘a se descifreze mesajul:
EERPAOLCC AORIARTIETNE
cifrat printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (2, 1, 3).
R˘aspuns: CERCETARI OPERATIONALE.
Exercit ¸iul 14.3.13. S˘a se cifreze mesajul:
OPERATIONAL RESEARCH
printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (2, 1, 4, 3).
R˘aspuns: PTASC OANER RORAE ILEH.
Exercit ¸iul 14.3.14. S˘a se descifreze mesajul:
PTASC OANER RORAE ILEH
cifrat printr-o transformare de tip transpozit ¸ie cu ajutorul permut˘arii σ = (2, 1, 4, 3).
R˘aspuns: OPERATIONAL RESEARCH.
Capitolul 15
SISTEME MIXTE
15.1. Breviar teoretic
Sistemele mixte au la baz˘a o cifrare succesiv˘a a mesajului prin metoda substitut ¸iei
¸si apoi prin metoda transpozit ¸iei sau invers.
Atacarea sistemul de cifrare se realizeaz˘a de la ultima sa component˘a c˘atre prima.
Remarc˘am faptul c˘a substitut ¸ia simpl˘a este comutativ˘a cu operat ¸ia de transpozit ¸ie
deci se poate oricˆand aborda mai ˆıntˆai substitut ¸ia ¸si apoi transpozit ¸ia.
ˆ
In cazul
utiliz˘arii unui sistem polialfabetic, cu num˘ar necunoscut de alfabete, recomandarea
este ca dup˘a stabilirea, prin metode statistice, a num˘arului de alfabete, s˘a se abor-
deze concomitent identificarea efectiv˘a a alfabetelor ¸si al transpozit ¸iei utilizate.
ˆ
In
cazul utiliz˘arii unui sistem poligrafic (tabele de cifrare) ¸si o transpozit ¸ie este reco-
mandabil˘a o tehnic˘a de tip backtracking.
15.2. Exercit ¸ii rezolvate
Exercit ¸iul 15.2.1. S˘a se cifreze mesajul GEOMETRIC FIGURE cu ajutorul
algoritmului lui Cezar (k = 5) ¸si al transpozit ¸iei σ = (2, 1, 3).
Rezolvare: Mai ˆıntˆai textul este cifrat cu sistemul Cezar folosind cheia k = 5, deci
corespondent ¸a dintre cele 2 alfabete devine:
text clar A B C D E F G H I ...
text cifrat F G H I J K L M N ...
Astfel se obt ¸ine: LJT RJY WNH KNL ZWJ. Apoi, textul obt ¸inut se a¸seaz˘aˆıntr-o
tabel˘a cu 3 coloane:
177
178 SISTEME MIXTE
2 1 3
L J T
R J Y
W N H
K N L
Z W J
Textul cifrat se determin˘a citind pe coloane ˆın ordinea indicat˘a de permutare
(coloana din mijloc, apoi cea din stˆanga ¸si ˆın final cea din dreapta): JJNNWLRW
KZTYHLJ .
Exercit ¸iul 15.2.2. S˘a se decripteze mesajul urm˘ator:
DKVUR UTUBK WFCVG ETGOC XWVWC
OCVPQ VUVWG FGHTQ VKUUV KKNKC
RKCPQ OQFKC EWVG
¸stiind c˘a a fost cifrat cu ajutorul algoritmului lui Cezar (k = 2) ¸si supracifrat
prin metoda transpozit ¸iei utilizˆand permutarea (3, 2, 1).
Rezolvare: Cum substitut ¸ia ¸si transpozit ¸ia sunt comutative, putem mai ˆıntˆai de-
cripta mesajul folosind Cezar cu cheia k = 2 ¸si apoi decripta prin metoda transpozit ¸iei.
Pentru decriptarea mesajului folosind metoda Cezar cu k = 2, fiecare caracter se
ˆınlocuie¸ste cu caracterul situat cu 2 pozit ¸ii mai ˆınainte ˆın alfabet:
text cifrat A B C D E F G H I ...
text clar Y Z A B C D E F G ...
Dup˘a decriptare, textul devine: BITSP SRSZI UDATE CREMA VUTUA MATNO
TSTUE DEFRO TISST IILIA PIANO MODIA CUTE .
Acesta reprezint˘a un text cifrat prin metoda transpozit ¸iei. Cum textul are 64 de
caractere ¸si permutarea este de lungime 3, atunci num˘arul de litere pe coloane este:
21, 21 si ¸ 22. Coloanele cu numai 21 de caractere sunt cele care corespund valoriilor
luate ˆın ordine descresc˘atoare din permutarea invers˘a σ
−1
= (3, 2, 1):
EXERCIT¸ II PROPUSE 179
3 2 1
B U S
I T S
T U T
S A I
P M I
S A L
R T I
S N A
Z O P
I T I
U S A
D T N
A U O
T E M
E D O
C E D
R F I
E R A
M O C
A T U
V I T
E
1 2 3
S U B
S T I
T U T
I A S
I M P
L A S
I T R
A N S
P O Z
I T I
A S U
N T D
O U A
M E T
O D E
D E C
I F R
A R E
C O M
U T A
T I V
E
Dup˘a rearanjarea coloanelor conform permut˘arii inverse σ
−1
se obt ¸ine tabela
din dreapta. Citind pe linii se descoper˘a textul clar: SUBSTITUTIA SIMPLA SI
TRANSPOZITIA SUNT DOUA METODE DE CIFRARE COMUTATIVE .
15.3. Exercit ¸ii propuse
Exercit ¸iul 15.3.1. Dezvoltat ¸i o aplicat ¸ie care s˘a implementeze rutine specifice
decript˘arii sistemelor mixte compuse din transpozit ¸ii ¸si substitut ¸ii simple.
Exercit ¸iul 15.3.2. Se dau criptogramele:
Criptograma 1:
VXEVW LWXWL DVLPS ODVLW UDQVS
RCLWL DVXQW GRXDP HWRGH GHFLI
UDUHF RPXWD WLYHX
Criptograma 2:
YAHYZ OZAZO GYOSV RGYOZ XGTYV
180 SISTEME MIXTE
UFOZO GYATZ JUAGS KZUJK JKIOL
XGXKI USAZG ZOBKX
Care din afirmat ¸iile de mai jos sunt adev˘arate:
a) metoda de cifrare utilizat˘a este o substitut ¸ia simpl˘a;
b) metoda de cifrare utilizat˘a este o transpozit ¸ie;
c) metoda de cifrare este reprezentat˘a de algoritmul lui Cezar;
d) nu se poate preciza sistemul criptografic utilizat.
Justificat ¸i r˘aspunsul. Decriptat ¸i mesajul.
R˘aspuns: a) ¸si c). Textul clar: SUBSTITUTIA SIMPLA SI TRANSPOZITIA
SUNT DOUA METODE DE CIFRARE COMUTATIVE.
Exercit ¸iul 15.3.3. Se dau criptogramele:
Criptograma 1:
BITSP SRSZI UDATE CREMA VUTUA
MATNO TSTUE DEFRO TISST IILIA
PIANO MODIA CUTE
Criptograma 2:
UTUAM ATNOT STUED EFROT IBITS
PSRSZ IUDAT ECREM AVSST IILIA
PIANO MODIA CUTE
Care din afirmat ¸iile de mai jos sunt adev˘arate:
a) metoda de cifrare utilizat˘a este o substitut ¸ia simpl˘a;
b) metoda de cifrare utilizat˘a este o transpozit ¸ie;
c) metoda de cifrare este reprezentat˘a de algoritmul lui Cezar;
d) nu se poate preciza sistemul criptografic utilizat.
Justificat ¸i r˘aspunsul. Decriptat ¸i mesajul.
R˘aspuns: b). Textul clar: SUBSTITUTIA SIMPLA SI TRANSPOZITIA SUNT
DOUA METODE DE CIFRARE COMUTATIVE.
Exercit ¸iul 15.3.4. Cifrat ¸i mesajul SPECIAL PROPERTY folosind algoritmu-
lui lui Cezar (k = 13) ¸si transpozit ¸ia dat˘a de σ = (2, 4, 3, 1).
R˘aspuns: PCRFVEE RYCLCNBG.
Exercit ¸iul 15.3.5. Decriptat ¸i mesajul CPKQCG ZGTVTKGOERIH ¸stiind c˘a
a fost cifrat cu ajutorul algoritmului lui Cezar ¸si al unei transpozit ¸ii.
R˘aspuns: EXAMEN CRIPTOGRAFIE.
EXERCIT¸ II PROPUSE 181
Exercit ¸iul 15.3.6. Decriptat ¸i mesajul ZGTVTK GOERIHCPKQCG ¸stiind c˘a
a fost cifrat cu ajutorul algoritmului lui Cezar ¸si al unei transpozit ¸ii.
R˘aspuns: EXAMEN CRIPTOGRAFIE.
182 SISTEME MIXTE
Capitolul 16
GENERATOARE
PSEUDOALEATOARE
16.1. Breviar teoretic
Un registru de deplasare cu feedback const˘a ˆın n locat ¸ii de memorie de cˆate un
bit care se ”deplaseaz˘a” spre dreapta ¸si o funct ¸ie de feedback care exprim˘a orice
element nou a(t), cu t ≥ n, al secvent ¸ei ˆın funct ¸ie de elementele generate anterior
a(t −n), a(t −n + 1), . . . , a(t −1).
Funct ¸ia de feedback trebuie s˘a fie nesingular˘a, adic˘a de forma:
a(t) = g(a(t − 1), . . . , a(t − n + 1)) ⊕ a(t − n), unde ⊕ desemneaz˘a operat ¸ia
SAU exclusiv (XOR). Dac˘a funct ¸ia de feedback este liniar˘a (se poate implementa
doar folosind operat ¸ia SAU exclusiv) spunem c˘a generatorul este un registru de
deplasare cu feedback liniar (LFSR). Altfel, spunem c˘a generatorul este un registru
de deplasare cu feedback neliniar (NLFSR).
O locat ¸ie de memorie a registrului se nume¸ste nivel, iar semnalele binare a(0), a(1), . . . ,
a(n −1) sunt ˆınc˘arcate ca date init ¸iale. Perioada secvent ¸ei produse depinde atˆat de
num˘arul de niveluri, cˆat ¸si de detaliile conexiunilor de feedback. Mai exact, perioada
maxim˘a a secvent ¸ei care poate fi generat˘a de un registru de deplasare cu feedback,
avˆand n niveluri ¸si o funct ¸ie de feedback nesingular˘a este 2
n
− 1, adic˘a num˘arul
maxim de st˘ari ˆın care se poate afla un registru cu n niveluri (se exclude starea
nul˘a). LFSR-urile sunt folosite de mult timp pentru teste VSLI, comunicat ¸ii cu
spectru distribuit etc. Funct ¸ia de feedback a unui LFSR are forma:
a(t) = c
1
a(t −1) ⊕c
2
a(t −2) ⊕. . . ⊕c
n−1
a(t −n + 1) ⊕a(t −n), (16.1)
unde c
i
∈ {0, 1}. Conexiunea de feedback a unui LFSR poate fi exprimat˘a printr-un
183
184 GENERATOARE PSEUDOALEATOARE
polinom de feedback:
f(X) = 1 +c
1
X +c
2
X
2
+. . . +c
n−1
X
n−1
+X
n
,
cu nedeterminata X. Acest polinom decide perioada ¸si comportarea statistic˘a a
secvent ¸ei de ie¸sire. Pentru a preveni o secvent ¸˘a de ie¸sire trivial˘a, trebuie ca starea
,,zero peste tot” s˘a nu fie stare init ¸ial˘a. De exemplu, dac˘a un LFSR cu patru
niveluri are polinomul de feedback:
f(X) = 1 +X +X
2
+X
3
+X
4
,
dependent de starea init ¸ial˘a, atunci el va genera una din secvent ¸ele de perioad˘a 5.
a) 1111011110 . . . ,
b) 1000110001 . . . ,
c) 0100101001 . . . ,
Sau, alt exemplu, dac˘a LFSR are polinomul de feedback dat de f(X) = 1 +X +
X
4
, atunci el genereaz˘a o singur˘a secvent ¸˘a netrivial˘a de perioad˘a 15, cu cea mai
bun˘a statistic˘a pe care o astfel de secvent ¸˘a o poate avea:
101100100011110 . . .
Pentru a garanta cea mai mare perioad˘a posibil˘a 2
n
− 1, polinomul de feedback
f(X) al LFSR-ului trebuie s˘a fie primitiv. Aceasta ˆınsemn˘a c˘a f(X) trebuie ales
astfel ˆıncˆat cel mai mic num˘ar ˆıntreg pozitiv T pentru care X
T
−1 este divizibil cu
f(X) s˘a fie T = 2
n
−1. Exist˘a algoritmi care testeaz˘a primitivismul unui polinom.
Num˘arul de polinoame primitive de grad n este:
N
p
(n) =
Φ(2
n
−1)
n
,
unde Φ(x), cunoscut˘a ca funct ¸ia lui Euler, desemneaz˘a cardinalul de numere naturale
mai mici ca x ¸si relativ prime cu x. Observ˘am c˘a dac˘a un polinom f(X) este
primitiv atunci ¸si polinomul reciproc lui adic˘a X
n
f(
1
X
) este primitiv. Se ¸stie c˘a
orice polinom primitiv este ireductibil. Reciproca nu este adev˘arat˘a. Num˘arul de
polinoame ireductibile de grad n ˆın algebra mod p ( p = 2 ) este dat de formula
urm˘atoare:
N
I
(n) =
1
n

d|n
p
d
µ(
n
d
),
unde µ este funct ¸ia lui M¨oebius definit˘aˆın felul urm˘ator pentru n =
k

1
p
α
i
i
: µ(n) = 0
dac˘a
k

i
α
i
> 1, µ(n) = (−1)
k
dac˘a n este produsul a k numere prime distincte ¸si
EXERCIT¸ II REZOLVATE 185
µ(1) = 1. Leg˘atura ˆıntre funct ¸ia lui Moebius ¸si funct ¸ia lui Euler este dat˘a de:
φ(n)
n
=

d|n
µ(d)
d
.
Dac˘a k este un num˘ar prim Mersenne, adic˘a k este num˘ar prim de forma 2
n
−1
unde n este num˘ar prim, atunci orice polinom ireductibil de grad k (ˆın algebra
mod 2) este primitiv:
N
I
(k) =
1
2
n
−1

d|2
n
−1
2
d
µ(
2
n
−1
d
) =
1
2
n
−1
[−2 + 2
2
n
−1
]
=
Φ(2
2
n
−1
−1)
2
n
−1
= N
P
(k).
16.2. Exercit ¸ii rezolvate
Exercit ¸iul 16.2.1. O secvent ¸˘a determinat˘a de polinomul de feedback 1 +X
3
+
X
4
are perioad˘a maxim˘a?
Rezolvare: Not˘am cu α = X mod f(X) o r˘adacin˘a a polinomului de feedback:
1 +α
3

4
= 0. Succesiv obt ¸inem puterile lui α:
α
1
=α;
α
2

2
;
α
3

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

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

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

3
;
α
9
=αα
8
= α(α +α
2

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

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

3
) = 1 +α;
α
13
=αα
12
= α(1 +α) = α +α
2
;
α
14
=αα
13
= α(α +α
2
) = α
2

3
;
α
15
=αα
14
= α(α
2

3
) = 1.
Ordinul lui α este 2
4
−1, ˆın concluzie, polinomul de feedback este primitiv.
186 GENERATOARE PSEUDOALEATOARE
16.3. Exercit ¸ii propuse
Exercit ¸iul 16.3.1. Implementat ¸i o rutin˘a de testat primitivismul unui polinom
din Z
2
[X].
Exercit ¸iul 16.3.2. O secvent ¸˘a determinat˘a de polinomul de feedback 1 +X
2
+
X
4
are perioad˘a maxim˘a?
R˘aspuns: Nu. Polinomul nu este ireductibil, deci nu este primitiv.
Exercit ¸iul 16.3.3. O secvent ¸˘a determinat˘a de polinomul de feedback 1+X+X
4
are perioad˘a maxim˘a?
R˘aspuns: Da. Polinomul de feedback este primitiv.
Exercit ¸iul 16.3.4. O secvent ¸˘a determinat˘a de polinomul de feedback 1+X+X
3
are perioad˘a maxim˘a?
R˘aspuns: Da. Polinomul de feedback este primitiv.
Exercit ¸iul 16.3.5. O secvent ¸˘a determinat˘a de polinomul de feedback 1 +X +
X
2
+X
3
are perioad˘a maxim˘a?
R˘aspuns: Nu. Polinomul nu este primitiv.
Exercit ¸iul 16.3.6. O secvent ¸˘a determinat˘a de polinomul de feedback 1 +X
2
+
X
5
are perioad˘a maxim˘a?
R˘aspuns: Da. Polinomul de feedback este primitiv.
Exercit ¸iul 16.3.7. O secvent ¸˘a determinat˘a de polinomul de feedback 1 +X +
X
3
+X
4
+X
5
are perioad˘a maxim˘a?
R˘aspuns: Da. Polinomul de feedback este primitiv.
Exercit ¸iul 16.3.8. O secvent ¸˘a determinat˘a de polinomul de feedback 1 +X +
X
3
+X
5
are perioad˘a maxim˘a?
R˘aspuns: Nu. Polinomul nu este primitiv.
EXERCIT¸ II PROPUSE 187
Exercit ¸iul 16.3.9. O secvent ¸˘a determinat˘a de polinomul de feedback 1 +X +
X
2
+X
3
+X
5
are perioad˘a maxim˘a?
R˘aspuns: Da. Polinomul de feedback este primitiv.
Exercit ¸iul 16.3.10. O secvent ¸˘a determinat˘a de polinomul de feedback 1+X
2
+
X
3
+X
4
+X
5
are perioad˘a maxim˘a?
R˘aspuns: Da. Polinomul de feedback este primitiv.
188 GENERATOARE PSEUDOALEATOARE
Capitolul 17
CALCULE
ˆ
IN CORPURI
GALOIS
17.1. Breviar teoretic
Corpul Galois GF(2
n
) este definit de un polinom f(X) ∈ Z
2
[X] de grad n.
Elementele acestui corp sunt polinoame.
Operat ¸iile ˆıntre dou˘a polinoame a(X) = a
0
+ a
1
X + . . . a
n
X
n
¸si b(X) = b
0
+
b
1
X +. . . b
n
X
n
din GF(2
n
) se definesc ˆın modul urm˘ator:
a) a(X) ⊕b(X) = c(X), c
i
= (a
i
+b
i
) mod 2;
b) a(X) • b(X) = a(X)b(X) mod f(X).
Un element din GF(2
n
) se poate reprezenta sub forma binar˘a (¸si apoi hexazec-
imal˘a) prin coeficient ¸ii s˘ai : a
0
+ a
1
X + . . . + a
n
X
n
se identific˘a cu a
n
. . . a
1
a
0
,
a
i
∈ {0, 1}
Inversul unui element din GF(2
n
) se determin˘a cu algoritmul lui Euclid, exem-
plificat ˆın continuare.
17.2. Exercit ¸ii rezolvate
Exercit ¸iul 17.2.1. Care este inversul elementului {45} (reprezentat ˆın format
hexa) din GF(2
8
) definit de polinomul f(X) = 1 +X +X
3
+X
4
+X
8
.
Rezolvare: Elementului {45} ˆıi corespunde polinomul X
6
+X
2
+1. Pentru a afla
inversul lui {45} modf(X) utiliz˘am algoritmul lui Euclid:
X
8
+X
4
+X
3
+X + 1 = X
2
(X
6
+X
2
+ 1) +X
3
+X
2
+X + 1,
X
6
+X
2
+ 1 = (X
3
+X
2
)(X
3
+X
2
+X + 1) + 1,
plecˆand de la ultima ecuat ¸ie c˘atre prima, succesiv obt ¸inem:
189
190 CALCULE
ˆ
IN CORPURI GALOIS
1 = (X
3
+X
2
)(X
3
+X
2
+X + 1) +X
6
+X
2
+ 1
1 = (X
3
+X
2
)(X
2
(X
6
+X
2
+ 1) +X
8
+X
4
+X
3
+X + 1) +X
6
+X
2
+ 1
1 = (X
5
+X
4
+ 1)(X
6
+X
2
+ 1) + (X
3
+X
2
+ 1)(X
8
+X
4
+X
3
+X + 1)
deci inversul polinomului X
6
+ X
2
+ 1 este X
5
+ X
4
+ 1. Utilizˆand codificarea
hexa ajungem la concluzia c˘a inversul elementului {45} este {31}.
Exercit ¸iul 17.2.2. S˘a se adune elementele {57} ¸si {83}ˆın corpul Galois GF(2
8
)
definit de polinomul 1 +X +X
3
+X
4
+X
8
.
Rezolvare: Scrierea binar˘a a celor dou˘a elemente este {57} = {01010111} respec-
tiv {83} = {10000011}. Efectuˆand calculele obt ¸inem {57} ⊕ {83} = {11010100} =
{D4}.
Exercit ¸iul 17.2.3. S˘a se ˆınmult ¸easc˘a elementele {57} ¸si {83} ˆın corpul Galois
GF(2
8
) definit de polinomul 1 +X +X
3
+X
4
+X
8
.
Rezolvare: {57} • {83} = (X
6
+X
4
+X
2
+X + 1)(X
7
+X + 1) = X
13
+X
11
+
X
9
+X
8
+X
6
+X
5
+X
4
+X
3
+1 mod (X
8
+X
4
+X
3
+X +1) = X
7
+X
6
+1 =
{11000001} = {C1}.
17.3. Exercit ¸ii propuse
Exercit ¸iul 17.3.1. Implementat ¸i proceduri de calcul ˆın corp Galois.
Exercit ¸iul 17.3.2. Care este inversul elementului {33} (reprezentat ˆın format
hexa) din GF(2
8
) definit de polinomul 1 +X +X
3
+X
4
+X
8
.
R˘aspuns: {6C}.
Exercit ¸iul 17.3.3. Care este inversul elementului {12} (reprezentat ˆın format
hexa) din GF(2
8
) definit de polinomul 1 +X +X
3
+X
4
+X
8
.
R˘aspuns: {AA}.
Exercit ¸iul 17.3.4. Care este inversul elementului {31} (reprezentat ˆın format
hexa) din GF(2
8
) definit de polinomul 1 +X +X
3
+X
4
+X
8
.
R˘aspuns: {45}.
EXERCIT¸ II PROPUSE 191
Exercit ¸iul 17.3.5. Ar˘atat ¸i c˘a elementele {12} ¸si {AA} (reprezentate ˆın format
hexa) sunt inverseˆın corpul Galois GF(2
8
) definit de polinomul 1+X+X
3
+X
4
+X
8
.
Exercit ¸iul 17.3.6. S˘a se adune elementele {5} ¸si {7} ˆın corpul Galois GF(2
4
)
definit de polinomul 1 +X +X
4
.
R˘aspuns: {2}.
Exercit ¸iul 17.3.7. S˘a se ˆınmult ¸easc˘a elementele {5} ¸si {7} ˆın corpul Galois
GF(2
4
) definit de polinomul 1 +X +X
4
.
R˘aspuns: {8}.
Exercit ¸iul 17.3.8. Se consider˘a transformarea dat˘a de
g(y) =
_
_
_
_
_
_
_
_
_
_
_
_
1 1 1 1 1 0 0 0
0 1 1 1 1 1 0 0
0 0 1 1 1 1 1 0
0 0 0 1 1 1 1 1
1 0 0 0 1 1 1 1
1 1 0 0 0 1 1 1
1 1 1 0 0 0 1 1
1 1 1 1 0 0 0 1
_
_
_
_
_
_
_
_
_
_
_
_
y
−1

_
_
_
_
_
_
_
_
_
_
_
_
0
1
1
0
0
0
1
1
_
_
_
_
_
_
_
_
_
_
_
_
(17.1)
unde y
−1
este inversul lui y ˆın corpul Galois GF(2
8
) definit de polinomul 1 +
X +X
3
+X
4
+X
8
. Calculat ¸i g(1), g(2), g(3), g(4), g(5).
R˘aspuns: Transformarea indicat˘a ˆın problem˘a define¸ste tabela de substitut ¸ie a
algoritmului RIJNDAEL. Valorile solicitate (ˆın zecimal) sunt: g(1) = 124, g(2) =
119, g(3) = 123, g(4) = 242, g(5) = 107.
192 CALCULE
ˆ
IN CORPURI GALOIS
Capitolul 18
ALGORITMUL RIJNDAEL -
STANDARDUL AES
18.1. Breviar teoretic
Pentru rezolvarea urm˘atoarelor exercit ¸ii plec˘am de la ipoteza cunoa¸sterii standar-
dului FIPS 197 - Advanced Encryption Standard compus din patru operat ¸ii (sumare
modulo 2 cu cheia de rund˘a, subtitut ¸ia la nivel de octet, shiftarea liniilor, mixarea
coloanelor etc.) ˆın cadrul procesului de transformare a st˘arilor ¸si din generatorul de
chei de rund˘a.
18.2. Exercit ¸ii rezolvate
Exercit ¸iul 18.2.1. Intrarea ˆın runda i = 6 a algoritmului AES 128/128 pentru
cifrarea textului ,,zero peste tot”, cu ajutorul cheii ,,zero peste tot”, este:
_
¸
¸
_
D4 55 7E 79
6F B8 05 79
4F 96 BB DE
6C 33 3D 23
_
¸
¸
_
cheia de rund˘a fiind:
_
¸
¸
_
EC 14 99 6A
61 25 FF B4
4B 75 09 9B
85 8C 37 A7
_
¸
¸
_
Care este ie¸sirea dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si
AddRoundKey?
193
194 ALGORITMUL RIJNDAEL - STANDARDUL AES
Rezolvare:
Rutina SubBytes presupune folosirea urm˘atorului 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
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
G˘asirea octetului din S-box corespunzator octetului din stare se face astfel: pentru
octetul D4 se caut˘a ˆın SBox elementul aflat la intersect ¸ia liniei D cu coloana 4 ¸si se
substituie ˆın stare elementul g˘asit in Sbox. D4 se va substitui cu 48. Procedeul se
aplic˘a similar pentru ceilalt ¸i octet ¸i din stare.
Rezultatul aplic˘arii rutinei SubBytes se constituie ˆın urm˘atoarea stare:
_
¸
¸
_
48 FC F3 B6
A8 6C 6B B6
84 90 EA 1D
50 C3 27 26
_
¸
¸
_
Rutina ShiftRows act ¸ioneaza ˆın felul urm˘ator asupra st˘arii: prima linie r˘amane
neschimbat˘a, a doua linie se rote¸ste la stˆanga cu un octet, a treia linie se rote¸ste la
stˆanga cu doi octet ¸i iar a patra linie se rote¸ste la stˆanga cu trei octet ¸i.
Dup˘a aplicarea rutinei ShiftRows, starea va fi urm˘atoarea:
_
¸
¸
_
48 FC F3 B6
6C 6B B6 A8
EA 1D 84 90
26 50 C3 27
_
¸
¸
_
EXERCIT¸ II REZOLVATE 195
Rutina MixColumns presupuneˆınmult ¸irea fiec˘arei coloane din stare cu urm˘atoarea
matrice fixat˘a:
_
¸
¸
_
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
_
¸
¸
_
Operat ¸iile care rezult˘a din ˆınmult ¸irea matricilor se fac ˆın corpul Galois GF(2
8
)
¸si sunt ˆınmult ¸iri de polinoame modulo polinomul generator al corpului GF(2
8
) care
este h(X) = X
8
+ X
4
+ X
3
+ X + 1. Observ˘am c˘a singurele ˆınmult ¸iri care apar
sunt cele cu 02 ¸si 03. Inmult ¸irea cu polinomul 02 in GF(2
8
) ˆınseamn˘a ˆınmult ¸irea cu
polinomul X.
Fie f(X) = b
7
X
7
+b
6
X
6
+b
5
X
5
+b
4
X
4
+b
3
X
3
+b
2
X
2
+b
1
X +b
0
un polinom
din GF(2
8
). S˘a vedem ce presupune ˆınmult ¸irea 02 ∗ f(X) adic˘a X ∗ f(X):
X ∗ f(X) = b
7
X
8
+b
6
X
7
+b
5
X
6
+b
4
X
5
+b
3
X
4
+b
2
X
3
+b
1
X
2
+b
0
X(modm(X)),
unde m(X) este polinomul generator m(X) = X
4
+X
3
+X+1 al corpului Galois
GF(2
8
). Dac˘a b
7
= 0, atunci polinomul este ˆın forma redus˘a ˆın GF(2
8
) (are gradul
7).
Dac˘a b
7
= 1, atunci:
X ∗ f(X) = X
8
mod m(X) +b
6
X
7
+b
5
X
6
+b
4
X
5
+b
3
X
4
+b
2
X
3
+b
1
X
2
+b
0
X.
Deci:
X∗ f(X) = (X
4
+X
3
+X +1) +b
6
X
7
+b
5
X
6
+b
4
X
5
+b
3
X
4
+b
2
X
3
+b
1
X
2
+b
0
X.
Prin urmare, ˆınmult ¸irea cu polinomul X poate fi implementat˘a, ˆın cazul ˆın care
bitul cel mai semnificativ al polinomului f(X) este 1, ca o operat ¸ie de shift la stˆanga
cu 1 bit urmat˘a de un XOR cu (00011011), care reprezint˘a polinomul (X
4
+ X
3
+
X + 1).
Dac˘a bitul cel mai semnificativ al polinomului f(X) este 0, atunci ˆınmult ¸irea
presupune doar operat ¸ie de shift la stˆanga cu un bit.
Pentru a trece starea curent˘a prin rutina MixColumns, se ˆınmult ¸este pe rˆand
fiecare coloan˘a din stare cu matricea fixat˘a de mai sus.
Vom prezenta doar modul de efectuare al ˆınmult ¸irii:
_
¸
¸
_
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
_
¸
¸
_
·
_
¸
¸
_
48
6C
EA
26
_
¸
¸
_
196 ALGORITMUL RIJNDAEL - STANDARDUL AES
Coloana rezultat va cont ¸ine urm˘atoarele linii:
_
¸
¸
_
02 ∗ 48 ⊕03 ∗ 6C ⊕EA⊕26
01 ∗ 48 ⊕02 ∗ 6C ⊕03 ∗ EA⊕26
48 ⊕6C ⊕02 ∗ EA⊕03 ∗ 26
03 ∗ 48 ⊕6C ⊕EA⊕02 ∗ 26
_
¸
¸
_
R˘amˆan de efectuat ˆınmult ¸irile care apar pe fiecare linie:
02 ∗ 48 = 02 ∗ 01001000 = 10010000.
03 ∗ 48 = 02 ∗ 48 ⊕48 = 11011000.
03 ∗ 6C = 03 ∗ 01101100 = 02 ∗ 01101100 ⊕ 01101100 = 11011000 ⊕ 01101100 =
10110100.
02 ∗ EA = 02 ∗ 11101010 = 11010100 ⊕00011011 = 11110001.
03 ∗ EA = 02 ∗ EA⊕EA = 11110001 ⊕11101010 = 00011011.
02 ∗ 26 = 02 ∗ 00100110 = 01001100.
03 ∗ 26 = 02 ∗ 26 ⊕26 = 01001100 ⊕00100110 = 01101010.
Dup˘a calculele r˘amase, coloana rezultat va fi:
_
¸
¸
_
E8
93
81
12
_
¸
¸
_
Pentru celelalte coloane din stare se procedeaz˘a similar.
Starea rezultat˘a dup˘a aplicarea rutinei MixColumns este urm˘atoarea:
_
¸
¸
_
E8 13 7B 23
93 5D D0 71
81 5D 08 4C
12 C9 A1 B7
_
¸
¸
_
Aplicarea rutinei AddRoundKey presupune o simpl˘a operat ¸ie de XOR pe fiecare
octet din stare cu octet-ul corespunz˘ator din cheia de rund˘a.
_
¸
¸
_
E8 13 7B 23
93 5D D0 71
81 5D 08 4C
12 C9 A1 B7
_
¸
¸
_

_
¸
¸
_
EC 14 99 6A
61 25 FF B4
4B 75 09 9B
85 8C 37 A7
_
¸
¸
_
=
_
¸
¸
_
04 07 E2 49
F2 78 2F C5
CA 28 01 D7
97 45 96 10
_
¸
¸
_
EXERCIT¸ II PROPUSE 197
18.3. Exercit ¸ii propuse
Exercit ¸iul 18.3.1. Intrarea ˆın runda i = 7 a algoritmului AES 128/128 pentru
cifrarea textului ,,zero peste tot”, cu ajutorul cheii ,,zero peste tot”, este:
_
¸
¸
_
04 07 E2 49
F2 78 2F C5
CA 28 01 D7
97 45 96 10
_
¸
¸
_
cheia de rund˘a fiind:
_
¸
¸
_
21 35 AC C6
75 50 AF 1B
17 62 6B F0
87 0B 3C 9B
_
¸
¸
_
Care este ie¸sirea dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si
AddRoundKey?
R˘aspuns: Ie¸sirea din runda 7 este:
_
¸
¸
_
B7 1D 6C 94
AA 25 92 E5
E4 2D 0F 81
C5 4F 81 50
_
¸
¸
_
Exercit ¸iul 18.3.2. Intrarea ˆın runda i = 8 a algoritmului AES 128/128 pentru
cifrarea textului ,,zero peste tot”, cu ajutorul cheii ,,zero peste tot”, este:
_
¸
¸
_
B7 1D 6C 94
AA 25 92 E5
E4 2D 0F 81
C5 4F 81 50
_
¸
¸
_
cheia de rund˘a fiind:
_
¸
¸
_
0E 3B 97 51
F9 A9 06 1D
03 61 0A FA
33 38 04 9F
_
¸
¸
_
Care este ie¸sirea dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si
AddRoundKey?
198 ALGORITMUL RIJNDAEL - STANDARDUL AES
R˘aspuns: Ie¸sirea din runda 8 este:
_
¸
¸
_
23 13 AA 2E
37 21 C0 03
8C 63 C6 CB
3C DB 57 95
_
¸
¸
_
Exercit ¸iul 18.3.3. Intrarea ˆın runda i = 8 a algoritmului AES 128/128 pentru
cifrarea textului ,,zero peste tot”, cu ajutorul cheii ,,zero peste tot”, este:
_
¸
¸
_
23 13 AA 2E
E7 21 C0 03
8C 63 C6 CB
3C DB 57 95
_
¸
¸
_
cheia de rund˘a fiind:
_
¸
¸
_
B1 8A 1D 4C
D4 7D 7B 66
D8 B9 B3 49
E2 DA DE 41
_
¸
¸
_
Care este ie¸sirea dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si
AddRoundKey?
R˘aspuns: Ie¸sirea din runda 9 este:
_
¸
¸
_
7F 51 0E 29
FE A5 34 29
0E 66 7C EC
95 35 47 CB
_
¸
¸
_
Exercit ¸iul 18.3.4. Executat ¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL
(AES), cu urm˘atoarele intr˘ari:
pentru starea curent˘a:
_
¸
¸
_
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 01
_
¸
¸
_
pentru cheia de rund˘a:
EXERCIT¸ II PROPUSE 199
_
¸
¸
_
62 62 62 62
63 63 63 63
7C 7C 7C 7C
63 63 63 62
_
¸
¸
_
R˘aspuns: Ie¸sirea din rund˘a este:
_
¸
¸
_
1E 01 01 01
1F 00 00 00
3E 1F 1F 1F
3E 00 00 01
_
¸
¸
_
Exercit ¸iul 18.3.5. Executat ¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL
(AES), cu urm˘atoarele intr˘ari:
pentru starea curent˘a:
_
¸
¸
_
1E 01 01 01
1F 00 00 00
3E 1F 1F 1F
3E 00 00 01
_
¸
¸
_
pentru cheia de rund˘a:
_
¸
¸
_
9B F9 9B F9
73 10 73 10
D6 AA D6 AA
C9 AA C9 AB
_
¸
¸
_
R˘aspuns: Ie¸sirea din rund˘a este:
_
¸
¸
_
66 D6 17 F9
E0 43 67 CF
D8 E3 13 28
04 F2 5A E9
_
¸
¸
_
Exercit ¸iul 18.3.6. Executat ¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL
(AES), cu urm˘atoarele intr˘ari:
pentru starea curent˘a:
200 ALGORITMUL RIJNDAEL - STANDARDUL AES
_
¸
¸
_
66 D6 17 F9
E0 43 67 CF
D8 E3 13 28
04 F2 5A E9
_
¸
¸
_
pentru cheia de rund˘a:
_
¸
¸
_
55 AC 37 CE
DF CF BC AC
B4 1E C8 62
50 FA 33 98
_
¸
¸
_
R˘aspuns: Ie¸sirea din rund˘a este:
_
¸
¸
_
7E 09 A1 70
41 86 69 61
45 08 F0 E1
5E B5 DA BF
_
¸
¸
_
Exercit ¸iul 18.3.7. Executat ¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL
(AES), cu urm˘atoarele intr˘ari:
pentru starea curent˘a:
_
¸
¸
_
7E 09 A1 70
41 86 69 61
45 08 F0 E1
5E B5 DA BF
_
¸
¸
_
pentru cheia de rund˘a:
_
¸
¸
_
CC 60 57 99
75 BA 06 AA
F2 EC 24 46
DB 21 12 8A
_
¸
¸
_
R˘aspuns: Ie¸sirea din rund˘a este:
_
¸
¸
_
79 D2 A2 C2
89 19 96 E1
5E 17 41 0D
0D 93 74 64
_
¸
¸
_
EXERCIT¸ II PROPUSE 201
Exercit ¸iul 18.3.8. Executat ¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL
(AES), cu urm˘atoarele intr˘ari:
pentru starea curent˘a:
_
¸
¸
_
79 D2 A2 C2
89 19 96 E1
5E 17 41 0D
0D 93 74 64
_
¸
¸
_
pentru cheia de rund˘a:
_
¸
¸
_
70 10 47 DE
2F 95 93 39
8C 60 44 02
35 14 06 8C
_
¸
¸
_
R˘aspuns: Ie¸sirea din rund˘a este:
_
¸
¸
_
A0 CA A4 04
F7 AE 76 D0
36 92 49 D6
25 22 4B 8B
_
¸
¸
_
202 ALGORITMUL RIJNDAEL - STANDARDUL AES
Capitolul 19
CRIPTANALIZA
CIFRURILOR BLOC
19.1. Breviar teoretic
Deoarece nu exist˘a o formul˘a matematic˘a universal˘a care s˘a poat˘a fi aplicat˘a ˆın
operat ¸ia de criptanaliz˘a, am propus ca exercit ¸ii la acest capitol modific˘ari ale unor
algoritmi de cifruri bloc consacrate. Sunt date o serie de indicat ¸ii precedate de o
scurt˘a descriere a algoritmilor propriu-zi¸si.
19.2. Exercit ¸ii rezolvate
Exercit ¸iul 19.2.1. Studiat ¸i urm˘atorele simplific˘ari ale algoritmului RC5:
-RC5 cu 8 iterat ¸ii dar f˘ar˘a rotat ¸ii;
-RC5 cu 8 iterat ¸ii iar num˘arul de rotat ¸ii egal cu num˘arul de iterat ¸ii.
R˘aspuns.
ˆ
In cele ce urmeaz˘a facem o scurt˘a descriere a cifrului RC5 cu r iterat ¸ii.
Acesta are lungimea blocului de date variabil˘a dar vom considera ˆın cele ce urmeaz˘a
c˘a aceasta a fost setat˘a la 64 bit ¸i. Operat ¸ia de cifrare folose¸ste 2r+2 chei dependente
de cuvintele pe 32 bit ¸i S
0
, S
1
, S
2
, . . . , S
2r+2
unde r este num˘arul de iterat ¸ii. Pentru
cifrare blocul de date se ˆımparte ˆın dou˘a p˘art ¸i de 32 bit ¸i notate cu L respectiv R
(RC5 face apel la codificarea little-endian pentru ˆımpachetarea octet ¸ilor ˆın cuvinte:
primul octet se transform˘a ˆın cele mai put ¸in semnificative pozit ¸ii ale lui L, etc.).
Apoi avem:
_
L = L +S
0
,
R = R +S
1
.
203
204 CRIPTANALIZA CIFRURILOR BLOC
Pentru i = 1, . . . , r se execut˘a:
_
L = ((L ⊕R) << R) +S
2i
,
R = ((R ⊕L) << L) +S
2i+1
.
Ie¸sirea const˘a ˆın registrele L ¸si R. Simbolul ⊕ are semnificat ¸ia sumei mod2, sim-
bolul << semnific˘a rotire circular˘a ¸si ˆın fine simbolul + are semnificat ¸ia sumei mod
2
32
. Operat ¸ia de decriptare este similar˘a (intervin operatorii ⊕, >> ¸si −). Modul de
construct ¸ie al secvent ¸ei S (care deriv˘a din cheie) nu este esent ¸ial ˆın cadrul acestui
exercit ¸iu.
Dac˘a set˘am num˘arul de iterat ¸ii r = 8 ¸si nu facem nici un fel de rotat ¸ii atunci
pentru i = 1, . . . , 8 se execut˘a:
_
L = (L ⊕R) +S
2i
,
R = (R ⊕L) +S
2i+1
.
Algoritmul astfel setat nu ˆındepline¸ste criteriul de avalan¸s˘a strict˘a (schimbarea
unui bit ˆın blocul de text clar produce, ˆın medie, schimb˘ari de 50% la ie¸sire). Schema
de mai sus permite atacul cu ajutorul tehnicii criptanalizei liniare pentru aflarea lui
S, deci a cheii efective.
Dac˘a set˘am num˘arul de iterat ¸ii r = 8 ¸si num˘arul de rotat ¸ii egal cu r atunci pentru
i = 1, . . . , 8 se execut˘a:
_
L = ((L ⊕R) << 8) +S
2i
,
R = ((R ⊕L) << 8) +S
2i+1
.
Algoritmul astfel setat nu ˆındepline¸ste criteriul de avalan¸s˘a strict˘a. Schema de
mai sus permite atacul cu ajutorul tehnicii criptanalizei diferent ¸ial/liniare pentru
aflarea lui S.
Exercit ¸iul 19.2.2. Studiat ¸i urm˘atorele simplific˘ari ale algoritmului DES:
-DES cu 12 iterat ¸ii dar f˘ar˘a aplicat ¸iile S;
-DES cu 4 iterat ¸ii;
-DES cu 6 iterat ¸ii.
R˘aspuns. Cifrul bloc DES (proiectat ˆın 1977) este sub controlul unei chei efective
de 56 bit ¸i (cheia de baz˘a este de 64 bit ¸i, 8 bit ¸i fiind pentru detect ¸ia erorilor) iar
m˘arimea blocului de date este de 64 bit ¸i. Textul clar este permutat iar apoi este
ˆımp˘art ¸it ˆın dou˘a blocuri L ¸si R de lungime 32 bit ¸i. Se execut˘a apoi iterativ operat ¸iile
(pentru i = 1, . . . , num˘ arul de iteratii):
_
L
i
= R
i
,
R
i
= L
i
⊕f(R
i−1
, K
i
).
EXERCIT¸ II PROPUSE 205
ˆ
In final textul este supus permut˘arii inverse. Ne concentr˘am asupra descrierii
funct ¸iei f : Z
32
2
× Z
48
2
→ Z
32
2
. Init ¸ial blocul R (32 bit ¸i) este extins cu ajutorul
funct ¸iei E la un bloc pe 48 bit ¸i care este sumat mod2 cu cheia K (extins˘a la 48
bit ¸i cu ajutorul algoritmului de producere a subcheilor). Opt aplicat ¸ii S : Z
6
2
→Z
4
2
produc o ie¸sire pe 32 bit ¸i care este permutat˘a pentru a produce ie¸sirea final˘a dintr-o
iterat ¸ie. Dac˘a aplicat ¸iile S sunt fixe (se selecteaz˘a 4 bit ¸i din 6 ˆın mod fix) atunci se
poate aplica tehnica criptanalizei diferent ¸iale (bit ¸ii de la ie¸sire sunt bit ¸ii de la intrare
(sumat ¸i mod2 cu cheia K) dar ˆıntr-o alt˘a ordine).
Algoritmul DES cu 4 cˆat ¸si cu 6 iterat ¸ii poate fi spart cu ajutorul tehnicii atacului
cu text clar cunoscut.
19.3. Exercit ¸ii propuse
Exercit ¸iul 19.3.1. Studiat ¸i regula B a algoritmului Skipjack cu 8 iterat ¸ii.
Exercit ¸iul 19.3.2. Ce defect are un algoritm de cifrare care este ˆınchis (un
algoritm de cifrare se nume¸ste ˆınchis dac˘a pentru orice chei k
1
¸si k
2
exist˘a o cheie
k
3
astfel ˆıncˆat pentru orice text clar M avem E
k
1
E
k
2
(M) = E
k
3
(M))?
R˘aspuns. Ca metod˘a de atac generic˘a se poate opta pentru cifrarea repetitiv˘a.
Exercit ¸iul 19.3.3. Aplicat ¸i tehnica criptanalizei diferent ¸iale ¸si criptanalizei li-
niare asupra algorimului FEAL.
Exercit ¸iul 19.3.4. Studiat ¸i tehnica criptanalizei diferent ¸iale ˆın cazul algorit-
mului DES cu 16 iterat ¸ii.
Exercit ¸iul 19.3.5. Aplicat ¸i tehnica criptanalizei liniare ˆın cazul algoritmului
DES cu 16 iterat ¸ii.
Exercit ¸iul 19.3.6. Avˆand la dispozit ¸ie un cifru bloc E
k
(.) proiectat ¸i un cifru
flux ¸si viceversa.
Exercit ¸iul 19.3.7. Scriet ¸i funct ¸ia analitic˘a a celor opt funct ¸ii de substitut ¸ie S
ale cifrului DES.
Exercit ¸iul 19.3.8. Fie E
M
(.) ¸si D
K
(.) funct ¸iile de cifrare respectiv descifrare
ale unui cifru. Care este valoarea lui D
K
(E
K
(M))?
206 CRIPTANALIZA CIFRURILOR BLOC
Not˘a. Descrierea algoritmilor RC5, DES, Skipjack ¸si FEAL poate fi g˘asit˘a ˆın
Schneier [67] sau Menezes [47].
Exercit ¸iul 19.3.9. Implementat ¸i modalit˘at ¸i de testare a cifrurilor bloc.
Exercit ¸iul 19.3.10. Implementat ¸i modalit˘at ¸i de generare a tabelelor de substi-
tut ¸ie.
Exercit ¸iul 19.3.11. Fie E(·, ·) o funct ¸ie de cifrare pe m bit ¸i de cheie ¸si n bit ¸i
de date. Care este valoarea maxim˘a a lui m astfel ˆıncˆat cheia efectiv˘a a cifrului s˘a
fie m?
Capitolul 20
LEMA CHINEZEASC
˘
A A
RESTURILOR
20.1. Breviar teoretic
Teorema 20.1.1. (Lema chinezeasc˘a a resturilor- CRT) Fie m
1
, . . . , m
k
nu-
mere ˆıntregi cu (m
i
, m
j
) = 1 pentru orice i = j. Atunci sistemul
x ≡ a
i
mod m
i
are o solut ¸ie unic˘a modulo
k

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

i=1
m
i
¸si
M
i
=
M
m
i
pentru orice i = 1, . . . , k.
Deoarece (m
i
, m
j
) = 1 pentru orice i = j avem (M
j
, m
j
) = 1 pentru orice j adic˘a
exist˘a N
j
astfel ca M
j
N
j
= 1 mod m
j
. Atunci dac˘a not˘am
x =
k

i=0
a
i
M
i
N
i
207
208 LEMA CHINEZEASC
˘
A A RESTURILOR
¸si reducem modulo m
i
avem:
x =
k

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

¸si x

dou˘a solut ¸ii atunci
x = x

−x

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

j=1
a
j
M
j
N
j
mod M.
unde a
1
= 3, a
2
= 34, a
3
= 2 iar m
1
= 13, m
2
= 47, m
3
= 51. Se observ˘a c˘a
m
1
, m
2
¸si m
3
sunt prime ˆıntre ele.
Calcul˘am M = 13 · 47 · 51 = 31161 ¸si M
1
= 47 · 51 = 2397, M
2
= 13 · 51 = 663 si
M
3
= 13 · 47 = 611.
Mai departe trebuie calculat inversul lui M
j
pentru j = 1 , j = 2 ¸si j = 3.
Cu algoritmul lui Euclid extins, se calculeaz˘a N
1
= M
−1
1
mod m
1
= 2397
−1
mod
13 = 5
−1
mod 13 = 8.
Similar se calculeaz˘a N
2
= M
−1
2
mod m
2
= 663
−1
mod 47 = 5
−1
mod 47 = 19,
iar
EXERCIT¸ II PROPUSE 209
N
3
= M
−1
3
mod m
3
= 611
−1
mod 51 = 50
−1
mod 51 = 50.
ˆ
In acest moment, avem toate datele necesare pentru a calcula solut ¸ia x a sistemu-
lui de congruent ¸e:
x = a
1
M
1
N
1
+a
2
M
2
N
2
+a
3
M
3
N
3
mod M.
Deci x = 3 · 2397 · 8 + 34 · 663 · 19 + 2 · 611 · 50 mod 31161 = 57528 + 428928 +
61100 mod 31161 de unde x = 17819 mod 31161; se poate verifica faptul c˘a ˆıntr-
adev˘ar aceasta este solut ¸ia sistemului.
20.3. Exercit ¸ii propuse
Exercit ¸iul 20.3.1. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 1 mod 13
x ≡ 2 mod 17
x ≡ 3 mod 11
R˘aspuns: x = 1158 mod 2431.
Exercit ¸iul 20.3.2. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 3 mod 13
x ≡ 2 mod 11
x ≡ 2 mod 19
R˘aspuns: x = 211 mod 2717.
Exercit ¸iul 20.3.3. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 3 mod 5
x ≡ 5 mod 7
x ≡ 7 mod 11
R˘aspuns: x = 348 mod 385.
Exercit ¸iul 20.3.4. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 5 mod 17
x ≡ 3 mod 19
x ≡ 2 mod 23
R˘aspuns: x = 991 mod 7429.
210 LEMA CHINEZEASC
˘
A A RESTURILOR
Exercit ¸iul 20.3.5. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 5 mod 11
x ≡ 3 mod 19
x ≡ 2 mod 23
R˘aspuns: x = 3613 mod 4807.
Exercit ¸iul 20.3.6. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 5 mod 17
x ≡ 3 mod 21
x ≡ 2 mod 23
R˘aspuns: x = 4119 mod 8211.
Exercit ¸iul 20.3.7. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 4 mod 21
x ≡ 9 mod 31
x ≡ 14 mod 23
R˘aspuns: x = 6178 mod 14973.
Exercit ¸iul 20.3.8. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 4 mod 47
x ≡ 9 mod 11
x ≡ 3 mod 23
R˘aspuns: x = 10767 mod 11891.
Exercit ¸iul 20.3.9. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 11 mod 17
x ≡ 12 mod 19
x ≡ 13 mod 23
R˘aspuns: x = 3394 mod 7429.
Exercit ¸iul 20.3.10. S˘a se rezolve sistemul de ecuat ¸ii:
EXERCIT¸ II PROPUSE 211
_
_
_
x ≡ 8 mod 23
x ≡ 14 mod 29
x ≡ 17 mod 31
R˘aspuns: x = 1319 mod 20677.
Exercit ¸iul 20.3.11. S˘a se rezolve sistemul de ecuat ¸ii:
_
_
_
x ≡ 15 mod 23
x ≡ 3 mod 19
x ≡ 13 mod 36
R˘aspuns: x = 15241 mod 15732.
212 LEMA CHINEZEASC
˘
A A RESTURILOR
Capitolul 21
SISTEMUL DE CIFRARE
MERKLE-HELLMAN
21.1. Breviar teoretic
Algoritmul de cifrare Merkle-Hellman const˘a ˆın codificarea mesajului ca o solut ¸ie
a unei probleme de tip rucsac pentru care ponderile {M
1
, ..., M
n
} constituie cheia
de cifrare, ¸si textului clar {b
1
, ..., b
n
} ˆıi corespunde textul cifrat
n

i=1
b
i
M
i
.
Definit ¸ia 21.1.1. Un ¸sir de ponderi {M
1
, ..., M
n
} se nume¸ste supercresc˘ator
dac˘a:
M
k
>
k−1

i=1
M
i
pentru orice k. (21.1)
Problema rucsacului supercresc˘ator este u¸sor de rezolvat folosind urm˘atoarea
schem˘a: pentru k = n, ..., 1:
• dac˘a M
k
< S atunci b
k
= 1 ¸si S = S −M
k
;
• altfel b
k
= 0.
Algoritmii de tip rucsac care nu sunt supercresc˘atori nu sunt u¸sor de rezolvat
¸si nu exist˘a niciun algoritm rapid care s˘a rezolve problema. Singura modalitate
cunoscut˘a de a determina dac˘a b
i
= 1 const˘a ˆın testarea tuturor solut ¸iilor. Cei mai
rapizi algoritmi de testare au o complexitate exponent ¸ial˘a.
Algoritmul Merkle-Hellman se bazeaz˘a pe aceast˘a proprietate: cheia privat˘a este
¸sirul ponderilor pentru un rucsac supercresc˘ator iar cheia public˘a este ¸sirul ponderilor
213
214 SISTEMUL DE CIFRARE MERKLE-HELLMAN
pentru un rucsac care are aceea¸si solut ¸ie, dar nu este supercresc˘ator. Merkle ¸si
Hellman au g˘asit o metod˘a prin care se poate transforma o problem˘a a rucsacului
supercresc˘ator ˆıntr-o problem˘a normal˘a a rucsacului. Tehnica de conversie face apel
la aritmetica modular˘a.
Avˆand la dispozit ¸ie o problem˘a de tip rucsac supercresc˘ator (cheia privat˘a) cu
ponderile {M
1
, ..., M
n
} atunci aceasta se transform˘a ˆıntr-o problem˘a de tip rucsac
normal˘a (cheia public˘a) cu ¸sirul ponderilor
{mM
1
mod p, ..., mM
n
mod p},
unde m¸si p sunt numere naturale prime ˆıntre ele (acestea fac parte din cheia privat˘a)
¸si p >
n

i=1
M
i
.
Pentru a cifra un mesaj binar acesta se va ˆımp˘art ¸i ˆın blocuri de lungimi egale cu
cardinalul mult ¸imii ponderilor. Cifrarea unui bloc b
1
...b
n
va fi num˘arul natural:
n

i=1
b
i
(mM
i
mod p).
Pentru descifrare destinatarul mesajului cunoa¸ste cheia privat˘a: ponderile origi-
nale ¸si valorile lui m ¸si p. Acesta va calcula mai ˆıntˆai pe m
−1
mod p. Se va multiplica
apoi textul cifrat cu m
−1
mod p iar dup˘a aceea se va rezolva problema rucsacului
supercresc˘ator pentru a recupera textul original.
21.2. Exercit ¸ii rezolvate
Exercit ¸iul 21.2.1. S˘a se construiasc˘a cheia public˘a pentru algoritmul Merkle-
Hellman reprezentat de cheia privat˘a {2, 3, 6, 13, 27, 52}, modulul p = 105 ¸si multi-
plicatorul m = 31. Cifrat ¸i mesajul 101110.
Rezolvare:
Avˆand la dispozit ¸ie cheia privat˘a {M
1
, ..., M
n
}, cheia public˘a se obt ¸ine astfel
{mM
1
mod p, ..., mM
n
mod p}.
Prin urmare, cheia privat˘a 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} adic˘a
{62, 93, 81, 88, 102, 37}.
Cifrarea mesajului 101110 ((m
1
, ..., m
6
)) se face dup˘a formula
n

i=1
m
i
(mM
i
mod
p), adic˘a pe baza cheii publice. Rezultatul va fi 62 + 81 + 88 + 102, deci mesajul
cifrat este c = 333.
EXERCIT¸ II PROPUSE 215
Exercit ¸iul 21.2.2. S˘a se descifreze mesajul C = 4608 cifrat cu ajutorul algo-
ritmului Merkle-Hellman cu parametrii n = 9, cheia privat˘a:
{1, 2, 5, 10, 19, 40, 98, 179, 355},
modulul p = 1717 ¸si multiplicatorul m = 507.
Rezolvare: Se determin˘a C · m
−1
mod 1717 = 4608 · 507
−1
mod 1717 = 4608 ·
657 mod 1717 = 385.
Apoi se rezolv˘a problema supercresc˘atoare a rucsacului de dimensiune 385 : 385 =
355 + 19 + 10 + 1. Mesajul clar va cont ¸ine 1 pe pozit ¸iile corespunz˘atoare acestor
ponderi, deci se obt ¸ine 100110001.
21.3. Exercit ¸ii propuse
Exercit ¸iul 21.3.1. Dezvoltat ¸i o aplicat ¸ie care s˘a implementeze funct ¸iile de cifrare
¸si descifrare ale sistemului Merkle-Hellman.
Exercit ¸iul 21.3.2. S˘a se construiasc˘a cheia public˘a pentru algoritmul Merkle-
Hellman reprezentat de cheia privat˘a {2, 3, 6, 13, 27, 52}, modulul p = 105 ¸si multi-
plicatorul m = 31. Cifrat ¸i mesajul 011111.
R˘aspuns: Cheia public˘a {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 401.
Exercit ¸iul 21.3.3. S˘a se construiasc˘a cheia public˘a pentru algoritmul Merkle-
Hellman reprezentat de cheia privat˘a {2, 3, 6, 13, 27, 52}, modulul p = 105 ¸si multi-
plicatorul m = 31. Cifrat ¸i mesajul 111110.
R˘aspuns: Cheia public˘a {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 426.
Exercit ¸iul 21.3.4. S˘a se construiasc˘a cheia public˘a pentru algoritmul Merkle-
Hellman reprezentat de cheia privat˘a {2, 3, 6, 13, 27, 52}, modulul p = 105 ¸si multi-
plicatorul m = 31. Cifrat ¸i mesajul 001110.
R˘aspuns: Cheia public˘a {62, 93, 81, 88, 102, 37}, mesajul cifrat c = 271.
Exercit ¸iul 21.3.5. S˘a se descifreze mesajul 333 cifrat cu ajutorul algoritmului
Merkle-Hellman cu urm˘atorii parametrii: n = 6, cheia privat˘a {2, 3, 6, 13, 27, 52},
modulul p = 105 ¸si multiplicatorul m = 31.
216 SISTEMUL DE CIFRARE MERKLE-HELLMAN
R˘aspuns: Cheia public˘a {62, 93, 81, 88, 102, 37}, mesajul clar 101110.
Exercit ¸iul 21.3.6. S˘a se descifreze mesajul 320 cifrat cu ajutorul algoritmului
Merkle-Hellman cu urm˘atorii parametrii: n = 6, cheia privat˘a {2, 5, 14, 23, 56, 125},
modulul p = 228 ¸si multiplicatorul m = 191.
R˘aspuns: Cheia public˘a {154, 43, 166, 61, 208, 163}, m
−1
mod p = 191, mesajul
clar 101000.
Exercit ¸iul 21.3.7. S˘a se construiasc˘a cheia public˘a pentru algoritmul Merkle-
Hellman cu urm˘atorii parametrii: n = 6, cheia privat˘a {3, 4, 11, 25, 50, 113}, modulul
p = 209 ¸si multiplicatorul m = 20. Cifrat ¸i mesajul 27.
R˘aspuns: Cheia public˘a este {60, 80, 11, 82, 164, 170}, mesajul cifrat 425.
Exercit ¸iul 21.3.8. S˘a se descifreze mesajul 425 cifrat cu ajutorul algoritmului
Merkle-Hellman cu urm˘atorii parametrii: n = 6, cheia privat˘a {3, 4, 11, 25, 50, 113},
modulul p = 209 ¸si multiplicatorul m = 20.
R˘aspuns: Cheia public˘a {60, 80, 11, 82, 164, 170}, m
−1
mod p = 115, mesajul clar
011011.
Exercit ¸iul 21.3.9. S˘a se construiasc˘a cheia public˘a pentru algoritmul Merkle-
Hellman cu urm˘atorii parametrii: n = 6, cheia privat˘a {3, 4, 11, 26, 58, 106}, modulul
p = 238 ¸si multiplicatorul m = 167. Cifrat ¸i mesajul 29.
R˘aspuns: Cheia public˘a este {25, 192, 171, 58, 166, 90}, mesajul cifrat 511.
Exercit ¸iul 21.3.10. S˘a se descifreze mesajul 511 cifrat cu ajutorul algoritmului
Merkle-Hellman cu urm˘atorii parametrii: n = 6, cheia privat˘a {3, 4, 11, 26, 58, 106},
modulul p = 238 ¸si multiplicatorul m = 167.
R˘aspuns: Cheia public˘a {25, 192, 171, 58, 166, 90}, m
−1
mod p = 181, mesajul
clar 011101.
Capitolul 22
SISTEMUL DE CIFRARE RSA
22.1. Breviar teoretic
Algoritmul RSA a fost inventat de c˘atre Ron Rivest, Adi Shamir ¸si Leonard
Adleman ¸si a fost studiat ˆın cadrul unor studii criptanalitice extinse. Securitatea
RSA-ului se bazeaz˘a pe dificultatea factoriz˘arii numerelor mari. Cheia public˘a ¸si
cheia privat˘a sunt funct ¸ie de o pereche de numere prime mari (de 200 de cifre sau
chiar mai mari). Factorizarea produsului a dou˘a numere prime implic˘a recuperarea
textului clar din textul cifrat, cunoscˆand cheia public˘a.
Pentru generarea a dou˘a chei (public˘a ¸si privat˘a) se aleg aleatoriu dou˘a numere
prime mari p ¸si q. Din rat ¸ionamente de securitate p ¸si q au acela¸si ordin de m˘arime.
Se va calcula produsul n = p · q. Se va alege apoi, aleatoriu, exponentul public (de
cifrare) e astfel ca e ¸si (p −1)(q −1) s˘a fie relativ prime. Utilizˆand algoritmul extins
al lui Euclid vom calcula exponentul privat (de descifrare) d astfel ca
ed ≡ 1 mod (p −1)(q −1).
Cu alte cuvinte
d ≡ e
−1
mod (p −1)(q −1).
Remarc˘am faptul c˘a d ¸si n sunt relativ prime. Perechea (e, n) constituie cheia
public˘a iar (d, p, q) este cheia privat˘a. Cele dou˘a numere p ¸si q nu mai sunt necesare
la cifrare/descifrare, dar nu vor fi niciodat˘a f˘acute publice (cunoa¸sterea 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 mic˘a n (cu
date binare vom alege cea mai mare putere a lui 2 mai mic˘a decˆat n). Dac˘a p
¸si q sunt numere prime de 100 cifre atunci n va avea sub 200 de cifre iar fiecare
mesaj bloc M
i
va avea sub 200 de cifre. Dac˘a trebuie cifrate blocuri de lungime fix˘a
217
218 SISTEMUL DE CIFRARE RSA
atunci vom apela la operat ¸ia de padding cu zero. Mesajul cifrat C se va obt ¸ine prin
concatenarea mesajelor C
i
care au aproximativ aceeia¸si lungime. Formula de cifrare
va fi:
C
i
≡ M
e
i
mod n.
Pentru a descifra un mesaj se calculeaz˘a:
M
i
≡ C
d
i
mod n,
deoarece
C
d
i
≡ (M
e
i
)
d
≡ M
ed
i
≡ M
k(p−1)(q−1)+1
i
≡ M
i
M
k(p−1)(q−1)
i
≡ M
i
mod n.
Observat ¸ia 22.1.1. Pentru a evita metodele de factorizare cunoscute numerele
p ¸si q trebuie s˘a fie numere prime tari. Un num˘ar prim p se nume¸ste num˘ar prim
tare dac˘a:
i) p −1 are un factor mare r;
ii) p + 1 are un factor mare s;
iii) r −1 are un factor mare t.
Operat ¸ia de semnare a unui mesaj M se realizeaz˘a prin exponent ¸ierea amprentei
H(M) cu ajutorul cheii private: s = H(M)
d
mod n. Verificarea semn˘aturii se real-
izeaz˘a prin comparat ¸ia lui H(M) cu s
e
mod n.
ˆ
In cazurile practice valoarea lui e este un num˘ar relativ mic, deci d are o val-
oare mare. Acest lucru conduce la timpi de rulare diferit ¸i ˆıntre operat ¸iile private
(descifrare/semnare) ¸si cele publice(cifrare/verificare semn˘atur˘a).
Pentru optimizarea calculelor de verificare a semn˘aturii se poate utiliza lema
chinezeasc˘a a resturilor (CRT), ˆıns˘a acest lucru induce vulnerabilit˘at ¸i ˆın mediul de
implementare.
Astfel, dac˘a p > q, sunt precalculate valorile:
dP = (e
−1
mod n) mod (p −1),
dQ = (e
−1
mod n) mod (q −1),
qInv = q
−1
mod p.
ˆ
In faza de calcul se execut˘a:
m
1
= c
dP
mod p,
m
2
= c
dQ
mod q,
h = qInv(m
1
−m
2
) mod p,
m = m
2
+hq.
Cheia privat˘a ce se stocheaz˘a fiind (p, q, dP, dQ, qInv).
EXERCIT¸ II REZOLVATE 219
22.2. Exercit ¸ii rezolvate
Exercit ¸iul 22.2.1. Se d˘a num˘arul n = 36187829 despre care se cunoaste faptul
c˘a este un produs de dou˘a numere cu valoarea φ(n) = 36175776. Factorizat ¸i num˘arul
n.
Rezolvare: Folosim relat ¸ile p+q = n−(p−1)(q−1)+1 ¸si p−q =
_
(p +q)
2
−4n.
Obt ¸inem p = 5657 ¸si q = 6397.
Exercit ¸iul 22.2.2. S˘a se cifreze mesajul M = 3, utilizˆand sistemul RSA cu
urm˘atorii parametrii: N = 187 (modulul de cifrare), e = 7 (exponentul de cifrare).
Rezolvare: Criptograma este: C = M
e
= 3
7
= 2187 = 130 mod 187.
Exercit ¸iul 22.2.3. S˘a se descifreze mesajul C = 130, utilizˆand sistemul RSA
cu urm˘atorii parametrii: N = 187 = 11 · 17 (modulul de cifrare), e = 7 (exponentul
de cifrare).
Rezolvare: Deoarece se cunoa¸ste factorizarea N = 11·17, se poate calcula ϕ(N) =
16 · 10 = 160, ϕ(ϕ(N)) = 64.
Exponentul de descifrare va fi:
d = e
ϕ(ϕ(N))−1
= 7
63
= (7
9
)
7
= (40353607)
7
= 7
7
= 823543 = 23 mod 160.
Descifrarea mesajului cifrat C va fi: C
d
= 130
23
= 3 = M mod 187.
Exercit ¸iul 22.2.4. S˘a se descifreze, utilizˆand CRT, mesajul cifrat c = 8363,
pentru cazul ˆın care p = 137, q = 131, n = p · q = 17947, e = 3, d = 11787.
Rezolvare:
ˆ
In faza de precalcul avem:
dP = (e
−1
mod n) mod (p −1) = 91,
dQ = (e
−1
mod n) mod (q −1) = 87,
qInv = q
−1
mod p = 114.
Calcul˘am apoi:
m
1
= c
dP
mod p = 102,
m
2
= c
dQ
mod q = 120,
h = qInv(m
1
−m
2
) mod p = 3,
m = m
2
+hq = 513.
220 SISTEMUL DE CIFRARE RSA
22.3. Exercit ¸ii propuse
Exercit ¸iul 22.3.1. Fie numerele prime p = 211 ¸si q = 167. S˘a se cifreze mesajul
TEST cu ajutorul algoritmului RSA, utilizˆand exponentul public e = 2
8
+ 1. Ele-
mentele din mesajul clar se codific˘a conform codului ASCII.
R˘aspuns: N = 35237, φ(N) = 34860, d = 23873, mesajul cifrat este: 01154 05746
04357 01154.
Exercit ¸iul 22.3.2. S˘a se descifreze mesajul 01154 05746 04357 01154 cu aju-
torul algoritmului RSA (p = 211 ¸si q = 167), utilizˆand exponentul public e = 2
8
+1.
Elementele din mesajul clar se decodific˘a conform codului ASCII.
R˘aspuns: N = 35237, φ(N) = 34860, d = 23873, mesajul clar este TEST.
Exercit ¸iul 22.3.3. S˘a se cifreze mesajul M = 146, utilizˆand sistemul RSA cu
urm˘atorii parametrii: n = 187 (modulul de cifrare), e = 7 (exponentul de cifrare).
R˘aspuns: C = 141.
Exercit ¸iul 22.3.4. S˘a se descifreze mesajul C = 141, utilizˆand sistemul RSA
cu urm˘atorii parametrii: n = 187 (modulul de cifrare), d = 23(exponentul de de-
scifrare).
R˘aspuns: M = 146.
Exercit ¸iul 22.3.5. S˘a se cifreze mesajul M = 9, utilizˆand sistemul RSA cu
urm˘atorii parametrii: n = 187 (modulul de cifrare), e = 7 (exponentul de cifrare).
R˘aspuns: C = 70.
Exercit ¸iul 22.3.6. S˘a se descifreze mesajul C = 70, utilizˆand sistemul RSA
cu urm˘atorii parametrii: n = 187 (modulul de cifrare), d = 23 (exponentul de
descifrare).
R˘aspuns: M = 9.
Exercit ¸iul 22.3.7. S˘a se cifreze mesajul M = 3, utilizˆand sistemul RSA cu
urm˘atorii parametrii: n = 35237 (modulul de cifrare), e = 11 (exponentul de
cifrare).
EXERCIT¸ II PROPUSE 221
R˘aspuns: C = 962.
Exercit ¸iul 22.3.8. S˘a se descifreze mesajul C = 962, utilizˆand sistemul RSA
cu urm˘atorii parametrii: n = 35237 (modulul de cifrare), d = 31691 (exponentul de
descifrare).
R˘aspuns: M = 3.
Exercit ¸iul 22.3.9. S˘a se cifreze mesajul M = 5, utilizˆand sistemul RSA cu
urm˘atorii parametrii: n = 221 (modulul de cifrare), e = 11 (exponentul de cifrare).
R˘aspuns: C = 164.
Exercit ¸iul 22.3.10. S˘a se descifreze mesajul C = 164, utilizˆand sistemul RSA
cu urm˘atorii parametrii: n = 221 = 13 · 17 (modulul de cifrare), e = 11 (exponentul
de cifrare).
R˘aspuns: M = 5, d = 35.
Exercit ¸iul 22.3.11. S˘a se cifreze mesajul M = 4, utilizˆand sistemul RSA cu
urm˘atorii parametrii: N = 209 (modulul de cifrare), e = 11 (exponentul de cifrare).
Rezolvare: Criptograma este: C = M
e
= 4
11
= 92 mod 209.
Exercit ¸iul 22.3.12. S˘a se descifreze mesajul C = 92, utilizˆand sistemul RSA
cu urm˘atorii parametrii: N = 209 = 11· 19 (modulul de cifrare), e = 11 (exponentul
de cifrare).
Rezolvare: Deoarece se cunoa¸ste factorizarea N = 11·19, se poate calcula ϕ(N) =
18 · 10 = 180, d = 131, M = 4.
222 SISTEMUL DE CIFRARE RSA
Capitolul 23
SISTEMUL DE CIFRARE
ELGAMAL
23.1. Breviar teoretic
Algoritmul de cifrare ElGamal este definit de un num˘ar prim p ¸si un element
g ∈ Z

p
primitiv, numit generator. Pentru cheia privat˘a x ∈ Z

p
se calculeaz˘a y =
g
x
mod p, cheia public˘a fiind tripletul (y, g, p).
Pentru a cifra un mesaj M ∈ Z
p
se alege aleatoriu k ∈ Z
p−1
, textul cifrat fiind
(y
1
, y
2
) = (g
k
mod p, My
k
mod p).
Pentru a descifra mesajul (y
1
, y
2
) se calculeaz˘a y
2
(y
x
1
)
−1
mod p.
23.2. Exercit ¸ii rezolvate
Exercit ¸iul 23.2.1. S˘a se cifreze mesajul M = 4 cu ajutorul algoritmului ElGa-
mal cu parametrii p = 17, g = 14, x = 2.
Rezolvare: Cheia public˘a este (y, g, p) = (14
2
mod 17, 14, 17) = (9, 14, 17), cheia
privat˘a x = 2. Alegem, spre exemplu, k = 7 relativ prim cu 16 = p − 1. Obt ¸inem
mesajul cifrat C = (14
7
mod 17, 4 · 9
7
mod 17) = {6, 8}.
Exercit ¸iul 23.2.2. S˘a se descifreze mesajul {6, 8}, ¸stiind c˘a a fost cifrat cu
ajutorul algoritmului ElGamal cu parametrii p = 17, g = 14, x = 2.
Rezolvare: Cheia public˘a este {y, g, p} = {9, 14, 17}, cheia privat˘a x = 2. Mesajul
clar se obt ¸ine aplicˆand formula y
2
y
−x
1
mod p = 4.
223
224 SISTEMUL DE CIFRARE ELGAMAL
23.3. Exercit ¸ii propuse
Exercit ¸iul 23.3.1. S˘a se cifreze mesajul 5 cu ajutorul algoritmului ElGamal cu
parametrii p = 23, g = 14, x = 2. Valoarea k utilizat˘a pentru cifrare este 7.
R˘aspuns: Mesajul cifrat este (19, 11).
Exercit ¸iul 23.3.2. S˘a se cifreze mesajul 5 cu ajutorul algoritmului ElGamal cu
parametrii p = 23, g = 14, x = 2. Valoarea k utilizat˘a pentru cifrare este 9.
R˘aspuns: Mesajul cifrat este (21, 20).
Exercit ¸iul 23.3.3. S˘a se cifreze mesajul 3 cu ajutorul algoritmului ElGamal cu
parametrii p = 47, g = 14, x = 3. Valoarea k utilizat˘a pentru cifrare este 5.
R˘aspuns: Mesajul cifrat este (3, 34).
Exercit ¸iul 23.3.4. S˘a se cifreze mesajul 8 cu ajutorul algoritmului ElGamal cu
parametrii p = 47, g = 4, x = 2. Valoarea k utilizat˘a pentru cifrare este 3.
R˘aspuns: Mesajul cifrat este (17, 9).
Exercit ¸iul 23.3.5. S˘a se cifreze mesajul 4 cu ajutorul algoritmului ElGamal cu
parametrii p = 23, g = 7, x = 3. Valoarea k utilizat˘a pentru cifrare este 3.
R˘aspuns: Mesajul cifrat este (21, 14).
Exercit ¸iul 23.3.6. S˘a se descifreze mesajul (17, 9) cu ajutorul algoritmului El-
Gamal cu parametrii p = 47, g = 4, x = 2.
R˘aspuns: Mesajul clar este 8.
Exercit ¸iul 23.3.7. S˘a se descifreze mesajul (3, 34) cu ajutorul algoritmului El-
Gamal cu parametrii p = 47, g = 14, x = 3.
R˘aspuns: Mesajul clar este 3.
Exercit ¸iul 23.3.8. S˘a se descifreze mesajul (21, 14) cu ajutorul algoritmului
ElGamal cu parametrii p = 23, g = 7, x = 3.
R˘aspuns: Mesajul clar este 4.
Capitolul 24
ARITMETICA PE CURBE
ELIPTICE
24.1. Breviar teoretic
Definit ¸ia 24.1.1. O curb˘a eliptic˘a E este constituit˘a din elemente (numite
puncte) de tipul (x, y) ce satisfac ecuat ¸ia:
y
2
≡ x
3
+ax +b mod p
unde a ¸si b sunt constante astfel ˆıncˆat 4a
3
+ 27b
2
= 0 mod p ¸si p este un num˘ar
prim, ˆımpreun˘a cu un element singular, notat O ¸si numit punctul de la infinit. Acest
punct poate fi privit ca fiind punctul din vˆarful ¸si de la baza oric˘arei linii verticale.
O curb˘a eliptic˘a E are o structur˘a de grup abelianˆımpreun˘a cu operat ¸ia adunare.
Adunarea a dou˘a puncte de pe o curb˘a eliptic˘a este definit˘a ˆın concordant ¸˘a cu o
mult ¸ime simpl˘a de reguli (vezi figura 24.1).
Fiind date dou˘a puncte pe E, P
1
(x
1
, y
1
) ¸si P
2
(x
2
, y
2
), avem urm˘atoarele cazuri:
- dac˘a x
2
= x
1
¸si y
2
= −y
1
atunci P
1
+P
2
= O.
- altfel P
1
+P
2
= (x
3
, y
3
), unde:
_
x
3
= λ
2
−x
1
−x
2
y
3
= λ(x
1
−x
3
) −y
1
cu
λ =
_
¸
_
¸
_
y
2
−y
1
x
2
−x
1
, dac˘a P
1
= P
2
3x
2
1
+a
2y
1
, dac˘a P
1
= P
2
.
225
226 ARITMETICA PE CURBE ELIPTICE
Figura 24.1: Operat ¸ia de adunare pe o curb˘a eliptic˘a.
Observat ¸ia 24.1.1. A nu se confunda punctul la infinit O cu perechea (0, 0).
Punctul la infinit apart ¸ine tuturor curbelor eliptice, ˆın timp ce punctul (0, 0) este
un element doar pentru curbele eliptice cu parametrul b = 0.
24.2. Exercit ¸ii rezolvate
Exercit ¸iul 24.2.1. Fie curba eliptic˘a y
2
= x
3
+7x +4 definit˘a peste F
71
. S˘a se
adune punctele P(15, 17) ¸si Q(43, 24).
Rezolvare:
Coordoantele punctului P +Q = (x
3
, y
3
), sunt date de formulele:
_
x
3
= λ
2
−x
1
−x
2
y
3
= λ(x
1
−x
3
) −y
1
unde λ =
y
2
−y
1
x
2
−x
1
.
EXERCIT¸ II PROPUSE 227
Pentru calculul λ = 7 · (28
−1
mod 71), se folose¸ste algoritmul lui Euclid care
gase¸ste 33 = 28
−1
mod 71, deci λ = 231.
Atunci x
3
= 231
2
−15 −43 mod 71 = 53 iar y
3
= 231(15 −53) −17 mod 71 = 9.
ˆ
In concluzie, coordoantele punctului care reprezinta suma celor doua puncte de pe
curba eliptic˘a dat˘a sunt (53, 9).
Exercit ¸iul 24.2.2. Fie curba eliptic˘a y
2
= x
3
+x+3 definit˘a peste F
17
. Ar˘atat ¸i
c˘a punctul (2, 8) este un generator al punctelor de pe curba eliptic˘a.
Rezolvare: Succesiv putem scrie 1P = (2, 8), 2P = (12, 3), 3P = (16, 16), 4P =
(8, 8), 5P = (7, 9), 6P = (6, 15), 7P = (11, 6), 8P = (3, 13), 9P = (3, 4), 10P =
(11, 11), 11P = (6, 2), 12P = (7, 8), 13P = (8, 9), 14P = (16, 1), 15P = (12, 14),
16P = (2, 9), 17P = O.
24.3. Exercit ¸ii propuse
Exercit ¸iul 24.3.1. Fie curba eliptic˘a y
2
= x
3
+2x +3 definit˘a peste F
23
. S˘a se
adune punctele P(6, 1) ¸si Q(13, 8).
R˘aspuns: R(5, 0).
Exercit ¸iul 24.3.2. Fie curba eliptic˘a y
2
= x
3
+7x+4 definit˘a peste F
71
. Se d˘a
punctul P(15, 17). Aflat ¸i 2P.
R˘aspuns: (66, 25).
Exercit ¸iul 24.3.3. Fie curba eliptic˘a y
2
= x
3
+x + 6 definit˘a peste F
11
. S˘a se
arate c˘a punctul (2, 7) este un generator al punctelor de pe curba eliptic˘a.
R˘aspuns: 1P = (2, 7), 2P = (5, 2), 3P = (8, 3), 4P = (10, 2), 5P = (3, 6),
6P = (7, 9), 7P = (7, 2), 8P = (3, 5), 9P = (10, 9), 10P = (8, 8), 11P = (5, 9),
12P = (2, 4), 13P = O.
Exercit ¸iul 24.3.4. Fie curba eliptic˘a y
2
= x
3
+ 6x + 11 definit˘a peste F
17
. Se
d˘a punctul P(6, 5). Aflat ¸i 2P.
R˘aspuns: (1, 1).
Exercit ¸iul 24.3.5. Fie curba eliptic˘a y
2
= x
3
+x+3 definit˘a peste F
7
. Ar˘atat ¸i
c˘a punctul (4, 6) este un generator al punctelor de pe curba eliptic˘a.
228 ARITMETICA PE CURBE ELIPTICE
R˘aspuns: Succesiv obt ¸inem 1P = (4, 6), 2P = (6, 1), 3P = (5, 0), 4P = (6, 6),
5P = (4, 1), 6P = O.
Exercit ¸iul 24.3.6. Fie curba eliptic˘a y
2
= x
3
+ 9 definit˘a peste F
37
. Se d˘a
punctul P(6, 22). Aflat ¸i 2P.
R˘aspuns: (35, 1).
Exercit ¸iul 24.3.7. Fie curba eliptic˘a y
2
= x
3
+ 9 definit˘a peste F
37
. Se dau
punctele P(6, 22) ¸si Q(8, 15). Aflat ¸i P +Q.
R˘aspuns: (26, 11).
Exercit ¸iul 24.3.8. Fie curba eliptic˘a y
2
= x
3
+11x +20 definit˘a peste F
23
. Se
dau punctele P(7, 7) ¸si Q(15, 15). Aflat ¸i P +Q.
R˘aspuns: (2, 21).
Exercit ¸iul 24.3.9. Fie curba eliptic˘a y
2
= x
3
+ 7x + 11 definit˘a peste F
23
. Se
dau punctele P(21, 14) ¸si Q(7, 9). Aflat ¸i P +Q.
R˘aspuns: (22, 7).
Exercit ¸iul 24.3.10. Fie curba eliptic˘a y
2
= x
3
+ 5x + 5 definit˘a peste F
17
. Se
d˘a punctul P(3, 8). Aflat ¸i 3P.
R˘aspuns: (12, 5).
Exercit ¸iul 24.3.11. Fie curba eliptic˘a y
2
= x
3
+3x definit˘a peste F
11
. Ar˘atat ¸i
c˘a punctele P(0, 0) ¸si Q(1, 2) apart ¸in curbei. Aflat ¸i P +Q.
R˘aspuns: Cele 2 puncte satisfac fiecare ecuat ¸ia curbei eliptice. Suma lor este
(3, 5).
Exercit ¸iul 24.3.12. Fie curba eliptic˘a y
2
= x
3
+6x +11 definit˘a peste F
17
. Se
dau punctele P(12, 3) ¸si Q(6, 12). Aflat ¸i P +Q.
R˘aspuns: (14, 0).
Capitolul 25
SISTEMUL DE CIFRARE
ELGAMAL PE CURBE
ELIPTICE
25.1. Breviar teoretic
Algoritmul ElGamal poate fi extins pe orice grup finit (G, ◦), ˆın care problema
logaritmului discret este dificil˘a, ˆın particular ¸si pe grupul punctelor de pe o curb˘a
eliptic˘a.
Astfel, fie α ∈ G pentru care problema logaritmului ˆın subgrupul H = {α
i
|i ≥ 0}
este dificil˘a. Pe baza cheii private x ∈ Z, se construie¸ste β = α
x
, cheia public˘a fiind
{G, α, β}.
Pentru a cifra un mesaj M se alege aleatoriu k ∈ Z
|H|
¸si se aplic˘a regula de
cifrare: E(M, k) = (α
k
, M ◦ β
k
).
Mesajul clar m se recupereaz˘a din mesajul cifrat (y
1
, y
2
) dup˘a regula: y
2
◦(y
x
1
)
−1
.
ˆ
Intr-adev˘ar y
2
◦ (y
x
1
)
−1
= M ◦ β
k
◦ ((α
k
)
x
)
−1
= M ◦ α
kx
◦ (α
kx
)
−1
= M.
25.2. Exercit ¸ii rezolvate
Exercit ¸iul 25.2.1. S˘a se cifreze mesajul (10, 9) utilizˆand curba eliptic˘a (pub-
lic˘a) E : y
2
= x
3
+x + 6 pe Z
11
cu ajutorul algoritmului ElGamal.
Rezolvare: Pentru a calcula punctele curbei eliptice se calculeaz˘a valorile z =
x
3
+x +6 mod 11, se vede care din aceste valori sunt reziduri p˘atratice cu ajutorul
teoremei lui Euler (z este reziduu p˘atratic dac˘a ¸si numai dac˘a z
p−1
2
≡ 1 mod p) ¸si
229
230 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE
apoi se calculeaz˘a r˘ad˘acinile p˘atrate ale acestor reziduri prin formula y = ±z
p+1
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 (num˘arul de elemente este al grupului este num˘ar prim)
¸si se ia ca generator pentru acesta elementul (public) α = (2, 7). Cheia privat˘a de
descifrare, notat˘a prin d, este o valoare ˆıntre 1 ¸si num˘arul de puncte de pe o curb˘a
eliptic˘a −1. Cheia public˘a, notat˘a prin β, se obt ¸ine din α ¸si exponentul secret d prin
formula β = dα.
Operat ¸ia de cifrare a mesajul M cu ajutorul cheii (secrete) k este:
E(M, k) = (kα, M +kβ).
Operat ¸ia de descifrare pentru a obt ¸ine M este:
D
k
(y
1
, y
2
) = y
2
−dy
1
.
Fie d = 3. Se determin˘a β = 3(2, 7) = (8, 3).
Considerˆand valoarea aleatoare k = 4, se obt ¸ine: E(M, k) = (4(2, 7), (10, 9) +
4(8, 3)) = ((10, 2), (10, 9) + (2, 4)) = ((10, 2), (3, 5))
Exercit ¸iul 25.2.2. S˘a se descifreze mesajul ((10, 2), (3, 5)) ¸stiind c˘a a fost cifrat
cu algoritmul ElGamal utilizˆand curba eliptic˘a(public˘a) E : y
2
= x
3
+x + 6 pe Z
11
¸si cheia privat˘a d = 3.
Rezolvare: Se determin˘a mesajul clar ca fiind: M = y
2
−dy
1
= (3, 5) −3(10, 2) =
(3, 5) −(2, 4) = (3, 5) + (2, 7) = (10, 9).
25.3. Exercit ¸ii propuse
Exercit ¸iul 25.3.1. Se consider˘a algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+ x + 6 peste Z
11
. Ar˘atat ¸i c˘a α = (2, 7) este un generator al grupului E.
Se consider˘a cheia privat˘a d = 5. S˘a se cifreze mesajul (10, 9) cu valoarea aleatoare
k = 3.
R˘aspuns: Valoarea cheii publice este β = dα = (3, 6). Mesajul cifrat este
(kα, M +kβ) = ((8, 3), (10, 9) + (5, 2)) = ((8, 3), (5, 9)).
Exercit ¸iul 25.3.2. Se consider˘a algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+x+6 peste Z
11
. Ar˘atat ¸i c˘a α = (2, 7) este un generator al grupului E. S˘a
se descifreze mesajul ((8, 3), (5, 9)) cu ajutorul cheii private d = 5.
EXERCIT¸ II PROPUSE 231
R˘aspuns: D
k
(y
1
, y
2
) = (y
2
−dy
1
) = ((5, 9) −5(8, 3)) = ((5, 9) −(5, 2)) = ((5, 9) +
(5, 9)) = (10, 9).
Exercit ¸iul 25.3.3. Se consider˘a algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+ x + 6 peste Z
13
. Ar˘atat ¸i c˘a α = (4, 3) este un generator al grupului E.
Se consider˘a cheia privat˘a d = 3. S˘a se cifreze mesajul (3, 7) cu valoarea aleatoare
k = 4.
R˘aspuns: Valoarea cheii publice este β = dα = (3, 7). Mesajul cifrat este
(kα, M +kβ) = ((9, 4), (3, 7) + (4, 10)) = ((9, 4), (2, 9)).
Exercit ¸iul 25.3.4. Se consider˘a algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+x+6 peste Z
13
. Ar˘atat ¸i c˘a α = (4, 3) este un generator al grupului E. S˘a
se descifreze mesajul ((9, 4), (2, 9)) cu ajutorul cheii private d = 3.
R˘aspuns: D
k
(y
1
, y
2
) = (y
2
−dy
1
) = ((2, 9)−3(9, 4)) = ((2, 9)−(4, 10)) = ((2, 9)+
(4, 3)) = (3, 7).
Exercit ¸iul 25.3.5. Se consider˘a algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+ x + 6 peste Z
17
. Se alege generatorul subgrupului ciclic α = (1, 5) al lui
E. Se consider˘a cheia privat˘a d = 7. S˘a se cifreze mesajul (8, 4) utilizˆand valoarea
aleatoare k = 3.
R˘aspuns: Valoarea cheii publice este β = dα = (7, 13). Mesajul cifrat este
(kα, M +kβ) = ((7, 4), (8, 4) + (1, 5)) = ((7, 4), (16, 2)).
Exercit ¸iul 25.3.6. Se consider˘a algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+x + 6 peste Z
17
. S˘a se descifreze mesajul ((7, 4), (16, 2)) cu ajutorul cheii
private d = 3.
R˘aspuns: D
k
(y
1
, y
2
) = (y
2
− dy
1
) = ((16, 2) − 7(7, 4)) = ((16, 2) − (1, 5)) =
((2, 9) + (1, 12)) = (8, 4).
Exercit ¸iul 25.3.7. Se consider˘a algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+2x+6 peste Z
29
. Se alege generatorul subgrupului ciclic α = (20, 10) al lui
E. Se consider˘a cheia privat˘a d = 5. S˘a se cifreze mesajul (10, 9) utilizˆand valoarea
aleatoare k = 6.
R˘aspuns: Valoarea cheii publice este β = dα = (1, 3). Mesajul cifrat este
(kα, M +kβ) = ((14, 9), (10, 9) + (14, 9)) = ((14, 9), (5, 20)).
232 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE
Exercit ¸iul 25.3.8. Se consider˘a algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+ 2x + 6 peste Z
29
. S˘a se descifreze mesajul ((14, 9), (5, 20)) cu ajutorul
cheii private d = 5.
R˘aspuns: D
k
(y
1
, y
2
) = (y
2
− dy
1
) = ((5, 20) − 5(14, 9)) = ((5, 20) − (14, 9)) =
((5, 20) + (14, 20)) = (10, 9).
Exercit ¸iul 25.3.9. Se consider˘a algoritmul ElGamal precizat de parametrii E :
y
2
= x
3
+2x+7 peste Z
17
. S˘a se descifreze mesajul ((16, 2), (2, 6)) cu ajutorul cheii
private d = 5.
R˘aspuns: D
k
(y
1
, y
2
) = (y
2
− dy
1
) = ((2, 6) − 5(16, 2)) = ((2, 6) − (16, 2)) =
((2, 6) + (16, 15)) = (8, 12).
Capitolul 26
SISTEMUL DE CIFRARE
MENEZES-VANSTONE
26.1. Breviar teoretic
ˆ
In acest sistem de cifrare - de fapt o variant˘a a lui ElGamal - curba eliptic˘a
este utilizat˘a pentru mascare, textele clare ¸si cele cifrate putˆand fi formate din orice
elemente nenule (nu neap˘arat puncte din E).
Fie E o curb˘a eliptic˘a peste Z
p
, p > 3 num˘ar prim care cont ¸ine un subgrup ciclic
Gˆın care problema logaritmului discret este dificil˘a. Pe baza cheii private d ∈ Z, se
construie¸ste β = dα, cheia public˘a fiind {E, α, β}.
Pentru a cifra mesajul m = (m
1
, m
2
) ∈ Z

p
× Z

p
se alege aleatoriu k ¸si se con-
struie¸ste textul cifrat (y
0
, y
1
, y
2
) dup˘a regulile:
y
0
= kα, (c
1
, c
2
) = kβ, y
i
= c
i
m
i
, i = 1, 2.
La descifrare, cunoscˆand (y
0
, y
1
, y
2
) ¸si cheia privat˘a d se determin˘a textul clar
astfel:
(m
1
, m
2
) = (y
1
c
−1
1
mod p, y
2
c
−1
2
mod p), unde dy
0
= (c
1
, c
2
)
26.2. Exercit ¸ii rezolvate
Exercit ¸iul 26.2.1. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+ x + 6 peste Z
13
. Ar˘atat ¸i c˘a α = (4, 3) este un generator al
grupului E. Se consider˘a cheia privat˘a d = 3. S˘a se cifreze mesajul (3, 7) cu valoarea
aleatoare k = 4.
Rezolvare: Curba eliptica are 13 puncte deci grupul E este ciclic ¸si orice element
este generator.
233
234 SISTEMUL DE CIFRARE MENEZES-VANSTONE
Se calculeaz˘a β = 3α = 3 · (4, 3) = (3, 7)
Cifrarea mesajului (3, 7) cu valoarea aleatoare k = 4 se face dupa urm˘atoarea
formul˘a e
k
(x, k) = (y
0
, y
1
, y
2
) unde y
0
= k · α, (c
1
, c
2
) = k · β, y
i
= c
i
· x
i
(modp)
pentru i = 1, 2.
Calcul˘am y
0
= 4 · (4, 3) = (9, 4) iar (c
1
, c
2
) = 4 · β = 12α = (4, 10) deci c
1
= 4 iar
c
2
= 10
Se calculeaz˘a ¸si y
1
= 4 · 3 mod 13 = 12 ¸si y
2
= 10 · 7 mod 13 = 5. Rezultatul
cifrarii mesajului (3, 7) cu valoarea aleatoare k = 4 este ((9,4), 12,5).
26.3. Exercit ¸ii propuse
Exercit ¸iul 26.3.1. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+ x + 6 peste Z
13
. Ar˘atat ¸i c˘a α = (4, 3) este un generator al
grupului E. Se consider˘a cheia privat˘a d = 3. S˘a se cifreze mesajul (1, 1) cu valoarea
aleatoare k = 2.
R˘aspuns: β = (3, 7), (y
0
, y
1
, y
2
) = ((2, 9), 11, 3).
Exercit ¸iul 26.3.2. Se consider˘a curba eliptic˘a E : y
2
= x
3
+ x + 6 peste Z
13
.
Cˆate puncte are aceast˘a curb˘a? Gasit ¸i un generator al punctelor de pe curba eliptic˘a.
Cˆate elemente se pot cifra prin algoritmul ElGamal? Dar cu ajutorul algoritmului
Menezes-Vanstone?
R˘aspuns: Curba are 13 puncte. Cum num˘arul 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 curb˘a, deci 13. Cu Menezes-Vanstone se poate cifra
orice punct din Z
13
×Z
13
.
Exercit ¸iul 26.3.3. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+5 peste Z
11
. Cunoscˆand cheia public˘a (α, β) = ((3, 7), (4, 0)),
s˘a se cifreze mesajul (5, 2) cu valoarea aleatoare k = 7.
R˘aspuns: (y
0
, y
1
, y
2
) = ((0, 7), 9, 0).
Exercit ¸iul 26.3.4. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+7x+3 peste Z
17
. Cunoscˆand cheia public˘a (α, β) = ((12, 8), (7, 2)),
s˘a se cifreze mesajul (14, 7) cu valoarea aleatoare k = 7.
R˘aspuns: (y
0
, y
1
, y
2
) = ((12, 9), 13, 3).
EXERCIT¸ II PROPUSE 235
Exercit ¸iul 26.3.5. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+3x+2 peste Z
23
. Cunoscˆand cheia public˘a (α, β) = ((15, 15), (15, 8)),
s˘a se cifreze mesajul (13, 19) cu valoarea aleatoare k = 2.
R˘aspuns: (y
0
, y
1
, y
2
) = ((18, 0), 4, 0).
Exercit ¸iul 26.3.6. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+7 peste Z
23
. Cunoscˆand cheia public˘a (α, β) = ((5, 21), (16, 15)),
s˘a se cifreze mesajul (8, 10) cu valoarea aleatoare k = 4.
R˘aspuns: (y
0
, y
1
, y
2
) = ((21, 8), 13, 12).
Exercit ¸iul 26.3.7. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+7 peste Z
23
. Cunoscˆand cheia public˘a (α, β) = ((5, 21), (16, 15)),
s˘a se cifreze mesajul (19, 2) cu valoarea aleatoare k = 5.
R˘aspuns: (y
0
, y
1
, y
2
) = ((15, 13), 5, 16).
Exercit ¸iul 26.3.8. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+5 peste Z
17
. Cunoscˆand cheia privat˘a d = 3, s˘a se descifreze
mesajul (y
0
, y
1
, y
2
) = ((1, 12), 2, 10).
R˘aspuns: (m
1
, m
2
) = (12, 5).
Exercit ¸iul 26.3.9. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+5x+4 peste Z
19
. Cunoscˆand cheia privat˘a d = 2, s˘a se descifreze
mesajul (y
0
, y
1
, y
2
) = ((17, 9), 12, 14).
R˘aspuns: (m
1
, m
2
) = (11, 11).
Exercit ¸iul 26.3.10. Se consider˘a algoritmul Menezes-Vanstone precizat de para-
metrii E : y
2
= x
3
+2x+7 peste Z
23
. Cunoscˆand cheia privat˘a d = 7, s˘a se descifreze
mesajul (y
0
, y
1
, y
2
) = ((21, 8), 8, 4).
R˘aspuns: (m
1
, m
2
) = (12, 11).
236 SISTEMUL DE CIFRARE MENEZES-VANSTONE
Capitolul 27
FUNCT¸II DE DISPERSIE
27.1. Breviar teoretic
Problematica funct ¸iilor hash fiind deosebit de vast˘a, ˆın cele ce urmeaz˘a ne vom
opri numai asupra aspectelor strict necesare ˆınt ¸elegerii utiliz˘arii acestor funct ¸ii ˆın
cadrul algoritmilor de semn˘atur˘a digital˘a.
Definit ¸ia 27.1.1. O funct ¸ie f se nume¸ste funct ¸ie unidirect ¸ional˘a dac˘a:
a) fiind dat x, este u¸sor de calculat f(x);
b) fiind dat f(x), este greu de calculat x.
Definit ¸ia 27.1.2. O funct ¸ie f se nume¸ste funct ¸ie unidirect ¸ional˘a cu trap˘a (trap-
door) dac˘a:
a) fiind dat x, este u¸sor de calculat f(x);
b) fiind dat f(x), este greu de calculat x;
c) pe baza unei informat ¸ii secrete y, este u¸sor de calculat x din f(x).
Definit ¸ia 27.1.3. Funct ¸ia hash este o funct ¸ie care se aplic˘a unui ¸sir de lungime
oarecare obt ¸inˆandu-se un ¸sir de lungime fixat˘a (de obicei, mai mic˘a decˆat lungimea
¸sirului de intrare).
Definit ¸ia 27.1.4. O funct ¸ie H se nume¸ste funct ¸ie hash unidirect ¸ional˘ a dac˘a:
a) H este funct ¸ie hash;
b) H este funct ¸ie unidirect ¸ional˘a.
Pentru a putea fi folosite pentru semn˘aturi digitale, funct ¸iile hash unidirect ¸ionale
trebuie s˘a mai ˆındeplineasc˘a, printre altele una din urm˘atoarele dou˘a condit ¸ii:
1) oricare ar fi M dat, este greu de g˘asit M

astfel ˆıncˆat H(M

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

astfel ˆıncˆat H(M) = H(M

).
Funct ¸iile hash unidirect ¸ionale care ˆındeplinesc condit ¸ia (1) se numesc funct ¸ii hash
unidirect ¸ionale slabe (sau universale), iar cele care ˆındeplinesc condit ¸ia (2) se numesc
funct ¸ii hash unidirect ¸ionale tari (sau f˘ar˘a coliziuni).
Prima condit ¸ie este u¸sor de justificat: dac˘a A a semnat mesajul M cu H(M),
iar B obt ¸ine M

astfel ˆıncˆat H(M

) = H(M), atunci B ar putea pretinde c˘a A ar fi
semnat mesajul M

.
A doua condit ¸ie este justificat˘a de existent ¸a atacului birthday, metod˘a general˘a
de atac aplicabil˘a oric˘arei funct ¸ii hash, atac inspirat de paradoxul matematic al zilei
de na¸stere.
Datorit˘a atacului birthday, pentru o funct ¸ie hash care are la ie¸sire un ¸sir cu o
lungime de m bit ¸i (2
m
posibilit˘at ¸i) se pot g˘asi coliziuni generˆand doar 2
m/2
perechi
de mesaje-valori hash.
ˆ
In aceste condit ¸ii, algoritmii hash care produc valori hash de 64 bit ¸i se consider˘a
nesiguri deoarece, cu tehnologia actual˘a, se pot genera 2
64/2
= 2
32
mesaje ¸si deci
este posibil˘a g˘asirea de mesaje care s˘a intre ˆın coliziune. De aceea se recomand˘a ca
valoarea hash s˘a fie de lungime de cel put ¸in 128 bit ¸i.
ˆ
In cele ce urmeaz˘a vom descrie funct ¸ia de dispersie Chaum -van Heijt-Pfitzmann.
Fie p un num˘ar prim mare astfel ca q =
p −1
2
s˘a fie de asemenea prim. Consider˘am
α, β ∈ Z
p
elemente primitive. Calculul valorii logaritmului discret log
α
β este dificil
din punct de vedere computat ¸ional. Vom defini funct ¸ia de dispersie Chaum -van
Heijt-Pfitzmann h : Z
q
×Z
q
→Z

p
prin
h(x
1
, x
2
) = α
x
1
β
x
2
mod p.
Dac˘a exist˘a o coliziune pentru funct ¸ia Chaum -van Heijt-Pfitzmann atunci cal-
culul logaritmului discret log
α
β este u¸sor.
S˘a vedem cum anume se poate determina valoarea logaritmului discret log
α
β. S˘a
presupunem c˘a avem coliziunea h(x
1
, x
2
) = h(x
3
, x
4
) cu (x
1
, x
2
) = (x
3
, x
4
). Deci
α
x
1
β
x
2
= α
x
3
β
x
4
mod p sau echivalent α
x
1
−x
3
= β
x
4
−x
2
mod p. Fie d = (x
4
−x
2
, p−
1). Deoarece p −1 = 2q iar q este num˘ar prim avem d ∈ {1, 2, q, p −1}.
Cazul d = 1. Deoarece (x
4
−x
2
, p −1) = 1 exist˘a y = (x
4
−x
2
)
−1
mod p. Deci:
β = β
(x
4
−x
2
)y
mod p = α
(x
1
−x
3
)y
mod p.
Deci log
α
β = (x
1
−x
3
)(x
4
−x
2
)
−1
mod (p −1).
Cazul d = 2. Deoarece p − 1 = 2q, q num˘ar prim, rezult˘a (x
4
− x
2
, q) = 1. Fie
y = (x
4
−x
2
)
−1
mod q. Deci, exist˘a k num˘ar ˆıntreg astfel ˆıncˆat (x
4
−x
2
)y = kq +1.
Deoarece β
q
= −1 mod p, rezult˘a:
β
(x
4
−x
2
)y
= β
(kq+1)
= (−1)
k
β mod p = ±β mod p.
EXERCIT¸ II PROPUSE 239
Acest lucru conduce la:
α
(x
1
−x
3
)y
= β
(x
4
−x
2
)y
mod p = ±β mod p.
Suntem ˆın una din urm˘atoarele dou˘a situat ¸ii:
log
α
β = (x
1
−x
3
)(x
4
−x
2
)
−1
mod (p −1),
log
α
β = (x
1
−x
3
)(x
4
−x
2
)
−1
+q mod (p −1),
Se verific˘a direct care dintre rezultate este cel corect.
Cazul d = q. Deoarece 0 ≤ x
2
≤ q − 1 ¸si 0 ≤ x
4
≤ q − 1 rezult˘a faptul c˘a
−(q − 1) ≤ x
4
− x
2
≤ q − 1. Acest lucru arat˘a faptul c˘a este imposibil s˘a avem
(x
4
−x
2
, p −1) = q.
Cazul d = p − 1. Aceast caz este posibil numai dac˘a x
4
= x
2
, rezult˘a x
1
= x
3
.
S-a ajuns la (x
1
, x
2
) = (x
3
, x
4
), ceea ce contrazice ipoteza.
27.2. Exercit ¸ii propuse
Exercit ¸iul 27.2.1. Fie f : Z
2
n
→ Z
2
n
o funct ¸ie hash pentru care problema
CSP
1
este satisf˘acut˘a. Definim funct ¸ia g : Z
2
2n
→Z
2
n
prin g(x
1
||x
2
) = f(x
1
⊕x
2
).
Ar˘atat ¸i c˘a g nu satisface problema CSP.
Exercit ¸iul 27.2.2. Fie p = 12347, α = 2, β = 8461 parametrii pentru funct ¸ia
de dispersie Chaum - van Heijst - Pfitzmann. Fiind dat˘a coliziunea α
5692
β
144
=
α
212
β
4214
mod p, s˘a se calculeze log
α
β.
R˘aspuns: log
α
β = 5689.
Exercit ¸iul 27.2.3. Fie p = 15083, α = 154, β = 2307 parametrii pentru funct ¸ia
de dispersie Chaum - van Heijst - Pfitzmann. Fiind dat˘a coliziunea α
7431
β
5564
=
α
1459
β
954
mod p, s˘a se calculeze log
α
β.
1
Fiind dat˘a o pereche valid˘ a (x, y) este dificil de aflat x
1
= x astfel ˆıncˆ at f(x
1
) = f(x).
240 FUNCT¸ II DE DISPERSIE
Capitolul 28
SEMN
˘
ATURA ELGAMAL
28.1. Breviar teoretic
Fie p un num˘ar prim pentru care problema logaritmului discret ˆın Z
p
este dificil˘a
¸si α ∈ Z
p

un element primitiv. Cheia public˘a β se construie¸ste din cheia privat˘a a:
β = α
a
mod p.
Semn˘atura mesajului x, calculat˘a cu ajutorul valorii aleatoare (secrete) k ∈ Z
p−1
,
este definit˘a ca fiind (γ, δ) unde:
γ = α
k
mod p ¸si δ = (H(x) −aγ)k
−1
mod (p −1),
H(·) fiind o funct ¸ie hash (H(x) = x dac˘a nu este specificat˘a funct ¸ia hash).
Semn˘atura (γ, δ) a mesajului x este verificat˘a dac˘a are loc:
β
γ
γ
δ
= α
H(x)
mod p.
28.2. Exercit ¸ii rezolvate
Exercit ¸iul 28.2.1. S˘a se semneze mesajul x = 101 cu ajutorul algoritmului
ElGamal specificat de parametrii urm˘atori: p = 467, α = 2, cheia privat˘a a = 127,
alegˆand valoarea k = 213.
Rezolvare: Se calculeaz˘a β = α
a
mod p = 2
127
mod 467 = 132
Semn˘atura mesajului x = 101 cu k = 213 (de remarcat faptul c˘a (213, 466) = 1
¸si 213
−1
mod 466 = 431) este:
γ = α
k
mod p = 2
213
mod 467 = 29 ¸si δ = (101 −127 · 29) · 431 mod 466 = 16.
241
242 SEMN
˘
ATURA ELGAMAL
28.3. Exercit ¸ii propuse
Exercit ¸iul 28.3.1. S˘a se semneze mesajul x = 100 cu ajutorul algoritmului
ElGamal specificat de parametrii urm˘atori: p = 163, α = 2, cheia privat˘a a = 127,
alegˆand valoarea k = 215.
R˘aspuns: Semn˘atura mesajului este (γ, δ) = (52, 24).
Exercit ¸iul 28.3.2. S˘a se semneze mesajul x = 102 cu ajutorul algoritmului
ElGamal specificat de parametrii urm˘atori: p = 467, α = 2, cheia privat˘a a = 127,
alegˆand valoarea k = 213.
R˘aspuns: Semn˘atura mesajului este (γ, δ) = (29, 447).
Exercit ¸iul 28.3.3. S˘a se semneze mesajul x = 57 cu ajutorul algoritmului El-
Gamal specificat de parametrii urm˘atori: p = 97, α = 3, cheia privat˘a a = 27,
alegˆand valoarea k = 37.
R˘aspuns: Semn˘atura mesajului este (γ, δ) = (66, 39).
Exercit ¸iul 28.3.4. S˘a se semneze mesajul x = 29 cu ajutorul algoritmului El-
Gamal specificat de parametrii urm˘atori: p = 127, α = 5, cheia privat˘a a = 13,
alegˆand valoarea k = 19.
R˘aspuns: Semn˘atura mesajului este (γ, δ) = (66, 89).
Exercit ¸iul 28.3.5. S˘a se semneze mesajul x = 78 cu ajutorul algoritmului El-
Gamal specificat de parametrii urm˘atori: p = 131, α = 7, cheia privat˘a a = 19,
alegˆand valoarea k = 17.
R˘aspuns: Semn˘atura mesajului este (γ, δ) = (3, 93).
Exercit ¸iul 28.3.6. Mesajul x = 57 a fost semnat cu ajutorul algoritmului El-
Gamal specificat de parametrii urm˘atori: p = 97, α = 3, β = 70, obt ¸inˆandu-se
semn˘atura (γ, δ) = (66, 39). Este aceasta o semn˘atur˘a valid˘a?
R˘aspuns: Semn˘atura este valid˘a deoarece se satisface relat ¸ia de verificare β
γ
γ
δ
mod
p = α
x
mod p = 89.
EXERCIT¸ II PROPUSE 243
Exercit ¸iul 28.3.7. Mesajul x = 34 a fost semnat cu ajutorul algoritmului El-
Gamal specificat de parametrii urm˘atori: p = 131, α = 7, β = 16, obt ¸inˆandu-se
semn˘atura (γ, δ) = (3, 110). Este aceasta o semn˘atur˘a valid˘a?
R˘aspuns: Semn˘atura nu este valid˘a deoarece nu se satisface relat ¸ia de verificare
β
γ
γ
δ
mod p = 4; α
x
mod p = 9.
Exercit ¸iul 28.3.8. Mesajul x = 78 a fost semnat cu ajutorul algoritmului El-
Gamal specificat de parametrii urm˘atori: p = 131, α = 7, β = 16, obt ¸inˆandu-se
semn˘atura (γ, δ) = (3, 93). Este aceasta o semn˘atur˘a valid˘a?
R˘aspuns: Semn˘atura este valid˘a deoarece se satisface relat ¸ia de verificare β
γ
γ
δ
mod
p = α
x
mod p = 61.
244 SEMN
˘
ATURA ELGAMAL
Capitolul 29
SEMN
˘
ATURA DSA/ECDSA
29.1. Breviar teoretic
Fie p un num˘ar prim de 512 bit ¸i ¸si q un factor prim de 160 bit ¸i ai lui p − 1 ¸si
α ∈ Z
p

o r˘adacin˘a primitiv˘a de ordin q a unit˘at ¸ii.
Cheia public˘a β se construie¸ste din cheia privat˘a a: β = α
a
mod p. Semn˘atura
mesajului x, calculat˘a cu ajutorul valorii aleatoare (secrete) k ∈ Z

q
, este definit˘a ca
fiind (γ, δ) unde:
(γ, δ) = ((α
k
mod p) mod q, (H(x) +aγ)k
−1
mod q),
H(·) fiind o funct ¸ie hash (H(x) = x dac˘a nu este specificat˘a funct ¸ia hash).
Semn˘atura (γ, δ) a mesajului x este verificat˘ a dac˘a are loc urm˘atoarea egalitate,
unde e
1
= H(x)δ
−1
mod q ¸si e
2
= γδ
−1
mod q:

e
1
β
e
2
mod p) mod q = γ.
O variant˘a a DSA-ului este reprezentat˘a de extensia acesteia pe curbele eliptice
(ECDSA).
ˆ
In aceast˘a situat ¸ie se lucreaz˘a pe curb˘a eliptic˘a E peste Z
q
. Elementele
necesare algoritmului sunt:
G(x
G
, y
G
) generatorul punctelor de pe curba eliptic˘a;
n num˘arul elementelor de pe curba eliptic˘a (sau ordinul lui G dac˘a G nu este
generator);
L
n
num˘arul de bit ¸i ai lui n;
d
A
cheia privat˘a,d
A
∈ [1, n];
Q
A
= d
A
G cheia public˘a.
ˆ
In contexul celor de mai sus, algoritmul ECDSA este urm˘atorul:
PASUL 1. Se calculeaz˘a e = H(M). Fie z cei cei mai semnificativi L
n
bit ¸i ai
lui e.
PASUL 2. Se alege valoarea aleatoare
1
k in intervalul [1, n −1].
1
valoarea k se nume¸ste cheie efemer˘a.
245
246 SEMN
˘
ATURA DSA/ECDSA
PASUL 3. r = x
1
mod n, unde (x
1
, y
1
) = kG. Dac˘a r = 0 atunci revenim la
PASUL 2.
PASUL 4. s = k
−1
(z +rd
A
) mod n. Dac˘a r = 0 atunci revenim la PASUL 2.
PASUL 5. Semn˘atura este (r, s).
Verificarea semn˘aturii ECDSA (r, s se realizeaz˘a dup˘a urm˘atorul algoritm.
PASUL 1. Dac˘a r, s / ∈ [1, n] semn˘atura este invalid˘a.
PASUL 2. Fie e = H(M), z cei mai semnificativi L
n
bit ¸i ai lui e.
PASUL 3. Se calculeaz˘a: w = s
−1
mod n.
PASUL 4. Se calculeaz˘a: u
1
= zw mod n ¸si u
2
= rw mod n.
PASUL 5. Fie (x
1
, y
1
) = u
1
G+u
2
Q
A
.
PASUL 6. Semn˘atura este valid˘a dac˘a ¸si numai dac˘a r = x
1
mod n.
29.2. Exercit ¸ii rezolvate
Exercit ¸iul 29.2.1. S˘a se semneze mesajul x = 100 cu ajutorul algoritmului
DSA specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, valoarea
aleatoare utilizat˘a k = 50, cheia secret˘a fiind a = 75. Verificat ¸i rezultatul obt ¸inut.
Rezolvare: Se calculeaz˘a:
γ = (α
k
mod p) mod q = (170
50
mod 7879) mod 101 = 2518 mod 101 = 94.
δ = (x + aγ)k
−1
mod q = (100 + 75 · 94)50
−1
mod 101 = 7150 · 50
−1
mod 101 =
7150 · 99 mod 101 = 42.
S-a folosit 50
−1
(mod101) = −2 mod 101 = 99 (fiindc˘a 101 = 50 · 2 + 1).
Verificare:
β = α
a
mod p = 170
75
mod 7879 = 4567.
e
1
= xδ
−1
mod q = 100 · 42
−1
mod 101 = 100 · 89 mod 101 = 12.
e
2
= γδ
−1
mod q = 94 · 42
−1
mod 101 = 94 · 89 mod 101 = 84.
Se obt ¸ine:

e
1
β
e
2
mod p) mod q = (170
12
· 4567
84
mod 7879) mod 101 = 2518 mod 101 =
94 = γ.
29.3. Exercit ¸ii propuse
Exercit ¸iul 29.3.1. S˘a se semneze mesajul x = 101 cu ajutorul algoritmului
DSA specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, valoarea
aleatoare utilizat˘a k = 50, cheia secret˘a fiind a = 75. Verificat ¸i rezultatul obt ¸inut.
R˘aspuns: Semn˘atura mesajului este (γ, δ) = (94, 40). Cheia public˘a este β =
4567.
EXERCIT¸ II PROPUSE 247
Exercit ¸iul 29.3.2. S˘a se semneze mesajul x = 102 cu ajutorul algoritmului
DSA specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, valoarea
aleatoare utilizat˘a k = 50, cheia secret˘a fiind a = 75. Verificat ¸i rezultatul obt ¸inut.
R˘aspuns: Semn˘atura mesajului este (γ, δ) = (94, 38). Cheia public˘a este β =
4567.
Exercit ¸iul 29.3.3. S˘a se semneze mesajul x = 75 cu ajutorul algoritmului DSA
specificat de parametrii urm˘atori: p = 131, q = 13, α = 7, a = 3, valoarea aleatoare
utilizat˘a k = 11. Verificat ¸i rezultatul obt ¸inut.
R˘aspuns: Semn˘atura mesajului este (γ, δ) = (10, 6). Totu¸si, semn˘atura nu se
verific˘a pentru ca ord(α) = 65 ¸si nu q = 13.
ˆ
In concluzie, algoritmul DSA este setat
impropriu.
Exercit ¸iul 29.3.4. Mesajul x = 502 a fost semnat cu ajutorul algoritmului
DSA specificat de parametrii urm˘atori: p = 617, q = 11, α = 113, β = 489, valoarea
aleatoare utilizat˘a k = 21 ¸si s-a obt ¸inut semn˘atura (γ, δ) = (3, 10). Este aceast˘a
semn˘atur˘a valid˘a?
R˘aspuns: Semn˘atura este valid˘a deoarece se satisface relat ¸ia de verificare

e
1
β
e
2
mod p) mod q = γ = 3.
Exercit ¸iul 29.3.5. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA
specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, β = 4567, valoarea
aleatoare utilizat˘a k = 50 ¸si s-a obt ¸inut semn˘atura (γ, δ) = (94, 78). Este aceast˘a
semn˘atur˘a valid˘a?
R˘aspuns: Semn˘atura nu este valid˘a deoarece nu se satisface relat ¸ia de verificare

e
1
β
e
2
mod p) mod q = γ.
Exercit ¸iul 29.3.6. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA
specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, β = 4567, valoarea
aleatoare utilizat˘a k = 50 ¸si s-a obt ¸inut semn˘atura (γ, δ) = (94, 44). Este aceast˘a
semn˘atur˘a valid˘a?
R˘aspuns: Semn˘atura este valid˘a deoarece se satisface relat ¸ia de verificare

e
1
β
e
2
mod p) mod q = γ = 94.
248 SEMN
˘
ATURA DSA/ECDSA
Capitolul 30
PROTOCOLUL
DIFFIE-HELLMAN
30.1. Breviar teoretic
Fie p un num˘ar prim, q un divizor prim al lui p −1 ¸si α ∈ Z

p
, element de ordin
q. Protocolul Diffie-Hellman (DH), ce returneaz˘a o cheie comun˘a de sesiune K este
urm˘atorul:
PASUL 1. A genereraz˘a aleator a ∈ Z

q
¸si trimite lui B valoarea R
A
= α
a
(mod
p).
PASUL 2. B genereraz˘a aleator b ∈ Z

q
¸si trimite lui A valoarea R
B
= α
b
(mod
p).
PASUL 3. A calculeaz˘a K = K
A,B
= R
B
a
= α
ab
.
PASUL 4. B calculeaz˘a K = K
B,A
= R
A
b
= α
ab
.
30.2. Exercit ¸ii rezolvate
Exercit ¸iul 30.2.1. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 25307, α = 2, a = 2009, b = 2010.
R˘aspuns: k = 21554.
Rezolvare:
PASUL 1. A trimite lui B valoarea R
A
= α
a
(modp) = 2
2009
mod 25307 =
5755.
PASUL 2. B trimite lui A valoarea R
B
= α
b
(modp) = 2
2010
mod 25307 =
11510.
249
250 PROTOCOLUL DIFFIE-HELLMAN
PASUL 3. A calculeaz˘a K = K
A,B
= R
B
a
= 11510
2009
mod 25307 = 21554.
PASUL 4. B calculeaz˘a K = K
B,A
= R
A
b
= 5755
2010
mod 25307 = 21554.
30.3. Exercit ¸ii propuse
Exercit ¸iul 30.3.1. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 25307, α = 2, a = 3578, b = 19956.
R˘aspuns: k = 3694.
Exercit ¸iul 30.3.2. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 25307, α = 2, a = 1989, b = 2009.
R˘aspuns: k = 12034.
Exercit ¸iul 30.3.3. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 17, α = 7, a = 9, b = 3.
R˘aspuns: k = 14.
Exercit ¸iul 30.3.4. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 10163, α = 652, a = 6026, b = 3510.
R˘aspuns: k = 7944.
Exercit ¸iul 30.3.5. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 63299, α = 49297, a = 5671, b = 59073.
R˘aspuns: k = 57286.
Exercit ¸iul 30.3.6. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 1319, α = 527, a = 1088, b = 584.
R˘aspuns: k = 352.
Exercit ¸iul 30.3.7. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 2099, α = 1023, a = 1496, b = 648.
R˘aspuns: k = 612.
EXERCIT¸ II PROPUSE 251
Exercit ¸iul 30.3.8. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 1823, α = 776, a = 1515, b = 476.
R˘aspuns: k = 1555.
Exercit ¸iul 30.3.9. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului
Diffie-Hellman specificat de parametrii: p = 2207, α = 371, a = 839, b = 1358.
R˘aspuns: k = 731.
Exercit ¸iul 30.3.10.
ˆ
In urma aplic˘arii protocolului Diffie-Hellman, una dintre
entit˘at ¸ile care doresc s˘a genereze o cheie comun˘ a alege parametrul secret a = 1 (sau
b = 1). Cum poate un atacator determina cheia ˆın acest caz?
252 PROTOCOLUL DIFFIE-HELLMAN
Capitolul 31
PROTOCOLUL BLOM
31.1. Breviar teoretic
Protocolul lui Blom asigur˘a implementarea principiului compartiment˘arii, ˆıntre
oricare doi participant ¸i, dintr-o mult ¸ime de n utilizatori. Protocolul se bazeaz˘a pe
existent ¸a unei autorit˘at ¸i de ˆıncredere T. Fie n ≥ 3 num˘arul de utilizatori ¸si p ≥ n
un num˘ar prim. Cheia, ce urmeaz˘a a fi calculat˘a de oricare doi participant ¸i este
un element din Z
p

. Vom nota prin k num˘arul maxim de intru¸si
1
ˆımpotriva c˘arora
poate fi asigurat˘a protect ¸ia. Vom exemplifica protocolul pentru k = 1.
PASUL 0. T face public: num˘arul prim p ¸si pentru fiecare utilizator A un
num˘ar aleator r
A
∈ Z
p
, r
A
= r
B
pentru orice A = B.
PASUL 1. T genereaz˘a aleatoriu trei numere a, b, c ∈ Z
p
¸si formeaz˘a polinomul
2
:
f(X, Y ) = a +b(X +Y ) +cXY mod p.
PASUL 2. Pentru fiecare utilizator A, T va construi polinomul:
g
A
(X) = f(X, r
A
) mod p,
pe care ˆıl va transmite, cu asigurarea confident ¸ialit˘at ¸ii, c˘atre A.
PASUL 3. Cheia stabilit˘a de c˘atre A ¸si B va fi:
K
A,B
= K
B,A
= f(r
A
, r
B
).
1
numit ¸si nivel de compartimentare.
2
pentru k arbitrar polimonul utilizat ˆın cadrul protocolului este f(X, Y ) =

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

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

i=0
p
n−i
<
k

i=0
p
i
.
Secretul S, ce trebuie partajat, trebuie s˘a apart ¸in˘a intervalului
1
(β, α), unde
α =

k
i=0
p
i
¸si β =

k−2
i=0
p
n−i
. Valorile ce se distribuie fiec˘aruia dintra cei n
participant ¸i sunt S mod p
i
, i = 1, . . . , n. Recuperarea secretului se realizeaz˘a, de
c˘atre k participant ¸i, prin rezolvarea, cu ajutorul CRT, a sistemului S = S
i
j
mod p
i
,
j = 1, . . . , k.
33.2. Exercit ¸ii rezolvate
Exercit ¸iul 33.2.1. Fie ¸sirul {5, 7, 9, 11, 13} o secvent ¸˘a (5, 3) Mignotte , α =
11 · 13, β = 5 · 7 · 9, secretul S = 235 ∈ (α, β). Care sunt secretele ce sunt distribuite
celor cinci participant ¸i?
1
Dac˘a lungimea intervalului este mic˘a, atunci schema nu este practic˘a, existˆand posibilitatea ca
printre valorile distribuite s˘a este coliziuni.
261
262 SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT
Rezolvare: S
1
= S mod 5 = 0, S
2
= S mod 7 = 5, S
3
= S mod 9 = 6, S
4
=
S mod 11 = 10, S
5
= S mod 13 = 12. Spre exemplu, grupul {P
1
, P
3
, P
4
} trebuie s˘a
rezolve problema:
_
_
_
x ≡ 0 mod 5
x ≡ 6 mod 9
x ≡ 10 mod 11
ce are solut ¸ie unic˘a 285.
Capitolul 34
CANALE SUBLIMINALE
34.1. Breviar teoretic
ˆ
In sistemul de autentificare ElGamal, A alege un num˘ar prim mare q ¸si un element
primitiv α ∈ Z
q
. Valorile q ¸si α sunt publice. Printr-un canal sigur, A ¸si B stabilesc
un num˘ar p ∈ Z
q
. Protocolul prin care A transmite lui B mesajul subliminal y ∈ Z
q
prin utilizarea textului x este urm˘atorul:
PASUL 0. A calculeaza β = α
y
mod q.
PASUL 1. Se determin˘a γ ca solut ¸ie a ecuat ¸iei x = p · β +y · γ mod (q −1).
PASUL 2. A trimite lui B tripletul (x, β, γ).
PASUL 3. B calculeaz˘a a = (α
p
)
β
· β
γ
mod q.
PASUL 4. Dac˘a a = α
x
mod q atunci B decide c˘a mesajul este autentic.
PASUL 5. B recupereaz˘a mesajul subliminal: y = (x −p · β) · γ
−1
mod (q −1).
34.2. Exercit ¸ii rezolvate
Exercit ¸iul 34.2.1. Se consider˘a canalul subliminal ElGamal dat de q = 11 ¸si
α = 2. S˘a presupunem c˘a se dore¸ste transmiterea mesajului y = 9 folosind cheia
secret˘a k = 0 ¸si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul
de comunicat ¸ie?
Rezolvare:
PASUL 0. A calculeaz˘a β = α
y
mod q = 2
9
mod 11 = 6.
PASUL 1. Se determin˘a γ ca solut ¸ie a ecuat ¸iei x = p · β + y · γ mod (q − 1),
echivalent cu 5 = 0+9γ mod 10 de unde rezult˘a γ = 5·9
−1
mod 10 = 5·9 mod 10 = 5.
PASUL 2. A trimite lui B tripletul (x, β, γ) = (5, 6, 5).
263
264 CANALE SUBLIMINALE
34.3. Exercit ¸ii propuse
Exercit ¸iul 34.3.1. Se consider˘a canalul subliminal ElGamal dat de q = 11 ¸si
α = 2. S˘a presupunem c˘a se dore¸ste transmiterea mesajului y = 9 folosind cheia
secret˘a k = 8 ¸si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul
de comunicat ¸ie?
R˘aspuns: {5, 6, 3}.
Exercit ¸iul 34.3.2. Se consider˘a canalul subliminal ElGamal dat de q = 11 ¸si
α = 2. S˘a presupunem c˘a se dore¸ste transmiterea mesajului y = 1 folosind cheia
secret˘a k = 8 ¸si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul
de comunicat ¸ie?
R˘aspuns: {5, 2, 9}.
Exercit ¸iul 34.3.3. Se consider˘a canalul subliminal ElGamal dat de q = 11,
α = 2 ¸si cheia secret˘a k = 8. Se recept ¸ioneaz˘a mesajul {5, 6, 3}. Acesta cont ¸ine
mesaje ascunse?
R˘aspuns: Mesajul recept ¸ionat este autentic, mesajul subliminal fiind y = 9.
Exercit ¸iul 34.3.4. Se consider˘a canalul subliminal ElGamal dat de q = 11,
α = 2 ¸si cheia secret˘a k = 8. Se recept ¸ioneaz˘a mesajul {5, 6, 2}. Acesta cont ¸ine
mesaje ascunse?
R˘aspuns: Mesajul recept ¸ionat nu este autentic.
Exercit ¸iul 34.3.5. Se consider˘a canalul subliminal ElGamal dat de q = 11,
α = 2 ¸si cheia secret˘a k = 8. Se recept ¸ioneaz˘a mesajul {5, 2, 9}. Acesta cont ¸ine
mesaje ascunse?
R˘aspuns: Mesajul recept ¸ionat este autentic, mesajul subliminal fiind y = 1.
Exercit ¸iul 34.3.6. Se consider˘a canalul subliminal ElGamal dat de q = 11,
α = 2 ¸si cheia secret˘a k = 0. Se recept ¸ioneaz˘a mesajul {5, 6, 5}. Acesta cont ¸ine
mesaje ascunse?
R˘aspuns: Mesajul recept ¸ionat este autentic, se ajunge la rezolvarea urm˘atoarei
ecuat ¸ii 5 = 5×y mod 10 ce nu are solut ¸ie unic˘a, verificarea autenticit˘at ¸ii se face prin
EXERCIT¸ II PROPUSE 265
repetarea procedeului de construct ¸ie a mesajului ce se transmite. Se obt ¸ine mesajul
ascuns y = 9.
Exercit ¸iul 34.3.7.
ˆ
In cadrul protocolui ElGamal, de transmitere a mesajelor
subliminale, autentificatorul obt ¸inut γ nu este relativ prim cu q −1. Cum se rezolv˘a
aceast˘a spet ¸˘a?
266 CANALE SUBLIMINALE
Capitolul 35
PRINCIPII CRIPTOGRAFICE
Exercit ¸iul 1. Metoda one-time pad (OTP) cifreaz˘a un mesaj m prin aplicarea
operat ¸iei XOR cu o cheie secret˘a k. Avˆand ˆın vedere c˘a o cheie bun˘a are, statistic,
jum˘atate din bit ¸i zero ¸si c˘a operat ¸ia XOR cu zero nu modific˘a nimic, rezult˘a c˘a
metoda OTP las˘a jum˘atate din mesaj ˆın clar. Cu alte cuvinte, prin simpla observare
a unui text cifrat cu aceast˘a metod˘a, un atacator cunoa¸ste jum˘atate din bit ¸ii textului
clar. Acest lucru ˆınseamn˘a, de fapt, c˘a metoda OTP este una foarte slab˘a? Cum
poate fi considerat ”‘perfect” un cifru bloc care cifreaz˘a numai jum˘atate din textul
clar?
Exercit ¸iul 2. Pentru verificarea semn˘aturii ElGamal este necesar˘a efectuarea ope-
rat ¸iei a
x
b
y
mod p unde a, b sunt fixate iar x, y sunt variabile. Ar˘at ¸i c˘a num˘arul de
ˆınmult ¸iri necesare pentru efectuarea acestui calcul este mai mic decˆat num˘arul de
operat ¸ii necesare pentru a calcula a
x
b
y
mod p prin dou˘a exponent ¸ieri succesive.
Exercit ¸iul 3. Consider˘am dou˘a numere prime p ¸si q. Fie i
p
= p
−1
mod q si i
q
=
q
−1
mod p iar n = p · q. Care este valoarea rezultat˘a ˆın urma operat ¸iei q · i
q
+p · i
p
?
Putet ¸i explica cum poate fi folosit˘a aceast˘a valoare pentru a reduce stocarea cheii
secrete la implementarea RSA CRT?
Exercit ¸iul 4. Se dore¸ste semnarea a dou˘a mesaje cu algoritmul de semn˘atura El
Gamal. Cum putem calcula valorile g
k
1
¸si g
k
2
pentru a produce semn˘aturile ˆıntr-un
timp mai scurt decˆat cel necesar pentru a calcula dou˘a semn˘aturi secvent ¸iale?
Exercit ¸iul 5. Consider˘am protocolul Fiat-Shamir unde secretul s este ales astfel
ˆıncˆat ˆıncˆat vs
2
= 1 mod n, v fiind cheia public˘a. Protocolul este dup˘a cum urmez˘a:
267
268 PRINCIPII CRIPTOGRAFICE
• Alice alege un r aleator ¸si ˆıi trimite lui Bob x = r
2
mod n;
• Bob r˘aspunde cu un bit aleator e;
• Alice r˘aspunde cu y = s
e
r mod n;
• Bob verific˘a dac˘a y
2
= v
e
x mod n.
Ar˘atat ¸i c˘a valorile rezultate ˆın urma protocolului, adic˘a {x, r, y}, definesc o
distribut ¸ie ce poate fi simulat˘a f˘ar˘a a-l folosi pe s. Explicat ¸i de ce acest lucru
asigur˘a protocolului o securitate foarte bun˘a.
Exercit ¸iul 6. Se d˘a o cutie neagr˘a care ruleaz˘a algoritmul AES (12 runde pentru
o cheie de 192 bit ¸i); cutia cont ¸ine o cheie necunoscut˘a k ¸si accept˘a ca parametru
un ˆıntreg r a c˘arui valoare poate fi setat˘a la 12, 11 sau 10 de c˘atre utilizator. Vi se
permite s˘a introducet ¸i ˆın cutie texte clare dup˘a cum dorit ¸i. Cum at ¸i proceda pentru
a ataca aceast˘a implementare?
Exercit ¸iul 7. Un administrator de sistem are o cheie de 100 de bit ¸i pe care dore¸ste
s˘a o ˆımpart˘a celor doi utilizatori ˆın care are ˆıncredere ˆın mod egal. El dore¸ste ca
accesul la informat ¸ie s˘a fie posibil˘a numai cˆand cei doi coopereaz˘a. Cˆati bit ¸i din
cheie ar trebui s˘a dea fiec˘aruia din cei doi utilizatori?
Exercit ¸iul 8. Pentru a gr˘abi verificarea semn˘aturilor s
i
de tip RSA a mesajelor
m
i
, se folose¸ste urm˘atoarea idee: se verific˘a dac˘a (

s
i
)
e
=

hash(m
i
) mod n unde
”hash” reprezint˘a full domain hash - o schem˘a de semn˘atur˘a bazat˘a pe RSA care
mai ˆıntˆai aplic˘a o funct ¸ie hash ¸si apoi semn˘atura RSA. Ar˘atat ¸i c˘a aceast˘a idee nu
este sigur˘a pentru un exponent e mic ¸si propunet ¸i o contram˘asur˘a.
Exercit ¸iul 9. De ce urm˘atorul context este nesigur? O autoritate de ˆıncredere
genereaz˘a un modul RSAn a c˘arui factorizare r˘amˆane secret˘a. Autoritatea furnizeaz˘a
fiec˘arui utilizator din sistem o pereche (e
i
, d
i
) a¸sa ˆıncˆat e
i
d
i
= 1 mod φ(n) unde
i = j ⇒d
i
= d
j
.
Exercit ¸iul 10. S˘a presupunem c˘a cineva trimite mesaje cifrate utilizˆand DES ˆın
modul de operare OFB cu o valoare init ¸ial˘a secret˘a (fixat˘a) IV .
1) Ar˘atat ¸i cum poate fi efectuat un atac cu text clar pentru a decripta mesajele
transmise?
2) Este mai bun modul de operare CFB?
3) Dar modul de operare CBC?
269
Exercit ¸iul 11. Dup˘a ce a studiat protocolul Diffie-Hellman, un tˆan˘ar criptograf de-
cide s˘aˆıl implementeze. Pentru a simplifica implementarea, el hot˘ar˘a¸ste s˘a foloseasc˘a
grupul aditiv (Z
p
, +) ˆın locul grupului multiplicativ (Z

p
, ·).
ˆ
In calitate de criptograf
cu experient ¸˘a, ce credet ¸i despre acest protocol?
Exercit ¸iul 12. S˘a presupunem c˘a Alice ¸si Bob folosesc chei publice RSA cu acela¸si
modul n dar cu exponent ¸i publici diferiti e
1
¸si e
2
.
1) Ar˘atat ¸i c˘a Alice poate decripta mesajele trimise lui Bob;
2) Ar˘atat ¸i c˘a Alice poate decripta mesaje trimise c˘atre Alice ¸si Bob dac˘a gcd(e
l
, e
2
) =
1.
Exercit ¸iul 13. Presupunem c˘a n = p · q, unde p si q sunt numere prime distincte.
1) Calculat ¸i S = n + 1 −φ(n).
2) Care sunt r˘ad˘acinile ecuat ¸iei x
2
− Sx + n? Dat ¸i expresiile acestor r˘ad˘acini ¸si
explicat ¸i cum pot fi g˘asite p ¸si q cu ajutorul unui simplu algoritm pentru calculul
r˘ad˘acinilor p˘atrate ˆıntregi?
3) Factorizat ¸i n ˆın urm˘atoarele dou˘a cazuri:
a) n = 667, φ(n) = 616;
b) n = 15049, φ(n) = 14800.
Exercit ¸iul 14. S˘a construim un MAC folosind modul CFB de implementare, ˆın
loc de modul CBC: fiind date blocurile de text clar α
1
, . . . , α
n
, definim vectorul de
int ¸ializare β
0
= α
1
. Apoi cifr˘am secvent ¸a de blocuri α
2
, . . . , α
n
dup˘a formulele:
β
i
= α
i+1
⊕E(β
i−1
; K).
ˆ
In final, MAC(α
1
|| . . . α
n
) = E(β
i−1
; K). Ar˘atat ¸i c˘a acesta este identic cu CBC
MAC.
Exercit ¸iul 15. Pentru S-boxul S
5
din DES calculat ¸i tendint ¸a variabilei aleatoare:
X
2
⊕Y
1
⊕Y
2
⊕Y
3
⊕Y
4
.
Exercit ¸iul 16.
ˆ
Intr-un sistem de cifrare simetric, o cheie k este slab˘a dac˘a e
k
= d
k
.
Determinat ¸i toate cheile slabe ale sistemelor afine peste Z
15
.
270 PRINCIPII CRIPTOGRAFICE
Capitolul 36
ATACURI
ˆ
IN MEDIUL DE
IMPLEMENTARE
36.1. Breviar teoretic
Atacurile ˆın mediul de implementare presupun o serie de m˘asur˘atori hardware
asupra modului criptografic:
Atacuri prin m˘asurarea timpului de execut ¸ie. Prin m˘asurarea timpului necesar
efectu˘arii unor operat ¸ii asupra cheii private, atacatorul poate determina exponent ¸ii
utilizat ¸i ˆın protocolul Diffie-Hellman, factorul RSA (ˆın special asupra algoritmului
RSA ce folose¸ste pentru semn˘atur˘a lema chinezesc˘a a resturilor CRT), precum ¸si o
serie de alte sisteme criptografice cum ar fi algoritmul de semn˘atur˘a digital˘a DSS.
Atacuri prin m˘asurarea puterii consumate. Atacul cu ajutorul analizei simple
a puterii (SPA) const˘a ˆın m˘asurarea puterii consumate de dispozitiv ˆın timpul
operat ¸iei criptografice. Acest tip de atac se aplic˘a, de regul˘a, dispozitivelor cu
surs˘a de tensiune exterioar˘a (ca de exemplu smart-cardurile). Consumul de putere
depinde de instruct ¸iunea executat˘a. Astfel, monitorizˆand consumul de putere, se
poate deduce secvent ¸a de instruct ¸iuni (codul surs˘a). Dac˘a secvent ¸a de instruct ¸iuni
depinde de lungimea cheii, atunci consumul de putere poate da informat ¸ii despre
cheie.
ˆ
In majoritatea procesoarelor, patternul puterii consumate de o instruct ¸iune
depinde ¸si de valoarea operanzilor (de exemplu setarea unui bit ˆıntr-un registru
consum˘a mai mult˘a energie decˆat ¸stergerea acestuia). M˘asur˘atori efectuate asupra
mai multor intr˘ari pot deduce valoarea operandului. Tehnica se nume¸ste analiza
diferent ¸ial˘a a puterii (DPA).
Atacuri cu ajutorul defect ¸iunilor (erorilor) hardware. Echipamentele hardware
pot genera erori (tranziente, latente sau induse) ˆın timpul efectuarii unor operat ¸ii
aritmetice. Prin exploatarea rat ¸ional˘a a acestor erori se pot recupera cheia privat˘a
271
272 ATACURI
ˆ
IN MEDIUL DE IMPLEMENTARE
pentru algoritmii de semn˘atur˘a RSA ¸si Rabin. O serie de protocoale criptografice
cum ar fi Fiat-Schamir ¸si Schnorr se pot sparge prin folosirea judicioas˘a a rezultatelor
acestor erori.
Analiza diferent ¸ial˘a a defect ¸iunilor. Analiza diferent ¸ial˘ a a defect ¸iunilor (DFA)
este o schem˘a ce se utilizeaz˘a pentru recuperarea cheilor secrete ale unui sistem crip-
tografic dintr-un dispozitiv HSM (Hardware Security Module) securizat fizic. Mod-
elul de defect este acela al defectelor tranziente (aleatoare) ¸si al defectelor induse.
Metoda folose¸ste la identificarea cheilor ˆın cazul utiliz˘arii unor cifruri cunoscute (de
exemplu DES) ¸si/sau a unor cifruri cu algoritm necunoscut sau la reconstruct ¸ia
algoritmului (cu o structur˘a cunoscut˘a).
36.2. Exercit ¸ii propuse
Exercit ¸iul 36.2.1. Ar˘atat ¸i c˘a tehnica DPA poate fi accelerat˘a folosind un com-
promis spat ¸iu-timp.
Rezolvare: Facet ¸i referire la articolul Computational Improvements to Differen-
tial Side Channel Analysis, NATO Advanced Research Workshop on Security and
Embedded Systems, August 2005.
Exercit ¸iul 36.2.2. Descriet ¸i un atac prin m˘asurarea timpului de execut ¸ie asupra
unei proceduri de comparat ¸ie a parolelor.
Exercit ¸iul 36.2.3. Pentru a proteja implementarea RSA de un atac prin m˘a-
surarea timpului de execut ¸ie, dezvoltatorii decid s˘a adauge la finalul procedurii un
timp de a¸steptare de durat˘a aleatoare, cuprins ˆıntre 0 ¸si n tacturi de ceas.
ˆ
In acest
fel, se va elimina total riscul atacului sau acesta va fi doar ˆıncetinit?
Exercit ¸iul 36.2.4. Numit ¸i 3 factori care determin˘a forma graficului puterii con-
sumate de un microprocesor.
Rezolvare: Instruct ¸iunea, datele manipulate de instruct ¸iune ¸si adresa instruct ¸iunii.
Capitolul 37
RESURSE SOFTWARE
37.1. CrypTool
CrypTool este un pachet software dedicat simul˘arii ¸si analizei de mecanisme crip-
tologice ˆıntr-un mod ilustrativ. De la rolul init ¸ial de instruire ˆın domeniul secu-
rit˘at ¸ii personalului diverselor companii private, CrypTool a evoluat ˆıntr-un proiect
educat ¸ional de tip open source cu aplicat ¸ii ˆın domeniul criptografiei ¸si majoritatea
domeniilor conexe. Produsul vizeaz˘a ˆın primul rˆand student ¸ii facult˘at ¸ilor de matem-
atic˘a ¸si informatic˘a, a firmelor ce activeaz˘a ˆın domeniul securitat ¸ii informat ¸iilor pre-
cum ¸si a dezvoltatorilor de aplicat ¸ii sau utlizatorilor de calculatoare ˆın general care
doresc sa-¸si dobˆandeasc˘a bagajul minimal de cuno¸stint ¸e criptografice.
ˆ
In prezent produsul este gratuit ¸si disponibil ˆın mai multe versiuni, prima dintre
acestea fiind CrypTool 1.4.x dezvoltat˘a integral ˆın mediul C++. Aceasta s-a extins
ulterior ˆın alte dou˘a versiuni, ˆınc˘a aflate la nivel beta, ce folosesc standarde de
dezvoltare de ultim˘a generat ¸ie aflˆandu-se ˆıntr-o continu˘a actualizare. Astfel, ˆın iulie
2008, s-a lansat CryptTool 2.0 dezvoltat ˆın mediul C#, versiune ce furnizeaz˘a o
paleta mai larg˘a de funct ¸ionalit˘at ¸i combinat˘a cu o interfat ¸˘a grafic˘a cu facilit˘at ¸i de tip
”drag-and-drop”. Laˆınceputul lui 2010 s-a lansat versiunea JCrypTool dezvoltat˘aˆın
mediul Java, avantajele acestei versiuni fiind c˘a este independent˘a de platforma pe
care ruleaz˘a (Windows, Linux, Mac) ¸si c˘a folo¸se¸ste din plin puternicul instrument
FlexiProvider prin care se pot ˆınc˘arca cu u¸surint ¸˘a module criptografice ˆın orice
aplicat ¸ie construit˘a peste JCA (Java Cryptography Architecture).
CrypTool a fost dezvoltat ˆın colaborare cu institut ¸ii de ˆınv˘at ¸˘amˆant devenind ast-
fel un soft educat ¸ional ¸si un bun instrument de init ¸iere ˆın domeniul criptologiei,
folosindu-se ˆın prezent cu succes in multe universit˘at ¸i de prestigiu. Datorit˘a ma-
nipul˘arii facile a mecanismelor criptologice precum ¸si a vizualiz˘arii ¸si prezent˘arii
ˆıntr-o manier˘a facil˘a ¸si inedit˘a a rezultatelor, CrypTool poate reprezenta compo-
273
274 RESURSE SOFTWARE
nenta practic˘a a cursurilor teoretice din domeniul criptologiei precum ¸si o metod˘a
rapid˘a de familiarizare cu componente esent ¸iale ale acestui domeniu.
Produsul acoper˘a ambele ramuri ale criptologiei ¸si anume criptografia ¸si crip-
tanaliza.
Sunt tratate majoritatea aspectelor fundamentale ale criptografiei. Astfel, pro-
dusul are implementate facilit˘at ¸i ˆın cadrul fiec˘arui subdomeniu dup˘a cum urmeaz˘a:
• criptografia clasic˘a: cifrurile Caesar, substitut ¸ie monoalfabetic˘a, substitut ¸ie
omofonic˘a, Vigen`ere, Hill, Playfair, ADFGVX, Addition, XOR, Vernam, Solitaire
etc;
• criptografia simetric˘a modern˘a: cifrurile IDEA, RC2, RC4, DES, 3DES, DESX
precum ¸si tot ¸ii finali¸stii cifrului AES ¸si anume MARS, RC6, Rijndael, Serpent and
Twofish;
• criptografia asimetric˘a: RSA;
• criptografia hibrid˘a: cifrarea datelor realizˆadu-se cu algoritmi simetrici (AES),
protect ¸ia cheii de cifrare fiind asigurat˘a prin metode asimetrice (RSA);
• semn˘aturi digitale: RSA, DSA, ECDSA (Elliptic Curve Digital Signature Al-
gorithm), Nyberg-Rueppel;
• funct ¸ii hash: MD2, MD4, MD5, SHA, SHA-1, SHA-2, RIPEMD-160;
• generatoare aleatoare: secude, x
2
mod n, LCG (linear congruence generator),
ICG (inverse congruence generator).
ˆ
In cadrul criptanalizei se reg˘asesc implementate majoritatea atacurilor standard
dup˘a cum urmeaz˘a:
• atac cu text cifrat: Caesar, Vigen`ere, Addition, XOR, Substitution, Playfair;
• atac cu text clar: Hill, Single-column transposition;
• atac manual: substitut ¸ie mono alfabetic˘a, Playfair, ADFGVX, Solitaire;
• atac prin fort ¸˘a brut˘a: pentru tot ¸i algoritmii; se presupune fie c˘a entropia textu-
lui clar este mic˘a sau cheia este part ¸ial cunoscut˘a sau alfabetului textului clar este
cunoscut;
• atacuri asupra RSA: bazate pe factorizare sau tehnici care apeleaz˘a la structurile
algebrice (latice);
• atacuri asupra sistemelor hibride: atacuri asupra RSA sau AES(side channels
attacks);
• atacuri asupra semnaturilor digitale: RSA prin factorizare; viabil pˆan˘a la
lungime de 250 bit ¸i (adica 75 cifre);
• atacuri asupra funct ¸iilor hash: generare coliziuni texte ASCII cu paradoxul
zilelor de na¸stere (pˆan˘a la 40 bit ¸i);
• analiz˘a aleatorism: bateria de teste FIPS-PUB-140-1, periodicitate, Vitany,
entropie, histograme, autocorelat ¸ii, testul de compresie ZIP etc.
ˆ
In sprijinul utilizatorilor, CrypTool are implementate o serie de demo-uri ¸si
OPENSSL 275
animat ¸ii prin care sunt exemplificate diverse facilit˘at ¸i pe care produsul le ofer˘a
folosindu-se primitive criptografice suportate ¸si implementate ˆın aplicat ¸ie ca de ex-
emplu Caesar, Vigen`ere, Nihilist, DES (toate patru cu ANIMAL), Enigma (Flash),
Rijdael/AES (Flash and Java), criptare hibrid˘a ¸si decriptare (AES-RSA ¸si AES-
ECC), generare ¸si verificare de semn˘aturi 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), prezent˘ari grafice 3D pentru date (pseudo)aleatoare, sensibilitatea
funct ¸iilor hash privind modific˘ari ale textului clar, teoria numerelor ¸si cripto sisteme
RSA (Authorware).
CrypTool cont ¸ine ¸si un modul educat ¸ional interactiv dedicat aplicat ¸iilor crip-
tografice ce necesit˘a aspecte elementare de teoria numerelor denumit ”NT”. Acest
modul introduce utilizatorul ˆın probleme elementare de teoria numerelor precum
algoritmul lui Euclid pentru g˘asirea celui mai mare divizor comun, testul Fermat
pentru primalitate, factorizarea Fermat, factorizarea Pollard Rho ¸si altele.
Un alt avantaj al produslui CrypTool ˆıl reprezint˘a existent ¸a unui meniu de doc-
umentare consistent ¸si o extindere online a acestuia cont ¸inˆand ˆın plus explicat ¸ii
privind not ¸iuni generale de criptografie, o cronologie privind dezvoltarea domeniu-
lui, exemple de utilizare a facilit˘at ¸ilor aplicat ¸iei, index sortat pe topicuri criptografice
¸si list˘a de referint ¸e.
Faptul c˘a pachetul software este open source, c˘a acoper˘a aspecte legate atˆat
de criptografia clasic˘a cˆat ¸si cea modern˘a, a modalit˘at ¸ilor multiple de simulare ¸si
vizualizare originale, precum ¸si a modului facil de aplicare ¸si analiz˘a a mecanis-
melor criptografice ne conduc la concluzia ca pachetul CrypTool reprezint˘a atˆat o
modalitate rapid˘a de init ¸iere ˆın domeniul criptografiei cˆat ¸si un instrument de lucru
puternic pentru speciali¸sti ˆın vederea studierii ¸si aplic˘arii ˆın acela¸si mediu a a diverse
probleme concrete ce pot ap˘area in criptografie ¸si criptanaliz˘a.
37.2. OpenSSL
OpenSSL este o suit˘a de aplicat ¸ii ce implementeaz˘a protocoalele Secure Sockets
Layer (SSL v2/v3) ¸si Transport Layer Security (TLS v1) precum ¸si o libr˘arie dedi-
cat˘a ce acoper˘a o gam˘a larg˘a de primitive criptografice. Proiectul este manageriat
de o comunitate de voluntari din ˆıntreaga lume ce comunic˘a, folosind Internetul,
ˆın vederea planific˘arii ¸si dezvolt˘arii continue a toolkit-ului OpenSSL precum ¸si a
documentat ¸iei aferente.
OpenSSL este bazat pe libr˘aria SSLeavy dezvoltat˘a de Eric A. Young ¸si Tim
J. Hudson, proiect ˆıncheiat la sfˆar¸situl anului 1998. Asupra produsului act ¸ioneaz˘a
o dubl˘a licent ¸iere, atˆat cea de OpenSSL cˆat ¸si cea original˘a a libr˘ariei SSLeavy.
276 RESURSE SOFTWARE
Ambele tipuri de licent ¸e sunt de tipul BSD open-source, toolkit-ul putˆand astfel
fi folosit atˆat pentru scopuri comerciale cˆat ¸si non-comerciale. Pachetul sofware
folose¸ste instrumente criptografice puternice, fiind dezvoltat continuu ¸si distribuit
legal de cˆateva t˘ari europene, supunˆandu-se ˆıns˘a unor restrict ¸ii de import/export
¸si uz ˆın unele t ¸˘ari din lume.
OpenSSL este disponibil ˆın numeroase versiuni fiind ˆıntr-o continu˘a dezvoltare,
bug-uri fiind des semnalate ¸si corectate. Versiunea stabil˘a curent˘a este OpenSSL
0.9.8m aceasta fiind disponibil˘a din luna februarie 2010; in plus utilizatorii benefi-
ciaz˘a de acces online permananent pentru studierea dezvolt˘arilor ulterioare ultimei
versiuni stabile. Versiunile sunt disponibile pentru majoritatea sistemelor de oper-
are tip UNIX (incluzˆand 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 s˘au Secure Sockets Layer (SSL), sunt protocoale criptografice
ce furnizeaz˘a securitatea comunicat ¸iilor peste ret ¸ele similare Internetului. Cele
dou˘a protocoale permit aplicat ¸iilor de tip client/server s˘a comunice securizat. TLS
furnizeaz˘a autentificare endpoint precum ¸si confident ¸ialitatea comunicat ¸iilor peste
Internet folosindu-se securizare RSA suportˆand lungimi de chei de pˆan˘a la 2048
de bit ¸i. Protocoale sunt utilizate pentru navigare pe Internet, po¸st˘a electronic˘a,
voice-over-IP (VoIP) etc.
Libr˘aria criptografic˘a OpenSSL implemeneaz˘a o gam˘a larg˘a de algoritmi utilizat ¸i
ˆın diverse standarde utilizate ˆın Internet. Facilit˘at ¸ile furnizate de aceast˘a libr˘arie
sunt folosite pentru a implementa SSL, TLS ¸si S/MIME, precum ¸si pentru SSH,
OpenPGP ¸si alte standarde criptografice. Libr˘aria are implementate o varietate de
primitive criptografice ¸si alte facilit˘at ¸i dup˘a cum urmeaz˘a:
• 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;
• Funct ¸ii hash ¸si coduri de autentificare: HMAC, MD2, MD4, MD5, MDC2,
RIPEMD, SHA;
• Funct ¸ii de control a intr˘arilor ¸si ie¸sirilor, funct ¸ii de codificare a datelor: PKCS7,
PKCS12, ASN1, BIO, EVP, PEM.
Utilitarul OpenSSL este un tool linie comand˘a utilizat ˆın gestionarea diverselor
funct ¸ii criptografice din libr˘aria OpenSSL. Acesta poate fi folosit pentru:
• Creare ¸si management de chei private, chei publice ¸si parametrii;
• Operat ¸ii ce implic˘a criptografia cu chei publice;
• Creare de certificate X.509 , CSRs ¸si CRLs;
MAPLE 277
• Calculare de rezumate de mesaj;
• Cifrare ¸si descifrare folosind diverse cifruri;
• testare client ¸i/servere (SSL/TLS);
• Semn˘aturi ¸si cifrare de mail (S/MIME);
• Cereri, gener˘ari ¸si verific˘ari de m˘arci temporare.
OpenSSL este unul dintre put ¸inele proiecte open source supuse valid˘arii de confor-
mitate cu standardului FIPS 140-2, utilizat ˆın securitatea calculatoarelor, dezvoltat
de National Institute of Standards and Technology (NIST). Pachetul software ˆın
sine nu este validat, fiind dezvoltat˘a o component˘a software a acestuia denumit˘a
OpenSSL FIPS Object Module, aceasta fiind compatibil˘a cu OpenSSL fiind creat˘a
pentru a oferi posibilitatea produselor ce folosesc API de tip OpenSSL de a fi su-
puse valid˘arii de confomitate FIPS 140-2.
ˆ
In ianuarie 2006 aceast˘a component˘a fost
certificat˘a, aceasta fiind ˆıns˘a revocat˘a ˆın iulie 2006 datorit˘a unor nel˘amuriri privind
validitatea interact ¸ion˘arii modulului cu software extern.
ˆ
In februarie 2007 produsul
a fost recertificat.
Validarea OpenSSL FIPS Object Module este unic˘a printre toate valid˘arile FIPS
140-2 prin faptul c˘a produc˘atorul pune la dispozit ¸ie ˆıntreg codul surs˘a. Prin urmare,
folosit f˘ar˘a nicio modificare ¸si construit pe orice platform˘a conform documentat ¸iei
pus˘a la dispozit ¸ie se obt ¸ine direct un modul criptografic validat. Orice modificare
minor˘a asupra codului implic˘a necesitatea revalid˘arii, proces costisitor (aproximativ
50000$) ¸si ˆındelungat (ˆıntre 6 ¸si 12 luni). Cea mai recent˘a validare open source
este OpenSSL FIPS Object Module (Software Version: 1.2), FIPS 140-2 certificate
#1051.
ˆ
In prezent nu exist˘a niciun alt produs open source supus valid˘arii FIPS
140-2 datorit˘a lispei de finant ¸are. Validarea versiunilor precedente au fost finant ¸ate
de sectorul comercial ¸si sponsori guvernamentali, o parte dintre ace¸stia preferˆand s˘a
r˘amˆan˘a anonimi.
37.3. MAPLE
ˆ
In cadrul acestei sect ¸iuni vom exemplifica, printr-o serie de exemple, modalit˘at ¸ile
de rezolvare a problemelor propuse, ˆın cadrul acestei culegeri, cu ajutorul aplicat ¸iei
software MAPLE.
Exemplul 37.3.1. Algoritmul de cifrare ElGamal.
p (ordinul grupului), α (generatorul) numere prime publice;
a cheia privat˘a, β := α
a
mod p cheia public˘a;
m mesajul clar;
k num˘ar aleator secret;
278 RESURSE SOFTWARE
regula de cifrare: y
1
:= α
k
mod p; y
2
:= (m∗ β
k
) mod p;
regula de descifrare: des := y
2
∗ (y
a
1
)
−1
mod p.
>
p:=17;
>
alpha:=14;
>
a:=2;
>
beta:=alpha^a mod p;
>
m:=4;
>
k:=4;
>
y1:=alpha^k mod p;
>
y2:=(m*(beta^k)) mod p;
>
text_cifrat:=(y1,y2);
>
text_descifrat:=y2*(y1^a)^(-1) mod p;
Exemplul 37.3.2. Algoritmul de semn˘atur˘a ElGamal.
p ¸si α numere prime publice;
a cheia secret˘a, β := α
a
mod p cheia public˘a;
x mesajul ce trebuie semnat;
k num˘ar secret;
γ := α
k
mod p, δ := (x −a ∗ γ)k
−1
mod (p −1), sign := (γ, δ);
verificarea semn˘aturii: β
γ
∗ γ
δ
mod p = α
x
mod p.
>
p:=467;
>
alpha:=2;
>
a:=127;
>
beta:=alpha^a mod p;
>
x:=102;
>
k:=15;
>
gamma:=alpha^k mod p;
>
delta:=(x-a*gamma)*k^(-1) mod (p-1);
>
(beta^gamma*gamma^delta - alpha^x) mod p;
Exemplul 37.3.3. Algoritmul de semn˘atur˘a DSA.
p ¸si q numere prime (publice);
α (public) r˘ad˘acina de ordin q a unit˘at ¸ii;
a cheia secret˘a, β = (α
a
) mod p;
MAPLE 279
x mesajul;
k num˘ar aleatoriu (secret);
sign = (γ, δ) unde γ = (α
k
mod p) mod q ¸si δ = (x +a ∗ γ) ∗ k
−1
mod q.
>
p:=7879;
>
q:=101;
>
alpha:=170;
>
a:=75;
>
beta:=(alpha^a) mod p;
>
x:=1234;
>
k:=50;
>
gamma:=(alpha^k mod p) mod q;
>
delta:=(x+a*gamma)*k^(-1) mod q;
Exemplul 37.3.4. Protocolul Diffie-Hellman.
Caracteristicile protocolului:
p num˘ar prim (minim 1024 bit ¸i), q divizor prim al lui q −1 (minim 160 bit ¸i);
α element de ordin q;
a num˘ar generat de A ¸si trimis lui B;
b num˘ar generat de B ¸si trimis lui A;
cheia comun˘a este k := α
a∗b
mod p.
>
p:=25307;
>
alpha:=2;
>
a:=3578;
>
b:=19956;
>
k:=((alpha^a) mod p)^b mod p;
Exemplul 37.3.5. Protocolul Blom.
p num˘ar prim, n num˘arul de utilizatori;
k = 1 nivel de compartimentare (protocolul este neconditionat sigur ˆımpotriva
atacului unui utilizator);
a, b, c coeficient ¸ii polinomului;
A denumire generic˘a participant protocol, r
A
cheia public˘a a lui A;
f(X, Y )a + b(X + Y ) + cXY polinom (simetric), g
A
(X) = f(X, r
A
) polinomul
secret al lui A;
280 RESURSE SOFTWARE
K matricea cheilor de compartimentare(simetric˘a).
>
p:=29;
>
a:=1;
>
b:=2;
>
c:=3;
>
n:=3;
>
r:=array(1..n,[13,11,17]);
>
f(X,Y):=a+b*(X+Y)+c*X*Y;
>
g:=array(1..n);
>
for i from 1 to n do:
>
g[i]:=eval(f(X,Y),Y=r[i]) mod p;
>
end do;
>
K:=array(1..n, 1..n);
>
for i from 1 to n do:
>
for j from 1 to n do:
>
K[i,j]:=eval(g[i],X=r[j]) mod p;
>
end do;
>
end do;
>
print(K);
Exemplul 37.3.6. Schema de partajare a lui Shamir.
n num˘arul de participant ¸i;
k num˘arul minim de participant ¸i care pot reconstitui secretul;
q num˘ar prim (identific˘a corpul Z[q] ˆın care se lucreaz˘a);
S secretul care se dore¸ste partajat;
x
i
(publice) se distribuie utilizatorilor, i = 1, . . . , n;
a
i
(aleatoare), i = 1, . . . , k −1.
>
n:=5;
>
k:=3;
>
q:=17;
>
S:=13;
>
x[1]:=1;
>
x[2]:=2;
>
x[3]:=3;
MAPLE 281
>
x[4]:=4;
>
x[5]:=5;
>
a[1]:=10;
>
a[2]:=2;
>
p:=S+a[1]*x+a[2]*x^2 mod q;
>
for i from 1 to n do subs(x=x[i],p) mod q
>
od;
Exemplul 37.3.7. Recuperarea secretului din schema lui Shamir.
n num˘arul de participant ¸i;
k num˘arul minim de participant ¸i care pot reconstitui secretul; q num˘ar prim
(identifica corpul Z[q] ˆın care se lucreaza);
S secretul care se doreste partajat;
x
i
(publice) se distribuie utilizatorilor, i = 1, . . . , n;
s
i
secretul distribuit, i = 1, . . . , k −1;
>
n:=5;
>
k:=3;
>
q:=17;
>
x[1]:=1;
>
x[2]:=2;
>
x[3]:=3;
>
x[4]:=4;
>
x[5]:=5;
>
s[1]:=8;
>
s[2]:=7;
>
s[3]:=10;
>
p:=S+a[1]*x+a[2]*x^2 mod q;
>
solve({subs(x=x[1],p)=s[1],subs(x=x[2],p)=s[2],subs(x=x[3],p)=s[3]
>
},{S,a[1],a[2]});
Exemplul 37.3.8. Canalul subliminal ElGamal.
q num˘ar prim;
α element primitiv;
x mesaj cifrat;
y mesaj subliminal;
282 RESURSE SOFTWARE
k cheia secret˘a;
β autentificator;
γ autentificator;
mesajul subliminal (x, β, γ).
>
q:=11;
>
alpha:=2;
>
y:=9;
>
x:=5;
>
k:=0;
>
beta:=alpha^y mod q;
>
gama:=y^(-1)*(x-k*beta) mod (q-1);
>
M:=(x,beta,gama);
Exemplul 37.3.9. Extragerea datelor din canalul subliminal ElGamal.
q num˘ar prim;
α element primitiv;
x mesaj cifrat;
y mesaj subliminal;
k cheia secret˘a;
β 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
APLICAT¸II PRACTICE
ˆ
In acest capitol ne propunem s˘a facem o scurt˘a descriere a celor 4 probleme
date la MITRE Cyber Challenge
1
, ˆın perioada 9-12 ianuarie 2012. Pentru fiecare
problem˘a prezent˘am ¸si cˆate o sugestie de rezolvare.
Primele trei probleme sunt legateˆıntre ele, ˆın sensul c˘a pentru rezolvarea celei de-a
doua probleme este nevoie de parola obt ¸inut˘aˆın urma rezolvarii primei probleme, iar
rezolvarea celei de-a doua probleme ne conduce la un indiciu folositor ˆın rezolvarea
problemei cu num˘arul trei. Ultima problem˘a este independent˘a de primele trei,
aceasta avˆand de fapt rolul de a scoate ˆın evident ¸˘a o vulnerabilitate a ECDSA
(acela¸si tip de vulnerabilitate care a fost folosit˘a ¸si pentru aflarea cheii de semnare
de la PlayStation3).
Problema 1. Obiectivul primei probleme este acela de a recunoa¸ste cˆand s-a
folosit criptografia clasic˘a (cifrurile Caesar, Vigen`ere, Hill etc) ˆın mediul digital.
Scenariul ipotetic este urm˘atorul: g˘asim un fi¸sier “ciudat, pe care nu l-am creat
noi, ˆın calculatorul personal. Acest fi¸sier, neededinformation.txt, este pus la
dispozit ¸ie ˆın cadrul problemei.
Se cere decriptarea informat ¸iei cont ¸inute ˆın acest fi¸sier ¸si g˘asirea parolei ascunse
ˆın interiorul s˘au. S¸tim c˘a aceast˘a parol˘a ˆıncepe cu ”S”, se termin˘a cu ”D” ¸si este
format˘a numai din majuscule.
Problema se poate rezolva foarte u¸sor folosind pachetul software CrypTool pen-
tru a face o criptanaliz˘a a nedeedinformation.txt: Analysis Symmetric encryp-
tion(classic) Ciphertext-Only Vigen`ere.
ˆ
In urma acestei criptanalize rezult˘a pentru ˆınceput c˘a lungimea cheii folosite este
6, iar la urm˘atorul pas obt ¸inem cheia ”SQUARE” cu ajutorul c˘areia putem decripta
1
http://www.iccs.fordham.edu/mitre/
283
284 APLICAT¸ II PRACTICE
textul cont ¸inut ˆın neededinformation.txt. La sfˆar¸situl textului decriptat se afl˘a
¸si parola pe care o c˘autam:
”PASSWORDFORTOMMOROWISSTRONGPASSWORDSAREGOOD”.
Problema 2. Aceast˘a problem˘a ˆı¸si propune s˘a arate posibilele locuri ˆın care un
adversar poate ascunde informat ¸ii, precum ¸si modurile ˆın care acest lucru se poate
face. Mai precis problema presupune g˘asirea unor informat ¸ii ascunse ˆın interiorul
unei imagini.
Presupunem c˘a avem o imagine hiding.gif. Cerint ¸a problemei este aceea de
a g˘asi informat ¸ia ascuns˘a ˆın aceast˘a imagine, ¸stiind c˘a aceasta ˆıncepe cu ”h”, se
termin˘a cu ”l”, iar m˘arimea fiec˘arei litere conteaz˘a. De asemenea, a¸sa cum am
ment ¸ionat anterior, vom avea nevoie de parola obt ¸inut˘a la prima problem˘a.
Uitˆandu-ne la propriet˘at ¸ile imaginii hiding.gif, observ˘am c˘a aceasta are 13.3
MB, ceea ce ni se pare suspect de mult. Pentru a vedea mai multe detalii, deschidem
hiding.gif cu UltraEdit ¸si observ˘am c˘a apare ”PK”ˆın format hexa 50 4B), ceea
ce ˆınseamn˘a c˘a este vorba despre o arhiv˘a (PK reprezint˘a init ¸ialele lui Phil Katz).
Prin urmare schimb˘am extensia ¸si obt ¸inem hinding.zip. Deschizˆand aceast˘a
arhiv˘a g˘asim alte imagini, una dintre ele (care atrage atent ¸ia ˆın mod deosebit) fiind
look at me.gif. Pentru a putea vedea aceast˘a imagine ˆıns˘a, avem nevoie de parola
obt ¸inut˘a la problema 1.
G˘asim ˆın final ¸si informat ¸ia pe care o c˘autam, ¸si anume hollenger.dll.
Problema 3. Cea de-a treia problem˘a este legat˘a de analiza traficului de date.
Presupunem c˘a avem la dispozit ¸ie o captur˘a de trafic de date, day3.pcap.
Se cere s˘a se g˘aseasc˘a, cu ajutorul r˘aspunsului de la problema anterior˘a, fi¸sierul
transferat din calculatorul personal c˘atre o surs˘a necunoscut˘a. R˘aspunsul pentru
285
aceast˘a problem˘a ˆıl va constitui informat ¸ia ascuns˘a ˆın fi¸sierul respectiv. S¸tim c˘a
ˆıncepe cu ”P”, se termin˘a cu ”k” ¸si m˘arimea fiec˘arei litere este important˘a.
Pentru a putea deschide day3.pcap vom folosi Wireshark.
ˆ
In continuare c˘aut˘am
hollenger.dll astfel: Edit Find Packet Filter : hollenger.dll (select˘am Packet
bytes ¸si String) Find, iar apoi Follow TCP stream.
Observ˘am din nou PK ¸si folosim opt ¸iunea Save as pentru a obt ¸ine day3.zip.
Arhiva cont ¸ine mai multe fi¸siere, printre care ¸si hollenger.dll.
Deschidem hollenger.dll cu UltraEdit ¸si observ˘am ”num˘arul magic” GIF87a
(ˆın format hexa 47 49 46 38 37 61), ceea ce ˆınseamn˘a c˘a este vorba de o imagine.
Schimbˆand deci extensia obt ¸inem hollenger.gif, aceasta fiind o imagine care
cont ¸ine urm˘atoarea fraz˘a : ”The Root Password is Pengu1nsR0ck”.
Problema 4. Obiectivul acestei probleme este recuperarea unei chei private ECDSA
care a fost folosit˘a pentru semnarea a dou˘a mesaje diferite.
ˆ
Inainte ˆıns˘a de a continua prezentarea acestei ultime probleme, reamintim algo-
ritmul de semn˘atur˘a ECDSA:
286 APLICAT¸ II PRACTICE
Parametrii publici ˆın acest caz sunt: un num˘ar prim p, o curb˘a eliptic˘a E(F
p
) ¸si
un punct G ∈ E(F
p
) cu ordG = q, q prim.
Cheia public˘a (de verificare) V ∈ E(F
p
) se construie¸ste cu ajutorul cheii private
(de semnare) 1 ≤ s ≤ q −1 astfel: V = sG.
Semn˘atura mesajului m (mod q), calculat˘a cu ajutorul unei chei efemere e (mod
q), este definit˘a ca fiind perechea (s
1
, s
2
) = (x
eG
mod q , (m+ss
1
)e
−1
mod q), unde
prin x
eG
ˆınt ¸elegem coordonata x a punctului eG ∈ E(F
p
).
Semn˘atura (s
1
, s
2
) a mesajului m este verificat˘a dac˘a are loc urm˘atoarea egalitate
(ˆın care v
1
= ds
−1
2
mod q ¸si v
2
= s
1
s
−1
2
mod q ) : x
v
1
G+v
2
V
mod q = s
1
.
Revenim acum la problema noastr˘a. Datele care ne sunt puse la dispozit ¸ie se afl˘a
ˆın trei fi¸siere: signatures.txt,parameters.der ¸si public.oct.
Primul fi¸sier cont ¸ine valorile hash-urilor ¸si semn˘aturile pentru cele dou˘a mesaje
(ˆın format hexa):
287
m
1
=DE37B3145DB7359A0ACC13F0A4AFBD67EB496903
s
11
=ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2
s
12
=BE4FA99C9D261C5F387A3ACE025702F6FB7884DD07CE18CAD48654B8
m
2
=28469B02BF0D2CFC86FF43CB612EE8FC05A5DBAA
s
21
=ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2
s
22
=D3540E2B13E51605F5FEB8C87EE8E176E59213F31EA8B8FFDAD077E2
Pentru a putea vedea informat ¸iie din cel de-al doilea fi¸sier,parameters.der, vom
folosi OpenSSL astfel:
openssl ecparam -inform DER -in /cygdrive/e/parameters.der
-outform PEM -out /cygdrive/e/parameters.pem
openssl ecparam -text -in /cygdrive/e/parameters.pem -noout
Field Type: prime-field
Prime:
00:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:
ff:ff:ff:ff:ff:ff:ff:ff:ff:fe:ff:ff:e5:6d
A: 0
B: 5 (0x5)
Generator (uncompressed):
04:a1:45:5b:33:4d:f0:99:df:30:fc:28:a1:69:a4:
67:e9:e4:70:75:a9:0f:7e:65:0e:b6:b7:a4:5c:7e:
08:9f:ed:7f:ba:34:42:82:ca:fb:d6:f7:e3:19:f7:
c0:b0:bd:59:e2:ca:4b:db:55:6d:61:a5
Order:
01:00:00:00:00:00:00:00:00:00:00:00:00:00:01:
dc:e8:d2:ec:61:84:ca:f0:a9:71:76:9f:b1:f7
Cofactor: 1 (0x1)
Prin urmare, parameters.der cont ¸ine de fapt parametrii publici:
• num˘arul prim p:
p=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D.
• curba eliptic˘a E : y
2
= x
3
+ 5 considerat˘a peste F
p
.
• coordonatele punctului G ( 04 semnific˘a faptul c˘a asupra coordonatelor punc-
tului G nu s-a aplicat o compresie, prin urmare jum˘atate din octet ¸ii care urmeaz˘a
vor constitui coordonata x a punctului G, iar cealalt˘a jum˘atate coordonata y a
punctului G):
x
G
=85CEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643
y
G
=58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22
• num˘arul prim q, acesta fiind ordinul punctului G:
q=010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7.
• cofactorul, care ˆın acest caz este 1, ceea ce ˆınseamn˘a c˘a punctul G este generator
pentru grupul punctelor curbei eliptice considerate.
288 APLICAT¸ II PRACTICE
Pentru ultimul fi¸sier, public.oct, folosimUltraEdit ¸si g˘asim reprezentarea hexa
a informat ¸iei cont ¸inute ˆın interiorul s˘au:
04:85:CE:EE:9C:98:EF:DF:DF:CF:64:CB:52:2A:77:3F:14:35:D5:
68:17:36:77:D1:D2:8F:C0:06:43:58:A1:05:CC:1A:B1:A5:3D:77:
B2:78:85:07:76:E1:44:19:7F:3F:A4:E2:7A:A6:76:40:8D:FE:22
Aceasta este cheia public˘a, mai precis punctul V de coordonate:
x
V
=85CEEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643
y
V
=58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22
Avem acum toate datele necesare pentru a afla cheia privat˘a s.
Observat ¸ia important˘a pe care se bazeaz˘a ˆıns˘a ˆıntreaga rezolvare este aceea c˘a
valorile s
11
¸si s
21
sunt egale.
ˆ
In acest caz, dac˘a not˘am cu e
1
, respectiv e
2
cheile
efemere folosite pentru semnarea mesajelor m
1
, respectiv m
2
, rezult˘a fie c˘a e
1
=
e
2
= e, fie c˘a e
1
+e
2
= q.
Vom ar˘ata cum putem afla cheia privat˘a s dac˘a presupunem c˘a este vorba de
primul caz, anume c˘a pentru semnarea celor dou˘a mesaje diferite m
1
¸si m
2
s-a folosit
aceea¸si cheie efemer˘a e. Notˆand cu r valoare comun˘a s
11
= s
21
, avem urm˘atoarele
dou˘a relat ¸ii:
s
21
= (m
1
+sr)e
−1
mod q = r
1
¸si s
22
= (m
2
+sr)e
−1
mod q = r
2
de unde putem afla cheia privat˘a s astfel:
r
1
r
2
−1
= (m
1
+sr)(m
2
+sr)
−1
mod q ⇒s = (m
2
r
1
−m
1
r
2
)[r(r
2
−r
1
)]
−1
mod q
ˆ
In continuare vom lucra ˆın PARI/GP, prin urmare transform˘am mai ˆıntˆai toate
valorile de care avem nevoie din baza 16 ˆın baza 10. O metod˘a de a face acest lucru
poate fi urm˘atoarea:
gp> n=length(w);
gp> for(i=1,n,if(w[i]==A,w[i]=10,if(w[i]==B,w[i]=11,if(w[i]==C,w[i]=12,
if(w[i]==D,w[i]=13,if(w[i]==E,w[i]=14,if(w[i]==F,w[i]=15)))))));
gp> W=sum(i=1,n,16^ (i-1)*w[n+1-i]);
Afl˘am acum, ˆın ipoteza c˘a s-a folosit aceea¸si cheie efemer˘a e, cheia privat˘a s:
gp> q=26959946667150639794667015087019640346510327083120074548994958668279;
gp> m1=1268638092138210163260758055822429538066610350339;
gp> m2=229934186335685840756719395324394646288453721002;
gp> r=18187250800097972010521080073937585100154901858571130778437166133474;
gp> r1=20042106687643588872389242180506526832832251371631259823173622191288;
gp> r2=22255471905305126694378074733040389009439136736542793238977855911906;
gp> s=(((m2*r1-m1*r2)%q))*(bezout((r*(r2-r1))%q,q)[1])%q
15010575815029851772642085218329323233091815558722670713086641180071
Verific˘am c˘a aceasta este corect˘a, adic˘a vrem s˘a vedem dac˘a ˆıntr-adev˘ar are loc
egalitatea V = sG. Pentru aceasta init ¸ialliz˘am curba eliptic˘a E peste care vrem s˘a
lucr˘am, iar apoi calcul˘am punctul sG:
289
gp> p=2695994666715063979466701508701963067363714442254057248109931527511;
gp> E=ellinit([0,0,0,0,5]*Mod(1,p));
gp> xG=16983810465656793445178183341822322175883642221536626637512293983324;
gp> yG=13272896753306862154536785447615077600479862871316829862783613755813;
gp> G=[xG,yG];
gp> ellpow(E,G,s);
Obt ¸inem c˘a:
x
sG
= 14091661710852556870833728605751404033863675975464814254659297347139
y
eG
= 9333722541138719487032926806284603775374491724501611657294489976354
Aceste valori sunt egale cu x
V
, respectiv y
V
, prin urmare, cheia privat˘a s pe care
am g˘asit-o este bun˘a.
Deoarece problema cerea cheia privat˘a s ˆın format hexa, facem ˆın final ¸si trans-
formarea num˘arului s din baza 10 ˆın baza 16:
gp> v=vector(60);
gp> v[1]=divrem(s,16)[1];
gp> for(i=2,60,v[i]=divrem(v[i-1],16)[1]);
gp> w=vector(60);
gp> w[1]=divrem(s,16)[2];
gp> for(i=2,60,w[i]=divrem(v[i-1],16)[2]);
gp> S=vector(60,i,w[61-i]);
gp> for(i=1,60,if(S[i]==10,S[i]=A,if(S[i]==11,S[i]=B,if(S[i]==12,S[i]=C,
if(S[i]==13,S[i]=D,if(S[i]==14,S[i]=E,if(S[i]==15,S[i]=F)))))));
Obt ¸inem c˘a S=8E88B0433C87D1269173487795C81553AD819A1123AE54854B3C0DA7.
290 APLICAT¸ II PRACTICE
Capitolul 39
PROBLEME DE SINTEZ
˘
A
39.1. Enunt ¸uri
1. Completat ¸i: Scopul cifr˘arii este de a asigura . . . . . . unei comunicat ¸ii.
(a) autenticitatea
(b) confidentialitatea
(c) integritatea
(d) nerepudierea
2. Urm˘atorul text a fost obt ¸inut utilizˆand sistemul de cifrare Cezar (au fost elim-
inate accentele, spat ¸iile si semnele de punctuat ¸ie): MHPEUDVVHPRQULY-
DOPDLVFHVWSRXUOHWRXIIHU. Care este decriptarea sa?
(a) Chacun semble des yeux approuver mon courroux.
(b) Ma bouche mille fois lui jura le contraire.
(c) J‘embrasse mon rival mais c‘est pour l‘etouffer.
(d) De grˆace, apprenez-moi, Seigneur, mes attentats.
3. Cifrat ¸i textul ”Attaque `a l‘aube ” cu ajutorul algoritmului de substitut ¸ie pre-
cizat mai jos.
A B C D E F G H I J K L M
J G F K P R M T S V Z D Q
N O P Q R S T U V W X Y Z
I Y B C W A O X E H N U L
291
292 PROBLEME DE SINTEZ
˘
A
Care este textul cifrat obt ¸inut?
(a) JOOJCXPJDJXGP
(b) SHHSMYVSWSYPV
(c) JOOJCXPJBJXGP
(d) SHHSMYVSZSYPV
4. Cifrul Vigen`ere reprezint˘a o modalitate de cifrare ˆımbun˘at˘at ¸it˘a a sistemelor
de cifrare cu substitut ¸ie simpl˘a.
ˆ
In ce const˘a acesta?
(a) ˆın aplicarea succesiv˘a a mai multor substitut ¸ii alfabetice pe acela¸si text.
(b) ˆın aplicarea de substitut ¸ii alfabetice care nu cifreaz˘a niciodat˘a o liter˘a ˆın
ea ˆıns˘a¸si.
(c) ˆın cifrarea literelor care apar cel mai frecvent (cum ar fi e) ˆın mai multe
simboluri diferite.
(d) ˆın alegerea mai multor alfabete de sustitut ¸ie independente ¸si schimbarea
alfabetului folosit, la fiecare liter˘a, ˆın mod ciclic.
5. Reprezentarea ˆın baza 2 a num˘arului 1729 este:
(a) 10010110100
(b) 11011000001
(c) 11001100011
(d) 6C1
6. Propunem urm˘atorul algoritm de cifrare: Alice ¸si Bob doresc s˘a schimbe un
mesaj m care reprezint˘a un num˘ar ˆıntreg ˆıntre 0 ¸si N −1. Pentru aceasta, ei
partajeaz˘a o cheie secret˘a comun˘a k extras˘a aleator ˆıntre 0 ¸si N −1. Mesajul
cifrat se obt ¸ine ca c = m + k mod N. Ce p˘arere avet ¸i despre securitatea
sistemului?
(a) Proast˘a: sistemul reprezint˘a o variant˘a a sistemului lui Cezar.
(b) Bun˘a, dac˘a adversarul nu cunoa¸ste algoritmul de cifrare.
(c) Foarte bun˘a, cu condit ¸ia s˘a nu utilizeze cheia k decˆat o singur˘a dat˘a.
(d) Excelent˘a: sistemul reprezint˘a o variant˘a a algoritmului RSA.
7. Alice ˆıi trimite lui Bob un mesaj cifrat c obt ¸inut cu ajutorul algoritmului
precedent. Cum determin˘a Bob mesajul original m?
(a) m = c +k mod N
ENUNT¸ URI 293
(b) m = c −k mod N
(c) m = c ×k mod N
(d) m = c
k
mod N
8. Care dintre acronimele urm˘atoare desemneaz˘a un algoritm de cifrare de tip
bloc?
(a) AES
(b) HMAC
(c) SHA-1
(d) NIST
9. Inversul lui 17 modulo 100:
(a) este 83.
(b) este 53.
(c) este 1/17.
(d) nu exist˘a.
10. Am ˆın posesia mea un mesaj m pe care nu vreau ˆınc˘a s˘a ˆıl divulg, dar doresc
s˘a pot dovedi peste cˆat ¸iva ani c˘a ˆıl cuno¸steam deja ˆın 2010 (conform amprentei
de timp). Pentru aceasta, este suficient s˘a public ast˘azi:
(a) un text cifrat corespunz˘ator lui m cu o cheie cunoscut˘a numai de mine.
(b) un text cifrat corespunz˘ator lui m cu o cheie cunoscut˘a de toat˘a lumea.
(c) imaginea lui m printr-o funct ¸ie de dispersie (funct ¸ie hash).
(d) imaginea lui m printr-un MAC folosind o cheie aleatoare.
11. Funct ¸ia de dispersie (hash) SHA-512 ˆıntoarce valori ˆıntre 0 ¸si 2
512
− 1. Se
calculeaz˘a imagini prin aceast˘a funct ¸ie ˆın mod aleator. Care este ordinul de
m˘arime al numerelor pentru care trebuie calculate valorile prin aceasta funct ¸ie
pentru a g˘asi 2 valori care s˘a aib˘a primii 20 de bit ¸i egali?
(a) 20
(b) 1000
(c) 1000000
(d) 2
512
294 PROBLEME DE SINTEZ
˘
A
12. Construim un generator de numere pseudo-aleatoare care init ¸ializeaz˘a cu x
0
cu o valoare ˆıntre 0 ¸si 999 ¸si determin˘a x
n+1
= 500x
n
+ 789 mod 1000.
ˆ
In ce
condit ¸ii at ¸i utiliza acest generator?
(a) Pentru a produce numere aleatoare ˆıntre 0 ¸si 999, dac˘a nu prezint˘a interes
nivelul de securitate.
(b) Pentru generarea unei chei de tip one-time pad.
(c) Pentru construct ¸ia unei funct ¸ii de dispersie.
(d) Niciodat˘a.
13. Cum este obt ¸inut˘a cheia secret˘a necesar˘a pentru criptarea comunicat ¸iei, la
conectarea la un site web securizat?
(a) Se obt ¸ine din parola introdus˘a pentru conectare, printr-un algoritm de
derivare a cheii precum PBKDF (Password Based Key Derivation Func-
tion).
(b) Provine din cheia public˘a a serverului, cont ¸inut˘a ˆıntr-un certificat.
(c) Provine din cheia privat˘a a serverului, divulgat˘a clientului dup˘a stabilirea
conexiunii.
(d) Se obt ¸ine ˆın urma unui schimb de chei ˆıntre client ¸si server, precum schim-
bul de chei Diffie-Hellman.
14. Care este dificultatea de a factoriza un num˘ar prim pe 1024 de bit ¸i ast˘azi?
(a) Este simplu!
(b) Num˘arul poate fi factorizat cu ajutorul a cˆateva mii de calculatoare ac-
tuale care s˘a ruleze ˆıntre 1 ¸si 2 ani.
(c) Nimeni nu poate face asta momentan, dar poate se va reu¸si de c˘atre
agent ¸ii precum NSA.
(d) Acest lucru nu va fi posibil timp de mai multe milenii.
15. Algoritmul RSA (f˘ar˘a padding) este un algoritm de cifrare:
(a) simetric, tip bloc.
(b) simetric, tip fluid (debit).
(c) part ¸ial homomorfic.
(d) bazat pe identitate.
ENUNT¸ URI 295
16. Fie generatorul Geffe descris de trei registre de deplasare LFSR
i
(ale c˘aror
polinoame de feedback sunt primitive de grad 19, 21 ¸si respectiv 24) iar ie¸sirea
de formula: y(t) = a
1
(t) · a
3
(t)⊕ a
1
(t) · a
2
(t). Care este complexitatea LC ¸si
perioada P a acestui generator?
Figura 39.1: Generatorul Geffe.
(a) LC= 640, P= 2
64
.
(b) LC=64 , P=(2
19
−1)(2
21
−1)(2
24
−1).
(c) LC=876 , P=(2
19
−1)(2
21
−1)(2
24
−1).
(d) Niciunul dintre r˘aspunsuri nu este corect.
17. Fie secvent ¸a dat˘a de reprezentarea binar˘a (scris˘a pe 8 bit ¸i) a num˘arului i,
i = 0, ..., 255 :
00000000
. ¸¸ .
00000001
. ¸¸ .
00000010
. ¸¸ .
00000011
. ¸¸ .
00000100
. ¸¸ .
... 11111111
. ¸¸ .
Care este statistica testului frecvent ¸ei aplicat˘a acestei secvent ¸e binare? Este
secvent ¸a aleatoare, relativ la testul frecvent ¸ei, la riscul de ordinul 1 de 5%?
(a) f
tf
= 256, ¸sirul nu este aleatoriu.
(b) f
tf
= 1, ¸sirul este aleatoriu.
(c) f
tf
= 0, ¸sirul este aleatoriu.
(d) niciunul dintre r˘aspunsuri nu este corect.
18. Care dintre urm˘atoarele afirmat ¸ii sunt adev˘arate:
(a) Atac reu¸sit asupra a dou˘a preimagini ale unei funct ¸ii hash implic˘a reu¸sita
atacului de generare de coliziuni.
296 PROBLEME DE SINTEZ
˘
A
(b) Atac reu¸sit de generare de coliziuni asupra unei funct ¸ii hash implic˘a
reu¸sita atacului asupra a dou˘a preimagini a aceleia¸si funct ¸ii hash.
19. Care dintre urm˘atoarele afirmat ¸ii sunt adev˘arate:
(a) Un registru de deplasare de lungime n are perioada de 2
n
−1.
(b) Un registru de deplasare de lungime n are perioada maxim˘a de 2
n
−1.
(c) Un registru de deplasare de lungime n, cu polinomul caracteristic primi-
tiv, are perioada de 2
n
−1.
20. Probabilitatea de coliziune a dou˘a mesaje de lungime n bit ¸i procesate de
aceea¸si funct ¸ie hash ideal˘a, ce are ie¸sirea pe m bit ¸i, este:
(a) 2
−m
.
(b) 2
−n
.
(c) 2
−mn
.
(d) 2
m−n
.
(e) 2
n−m
.
(f) Niciuna din valorile de mai sus.
21. Fie extensia Galois GF(3
2
) generat˘a de r˘ad˘acina polinomului X
2
−X −1.
ˆ
In
aceast˘a extensie valoarea log
2α+1
(1 +α) este:
(a) 8.
(b) 4.
(c) 2.
(d) 5.
(e) 6.
(f) Niciuna din valorile de mai sus.
22. Simbolul lui Jacobi
_
6278
9975
_
este:
(a) −1.
(b) 0.
(c) 1.
(d) Niciuna din valorile de mai sus.
ENUNT¸ URI 297
23.
ˆ
In cadrul unui act ¸iuni judiciare urmeaz˘a a fi desemnat unul dintre cei doi
judec˘atorii de serviciu. Deoarece niciunul dintre cei doi nu dore¸ste s˘a fac˘a acest
lucru ˆın mod benevol, se propune modalitatea de decizie bazat˘a pe rezultatul
obt ¸inut din aruncarea unei monede. Astfel, judec˘atorul A alege ”stema” sau
”banul” iar judec˘atorul B arunc˘a moneda, decizia fiind luat˘a ˆın urma rezul-
tatului obt ¸inut. Avˆand ˆın vedere faptul c˘a A ¸si B ˆın locat ¸ii fizice diferite se
propune, de c˘atre criptograf, urm˘atorul protocol.
PASUL 1. Participantul A alege x = 0 (”stema”) sau x = 1 (”banul”)
¸si o cheie aleatoare k. Se cifreaz˘a cu ajutorul algoritmului DES valoarea x:
y = DES(x; k).
PASUL 2. A transmite y c˘atre B.
PASUL 3. B arunc˘a o moned˘a ¸si comunic˘a lui A rezultatul obt ¸inut.
PASUL 4. A comunic˘a lui B cheia k.
PASUL 5. B descifreaz˘a y, cu ajutorul algoritmului DES ¸si ob¸tine ceea ce a
ales A.
Criptograful afirm˘a faptul c˘a ”participantul A nu ˆı¸si poate schimba opt ¸iunea”
datorit˘a valorii transmise y. Ar˘atat ¸i urm˘atoarele:
a) Utilizˆand ”birthday attack” utilizatorul A poate tri¸sa;
b) Care este complexitatea atacului de la punctul a)?
c) Care este cerint ¸a primitivei criptografice ce asigur˘a valabilitatea afirmat ¸iei
”participantul A nu ˆı¸si poate schimb˘a opt ¸iunea”;
d) Corectat ¸i protocolul astfel ˆıncˆat s˘a nu mai fie posibil atacul de la punctul
a).
24. Fie p un num˘ar prim ¸si G mult ¸imea tuturor elementelor x ∈ Z
p
2 care satisfac
relat ¸ia x ≡ 1 mod p. Ar˘atat ¸i faptul c˘a:
a) G este grup multiplicativ;
b) |G| = p;
c) L : G → Z
p
definit de L(x) = (x − 1)p
−1
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 p
2
≡ x pentru orice x.
25. S˘a consider˘am algoritmul de semnare DSS cu parametrii p, q, g, o funct ¸ie hash
H ¸si o cheie secret˘a x.
ˆ
In cadrul implement˘arii se precalculeaz˘a perechea
(k, r) ce satisface relat ¸ia r = (g
k
mod p) mod q, aceasta fiind utilizat˘a pentru
generarea semn˘aturilor. Recuperat ¸i cheia privat˘a de semnare.
298 PROBLEME DE SINTEZ
˘
A
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 bit ¸i, partajat˘a ˆıntre entit˘at ¸ile ce comunic˘a ¸si
este utilizat˘a pentru protect ¸ia fiec˘arui ”frame”
1
transmis.
ˆ
In cadrul acestui
exercit ¸iu vom presupune faptul c˘a cheia K este fix˘a ¸si nu ˆı¸si schimb˘a valoarea.
Pentru ca utilizatorul A s˘a transmit˘a un ”frame” la B va proceda dup˘a cum
urmeaz˘a:
PASUL 1. Codificarea CRC: Dˆandu-se un mesaj de n-bit ¸i M (n este con-
stant), A calculeaz˘a o sum˘a de control de 32 de bit ¸i L(M), unde L este o
funct ¸ie liniar˘a
2
ce nu depinde de K. Textul clar, de lungime (n + 32) bit ¸i,
este P = M||L(M).
PASUL 2. A cifreaz˘a P cu algoritmului RC4, cheia K ¸si vectorul IV de 24 de
bit ¸i specific fiec˘arui ”frame” transmis. Textul cifrat va fi C = P ⊕RC4(IV, K).
PASUL 3. A transmite pe canalul radio (IV, C) c˘atre B.
ˆ
Intreb˘ari:
a) Anumit ¸i produc˘atori specific˘a faptul c˘a protocolul WEP are o securitate de
40+24=64 bit ¸i de cheie. Ce p˘arere avet ¸i de acest fapt. Justificat ¸i r˘aspunsul.
b) Care este modalitatea prin care B extrage mesajul original M?
c)
ˆ
In cadrul unor implement˘ari, vectorul IV de 24 de bit ¸i, este ales aletoriu
la fiecare ”frame” transmis. Ar˘atat ¸i c˘a acest lucru conduce la probleme de
securitate atunci cˆand traficul de date este mare. Propunet ¸i o modalitate de
remediere a problemei ap˘arute.
d) S˘a examin˘am o alt˘a problem˘a de securitate a protocolului WEP. Vom
presupune faptul c˘a atacatorul intercepteaz˘a datele (IV, C) transmise de A.
Ar˘atat ¸i faptul c˘a adversarul, chiar dac˘a nu cunoa¸ste cheia K, poate calcula
u¸sor un text cifrat C

(C

= C) ¸si retransmite (IV, C

) f˘ar˘a ca B s˘a poat˘a de-
tecta acest lucru. Cˆate posibilit˘at ¸i de alegere avem pentru C

? Ce proprietate
a securit˘at ¸ii este violat˘a?
27. Descifrat ¸i, cu ajutorul algoritmului RSA-CRT, indicˆand semnificat ¸iile elementelor
algoritmului, mesajul:
C = 9686 9613 7546 2206 1477 1409 2225 4355 8829 0575 9991 1245 7431 9874
6951 2093 0816 2982 2514 5708 3569 3147 6622 8839 8962 8013 3919 9055 1829
9451 5781 5154.
Textul clar este ˆın limba englez˘a.
1
pachet de date.
2
L(X ⊕Y ) = L(X) ⊕L(Y ).
ENUNT¸ URI 299
Parametrii algoritmului sunt urm˘atorii:
a) exponentul de cifrare este e = 9007,
b) p = 3490 5295 1084 7650 9491 4784 9619 9038 9813 3417 7646 3849 3387
8439 9082 0577,
c) q = 0003 2769 1329 9326 6709 5499 6198 8190 8344 6141 3177 6429 6799
2942 5397 9828 8533.
28. Fie numerele prime q = 7541 ¸si p = 2q + 1. Fie α = 604 ¸si β = 3791.
a) Ar˘atat ¸i c˘a ord(α) = ord(β) = q ˆın Z
q
. Mai mult, ar˘atat ¸i c˘a α ¸si β genereaz˘a
acela¸si subgrup Gˆın Z

p
.
b) Definim funct ¸ia hash h : Z
q
× Z
q
→ G prin h(x
1
, x
2
) = x
α
1
x
β
2
. Calculat ¸i
h(7431, 5564) ¸si h(1459, 954).
c) La punctul precedent at ¸i obt ¸inut o coliziune pentru h. Folosit ¸i-o pentru a
calcula logaritmul discret dlog
α
β.
d) Folosind logaritmul discret calculat, determinat ¸i ¸si alte coliziuni pentru h.
300 PROBLEME DE SINTEZ
˘
A
39.2. R˘aspunsuri
1. R˘aspuns: (b). Pentru autenticitate, se folosesc MAC sau semn˘aturile electron-
ice. Pentru integritate, ˆın funct ¸ie de nivelul de exigent ¸˘a, se pot utiliza sume
de control, funct ¸ii hash, MAC, etc.
2. R˘aspuns: (c). V˘a putet ¸i ajuta de pozit ¸ia literelor dublate.
ˆ
Intrebare supli-
mentar˘a: de unde provin aceste versuri?
3. R˘aspuns: (a). Literele de pe a doua linie sunt imaginile celor din prima linie,
¸si nu invers.
4. R˘aspuns: (d). Metoda (a) este doar o substitut ¸ie normal˘a (compunerea a
2 permut˘ari este tot o permutare). Metoda (b) este mai slab˘a decˆat prima
ˆıntrucˆat expune mai multe informat ¸ii despre textul clar. Metoda (c) se nume¸ste
substitut ¸ie polialfabetic˘a.
5. R˘aspuns: (b). Este de ajuns s˘a se calculeze restul ˆımp˘art ¸irii lui 1729 la 4
pentru a elimina (a) ¸si (c). (d) este 1729 ˆın hexazecimal (i.e. ˆın baza 16).
6. R˘aspuns: (c). Algoritmul este o variant˘ a a one-time pad. Ofer˘a securitate
perfect˘a dac˘a nu se utilizeaz˘a cheia de criptare decˆat o singur˘a dat˘a. Poate fi
de asemenea considerat o variant˘a a cifrului lui Cezar, dar aplicat unei singure
litere ¸si cu un decalaj ales aleator. Utilizat ˆın acest fel, cifrul lui Cezar ar fi
sigur. Sistemul nu are nicio leg˘atur˘a cu RSA. R˘aspunsul (b) nu ar satisface
principiul lui Kerckhoff: un sistem de criptare trebuie s˘a r˘amˆan˘a sigur cˆand
adversarul cunoa¸ste tot despre acesta, mai put ¸in cheia utilizat˘a.
7. R˘aspuns: (b). Operat ¸ia invers˘a adun˘arii cu k mod N este sc˘aderea cu k mod
N.
8. R˘aspuns: (a). HMAC este MAC, SHA-1 este o funct ¸ie de dispersie ¸si NIST
este o agent ¸ie american˘a de standardizare.
9. R˘aspuns: (b). 53 ×17 = 1 mod 100
10. R˘aspuns: (c). La momentul divulg˘arii mesajului, toat˘a lumea va putea ver-
ifica faptul c˘a hash-ul este corect ¸si c˘a se cuno¸stea mesajul m la momentul
calculul˘arii acestui hash. Metoda nu permite dezv˘aluirea mesajului m.
O cifrare a lui m cu o cheie cunoscut˘a doar de cel care face criptarea nu garan-
teaz˘a nimic: se poate de asemenea publica un cuvˆant aleator pentru ca ulterior
s˘a se aleag˘a cheia care s˘a corespund˘a unei cript˘ari corecte. Aceea¸si problem˘a
apare ˆın cazul MAC.
R
˘
ASPUNSURI 301
O cheie cunoscut˘a de toat˘a lumea ar conduce la determinare textului clar m,
ceea ce ar fi echivalent cu divulgarea mesajului m.
11. R˘aspuns: (b). Conform paradoxului na¸sterilor, pentru obt ¸inerea unei coliziuni
pe primii 20 de bit ¸i ai funct ¸iei de dispersie, este necesar s˘a se calculeze valoare
funct ¸iei hash pentru

2
20
, adic˘a aproximativ 1000 numere.
12. R˘aspuns: (d). Valoarea lui x
n
este constant˘a, egal˘a cu 289, ˆıncepˆand cu al
treilea termen. Deci nu este vorba despre aparit ¸ii aleatoare.
13. R˘aspuns: (d). Cheia de sesiune este determinat˘a printr-un schimb de chei.
14. R˘aspuns: (a). Factorizarea unui num˘ar prim este imediat˘a.
15. R˘aspuns: (c). Proprietatea de homomorfism este aceea c˘a cifrarea RSA a
produsului a 2 mesaje (modulo N) este produsul cifr˘arilor corespunz˘atoare
celor 2 numere.
Restul variantelor sunt eronate, fiindc˘a RSA este un cifru cu cheie public˘a,
deci asimetric.
16. R˘aspuns: (c). Se aplic˘a propriet˘at ¸ile generatorului Geffe.
17. R˘aspuns: (c).
ˆ
In aceast˘a situat ¸ie secvent ¸a supus˘a test˘arii este ideal˘a, num˘arul
de bit ¸i de 0 este egal cu num˘arul de bit ¸i de 1 ¸si anume 1024.
18. R˘aspuns: (a).
19. R˘aspuns: (b), (c). Un registru de deplasare de lungime n are 2
n
− 1 st˘ari
posibile (starea nul˘a este exclus˘a).
ˆ
In situat ¸ia ˆın care polinomul caracteristic
este primitiv atunci el genereaz˘a toate st˘arile posibile.
20. R˘aspuns: (a). Num˘arul de ie¸siri posibile, ale unei funct ¸ii hash ideale cu ie¸sirea
pe m bit ¸i, este 2
m
.
21. R˘aspuns: (e).
22. R˘aspuns: (a).
23. R˘aspuns: a) A va determina dou˘a chei k ¸si k

astfel ˆıncˆat:
DES(”banul”; k) = DES(”stema”, k

).
Pentru acest lucru procedeaz˘a dup˘a cum urmeaz˘a:
i) A va construi dou˘a liste (DES(”banul”; k), k) ¸si (DES(”stema”; k

), k

),
pentru toate cheile k respectiv k

. Listele sunt sortate ˆın raport cu primul
cˆamp al fiec˘arei intr˘ari (i.e. DES(”banul”; k) respectiv DES(”stema”; k

)).
302 PROBLEME DE SINTEZ
˘
A
ii) A va c˘auta coliziuni ˆın cadrul acestor liste ¸si va obt ¸ine k, k

astfel ˆıncˆat:
DES(”banul”; k) = DES(”stema”; k

).
iii) Dup˘a ce se arunc˘a moneda A comunic˘a lui B cheia k sau k

dup˘a caz.
b) Complexitatea atacului anterior este reprezentat˘a de c˘autarea coliziunilor ˆın
cadrul celor dou˘a liste, pe 64 de bit ¸i, DES(”banul”; k) ¸si DES(”stema”; k

).
Conform ”birthday attack” este nevoie numai de 2
32
evalu˘ari ale algoritmului
DES pentru a determina o coliziune.
c) Cerint ¸a primitivei criptografice este ca funct ¸iile:
k →DES(”banul”; k) ¸si k →DES(”stema”; k)
s˘a fie rezistente la coliziuni.
d) Se poate utiliza un algoritm de cifrare bloc pe 128 de bit ¸i, spre exemplu
AES (ˆın acest caz ”birthday attack” are nevoie de 2
64
evaluari ale AES). Ca
o alternativ˘a se poate utiliza o funct ¸ie hash h rezistent˘a la coliziuni. Partic-
ipantul A alege x ∈ {”stema”, ”banul”}, o valoare aleatoare r ¸si calculeaz˘a
y = h(x||r). Dup˘a ce B face alegerea, A poate dezv˘alui x ¸si r.
24. R˘aspuns: a) Vom ar˘ata faptul c˘a G = {x ∈ Z
p
2|x ≡ 1 mod p} ˆın raport cu
multiplicarea modul p
2
este grup. Pentru aceasta se vor verifica urm˘atoarele:
operat ¸ia este parte stabil˘a, asociativitatea, elementul neutru ¸si elementul simetriz-
abil.
b) Orice element a din Z
p
2
se poate scrie ˆın mod unic a = a
1
+ a
2
p, unde a
1
¸si a
2
sunt numere ˆıntregi ce satisfac relat ¸ia 0 ≤ a
1
, a
2
≤ p −1. Orice element
a din Z
p
2
este ˆın G dac˘a ¸si numai dac˘a elementul corespunz˘ator a
1
este egal
cu 1, de aici rezult˘a faptul c˘a |G| = p.
c) Fie a = 1 + kp, 0 ≤ k < p ¸si b = 1 + lp, 0 ≤ l < p elemente din G. Se
verific˘a faptul c˘a L este homomorfism: L(a · b) = k +l mod p ¸si L(a) +L(b) =
k + l mod p, deci L(a · b) = L(a) + L(b). Direct se verific˘a injectivitatea ¸si
sujectivitatea lui L, deci L este izomorfism de grupuri.
d) Avem de ar˘atat faptul c˘a orice element a ∈ G poate fi scris ca o putere a
lui p + 1. Din binomul lui Newton rezult˘a:
(p + 1)
2
mod p
2
=
n

i=0
_
n
i
_
p
i
mod p
2
= 1 +np.
Deci, p + 1 genereaz˘a G. Pentru orice y ∈ G avem: y = log
p+1
(x) dac˘a ¸si
numai dac˘a x = (p + 1)
y
mod p
2
.
Deoarece (p + 1)
y
mod p
2
= 1 +py, obt ¸inem:
R
˘
ASPUNSURI 303
y =
x −1
p
mod p = L(x).
Acest˘a funct ¸ie logaritm st˘a la baza algoritmului criptografic Okamoto-Uchiyama.
25. R˘aspuns: S˘a consider˘am semn˘aturile pentru mesajele m ¸si m

. Semn˘aturile
sunt (r, s) ¸si (r, s

). Avem:
s =
H(m) +xr
k
mod q
s

=
H(m

) +xr
k
mod q.
Deducem
k =
H(m) −H(m

)
s −s

mod q.
Vom calcula apoi r = (g
k
mod p) mod q ¸si ˆın final vom recupera x prin formula:
x =
ks −H(m)
r
mod q.
26. R˘aspuns: a) Nu este corect s˘a se calculeze dimensiunea cheii prin sumarea
dimensiunii celor dou˘a intr˘ari ˆın algoritm deoarece numai una este secret˘a.
Deci dimensiunea cheii este de 40 de bit ¸i nu de 64 de bit ¸i.
b) Mai ˆıntˆai B reconstruie¸ste textul clar P

= C ⊕ RC4(IV, K). Ulterior P

este ˆımp˘art ¸it ˆın dou˘a p˘art ¸i P

= M

||Q

, unde M

este de n bit ¸i iar Q

de 32
de bit ¸i. B calculeaz˘a L(M

) ¸si compar˘a cu Q

. B accept˘a mesajul M

dac˘a
¸si numai dac˘a L(M

) = Q, altfel va respinge mesajul M

.
c) Conform ”birthday paradox” alegˆand IV aleatoriu la fiecare ”frame” rezult˘a
c˘a la fiecare 2
24
2
≈ 5000 ”frame”-uri exist˘a o coliziune pentru dou˘a IV din
cele 5000 transmise de la/c˘atre acela¸si utilizator.
ˆ
In aceast˘a situat ¸ie avem o
coliziune ˆın ¸sirurile cheie, ceea ce poate conduce la informat ¸ie despre textul
clar ([83]). O alternativ˘a este de a incrementa IV .
304 PROBLEME DE SINTEZ
˘
A
d) Fie M

= M ⊕∆ un nou mesaj, unde ∆ este un ¸sir de n bit ¸i. Vom calcula
diferent ¸a dintre noul text cifrat C

¸si C:
C

⊕C = (P

⊕RC4(IV, K)) ⊕(P ⊕RC4(IV, K))
= P

⊕P
= (M ⊕M

)||(L(M) ⊕L(M

))
= ∆⊕L(∆).
Deci, pentru orice ∆ nenul, adversarul cunoa¸ste faptul c˘a C

= C⊕(∆||L(∆))
care verific˘a CRC-ul.
ˆ
In concluzie acesta are (2
n
− 1) posibilit˘at ¸i de alegere
pentru ∆ (¸si C

). Proprietatea violat˘a este cea de integritate a mesajului. O
concluzie ce se desprinde din acest exercit ¸iu este aceea c˘a CRC-urile (cu sau
f˘ar˘a cheie) ne asigur˘a protect ¸ia contra erorilor de transmisie nu ¸si ˆımpotriva
unui adversar malit ¸ios.
27. Raspuns: Prin calcule directe vom obt ¸ine: d = e
−1
= 0001 0669 8614 3685
7802 4442 8687 7132 8920 1547 8070 9906 6339 3786 2801 2262 2449 6631
0631 2591 1774 4708 7334 0168 5974 6230 6553 9685 4451 3277 1090 5360
6095 mod(p −1)(q −1).
Apoi, prin calcul direct sau utilizˆand 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 spat ¸iu= 00, A = 01, B = 02, . . . , Z = 26 obt ¸inem textul
clar:
”THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE”.
Bibliografie
[1] Abramowitz M., Stegun I.A., Handbook of Mathematical Functions, Wash-
ington, D.C., U.S. Government Printing Office, 1964.
[2] Anand P., Foundations of Rational Choice Under Risk, Oxford: Oxford Uni-
versity Press, 1993.
[3] Akerlof G. A., Yellen J. L., Rational Models of Irrational Behavior, 1987.
[4] Aumann R. J., Hart S., Handbook of Game Theory with Economic Appli-
cations, 3 vols. Amsterdam: North-Holland, 2002.
[5] Aumann R. J., Maschler M. B., Repeated Games with Incomplete Infor-
mation, Cambridge, Mass.: MIT Press, 1995.
[6] Atanasiu A., Securitatea Informat ¸iei, vol. 1, Criptografie, ed. InfoData, Cluj,
2008.
[7] Atanasiu A., Securitatea Informat ¸iei, vol. 2, Protocoale de securitate, ed.
InfoData, Cluj, 2009.
[8] Baker K., Kropp D., Management Science: An Introduction to the Use of
Decision Models, 1985.
[9] Baase S., Van Gelder A., Computer Algorithms, Introduction to Design
and Analysis, Addison Wesley Longman, 2000.
[10] Bellman R. E., Teoria grafurilor, Editura Tehnic˘a, Bucure¸sti, 1976.
[11] Bellman R., Dynamic Programming, Princeton University Press, 1957.
[12] Berge C., Th´eorie des graphes et ses applications, Dunod, 1967.
[13] Berger J., Statistical decision theory and Bayesian Analysis, 2nd ed., New
York: Springer Verlag, 1985.
305
306 BIBLIOGRAFIE
[14] Bertsekas D. P., Dynamic Programming and Optimal Control, 2nd ed.,
Athena Scientific, 2000.
[15] Bertsekos A., Linear Network Optimization, Algorithms and Codes, MIT
Press, 1991.
[16] Biggs N., Lloyd E., Wilson R., Graph Theory, Oxford University Press,
1986.
[17] Bondy J.A., Murty U.S.R., Graph Theory, Springer, 2008.
[18] Baird D., Gertner R. H., Picker R. C. , Game Theory and the Law,
Cambridge, Mass.: Harvard University Press, 1994.
[19] Browson R., Operational Research, 2nd edition, Prentice Hall, 1997.
[20] Budnick F., Richard M., Vollmann T. E. , Principles of Operations
Research for Management, Homewood: Irwin, 1977.
[21] Chartrand G., Introductory Graph Theory, Dover, 1985.
[22] Clemen R., Making Hard Decisions: An Introduction to Decision Analysis,
2nd ed., Belmont CA: Duxbury Press, 1996.
[23] Cormen T., Leiserson C., Rivest R. Introduction to Algorithms MIT
Press, 1990.
[24] Dantzig, George B., Linear Programming and Extensions, Princeton:
Princeton U P, 1963.
[25] De Groot M., Optimal Statistical Decisions, Wiley Classics Library, 2004.
[26] Denardo E.V., Dynamic Programming: Models and Applications, Mineola,
NY: Dover Publications, 2003.
[27] Dimand M. A., Robert W. D., The History of Game Theory, Vol. 1: From
the Beginnings to 1945, London and New York: Routledge, 1996.
[28] Dreyfus S. E., Law A. M., The art and theory of dynamic programming,
Academic Press, 1977.
[29] Dugatkin L. A., Hudson K. R., Game Theory and Animal Behavior, New
York: Oxford University Press, 1998.
[30] Fryer K., Operational Reasearch, Operational Research Society.
BIBLIOGRAFIE 307
[31] Goodwin P., Wright G. Decision Analysis for Management Judgment, 3rd
ed., Chichester: Wiley 2004.
[32] Gibbons Alan, Algorithmic Graph Theory, Cambridge University Press,1985.
[33] Giegerich R., Meyer C., Steffen P., A Discipline of Dynamic Program-
ming over Sequence Data, Science of Computer Programming 51 (3), 2004.
[34] Golumbic M., Algorithmic Graph Theory and Perfect Graphs, Academic
Press, 1980.
[35] Harary F., Graph Theory, Reading, MA: Addison-Wesley,1969
[36] Harary F., Palmer E., Graphical Enumeration, New York, NY: Academic
Press,1973.
[37] Harsanyi J. C., Reinhard S., A General Theory of Equilibrium Selection
in Games, Cambridge, Mass.: MIT Press, 1988.
[38] Heims S. J., John Von Neumann and Norbert Wiener: From Mathematics
to the Technologies of Life and Death, Cambridge, Mass.: MIT Press, 1980.
[39] Heinze C. D., Management Science: Introductory Concepts and Applica-
tions, 1982.
[40] Hiller F., Introduction to Operational Research, Mc. Graw Hill, 1995.
[41] Kaufmann A., Metode ¸si modele ale cercet˘arii operat ¸ionale, Editura Tehnic˘a,
Bucure¸sti, 1967.
[42] Kaufmann A., Desbazeile G., La methode du chemin critique, Paris, 1969.
[43] Kirby M. W., Operational Research in War and Peace, Imperial College
Press, London, 2003.
[44] Mahadev N.V.R., Peled U. N., Threshold Graphs and Related Topics,
North-Holland, 1995.
[45] Mathur K., Solow D., Management Science: The Art of Decision Making,
1994.
[46] McKinsey, Introduction to the Theory of Games, McGraw-Hill Book Com-
pany, Inc., New York.
[47] Menezes A.J. , Handbook of Applied Cryptography, CRC Press, 1997.
308 BIBLIOGRAFIE
[48] Meyn S., Control Techniques for Complex Networks, Cambridge University
Press, 2007.
[49] Nasar S., A Beautiful Mind: A Biography of John Forbes Nash, Jr., Winner
of the Nobel Prize in Economics, 1994. New York: Simon and Schuster, 1998.
[50] Nash J. F. Jr., Essays on Game Theory, Cheltenham, U.K., and Brookfield,
Vt.: Edward Elgar, 1996.
[51] Naccache D., Mih˘ait ¸˘a A., Olimid R. F., Oprina A. G., Simion E.,
Criptografie ¸si Securitatea Informat ¸iei. Aplicat ¸ii, MATRIXROM, 2011.
[52] Owen G., Teoria Jocurilor, Editura Tehnic˘a, Bucure¸sti, 1976.
[53] Pidd M., Tools for Thinking: Modelling in Management Science, J. Wiley &
Sons Ltd., Chichester; 2nd. Edition, 2003.
[54] Peterson M., An Introduction to Decision Theory, Cambridge University
Press,2009.
[55] Popescu O. ¸si al. Matematici pentru economi¸sti, Editura Didactic˘a ¸si Ped-
agogic˘a, Bucure¸sti, 1992.
[56] Preda V., Teoria deciziilor statistice, Editura Academiei, Bucure¸sti, 1991.
[57] Raiffa H., Decision Analysis: Introductory Readings on Choices Under Un-
certainty, McGraw Hill, 1997.
[58] Rapoport A., Albert M. C., Prisoners Dilemma: A Study in Conflict and
Cooperation, Ann Arbor: University of Michigan Press, 1965.
[59] Riker W. H., Ordeshook P. C., An Introduction to Positive Political The-
ory, Englewood Cliffs, N.J.: Prentice Hall, 1973.
[60] Robert C., The Bayesian Choice, 2nd ed., New York: Springer, 2007.
[61] Roth A. E., R. E. Verrecchia, The Shapley Value as Applied to Cost
Allocation: a Reinterpretation, Journal of Accounting Research 17 (1979):
295303.
[62] Rubinstein A., Modeling Bounded Rationality, Cambridge, Mass.: MIT
Press, 1998.
[63] Rumelt R. P., Schendel D. E., Teece D. J., Fundamental Issues in
Strategy: A Research Agenda, Boston: Harvard Business School Press, 1994.
BIBLIOGRAFIE 309
[64] Samuelson L., Evolution and Game Theory, Journal of Economic Perspec-
tives 16, 2002.
[65] Schelling T., The Strategy of Conflict, Cambridge, Mass.: Harvard University
Press, 1960.
[66] Schotter A., The Economic Theory of Social Institutions, Cambridge, U.K.:
Cambridge University Press, 1981.
[67] Schneier B., Applied Cryptography, Adison-Wesley, 1998.
[68] Seiz J. A., Game Theory and Bargaining Models, In The Elgar Compan-
ion to Feminist Economics, edited by Janice Peterson and Margaret Lewis.
Cheltenham, U.K., and Northampton, Mass.: Edward Elgar, 1999.
[69] Shafer G., Pearl J., Readings in uncertain reasoning, San Mateo, CA: Mor-
gan Kaufmann,1990.
[70] Shapiro C., The Theory of Business Strategy, RAND Journal of Economics
20, 1989.
[71] Shapley L. S., A Value for n−Person Games, In Harold Kuhn and Albert
W. Tucker, eds., Contributions to the Theory of Games, Vol. 2, Annals of
Mathematics Studies, no. 28. Princeton, N.J.: Princeton University Press,
1953.
[72] Shapley L. S., Shubik M., A Method for Evaluating the Distribution of
Power in a Committee System, American Political Science Review 48, 1954.
[73] Shubik M., A Game-Theoretic Approach to Political Economy, Vol. 2 of
Game Theory in the Social Sciences. Cambridge, Mass.: MIT Press, 1984.
[74] Sierksma G., Linear and Integer Programming: Theory and Practice 2nd ed.
New York: Marcel Dekker, 2002.
[75] Simion E., Opri¸san Gh., Elemente de Cercet˘ari Operat ¸ionale ¸si Criptologie,
Politehnica Press, ISBN 973-8449-006, 2002.
[76] Simion E., Preda V., Popescu A., Criptanaliza. Rezultate ¸si Tehnici
Matematice, Universitatea din Bucure¸sti, ISBN 973575975-6, 2004.
[77] Simion E., Enciclopedie Matematic˘a, Edit ¸ie coordonat˘a de M. Iosifescu, O.
St˘an˘a¸sil˘a ¸si D. S¸tef˘anoiu, Editura AGIR, ISBN 978-973-720-288-8, pp. 905-
944, 2010.
310 BIBLIOGRAFIE
[78] Smith J.Q., Decision Analysis: A Bayesian Approach, Chapman and Hall,
1988.
[79] Sniedovich M., Dynamic Programming: Foundations and Principles, Taylor
& Francis, 2010.
[80] Stokey N., Lucas R. E., Prescott E. Recursive Methods in Economic
Dynamics, Harvard Univ. Press, 1989.
[81] Taha H., Operational Research, Prentice Hall, 1994.
[82] Tomescu I., Introducere ˆın combinatoric˘ a, Editura Tehnic˘a, Bucure¸sti, 1970.
[83] S. Vaudenay, A Classical Introduction to Cryptography: Applications for
Communications Security, Springer-Verlag, 2005.
[84] Wald A., Contributions to the Theory of Statistical Estimation and Testing
Hypotheses, Annals of Mathematical Statistics 10 (4), 1939.
[85] Winston W., Operations Research: Applications and Algorithms, Duxbury
Press; 4th. Edition, 2003.
[86] Zid˘aroiu C., Programare liniar˘a, Editura Tehnic˘a, Bucure¸sti, 1983.
[87] Zid˘aroiu C., Programare dinamic˘a, Editura Tehnic˘a, Bucure¸sti, 1980.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->