Emil Simion David Naccache
Mircea Andraşiu Gheorghe Simion
CERCETĂRI OPERAŢIONALE, PROBABILITĂŢI
ŞI
CRIPTOLOGIE
APLICA Ţ II Ţ II
EDITURA ACADEMIEI TEHNICE MILITARE Bucureşti, 2011
Referenţ Referenţi ştiinţ tiinţifici:
Ă N ĂŞ IL Ă Prof. univ. dr. Octavian ST Prof. univ. dr. Victor-Valeriu PATRICIU ANDRU Conf. univ. dr. Ovidiu Ş
Descrierea CIP a Bibliotecii Naţ Naţionale a României Cercetă Cercetări operaţ operaţionale, probabilităţ probabilităţii şi criptologie: aplicaţ 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 Coli tipar: 18,4
0208
100
Format: 32 / 70 100 Coli editur ă: 9,2 Tiparul: Academia Tehnică Militar ă Lucrarea conţine 292 pagini C. C-8
i
Cuvˆ ant ˆınai ant ın aint nte e Cercetarea Cercetarea Operat ¸ional˘ a a ap˘arut arut ca disciplin˘ discipl in˘a prin formulare formularea, a, ˆın perioda celei de a doua conflagrat¸ii ¸ii mondiale, a problemei de transport cˆand and s-a pus problema aloc˘ arii arii eficiente a resurselor c˘atre atre unit˘at a¸ile ¸tile combatante. Ulterior, aceste probleme ¸si-au si-au g˘asit asi t utili ut ilita tatea tea ¸si si ˆın activitatea de management a unit˘at a¸ilor ¸tilor economice. Un rol important ˆın ın dezvoltarea acestei teorii l-a avut George Dantzig (1953). Teoria grafurilor ¸si si analiza fluxului maxim sunt modele pentru o serie de probleme de transport sau de optimizare a traficului ˆıntre pro cesoare (ˆın cadrul aplicat¸iilor ¸iilor de multiprocessing ˆın ın care avem ¸si si un cost de comunicare). Problemele concrete de optimizare a costurilor costurilor de aprovizio aprovizionare, nare, transport transport ¸si si stocare stocare se pot rezolv rezolvaa cu ajutorul acestor modele matematice. Optimizarea acestor costuri poate duce la economii substant¸iale ¸iale ˆın cadrul cadr ul unei un ei firme care are ca obiect de activitate astfel de probleme. Gestiunea optim˘ a a stocurilor este o component˘a esent¸ial˘ ¸ial˘ a ˆın ın planifi pla nificare careaa ¸si si realizar real izarea ea unui plan de marketing ¸si si este o component˘ a de neˆ neˆınlocuit a conducerii economice moderne mo derne ˆın cadrul unei economii de piat¸˘ ¸a. a˘. Aceasta teorie ¸si-a si-a g˘asit asit mai nou aplicat¸ii ¸ii ˆın domeniu dom eniull proiect˘ arii arii circuitelo circuitelorr electronic electronice, e, stocul fiind reprezen reprezentat tat ˆın ın acest caz de capacitat capacitatea ea de memorie disponibil˘a. a. Totodat˘a, a, lucrarea de fat¸˘ ¸a˘ cont¸ine ¸ine aplicat¸ii ¸ii practice abordate de autori ˆın ın cadrul seminariilor ce se desf˘a¸ a¸soa so ar˘a la disciplina Criptografie Cri ptografie ¸si si Securitat Securi tate e , la Facultatea de Matematic˘a Informatic˘ a din cadrul cadrul Unive Universi rsit˘ t˘ at a¸ii ¸t ii din Bucure¸ Bucure¸sti, sti, la masterul masterul de Securitatea Securitatea Tehnologiei Informat ¸iei , organizat de Academia Tehnic˘a Militar˘a, a, precum ¸si si la masterul de Teoria Cod˘ arii ari i ¸si si Stoc˘ arii Informat ¸iei , organizat de Facultatea de S¸tiint ¸tiint¸e ¸e Aplicate din cadrul Universit˘ at a¸ii ¸tii Politehnica Bucure¸sti. sti. Aceast˘ a culegere de probleme continu˘a dezvoltarea colabor˘arii arii dintre ¸scoala scoala romˆaneasc˘ aneasc˘ a de criptologie criptolo gie ¸si si ¸scoala scoala francez˘a reprezentat˘a ˆın cazul de fat¸˘ ¸a˘ de David Naccache, profesor la universitatea Pantheon-Assas Paris II. Din acest motiv se reg˘asesc, ˆın culegerea de fat¸˘ ¸a, a˘, capitolele dedicate principiilor criptologice ¸si si atacurilor ˆın ın mediul de implementare, ce acoper˘a un gol din curricula sistemului de ˆınv˘ ınv˘ at a¸˘ ¸tamˆ a˘mˆ ant ant din Romania, capitole elaborate ˆın colaborare cu profesorul David Naccache.
Dr. mat. Emil Simion Dr. mat. Mircea Andra¸siu siu
ii
Prefat¸˘ ¸a ˘ Intrˆand and progresiv progre siv ˆın era informat inf ormat¸iei, ¸iei, societ˘at a¸ile ¸tile industrializate se g˘asesc ases c ˆın fat f at¸a ¸a unui paradox: pe de o parte, puterea ¸si si influent influ ent¸a ¸a Europei Europe i ¸si si a Americii Amer icii de Nord N ord au crescut cre scut semnificativ, semn ificativ, ˆın principal princip al datorit˘a m˘ aiestriei aiestriei modalit˘at a¸ilor ¸tilor prin care se controleaz˘a fluxurile de informat¸ii, ¸ii, precum ¸si si valorii crescute a datelor datel or procesate. pro cesate. Pe de alt˘ a lt˘a parte, parte , dup˘ dup ˘a cum au demonstrat-o deja criza Wikileaks sau viermele Stuxnet, Stuxnet, apar noi amenint amenint¸˘ ¸ari a˘ri ¸si si vuln v ulnerab erabili ilit˘ t˘at a¸i ¸t i care fac ca dependent¸a ¸a noastr˘a de sistemele informat¸ionale ¸ionale s˘a fie crucial˘a. a. De aceea, dezvoltarea dezvoltarea atacurilor cibernetice, precum ¸si si disponibilitatea disp onibilitatea online a instrumentelor utilizate ˆın activitatea de piraterie conduce la obiective strategice importante ¸si si cultiv˘ a necesitatea de a preg˘ati ati expert¸i ¸i pentru acest domeniu. Criptografia Criptogra fia este peste pes te tot ˆın jurul t˘au. ˆIn timp ce tu cite¸sti sti aceste aces te rˆanduri, andu ri, ˆın vecin˘ vecin ˘atatea atatea ta se transmit informat¸ii ¸ii cifrate prin telefoane mobile, relee de pay-TV, precum ¸si si routere wireless. Mediul ˆın care tr˘aim aim se schimb˘a ˆıntr-un ritm alert. Aceast˘a evolut¸ie ¸ie este rezultatul progresului progresu lui ˆın ın domeniul domeniu l tehnolog t ehnologiilor iilor hardware ¸si si al matematicii. matematic ii. Criptografia aplicat˘a s-a dezvoltat dezvoltat considerabil considerabil ˆın ultimii ultimii ani, pentru pentru a putea putea satisface satisface cerint¸ele ¸ele crescute de securitate ale diverselor domenii legate de tehnologia informat¸iei, cum ar fi telecomunicat¸iile, ¸iile, ret¸elistica, ¸elistica, bazele de date, precum ¸si si aplicat¸iile ¸iile de telefonie telefoni e mobil˘a. a. Sistemele Sistemel e criptografice cri ptografice sunt din ce ˆın ce mai complexe c omplexe ¸si si mai m ai tehnice teh nice ¸si si necesit˘ ne cesit˘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 ¸i ˆımpr ım preun eun˘ a˘ cu protocoale adecvate, a c˘aror aror proi pr oiec ecta tare re ¸si si ˆınt ın ¸elegere ¸t elegere necesit˘a o analiz˘ ana liz˘a deli d elicat˘ cat˘a. a. Aceast˘ a carte v˘a ofer˘ o fer˘a instrumentel i nstrumentelee necesare pentru a ˆıncepe ıncep e s˘a v˘a dezvo de zvolta ltat¸i ¸t i aptitudinile ˆ ˆın domeniul domeni ul criptografiei. criptogr afiei. In timp ce citit¸i ¸i aceste rˆanduri anduri ˆın limba li mba romˆ rom an˘ aˆn˘ a, a, str˘ainul ainul care sunt v˘a ˆındea ın deamn mn˘ a˘ s˘ a realizat¸i ¸i c˘a unele dintre cele mai luminate mint¸i ¸i care au adus contribut¸ii ¸ii acestui aces tui domen d omeniu iu ˆı¸si si aveau avea u origin ori ginile ile ˆın spat s pat¸iul ¸iul lingvist l ingvistic ic ¸si si cultural romˆanesc. anesc. De exemplu, e xemplu, cel care a spart ma¸sina sina de cifrat ”Purple” a japonezilor, jap onezilor, fapt˘a care a dus la divulgarea secretelor diplomatice diplom atice japoneze jap oneze ˆınainte de intrarea Americii A mericii ˆın cel de-al doilea r˘azboi azboi mondial, provenea din di n ora¸ or a¸sul su l Chi C hi¸¸sin˘ si n˘au, au, Republica Republi ca Moldova, ora¸ o ra¸s ˆın care familia lui se mutase dup˘a plecarea p lecarea din Bucure¸ Bucu re¸sti sti la sfˆar¸ ar¸situl situ l anilo a nilorr 1890. 1 890. S ¸ tiint tiin ¸a ¸t a secretelor are o lung˘a tradit¸ie ¸ie ˆın Romˆ Ro mˆania, ania, ¸ar˘ ¸tar˘a care a fost nevoit˘a constant s˘a se bazeze ba zeze pe p e propriile propr iile talente tal ente pentru pe ntru a-¸si si p˘astra astra independent¸a. ¸a. Expert¸ii ¸ii au prezis c˘a urm˘atoarele atoa rele r˘azboai azb oaiee vor ˆıncepe ınc epe ˆın spat¸iul ¸iul cibernetic. cibernetic. Autorii Autorii acestei acestei c˘art art¸i, ¸i, care sunt pedagogi ¸si si cercet˘atori, atori, au importanta datorie moral˘a de a l˘asa asa mo¸stenire sten ire Romˆ aniei astfel de talente vitale. aniei ˆIn trecut, am avut onoarea de a cunoa¸ste ste sau a fi mentorul unor cercet˘atori ator i ¸si si student stud ent¸i ¸i ˆ romˆ ani ani foarte talentat¸i. ¸i. Intotdeauna am fost uimit de creativitatea acestora, de dorint¸a ¸a lor de a-¸si si atinge scopurile, scopuri le, precum ¸si si de d˘aruirea aruirea pentru munc˘a. a . Sper c˘a aceast˘a carte va contribui la dezvoltarea continu˘a de asemenea talente, astfel ˆıncˆat at domen d omeniul iul ¸stiint sti int¸ific ¸ific c˘aruia aruia i-am dedicat o bun˘ a parte a viet¸ii ¸ii mele s˘a beneficieze de acest formidabil rezervor de talente. Dac˘ a suntet¸i ¸i un student talentat ¸si si interesat de studii doctorale ˆın domeniu, nu ezitat¸i ¸i s˘a m˘ a contactat¸i ¸i pentru sfaturi.
Prof. David Naccache Universit´e Paris II, Pantheon-Assas, Pantheon-A ssas, PRES Sorbonne Sorbo nne Universit´es es Membru al laboratorului informatic al Ecole normale superi´eure. eure. Paris, Frant¸a. ¸a.
Cuprins I
˘ RI OPERAT CERCETA ¸ IONALE
˘ 1 PROGR PROGRAMA AMARE RE LINIAR LINIARA 1.1. Folosirea olosirea eficien eficient˘ t˘ a a resurselor limitate . . . . 1.2. Forme ale problemelor problemelor de programar programaree liniar˘ a 1.3. Algoritmul simplex (Dantzig) . . . . . . . . . 1.4. 1.4. Dual Dualaa une unei prob proble leme me de prog progrram amar aree lini liniar ar˘˘a . 1.5. Problema de transport . . . . . . . . . . . . . 1.6. Aplica Aplicat¸tii . . . . . . . . . . . . . . . . . . . . .
1 . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
˘ 2 PROGR PROGRAMA AMARE RE DINAMI DINAMIC CA 2.1. Forma unei probleme probleme de optimizare optimizare secvent secvent¸ial˘ ¸ial˘a . . . . . . 2.2. Teorema de optim . . . . . . . . . . . . . . . . . . . . . . 2.3. Programare dinamic˘a regresiv˘a . . . . . . . . . . . . . . . 2.3.1 2.3 .1.. Ecua Ecuat¸iile ¸tiile program˘arii dinamice regre gresive . . . . . . 2.3.2. Rezolvarea Rezolvarea problemel problemelor or de programare programare regresiv˘ regresiv˘ a . 2.3.3. 2.3.3. Aplica Aplicat¸tii . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Programare dinamic˘a progresiv˘a . . . . . . . . . . . . . . 2.4.1 2.4 .1.. Ecua Ecuat¸iile ¸tiile program˘arii dinamice progresive . . . . . 2.4.2. Rezolvarea Rezolvarea problemel problemelor or de programare programare progresiv˘ progresiv˘ a 2.4.3. 2.4.3. Aplica Aplicat¸tii . . . . . . . . . . . . . . . . . . . . . . . . 3 TEORIA JOCURILOR 3.1. 3.1. No Not¸tiuni introductive . . . . . . . . . . . . . . . . . . 3.2. Principiul minimax . . . . . . . . . . . . . . . . . . . 3.3. 3.3. Str Strateg ategii ii mixt mixtee ¸si s i valoa aloarrea jocu joculu luii . . . . . . . . . . . 3.4. Teorema eorema fundamen fundamental˘ tal˘ a a teoriei jocu ocurilor . . . . . . 3.5 3.5. Rezolvare area jocu ocurilor matriceale ale . . . . . . . . . . . . 3.5. 3.5.1. 1. Form ormular ularea ea prob proble leme meii de opti optimi miza zare re . . . . . 3.5.2. Reducerea Reducerea la problem problemee de programare programare liniar˘ liniar˘a iii
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
3 3 5 7 9 10 11
. . . . . . . . . . . . . . . . . . . .
17 17 19 20 20 21 22 27 27 28 29
. . . . . . .
33 33 34 35 36 37 37 38
. . . . . .
. . . . . . .
iv
CUPRINS 3.6. Aplica Aplicat¸tii
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 TEORIA DECIZIILOR STATISTICE 4.1. Prezentarea problemelor . . . . . . . . 4.2. 4.2. Str Strateg ategii ii Ba Bay yes ¸si s i str strateg ategii ii mini minima max x. . 4.3. Cazul Cazul efec efectu˘ tu˘ arii arii unor experient¸e unice 4.4. 4.4. Deci Decizi ziii opti optime me ˆın caz de ince incerrtitu titudi dine ne . 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. Aplica Aplicat¸tii . . . . . . . . . . . . . . . . .
38
. . . . . . . . .
45 45 46 47 49 49 49 50 50 50
. . . . . . . . .
55 55 56 57 58 59 60 61 62 62
6 PROBLEME DE TRANSPORT 6.1 6.1. Pro Problema clasic˘a de trans anspor port . . . . . . . . . . . . . . . . . . . . . . 6.1.1. Formularea problemei . . . . . . . . . . . . . . . . . . . . . . 6.1.2. 6.1.2. Alg Algori oritm tmul ul de transpo transport rt (adapta (adaptarea rea algo algorit ritmu mului lui simple simplex) x) . . 6.1.3. Determinarea unui program de baz˘a init¸ial . . . . . . . . . . 6.1.4. Degenerare ¸si ciclare . . . . . . . . . . . . . . . . . . . . . . . 6.1 6.1.5. Vari ariante ale ale probl oblemei de transpor port . . . . . . . . . . . . . . 6.1 6.1.6. Algori oritmul simplex modi odificat . . . . . . . . . . . . . . . . . . 6.1.7. 6.1.7. Aplica Aplicat¸tii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Flux Flux maxim maxim intr-o intr-o ret ret¸ea de transpor port . . . . . . . . . . . . . . . . . . 6.2. 6.2.1. 1. Ret Re¸tele de transport . . . . . . . . . . . . . . . . . . . . . . . . 6.2 6.2.2. Algori oritmul Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . 6.2.3. 6.2.3. Proble Problema ma de transpor transportt ca problem˘ problem˘ a de flux maxim . . . . . . 6.2.4. 6.2.4. Aplica Aplicat¸tii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75 75 75 76 77 78 79 80 81 89 89 90 92 93
5 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. Aplica Aplicat¸tii . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
CUPRINS 7 TEORIA STOCURILOR 7.1 7.1. Formularea mode odelului matematic tic . . . . . . . . . . . . . . . . . . . . 7.2. Mode odele deterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1. Model de stocare stocare a unui unui produs cu cu cerere cerere constant˘ constant˘ a, a, perioad˘a constant˘ a de reaprovizionare reaproviz ionare ¸si si f˘ar˘ ar˘a lips˘a de stoc . . . . . . . 7.2.2. Model de stocare stocare a unui unui produs cu cu cerere cerere constant˘ constant˘ a, a, perioad˘a constant˘ a de reaprov reaproviziona izionare re si s¸i cu posibilitat posibilitatea ea lipsei lipsei de stoc 7.2.3. Model de stocare stocare a unui unui produs cu cu cerere cerere constant˘ constant˘ a, a, perioad˘a constant˘ a de reaprovizionare ¸si si f˘ar˘ ar˘a lips˘a de stoc, luˆand an d ˆın considerare consid erare ¸si si costul c ostul de achizit¸ie . . . . . . . . . . . . . . . . 7.2. 7.2.4. 4. Mo Mode dell de stoc stocar aree a ma maii multo ultorr prod produs usee . . . . . . . . . . . . 7.3. Mode odele probabiliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1. Model de stocare stocare a unui produs produs cu cerere cerere aleatoar aleatoare, e, cu pierdere pierdere ˆın cazul caz ul surplusului surpl usului de stoc, sto c, cu cheltuieli cheltuie li suplimentare supl imentare ˆın cazul cazu l lips lipsei ei de de stoc stoc ¸si s i cu cost cost de de stoc stocar aree neg negli lijab jabil il . . . . . . . . . . 7.3.2. 7.3.2. Model Model de stocare stocare a unui unui produs produs cu cerere cerere aleatoa aleatoare, re, cu cost de sto care ¸si si cost de penalizare p enalizare pentru p entru lips˘a de sto c . . . . . 7.4. Aplica Aplicat¸tii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v 103 103 103 104 104 105
10 8 109 109 110
110 114 1 18
˘T 8 PROB PROBAB ABIL ILIT ITA ¸I 123 8.1 8.1. Pro Probabi abiliatea unui eveniment . . . . . . . . . . . . . . . . . . . . . . 123 123 8.1.1. Cazul finit dimensional ¸si si al evenimetelor elementare elementare echiprobabile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 8.1.2. 8.1.2 . Probabit˘ Probab it˘at a¸ti geometrice . . . . . . . . . . . . . . . . . . . . . . 124 8.1.3. Frecvent recvent¸˘ ¸a˘ absolut˘ a. a. Frecvent¸˘ ¸a˘ relativ˘a . . . . . . . . . . . . . 124 8.1.4 8.1 .4.. Defin Definit it¸ia ¸ia statistic˘a a probabilit˘ at a¸tii . . . . . . . . . . . . . . . 125 8.2. 8.2. Varia ariabi bile le alea aleato toar aree nor norma mall dis distr trib ibu uite ite . . . . . . . . . . . . . . . . . . 126 126 8.2.1. Densitatea Densitatea de de probabili probabilitate tate normal˘ normal˘ a . . . . . . . . . . . . . . 126 8.2.2. 8.2.2. Funct unc¸tia Laplace-Gauss . . . . . . . . . . . . . . . . . . . . . . 126 8.2.3. 8.2.3. O formu formul˘ l˘ a analitic˘ a pentru calculul probabilit˘at a¸tii . . . . . . . 127 8.2.4. 8.2.4. Inegal Inegalitat itatea ea lui lui Cebˆ Cebˆ a¸sev (182121-1894) 94) . . . . . . . . . . . . . . 127 8.2.5. 8.2.5. Teorema eorema celor celor 3σ 3σ . . . . . . . . . . . . . . . . . . . . . . . . . 127 8.3. Legea numerelor mari . . . . . . . . . . . . . . . . . . . . . . . . . . 127 8.4. Teorema eorema limit˘ a central˘a . . . . . . . . . . . . . . . . . . . . . . . . . 128 8.4.1. Forma Leapunov Leapunov (1857-1918) (1857-1918) a Teorem Teoremei ei Limit˘ a Central˘a . . 128 8.4.2. Forma Moivre Moivre (1667-1754)-Lapla (1667-1754)-Laplace ce a Teoremei Teoremei Limit˘ Limit˘ a Central˘a129 a 129 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 . . . . . . . . . . . . . 8.5.5. Testul 5 . . . . . . . . . . . . . 8.5.6. Testul 6 . . . . . . . . . . . . . 8.6. 8.6. Cˆ ateva ateva distribut¸ii importante . . . . . 8.6.1. 8.6.1. Repart Repartit it¸ii continue . . . . . . . 8.6.2. 8.6.2. Distri Distribut but¸ii discrete . . . . . . . 8.6. 8.6.3. 3. Calc Calcul ulul ul numer umeric ic al cuan cuanti tile lelo lorr
II
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
CRIPTOLOGIE
9 SISTEMUL DE CIFRARE CEZAR 9.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2. Exerci Exercit¸tii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3. Exerci Exercit¸tii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
131 132 133 1 34 13 4 13 9 140 140
143 145 1 45 145 14 6
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
vii
CUPRINS
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 17.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 ALGORITMUL RIJNDAEL - STANDARDUL 18.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . 18.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . 18.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . .
AES 193 . . . . . . . . . . . 1 93 . . . . . . . . . . . 193 . . . . . . . . . . . 19 7
19 CRIPTANALIZA CIFRURILOR BLOC 19.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ˘ 20 LEMA CHINEZEASC A 20.1. Breviar teoretic . . . . 20.2. Exercit¸ii rezolvate . . 20.3. Exercit¸ii propuse . . .
189 1 89 189 19 0
203 2 03 203 20 5
A RESTURILOR 207 . . . . . . . . . . . . . . . . . . . . . . . . . . 2 07 . . . . . . . . . . . . . . . . . . . . . . . . . . 208 . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9
21 SISTEMUL DE CIFRARE MERKLE-HELLMAN 21.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
213 2 13 214 21 5
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 SISTEM SISTEMUL UL DE CIFRAR CIFRARE E ELGAMA ELGAMAL L 25.1. Breviar teoretic . . . . . . . . . . . . . . 25.2. Exercit¸ii rezolvate . . . . . . . . . . . . 25.3. Exercit¸ii propuse . . . . . . . . . . . . .
PE CURBE CURBE ELIPTIC ELIPTICE E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
229 2 29 229 23 0
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 ¸ I I DE DISPERSIE 237 27.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 27.2. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 ˘ TURA ELGAMAL 28 SEMNA 241 28.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 28.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 28.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 ˘ TURA DSA/ECDSA 29 SEMNA 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
ix
CUPRINS
31 PROTOCOLUL BLOM 253 31.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 31.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 31.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 32 PROTOCO PROTOCOLUL LUL SHAMIR DE 32.1. Breviar teoretic . . . . . . . . 32.2. Exercit¸ii rezolvate . . . . . . 32.3. Exercit¸ii propuse . . . . . . .
PAR P ART TAJARE A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SECRETELOR SECRETELOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
257 2 57 258 25 8
33 SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT261 33.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 33.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 34 CANALE SUBLIMINALE 34.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
263 2 63 263 26 4
35 PRINCIPI I 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. CrypTo ol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 37.2. OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 37.3. MAPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 38 APLICAT ¸ I I PRACTICE
283
˘ 39 PROBLEME DE SINTEZ A 291 39.1. Enunt¸uri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 39.2. R˘ aspunsuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 BIBLIOGRAFIE
305
x
CUPRINS
Partea I
˘ CERCETARI OPERAT ¸ IONALE
1
Capitolul 1
˘ PROGRAMARE LINIARA 1.1. 1.1.
Folosir olosirea ea eficien eficient˘ t˘ a a resurselor limitate
O problem˘a practic˘a ce apare frecvent frecvent ˆın ın activitatea activitatea de conducere conducere economic˘ economic˘a este urm˘atoarea: atoarea: sunt disponibile disponibile mai multe multe resurse (materii (materii prime, fort¸˘ ¸a˘ de munc˘a, a, resurse financiare) fina nciare) ˆın cantit˘at a¸i ¸t i limitate. Cu ajutorul acestor resurse se pot desf˘a¸sura mai multe activit˘at a¸i ¸t i economi economice. ce. Proble Problema ma const˘ a ˆın determinarea nivelurilor activit˘at a¸ilor ¸tilor luate ˆın considerare care s˘a se ˆıncadr ınc adreze eze ˆın limit˘ lim it˘arile arile precizate ale resurselo se lorr ¸si si s˘a asigure satisfacerea optim˘a a unui anumit criteriu. S˘ a not˘ am a m cu i, 1 si cu bi cantitatea de resurs˘a de tipul i m, tipul resursei ¸si i care este disponibil˘a. a . Vom nota nota prin prin j , 1 j n, tipul activit˘at a¸ii ¸t ii (procesului de subproduct¸ie) ¸ie) ¸si si prin pri n x j nivelul (necunoscut) la care urmeaz˘a s˘ a se desf˘a¸ a¸soare aceast˘ a activitate. ˆIn sfˆar¸ ar¸sit, sit, vom nota prin aij cantitatea de resurs˘a de tipul i, 1 i m, necesar˘a pentru producerea unei unit˘at a¸i ¸ti din produsul realizat ˆın procesul pro cesul de product¸ie ¸ie de tipul j, 1 j n, (ˆın general, general , activit a ctivitatea atea de tipul j ). Presupunem aici c˘a aij depinde numai de tipul resursei ¸si si de tipul procesului pro cesului de product¸ie ¸ie ¸si si nu de nivelul la care urmeaz˘a s˘ a se desf˘a¸ a¸soare soa re aceast ace ast˘˘a activitate. activitate. Cu notat¸iile ¸iile introduse, introd use, rezult˘a c˘a putem exprima cantitatea total˘a de resurs˘a de tipul i care va fi efectiv utilizat˘a ˆın ın procesele proc esele de product prod uct¸ie: ¸ie:
≤ ≤
≤ ≤
≤ ≤
≤ ≤
ai1 x1 + ai2 x2 + . . . + ain xn . Cum nu putem consuma resursa de tipul i mai mult decˆat at cantitatea disponibil˘ a bi , rezult˘a c˘a trebuie trebui e satisf˘ satisf acute ˘acute condit¸iile: ¸iile: n
j=1 j =1
aij x j
≤ bi, 1 ≤ i ≤ m. 3
(1.1)
˘ PROGRAMARE LINIAR A
4
Deoarece x j reprezint˘ a nivelul la care se desf˘a¸ a¸soar˘a activitatea de tipul j, rezult˘a c˘ a trebuie s˘a fie de asemenea satisf˘acute acute condit¸iile: ¸iile: x j
≥ 0, 1 ≤ j ≤ n.
(1.2)
Inegalit˘ at a¸ile ¸t ile 1. 1.1 sunt numite restrict ¸iile problemei, iar 1. 1.2 sunt numite condit ¸iile de nenegativitate ale nenegativitate ale problemei. Sistemul de inegalit˘at a¸i ¸t i liniare poate avea o infinitate de solut¸ii, ¸ii, o solut¸ie ¸ie unic˘a sau nici o solut¸ie ¸ie (siste (sistem m incompa incompatib tibil) il).. Cazul Cazul cel mai frecvent frecvent pentru p entru problemele practice corect puse este cazul ˆın care sistemul 1 .1, 1. 1 .2 are o infinitate de solut¸ii. ¸ii. Prin urmare este posibil s˘a organiz˘ am procesele de product¸ie am ¸ie pentru fabricarea sortimentelor de tipul j , 1 j n, ˆıntr-o infinitate de moduri, respectˆand and condit¸iile ¸iile 1. 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, ¸ie, product¸ia ¸ia fizic˘ fiz ic˘a, a, conco nsumurile de materii ma terii prime ¸si si materiale, consumurile de energie etc. Vom presupune ˆın cele ce urmeaz˘a c˘ a putem formula un singur criteriu criteriu pe baza c˘aruia aruia adopt˘ am am decizi decizia. a. Mai mult, mult, vom vom presup presupune une c˘a acest criteriu este reprezentat din punct de vedere matematic de o funct¸ie ¸ie liniar˘a. a. Un exemplu de astfel de criteriu se obt¸ine ¸in e ˆın modul urm˘ator. ator. Dac˘ Daca˘ not˘ am am prin c j beneficiul unitar adus de activitatea de tipul j, j , 1 j n, atunci este clar c˘a beneficiul total este:
≤ ≤
≤ ≤
n
c j x j .
(1.3)
j=1 j =1
Problema care se pune este de a afla solut¸iile ¸iile sistemului de inegalit˘at a¸i ¸t i liniare 1.1, 1.2 care asigur˘a obt¸inerea ¸inerea valorii maxime pentru beneficiul total 1. 1 .3. Cu alt altee cuvinte, din punct de vedere matematic se cere rezolvarea problemei:
≥ sup n
j=1 j =1
x j
n
j=1 j =1
c j x j
≤ bi, 1 ≤ i ≤ m, 0, 1 ≤ j ≤ n,
aij x j
care este numit˘a problema de programare liniar˘ a sau a sau program program liniar . Funct¸ia ¸ia liniar˘a ce se dore¸ste ste maximizat˘ maximi zat˘a se nume¸ num e¸ste st e funct ¸ie obiectiv sau funct ¸ia criteriu sau, sa u, ˆınc˘ ın c˘a, a, funct ¸ia de eficient ¸˘ a a problemei. problemei. Problema Problema ment¸ionat˘ ¸ionat˘ a poate fi rezolv rezolvat˘ at˘ a cu ajutorul ajutorul algo algorit ritmu mului lui simple simplex x 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 problemelor de optimizare optimizare cu a jutorul acestor acestor metode. Din acest motiv, omitem prezentarea rezolv˘arii arii complete a problemelor prin aceste metode.
˘ FORME ALE PROBLEMELOR DE PROGRAMARE LINIAR A
1.2. 1.2.
5
Forme orme ale proble problemel melor or de progra programa mare re liniar˘ liniar˘ a
Forma standard a unei probleme de programare liniar˘a este:
min(max)c min(max)c x Ax = b x 0
≥
Remarc˘ am am c˘a o problem˘a de maxim se poate transforma ˆıntr-o ıntr-o problem˘a de minim prin folosirea formulei formulei max( f ) f ) = min(f min(f )). Forma canonic˘ a a unei probleme de programare liniar˘a este:
−
−
sau
min c x Ax b x 0
≥
≥
max c x Ax b x 0
≥
≤
Sintaxa MAPLE de scriere a formei canonice pentru problema de maxim este: > standardize standardize(mult (mult¸ime ¸ime de restrict¸ii); ¸ii); sau > convert(mult convert(mult¸ime ¸ime de restrict¸ii, ¸ii, stdle stdle); ); O restrict¸ie ¸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 si o inegalitate de tipul pentru problema de maxim. Forma mixt˘ a a a a unei probleme de programare liniar˘a cont¸ine ¸ine restrict¸ii ¸ii ¸si si sub form˘ for m˘a de ecuat¸ii. ¸ii. Deoarece prin operat¸ii ¸ii matematice orice problem˘a de d e programa pro gramare re liniar˘ li niar˘a se poate poa te aduce ˆın forma canonic˘ canoni c˘a a problemei, pentru cazul de minim vom lucra numai cu astfel de probleme, adic˘a cu probleme ˆın forma canonic˘a. a.
≥
≤
Definit¸ia ¸ia 1.2.1. 1.2.1. Fie problema de programare liniar˘a ˆın forma standard atunci mult ¸imea programelor este definit˘a ca:
{ ∈ Rn|Ax = b, x ≥ 0}.
P = x
Un punct de minim global al funct¸iei ¸iei obiectiv z = c x pe mult¸imea ¸imea programelor P este numit solut ¸ie optim˘ a , iar mult¸imea ¸imea programelor optime ale problemei va fi notat˘ a cu: P ∗ = x P min c x = c x .
{ ∈ |
x P
∈
}
˘ PROGRAMARE LINIAR A
6
Definim solut ¸ia de baz˘ a a sistemului Ax = b ca o solut¸ie ¸ie x Rn c˘areia areia componentelor sale nenule ˆıi ıi corespund coloane liniar independente. Dac˘a B este o baz˘a format˘ a cu coloanele a j1 , . . . , a jm ale matricei A atunci sistemul de ecuat¸ii ¸ii Ax = b se poate scrie ˆın ın forma explicit˘a: a:
∈
x B = B −1 b
− B−1RxR
ˆın care ca re R este matricea obt¸inut˘ ¸inut˘ a din A prin eliminarea coloanelor j1 , . . . , jm . Notˆ and: and: B
B−1 b =x , B−1 a j = y jB , 1 rezult˘a c˘a: a:
− B
xB =x sau
B xB i =xi
} R {
j
y jB x j
∈R B yij x j , i
j
B {
−
≤ j ≤ n,
∈R
∈B
}− B
unde = j1 , . . . , jm ¸si si = 1, . . . , n . Solut¸ia ¸ia de baz˘a coresp co respunz˘ unz˘atoare ato are bazei baz ei B B este xB =x ¸si si xR = 0. Este clar c˘a aceast˘ a solut¸ie ¸ie de baz˘a este un program progra m dac˘a este est e ˆındepl ınd eplini init˘ t˘a condit¸ia: ¸ia: B−1 b 0.
≥
O baz˘a B care verific˘a inegalit ine galitatea atea de mai ma i sus se nume¸ste ste baz˘ a primal admisibil˘ a. ˆIn problemele practice o astfel de baz˘a se determin˘a prin metoda bazei artificiale. De foarte foa rte multe ori o ri ˆıns˘a, a, aceasta aceasta este disponibil˘ disponibil˘a direct, baza primal admisibil˘a fiind matricea unitate. Avem urm˘atoare ato areaa teore t eorem˘ m˘a numit˘ a teorema fundamental˘ a a program˘ arii liniare . Teorema eorema 1.2.1. 1.2.1. i) Dac˘a problema de programare programare liniar˘ linia r˘ a:
min(max)c 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. Algoritmu Algoritmull fundamenta fundamentall pentru pentru rezolv rezolvarea problemelor problemelor de programare programare liniar˘ liniar˘a ment¸ionate ¸iona te se nume¸ste ste algoritmul simplex primal ¸ primal ¸si si a fost f ost elabo ela borat rat de d e George George Dantzig ˆın anul 1951. 19 51. Algoritmul este descris ˆın ın orice carte fundamental˘ a de programare liniar˘a ¸si si este implementat ˆın ın majoritatea softurilor matematice de prelucrare de date.
7
ALGORITMUL SIMPLEX (DANTZIG)
1.3. 1.3.
Algori Algoritm tmul ul simple simplex x (Dan (Dantzi tzig) g)
Pentru rezolvarea problemelo prob lemelorr de programare program are liniar˘ lini ar˘a s-a impus algorit a lgoritmul mul simplex datorat lui G.B. Dantzig Dantzig (1951). Aceast˘ Aceasta˘ metod˘ a ne permite s˘a explor˘am am ˆın mo mod d sistematic mult¸imea ¸imea programelor programelor de baz˘ a a unei probleme probleme de programare programare liniar˘ liniar˘a ˆın forma standard prin trecerea trecerea de la un program program de baz˘a la un program de baz˘a vecin, care este cel put¸in ¸in la fel de bun ca cel preced preceden ent. t. Metoda Metoda furnizea furnizeaz˘ z˘a, a , de asemenea, criterii pentru punerea ˆın evident¸˘ ¸a˘ a situat¸iei ¸iei cˆand and problema are optim infinit precum ¸si si a cazului cazulu i ˆın care mult¸imea ¸imea programelor progra melor este vid˘a. a. PASUL 0. Se pune problema de optimizat ˆın ın forma standard:
inf c inf cT x Ax = b, x 0.
≥
(Dac˘ a problema are restrict¸ii ¸ii de forma unor inegalit˘at a¸i, ¸t i, atunci se transform˘a mai ˆıntai aˆi toate inegalit˘ inegalit˘ at a¸ile ¸tile ˆın inegalit˘ inegal it˘at a¸i ¸t i de tipul ; sc˘azˆ azˆ andu-se variabilele artificiale y, andu-se problema de maxim se va transforma ˆın problem˘a de minim etc.). A este o matrice cu m lini li niii ¸si si n coloane pentru care avem rang(A rang(A) = m < n. Vom nota cu z funct¸ia ¸ia T obiectiv adic˘a z = c x. PASUL 1. Se determin˘ determin ˘a o baz˘a B primal admisibil˘ admisibil˘ a (fie este disponibil˘a direct fie se determin˘a cu ajutorul bazei artificiale prin metoda celor dou˘a faze) faz e) ¸si si se calculeaz˘a: a:
≥
xB = B−1 b, T xB , z B = cB y jB = B−1 a j , 1 j z jB c j , 1 j n.
≤ ≤ n, ≤ ≤
−
Aceste valori se trec ˆın tabelul simplex (tabelul 1.1) dup˘ a care trecem la pasul urm˘ ator. ator. Vom nota cu mult¸imea ¸imea indicilor j care determin˘a matricea B ¸si si prin pr in = 1, . . . , n . Tabelul simplex init¸ial ¸ial are forma:
{
}−B
B
R
TABELUL 1.1
cB
V.B. V.B. xB z
V.V. V.V.B. B. B x zB
c1 x1 y1B z1B
− c1
... ... ... ...
c j x j y jB z jB
− c j
... ... ... ...
cn xn ynB znB
− cn
˘ PROGRAMARE LINIAR A
8
B
PASUL 2. Dac˘ a z jB c j 0 j , ne oprim (STOP (STOP): ): x este program optim. ˆIn caz contrar se determin˘ determi n˘a mult mul ¸imea t¸imea (nevid˘a): a):
− ≤ ∀ ∈R
B
R+ = { j ∈ R|z j − c j > 0} ¸si si se s e trece tr ece la pasul urm˘ator. ator. B PASUL 3. Dac˘a exist˘a j + pentru care y j are optim infinit. infinit. ˆIn caz contrar, determin˘am am k
∈R
max(z jB j
¸si si r
(STOP): ): problema ≤ 0 ne oprim (STOP ∈ R+ cu criteriul crite riul de intrare ˆın ın baz˘ a : − c j ) = zk − ck B
B
∈ B+ = {i ∈ B|yik > 0} cu criteriul crite riul de ie¸sire sire din baz˘ a : xB xB i r min ( B ) = B i∈B+ y yrk ik
B Elementul yrk se nume¸ num e¸ste st e pivot . Se trece la pasul urm˘ator. ator.
∼
PASUL 4. Se consider˘a baza B obt¸inut˘ ¸inut˘ a din B prin ˆınlocuirea ınlo cuirea coloanei coloa nei ar cu coloana ak , ¸si si se s e calculea ca lculeaz˘ z˘a valorile valoril e (prin (p rin formula de schimbare s chimbare a bazei ba zei adic˘a regula de ∼
∼
B
B
∼
∼
transformare a tabelului simplex) x , z , y jB , z jB
∼
trec e la Pasul 2 ˆ 2 ˆınlo ın locui cuind nd − c j ¸sisi se trece
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 ı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 regula dreptunghiului: dac˘ a ne imaB gin˘ am am dreptunghiul dreptunghiul a c˘ arui arui diagonal˘ diago nal˘a este e ste determinat˘ determi nat˘a de elementul yij care trebuie
∼B
B transformat transf ormat ¸si si pivotul yrk , atunci noua valoare valoare y ij se obt¸ine ¸in e ˆımp˘ ım p˘art art¸ind ¸ind la pivot B B diferent¸a ¸a dintre produsul elementelor yij yrk situate pe diagonala considerat˘a mai B B sus ¸si si produs pro dusul ul yrj yik situat pe cealalt˘a diagonal˘ a a dreptunghiului. Observat ¸ii . i) Dac Dac˘a˘ la sfˆar¸ ar¸situl sit ul algo a lgoritmu ritmului lui z jB c j < 0 j atunci solut¸ia ¸ia problemei problemei este unic˘a. a. ii) Este posibil ca ˆın cadrul algoritmului algoritmului simplex simplex s˘a apar˘ a fenomenul de ciclare (prin trecerea de la o baz˘a la alta s˘a a jung ˆıntr-o baz˘a deja procesat˘ proce sat˘a). a). Exist˘a mai multe tehnici de evitare a acestui fenomen asupra c˘arora nu ne vom opri ˆıns˘a. a. iii) Se poate poa te da ¸si si o interpretare interpreta re geometr g eometric˘ ic˘a a solut¸iilor ¸iilor unei probleme probleme de prograprogramare liniar˘ liniar˘a ˆın ın cazul bidimensional. Domeniul de admisibilitate poate p oate fi:
−
∀ ∈R
˘ DUALA UNEI PROBLEME DE PROGRAMARE LINIAR A
9
-un poligon convex, iar cel put¸in ¸in unul dintre vˆ arfurile sale este solut ¸ie a ¸ie a problemei de optimizare. Se poate ˆıntˆ ampla ampla ca solut¸ia ¸ia s˘a fie o latur˘a a poligonului convex ce determin˘ a domeniul de definit¸ie, ¸ie, ˆın acest caz avem mai multe solut ¸ii ; -un domeniu nem˘arginit, arginit, caz ˆın care problema are optim infinit ; -mult¸imea ¸imea vid˘a, a, caz ˆın ın care problema de optimizare nu are solut ¸ie .
1.4.
Duala unei probleme probleme de programa programare re liniar˘ a
Avˆ and and o problem˘a de programare liniar˘a, a, problema construit˘a dup˘ a urm˘atoarele atoarele reguli reg uli se nume¸ste ste problema dual˘ a : a) termenii liberi din problema primal˘a devin coeficient¸i ¸i ai funct¸iei ¸iei obiect obi ectiv iv ˆın problema problema dual˘ a; a; b) coeficient¸ii ¸ii funct¸iei ¸iei obiectiv din problema primal˘a devin termeni liberi lib eri ˆın problema dual˘a; a; c) o problem˘a de max maximi imizar zaree (minim (minimiza izare) re) devine devine o proble problem˘ m˘ a de minimizare (maximizare); d) matricea coeficient¸ilor ¸ilor sistemului de restrict¸ii ¸ii din problema dual˘a este transpusa matricei matricei coeficient coeficien¸ilor ¸t ilor sistemului de restrict¸ii ¸ii primale; e) variabile duale (primale) asociate unor restrict¸ii ¸ii primale (duale) concordante sunt sunt supuse supuse condit¸iilor ¸iilor de nenegativitate; f) variabi ariabile le primal primalee (duale (duale)) asociate asociate unor unor restri restrict ct¸ii ¸ii duale duale (primal (primale) e) care care sunt sunt restrict¸ii ¸ii neconcordante sunt supuse condit¸iei ¸iei de nepozitivitate nepozitivitate;; g) variabile ariabile duale (primale) asociate unor restrict¸ii ¸ii primale primale (duale (duale)) care care sunt sunt ecuat¸ii ¸ii nu sunt supuse nici unei condit¸ii ¸ii privind semnul. Remarc˘ am am c˘a duala unei probleme ˆın forma canonic˘ a este tot ˆın forma canonic˘ a. a. Enunt¸˘ ¸am a˘m ˆın continua cont inuare re teorema fundamental˘ a a dualit˘ at ¸ii: Teorema eorema 1.4.1. 1.4.1. Fiind dat cuplul de probleme duale:
¸si si
min c x Ax b x 0
≥
≥
max b y A y c y 0
≥
≤
una ¸si si numai una din afirmat ¸iile ¸iil e urm˘ ur m˘atoare at oare este es te adev ad ev˘ ˘arat˘ arata: ˘ ˆ acest a) ambele ambele probleme probleme au prog progra rame. me. In acest caz, caz, ambele ambele probleme probleme au prog progra rame me optime ¸si si valorile optime ale funct ¸iilor obiectiv coincid;
˘ PROGRAMARE LINIAR A
10
ˆ acest caz, problema b) una din probleme are programe, iar cealalt˘ a nu are. In care nu are programe are optim infinit; c) nici una din probleme nu are programe. Exist˘ a un algoritm numit algoritmul simplex dual care dual care rezolv˘a problema problema primal˘ primal˘ a prin intermediul problemei duale. Acela¸si si lucru putem s˘a-l afirm˘am am ¸si si despre algoritmul simplex primal care rezolv˘a problema primal˘a, a, dup˘a care pune ˆın evident¸˘ ¸a˘ solut¸ia ¸ia problemei duale. Programul MAPLE are o procedur˘a de construct¸ie ¸ie a dualei. Sintaxa acesteia este: > dual(funct dual (funct¸ia ¸ia liniar˘ lin iar˘a, a, mult¸ime ¸ime de restrict¸ii, ¸ii, nume variabila dual˘a); a);
1.5. 1.5.
Prob Proble lema ma de tran transpo sport rt
S˘ a presupunem c˘a exist˘a m centre de aprovizionare (depozite) ¸si si n centre de consum (beneficiari). (beneficiari). Un produs omogen este depozitat ˆın cantit˘ cantit˘ at a¸ile ¸tile ai , 1 i m, ˆın centrele de aprovizionare aprovi zionare ¸si si este cerut ˆın cantit˘at¸ile ¸ile b j , 1 j n, la beneficiari. beneficiari. Vom presupune c˘a sunt ˆındeplinite ındepli nite condit¸iile: ¸iile:
≤ ≤
≥
≤ ≤
≥
≤ ≤ n,
ai 0, 1 i m, b j 0, 1 j a1 + . . . + am = b1 + . . . + bn .
≤ ≤
(1.4)
Cu alte cuvinte, presupunem c˘a disponibilitat¸ile ¸ile ¸si si cererile sunt nenegative, iar disponibilitatea egaleaz˘ a cererea total˘a. a. O astfel de problem problem˘˘a de transport transp ort se nume¸sste problem˘ a de transport echilibrat˘ a . Problema const˘a ˆın ın organizarea transportului de la depozite dep ozite la beneficiari astfel ˆıncat aˆt s˘a se obt¸in˘ ¸in˘a cheltuieli minime de transport. S˘ a not˘ am am cu xij cantitatea (necunoscut˘ a) a) care urmeaz˘a s˘a fie transportat˘ transp ortat˘a de la depozitul i la beneficiarul j . Cantit Cantitatea atea ce se transport transport˘˘a de la depozitul i la tot¸i ¸i beneficiarii beneficiarii trebuie trebuie s˘a egaleze disponibilitatea de la depozitul respectiv, adic˘a: a: n
xij = ai , 1
j=1 j =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: a: m
i=1
xij = b j , 1
≤ j ≤ n.
(1.6)
Evident, cantit˘at a¸ile ¸tile transportate sunt nenegative, adic˘a: a: xij
≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n.
(1.7)
11
APLI AP LICA CAT T ¸ I I
Sistemul de inegalit˘at a¸i ¸t i liniare 1.5-1.7 are ˆın condit¸iile ¸iile 1.4 o infinitate de solut¸ii. ¸ii. Ca ¸si si ˆın ın cazul precedent, pentru p entru adoptarea adopta rea unui plan de transport vom introduce un nou criteri criteriu u economic economic.. S˘ a not˘ am am pentru aceasta prin cij costul transportului transportului unei unit˘at a¸i ¸t i din produsul considerat de la depozitul i la beneficiarul beneficiarul j ; evide evi dent, nt, ¸si 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
n
cij xij .
i=1 j=1 j =1
Problema Problema const˘ a ˆın determinarea solut¸iilor ¸iilor sistemulu sistemuluii de ecuat¸ii ¸ii ¸si si inegalit˘ inega lit˘at a¸i ¸ti 1.5-1.7 pentru care costul total de transport este minim, adic˘a:
≤ ≤ ≤ ≤ ≥ ≤ ≤ ≤ inf
m
i=1 j=1 j =1
n
j=1 j =1 m i=1
cij xij ,
xij = ai , 1
i
m,
xij = b j , 1
j
n,
xij
1.6. .6.
n
0, 1
i
m, 1
j
≤ n.
Aplic plica a¸ii ¸tii
Exercit¸iul ¸iul 1.6.1. 1.6.1. S˘a se scrie duala problemei de programare liniar˘a: a:
min(2x min(2x1 + 3x 3x2 + x3 ), x1 + x2 + 3x 3x4 3, 2x2 + 5x 5x3 + 4x 4x4 = 5, 2, x1 + x3 x1 , x2 0, x3 arbitrar, x4
≥
≤− ≥
≤ 0.
G˘ asit asit¸i ¸i solut¸ia ¸ia optim˘ o ptim˘a a problemei proble mei primale. primal e. R˘ aspuns: Respectˆand and regulile de formare a problemei duale obt¸inem: ¸inem:
−
max(3u max(3u1 + 5u 5u2 2u3 ), u1 + u3 2, u1 + 2u 2u2 3, 5u2 + u3 = 1, 1, 3u1 + 4u 4u2 0, u1 0, u2 arbitrar, u3
≥
≤ ≤ ≥
≤ 0.
˘ PROGRAMARE LINIAR A
12
Solut¸ia ¸ia problemei primale se poate g˘asi asi cu metoda simplex primal sau dual. Sintaxa MAPLE pentru rezolvarea acestei probleme este: > with( with(simplex) simplex) : > obiectiv := 2 x1 + 3 x2 + x3 ; > restrictii restrictii := x1 + x2 + 3 x4 >= 3, 3 , 2 x2 + 5 x3 + 4 x4 = 5, 5 , x1 + x3 <= 2 ; > minimize( minimize (obiect obiectiv, iv, restrict restrictii ii union union x1 >= 0, 0 , x2 >= 0, 0 , x4 <= 0 ); Solut¸ia ¸ia furnizat˘a de procedur˘a fiind:
∗ {
∗
∗
∗
∗
{
x1 = 0, 0 , x2 = 15 15//2, x3 = valoarea funct¸iei ¸iei obiectiv fiind 41/ 41/2.
∗
}
−}
−2, x4 = 0,0 ,
Exercit¸iul ¸iul 1.6.2. 1.6.2. Rezolvat¸i ¸i urm˘atoarea atoarea problem˘a de programare liniar˘ a precum ¸si si duala acesteia: acestei a:
min(2αx min(2αx1 + 3αx 3αx2 + αx3 ), x1 + x2 + 3x 3x4 3, 2x2 + 5x 5x3 + 4x 4x4 = 5, x1 + x3 2, x1 , x2 0, x3 arbitrar, x4
≥
≤− ≥
unde α este un parametru real.
≤ 0.
Exercit¸iul ¸iul 1.6.3. 1.6.3. Rezolvat¸i ¸i urm˘atoarea atoarea problem˘a de programare liniar˘ a precum ¸si si duala acesteia: acestei a:
min(2x min(2x1 + 3x 3x2 + x3 ), x1 + x2 + 3x 3x4 3 + α, 2x2 + 5x 5x3 + 4x 4x4 = 5 α, x1 + x3 2 + 2α, 2 α, x1 , x2 0, x3 arbitrar, x4
α este un parametru real.
≥
≤− ≥
−
≤ 0.
R˘ aspuns. Execit¸iile ¸iile 1.6.2-1.6.3 se pot rezolva fie prin aplicarea metodei simplex fie prin metoda postoptimiz˘arii arii considerˆ conside rˆand and ˆın tabelul tab elul simplex, simplex , obt¸inut ¸inut ˆın problema problem a 1.6.1., α = 0. 0. Exercit¸iul ¸iul 1.6.4. 1.6.4. S˘a se rezolve cu algoritmul simplex problema de programare liniar˘a: a: max(2x max(2x1 + x2 ), x1 x2 4, 3x1 x2 18 18,, x1 + 2x 2x2 6, x1 , x2 0.
−
− ≤ − ≤ ≤ ≥
13
APLI AP LICA CAT T ¸ I I
Exercit¸iul ¸iul 1.6.5. 1.6.5. S˘a se minimizeze expresia 2x 2 x1 + 3x2 cu sistemul de restrict¸ii: ¸ii:
− − − − ≥
x1 x2 + x3 = 1, x1 + x2 x4 = 1, x1 2x2 + x5 = 1, 1, 2x1 + x3 x4 = 2, 2, xi 0, i = 1, 1 , . . . , 5.
R˘ aspuns. ˆIn urma aplic˘arii arii algoritmului simplex primal obt¸inem ¸inem solut¸ia ¸ia x∗1 = 1, x∗2 = 0, x∗3 = 0, 0 , x∗4 = 0, x∗5 = 0, 0 , iar valoarea minim˘a a funct¸iei ¸iei obiectiv z ∗ = 2. 2. Exercit¸iul ¸iul 1.6.6. 1.6.6. Rezolvat¸i ¸i prob p roblema lema urm˘atoare ato are::
min(x min(x1 + 6x 6x2 ), 2x1 + x2 3, x1 + 3x 3x2 4, x1 , x2 0.
≥
≥ ≥
R˘ aspuns. Vom rezolva rezolva problema grafic. g rafic. Se va reprezenta ˆıntr-un sistem de axe a xe de coordonate co ordonate domeniul de admisibilitate. Pe acela¸si si grafic reprezent˘ am ¸si am si ecuat ecu at¸ia ¸ia x1 + 6x 6x2 = 0. 0 . Obt¸inem ¸inem figura 1.1.
Figura 1.1: Domeniul de admisibilitate ¸si si funct¸ia ¸ia obiectiv. Vom duce drepte paralele cu x2 =
− 16 x1
pˆ an˘ an˘ a se intersec intersecteaz˘ teaz˘ a cu domeniul
˘ PROGRAMARE LINIAR A
14
de admisibilita admisibilitate. te. Prima dreapt˘ dreapt˘ a care realizeaz˘a aceast˘ a intersect¸ie ¸ie ne furnizeaz˘a minimul funct¸iei ¸iei obiectiv zmin = 4. 4. ∗ ∗ Solut¸ia ¸ia optim˘ a este x1 = 4, 4 , x2 = 0. Exercit¸iul ¸iul 1.6.7. 1.6.7. G˘ asit asit¸i ¸i minimul funct¸iei ¸iei 2x 2x1 + 3x 3x2 + x3 cu restrict¸iile: ¸iile:
≥
x1 + x2 + 3x 3x4 3, 2x2 + 5x 5x3 + 4x 4 x4 = 5, x1 + x3 2, x1 , x2 , x3 , x4 0, 1 .
≤−
∈{ }
Exercit¸iul ¸iul 1.6.8. 1.6.8. S˘a se rezolve problema de programare liniar˘a ˆın forma standard: min(2x min(2x1 + 3x 3x2 ), x1 x2 + x3 = 1, 1, x1 + x2 x4 = 1, 1, x1 2x2 + x5 = 1, 2x1 + x3 x4 = 2, xi 0, 1 i 5.
− − − − ≥ ≤ ≤
R˘ aspuns. Pentru rezolvarea problemei prin metoda simplex primal vom rezolva maii ˆıntˆ ma ın tˆai ai problema: problema:
min(x min(x6 + x7 + x8 ), x1 x2 + x3 + x6 = 1, 1, x1 + x2 x4 + x7 = 1, 1, x1 2x2 + x5 = 1, 2x1 + x3 x4 + x8 = 2, 2, xi 0, 1 i 8.
− − − − ≥ ≤ ≤
(s-au introdus variabilele ecart x6 , x7 , x8 ˆın restri res trict ct¸iile ¸iile problemei init¸iale, ¸iale, cu except¸ia ¸ia celei de a treia restrict¸ie, ¸ie, unde variabia x5 este asociat˘a unui vector unitar al matricei tricei coeficient coeficien¸ilor). ¸t ilor). Baza primal admisibil˘ admisibil˘ a este format˘a din coloanele matricei A corespunz˘ atoare atoare variabilelor x6 , x7 , x5 , x8 . Tabelul simplex asociat 1.2 este: TABELUL 1.2
V.B. V.B. x6 x7 x5 x8
V.V. V.V.B. B. 1 1 1 2 4
x1 1 1 1 2 4
x2 1 1 2 0 0
− −
x3 1 0 0 1 2
x4 0 1 0 1 2
− − −
x5 0 0 1 0 0
x6 1 0 0 0 0
x7 0 1 0 0 0
x8 0 0 0 1 0
15
APLI AP LICA CAT T ¸ I I
Vectorul ectorul care intr˘ intr˘a ˆın baz˘a este este eviden evidentt a1 conform criteriului de intrare ˆın baz˘ a. a . Dup˘ Dup˘ a cum ne indic˘a criteriul de ie¸sire sire din baz˘a, a, oricare dintre variabilele de baz˘a poate p˘ar˘ ar˘ asi asi baza: pentru pentru a face face o aleger alegere, e, vom elimina elimina din baz˘ a vectorul 6 coesp co espunz˘ unz˘ator ato r variabil varia bilei ei x6 , adic˘a a . Obt¸inem ¸inem deci tabelul simplex 1.3: TABELUL 1.3
V.B. V.B. x1 x7 x5 x8
V.V. V.V.B. B. 1 0 0 0 0
x1 1 0 0 0 0
x2 1 2 1 2 4
x3 1 1 1 1 2
x4 0 1 0 1 2
− − − − − − − − −
x5 0 0 1 0 0
x6 1 1 1 2 4
− − − −
x7 0 1 0 0 0
x8 0 0 0 1 0
Se observ˘a c˘a tabelul simplex 1.3 obt¸inut ¸inut ne arat˘a c˘a valoarea funct¸iei ¸iei obiectiv este nul˘a. a. Toate variabilele variabilele artificiale artificiale sunt nule, nule, dar x7 ¸si si x8 sunt su nt ˆınc˘ ın c˘a variabile de baz˘ a. a. Se vede u¸sor sor c˘a variabila x7 poate fi eliminat˘a din baz˘a ¸si si ˆınlo ın locu cuit it˘ a˘ cu x2 , B deoarece pivotul y72 = 2 este nenul. Dup˘a calcule se obt¸ine ¸ine tabelul simplex 1.4: TABELUL 1.4
V.B. V.B. x1 x2 x5 x8
V.V. V.V.B. B. 1 0 0 0 0
x1 1 0 0 0 0
x2 0 1 0 0 0
x3 1/2 1/2 3/2 0 0
− −
x4 1/2 1/2 1/2 0 0
− − −
x5 0 0 1 0 0
x6 1/2 1/2 1/2 1 1
− − − −
x7 1/2 1/2 1/2 1 1
− −
x8 0 0 0 1 0
Variabila artificial˘ a x8 nu mai poate fi eliminat˘a dintre variabilele de baz˘a, a, deoarece tot¸i ¸i coeficient¸ii ¸ii y8 j , 1 j 5, sunt sunt egali egali cu zero zero.. Ac Aces estt fapt fapt ne arat˘ arat˘ a c˘ a ecuat¸ia ¸ia a patra din problema init¸ial˘ ¸ial˘a este o consecint¸˘ ¸a˘ a celorlalte patru ecuat¸ii ¸ii (ecuat¸ia ¸ia a patra este suma primelor dou˘a ecuat¸ii, ¸ii, situat¸ie ¸ie ce putea fi observat˘a de ˆ la ˆınceput ınc eput). ). In acest caz, ecuat¸ia ¸ia a patra poate fi neglijat˘a ¸si si deci linia a patra a tabelului simplex poate fi eliminat˘a; a; partea r˘amas˘ amas˘ a a tabelului simplex nu mai cont¸ine ¸ine variabile artificiale de baz˘a ¸si, si, ca urmare, prima faz˘a este terminat˘a. a. Vom trece acum la faza a doua a metodei, adic˘a la rezolvarea problemei init¸iale, ¸iale, folosind drept baz˘a init¸ial˘ ¸ial˘ a ultima baz˘a obt¸inut˘ ¸inut˘ a din tabelul 1.4, dup˘a eliminarea ultimei linii.
≤ ≤
˘ PROGRAMARE LINIAR A
16 Tabelul simplex corespunz˘ator ator este tabelul 1.5: TABELUL 1.5
V.B. V.B. x1 x2 x5 z
V.V. V.V.B. B. 1 0 0 2
x1 1 0 0 0
x2 0 1 0 0
x3 1/2 1/2 3/2 1/2
x4 1/2 1/2 1/2 5/2
− − − −
x5 0 0 1 0
− − − Deoarece z j − c j ≤ 0 pentru tot¸i ¸i j, 1 ≤ j ≤ 5, rezult˘a c˘a am obt¸inut ¸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 ¸iei obiectiv este z ∗ = 2.
Capitolul 2
˘ PROGRAMARE DINAMICA 2.1. 2.1.
Forma orma unei probl problem eme e de optimiz optimizare are secv secvent ent ¸ial˘ a
Programar Programarea ea dinamic˘ a este o metod˘a de rezol rezolv vare are a unei unei clas clasee de prob proble leme me,, al c˘aror aror model matematic prezint˘a caracteristicile unui sistem secvent¸ial. ¸ial. ˆIntr-o astfel de problem˘a, a, la fiecare faz˘a t T , cu T R, se alege o solut¸ie ¸ie (decizie, strategie, politic˘a) a) xt dintr-o mult¸ime ¸ime de solut ¸ii admisibile admisibile X t , X t M nt , unde M R, iar nt N∗ , putˆ andu-se andu-se de fiecare dat˘a m˘ asura asura eficient¸a ¸a (sau utilitatea) ut a solut¸iei ¸iei alese. Problema de optimizare const˘a ˆın determinarea determi narea solut¸iei ¸iei globale optimizeaz˘ a o funct ¸ie de eficient ¸a ˘ global˘ a f care este definit˘a cu x = (xt )t∈T care optimizeaz˘ ajutorul funct ¸iilor de eficient ¸a ˘ part ¸ial˘ a ut , t T . Evolut¸ia ¸ia sistemului este descris˘a ¸si de familia parametrilor de stare (st )t∈T a c˘ aror aror lege de variat¸ie ¸ie este cunoscut˘a ¸si si depend dep endent˘ ent˘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 a vem o pro p robl blem˘ em˘a de programare stochastic˘ a ). ) . S˘a not˘ no t˘am am cu S t mult¸imea ¸imea st˘arilor arilor la momentul t.
∈
⊆
⊂
⊆
∈
∈
→
Definit¸ia ¸ia 2.1.1. 2.1.1. (Caracteristicile unui sistem secvent ¸ial.) ¸ial.) O funct¸ie ¸ie s : T S t cu s(t) = st t T , st S t se nume¸ num e¸ste ste traiectoria, traiect oria, corespunz˘ corespu nz˘atoare atoare deciziei globale x = (xt )t∈T , a sistemului secvent¸ial. ¸ial. Aceasta Aceasta descrie descrie starea sistemului sistemului de-a lungul ˆıntregii perioade perio ade de timp T , T , ˆın cond co ndit it¸iile ¸iile alegerii deciziei x.
∀∈
∈
Avem ˆın general gen eral::
xt = xt (st ) uti : S ti 1 X ti τ ti : S ti 1 X ti −
−
× ×
→ R, → S t , i
uti = uti (sti , xti ) τ ti = τ ti (sti 1 , xti ).
Traiectoria s depinde de starea init¸ial˘ ¸ial˘ a st0 = s0 17
−
∈ S t , t0 fiind momentul init¸ial. ¸ial. 0
˘ PROGRAMARE DINAMIC A
18
Definit¸ia ¸ia 2.1.2. 2.1.2. Se nume¸ num e¸ste st e traiectorie optim˘ a traiectoria s∗ corespunz˘atoare atoare ∗ unei decizii optime x care optimizeaz˘a funct¸ia ¸ia obiectiv. Tehnica program˘arii arii dinamice const˘a ˆın determinarea solut¸iilor ¸iilor optime optim e globale globa le ¸si si a valorii optime a funct¸iei ¸iei obiectiv, prin rezolvarea secvent¸ial˘ ¸ial˘ a a unor probleme de optimizare asociate problemei init¸iale, ¸iale, dar mult mai simple decˆat at aceasta deoarece optimul se calculeaz˘a dup˘ a o singur˘a variabil˘a. a. Bellman a formulat ˆın 1957 principiul optimalit˘ at a¸ii: ¸t ii: o condit condit¸ie ¸ie necesar˘ necesar˘ a ca o traiectorie s∗ s˘ a fie optim˘a este ca ∗ t1 , t2 T , t1 < t2 , s [t1 ,t2 ] s˘ a fie traiectorie optim˘a a sistemului restrict¸ionat ¸ionat ∗ la intervalul [t [t1 , t2 ], cˆand and st1 = s (t1 ) adic˘a orice substrategie a unei strategii optime este es te ea ˆıns˘ ın s˘ a¸si si opti op tim˘ m˘ a . Pentru a fixa ideile, ˆın ın cele ce urmeaz˘a, a, vom presupune c˘a avem de-a face cu o problem˘ a de minimizare, toate considerat¸iile ¸iile fiind valabile f˘ar˘ ar˘ a nici un fel de restrict¸ii ¸ii ¸si si pentru pe ntru problema proble ma de maxim. ma xim. Forma general˘ g eneral˘a a unei probleme probleme de optimizare optimizare (minimizare) ce urmeaz˘a a fi rezolvat˘a prin aceast˘a tehnic˘a este urm˘atoarea: atoarea:
∀
∈
|
{ ∈
| ∈ X 1(s0), . . . , xn ∈ X n(sn−1)}
min f ( f (u1 (s0 , x1 ), . . . , un (sn−1 , xn )) x1 si = τ i (si−1 , xi ), i = 1, n si S i , i = 1, n.
Problema Problem a de optimizare optimi zare astfel definit˘a se nume¸ste ste efectiv decompozabil˘ a , adic˘a vectorul de stare si , la ie¸sirea sirea din faza i, nu depinde decˆat at de vectorul de stare si−1 ¸si si de decizia deci zia xi , luat˘a ˆın faza i. Funct¸iile ¸iile ui sunt funct ¸iile de eficient ¸˘ a la faza i cˆand and se ia decizia xi ¸stii st iind nd c˘a vectorul de stare este si . Toate elementele descriptive ale unei probleme de optimizare sunt determinate de o decizie aleas˘a ¸si si de starea init¸ial˘ ¸ial˘ a s0 :
∼
∼
s1 = τ 1 (s0 , x1 ) =τ 1 (s0 , x1 ), u1 (s0 , x1 ) =u1 (s0 , x1 ), x1
∈ X 1(s0) =X ∼ 1 (s0)
∼
s2 = τ 2 (τ 1 (s0 , x1 ), x2 ) = τ 2 (s0 , x1 , x2 ), u2 (s1 , x2 ),
∼
u2 (τ 1 (s0 , x1 ), x2 ) = u2 (s0 , x1 , x2 ), x2
∈ X 2(τ 1(s0, x1)) =X ∼ 2 (s0, x1)
...........................................
∼
si = τ i (τ i−1 (s0 , x1 , x2 , . . . , xi−1 ), xi ) = τ i (s0 , x1 , x2 , . . . , xi ),
∼ ∼
∼
ui (si−1 , xi ) = ui ( τ i−1 (s0 , x1 , x2 , . . . , u xi−1 ), xi ) =ui (s0 , x1 , . . . , xi ), xi
∈
X i ( τ i−1 (s0 , x1 , x2 , . . . , xi−1 ))
∼
= X i (s0 , x1 , . . . , xi−1 )
pentru i = 2, 2 , n.
19
TEOREMA DE OPTIM Funct¸ia ¸ia obiectiv se scrie:
∼
∼
∼
∼
f ( f (u1 (s0 , x1 ), u2 (s0 , x1 , x2 ), . . . , un (s0 , x1 , . . . , xn )) =f (s0 , x1 , . . . , xn ). Definit¸ia ¸ia 2.1.3. 2.1.3. O solut¸ie ¸ie (decizie) x∗ (s0 ) = (x∗1 (s0 ), . . . , x∗n (s0 )) admisibil˘a se spune c˘a este optim˘a relativ la starea init¸ial˘ ¸ial˘ a s0 pentru o problem˘a de optimizare sub forma secvent¸ial˘ ¸ial˘ a, a, dac˘a: a:
∼
∼
| ∈∼
f (s0 , x∗1 (s0 ), . . . , x∗n (s0 )) = min f (s0 , x∗1 , . . . , x∗n ) x1 X 1 (s0 ), . . . ,
{
∈∼
}
. . . , xi X i (s0 , x1 , . . . , xi−1 ), i = 1, 1, n . Rezolv Rezolvare areaa unei unei proble probleme me de optimi optimizar zaree pus˘ pus˘a ˆın forma secvent¸ial˘ ¸ial˘ a const˘a ˆın ∗ ∗ ∗ g˘ asirea asirea unei solut¸ii ¸ii x (s0 ) = (x1 (s0 ), . . . , xn (s0 )), )), ˆın func fu nct¸ie ¸t ie de starea init¸ial˘ ¸ial˘a s0 , astf as tfel el ˆıncˆ ın cˆat at funct¸ia ¸ia de eficient¸˘ ¸a˘ global˘ a f s˘ a fie optim˘a. a.
2.2. 2.2.
Teore eorema ma de opti optim m
Pentru a formula teorema de optim trebuie s˘a definim mai ˆıntˆ ai a i not¸iunea ¸iunea de ˆ funct ¸ie decompozabil˘ a. In esent¸˘ ¸a, a˘, acest lucru ˆınseamn˘a c˘ a problema se poate descompu sco mpune ne ˆıntr-un ıntr- un num˘ar ar de faze.
× × → × → × →
Definit¸ia ¸ia 2.2.1. 2.2.1. O funct¸ie ¸ie f : D = S X Y R, unde X , Y ¸si si S sunt mult¸imi ¸imi nevide nevi de se nume¸ste ste decomp deco mpoza ozabil˘ bil˘a dac˘ d ac˘a exist˘ exist˘a funct¸iile ¸iile u, v : D R, u fiind constant˘ a ˆın raport rap ort cu variabila y Y (exist˘ Y (exist˘ a u : S X R astfel ast fel ˆıncˆ ınc at aˆt u (s,x,y) s,x,y) = u(s, x), (s,x,y) s,x,y) D) ¸si si o funct fun ct¸ie ¸ie F :u (D) v (D) R, F ( F (α, .) monoton cresc˘atoare atoare pentru fiecare α u (D), astf as tfel el ˆıncˆ ın cˆat at f ( f (s,x,y) s,x,y) = F ( F (u(s, x), v (s,x,y)) s,x,y )) (s,x,y) s,x,y) D.
∀
∈
∈ ∈
→
∀
∈
Teorema eorema 2.2.1. 2.2.1. ( Teorema de optim). Dac˘ a F a F este decompozabil˘ decompozabil˘ a ¸si si dac˘ da c˘ a exist˘ a pentru orice s S :
∈
min f ( f (s,x,y); s,x,y); min min F ( F (u(s, x), min v (s,x,y));min s,x,y));min min f ( f (s,x,y) s,x,y), x,y
x
atunci pentru orice s
y
x
y
∈ S avem:
min f ( f (s,x,y) s,x,y) = min F ( F (u(s, x), min v (s,x,y)) s,x,y )).. x,y
x
y
˘ PROGRAMARE DINAMIC A
20
2.3.
Programa Prog ramare re dinamic˘ din amic˘ a regresiv˘ regre siv˘ a
2.3. 2.3.1. 1.
Ecua Ecuat¸iile ¸tiile program˘arii arii dinamice dinamic e regresive regresi ve
Pentru a pune sub forma unui algoritm problema secvent¸ial˘ ¸ial˘ a trebuie s˘a existe o anume leg˘atur˘ atur˘ a de tip recursiv ˆıntre ıntre funct¸iile ¸iile de eficient¸˘ ¸a˘ trunchiate ale procesului la fazele i: f n−i+1 (ui (si−1 , xi ), . . . , un (sn−1 , xn )) =
= F n−i+1 (ui (si−1 , xi ), f n−i (ui+1(si , xi+1 ), . . . , un (sn−1 , xn )), )),
unde prin f n−i+1 s-a notat funct ¸ia de eficient ¸a ˘ asociat˘ a procesului de decizie trunchiat la fazele i, i + 1, 1 , . . . , n pentru i = 1, 2, . . . , n 1, cu f 1 (un ) = un ¸si si f n = f. Aceast˘a propri pr oprieta etate te se nume¸ste ste proprietatea de decompozabilitate a decompozabilitate a funct¸iei ¸iei obiectiv. Ecuat¸ia ¸ia se rescrie:
−
∼
∼
f n−i+1 (si−1 , xi , . . . , xn ) = F n−i+1 (ui (si−1 , xi ), f n−i (τ i (si−1 , xi ), xi+1, . . . , xn )), )),
∼
∀i = 1,1 , n − 1, ∀si−1 ∈ S i−1, ∀xi ∈ X i(si−1), ∀xn ∈ X n(sn−1), ∼
∼
cu f 1 = un ¸si si f n =f = f = f.
∼
Aplic˘ am teorema de optim funct¸iilor am ¸iilor f n−i+1 pentru i = 1, 1 , 2, . . . , n
{
∼
|
−1:
}
min f n−i+1 (si−1 , xi , . . . , xn ) xi , . . . , xn =
{
∼
= min F n−i+1 (ui (si−1 , xi ), min f n−i (τ i (si−1 , xi ), xi+1 , . . . xi
|
}
. . . , xn ) xi+1 , . . . , xn ).
{
∼
|
}
Not˘am a m cu gn−i+1 (si−1 ) = min f n−i+1 (si−1 , xi , . . . , xn ) xi , . . . , xn , valoarea optimului procesului de decizie trunchiat la fazele i, i + 1, 1, . . . , n . Avem: gn−i (si−1 ) = gn−i (τ i (si−1 , xi )) ¸si ob¸inem: ¸tinem: gn−i+1 (si−1 ) = min F n−i+1(ui (si−1 , xi ), gn−i (τ i (si−1 , xi )), )), i = 1, 1, n xi
cu g1 (sn−1 ) = min un (sn−1 , xn ). xi
Aceste Aceste ecuat¸ii ¸ii se numesc ecuat ¸iile program˘ arii dinamice regresive .
−1
˘ REGRESIV A ˘ PROGRAMARE DINAMIC A
2.3.2.
21
Rezolvarea Rezolvarea problemelo problemelorr de programar programare e regresiv regresiv˘ ˘ a
Elementele prezentate ˆın paragrafele precedente ne permit p ermit s˘a elabor˘am am urm˘atorul atorul algoritm algoritm de rezolvare rezolvare a problemelor problemelor de optimizare optimizare dinamice regresiv regresive. e. PASUL 0. Problema matematic˘ a se codific˘a sub forma unei probleme de programare grama re liniar˘a, a, punˆandu-se andu-se ˆın evident¸˘ ¸a˘ funct¸ia ¸ia obiectiv ¸si si sistemul de restrict¸ii ¸ii corespunz˘ator. ator. PASUL 1. Se pune problema sub forma unui proces secvent¸ial ¸ial de decizie urm˘aa-rindu-se urm˘atoarele atoarele elemente: i) forma funct¸ional˘ ¸ional˘ a a funct¸iilor ¸iilor de transfer τ i : S i−1 X i S i :
× →
si = τ i (si−1 , xi ), i = 1, 1 , n. ii) spat¸iul ¸iul st˘arilor arilor posibile: posibile: S 0 , S 1 , . . . , Sn ; iii) spat¸iul ¸iul deciziilor: X i (si−1 ); iv) funct¸iile ¸iile part¸iale ¸iale de eficient¸˘ ¸a˘ ui (si−1 , xi ), i = 1, 2, . . . , n; n;
∼
v) funct¸iile ¸iile obiectiv ale proceselor trunchiate la fazele i, i+1 +1,, . . . , n : f i (xi , . . . , xn ) pentru i = 1, 2, . . . , n. n. rezolv˘a problema din faza n, adic˘a se calculeaz˘a: a: PASUL 2. Se rezolv˘
∼
min f 1 (sn−1 , xn ) xn
{
| ∈ X n(sn−1)} = min{un(sn−1, xn)|xn ∈ X n(sn−1)} = g1(sn−1),
unde sn−1 este parametru. Deci pentru sn−1 S n−1 se determin˘a x∗n−1 (sn−1 )
∈
∈ X n(sn−1), astf as tfel el ˆıncˆ ın cˆat: at:
g1 (sn−1 ) = un (sn−1 , x∗n−1 (sn−1 )). )). Se atribuie atribuie contorulu contoruluii i valoarea n 1. Ac Aces estt contor contor are semni semnific ficat at¸ia ¸ia fazei fazei i a procesului secvent¸ial. ¸ial. PASUL 3. Se rezolv˘ rezolv˘ a problema din faza i a c˘ arei arei necunoscut˘a este xi , iar si−1 este parametru. parametru. Deci pentru si−1 S i−1 , se determin˘a valorile x∗i (si−1 ) X i (si−1 ) pentru care:
−
∈
gn−i+1(si−1 )
∈
= F n−i+1 (ui (si−1 , x∗i (si−1 )), )), gn−i (τ i (si−1 , x∗i (si−1 ))))
{
∼
| ∈ X i(si−1)}.
= min f n−i+1 (si−1 , xi , . . . , xn ) xi
actualizeaz˘ a i := i + 1. 1. PASUL 4. Dac˘ a i > 1 goto PASUL 3. Se determin˘a, a, pentru s0 S 0 , valoarea x∗1 (s0 ) pentru care avem:
∈
∼
∼
f (s0 , x∗1 (s0 ), . . . , x∗n (s0)) = min f n (s0 , x1 , . . . , xn ) x1 , . . . , xn = gn (s0 ),
{
|
}
˘ PROGRAMARE DINAMIC A
22
unde x∗2 (s0 ) = x∗2 (τ 1 (s0 , x∗1 (s0 )) etc. PASUL 5. Se optimizeaz˘a pe mult¸imea ¸imea vectorilor init¸iali ¸iali pentru a afla s∗0 :
∼
f (s∗0 , x∗1 (s∗0 ), . . . , x∗n (s∗0 )) = min gn (s0 ) = gn (s∗0 ), s0 S 0
∈
atins pentru starea init¸ial˘ ¸ial˘ a s∗0 . PASUL 6. Se scrie solut¸ia ¸ia optim˘ a: a: x∗ = (x ( x∗1 , . . . , x∗n ) unde x∗1 = x∗1 (s∗0 ), x∗2 = x∗2 (τ 1 (s0 , x∗1 (s0 )) etc.
2.3. 2.3.3. 3.
Apli Aplica cat¸ii ¸tii
Exercit¸iul ¸iul 2.3.1. 2.3.1. O unitate comercial˘a trebuie s˘a r˘ aspund˘ aspund˘ a unei cereri de 25 unit˘ at a¸i ¸ti dintr-un anumit tip de produs, cerere e¸salonat˘ salonat˘a pe p e o perioad˘a de 4 luni. La ˆıncepu ınc eputul tul fiec˘arei 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, a, conform datelor din tabelul 2.1: TABELUL 2.1
luna i cererea pret¸
1 2 3 4 5 7 α 5 12 12β β 10 10β β 9β 10β 10β
S˘a se determine politica optim˘a de reaprovizionare a unit˘at a¸ii ¸t ii cu produsul respectiv, astfel ˆıncˆat at toate cererile s˘a fie satisf˘acute, acute, ¸stiind stiind c˘a ˆın depozitul respectiv se g˘ asesc asesc la ˆınceputul primei luni 3 unit˘at a¸i ¸ti de d e pro p rodus dus ¸si si c˘a nu pot fi p˘astrate astrat e ˆın depozit dep ozit mai mult mult de 9 unit˘ unit˘ at a¸i ¸t i de produs, iar la sfˆar¸ ar¸situl situl ultimei luni toate produsele au fost vˆ andute. andute. Parametrul β este un num˘ar ar real strict pozitiv. R˘ aspuns. PASUL 0. Deoarece Deoare ce cererea trebuie trebui e s˘a fie de 25 unit˘at at¸i ¸i avem: 5 + 7 + α + 5 = = 25 deci deci α = 8. 8 . Se codific˘a problema: Se noteaz˘a cu xi num˘arul arul de unit˘at a¸i ¸ti comandate la ˆınceputul lunii i ¸si cu si stocul existent la sfˆar¸ ar¸situ si tull lun l unii ii i. Funct¸ia ¸ia de minimizat este: 12 12βx βx 1 + 10βx 10βx 2 + 9βx 9βx 3 + 10βx 10βx 4 , putem deci presupune c˘a β = 1 avˆand and grij˘ a ca la final s˘a ˆınmu ın mult lt¸im ¸im valoarea optim˘a a funct¸iei ¸iei obiectiv cu β .
˘ REGRESIV A ˘ PROGRAMARE DINAMIC A
23
Avem: 3 + x1 + x2 + x3 + x4 = 25 sau x1 + x2 + x3 + x4 = 22 Avem: 2 2. 3 + x1 9 ¸si si 3 + x1 5 0 deci x1 [2, [2, 6], 6], 3 + x1 5 + x2 9 ¸si si 3 + x1 5 + x2 7 0 deci x1 + x2 [9, [9, 11] 11],, 3+x 3+ x1 5+ 5+x x2 7+ 7+x x3 9 ¸si 3 + x1 5+ 5+x x2 7+ 7+x x3 8 0 deci x1 + x2 + x3 [17 [17,, 18] 3 + x1 5 + x2 7 + x3 8 + x4 9 (echivalent cu 5 9 inegalitate care spune c˘a dup˘a ce s-a efectuat comanda comanda la ˆınceputul ınceputul lunii a 4-a mai este de satisf˘ satisf˘acut acut o cerere de 5 unit˘at a¸i ¸ti de produs) prod us) ¸si si 3 + x1 5 + x2 7 + x3 8 + x4 5 = 0 (ecuat (ecuat¸ie ¸ie ce constituie o verificare part¸ial˘ ¸ial˘ a). a). Problema Problema de minimizat minimizat devine: devine:
≤ − − −
− ≥ ∈ ≤ − − ≥ ∈ − ≤ − − − ≥ − − ≤ ≤ − − − −
∈
min(12x min(12x1 + 10x 10x2 + 9x 9x3 + 10x 10x4 ) 2 x1 6 9 x1 + x2 11 4 x4 5 x1 + x2 + x3 + x4 = 22 22..
≤ ≤ ≤ ≤ ≤ ≤
PASUL 1. Se determin˘a spat¸iul ¸iul st˘arilor arilor S i , i = 0, 0 , 4: s0 = 3 S 0 = 3 , s1 = s0 + x1 5 = x1 2 S 1 = [0, [0 , 4], 4], s2 = s1 + x2 7 = x1 + x2 9 S 2 = [0, [0 , 2], 2], s3 = s2 + x3 8 = x1 + x2 + x3 17 S 3 = [0, [0 , 1], 1], s4 = s3 + x4 5 = x1 + x2 + x3 + x4 17 5 = 0 S 4 = 0 . Se determin˘a spat¸iul ¸iul deciziilor X i (si−1 ), i = 1, n : x1 X 1 (s0 ) = [5 s0 , 9 s0 ] = [2, [2 , 6], 6], x2 X 2 (s1 ) = [7 s1 , 9 s1 ], x3 X 3 (s2 ) = [8 s2 , 9 s2 ], x4 X 4 (s3 ) = 5 s3 . Funct¸iile ¸iile de transfer: τ i (si−1 , xi ), i = 1, 1, n : τ 1 (s0 , x1 ) = s0 + x1 5, τ 2 (s1 , x2 ) = s1 + x2 7, τ 3 (s2 , x3 ) = s2 + x3 8, τ 4 (s3 , x4 ) = s3 + x4 5 = 0. 0. Funct¸iile ¸iile part¸iale ¸iale de eficient¸˘ ¸a˘ sunt: u1 (s0 , x1 ) = 12x 12x1 , u2 (s1 , x2 ) = 10x 10x2 , u3 (s2 , x3 ) = 9x 9 x3 , u4 (s3 , x4 ) = 10x 10x4 , ¸si si func fu nct¸iile ¸t iile de eficient¸˘ ¸a˘ ale proceselor de decizie trunchiate la fazele i , . . . , 4 (pentru i = 1, 1 , . . . , 4) sunt:
∈
{} − − ∈ − − ∈ − − ∈ − − − − − − − − − { − } − − − −
∈ ∈ ∈ ∈
{
}
∼ f 4 = 12 12x x1 + 10x 10x2 + 9x 9x3 + 10x 10x4 , ∼ f 3 = 10 10x x2 + 9x 9x3 + 10x 10x4 ,
∈
{}
˘ PROGRAMARE DINAMIC A
24
∼ ∼
f 2 = 9x3 + 10x 10x4 , f 1 = 10 10x x4 . PASUL 2. Se rezolv˘ rezolv˘a problema:
∼
min f 1 (sn−1 , xn ) xn
| ∈ X n(sn−1)} = min{u4(s3, x4)|x4 ∈ X 4(s3)} = = min{10 10x x4 |x4 ∈ {5 − s3 }} = 10(5 − s3 ) = 50 − 10 10ss3 , minim atins pentru x∗4 (s3 ) = 5 − s3 . {
PASUL 3/4. Se rezolv˘ rezolv˘a problema:
∼
{ | ∈ } { − | ∈ [8 − s2, 9 − s2]} = { − − | ∈ − − s 2 ]} = {− − | ∈ − − } −(9 − s2) − 10 10ss2 + 130 = − −
min f 3 x3 X 3 (s2 ) = min 9x3 + 50 10 10ss3 x3 = min 9x3 + 50 10(s 10(s2 + x3 8) x3 [8 s2 , 9 = min x3 10 10ss2 + 130 x3 [8 s2 , 9 s2 ] = = 121 9s2 , minim atins pentru x∗3 (s2 ) = 9 s2 . Se rezolv˘ rezolv˘a problema: problema:
∼
min f 2 x2
10x { | ∈ X 2(s1)} = min{10 x2 + 121 − 9s2 |x2 ∈ [7 − s1 , 9 − s1 ]} = = min{10 10x x2 + 121 − 9(s 9(s1 + x2 − 7)|x2 ∈ [7 − s1 , 9 − s1 ]} = = min{x2 − 9s1 + 184|x2 ∈ [7 − s1 , 9 − s1 ]} = 7 − s1 − 9s1 + 184 = −10 10ss1 + 191, 191, minim atins pentru x∗2 (s1 ) = 7 − s1 . Se rezolv˘ rezolv˘a problema: problema:
∼
{ | ∈ X 1(s0)} = min{12 12x x1 + 191 − 10 10ss1 |x1 ∈ [2, [2, 6]} = = min{12 12x x1 + 191 − 10(s 10(s0 + x1 − 5)|x1 ∈ [2, [2, 6]} = = min{2x1 − 10 10ss0 + 241|x1 ∈ [2, [2, 6]} = 243 − 10 10ss0 , min f 1 x1
minim atins pentru x∗1 (s∗0 ) = 2, 2 , s∗0 = 3. 3. PASUL 5. Avem: s∗1 = s∗0 + x∗1 5 = 0 deci x∗2 (s1 ) = 7, 7, ∗ ∗ ∗ ∗ s2 = s1 + x2 7 = 0 deci x3 (s2 ) = 9, 9, ∗ ∗ ∗ ∗ s3 = s2 + x3 8 = 1 deci x4 (s3 ) = 4. 4. ∗ PASUL 6. Solut¸ia ¸ia optim˘ a x = (2, (2, 7, 9, 4) iar traiectoria optim˘a este s∗ = (0, (0, 0, 1, 0). 0).
− − −
Exercit¸iul ¸iul 2.3.2. 2.3.2. Un depozit trebuie s˘a r˘ aspund˘ aspund˘ a unei cereri de marf˘a totale de α unit˘ at a¸i ¸t i de produs de la m beneficiari (cererea fiec˘arui arui beneficiar este de αi unit˘ at a¸i ¸ti de produs). produs). Dac˘ Dac˘a costul de aprovizionare ¸si si transport transp ort al unei unit˘at a¸i ¸t i de produs la
˘ REGRESIV A ˘ PROGRAMARE DINAMIC A
25
beneficiarul i este β i , iar depozitul dispune init¸ial ¸ial de γ unit˘ at a¸i ¸ti de produs ¸si si dac˘a acesta nu poate det¸ine ¸ine ˆın ın stoc mai mult de δ unit˘ at a¸i ¸t i de produs s˘a se determine politica optim˘ a de reaprovizionare cu produsul respectiv astfel ˆıncˆ ıncˆat at toate cererile s˘a fie satisf˘acute. acute. La final mai exist˘a ˆın stoc sto c ε unit˘ at a¸i ¸t i de produs. Indicat ¸ie. Se noteaz˘a cu xi num˘arul arul de unit˘at a¸i ¸ti de produs comandate la ˆınceputul livr˘arii arii i ¸si cu si stocul existent dup˘a livrarea i. Problema de programare ce trebuie rezolvat˘a este:
− − ≤ ≤ ≥ ∀ min m
i=1 j i=1
m
i=1
xi = α
m
i=1
γ + γ + ε, j
αi
xi
unde α =
β i xi
γ
i=1
j 1
xi
−
i=1
αi + δ
− γ ∀ j = 1,1 , m,
0 i = 1, m.
αi . Se vor pune ˆın evident¸˘ ¸a˘ funct¸iile ¸iile reciproce de transfer, funct¸iile ¸iile
part¸iale ¸iale de eficient¸˘ ¸a, a˘, funct¸iile ¸iile de eficient¸˘ ¸a˘ ale proceselor trunchiate, spat¸iul ¸iul st˘arilor arilor ¸si si spat sp at¸iile ¸iile de decizie. decizie. Problema se va rezolva prin metoda program˘arii ari i regresive regr esive ˆın n faze. Exercit¸iul ¸iul 2.3.3. 2.3.3. S˘ a se g˘aseasc˘ aseasc˘a o planificare optim˘a unei investit¸ii ¸ii de 5 milioane dolari pentru construirea a trei obiective cunoscˆand and randamentele investit¸iilor ¸iilor pe obiective, obiect ive, a¸sa sa cum sunt prezentate prezentat e ˆın ın tabelul tab elul 2.2. TABELUL 2.2
Investit¸ii 0 1 2 3 4 5
Obie Obiect ctiv iv 1 0 0, 20 0, 35 0, 51 0, 68 0, 75
Obie Obiect ctiv iv 2 0 0, 23 0, 34 0, 50 0, 63 0, 79
Obie Obiect ctiv iv 3 0 0, 19 0, 37 0, 49 0, 65 0, 80
R˘ aspuns . Modelul matematic al problemei este:
max(r max(r1 (x1 ) + r2 (x2 ) + r3 (x3 )) x1 + x2 + x3 = 5, xi 0, 1, 2, 3, 4, 5 , i = 1, 1 , 2, 3, 4, 5.
∈{
}
˘ PROGRAMARE DINAMIC A
26
ˆIn vederea rezolv˘arii arii problemei cu ajutorul program˘arii arii dinamice, se pune mai ˆıntai aˆi problema sub forma unui proces secvent¸ial ¸ial de decizie. Pentru realizarea acestui scop, se noteaz˘ notea z˘a cu si , i = 1, 2, 3, suma investit˘a ˆın primul primu l obiecti obi ectiv, v, ˆın primul primu l ¸si si al doilea, doilea , ¸si si respect re spectiv iv suma s uma investit˘a ˆın cele trei obiective. Avem: s0 = 0, 0 , s1 = s0 + x1 , s2 = s1 + x2 , s3 = s2 + x3. Folosind aceste egalit˘at a¸i, ¸t i, obt¸inem ¸inem cu ajutorul sistemului de restrict¸ii, ¸ii, S 0 = 0 , S 1 = S 2 = 0, 1, 2, 3, 4, 5 , S 3 = 5 . X 1 (s0 ) = 0, 1, 2, 3, 4, 5 , X 2 (s1 ) = 0, . . . , 5 s1 , X 3 (s2 ) = 5 s2 . Remarc˘ am am c˘a avem urm˘atoarele atoarele funct¸ii ¸ii de transfer: τ 1 (s0 , x1 ) = s0 + x1 , τ 2 (s1 , x2 ) = s1 + x2 , τ 3 (s2 , x3 ) = s2 + x3 . Funct¸iile ¸iile part¸iale ¸iale de eficient¸˘ ¸a, a˘, precum ¸si si funct¸iile ¸iile de decizie ale proceselor de decizie decizie trunchiate trunchiate la fazele i , . . . , 3 (pentru i = 1, 1 , . . . , 3) sunt urm˘atoarele: atoarele: u1 (s0 , x1 ) = r1 (x1 ), u2 (s1 , x2 ) = r2 (x2 ), u3 (s2 , x3 ) = r3 (x3 ),
{
}
{
{}
}
{
{}
{
− }
{ − }
}
∼
∼
∼
f 3 = r1 (x1 ) + r2 (x2 ) + r3 (x3 ), f 2 = r2 (x2 ) + r3 (x3 ), f 1 = r3 (x3 ). Se 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 arei faze, folosind ecuat¸iile ¸iile program˘arii arii regresive ¸si si obt¸inem: ¸inem: Faza 3. Avem:
{
| ∈ X 3(s2)} = r3(5 − s2),
g1 (s2 ) = max r3 (x3 ) x3 obt¸inut ¸inut pentru x∗3 (s2 ) = 5 Faza 2. Avem:
− s2 . {
| ∈ X 2(s1)} = max{r2 (x2 ) + r3 (5 − s1 − x2 )|x2 ∈ X 2 (s1 )}. g2 (s1 ) = max r2 (x2 ) + g1 (s1 + x2 ) x2
Succesiv obt¸inem: ¸inem: g2 (0) = max 0, 80;0 80;0,, 88;0 88;0,, 83;0 83;0,, 87;0 87;0,, 82;0 82;0,, 79 = 0, 0 , 88 pentru x∗2 (0) = 1; g2 (1) = max 0, 65;0 65;0,, 72;0 72;0,, 71;0 71;0,, 69;0 69;0,, 63 = 0, 0 , 72 pentru x∗2 (1) = 1; g2 (2) = max 0, 49;0 49;0,, 60;0 60;0,, 53;0 53;0,, 50 = 0, 0 , 60 pentru x∗2 (2) = 1; g2 (3) = max 0, 37;0 37;0,, 42;0 42;0,, 34 = 0, 0 , 42 pentru x∗2 (3) = 1; g2 (4) = max 0, 19;0 19;0,, 23 = 0, 0 , 23 pentru x∗2 (4) = 1; g2 (5) = max 0 = 0 pentru x∗2 (5) = 1. 1. Faza 1. Avem:
{ { { { { {}
}
}
}
}
}
{
| ∈ X 1(s0)} = = max{0, 88;0 88;0,, 92;0 92;0,, 95;0 95;0,, 93;0 93;0,, 91;0 91;0,, 75} = 0, 0 , 95 95,, g3 (s0 ) = max r1 (x1 ) + g2 (s0 + x1 ) x1
obt¸inut ¸inut pentru x∗1 (s∗0 ) = 2, unde s∗0 = s0 = 0. Avem ˆın continua cont inuare, re, s∗1 = = s∗0 +x∗1 = 2, 2, ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ de unde x2 (s1 ) = 1; s2 = s1 + x2 = 3, de unde x3 (s2 ) = = 5 s2 = 2; 2 ; s3 = s2 + s3 = 5. 5.
−
˘ PROGRESIV A ˘ PROGRAMARE DINAMIC A
27
ˆIn concluzie, am obt¸inut: ¸inut: max(r max(r1 (x1 ) + r2 (x2 ) + r3 (x3 )) = 0, 0 , 95 95,, pentru solut¸ia ¸ia ∗ ∗ ∗ ∗ optim˘a unic˘a x = (x1 , x2 , x3 ) = (2, (2, 1, 2), 2), iar traiectoria optim˘a a procesului este ∗ s = (2, (2 , 3, 5). 5).
2.4.
Programa Prog ramare re dinamic˘ din amic˘ a progresiv progr esiv˘ ˘ a
2.4. 2.4.1. 1.
Ecua Ecuat¸iile ¸tiile program˘arii arii dinamice dinamic e progresive progres ive
Procedura Procedura iterativ˘ iterativ˘ a descris˘a ˆın paragraful anterior este valabil˘ a f˘ ar˘ ar˘ a nici o restrict¸ie ¸ie asupra st˘arii arii init¸iale ¸iale sau finale. Aceste dou˘ dou˘a st˘ari ari au ˆın mod evident, roluri ˆ importante, a¸sa sa cum s-a v˘azut azut pentru starea s0 . In timp ce s1 , . . . , sn−1 sunt st˘ari ari de intrar int raree ¸si si ie¸sire, sir e, s0 este numai stare de intrare pentru faza 1 a problemei, iar sn numai stare de ie¸sire sire pentru faza n a problemei. problemei. Din punct de vedere matematic singurul lucru care deosebe¸ste ste s0 de sn este sensul de parcurs adoptat pentru procedura de rezolvare, sens care a fost impus de ecuat¸iile: si = τ i (si−1 , xi ),
i = 1, 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 ¸ii asupra st˘arilor arilor s0 ¸si/sau sn . Dac˘ a s0 este impus˘a, a, optimizarea din ultima faz˘ a a problemei conduce la un singur gn (s0 ) deoarece s0 nu mai este parametru, iar ˆın ın faza fa za 1 lu˘am am direct s0 = s∗0 . Deci schema propus˘a este viabil˘a. a. Dac˘ a sn este impus˘a, a, adic˘a sn = s∗n cu s∗n dat, trebuie ca starea init¸ial˘ ¸ial˘ a s0 ¸si si ∗ solut¸ia ¸ia opti op tim˘ m˘a x (s0 ) s˘a satisfac˘ a relat¸ia: ¸ia: s∗n = τ n (τ n−1 (. . . τ2 (τ 1 (s0 , x∗1 (s0 )), )), x∗2 (s0 )), )), . . . , x∗n (s0 )). )). Aceast˘a relat¸ie ¸ie nu poate fi verificat˘a decˆat at la sfˆar¸ ar¸situl sit ul pro p rocedu cedurii, rii, lucru luc ru care c are spore¸ sp ore¸ste ste timpul de procesare. Metoda de reducere reducere la cazul preceden precedentt este mult mai eficace, dac˘ a vom reu¸ reu ¸si si s˘a schimb˘am am sensul ˆın care au fost f˘acute acute calculele adic˘a s˘a me merg rgem em spre viitor prin folosirea funct ¸iilor reciproce de transfer : si−1 =τ i (si , xi ),
i = 1, 1 , n.
Funct¸iile ¸iile elementare de eficient¸˘ ¸a˘ ui , pentru i = 1, . . . , n , respectiv funct¸ia ¸ia obiectiv global˘ a f , f , devin ui (τ i (si , xi ), xi ) =ui (si , xi ), pentru i = 1, . . . , n , respectiv:
−
−
f ( f (u1 (s0 , x1 ), . . . , un (sn−1 , xn )) = f ( f (u1 (s1 , x1 ), . . . , un (sn , xn ))
∼
= f (sn , x1 , . . . , xn ),
˘ PROGRAMARE DINAMIC A
28
unde de data aceasta, ˆın mod similar cu ceea ce s-a ar˘atat atat anterior, toate elementele descriptive ale problemei pot fi exprimate ca funct¸ie ¸ie de decizie aleas˘a ¸si si star st area ea s0 . Similar se define¸ste ste decompozabilitatea progresiv˘a ¸si si se ajunge la ecuat ¸iile program˘ arii dinamice progresive .
2.4.2.
Rezolvarea Rezolvarea problemelor de programare programare progresiv˘ a
Elementele prezentate ˆın paragrafele precedente ne permit p ermit s˘a elabor˘am am urm˘atorul atorul algoritm algoritm de rezolvare rezolvare a problemelor problemelor de optimizare optimizare dinamice progresiv progresive. e. PASUL 0. Problema matematic˘ a se codific˘a sub forma unei probleme de programare grama re liniar˘a, a, punˆandu-se andu-se ˆın evident¸˘ ¸a˘ funct¸ia ¸ia obiectiv ¸si si sistemul de restrict¸ii ¸ii corespunz˘ator. ator. PASUL 1. Se pune problema sub forma unui proces secvent¸ial ¸ial de decizie avˆanduanduse ˆın vedere veder e urm˘atoare ato arele le elemente ele mente:: − i) forma funct¸ional˘ ¸ional˘ a a funct¸iilor ¸iilor reciproce reciproce de transfer transfer τ i : S i X i S i−1 :
× →
−
si−1 =τ i (si , xi ), i = 1, 1 , n. ii) spat¸iul ¸iul st˘arilor arilor posibile: posibile: S 0 , S 1 , . . . , Sn ;
−
iii) spat¸iul ¸iul deciziilor: X i (si ); − iv) funct¸iile ¸iile part¸iale ¸iale de eficient¸˘ ¸a˘ ui (si , xi ), i = 1, 1 , 2, . . . , n; n;
∼ −
v) funct¸iile ¸iile obiectiv ale proceselor secvent¸iale ¸iale trunchiate la fazele 1, 1 , . . . , i : f i (x1 , . . . , xi ) pentru i = 1, 1 , 2, . . . , n. n. PASUL 2. Se rezolv˘ rezolv˘a problema din faza 1, 1 , adic˘ a se calculeaz˘a: a:
∼
| ∈−
{− | ∈− } − unde sn−1 este parametru. parametru. Deci pentru pentru s1 ∈ S 1 se determin˘ determin˘ a valoarea x∗1 (sn ) ∈X 1 min f 1 (s1 , x1 ) x1 X 1 (s1 ) = min u1 (s1 , x1 ) x1 X 1 (s1 ) = g1 (s1 ),
{
}
(s1 ), astf as tfel el ˆıncˆ ın cˆat: at:
−
g1 (s1 ) =u1 (s1 , x∗1 (s1 )). )). Se atribuie contorului i valoarea aloarea 2. Acest contor contor are semnificat semnificat¸ia ¸ia fazei i a procesului procesului secvent¸ial. ¸ial. PASUL 3. Se rezolv˘a problema din faza i a c˘arei arei necunoscut˘ necuno scut˘a este xi , iar si este parametru. Deci pentru si
− −
ast fel ˆıncˆ ınc at: aˆt: ∈ S i, se determin˘a x∗i (si) ∈X − i (si) astfel
−
gi (si ) =F i (ui (si , x∗i (si )), )), gi−1 (τ i (si , x∗i (si )))). )))). actualizeaz˘ a i := i + 1;
˘ PROGRESIV A ˘ PROGRAMARE DINAMIC A
29
PASUL 4. Dac˘ a i < n goto PASUL 3. PASUL 5. Se determin˘a x∗n (sn ) X n (sn ) cu sn = s∗n ¸si si avem avem::
∈
∼ ∼ − ∗ ∗ ∗ ∗ ∗ f (s , x (s ), . . . , x (s )) = min{f n
1
n
n
n
n
(s∗n , x1 , . . . , xn ) x1 , . . . , xn =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 ¸ia optim˘ a: a: x∗ = (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 arile s0 sau sn sunt cunoscute, se merge de la starea necunoscut˘ a spre starea cunoscut˘a. a. ii) Dac˘ a ambele st˘ari ari sunt impuse ¸si si dac˘a se pot defini funct¸iile ¸iile de transfer atˆat at ˆıntr-un ıntr- un sens sen s cˆat at ¸si si ˆın cel˘ ce l˘alalt alalt atunci se poate opta pentru oricare dintre cele dou˘a metode de rezolvare, adic˘a progresiv sau regresiv.
2.4. 2.4.3. 3.
Apli Aplica cat¸ii ¸tii
Exercit¸iul ¸iul 2.4.1. 2.4.1. Aplicat¸ia ¸ia similar˘ similar˘ a celei de la paragraful paragraful de aplicat aplica¸ii ¸t ii corespunz˘ ator ator program˘ program˘ arii arii dinamice regresive. R˘ aspuns . Pasul Pasul 0 este este identic identic cu cel de la rezolv rezolvare area a aplicat aplicat¸iei ¸iei de la capitolul program˘ arii arii regresive. PASUL 1. Se determin˘a funct¸iile ¸iile reciproce reciproce de transfer: transfer: τ 1 (s1 , x1 ) = s1 x1 + 5, 5, τ 2 (s2 , x2 ) = s2 x2 + 7, 7, τ 3 (s3 , x3 ) = s3 x3 + 8, 8, τ 4 (s4 , x4 ) = s4 x4 + 5. 5. Funct¸iile ¸iile part¸iale ¸iale de eficient¸˘ ¸a˘ sunt: u1 (s1 , x1 ) = 12x 12x1 , u2 (s2 , x2 ) = 10x 10x2 , u3 (s3 , x3 ) = 9x3 , u4 (s4 , x4 ) = 10x 10x4 . Funct¸iile ¸iile de eficien eficient¸˘ ¸ta˘ ale ale proce procese selo lorr trun trunch chia iate te la faze fazele le 1, . . . , i (pentru i = 1, . . . , 4) sunt:
− − − −
∼
f = 12 12x x1 ,
∼1
f 2 = 12 12x x1 + 10x 10x2 ,
˘ PROGRAMARE DINAMIC A
30
∼
f = 12 12x x1 + 10x 10x2 + 9x 9 x3 ,
∼3
f 4 = 12 12x x1 + 10x 10x2 + 9x 9x3 + 10x 10x4 . Noile spat¸ii ¸ii de decizie se determin˘a succesiv: Din s0 = 3 rezult˘a s1 x1 + 5 = 3 sau x1 = s1 + 2 de unde unde x1 s1 + 2 , din s1 [0, [0, 4] rezult˘a s2 x2 + 7 [0, [0, 4] de unde x2 [s2 + 3, 3, s2 + 7], 7], din s2 [0, [0, 2] rezult˘a s3 x3 + 8 [0, [0, 2] de unde x3 [s3 + 6, 6, s3 + 8], 8], din s3 [0, [0, 1] rezult˘a s4 x4 + 5 [0, [0, 1] de unde x4 [s4 + 4, 4, s3 + 5]. 5]. PASUL 2. Se rezolv˘ rezolv˘a problema din faza 1 adic˘a se calculeaz˘a: a:
∈ ∈ ∈
∼
{ | ∈
−
}
− − −
∈ ∈ ∈
{
∈{
∈ ∈ ∈
}
| ∈ {s1 + 2}} = 12 12ss1 + 24, 24,
min f 1 x1 X 1 (s1 ) = min 12 12x x1 x1 ∗ minim atins pentru x1 (s1 ) = s1 + 2. 2. PASUL 3/4. Se rezolv˘ rezolv˘a problema:
∼
{ | ∈ { { {− −
} { | ∈ − | ∈
| ∈ } | ∈ }
}
min f 2 x2 X 2 (s2 ) = min 12 12x x1 + 10x 10x2 x2 [s2 + 3, 3, s2 + 7] = = min 10 10x x2 + 12s 12s1 + 24) x2 [s2 + 3, 3, s2 + 7] = = min 10 10x x2 + 12(s 12(s2 x2 + 7) + 24) x2 [s2 + 3, 3, s2 + 7] = = min 2x2 + 12s 12s2 + 108 x2 [s2 + 3, 3, s2 + 7] = = 2(s 2(s2 + 7) + 12s 12s2 + 108 = 10s 10s2 + 94, 94, ∗ minim atins pentru x2 (s2 ) = s2 + 7. 7. Se rezolv˘ rezolv˘a problema: problema:
∼
}
min f 3 x3 X 3 (s3 ) = min 12 12x 10x2 + 9x 9x3 x3 [s3 + 6, 6, s3 + 8] = x1 + 10x = min 9x3 + 10s 10s2 + 94 x3 [s3 + 6, 6, s3 + 8] = = min 9x3 + 10(s 10(s3 x3 + 8) + 94 x3 [s3 + 6, 6, s3 + 8] = = min x3 + 10s 10s3 + 174 x3 [s3 + 6, 6, s3 + 8] = = s3 8 + 10s 10s3 + 174 = 9s 9 s3 + 166, 166, ∗ minim atins pentru x3 (s3 ) = s3 + 8. 8. Se rezolv˘ rezolv˘a problema: problema:
{ | ∈ { { {− − − ∼
{ | ∈ { { {
} { | ∈ − | ∈ | ∈ } { | ∈ − | ∈
| ∈
}
}
}
}
| ∈ [s4 + 4,4, s3 + 5]} = }
min f 4 x4 X 4 (s4 ) = min 12 12x x1 + 10x 10x2 + 9x 9x3 + 10x 10x4 x4 = min 10 10x x4 + 9s 9s3 + 166 x4 [s4 + 4, 4, s3 + 5] = = min 10 10x 9(s4 x4 + 5) + 166 x4 [s4 + 4, 4, s3 + 5] = x4 + 9(s = min x4 + 9s 9s4 + 211 x4 [s4 + 4, 4, s3 + 5] = = 10s 10 s4 + 215 = 215, 215, minim atins pentru x∗4 (s∗4 ) = s∗4 + 4 = 4, 4 , unde s∗4 = 0. 0. PASUL 5. Avem: s∗3 = s∗4 x∗4 + 5 = 1 ¸si si x∗3 = s∗3 + 8 = 9, 9, ∗ ∗ ∗ ∗ ∗ s2 = s3 x3 + 8 = 0 ¸si si x2 = s2 + 7 = 7, 7, ∗ ∗ ∗ ∗ ∗ s1 = s2 x2 + 7 = 0 ¸si si x1 = s1 + 2 = 2. 2. PASUL 6. Solut¸ia ¸ia optim˘ a este:
− − −
| ∈
}
}
˘ PROGRESIV A ˘ PROGRAMARE DINAMIC A
31
x∗ = (2, (2, 7, 9, 4), 4), iar traiectoria traiec toria optim˘a s∗ = (0, (0, 0, 1, 0), 0), deci s-a obt¸inut ¸inu t acee ac eea¸ a¸si si solut¸ie ¸ie ca ˆın rezolvarea rezolvarea problemei prin metoda regresiv˘a. a. Exercit¸iul ¸iul 2.4.2. 2.4.2. Un depozit trebuie s˘a r˘ aspund˘ aspund˘ a unei cereri de marf˘a totale de α unit˘ at a¸i ¸t i de produs de la m beneficiari (cererea fiec˘arui arui beneficiar este de αi unit˘ at a¸i ¸ti de produs) produs).. Dac˘ a costurile de transport al unei unit˘at a¸i ¸t i de produs la beneficiarul i este β i ¸si si dac˘ da c˘a depozitul dispune init¸ial ¸ial de γ unit˘at a¸i ¸t i de produs, iar dac˘a acesta nu poate det¸ine ¸ine ˆın sto c mai ma i mult de δ unit˘ at a¸i ¸t i de produs s˘a se s e determine de termine politica poli tica optim˘a de reaprovizionare cu produsul respectiv resp ectiv astfel ˆıncˆat at toate cererile s˘a fie satisf˘acute. acute. ˆIn final depozitul nu mai are nici o cantitate ˆın stoc. sto c. Indicat ¸ie. Vom nota cu xi num˘arul arul de unit˘at a¸i ¸ti de produs comandate la ˆınceputul livr˘arii arii i ¸si cu si stocul existent dup˘a livrarea i. Problema de programare ce trebuie rezolvat˘a este:
− − ≤ ≤ ≥ ∀ min m
i=1 j i=1
xi
unde α =
m
i=1
m
i=1
β i xi
xi = α
γ, j
αi
j 1
γ
i=1
x j
−
i=1
αi + δ
− γ ∀ j = 1,1 , m,
0 i = 1, 1 , m.
¸a˘ funct¸iile ¸iile reciproce de transfer, funct¸iile ¸iile αi . Se vor pune ˆın evident¸˘
part¸iale ¸iale de eficient¸˘ ¸a, a˘, funct¸iile ¸iile de eficient¸˘ ¸a˘ ale proceselor trunchiate, spat¸iul ¸iul st˘arilor arilor ¸si si spat sp at¸iile ¸iile de decizie. decizie. Problema se poate rezolva rezolva ¸si si prin programare dinamic˘a progresiv˘a ˆın n faze fa ze ¸si si evident ¸si si prin metoda program˘arii arii dinamice regresive sau cu ajutorul algoritmilor simplex primal ori simplex dual prin aducerea acesteia la forma standard. Exercit¸iul ¸iul 2.4.3. 2.4.3. Rezolvat¸i ¸i numeric prin programare dinamic˘a regresiv˘a ¸si si propr ogresiv˘ a problema anterioar˘a pentru m = 3, α = 25 (α (α1 = 10, 10 , α2 = = 8, 8 , α3 = 7), 7) , β 1 = 3, β 2 = 10 10,, β 3 = 4, γ = 3 ¸si si δ = 10 10.. Aplicat¸i ¸i pentru rezolvarea problemei algoritmul simplex simplex primal. Scriet Scriet¸i ¸i duala problemei de programare liniar˘a asociat˘ a. a. Rezolvat Rezolvat¸i ¸i programul dual. Indicat ¸ie. Aplicˆ and and exercit¸iul ¸iul precedent restrict¸ia ¸ia a doua devine: α1
− γ ≤ x1 ≤ δ − γ,
˘ PROGRAMARE DINAMIC A
32
− 3 ≤ x1 ≤ 10 − 3 deci x1 = 7.7 . Restrict¸ia ¸ia a treia devine: α1 + α2 − γ ≤ x1 + x2 ≤ α1 + δ − γ, sau 10 + 8 − 3 ≤ 3 + x2 ≤ 10 + 10 − 3 deci 12 ≤ x2 ≤ 20 etc. sau 10
¸i problema de la exercit¸iul ¸iul 2. 2.4.2 la o problem˘a cu Exercit¸iul ¸iul 2.4.4. 2.4.4. Generalizat¸i n depozite. depozite. Rezolvat Rezolvat¸i ¸i aceast˘a problem˘a prin metoda program˘arii arii dinamice dinami ce ¸si si apoi apo i prin metoda de rezolvare a problemelor clasice de transport. Exercit¸iul ¸iul 2.4.5. 2.4.5. Un tren de marf˘a cu capacitatea maxim˘a z trebuie trebuie s˘ a transporte diferite cantit˘at a¸i ¸ti de N m˘ arfuri arfuri diferite. diferite. S˘ a not˘ am am cu vi valoarea celui de al i-lea tip de marf˘a ¸si si cu wi greutatea sa. S˘a se determine determi ne ˆınc˘arc˘ arc˘atura atura de valoare maxim˘a. a. Aplicat¸ie ¸ie numeric˘a N = 3, z = 100 t, v1 = 10$, 10$, v2 = 30$, 30$, v3 = 5$ 5$,, w1 = 150 t, w2 = 20 t, w3 = 30 t. Indicat ¸ie. Dac˘a not˘ am am cu xi num˘arul arul articolelor articolelor din marfa i care sunt ˆınc˘arcate, arcate, atunci problema de programare liniar˘a de rezolvat este:
≤ ≥ max N
i=1
xi
N
i=1
xi wi
xi vi , z,
0, i = 1, 1, N .
Problema se poate rezolva rezolva prin metodele program˘arii arii dinamice sau cu algoritmul simplex.
Capitolul 3
TEORIA JOCURILOR 3.1.
No¸iuni ¸t iuni introductive
De foarte multe ori suntem pu¸si si ˆın fat¸a ¸a unor situat¸ii ¸ii conflictuale a c˘aror aror evolut¸ie ¸ie ulterioar˘ a depinde de decizia sau planul adoptat , numit˘a ¸si strategie . Prin termenul de evolut ¸ie se ˆın¸elege ¸t elege modificarea unei funct¸ii ¸ii obiectiv numit˘a ˆın acest caz funct ¸ie de pierdere pierdere sau cˆ a¸stig , deci prin joc ˆın cele ce urmeaz˘a se ˆınt¸elege ¸elege acea situat¸ie ¸ie care funct¸ioneaz˘ ¸ioneaz˘ a dup˘ a reguli bine definite, ˆın care dou˘a sau mai multe elemente decizionale, numite juc˘ atori , aleg o decizie dintr-o mult¸ime ¸ime de variante bine specificate. Deoarece 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 jocu l se opre¸ste. ste. Strategia mixt˘ a presupune continuarea partidei, iar alegerea variantei se face cu o anumit˘ a probab probabili ilitate tate.. Fiecar Fiecaree din p˘ art art¸ile ¸ile implicate ˆın joc urm˘are¸ are¸ste ste optimi opt imizare zareaa funct¸iei ¸iei obiectiv, iar strategia care realizeaz˘a aceast˘a optim op timiza izare re se nume¸ste ste strategie optim˘ a . Din punct de vedere al cˆa¸ a¸stigului stigul ui jocu j ocurile rile se clasific c lasific˘˘a ˆın: - jocuri cu suma nul˘ a : sunt sunt acele jocuri ˆın care suma pierderilo pierderilorr fiec˘arui arui juc˘ator ator este egal˘a cu suma cˆa¸ a¸stigurilor stigur ilor tuturor tuturo r juc˘atorilor; atorilor; - jocuri f˘ ar˘ a sum˘ a nul˘ a : sunt sunt acele jocuri ˆın care o parte din pierderea pierderea ¸si/sau si/sau cˆa¸ a¸stigul sti gul unui juc˘ juc ator a˘to r nu se reg˘ase¸ ase¸ste ste la ceilal cei lalt¸i t¸i juc˘atori. atori. O alt˘a clasificare este dup˘a cardinalul num˘arului arului de strategii: jocuri finite sau infinite . Fie X ¸si si Y strategiile pure a doi juc˘atorilor atorilor A respectiv B ¸si si a X ¸si si b Y strategile pure alese de c˘atre atre ace¸ a ce¸stia. stia. Vom nota cu LA (a, b) ¸si LB (a, b) pierderile corespunz˘atoare atoare fiec˘arui arui juc˘ juc ˘ator, ato r, cˆa¸ a¸stigul stigul fiind consider c onsiderat at o pierdere negativ˘ negat iv˘a. a. Suma
∈
33
∈
34
TEORIA JOCURILOR
pierderilor celor doi juc˘atori atori este: LA (a, b) + LB (a, b). Dac˘ a jocul este cu suma nul˘a atunci LA (a, b) + LB (a, b) = 0. Deci, LB (a, b) = LA (a, b) = L(a, b), unde L(a, b) este cˆa¸ a¸stig st igul ul juc˘ ju c˘atorului atorului A dac˘a acesta joac˘ a strategia a iar r˘aspunsul aspunsul lui B fiind prin strategia b. Jocurile de tip poker sunt jocuri cu suma nul˘a, a, iar jocurile de tip Casino sunt f˘ ar˘ ar˘ a suma nul˘a (se pl˘atesc atesc impozite c˘atre atre stat sau se pl˘atesc atesc taxe c˘atre atre proprietarul jocului). Formalizˆ and and cele definite avem:
−
{
}
Definit¸ia ¸ia 3.1.1. 3.1.1. Se nume¸ num e¸ste st e joc tripletul joc tripletul J = (X ( X , Y , L) L) unde X = a1 , . . . , am ¸si si Y = b1 ,...,bn sunt mult¸imile ¸imile de strategii pure ale celor doi juc˘atori, iar L : X Y R este funct¸ia ¸ia de cˆa¸ astig s¸tig care se poate exprima sub forma matriceal˘a: a:
{ × →
}
Q=
q 11 11 ... q1 n ... ... ... q m1 ... qmn
ˆın care ca re q ij a a unui joc se nume¸ste ste ij = L(ai , b j ), i = 1, m , j = 1, n. Forma matriceal˘ forma normal˘ normala. a˘. Ma Matr tric icea ea joculu joculuii este este alc˘ alc˘atuit˘ atuit˘a ˆın raport cu juc˘ atorul atorul A numit juc˘ ator ator maximizant. Juc˘atorul atorul B se va numi juc˘ator ator minimizant, minimizant, iar matricea sa va avea elementele q ij ij .
−
Exemplul Exemplul 3.1.1. Jocul Jocul const˘ const˘ a ˆın aruncarea aruncarea monedei monedei ˆın care fiecare fiecare juc˘ ator ator poate alege, independent de cel˘alalt alalt stema S sau banul B . Daca˘ alegerile coincid, atunci juc˘atorul atoru l 2 prime¸ste ste de la l a juc˘ j uc˘atorul atorul 1 suma x. ˆIn caz contrar juc˘atorul atorul 1 prime¸ prim e¸ste ste de la juc˘ juc ˘atorul ato rul 2 suma sum a x. Matricea jocului este: Q=
3.2. 3.2.
− x x
x x
−
.
Prin Princi cipi piul ul mini minima max x
Teoria jocurilor are ca rol elaborarea unor planuri rat¸ionale ¸ionale de act¸iune ¸iune pentru cazurile cazurile conflictuale. conflictuale. Astfel, Astfel, principiul principiul adoptat este principul principul minimiz˘ arii arii pierderii maxime max ime numit ¸si si principiul principiul minimax minimax . Juc˘ Juc˘ atorul atorul A act¸ioneaz˘ ¸ioneaz˘ a astfel ast fel ˆıncˆ ınc at aˆt s˘a maximizeze cel mai mic cˆa¸ astig s¸tig pe care-l poate obt¸ine ¸ine de la juc˘atorul atorul B, iar juc˘atorul atorul B act¸ioneaz˘ ¸ioneaz˘ a astfel ast fel ˆıncˆ ınc at aˆt s˘a minimizeze pierderea sa maxim˘a. a. Valoarea: α = max min q ij ij i
j
STRATEGII MIXTE S ¸ I VALOAREA JOCULUI
35
se nume¸ num e¸ste st e valoarea inferioar˘ a a jocului ¸ jocului ¸si si reprez rep rezint int˘˘a cel mai mic cˆa¸ a¸stig sti g pe care car e A ˆıl poate avea de la B, iar valoarea: β = min max q ij ij j
i
se nume¸ nume¸ste st e valoarea superioar˘ a a jocului ¸ jocului ¸si si repre rep rezin zint˘ t˘a cea mai mare pierdere pe care B o poate avea. Jocurile pentru care α = β se numesc jocuri cu punct ¸sa, sa, iar valoarea comun˘a a acestor dou˘a valori se nume¸ste ste valoarea jocului . Elementul Elementul care care realizeaz˘ realizeaz˘ a aceast˘a egalit ega litate ate se nume¸ nu me¸ste ste punc pu nctt ¸sa sa . O strategie ai a juc˘ atorului atorului A se nume¸ nume¸ste st e 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 ik A (acesta (acest a dore¸ste ste s˘a cˆa¸ a¸stig st igee cˆat 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 Strategii mixte mixte ¸si si valoare valoarea a jocului
Jocurile cu punct ¸sa sa reprezint˘a o clas˘a particular˘a de jocuri ¸si si se pune ˆın mod natural natura l ˆıntrebarea ıntrebare a dac˘a, a, ˆın ın ipoteza ipot eza repet˘ repet ˘arii arii partidelor, partid elor, nu se poate poa te g˘asi asi o strategie prin care juc˘atorul atorul A s˘a obt¸in˘ ¸in˘a un cˆa¸ a¸stig stig mai mare decˆat at cel asigurat prin criteriul minima minimax. x. Vom numi numi strategie strategie mixt˘ a o combinat¸ie ¸ie probabilist˘a de strategii pure. Strategiile mixte au dublu rol: 1. de a ˆımpiedica adversarul s˘a cunoasc˘ a strategia aleas˘a; a; 2. de a m˘ ari ari cˆa¸ a¸stigul stigul garantat garanta t de valoarea inferioar˘ inferio ar˘a a jocului. Fie X = (x ( x1 ,...,xm ) vectorul probabilit˘at a¸ilor ¸tilor cu care juc˘atorul atorul A alege strategiile pure a1 ,...,a m ¸si si Y = (y1 ,...,y n ) vectorul probabilit˘at a¸ilor ¸t ilor cu care juc˘atorul atorul B alege strategiile strategiile pure b1 ,...,bn . Avem:
{
}
{
}
≥ ≥ xi
m
i=1
¸si si
0, i = 1, 1, m
xi = 1, 1,
y j
n
j=1 j =1
0, j = 1, 1, n
y j = 1. 1.
Cˆ a¸stigul sti gul mediu realizat de c˘atre atre A cˆand and el folose¸ste ste strategia mixt˘a X , iar B strategia b j va fi: m
M ( M (X, j ) =
i=1
q ij ij xi .
36
TEORIA JOCURILOR
Similar, cˆa¸ a¸stigul stigul mediu realizat realiza t de A cˆand and el folose¸ste ste strategia strate gia ai , iar B folo fo lose se¸¸ste st e strategia mixt˘a Y va fi: n
M ( M (i, Y ) Y ) =
q ij ij y j .
j=1 j =1
Valoarea medie a jocului va fi: n
m
M ( M (X, Y ) Y ) =
m
q ij ij xi y j =
j=1 j =1 i=1
n
q ij ij xi y j ,
i=1 j=1 j =1
sau matriceal:
M ( M (X, Y ) Y ) = X QY.
3.4.
Teorema fundamental˘ fundamental˘ a a teoriei jocurilor
Teorema eorema 3.4.1. 3.4.1. (Valoarea inferioar˘ a ¸si valoarea val oarea superioar su perioar˘ a˘ a joculu jocului). i). Fie X Fie X , Y submult ¸imi ale lui R ¸si fie L : X Y R. Dac˘ a exist˘ a m˘ arimile:
× →
max[min L(x, y )], )], x X y Y
∈
∈
min[max L(x, y )], )], y Y x X
∈
∈
atunci: max[min L(x, y)] x X y Y
∈
∈
≤ min [max L(x, y)]. )]. y∈Y x∈X
Definit¸ia ¸ia 3.4.1. 3.4.1. (Punc Pu nctt ¸sa sa ). ). Punctul (x (x0 , y0 ) este punct ¸sa sa al funct¸iei ¸iei L dac˘ a: a: L(x, y0 )
≤ L(x0, y0) ≤ L(x0, y).
Teorema eorema 3.4.2. 3.4.2. (Condit ¸ii necesare ¸si si suficiente suficie nte pentru existent exist ent ¸a punc p unctel telor or ¸sa). sa) . Fie X , Y submult ¸imi ale lui R ¸si fie L : X Y R. Dac˘ a exist˘ a m˘ arimile:
× →
max[min L(x, y )], )], x X y Y
∈
∈
min[max L(x, y )], )], y Y x X
∈
∈
atunci condit ¸ia necesar˘ a ¸si si suficien sufic ient˘ t˘ a ca L s˘a aiba˘ punctul (x0 , y0 ) punct pun ct ¸sa sa este: est e: max[min L(x, y )] = min[max L(x, y )] = L(x0 , y0 ). x X y Y
∈
∈
y Y x X
∈
∈
REZOLVAREA JOCURILOR MATRICEALE
37
Teorema eorema 3.4.2 ne spune: spune: condit condit¸ia ¸ia necesar˘ necesar˘ a ¸si si suficient˘a ca L s˘ a aib˘ a punctul (x0 , y0 ) punct ¸sa sa este ca valoarea inferioar˘a a jocului s˘a fie egal˘a cu valoarea sa superioar˘a. a. Teorema eorema 3.4.3. 3.4.3. (Teor (Teorema ema fundamental˘ a a teori teoriei ei jocur jocuril ilor or). ). Fie Fie jocu jocul l J = (X , Y , L) L). Atunci Atunci exist˘ a o pereche X 0 , Y 0 de strategii strategii mixte optime astfel ˆıncˆ at: max [ min M ( M (X, Y )] Y )] = min [ max M ( M (X, Y )] Y )] = M ( M (X 0 , Y 0 ) = v,
X S m Y S n
∈
∈
Y S n X S m
∈
∈
unde S m ¸si si S n sunt submult ¸imi ale spat spat ¸iilor euclidiene euclidiene m-dimensionale respectiv respectiv n-dimensionale. Valoarea v se nume¸ste ste valoarea jocului. Observat ¸ii . i) Un joc nu poate avea avea decˆ at at o singur˘a valoare, chiar dac˘a are mai multe multe strategii strategii optime mixte. ii) Condit¸ia ¸ia necesar˘ nece sar˘a ¸si si suficient sufi cient˘˘a ca v s˘ a fie valoarea jocului j ocului ¸si si X 0 , Y 0 s˘ a fie strategii mixte este ca: M ( M (i, Y 0 )
≤ v ≤ M ( M (X 0 , j ), 1 ≤ i ≤ m, 1 ≤ j ≤ n.
3.5. 3.5.
Rezolv Rezolvare area a jocur jocurilo ilorr matri matricea ceale le
3.5.1.
Formulare ormularea a proble problemei mei de optimizare optimizare
Fie un joc cu matricea Q = ( q ij a juc˘ atorul atorul A folose¸ folos e¸ste ste strategiile strate giile pure ai ij ). Dac˘ cu probabilit˘ probabilit˘ at a¸ile ¸tile xi , i = 1, . . . , m atunci acesta poate spera un cˆa¸ a¸stig stig de cel put¸in ¸in v , care este egal cu valoarea jocului adic˘a: a:
≥ ≥
v
≤ ≥
v
xQ m
i=1
xi = 1
xi
0, i = 1, m
≥ def ⇔ ≥ ∀
unde v = (v ( v , . . . , v) v ) iar a b ai bi i. Similar, Similar, dac˘ a juc˘atorul atorul B utilizeaz˘ a strategiile pure b j cu probabilit˘at a¸ile ¸tile y j , 1 j n, el se poate a¸stepta stepta la o pierdere cel mult egal˘a cu valoarea v a jocului:
≤ ≤
Qy n
j=1 j =1
y j
y j = 1 0, j = 1, n
38
TEORIA JOCURILOR
3.5.2. 3.5.2.
Reduce Reducerea rea la probl probleme eme de progr programa amare re liniar˘ liniar˘ a
Pentru a transforma cele dou˘a sisteme sist eme ˆın modele mo dele de d e programar pro gramaree liniar˘ lin iar˘a este necesar ca valoarea jocului v s˘ a fie strict pozitiv˘a. a. ˆIn acest ac est sens sen s se pot folosi urm˘atoarele atoare le observat¸ii: ¸ii: i) dac˘a fiec˘arui arui element al matricei Q i se adaug˘a o constant˘ a k, atunci valoarea jocului devine v + k, iar strategiile mixte r˘amˆ amˆ an an neschimbate; ii) dac˘a fiecare element al matricei Q se ˆınmul ın mult¸e¸ ¸te¸ste ste cu consta c onstanta nta k, atunci valoarea jocului devine vk, vk , iar strategiile mixte optime r˘amˆ amˆ an an neschimbate. Deci prin folosirea adecvat˘a a observat¸iilor ¸iilor amintite se poate presupune v = 1. Problemele de rezolvat devin folosind notat¸ia ¸ia X i = xi /v: /v :
≥≥ ≥≤ m
min(
i=1
X i )
Q X 1 X i 0, i = 1, 1, m
¸si si
max(
n
j=1 j =1
Y j )
QY 1 Y j 0, j = 1, n.
Cele dou˘a probleme de programare liniar˘a sunt ˆın forma canonic˘ canoni c˘a ¸si si sunt duale una alteia. Acestea Acestea se pot p ot rezolva rezolva prin metodele simplex sau simplex-du simplex-dual. al. Se poate apela pentru pentru rezolv rezolvarea acestor probleme la programele programele specializate existente existente pe piat¸a ¸a software.
3.6. .6.
Aplic plica a¸ii ¸tii
Exercit¸iul ¸iul 3.6.1. 3.6.1. Se consider˘a jocul ˆın forma matriceal˘ a: a: TABELUL 3.1
A/B a1 a2 a3 a4
b1 3 2 4 5
b2 5 3 1 0
− −
b3 4 1 1 3
b4 2 0 0 2
b5 1 1 3 4
−
Matricea jocului este alc˘atuit˘ atuit˘a ˆın ın raport rapo rt cu juc˘atorul atorul A (maximizant).
39
APLI AP LICA CAT T ¸ I I i) S˘a se calculeze calculeze valoarea aloarea inferioar˘ inferioar˘ a ¸si si valoarea superioar˘ super ioar˘a a jocului. ii) Are jocul joc ul punct ¸sa? sa? iii) Aflat¸i ¸i strategiile mixte optime ale celor doi juc˘atori.
R˘ aspuns. Matricea jocului fiind alc˘atuit˘ atuit˘a ˆın raport cu juc˘ atorul atorul A, care este juc˘ator ato r max maximi imizant zant,, acesta ace sta dore¸ dor e¸ste ste s˘a cˆa¸ a¸stige sti ge cˆat at mai mult mult ¸si si va elimina elimina din joc strategiile strategiile dominate. dominate. Avem a4 a3 , deci strategia a3 va fi eliminat˘a din joc de c˘atre atre juc˘atorul atorul A. Deoare Deoarece ce b1 b4 ¸si si b3 b4 , atunci juc˘atorul atorul B elimin˘ a din joc strategiile b1 ¸si si b3 (conduc la pierderi mai mari). Astfel jocul se reduce la matricea redus˘a Q: 5 2 1 Q= 3 0 1 . 0 2 4
Valoarea inferioar˘ a a jocului este:
−
−
α = max min q ij 0, ij = 0, i
j
¸si si valoarea superioar˘ supe rioar˘a a jocului este: β = min max q ij 2. ij = 2. j
i
∈
Deoarece α < β jocul nu are punct ¸sa. sa. Valoarea jocului v [0, [0, 2]. 2]. Problema de programare liniar˘a pe care trebuie trebuie s˘a o rezolve juc˘atorul atorul maximizant A (maximizare (maximizareaa profitului profitului minim) este urm˘ atoarea: atoarea:
− −
max(v max(v ) 5x1 + 3x 3 x2 v 2x1 + 2x 2x3 v x1 x2 + 4x 4x3 v x1 + x2 + x3 = 1 x1 , x2 , x3 0,
≥
≥
≥
≥
sau dac˘a se noteaz˘a X i = xi /v pentru i = 1, 2, 3 obt¸inem ¸inem problema de programare liniar˘a: a: min(X min(X 1 + X 2 + X 3 ) 5X 1 + 3X 3X 2 1 2X 1 + 2X 2X 3 1 X 1 X 2 + 4X 4X 3 1 X 1 , X 2 , X 3 0.
− −
≥ ≥ ≥ ≥
Similar, Similar, problema problema de programare programare liniar˘ a corespunz˘ corespunz˘ atoare atoare juc˘ atorului atorului B este:
40
TEORIA JOCURILOR
− −
max(Y max(Y 1 + Y 2 + Y 3 ) 5Y 1 + 2Y 2Y 2 + Y 3 1 3Y 1 Y 2 1 2Y 2 + 4Y 4Y 3 1 Y 1 , Y 2 , Y 3 0.
≤
≤ ≤ ≥
Cele dou˘a probleme de programare liniar˘a sunt duale duale una alteia. alteia. Rezolv Rezolvare areaa acesto acestora ra se poate face cu ajutorul ajutorul alg algori oritm tmulu uluii simple simplex x primal primal sau dual. dual. Pent Pentru ru rezolvarea cu ajutorul programului MAPLE a MAPLE a acestora ace stora sintaxa este p entru juc˘ ju c˘atorul atorul A (maximizant): > with( with(simplex) simplex) : > minimize( minimize (x + y + z, 5 x + 3 y >= 1, 1 , 2 x + 2 z >= 1, 1, x y + 4 z >= 1, NONNEG NONNEGA ATIV E ); ); Solut¸ia ¸ia este: x = 0, 0 , y = 1/ 1 /3, z = 1/ 1 /2, iar respectiv pentru juc˘atorul atorul B (minimizant): > maximize( maximize (x + y + z, 5 x + 2 y + z <= 1, 1 , 3 x z <= 1 , 2 y + 4 z <= 1, NONNEG ); NONNEGATIV E ); Solut¸ia ¸ia este: x = 1/ 1 /3, y = 1/ 1 /2, z = 0. 0. Deci strategia optim˘ a pentru juc˘atorul atorul A se determin˘a din:
−
∗
∗
∗
− ∗
∗
− ∗
∗
∗
∗
∗ −
1 1 X 1 = 0, 0 , X 2 = , X 3 = , 3 2 iar strategia optim˘a a juc˘ juc ˘atorul ato rului ui B se determin˘a din: 1 1 Y 1 = , Y 2 = , Y 3 = 0. 0. 3 2 Valoarea jocului este v = 6/ 6 /5 iar strategiile optime sunt pentru A: 2 3 x1 = 0, x2 = , x3 = , 5 5 respectiv pentru B :
2 3 y1 = , y2 = , y3 = 0. 5 5 x1 = 0 se explic˘a prin faptul c˘a strategia a1 a3 (ˆın matrice mat riceaa redus˘ redu s˘a Q), poate fi eliminat˘ a din joc de c˘ atre atre A.
≺
Exercit¸iul ¸iul 3.6.2. 3.6.2. O firm˘a A dore¸ do re¸ste st e s˘a se lanseze pe piat¸˘ ¸a. a˘. Cercet˘arile arile efectuate ˆın acest a cest sens stabilesc stabil esc c˘ c ˘a dac˘ a pret¸urile ¸urile variaz˘a ˆın ın raport cu cele ale concurent¸ei ¸ei B , atunci se obt¸in ¸in rezultatele din tabelul 3.2:
41
APLI AP LICA CAT T ¸ I I TABELUL 3.2
−5% 0% +5% −2 −4 −4 −1 0 −3 −3 2 0
A/B 5% 0% +5%
−
Ce strategie strateg ie mixt˘a va adopta adopt a firma A ˆın fat fa¸a ¸ta concurent¸ei? ¸ei? Exercit¸iul ¸iul 3.6.3. 3.6.3. Se consider˘a jocul ˆın forma matriceal˘ a: a: TABELUL 3.3
A/B a1 a2 a3 a4
b1 3ρ 2ρ 4ρ 5ρ
b2 5ρ 3ρ ρ 0
− −
b3 4ρ ρ ρ 3ρ
b4 2ρ 0 0 2ρ
b5 ρ ρ 3ρ 4ρ
−
Matricea jocului este alc˘atuit˘ atuit˘a ˆın raport rapo rt cu juc˘atorul atorul A (maximizant), iar ρ este un parametru real strict pozitiv. i) S˘a se calculeze calculeze valoarea aloarea inferioar˘ inferioar˘ a ¸si si valoarea superioar˘ super ioar˘a a jocului. ii) Are jocul joc ul punct ¸sa? sa? iii) Aflat¸i ¸i strategiile mixte optime ale celor doi juc˘atori. Exercit¸iul ¸iul 3.6.4. 3.6.4. Se consider˘a jocul de dou˘a persoane ˆın forma matriceal˘a: a: TABELUL 3.4
A/B a1 a2 a3
b1 0 β α
−
b2 α 0 β
−
b3 β α 0
−
Matricea jocului este alc˘atuit˘ atuit˘a ˆın raport rapo rt cu juc˘atorul atorul A, (maximizant) iar α ¸si si β sunt parametri reali strict pozitivi. i) S˘a se calculeze calculeze valoarea aloarea inferioar˘ inferioar˘ a ¸si si valoarea superioar˘ super ioar˘a a jocului. ii) Are jocul joc ul punct ¸sa? sa? iii) Aflat¸i ¸i strategiile mixte optime ale celor doi juc˘atori.
42
TEORIA JOCURILOR
Exercit¸iul ¸iul 3.6.5. 3.6.5. Se consider˘a urm˘atorul atorul scenariu scenariu criptografic: criptografic: un utilizator al unui canal de comunicat¸ie ¸ie poate transmite mesaje cifrate corespunz˘atoare atoare a trei categor categorii ii de mesaje clare: clare: confide confident nt¸ial, ¸ial, secret secret ¸si si strict strict secret. secret. Utilizatorul Utilizatorul poate opta pentru unul din dou˘a sisteme sisteme de cifrare cifrare (de exemplu, exemplu, un sistem sistem simetric simetric ¸si si un sistem sistem asimetri asimetricc etc). Indica Indicat¸i t¸i strategia optim˘a de alegere a sistemului criptografic. Procentele categoriei de secret ¸si si pierderile corespunz˘atoare atoare (cantitate de mesaj decriptat˘ decriptat˘ a pe 24 ore de procesare selectiv˘a, a, estimat˘ estimat˘ a procentual de designerul sistemelor sistemelor criptografice) criptografice) sunt date ˆın tabelul 3.5. Care trebuie s˘a fie procentele pi pentru ca utilizatorul s˘a opteze pentru strategia 2? TABELUL 3.5
Tip mesa j confident¸ial ¸ial secret strict secret
Prob. mesa j p1 p2 p3
S1 0 0,6% 0,6% 0,4%
S2 0,3% 0,5% 0,5% 1%
Exercit¸iul ¸iul 3.6.6. 3.6.6. S˘a se determine determine o pereche pereche de strategii strategii optime ¸si si valoarea urm˘ atorului 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 si se rezolv˘a aceasta. Valoarea jocului va fi 13/ 13/4. Exercit¸iul ¸iul 3.6.7. 3.6.7. Se consider˘a jocul ˆın forma matriceal˘ a (ˆın ın raport rap ort cu juc˘ juc ˘atorul atorul A): TABELUL 3.6
A/B a1 a2 a3 a4
b1 2 1 0 2
b2 3 2 2 3
b3 0 4 3 0
b4 1 3 2 1
i) S˘a se determine determine valoarea valoarea inferioar˘ inferioar˘ a ¸si si valoarea valoa rea superio sup erioar˘ ar˘a a jocul jo cului. ui. ii) Determinat¸i, ¸i, dac˘a exist˘a, a, punctul ¸sa sa al a l jocul j ocului. ui. iii) S˘a se determine strategiile mixte ale celor doi juc˘atori. atori. R˘ aspuns. Valoarea inferioar˘ a a jocului este 1, 1 , iar valoarea aloarea superioar˘ superioar˘ a este 2. Valoarea jocului este 8/ 8 /5.
43
APLI AP LICA CAT T ¸ I I
Exercit¸iul ¸iul 3.6.8. 3.6.8. Folosind criteriul minimax, s˘a se rezolve un joc matriceal de ordinul 3 3 a c˘arui arui matrice este:
×
C =
−
1 3 2 0 2 1
−3 3 0
.
Specificat¸i ¸i ¸si si valorile inferioar˘ inferio ar˘a ¸si si superi s uperioar˘ oar˘a ale a le jocului. joc ului. Cum se modific˘ modi fic˘a aceste strategii strategii dac˘ a ultima linie a matricei C se ˆınmu ın mult lt¸e¸ ¸e¸ste st e cu γ ? Pentru ce valoare a lui joc ul are punct ¸sa? sa? γ jocul R˘ aspuns. Valoarea inferioar˘ a a jocului este: α = max min q ij 0, ij = 0, i
j
¸si si valoarea superioar˘ supe rioar˘a a jocului este: β = min max q ij 2. ij = 2. j
i
Strategia Strategia optim˘ a (mixt˘ a) a) a primului juc˘ator ator este unic˘a ¸si si este est e ega egal˘ l˘a cu: 1 2 x1 = , x2 = , x3 = 0. 0. 3 3 Valoarea aloarea jocului (aceasta este unic˘a) a) este egal˘a cu v = 1. 1. Strategia optim˘ a a celui de-al doilea juc˘ator ator nu este unic˘a. a. O strategi strategiee optim˘ optim˘a este spre exemplu: exemplu: 1 3 1 y1 = , y2 = , y3 = , 5 5 5 o alt˘ a strategie optim˘a este: 2 1 y1 = 0, 0 , y2 = , y3 = . 3 3 Exercit¸iul ¸iul 3.6.9. 3.6.9. (Dilema prizonierului.) Se consider˘a urm˘atoarea atoarea situat¸ie: ¸ie: doi suspect¸i ¸i de trafic de droguri sunt anchetat¸i, ¸i, ˆın ın stare de arest preventiv, preventiv, de organele abilitate, care nu au suficiente dovezi. Procurorul de caz le ofer˘a celor doi, independent, posibilita posi bilitatea tea de d e a recunoa¸ste ste sau s au nu implicarea implic area ˆın traficul tr aficul de droguri, dro guri, precum ¸si si consecint¸ele ¸ele deciziei. Astfel, ˆın situat¸ia ¸ia ˆın ın care ambii recunosc procurorul va propune pedeaps˘a minim˘a de trei ani pentru cei doi suspect¸i. ¸i. ˆIn cazul ˆın care doar unul recunoa¸ste ste pentru acesta procurorul va propune aceeia¸si si pedeaps˘a de trei ani
44
TEORIA JOCURILOR
cu suspendare (eliberare), pentru complicele sau propunˆand and pedeapsa maxim˘a de ˆ cinsprezece ani cu executare. In situat¸ia ¸ia ˆın care niciunul nu recunoa¸ste, ste, procurorul proc urorul propun propune, e, pentru pentru alt delict delict ce ˆıl poate dove dovedi, di, pentru pentru fiecare fiecare din cei doi suspet suspet¸i, ¸i, pedea pedeaps psaa de un an. an. Care Care este este deci decizi ziaa pe care care o iau cei doi suspec suspectt¸i ¸ i de trafic de droguri? R˘ aspuns. Forma matriceal˘ a a jocului este: A/B coopereaz˘a nu coopereaz˘a
coopereaz˘ a ( 3, 3) ( 15 15,, 0)
nu coope coopere reaz az˘˘a (0, 15) ( 1, 1)
− − − − − − Valoarea inferioar˘ a a jocului este α = −3, valoarea valoa rea superio su perioar˘ ar˘a a jocului joc ului fiind fi ind β =
sa. Aceast˘a dilem˘a, a, ˆın care ca re se afl˘a cei doi suspect¸i, ¸i, poate −3, deci jocul este cu punct ¸sa.
fi numit˘a paradox, deoarece deoare ce decizia acestora acesto ra luat˘a individual individ ual ¸si si con¸stient stient (aceea de a m˘ arturisi) arturis i) ¸si si decizia colectiv˘ colect iv˘a (aceea de a t˘ainui) ainui) sunt divergente.
Capitolul 4
TEORIA DECIZIILOR STATISTICE 4.1. 4.1.
Prezen Prezentar tarea ea proble problemel melor or
Situat¸iile ¸iile reale necesit˘a adoptarea unor decizii ce trebuie determinate utilizˆand and diverse diverse criterii. criterii. Spre deosebire deosebire de statistica statistica matematic˘ matematic˘a clasic˘a, a , care se ocupa de dezvoltarea dezvolta rea unor uno r teorii teori i ¸si si tehnici teh nici de inferent inferen t¸˘ ¸a˘ asupra parametrului θ, utilizˆand and numai informat¸ia ¸ia de select¸ie, ¸ie, teoria deciziilor statistice combin˘a informat¸ia ¸ia de select¸ie ¸ie cu alte dou˘ a aspecte importante legate de consecint ¸ele posibile ale posibile ale adopt˘ arii arii unei decizii ¸si de informat ¸ia a priori cu privire la parametrul θ. Cunoa¸sterea sterea consecint conseci nt¸elor ¸elor posibile ale adopt˘arii arii diferitelor decizii presupune o exprimare cantitativ˘a a cˆ a¸ a¸stigului stigului sau pierderii produse pro duse pentru p entru fiecare decizie posip osibil˘a ¸si si pentru diferitele valori posibile ale parametrului θ. Funct¸ia ¸ia astfel obt¸inut˘ ¸inut˘ a, a, ce depinde de decizia adoptat˘a ¸si si de parametrul parame trul θ, apare ˆın literatura de specialitate sub diferite denumiri ca funct ¸ie ¸i e cˆa¸stig sau funct ¸ie utilitate . Informat¸ia ¸ia a priori cu privire la parametrul θ se obt¸ine ¸ine din alte surse decˆat at cele de natur˘ a statistic˘a ce implic˘ implic˘a problema de decizie respectiv˘a. a. Este o informat¸ie ¸ie care se obt¸ine ¸ine dintr-o experient¸˘ ¸a˘ trecut˘ trecut˘ a cu privire la situat¸ii ¸ii similare ce implic˘a parametrul θ. Aceast˘ a informat¸ie ¸ie a priori este cuantificat˘a printr-o distribut¸ie ¸ie de probabilitate cu privire la parametrul θ. Problema existent¸ei ¸ei acestei distribut¸ii ¸ii este o problem˘a destul de discutat˘ discutat˘ a. a. Abordarea Abordarea teoriei teoriei deciziilor deciziilor prin intermedi intermediul ul unei distribut distribut¸ii ¸ii a priori corespunde abord˘arii arii bayesiane bayesiane.. Problemele Problemele legate de teoria deciziilor deciziilor pot fi ˆıncadrate ˆın cadrul teoriei jocurilor ceea ce justific˘a prezentarea acestui capitol dup˘ a capitolul corespunz˘ator ator teoriei teoriei jocurilor. Decidentul Decidentul poate avea avea sau nu posibilitatea efectu˘ arii arii unor experient¸e ¸e a priori lu˘arii arii deciziei. deciziei. Astfel, Astfel, avem avem decizii f˘ ar˘ a experient ¸˘ a a priori , decizii cu experient ¸˘ a unic˘ a (sau decizii cu volum de e¸santionaj santionaj 45
46
TEORIA DECIZIILOR STATISTICE
dat, ˆın care decizia se ia dup˘a efectuarea tuturor observat¸iil ¸iilor or)) ¸si si decizii secvent ¸iale (pe baza observat¸iei ¸iei se poate decide efectuarea unei noi observat¸ii ¸ii sau luarea unei decizii corespunz˘atoare). atoare). Astfel, paragrafele 4.2 ¸si si 4.3 ale acestui capitol abordeaz˘ ab ordeaz˘ a strategiile de luare a deciziilor ˆın ın situat¸iile ¸iile ˆın care nu avem experient exp erient¸e ¸e a priori, respectiv situat¸ia ¸ia unei experient¸e ¸e de volum fixat. Deciziile se pot lua ˆın condit¸ii ¸ii de risc (dispunem (dispunem de informat informat¸ie ¸ie a priori cu privire la starea parametrului θ) sau ˆın condit con dit¸ii ¸ii de incertitudine. incertitudine. Astfel, Astfel, paragraful paragraful 4.4 prezint˘ prezint˘a o serie de criterii pentru alegerea deciziilor optime ˆın caz de incertitudine.
4.2.
Strategii Bayes Bayes ¸si si strategii minimax minimax
Pentru a fixa ideile s˘a presupunem c˘a mult¸imea ¸imea parametrilor de stare (necunoscut˘a) a) θ este finit˘a Θ = θ1 , . . . , θm . S˘ a presupunem c˘a avem o informat¸ie ¸ie a priori despre θ dat˘ a de distribut¸ia ¸ia de probabilitate a priori ξ (θ). Aceast˘ a distribut¸ie ¸ie se num nu me¸ste strategie mixt˘ a . S˘ a presupunem c˘a avem mult¸imea ¸imea strategiilor pure:
{
}
{
}
A = a1 ,...,an . S˘ a not˘ am am prin L(θ, a) valoarea funct ¸iei de pierdere: L:Θ
× A → R+,
care este pierderea obt¸inut˘ ¸inut˘ a dac˘ a se adopt˘a decizia a ¸si si starea parametrului parame trului este θ. Pierderea medie este definit˘a ca: L(ξ, a) = M [ M [L(θ, a)] =
L(θ, a)ξ (θ), pentru orice a
θ Θ
∈
∈ A.
Numim strategie Bayes act Bayes act¸iunea ¸iunea cea mai favorabil˘a a∗ care minimizeaz˘a pierderea medie, adic˘a a∗ pentru care: L(ξ, a∗ ) = min L(ξ, a). a A
∈
Numim strategie minimax act¸iunea ¸iunea cea mai favorabil˘a a∗ care minimi min imizea zeaz˘ z˘a pierp ier∗ derea maxim˘a, a, adic˘a a pentru care: max L(ξ, a∗ ) = min max L(ξ, a). θ Θ
∈
a A θ Θ
∈
∈
Dac˘ a nu ne limit˘am am numai la strategiile pure, atunci vom folosi o combinat¸ie ¸ie de strategii pure alese dup˘a o lege lege de probab probabili ilitate tate.. Aceast˘ Aceast˘ a strategie strateg ie se nume¸ste ste strategie mixt˘ a .
˘ CAZUL EFECTU ARII UNOR EXPERIENT EXPER IENT ¸ E UNICE
47
Fie η (a) = (η (a1 ),...,η( ,...,η (am )) distribut¸ia ¸ia de probabilitate care define¸ste ste probabiliˆ tatea cu care se folosesc strategiile pure a1 ,...,a m . In general, dispunem de o mult¸ime ¸ime de strategii mixte: H = η1 (a),...,η p (a) .
{
}
Atunci pierderile medii sunt date de: L(ξ, η ) = M θ,a θ,a (L(θ, a)) =
L(θ, a)ξ (θ)η (a).
θ Θa A
∈ ∈
ˆIn acest caz trebuie g˘asit˘ asit˘a acea strategie mixt˘a η ∗ medii s˘a fie minime: L(ξ, η∗ ) = min L(ξ, η),
∈ H pentru care pierderile
η H
∈
sau acea strategie mixt˘a η ∗
∈ H pentru care pierderile maxime s˘a fie minime:
max L(ξ, η∗ ) = min max L(ξ, η). η H θ Θ
θ Θ
∈
∈
4.3.
∈
Cazul efectu˘ efectu˘ arii arii unor experient¸e ¸e unice
S˘ a presupunem c˘a decidentul, decidentu l, pentru a-¸si si l˘argi ar gi cun c uno¸ o¸stint sti nt¸ele ¸ele despre st˘arile arile naturii, opteaz˘ a pentru pentru efectuarea efectuarea unei experient experient¸e ¸e unice (de exemplu, pentru a estima influent¸a ¸a unui anumit tip de medicament asupra unei categorii de pacient¸i, ¸i, se poate face o experient¸˘ ¸a˘ unic˘a ce const˘a ˆın m˘asurarea asurarea zilnic˘a, a, timp de mai multe luni, a unei concentrat¸ii, ¸ii, dintr-un anumit tip de compus proteic, pentru m pacient¸i ¸i din categoria respe res pect ctiv˘ iv˘a). a) . Fie Z spat¸iul ¸iul rezultatelor z1 ,...,zl ale experient¸ei. ¸ei. Fiec˘arui arui rezultat z Z obt¸inut ¸inut cˆand and starea θ Θ ˆıi corespunde o probabilitate determinat˘ a de p(z θ), care satisface relat¸iile: ¸iile:
∈
|
|
≥ |
p(z θ) 0, pentru orice z p( p(z θ ) = 1. 1. z Z
∈
∈
∈ Z
Definit¸ia ¸ia 4.3.1. 4.3.1. Tripletul format din spat¸iul ¸iul rezultatelor experient¸ei ¸ei Z , spa¸iul ¸t iul st˘arilor arilor naturii naturi i Θ ¸si si distribut distrib ut¸ia ¸ia condit¸ionat˘ ¸ionat˘ a p(z θ) definit˘a pe Z pentru fiecare θ Θ, se nume¸ nume¸ste st e spat ¸iu de e¸santio san tionaj naj . Vom nota acest lucru cu = (Z, ( Z, Θ, p).
|
∈
E
Definit¸ia ¸ia 4.3.2. 4.3.2. Se nume¸ste ste funct fun ct¸ie ¸ie de decizie funct¸ia ¸ia d : Z fiec˘arui arui rezultat zk Z o act¸iune ¸iune a j A, j = 1, n.
∈
∈
→ A, ¸sisi asocia aso ciaz˘ z˘a
48
TEORIA DECIZIILOR STATISTICE
Pierderea suferit˘a ˆın cazul ˆın care starea parametrului parame trului θ este θi , i = 1, m este dat˘a de: L(θi , a j ) = L(θi , d(zk )) = Lzk (θi , d). Pentru un θ dat, rezultatul z al experient¸ei ¸ei va fi o variabil˘a aleatoare aleat oare determinat˘ determi nat˘a de probabilitatea condit¸ionat˘ ¸ionat˘ a p(z θ), deci dec i ¸si si pierderi pier derile le Lz (θ, d) sunt variabile aleatoare ¸si si se vor realiza cu aceea¸si si probabilita proba bilitate. te.
|
× D → R dat˘a de: Lz (θ, d) p( p(z |θ),
Definit¸ia ¸ia 4.3.3. 4.3.3. Numim funct ¸ie de risc funct¸ia ¸ia ρ : Θ ρ(θ, d) = M [ M [Lz (θ, d)] =
z Z
∈
¸si si repre rep rezin zint˘ t˘a valorea medie a pierderii pe spat¸iul ¸iul rezultatelor Z . Se a junge la concluzi co ncluziaa c˘a spat spa¸iul ¸tiul deciziilor D joac˘a ˆın problema p roblema strategiei strate giei ˆın cazul efectu˘ arii arii unei experient¸e ¸e unice, acela¸si si rol ca spat¸iul ¸iul A ˆın problema problem a strategiei strateg iei f˘ar˘ ar˘a experient¸e. ¸e. Deci Deci metodele metodele de rezolv rezolvare are ale celor celor dou˘a tipuri de probleme vor fi asem˘an˘ an˘ atoare. atoare. Se pot aborda strategii mixte η (d) definite pe spat¸iul ¸iul D. Funct¸ia ¸ia de risc este ˆın acest caz: ρ(θ, η ) = M [ M [ρ(θ, d)] =
ρ(θ, d)η (d)
d D
=
∈
|
Lz (θ, d) p( p(z θ)η (d).
d D z Z
∈ ∈
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 defavorabil˘ a. a. Strategia η ∗ (d) se alege astfel astfe l ˆıncˆ ıncˆat: at: ρ(θ, η ∗ ) = min max ρ(θ, η ), η
θ Θ
∈
iar valoarea corespuz˘atore atore a riscului se nume¸ste ste risc minimax . Principiul lui Bayes minimizeaz˘ a riscul mediu definit de: ρ(ξ, d) =
ρ(θ, d)ξ (θ).
θ Θ
∈
Strategia pur˘a d∗ se alege astfel ˆıncˆat: at: ρ(ξ, d∗ ) = min ρ(ξ, d). d D
∈
DECIZII OPTIME ˆıN CAZ DE INCERTITUDINE INCERTITUDINE
4.4.
49
Decizii Decizii optime ˆın caz de incertitudine incertitudine
Pˆ an˘ an˘ a ˆın acest punct au fost tratate procesele de decizii ˆın condit¸ii ¸ii de risc, ceea ce reprezint˘a faptul c˘a sunt cunoscute (sau se pot determina) probabilit˘at a¸ile ¸tile corespunz˘ atoare atoare parametrului θ Θ. ˆIn continuare ne vom ocupa de procesele de decizie desf˘a¸ a¸surat sur atee ˆın cond co ndit it¸ii ¸ii de incertitudine, deci cˆand and nu se cunosc probabilit˘at a¸ile ¸tile corespunz˘atoare 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 ateva criterii de alegere a deciziei ˆın caz de incertitudine, precizˆand 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 arii mai multor criterii. S˘ a consider˘am am situat¸ia ¸ia ˆın care dispunem de m strategii pure a1 , . . . , am , iar parametrul θ are n st˘ari ari posibil p osibilee θ1 , . . . , θm . Elementul q ij a¸ a¸stigul sti gul realiza real izatt ij va reprezenta cˆ dac˘ a se adopt˘a act¸iunea ¸iunea ai ¸si si starea parametrului paramet rului θ este θ j , i = 1, 1 , m , j = 1, 1 , n.
∈
4.4.1. 4.4.1.
Criter Criteriul iul lui Hurwic Hurwiczz
Criteriul lui Hurwicz sau criteriul optimismului alege ca strategie optim˘a acea act¸iune ¸iune ai care corespunde la: max[εQi + (1 i
unde ε
− ε)q i],
[0, 1] se nume¸ num e¸ste st e optimismul decidentului, iar q i = min q ij si si Qi = max q ij ∈ [0, ij ¸ ij . j j
4.4.2. 4.4.2.
Criter Criteriul iul lui Sa Sav vage
Criteriul Criteriul lui Savage sau Savage sau criteriul regretelor regretelor alege alege ca strategie optim˘a acea acea act ac¸iune ¸tiune ai care corespunde la: min max bij = max min bij , j
i
i
j
(dac˘ a nu se poate alege o strategie pur˘a, a, adic˘a matricea mat ricea nu are punct ¸sa, sa, se va deterdet ermina o strategie mixt˘a optim˘ a), a), unde matricea regretelor (diferent¸a ¸a dintre cˆa¸ a¸stig st igul ul realizat prin luarea unei decizii f˘ar˘ ar˘a a cunoa¸ste ste starea naturii naturi i ¸si si cel realizat realiza t dac˘a se cuno¸ cun o¸steau ste au aceste aces te st˘ari) ari) este definit˘a ca: bij = max q kj kj k
− q ijij , i = 1, m , j = 1, n.
50
TEORIA DECIZIILOR STATISTICE
4.4.3. 4.4.3.
Criter Criteriul iul Ba Baye yes-L s-Lapl aplace ace
Criteriul lui Bayes-Laplace alege ca strategie optim˘a acea acea act ac¸iune ¸tiune ai care corespunde la: n 1 max[ q ij ij ], i n
j=1 j =1
adic˘ a se presupune c˘a toate st˘ arile arile naturii au aceea¸si si probabilitate.
4.4.4. 4.4.4.
Criter Criteriul iul lui Wald
Criteriul Criteriul lui Wald alege, Wald alege, dac˘a jocul jo cul are punct ¸sa, sa, ca c a strategie strat egie optim˘ o ptim˘a acea acea act¸iune ¸iune ai care care coresp corespund undee la princi principiu piull minima minimax. x. Dac˘ Dac˘a jocul nu are punct ¸sa, sa, atunci se determin˘ a strategia mixt˘a optim˘ a cu probabilit˘at a¸ile ¸tile x1 ,...,xm care car e max maximi imizea zeaz˘ z˘a: a: m
min[ j
4.5. .5.
q ij ij xi ].
i=1
Aplic plica a¸ii ¸tii
Exercit¸iul ¸iul 4.5.1. 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 sti e c˘a linia tehnologic˘a poate folosi ˆın ın medie 60% din primul primul tip, 30% din al doilea tip ¸si si 10% din al treilea tip ¸si si c˘a poate funct¸iona ¸iona ˆın trei regimuri a1 , a2 ¸si si a3 . Pierderile reflectˆand and calitatea sunt date ˆın tabelul 4.1. TABELUL 4.1
Θ θ1 θ2 θ3
ξ (θ) 0, 6 0, 3 0, 1
a1 0 0, 5 1
a2 α 2α α
a3 2 1 3
S˘a se calculeze pierderile medii corespunz˘atoare repartit¸iei ¸iei a priori. priori. Care Care este strategia optim˘ a ˆın sensul lui Bayes? R˘ aspuns. Pierderile medii corespunz˘atoare atoare probabilit˘ at a¸ii ¸t ii a priori sunt:
·
·
·
L(ξ, a1 ) = 0 0, 6 + 0, 0 , 5 0, 3 + 1 0, 1 = 0, 0 , 25
·
·
·
·
L(ξ, a2 ) = α 0, 6 + 2α 2 α 0, 3 + α 0, 1 = 1, 1, 3 α
51
APLI AP LICA CAT T ¸ I I
·
·
·
L(ξ, a3 ) = 2 0, 6 + 1 0, 3 + 3 0, 1 = 1, 1 , 8. Strategia Bayes este acea act¸iune ¸iune care minimizez˘a pierderea medie adic˘a strategia 5 5 aα sau strategia a2 dac˘ aα a1 dac˘ . 26 26 5 Remarc˘ am am c˘ a pentru α = avem dou˘ dou ˘a strate str ategii gii optime opt ime ¸si si anume anum e a1 ¸si si a2 . 26
≥
≤
Exercit¸iul ¸iul 4.5.2. 4.5.2. Aceea¸ Ace ea¸si si problem pro blem˘˘a ca la 4.5. 4.5.1. 1. c˘ a de aceast˘a dat˘ a dispunem de o strategie mixt˘a cu frecvent¸ele ¸ele 20%, 20%, 30% 30%,, respectiv respectiv 50% 50%.. Exercit¸iul ¸iul 4.5.3. 4.5.3. Se consider˘a jocul contra naturii ˆın ın forma matriceal˘ a: a: TABELUL 4.2
A/B a1 a2 a3 a4
θ1 3 2 4 5
θ2 5 3 1 0
− −
θ3 4 1 1 3
θ4 2 0 0 2
θ5 1 1 3 4
−
Matricea Matricea jocului este alc˘atuit˘ atuit˘a ˆın raport rapo rt cu juc˘atorul atorul statistician statis tician A (maximizant) ¸si si repre rep rezin zint˘ t˘a cˆa¸ a¸stigurile stigur ile realizate realiza te de acesta. a cesta. S˘ a se aplice criteriile lui Hurwicz, Savage, Savage, Bayes si ¸si Wald pentru p entru alegerea deciziei optime. R˘ aspuns . i) Pentru aplicarea criteriului lui Hurwicz : TABELUL 4.3
a1 a2 a3 a4
θ1 3 2 4 5
θ2 5 3 1 0
− −
θ3 4 1 1 3
θ4 2 0 0 2
θ5 1 1 3 4
−
Qi 4 3 4 5
q i 5 1 1 0
− − −
−
εQi + (1 ε)q i 9ε 5 4ε 1 5ε 1 5ε
− − −
determin˘am: am: max[εQi + (1 i
∈
− ε)q i] = 5ε 5ε
unde ε [0, [0, 1]. 1]. Deci strategia optim˘ a este a4 . ii) Pentru aplicarea criteriului lui Savage se Savage se determin˘a matricea regretelor:
52
TEORIA DECIZIILOR STATISTICE TABELUL 4.4
(bij )
θ1
θ2
θ3
θ4
θ5
min bij
a1 a2 a3 a4 max bij
2 3 1 0 3
8 0 4 3 8
0 3 3 1 3
0 2 2 0 2
3 5 1 0 5
0 0 1 0 5 1
i
j
\
Se observ˘ obs erv˘a fapt f aptul ul c˘a jocul jo cul nu are punct p unct ¸sa, sa, ¸si, si, deci vom determina det ermina strategia strate gia mixt˘a cu ajutoru a jutorull algoritmului algoritmului simplex simplex primal sau dual. Solut¸ia ¸ia problemei pro blemei ata¸sate sate se poate p oate rezolv rezolva cu ajutorul programulu programuluii MAPLE, iar sintaxa pentru aceasta este: > with( with(simplex) simplex) : > minimize( minimize (x + y + z + w, 2 x + 3 y + z >= 1, 8 x + 4 z + 3 w >= 1, 3 y + 3 z >= 1, 1, 2 y + 2 z >= 1, 3 x + 5 y + z >= 1,NONNEGATIVE 1 ,NONNEGATIVE ); ); solut¸ia ¸ia problemei fiind x = 0, y = 1/4, z = 1/4, w = 0. Aceast Aceastaa conduc conducee la strategia mixt˘a optim˘ a: a:
∗ ∗
∗ ∗
∗
∗
∗
∗
∗
∗
∗
1 1 x1 = 0, 0 , x2 = , x3 = , x4 = 0. 0. 2 2 iii) Pentru Pentru aplicarea aplicarea criteriului criteriului lui Bayes-Laplac Bayes-Laplace e vom considera echiprobabile st˘arile arile θi : TABELUL 4.5
θ1 a1 a2 a3 a4
3 2 4 5
θ2
θ3
−5 3 −1
θ4
4 1 1 3
0
2 0 0 2
θ5 1 1 3 4
−
1 n
n
q ij ij
j=1 j =1
1 1 7/5 14/5
deci statisticianul va alege strategia a4 deoarece aceasta maximizeaz˘a: a: 1 n
n
q ij ij .
j=1 j =1
iv) Pentru aplicarea criteriului lui Wald, deoarece jocul nu are punct ¸sa sa statisticianul va alege o strategie mixt˘a cu probabilit˘at a¸ile ¸tile x1 ,...,xm care maximizeaz˘a: a: m
min[ j
i=1
q ij ij xi ].
53
APLI AP LICA CAT T ¸ I I
Strategia optim˘ a se determin˘a cu a jutorul jutorul algoritmului algoritmului simplex. simplex. Sintaxa Sintaxa MAPLE pentru rezolvarea problemei de programare liniar˘a ata¸ at a¸sat˘ sa t˘a jocului este: > with( with(simplex) simplex) : > minimize( minimize (x + y + z + w, 2 x + 2 y + 4 z + 5 w >= 1, 5 x + 3 y z >= 1, 1, 4 x + y + z + 3 w >= 1, 2 x + 2 w >= 1, x y + 3 z + 4 w >= 1,NONNEGATIVE ); ); iar solut¸ia ¸ia acesteia este x = 0, y = 2/5, z = 0, w = 3/5. Aceasta conduce la strategia optim˘ a :
∗
∗
∗
∗
∗
∗ ∗
∗
−
−∗
∗ − ∗ ∗
2 3 x1 = 0, 0 , x2 = , x3 = 0, 0 , x4 = , 5 5 valoarea x3 = 0 se explic˘a prin faptul faptu l c˘a strategia strate gia a3
≺ a4 .
Exercit¸iul ¸iul 4.5.4. 4.5.4. Se consider˘a jocul contra naturii ˆın ın forma matriceal˘ a: a: TABELUL 4.6
A/B a1 a2 a3 a4
θ1 3 2 4 5
θ2 5 3 1 0
− −
θ3 4 1 1 3
θ4 2 0 0 2
θ5 1 1 3 4
−
Matricea Matricea jocului este alc˘atuit˘ atuit˘a ˆın raport rapo rt cu juc˘atorul atorul statistician statis tician A (maximizant) ¸si si reprez rep rezint int˘˘a cˆa¸ astigurile s¸tigurile realizate realizate de acesta. acesta. Dispunem Dispunem de urm˘ atorea atorea distribut¸ie ¸ie a priori priori asupra asupra parametrului parametrului θ :(0, :(0, 2; 0, 1; 0, 1; 0, 1; 0, 6). Care Care sunt sunt pierderi pierderile le medii medii corespunz˘ atoare atoare distribut¸iei ¸iei a priori? Care este act¸iunea ¸iunea optim˘ a Bayes corespunz˘aa-toare?
54
TEORIA DECIZIILOR STATISTICE
Capitolul 5
TEORIA GRAFURILOR 5.1. 5.1.
Graf Gr afur urii orie orien ntate tate
Acest capitol este dedicat ˆın special sp ecial prezent˘arii arii unor not¸iuni ¸iuni elementare de teoria grafurilor punˆandu-se andu-se accentul a ccentul pe algoritmii lui Ford, Bellman-Kalaba ¸si si Dijkstra de determinare a drumurilor optime ˆıntr-un graf. ˆIncepem printr-o serie de definit¸ii. ¸ii. Definit¸ia ¸ia 5.1.1. 5.1.1. Un graf orientat G este o pereche G = (X, A), unde X este o mult¸ime ¸ime finit˘a, a, iar A X X. Elementele x X se numesc noduri ale grafului grafului G, iar perechile (x, (x, y ) A se numesc arce ale grafului. Pentru un arc (x, ( x, y ) A, vˆ arful arful x se nume¸ nume¸ste st e extremitate init ¸ial˘ a sau surs˘ a, iar y, extremit ext remitate ate final˘ final ˘a a sau destinat ¸ie .
∈
⊂ ×
∈
∈
Definit¸ia ¸ia 5.1.2. 5.1.2. Un graf neorientat va neorientat va fi notat cu G = (X, U ), U ), unde X reprezint˘ a mult¸imea ¸imea no durilor (vˆarfurilor) arfuril or) grafulu g rafului, i, iar ia r U mult¸imea ¸imea muchiilor. Prin muchie se va ˆınt ın¸elege ¸t 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, (i, j ) ¸si si ( j, i) reprezint˘a arce distin distincte cte.. O muchie se reprezint˘a printr-o printr-o linie care une¸ste ste cele dou˘a noduri nod uri ¸si si se noteaz˘ notea z˘a cu u = [i, j ], i, j X.
{ } ∈
{ }
∈
{ }
Definit¸ia ¸ia 5.1.3. 5.1.3. O rut˘ a orientat˘ a este un arc (i, ( i, j ) din G ¸si si i se poate p oate asocia o valoare numeric˘a v (u) sau vij cu semnificat¸ie ¸ie real˘a de lungime, distant¸˘ ¸a, a˘, cost etc. drum ˆıntr nt re s ¸si si t se define¸ste ste ca o succesiune de rute orienDefinit¸ia ¸ia 5.1.4. 5.1.4. Un drum ˆ tate µ : [(s, [(s, i1 ), . . . , (in , t)] cu proprietatea c˘a (s, i1 ), . . . , (in , t) sunt arce ˆın graf. Definit¸ia ¸ia 5.1.5. 5.1.5. Un drum care nu trece de dou˘a ori printr-un nod al s˘au a u se num nu me¸ste drum elementar elementar . 55
56
TEORIA GRAFURILOR
Drumurile elementare vor fi determinate ˆın acest˘a lucrar lucrare. e. Unui Unui drum drum µ i se asociaz˘a valoarea drumului v (µ) = vsi1 + . . . + vin t . Num˘ arul de arce prin care trece arul un drum se nume¸ste ste lungimea drumului . Un dru drum m µ al grafului G poate fi dat ca un ¸sir sir de noduri, nod uri, µ : [s, i1 , . . . , in , t] unde (s, (s, i1 ), . . . , (in , t) sunt rute orientate. Se pune problema determin˘arii arii unui drum µ∗ de la s la t cu valoare minim˘a, a, adic˘a: a: v(µ∗ ) = min v (µ), µ M (s,t) s,t)
∈
unde M ( M (s, t) este mult¸imea ¸imea drumurilor drumurilo r ˆın graful G de la s la t. Avem urm˘atoare ato areaa teore t eorem˘ m˘a de invariant¸˘ ¸a˘ la multiplicare. Teorema eorema 5.1.1. 5.1.1. Fie un graf orientat G ¸si si D un drum de lungime minim˘ a ˆıntre nt re dou˘ a noduri s ¸si si t. Dac˘ a valorile fiec˘ arei muchii muchi i se ˆınmult ¸esc cu un parametru real strict pozitiv α, atunci atunc i ˆın noul graf G drumul de lungime minim˘ a dintre nodurile s ¸si si t este identic (ca (ca succe succesiune siune a nodurilor nodurilor)) cu drumul de lungime lungime minim˘ minima˘ din graful G, iar ˆıntre ınt re valori val orile le L (s, t) ¸si si L(s, t) ale celor dou˘ a drumuri exist˘ a relat ¸ia:
L (s, t) = αL( αL(s, t). Nu se poate formula o regul˘a de invariant¸˘ ¸a˘ relativ la operat¸ia ¸ia aditiv˘a (valorile fiec˘arei arei muchii se adun˘a cu un num˘ ar ar real pozitiv). G˘asirea asirea unui contraexemplu se las˘ a pe seama cititorului.
5.2. 5.2.
Algori Algoritm tmul ul lui Kau Kaufma fmann nn
Definit¸ia ¸ia 5.2.1. 5.2.1. Fie G = (X, ( X, A) un graf orientat. Vom nota mult¸imea ¸imea nodurilor cu x1 , . . . , xn . Matricea A = (aij ) dat˘ a de aij = 1 dac˘a (xi , x j ) A ¸si si aij = 0 dac˘ a (xi , x j ) / A se nume nume¸¸ste st e matricea arcelor . Matricea D = (dij ) dat˘ a de relat¸iile ¸iile dij = 1 dac˘a exist˘a drum de la i la j ¸si si dij = 0 dac˘a nu exist˘a drum de la i la j se num nu me¸ste matricea drumurilor .
{
} ∈
∈
Remarc˘ am am c˘a ˆıntr-un graf avˆ and and n noduri orice drum elementar are lungimea de cel mult n 1.
−
∈
Definit¸ia ¸ia 5.2.2. 5.2.2. Puterea de atingere p(xi ) a unui vˆarf arf xi X ˆın graf gr aful ul G = (X, A) este egal˘a cu num˘arul a rul de vˆarfuri arfuri la care se poate ajunge din xi , adic˘a cu ponderea ponderea Hamming a vectorulu vectoruluii reprezent reprezentat at de linia i a matricei D. S˘ a not˘ am am prin Γ(k) (xi ) mult¸imea ¸imea de vˆarfuri arfuri din G la care se poate ajunge din xi folosind drumuri elementare formate din k arce. Avem urm˘atorea ato rea teorem˘ teo rem˘a: a:
57
ALGORITMUL LUI CHEN
Teorema eorema 5.2.1. 5.2.1. Fie G un graf avˆ and n vˆ arfuri, atunci elementul dij = = 1 dac˘ a ¸si si numai dac˘ a avem relat ¸ia: n 1
x j
−
∈
Γ(k) (xi )
k=1
Problema determin˘arii arii eficiente a matricei drumurilor a fost rezolvat˘a de A. Kaufmann, iar alg algori oritmul tmul corespu core spunz˘ nz˘ator ato r se mai nume¸ste ste ¸si si alg algori oritmul tmul ˆınmult ınmul ¸irii ¸t irii latine. const ruie¸ste ste matricea matri cea conexiunilo cone xiunilorr directe, directe , notat˘ nota t˘a prin K(1) ˆın care ca re PASUL 0. Se construie¸ se trec efectiv arcele, inexistent¸a ¸a unui arc (0 ˆın ın matricea drumurilor) fiind marcat˘a prin . PASUL 1. Se constru c onstruie¸ ie¸ste ste matricea matric ea destinat destina ¸iilor ¸t iilor posibile K(0) . PASUL 2. Se com compun pun (ˆınmult ınmu lt¸ire ¸ire latin˘a) a) matricele matricele K(1) ¸si si K(0) : K(1) &K(0) . PASUL k. Recursiv, calcul˘am am matricea K(k+1) = K(k) &K(0) , care ne va da lista drumurilor drumurilor formate din k + 1 arce. Observat ¸ie. Regula Reg ula de ˆınmult ınmu lt¸ire ¸ire latin˘a respect˘a regula de ˆınmult¸ire ¸ire a matricelor ¸si si ˆın plus pl us dac˘ da c˘a unul din elementele participante la calcul este , atunci rezultatul este ¸si si ˆın caz contrar rezultatul rezulta tul compunerii compun erii const˘a ˆın concatenarea simbolurilor participante.
∗
∗
∗
5.3. 5.3.
Algo Algori ritm tmul ul lui lui Chen Chen
Definit¸ia ¸ia 5.3.1. 5.3.1. Un drum elementar se nume¸ste ste drum hamiltonian dac˘a trece o singur˘a dat˘ a prin toate nodurile grafului. Urm˘ atoarea atoarea teorem˘ a, a, atribuit˘a lui Chen, este o condit¸ie ¸ie necesar˘a ¸si si suficient sufic ient˘˘a pentru ca un graf f˘ar˘ ar˘ a circuite s˘a cont¸in˘ ¸in˘a un drum hamiltonian. Teorema eorema 5.3.1. 5.3.1. Un graf f˘ar˘ ar˘ a circui circuite, te, care are are are n nodur noduri, i, cont ¸ine ine un drum drum hamiltonian, hamiltonian, dac˘ a ¸si si numai dac˘ a avem: n
p( p(xi ) =
i=1
n(n
− 1) .
2
Remarc˘ am am c˘a ˆıntr-un ıntr- un graf f˘ ar˘ ar ˘a circu ci rcuit ite e (un drum ˆın care extremit˘at a¸ile ¸t ile coincid se nume¸ste ste circuit), circuit ), exist˘a cel mult un drum hamiltonian hamilt onian.. Algoritmul de determinare a drumurilor hamiltoniene ˆın grafuri f˘ar˘ ar˘ a circuite este prezentat ˆın cele ce urmeaz˘a. a. PASUL 0. Pentru graful G scriem matricea drumurilor D = (dij ), ordonˆ and and vˆarfurile arfuril e ˆın ordine descresc˘ descresc ˘atoare atoare a puterii de atingere (prin aceast˘a operat¸ie, ¸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 dii = 1, 1 , atunci graful are circuite ¸si si algoritmul se opre¸ste, ste, deoarece acesta nu se poate aplica. n(n 1) PASUL 2. Dac˘a ˆın matricea matrice a D exist˘ a valori de 1, 1, atunci graful admite 2 un drum hamiltonian ¸si si se trece la pasul 3; ˆın caz contrar contrar graful nu are un drum hamiltonian, iar algoritmul se opre¸ste. ste. PASUL 3. Ordinea vˆarfurilor arfurilor ˆın cadrul cadrul drumului drumului hamiltonian hamiltonian este dat˘ a de ordinea descresc˘atoare atoare a puterilor de atingere. Pentru grafurile care au circuite algoritmul de determinare a drumurilor hamiltoniene toniene este dat de alg algori oritm tmul ul lui Kaufman Kaufmann n prezen prezentat tat anter anterior ior.. Astfel Astfel prezen prezent¸a ¸t a ( k ) unui element diferit de pe diagonala diagonala uneia dintre matricele matricele K din cadrul acestui algoritm indic˘a atˆ at at prezent¸a ¸a unui circuit hamiltonian cˆat at ¸si si ordine ord ineaa vˆarfurilor. arfurilor.
−
∗
5.4. 5.4.
Algori Algoritm tmul ul lui Ford
Algoritmul lui Ford determin˘a drumurile de valoare minim˘a ˆıntr-un graf gra f orientat orienta t G = (X, A) cu ¸si si f˘ar˘ ar˘ a circuite, de la un nod s la toate celelal celelalte te noduri. noduri. Fie l(u) valoarea unui arc u A. ˆIn particular, partic ular, ˆın cazul ˆın care se cere, algoritmul algori tmul determin˘ determi n˘a drumurile de valoare minim˘ a de la nodul s la orice alt nod t. Daca˘ graful este neorientat sau part¸ial ¸ial orientat, fiec˘arei arei muchii u cu extremit˘ extremit˘ at a¸ile ¸tile i ¸si si j ¸si si valoare valo areaa l(u) i se asociaz˘a dou˘ a arce (i, (i, j ) ¸si ( j, i) cu c u aceea¸ acee a¸si si valoare valoa re lij = l ji = l(u). Fiec˘ arui 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). 0) . PASUL 0. Se ˆıntocme¸ ıntocm e¸ste ste un tabel tab el cu toate nodurile nodu rile grafului grafu lui ¸si si corespunz˘ corespu nz˘ator ator cu valorile: λs = 0, 0 , λ j = , j = s.
∈
∞
∈
PASUL 1. Pentru toate arcele (i, (i, j ) A se compar˘a (dac˘ a are sens) diferent¸a ¸a λ j λi cu valoarea lij : dac˘ a λ j λi > l ij , atunci λ j = λi + lij , dac˘ a λ j λi lij , atunci se trece la determinarea altui arc. Se repet˘a pasul 1 ˆıntr-o nou˘a iterat¸ie ¸ie pˆan˘ an˘ a cˆand, and, pentru toate arcele (i, (i, j ) A, se verific˘a relat¸ia: ¸ia: λ j λi lij ,
−
− − ≤
∈
− ≤
dup˘ a care se trece la pasul 2. PASUL 2. Drumurile de valoare minim˘a de la nodul s la celelalte noduri se reconstituie din arcele (i, ( i, j ) care verific˘a relat¸ia ¸ia cu egalitate, adic˘a λ j λi = lij . Arcele
−
59
ALGORITMUL BELLMAN-KALABA
care verific˘a aceast˘ a egalitate formeaz˘ a un graf part¸ial ¸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 ¸ine cu algoritmul lui Ford init¸ializˆ ¸ializˆ and and λs = 0, λ j = , j = s ¸si si ˆınlo ın locu cuin ind d ineg in egal alit it˘ at a˘¸ile ¸t ile (>, (>, ) din pa¸sii sii 1 ¸si si 2 prin pri n (<, ), iar cuvˆantul antul min prin max .
−∞
5.5. 5.5.
≤
≥
Algori Algoritm tmul ul Bellma Bellman-K n-Kala alaba ba
Algoritmul Bellman-Kalaba este un algoritm care se aplic˘a unui graf orientat cu ¸si f˘ar˘ ar˘a circuite, cu ajutorul c˘aruia 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 are i muchii much ii cu c u extrem ex tremit˘ it˘at at¸ile ¸ile i ¸si si j ¸si si cu valoar valo area ea l(u) se asocia aso ciaz˘ z˘a dou˘ dou a˘ arce (i, (i, j ) ¸si ( j, i) cu valori egale lij = l ji = l(u). PASUL 0. Se asociaz˘a grafului grafului G o matrice matrice V = (v ( vij ) ale c˘arei arei elemente se determin˘a astfel:
∈
vij =
∞
a (i, j ) Γ lij dac˘ 0 dac˘a i = j dac˘ a (i, j ) / Γ.
∈
∈
arui { (0)}, unde fiec˘arui
De asemenea, se adaug˘a la matricea V o nou˘ a linie v (0) = vi (0) nod i al grafului se asociaz˘a un element vi , astfel: (0)
= vit ,
(0)
= 0.
vi
vt
i = t,
(0)
Linia vi , conform acestor relat¸ii, ¸ii, coincide cu transpusa coloanei nodului t. (k) (k) (k) PASUL k. Se adaug˘a la matricea V linia vi = vi . Elementele vi se calculeaz˘a cu relat¸iile: ¸iile:
{ }
(k)
= min vi
(k)
= 0.
vi
vt
(k−1) { + vij }, j =i
i = t,
Algo Al gori ritmu tmull se opre¸ op re¸ste, st e, ˆıntr-o ınt r-o etap et ap˘˘a, a, dac˘ da c˘a: a: (k)
vi
(k 1)
= vi
−
, pentru orice nod i.
60
TEORIA GRAFURILOR (k)
M˘ arimea arimea vi Dac˘ a: a:
reprezint˘ a valoarea drumului minim de la vˆarful arful i la nodul final t. (k)
vi
(k 1)
= v j
−
+ vtj ,
atunci primul arc ˆın drumul de valoare minim˘a de la nodul i la nodul t este arcul (i, j ). Vom nota cu: (k)
succi
{ | (k) = v j(k−1) + vij ,
= j vi
j=i
}
¸si si ma marc rc˘˘am am printr-o nou˘a linie succ(k) la matricea V imediat dup˘a linia v (k) . Dac˘ a (k) (k) vi = , atunci succi = . Drumul de valoare minim˘a de la nodul i la nodul final t este determinat numai de nodurile marcate prin succ(k) , ˆınce ın cepˆ pˆand and cu cele din coloana i. Observat ¸ii : i) Algoritmul lui Ford determin˘a drumurile de valoare minim˘a (sau maxim˘a) a) care pleac˘ a de la un nod surs˘a s c˘atre atre toate celelalte noduri ale grafului. ii) Algoritmul Bellman-Kalaba determin˘ a drumurile drumurile de valoare minim˘a (sau maxim˘a) a) care sosesc ˆıntr-un ıntr-un no d final t de la celelalte noduri ale grafului.
∞
5.6. 5.6.
∅
Algori Algoritm tmul ul lui Dijkst Dijkstra ra
Ideea de baz˘a a algoritmului lui Dijkstra este Dijkstra este de a pleca din nodul s ¸si si de a etich et ichet etaa celelalte noduri ˆın ordinea dep˘art˘ art˘ arii arii lor, ˆın ın sensul lungimii, de nodul surs˘a s. Fiec˘ arui arui nod j i se asociaz˘a o variabil˘a p( j), j ), care ˆın orice moment va ret¸ine ¸ine cea mai mic˘a lungime a drumurilor de la s la i ( p( p(s) = 0). Se vor considera dou˘a liste L liste L ¸si si T . T . Lista L este lista nodurilor permanente (valorile sunt fixate), iar T este o list˘a cu noduri temporare (valoril (valorilee pot fi modificate). modificate). Init¸ial, ¸ial, lista L = s iar lista list a ¸si si T se compune din acele nodurie j X pentru care ruta (s, j ) este permis˘a. a . Un nod i∗ din lista T a c˘ c ˘arui aru i varia va riabi bil˘ l˘a p(i∗ ) are valoarea cea mai mic˘a se include includ e ˆın lista L. ˆIn lista T se includ apoi, toate nodurile j , care nu sunt ˆınscr ın scrise ise ˆın acea ac east st˘˘a list˘a ¸si si ruta rut a (i, j ) este permis˘a. 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( pred( j) j ), care va ret¸ine ¸ine ˆın orice moment ultimul nod dinaintea lui j, pe drumul de la s la j care a fost g˘asit asit a avea cea mai scurt˘a lungime lungime pˆ an˘ an˘ a ˆın acel moment ( pred( pred (s) = 0). Algoritmul lucreaz˘a ˆıntr-un tabel cu coloanele: iterat¸ia, ¸ia, lista L, nodul j , variabila p( p( j) j ) ¸si si indicatorul indica torul pred( pred( j). j ). Faptul aptul c˘ a un nod j este inclus ˆın lista permanent˘a L, se marcheaz˘a prin ˆın stˆ st anga aˆnga tabelului (coloana L), ˆın dreptul nodului nod ului j . ˆIn orice moment, nodurile nod urile din tabel tab el f˘ f ˘ar˘ ar˘a marcajul apart¸in ¸in listei temporare T . T .
{}
∈
∗
∗
61
ARBORI MINIMALI
ˆIn stˆanga anga tabelului se precizeaz˘a iterat¸ia ¸ia ˆın ın care nodul respectiv este permanentizat tiz at ˆın lista list a L, prin marcarea cu . PASUL 0. Tabelul cont¸ine ¸ine nodul s marcat cu ¸si si acele noduri nodu ri j pentru care ruta orientat˘a (s, j ) este permis˘a. a. Corespunz˘ator ator p(s) = 0, p( j) j ) = vsj , pred( pred( j) j ) = s. Se consider˘a marcarea nodului s ca fiind iterat¸ia ¸ia 0. Iterat¸ia ¸ia k. PASUL 1. Dac˘ a ˆın tabel tabe l lista li sta T este vid˘ vid ˘a, a, atunci at unci toate t oate nodur n odurile ile sunt permanente p ermanente (marcate (marcate cu ). Graful Gra ful este est e analiz ana lizat at ˆın ˆıntregi ıntr egime me ¸si si alg algorit oritmul mul se opre¸ste. ste . ∗ PASUL 2. Se alege i T cu proprietatea:
∗
∗
∗
∈
p( p(i∗ ) = min p( p( j) j ). j T
∈
Dac˘ a i∗ t alg algori oritmul tmul se opre¸ opr e¸ste, ste, ¸si si se determi det ermin˘ n˘a drumul de lungime minim˘a de ∗ la s la t. ˆIn caz contrar, nodul i este transferat transf erat ˆın lista L, prin marcarea cu ¸si si ˆ astfel este scos din lista T . T . In lista T se ˆınscriu toate nodurile j T cu proprietatea ∗ c˘a ruta (i (i , j ) este permis˘a. a . Se iau p( j) j ) = ¸si si pred( pred( j) j ) = . PASUL 3. Se corecteaz˘a valorile variabilelor corespunz˘atoare atoare nodurilor j T adiacente cu nodul i∗ comparˆ and: and:
≡
∞
∅
∈
∗
∈
p( p( j) j ) cu p(i∗ ) + vi j . ∗
a) dac˘ a p( j) j ) > p( p (i∗ ) + vi j , atunci p( j) j ) = p(i∗ ) + vi j ¸si si pred( pred( j) j ) = i∗ ; b) dac˘a p( j) j ) = p(i∗ ) + vi j , atunci i pred( pred ( j); j ); c) dac˘a p( j) j ) < p( p (i∗ ) + vi j , atunci se trece la examinarea unui nod din lista T . T . Dup˘ a epuizarea listei T se reia pasul 1 ˆın cadrul urm˘atoarei atoarei iterat¸ii. ¸ii. Dup˘a oprirea algoritmului algor itmului ¸si si atingere a tingereaa nodului no dului t (ˆın pasul pa sul 2) 2 ) drumul de lungime lu ngime minim˘a se reconstituie din aproape ˆın aproape aproap e de la nodul t c˘atre atre nodul s cu ajutorul indicatorilor pred( pred ( j) j ). Dac˘ a nodul t nu este evident¸iat, ¸iat, dup˘a oprirea algoritmului se reconstituie, ˆın acela¸si si fel, graful drumurilor de lungime minim˘a de la s la orice alt nod ˆın graf. ∗
∗
∗
5.7. 5.7.
∗
∈
Arbor Arborii mini minima mali li
Definit¸ia ¸ia 5.7.1. 5.7.1. Se nume¸ nume¸ste st e arbore un graf neorientat finit, conex (ˆıntre orice dou˘ a noduri ale sale s ¸si si t exist˘a un drum) ¸si si f˘ar˘ ar˘ a cicluri. Problema ce urmeaz˘a s˘ a o rezolv˘am am are forma: forma: fiind fiind dat un graf graf G neorientat, conex s˘a se extrag˘a din G un arbore part¸ial ¸ial pentru care suma valorilor muchiilor este minim˘a. a.
62
TEORIA GRAFURILOR
Vom presupune, pentru a simplifica ideile, c˘a ˆıntre orice dou˘a noduri nod uri ale grafului graful ui G exist˘ a cˆate at e o muchie much ie,, ¸si si c˘a toate valorile muchiilor sunt diferite dou˘a cˆate ate dou˘ a. a. Fie A = a1 , . . . , am mult¸imea ¸imea muchiilor grafului. Vom nota cu pi = p(ai ) valoarea muchiei ai . Vom presupune deci c˘a p1 < .. . < p m .
{
5.7.1. 5.7.1.
}
Algori Algoritm tmul ul lui Krusk Kruskal al
PASUL 1. Se alege muchia a1 de valoare minim˘a. a. PASUL 2. Se alege muchia a2 de valoare minim˘a r˘ amas˘ amas˘a. a. PASUL 3. Se atribuie atribuie S = a1 , a2 . PASUL 4. Dac˘a am aco acoperi peritt toate toate nodurile nodurile grafulu grafului, i, atunci atunci algo algorit ritmu mull se opre op re¸¸ste. st e. Se alege muchia ar , de valoare minim˘a, a, din A S, care nu formeaz˘a cicluri cu muchiile lui S . PASUL 5. Se actualizeaz˘a S = S ar ¸si si goto PASUL 4. Observat ¸ie . Daca˘ exist˘a ˆın graf graf much muchii ii de valori alori egale, egale, atunci atunci s-ar s-ar putea putea ca problema problema s˘ a admit˘ a mai multe solut¸ii. ¸ii.
{
}
−
∪{ }
5.8. .8.
Aplic plica a¸ii ¸tii
Exercit¸iul ¸iul 5.8.1. 5.8.1. Posibilit˘ at a¸ile ¸tile de comunicare ˆıntre localit˘at a¸ile ¸t ile 1-6 sunt reprezentate prin graful din figura 5.1, unde fiec˘arei arei muchii (sau arc) i se atribuie lungimea tronsoanelor tronso anelor respective. respe ctive. Se cere drumul de lungime lungim e minim˘a ˆıntre ıntre 1 ¸si si 6.
Figura 5.1: Graf orientat. Rezolvare. Pentru rezolvarea problemei vom aplica algoritmul lui Ford. Problema se poate rezolva rezolva ¸si si cu algoritmul lui Bellman-Kalaba. PASUL 0. λ1 = 0, 0 , λ j = , j = 1 .
∞
63
APLI AP LICA CAT T ¸ I I TABELUL 5.1
j 1 2 3 4 5 6
λ j λ1 λ2 λ3 λ4 λ5 λ6
Init¸iali ¸ializar zaree 0
∞ ∞ ∞ ∞ ∞
Iterat Iterat¸ia 1 0 2 8,5 10,8 7 13,11
Iter Iterat at¸ia ¸ia 2 0 2 5 8 7 11
PASUL 1. Iterat¸ia ¸ia 1. Pentru fiecare arc (i, (i, j ) dac˘ a se verific˘a λ j λi > lij , atunci λ j = λi + lij . (1, (1, 2) λ2 λ1 = > 2, atunci λ2 = λ1 + l12 = 0 + 2 = 2, 2, (1, (1, 3) λ3 λ1 = > 8, atunci λ3 = λ1 + l13 = 0 + 8 = 8, 8, (2, (2, 1) λ1 λ2 = 0 2 = 2 < 2, (2, (2, 3) λ3 λ2 = 8 2 = 6 > l 23 = 3, 3 , atunci λ3 = λ2 + l23 = 2 + 3 = 5, 5, (2, (2, 4) λ4 λ2 = > 8, atunci λ4 = λ2 + l24 = 2 + 8 = 10, 10 , (3, (3, 1) λ1 λ3 = 0 5 = 5 < l 31 = 8, 8, (3, (3, 2) λ2 λ3 = 2 5 = 3 < l 32 = 4, 4, (3, (3, 4) λ4 λ3 = 10 1 0 5 = 5 = l34 = 5, 5, (3, (3, 5) λ5 λ3 = 5= > l35 = 2, atunci λ5 = λ3 + l35 = 5 + 2 = 7, 7, (4, (4, 2) λ2 λ4 = 2 10 = 8 < l42 = 8, (4, (4, 3) λ3 λ4 = 5 10 = 5 < l43 = 5, (4, (4, 5) λ5 λ4 = 7 10 = 3 < l45 = 3, (4, (4, 6) λ6 λ4 = > l 46 , atunci λ6 = λ4 + l46 = 10 + 3 = 13, 13 , (5, (5, 3) λ3 λ5 = 5 7 = 2 < l 53 = 2, 2, (5, (5, 4) λ4 λ5 = 10 1 0 7 = 3 > l 54 = 1, 1 , atunci λ4 = λ5 + l54 = 7 + 1 = 8, 8, (5, (5, 6) λ6 λ5 = 13 1 3 7 = 5 > l 56 = 4, 4 , atunci λ6 = λ5 + l56 = 7 + 4 = 11. 11 . Iterat¸ia ¸ia 2. Se reia pasul 1. (1, 2) λ2 λ1 = 2 = l12 , (1, (1, 3) λ3 λ1 = 5 < l 13 = 8, 8, (2, (2, 1) λ1 λ2 = 2 < l 21 = 2, 2, (2, 3) λ3 λ2 = 3 = l23 , (2, (2, 4) λ4 λ2 = 6 < l 24 = 8, 8, (3, (3, 1) λ1 λ3 = 5 < l 31 = 8, 8, (3, (3, 2) λ2 λ3 = 3 < l 32 = 4, 4, (3, (3, 4) λ4 λ3 = 3 < l 34 = 5, 5, (3, 5) λ5 λ3 = 2 = l35 , (4, (4, 2) λ2 λ4 = 6 < l 42 = 5, 5,
−
− − − − − − − − − − − − − − − − − − − − − − − − − −
∞ ∞ − − ∞ − − − ∞− − − − ∞ − − −
− − − −
−
− − ∞ − − − −
64
TEORIA GRAFURILOR
− − − − − −
− − −
(4, (4, 3) λ3 λ4 = 3 < l 43 = 5, 5, (4, (4, 5) λ5 λ4 = 1 < l 45 = 3, 3, (4, 6) λ6 λ4 = 3 = l46 , (5, (5, 3) λ3 λ5 = 2 < l 53 = 2, 2, (5, 4) λ4 λ5 = 1 = l54 , (5, 6) λ6 λ5 = 4 = l56 . ˆIn aceast ace ast˘˘a iterat ite rat¸ie ¸ie valorile variabilelor λ j nu s-au modificat. Aceasta ˆınseamn˘ a c˘ a algoritmul s-a terminat, iar drumurile minime ˆıntre 1 ¸si si 6 sunt date de arcele ( i, j ) care realizeaz˘a egalit˘ at a¸ile ¸tile λ j λi = lij . Aceste arce au fost marcate cu litere bold ˆın cadrul algoritmului. algor itmului. ˆIn etapa a doua arcele care realizeaz˘a aceste egalit˘at a¸i ¸ti sunt: (1, (1, 2), 2), (2, (2, 3), 3), (3, (3, 5), 5), (4, (4, 6), 6), (5, (5, 4), 4), (5, (5, 6). 6). Astfel Astf el ˆıntre 1 ¸si si 6 am dou˘ dou ˘a drumuri minime ¸si si anume:
−
µ1 : [1, [1, 2, 3, 5, 4, 6], 6],
l(µ1 ) = 11, 11,
¸si si µ2 : [1, [1, 2, 3, 5, 6], 6],
l(µ2 ) = 11. 11.
Exercit¸iul ¸iul 5.8.2. 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 am algoritmul Bellman-Kalaba. Init¸ializare: ¸ializare: (0)
vi
(0)
= vi6 ,
v6 = 0. 0.
i = 1, 1 , 2, 3, 4, 5
65
APLI AP LICA CAT T ¸ I I
Se scriu aceste valori ˆın ın linia v (0) a tabelului 5.2. Deci, coloana coloana 6 este transpus˘ transpus˘ a ˆın (0) linia lin ia de ˆıncepu ınc eputt v . TABELUL 5.2
1 2 3 4 5 6 v (0) v (1) succ(1) v (2) succ(2) v (3) succ(3)
1 0 3 1
2 3 0 5
3 1 5 0
5 3
6
∞ 3 ∞ ∞
∞ ∞ ∞ ∞
∞ 0 3 ∞ 4 0 ∞ ∞ ∞ ∞ 2 8
2 8 0
11 5 9 5 9 3,5
10 4 10 4 10 4
10 10 4 8 5 8 5
4
∞ ∞ 8 ∞ ∞ ∞ 2 ∞
2 6 2 6 2 6
6 4 6 4 6 4
0 0 0 0 -
PASUL 1. Se calculeaz˘a elementel elementelee liniei v (1) . (1)
(0)
(0)
(0)
(0)
(0)
}
(0)
}
(0)
}
(0)
}
v1 = min v2 + v12 , v3 + v13 , v4 + v14 , v5 + v15 , v6 + v16 = = min
(1)
{
{∞ + 3,3, ∞ + 1,1, 2 + ∞, 8 + 3,3, 0 + ∞} = 11 11,, (1) succ1 = {5}, (0)
(0)
(0)
(0)
v2 = min v1 + v21 , v3 + v23 , v4 + v24 , v5 + v25 , v6 + v26 = = min
(1)
{
{∞ + 3,3, ∞ + 5,5, 2 + 8,8, 8 + ∞, 0 + ∞} = 10 10,, (1) succ2 = {4}, (0)
(0)
(0)
(0)
v3 = min v1 + v31 , v2 + v32 , v4 + v34 , v5 + v35 , v6 + v36 = = min
(1)
{
{∞ + 1,1, ∞ + 5,5, 2 + ∞, 2 + 8,8, 0 + ∞} = 10 10,, (1) succ3 = {5}, (0)
(0)
(0)
(0)
v4 = min v1 + v41 , v2 + v42 , v3 + v43 , v5 + v45 , v6 + v46 = = min
{
{∞ + ∞, ∞ + ∞, ∞ + ∞, 8 + 3,3, 0 + 2} = 2,2 ,
66
TEORIA GRAFURILOR (1)
succ4 = 6 , (1)
{
(0)
(0)
{}
(0)
(0)
(0)
}
(1)
}
(1)
}
(1)
}
(1)
}
(1)
}
v5 = min v1 + v51 , v2 + v52 , v3 + v53 , v4 + v54 , v6 + v56 = = min
{∞ + 3,3, ∞ + ∞, ∞ + ∞, 2 + 4,4, 0 + 8} = 6,6 , (1) succ5 = {4}, (1)
v 6 = 0. PASUL 2. Se calculeaz˘a elementel elementelee liniei v (2) . (2)
{
(1)
{
(1)
{
(1)
(1)
(1)
(1)
v1 = min v2 + v12 , v3 + v13 , v4 + v14 , v5 + v15 , v6 + v16 =
{
∞, 6 + 3,3, 0 + ∞} = 9, (2) succ1 = {5},
= min 10 + 3, 3, 10 + 1, 1, 2 +
(2)
(1)
(1)
(1)
v2 = min v1 + v21 , v3 + v23 , v4 + v24 , v5 + v25 , v6 + v26 =
{
∞, 0 + ∞} = 10 10,, (2) succ2 = {4},
= min 11 + 3, 3, 10 + 5, 5, 2 + 8, 8, 6 +
(2)
(1)
(1)
(1)
v3 = min v1 + v31 , v2 + v32 , v4 + v34 , v5 + v35 , v6 + v36 = = min 11 + 1, 1, 10 + 5, 5, 2 +
{
(2)
∞, 6 + 2,2, 0 + ∞} = 8, (2) succ3 = {5},
(1)
(1)
(1)
(1)
v4 = min v1 + v41 , v2 + v42 , v3 + v43 , v5 + v45 , v6 + v46 =
{
{
= min 11 +
(2)
{
∞, 10 + ∞, 10 + ∞, 6 + 3,3, 0 + 2} = 2,2 , (2) succ4 = {6}, (1)
(1)
(1)
(1)
v5 = min v1 + v51 , v2 + v52 , v3 + v53 , v4 + v54 , v6 + v56 =
{
= min 11 + 3, 3, 10 +
∞, 10 + ∞, 2 + 4,4, 0 + 8} = 6,6 , (2) succ5 = {4}, (2)
v 6 = 0.
67
APLI AP LICA CAT T ¸ I I PASUL 3. Se calculeaz˘a elementel elementelee liniei v (3) . (3)
(2)
(2)
(2)
(2)
(2)
}
(2)
}
(2)
}
(2)
}
(2)
}
v1 = min v2 + v12 , v3 + v13 , v4 + v14 , v5 + v15 , v6 + v16 =
{
{
= min 10 + 3, 3, 8 + 1, 1, 2 +
∞, 6 + 3,3, 0 + ∞} = 9,9 , (3)
{ }
succ1 = 3, 5 , (3)
{
(2)
(2)
(2)
(2)
v2 = min v1 + v21 , v3 + v23 , v4 + v24 , v5 + v25 , v6 + v26 = = min 9 + 3, 3 , 8 + 5, 5 , 2 + 8, 8, 6 +
{
10 , ∞, 0 + ∞} = 10,
(3)
{}
succ2 = 4 , (3)
{
(2)
(2)
(2)
(2)
v3 = min v1 + v31 , v2 + v32 , v4 + v34 , v5 + v35 , v6 + v36 =
{
= min 9 + 1, 1 , 10 + 5, 5, 2 +
∞, 6 + 2,2, 0 + ∞} = 8,8 , (3)
succ3 = 5 ,
{}
(3)
(2) (2) (2) { (2) = min{9 + ∞, 10 + ∞, 8 + ∞, 6 + 3, 3 , 0 + 2 } = 2, (3) succ4 = {6},
v4 = min v1 + v41 , v2 + v42 , v3 + v43 , v5 + v45 , v6 + v46 =
(3)
{
(2)
(2)
(2)
(2)
v5 = min v1 + v51 , v2 + v52 , v3 + v53 , v4 + v54 , v6 + v56 =
{
= min 9 + 3, 3 , 10 +
∞, 8 + ∞, 2 + 4,4, 0 + 8} = 6,6 , (3)
{}
succ5 = 4 , (3)
v 6 = 0. (2)
(3)
Se obse ob serv rv˘˘a c˘ c ˘a vi = vi , i = 1, 1 , . . . , 6, ceea ce ˆınseamn˘ ınseam n˘a c˘a algoritmul s-a terminat. (3) Elementele vi sunt valorile minimale ale drumurilor de la fiecare vˆarf arf i la nodul (3) final final 6. Cu ajutorul ajutorul liniei liniei succ preciz˘ am drumurile de la fiecare nod i la nodul am final 6, prin considerarea considerarea arcelor date de nodurile i ¸si si succesoarele succeso arele acestora. acesto ra. ˆIn cazul nostru nostru avem avem arcele: arcele: (1, (1, 3), 3), (1, (1, 5), 5), (2, (2, 4), 4), (3, (3, 5), 5), (4, (4, 6), 6), (5, (5, 4). 4). Astfel de la nodul 1 la nodul final 6 avem dou˘a drumuri drumu ri ¸si si anume: anum e: µ1 = [1, [1, 3, 5, 4, 6], 6], µ2 = [1, [1 , 5, 4, 6] ambele (3) au valoarea egal˘ a cu v1 = 9.
68
TEORIA GRAFURILOR
Exercit¸iul ¸iul 5.8.3. 5.8.3. Posibilit˘ at a¸ile ¸tile de comunicare ˆıntre localit˘at a¸ile ¸t ile 1-6 sunt reprezentate prin graful din figura 5.3, unde fiec˘arei arei muchii i se atribuie lungimea tronsonului sonului respectiv. respectiv. Se cere drumul de lungime minim˘a ˆıntre 2 ¸si si toate celelalte celela lte noduri nod uri ale grafului precum ¸si si valoarea acestui drum.
Figura 5.3: Graf orientat. Rezolvare . Exemplu: Exemplu: ˆıntre ıntre 2 ¸si si 4 exist˘ a trei drumuri minime ¸si si anume: µ1 : [2, [2, 1, 5, 3, 4], 4], l(µ1 ) = 11a, 11a, µ2 : [2, [2, 1, 5, 3, 6, 4], 4], l(µ2 ) = 11a, 11a, ¸si si µ3 : [2, [2, 1, 5, 6, 4], 4], l(µ2 ) = 11 11a. a. Exercit¸iul ¸iul 5.8.4. 5.8.4. Posibilit˘ at a¸ile ¸tile de comunicare ˆıntre localit˘at a¸ile ¸t ile 1-4 sunt reprezentate prin graful din figura 5.4, unde fiec˘arei arei muchii i se atribuie lungimea tronsonului sonului respectiv. respectiv. Se cere drumul de lungime minim˘a ˆıntre 1 ¸si si toate celelalte celela lte noduri nod uri ale grafului precum ¸si si valoarea acestui drum.
Figura 5.4: Graf orientat. Rezolvare. Se aplic˘a algoritmul lui Ford. Init¸ializare. ¸ializare.
69
APLI AP LICA CAT T ¸ I I TABELUL 5.4
j 1 2 3 4
λ j λ1 λ2 λ3 λ4
Init¸ial ial 0
∞ ∞ ∞
Iter Iterat at¸ia ¸ia 1 0 2 5 3
Iterat¸ia ¸ia 1. Pentru fiecare arc (i, ( i, j ) care verific˘a relat¸ia ¸ia λ j λ j = λi + lij .
− λ1 = ∞ > l12 ⇒ λ2 = λ1 + l12 = 2.2 . (1, (1, 4) : λ4 − λ1 = ∞ > l41 ⇒ λ4 = λ1 + l14 = 3. 3. (2, (2, 1) : λ2 − λ1 = −2 < 2. (2, (2, 3) : λ3 − λ2 = ∞ > l23 ⇒ λ3 = λ2 + l23 = 5. 5. (2, (2, 4) : λ4 − λ2 = 1 < l 24 . (3, (3, 2) : λ2 − λ3 = −3 < l32 . (3, (3, 4) : λ4 − λ3 = −2 < l34 . (4, (4, 2) : λ2 − λ4 = −1 < l42 . (4, (4, 3) : λ3 − λ4 = 2 < l 43 .
− λi > l ij reactualiz˘am am
(1, (1, 2) : λ2
Iterat¸ia ¸ia 2. Pentru fiecare arc (i, ( i, j ) care verific˘a relat¸ia ¸ia λ j λ j = λi + lij .
− λ1 = 2 = l12. (1, 4) : λ4 − λ1 = 3 = l41 . (2, (2, 1) : λ2 − λ1 = −2 < l21 . (2, 3) : λ3 − λ2 = 3 = l23 . (2, 4) : λ4 − λ2 = 1 = l24 . (3, (3, 2) : λ2 − λ3 = −3 < l32 . (3, (3, 4) : λ4 − λ3 = −2 < l34 . (4, (4, 2) : λ2 − λ4 = −1 < l42 . (4, (4, 3) : λ3 − λ4 = 2 < l 43 .
− λi > l ij reactualiz˘am am
(1, 2) : λ2
Drumurile de lungime minim˘a ˆıntre nodul 1 ¸si si celelalte noduri ale grafului se recons reconstit tituie uie din figura figura 5.5 5.5.. Drumu Drumull de lungim lungimee minim˘ minim˘ a dintre dintre nodul 1 ¸si si nodul 3 este [1, [1, 2, 3] ¸si si are valoarea 5.
70
TEORIA GRAFURILOR
Figura 5.5: Drumurile optime ˆıntre nodul no dul 1 ¸si si celelalte noduri ale grafului.
Exercit¸iul ¸iul 5.8.5. 5.8.5. Se consider˘a graf graful ul din figura figura 5.6. Nume Numere rele le de pe muc muchii hii reprezint˘ a distant distan¸a ¸t a dintre noduri. S˘a se determine rutele cele mai scurte ¸si si lungimile lung imile 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.
71
APLI AP LICA CAT T ¸ I I
Figura 5.7: Reconstruct¸ia ¸ia drumurilor optime care ajung ˆın nodul 1. Exercit¸iul ¸iul 5.8.6. 5.8.6. Pentru graful din figura 5.8 determinat¸i ¸i drumurile de lungime minim˘a ˆıntre ıntre nodul nod ul 0 ¸si si 7. Care este valoarea minim˘a a acestui drum?
Figura 5.8: Graf orientat. Rezolvare. Se aplic˘a algoritmul Bellman-Ka Bellman-Kalaba laba sau Ford. Ford. Drumul Drumul de lungime lungime minim˘a dintre nodul 0 ¸si si 7 obt¸inut ¸inut prin ambele metode este urm˘atorul atorul [0, [0, 1, 3, 5, 7]. 7]. Valoarea minim˘ a a acestui drum este 37. 37 . Exercit¸iul ¸iul 5.8.7. 5.8.7. Se consider˘a graful din 5.9. S˘ a se pun˘a ˆın eviden evi dent¸˘ ¸ta˘ urm˘atoarele atoarele elemente: i) matricea matricea arcelor arcelor (sau matricea matricea conexiunilor conexiunilor directe); directe); ii) matricea drumurilor; iii) puterea de atingere a fiec˘arui arui vˆarf; arf; iv) dac˘ a graful are circuite; iv) determinat¸i ¸i drumurile drumurile hamiltoniene hamiltoniene din graf.
72
TEORIA GRAFURILOR
Figura 5.9: Graf orientat. Rezolvare. i) Matricea Matricea conexiunilor conexiunilor directe este:
A=
ii) Matricea drumurilor este:
D=
0 1 0 0
1 0 1 0
0 1 0 0
1 1 0 0
1 1 1 0
1 1 1 0
1 1 1 0
1 1 1 0
iii) Puterile de atingere ale fiec˘arui arui vˆarf arf al grafului sunt: p(x1 ) = 4, p(x2 ) = 4, p( p(x3 ) = 4, 4 , p(x4 ) = 0. 0. iv) Graful are circuite, circuite, de exemplu exemplu x1 , x2 , x1 este un circuit, circuit, deci algoritmul algoritmul lui Chen nu se poate aplica. v) Graful avˆand and circuite, pentru determinarea drumurilor hamiltoniene vom aplica algoritmul lui Kaufmann. PASUL 0. Matricea conexiunilor directe:
{
K(1) =
∗ (x2 , x1 ) ∗ ∗
}
(x1 , x2 )
∗ (x3 , x2 ) ∗
∗ (x2 , x3 ) ∗ ∗
(x1 , x4 ) (x2 , x4 )
∗ ∗
PASUL 1. Matricea destinat¸iilor ¸iilor posibile:
K(0) =
∗ ∗ ∗
x1
x2
∗ x4 ∗ x3 x4 x2 ∗ ∗ ∗ ∗ ∗
.
.
73
APLI AP LICA CAT T ¸ I I PASUL 2. Determin˘ am drumurile formate din dou˘a arce din matricea: am K(2) = K(1) &K(0) =
(x1 , x2 , x1 )
∗ (x3 , x2 , x1 ) ∗
∗ (x2 , x1 , x2 ) ∗ ∗
∗ ∗ (x3 , x2 , x3 ) ∗
(x1 , x2 , x4 ) (x2 , x1 , x4 ) (x3 , x2 , x4 )
∗
PASUL 3. Determin˘ am drumurile formate din trei arce cu ajutorul matricei am (2) (0) = K &K :
K(3)
∗ (x2 , x1 , x2 , x1 ) ∗ ∗
(x1 , x2 , x1 , x2 ) (x2 , x1 , x2 , x3 ) (x3 , x2 , x1 , x2 ) sau (x (x3 , x2 , x3 , x2 )
∗
∗ ∗ ∗ ∗
(x1 , x2 , x4 ) (x2 , x1 , x2 , x4 ) (x3 , x2 , x1 , x4 )
∗
Algoritmul Algori tmul se s e opre¸ o pre¸ste ste pentru c˘a drumul hamiltonian (dac˘ a exist˘a) a) are lungimea 3 = nr. noduri 1. Deci drumul hamiltonian este (x ( x3 , x2 , x1 , x4 ).
−
Exercit¸iul ¸iul 5.8.8. 5.8.8. S˘ a se g˘aseasc˘ aseasc˘a drumurile hamiltoniene din graful din figura 5.10.
Figura 5.10: Graf orientat. Rezolvare. Se aplic˘a algoritmul alg oritmul lui Kaufmann Ka ufmann ¸si si se obt¸in ¸in drumurile hamiltoniene:
µ1 µ2 µ3 µ4 µ5
= [1, [1 , 2, 3, 4, 6, 5], 5], = [2, [2 , 3, 1, 6, 5, 4], 4], = [3, [3 , 1, 2, 5, 4, 6], 6], = [3, [3 , 1, 6, 2, 5, 4], 4], = [5, [5 , 4, 6, 2, 3, 1]. 1].
74
TEORIA GRAFURILOR
Capitolul 6
PROBLEME DE TRANSPORT 6.1. 6.1.1.
Problema clasic˘ clasic˘ a de transport transport Formulare ormularea a problemei problemei
Problema de transport ˆın forma fo rma standard standa rd are forma urm˘atoare: atoare:
≤ ≤ ≤ ≤ ≥ ≤ ≤ ≤ ≥ ≤ ≤ ≥ ≤ ≤ inf n
j=1 j =1 m i=1
xij
unde:
m
n
i=1 j=1 j =1
cij xij ,
xij = ai , 1
i
m,
xij = b j , 1
j
n,
0, 1 ai b j
m
i=1
i
0, 1 0, 1
ai =
m, 1
j
i j
m, n,
n
j=1 j =1
(6.1)
≤ n. (6.2)
b j .
Teorema eorema 6.1.1. 6.1.1. Condit ¸ia necesar˘ necesar˘ a ¸si si suficient˘ suficie nt˘ a ca sistemul de ecuat ¸ii considerat ˆın 6.1 s˘ a aib˘ a solut ¸ie nenegativ˘ a este ca relat ¸iile 6.2 s˘ a fie ˆındepl ınd eplini inite. te.
75
76
PROBLEME DE TRANSPORT
6.1.2.
Algoritmu Algoritmull de transport transport (adaptare (adaptarea a algoritm algoritmului ului simplex) simplex)
Fundamente teoretice Problema de transport se poate p oate scrie ˆın ın forma matriceal˘a: a:
inf c inf ct x Ax = b x 0
≥
Unei probleme de transport transport ˆıi asociem un tabel de transport transport care cont¸ine ¸ine datele numer numerice ice ale proble problemei mei de transpo transport. rt. Tabelul abelul de transport transport 6.1 are m lini li niii ¸si si n coloane. coloa ne. Fiecare celul˘a (i, ( i, j ), 1 i m, 1 j n, a acestui tabel poate fi asociat˘a cu costul costul unitar unitar cij , cu necunoscut˘ necunoscut˘ a xij , cu valoarea xij a variabilei ariabilei xij dintr-o anumit˘ a solut¸ie ¸ie (x (xij ) a sistemului de ecuat¸ii ¸ii 6.1.
≤ ≤
≤ ≤
TABELUL 6.1
c11 c21 ... cm1 b1
c12 c22 ... cm2 b2
... ... ... ... ...
c1n c2n ... cmn bn
a1 a2 ... am
Tabelul de transport mai cont¸ine ¸ine o coloan˘a suplimentar˘a ˆın care car e sunt trecute trec ute ˆın mod mo d obi¸ o bi¸snuit snuit cantit˘ cant it˘at a¸ile ¸tile disponibile ai , 1 i m, ¸si si o lini l iniee supli su plimenta mentar˘ r˘a ˆın care c are sunt ˆ trecute cererile b j , 1 j n. In celula (i, (i, j ) este trecut costul unitar cij ; dac˘a dorim s˘a scrie s criem m ¸si si valoarea valoa rea xij a variabilei xij , vom vo m ˆımp˘ ım p˘art art¸i ¸i celula (i, (i, j ) printr-o printr-o diagonal˘ diagonal˘ a ˆın dou˘ do u˘a p˘art art¸i ¸i ¸si si vom scrie scri e c ij ˆın partea superioar˘ super ioar˘a, a, iar xijˆın partea inferioar˘ inferi oar˘a. a. Tabelului de transport T ˆıi asociem un graf neorientat neorientat Γ avˆ and and drept noduri mult¸imea ¸imea celulelor (i, (i, j ), 1 i m, 1 j n, ale tabelui de transport T ¸si si drep dr eptt muchii mult¸imile ¸imile formate din dou˘a celule situate situat e ˆıntr-o ıntr-o aceea¸si si linie sau coloan˘ coloa n˘a a ˆ lui T . T . In cele ce urmeaz˘a vom considera numai acele subgrafuri part¸iale ¸iale ale lui Γ care se obt¸in ¸in prin unirea cu muchii a celulelor vecine, adic˘a a celulelor situate pe o aceea¸si si linie sau coloan˘a a lui T ˆıntre care nu exist˘a alte celule din mult¸imea ¸imea de noduri ale subgrafului. Un subgraf part¸ial ¸ial de acest tip al lui Γ se nume¸ste ste π-graf . Un π-graf care este un lant¸ (ciclu) elementar avˆand 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 ¸ie de baz˘a admisibil˘a xij (vom vedea ulterior cum anume) anume) corespunz˘ corespunz˘ atoare atoare unei matrice B format˘a din m + n 1 coloane liniar
−
˘ DE TRANSPORT PROBLEMA CLASIC A
77
B
independente ale matricei A ¸si si apoi ap oi mult mul¸imea ¸timea a celulelor de baz˘a, a, dup˘ a care trecem la pasul urm˘ator. ator. PASUL 1. Se rezolv˘ rezolv˘a sistemul de ecuat¸ii: ¸ii:
∀
ui + v j = cij , (i, j )
∈ B, −
se obt¸ine ¸ine o solut¸ie ¸ie particular˘a (ui , v j ) a acestui sistem ¸si si se calculeaz˘a valorile zij cij = ui + v j cij pentru (i, j ) (mult¸imea ¸imea celulelor care nu sunt ˆın ın baz˘a). a). Dac˘ a zij cij 0 pentru toate celulele (i, ( i, j ) , ne oprim (STOP (STOP): ): solut¸ia ¸ia de baz˘ a xij este optim˘a. a. ˆIn caz contrar se determin˘a (s, k ) cu criteriul crite riul de intrare ˆın ın baz a: ˘a:
− − ≤
∀
∈R
∈R
∈R max{zij − cij } = zsk − csk
¸si si se s e trece tr ece la pasul urm˘ator. ator. PASUL 2. Se determin˘a µ-ciclul format de (s, (s, k ) cu o parte din celulele din , se adopt˘a un sens de parcurs ¸si si se numeroteaz˘a celulele celulel e sale ˆıncepˆand and cu celula (s, k). Se determin˘a apoi celula (r, (r, t) cu criteriul crite riul de ie¸sire sire din baz˘ a :
∈R
B
∈B min{xij } =xrt ,
unde minimul se ia ˆın raport rapo rt cu toate to ate celulele (i, ( 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˘ ¸inut˘ a din B prin ˆınlocuirea ınlo cuirea coloanei coloa nei art ∼ ∼ cu coloana ask . Se determin˘a solut¸ia ¸ia de baz˘a admisibil˘a xij corespunz˘atoare atoare lui B cu ajutorul formulelor de schimbare a bazei:
∼x
ij =
xij xrt , dac˘ a (i, j ) are rang par ˆın µ ciclu, xij + xrt , dac˘ a (i, j ) are rang impar ˆın µ ciclu, xij , dac˘a (i, j ) nu apart¸ine ¸ine µ ciclului.
−
−
−
∼
−
∼
Se trece apoi la pasul 1 ˆınlocuind ınlocuind B cu B ¸si si solu so lut¸ia ¸tia xij cu xij . Observat ¸ie. Dac˘a la terminarea algoritmului avem zij cij < 0 pentru toate celulele (i, (i, j ) , atunci solut¸ia ¸ia problemei de transport este unic˘a. a.
−
∈R
6.1.3.
Determinarea unui unui program de baz˘ baz˘ a init¸ial ¸ial
Pentru a putea aplica algoritmul de transport enunt¸at ¸at anterior este necesar s˘a dispunem de un program de baz˘a init¸ial. ¸ial. Metoda general˘ general˘ a de obt¸inere ¸inere a unui program de baz˘a este urm˘atoarea. atoarea. Se fixeaz˘ fixeaza˘ o celul˘a (i, j ) ¸si si se atribuie atribui e variabilei xij valoarea minim˘a pe care o poate lua, adic˘a valoarea: xij = min ai , b j .
{
}
78
PROBLEME DE TRANSPORT
Dac˘ a xij = ai , atunci se elimin˘a din tabelul de transport linia de rang i ¸si si se ˆınlo cui cu ie¸ste b j prin b j = b j xij . Dac˘ a xij = b j , atunci se elimin˘a din tabelul de transport coloana de rang j ¸si se ˆınlo cuie¸ste st e ai cu ai = ai xij . Dac˘ a xij = ai = b j , atunci se aplic˘a, a, la alegere, unul dintre procedeele descrise anterior.
−
−
ˆIn cele trei situat¸ii ¸ii prezentate se obt¸ine ¸ine un tabel de transport transport redus, avˆand and fiecare o linie sau o coloan˘a mai put¸in ¸in decˆat a t cel init¸ial. ¸ial. Urmˆ and and procedeul procedeul descris descris pe toate tabelele reduse care se obt¸in ¸in ˆın ın continuare, se determin˘ determi n˘a evident un program al problemei problemei de transpo transport. rt. Metoda Metoda genera general˘ l˘ a de obt¸inere ¸inere a unui program de baz˘a pentru pentru problema problema de transport transport poate fi particulari particularizat˘ zat˘ a dˆand and diverse reguli de select¸ie ¸ie a celulei (i, (i, j ) din tabel care se atribuie valorii xij . Dintre metodele particulare de determinare a unui program de baz˘a init¸ial ¸ial le ment¸ion˘ ¸ion˘ am pe cele care urmeaz˘a. am a. i) Metoda colt ¸ului de nord-vest . Aceast Aceast˘˘a metod˘ a const˘a ˆın alegerea celulei (i, j ) situate situat e ˆın prima linie ¸si si prima coloan˘ coloa n˘a ale tabelelor de transport utilizate. ii) Metoda costului minim . La fiecar fiecaree pas se alege alege celula celula (i, ( i, j ) corespunz˘atoare atoare costului minim cij din tabelele de transport utilizate.
6.1.4.
Degenerare ¸si si ciclare
Ca ¸si si ˆın cazul general al problemelor de programare liniar˘a, a, degenerarea degenerarea programelor de baz˘a poate face s˘a apar˘ a fenomenul de ciclare ˆın algoritmul de transport. transpo rt. Evident, o solut¸ie ¸ie de baz˘a a problemei de transport ˆın ın forma standard este nedegenerat˘a dac˘ da c˘a ¸si si numa numaii dac˘ da c˘a num˘arul arul componentelor sale nenule este egal cu m + n 1 ¸si si este est e dege d egenera nerat˘ t˘a ˆın caz contrar. Pentru recunoa¸sterea sterea problemelor degenerate este util urm˘atorul atorul criteriu.
−
Propozit¸ie ¸ie 6.1.1. 6.1.1. O problem˘ a de transport transport ˆın forma standard este est e degenerat˘ degenerat˘ a dac˘ a ¸si si numai num ai dac˘ dac a˘ exist˘ a o mult ¸ime de indici M 1,...,m ¸si si o mult mu lt ¸ime de indici N 1,...,n astf as tfel el ˆıncˆ ın cˆ at:
⊂{
⊂{
}
ai =
i M
∈
j N
∈
b j.
}
˘ DE TRANSPORT PROBLEMA CLASIC A
6.1.5. 6.1.5.
79
Varian ariante te ale prob problem lemei ei de trans transport port
Problema de transport cu cerere excedentar˘ a. a. Forma problemei de transport cu cerere excedentar˘ a este urm˘atoarea: atoarea:
≤ ≤ ≤ ≤ ≤ ≥ ≤ ≤ ≤ ≤ ≥ ≤ ≤ ≥ ≤ ≤ ≤ − inf n
j=1 j =1 m i=1
m
i=1 j=1 j =1
cij xij ,
xij = ai , 1
xij
xij
unde:
n
b j , 1
0, 1
i
m,
j
n,
i
0, 1 0, 1
ai b j
m
i=1
ai
m, 1
j
i j
m, n,
n
j=1 j =1
n.
b j .
Pentru rezolvarea rezolvarea acestei probleme se introduce un depozit fictiv ˆın care disponidisp onibilul de resurs˘a este: n
m
am+1 =
b j
ai ,
j=1 j =1
i=1
adic˘a tocmai excedentul cererii totale. Costurile de transport de la depozitul m + 1 pot fi luate nule sau egale cu penalit˘at a¸ile ¸t ile unitare stabilite prin contracte cu beneficiarii pentru neonorarea neonorarea cererilor cererilor,, dac˘a astfel de penalit˘at a¸i ¸t i exist˘a. a. Problema devine atunci o problem˘a standard de transport, care se rezolv˘a prin algoritmul cunoscut. Problema de transport cu ofert˘ a exced ex cedent entar ar˘ ˘ a. a. Forma problemei de transport cu ofert˘ a excedentar˘ a este urm˘atoarea: atoarea:
≤ ≤ ≤ ≤ ≤ ≥ ≤ ≤ ≤ ≥ ≤ ≤ ≥ ≤ ≤ ≥ inf n
j=1 j =1 m i=1
xij
unde:
m
n
i=1 j=1 j =1
xij
cij xij ,
ai , 1
i
m,
xij = b j , 1
j
n,
0, 1 ai b j
m
i=1
i
0, 1 0, 1
ai
m, 1
j
i j
m, n,
n
j=1 j =1
b j .
≤ n.
80
PROBLEME DE TRANSPORT
Pentru rezolvarea acestei probleme se introduce un consumator fictiv care are cererea: m
n
−
bn+1 =
ai
i=1
b j ,
j=1 j =1
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 Problem a de transp ort cu capacit˘ capac it˘ at a¸i ¸t i limitate. limitate. Forma problemei de transport po rt cu capaci cap acit˘ t˘at a¸i ¸t i limitate este urm˘atoarea: atoarea:
≤ ≤
≤ ≤ ≤ ≤ ≥ ≥ ≤ ≤ ≤ ≤ ≥ ≤ ≤ ≥≥ ≤≤ ≤≤ ≤ ≤ ≥ ≤ ≤ ≥ ≤≤ inf n
j=1 j =1 m i=1
dij
unde:
m
n
i=1 j=1 j =1
cij xij ,
xij = ai , 1
i
m,
xij = b j , 1
j
n,
xij
ai b j dij m
i=1 m i=1 n
j=1 j =1
0, 1
i
m, 1
0, 1 i m, 0, 1 j n, 0, 1 i m, 1
ai =
n
j=1 j =1
j
j
n.
n,
b j .
ai
b j , 1
j
n,
b j
ai , 1
i
m.
Rezolvarea Rezolvarea acestei probleme se poate face ¸si si cu ajutorul algoritmului simplex ce este prezentat ˆın subparagraful urm˘ ator. ator. Ment Men¸ion˘ ¸tion˘am am c˘a problema se poate aborda ¸si si ca o problem˘ problem ˘a de flux minim.
6.1.6. 6.1.6.
Algori Algoritm tmul ul simplex simplex modifica modificatt
Pentru determinarea unui program init¸ial ¸ial se alege ˆın ın mod arbitrar o celul˘a (i, j ) ¸si si se atribuie atribu ie lui xij valoarea:
∼x
ij =
{
}
min ai , b j , dij .
˘ DE TRANSPORT PROBLEMA CLASIC A
∼
81
∼
∼
Dac˘ a xij = ai sau xij = b j , atunci proced˘am am ˆın mo mod d obi¸snuit. snui t. Dac˘ Dac a˘ xij = dij < ∼ min ai , b j , variabila xij nu este considerat˘a variabil˘a de baz˘ ba z˘a. a. Dac˘a xij = dij = ∼ min ai , b j , atunci variabila xij nu este considerat˘a variabil˘a de baz˘a. a. Valorile (xij ) obt¸inute ¸inute ˆın acest mod nu constitui con stituiee ˆınc˘a un program al problemei: se poate ˆıntˆ ampla ampla ca unele disponibil disp onibilit˘ it˘at a¸i ¸t i s˘a nu fie complet epuizate, iar unele cereri s˘a nu fie integral ∼ satisf˘ acute. acute. Plecˆ Plecˆ and an d ˆıns˘ ın s˘a de la valorile ( xij ) astfel determinate, putem obt¸ine ¸ine un program de baz˘a pentru problema de transport cu capacit˘at a¸i ¸t i limitate cu algoritmul algoritmul care urmeaz˘a. a. S˘ a presupunem c˘a exist˘a un depozit r , 1 r m, ˆın care a r˘amas amas neexpediat˘ neexpediat˘ a cantitatea de resurs˘a ar ¸si si benefi be neficia ciarii rii s ¸si si k, unde cererile au r˘amas amas nesatisf˘acute acute ∼ cu cantit˘ cantit˘ at a¸ile ¸tile bs ¸si si bk ; evident, avem ar = bs + bk . Algoritmul care transform˘a (xij ) ˆın programul de baz˘a (xij ) este urm˘atorul: atorul: PASUL 1. Se adaug˘ a la linia r o celul˘a suplimentar˘a ˆın care valoarea variabilei corespunz˘atoare atoare xr0 este ar . Analog, Analog, se adaug˘ adaug˘ a la coloanele s ¸si si k cˆ ate a te o celul˘a suplimentar˘ a ˆın care valorile variabilelor variab ilelor corespunz co respunz˘˘atoare atoare x0s ¸si si x0k sunt bs respectiv bk . Se ˆınlocuiesc costurile unitare init¸iale ¸iale cij , 1 i m, 1 j n, cu cij = 0 ¸si si se atribuie celulelor nou introduse costuri egale cu unitatea, adic˘a cr0 = c0s = c0k = 1. 1. PASUL 2. Se rezolv˘ rezolv˘a sistemul de ecuat¸ii: ¸ii:
{ {
} }
≤ ≤
≤ ≤
ur = 1, 1, vs = 1, 1, vk = 1, 1, ui + v j = cij , (i, j )
≤ ≤
∈ B, i = r, j = s,k.
PASUL 3. Se caut˘a cu algo algoritmul ritmul de transport transp ort obi¸snuit snuit solut¸ia ¸ia optim˘ a pentru problema de la pasul 1; evident ˆın solut¸ia ¸ia optim˘ a vom avea: xr0 = x0s = x0k = 0. 0. Renunt¸˘ ¸am a˘m la celulele suplimentare ¸si revenim la costurile init¸iale cij . Solut¸ia ¸ia astfel obt¸inut˘ ¸inut˘ a este un program de baz˘a. a. Conform rezultatului general stabilit la algoritmul simplex, testul de optimalitate ∗ ) este optim dac˘a zij cij 0 pentru toate celulele este urm˘atorul: atorul: programul programul (x (xij ∗ = 0 ¸si zij cij 0 pentru toate celulele secundare secundare (i, (i, j ) pentru care xij ∗ = dij. (i, j ) pentru care xij
− ≥
6.1. 6.1.7. 7.
− ≤
Apli Aplica cat¸ii ¸tii
Exercit¸iul ¸iul 6.1.1. 6.1.1. S˘ a se g˘aseasc˘ aseasc˘ a, a, prin metoda colt¸ului ¸ului de N-V ¸si si prin metoda costului minim o solut¸ie ¸ie de baz˘a pentru problema de transport ale c˘arei arei date sunt
82
PROBLEME DE TRANSPORT
prezentate ˆın ın tabelul 6.2. G˘ asit asit¸i ¸i pentru aceaste solut¸ii ¸ii valorile corespunz˘atoare atoare ale funct¸iilor ¸iilor obiectiv. Care solut¸ie ¸ie este mai bun˘a ¸si si de ce? TABELUL 6.2
7 2 6 5
8 4 3 9
5 5 1 9
3 9 2 7
11 11 8
Determin˘ am ma am maii ˆıntˆ ınt ai aˆi o solut¸ie ¸ie de baz˘a init¸ial˘ ¸ial˘ a cu metoda N-V: x11 = min 11 11,, 5 = 5, elimin˘ am am coloana 1, x12 = min 6, 9 = 6, 6 , elimin˘am am linia 1, x22 = min 11 11,, 3 = 3, elimin˘ am am coloana 2, x23 = min 8, 9 = 8, 8 , elimin˘am am linia 2, x33 = min 1, 8 = 1, 1 , elimin˘am am coloana 3, x34 = min 7, 7 = 7. 7. Valoarea funct¸iei ¸iei obiectiv este:
{ { { { { {
} } } } } }
7 5 + 6 8 + 3 4 + 5 8 + 1 1 + 2 7 = 150. 150.
·
·
·
·
·
·
Determin˘ am am o solut¸ie ¸ie de baz˘a init¸ial˘ ¸ial˘ a prin metoda costului minim: x33 = min 8, 9 = 8, 8 , elimin˘am am lina 3, x21 = min 11 11,, 5 = 5, elimin˘ am am coloana 1, x14 = min 11 11,, 7 = 7, elimin˘ am am coloana 4, x22 = min 6, 9 = 6, 6 , elimin˘am am linia 2, x13 = min 4, 1 = 1, 1 , elimin˘am am coloana 3, x12 = min 3, 3 = 3. 3. Valoarea funct¸iei ¸iei obiectiv este:
{ { { { { {
} } } } } }
·
·
·
·
·
·
8 3 + 5 1 + 3 7 + 2 5 + 4 6 + 1 8 = 92. 92. Evident solut¸ia ¸ia de baz˘a obt¸inut˘ ¸inut˘ a prin metoda costului costului minim este mai bun˘a deoarece costul corespunz˘ator ator acesteia este mai mic. Exercit¸iul ¸iul 6.1.2. 6.1.2. S˘ a se g˘aseasc˘ aseasc˘ a o solut¸ie ¸ie de baz˘a pentru problema de transport echilibrat˘a ale c˘arei arei date dat e sunt prezentate ˆın tabelul t abelul 6.3. G˘asit asit¸i ¸i valoarea corespunz˘ atoare atoare a funct¸iei ¸iei obiectiv. G˘asit asit¸i ¸i solut¸ia ¸ia optim˘ a a problemei. TABELUL 6.3
1 3 5
3 1 3
2 2 7
10 5
˘ DE TRANSPORT PROBLEMA CLASIC A
83
R˘ aspuns. PASUL 0. Solut¸ia ¸ia init¸ial˘ ¸ial˘ a de baz˘a determinat˘a prin metoda colt¸ului ¸ului de N-V este: x11 = min 5, 10 = 5, elimin˘ am am coloana 1, x12 = min 3, 5 = 3, 3 , elimin˘am am coloana 2, x13 = min 7, 2 = 2, 2 , elimin˘am am linia 1, x23 = min 5, 5 = 5. 5. Costul Costul aferent aferent acestei acestei solut¸ii ¸ii este C = 28 2 8.
{ } { } { } { }
Figura 6.1: Solut¸ia ¸ia init¸ial˘ ¸ial˘ a ¸si si marcarea marcare a celulelor celulel or din µ-ciclu. Iterat¸ia ¸ia 1, PASUL 1. i) Rezolv˘am am sistemul (o solut¸ie ¸ie particular˘a care se obt¸ine ¸ine setˆand and u1 = 0): ui + v j = cij (i, j ) ,
∀
∈B
Solut¸iile ¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a se trec elementele ui , iar pe orizontal˘a se trec elementele v j ). ii) Calcul˘ Calculam a˘m elementele: zij
− cij = ui + v j − cij ∀(i, j ) ∈ R,
care se trec ˆın colt¸urile ¸urile din dreapta sus ale fiec˘arei arei celule secundare. iii) Calcul˘ Calculam a˘m (criteriul de optim): max (zij
(i,j) i,j )
∈R
− cij ) = z22 − c22 = 2 > 0
Criteriul de optim nu este ˆındeplinit, deci celula (2, (2 , 2) intr˘a ˆın baz˘ ba z˘a. a. am Iterat¸ia ¸ia 1, PASUL 2. Pentru a determina care celul˘a iese din baz˘a determin˘am µ-ciclul format din celula (2, (2 , 2) cu o parte a celulelor din baz˘a: a: (2, (2, 2), 2), (2, (2, 3)∗ , (1, (1, 3), 3), (1, (1, 2)∗ , (2, (2, 2). 2). Se adopt˘ a un sens de parcurs al acestui µ-ciclu marcˆandu-se andu-se cu par. Condit¸ia ¸ia de ie¸sire sir e din di n baz˘ ba z˘a: a:
∗ celulele celulele de rang
84
PROBLEME DE TRANSPORT
min xij =x12 ,
∗
deci celula (1, (1, 2) iese din baz˘a. a. Iterat¸ia ¸ia 1, PASUL 3. Aplicˆand and formulele de schimbare a bazei obt¸inem ¸inem noua solut¸ie. ¸ie. Costul corespunz˘ator ator acesteia este: C 1 = 22, 22 , care este mai mic decˆat at costul anterior C 0 . Repet˘am am pa¸sii sii anterior ante riori: i: Iterat¸ia ¸ia 2, PASUL 1. i) Rezolv˘am am sistemul (o solut¸ie ¸ie particular˘a care se obt¸ine ¸ine setˆand and u1 = 0): ui + v j = cij (i, j ) ,
∀
∈B
Solut¸iile ¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a se trec elementele ui , iar pe orizontal˘a se trec elementele v j ). ii) Calcul˘ Calculam a˘m elementele:
− cij = ui + v j − cij ∀(i, j ) ∈ R,
zij
care se trec ˆın colt¸urile ¸urile din dreapta sus ale fiec˘arei arei celule secundare.
Figura 6.2: Solut¸ia ¸ia final˘a. a. iii) Calcul˘ Calculam a˘m (criteriul de optim): max (zij
(i,j) i,j )
∈R
− cij ) = z12 − c12 = −2 < 0,
solut¸ia ¸ia este optim˘a, a, iar aceasta este: x11 = 5, x13 = 5, 5 , x22 = 3, 3 , x23 = 2. 2. Exercit¸iul ¸iul 6.1.3. 6.1.3. S˘ a se g˘aseasc˘ aseasc˘ a o solut¸ie ¸ie de baz˘a pentru problema de transport echilibrat˘a ale c˘arei arei date dat e sunt prezentate ˆın tabelul t abelul 6.4. G˘asit asit¸i ¸i valoarea corespunz˘ atoare atoare a funct¸iei ¸iei obiectiv. G˘asit asit¸i ¸i solut¸ia ¸ia optim˘ a a problemei.
˘ DE TRANSPORT PROBLEMA CLASIC A
85
TABELUL 6.4
2α 3α α β
3α 6α 4α 7β
4α 2α 5α β
α 2β 4α 3β 3α λ 6β
R˘ aspuns. Cantitatea disponibil˘ a trebuie s˘a fie egal˘ a cu cererea deci: 15β 15 β = 5β 5 β + +λ de unde λ = 10β. 10 β. PASUL 0. Determin˘ am am o solut¸ie ¸ie de baz˘a prin metoda costului minim. Deci: x31 = min β ; 10 10β β = β, elimin˘am am coloana 1 din tabelul de transport, x14 = min 7β ; 2β = 2β, 2 β, elimin˘ am linia 1 din tabelul de transport, am x23 = min β ; 3β = β, elimin˘ am coloana 3 din tabelul de transport, am x34 = min 4β ; 9β = 4β, 4 β, elimin˘ am coloana 4 din tabelul de transport, am x32 = min 7β ; 5β = 5β, 5 β, elimin˘ am linia 3 din tabelul de transport, am x22 = min 2β ; 2β = 2β, 2 β, elimin˘ am coloana 1 din tabelul de transport. am Costul Costul de transport transport corespunz˘ corespunz˘ ator ator acestei solut¸ii ¸ii este:
{ { { { { {
} } } } } }
C 0 = αβ + αβ + 2αβ 2αβ + + 2αβ 2αβ + + 12αβ 12αβ + + 20αβ 20αβ + + 12αβ 12αβ = 49αβ. 49 αβ. Iterat¸ia ¸ia 1, PASUL 1. i) Rezolv˘am am sistemul (o solut¸ie ¸ie particular˘a care se obt¸ine ¸ine setˆand and u1 = 0): ui + v j = cij (i, j ) ,
∀
∈B
Solut¸iile ¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a se trec elementele ui , iar pe orizontal˘a se trec elementele v j ). ii) Calcul˘ Calculam a˘m elementele: zij
− cij = ui + v j − cij ∀(i, j ) ∈ R,
care se trec ˆın colt¸urile ¸urile din dreapta sus ale fiec˘arei arei celule secundare. iii) Calcul˘ Calculam a˘m (criteriul de optim): max (zij
(i,j) i,j )
∈R
− cij ) = z24 − c24 = α > 0.
Criteriul de optim nu este ˆındeplinit, deci celula (2, (2 , 4) intr˘a ˆın baz˘ ba z˘a. a. Iterat¸ia ¸ia 1, PASUL 2. Pentru a determina care celul˘a iese din baz˘a determin˘am am µ-ciclul format din celula (2, (2 , 4) cu o parte a celulelor din baz˘a: a: (2, (2, 4), 4), (3, (3, 4)∗ , (3, (3, 2), 2), (2, (2, 2)∗ , (2, (2, 4). 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 andu-se cu par. Condit¸ia ¸ia de ie¸sire sir e din di n baz˘ ba z˘a: a:
∗ celulele celulele de rang
min xij =x24 ,
∗
deci celula (2, (2, 2) iese din baz˘a. a. Iterat¸ia ¸ia 1, PASUL 3. Aplicˆand and formulele de schimbare a bazei obt¸inem ¸inem noua solut¸ie. ¸ie. Costul corespunz˘ator ator acesteia este: C 1 = 47 47αβ, αβ, care este mai mic decˆat at costul anterior C 0 . Repet˘am am pa¸sii sii anterior ante riori: i: Iterat¸ia ¸ia 2, PASUL 1. i) Rezolv˘am am sistemul (o solut¸ie ¸ie particular˘a care se obt¸ine ¸ine setˆand and u1 = 0): ui + v j = cij (i, j ) ,
∀
∈B
Solut¸iile ¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a se trec elementele ui , iar pe orizontal˘a se trec elementele v j ).
Figura 6.4: Noua solut¸ie ¸ie de baz˘a. a. Aceasta este optim˘a. a.
˘ DE TRANSPORT PROBLEMA CLASIC A
87
ii) Calcul˘ Calculam a˘m elementele: zij
− cij = ui + v j − cij ∀(i, j ) ∈ R,
care se trec ˆın colt¸urile ¸urile din dreapta sus ale fiec˘arei arei celule secundare. iii) Calcul˘ Calculam a˘m (criteriul de optim): max (zij
(i,j) i,j )
∈R
− cij ) = z21 − c21 = −α < 0,
solut¸ia ¸ia este optim˘a, a, iar aceasta este:
Costul minim va fi 47αβ. 47 αβ.
x14 = 2β, 2 β, x23 = β, x14 = 2β, 2 β, x31 = β, x32 = 7β, 7 β, x34 = 2β. 2 β.
Exercit¸iul ¸iul 6.1.4. 6.1.4. S˘ a se g˘aseasc˘ aseasc˘ a, a, prin metoda colt¸ului ¸ului de N-V ¸si si prin metoda costului minim, o solut¸ie ¸ie de baz˘a pentru problema de transport ale c˘arei arei date sunt prezentate ˆın ın tabelul 6.5. G˘ asit asit¸i ¸i pentru aceaste solut¸ii ¸ii valorile corespunz˘atoare atoare ale funct¸iilor ¸iilor obiecti obiectiv. v. Care Care solut solut¸ie ¸ie este mai bun˘a ¸si si de ce? G˘asit asit¸i ¸i solut¸ia ¸ia optim˘ a a problemei. TABELUL 6.5
8 4 1 5
3 1 9 10
5 6 4 20
2 7 3 15
1100 15 15 25 25
Exercit¸iul ¸iul 6.1.5. 6.1.5. S˘ a se g˘aseasc˘ aseasc˘ a o solut¸ie ¸ie de baz˘a pentru problema de transport echilibrat˘a ale c˘arei arei date dat e sunt prezentate ˆın tabelul t abelul 6.6. G˘asit asit¸i ¸i valoarea corespunz˘ atoare atoare a funct¸iei ¸iei obiectiv. G˘asit asit¸i ¸i solut¸ia ¸ia optim˘ a a problemei. TABELUL 6.6
8α 3α 5α 2α 10β 10β 4α α 6α 7α 15 15β β α 9α 4α 3α λ 5β 10 10β β 20 20β β 15β 15β
88
PROBLEME DE TRANSPORT
R˘ aspuns . Se dete determ rmin in˘˘a λ = 25 25β. β. Valoarea minim˘ a a costului este 140αβ, 140 αβ, iar solut¸ia ¸ia optim˘ a este: x14 = 10 10β, β, x22 = 10 10β, β, x23 = 5β, x31 = 5β, x33 = = 15β, 15β, x34 = 5β. Exercit¸iul ¸iul 6.1.6. 6.1.6. S˘ a se g˘aseasc˘ aseasc˘ a o solut¸ie ¸ie de baz˘a pentru problema de transport ale carei date sunt prezentate ˆın tabelul tab elul 6.7. Costurile unitare de penalizare p enalizare pentru nesatis nesatisfac facere ereaa cereri cereriii sunt sunt ega egale le cu 2 , iar iar cost costur uril ilee de stocare stocare sunt sunt nule nule.. G˘asit asit¸i ¸i valoarea corespunz˘atoare atoare a funct¸iei ¸iei obiec o biectiv tiv.. G˘asit asit¸i ¸i solut¸ia ¸ia optim˘ a a problemei. TABELUL 6.7
2 3 1 1
3 6 4 7
4 2 5 1
1 4 3 6
2 3 λ
R˘ aspuns. Pentru λ < 10 problema este o problem˘a de transport cu cerere excedentar˘ a (cererea (cererea este mai mare ca oferta). Vom introduce un depozit fictiv ˆın ın care avem 10 λ. Noul tabel de transport va fi tabelul 6.8:
−
TABELUL 6.8
2 3 1 2 1
3 6 4 2 7
4 2 5 2 1
1 4 3 2 6
2 3 λ 10
−λ
Noua problem˘ proble m˘a de transport transp ort este e ste echilibrat˘ echil ibrat˘a ¸si si se rezolv˘ rezo lv˘a cu algoritmul cunoscut. Pentru λ = 10 problema este o problem˘a de transport echilibrat˘a a c˘arei arei rezolvare rezolvare se face cu ajutorul algoritmului cunoscut. Pentru λ > 10 problema este o problem˘a de transport cu ofert˘a excedenta excedentar˘ r˘ a (oferta (oferta este mai mare ca cererea). cererea). Vom introduce un consumator consumator fictiv cu o cerere de λ 10 10.. Noul tabel de transport va fi tabelul 6.9:
−
TABELUL 6.9
2 3 1 1
3 6 4 7
4 2 5 1
1 4 3 6
0 0 0 λ
2 3 λ
− 10
Noua problem˘ proble m˘a de transport transp ort este e ste echilibrat˘ echil ibrat˘a ¸si si se rezolv˘ rezo lv˘a cu algoritmul cunoscut.
89
FLUX MAXIM INTR-O RET ¸ EA DE D E TRANSPORT TRA NSPORT
Exercit¸iul ¸iul 6.1.7. 6.1.7. Pentru ce valoare a costului unitar c problema ale c˘arei arei date sunt prezentate ˆın ın tabelul 6.10 are optimul egal cu 140? TABELUL 6.10
8 4 1 5
6.2. 6.2. 6.2. 6.2.1. 1.
3 1 9 10
5 c 4 20
2 7 3 15
1100 15 25 25
Flux Flux maxi maxim m in intr-o tr-o ret re¸ea ¸tea de transport Ret Re¸ele ¸tele de transport
ˆIn acest paragraf vom reveni reveni la problema de transport. Aceasta Aceasta va fi abordat˘ a din perspectiva teoriei grafurilor. Definit¸ia ¸ia 6.2.1. 6.2.1. O ret¸ea ¸ea de transport flux este un graf orientat G = (X, Γ) ˆın care fiecare muchie (u, ( 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 destinat¸ie. ¸ie. Definit¸ia ¸ia 6.2.2. 6.2.2. Fluxul ϕ Fluxul ϕ : X X R este o funct¸ie ¸ie real˘a ce satisface urm˘atoarele atoarele propriet˘ at a¸i: ¸ti: i) restrict ¸ii de capacitate : pentru orice u, v X, ϕ(u, v) c(u, v) (un arc care realizeaz˘a egalitate egali tate se nume¸ste 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:
× →
∈
∈
≤
− ∈ −{ }
ϕ(u, v) = 0.
v X
∈
Cantitatea ϕ(u, v), poate fi pozitiv˘a sau sa u nega ne gati tiv˘ v˘a ¸si si se nume¸ nume¸ste st e fluxul de ret ¸ea de ea de la u la v . Definit¸ia ¸ia 6.2.3. 6.2.3. Valoarea fluxului Φ este definit˘a ca:
|Φ | =
ϕ(s, v )
v X
∈
sau, cu alte cuvinte, valoarea fluxului este fluxul total de la surs˘a.
90
PROBLEME DE TRANSPORT
Problema Problem a fluxului maxim ma xim ˆıntr-un graf G, de la un nod surs˘a s la un nod destinat destinat¸ie ¸ie t, ˆıntr-o ınt r-o ret¸ea ¸ea de transport, const˘a ˆın ın determinarea unui flux maxim de la s la t.
6.2.2.
Algoritmu Algoritmull Ford-Fulk ord-Fulkerson erson
ˆIn acest acest paragr paragraf af prezen prezent˘ t˘ am metoda Ford-Fulkerson am ord-Fulkerson de rezolv rezolvare are a proble problemei mei fluxului fluxului maxim, respectiv respectiv a fluxului fluxului minim. Este vorba vorba mai degrab˘a de o metod˘a decˆat at de un algoritm pentru c˘a suport˘a mai multe implement˘ari ari cu timpi de rulare diferit¸i. ¸i. Metoda Ford-Fulkerson face apel la trei idei importante care sunt relevante pentru pentru multe multe dintre dintre problemele problemele de grafuri: grafuri: flux compatibil, drum ¸si si t˘aietur˘ aietur˘a de capacitate minim˘ a. a. Algoritmul de rezolvare a problemei de flux maxim PASUL 1. ˆIn cadrul acestei prime etape se urm˘are¸ are¸ste ste construirea unui flux compati com patibil bil.. Pent Pentru ru aceasta aceasta se consid consider˘ er˘ a drumu drumuril rilee nesatur nesaturate ate de la sursa sursa s la destinat¸ia ¸ia t. Fie µi un drum nesaturat. nesaturat. Fluxul propagat propagat de-a lungul acestui drum este dat de: ϕi = min [c(u, v) ϕ(u, v)]. )].
−
(u,v) u,v) µi
∈
Vom obt¸ine ¸ine un nou flux care satureaz˘a cel put¸in ¸in un arc cu relat¸ia: ¸ia: ϕ(u, v) =
∈ ∈
ϕ(u, v) + ϕi ϕ(u, v)
cˆand and (u, (u, v) µi cˆand (u, v) / µi .
Dac˘ a ret¸eaua ¸eaua de transport cont¸ine ¸ine rute neorientate (muchii) ˆın identificarea acestor drumuri vom avea grij˘a ca o rut˘a neorientat˘a s˘a nu fie folosit˘a decˆat at ˆıntr-u ınt r-un n singur sens. Astfel, Astfel, odat˘a cu identificar identificarea ea unui drum se orienteaz˘ orienteaz˘ a ¸si si rutele. rutele. Pe fiecare arc se ˆınsumeaz˘ ınsumea z˘a fluxurile fluxurile propagate. propagate. Fluxul propagat ˆın ret¸ea ¸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 atorului procedeu de marcare : i) se marcheaz˘a intrarea s cu [+]; ii) dac˘a nodul i este marcat ¸si si (i, j ) Γ cu ϕ(i, j ) < c(i, j ), atunci nodul j se marcheaz˘ a cu [+i [+i]; iii) iii) dac˘ daca˘ nodul j este marcat ¸si si (i, j ) Γ cu ϕ(i, j ) > 0, atunci nodul i se marcheaz˘ a cu [ j]; j ];
∈
−
∈
91
FLUX MAXIM INTR-O RET ¸ EA DE D E TRANSPORT TRA NSPORT
iv) dac˘a i este un nod marcat ¸si si (i, j ) este arc saturat, atunci nodul j nu se marcheaz˘ a. a. Dac˘ a se reu¸ re u¸se¸ se¸ste st e ca ie¸ ie¸sire si reaa t s˘a fie marcat˘a, 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: ¸ia: ϕk = m min in(( min min (c(u, v) (u,v) u,v ) B
∈
)), min ϕ(u, v)), )), − ϕ(u, v)), (u,v) u,v)∈C
ϕk > 0,
unde B este mult¸imea ¸imea arcelor pe care se execut˘a marcaj de tip ii), iar C este C este mult¸imea ¸imea arcelor pe care se execut˘a marcaj de tip iii). Se obt¸ine ¸ine un nou flux ˆımbun˘at˘ at˘ at a¸it, ¸t it, cu relat¸ia: ¸ia: ϕ(u, v ) =
∈ ∈
ϕ(u, v) + ϕk ϕ(u, v) ϕk ϕ(u, v)
cˆand and (u, (u, v) B cˆand and (u, (u, v) C ˆın rest.
−
Dac˘ a nu se mai poate marca nodul de ie¸sire sire t al ret¸elei, ¸elei, atunci algoritmul s-a terminat. Suma fluxurilor propagate de-a lungul drumurilor ¸si si lant¸urilor ¸urilor care unesc nodul de intrare s cu nodul no dul de ie¸sire sire t, reprezint˘a fluxul de valoare maxim˘a ˆın ret¸eaua ¸eaua de transport. transport. PASUL 3. Se determin˘a t˘ aietura de capacitate minim˘ a . Fie A mult¸imea ¸imea nodurilor nemarcate ale ret¸elei, ¸elei, conform conform procedeului procedeului de marcare care din pasu pasull 2. Mult Mult¸imea ¸imea arcelor (i, ( i, j ) cu i / A ¸si si j A (incidente spre interior mult¸imii ¸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 si nodurile nemarcate. Capacitatea t˘ aieturii aieturii se noteaz˘a c( A) ¸si si se define¸ste ste ca fiind suma capacitatilor arcelor sale: c( A) = c(u, v).
∈
∪ ∪
∪
∈
(u,v) u,v )
∈∪A
Conform teoremei Ford-Fulkerson , ˆıntr-o ıntr- o ret¸ea ¸ea de transport dat˘a, a, fluxul de valoare maxim˘ a este egal cu valoarea t˘ aieturii de valoare minim˘ a , adic˘a: a:
∪
max Φ(ϕ Φ(ϕ) = min c( A). ϕ
s / A,t A
∈ ∈
T˘ aietura de capacitate minim˘a reprezint˘a ¸strangularea aietura strangularea ˆın graf. Arcele ei fiind satura sat urate, te, ˆınseamn ınse amn˘ a˘ c˘a pentru m˘arirea arirea fluxului propagat trebuie m˘arit˘ arit˘ a capacitatea unuia sau mai multor arce ale t˘aieturii. aieturii. Observat ¸ii: i) Operat¸ia ¸ia de marcare este operat¸ia ¸ia de decizie asupra optimalitat¸ii. ¸ii. ii) T˘aietura aietura de capacitate minim˘a are dublu rol ¸si si anume: -verific˘a rezultatul prin intermediul teoremei Ford-Fulkerson; -indic˘ a locul unde trebuie umblat pentru a m˘ari ari capacitatea capacitatea fluxului. fluxului.
92
PROBLEME DE TRANSPORT Algoritmul de rezolvare a problemei de flux minim
Pentru a obt¸ine ¸ine un flux de valoare minim˘a se induce ˆın ret¸ea ¸ea un flux arbitrar cu condit¸ia ¸ia ϕ(u, v) c(u, v), pentru fiecare arc (u, ( u, v). ˆIn vederea determin˘ arii arii fluxului de valoare minim˘a se consider˘a pentru pe ntru ˆınceput ınce put lant¸urile ¸ urile de la nodul final t la nodul de ˆınceput s dup˘ du p˘a urm˘ ur m˘atorul atorul procedeu de marcare: i) nodul final t se marcheaz˘a cu [+t [+t]; ii) dac˘a j este nod marcat, (i, (i, j ) arc a rc ¸si si ϕ(i, j ) > c( c (i, j ), atunci nodul i se marcheaz˘a cu [ j]; j ]; iii) dac˘a i este nod marcat ¸si si (i, j ) arc, atunci nodul j se marcheaz˘a cu [+i [+i]. Dac˘ a se reu¸se¸ se¸ste ste marcar mar carea ea nodul no dului ui de ˆınceput ınc eput s ˆınse ın seam amn˘ n˘a c˘a s-a g˘asit asit un lant¸ µ de-a lungul c˘aruia aruia fluxul poate fi diminuat. Dac˘ a B este mult¸imea ¸imea arcelor din lant¸ul ¸ul µ din categoria catego ria ii) ¸si si
≥
−
θ = min [ϕ(u, v) (u,v) u,v ) B
∈
− c(u, v)], )],
atunci noul flux diminuat este: ϕ(u, v) =
ϕ(u, v) + θ ϕ(u, v) θ ϕ(u, v)
−
∈ ∈
cˆand and (u, (u, v) B cˆ and and (u, (u, v) µ, (u, v) / B ˆın rest.
∈
Dac˘ a nu se mai reu¸se¸ se¸ste ste marcar mar carea ea nodul no dului ui de ˆıncepu ınc eputt s, ˆınseam ıns eamn˘ n˘a c˘a nu mai exist˘a nici un lant¸ de-a lungul c˘aruia aruia fluxul s˘a poat˘ a fi diminuat, deci s-a g˘asit asit fluxul de valoare minim˘a. a.
6.2.3. 6.2.3.
Proble Problema ma de de trans transport port ca ca probl problem˘ em˘ a de flux maxim
ˆIn acest paragraf vom vedea c˘a problema problema clasic˘ clasic˘a de transport se poate modela ca o problem˘ problem˘ a de flux maxim. Pentru a fixa ideile s˘a presupunem c˘a avem m centre de aprovizi apr oviziona onare re ¸si si n centre de consum (beneficiari), iar transportul se face cu ajutorul unor sisteme limitate pe fiecare direct¸ie ¸ie dij . Vom construi un graf orientat de la cele m depozite la cei n beneficiari, valoarea fiec˘arui arui arc fiind egal˘a cu valoarea dij , un nod de intrare X input si si un nod de ie¸sire sire din ret¸ea ¸ea X output atur˘ atur˘ a la fiecare input ¸ output cu leg˘ din depozite respectiv beneficiari, valoarea fiec˘arui arui arc fiind egal˘a cu ai 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 D E TRANSPORT TRA NSPORT
6.2. 6.2.4. 4.
93
Apli Aplica cat¸ii ¸tii
Exercit¸iul ¸iul 6.2.1. 6.2.1. Un proces economic dispune de o ret¸ea ¸ea de tranport de genul celei din figura 6.5. Capacit˘at a¸ile ¸t ile de trasport sunt cele indicate pe figur˘a. a. Care este fluxul maxim propagat ˆın sistem ˆıntre ıntre punctele 1 ¸si si 9? Care este fluxul de la nodul 3 la 5?
Figura 6.5: Flux ˆıntre ıntre dou˘a noduri. R˘ aspuns. Se propag˘ a un flux maxim m axim ˆın ret¸eaua ¸eaua de transport de la nodul 1 la nodul 9. Pentru aceasta se genereaz˘a drumuri drumuri de la nodul 1 la nodul 9 (rute orientate, orientate, ˆın ın acela¸si si sens) care se satureaz˘a. a. ˆIn identificarea acestor drumuri vom avea grij˘a ca o rut˘a neorientat˘a s˘a nu fie folosit˘a decˆat at ˆıntr-un ıntr-un singur sens. Astfel, se indic˘a ˆın continua continuare re aceste aceste drumuri, drumuri, precum precum ¸si si fluxul propagat pe fiecare fiecare dintre dintre ele. Odat˘a cu identificarea unui drum se orienteaz˘a ¸si si rutele. Pe fiecare arc se ˆınsumeaz˘a ¸si fluxurile propagate. Obt¸inem ¸inem deci drumurile: 10 5 10 10 µ1 = (1 (1 2 6 8 9), 9), ϕ1 = 5. 5. 5 4 6 5 5 µ2 = (1 (1 2 7 6 8 9), 9), ϕ2 = 4. 4. 1 2 3 2 1 1 µ3 = (1 (1 2 3 7 6 8 9), 9), ϕ3 = 1. 1. 8 2 8 µ4 = (1 (1 3 7 9), 9), ϕ4 = 2. 2. 6 5 2 6 µ5 = (1 (1 3 5 7 9), 9), ϕ5 = 2. 2. 4 3 10 µ6 = (1 (1 3 5 9), 9), ϕ6 = 3. 3. 1 5 6 7 µ7 = (1 (1 3 4 5 9), 9), ϕ7 = 1. 1. 10 5 6 µ8 = (1 (1 4 5 9), 9), ϕ8 = 5. 5.
→ → → → → → → →
→ → → → → → → →
→ → → → → → → →
→ → → → → → → →
94
PROBLEME DE TRANSPORT
ˆIn acest moment, toate drumurile de la nodul 1 la nodul 9 cont¸in ¸in rute orientate (fig. 6.6) ¸si si fiecare drum are cel put¸in ¸in o rut˘a saturat˘ a. Fluxul propagat de-a lungul a. acestor drumuri este egal cu: Φ =
8
i=1
ϕi = 23 23..
Figura 6.6: Rute orientate. ˆIn etapa urm˘atoare atoare vom aplica aplica procedeul de marcare. Astfel, Astfel, urm˘ atoarele atoarele noduri sunt marcate ca ˆın figura 6.7.
Figura 6.7: Marcarea nodurilor.
95
FLUX MAXIM INTR-O RET ¸ EA DE D E TRANSPORT TRA NSPORT
Nodul final 9 nu poate fi marcat, deci fluxul propagat este maxim . Mul¸imea ¸timea nodurilor nemarcate este: A = 5, 6, 7, 8, 9 , t˘ aietura de capacitate minim˘a cuprinde aietura arcele: (3, 5), 5), (4, (4, 5), 5), (2, (2, 6), 6), (2, (2, 7), 7), (3, (3, 7) , A= (3,
{
∪
{
}
}
∪
cu valoarea capacit˘at a¸ii: ¸tii: c( A) = 5 + 6 + 5 + 4 + 3 = 23 . Se observ˘a c˘a valoarea capacit˘ at a¸ii ¸tii t˘aieturii 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, [3, 5] se propag˘a un flux de 5 fiind la capacitate maxim˘a. a. Sintaxa MAPLE pentru rezolvarea acestei probleme este: > with( with(networks) networks) : > new( new (G) : > addvertex(1 addvertex(1,, 2, 3, 4, 5, 6, 7, 8, 9, G) : > addedge([ 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, [10, 8, 10 10,, 5, 4, 2, 5, 3, 5, 6, 10 10,, 6, 2, 10 10,, 3, 8, 10] 10],, G); > flow( flow (G, 1, 9); Orice cantitate suplimentar˘a de flux trebuie s˘a treac˘a prin una sau mai multe arce ale t˘aieturii. aieturii. S˘a presupunem c˘a se ˆınloc ınl ocuie¸ uie¸ste ste conduct con ductaa ˆıntre noduri no durile le 2 ¸si si 7 de capacitate 4 cu una de capacitate 7. Prin aplicarea procedeului de marcare se obt¸ine ¸ine lant¸ul ¸ul din figura 6.8, cu φ = 1.
{ }{ }{ }{ }{ }{ }{ } { }{ }{ }{ }{ }{ }{ }{ }{ }{ }
Figura 6.8: Lant¸ obt¸inut ¸inut ˆın ın urma procesului de marcare. Fluxul propagat este conform figurii 6.9. Arcele [2, [2 , 3] ¸si si [3, [3 , 4] nu sunt utilizate.
96
PROBLEME DE TRANSPORT
Figura 6.9: Flux propagat. Observ˘ am ˆın figur˘ am fig ur˘a c˘a drumul: µ = (1
→4 4 →5 3 →2 2 →2 7 →3 9), 9), ϕ = 2. 2.
Situat¸ia ¸ia este prezentat˘a ˆın ın figura 6.10, iar fluxul propagat este egal cu 26 26..
Figura 6.10: 6 .10: Flux propagat propag at ¸si si t˘aietura aietura de capacitate minim˘a. a. Noua t˘ aietur˘ aietur˘ a de capacitatea egal˘ a cu 26, are valoarea minim˘a ¸si si cuprinde cuprind e arcele:
{(1, (1, 2), 2), (3, (3, 2), 2), (3, (3, 7), 7), (3, (3, 5), 5), (4, (4, 5)}
FLUX MAXIM INTR-O RET ¸ EA DE D E TRANSPORT TRA NSPORT
97
Exercit¸iul ¸iul 6.2.2. 6.2.2. Se consider˘ consider˘ a ret¸eaua ¸eaua de transport transport din figura 6.11. Care este fluxul maxim propagat propag at ˆıntre ıntre nodurile nodu rile 1 ¸si si 5? (α > 0 parametru real).
Figura 6.11: Fluxul propagat. Este pus˘a ˆın evident eviden¸˘ ¸ta˘ t˘ aietura aietura de capacitate capacitate minim˘ a. a. R˘ aspuns. La pasul 1 se genereaz˘a rute orientate de la nodul 1 la nodul 5 care se satureaz˘a. a. 40α 40α 15α 15α 22α 22α µ1 : 1 2 3 5, ϕ1 = min 40 40α, α, 15 15α, α, 22 22α α = 15 15α α;
−→ −→ −→ { } 25α 25α 8α µ2 : 1 −→ 2 −→ 5, ϕ2 = min{25 25α, α, 8α} = 8α 8 α; 17α 17α 12α 12α 12α 12α 7α µ3 : 1 −→ 2 −→ 4 −→ 3 −→ 5, ϕ3 = min{17 17α, α, 12 12α, α, 12 12α, α, 7α} = 7α 7 α; 18α 18α 18α 18α µ4 : 1 −→ 4 −→ 5, ϕ4 = min{18 18α, α, 18 18α α} = 18 1 8α;
Fluxul este Φ =
4
i=1
ϕi = 48α. 48 α.
Pasul 2 const˘a ˆın marcarea nodurilor. nodurilor. Nodul final nu se poate p oate marca, deci fluxul este maxim (fig.6.12). Mult¸imea ¸imea nodurilor nodurilor nemarcate 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˘ aietura a este: A= (4, (4, 5), 5), (2, (2, 5), 5), (3, (3, 5) , iar capacitatea capacitatea acesteia este c( A) = 48α 48α ceea ce confirm˘a, a, conform teoremei Ford-Fulkerson, c˘a fluxul este maxim. Pentru a m˘ari ari fluxul trebuie m˘arit˘ arit˘ a capacitatea unuia sau a mai multor arce ale t˘aieturii aieturii de capacitate minim˘a. a.
∪
Exercit¸iul ¸iul 6.2.3. 6.2.3. Un anume tip de produs este disponibil ˆın trei depozite ˆın cantit˘ at a¸ile ¸tile de 30, 40 respectiv 50 t. Acesta este solicitat ˆın dou˘a centre centr e de consum ˆın cantit˘ at a¸ile ¸t ile de 40 respectiv 80 t. ˆIntre surs˘a ¸si si desti des tina nat¸ie ¸t ie exist˘a tronsoane tronsoane directe, iar transportul se face cu mijloace auto cu capacit˘at a¸i ¸t i limitate (tonaj) conform tabelului 6.11. TABELUL 6.11
d1 d2 d3
c1 10 20 10
c2 2
−
20
S˘a se determine un plan optim de transport. R˘ aspuns. Codific˘am am problema conform conform grafului din figura 6.13. Pentru Pentru aceasta am introdus nodul d care constitui con stituiee intrarea ˆın ret¸ea ¸ea ¸si si nodu no dull c care car e consti con stitui tuiee ie¸sirea sire a din ret¸eaua ¸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 max im ˆın ret¸eaua ¸eaua de transport de la nodul d (input) la nodul c (output). (output). Pentru Pentru aceasta se genereaz˘a drumuri de la nodul d la nodul c (rute (rut e orienta ori entate, te, ˆın acela¸ ace la¸si si
FLUX MAXIM INTR-O RET ¸ EA DE D E TRANSPORT TRA NSPORT
99
sens) care se satureaz˘a. a. ˆIn identificarea acestor drumuri vom avea grij˘a ca o rut˘a neorientat˘ a s˘a nu fie folosit˘ folosita˘ decˆat at ˆıntr-un singur sens. Astfel, se indic˘a ˆın continua cont inuare re aceste drumuri precum ¸si si fluxul propagat pe p e fiecare dintre ele. Odat˘a cu identificarea unui drum se orienteaz˘a ¸si si rutele. rut ele. Pe fiecare fieca re arc se ˆınsumeaz˘ ınsumea z˘a ¸si si fluxurile fluxuril e propagate. propag ate. Obt¸inem ¸inem deci drumurile:
−30→ d1 −10→ c1 −40→ c, 20 2 80 µ2 : d −→ d1 −→ c2 −→ c, 40 20 30 µ3 : d −→ d2 −→ c1 −→ c, 50 10 10 µ4 : d −→ d3 −→ c1 −→ c, 40 20 78 µ5 : d −→ d3 −→ c2 −→ c, µ1 : d
ϕ1 = min 30 30,, 10 10,, 40 = 10, 10 ,
{ } ϕ2 = min{20 20,, 2, 80} = 2, ϕ3 = min{40 40,, 20 20,, 30} = 20, 20 , ϕ4 = min{50 50,, 10 10,, 10} = 10, 10 , ϕ5 = min{40 40,, 20 20,, 78} = 20. 20 .
ˆIn acest moment, toate drumurile de la nodul c la nodul d cont¸in ¸in rute orientate ¸si si fiecare drum are cel put¸in ¸in o rut˘a saturat˘a. a. Fluxul propagat de-a lungul acestor drumuri este egal cu: 5
Φ=
ϕi = 62. 62 .
i=1
ˆIn etapa urm˘atoare atoare vom aplica aplica procedeul de marcare. Astfel, Astfel, urm˘ atoarele atoarele noduri sunt marcate ca ˆın figura 6.14.
Figura Figura 6.14: Marcar Marcarea ea nodurilor nodurilor.. Nodul final nu poate fi marcat marcat deci fluxul fluxul este maxim. Nodul final d nu poate fi marcat, deci, fluxul propagat este maxim . Mult Mult¸imea ¸imea nodurilor nodurilor nemarcate nemarcate este:
{
}
A = d1 , d2 , d ,
100
PROBLEME DE TRANSPORT
¸si t˘aietura aietura de capacitate maxim˘a cuprinde arcele:
∪ A= {(c1, d1), (c1, d2), (c2, d1), (c3, d1), (c3, d2)}, cu valoarea capacit˘at a¸ii: ¸tii:
∪
c( A) = 10 + 2 + 20 + 10 + 20 = 62 . Se observ˘a c˘a valoarea capacit˘ at a¸ii ¸tii t˘aieturii 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 aietura de capacitate minim˘a ¸si si fluxul propagat. propag at. Observ˘ am am c˘a cererea nu poate fi satisf˘acut˘ acut˘ a, a, deci pentru m˘arirea arirea capacit˘at a¸ii ¸t ii trebuie m˘arit˘ arit˘ a capacitatea unuia din arcele t˘aieturii aieturii de capacitate minim˘a. a. Exercit¸iul ¸iul 6.2.4. 6.2.4. S˘ a se scrie un program MAPLE pentru MAPLE pentru rezolvarea problemelor de flux maxim ˆıntr-o ret¸ea ¸ea de transpor transport. t. Verifica erificat¸i ¸t i rezultatul cu teorema teorema FordFulkerson. R˘ aspuns. Pentru fixarea ideilor vom exemplifica programul pe problema 6 .2.1. Vom indica atˆat at sintaxa MAPLE (> (>) cˆat at ¸si si comentariile comentar iile corespunz˘ corespu nz˘atoare atoare (italic). (italic). Se init ¸ializeaz˘ a: lista de vˆ arfuri, lista muchiilor, lista ponderilor, nodul init ¸ial s ¸si 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, [10, 8, 10 10,, 5, 4, 2, 5, 3, 5, 6, 10 10,, 6, 2, 10 10,, 3, 8, 10];
{ } { }{ }{ }{ }{ }{ }{ }{ } { }{ }{ }{ }{ }{ }{ }{ }{ }
FLUX MAXIM INTR-O RET ¸ EA DE D E TRANSPORT TRA NSPORT
101
> s := 1; > t := 9; Se creeaz˘ a ret ¸eaua conform init ¸ializ˘ arilor. > with( with(networks) networks) : > new( new (G) : > addvertex( addvertex(varfuri,G) varfuri,G) : > addedge( addedge(muchii, muchii, weights = ponderi ponderi,, G); Valoarea fluxului maxim. > flow( flow (G,s,t); G,s,t); T˘ aietura de capacitate minim˘ a. > mincut( 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 v f ;; Graful G. > draw( draw (G); Exercit¸iul ¸iul 6.2.5. 6.2.5. Pentru ce valoare a parametrului a graful din figura 6.16 admite un flux maxim ˆıntre nodurile nod urile 1 ¸si si 3 de 40. 40 .
Figura 6.16: Problema de flux maxim ˆıntre nodurile no durile 1 ¸si si 3.
R˘ aspuns. Se aplic˘a algoritmul algor itmul Ford-Fulkerson, dup˘a care se determin˘a valoarea parametrului a din ecuat¸ia ¸ia Φmax = 40 4 0. Deci se execut˘a urm˘atoarele atoarele etape: a) se genereaz˘a rute orientate de la nodul 1 la nodul 3: 2a 8a 2a 2 5 3, ϕ1 = 2a, 2 a, µ1 : 1 3a 3a a µ2 : 1 5 6 3, ϕ2 = a,
→ → → → → →
102
PROBLEME DE TRANSPORT 8a 3a 4a → → →
µ3 : 1 6 4 3, ϕ3 = 3a. 3 a. Fluxul Flux ul ˆın ret¸ea ¸ea fiind Φ = 6a 6a; b) se marcheaz˘a nodurile: 1, 2, 5, 6 . c) t˘aietura aietura de capacitate minim˘a fiind: fiind egal˘ a cu 6a, 6a, deci fluxul este maxim. Ecuat¸ia ¸ia Φmax = 40 duce la a = 20/ 20 /3.
{
}
{(5, (5, 3), 3), (6, (6, 3), 3), (6, (6, 4)}, valoarea acesteia
¸i problema ca Exercit¸iul ¸iul 6.2.6. 6.2.6. Pentru datele din problema anterioar˘a formulat¸i o problem˘a de programare liniar˘a ¸si si rezol rez olvat vat¸i-o ¸i-o prin metoda simplex. Exercit¸iul ¸iul 6.2.7. 6.2.7. Pentru ret¸eaua ¸eaua de transport transport din figura 6.17 cu intrarea intrarea 0 ¸si si ie¸sirea sir ea 7 ¸si si capa ca paci cit˘ t˘at a¸ile ¸t ile scrise pe arce s˘a se determine:
Figura 6.17: Ret¸ea ¸ea de transport.
{
}
{
}
i) capacit˘at a¸ile ¸t ile t˘aieturilor aieturilor mult¸imilor ¸imilor A1 = 1, 4, 6, 7 ¸si si A2 = 5, 6, 7 ; ii) fluxul maxim care str˘abate abate ret¸eaua ¸eaua ¸si si valoarea sa; iii) care capacitate de transport trebuie m˘arit˘ arit˘ a ¸si si cu ce valoare pentru a atinge un flux maxim ˆın ret¸ea ¸ea de 30 ? Solut¸ia ¸ia indicat˘ a este unic˘a? a? iv) care este fluxul maxim ˆın ret¸eaua ¸eaua de transport dac˘a suprim˘am am rutele 1 4 respectiv 5 1?
−
−
R˘ aspuns. Capacit˘ at a¸ile ¸t ile t˘aieturilor aieturilor mult¸imilor ¸imilor A1 ¸si si A2 sunt 50 respectiv 35. 35. Se aplic˘a algoritmul Ford-Fulkerson. Ford-Fulkerson. Fluxul maxim ˆın ın ret¸ea ¸ ea va fi egal cu 23. 23. Pentru m˘arirea arirea fluxului trebuie m˘arite arite capacit˘ capacit˘ at a¸ile ¸t ile t˘aieturii aieturii de capacitate minim˘a. a.
Capitolul 7
TEORIA STOCURILOR 7.1.
Formularea ormularea modelului modelului matemati matematicc
Prin stoc vom ˆınt¸elege ¸elege ˆın cele ce urmeaz˘a o rezerv˘a de bunuri materiale destinate vˆanz˘ anz˘ arii arii sau folosirii lor ˆın ın procesul de product¸ie. ¸ie. Constituire Constituirea a unui stoc presupune cheltuieli de aprovizionare, cheltuieli de stocaj, pierderi pentru deprecierea m˘ arfuri arfurilor lor etc. Orice Orice gestiu gestiune ne de stoc presupun presupunee intr˘ intr˘ari ari ˆın stoc (inputs ) ¸si si ie¸ ie¸siri si ri din stoc (outputs (outputs ), ), determ determina inate te de cerere cerereaa de bunuri bunuri care poate fi determ determini inist˘ st˘a, a, aleatoare cu o repartit¸ie ¸ie cunoscut˘a statistic sau necunoscut˘a. a. Elementele Elementele principale 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 -costul de penalizare; penalizare; -costul de lansare al comenzii; -alte costuri. Deciziile care se iau ˆın organizarea unui stoc au la baz˘a un criteriu de optim, determinat terminat de politic p oliticaa economic˘ economic˘ a. a. Vom numi politic˘a optim˘ a acea activitate de management gement al stocului care implic˘ a un cost total minim. Elementele Elementele unei politici optime optime sunt: sunt: nivelul nivelul optim al stocului, volumul volumul optim al unei comenzi de reaprovizionar reaprovizionare, e, perioada optim˘ a de reaproviz reaprovizionare ionare,, num˘ arul arul optim de reaproviz reaprovizion˘ ion˘ ari, ari, costul total optim numit ¸si si gestiune g estiuneaa optim˘ o ptim˘a. a. Modelele Modelele matematice permit stabilirea 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 matematice consacrate consacrate din teoria stocurilor. stocurilor. Strategia Strategia de abordare 103
104
TEORIA STOCURILOR
a problemelor este specific˘a problemelor de cercetare operat¸ional˘ ¸ional˘ a ¸si si anume de a codifica corespunz˘ator ator problema problema matematic˘ matematic˘ a ˆıntr-o ıntr- o problem pro blem˘ a˘ de optimizare.
7.2. 7.2.
Model Modele e dete determ rmin inis iste te
7.2.1. Model de stocare a unui produs cu cerere constan constant˘ t˘ a, a, perioad ri oad˘ ˘ a cons co nstant tant˘ ˘ a de reap re aprov roviz izio iona nare re ¸si si f˘ar˘ ar˘ a lips li ps˘ ˘ a de sto st o c Presupunem c˘a se stocheaz˘a un produs al c˘arui arui consum este o funct¸ie ¸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 si ˆın cant ca ntit it˘at ˘a¸i ¸t i egale cu q , costul unitar de stocare ˆın ın unitatea de timp este cs , costul de lansare al comenzii de reaprovizionare este cl (totalul (totalul cheltuiel cheltuielilor ilor legate de operat¸ia ¸ia de reaprovizionare ce nu depinde de q ) ¸si si nu se admite a dmite lipsa de stoc.
Figura 7.1: Model de stocare a unui produs cu cerere constant˘a, perioad˘ a constant˘ a de reaprovizionare reaproviz ionare ¸si si f˘ar˘ ar˘ a lips˘a de stoc. 1 Pentru fiecare perioad˘a de timp T se fac cheltuielile cl + qT cs (ˆıntr-o ıntr -o perio pe rioad˘ ad˘a 2 T se afl˘a ˆın medie cantitatea cantitat ea q/2) q/ 2).. Dac˘ Dac˘ a not˘ am a m cu ν num˘ arul arul de reaprovizion˘ari ari avem: Q θ ν = = . q T Funct¸ia ¸ia obiectiv C (q ) ce trebuie minimizat˘a este: 1 Q 1 (cl + qT cs )ν = cl + qθc s . 2 q 2
105
MODELE DETERMINISTE
Volumul optim q qˆ al unei comenzi de reaprovizionare se obt¸ine ¸ine din condit¸ia ¸ia de minim pentru pentru funct¸ia ¸ia obiectiv C (q ). Deci punˆand and condit¸ia: ¸ia:
C (q ) = 0, obt¸inem: ¸inem: q qˆ =
2Qcl . θcs
(C (q qˆ ) > 0 deci extremul este punct de minim). Obt¸inem ¸inem num˘arul arul optim de reaproviz reaprovizion˘ ion˘ ari: ari: ν νˆ =
Q = q qˆ
perio pe rioada ada optim˘ opt im˘a: a: ˆ= θ = T ν νˆ ¸si si gestiunea gestiu nea optim˘a: a:
ˆ = C (q C qˆ ) =
Qθcs , 2cl
2θcl Qcs
2Qθc s cl .
7.2.2. Model de stocare a unui produs cu cerere constan constant˘ t˘ a, a, perioad˘ rio ad˘ a constant˘ con stant˘a de reaproviz reap rovizion ionare are ¸si si cu posib po sibili ilitate tatea a lipsei lip sei de stoc ˆIn acest model se admit ipotezele de la modelul anterior cu deosebirea c˘a se admite adm ite ¸si si lips˘ lip s˘a de stoc penalizat˘a cu un cost unitar de penalizare c p . Perioada constant˘ a T este es te ˆımp˘ ım p˘art art¸it˘ ¸it˘a ˆın dou˘ do u˘a subperioade subperioade T 1 (ˆın care se satisface satisf ace cererea cere rea ¸si si se pl˘atesc atesc pentru stocul mediu s/2 s/2 cheltuiel cheltuielile ile de stocare cs ) ¸si T 2 (ˆın ın care ca re nu se mai satisface cererea ¸si si se pl˘ate¸ste ste pentru lipsa medie (q s)/2 costul unitar de penalizare penalizare c p ). Pentru o perioad˘a T = T 1 + T 2 se vor face cheltuielile:
−
−
s q s cl + T 1 cs + T 2 c p . 2 2 Costul global va fi: s q s C (q, s) = (cl + T 1 cs + T 2 c p )ν 2 2 Q s θ q s θ = cl + T 1 cs + T 2 c p . q 2 T 2 T
−
−
106
TEORIA STOCURILOR
Figura 7.2: Model de stocare a unui produs cu cerere constant˘a, perioad˘ a constant˘ a de reaprovizionare ¸si si cu posibilitatea lipsei de stoc. Avem:
T 1 s = T q
¸si si
−
T 2 q s = . T q
De unde:
s T 1 = T q
¸si si T 2 =
q
− sT. q
Deci ˆınlocuind ınlo cuind valorile lui T 1 ¸si si T 2 ˆın formula for mula lui C (q, s) obt¸inem: ¸inem: C (q, s) =
Q θ θ cl + s2 cs + (q q 2q 2q
Condit¸iile ¸iile de minim pentru funct¸ia ¸ia obiectiv sunt: ∂C ( ∂C (q, s) =0 ∂q ¸si si
∂C ( ∂C (q, s) = 0. 0. ∂s
− s)2c p.
107
MODELE DETERMINISTE Adic˘ a: a:
− q 12 Qcl − 2θq 2 s2cs + 2θq 2 (q 2 − s2)c p = 0, θ scs q
de unde obt¸inem: ¸inem: q 2 =
− q θ (q − s)c p = 0,0 , 2Qcl (cs + c p ) 2 + s θc p c p
¸si si s=
c p q. cs + c p
Obt¸inem ¸inem pentru valoarea optim˘a pentru volumul comenzii: 2Qcl cs + c p q ˆ2 = . . θc p c p Dac˘ a not˘ am ρ = am
c p (factor de penalizare), obt¸inem: ¸inem: cs + c p q qˆ =
stocul optim fiind:
√ 2Qcl . θc p
1 , ρ
2Qcl . ρ. θc p
sˆ = ρq qˆ =
Funct¸ia ¸ia obiectiv obiectiv C (q, s) are minimul C (q, qˆ, sˆ) (acest minim se nume¸ste ste gestiunea optim˘a) a) deoarece deoarece matricea matricea hessian˘ hessian˘ a este pozitiv definit˘a. a. Num˘ arul optim de reaprovizion˘ari arul ari este: ν νˆ =
Q = q qˆ
perio pe rioada ada optim˘ opt im˘a: a: ˆ= θ = T ν νˆ ¸si si gestiunea gestiu nea optim˘a: a: Observat ¸ie . Dac˘a c p
Qθcs . ρ, 2cl
√
√
ˆ = C (q, C qˆ, sˆ) =
2θcl . Qcs
1 ρ
2Qθcs cl . ρ.
→ ∞ atunci ρ → 1 ¸sisi obt ob¸inem ¸t inem modelul anterior.
108
TEORIA STOCURILOR
7.2.3. Model de stocare a unui produs cu cerere const constan ant˘ t˘ a, a, perioad ri oad˘ ˘ a cons co nstant tant˘ ˘ a de reaproviz reap rovizion ionare are ¸si si f˘ ar˘ ar˘ a lips˘ lip s˘ a de stoc, sto c, luˆand and ˆın cons co nsid idera erare re ¸si si cost co stul ul de ach achiz izit it¸ie ¸ie Presupunem c˘a se stocheaz˘a un produs al c˘arui arui consum este o funct¸ie ¸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 si ˆın cant ca ntit it˘at ˘a¸i ¸t i egale cu q , costul costul unitar de achiz achizit it¸ie ¸ ie sau de product¸ie ¸ie ca , costul costul unitar de stocare ˆın unitatea de timp este cs ¸si si se presupune presupu ne proport prop ort¸ional ¸ional cu cheltuielile f˘acute acute pentru apovizionarea cu o unitate de produs, costul fix al comenzii de reaprovizionare este cb (totalul cheltuielilor legate de operat¸ia ¸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 lansare al comenzii comenzii este: cl = qca + cb , costul unitar de stocare: cs = α(ca +
cb ). q
Funct¸ia ¸ia obiectiv devine: C (q ) = =
Q q cb (qc a + cb ) + θα( θα (ca + ) q 2 q Q 1 1 cb + θαqca + Qca + θαcb . q 2 2
Din condit¸ia ¸ia de optim pentru C (q ) obt¸inem: ¸inem: q qˆ =
2Qcb . αθca
(C (q qˆ ) > 0, deci extremul este punct de minim). Obt¸inem ¸inem num˘arul arul optim de reaproviz reaprovizion˘ ion˘ ari: ari: ν νˆ =
Q = q qˆ
perio pe rioada ada optim˘ opt im˘a: a:
ˆ= θ = T ν νˆ
αQθca , 2cb 2θcb αQca
¸si si gestiunea gestiu nea optim˘a: a: ˆ = C (q C qˆ ) =
1 2αQθca cb + Qca + αθcb . 2
109
MODELE DETERMINISTE
7.2.4. 7.2.4.
Model Model de stoca stocare re a mai mult multor or produ produse se
ˆIn cazurile cazurile practice ne confrunt˘ confrunt˘ am am cu situat¸ia ¸ia stoc˘arii arii mai multor produse. Vom presupune c˘a suntem suntem ˆın cazul modelului modelului 1, deci se stocheaz˘a k produse P i (i = 1, 2, . . . , k) k) al c˘aror aror consum sunt funct¸ii ¸ii liniare de timp, cererea produsului P i este Qi pentru o perioad˘a de timp θ, reaprovizionarea stocului se face instantaneu la intervale de timp egale cu T i ¸si si ˆın cant ca ntit it˘at ˘a¸i ¸t i egale cu q i , costul unitar de stocare ˆın unitatea de timp este csi , costul de lansare al comenzii de reaprovizionare este cli (totalul (totalul cheltuiel cheltuielilor ilor legate de operat¸ia ¸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 ) =
Qi 1 cli + q i θcsi , q i 2
iar funct¸ia ¸ia obiectiv pentru toate produsele stocate: k
C (q 1 , . . . , qk ) =
C i (q i ).
i=1
Cum funct¸iile ¸iile C i (q i ) (i = 1, . . . , k) k) sunt independente, minimul sumei lor are loc odat˘ a cu minimul fiec˘areia areia dintre ele ¸si si deci d eci avem echivalent¸˘ ¸a˘ ˆıntre ınt re relat rel at¸iile: ¸iile: ∂C ( ∂C (q 1 , . . . , qk ) =0 ∂q i ¸si si
∂C i (q i ) = 0, 0 , i = 1, . . . , k . ∂q i G˘ asim asim pentru produsele P i valorile: q ˆi =
2Qi cli , θcsi
num˘arul arul de reaprovizion˘ari: ari: ν ˆi =
Qi = q qˆi
perio pe rioada ada optim˘ opt im˘a: a: ˆ= θ = T ν νˆ i
Qi θcsi , 2cli
2θcli Qcsi
110
TEORIA STOCURILOR
¸si si gestiunea gestiu nea optim˘a: a: k
ˆ= C
ˆi , C
i=1
unde:
ˆi = C i (q i ) = C
2θQ i cli csi .
Rezultate similare se obt¸in ¸in pentru celelalte celelalte modele.
7.3. 7.3.
Model Modele e pr prob obab abil ilis iste te
7.3. 7.3.1. 1. Model Model de stoca stocare re a un unui ui produs produs cu cere cerere re aleat aleatoa oare re,, cu pierde pierdere re ˆın caz cazul ul surplu surplusul sului ui de stoc, stoc, cu ch chelt eltuie uieli li suplisuplimentare ˆın cazul lipsei de stoc ¸si si cu cost de stocare neglijabil Presupunem Presupunem c˘ a se stocheaz˘a un singur produs a c˘arui arui cerere cerere este este o variabi ariabil˘ l˘a aleatoare X cu repartit¸ia: ¸ia: X : (x, p(x)), )), x = 0, 0 , 1, 2, . . . pentru cerere discret˘a ¸si:
∈ [0, [0, ∞) pentru cerere continu˘a; a; excedentul de stoc, cˆand and x ≤ s (s fiind stocul), se penalizeaz˘a X : (x, f ( f (x)), )), x
cu o pierdere unitar˘a c1 ; lips lipsaa de stoc, stoc, cˆ and and x > s, se penalizeaz˘a cu cheltuieli suplimentare de reaprovizionare unitare c2 ; cheltuielile de stocare sunt foarte mici ˆın raport rap ort cu c1 ¸si si c2 ¸si si se neglij neg lijeaz eaz˘˘a. a. Cazul discret. Variabila aleatoare excedent de stoc E s are repartit¸ia: ¸ia:
− −
E s : cu media:
s x p( p(x)
, x = 0, 0 , 1, . . . , s ,
s
M ( M (E s ) =
(s
x=0
− x) p( p(x),
iar variabila aleatoare lips˘a de stoc are repartit¸ia: ¸ia: Ls : cu media:
x s p( p(x)
M ( M (Ls ) =
, x = s + 1, 1, s + 2, 2, . . .
∞
(x
x=s+1
− s) p( p(x).
111
MODELE PROBABILISTE
Funct¸ia ¸ia obiectiv a modelului matematic reprezint˘a cheltuielile medii totale legate de managementu managementull stocului, stocului, adic˘ a: a: s
C (s) = c1
(s
x=0
− x) p( p(x) + c2
∞
(x
x=s+1
− s) p( p(x).
Stocul optim sˆ se obt¸ine ¸ine din condit¸ia ¸ia de minim pentru funct¸ia ¸ia obiectiv C (s). Teorema eorema 7.3.1. 7.3.1. (Optim pentru cazul discret). Funct ¸ia C ¸ia C (s) ˆı¸si si atin at inge ge mini mi nimu mul l c2 ˆın punct pu nctul ul sˆ pentru care F (ˆ F (ˆs 1) < ρ < F (ˆ F (ˆs), unde ρ = , iar F ( F (s) = P r(x c1 + c2 s) =
s
−
≤
p( p(x) este o funct ¸ie cresc˘ atoare.
x=0
Demonstra¸tie. ¸ie discret˘a ¸si si sˆ este punct de minim dac˘a ¸si si numai dac˘a avem C (s) este o funct¸ie C (ˆ (sˆ) < min C (ˆ (sˆ 1), 1), C (ˆ (sˆ + 1) . Aceast˘a dubl˘a inegalitate inega litate permite permi te determinare dete rminarea a lui sˆ ca solut¸ie ¸ie a sistemului de inecuat¸ii: ¸ii:
{
−
}
C (s 1) C (s + 1)
− − C (s) > 0 − C (s) > 0.
(7.1)
Avem: s+1
C (s + 1) = c1
(s + 1
x=0
s
= c1
− − (s + 1
− x) p( p(x) + c2
(s
x) p( p(x) + c1
x=0
−c2
∞
s
(x
x=s+1 s
x=0
s
p( p(x)
x=0
− s − 1) p( p(x) =
(x
x=s+2
p(x) = − s − 1) p(
∞
− −
p( p(x) + c2
p( p(x) = C (s) + c1
x=s+1
Notˆ and and F ( F (s) =
x) p( p(x) + c2
x=0 s
= c1
∞
∞
(x
s) p( p(x)
x=s+1
∞
c2
−
p( p(x).
x=s+1
p( p(x), avem:
x=0
C (s + 1) = C (s) + (c ( c1 + c2 )F ( F (s)
− c2.
(7.2)
112
TEORIA STOCURILOR
Analog obt¸inem: ¸inem: s 1
C (s
− 1)
= c1
−
(s
1
x) p( p(x) + c2
−
s + 1) p 1) p((x)
s 1
(s
−
x) p( p(x) + c1
x=0
+c2
(x
x=s
x=0 s 1
= c1
∞
−− − − − − p( p(x) + c2
s
p( p(x) = c1
x=s
+c1 F ( F (s
(s
(x
s) p( p(x)
x=s
x=0
∞
∞
x) p( p(x) + c2
x=0
∞
(x
x=s+1
p(x) − s) p(
F (s − 1)) − 1) + c2(1 − F (
sau C (s
− 1) = C (s) − (c1 + c2)F ( F (s − 1) + c2 .
(7.3)
ˆInlocuind Inlo cuind 7.2 ¸si si 7.3 ˆın 7.1 obt¸inem: ¸inem:
− C (s) C (s − 1) − C (s) C (s + 1)
de unde: F ( F (s
− c2 > 0, −(c1 + c2)F ( F (s − 1) + c2 > 0,
= (c1 + c2 )F ( F (s) =
− 1) < c1 c+2 c2 < F ( F (s)
sau F ( F (s
− 1) < ρ < F ( F (s)
¸si si teorema teorem a este demonstrat˘ demons trat˘a. a. Observat ¸ii: i) Dac˘a F (ˆ F (ˆs 1) < ρ < F (ˆ (ˆs) ¸si si deoarec deo arecee F ( F (s) este cresc˘atoare atoare atunci exist˘a sˆ unic. ii) Dac˘a F (ˆ F (ˆ s 1) < ρ = F (ˆ F (ˆs) atunci C (s) are dou˘a puncte de minim sˆ ¸si sˆ + 1. iii) Dac˘a F (ˆ F (ˆ s 1) = ρ < F (ˆ 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: ¸ia:
− − −
−
E s :
− s x f ( f (x)
cu media:
, x
∈ [0, [0, s],
s
M ( M (E s ) =
− (s
0
x)f ( f (x)dx, )dx,
113
MODELE PROBABILISTE iar variabila aleatoare lips˘a de stoc are repartit¸ia: ¸ia:
− x s f ( f (x)
Ls :
, x
∈ [s, ∞),
cu media:
∞
M ( M (Ls ) =
− (x
s)f ( f (x)dx. )dx.
s
Funct¸ia ¸ia obiectiv a modelului matematic reprezint˘a cheltuielile medii totale legate de managementu managementull stocului, stocului, adic˘ a: a: s
C (s) = c1
− (s
∞
x)f ( f (x)dx + c2
− (x
s)f ( f (x)dx. )dx.
s
0
Stocul optim sˆ se obt¸ine ¸ine din condit¸ia ¸ia de minim pentru funct¸ia ¸ia obiectiv C (s). Teorema eorema 7.3.2. 7.3.2. (Optim pentru pentru cazul cazul continuu). continuu). Funct ¸ia C (s) ˆı¸si si atin at inge ge mini mi ni-s c2 mul ˆın punctu pun ctul l sˆ pentru care F (ˆ F (ˆ s) = ρ, unde ρ = ¸si si F ( F (s) = = f ( f (x)dx. )dx. c1 + c2 0
Demonstrat¸ie. ¸ie. s
C (s) = c1
∞
f ( f (x)dx )dx
0
− c2
f ( f (x)dx )dx
s
¸si si din condit con dit¸ia ¸ia C (s) = 0, 0 , rezult˘a: a: c1 F ( F (s)
F (s)) = 0, 0, − c2(1 − F (
de unde: F ( F (s) =
c2 = ρ. c1 + c2
Solut¸ia ¸ia ecuat¸iei ¸iei F ( F (s) = ρ o vom nota cu sˆ ¸si si deoa de oarec recee C (s) > 0, aceasta este punct de minim.
114
TEORIA STOCURILOR
7.3. 7.3.2. 2. Model Model de stoca stocare re a un unui ui produs produs cu cere cerere re aleat aleatoa oare re,, cu cost de stocare sto care ¸si si cost de penalizare p enalizare pentru p entru lips˘ a de stoc Presupunem Presupunem c˘ a se stocheaz˘a un singur produs a c˘arui arui cerere cerere este este o variabi ariabil˘ l˘a aleatoare X cu repartit¸ia: ¸ia: X : (x, p(x)), )), x = 0, 0 , 1, 2, . . . pentru cerere discret˘a ¸si X : (x, f ( f (x)), )), x
∈ [0, [0, ∞)
pentru cerere continu˘a, a, costul unitar de stocare este cs , 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: ¸ii: i) cererea nu dep˘a¸ a¸se¸ se¸ste ste stocul stoc ul (fig.7.3), (fig.7 .3), deci ea este satisf˘ satisf ˘acut˘ acut˘a ˆın toat to at˘ a˘ perioada T , T , adic˘a avem x s pe perioada T ; T ; ii) cererea este mai mare decˆat at stocul (fig.7.4), adic˘a x > s, ceea ce face ca ˆın perioada T 1 cererea s˘a fie satisf˘acut˘ acut˘a, a, iar ˆın perioada T 2 cererea s˘a nu fie satisf˘acut˘ acut˘ a (T 1 + T 2 = T ). T ).
≤
Figura 7.3: Cererea nu dep˘a¸ a¸se¸ se¸ste st e sto st o cul. cu l. Prezent˘am am cazul discret ¸si si cazul continuu. Cazul discret. Pentru situat¸ia ¸ia i) stocul mediu pentru care se pl˘ate¸ ate¸ste ste costul cos tul unitar de stocare cs , este: s x (s ) p( p(x). 2
x=0
−
115
MODELE PROBABILISTE
Figura 7.4: Cererea dep˘a¸ a¸se¸ se¸ste st e sto st o cul. cu l. Pentru situat¸ia ¸ia ii) vom avea un stoc mediu:
∞
x=s+1
s p( p(x), 2
pentru care se pl˘atesc atesc cheltuieli cheltuieli unitare de stocare c s pe perioada T 1 ¸si si o lips li ps˘˘a medie de stoc (penurie (penurie medie ): ): ∞ x s p(x), 2
−
x=s+1
penalizat˘a cu un cost unitar de penalizare c p pe perioada T 2 . Funct¸ia ¸ia obiectiv a modelului reprezint˘a cheltuielile medii totale legate de managementul stocului, pe perioada T , T , adic˘ di c˘a: a: s
C T T (s) = cs T
(s
x=0
Avem: ¸si si
−
x ) p( p(x) + cs T 1 2
∞
x=s+1
s p( p(x) + c p T 2 2
T 1 s = T x
−
T 2 x s = , T s
de unde: T 1 =
s T x
∞
x=s+1
x
− s p(x). 2
116
TEORIA STOCURILOR
¸si si
x
T 2 =
− s T s
ˆInlocuind valorile lui T 1 ¸si si T 2 ˆın formula for mula lui C T asim: asim: T (s) g˘ C T T (s) = T C (s), unde am notat prin C (s) cheltuielile cheltuiel ile medii totale tota le ˆın ın unitatea unita tea de timp ¸si: si: s
C (s) = cs
(s
x=0
−
x 1 ) p( p(x) + cs s2 2 2
∞
x=s+1
p( p(x) 1 + c p x 2
∞
(x
x=s+1
− s)2 p(x). x
Stocul optim sˆ se obt¸ine ¸ine din condit¸ia ¸ia de minim pentru funct¸ia ¸ia C (s). Teorema eorema 7.3.3. 7.3.3. (Optim pentru cazul discret). Funct ¸ia C ¸ia C (s) ˆı¸si si atin at inge ge mini mi nimu mul l c p ˆın punc pu nctu tul l sˆ pentru care L(ˆ s 1) < ρ < L(ˆ L (ˆ s), unde ρ = ¸si si cs + c p
−
s
L(s) =
1 p( p(x) + (s (s + ) 2
x=0
∞
x=s+1
p( p(x) . x
Demonstrat¸ie. ¸ie. Condit¸ia ¸ia de minim pentru funct¸ia ¸ia discret˘a C (s) este
{
ρ < min C (ˆ (sˆ
− 1), 1), C (ˆ (sˆ + 1)}
condit¸ie ¸ie ce permite determinarea punctului de minim s ca solut¸ie ¸ie a sistemului de inecuat¸ii: ¸ii: C (s 1) C (s) > 0 C (s + 1) C (s) > 0.
− − −
Avem: s+1
C (s + 1) = cs
(s + 1
x=0
1 + c p 2
∞
x=s+2
(x
−
x 1 ) p( p(x) + cs (s + 1)2 2 2
− s − 1)2 p(x). x
Sumele din partea a doua a egalit˘at a¸ii ¸t ii se rescriu:
∞
x=s+2
p( p(x) + x
117
MODELE PROBABILISTE
s+1
x ) p( p(x) = 2
s+1
− − (s + 1
x=0
s
=
(s
x=0
∞
x=s+2
x ) p( p(x) + 2
p( p(x) = x
(s
x=0 s
−
x ) p( p(x) + 2
p( p(x) +
x=0
∞
x=s+1
p( p(x) x
s+1
p( p(x) =
x=0
s+1 p(s + 1), 1), 2
− p(ss++11)
¸si si
∞
− s − 1)2 p(x) =
(x
x
x=s+2
−2 −2
∞
x=s+1
∞
(x
∞
(x
x
x=s+1
∞
− s)2 p(x) + x
x=s+1
p( p(x) + (2s (2s + 1)
x=s+1
∞
x=s+1
∞
− s − 1)2 p(x) =
p( p(x) = x
p( p(x) . x
x=s+1
∞
(x
(x
− s)2 p(x) − x
− s)2 p(x) − x
x=s+1
ˆInlocuind aceste sume ˆın formula lui C (s + 1) obt¸inem: ¸inem:
s
( cs + c p ) C (s + 1) = C (s) + (c
1 (s + ) p( p(x) + (s 2
x=0
sau C (s + 1)
− ∞
x=s+1
p( p(x) x
c p
− C (s) = (c ( cs + c p )L(s) − c p .
Analog g˘ asim: asim: C (s
− 1) − C (s) = −(cs + c p)L(s − 1) + c p.
ˆInlocuind Inlocuind aceste aceste relat¸ii ¸ii ˆın ın sistemul descris obt¸inem: ¸inem:
(cs + c p )L(s) c p > 0 (cs + c p )L(s 1) + c p > 0,
−
− −
de unde rezult˘a c˘ a L(s 1) < ρ < L( L(s) ¸si si teorema este demonstrat˘a. a . Se arat arat˘a˘ simplu c˘a C (ˆ s) > 0 ¸si, si, deci, deci , sˆ solut¸ia ¸ia inegalit˘ at a¸ilor ¸tilor L(s 1) < ρ < L( L (s) este punct de minim. Gestiunea optim˘a se obt¸ine ¸ine calculˆand and pe C (ˆ (sˆ).
−
−
118
TEORIA STOCURILOR
Cazul continuu. Rat¸ionˆ ¸ionˆ and and ca la cazul discret, discret, se obt¸ine ¸ine pentru funct¸ia ¸ia obiectiv de la acest model C (s), expresia: s
C (s) = cs
− (s
0
x 1 )f ( f (x)dx )dx + s2 cs 2 2
∞
s
∞
f ( f (x) 1 dx + c p x 2
(x
s
− s)2 f ( f (x)dx. )dx. x
Stocul optim sˆ se obt¸ine ¸ine din condit¸ia ¸ia de minim pentru funct¸ia ¸ia C (s). Teorema eorema 7.3.4. 7.3.4. (Optim pentru pentru cazul cazul continuu). continuu). Funct ¸ia C (s) ˆı¸si si atin at inge ge mini mi ni-c p mul ˆın punctu pun ctul l sˆ pentru care L(s) = ρ, unde ρ = ¸si: cs + c p
∞
L(s) = F ( F (s) + s
s
f ( f (x) dx, cu F ( F (s) = x
s
f ( f (x)dx. )dx.
0
Demonstrat¸ie. ¸ie. Avem: s
C (s) = cs
∞
f ( f (x)dx )dx + scs
s
0
f ( f (x) dx x
∞
− c p
s
(x
− s) f ( f (x)dx. )dx. x
Ecuat¸ia ¸ia C (s) = 0 ne d˘a: a:
∞
F ( F (s) + s
s
f ( f (x) c p dx = , sau L(s) = ρ. x cs + c p
Solut¸ia ¸ia ecuat¸iei ¸iei L(s) = ρ o vom nota cu sˆ ¸si si deoa de oarec recee C (ˆ s) > 0, aceasta aceasta este punct de minim.
7.4. .4.
Aplic plica a¸ii ¸tii
Exercit¸iul ¸iul 7.4.1. 7.4.1. O unitate comercial˘a are o cerere anual˘a (365 zile) de 2000t benzin˘a. a. Costul de lansare lansare al comenzii 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 a¸i ¸ti egale ega le ¸si si c˘a nu se admite lipsa benzinei din stoc, s˘a se determin determine: e: volum volumul ul optim optim al unei comenzi, num˘arul arul optim de reaprovizion˘ari, ari, perioada peri oada optim˘a ¸si si gestiunea gestiu nea optim˘a. a.
APLI AP LICA CAT T ¸ I I
119
R˘ aspuns . Modelul matematic matematic al problemei problemei este un model de stocare a unui produs cu cerere cerere constant˘ constant˘ a, a, perioad˘ perioad˘ a constant˘ constant˘ a de reaprovizionare reaproviz ionare ¸si si f˘ar˘ ar˘a lips˘a de stoc. Datele problemei sunt: Q = 2000 t; θ = 365 zile; cl = 150$; cs = 0, 0 , 5$/t. 5$/t.
Exercit¸iul ¸iul 7.4.2. 7.4.2. La un magazin se estimeaz˘a c˘a cererea lunar˘a (30 zile) pentru pentru un anume tip de produs este de 6000 kg. Costul zilnic de stocare pentru 10 kg din marfa respectiv˘a este de 0, 0, 25$, costul costul de lansare lansare a unei unei com comenz enzii este este de 100$ ¸si si costul de penalizare de 0, 0 , 25$ /kg. ˆIn ipoteza c˘a se admite o vˆanzare anzare uniform˘ a, a, aprovizionarea se face ˆın cantit˘ at a¸i ¸ti egale egal e ¸si si la intervale egale ega le de timp, s˘a se determine volumul optim al unei comenzi, stocul optim, num˘arul arul optim de reaprovizion˘ari, ari, perio pe rioad adaa opti op tim˘ m˘a ¸si si gest ge stiun iunea ea opti op tim˘ m˘a. a.
R˘ aspuns . Modelul matematic matematic al problemei problemei este un model de stocare a unui produs cu cerere cerere constant˘ constant˘ a, a, perioad˘ a constant˘ a de reaprovizionare ¸si si cu posibilitatea lipsei de stoc. Q = 6000 kg; θ = 30 zile; cs = 0, 0 , 025$; c p = 0, 0 , 25$; cl = 100$.
Exercit¸iul ¸iul 7.4.3. 7.4.3. La un magazin alimentar se vˆand and produse lactate care au un termen de garant¸ie de 3 zile zile.. Ne Nece cesa saru rull de produs produsee pentr pentru u 300 zile zile este este de 250000 buc˘ at a¸i, ¸t i, pret¸ul ¸ul de achizit¸ie ¸ie de 0,25$, costul fix de lansare al comenzii 500$, iar coeficientul de proport¸ionalitate ¸ionalitate de 0,015. ˆIn ipoteza c˘a se admite o vˆanzare anzare uniform˘ a, a, aprovizionarea se face la intervale intervale egale ¸si si c˘a nu se admite lipsa de stoc, s˘a se stabileasc˘ stabil easc˘a, a, dac˘a este posibil (nu se dep˘a¸ a¸se¸ se¸ste st e terme te rmenul nul de garan ga rant¸ie), ¸t ie), comanda optim˘a, a, num˘ arul arul optim de comenzi ¸si si gestiunea optim˘a. a.
R˘ aspuns. Modelul matematic al problemei este un model de stocare a unui produs cu cerere constant˘a, a, perioad˘ a constant˘ a de reaprovizio rea provizionare nare ¸si si f˘ar˘ ar˘a lips˘a de stoc, luˆand and ˆın considerare conside rare ¸si si costul de achizit¸ie. ¸ie.
120
TEORIA STOCURILOR θ = 300 zile; Q = 250000; ca = 0, 25$; cb = 500$; α = 0, 0 , 15; cu restrict¸ia ¸ia T
≤ 3.
Exercit¸iul ¸iul 7.4.4. 7.4.4. Se organizeaz˘ organizeaz˘ a pe o period˘a de 300 zile stocul produselor P 1 , P 2 , P 3 , ˆın cond co ndit it¸iile ¸iile modelului de stocare a mai multor produse. Sunt date: Q1 = 400t; Q2 = 2500t; Q3 = 900t; cl1 = 200$; cl2 = 150$; cl3 = 400$; cs1 = 2$; cs2 = 2$; cs3 = 4$ 4$.. S˘ a se stabileasc˘a elementele e lementele optime ale activit˘ activi t˘at a¸ii ¸t ii de management a stocului.
Exercit¸iul ¸iul 7.4.5. 7.4.5. Cererea (ˆın tone) pentru o anumit˘ a marf˘ a este o variabil˘a aleatoare aleatoare cu densitatea densitatea de probabilitate probabilitate:: f ( f (x) =
∈
λ(x + α), x [0, [0, 5] 0, ˆın rest re st..
S ¸ tiin ti ind d c˘a surplusul de marf˘a se vinde cu o pierdere pierdere de 10$ /t, iar ˆın ı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 ar ˆıntreg bine precizat. preciza t. 5
R˘ aspuns. Determin˘ am mai ˆıntˆai am ai valoarea λ din condit¸ia ¸ia
λ(x + α) = 1. Obt¸inem: ¸inem:
0
λ=
2 . 25 + 10α 10α
Funct¸ia ¸ia de repartit¸ie ¸ie va fi: s
F ( F (s) = λ
(x + α)ds )ds = λ(
0
s2 + αs) αs), 2
121
APLI AP LICA CAT T ¸ I I iar ecuat¸ia ¸ia F ( F (s) = devine:
c2 c1 + c2
2 s2 2 ( + αs) αs) = , 25 + 10α 10α 2 3
care este echivalent˘a cu: 2α) = 0. 0. − 10(5 3+ 2α
2αs s2 + 2αs
√
Solut¸ia ¸ ia sˆ(α) = α + 13 9α2 + 30 Gestiunea optim˘a va fi C (ˆ (sˆ(α)). )).
−
∈ [0, [0, 5] a acestei ecuat¸ii ¸ii este stocul optim.
Exercit¸iul ¸iul 7.4.6. 7.4.6. Cererea (ˆın tone) pentru o anumit˘ a marf˘ a este o variabil˘a aleatoare aleatoare cu densitatea densitatea de probabilitate probabilitate:: f ( f (x) =
∈
λ(x + α), x [0, [0, 5] 0, ˆın rest re st..
S ¸ tiin ti ind d c˘a costul de stocare este de 1$/t, iar ˆın ın cazul lipsei de marf˘ a cheltuieli cheltuielile le de penalizare sunt de 10$/t, s˘a se optimizeze stocul. stocul. Parametru Parametrull α este un num˘ar ar ˆıntreg bine precizat. preciza t. 5
R˘ aspuns. Determin˘ am mai ˆıntˆai am ai valoarea λ din condit¸ia ¸ia
λ(x + α) = 1. Obt¸inem: ¸inem:
0
λ=
2 . 25 + 10α 10α
Funct¸ia ¸ia de repartit¸ie ¸ie va fi: s
F ( F (s) = λ
(x + α)ds )ds = λ(
0
Ecuat¸ia ¸ia
∞
F ( F (s) + s
0
care ne va da stocul optim va fi:
s2 + αs) αs), 2
f ( f (x) c p dx = x c p + cs
122
TEORIA STOCURILOR
s2 λ( + αs) αs) + s 2 sau s2 λ( + αs) αs) + s 2
∞
s
∞
s
λ(x2 + α) 10 dx = x 11
λ(x2 + α) 10 dx = , x 11
ecuat¸ie ¸ie care nu are solut¸ii ¸ii (integrala este divergent˘a). a). Acest lucru ne arat˘a c˘a nu se poate calcula mereu un stoc optim. Exercit¸iul ¸iul 7.4.7. 7.4.7. ˆIn vederea efectu˘arii arii unor studii de marketing, o agent¸ie ¸ie comercial˘ a cump˘ar˘ ar˘a un calculator electronic. Calculatorul este dotat cu un num˘ar de circuite integrate care ˆın caz de defectare se schimb˘ schimb˘a. a. Se ¸stie stie c˘a acest tip de circuite cump˘arate arate odat˘ a cu calculatorul cost˘a 5$ bucata, iar comanda special˘a cost˘a 10$ bucata. Datele statistice arat˘ a urm˘atoarea atoarea cerere de terminale (tabelul 7.1): TABELUL 7.1
Circuite Circuit e ˆınlocuite ınlo cuite (x) Num˘ ar ar calculatoare cu x circuite ˆınlocu ocuite
0 1
1 2
2 4
3 2
4 1
ˆIn ipoteza costului de stocare neglijabil, s˘a se determine stocul optim de circuite integrate comandate o dat˘ a cu calculatorul precum ¸si si gestiunea optim˘a. a. R˘ aspuns. Modelul matematic corespunz˘ator ator este modelul de stocare a unui produs cu cerere aleatoare, cu pierdere ˆın ın cazul surplusului de sto c, cu cheltuieli suplimentare ˆın ın cazul lipsei de stoc ¸si si cu cost de stocare neglijabil. Exercit¸iul ¸iul 7.4.8. 7.4.8. Se ¸stie sti e c˘a un anumit produs are o cerere lunar˘a aleatoare conform cu tabelul 7.2: TABELUL 7.2
cererea x p( p(x)
1 0 ,2
2 0 ,3
3 0,4
4 0,1
ˆIn ipoteza c˘a se admit cheltuieli de stocare pe zi pentru o ton˘a de 1$ ¸si si c˘a lipsa de stoc este penalizat˘a cu 3$ pe zi pentru o ton˘a lips li ps˘˘a, a, s˘a se determine stocul optim. R˘ aspuns. Modelul matematic corespunz˘ator ator este modelul de stocare a unui produs cu cerere aleatoare, cu cost de stocare sto care ¸si si cost de penalizare pentru lips˘a de stoc (caz discret).
Capitolul 8
˘T PROBABILITA ¸I 8.1. 8.1.
Probab Probabili iliate atea a unu unuii ev evenimen enimentt
8.1.1. Cazul finit dimensional ¸si si al evenimetelor elementare elementare echiprobabile Fermat (1601-1665) (1601 -1665) ¸si si Pascal (1623-1662) au definit pentru prima dat˘ a probabilprobabilitatea realiz˘ realizarii a˘rii evenimentului A, ca: P ( P (A) =
Num˘ arul cazurilor favorabile aparit¸iei arul ¸iei evenimentului A . Num˘ arul arul total de cazuri
Definit¸ia ¸ia este valabil˘a ˆın cazul finit dimensional ¸si si al evenimentelor evenimentelor elementare echiprobabile. Exemple: a) Se arunc˘a cu dou˘ a zaruri. zaruri. Probab Probabili ilitate tatea a de a obt¸ine ¸ine poart˘ a ˆın cas˘ a , adic˘a n m = 2, unde n ¸si si m sunt numerele de pe zarurile care au ie¸sit sit la aruncare, este:
| − |
P ( P (A) =
8 = 0, 0 , 22 22.. 36
b) Schema lui Bernoulli Bernoulli (1700-1782), f˘ar˘ ar˘ a ˆıntoarc ınto arcere. ere. ˆIntr-o Int r-o urn˘ urn ˘a sunt su nt a bile albe, b bile negre, c bile ro¸sii. sii. Se fac n extrageri succesive n a + b + c, f˘ ar˘ ar˘ a revenire. Probabilitatea s˘ a avem extrase α bile albe, β bile negre, γ bile bi le ro¸sii, si i, n = α + β + β + γ, 0 α a, 0 β b, 0 γ c este:
≤
≤ ≤
≤ ≤
≤ ≤
P ( P (A) =
C aα C bβ C cγ
·
·
C aα++bβ ++cγ 123
.
˘ T PROBABILIT A ¸ I
124
8.1. 8.1.2. 2.
Prob Probab abit it˘ at a ˘¸i ¸t i geometrice
Formula utilizat˘ a este P ( P (A) =
Aria Ari a ha¸ h a¸sura su rat˘ t˘a . Aria total˘ a
Exemple: a) Se aleg la ˆıntˆamplare amplare dou˘ a numere, 2 2 α + β 1?
≤
−1 ≤ α, β ≤ 1. Care este probabiliatea ca
Figura 8.1: Exemplu de probabilitate geometric˘a. a. π . 4 b) Acul lui Buffon (1707-1788). ˆIn plan este trasat˘a o ret¸ea ¸ea de drepte paralele, echidistante, la distant¸a ¸a 1, una de alta. Se arunc˘a un arc de lungime 0, 0 , 5. Probabilita Probab ilitatea tea ca acul s˘a ating˘ at ing˘a ret¸eaua ¸eaua este 1 , se poate ar˘ata ata folosind folosind probabili˘ probabili˘ at a¸i ¸ti geometrice. π c) Se alege la ˆıntˆ amplare un triunghi, din mult¸imea amplare ¸imea tuturor triunghiurilor. Prob1 abilitatea ca triunghiul s˘ a fie ascut¸itunghic ¸itunghic este . Probabilitatea ca triunghiul s˘a 4 fie dreptunghic este 0. Acestea se pot deduce utilizˆand and probabili˘ probabili˘ at a¸i ¸ti geometrice. P ( P (A) =
8.1.3. 8.1.3.
Frecve recvent nt¸˘ ¸˘ a ab abso solu lut˘ t˘a. a. Frecv Frecven ent¸t˘ a relativ˘ a
Not˘ am a m cu (f (f n ) ¸sirul siru l frecvent frec vent¸elor ¸elor absolute ale aparit¸iei ¸iei evenimentului A ˆın urma ur ma unor experimente repetate. Fie (ν ( ν n ) ¸sirul sir ul frecv fr ecvent ent¸elor ¸elor relative corespunz˘atoare: atoare: ν n = f n . Dac˘a ν n p ¸si si p = P ( P (A), calculat˘ calculat˘ a, a, estimat˘ a printr-o alt˘a metod˘ a, a, atunci avem n o mai mare ˆıncredere ıncreder e c˘a p = P ( P (A). Frecvent¸a ¸a absolut˘ a poate fi privit˘a ca o variabil˘a aleatoare, astfel: f ¯1 variabila aleatoare care are repartit¸ia: ¸ia:
→
125
PROBABILIATEA UNUI EVENIMENT
0 1 q p
,
unde p = P ( P (A), q = 1 p. p. ¯ f 2 este variabila aleatoare care are repartit¸ia: ¸ia:
−
0 1 q p
+
0 1 q p
=
0 1 2 2 q 2qp p2
.
f ¯3 este variabila aleatoare care are repartit¸ia: ¸ia:
0 1 q p
+
0 1 q p
+
0 1 q p
=
0 1 2 3 3 2 2 q 3q p 3qp p3
¸s.a. s. a.m. m.d. d.
S ¸irul ¸i rul variabilelor variabilelo r aleatoare aleato are f ¯n monitorizeaz˘ a aparit¸ia ¸ia evenimetului A. Deci f ¯n este variabila aleatoare care are repatit¸ia: ¸ia:
0 1 2 ... n n 1 n 1 2 n 2 2 − − q C n q p C n q p . . . pn
.
1 ¯ f n . n Prin urmare frecvent¸ele ¸ele absolute ¸si si frecvent¸ele ¸ele relative relative pot fi privite privite ca ¸siruri siruri numerice, (f (f n ) ¸si (ν n ) ¸si si pot p ot fi privite ca varialibele varialibele aleatoare (f ¯n ) ¸si si (ν ν¯ n ). Frecvent¸a ¸a relativ˘a ν ν¯ n este variabila aleatoare ν ν¯n =
8.1. 8.1.4. 4.
·
Defin Definit it ¸ia ¸ia statistic˘ statist ic˘ a a probabilit˘ probabil it˘ at a¸ii ¸t ii
a) Fie experient¸a ¸a arunc˘arii arii cu banul. A evenimentul de a apare banul . P ( P (A) = 1 p = . Person a facut experint¸a ¸a de 24000 ori ¸si si a obt¸inut ¸inut ν n = 0, 5005 5005... 2 b) S-a f˘acut acut experint exper int¸a ¸a acului lui Buffon de un num˘ar ar de 5000 de ori. S-a obt¸inut ¸inut pentru ν 5000 0 , 3175, de unde π 3, 1496 1496.. 5000 = 0, Aceste dou˘a exemple, exemple , celebre, celebr e, ne ˆındrept˘ ındrept ˘at a¸esc ¸tesc s˘a accept˘am am cu ˆıncrede ınc redere re ¸si si speran sp erantt¸e ¸e definit¸ia ¸ia urm˘atoare: atoare: Fie A un eveniment. Repet˘am am experint¸a ¸a de multe ori ¸si si calcul˘am am f n ¸si si ν n . Dac˘ a ν n se stabilizeaz˘a ˆın jurul jur ul unei un ei valori p R, accept˘ am am definit¸ia ¸ia P ( P (A) = ν n = p, n suficient de mare, cˆand and ν n se stabilizeaz˘a aproape de p. Aceasta este definit¸ia ¸ia statistic˘a a probab pro babili ilit˘ t˘at a¸ii ¸t ii lui A.
≈
∈
˘ T PROBABILIT A ¸ I
126
8.2. 8.2.1. 8.2.1. p( p(x) =
Variabile ariabile aleatoar aleatoare e normal normal distribuit distribuite e Densita Densitatea tea de prob probabi abilita litate te normal normal˘ ˘ a
− 1 √ e σ 2π
(x
− m)2
2σ 2
,m
∈ R, σ > 0 se nume¸ste ste densitatea de probabilitate
normal˘ a, densitatea de probabilitate a lui Gauss (1777-1855). a, O variabil˘a aleatoare care are densitatea p(x) se nume¸ste ste normal distribuit˘a ¸si are media m ¸si si abatere aba tereaa p˘atratic˘ atratic˘ aσ:
Figura 8.2: Graficul densit˘at a¸ii ¸tii normale.
8.2. 8.2.2. 2. Φ(x Φ(x) =
Fun unct ct ¸ia ¸ia Laplace-Gauss
√ 12π
x
t2 − e 2 dt este funct¸ia ¸ia Laplace (1749-1827)-Gauss.
−∞
Φ(x Φ(x) are urm˘atoarel ato arelee propri pro priet˘ et˘at a¸i ¸t i imdediate: 1 Φ(0) = 2 Φ(x Φ(x) + Φ( x) = 1, x R Φ(x Φ(x) 1, x 3 Φ(x Φ(x) 0, x 3.
≈ ≈
−
≥ ≤−
∈
127
LEGEA NUMERELOR MARI
Figura 8.3: Graficul funct¸iei ¸iei Laplace-Gauss.
8.2.3. 8.2 .3.
O formul˘ for mul˘ a analiti anal itic˘ c˘ a pentru pe ntru calcu ca lculul lul proba p robabil bilit˘ it˘ at a¸ii ¸t ii
Enunt¸˘ ¸am a˘m o teorem˘a de mare important¸˘ ¸a. a˘. Teorema eorema 8.2.1. 8.2.1. a) Dac˘ a f este o variabil˘a aleatoare cu densitatea de probabil-
β
itate p(x), atunci P ( P (α
≤ f ≤ β ) =
p( p(x)dx. )dx.
α
b) Dac˘a f este o variabil˘a aleatoare normal distribuit˘a, a, adic˘a p(x) este densitatea densitatea β m α m normal˘ a, a, atunci: P ( P (α f β ) = Φ( ) Φ( ). σ σ
−
≤ ≤
8.2.4. 8.2.4.
−
−
Inegal Inegalita itatea tea lui Cebˆ Cebˆ a¸ a¸sev se v (18 ( 1821 21-1 -189 894) 4)
|−
Dac˘ a f este o variabil˘a aleatoare cu media m ¸si si me media dia p˘atratic˘ atratic˘ a σ, atunci: P ( P ( f 2 σ m ) , > 0. 2
|≥ ≤ 8.2.5. 8.2.5.
Teorema eorema celor celor
3σ
a) Dac˘ a f este o variabil˘a aleatoare cu media m ¸si si abatere aba tereaa p˘atratic˘ atratic˘ a σ , atunci 8 P ( P ( f m 3σ ) . 9 b) Dac˘a f este o variabil˘a aleaoare normal distribuit˘a, a, atunci P ( P ( f m 3σ ) 1.
| − |≤ 8.3. 8.3.
≥
| − |≤
≈
Lege Legea a num numer erel elor or mari mari
K
Fie (Ω, (Ω, , P ) P ) un cˆamp amp de probabilitat probab ilitatee ¸si si (f ( f n ), f variabile aleatoare. f n ¸si si numai numa i dac˘ dac a˘ pentru orice > 0, limn→∞ P ( P ( f n f ) = 0. 0.
| − |≥
→ p f dac˘a
˘ T PROBABILIT A ¸ I
128
K
∈K
Teorema eorema 8.3.1. 8.3.1. Fie (Ω, (Ω, , P ) P ) un cˆamp amp de probabilitat probab ilitate, e, A , ¸si si p = P ( P (A). Fie (f (f n ) ¸sirul sir ul frecv fr ecvent ent¸elor ¸elo r abso a bsolut lutee ¸si si (ν n ) ¸sirul sir ul frec f recven vent¸elor ¸t elor ata¸sate sate unor experimente experi mente succesiv succesive. e. Fie (f (f n ) ¸sirul sirul variabilelor aleatoare aleatoa re al frecvent¸elor ¸elor absolute absolu te ¸si si (ν n ) ¸siru si rull variabilelor aleatoare al frecvent¸elor ¸elor relative re lative ale apari¸ apari¸tiei evenimentului evenimentul ui A. Atunci: a) ν n p ˆın ”imensa majoritate” majoritat e” a cazurilor. p p b) ν n p = . 1
→ →
Observat¸ie. ¸ie. Dac˘ Dac˘a ν n
p
→p=
p 1
, deci totdeauna ν n tinde ˆın probabilitat probab ilitatee la
p . Evident sunt ”miracole” cˆand and ν n nu converge la p dar da r ˆın 1 ”imensa majoritate” a cazurilor ν n p. Legea numerelor mari d˘a relat¸ia ¸ia dintre p = P ( P (A), probabilitatea lui A, calculat˘ calculat˘ a sau estimat˘ estimat˘ a ˆıntr-un anume mod ¸si si probabilita probab ilitatea tea lui A ˆın sens statistic. statis tic.
variabila aleatoare
8.4. 8.4.
→
Teore eorema ma limi limit˘ t˘ a centr ntral˘ al ˘ a
Sunt multe variante variante ˆın care se prezint˘ a acest important rezultat, care se mai num nu me¸ste Teorema eorema fundamental˘ a a statisticii .
8.4.1.
Forma Leapunov L eapunov (1857-191 (18 57-1918) 8) a Teoremei Limit˘ L imit˘ a Central˘ a
Teorema eorema 8.4.1. 8.4.1. Fie (f (f n ) un ¸sir sir de variabile aleatoare pe (Ω, (Ω , , ), astfel ast fel ˆıncˆ ınc at: aˆt: 1. (f n ) variabile aleatoare independente; 2. (f n ) sunt din aceeia¸si si ”lume”, adic˘a au aceia¸si si densitate de probabilitate (sau aceia¸si si matrice matric e de repartit reparti ¸ie), t¸ie), deci au aceia¸si si medie m ¸si si acei ac eia¸ a¸si si me medi diee p˘atra at rati tic˘ c˘a σ 2 . β n m Atunci, pentru n ”mare” avem: P ( P (α f 1 + . . . + f n β ) Φ( ) σ n α n m Φ( ). σ n
K P
≤
−√ ·
≤
≈
−√ ·
−
Observat¸ia ¸ia 8.4.1. 8.4.1. Comparˆ and teorema de mai sus cu formula de la punctul and 8.2.3 se poate enunt¸a ¸a urm˘atorul atorul rezultat, numit Miracolul Gauss-Lapace: Dac˘ a f 1 , . . . fn , . . . sunt variabile aleatoare independente, din aceeia¸si si ”lume”, atunci pentru n ”mare”, F = f 1 + . . . fn se comport˘a ca o variabil˘a aleatoare aleatoare normal distribuit˘ a cu media M = n m ¸si si abaterea abate rea medie p˘atratic˘ atratic˘ aσ n.
·
· √
129
TESTE
8.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limit˘ a Central˘ a
K P
Teorema eorema 8.4.2. 8.4.2. Fie (f (f n ) un ¸sir sir de variabile aleatoare pe (Ω, (Ω , , ), astfel ast fel ˆıncˆ ınc at: aˆt: 1. (f n ) variabile aleatoare independente. 0 1 2. (f n ) variabile aleatoare, din aceeia¸si si ”lume”, Bernoullian˘a cu X = . q p β n p Atunci, pentru n ”mare” avem: P ( P (α f 1 + . . . + f n β ) Φ( ) npq α n p Φ( ). npq
≤
− · √
8.5. .5.
≤
≈
− · − √
Teste este
ˆIn cele ce urmeaz˘a vom prezenta cˆateva ateva teste ce au fost sau se pot propune la un examen. Fiecare test are trei p˘art art¸i. ¸i. Partea 1 este partea teoretic˘a, a, p˘art art¸ile ¸il e 2 ¸si si 3 cont¸in ¸in aplicat¸ii ¸ii referitoare a legea numerelor mari ¸si si teorema limit˘a central˘ central˘ a. a.
8.5. 8.5.1. 1.
Testu estull 1
Exercit¸iul ¸iul 8.5.1.1. 8.5.1.1. a) Enunt¸at ¸at¸i ¸i teorema celor 3σ. 3 σ. b) Legea uniform˘a pe intervalul [10, [10, 20] 20].. Media ¸si si abaterea a baterea medie p˘atratica atratica pentru o variabil˘a aleatoare aleatoare uniform uniform repartizat˘ repartizat˘ a pe [10, [10, 20] 20].. c) Fie (f (f n ) variabile variabi le aleato a leatoare, are, care au densit˘ d ensit˘at a¸ile ¸t ile de probabiliatate ( p ( pn ), respectiv, unde pn are graficul:
Figura 8.4: Densitatea de probabilitate. S ¸irul ¸i rul de variabile aleatoare aleat oare f n converge converge ˆın probabilitate, la 0 (f n
→ p 0)?
˘ T PROBABILIT A ¸ I
130
Exercit¸iul ¸iul 8.5.1.2. 8.5.1.2. O ret¸ea ¸ea de traficant¸i ¸i de droguri pun droguri ˆın pachet¸ele ¸ele ˆıntr ın tree 10 1 0g ¸si 50g. Distribut¸ia ¸ia se apreciaz˘a c˘a se face uniform. Pachetele se pun ˆın baxuri, fiecare bax, avˆand and 1000 pachet¸ele. ¸ele. Baxul este respins la controlul vamal dac˘a are mai mult de 32K 32K g. Folosind teorema limit˘ a central˘a s˘a se determine probabilitatea ca baxul s˘a treac˘a controlul vamal. ¸ia ax2 + bx + 1 = 0, a = 0, a,b Exercit¸iul ¸iul 8.5.1.3. 8.5.1.3. Se consider˘a ecuat¸ia R, 1 a 1, 2 b 2. Se aleg ale g la ˆıntˆamplare amplare a, b ˆın cond co ndit it¸iile ¸iile de mai sus. Se cere: a) S˘ a se determine p = P ( P (A), probabilitat probab ilitatea ea ca ambele r˘ad˘ ad˘acini acini s˘a fie reale. b) S˘a se determ determine ine n N astfel ast fel ˆıncˆat at P ( P ( ν ν¯n p 0, 01) = 0, 0, 7, unde unde ν ν¯n este variabila aleatoare a frecvent¸elor ¸elor relative ale aparit¸iei ¸iei evenimentului A, A fiind evenimen evenimentul tul ca ambele r˘ad˘ ad˘acini acini s˘a fie reale.
− ≤ ≤ − ≤ ≤
∈
8.5. 8.5.2. 2.
∈
| − |≤
Testu estull 2
Exercit¸iul ¸iul 8.5.2.1. 8.5.2.1. a) Densit Densitate ateaa de probab probabili ilitate tate normal˘ normal˘ a. a . Defin Definit it¸ie, ¸ie, propropriet˘ at a¸i, ¸t i, graficul. b) Dac˘a f este o variabil˘a aleatoare normal distribuit˘a, a, cu m = 70, 70 , σ = 5, 5 , calculat¸i ¸i P (60 P (60 f 70). 70). c) Enunt¸at ¸at¸i ¸i teorema limit˘a central˘a sub forma Moivre-Laplace.
≤ ≤
Exercit¸iul ¸iul 8.5.2.2. 8.5.2.2. Se aunc˘ aun c˘a dou˘ dou a˘ zaruri zaruri.. Not˘ am a m cu A evenimentul ca suma zarurilor s˘a fie 7. 7. a) Calculat¸i ¸i P ( P (A). b) Determinat¸i ¸i variabila aleatoare ce monitorizeaz˘a ”aparit¸ia” ¸ia” evenimentului A. Determinat¸i ¸i m ¸si si σ. c) Determinat¸i ¸i n N, de cˆate ate ori trebuie f˘acut˘ acut˘ a experient experient¸a, ¸a, astfel a stfel ˆıncˆat at P ( P ( ν ν¯ n p 0, 01) = 0, 0, 8, unde ν ν¯ n este variabila aleatoare a frecvent¸elor ¸elor relative ale aparit¸iei ¸iei evenimentului A.
∈
|≤
| −
Exercit¸iul ¸iul 8.5.2.3. 8.5.2.3. O banc˘a are 10000 client¸i. ¸i. Se estimeaz˘ estimeaz˘ a c˘ a un client pe o perioad˘a de o lun˘a are urm˘atoarele atoarele opt¸iuni: ¸iuni: i) ˆın 30% din cazuri face un ˆımprumut de 100 euro; ii) ˆın ın 20% din cazuri nu face f ace ˆımprumut, ımprumut, nu face fa ce economii; econom ii; iii) ˆın ın 20% din cazuri face economii de 100 euro; iv) ˆın ın 30% din cazuri face un ˆımprumut ımprumut de 200 euro. Not˘ am am cu S suma conturilo conturilorr tuturor tuturor client¸ilor. ¸ilor. Determinat Determinat¸i: ¸i: a) P ( P (S 0), 0), situat¸ia ¸ia ˆın care banca este ˆın mare dificultate; dificul tate;
≤
131
TESTE
≥
b) P ( P (S 1000000), 1000000), situat¸ia ¸ia ˆın ın care banca are mare profit; c) P (500000 P (500000 S 700000). 700000).
8.5. 8.5.3. 3.
≤ ≤
Testu estull 3
Exercit¸iul ¸iul 8.5.3.1. 8.5.3.1. a) Φ(x Φ(x), funct¸ia ¸ia lui Laplace. Laplace. Definit¸ie, ¸ie, propriet˘at a¸i, ¸ti, graficul. Calculat¸i ¸i Φ(1) + Φ( 2). 2). b) Enunt¸ul ¸ul legii numerelor mari sub forma lui Bernoulli.
−
− ≤
Exercit¸iul ¸iul 8.5.3.2. 8.5.3.2. Se alege la ˆıntˆamplare amplare o pereche de numere (x, ( x, y ), 1 2 2 x, y 1. Not˘ am am cu A evenimentul ca x + y 1. a) Determinat¸i ¸i p = P ( P (A). b) Se noteaz˘a cu ν ν¯ n ¸sirul sirul variabilelor variabilelo r aleatoare alea toare ale frecvent f recvent¸elor ¸elor relative ale aparit¸iei ¸iei evenimentului A. Determinat¸i ¸i n astfe ast fell ˆıncˆ ın cˆat at P ( P ( ν ν¯n p 0, 01) = 0, 0 , 8.
≤
≤
| − |≤
si se noteaz˘ noteaz ˘a suma zarurilor cu s. Exercit¸iul ¸iul 8.5.3.3. 8.5.3.3. Se arunc˘a cu dou˘a zaruri ¸si 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 ¸a de 1000 ori ¸si si se noteaz˘a S = s. Determinat¸i ¸i P (100 P (100 S 150). 150).
−
≤
≥ ≤ ≤
8.5. 8.5.4. 4.
Testu estull 4
Exercit¸iul ¸iul 8.5.4.1. 8.5.4.1. a) Inegalitatea lui Cebˆa¸sev. b) Fie f o variabil˘a aleatoare care are densitatea de probabilitate p probabilitate p((x) = Determinat¸i ¸i P (0 P (0
1 . π (x2 + 1)
≤ f ≤ 1). 1).
Exercit¸iul ¸iul 8.5.4.2. 8.5.4.2. Se alege un triunghi, triunghi, ˆın mod aleatoriu, aleatoriu, din mult mul¸imea ¸t imea tuturor triunghiur triunghiurilor. ilor. Fie A evenimentul ca un unghi al triunghiului ales s˘a fie mai mare sau egal cu 120◦ . Fie p = P ( P (A). a) Calculat¸i ¸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 ar de ori cupris ˆıntre 100 ¸si si 200 ori. c) S˘a se determine de cˆate ate ori trebuie efectuat˘a exprient¸a, ¸a, astfel a stfel ˆıncˆat at ν ν¯ n p, cu eroare de cel mult 0, 0 , 01 cu o probabilitatea de 0, 0 , 7.
≈
Exercit¸iul ¸iul 8.5.4.3. 8.5.4.3. Se arunc˘ arunc˘ a 1000 1000 zaru zaruri ri.. Se note noteaz az˘ a˘ cu S suma tuturor tuturor zarurilor. zarurilor. Determinat Determinat¸i ¸i n = P (3500 P (3500 S 4000 40 00)) ¸si si m = P (4000 P (4000 S 6000). 6000). Care num˘ar ar este mai mare, n sau m?
≤ ≤
≤ ≤
˘ T PROBABILIT A ¸ I
132
8.5. 8.5.5. 5.
Testu estull 5
Exercit¸iul ¸iul 8.5.5.1. 8.5.5.1. a) Teorema celor 3σ. 3σ. Deducet¸i ¸i o teorem˘a analoag˘ a 2σ. n 1 b) Fie densitatea de probabilitate pn (x) = . π x2 + n2 p f n variabila ariabila aleatoare aleatoare cu densitatea densitatea de probabilitat probabilitatee pn . f n 0?
·
→
Exercit¸iul ¸iul 8.5.5.2. 8.5.5.2. Fie f 1 , . . . , f1000 variabile aleatoare independente, definite (Ω, (Ω, , ). Presupunem c˘a variabilele aleatoare au aceia¸si si densitate de probabilitate p( p(x), a c˘arui arui grafic este reprezentat reprezenta t ˆın figura 8.5.
K P
Figura 8.5: Densitatea de probabilitate. a) Determinat Determinat¸i ¸i m ¸si si σ, media ¸si si abaterea medie p˘atratic˘ atratic˘a a acestor variabile aleatoare. b) Not˘ am am cu S = f 1 + . . . f1000 . Determinat¸i ¸i P ( P (S 1350). 1350).
≤
Observat¸ia ¸ia 8.5.1. 8.5.1. Problema de mai sus poate fi privit˘a astfel: f 1 , f 2 , . . . f1000 sunt sunt conturi conturi ”independen ”independente” te” cu densitatea densitatea de probabilitate probabilitateaa p(x). Fiecare Fiecare cont este ˆıntr nt re 3 x 7 puncte sau ˆıntre 300 RON ¸si si 700 RON, distribuite dup˘a legea p( p(x). S˘ a se determine probabilitatea ca suma conturilor sa fie ˆın ın situat¸ia ¸ia S 1350 puncte sau S 135000 RON. RON.
− ≤ ≤ ≤
−
≤
K P
Exercit¸iul ¸iul 8.5.5.3. 8.5.5.3. Fie (f (f n ) un ¸sir sir de variabile aleatoare simple pe p e (Ω, (Ω , , ) a 1 0 1 c˘ aror aror repartit¸ie ¸ie este: . 1 2 1 1 n n n a) Calculat¸i ¸i mn ¸si si σn , mediile ¸si si abateri a baterile le medii m edii p˘atratice atratice ale lui f n . p b) Decidet¸i ¸i dac˘a f n 0.
− →
−
133
TESTE
8.5. 8.5.6. 6.
Testu estull 6
→ p
Exercit¸iul ¸iul 8.5.6.1. 8.5.6.1. a) Definit¸i ¸i convergent¸a ¸a ˆın ın probabi prob abilit litate ate,, f n f. b) Se consider˘a (f n ), un ¸sir sir de variabile variabile aleatoare care au densitatea de probabilitate pn , acestea avˆand and graficul din figura 8.6.
Figura 8.6: Densitatea de probabilitate.
→ p
Decidet¸i ¸i dac˘a f n 0. c) Aceia¸si si ˆıntrebare ca la punctul b) dac˘a pn are graficul din figura 8.7.
Figura 8.7: Densitatea de probabilitate.
Exercit¸iul ¸iul 8.5.6.2. 8.5.6.2. Cˆa¸ a¸stigul stigul zilnic al unui juc˘ator ator la rulet˘a este repartizat uniform ˆın intervalul [ 45 45,, 55] 55].. Care este probabilitatea ca el s˘a cˆa¸ a¸stige sti ge 1000 10 00 euro eu ro ˆın 100 zile?
−
˘ T PROBABILIT A ¸ I
134
Exercit¸iul ¸iul 8.5.6.3. 8.5.6.3. Probabilitatea de cˆa¸ a¸stig sti g la rulet˘ rul et˘a este 0, 0, 45 45.. Presupunem c˘a la fiecare joc cˆa¸ a¸stiga˘ sau pier pierde de 1 euro. euro. Cˆ ate ate jocuri trebuie jucate astfel ˆıncˆat a t cu probabilitatea de 0, 0, 5 cˆa¸ a¸stigul stigul cazinoului cazino ului s˘a fie de cel put¸in ¸in 1000 euro?
8.6.
Cˆ ateva ateva distribut distrib ut¸ii ¸ii importante
8.6. 8.6.1. 1.
Repa Repart rtit it¸ii ¸ii continue
Vom prezenta o serie de distribut¸ii ¸ii continue precum ¸si si principale prin cipalele le lor propriet˘ proprie t˘at a¸i. ¸ti. Repartit¸ia ¸ia norm no rmal al˘ ˘ a Definit¸ia ¸ia 8.6.1. 8.6.1. (Repartit¸ia ¸ia normal˘ normala). a˘ ). Vom spu spune ne c˘ c˘a variabila ariabila aleatoare aleatoare X 2 urmeaz˘ a o repartit¸ie ¸ie normal˘ normal˘a de parame parametri triii µ ¸si si σ (vom nota acest lucru prin 2 X N ( N (µ, σ )) dac˘a are densitatea de repartit¸ie: ¸ie:
∼
n(x; µ, σ 2 ) =
− 1 √ e σ 2π
(x
− µ)2
2σ 2
,
x
∈ R.
Teorema eorema 8.6.1. 8.6.1. Media ¸si si dispersia unei variabile aleatoare aleatoare X X repartizat˘ a nor2 mal de parametrii µ ¸si si σ este: M ( M (X ) = µ, respectiv D2 (X ) = σ 2 . Teorema eorema 8.6.2. 8.6.2. Dac˘ a X 1 ¸si si X 2 au o repartit ¸ie N ( N (µ1 , σ12 ), respectiv N ( N (µ2 , σ22 ) atunci αX 1 + βX 2 N ( N (αµ1 + βµ 2 , α2 σ12 + β 2 σ22 )
∼
unde α, β
∈ R.
Repartit¸ia ¸ia logno lo gnorm rmal al˘ ˘ a Definit¸ia ¸ia 8.6.2. 8.6.2. (Repartit¸ia ¸ia lognormal˘ lognormal˘ a). a ). Vom sspu pune ne c˘ c˘a variabila ariabila aleatoare aleatoare X (X > 0) urmeaz˘a o repartit¸ie ¸ie lognormal˘a (vom nota acest lucru prin X LN ( LN (µ, σ 2 )) dac˘ a logaritmul ei are densitatea de repartit¸ie ¸ie N ( N (µ, σ 2 ).
∼
ˆ VA DIST C ATEV ATE D ISTRIBU RIBUT T ¸ II IMPORT IMP ORTANT ANTE E
135
Teorema eorema 8.6.3. 8.6.3. Media ¸si si dispersia unei variabile aleatoare aleatoare X X repartizat˘ a log2 normal de parametrii µ ¸si si σ este: 1
2
M ( M (X ) = eµ+ 2 σ , respectiv 2
D2 (X ) = e2µ+σ (eσ
2
− 1). 1).
Teorema eorema 8.6.4. 8.6.4. Dac˘ a variabila variabila aleato aleatoar are e X urmeaz˘ a o reparti epartit ¸t ie lognormal˘ a 2 de parametrii parametrii µ ¸si si σ 0 atunci repartit ¸ia lognormal˘ a standardizat˘ a tinde c˘ atre repartit ¸ia N (0 N (0,, 1). 1).
→
Teorema eorema 8.6.5. 8.6.5. Dac˘ a X a X 1 ¸si X si X 2 au o repartit ¸ie LN ¸ie LN ((µ1 , σ12 ), respectiv LN respectiv LN ((µ2 , σ22 ) atunci: eβ X 1α1 X 2α2 unde β > 0 ¸si si α1 , α2
∼ N ( N (β + β + α1 µ1 + α2 µ2 , α21 σ12 + α22 σ22 )
∈ R.
Repartit¸ia ¸ia unif un ifor orm˘ m˘ a
Definit¸ia ¸ia 8.6.3. 8.6.3. Vom spune c˘a variabila ariabila aleatoare aleatoare X are o repartit¸ie ¸ie uniform˘a ˆın intervalul inte rvalul [a, b] (vom scrie acest lucru prin X U ( U (a, b)) dac˘ a densitatea sa de repartit¸ie ¸ie este:
∼
u(x) =
1
b
− a,
x
∈ [a, b] ¸si
u(x) = 0, 0,
∈
x / [a, b].
Teorema eorema 8.6.6. 8.6.6. Media ¸si si dispersia d ispersia unei variabile varia bile aleatoare X aleatoare X repartizat˘ a U a U ((a, b) : M ( M (X ) =
a+b , 2
respectiv 2
D (X ) =
(b
− a)2 . 12
˘ T PROBABILIT A ¸ I
136 Repartit¸ia ¸ia exponent¸ial˘ a
Definit¸ia ¸ia 8.6.4. 8.6.4. Vom spune despre variabila aleatoare X c˘ X c˘a urmeaz˘a o repartit¸ie ¸ie exponent¸ial˘ ¸ial˘a de parametru λ > 0 (vom scrie acest lucru X Exp( Exp (λ)) dac˘ a densiλt − tatea de repartit¸ie ¸ie este f ( f (t) = λe pentru t 0 ¸si f ( f (t) = 0 pentru t < 0.
∼
≥
Teorema eorema 8.6.7. 8.6.7. Dac˘ a X
∼ Exp( Exp (λ) atunci M ( M (X ) =
1 , λ
D2 (X ) =
1 λ2
M ( M (X r ) =
r! . λr
¸si si
Exercit¸iul ¸iul 8.6.1. 8.6.1. Dac˘ a X ¸ X ¸si si Y sunt variabile aleatoare independente repartizate Exp( Exp (λ) atunci X Exp Ex p(λ). X + X + Y
∼
Repartit¸ia ¸ia gama Definit¸ia ¸ia 8.6.5. 8.6.5. Vom spune despre o variabil˘a aleatoare c˘a urmeaz˘a o repartit¸ie ¸ie gama de parametrii α ¸si si β (vom scrie acest lucru X γ (α, β )) )) dac˘ a are densitatea de repartit¸ie: ¸ie: x 1 f ( f (x) = α xα−1 e− β , 0 x < . β Γ(α Γ(α)
∼
≤
∞
unde Γ este funct¸ia ¸ia lui Euler definit˘a prin formula:
∞
Γ(α Γ(α) =
xα−1 e−x dx.
0
Teorema eorema 8.6.8. 8.6.8. Dac˘ a X independente atunci: a) X + Y γ (α1 + α2 , β ); );
∼
∼ γ (α1, β ) ¸si si Y ∼ γ (α2 , β ) sunt variabile aleatoare
ˆ VA DIST C ATEV ATE D ISTRIBU RIBUT T ¸ II IMPORT IMP ORTANT ANTE E b)
137
X are densitatea de repartit ¸ie: Y h(x) =
Γ(α Γ(α1 + α2 ) α1 −1 x (1 + x)−(α1 +α2 ) , Γ(α Γ(α1 )Γ(α )Γ(α2 )
x
≥ 0.
Generalizˆ and and la n variabile aleatoare, obt¸inem ¸inem repartit¸ia ¸ia Dirichlet.
∼
Teorema eorema 8.6.9. 8.6.9. Dac˘ a X i γ (αi , 1) sunt k + 1 variabile aleatoare independente atunci repartit ¸ia variabilelor aleatoare Y 1 , . . . , Yk +1 date de:
X
j Y j = X 1 +...+ j = 1, 1, . . . , k ...+X k+1 , Y k+1 = X 1 + . . . + X k+1
are forma (repartit ¸ia Dirichlet): k+1
Γ(
k
i=1
αi )
i=1
yiαi −1 (1 k+1
i=1
−
Γ(α Γ(αi )
k
i=1
yi )αk+1−1 ,
unde 0 < y j ¸si si y1 + . . . + yk < 1. n cu 2 orice n ˆıntreg ınt reg p ozit oz itiv iv ¸si si β = 2σ 2 . Repart Repartit it¸ia ¸ia astfel obt¸inut˘ ¸inut˘a se nume¸ste ste repartit reparti t¸ia ¸ia 2 χ cu n grade de libertate. Un alt caz particular important al repartit¸iei ¸iei gama se obt¸ine ¸ine pentru α =
Observat¸ia ¸ia 8.6.1. 8.6.1. Pentru n = 2 repartit¸ia ¸ia χ2 devine repartit¸ia ¸ia exponent exponen¸ial˘ ¸t ial˘ a. a. Teorema 8.6.10. Dac˘ a X i variabila aleatoare:
∼
Y =
N (0 N (0,, σ 2 ) sunt n variabile variabile independen independente te atunci n
i=1
Teorema 8.6.11. Dac˘ a X
X j2
∼ χ2(n).
∼ χ2(n), atunci asimptotic asimptotic X − nσ 2 √ ∼ N (0 N (0,, 1). 1). σ 2 2n
De obicei, obicei, cunatilele cunatilele repartit repartit¸iei ¸iei χ2 (n) sunt tabelate pˆan˘ an˘a la n = 30 30,, deoarce pentru n > 30 este posibil s˘a se foloseasc˘a cunatilele cunatilele repartit¸iei ¸iei N (0 N (0,, 1). 1).
˘ T PROBABILIT A ¸ I
138 Repartit¸ia ¸ia beta
Definit¸ia ¸ia 8.6.6. 8.6.6. Vom spune c˘a variabila aleatoare X urmeaz˘a o repartit¸ie ¸ie beta de parametrii α ¸si si β (vom scrie acest lucru ca X Be( Be (α, β )), )), dac˘ a are densitatea de repartit¸ie: ¸ie:
∼
f ( f (x) =
Γ(α Γ(α+β ) α 1 (1 Γ(α Γ(α)Γ(β )Γ(β ) x
− x)β −1,
−
0
0 < x < 1; α,β > 0 ˆın rest.
¸ia F ( ¸inut˘ a ca o transformare a repartit¸ie ¸ie Definit¸ia ¸ia 8.6.7. 8.6.7. Repartit¸ia F (m, n) este obt¸inut˘ beta: βX Y = unde X Be( Be (α, β ) α(1 X ) cu α =
m 2
∼
−
¸si si β = n2 . Distribut¸ia ¸ia corespunz˘atoare atoare variabilei Y
f ( f (x) =
n Γ( m+ ) 2 m Γ( 2 )Γ( n ) 2
α β
α
yα−1 (1 + αβ y )−(α+β ) ,
0
Teorema 8.6.12. Dac˘ a X
∼ F ( F (m, n) este:
0 < x < 1; α, β > 0 ˆın rest.
∼ χ2(m) ¸si si Y ∼ χ2 (n) atunci:
F =
X/m Y /n
∼ Be( Be (α, β ).
Definit¸ia ¸ia 8.6.8. 8.6.8. Repartit¸ia ¸ia t(n) (t cu n grade de liberatate) este obt¸inut˘ ¸inut˘ a ca o transformar transformaree a repartit repartit¸ie ¸ie F (1; F (1; n) ¸si si anume anu me:: t=
√
X
iar densitatea de repartit¸ie ¸ie corespunz˘atoare atoare este: f ( f (x) =
n+1
) x −n √ Γ(πnΓ( n (1 + n ) πnΓ( ) 2
2
+1 2
,
2
0
Teorema 8.6.13. Dac˘ a X
−∞ < x < ∞; n = 1,1 , 2, 3, . . . ˆın rest.
N (0,, 1) ¸si si Y ∼ χ2 (n) atunci ∼ N (0 t=
X
∼ Y n
t(n).
ˆ VA DIST C ATEV ATE D ISTRIBU RIBUT T ¸ II IMPORT IMP ORTANT ANTE E
139
Repartit¸ia ¸ia Cauchy
C
Definit¸ia ¸ia 8.6.9. 8.6.9. Repartit¸ia ¸ia Cauchy (µ; θ) este definit˘a de densitatea de repartit¸ie: ¸ie: µ 1 f ( f (x) = , x R, µ > 0. π µ2 + (x (x θ)2
−
∈
Observat¸ia ¸ia 8.6.2. 8.6.2. Repartit¸ia ¸ia Cauchy este un exemplu de repartit¸ie ¸ie care nu are momente.
8.6. 8.6.2. 2.
Distr Distrib ibut ut ¸ii ¸ii discrete
Vom prezenta prezenta principalel principalelee distribut distribut¸ii ¸ii discre discrete: te: Bernoul Bernoulli, li, Binomia Binomial˘ l˘a, a, Poisson, Poisson, hipergeometric˘a ¸si si geom ge omet etri ric˘ c˘a. a. Distribut¸ia ¸ia Bernoulli Definit¸ia ¸ia 8.6.10. 8.6.10. Distribut¸ia ¸ia Bernoulli de parametru p este dat˘a de P ( P (X = 1) = p ¸si si P ( P (X = 0) = 1 p, cu p (0, (0, 1). 1).
−
∈
Teorema 8.6.14. Dac˘ a variabila X urmeaz˘ a o distribut ¸ie Bernoulli de para2 metru p atunci media este M ( M (X ) = p iar dispersia D (X ) = p(1 p) p).
−
Distribut¸ia ¸ia binomial˘ a Definit¸ia ¸ia 8.6.11. 8.6.11. Distribut¸ia ¸ia binomial˘ a Bi( Bi (n, p) de parametrii n ¸si si p este dat˘a i n i i − de P ( 0, . . . , n . P (X = i) = C n p (1 p) p) pentru i = 0,
−
Teorema 8.6.15. Dac˘ a variabila X variabila X urmeaz˘ a o distribut distribut ¸ie binomial˘ a Bi a Bi((n, p)atunci 2 media este M ( M (X ) = np iar dispersia D (X ) = np(1 np(1 p) p).
−
Teorema 8.6.16. Dac˘ a X a X 1 , . . . , Xn sunt n variabile aleatoare aleatoare independente reparrepartizate Bernoulli de parametru p atunci variabila mial˘ a Bi( Bi (n, p).
n
i=1
X i urmeaz˘ a o repartit ¸ie bino-
Observat¸ia ¸ia 8.6.3. 8.6.3. Distribut¸ia ¸ia binomial˘ a Bi( Bi (n, p) de parametrii n ¸si si p este modelat˘ a de select ¸ia cu revenire dintr-o urn˘a U ( U (a, b) care cont¸ine ¸ine a bile bil e albe alb e ¸si si b bile negre ¸si si este probabilitatea ca din n extrageri s˘a se obt¸in˘ ¸in˘a k bile albe:
˘ T PROBABILIT A ¸ I
140
P ( P (X = k ) =
− k
a a+b
C nk
n a+b
1
n k
−
.
Distribut¸ia ¸ia Poisson
→∞ →
Distribut ¸ia Poisson se obt¸ine ¸ine din distribut¸ia ¸ia Bi( Bi (n, p) cˆand and n , p 0 ¸si produsul n p = λ este constant. Funct¸ia ¸ia densitate de probabilitate este dat˘a de:
·
λk e−λ , k!
P ( P (X = k) =
k = 0, 0 , 1, 2, . . .
Distribut¸ia ¸ia hiperge hip ergeomet ometic˘ ic˘ a Distribut ¸ia hipergeometric˘ a este a este modelat˘a de o select ¸ie f˘ ar˘ a revenire dintr-o urn˘a U ( U (a, b) care cont¸ine ¸ine a bile bi le albe al be ¸si si b bile negre n egre ¸si si este probabilita probab ilitatea tea ca din n extrageri s˘a se obt¸in˘ ¸in˘a k bile albe: C ak C bn−k P ( P (X = k ) = unde n C an+b
≤ a + b ¸sisi k ≤ a.
Distribut¸ia ¸ia geome geo metr tric ic˘ ˘ a Distribut¸ia ¸ia geometric˘a are funct¸ia ¸ia de densitate de probabilitate dat˘a de: P ( P (X = n) = p(1
− p) p)n , pentru n = 0, 1, . . .
Este numit˘a distribut¸ia ¸ia lui Pascal Pascal (1623-1662) (1623-1662) ¸si si mai este numit˘ numit˘ a distribut¸ia ¸ia primului succes.
8.6.3. 8.6.3.
Calcul Calculul ul nume numeric ric al al cuant cuantile ilelor lor
Vom prezenta dou˘a metode numerice de calcul a cuantilei de ordinul α pentru repartit¸ia ¸ia N (0 N (0,, 1), 1), respectiv repartit¸ia ¸ia χ2 (n). Cuantila repartit¸iei ¸iei normale F˘ ar˘ ar˘ a restrˆangerea angerea generalit˘at a¸ii ¸tii putem presupune c˘a α tehnica dezvolt˘arii ari i ˆın fract fra ct¸ii ¸ii continue, vom obt¸ine: ¸ine: 2
uα = ω
−
i=0 3 i=0
ai ω i , ω= bi ω i
ln
∈ [0, [0, 0, 5]. 5]. Atunci, utilizˆand and
1 , α2
ˆ VA DIST C ATEV ATE D ISTRIBU RIBUT T ¸ II IMPORT IMP ORTANT ANTE E
141
unde constantele ai ¸si si bi sunt:
a0 = 2, 2 , 515517 a1 = 0, 0 , 802853 a2 = 0, 0 , 010328 b0 = 1 b1 = 1, 432877 b2 = 0, 189269 b3 = 0, 001308 001308..
Cuantilele repartit¸iei ¸ie i chi-p˘ chi -p˘ atra at ratt Cuantila de ordinul α a repartit¸iei ¸iei χ2 (n), pentru n > 30 30,, este est e dat˘ da t˘a de: de : hα = n +
√
2 2 2nuα + uα 3
− 23 + O( √ 1n ).
Pentru detalii se poate consulta Abramowitz ¸si si Stegun [1].
142
˘ T PROBABILIT A ¸ I
Partea II
CRIPTOLOGIE
143
Capitolul 9
SISTEMUL DE CIFRARE CEZAR 9.1. 9.1.
Brev Br evia iarr teor teoret etic ic
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 si cheia de cifrare cifrar e este reprezentat˘a de un num˘ar ar ˆıntre ınt regg k 0, . . . , 25 . ˆIn faza de preprocesare, delimitatorul de spat¸iu ¸iu este ignorat sau ˆınlocuit cu caracterul cel mai put¸in ¸in frecvent frecvent din limba ˆın ın care este textul clar (ˆın limba romˆan˘ an˘ a Q). Fiecarei litere din textul surs˘a i se asociaz˘a ordin o rdinea ea lexic l exicogr ografic afic˘˘a x. Pentru cifrare, aceasta aceast a se ˆınlocuie¸ ınlo cuie¸ste ste prin caracterul caracte rul cod (x + k ) mod 26. Pentru Pentru descifrare descifrare se utilizeaz˘a regula invers˘a: a: (x k ) mod 26.
∈{
}
−
−
9.2. .2.
Exerc xercit it ¸ii ¸ii rezolvate
Exercit¸iul ¸iul 9.2.1. 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˘ lit er˘a cu liter˘ lit er˘a, a, ¸inˆ ¸tinˆand and cont de pozit¸ia ¸ia ocupat˘ a de litere lit ere ˆın alfabet: - Literei C ˆıi ıi corespunde corespu nde x = 2, deci se va cifra ˆın (2 + 7) mod 26 = 9 adic˘a J; - Literei R ˆıi corespunde corespu nde x = 16, deci se va cifra ˆın (17 + 7) mod 26 = 24, 24 , adic˘a Y; 145
146
SISTEMUL DE CIFRARE CEZAR
Se continu˘a ˆın mod analog pentru pentru fiecare fiecare liter˘ liter˘a ¸si si ˆın final se obt¸ine ¸ine JYPWA JYPWA VNYHM PL. Exercit¸iul ¸iul 9.2.2. 9.2.2. S˘ a se decripteze mesajul: JAJSN SHWDU YTQTL DXNQJ SHJNX LTQIJ SXXXX algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i ¸i cheia de cifrare. Rezolvare: Se verific˘a, a, pe rˆand, and, toate cheile posibile, pˆan˘ an˘ a cˆand and se obt¸ine ¸ine un text cu sens. ˆIn funct¸ie ¸ie de lungimea cheii, corespondent¸a ¸a dintre literele textului clar ¸si si cele ale textului cifrat devine: x textul clar k = 1 k = 2 k = 3 k = 4 k = 5 ...
0 A B C D E F ..
1 2 3 4 5 6 ... B C D E F G .. ... C D E F G H ... D E F G H I ... E F G H I J ... F G H I J K .. ... G H I J K L .. ... .. .. .. .. .. .. ..
25 Z A B C D E ..
Se observ˘a c˘a sistemul presupune presu pune ˆınlocuirea ınlo cuirea fiec˘ fiec ˘arei arei litere cu litera corespunz˘atoare atoare ˆın alfabetul alfab etul rotit cu k pozit¸ii. ¸ii. Decriptˆ and and fiecare caracter ˆın corespondentul s˘au au clar se obt¸ine, ¸ine, pe rˆand: and: - pentru k = 1 : IZIRM RGVCT XSPSK CWMPI RGIMW KSPHI RWWWW - pentru k = 2 : HYH HYHQL QFUBS WRORJ BVLOH QFHLV JROGH QVVVV - pentru k = 3 : GX GXG GPK PET PETAR VQNQI AUKNG PEGKU IQNFG PUUUU - pentru k = 4 : FWF FWFOJ ODSZQ UPMPH ZTJMF ODFJT HPMEF OTTTT - pentru k = 5 : EVE EVENI NI NCR NCRYP TOLO TOLOG G YSIL YSILE E NCEI NCEIS S GOLD GOLDE E NSSS NSSSS S Dup˘ a o regrupare a literelor, pentru k = 5 se obt¸ine: ¸ine: EVEN IN CRYPTOLOGY SILENCE IS GOLDEN.
9.3. .3.
Exerc xercit it ¸ii ¸ii propuse
Exercit¸iul ¸iul 9.3.1. 9.3.1. Scriet¸i ¸i o aplicat¸ie ¸ie care s˘a implementeze urm˘atoarele atoarele funct¸ii: ¸ii: - cifrarea unui text cu ajutorul algoritmului de cifrare Cezar;
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
147
- descifrarea unui text cifrat cu algoritmul lui Cezar; - decriptarea decriptarea unui text, despre despre care se ¸stie stie c˘a a fost cifrat prin metoda Cezar, prin generarea tuturor solut¸iilor ¸iilor posibile. Verificat¸i ¸i rezultatul pe datele de intrare din exercit¸iile ¸iile urm˘atoare. atoare. Exercit¸iul ¸iul 9.3.2. 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 ¸iul 9.3.3. 9.3.3. S˘ a se cifreze mesajul: CALCULATOR algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 11. R˘ aspuns: NL NLWNF WNF WLEZC. Exercit¸iul ¸iul 9.3.4. 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 ¸iul 9.3.5. 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 ¸iul 9.3.6. 9.3.6. S˘ a se decripteze mesajul: IGQTI GYCUJ KPIVQ PXXXX algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i ¸i cheia de cifrare. R˘ aspuns: GEORGE WASHINGTON, k = 2. Exercit¸iul ¸iul 9.3.7. 9.3.7. S˘ a se decripteze mesajul: UIPNB TKFGG FSTPO algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i ¸i cheia de cifrare. R˘ aspuns: THOMAS JEFFERSON, k = 1.
148
SISTEMUL DE CIFRARE CEZAR
Exercit¸iul ¸iul 9.3.8. 9.3.8. S˘ a se decripteze mesajul: AREYY KYYOS VYUTM XGTZ algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i ¸i cheia de cifrare. R˘ aspuns: ULYSSES SIMPSON GRANT, k = 6. Exercit¸iul ¸iul 9.3.9. 9.3.9. S˘ a se decripteze mesajul: CDTC JCON KPEQ NP algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i ¸i cheia de cifrare. R˘ aspuns: ABRAHAM LINCOLN, k = 2. Exercit¸iul ¸iul 9.3.10. 9.3.10. S˘ a se decripteze mesajul: ECFDEPO ALCEJ algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i ¸i cheia de cifrare. R˘ aspuns: TRUSTED PARTY, k = 11. Exercit¸iul ¸iul 9.3.11. 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 ¸iul 9.3.12. 9.3.12. S˘ a se decripteze mesajul: HADPH QFULS WRJUD ILH algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i ¸i cheia de cifrare. R˘ aspuns: EXAMEN CRIPTOGRAFIE, k = 3. Exercit¸iul ¸iul 9.3.13. 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 ¸iul 9.3.14. 9.3.14. S˘ a se decripteze mesajul: OERWE WGMXC algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i ¸i cheia de cifrare. R˘ aspuns: KANSAS CITY, k = 4.
Capitolul 10
METO METODA DA SUBS SUBSTI TITU TUT T ¸ IEI IEI 10.1 10.1..
Brev Br evia iarr teor teoret etic ic
Operat¸ia ¸ia de cifrare se bazeaz˘a pe o corespondent ¸a ˘ biunivoc˘ a ˆıntr ın tree alfabetul clar ¸si si alfabetul cifrat . Se presu presupun punee c˘a alfabetul clar este format din cele 26 de litere (ˆın limba limb a romˆan˘ an˘a f˘ar˘ ar˘ a diacritice) plus delimitator delimi tatorul ul de cuvˆant ant spat¸iul. ¸iul. Alfabet Alfabetul ul cifrat poate p oate fi format din aceelea¸si si caractere sau doar din cele 26 de litere (ale (a le limbii romˆane) ane) caz ˆın care spat¸iul ¸iul se va ˆınlocui cu cea mai put¸in ¸in frecvent˘a lite li ter˘ r˘a (Q) sau se va ignora pur ¸si si simplu. ˆIn continuare, delimitatorul de cuvˆant ant este ˆınlocuit ınlo cuit cu litera Q. Corespondent¸a ¸a dintre cele dou˘a alfabete alfabete poate fi: - aleatoare; aleatoare; - pseudoaleatoare: plecˆand and de la o parol˘a se construie¸ste ste alfabetul cifrat. ˆIntrucˆat at ˆın cazul corespondent¸ei ¸ei aleatoare lucrurile sunt cˆat at se poate de clare, vom prezenta pe scurt o metod˘a de construct¸ie ¸ie a corespondent¸ei ¸ei ˆın ın cel de-al doilea caz. Pornind de la o parol˘a, a, alfabetul cifrat este construit dup˘a urm˘atorul atorul algoritm: - se scriu, o singur˘a dat˘ a, a, ˆın ordinea aparit¸iei, ¸iei, literele din parol˘a; a; - se scriu literele alfabetului care nu apar ˆın ın parol˘a. Corespondent ¸a ˆıntre cele cel e dou˘ dou ˘a alfabete se realizeaz˘a dup˘ a regula alfabet ˆın alfabet alfa bet dup˘ a o permutare fix˘a σ (aceasta poate fi chiar permutarea identic˘a iar la descifrare se aplic˘a aceela¸si si procedeu dar cu inversa inversa permut˘arii arii σ ). ˆIn funct¸ie ¸ie de forma permut˘arii arii substitut¸ia ¸ia se nume¸ num e¸ste: st e: - direct˘ a (alfabetul cifrat are acela¸si si sens lexicografic cu alfabetul clar, sunt ˆın ın total 26 astfel de substitut¸ii). ¸ii). Exemplu de substitut¸ie ¸ie direct˘a: a: A G
B H
C I
D J
E K
F L
G M 149
H N
I O
J P
K Q
L R
M S
150
METODA MET ODA SUBSTIT SUBS TITUT UT ¸ IEI
N T
O U
P V
Q W
R X
S Y
T Z
U A
V B
W C
X D
Y E
Z F
- invers˘ a (alfabetul cifrat are sens invers invers lexicografic lexicografic cu alfabetul clar, sunt sunt ˆın total 26 de astfel de substitut¸ii). ¸ii). Exemplu de substitut¸ie ¸ie invers˘a: a: A U
B T
C S
D R
E Q
F P
G O
H N
I M
N H
O G
P F
Q E
R D
S C
T B
U A
V Z
J L
K K
L J
M I
W Y
X X
Y W
Z V
Reamintim aici trei exemple celebre (vechile coduri ebraice) de substitut¸ii ¸ii reciproce (dac˘ a litera se substituie cu litera atunci se va substitui cu ) ¸si si anume anu me:: - atbash (prima jum˘atate atate a litere literelor lor alfabetu alfabetului lui se mapeaz˘ mapeaz˘ a ˆın cea de-a dou˘ a jum˘atate atate ˆın ordine invers lexicogr le xicografic˘ afic˘a): a):
X
Y
A Z
B Y
C X
D W
E V
F U
Y
G T
H S
X
I R
J Q
K P
L O
M N
- albam (prima (prima jum˘ atate atate a litere literelor lor alfabetul alfabetului ui se mapeaz˘ mapeaz˘ a ˆın cea de-a dou˘ a jum˘atate ata te ˆın ordine ord ine lexicog lexi cografi rafic˘ c˘a): a): A N
B O
C P
D Q
E R
F S
G H T U
I V
J W
K X
L Y
M Z
A I
B H
C G
D F
J R
K Q
L P
E N
S Z
T Y
U X
V W
- atbah : M O
ˆIn cele ce urmeaz˘a vom presupune faptul c˘a substitut¸ia ¸ia este direct˘a dac˘ a nu este specificat specificat altfel. Definit¸ia ¸ia 10.1.1. 10.1.1. Un cifru cifru de substi substitut tut ¸ie ¸ie liniar de la Zm la Zm (m fiind num˘arul arul de caractere caractere al alfabetului alfabetului surs˘a) a) poate fi descris prin funct¸ia ¸ia f : Zm Zm 1 − definit˘ a prin f ( f (x) = αx + β cu gcd(α, gcd(α, m) = 1, funct¸ia ¸ia de descifrare fiind f (x) = 1 − α (x β ). Cheia de cifrare o formeaz˘a numerele α ¸si si β.
→
−
¸ie are proprietatea de confuzie (ascunObservat¸ia ¸ia 10.1.1. 10.1.1. Cifrul de substitut¸ie derea leg˘aturii aturii dintre textul clar ¸si si textul cifrat).
151
EXERC EX ERCIT IT ¸ II REZO RE ZOL LVATE
10.2 10.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 10.2.1. 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. Permuta Permutarea rea care ca re realizeaz˘ rea lizeaz˘a corespo co respondent ndent¸a ¸a este: 0 25
1 24
2 23
3 22
4 21
5 20
6 19
7 18
8 17
9 16
10 10 15
11 14
12 13
13 12
14 11
15 10
16 9
17 8
18 7
19 6
20 5
21 4
22 3
23 2
24 1
25 0
Rezolvare: Corepondent¸a ¸a dintre alfabetul a lfabetul clar ¸si si alfabetul de cifrare (ˆınainte de realizarea permut˘ arii) arii) este: A T
B E
C S
D A
E R
F I
G M
H B
I C
J D
N J
O K
P Q R S L N O P
T Q
U U
V V
W W
K F X X
L G
M H
Y Y
Z Z
Corepondent¸a ¸a dintre dintre alfabetul clar ¸si si alfabetul de cifrare cifrare dup˘ a realizarea permut˘arii arii este: A Z
B Y
C X
D W
E V
F U
G Q
H P
I O
J N
K L
L K
M J
N H
O G
P F
Q D
R C
S B
T M
U I
V R
W A
X S
Y E
Z T
Mesajul clar se proceseaz˘a astfel ˆıncˆat at spat¸iul ¸iul este ˆınlocuit ınlocuit cu cea mai put¸in ¸in frecvent˘a lite li ter˘ r˘a: a: INQCRIPTOGRAFIEQNICIQOQREGULAQNUQESTEQABSOLUTA. Mesajul cifrat va fi: OHDXC OFMGQ CZUOV DHOXO DGDCV QIKZD HIDVB MVDZY BGKIM Z.
152
METODA MET ODA SUBSTIT SUBS TITUT UT ¸ IEI
Exercit¸iul ¸iul 10.2.2. 10.2.2. S˘ a se descifreze mesajul: DOJMD OVPGF OMATN BXXXX algoritmul utilizat fiind o substitut¸ie ¸ie simpl˘a determinat˘a de cuvˆantul antul cheie PASSWORD. Rezolvare: Corespondent¸a ¸a dintre alfabetul clar ¸si si alfabetul a lfabetul de cifrare este: A P
B A
C S
D W
E O
F R
G D
H B
I C
J E
N I
O P J K
Q L
R M
S N
T Q
U T
V U
W V
K F X X
L G Y Y
M H Z 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 10.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 10.3.1. 10.3.1. Dezvoltat¸i ¸i o aplicat¸ie ¸ie care s˘a simuleze execut¸ia ¸ia funct¸iilor ¸iilor de cifrare/descifrare corespunz˘atoare atoare metodei substitut substitut¸iei. ¸iei. Exercit¸iul ¸iul 10.3.2. 10.3.2. Dezvoltat¸i ¸i o aplicat¸ie ¸ie care s˘a decripteze, prin metoda frecvent¸ei, ¸ei, mesajele cifrate prin metoda substitut¸iei. ¸iei. Exercit¸iul ¸iul 10.3.3. 10.3.3. Dezvoltat¸i ¸i o aplicat¸ie ¸ie care s˘a decripteze, prin metoda atacului cu text clar cunoscut, mesajele cifrate prin metoda substitut¸iei. Exercit¸iul ¸iul 10.3.4. 10.3.4. S˘ a se cifreze mesajul: WEB DESIGN algoritmul utilizat fiind o substitut¸ie ¸ie simpl˘a determinat˘a de cuvˆantul antul cheie BROWSER. BROWSER. R˘ aspuns: VSRWS PDAJ. Exercit¸iul ¸iul 10.3.5. 10.3.5. S˘ a se cifreze mesajul: PUBLIC PUBLIC KEY algoritmul utilizat fiind o substitut¸ie ¸ie simpl˘a determinat˘a de cuvˆantul antul cheie ASYMMETRIC. R˘ aspuns: KQSFC YDEX.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
153
Exercit¸iul ¸iul 10.3.6. 10.3.6. S˘ a se descifreze mesajul: ONCJB DFJPT DCJKN KKQTV TDSXXX algoritmul utilizat fiind o substitut¸ie ¸ie simpl˘a determinat˘a de cuvˆantul antu l cheie che ie CRIP C RIP-TOGRAFIE. R˘ aspuns: FRANKLIN DELANO ROOSEVELT. Exercit¸iul ¸iul 10.3.7. 10.3.7. S˘ a se descifreze mesajul: EKBJO DSZAT NCGPF TJJTP YXXXX algoritmul utilizat fiind o substitut¸ie ¸ie simpl˘a determinat˘a de cuvˆantul antul cheie CRIPTO. R˘ aspuns: JOHN FITZGERALD KENNEDY. Exercit¸iul ¸iul 10.3.8. 10.3.8. Demonstrat¸i ¸i c˘a metoda de cifrare prin substitut¸ie ¸ie este un sist si stem em ˆınchi ın chis. s. Exercit¸iul ¸iul 10.3.9. 10.3.9. S˘ a se cifreze mesajul: PRIVATE KEY algoritmul utilizat fiind o substitut¸ie ¸ie simpl˘a determinat˘a de cuvˆantul antul cheie BUCURESTI. R˘ aspuns: LNAVB PEFEY. Exercit¸iul ¸iul 10.3.10. 10.3.10. S˘ a se descifreze mesajul: LNAVB PEFEY algoritmul utilizat fiind o substitut¸ie ¸ie simpl˘a determi det erminat nat˘˘a de cuvˆantul antu l cheie chei e BUCURESTI. R˘ aspuns: PRIVATE KEY. Exercit¸iul ¸iul 10.3.11. 10.3.11. S˘ a se cifreze mesajul: ASSYMETRIC ENCRYPTION algoritmul utilizat fiind o substitut¸ie ¸ie simpl˘a determinat˘a de cuvˆantul antul cheie BRASOV. Exercit¸iul ¸iul 10.3.12. 10.3.12. S˘ a se descifreze mesajul: BPPYI OQNEA OJANY LQEKJ algoritmul utilizat fiind o substitut¸ie ¸ie simpl˘a determinat˘a de cuvˆantul antul cheie BRASOV. R˘ aspuns: ASSYMETRIC ENCRYPTION.
154
METODA MET ODA SUBSTIT SUBS TITUT UT ¸ IEI
Capitolul 11
SISTEMUL DE CIFRARE PLAYFAIR 11.1 11.1..
Brev Br evia iarr teor teoret etic ic
Sistemul Playfair , propus ˆın ın anul 1854 de Charles Charles Wheatstone Wheatstone dar promova promovatt pentru utilizare de Lordul Playfair, este unul dintre cele mai cunoscute sisteme de cifrare digrafice (transform˘a un grup de 2 litere litere ˆıntr-un ıntr-un grup de alte dou˘ a litere). Acest sistem de cifrare este foarte simplu de folosit ¸si si mult mai sigur decˆat sistemele de substitut substitut¸ie ¸ie monoalfabetice. Descriem ˆın ın continuare modul mo dul de utilizare ˆın cazul alfabetului latin compus din 26 litere. Literele Literele alfabetului A Z sunt trecute ˆıntr-un careu de 5 5 (litera (litera I fiind asimilat˘a literei J ). ). Textul clar este preprocesat astfel ˆıncˆat at acesta s˘a fie compatibil cu matricea de cifrare: delimitatorul de cuvˆant ant este ignorat sau este ˆınlocuit ınlocuit cu cea mai put¸in ¸in frecvent˘a liter˘a, a, litera I este asimilat˘a cu litera J, ¸si si dac˘ da c˘a este cazul, se adaug˘ a o liter˘a la text pentru a avea un num˘ar ar par de digrame. Regula de cifrare este urm˘atoarea: atoarea: i) Dac˘a digrama di grama care se dore¸ do re¸ste ste cifrat˘ c ifrat˘a nu are literele pe aceea¸si si linie sau coloan˘ colo an˘a, a, atunci regula de cifrare este regula regula dreptunghiului , traseul traseul fiind pe vertical˘ vertical˘ a de la cea de-a doua liter˘a a digramei digramei c˘atre atre prima liter˘a. a. Sau, altfel altf el spus, prima litera a perechii cifrate cifrate este aceea care se gaseste gaseste pe aceeasi aceeasi linie cu prima litera a perechii perechii ˆın ın clar. ii) Dac˘ Dac ˘a digr d igrama ama ce se dore¸ dor e¸ste ste cifrat cif rat˘˘a are literele pe p e aceea¸si si linie, atunci se aplic˘a regula: cifreaz˘ a la dreapta, descifreaz˘ a la stˆ st ˆanga ang a . iii) Dac˘a digrama ce se dore¸ste ste cifrat˘a are literele pe aceeia¸si si coloan˘a, a, atunci se aplic˘ a regula: cifreaz˘ a ˆın jos, descifre descif reaz˘ az˘ a ˆın sus. su s.
−
×
Observat¸ia ¸ia 11.1.1. 11.1.1. Dac˘ a o digram˘ digrama˘ apare a pare ˆın textul clar ˆın ordine o rdine invers˘a atunci 155
156
SISTEMUL DE CIFRARE PLAYFAIR
acel ac ela¸ a¸si si lucr lu cru u se va ˆıntˆ ınt ˆampla amp la ¸si si ˆın textul text ul cifrat cif rat.. Observat¸ia ¸ia 11.1.2. 11.1.2. Algoritmul Playfair nu are regul˘a pentru cifrarea literelor duble: digramele ce cont¸in ¸in dou˘a litere identice sunt sparte prin introducerea artificial˘ a a unei alte litere. Observat¸ia ¸ia 11.1.3. 11.1.3. Algoritmul Playfair apare a pare ca o extindere, ˆın sensul reducerii num˘arului arului de tabele rectangulare rectangulare folosite 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 an aliza frecvent¸ei ¸ei digramelor de text clar combinat˘a cu metoda comparat¸iei ¸iei patternurilor din textul cifrat cu patternuri din dict¸ionar. ¸ionar.
11.2 11.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 11.2.1. 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 ¸ine trecˆand and literele din parol˘a o singur˘a dat˘ a ˆın careul de 5 5 iar apoi celelalte litere ale alfabetului alf abetului ˆın ın ordine lexicografic˘a: a:
×
C O B M V
R G D N W
I/ J A H Q X
P F K S Y
T E L U 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): a): SIQINQCRIPTOGRAFIEQTACEREAQESTEQAURQ. Exemplific˘ am pentru fiecare caz cˆate am ate o digram˘a: a: ¸urile I ¸si si S • SI - conform regulii de cifrare se formeaz˘a dreptunghiul cu colt¸urile
parcurs ˆın sensul sensu l IQSP. Textul Textul cifrat ci frat ˆıl constituie const ituie digrama di grama format˘ f ormat˘a din colt¸urile ¸urile care nu apar ˆın ın textul clar, luate conform ordinii de parcurgere: QP. QP.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
157
• QI - ˆıntrucˆ ıntru cˆat at literele sunt pe p e aceea¸si si coloan˘a se aplic˘a regula regu la cifrea cif reaz˘ z˘a ˆın jos, jos , descifr desc ifreaz˘ eaz˘a ˆın sus, obt¸inˆ ¸inˆandu-se andu-se digrama XA ( X este litera situat˘a sub Q ¸si si A este litera situat˘a sub I).
• NQ - ˆıntru ınt rucˆ cˆat at literele sunt situate pe p e aceea¸si si linie se aplic˘a regula cifreaz˘a la dreapta, descifreaz˘a la stˆanga, ang a, obt¸inˆ ¸inˆandu-se andu-se digrama QS(Q este in dreapta lui N ¸si si S este est e ˆın ın dreapta drea pta lui Q).
ˆIn continuare, respectˆand and regulile de cifrare Playfair mesajul cifrat devine: QPXAQ SRIPT CEDGF ETAUI OIGTO FUAUP AUEQI NXXXX. Exercit¸iul ¸iul 11.2.2. 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 si din exercit¸iul ¸iul anterior, fiind format˘a pornind porn ind de la aceea¸si si parol˘ p arol˘a. a. Exemplific˘ am pentru fiecare caz operat¸ia am ¸ia de descifrare pe cˆate ate o digram˘a: a:
• UF - conform regulii de descifrare, se formeaz˘a dreptunghiul cu colt¸uril ¸ur ilee U ¸si si
F. Textul clar ˆıl ıl constituie celelalte 2 colt¸uri, ¸uri, primul caracter al textului clar fiind cel care se g˘ase¸ ase¸ste ste pe aceea¸si si linie cu primul caracter caract er ˆın clar din digram˘ digram ˘a. a. Se obt¸ine ¸ine SE.
• RI - ˆıntrucˆ ıntr ucˆat at literele literele sunt sunt situate situate pe aceea¸ aceea¸si si linie se aplic˘ a regula cifreaz˘a la
dreapta, descifreaz˘a la stˆanga, anga, obt¸inˆ ¸inˆandu-se andu-se digrama CR(R este in stˆanga anga lui R ¸si si R este est e ˆın stˆ st ˆanga anga lui I).
• LE - ˆıntrucˆ ıntr ucˆat at literele sunt pe p e aceea¸si si coloan˘a se aplic˘a regula cifreaz˘a ˆın jos, jo s,
desci de scifr frea eaz˘ z˘a ˆın sus s us,, obt ob ¸inˆ ¸tinˆandu-se andu-se digrama ET (E este litera litera situat˘ situat˘a deasupra deasupra lui L ¸si si T este litera situat˘ situat ˘a deasupra lui E). ˆIn continuare, respectˆand and regulile de descifrare Playfair mesajul cifrat devine: SECRET WRITING.
11.3 11.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 11.3.1. 11.3.1. Scriet¸i ¸i o aplicat¸ie ¸ie care s˘a implementeze urm˘atoarele atoarele funct¸ii: ¸ii: - cifrarea unui text cu ajutorul algoritmului Playfair; - descifrarea unui text cifrat cu algoritmul Playfair; Verificat¸i ¸i rezultatul pe datele de intrare din exercit¸iile ¸iile urm˘atoare. atoare.
158
SISTEMUL DE CIFRARE PLAYFAIR
Exercit¸iul ¸iul 11.3.2. 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 ¸iul 11.3.3. 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 ¸iul 11.3.4. 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 ¸iul 11.3.5. 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 ¸iul 11.3.6. 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 ¸iul 11.3.7. 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 ¸iul 11.3.8. 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 EXE RCIT ¸ II PROPUSE PROP USE
159
R˘ aspuns: GEORGE HERBERT WALKER BUSH. Exercit¸iul ¸iul 11.3.9. 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 ¸iul 11.3.10. 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 ¸iul 11.3.11. 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 ¸iul 11.3.12. 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 ¸iul 11.3.13. 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 ¸iul 11.3.14. 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 12.1..
Brev Br evia iarr teor teoret etic ic
Sistemul de cifrare Hill este o metod˘a de substitut¸ie ¸ie poligrafic˘a bazat˘ a pe calcule efectuate efectu ate ˆın algebra algeb ra mod p. ˆIn faza de preprocesare delimitatorul de spat¸iu ¸iu este ignorat sau ˆınlocuit ınlocuit cu caracterul cel mai put¸in ¸in frecvent frecvent din limba ˆın ın care este textul clar (ˆın limba romˆan˘ 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 ˆınmul ın mult¸iril ¸t irile: e: o prima prima subclasa subclasa are ca regul˘ regul˘ a de 1 − cifrare operat¸ia ¸ia de ˆınmult ınmul ¸ire ¸tire C = MK cu descifrarea M = CK iar a doua subclasa folose¸ fol ose¸ste ste ca regu r egul˘ l˘a de d e cifrare ci frare ˆınmult¸irea ¸irea C = KM avˆ and descifrarea corespunz˘atoare and atoare 1 − M = K C.
×
Observat¸ia ¸ia 12.1.1. 12.1.1. Dac˘ a matricea K este simetric˘a (matricea K ¸si si transp tra nspus usaa ei sunt egale) atunci regulile de cifrare pentru cele dou˘a subclase sunt echivalente. Observat¸ia ¸ia 12.1.2. 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
12.2 12.2..
SISTEMUL DE CIFRARE HILL
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 12.2.1. 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 V
B I
.
Rezolvare: Prin ˆınlocuirea ınlocuirea literelor literelor din cheie cheie cu pozit¸iile ¸iile corespunz˘ corespunz˘ atoare atoare din alfabet (A - 0, B - 1, etc.) se obt¸ine: ¸ine: K=
9 21
1 8
.
Textul clar se sparge ˆın ın blocuri de 2 caractere, caractere, care se cifreaz˘ cifreaz˘ a pe rˆand. a nd. De exemplu, BL corespunde matricii M= Digrama se cifreaz˘a ˆın: C=
1 11
9 1 21 8
1
11
.
mod 26 =
6 11
=
G L
.
Deci, BL se cifreaz˘a ˆın GL. Se continu˘a ˆın mod analog. analo g. ˆIn final se obt¸ine: ¸ine: GLFSS MPBDT HB. Exercit¸iul ¸iul 12.2.2. 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 D
U F
.
Rezolvare: Prin ˆınlocuirea ınlocuirea literelor literelor din cheie cheie cu pozit¸iile ¸iile corespunz˘ corespunz˘ atoare atoare din alfabet (A - 0, B - 1, etc.) se obt¸ine: ¸ine: K=
7 3
20 5
Se determin˘a inversa matricei K mod 26 :
.
163
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
K−1 = det( det(K)−1 K∗ mod 26,unde 26,unde det( det(K)−1 mod 26 = (7 (7 5
· − 3 · 20)−1 mod 26 = (−25)−1 mod 26 = 1
¸si si K∗ =
5 3
−
−20 7
mod 26 =
5 6 23 7
.
S-a obt¸inut: ¸inut: 1
K− =
5 23
6 7
.
Pentru descifrarea perechii JE, se determin˘a matricea linie care cont¸ine ¸ine valorile corespunz˘ atoare atoare din alfabet:
C=
J E
=
9
4
.
Prin Pri n ˆınmul ın mult¸ire ¸t ire cu cheia de descifrare se obt¸ine: ¸ine: M=
9 4
5 6 23 7
mod 26 =
7 4
=
H E .
Deci, JE se descifreaz˘a ˆın HE. HE . Se procedeaz˘a ˆın mod analog pentru toate perechile de cˆate ate 2 caractere cifrate: SH se descifreaz˘a ˆın RB, BJ ˆın ER, etc. ˆIn final, dup˘a efectuarea tuturor calculelor ¸si si regruparea literelor, se obt¸ine: ¸ine: HERBERT CLARK HOOVER.
12.3 12.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 12.3.1. 12.3.1. Scriet¸i ¸i o aplicat¸ie ¸ie care s˘a implementeze funct¸iile ¸iile de cifrare ¸si si descifrare, specifice algoritmului Hill cu p = 26. Verificat¸i ¸i rezultatul pe datele de intrare din exercit¸iile ¸iile urm˘atoare. atoare. Exercit¸iul ¸iul 12.3.2. 12.3.2. S˘ a se cifreze mesajul: COMPLETE AND PROPER PACKAGE. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
N C
T R
.
164
SISTEMUL DE CIFRARE HILL
R˘ aspuns: GIZTL MLCNN MBTML UMDMI AUYC. Exercit¸iul ¸iul 12.3.3. 12.3.3. S˘ a se cifreze mesajul: ESOTERIC ESOTERIC TOPIC OF RESEARCH. RESEARCH. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
B G
Y P
.
R˘ aspuns : ICYXC NUOZQ LMIYD LICES DWHM. Exercit¸iul ¸iul 12.3.4. 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 ¸iul 12.3.5. 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 V
E H
.
R˘ apuns: RONALD WILSON REAGAN. Exercit¸iul ¸iul 12.3.6. 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 X
D C
.
R˘ apuns: RICHARD MILHOUS NIXON. Exercit¸iul ¸iul 12.3.7. 12.3.7. S˘ a se descifreze mesajul: EJPYJ EBIXZ IRUSE ANA.
165
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE Algoritmul utilizat la cifrare este cifrul lui Hill (3 matricea: A B C B C A . C A B
× 3), cheia de cifrare fiind
R˘ apuns: BENJAMIN HARRISON.
Exercit¸iul ¸iul 12.3.8. 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 W
S V
.
R˘ aspuns: FINAL ROUND TRANSFORMATION. Exercit¸iul ¸iul 12.3.9. 12.3.9. S˘ a se descifreze mesajul: NKTNM QZQEY WVDIA CIGMG. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
D K
I B
.
R˘ aspuns: RETRIEVE YOUR BAGGAGE. Exercit¸iul ¸iul 12.3.10. 12.3.10. Demonstrat¸i ¸ i c˘a algor algoritm itmul ul lui lui Hill Hill este este un algor algorit itm m de cifrare cif rare ˆınchis. ınchi s. Exercit¸iul ¸iul 12.3.11. 12.3.11. S˘ a se cifreze mesajul: OPERATIONAL 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 ¸iul 12.3.12. 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 OPERATIONAL RESEARCH. Exercit¸iul ¸iul 12.3.13. 12.3.13. S˘ a se cifreze mesajul: CRYPTOLOGY. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
T S
E T
.
R˘ aspuns : CVWPB KFWCS. Exercit¸iul ¸iul 12.3.14. 12.3.14. S˘ a se cifreze mesajul: NAVAJO CODE. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
L L
Q J
.
R˘ aspuns : NNXXL RMSTR. Exercit¸iul ¸iul 12.3.15. 12.3.15. S˘ a se descifreze mesajul: CVWPB KFWCS. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
T S
E T
.
R˘ aspuns: CRYPTOLOGY. Exercit¸iul ¸iul 12.3.16. 12.3.16. S˘ a se descifreze mesajul: NNXXL RMSTR. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
R˘ aspuns: NAVAJO CODE.
L L
Q J
.
Capitolul 13
SISTEME DE CIFRARE POLIALFABETICE 13.1 13.1..
Brev Br evia iarr teor teoret etic ic
Un sistem de cifrare de tip substitut¸ie ¸ie polialfabetic˘a este generalizarea sistemului de cifrare de substitut¸ie ¸ie monoalfabetic˘ a, fiind compus dintr-un num˘ar a, ar N de alfabete. Fiecare alfabet reprezint˘a o permutare (stabilit˘a ˆın func fu nct¸ie ¸t ie de parol˘a) a) a alfabetului de intrare. intrare. Algoritmul Algoritmul de cifrare const˘ const˘a ˆın substituirea celei de a i a litere m din textul clar cu litera corespunz˘atoare atoare din cel de al i mod N alfabet. Sistemele polialfabetice p olialfabetice sunt u¸sor sor de identificat prin aplicarea analizei frecvent¸elor ¸elor de apatit¸ie ¸ie a literelor literel or ˆın secvent¸e ¸e decimate din textul cifrat. Un exemplu de sistem polialfabetic polialfab etic este algoritmul lui Vigen`ere ere ˆın ın care parola k1 , . . . , kn este folosit˘a periodic pentru a transforma caracterul m j A , . . . , Z din textul clar dup˘a formula: c j = (m ( m j + k j mod n ) mod mo d 26. 26 . Pentru descifrare se folose¸ste ste formula: m j = (c ( c j k j mod n ) mod 26. Atacul sistemelor polialfabetice este similar cu atacul a N sisteme de substitut¸ie ¸ie monoalfabetic˘a. a . Deci Deci,, o proced procedur ur˘˘a de tip divide et impera are o complexitate de Procedura este descris˘ descris˘a ˆın continua cont inuare: re: O(N ) N ). Procedura Intrare: Textul cifrat de lungime M suficient suficient de mare. Ie¸sire: Textul clar corespunz˘ator ator sistemulu sistemuluii de cifrare cifrare polialfabetic. polialfabetic. PASUL 1. Determin˘ a num˘ arul arul de alfabete N . N . PASUL 2. Pentru j = 0 to 4 execut˘a: a: pentru i = 1 to N j execut˘a: a: aplic˘a procedura de reconstruct¸ie ¸ie part¸ial˘ ¸ial˘ a (pe baza frecven¸elor ¸t elor ( j ( j + 1) gramelor) a alfabetelor i , . . . , i + j. PASUL 3. Conform Conform celor N alfabete alfab ete reconstrui rec onstruie¸ e¸ste ste textul te xtul clar. c lar.
−
∈{
−
−
−
167
}
168
SISTEME DE CIFRARE POLIALFABETICE
Observat¸ia ¸ia 13.1.1. 13.1.1. Procedura Procedura descris˘ descris˘ a mai sus are ca parametru implicit de analiz˘a num˘ arul arul maxim de leg˘aturi aturi 4 : astfel, 1 gramele sunt caracterele, 2 gramele sunt dublet¸ii, ¸ii, etc.
−
13.2 13.2..
−
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 13.2.1. 13.2.1. S˘a se cifreze mesajul WINDS OF CHANGE cu ajutorul algoritmului algor itmului Vigen`ere, ere, parola pa rola fiind fi ind FUTURE. F UTURE. Rezolvare: Aplicˆand and cifrarea pentru fiecare caracter al textului clar, t¸inˆ ¸inˆand and cont de pozit¸ia ¸ia acestora ˆın alfabet, se obt¸ine: ¸ine: j 1 2 3 4 5 6 7 8 9 10 11 12 13
m j W I N D S O F C H A N G E
k j(mod6) c j = (m j + k j(mod6) )(mod26 )(mod26)) 22 F 5 (22 + 5)(mod 26) = 1 B 8 U 20 (8 + 20)(mod 26) = 2 C 13 T 19 (13 + 19)(mod 26) = 6 G 3 U 20 (3 + 20)(mod 26) = 23 X 18 R 17 (18 + 17)(mod 26) = 9 J 14 E 4 (14 + 4)(mod 26) = 18 S 5 F 5 (5 + 5)(mod 26) = 10 K 2 U 20 (2 + 20)(mod 26) = 22 W 7 T 19 (7 + 19)(mod 26) = 0 A 0 U 20 (0 + 20)(mod 26) = 20 U 13 R 17 (13 + 17)(mod 26) = 4 E 6 E 4 (6 + 4)(mod 26) = 10 K 4 F 5 (4 + 5)(mod 26) = 9 J
− − − − − − − − − − − − −
− − − − − − − − − − − − −
− − − − − − − − − − − − −
Rezult˘ a textul cifrat: BCGXJ SKWAU EKJ. Exercit¸iul ¸iul 13.2.2. 13.2.2. S˘ a se descifreze mesa jul IHWGZ CIHGO GKAJV OI ¸stiind stiind c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, ere, parola fiind PASSWORD.
Rezolvare: Aplicˆand and descifrarea pentru fiecare caracter al textului cifrat, t¸inˆ ¸inˆand and cont de pozit¸ia ¸ia acestora ˆın alfabet, se obt¸ine: ¸ine:
169
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE j 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
c j I H W G Z C I H G O G K A J V O I
k j(mod8) m j = (c j k j(mod8) )(mod26 )(mod26)) 8 P 15 (8 15)(mod 15)(mod 26) = 19 T 7 A 0 (7 0)(mod 0)(mod 26) = 7 H 22 S 18 (22 18)(mod 18)(mod 26) = 4 E 6 S 18 (6 18)(mod 18)(mod 26) = 14 O 25 W 22 (25 22)(mod 22)(mod 26) = 3 D 2 0 14 (2 14)(mod 14)(mod 26) = 14 O 8 R 17 (8 17)(mod 17)(mod 26) = 17 R 7 D 3 (7 3)(mod 3)(mod 26) = 4 E 6 P 15 (6 15)(mod 15)(mod 26) = 17 R 14 A 0 (14 0)(mod 0)(mod 26) = 14 O 6 S 18 (6 18)(mod 18)(mod 26) = 14 O 10 S 18 (10 18)(mod 18)(mod 26) = 18 S 0 W 22 (0 22)(mod 22)(mod 26) = 4 E 9 0 14 (9 14)(mod 14)(mod 26) = 21 V 21 R 17 (21 17)(mod 17)(mod 26) = 4 E 14 D 3 (14 3)(mod 3)(mod 26) = 11 L 8 P 15 (8 15)(mod 15)(mod 26) = 19 T
− − − − − − − − − − − − − − − − −
− − − − − − − − − − − − − − − − −
− − − − − − − − − − − − − − − − − −
− − − − − − − − − − − − − − − − −
Dupa gruparea gruparea literelor literelor rezult˘ rezult˘a: a: THEODORE ROOSEVELT. ROOSEVELT.
13.3 13.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 13.3.1. 13.3.1. S˘a se cifreze mesajul OPTIMISTIC cu ajutorul algoritmului Vigen`ere, ere, folosind folosi nd parola GOODDAYS. R˘ aspuns: UDHLPIQLOQ. Exercit¸iul ¸iul 13.3.2. 13.3.2. S˘a se cifreze mesajul THANK YOU cu ajutorul algoritmului Vigen`ere, ere, folosind folosi nd parola POLITE. R˘ aspuns: IVLVD CDI. Exercit¸iul ¸iul 13.3.3. 13.3.3. S˘a se cifreze mesajul GOING BACK IN TIME cu ajutorul algoritmului algor itmului Vigen`ere, ere, folosin f olosind d parola pa rola MEMORY. R˘ aspuns: SSUBX ZMGW WE RUQQ. Exercit¸iul ¸iul 13.3.4. 13.3.4. S˘a se cifreze mesajul FAST CARS cu ajutorul algoritmului Vigen`ere, ere, folosind folosi nd parola RADAR.
170
SISTEME DE CIFRARE POLIALFABETICE
R˘ aspuns: WAVT TRRV. Exercit¸iul ¸iul 13.3.5. 13.3.5. S˘a se cifreze mesajul SUITCASE cu ajutorul algoritmului Vigen`ere, ere, folosind folosi nd parola TRIP. R˘ aspuns: LLQIVRAT. Exercit¸iul ¸iul 13.3.6. 13.3.6. S˘a se descifreze descifreze mesajul WIUXGHG WIUXGHG WXGALFYK WXGALFYK ¸stiind stiind c˘a a fost cifrat cu a jutorul algoritmului Vigen`ere, ere, parola fiind TEST. R˘ aspuns: DECENDO DECISMUS. Exercit¸iul ¸iul 13.3.7. 13.3.7. S˘a se descifreze mesa jul UAEGQD OOGAT OOGAT ¸stiind stiind c˘a a fost cifrat cu ajutorul ajuto rul algoritmului Vigen` Vig en` ere, ere, parola fiind TANGO. R˘ aspuns: BARACK OBAMA. Exercit¸iul ¸iul 13.3.8. 13.3.8. S˘a se descifreze mesajul XVLGM OXLDC ¸stiind stiind c˘a a fost cifrat cu a jutorul algoritmului Vigen`ere, ere, parola fiind BRIDE. R˘ aspuns: WEDDING DAY. Exercit¸iul ¸iul 13.3.9. 13.3.9. S˘a se descif descifrez rezee mesajul mesajul IHZSV IHZSV SKIEE SKIEE CHWPU CHWPU ACSH ACSH ¸stii st iind nd c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, ere, parola fiind PARADOX. R˘ aspuns: THIS SENTENCE IS FALSE. Exercit¸iul ¸iul 13.3.10. 13.3.10. S˘a se descifreze mesa jul MYEYS VOJFQ VOJFQ ZA ZAVLL VLL N ¸stiind stiind c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, ere, parola pa rola fiind TRANSILV TRANSILVANIA. R˘ aspuns: THE LAND OF DRACULA. Exercit¸iul ¸iul 13.3.11. 13.3.11. S˘a se cifrez cifrezee mesajul mesajul OPERA OPERATIO TIONAL NAL RESEAR RESEARCH CH cu ajutorul ajuto rul algoritmului Vigen`ere, ere, folosind parola PASSWORD. R˘ aspuns: DPWJW HZRCA DJAGV DGCZ. Exercit¸iul ¸iul 13.3.12. 13.3.12. S˘a se descifreze mesajul DPWJW HZRCA DJAGV DGCZ ¸stii st iind nd c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, ere, parola fiind PASSWORD.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
171
R˘ aspuns: OPERATIONAL OPERATIONAL RESEARCH. Exercit¸iul ¸iul 13.3.13. 13.3.13. S˘a se cifreze mesajul CRIPTOGRAFIE cu ajutorul algoritmului Vigen`ere, ere, folosin f olosind d parola pa rola TEST. R˘ aspuns: VVAIM SYKTJ AX. Exercit¸iul ¸iul 13.3.14. 13.3.14. S˘a se descifreze descifreze mesajul VV VVAI AI MSYK TJAX ¸stiind stiind c˘a a fost cifrat cu a jutorul algoritmului Vigen`ere, ere, parola fiind TEST. R˘ aspuns: CRIPTOGRAFIE.
172
SISTEME DE CIFRARE POLIALFABETICE
Capitolul 14
METO METODA DA TRAN TRANSP SPOZ OZIT IT ¸ IEI IEI 14.1 14.1..
Brev Br evia iarr teor teoret etic ic
Metoda transpozit transpozit¸iei ¸iei asigur˘ asigur˘a, a, ˆın cadrul cadrul sistemelor sistemelor criptografic criptografice, e, realizarea realizarea difuziei fuz iei:: ˆımpr˘ ımp r˘a¸ a¸stierea sti erea proprie pro priet˘ t˘at a¸ilor ¸tilor statistice ale textului clar ˆın textul cifrat. Metoda transpozit¸iei ¸iei ˆımbrac˘ ımbra c˘a mai multe forme: textul este citit ˆ citit ˆıntr-o ınt r-o form˘ fo rm˘a matriceal˘a linie cu linie sau coloan˘a cu coloan˘a, a, se permut˘ a liniile ¸si/sau si/sau coloanele, rezultatul fiind apoi scris linie cu linie sau coloan˘a cu coloan˘ a. a. Spre exemplu, ˆın cazul transpozit¸iei ¸iei coloanelor, textul clar se cite¸ste, ste, linie cu linie, ˆıntr-o form˘a tabelar˘a cu n coloane, acesta fiind scris pe coloane ˆın funct¸ie ¸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 preprocesare delimitatorul delimitatorul de spat¸iu ¸iu este ignorat sau ˆınlocuit ınlocuit cu caracterul cel mai ma i put¸in ¸in frecvent din limba ˆın care este textul clar (ˆın limba romˆan˘ an˘ a Q).
14.2 14.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 14.2.1. 14.2.1. S˘a se cifreze prin metoda transpozit¸iei ¸iei (N (N = 12), 12), pornind de la parola CRIPTOGRAFIE mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR. Rezolvare: Vom construi secvent¸a ¸a numeric˘a de cifrare asociind fiec˘arei arei litere din parol˘ a indicele din ordinea lexicografic˘a: a: astfel literele din parol˘a, a, scrise ˆın ordine lexicografic˘ a sunt: 173
174
METODA MET ODA TRAN T RANSPO SPOZIT ZIT ¸ IEI
1 A
2 C
3 E
4 F
5 G
6 I
7 8 I O
9 P
10 R
11 11 R
12 12 T
deci parola CRIPTOGRAFIE produ produce ce perm permutare utarea: a: 2 10 6 9 12 8 5 11 1 4 7 3. Textul clar este scris ˆıntr-o tabel˘ tab el˘a cu 12 coloane: 2 S G E
10 I R A
6 Q A Q
9 I F E
12 12 N I S
8 Q E T
5 C Q E
11 R T Q
1 I A A
4 P C U
7 T E R
3 O R Q
Deoarece lungimea textului nu este divizibil˘a cu 12 vom completa ultimul rˆand and cu o secvent¸˘ ¸a˘ cunoscut˘a (ˆın acest caz caracterul Q). Textu extull cifrat cifrat se obt¸ine ¸ine citind coloanele tabelei tab elei de cifrare ˆın ordinea indicat˘a de parola numeric˘a: 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 ¸iei N este mai mic˘a decˆat at lungimea parolei atunci se vor ret¸ine ¸ine N caractere caractere din parol˘ a. a.
14.3 14.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 14.3.1. 14.3.1. Scriet¸i ¸i un program care s˘a implementeze funct¸iile ¸iile de cifrare/descifrare specifice specifice metodei transpozit¸iei ¸iei coloanelor. Exercit¸iul ¸iul 14.3.2. 14.3.2. S˘ a se cifreze mesajul: ELECTRIC HOTPLATE printr-o printr-o transformare transformare de tip transpozit transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (2 ( 2, 1, 3). R˘ aspuns: LTCOL EECIH PTERQ TAQ. Exercit¸iul ¸iul 14.3.3. 14.3.3. S˘ a se cifreze mesajul: CERCETARI OPERATIONALE printr-o printr-o transformare transformare de tip transpozit transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (3 ( 3, 1, 2). R˘ aspuns: EEROR IAQRT IPAOL QCCAQ ETNE. ¸iei Exercit¸iul ¸iul 14.3.4. 14.3.4. S˘a se cifreze mesajul CRIPTOGRAFIE prin metoda transpozit¸iei utilizˆ and and permutarea σ = (4, (4, 2, 1, 3). Verificat¸i ¸i rezultatul obt¸inut. ¸inut.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
175
Exercit¸iul ¸iul 14.3.5. 14.3.5. S˘ a se descifreze mesajul: EORSE TOROE LHDEO VT cifrat printr-o transformare de tip transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (2, (2 , 3, 1). R˘ aspuns: THEODORE ROOSEVELT. ROOSEVELT. Exercit¸iul ¸iul 14.3.6. 14.3.6. S˘ a se descifreze mesajul: SFCME TAEAE NLR cifrat printr-o transformare de tip transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (1, (1 , 2, 3). R˘ aspuns: STEFAN CEL MARE. Exercit¸iul ¸iul 14.3.7. 14.3.7. S˘ a se descifreze mesajul: HTZMA VEUII IAL cifrat printr-o transformare de tip transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (2, (2 , 3, 1). R˘ aspuns: MIHAI VITEAZUL. Exercit¸iul ¸iul 14.3.8. 14.3.8. S˘ a se descifreze mesajul: NMTMA STEDI NEINO NT cifrat printr-o transformare de tip transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (2, (2 , 3, 1). R˘ aspuns: SENTIMENT DOMINANT. Exercit¸iul ¸iul 14.3.9. 14.3.9. S˘ a se descifreze mesajul: TDDDR TEAAU EIASN RLCPR cifrat printr-o transformare de tip transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (3, (3 , 1, 2). R˘ aspuns: STANDARDUL DE CRIPTARE. Exercit¸iul ¸iul 14.3.10. 14.3.10. Demonstrat¸i ¸i c˘a algoritmul alg oritmul de cifrare ce utilizeaz˘ util izeaz˘a transpozi trans pozit¸ia ¸t ia este un sistem ˆınchis. Exercit¸iul ¸iul 14.3.11. 14.3.11. S˘ a se cifreze mesajul: CERCETARI OPERATIONALE printr-o printr-o transformare transformare de tip transpozit transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (2 ( 2, 1, 3). R˘ aspuns: EERPAOLCC AORIARTIETNE.
176
METODA MET ODA TRAN T RANSPO SPOZIT ZIT ¸ IEI
Exercit¸iul ¸iul 14.3.12. 14.3.12. S˘ a se descifreze mesajul: EERPAOLCC AORIARTIETNE cifrat printr-o transformare de tip transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (2, (2 , 1, 3). R˘ aspuns: CERCETARI OPERATIONALE. Exercit¸iul ¸iul 14.3.13. 14.3.13. S˘ a se cifreze mesajul: OPERATIONAL OPERATIONAL RESEARCH printr-o printr-o transformare transformare de tip transpozit transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (2 ( 2, 1, 4, 3). R˘ aspuns: PTASC OANER RORAE ILEH. Exercit¸iul ¸iul 14.3.14. 14.3.14. S˘ a se descifreze mesajul: PTASC OANER RORAE ILEH cifrat printr-o transformare de tip transpozit¸ie ¸ie cu ajutorul permut˘arii arii σ = (2, (2 , 1, 4, 3). R˘ aspuns: OPERATIONAL OPERATIONAL RESEARCH.
Capitolul 15
SISTEME MIXTE 15.1 15.1..
Brev Br evia iarr teor teoret etic ic
Sistemele mixte au la baz˘a o cifrare succesiv˘a a mesajului prin metoda substitut¸iei ¸iei ¸si si apoi prin metoda transpozit¸iei ¸iei sau invers. Atacarea sistemul de cifrare se realizeaz˘a de la ultima sa component˘ component˘ a c˘atre atre prima. Remarc˘ am faptul am faptu l c˘a substitut substit ut¸ia ¸ia simpl˘a este comutativ˘a cu operat¸ia ¸ia de transpozit¸ie ¸ie ˆ deci se poate oricˆand and aborda mai ˆıntˆ ai ai substitut¸ia ¸ia ¸si si apoi transpozit¸ia. ¸ia. In cazul utiliz˘arii arii unui sistem polialfabetic, cu num˘ar ar necunoscut de alfabete, recomandarea este ca dup˘a stabilirea, prin metode statistice, a num˘arului arului de alfabete, s˘a se abordeze concomitent identificarea efectiv˘a a alfabetelor ¸si si al transpozit¸iei ¸iei utilizate. ˆIn cazul utiliz˘arii arii unui unui sistem sistem poligrafic (tabele de cifrare) cifrare) ¸si si o transpozit transpozit¸ie ¸ie este recomandabil˘ a o tehnic˘a de tip backtracking.
15.2 15.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 15.2.1. 15.2.1. S˘a se cifreze mesajul GEOMETRIC FIGURE cu ajutorul algoritmului lui Cezar (k (k = 5) ¸si si al transpozit transp ozit¸iei ¸iei σ = (2 ( 2, 1, 3). Rezolvare: Ma Maii ˆıntˆ ınt ai aˆi textul este cifrat cu sistemul Cezar folosind cheia k = 5, deci corespondent¸a ¸a dintre cele 2 alfabete devine: text clar text cifrat
A F
B G
C H
D I
E J
F K
G L
H M
I N
... ...
Astfel se obt¸ine: ¸ine: LJT RJY WNH KNL ZWJ. ZWJ. Apoi, textul obt¸inut ¸inu t se s e a¸ a ¸seaz˘ sea z˘a ˆıntr-o ınt r-o tabel˘ a cu 3 coloane: 177
178
SISTEME MIXTE
2 L R W K Z
1 J J N N W
3 T Y H L J
Textul cifrat se determin˘a citind pe coloane ˆın ordinea indicat˘a de permutare (coloana din mijloc, apoi cea din stˆanga anga ¸si si ˆın final cea din dreapta): dreapta ): JJNNWLRW KZTYHLJ . Exercit¸iul ¸iul 15.2.2. 15.2.2. S˘a se decripteze mesajul urm˘ator: ator: DKVUR UTUBK WFCVG ETGOC XWVWC OCVPQ VUVWG FGHTQ VKUUV KKNKC RKCPQ OQFKC EWVG ¸stiind stiind c˘a a fost cifrat cu ajutorul ajuto rul algoritmului lui Cezar (k = 2) ¸si si supracifrat supraci frat prin metoda transpozit¸iei ¸iei utilizˆand and permutarea permut area (3, (3, 2, 1). Rezolvare: Cum substitut¸ia ¸ia ¸si si transp tra nspozi ozit¸ia ¸tia sunt comutative, comutat ive, putem p utem mai ˆıntˆai ai decripta mesajul folosind Cezar cu cheia k = 2 ¸si si apoi decripta prin metoda transpozit t ranspozit¸iei. ¸iei. Pentru Pentru decriptarea decriptarea mesajului folosind metoda Cezar cu k = 2, fiecare caracter se ˆınlocuie¸ ınlo cuie¸ste ste cu caracterul caract erul situat cu 2 pozit pozi ¸ii ¸tii mai ˆınainte ına inte ˆın alfab alf abet: et: text cifrat text clar
A Y
B Z
C A
D B
E C
F D
G E
H F
I G
... ...
Dup˘ a decriptare, textul devine: BITSP SRSZI UDATE UDATE CREMA VUTUA MATNO TSTUE DEFRO TISST IILIA PIANO MODIA CUTE . Acesta reprezint˘a un text cifrat prin metoda transpozit¸iei. ¸iei. Cum textul are 64 de caractere ¸si si permutarea p ermutarea este de lungime 3, atunci num˘arul 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˘ descresc ˘atoare atoare din permutarea invers˘a σ −1 = (3 ( 3, 2, 1):
179
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE 3 B I T S P S R S Z I U D A T E C R E M A V
2 U T U A M A T N O T S T U E D E F R O T I
1 S S T I I L I A P I A N O M O D I A C U T E
1 2 S U S T T U I A I M L A I T A N P O I T A S N T O U M E O D D E I F A R C O U T T I E
3 B I T S P S R S Z I U D A T E C R E M A V
Dup˘ a rearanjarea rearanjarea coloanelor conform perm p ermut˘ ut˘ arii arii inverse inverse σ −1 se obt¸ine ¸ine tabela din dreapta. Citind pe linii se descoper˘ descoper˘ a textul clar: SUBSTITUTIA SUBSTITUTIA SIMPLA SI TRANSPOZITIA SUNT DOUA METODE DE CIFRARE COMUTATIVE .
15.3 15.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 15.3.1. 15.3.1. Dezvoltat¸i ¸i o aplicat¸ie ¸ie care s˘a implement implementeze eze rutine rutine specifice specifice decript˘arii arii sistemelor mixte compuse din transpozit¸ii ¸ii ¸si si substit subs titut ut¸ii ¸ii simple. Exercit¸iul ¸iul 15.3.2. 15.3.2. Se dau criptograme criptogramele: le: 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 ¸iile de mai jos sunt adev˘arate: arate: a) metoda de cifrare utilizat˘a este o substitut¸ia ¸ia simpl˘a; a; b) metoda de cifrare utilizat˘a este o transpozit¸ie; ¸ie; c) metoda de cifrare este reprezentat˘a de algoritmul lui Cezar; d) nu se poate preciza sistemul criptografic utilizat. Justificat¸i ¸i r˘aspunsul. aspunsul. Decriptat Decriptat¸i ¸i mesajul. R˘ aspuns: a) ¸si si c). Textul clar: SUBSTITUTIA SUBSTITUTIA SIMPLA SI TRANSPOZIT TRANSPOZITIA IA SUNT DOUA METODE DE CIFRARE COMUTATIVE. Exercit¸iul ¸iul 15.3.3. 15.3.3. Se dau criptograme criptogramele: le: 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 ¸iile de mai jos sunt adev˘arate: arate: a) metoda de cifrare utilizat˘a este o substitut¸ia ¸ia simpl˘a; a; b) metoda de cifrare utilizat˘a este o transpozit¸ie; ¸ie; c) metoda de cifrare este reprezentat˘a de algoritmul lui Cezar; d) nu se poate preciza sistemul criptografic utilizat. Justificat¸i ¸i r˘aspunsul. aspunsul. Decriptat Decriptat¸i ¸i mesajul. R˘ aspuns: b). Textul clar: SUBSTITUTIA SUBSTITUTIA SIMPLA SI TRANSPOZITIA TRANSPOZITIA SUNT DOUA METODE DE CIFRARE COMUTATIVE. Exercit¸iul ¸iul 15.3.4. 15.3.4. Cifrat¸i ¸i mesajul SPECIAL PROPERTY folosind algoritmului lui Cezar (k ( k = 13) 1 3) ¸si si transpozit transp ozit¸ia ¸ia dat˘ a de σ = (2, (2 , 4, 3, 1). R˘ aspuns: PCRFVEE RYCLCNBG. Exercit¸iul ¸iul 15.3.5. 15.3.5. Decriptat¸i ¸i mesajul CPKQCG ZGTVTKGOERIH ¸stiind stiind c˘a a fost cifrat cu ajutorul ajuto rul algoritmului lui Cezar ¸si si al unei transpozit transpo zit¸ii. ¸ii. R˘ aspuns: EXAMEN CRIPTOGRAFIE.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
181
Exercit¸iul ¸iul 15.3.6. 15.3.6. Decriptat¸i ¸i mesajul ZGTVTK GOERIHCPKQCG ¸stiind stiind c˘a a fost cifrat cu ajutorul ajuto rul algoritmului lui Cezar ¸si si al unei transpozit transpo zit¸ii. ¸ii. R˘ aspuns: EXAMEN CRIPTOGRAFIE.
182
SISTEME MIXTE
Capitolul 16
GENERATOARE PSEUDOALEATOARE 16.1 16.1..
Brev Br evia iarr teor teoret etic ic
Un registru de deplasare cu feedback const˘a ˆın n locat¸ii ¸ii de memorie de cˆate ate un bit care se ”deplaseaz˘a” a” spre dreapta dreapta ¸si si o funct¸ie ¸ie de feedback care exprim˘ a orice element nou a(t), cu t n, al secvent¸ei ¸ei ˆın funct fun ct¸ie ¸ie de elementele generate anterior a(t n), a(t n + 1), 1), . . . , a( a(t 1). 1). Funct¸ia ¸ia de feedback trebuie s˘a fie nesingular˘a, a, adic˘ a de forma: a(t) = g(a(t 1), 1), . . . , a( a(t n + 1)) a(t n), unde desemneaz˘ a operat¸ia ¸ia SAU exclusiv (XOR). Dac˘a funct¸ia ¸ia de feedback este liniar˘a (se poate implementa doar folosind operat¸ia ¸ia SAU exclusiv) exclusiv) spunem spunem c˘ a generatorul generatorul este un registru registru de deplasare cu feedback liniar (LFSR ( LFSR). ). Altfel, spunem c˘a generatorul generatorul este un registru registru de deplasare cu feedback neliniar (NLFSR ( NLFSR). ). O locat¸ie ¸ie de memorie memori e a registrului regist rului se nume¸ste ste nivel, iar semnalele semna lele binare bina re a(0), (0), a(1), (1), . . . , a(n 1) sunt ˆınc˘arcate arcate ca date init¸iale. ¸iale. Perioada secvent¸ei ¸ei produse depinde atˆat at de num˘arul arul de niveluri, cˆat at ¸si si de detaliile conexiunilor de feedback. Mai exact, perioada maxim˘ a a secvent¸ei ¸ei care poate fi generat˘a de un registru de deplasare cu feedback, avˆ and and n niveluri ¸si si o funct¸ie ¸ie de feedback nesingular˘a este 2n 1, adic˘ a num˘ arul arul maxim de st˘ari ari ˆın ın care se poate afla un registru registru cu n niveluri (se exclude starea nul˘a). a). LFSR-urile LFSR-urile sunt folosite de mult timp pentru teste VSLI, VSLI, comunicat¸ii ¸ii cu spectru distribuit etc. Funct¸ia ¸ia de feedback a unui LFSR are forma:
−
≥
−
−
− −
⊕
−
⊕
−
−
a(t) = c1 a(t unde ci
− 1) ⊕ c2a(t − 2) ⊕ . . . ⊕ cn−1a(t − n + 1) ⊕ a(t − n),
(16.1)
∈ {0, 1}. Conexiunea de feedback a unui LFSR poate fi exprimat˘ exprimat˘ a printr-un 183
184
GENERATOARE PSEUDOALEATOARE
polinom de feedback: f ( f (X ) = 1 + c1 X + X + c2 X 2 + . . . + cn−1 X n−1 + X n , cu nedeterminata X . Acest polinom decide p erioada erioada ¸si si comportarea statistic˘ a a secvent¸ei ¸ei de ie¸sire. sire. Pentru a preveni o secvent¸˘ ¸a˘ de ie¸sire sire trivial˘ trivial ˘a, a, trebuie ca starea ,,zero peste tot” s˘a nu fie stare init¸ial˘ ¸ial˘a. a . De exem exempl plu, u, dac˘ dac˘a un LFSR cu patru niveluri niveluri are polinomul polinomul de feedback: feedback: f ( f (X ) = 1 + X + X + X 2 + X 3 + X 4 , dependent de starea init¸ial˘ ¸ial˘ a, atunci el va genera una din secvent¸ele a, ¸ele de perioad˘a 5. a) 1111011110 . . . , b) 1000110001 . . . , c) 0100101001 . . . , Sau, alt exemplu, exemplu , dac˘a LFSR are polinomul de feedback dat de f ( f (X ) = 1 + X + X + 4 X , atunci el genereaz˘a o singur˘a secvent¸˘ ¸a˘ netrivial˘a de perioad˘a 15 15,, cu cea mai bun˘ a statistic˘ statistic˘ a pe care o astfel de secvent¸˘ ¸a˘ o poate avea: 101100100011110 . . . Pentru a garanta cea mai mare perioad˘a posibil˘a 2n 1, polinomul de feedback f ( f (X ) al LFSR-ului LFSR-ului trebuie s˘a fie primitiv . Aceasta ˆınsemn˘ ınsemn ˘a c˘a f ( f (X ) trebuie ales T astfel ˆıncˆat at cel mai mic num˘ar ar ˆıntreg pozitiv p ozitiv T pentru care X 1 este divizibil cu n f ( f (X ) s˘a fie T = 2 1. Exist˘a algoritmi care testeaz˘a primitivism primitivismul ul unui polinom. Num˘ arul de polinoame primitive de grad n este: arul
−
−
−
Φ(2n 1) N p (n) = , n
−
unde Φ(x Φ(x), cunoscut˘a ca funct ¸ia lui Euler , desemneaz˘a cardinalul de numere naturale mai mici ca x ¸si si relativ prime cu x. Obse Observ rv˘˘am a m c˘a dac˘ a un polinom f ( f (X ) este 1 n primitiv atunci ¸si si polinomul reciproc lui adic˘a X f ( f ( X ) este primitiv. primitiv. Se ¸stie stie c˘a orice polinom primitiv primitiv este ireductibil. ireductibil. Reciproca Reciproca nu este adev˘arat˘ arat˘ a. a . Num˘ Num˘ arul arul de polinoame ireductibile de grad n ˆın algebra algebr a mod p ( p = 2 ) este dat de formula urm˘ atoare: atoare: 1 n N I I (n) = pd µ( ), n d
dn
|
unde µ este funct ¸ia lui M¨ oebius definit˘ oebius definit˘ a ˆın felul f elul urm˘ator ator pentru n =
k
1
dac˘ a
k
i
i pα i : µ(n) = 0
αi > 1, µ(n) = ( 1)k dac˘ a n este produsul a k numere prime distincte distin cte ¸si si
−
185
EXERC EX ERCIT IT ¸ II REZO RE ZOL LVATE µ(1) = 1. Leg˘atura atu ra ˆıntre funct fun ct¸ia ¸ia lui l ui Moebius Moeb ius ¸si si funct¸ia ¸ia lui Euler este dat˘a de: φ(n) = n
dn
|
µ(d) . d
Dac˘ a k este un num˘ ar prim Mersenne , adic˘a k este num˘ar ar prim de forma 2 n 1 unde n este num˘ar ar prim, prim, atunci atunci orice orice polinom polinom ireduc ireductib tibil il de grad grad k (ˆın alge al gebra bra mod 2) este primitiv:
−
N I I (k ) =
1 2n
16.2 16.2..
d
2 µ(
2n
− 1) =
− 1 d|2 −1 d Φ(22 −1 − 1) = N P P (k). 2n − 1 n
n
=
1
n
[ 2 + 22
− 2n − 1
−1 ]
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 16.2.1. 16.2.1. O secvent¸˘ ¸a˘ determinat˘ a de polinomul de feedback feedback 1 + X 3 + X 4 are perioad˘a ma maxi xim˘ m˘a? a? Rezolvare: Not˘ am a m cu α = X mod f ( f (X ) o r˘adacin˘ adacin˘ a a polinomului de feedback: 3 4 1 + α + α = 0. 0 . Succesiv obt¸inem ¸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 24 1, ˆın ın concluzie, polinomul de feedback este primitiv.
−
186
16.3 16.3..
GENERATOARE PSEUDOALEATOARE
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 16.3.1. 16.3.1. Implementat¸i ¸i o rutin˘a de testat primitivism primitivismul ul unui polinom p olinom din Z2 [X ]. Exercit¸iul ¸iul 16.3.2. 16.3.2. O secvent¸˘ ¸a˘ determinat˘ a de polinomul de feedback feedback 1 + X 2 + X 4 are perioad˘a ma maxi xim˘ m˘a? a? R˘ aspuns: Nu. Polinomul nu este ireductibil, deci nu este primitiv. Exercit¸iul ¸iul 16.3.3. 16.3.3. O secvent¸˘ ¸a˘ determinat˘a de polinomul de feedback 1+X 1+ X +X 4 are perioad˘a maxim˘ a? a? R˘ aspuns: Da. Polinomul de feedback este primitiv. Exercit¸iul ¸iul 16.3.4. 16.3.4. O secvent¸˘ ¸a˘ determinat˘a de polinomul de feedback 1+X 1+ X +X 3 are perioad˘a maxim˘ a? a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
X 2
Exercit¸iul ¸iul 16.3.5. 16.3.5. O secvent¸˘ ¸a˘ determinat˘a de polinomul de feedback 1 + X + 3 + X are perioad˘a maxim˘a? a? R˘ aspuns: Nu. Polinomul nu este primitiv.
Exercit¸iul ¸iul 16.3.6. 16.3.6. O secvent¸˘ ¸a˘ determinat˘ a de polinomul de feedback feedback 1 + X 2 + X 5 are perioad˘a ma maxi xim˘ m˘a? a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
X 3
Exercit¸iul ¸iul 16.3.7. 16.3.7. O secvent¸˘ ¸a˘ determinat˘a de polinomul de feedback 1 + X + 4 5 + X + X are perioad˘a maxim˘a? a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
X 3
Exercit¸iul ¸iul 16.3.8. 16.3.8. O secvent¸˘ ¸a˘ determinat˘a de polinomul de feedback 1 + X + 5 + X are perioad˘a maxim˘a? a? R˘ aspuns: Nu. Polinomul nu este primitiv.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
X 2
187
Exercit¸iul ¸iul 16.3.9. 16.3.9. O secvent¸˘ ¸a˘ determinat˘a de polinomul de feedback 1 + X + 3 5 + X + X are perioad˘a maxim˘a? a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
Exercit¸iul ¸iul 16.3.10. 16.3.10. O secvent¸˘ ¸a˘ determinat˘a de polinomul polinomul de feedback 1+ X 2 + X 3 + X 4 + X 5 are perioad˘a maxim˘a? a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
188
GENERATOARE PSEUDOALEATOARE
Capitolul 17
CALCULE ˆIN CORPURI GALOIS 17.1 17.1..
Brev Br evia iarr teor teoret etic ic
Corpul Corpul Galois GF (2 GF (2n ) este definit de un polinom f ( f (X ) Z 2 [X ] de grad n. Elementele Elementele acestui corp sunt polinoame. polinoame. Operat¸iile ¸iil e ˆıntre dou˘ dou ˘a polinoame a(X ) = a0 + a1 X + . . . an X n ¸si si b(X ) = b0 + n n b1 X + . . . bn X din GF (2 GF (2 ) se definesc defi nesc ˆın mo modul dul urm˘ator: ato r: a) a(X ) b(X ) = c(X ), ), ci = (a ( ai + bi ) mod 2; b) a(X ) b(X ) = a(X )b(X ) mod f ( f (X ). n Un element din GF (2 GF (2 ) se poate reprezenta sub forma binar˘a (¸si si apoi hexazecn imal˘ a) a) prin coeficient¸ii ¸ii s˘ai ai : a0 + a1 X + . . . + an X se identific˘a cu an . . . a1 a0 , ai 0, 1 Inversul unui element din GF (2 GF (2n ) se determin˘a cu algoritmul lui Euclid, exemplifica pli ficatt ˆın ın continua cont inuare. re.
∈
⊕ •
∈{ } 17.2 17.2..
Exer Exerci cit¸ii ¸t ii rezolvate
{ }
Exercit¸iul ¸iul 17.2.1. 17.2.1. Care este inversul elementului 45 (reprezentat (reprez entat ˆın format 8 3 hexa) din GF (2 GF (2 ) definit de polinomul f ( f (X ) = 1 + X + X + X 4 + X 8 . Rezolvare: Elementului 45 ˆıi corespunde corespu nde polinomul pol inomul X 6 + X 2 + 1. Pent Pentru ru a afla afla inversul lui 45 modf mod f ((X ) utiliz˘am am algoritmul lui Euclid: 8 4 3 2 X + X + X + X + 1 = X (X 6 + X 2 + 1) + X 3 + X 2 + X + 1, 1, 6 2 3 2 3 2 X + X + 1 = (X (X + X )(X )(X + X + X + X + 1) + 1, 1, plecˆ and and de la ultima ecuat¸ie ¸ie c˘atre atre prima, succesiv obt¸inem: ¸inem:
{ }
{ }
189
CALCULE ˆIN CORPURI GALOIS
190
1 = (X ( X 3 + X 2 )(X )(X 3 + X 2 + X + 1) + X 6 + X 2 + 1 1 = (X ( X 3 + X 2 )(X )(X 2 (X 6 + X 2 + 1) + X 8 + X 4 + X 3 + X + X + 1) + X 6 + X 2 + 1 1 = (X ( X 5 + X 4 + 1)(X 1)(X 6 + X 2 + 1) + (X (X 3 + X 2 + 1)(X 1)(X 8 + X 4 + X 3 + X + X + 1) 6 2 5 4 deci inversul polinomului X + X + 1 este X + X + 1. Utiliz Utilizˆˆand and codificarea hexa ajungem la concluzia c˘ a inversul elementului 45 este 31 .
{ }
{ }
Exercit¸iul ¸iul 17.2.2. 17.2.2. S˘ a se adune elementele 57 ¸si si 83 ˆın corpul cor pul Galois Gal ois GF (2 GF (28 ) definit de polinomul 1 + X + X + X 3 + X 4 + X 8 .
{ } { }
{ } { { }⊕{ } {
}
Rezolvare: Scrierea binar˘a a celor dou˘a elemente este 57 = 01010111 respectiv 83 = 10000011 . Efectuˆ Efectuˆ and and calculele obt¸inem ¸inem 57 83 = 11010100 = D4 .
{ } { { }
}
}
{ } { }
Exercit¸iul ¸iul 17.2.3. 17.2.3. S˘a se ˆınmul ın mult¸easc˘ ¸teasc˘a elementele 57 ¸si si 83 ˆın corpul Galois Galoi s 8 3 4 8 GF (2 GF (2 ) definit de polinomul 1 + X + X + X + X + X . Rezolvare: 57 83 = (X ( X 6 + X 4 + X 2 + X + X + 1)(X 1)(X 7 + X + X + 1) = X 13 + X 11 + X 9 + X 8 + X 6 + X 5 + X 4 + X 3 + 1 mod mod (X (X 8 + X 4 + X 3 + X + X + 1) = X 7 + X 6 + 1 = 11000001 = C 1 .
{ }•{ } } { }
{
17.3 17.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 17.3.1. 17.3.1. Implementat¸i ¸i proceduri pro ceduri de calcul ˆın corp Galois.
{ }
Exercit¸iul ¸iul 17.3.2. 17.3.2. Care este inversul elementului 33 (reprezentat (reprez entat ˆın format 8 3 4 hexa) din GF (2 GF (2 ) definit de polinomul 1 + X + X + X + X + X 8 .
{ }
R˘ aspuns: 6C .
{ }
Exercit¸iul ¸iul 17.3.3. 17.3.3. Care este inversul elementului 12 (reprezentat (reprez entat ˆın format 8 3 4 hexa) din GF (2 GF (2 ) definit de polinomul 1 + X + X + X + X + X 8 .
{ }
R˘ aspuns: AA .
{ }
Exercit¸iul ¸iul 17.3.4. 17.3.4. Care este inversul elementului 31 (reprezentat (reprez entat ˆın format 8 3 4 hexa) din GF (2 GF (2 ) definit de polinomul 1 + X + X + X + X + X 8 .
{ }
R˘ aspuns: 45 .
191
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
{ } { }
Exercit¸iul ¸iul 17.3.5. 17.3.5. Ar˘ atat atat¸i ¸i c˘a elementele 12 ¸si si AA (reprezentate (repreze ntate ˆın format forma t 8 3 hexa) sunt inverse ˆın corpul corp ul Galois Gal ois GF (2 GF (2 ) definit de polinomul 1+X 1+ X + + X + X 4 +X 8 . Exercit¸iul ¸iul 17.3.6. 17.3.6. S˘ a se adune elementele 5 ¸si si 7 ˆın corpul Galois GF (2 GF (24 ) definit de polinomul 1 + X + X + X 4 .
{} {}
{}
R˘ aspuns: 2 .
{} {}
Exercit¸iul ¸iul 17.3.7. 17.3.7. S˘a se ˆınmult ınmu lt¸easc˘ ¸easc˘a elementel elementelee 5 ¸si si 7 ˆın corpul Galois Galoi s 4 4 GF (2 GF (2 ) definit de polinomul 1 + X + X + X .
{}
R˘ aspuns: 8 . Exercit¸iul ¸iul 17.3.8. 17.3.8. Se consider˘a transformarea dat˘a de
g (y) =
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
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
y −1
⊕
0 1 1 0 0 0 1 1
(17.1)
unde y−1 este inversul lui y ˆın corpul Galois GF (2 GF (28 ) definit de polinomul 1 + X + X + X 3 + X 4 + X 8 . Calculat¸i ¸i g (1), (1), g (2), (2), g(3), (3), g(4), (4), g(5). R˘ aspuns: Transformarea indicat˘a ˆın proble pro blem˘ m˘a define¸ste ste tabela de substitut¸ie ¸ie a algoritmului RIJNDAEL. Valorile solicitate (ˆın zecimal) sunt: g(1) = 124, 124, g (2) = 119,, g(3) = 123, 119 123, g(4) = 242, 242, g (5) = 107.
192
CALCULE ˆIN CORPURI GALOIS
Capitolul 18
ALGORITMUL RIJNDAEL STANDARDUL AES 18.1 18.1..
Brev Br evia iarr teor teoret etic ic
Pentru rezolvarea rezolvarea urm˘atoarelor atoarelor exercit¸ii ¸ii plec˘am am de la ipoteza ip oteza cunoa¸sterii sterii standarstanda rdului FIPS 197 - Advanced Encryption Standard compus din patru operat¸ii ¸ii (sumare modulo 2 cu cheia de rund˘a, a, subtitut¸ia ¸ia la nivel de octet, shiftarea liniilor, mixarea coloanelor etc.) ˆın cadrul procesului de transformare a st˘arilor arilor ¸si si din d in generatorul generat orul de chei de rund˘a. a.
18.2 18.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 18.2.1. 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:
cheia de rund˘a fiind:
D4 6F 4F 6C
55 B8 96 33
7E 05 BB 3D
79 79 DE 23
EC 61 4B 85
14 25 75 8C
99 FF 09 37
6A B4 9B A7
Care este ie¸sirea sirea dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si si AddRoundKey? 193
194
ALGORITMUL RIJNDAEL - STANDARDUL AES
Rezolvare: Rutina SubBytes presupune presupune folosirea folosirea urm˘ atorului atorului Sbox:
0 1 2 3 4 5 6 7 8 9 a b c d e f
0 63 ca b7 04 09 53 d0 51 cd 60 e0 e7 ba 70 e1 8c
1 7c 82 fd c7 83 d1 ef a3 0c 81 32 c8 78 3e f8 a1
2 77 c9 93 23 2c 00 aa 40 13 4f 3a 37 25 b5 98 89
3 7b 7d 26 c3 1a ed fb 8f ec dc 0a 6d 2e 66 11 0d
4 f2 fa 36 18 1b 20 43 92 5f 22 49 8d 1c 48 69 bf
5 6b 59 3f 96 6e fc 4d 9d 97 2a 06 d5 a6 03 d9 e6
6 6f 47 f7 05 5a b1 33 38 44 90 24 4e b4 f6 8e 42
7 c5 f0 cc 9a a0 5b 85 f5 17 88 5c a9 c6 0e 94 68
8 30 ad 34 07 52 6a 45 bc c4 46 c2 6c e8 61 9b 41
9 01 d4 a5 12 3b cb f9 b6 a7 ee d3 56 dd 35 1e 99
a 67 a2 e5 80 d6 be 02 da 7e b8 ac f4 74 57 87 2d
b 2b af f1 e2 b3 39 7f 21 3d 14 62 ea 1f b9 e9 0f
c fe 9c 71 eb 29 4a 50 10 64 de 91 65 4b 86 ce b0
d d7 a4 d8 27 e3 4c 3c ff 5d 5e 95 7a bd c1 55 54
e ab 72 31 b2 2f 58 9f f3 19 0b e4 ae 8b 1d 28 bb
f 76 c0 15 75 84 cf a8 d2 73 db 79 08 8a 9e df 16
G˘ asirea octetului din S-box corespunzator octetului din stare se face astfel: pentru asirea octetul D4 se caut˘a ˆın SBox elementul aflat la intersect¸ia ¸ia liniei D cu coloana coloa na 4 ¸si si se substituie substit uie ˆın stare elementul g˘asit asit in Sbox. D4 se va substitu substituii cu 48. Procede Procedeul ul se aplic˘ a similar pentru ceilalt¸i ¸i octet¸i ¸i din stare. Rezultatul aplic˘arii arii rutinei SubBytes se constituie ˆın urm˘atoarea atoarea stare:
48 A8 84 50
48 6C EA 26
FC 6C 90 C3
F3 6B EA 27
B6 B6 1D 26
Rutina ShiftRows act¸ioneaza ¸ioneaza ˆın felul urm˘ator ator asupra st˘arii: arii: prima prima linie r˘amane amane neschimbat˘ a, a, a doua linie se rote¸ste ste la stˆanga anga cu un octet, a treia linie se rote¸ste ste la stˆ anga anga cu doi octet¸i ¸i iar a patra linie se rote¸ste ste la stˆanga anga cu trei octet¸i. ¸i. Dup˘ a aplicarea rutinei ShiftRows, starea va fi urm˘atoarea: atoarea: FC 6B 1D 50
F3 B6 84 C3
B6 A8 90 27
195
EXERC EX ERCIT IT ¸ II REZO RE ZOL LVATE
Rutina MixColum Mi xColumns ns presupune presupun e ˆınmult¸irea ¸irea fiec˘arei arei coloane din stare cu urm˘atoarea atoarea matrice fixat˘a: a:
02 01 01 03
03 02 01 01
01 03 02 01
01 01 03 02
Operat¸iile ¸iile care rezult˘a din ˆınmult ınmu lt¸irea ¸irea matricilor se fac ˆın ın corpul Galois GF(28 ) ¸si si sunt su nt ˆınmu ın mult lt¸iri ¸iri de polinoame modulo polinomul generator al corpului GF(2 8 ) care este h(X ) = X 8 + X 4 + X 3 + X + 1. Observ Observ˘˘am a m c˘a singurele singur ele ˆınmult¸iri ¸iri care apar 8 sunt cele cu 02 0 2 ¸si si 03. 0 3. Inmult¸irea ¸irea cu polinomul 02 in GF (2 GF (2 ) ˆınseam ıns eamn˘ n˘a ˆınmul ın mult¸irea ¸tirea cu polinomul X . Fie f ( f (X ) = b7 X 7 + b6 X 6 + b5 X 5 + b4 X 4 + b3 X 3 + b2 X 2 + b1 X + b0 un polinom din GF (2 GF (28 ). S˘a vedem ce presupune presupun e ˆınmult¸irea ¸irea 02 f ( f (X ) adic˘a X f ( f (X ): ):
∗
∗
X f ( f (X ) = b7 X 8 + b6 X 7 + b5 X 6 + b4 X 5 + b3 X 4 + b2 X 3 + b1 X 2 + b0 X (modm ( mod m(X )), )),
∗
unde m(X ) este polinomul generator m(X ) = X 4 + X 3 + X +1 X +1 al corpului Galois 8 GF(2 ). Dac˘a b7 = 0, 0 , atunci atu nci polin po linomul omul este est e ˆın forma for ma redus˘ redu s˘a ˆın GF (2 GF (28 ) (are gradul 7). Dac˘ a b7 = 1, atunci: X f ( f (X ) = X 8 mod m(X ) + b6 X 7 + b5 X 6 + b4 X 5 + b3 X 4 + b2 X 3 + b1 X 2 + b0 X.
∗
Deci: X f ( f (X ) = (X 4 + X 3 + X + X + 1 ) + b6 X 7 + b5 X 6 + b4 X 5 + b3 X 4 + b2 X 3 + b1 X 2 + b0 X.
∗
Prin urmare, urma re, ˆınmult ınmul ¸irea ¸t irea cu polinomul X poate fi implementat˘a, a, ˆın cazu ca zull ˆın care ca re bitul cel mai semnificativ semnificativ al polinomului polinomului f ( f (X ) este 1, ca o operat¸ie ¸ie de shift la stˆanga anga 4 cu 1 bit urmat˘a de un XOR cu (00011011), care reprezint˘a polinomul (X (X + X 3 + X + X + 1). Dac˘ a bitul cel mai semnificativ al polinomului f ( f (X ) este 0, atunci ˆınmult¸irea ¸irea presupune doar operat¸ie ¸ie de shift la stˆanga anga cu un bit. Pentru a trece starea curent˘a prin rutina MixColumns, se ˆınmult¸este ¸este pe rˆand and fiecare coloan˘a din stare cu matricea fixat˘a de mai sus. Vom prezenta doar doa r modul de efectuare al ˆınmult¸irii: ¸irii:
02 01 01 03
03 02 01 01
01 03 02 01
01 01 03 02
·
48 6C EA 26
196
ALGORITMUL RIJNDAEL - STANDARDUL AES
Coloana rezultat va cont¸ine ¸ine urm˘atoarele 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 amˆ an de efectuat efectu at ˆınmult¸irile ¸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 10110100. 02 EA = 02 0 2 11101010 = 11010100 00011011 = 11110001. 03 EA = 02 0 2 EA EA = 11110001 11101010 = 00011011. 02 26 = 02 00100110 = 01001100. 03 26 = 02 26 26 = 01001100 00100110 = 01101010. 01101010. Dup˘ a calculele r˘amase, amase, coloana rezultat va fi:
∗ ∗ ∗ ∗ ∗ ∗ ∗
∗ ∗ ⊕ ∗ ∗ ∗ ⊕ ∗ ∗ ⊕
∗
⊕
⊕ 01101100 =
⊕ ⊕
⊕
E8 93 81 12
Pentru celelalte coloane din stare se procedeaz˘a similar. Starea rezultat˘a dup˘a aplicarea aplica rea rutinei MixColumns MixColu mns este urm˘atoarea: atoare a:
E8 93 81 12
13 5D 5D C9
7B D0 08 A1
23 71 4C B7
Aplicarea rutinei AddRoundKey presupune o simpl˘a operat¸ie ¸ie de XOR pe fiecare octet din stare cu octet-ul corespunz˘ator ator din cheia de rund˘a. a.
E8 93 81 12
13 5D 5D C9
7B D0 08 A1
23 71 4C B7
⊕
EC 61 4B 85
14 25 75 8C
99 FF 09 37
6A B4 9B A7
=
04 F2 CA 97
07 78 28 45
E2 2F 01 96
49 C5 D7 10
197
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
18.3 18.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 18.3.1. 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:
cheia de rund˘a fiind:
04 F2 CA 97
21 75 17 87
07 78 28 45
E2 2F 01 96
49 C5 D7 10
35 50 62 0B
AC AF 6B 3C
C6 1B F0 9B
Care este ie¸sirea sirea dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si si AddRoundKey? R˘ aspuns: Ie¸sirea sirea din runda 7 este:
B7 AA E4 C5
1D 25 2D 4F
6C 92 0F 81
94 E5 81 50
Exercit¸iul ¸iul 18.3.2. 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:
cheia de rund˘a fiind:
B7 AA E4 C5
1D 25 2D 4F
6C 92 0F 81
94 E5 81 50
0E F9 03 33
3B A9 61 38
97 06 0A 04
51 1D FA 9F
Care este ie¸sirea sirea dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si si AddRoundKey?
198
ALGORITMUL RIJNDAEL - STANDARDUL AES
R˘ aspuns: Ie¸sirea sirea din runda 8 este:
23 37 8C 3C
13 21 63 DB
AA C0 C6 57
2E 03 CB 95
Exercit¸iul ¸iul 18.3.3. 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:
cheia de rund˘a fiind:
23 E7 8C 3C
13 21 63 DB
AA C0 C6 57
2E 03 CB 95
B1 D4 D8 E2
8A 7D B9 DA
1D 7B B3 DE
4C 66 49 41
Care este ie¸sirea sirea dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si si AddRoundKey? R˘ aspuns: Ie¸sirea sirea din runda 9 este:
7F FE 0E 95
51 A5 66 35
0E 34 7C 47
29 29 EC CB
Exercit¸iul ¸iul 18.3.4. 18.3.4. Executat¸i ¸i o rund˘a complet˘ co mplet˘a, a, pentru p entru algorit a lgoritmul mul RIJNDAEL RIJ NDAEL (AES), cu urm˘atoarele atoarele intr˘ari: ari: pentru starea curent˘a: a:
pentru cheia de rund˘a: a:
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 01
199
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
62 63 7C 63
62 63 7C 63
62 63 7C 63
62 63 7C 62
01 00 1F 00
01 00 1F 00
01 00 1F 01
R˘ aspuns: Ie¸sirea sire a din rund˘ rund ˘a este:
1E 1F 3E 3E
Exercit¸iul ¸iul 18.3.5. 18.3.5. Executat¸i ¸i o rund˘a complet˘ co mplet˘a, a, pentru p entru algorit a lgoritmul mul RIJNDAEL RIJ NDAEL (AES), cu urm˘atoarele atoarele intr˘ari: ari: pentru starea curent˘a: a:
1E 1F 3E 3E
01 00 1F 00
01 00 1F 00
01 00 1F 01
F9 10 AA AA
9B 73 D6 C9
F9 10 AA AB
D6 43 E3 F2
17 67 13 5A
F9 CF 28 E9
pentru cheia de rund˘a: a:
9B 73 D6 C9
R˘ aspuns: Ie¸sirea sire a din rund˘ rund ˘a este:
66 E0 D8 04
¸i o rund˘a complet˘ co mplet˘a, a, pentru p entru algorit a lgoritmul mul RIJNDAEL RIJ NDAEL Exercit¸iul ¸iul 18.3.6. 18.3.6. Executat¸i (AES), cu urm˘atoarele atoarele intr˘ari: ari: pentru starea curent˘a: a:
200
pentru cheia de rund˘a: a:
ALGORITMUL RIJNDAEL - STANDARDUL AES
66 E0 D8 04
D6 43 E3 F2
17 67 13 5A
F9 CF 28 E9
55 DF B4 50
AC CF 1E FA
37 BC C8 33
CE AC 62 98
09 86 08 B5
A1 69 F0 DA
70 61 E1 BF
R˘ aspuns: Ie¸sirea sire a din rund˘ rund ˘a este:
7E 41 45 5E
Exercit¸iul ¸iul 18.3.7. 18.3.7. Executat¸i ¸i o rund˘a complet˘ co mplet˘a, a, pentru p entru algorit a lgoritmul mul RIJNDAEL RIJ NDAEL (AES), cu urm˘atoarele atoarele intr˘ari: ari: pentru starea curent˘a: a:
pentru cheia de rund˘a: a:
7E 41 45 5E
09 86 08 B5
A1 69 F0 DA
70 61 E1 BF
CC 75 F2 DB
60 BA EC 21
57 06 24 12
99 AA 46 8A
D2 19 17 93
A2 96 41 74
C2 E1 0D 64
R˘ aspuns: Ie¸sirea sire a din rund˘ rund ˘a este:
79 89 5E 0D
201
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
Exercit¸iul ¸iul 18.3.8. 18.3.8. Executat¸i ¸i o rund˘a complet˘ co mplet˘a, a, pentru p entru algorit a lgoritmul mul RIJNDAEL RIJ NDAEL (AES), cu urm˘atoarele atoarele intr˘ari: ari: pentru starea curent˘a: a:
pentru cheia de rund˘a: a:
79 89 5E 0D
D2 19 17 93
A2 96 41 74
C2 E1 0D 64
70 2F 8C 35
10 95 60 14
47 93 44 06
DE 39 02 8C
CA AE 92 22
A4 76 49 4B
04 D0 D6 8B
R˘ aspuns: Ie¸sirea sire a din rund˘ rund ˘a este:
A0 F7 36 25
202
ALGORITMUL RIJNDAEL - STANDARDUL AES
Capitolul 19
CRIPTANALIZA CIFRURILOR BLOC 19.1 19.1..
Brev Br evia iarr teor teoret etic ic
Deoarece nu exist˘a o formul˘ a matematic˘ a universal˘a care s˘a poat˘ a fi aplicat˘a ˆın operat¸ia ¸ia de criptanaliz˘a, a, am propus ca exercit¸ii ¸ii la acest capitol modific˘ari ari ale unor algorit algo ritmi mi de cifrur cifrurii bloc consacra consacrate. te. Sunt Sunt date date o serie serie de indica indicatt¸ii ¸ii precedate de o scurt˘a descriere a algoritmilor propriu-zi¸si. si.
19.2 19.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 19.2.1. 19.2.1. Studiat¸i ¸i urm˘atorele atorel e simplific˘ sim plific˘ari ari ale a le algorit a lgoritmului mului RC5: RC5 : -RC5 cu 8 iterat¸ii ¸ii dar f˘ar˘ ar˘ a rotat¸ii; ¸ii; -RC5 cu 8 iterat¸ii ¸ii iar num˘arul arul de rotat¸ii ¸ii egal cu num˘arul arul de iterat¸ii. ¸ii. R˘ aspuns. ˆIn cele ce urmeaz˘a facem o scurt˘a descriere a cifrului RC5 cu r iterat¸ii. ¸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. ¸i. Operat¸ia ¸ia de cifrare cifrar e folose¸ f olose¸ste ste 2r +2 chei dependente de cuvintele pe 32 bit¸i ¸i S 0 , S 1 , S 2 , . . . , S2 r+2 unde r este num˘arul arul de iterat¸ii. ¸ii. Pentru cifrare blocul de date se ˆımparte ˆın dou˘a p˘art art¸i ¸ i de 32 bit¸i ¸i notate cu L respectiv R (RC5 face apel la codificarea little-endian pentru ˆımpachetarea ımpachet area octet octe ¸ilor ¸tilo r ˆın cuvinte: cuvi nte: primul octet se transform˘a ˆın cele mai put¸in ¸in semnificative pozit¸ii ¸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˘ execut˘a: a:
⊕ R) << R) R ) + S 2i , ⊕ L) << L) L ) + S 2i+1 . Ie¸sirea si rea const co nst˘˘a ˆın registrele registre le L ¸si si R. Simbolul ⊕ are semnificat¸ia ¸ia sume sumeii mod 2, simbolul << semnific˘ semn ific˘a rotire rot ire circu c ircular lar˘˘a ¸si si ˆın fine simbolul simbol ul + are a re semnificat semnific at¸ia ¸ia sumei mod 32 2 . Operat¸ia ¸ia de decriptare este similar˘a (intervin operatorii ⊕, >> ¸si si −). Modul de L = ((L (( L R = ((R (( R
construct¸ie ¸ie al secvent¸ei ¸ei S (care deriv˘a din cheie) nu este esent¸ial ¸ial ˆın cadrul acestui acestu i exercit¸iu. ¸iu. Dac˘ a set˘am am num˘ arul arul de iterat¸ii ¸ii r = 8 ¸si si nu facem nici un fel de rotat¸ii ¸ii atunci pentru i = 1, . . . , 8 se execut˘a: a:
L = (L (L R = (R
⊕ R) + S 2i, ⊕ L) + S 2i+1.
Algoritmul Algori tmul astfel setat nu ˆındepline¸ ındepl ine¸ste ste criteriul criteri ul de avalan¸s˘ s˘a strict˘a (schimbarea unui bit ˆın blocul blo cul de text t ext clar produce, prod uce, ˆın medie, medi e, schimb˘ari ari de 50% la ie¸sire). sire). Schema de mai sus permite atacul cu ajutorul tehnicii criptanalizei liniare pentru aflarea lui S, deci a cheii efective. Dac˘ a set˘am am num˘ arul arul de iterat¸ii ¸ii r = 8 ¸si si num˘ num˘arul arul de rotat¸ii ¸ii egal cu r atunci pentru i = 1, 1 , . . . , 8 se execut˘a: a:
L = (( ( (L R = ((R ((R
⊕ R) << 8) + S 2i, ⊕ L) << 8) + S 2i+1.
Algoritmul Algori tmul astfel setat nu ˆındepline¸ ındepli ne¸ste ste criteriul criteri ul de avalan¸s˘ s˘a strict˘a. a . Sche Schema ma de mai sus permite atacul cu ajutorul tehnicii criptanalizei diferent¸ial/liniare ¸ial/liniare pentru aflarea lui S. ¸i urm˘atorele atorel e simplific˘ simp lific˘ari ari ale al e algoritmulu alg oritmuluii DES: DES : Exercit¸iul ¸iul 19.2.2. 19.2.2. Studiat¸i -DES cu 12 iterat¸ii ¸ii dar f˘ar˘ ar˘ a aplicat¸iile ¸iile S ; -DES cu 4 iterat¸ii; ¸ii; -DES cu 6 iterat¸ii. ¸ii. R˘ aspuns. Cifrul bloc DES (proiectat ˆın 1977) este sub controlul unei chei efective de 56 bit¸i ¸i (cheia de baz˘a este de 64 bit¸i, ¸ i, 8 bit¸i ¸i fiind pentru detect¸ia ¸ia erorilor) iar m˘arimea arimea blocului de date este de 64 bit¸i. ¸i. Textul extul clar este permutat permutat iar apoi este ˆımpart a˘rt¸it ¸it ˆın dou˘ dou a˘ blocuri L ¸si si R de lungime 32 bit¸i. ¸i. Se execut˘a apoi iterativ iterativ operat¸iile ¸iile (pentru i = 1, . . . , n u m˘ marul a ˘rul de iteratii): iteratii ):
Li = Ri , Ri = Li f ( f (Ri−1 , K i ).
⊕
205
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
ˆIn final textul este supus permut˘arii arii inve inverse rse.. Ne concen concentr˘ tr˘ am am asupra descrierii 32 48 32 funct¸iei ¸iei f : Z2 Z2 Z2 . Init¸ial ¸ial blocul R (32 bit¸i) ¸i) este extins cu ajutorul funct¸iei ¸ iei E la un bloc pe 48 bit¸i ¸i care este sumat mod2 cu cheia K (extins˘a la 48 bit¸i ¸i cu ajutorul algoritmului de producere a subcheilor). Opt aplicat¸ii ¸ii S : Z62 Z42 produc prod uc o ie¸sire sire pe 32 bit¸i ¸i care este permutat˘a pentru p entru a pro p roduc ducee ie¸ i e¸sirea sire a final fi nal˘˘a dintrd intr-oo iterat¸ie. ¸ie. Dac˘ Dac ˘a apli a plicat cat¸iile ¸iile S sunt fixe (se selecteaz˘ selectea z˘a 4 bit¸i ¸i din 6 ˆın mod fix) atunci se poate aplica tehnica criptanalizei diferent¸iale ¸iale (bit¸ii ¸ii de la ie¸sire sire sunt bit¸ii ¸ii de la intrare (sumat¸i ¸i mod2 cu cheia K ) dar ˆıntr-o ıntr- o alt˘ alt a˘ ordine). Algoritmu Algoritmull DES cu 4 cˆ at at ¸si si cu 6 itera i terat¸ii ¸t ii poate fi spart cu a jutorul jutorul tehnicii atacului cu text clar cunoscut.
×
→
→
19.3 19.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 19.3.1. 19.3.1. Studiat¸i ¸i regula B a algoritmului Skipjack cu 8 iterat¸ii. ¸ii. Exercit¸iul ¸iul 19.3.2. 19.3.2. Ce defect defect are un algo algorit ritm m de cifrar cifraree care care este este ˆınchis ınchis (un algoritm de cifrare se nume¸ste ste ˆınch ın chis is dac˘ a pentru orice chei k1 ¸si si k2 exist˘ a o cheie k3 astf as tfel el ˆıncˆ ın cˆat at pentru orice text clar M avem E k1 E k2 (M ) M ) = E k3 (M ))? M ))? R˘ aspuns. Ca metod˘ a de atac generic˘ a se poate opta pentru p entru cifrarea repetitiv˘ rep etitiv˘a. a. Exercit¸iul ¸iul 19.3.3. 19.3.3. Aplicat¸i ¸i tehnica tehnica criptanalize criptanalizeii diferent diferent¸iale ¸iale ¸si si criptanalize cripta nalizeii liniare asupra algorimului algorimului FEAL. Exercit¸iul ¸iul 19.3.4. 19.3.4. Studiat¸i ¸i tehnica criptanalizei diferent¸iale ¸iale ˆın cazul algoritmului DES cu 16 iterat¸ii. ¸ii. Exercit¸iul ¸iul 19.3.5. 19.3.5. Aplicat¸i ¸i tehnica criptanalizei liniare ˆın cazul algoritmului DES cu 16 iterat¸ii. ¸ii. Exercit¸iul ¸iul 19.3.6. 19.3.6. Avˆ and and la dispozit¸ie ¸ie un cifru bloc E k (.) proiectat¸i ¸i un cifru flux ¸si si vicevers vic eversa. a. Exercit¸iul ¸iul 19.3.7. 19.3.7. Scriet¸i ¸i funct¸ia ¸ia analitic˘ a a celor opt funct¸ii ¸ii de substitut¸ie ¸ie S ale cifrului DES. Exercit¸iul ¸iul 19.3.8. 19.3.8. Fie E M si DK (.) funct¸iile ¸iile de cifrare respectiv descifrare M (.) ¸ ale unui cifru. Care este valoarea lui DK (E K M ))? K (M ))?
206
CRIPTANALIZA CIFRURILOR BLOC
Not˘ a. Descrierea Descrierea algoritmilor algoritmilor RC5, DES, Skipjack ¸si si FEAL poate fi g˘asit˘ asit˘ a ˆın Schneier [67] sau Menezes [47]. Exercit¸iul ¸iul 19.3.9. 19.3.9. Implementat¸i ¸i modalit˘ at a¸i ¸t i de testare a cifrurilor bloc. Exercit¸iul ¸iul 19.3.10. 19.3.10. Implementat¸i ¸i modalit˘ at a¸i ¸t i de generare a tabelelor de substitut¸ie. ¸ie.
··
Exercit¸iul ¸iul 19.3.11. 19.3.11. Fie E ( , ) o funct¸ie ¸ie de cifrare pe m bit¸i ¸i de cheie chei e ¸si si n bit¸i ¸i de date. Care este valoare valoareaa maxim˘a a lui m astf as tfel el ˆıncˆ ınc at aˆt cheia efectiv˘a a cifrului s˘a fie m?
Capitolul 20
˘ A LEMA CHINEZEASCA RESTURILOR 20.1 20.1..
Brev Br evia iarr teor teoret etic ic
Teorema 20.1.1. (Lema chinezeasc˘ a a resturil esturiloror- CRT) CRT) Fie m1 , . . . , mk numere me re ˆıntregi ın tregi cu (mi , m j ) = 1 pentru orice i = j. Atunci sistemul
x
are o solut ¸ie unic˘ a modulo
k
i=1
≡ ai mod mi
mi .
Demonstrat ¸ie. Existent ¸a solut ¸iei. Vom nota k
M =
mi
i=1
¸si si M i =
M pentru orice i = 1, 1, . . . , k . mi
Deoarece (m (mi , m j ) = 1 pentru orice i = j avem (M (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 am k
x=
ai M i N i
i=0
207
˘ A RESTURILOR LEMA CHINEZEASC A
208 ¸si si reducem redu cem mo modul duloo mi avem: k
x=
a j M j N j mod mi pentru orice i.
j=0 j =0
Folosind Folosin d faptul fap tul c˘a (M i , m j ) = 1 pentru i = j obt¸inem: ¸inem: x = ai M i N i mod mi = ai mod mi pentru orice i.
Unicitatea solut ¸iei. Fie x ¸si si x dou˘ a solut¸ii ¸ii atunci x=x
−x
= 0 mod mi pentru orice i
deci x = 0 mod M.
20.2 20.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 20.2.1. 20.2.1. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
≡ ≡ ≡
3 mo d 13 34 mo d 47 2 mo d 51
Rezolvare: Solut¸ia ¸ia sistemului de congruent¸e ¸e este dat˘a de formula: 3
x=
a j M j N j mod M.
j=1 j =1
unde a1 = 3, a2 = 34 34,, a3 = 2 iar m1 = 13 13,, m2 = 47 47,, m3 = 51. Se obse observ rv˘˘a c˘a m1 , m2 ¸si si m3 sunt prime pri me ˆıntre ele. Calcul˘ am M = 13 47 51 = 3116 am 3 11611 ¸si si M 1 = 47 51 = 2397, M 2 = 13 51 = 663 si 1 3 47 = 611. M 3 = 13 Mai departe trebuie calculat inversul lui M j pentru j = 1 , j = 2 ¸si j = 3. 3. 1 − Cu algoritmul lui Euclid extins, se calculeaz˘a N 1 = M 1 mod m1 = 2397−1 mod 13 = 5−1 mod 13 = 8. Similar se calculeaz˘a N 2 = M 2−1 mod m2 = 663−1 mod 47 = 5−1 mod 47 = 19, iar
·
· ·
·
·
209
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
N 3 = M 3−1 mod m3 = 611−1 mod 51 = 50−1 mod 51 = 50. ˆIn acest moment, avem toate datele necesare pentru a calcula solut¸ia ¸ia x a sistemului de congruent¸e: ¸e: x = a1 M 1 N 1 + a2 M 2 N 2 + a3 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 ın tr-adev˘ ar ar aceasta este solut¸ia ¸ia sistemului.
·
20.3 20.3..
·
·
·
·
·
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 20.3.1. 20.3.1. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
≡ ≡ ≡
1 mo d 1 3 2 mo d 1 7 3 mo d 1 1
R˘ aspuns: x = 1158 mod 2431. Exercit¸iul ¸iul 20.3.2. 20.3.2. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
≡ ≡ ≡
3 mo d 1 3 2 mo d 1 1 2 mo d 1 9
R˘ aspuns: x = 211 mod 2717. Exercit¸iul ¸iul 20.3.3. 20.3.3. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
≡ ≡ ≡
3 mo d 5 5 mo d 7 7 mo d 1 1
R˘ aspuns: x = 348 mod 385.
Exercit¸iul ¸iul 20.3.4. 20.3.4. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
R˘ aspuns: x = 991 mod 7429.
x x x
≡ ≡ ≡
5 mo d 1 7 3 mo d 1 9 2 mo d 2 3
˘ A RESTURILOR LEMA CHINEZEASC A
210
Exercit¸iul ¸iul 20.3.5. 20.3.5. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
≡ ≡ ≡
5 mo d 1 1 3 mo d 1 9 2 mo d 2 3
R˘ aspuns: x = 3613 mod 4807. Exercit¸iul ¸iul 20.3.6. 20.3.6. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
≡ ≡ ≡
5 mo d 1 7 3 mo d 2 1 2 mo d 2 3
R˘ aspuns: x = 4119 mod 8211. Exercit¸iul ¸iul 20.3.7. 20.3.7. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
≡ ≡ ≡
4 mo d 21 9 mo d 31 14 mo d 23
R˘ aspuns: x = 6178 mod 14973. Exercit¸iul ¸iul 20.3.8. 20.3.8. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
≡ ≡ ≡
4 mo d 4 7 9 mo d 1 1 3 mo d 2 3
R˘ aspuns: x = 10767 mod 11891. Exercit¸iul ¸iul 20.3.9. 20.3.9. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
≡ ≡ ≡
11 mo d 17 12 mo d 19 13 mo d 23
R˘ aspuns: x = 3394 mod 7429. Exercit¸iul ¸iul 20.3.10. 20.3.10. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
211
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
x x x
≡ ≡ ≡
8 mo d 23 14 mo d 29 17 mo d 31
R˘ aspuns: x = 1319 mod 20677. Exercit¸iul ¸iul 20.3.11. 20.3.11. S˘a se rezolve sistemul de ecuat¸ii: ¸ii:
x x x
R˘ aspuns: x = 15241 mod 15732.
≡ ≡ ≡
15 mo d 23 3 mo d 19 13 mo d 36
212
˘ A RESTURILOR LEMA CHINEZEASC A
Capitolul 21
SISTEMUL DE CIFRARE MERKLE-HELLMAN 21.1 21.1..
Brev Br evia iarr teor teoret etic ic
Algoritmul de cifrare Merkle-Hellman const˘a ˆın codificarea mesa jului ca o solut¸ie ¸ie a unei probleme de tip rucsac pentru care ponderile M 1 ,...,M n constituie cheia
{
de cifrare, cifrar e, ¸si si textului textul ui clar b1 ,...,b n ˆıi corespunde corespu nde textul cifrat
{
}
} n
bi M i .
i=1
Definit¸ia ¸ia 21.1.1. 21.1.1. Un ¸sir sir de ponderi dac˘ a: a:
{M 1,...,M n} se
nume¸ num e¸ste st e supercresc˘ ator
k 1
M k >
−
M i pentru orice k.
(21.1)
i=1
Problema Problema rucsacului rucsacului supercresc˘ supercresc˘ ator ator este u¸sor sor de rezolv rezolvat folosind folosind urm˘ atoarea atoarea schem˘a: a: pentru k = n, ..., ..., 1:
• dac˘a M k < S atunci bk = 1 ¸si S = S − M k ; • altfel bk = 0.0 . Algoritmii de tip rucsac care nu sunt supercresc˘atori nu sunt u¸sor sor de rezolvat ¸si si nu exist˘ exi st˘a niciun algoritm rapid care s˘a rezolv rezolvee proble problema. ma. Singur Singuraa modalita modalitate te cunoscut˘ a de a determina dac˘a bi = 1 const˘a ˆın ın testarea testa rea tuturor tuturo r solut s olut¸iilor. ¸iilor. Cei mai rapizi algoritmi de testare au o complexitate exponent¸ial˘ ¸ial˘ a. a. Algoritmul Merkle-Hellman se bazeaz˘a pe aceast˘a proprietate: cheia privat˘ a este a este ¸sirul sirul ponderil p onderilor or pentru pentr u un rucsac rucsa c supercresc˘ supe rcresc˘ator iar cheia public˘ a este a este ¸sirul sirul ponderi p onderilor lor 213
214
SISTEMUL SISTEMUL DE CIFRARE CIFRARE MERKLE-HELLMA MERKLE-HELLMAN N
pentru pentru un rucsac rucsac care are aceea¸ aceea¸si si solut¸ie, ¸ie, dar nu este supercresc˘ator. ator. Merkle ¸si si Hellman au g˘asit asit o metod˘ meto d˘ a prin care se poate transforma o problem˘a a rucsacului supercresc˘ator ato r ˆıntr-o ıntr- o proble pro blem˘ m˘a normal nor mal˘ a˘ a rucsacului. rucsacului. Tehnica de conversie conversie face apel la aritmetica modular˘a. a. Avˆ and and la dispozit¸ie ¸ie o problem˘a de tip rucsac supercresc˘ator ator (cheia privat˘a) a ) cu ponderile M 1 ,...,M n atunci aceasta aceast a se transform˘ transf orm˘a ˆıntr-o problem˘ problem a˘ de tip rucsac normal˘ a (cheia public˘a) a) cu ¸sirul sirul ponderilor pond erilor
{
}
{mM 1 mod p,...,mM n mod p}, unde m ¸si si p sunt numere naturale prime ˆıntre ele (acestea fac parte din cheia privat˘a) a) ¸si si p >
n
i=1
M i .
Pentru Pentru a cifra un mesaj binar acesta se va ˆımp˘ art art¸i ¸i ˆın blocuri de lungimi egale cu cardinalul mult¸imii ¸imii ponderilor. Cifrarea unui bloc b1 ...bn va fi num˘arul arul natural: n
bi (mM i mod p).
i=1
Pentru descifrare destinatarul mesajului cunoa¸ste ste cheia privat˘ privat˘a: a: ponderile origi1 − nale nal e ¸si si valorile valori le lui m ¸si si p. Acesta va calcula mai ˆıntˆai ai pe m mod p. Se va multiplica 1 − apoi textul cifrat cu m mod p iar dup˘a aceea se va rezolva problema rucsacului supercresc˘ator ator pentru a recupera textul original.
21.2 21.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 21.2.1. 21.2.1. S˘ a se construiasc˘a cheia public˘a pentru algoritmul MerkleHellman reprezentat de cheia privat˘a 2, 3, 6, 13 13,, 27 27,, 52 , modulul p = 105 1 05 ¸si si multimult iplicatorul m = 31. Cifrat¸i ¸i mesajul 101110.
{
}
Rezolvare: Avˆ and and la dispozit¸ie ¸ie cheia privat˘a M 1 ,...,M n , cheia public˘a se obt¸ine ¸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, 105, 31 3 mod 105, 105, 31 6 mod 105, 105, 31 13 mod 105, 105, 31 27 mod 105, 105, 31 52 mod 105 adic˘a 62 62,, 93 93,, 81 81,, 88 88,, 102 102,, 37 .
{ {
·
}
} ·
{
}
·
{ · ·
Cifrarea mesajului 101110 ((m ((m1 ,...,m 6)) se face dup˘a formula
n
i=1
}
·
mi (mM i mod
p), p), adic˘a pe baza baza cheii cheii publice. publice. Rezult Rezultatul atul va fi 62 + 81 + 88 + 102, deci mesajul mesajul cifrat este c = 333.
215
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
Exercit¸iul ¸iul 21.2.2. 21.2.2. S˘ a se descifreze mesajul C = 4608 cifrat cu ajutorul algoritmului Merkle-Hellman cu parametrii n = 9, cheia privat˘a: a:
{1, 2, 5, 10 10,, 19 19,, 40 40,, 98 98,, 179 179,, 355}, modulul p = 1717 17 17 ¸si si multiplicatoru multipli catorull m = 507. Rezolvare: Se determin˘a C m−1 mod 1717 = 4608 507−1 mod 1717 = 4608 657 mod 1717 = 385. 385. Apoi se rezolv˘a problema supercresc˘ sup ercresc˘ atoare atoare a rucsacului de dimensiune 385 : 385 = 355 + 19 + 10 + 1. Mesajul Mesajul clar clar va cont con¸ine t¸ine 1 pe pozit¸iile ¸iile corespunz˘atoare atoare acestor ponderi, deci se obt¸ine ¸ine 100110001.
·
21.3 21.3..
·
·
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 21.3.1. 21.3.1. Dezvoltat¸i ¸i o aplicat¸ie ¸ie care s˘a implementeze funct¸iile ¸iile de cifrare ¸si si descifrare ale sistemului Merkle-Hellman. Exercit¸iul ¸iul 21.3.2. 21.3.2. S˘ a se construiasc˘a cheia public˘a pentru algoritmul MerkleHellman reprezentat de cheia privat˘a 2, 3, 6, 13 13,, 27 27,, 52 , modulul p = 105 1 05 ¸si si multimult iplicatorul m = 31. Cifrat¸i ¸i mesajul 011111.
{
{
}
}
R˘ aspuns: Cheia public˘a 62 62,, 93 93,, 81 81,, 88 88,, 102 102,, 37 , mesajul cifrat c = 401. Exercit¸iul ¸iul 21.3.3. 21.3.3. S˘ a se construiasc˘a cheia public˘a pentru algoritmul MerkleHellman reprezentat de cheia privat˘a 2, 3, 6, 13 13,, 27 27,, 52 , modulul p = 105 1 05 ¸si si multimult iplicatorul m = 31. Cifrat¸i ¸i mesajul 111110.
{
{
}
}
R˘ aspuns: Cheia public˘a 62 62,, 93 93,, 81 81,, 88 88,, 102 102,, 37 , mesajul cifrat c = 426. Exercit¸iul ¸iul 21.3.4. 21.3.4. S˘ a se construiasc˘a cheia public˘a pentru algoritmul MerkleHellman reprezentat de cheia privat˘a 2, 3, 6, 13 13,, 27 27,, 52 , modulul p = 105 1 05 ¸si si multimult iplicatorul m = 31. Cifrat¸i ¸i mesajul 001110.
{
{
}
}
R˘ aspuns: Cheia public˘a 62 62,, 93 93,, 81 81,, 88 88,, 102 102,, 37 , mesajul cifrat c = 271. Exercit¸iul ¸iul 21.3.5. 21.3.5. S˘a se descifreze mesajul 333 cifrat cu ajutorul algoritmului Merkle-Hellman cu urm˘atorii atorii parametrii: parametrii: n = 6, cheia privat˘a 2, 3, 6, 13 13,, 27 27,, 52 , modulul p = 105 10 5 ¸si si multiplicatorul multiplic atorul m = 31.
{
}
216
SISTEMUL SISTEMUL DE CIFRARE CIFRARE MERKLE-HELLMA MERKLE-HELLMAN N
{
}
R˘ aspuns: Cheia public˘a 62 62,, 93 93,, 81 81,, 88 88,, 102 102,, 37 , mesajul clar 101110. Exercit¸iul ¸iul 21.3.6. 21.3.6. S˘a se descifreze mesajul 320 cifrat cu ajutorul algoritmului Merkle-Hellman cu urm˘atorii atorii parametrii: n = 6, cheia privat˘a 2, 5, 14 14,, 23 23,, 56 56,, 125 , modulul p = 228 22 8 ¸si si multiplicatorul multiplic atorul m = 191.
{
}
R˘ aspuns: Cheia public˘a 154 154,, 43 43,, 166 166,, 61 61,, 208 208,, 163 , m−1 mod p = 191, mesajul clar 101000.
{
}
Exercit¸iul ¸iul 21.3.7. 21.3.7. S˘ a se construiasc˘a cheia public˘a pentru algoritmul MerkleHellman cu urm˘atorii atorii parametrii: n = 6, cheia privat˘a 3, 4, 11 11,, 25 25,, 50 50,, 113 , modulul p = 209 20 9 ¸si si multiplicatorul multiplic atorul m = 20. Cifrat¸i ¸i mesajul 27.
{
{
}
}
R˘ aspuns: Cheia public˘a este 60 60,, 80 80,, 11 11,, 82 82,, 164 164,, 170 , mesajul cifrat 425. Exercit¸iul ¸iul 21.3.8. 21.3.8. S˘a se descifreze mesajul 425 cifrat cu ajutorul algoritmului Merkle-Hellman cu urm˘atorii atorii parametrii: n = 6, cheia privat˘a 3, 4, 11 11,, 25 25,, 50 50,, 113 , modulul p = 209 20 9 ¸si si multiplicatorul multiplic atorul m = 20.
{
}
R˘ aspuns: Cheia public˘a 60 60,, 80 80,, 11 11,, 82 82,, 164 164,, 170 , m−1 mod p = 115, mesajul clar 011011.
{
}
Exercit¸iul ¸iul 21.3.9. 21.3.9. S˘ a se construiasc˘a cheia public˘a pentru algoritmul MerkleHellman cu urm˘atorii atorii parametrii: n = 6, cheia privat˘a 3, 4, 11 11,, 26 26,, 58 58,, 106 , modulul p = 238 23 8 ¸si si multiplicatorul multiplic atorul m = 167. Cifrat¸i ¸i mesajul 29.
{
{
}
}
R˘ aspuns: Cheia public˘a este 25 25,, 192 192,, 171 171,, 58 58,, 166 166,, 90 , mesajul cifrat 511. Exercit¸iul ¸iul 21.3.10. 21.3.10. S˘ a se descifreze descifreze mesajul 511 cifrat cu a jutorul jutorul algoritmului algoritmului Merkle-Hellman cu urm˘atorii atorii parametrii: n = 6, cheia privat˘a 3, 4, 11 11,, 26 26,, 58 58,, 106 , modulul p = 238 23 8 ¸si si multiplicatorul multiplic atorul m = 167.
{
}
R˘ aspuns: Cheia Che ia publ pu blic˘ ic˘a 25 25,, 192 192,, 171 171,, 58 58,, 166 166,, 90 , m−1 mod p = 181, mesajul clar 011101.
{
}
Capitolul 22
SISTEMUL DE CIFRARE RSA 22.1 22.1..
Brev Br evia iarr teor teoret etic ic
Algoritmul RSA a fost inventat de c˘atre atre Ron Rives Rivest, t, Adi Shamir Shamir ¸si si Leonard Adleman ¸si si a fost studiat ˆın ın cadrul unor studii criptanalitice extinse. Securitatea RSA-ului se bazeaz˘a pe dificultatea factoriz˘arii arii numerel numerelor or mari. Cheia public˘ public˘ a ¸si cheia privat˘a sunt funct¸ie ¸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 and cheia public˘a. a. Pentru generarea a dou˘a chei (public˘a ¸si si privat˘ pri vat˘a) a) se aleg aleatoriu dou˘a numere prime mari p ¸si si q. Din rat¸ionamente ¸ionamente de securitate p ¸si si q au acela¸si si ordin de m˘arime. 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)(q 1) s˘a fie relativ prime. Utilizˆand and algoritmul extins al lui Euclid vom calcula exponentul privat (de descifrare) d astfel ca
·
−
ed
−
≡ 1 mod ( p ( p − 1)(q 1)(q − 1). 1).
Cu alte cuvinte d
≡ e−1 mod ( p − 1)(q 1)(q − 1). 1).
Remarc˘ am am faptul c˘a d ¸si si n sunt sunt relativ prime. Perechea Perechea (e (e, n) constituie cheia public˘a iar (d,p,q (d,p,q ) este cheia privat˘a. a. Cele dou˘a numere p ¸si si q nu mai sunt necesare la cifrar cifrare/de e/desci scifra frare, re, dar nu vor vor fi niciodat niciodat˘˘a f˘acute acute publice public e (cunoa¸ (cuno a¸sterea sterea lor ¸si 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 binare vom vom alege alege cea mai mare mare putere putere a lui 2 mai mic˘ mic˘a decˆ decˆat at n). Dac Daca˘ p ¸si 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 ¸ia de padding cu zero. Mesajul cifrat C se va obt¸ine ¸ine prin concatenarea mesajelor C i care au a u aproximativ aceeia¸si si lungime. Formula de cifrare va fi: C i M ie mod n.
≡
Pentru a descifra un mesaj se calculeaz˘a: a: M i deoarece C id
≡ ≡
≡ C id mod n,
1)(q −1)+1 ≡ M ied ≡ M ik( p−1)(q k( p−1)(q 1)(q −1) M i M i ≡ M i mod n.
(M ie )d
Observat¸ia ¸ia 22.1.1. 22.1.1. Pentru a evita metodele de factorizare cunoscute numerele p ¸si si q trebuie s˘a fie numere prime tari . Un num num˘˘ar ar prim p se nume¸ste ste num˘ar ar prim tare ta re dac˘ da c˘a: 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 ¸ia de semnare a unui mesaj M se realizeaz˘a prin exponent¸ierea ¸ierea amprentei d H (M ) M ) cu ajutorul cheii private: s = H (M ) M ) mod n. Verificarea semn˘aturii aturii se reale izeaz˘a prin comparat¸ia ¸ia lui H (M ) M ) cu s mod n. ˆIn cazurile practice valoarea lui e este un num˘ar ar relativ mic, deci d are o valoare oare mare. mare. Acest Acest lucru conduce conduce la timpi timpi de rulare rulare diferit diferit¸i ¸i ˆıntre opera op erat¸iile ¸tiile private (descifrare/semnare) ¸si si cele publice(cifrare/verificare semn˘atur˘ atur˘ a). a). Pentru Pentru optimizarea optimizarea calculelor calculelor de verificar verificaree a semn˘ aturii aturii se poate utiliza utiliza lema chinezeasc˘ a a resturilor resturi lor (CRT), ˆıns˘ ıns˘a acest lucru induce vulnerabilit˘at a¸i ¸ti ˆın mediul med iul de implementare. Astfel, Astfel, dac˘ a p > q , sunt precalculate valorile: dP = (e ( e−1 mod n) mod ( p ( p
1), − 1), dQ = (e ( e−1 mod n) mod (q (q − 1), 1),
qInv = q −1 mod p. ˆIn faza de calcul se exec ex ecut ut˘˘a: a:
m1 = cdP mod p, m2 = cdQ mod q, h = qInv( qInv (m1
− m2) mod p,
m = m2 + hq.
Chei Ch eia a priva pr ivat˘ t˘ a ce se stocheaz˘a fiind ( p, ( p, q, dP, dQ, qI nv). nv).
219
EXERC EX ERCIT IT ¸ II REZO RE ZOL LVATE
22.2 22.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 22.2.1. 22.2.1. Se d˘a num˘ arul arul n = 36187829 despre care se cunoaste faptul c˘ a este un produs de dou˘ a numere cu valoarea φ(n) = 36175776. Factorizat actorizat¸i ¸i num˘arul arul n. Rezolvare: Folosim relat¸ile ¸ile p + q = n ( p 1)(q 1)(q 1) + 1 ¸si si p q = Obt¸inem ¸inem p = 565 5 6577 ¸si si q = 6397. 6397.
− −
−
−
( p + q )2
− 4n.
Exercit¸iul ¸iul 22.2.2. 22.2.2. S˘ a se cifreze mesajul M = 3, utilizˆ and and sistemul RSA cu urm˘ atorii atorii parametrii: N = 187 (modulul de cifrare), e = 7 (exponentul de cifrare). Rezolvare: Criptograma este: C = M e = 37 = 2187 = 130 mod 187. Exercit¸iul ¸iul 22.2.3. 22.2.3. S˘ a se descifreze mesajul C = 130, 130, utilizˆ and and sistemul RSA cu urm˘atorii atorii parametrii: N = 187 = 11 17 (modulul de cifrare), e = 7 (exponentul (exponentul de cifrare).
·
·
Rezolvare: Deoarece Deoarec e se cunoa¸ste ste factorizarea facto rizarea N = 11 17, se poate p oate calcula calcula ϕ(N ) N ) = 16 10 = 160, 160, ϕ(ϕ(N )) N )) = 64. 64. Exponentul de descifrare va fi: ))−1 = 7 63 = (7 9 )7 = (40353607)7 = 77 = 823543 = 23 mod 160. d = eϕ(ϕ(N )) 160 . d 23 Descifrare Descifrareaa mesajului cifrat C va fi: C = 130 = 3 = M mod 187.
·
Exercit¸iul ¸iul 22.2.4. 22.2.4. S˘a se descifreze, utilizˆand and CRT, 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 ( e−1 mod n) mod ( p
− 1) = 91, 91,
dQ = (e ( e−1 mod n) mod (q (q − 1) = 87, 87, qInv = q −1 mod p = 114. 114. Calcul˘ am am apoi: m1 = cdP mod p = 102, 102, m2 = cdQ mod q = 120, 120, h = qInv( qInv (m1
− m2) mod p = 3,
m = m2 + hq = 513. 513.
220
22.3 22.3..
SISTEMUL DE CIFRARE RSA
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 22.3.1. 22.3.1. Fie numerele prime p = 211 21 1 ¸si si q = 167. S˘ a se cifreze mesajul TEST cu ajutorul ajuto rul algoritmului a lgoritmului RSA, utilizˆand and exponentul public e = 28 + 1. 1 . Elementele din mesajul clar se codific˘a conform codului ASCII. R˘ aspuns: N = 35237, φ(N ) N ) = 34860, d = 23873, mesajul cifrat este: 01154 05746 04357 01154. Exercit¸iul ¸iul 22.3.2. 22.3.2. S˘a se descifreze mesajul 01154 05746 04357 01154 cu ajutorul algoritmului RSA ( p ( p = 211 21 1 ¸si si q = 167), utilizˆ and and exponentul public e = 28 + 1. Elementele din mesajul clar se decodific˘a conform codului ASCII. R˘ aspuns: N = 35237, φ(N ) N ) = 34860, d = 23873, mesajul clar este TEST. Exercit¸iul ¸iul 22.3.3. 22.3.3. S˘ a se cifreze mesajul M = 146, 146, utilizˆ and and sistemul RSA cu urm˘ atorii atorii parametrii: n = 187 (modulul de cifrare), e = 7 (exponentul de cifrare). R˘ aspuns: C = 141. Exercit¸iul ¸iul 22.3.4. 22.3.4. S˘ a se descifreze mesajul C = 141, 141, utilizˆ and and sistemul RSA cu urm˘atorii atorii parametrii: parametrii: n = 187 (modulul de cifrare), d = 23(exponentul de descifrare). R˘ aspuns: M = 146. Exercit¸iul ¸iul 22.3.5. 22.3.5. S˘ a se cifreze mesajul M = 9, utilizˆ and and sistemul RSA cu urm˘ atorii atorii parametrii: n = 187 (modulul de cifrare), e = 7 (exponentul de cifrare). R˘ aspuns: C = 70. Exercit¸iul ¸iul 22.3.6. 22.3.6. S˘ a se descifreze mesajul C = 70 70,, utilizˆ and and sistemul RSA cu urm˘atorii atorii parametrii: n = 187 (modulul (modulul de cifrar cifrare), e), d = 23 (expone (exponent ntul ul de descifrare). R˘ aspuns: M = 9. 9. Exercit¸iul ¸iul 22.3.7. 22.3.7. S˘ a se cifreze mesajul M = 3, utilizˆ and and sistemul RSA cu urm˘ atorii atorii parametrii: parametrii: n = 3523 352377 (modulul (modulul de cifrar cifrare), e), e = 11 (expo (expone nen ntul de cifrare).
221
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE R˘ aspuns: C = 962.
Exercit¸iul ¸iul 22.3.8. 22.3.8. S˘ a se descifreze mesajul C = 962, 962, utilizˆ and and sistemul RSA cu urm˘atorii atorii parametrii: n = 35237 (modulul de cifrare), d = 31691 (exponentul de descifrare). R˘ aspuns: M = 3. 3. Exercit¸iul ¸iul 22.3.9. 22.3.9. S˘ a se cifreze mesajul M = 5, utilizˆ and and sistemul RSA cu urm˘ atorii atorii parametrii: n = 221 (modulul de cifrare), e = 11 (exponentul de cifrare). R˘ aspuns: C = 164. Exercit¸iul ¸iul 22.3.10. 22.3.10. S˘ a se descifreze mesajul C = 164, 164, utilizˆ and and sistemul RSA cu urm˘atorii atorii parametrii: n = 221 = 13 17 (modulul de cifrare), e = 11 (exponentul de cifrare).
·
R˘ aspuns: M = 5, 5 , d = 35. Exercit¸iul ¸iul 22.3.11. 22.3.11. S˘ a se cifreze mesajul M = 4, utilizˆ uti lizˆand and sistemul sis temul RSA cu urm˘ atorii atorii parametrii: N = 209 (modulul de cifrare), e = 11 (exponentul de cifrare). Rezolvare: Criptograma este: C = M e = 411 = 92 mod 209. Exercit¸iul ¸iul 22.3.12. 22.3.12. S˘ a se descifreze mesajul C = 92 92,, utilizˆ and and sistemul RSA cu urm˘atorii atorii parametrii: N = 209 = 11 19 (modulul de cifrare), e = 11 (exponentul (exponentul de cifrare).
·
·
Rezolvare: Deoarece Deoarec e se cunoa¸ste ste factorizarea facto rizarea N = 11 19, se poate p oate calcula calcula ϕ(N ) N ) = 18 10 = 180, 180, d = 131, 131, M = 4. 4.
·
222
SISTEMUL DE CIFRARE RSA
Capitolul 23
SISTEMUL DE CIFRARE ELGAMAL 23.1 23.1..
Brev Br evia iarr teor teoret etic ic
Algoritmul de cifrare ElGamal este definit de un num˘ar ar prim p ¸si si un element ele ment ∗ ∗ g Z p primitiv, primitiv, numit generator. Pentru Pentru cheia privat˘ privat˘a x Z p se calculeaz˘a y = x g mod p, cheia public˘a fiind tripletul (y,g,p ( y,g,p). ). Pentru a cifra un mesaj M Z p se alege aleatoriu k Z p−1 , textul cifrat fiind (y1 , y2 ) = (g ( g k mod p,Myk mod p). Pentru a descifra mesajul (y ( y1 , y2 ) se calcul cal culeaz˘ eaz˘a y2 (y1x )−1 mod p.
∈
∈
∈
23.2 23.2..
∈
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 23.2.1. 23.2.1. S˘ a se cifreze mesajul M = 4 cu ajutorul algoritmului ElGamal cu parametrii p = 17, g = 14, x = 2. 2. Rezolvare: Cheia public˘a este (y,g,p (y,g,p)) = (142 mod 17, 17, 14 14,, 17) = (9, (9, 14 14,, 17), cheia privat˘a x = 2. Alegem Alegem,, spre spre exempl exemplu, u, k = 7 relativ prim cu 16 = p 1. Obt¸inem ¸inem 7 7 mesajul cifrat C = (14 mod 17, 17, 4 9 mod 17) = 6, 8 .
·
{ }
−
{ }
Exercit¸iul ¸iul 23.2.2. 23.2.2. S˘ a se descifreze mesajul 6, 8 , ¸stiind stiind c˘a a fost cifrat cu ajutorul algoritmul algoritmului ui ElGamal cu parametrii parametrii p = 17, g = 14, x = 2.
{
} {
}
Rezolvare: Cheia public˘a este y,g,p = 9, 14 14,, 17 , cheia privat˘a x = 2. Mesajul x − clar se obt¸ine ¸ine aplicˆand and formula y2 y1 mod p = 4. 223
224
23.3 23.3..
SISTEMUL DE CIFRARE ELGAMAL
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 23.3.1. 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, (19 , 11). Exercit¸iul ¸iul 23.3.2. 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, (21 , 20). Exercit¸iul ¸iul 23.3.3. 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, (3 , 34). Exercit¸iul ¸iul 23.3.4. 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, (17 , 9). Exercit¸iul ¸iul 23.3.5. 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, (21 , 14). Exercit¸iul ¸iul 23.3.6. 23.3.6. S˘a se descifreze mesajul (17, (17 , 9) cu ajutorul algoritmului ElGamal cu parametrii p = 47, g = 4, x = 2. 2. R˘ aspuns: Mesajul clar este 8. Exercit¸iul ¸iul 23.3.7. 23.3.7. S˘a se descifreze mesajul (3, (3 , 34) cu ajutorul algoritmului ElGamal cu parametrii p = 47, g = 14, x = 3. R˘ aspuns: Mesajul clar este 3. Exercit¸iul ¸iul 23.3.8. 23.3.8. S˘a se descifreze mesajul (21, (21 , 14) cu ajutorul algoritmului ElGamal cu parametrii parametrii p = 23, g = 7, x = 3. 3. R˘ aspuns: Mesajul clar este 4.
Capitolul 24
ARITMETICA PE CURBE ELIPTICE 24.1 24.1..
Brev Br evia iarr teor teoret etic ic
Definit¸ia ¸ia 24.1.1. 24.1.1. O curb˘ a eliptic˘ eliptic˘ a E este constituit˘ constituit˘ a din elemen elemente te (numi (numite te puncte) de tipul (x, ( x, y) ce satisfac ecuat¸ia: ¸ia: y2
≡ x3 + ax + b mod p 0 mod p ¸sisi p este un num˘ar unde a ¸si si b sunt constante consta nte astfel ˆıncˆat at 4a3 + 27b 27 b2 = ar prim, ˆımpreun˘ ımpreun ˘a cu un element singular, singular, notat O ¸si si numi numitt punctul de la infinit. Acest punct poate fi privit ca fiind punctul din vˆarful arful ¸si si de la baza oric˘arei arei linii verticale.
O curb˘a elip el ipti tic˘ c˘a E are o structur˘a de grup abelian ˆımpreun˘ a cu operat¸ia ¸ia adunare. Adunarea a dou˘a puncte de pe o curb˘a eliptic˘a este definit˘a ˆın concordant concor dant¸˘ ¸a˘ cu o mult¸ime ¸ime simpl˘a de reguli (vezi figura fig ura 24.1). Fiind date dou˘a puncte pe E, P 1 (x1 , y1 ) ¸si P 2 (x2 , y2 ), avem urm˘atoarele atoarele cazuri: - dac˘a x2 = x1 ¸si si y2 = y1 atunci P 1 + P 2 = . - altfel P 1 + P 2 = (x ( x3 , y3 ), unde:
−
O
x3 = λ2 x1 x2 y3 = λ(x1 x3 ) y1
cu
λ=
− − − −
− −
y2 y1 , dac˘ a P 1 = P 2 x2 x1 3x21 + a , dac˘ a P 1 = P 2 . 2y1
225
226
ARITMETICA PE CURBE ELIPTICE
Figura 24.1: Operat¸ia ¸ia de adunare pe o curb˘a eliptic˘a. a.
O
Observat¸ia ¸ia 24.1.1. 24.1.1. A nu se confunda punctul la infinit cu perechea (0, (0, 0). Punctul la infinit apart¸ine ¸ine tuturor curbelor eliptice, ˆın timp ce punctul punctul (0, (0, 0) este un element doar pentru curbele eliptice cu parametrul b = 0.
24.2 24.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 24.2.1. 24.2.1. Fie curba eliptic˘a y 2 = x3 + 7x + 4 defin definit it˘ a˘ peste F 71 a se 71 . S˘ adune punctele P (15 (43, 24). P (15,, 17) ¸si Q(43, Rezolvare: Coordoantele punctului P + Q = (x ( x3 , y3 ), sunt date de formulele:
unde λ =
y2 y1 x2 x1 .
− −
x3 = λ2 x1 x2 y3 = λ(x1 x3 ) y1
− − − −
227
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
Pentru calculul λ = 7 (28−1 mod 71), se folose¸ folose¸ste ste algoritmul algoritmul lui Euclid care 1 − gase¸ gas e¸ste ste 33 = 28 2 8 mod 71, deci λ = 231. Atunci x3 = 2312 15 43 mod 71 = 53 iar y3 = 231(15 53) 17 mod 71 = 9. ˆIn concluzie, coordoantele punctului care reprezinta suma celor doua puncte de pe curba eliptic˘a dat˘ a sunt (53, (53, 9).
· − −
−
−
Exercit¸iul ¸iul 24.2.2. 24.2.2. Fie curba eliptic˘a y2 = x3 + x +3 definit˘a peste F 17 atat atat¸i ¸i 17 . Ar˘ c˘ a punctul (2, (2, 8) este un generator al punctelor de pe curba eliptic˘a. Rezolvare: Succesiv putem scrie 1P 1 P = (2, (2, 8), 2P 2P = (12, (12, 3), 3P 3P = (16, (16, 16), 4P 4P = (8, (8, 8), 5P 5P = (7, (7, 9), 6P 6P = (6, (6, 15), 7P 7P = (11, (11, 6), 8P 8P = (3, (3, 13), 9P 9P = (3, (3, 4), 10P 10P = (11, (11, 11), 11P 11P = (6, (6, 2), 12P 12P = (7, (7, 8), 13P 13P = (8, (8, 9), 14P 14P = (16, (16, 1), 15P 15P = (12, (12, 14), 16 16P P = (2, (2, 9), 17P 17P = O .
24.3 24.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 24.3.1. 24.3.1. Fie curba eliptic˘a y 2 = x3 + 2x + 3 defin definit it˘ a˘ peste F 23 a se 23 . S˘ adune punctele P (6 P (6,, 1) ¸si Q(13, (13, 8). R˘ aspuns: R(5, (5, 0). Exercit¸iul ¸iul 24.3.2. 24.3.2. Fie curba eliptic˘ eliptic˘a y2 = x3 + 7x + 4 definit˘ definit˘ a peste F 71 a 71 . Se d˘ punctul P (15 P (15,, 17). Aflat¸i ¸i 2P . P . R˘ aspuns: (66, (66, 25). Exercit¸iul ¸iul 24.3.3. 24.3.3. Fie curba eliptic˘a y 2 = x3 + x + 6 definit˘a peste F 11 a se 11 . S˘ arate c˘a punctul punctu l (2, (2, 7) este un generator al punctelor de pe curba eliptic˘a. R˘ aspuns: 1P = (2, (2, 7), 2P 2P = (5, (5, 2), 3P 3P = (8, (8, 3), 4P 4P = (10, (10, 2), 5P 5P = (3, (3, 6), 6P = (7, (7, 9), 7P 7P = (7, (7, 2), 8P 8P = (3, (3, 5), 9P 9P = (10, (10, 9), 10P 10P = (8, (8, 8), 11P 11P = (5, (5, 9), 12 12P P = (2, (2, 4), 13P 13P = O . Exercit¸iul ¸iul 24.3.4. 24.3.4. Fie curba eliptic˘a y 2 = x3 + 6x 6 x + 11 definit˘a peste F 17 17 . Se d˘ a punctul P (6 P (6,, 5). Aflat¸i ¸i 2P . P . R˘ aspuns: (1, (1, 1). Exercit¸iul ¸iul 24.3.5. 24.3.5. Fie curba eliptic˘a y 2 = x3 + x +3 definit˘a peste F 7 . Ar˘atat atat¸i ¸i c˘ a punctul (4, (4, 6) este un generator al punctelor de pe curba eliptic˘a.
228
ARITMETICA PE CURBE ELIPTICE
R˘ aspuns: Succesiv obt¸inem ¸inem 1P 1P = (4, (4, 6), 2P 2P = (6, (6, 1), 3P 3P = (5, (5, 0), 4P 4P = (6, (6, 6), 5P = (4, (4 , 1), 6P 6P = O. Exercit¸iul ¸iul 24.3.6. 24.3.6. Fie curba eliptic˘a y2 = x3 + 9 definit˘a peste F 37 a 37 . Se d˘ punctul P (6 P (6,, 22). Aflat¸i ¸i 2P . P . R˘ aspuns: (35, (35, 1). Exercit¸iul ¸iul 24.3.7. 24.3.7. Fie curba eliptic˘a y2 = x3 + 9 definit˘a peste F 37 37 . Se dau punctele P (6 P (6,, 22) ¸si Q(8, (8, 15). Aflat¸i ¸i P + Q. R˘ aspuns: (26, (26, 11). Exercit¸iul ¸iul 24.3.8. 24.3.8. Fie curba eliptic˘a y2 = x3 + 11 11x x + 20 defini definit˘ t˘ a peste F 23 23 . Se dau punctele punctele P (7 P (7,, 7) ¸si Q(15, (15, 15). Aflat¸i ¸i P + Q. R˘ aspuns: (2, (2, 21). Exercit¸iul ¸iul 24.3.9. 24.3.9. Fie curba eliptic˘a y 2 = x3 + 7x 7 x + 11 definit˘a peste F 23 23 . Se dau punctele punctele P (21 P (21,, 14) ¸si Q(7, (7, 9). Aflat¸i ¸i P + Q. R˘ aspuns: (22, (22, 7). Exercit¸iul ¸iul 24.3.10. 24.3.10. Fie curba eliptic˘a y 2 = x3 + 5x 5 x + 5 definit˘a peste F 17 17 . Se d˘ a punctul P (3 P (3,, 8). Aflat¸i ¸i 3P . P . R˘ aspuns: (12, (12, 5). Exercit¸iul ¸iul 24.3.11. 24.3.11. Fie curba eliptic˘a y2 = x3 + 3x definit˘ a peste F 11 atat atat¸i ¸i 11 . Ar˘ c˘a punctele P (0 P (0,, 0) ¸si Q(1, (1, 2) apart¸in ¸in curbei. Aflat¸i ¸i P + Q. R˘ aspuns: Cele 2 puncte satisfac fiecare ecuat¸ia ¸ia curbei eliptic eliptice. e. Suma Suma lor este este (3, (3, 5). Exercit¸iul ¸iul 24.3.12. 24.3.12. Fie curba eliptic˘ eliptic˘ a y 2 = x3 + 6x + 11 definit definit˘ a˘ peste F 17 17 . Se dau punctele punctele P (12 P (12,, 3) ¸si Q(6, (6, 12). Aflat¸i ¸i P + Q. R˘ aspuns: (14, (14, 0).
Capitolul 25
SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE 25.1 25.1..
Brev Br evia iarr teor teoret etic ic
◦
Algoritmul ElGamal poate fi extins pe orice grup finit (G, (G, ), ˆın care problema problem a logaritmul logaritmului ui discret discret este dificil˘ dificil˘a, a, ˆın particular ¸si si pe grupul punctelor de pe o curb˘a eliptic˘a. a. Astfel, Astfel, fie α G pentru care problema logaritmului ˆın subgrupul H = αi i 0 este dificil˘a. a. Pe baza cheii private x Z , se constru con struie¸ ie¸ste ste β = αx , cheia public˘a fiind G,α,β . Pentru a cifra un mesaj M se alege aleatoriu k Z |H | ¸si si se aplic˘a regula de k k cifrare: E (M, k) = (α ( α , M β ). Mesajul clar m se recuperea recu pereaz˘ z˘a din mesajul mesa jul cifrat c ifrat (y1 , y2 ) dup˘a regula: regula: y2 (y1x )−1 . ˆIntr-adev˘ ar ar y2 (y1x )−1 = M β k ((α ((αk )x )−1 = M αkx (αkx )−1 = M.
∈
{
{ |≥ }
∈
}
∈
◦
◦
25.2 25.2..
◦ ◦
◦
◦
◦
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 25.2.1. 25.2.1. S˘ a se cifreze mesajul (10, (10, 9) utilizˆ and and curba eliptic˘a (pub2 3 lic˘a) a) E : y = x + x + 6 pe Z11 cu ajutorul algoritmului ElGamal. Rezolvare: Pentru a calcula punctele curbei eliptice se calculeaz˘a valorile z = + x + 6 mod mod 11, 11, se vede care din aceste valori sunt reziduri p˘atratice cu ajutorul p 1 teoremei lui Euler (z ( z este reziduu p˘atratic atratic dac˘a ¸si si numai dac˘a z 2 1 mod p) ¸si x3
−
229
≡
230
SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE
±
p+1
apoi se calculeaz˘a r˘ad˘ ad˘acinile acinile p˘atrate atrate ale acestor reziduri prin formula y = z 2 mod p). p). Punctele curbei eliptice vor fi: (2, (2, 7), 7), (2, (2, 4), 4), (3, (3, 5), 5), (3, (3, 6), 6), (5, (5, 2), 2), (5, (5, 9), 9), (7, (7, 2), 2), (7, (7, 9), 9), (8, (8, 3), 3), (8, (8, 8), 8), (10, (10, 2), 2), (10, (10, 9), 9), . Grupul E este grup ciclic (num˘arul arul de elemente este al grupului este num˘ar prim) ¸si si se ia ca generator p entru acesta elementul (public) α = (2, (2, 7). 7). Cheia privat˘a de descifrare, notat˘a prin d, este est e o valoare valoa re ˆıntre 1 ¸si si num˘arul arul de puncte de pe o curb˘a eliptic˘a 1. Cheia public˘a, a, notat˘ a prin β, se obt¸ine ¸ine din α ¸si si expo e xponentu nentull secret se cret d prin formula β = dα. Operat¸ia ¸ia de cifrare a mesajul M cu ajutorul cheii (secrete) k este:
O}
{
−
E (M, k) = (kα,M ( kα,M + + kβ ). Operat¸ia ¸ia de descifrare pentru a obt¸ine ¸ine M este: Dk (y1 , y2 ) = y2
− dy1.
Fie d = 3. Se determin dete rmin˘˘a β = 3(2, 3(2, 7) = (8, (8, 3). Considerˆ and and valoarea aleatoare k = 4, se obt¸ine: ¸ine: E (M, k) = (4(2, (4(2, 7), 7), (10, (10, 9) + 4(8, 4(8, 3)) = ((10, ((10, 2), 2), (10, (10, 9) + (2, (2, 4)) = ((10, ((10, 2), 2), (3, (3, 5)) Exercit¸iul ¸iul 25.2.2. 25.2.2. S˘ a se descifreze descifreze mesajul ((10, ((10 , 2), 2), (3, (3, 5)) 5) ) ¸stiin sti ind d c˘ c a˘ a fost cifrat 2 3 cu algoritmul algoritmul ElGamal utilizˆ utilizand aˆnd curba eliptic˘a(public˘ a(public˘ a) a) E : y = x + x + 6 pe Z11 ¸si si cheia privat˘ pri vat˘a d = 3. 3. Rezolvare: Se determin˘a mesajul clar ca fiind: M = y2 (3, (3, 5) (2, (2, 4) = (3, (3, 5) + (2, (2, 7) = (10, (10, 9).
−
25.3 25.3..
− dy1 = (3 ( 3, 5) − 3(10, 3(10, 2) =
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 25.3.1. 25.3.1. Se consider˘a algoritmul algoritmul ElGamal precizat de parametrii parametrii E : 3 = x + x + 6 peste Z11 . Ar˘atat atat¸i ¸i c˘a α = (2, (2, 7) este un generator al grupului E . Se consider˘a cheia privat˘a d = 5. S˘a se cifreze mesajul (10, (10 , 9) cu valoarea aleatoare k = 3. y2
R˘ aspuns: Valoarea aloarea cheii cheii publice publice este β = dα = (3, (3, 6). Me Mesaju sajull cifra cifratt este este (kα,M + kα,M + kβ ) = ((8, ((8, 3), 3), (10, (10, 9) + (5, (5, 2)) = ((8, ((8, 3), 3), (5, (5, 9)). Exercit¸iul ¸iul 25.3.2. 25.3.2. Se consider˘a algoritmul algoritmul ElGamal precizat de parametrii parametrii E : 3 = x + x +6 peste Z11 . Ar˘atat atat¸i ¸i c˘a α = (2, (2 , 7) este un generator al grupului E . S˘a se descifreze mesajul ((8, ((8 , 3), 3), (5, (5, 9)) cu ajutorul cheii private d = 5. 5.
y2
231
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE R˘ aspuns: Dk (y1 , y2 ) = (y ( y2 (5, (5, 9)) = (10, (10, 9).
− dy1) = ((5, ((5, 9) − 5(8, 5(8, 3)) = ((5, ((5, 9) − (5, (5, 2)) = ((5, ((5, 9) +
Exercit¸iul ¸iul 25.3.3. 25.3.3. Se consider˘a algoritmul algoritmul ElGamal precizat de parametrii parametrii E : 3 = x + x + 6 peste Z13 . Ar˘atat atat¸i ¸i c˘a α = (4, (4, 3) este un generator al grupului E . Se consider˘a cheia privat˘a d = 3. S˘a se cifreze mesajul (3, (3 , 7) cu valoarea aleatoare k = 4. y2
R˘ aspuns: Valoarea aloarea cheii cheii publice publice este β = dα = (3, (3, 7). Me Mesaju sajull cifra cifratt este este (kα,M + kα,M + kβ ) = ((9, ((9, 4), 4), (3, (3, 7) + (4, (4, 10)) = ((9, ((9, 4), 4), (2, (2, 9)). Exercit¸iul ¸iul 25.3.4. 25.3.4. Se consider˘a algoritmul algoritmul ElGamal precizat de parametrii parametrii E : 3 = x + x +6 peste Z13 . Ar˘atat atat¸i ¸i c˘a α = (4, (4 , 3) este un generator al grupului E . S˘a se descifreze mesajul ((9, ((9 , 4), 4), (2, (2, 9)) cu ajutorul cheii private d = 3. 3.
y2
R˘ aspuns: Dk (y1 , y2 ) = (y2 (4, (4, 3)) = (3, (3, 7).
− dy1) = ((2, ((2, 9) − 3(9, 3(9, 4)) = ((2, ((2, 9) − (4, (4, 10)) = ((2, ((2, 9) +
Exercit¸iul ¸iul 25.3.5. 25.3.5. Se consider˘a algoritmul algoritmul ElGamal precizat de parametrii parametrii E : y 2 = x3 + x + 6 peste peste Z17 . Se alege generatorul generatorul subgrupului subgrupului ciclic α = (1, (1, 5) al lui E . Se conside consider˘ r˘ a cheia privat˘a d = 7. S˘a se cifreze mesajul (8, (8 , 4) utilizˆand and valoarea aleatoare k = 3. R˘ aspuns: Valoarea cheii cheii publice publice este β = dα = (7, (7, 13). 13). Me Mesaju sajull cifrat cifrat este este (kα,M + kα,M + kβ ) = ((7, ((7, 4), 4), (8, (8, 4) + (1, (1, 5)) = ((7, ((7, 4), 4), (16, (16, 2)). Exercit¸iul ¸iul 25.3.6. 25.3.6. Se consider˘a algoritmul algoritmul ElGamal precizat de parametrii parametrii E : 3 = x + x + 6 peste Z17 . S˘a se descifreze mesajul ((7, ((7 , 4), 4), (16, (16, 2)) cu ajutorul cheii private d = 3. y2
R˘ aspuns: Dk (y1 , y2 ) = (y2 ((2, ((2, 9) + (1, (1, 12)) = (8, (8, 4).
− dy1) = ((16, ((16, 2) − 7(7, 7(7, 4)) = ((16, ((16, 2) − (1, (1, 5)) =
Exercit¸iul ¸iul 25.3.7. 25.3.7. Se consider˘a algoritmul algoritmul ElGamal precizat de parametrii parametrii E : 3 = x + 2x +6 peste Z29 . Se alege generatorul generatorul subgrupului subgrupului ciclic α = (20, (20, 10) al lui E . Se consider˘a cheia privat˘a d = 5. S˘a se cifreze mesajul (10, (10 , 9) utilizˆand and valoarea aleatoare k = 6. y2
R˘ aspuns: Valoarea aloarea cheii cheii publice publice este β = dα = (1, (1, 3). Me Mesaju sajull cifra cifratt este este (kα,M + kα,M + kβ ) = ((14, ((14, 9), 9), (10, (10, 9) + (14, (14, 9)) = ((14, ((14, 9), 9), (5, (5, 20)).
232
SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE
Exercit¸iul ¸iul 25.3.8. 25.3.8. Se consider˘a algoritmul algoritmul ElGamal precizat de parametrii parametrii E : 3 = x + 2x 2 x + 6 peste Z29 . S˘a se descifreze mesajul ((14, ((14 , 9), 9), (5, (5, 20)) cu ajutorul cheii private d = 5. 5. y2
R˘ aspuns: Dk (y1 , y2 ) = (y2 ((5, ((5, 20) + (14, (14, 20)) = (10, (10, 9).
((5, 20) − 5(14, 5(14, 9)) = ((5, ((5, 20) − (14, (14, 9)) = − dy1) = ((5,
Exercit¸iul ¸iul 25.3.9. 25.3.9. Se consider˘a algoritmul algoritmul ElGamal precizat de parametrii parametrii E : 3 = x + 2x +7 peste Z17 . S˘a se descifreze mesajul ((16, ((16, 2), 2), (2, (2, 6)) cu ajutorul cheii private d = 5. y2
R˘ aspuns: Dk (y1 , y2 ) = (y2 ((2, ((2, 6) + (16, (16, 15)) = (8, (8, 12).
− dy1) = ((2, ((2, 6) − 5(16, 5(16, 2)) = ((2, ((2, 6) − (16, (16, 2)) =
Capitolul 26
SISTEMUL DE CIFRARE MENEZES-VANSTONE 26.1 26.1..
Brev Br evia iarr teor teoret etic ic
ˆIn acest sistem de cifrare - de fapt o variant˘a a lui ElGamal - curba eliptic˘a este utilizat˘a pentru mascare, textele clare ¸si si cele cifrate putˆand and fi formate din orice elemente nenule (nu neap˘ ne ap˘arat arat puncte din E ). ). Fie E o curb˘a eliptic˘ eliptic˘ a peste Z p , p > 3 num˘ ar ar prim care cont¸ine ¸ine un subgrup ciclic G ˆın care problema logaritmului discret este dificil˘a. a. Pe baza cheii private d Z , se cons co nstru truie¸ ie¸ste st e β = dα, dα, cheia public˘a fiind E,α,β . Pentru a cifra mesajul m = (m1 , m2 ) Z p∗ Z p∗ se alege aleatoriu k ¸si si se concon struie¸ste ste textul cifrat (y0 , y1 , y2) dup˘a regulile: regulile: y0 = kα, kα , (c1 , c2 ) = kβ , yi = ci mi , i = 1, 2. La descifrare, cunoscˆand a nd (y (y0 , y1 , y2 ) ¸si si cheia privat˘a d se determin˘a textul clar astfel: 1 −1 (m1 , m2 ) = (y ( y1 c− ( c1 , c2 ) 1 mod p, y2 c2 mod p), unde dy0 = (c
{
26.2 26.2..
∈
} ×
∈
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 26.2.1. 26.2.1. Se consider˘a algoritmul Menezes-Vanstone precizat de para2 metrii E : y = x3 + x + 6 peste Z13 . Ar˘atat atat¸i ¸i c˘a α = (4, (4, 3) este un generator al grupului E . Se consider˘a cheia privat˘a d = 3. S˘a se cifreze mesajul (3, (3 , 7) cu valoarea aleatoare k = 4. Rezolvare: Curba eliptica are 13 puncte deci grupul E este ciclic ¸si si orice element este generator. 233
234
SISTEMUL DE CIFRARE MENEZES-VANSTONE
·
Se calc ca lcul ulea eaz˘ z˘a β = 3α = 3 (4, (4, 3) = (3, (3, 7) Cifrarea mesajului (3, (3, 7) cu valoarea aleatoare k = 4 se face dupa urm˘atoarea atoarea formul˘ a ek (x, k) = (y0 , y1 , y2 ) unde y0 = k α, (c1 , c2 ) = k β, yi = ci xi (mod p) p) pentru i = 1, 2. Calcul˘ am y0 = 4 (4, am (4, 3) = (9, (9, 4) iar (c (c1 , c2 ) = 4 β = 12 12α α = (4, (4 , 10) deci c1 = 4 iar c2 = 10 Se calculeaz˘a ¸si y1 = 4 3 mod 13 = 12 ¸si si y2 = 10 7 mod mod 13 13 = 5. Rezu Rezult ltatu atull cifrarii mesajului (3, (3, 7) cu valoarea aleatoare k = 4 este ((9,4), 12,5).
·
·
·
·
·
26.3 26.3..
·
·
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 26.3.1. 26.3.1. Se consider˘a algoritmul Menezes-Vanstone precizat de para2 metrii E : y = x3 + x + 6 peste Z13 . Ar˘atat atat¸i ¸i c˘a α = (4, (4, 3) este un generator al grupului E . Se consider˘a cheia privat˘a d = 3. S˘a se cifreze mesajul (1, (1 , 1) cu valoarea aleatoare k = 2. R˘ aspuns: β = (3 ( 3, 7), (y (y0 , y1 , y2 ) = ((2, ((2, 9), 9), 11 11,, 3). Exercit¸iul ¸iul 26.3.2. 26.3.2. Se consider˘a curba eliptic˘a E : y 2 = x3 + x + 6 peste Z13 . Cˆ ate ate puncte are aceast˘a curb˘a? a? Gasit¸i ¸i un generator al punctelor de pe curba eliptic˘a. Cˆate ate elemente elemente se pot cifra prin algoritmul algoritmul ElGamal? ElGamal? Dar cu ajutorul algoritmului algoritmului Menezes-Vanstone? R˘ aspuns: Curba Curba are 13 puncte. puncte. Cum num˘ num˘ arul de puncte este prim, grupul E arul este ciclic ¸si si deci orice punct din E este generator. generator. Folosind olosind sistemul sistemul ElGamal se pot cifra numai punctele de pe curb˘a, a, deci 13. Cu Menezes-Vanstone se poate cifra orice punct din Z13 Z13 .
×
Exercit¸iul ¸iul 26.3.3. 26.3.3. Se consider˘a algoritmul Menezes-Vanstone precizat de para2 metrii E : y = x3 +2 +2x x+5 peste Z11 . Cunoscˆand and cheia public˘a (α, (α, β ) = ((3, ((3, 7), 7), (4, (4, 0)), s˘ a se cifreze mesajul (5, (5 , 2) cu valoarea aleatoare k = 7. 7. R˘ aspuns: (y0 , y1 , y2 ) = ((0, ((0, 7), 7), 9, 0). Exercit¸iul ¸iul 26.3.4. 26.3.4. Se consider˘a algoritmul Menezes-Vanstone precizat de para2 metrii E : y = x3 +7 +7x x+3 peste Z17 . Cunoscˆand and cheia public˘a (α, (α, β ) = ((12, ((12, 8), 8), (7, (7, 2)), s˘ a se cifreze mesajul (14, (14 , 7) cu valoarea aleatoare k = 7. R˘ aspuns: (y0 , y1 , y2 ) = ((12, ((12, 9), 9), 13 13,, 3).
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
235
Exercit¸iul ¸iul 26.3.5. 26.3.5. Se consider˘a algoritmul Menezes-Vanstone precizat de para2 metrii E : y = x3 +3 +3x x+2 peste Z23 . Cunoscˆand and cheia public˘a (α, (α, β ) = ((15, ((15, 15), 15), (15, (15, 8)), s˘ a se cifreze mesajul (13, (13 , 19) cu valoarea aleatoare k = 2. R˘ aspuns: (y0 , y1 , y2 ) = ((18, ((18, 0), 0), 4, 0). Exercit¸iul ¸iul 26.3.6. 26.3.6. Se consider˘a algoritmul Menezes-Vanstone precizat de para2 metrii E : y = x3 +2 +2x x+7 peste Z23 . Cunoscˆand and cheia public˘a (α, (α, β ) = ((5, ((5, 21), 21), (16, (16, 15)), s˘ a se cifreze mesajul (8, (8 , 10) cu valoarea aleatoare k = 4. R˘ aspuns: (y0 , y1 , y2 ) = ((21, ((21, 8), 8), 13 13,, 12). Exercit¸iul ¸iul 26.3.7. 26.3.7. Se consider˘a algoritmul Menezes-Vanstone precizat de para2 metrii E : y = x3 +2 +2x x+7 peste Z23 . Cunoscˆand and cheia public˘a (α, (α, β ) = ((5, ((5, 21), 21), (16, (16, 15)), s˘ a se cifreze mesajul (19, (19 , 2) cu valoarea aleatoare k = 5. R˘ aspuns: (y0 , y1 , y2 ) = ((15, ((15, 13), 13), 5, 16). Exercit¸iul ¸iul 26.3.8. 26.3.8. Se consider˘a algoritmul Menezes-Vanstone precizat de para2 metrii E : y = x3 + 2x +5 peste peste Z17 . Cunoscˆand and cheia privat˘a d = 3, s˘a se descifreze mesajul (y (y0 , y1 , y2 ) = ((1, ((1, 12), 12), 2, 10). R˘ aspuns: (m1 , m2 ) = (12, (12, 5). Exercit¸iul ¸iul 26.3.9. 26.3.9. Se consider˘a algoritmul Menezes-Vanstone precizat de para2 metrii E : y = x3 + 5x +4 peste peste Z19 . Cunoscˆand and cheia privat˘a d = 2, s˘a se descifreze mesajul (y (y0 , y1 , y2 ) = ((17, ((17, 9), 9), 12 12,, 14). R˘ aspuns: (m1 , m2 ) = (11, (11, 11). Exercit¸iul ¸iul 26.3.10. 26.3.10. Se consider˘a algoritmul Menezes-Vanstone Menezes-Vanstone precizat de para2 3 metrii E : y = x + 2x +7 peste peste Z23 . Cunoscˆand and cheia privat˘a d = 7, s˘a se descifreze mesajul (y (y0 , y1 , y2 ) = ((21, ((21, 8), 8), 8, 4). R˘ aspuns: (m1 , m2 ) = (12, (12, 11).
236
SISTEMUL DE CIFRARE MENEZES-VANSTONE
Capitolul 27
FUNCT FUNCT ¸ I I DE DISPE DISPERSI RSIE E 27.1 27.1..
Brev Br evia iarr teor teoret etic ic
Problematica funct¸iilor ¸iilor hash fiind deosebit de vast˘a, a, ˆın cele ce urmeaz˘ urmeaz ˘a ne vom opri numai asupra aspectelor strict necesare ˆınt ınt¸elegerii ¸elegerii utiliz˘arii arii acestor acesto r funct¸ii ¸i i ˆın cadrul algoritmilo algor itmilorr de d e semn˘ s emn˘atur˘ atur˘a digital˘ a. a. Definit¸ia ¸ia 27.1.1. 27.1.1. O funct¸ie ¸ie f se nume¸ste ste funct fun ct¸ie ¸ie unidirect¸ional˘ ¸ional˘ a dac˘a: a: a) fiind dat x, este u¸sor sor de calculat calcul at f ( f (x); b) fiind dat f ( f (x), este greu de calculat x. Definit¸ia ¸ia 27.1.2. 27.1.2. O funct¸ie ¸ie f se num n ume¸ e¸ste ste func fu nct¸ie ¸t ie unidirect¸ional˘ ¸ional˘ a cu trap˘a (trapdoor) dac˘ a: a: a) fiind dat x, este u¸sor sor de calculat calcul at f ( f (x); b) fiind dat f ( f (x), este greu de calculat x; c) pe baza unei informat¸ii ¸ii secrete y , este u¸sor sor de calculat calcul at x din f ( f (x). Definit¸ia ¸ia 27.1.3. 27.1.3. Funct ¸ia hash este o funct¸ie ¸ie care se aplic˘a unui ¸sir sir de lungime lungim e oarecare oarecare obt¸inˆ ¸inˆandu-se andu-se un ¸sir sir de lungime fixat˘a (de obicei, mai mic˘a decˆat at lungimea ¸sirului siru lui de intra i ntrare). re). Definit¸ia ¸ia 27.1.4. 27.1.4. O funct¸ie ¸ie H se nume nume¸¸ste st e funct ¸ie hash unidirect ¸ional˘ a dac˘ a: a: a) H este funct¸ie ¸ie hash; b) H este funct¸ie ¸ie unidirect¸ional˘ ¸ional˘ a. a. Pentru a putea fi folosite pentru semn˘aturi aturi digitale, funct¸iile ¸iile hash unidirect¸ionale ¸ionale trebuie trebuie s˘ a mai ˆındepl ınd eplinea ineasc˘ sc˘a, a, printre altele una din urm˘atoarele atoarele dou˘ a condit¸ii: ¸ii: 1) oricare ar fi M dat, este greu de g˘asit asit M astf as tfel el ˆıncˆ ın cˆat at H (M ) = H (M ); M );
237
238
FUNCT ¸ II DE DISPERSIE DISPER SIE
2) este greu de g˘asit asit o pereche oarecare M , M , M astf as tfel el ˆıncˆ ınc at aˆt H (M ) M ) = H (M ). Funct¸iile ¸iile hash unidirect¸ionale ¸ionale care ˆındeplinesc ındepl inesc condit cond it¸ia ¸ia (1) se numesc funct¸ii ¸ii hash unidirect¸ionale ¸ionale slabe (sau universale), iar cele care ˆındeplinesc condit¸ia ¸ia (2) se numesc funct¸ii ¸ii hash unidirect¸ionale ¸ionale tari (sau f˘ar˘ ar˘ a coliziuni). coliziuni). Prima condit¸ie ¸ie este u¸sor sor de justificat: dac˘a A a semnat mesajul M cu H (M ) M ), iar B obt¸ine ¸ine M astfel ˆıncˆat at H (M ) = H (M ), M ), atunci B ar putea pretinde c˘a A ar fi semnat mesajul M . A doua condit¸ie ¸ie este justificat˘a de existent¸a ¸a atacului birthday , metod˘ a general˘a de atac aplicabil˘ aplicabil˘ a oric˘arei arei funct¸ii ¸ii hash, atac inspirat inspirat de paradoxul paradoxul matematic al zilei de na¸stere st ere.. Datorit˘ a atacului birthday, pentru o funct¸ie ¸ie hash care are la ie¸sire sire un ¸sir sir cu o m m/2 m/ 2 lungime de m bit¸i ¸i (2 posibilit˘at a¸i) ¸t i) se pot g˘asi asi coliziuni coliziuni generˆ generˆand and doar 2 perechi de mesaje-valori mesaje-valori hash. ˆIn aceste condit¸ii, ¸ii, algoritmii hash care produc valori hash de 64 bit¸i ¸i se consider˘a 64/ 64 / 2 32 nesiguri deoarece, cu tehnologia actual˘a, a , se pot genera 2 = 2 mesaje mesa je ¸si si deci este posibil p osibil˘˘a g˘asirea asirea de mesaje care s˘a intre ˆın ın coliziune. De aceea a ceea se recomand˘a ca valoarea hash s˘a fie de lungime de cel put¸in ¸in 128 bit¸i. ¸i. ˆIn cele ce urmeaz˘ urmeaz˘a vom descrie funct¸ia ¸ia de dispersie Chaum -van Heijt-Pfitzmann. p 1 Fie p un num˘ ar ar prim mare astfel ca q = s˘ a fie de asemenea prim. Consider˘am am 2 α, β Z p elemente primitive. Calculul valorii logaritmului discret logα β este dificil din punct de vedere computat¸ional ¸ional.. Vom defini funct func¸ia ¸t ia de dispersie Chaum -van ∗ Heijt-Pfitzmann h : Zq Zq Z p prin
−
∈
× →
h(x1 , x2 ) = αx1 β x2 mod p. Dac˘ a exist˘a o coliziune pentru funct¸ia ¸ia Chaum -van Heijt-Pfitzmann atunci calculul logaritmului discret logα β este es te u¸sor. so r. S˘a vedem cum anume se poate determina valoarea logaritmului discret logα β . S˘a presupunem c˘a avem coliziunea h(x1 , x2 ) = h(x3 , x4) cu (x (x1 , x2 ) = (x3 , x4 ). Deci Deci x x x x x x 1 2 3 4 1 −x3 4 −x2 α β = α β mod p sau echivalent α = β mod p. Fie d = (x ( x4 x2 , p 1). 1). Deoarece p 1 = 2q 2 q iar q este num˘ar ar prim avem d 1 , 2, q , p 1 . Cazul d = 1. Deoarece (x ( x4 x2 , p 1) = 1 exist˘a y = (x ( x4 x2 )−1 mod p. Deci:
−
−
∈{
−
−
− }
−
−
β = β (x4 −x2 )y mod p = α(x1 −x3 )y mod p. Deci logα β = (x1 x3 )(x )(x4 x2 )−1 mod ( p 1). 1). Cazul d = 2. Deoarece p 1 = 2q , q num˘ar ar prim, rezult˘a (x4 x2 , q ) = 1. Fie Fie 1 − y = (x ( x4 x2 ) mod q . Deci, Dec i, exist˘ exi st˘a k num˘ ar ar ˆıntreg ıntre g astfel astf el ˆıncˆ ınc at aˆt (x4 x2 )y = kq + kq + 1. q Deoarece β = 1 mod p, rezult˘a: a:
−
−
−
−
−
−
kq +1) β (x4 −x2 )y = β (kq+1) = ( 1)k β mod p =
−
− −
±β mod p.
239
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE Acest lucru conduce la: α(x1 −x3 )y = β (x4 −x2 )y mod p =
±β mod p.
Suntem ˆın una din urm˘atoarele atoarele dou˘ a situat¸ii: ¸ii: logα β = (x ( x1 logα β = (x1
− x3)(x )(x4 − x2 )−1 mod ( p − 1), 1),
)(x4 − x2 )−1 + q mod ( p − 1), 1), − x3)(x
Se verific˘a direct care dintre rezultate este cel corect. Cazul d = q . Deoar Deoarec ecee 0 x2 q 1 ¸si si 0 x4 q 1 rezult˘a faptul c˘a (q 1) x4 x2 q 1. Acest lucru arat˘a faptul c˘a este imposibil s˘a avem (x4 x2 , p 1) = q . Cazul d = p 1. Aceast Aceast caz este posibil numai numai dac˘a x4 = x2 , rezult˘a x1 = x3 . S-a ajuns la (x (x1 , x2 ) = (x ( x3 , x4 ), ceea ce contrazice ipoteza.
− − ≤ − ≤ − − − − 27.2 27.2..
≤
≤ −
≤
≤ −
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 27.2.1. 27.2.1. Fie f : Z2 n Z2 n o funct¸ie ¸ie hash pentru care problema 2n 1 CSP este satisf˘acut˘ acut˘a. a. Definim funct¸ia ¸ia g : Z2 Z2 n prin g(x1 x2 ) = f ( f (x1 x2 ). Ar˘atat atat¸i ¸i c˘a g nu satisface problema CSP. CSP.
→
→
||
⊕
Exercit¸iul ¸iul 27.2.2. 27.2.2. Fie p = 12347, α = 2, β = 8461 parametrii pentru funct¸ia ¸ia 5692 144 de dispersie dispersie Chaum Chaum - van Heijst Heijst - Pfitzmann. Pfitzmann. Fiind Fiind dat˘a coliziunea α β = 212 4214 α β mod p, s˘a se calculeze logα β . R˘ aspuns: logα β = 5689. Exercit¸iul ¸iul 27.2.3. 27.2.3. Fie p = 15083, α = 154, β = 2307 parametrii pentru funct¸ia ¸ia 7431 5564 de dispersie dispersie Chaum Chaum - van Heijst - Pfitzma Pfitzmann. nn. Fiind Fiind dat˘a coliziunea α β = 1459 954 α β mod p, s˘a se calculeze logα β .
1
x astfe Fiind dat˘ a o pereche valid˘ a (x, y ) este dificil de aflat x1 = as tfell ˆıncˆ ınc at a ˆt f (x1 ) = f (x).
240
FUNCT ¸ II DE DISPERSIE DISPER SIE
Capitolul 28
˘ SEMNATURA ELGAMAL 28.1 28.1..
Brev Br evia iarr teor teoret etic ic
Fie p un num˘ar ar prim pentru care problema logaritmului discret ˆın Z p este dificil˘a ∗ ¸si si α Z p un element primitiv. Cheia public˘a β se construie¸ constr uie¸ste ste din cheia privat˘a a: β = αa mod p. Semn˘ atura atura mesajului x, calculat˘a cu ajutorul valorii aleatoare (secrete) k Z p−1 , este definit˘ definit˘a ca fiind (γ, (γ, δ ) unde: γ = αk mod p ¸si si δ = (H ( H (x) aγ )k−1 mod ( p ( p 1), H ( ) fiind o funct¸ie ¸ie hash (H (H (x) = x dac˘ a nu este specificat˘a funct¸ia ¸ia hash). Semn˘ atura atura (γ, (γ, δ ) a mesajului x este verificat˘a dac˘ a are loc: γ δ H ( x ) mod p. β γ = α
∈
∈
−
·
28.2 28.2..
−
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 28.2.1. 28.2.1. S˘ a se semneze mesajul x = 101 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: atori: p = 467, α = 2, cheia privat˘a a = 127, alegˆand and valoarea k = 213. Rezolvare: Se calculeaz˘a β = αa mod p = 2 127 mod 467 = 132 Semn˘ atura atura mesajului x = 101 cu k = 213 (de remarcat faptul c˘a (213, (213, 466) = 1 1 − ¸si 213 mod 466 = 431) este: γ = αk mod p = 2 213 mo mod d 467 4 67 = 29 2 9 ¸si si δ = (101 241
− 127 · 29) · 431 mod 466 = 16.
˘ SEMN ATURA ELGAMAL
242
28.3 28.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 28.3.1. 28.3.1. S˘ a se semneze mesajul x = 100 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: atori: p = 163, α = 2, cheia privat˘a a = 127, alegˆand and valoarea k = 215. R˘ aspuns: Semn˘ atura atura mesajului este (γ, ( γ, δ ) = (52, (52, 24). Exercit¸iul ¸iul 28.3.2. 28.3.2. S˘ a se semneze mesajul x = 102 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: atori: p = 467, α = 2, cheia privat˘a a = 127, alegˆand and valoarea k = 213. R˘ aspuns: Semn˘ atura atura mesajului este (γ, ( γ, δ ) = (29, (29, 447). Exercit¸iul ¸iul 28.3.3. 28.3.3. S˘ a se semneze mesajul x = 57 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: atori: p = 97, α = 3, cheia privat˘a a = 27, alegˆand and valoarea k = 37. R˘ aspuns: Semn˘ atura atura mesajului este (γ, ( γ, δ ) = (66, (66, 39). Exercit¸iul ¸iul 28.3.4. 28.3.4. S˘ a se semneze mesajul x = 29 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: atori: p = 127, α = 5, cheia privat˘a a = 13, alegˆand and valoarea k = 19. R˘ aspuns: Semn˘ atura atura mesajului este (γ, ( γ, δ ) = (66, (66, 89). Exercit¸iul ¸iul 28.3.5. 28.3.5. S˘ a se semneze mesajul x = 78 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: atori: p = 131, α = 7, cheia privat˘a a = 19, alegˆand and valoarea k = 17. R˘ aspuns: Semn˘ atura atura mesajului este (γ, ( γ, δ ) = (3, (3, 93). Exercit¸iul ¸iul 28.3.6. 28.3.6. Mesajul x = 57 a fost semnat cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: atori: p = 97, α = 3, β = 70, obt¸inˆ ¸inˆandu-se andu-se semn˘ atura atura (γ, (γ, δ ) = (66, (66, 39). Este aceasta a ceasta o semn˘ sem n˘atur˘ atur˘a valid˘a? a? R˘ aspuns: Semn˘ atura atura este valid˘a deoarece se satisface relat¸ia ¸ia de verificare β γ γ δ mod p = αx mod p = 89.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
243
Exercit¸iul ¸iul 28.3.7. 28.3.7. Mesajul x = 34 a fost semnat cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: atori: p = 131, α = 7, β = 16, obt¸inˆ ¸inˆandu-se andu-se semn˘ atura atura (γ, (γ, δ ) = (3, (3, 110). Este aceasta a ceasta o semn˘ semn ˘atur˘ atur˘a valid˘a? a? R˘ aspuns: Semn˘ atura atura nu este valid˘a deoarece nu se satisface relat¸ia ¸ia de verificare x mod p = 4; α mod p = 9.
β γ γ δ
Exercit¸iul ¸iul 28.3.8. 28.3.8. Mesajul x = 78 a fost semnat cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: atori: p = 131, α = 7, β = 16, obt¸inˆ ¸inˆandu-se andu-se semn˘ atura atura (γ, (γ, δ ) = (3, (3, 93). Este aceasta o semn˘atur˘ atur˘ a valid˘a? a? R˘ aspuns: Semn˘ atura atura este valid˘a deoarece se satisface relat¸ia ¸ia de verificare β γ γ δ mod p = αx mod p = 61.
244
˘ SEMN ATURA ELGAMAL
Capitolul 29
˘ SEMNATURA DSA/ECDSA 29.1 29.1..
Brev Br evia iarr teor teoret etic ic
−
Fie p un num˘ ar ar prim de 512 bit¸i ¸i ¸si q un factor prim de 160 bit¸i ¸i ai lui p 1 ¸si ∗ α Z p o r˘adacin˘ adacin˘ a primitiv˘ primitiv˘ a de ordin q a unit un it˘˘at at¸ii. ¸ii. Cheia public˘a β se construie¸ constr uie¸ste ste din cheia privat˘a a: β = αa mod p. Semn Semn˘˘atura atura ∗ mesajului x, calculat˘ calculat˘ a cu a jutorul jutorul valorii aleatoare aleatoare (secrete) (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 ¸ie hash (H (H (x) = x dac˘ a nu este specificat˘a funct¸ia ¸ia hash). Semn˘ atura atura (γ, (γ, δ ) a mesajului x este verificat˘a dac˘ a are loc urm˘atoarea atoarea egalitate, 1 1 − − unde e1 = H (x)δ mod q ¸si si e2 = γδ mod q : (αe1 β e2 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 ¸ie se lucreaz˘a pe curb˘a eliptic˘a E peste Z q . Elementele Elementele necesare algoritmului sunt: G(xG , yG ) generatorul punctelor de pe curba eliptic˘a; a; n num˘ arul elementelor de pe curba eliptic˘a (sau ordinul lui G dac˘ arul a G nu este generator); Ln num˘arul arul de bit¸i ¸i ai lui n; dA cheia privat˘a,d a,dA [1, [1, n]; QA = dA G cheia public˘a. a. ˆIn contexul celor de mai sus, algoritmul ECDSA este urm˘atorul: PASUL 1. Se calculeaz˘a e = H (M ). M ). Fie Fie z cei cei mai semnificativi Ln bit¸i ¸i ai lui e. PASUL 2. Se alege valoarea valoarea aleatoare aleatoare1 k in intervalul [1, [1, n 1].
∈
∈
·
∈
−
1
valoarea k se nume¸ste ste cheie efemer˘a. a.
245
˘ SEMN ATURA DSA/ECDSA
246
PASUL 3. r = x1 mod n, unde (x (x1 , y1 ) = kG. kG . Dac˘ Dac˘ a r = 0 atunci revenim la PASUL 2. PASUL 4. s = k −1 (z + rdA ) mod n. Dac˘a r = 0 atunci revenim la PASUL 2. PASUL 5. Semn˘ atura atura este (r, (r, s). Verificarea semn˘aturii aturii ECDSA (r, (r, s se realizeaz˘a dup˘ a urm˘atorul atorul algoritm. algoritm. PASUL 1. Dac˘ a r, s / [1, [1, n] semn˘atura atura este invalid˘a. a. PASUL 2. Fie e = H (M ), M ), z cei mai semnificativ semnificativii Ln bit¸i ¸i ai lui e. 1 − PASUL 3. Se calculeaz˘a: a: w = s mod n. PASUL 4. Se calculeaz˘a: a: u1 = zw mod n ¸si si u2 = rw mod n. PASUL 5. Fie (x (x1 , y1 ) = u1 G + u2 QA . PASUL 6. Semn˘ atura atura este valid˘a dac˘a ¸si si numai numa i dac˘ dac ˘a r = x1 mod n.
∈
29.2 29.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 29.2.1. 29.2.1. S˘ a se semneze mesajul x = 100 cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: atori: p = 7879, q = 101, α = 170, valoa aloarea rea aleatoare utilizat˘ a k = 50, cheia secret˘a fiind a = 75. Verificat¸i ¸i rezultatul obt¸inut. ¸inut. Rezolvare: Se calculeaz˘a: a: γ = (α ( αk mod p) mod q = (17050 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 = 17075 mod 7879 = 4567. e1 = xδ −1 mod q = 100 42−1 mod 101 = 100 89 mod 101 = 12. e2 = γδ −1 mod q = 94 42−1 mod 101 = 94 89 mod 101 = 84. Se obt¸ine: ¸ine: e (α 1 β e2 mod p) mod q = (17012 456784 mod 7879) mod 101 = 2518 mod 101 = 94 = γ .
·
·
·
·
·
29.3 29.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 29.3.1. 29.3.1. S˘ a se semneze mesajul x = 101 cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: atori: p = 7879, q = 101, α = 170, valoa aloarea rea aleatoare utilizat˘ a k = 50, cheia secret˘a fiind a = 75. Verificat¸i ¸i rezultatul obt¸inut. ¸inut. R˘ aspuns: Semn˘ atura atura mesajului este (γ, ( γ, δ ) = (94, (94, 40). Cheia Cheia publi public˘ c˘ a este β = 4567.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
247
Exercit¸iul ¸iul 29.3.2. 29.3.2. S˘ a se semneze mesajul x = 102 cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: atori: p = 7879, q = 101, α = 170, valoa aloarea rea aleatoare utilizat˘ a k = 50, cheia secret˘a fiind a = 75. Verificat¸i ¸i rezultatul obt¸inut. ¸inut. R˘ aspuns: Semn˘ atura atura mesajului este (γ, ( γ, δ ) = (94, (94, 38). Cheia Cheia publi public˘ c˘ a este β = 4567. Exercit¸iul ¸iul 29.3.3. 29.3.3. S˘ a se semneze mesajul x = 75 cu ajutorul algoritmului DSA specificat specificat de parametrii parametrii urm˘atori: atori: p = 131, q = 13, α = 7, 7 , a = 3, valoarea aloarea aleatoare aleatoare utilizat˘ a k = 11. Verificat¸i ¸i rezultatul obt¸inut. ¸inut. R˘ aspuns: Semn˘atura atura mesajului este (γ, δ ) = (10, (10, 6). Totu¸si, si, semn˘atura atura nu se ˆ verific˘a pentru ca ord( ord(α) = 65 ¸si si nu q = 13. In concluzie, algoritmul algoritmul DSA este setat impropriu. Exercit¸iul ¸iul 29.3.4. 29.3.4. Mesajul x = 502 a fost fost semn semnat at cu ajutor ajutorul ul algor algorit itmu mulu luii DSA specificat de parametrii parametrii urm˘atori: atori: p = 617, q = 11, α = 113, β = 489, valoarea aleatoare aleatoare utilizat˘ utilizat˘ a k = 21 ¸si si s-a obt¸inut ¸inut semn˘atura atura (γ, (γ, δ ) = (3, (3, 10). Este Este aceast aceast˘ a˘ semn˘ atur˘ atur˘ a valid˘a? a? R˘ aspuns: Semn˘ atura atura este valid˘a deoarece se satisface relat¸ia ¸ia de verificare e e (α 1 β 2 mod p) mod q = γ = 3. 3. Exercit¸iul ¸iul 29.3.5. 29.3.5. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: atori: p = 7879, q = 101, α = 170, β = 4567, valoarea aleatoare utilizat˘ a k = 50 5 0 ¸si si s-a obt¸inut ¸inut semn˘atura atura (γ, (γ, δ ) = (94, (94, 78). Este Este aceast˘ aceast˘ a semn˘ atur˘ atur˘ a valid˘a? a? R˘ aspuns: Semn˘ atura atura nu este valid˘a deoarece nu se satisface relat¸ia ¸ia de verificare mod p) mod q = γ .
(αe1 β e2
Exercit¸iul ¸iul 29.3.6. 29.3.6. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: atori: p = 7879, q = 101, α = 170, β = 4567, valoarea aleatoare utilizat˘ a k = 50 5 0 ¸si si s-a obt¸inut ¸inut semn˘atura atura (γ, (γ, δ ) = (94, (94, 44). Este Este aceast˘ aceast˘ a semn˘ atur˘ atur˘ a valid˘a? a? R˘ aspuns: Semn˘ atura atura este valid˘a deoarece se satisface relat¸ia ¸ia de verificare e e (α 1 β 2 mod p) mod q = γ = 94.
248
˘ SEMN ATURA DSA/ECDSA
Capitolul 30
PROTOCOLUL DIFFIE-HELLMAN 30.1 30.1..
Brev Br evia iarr teor teoret etic ic
Fie p un num˘ar 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: atorul: PASUL 1. A genereraz˘ a aleator a Z q∗ ¸si si trimite trim ite lui B valoarea RA = αa (mod p). p). PASUL 2. B genereraz˘ a aleator b Z q∗ ¸si si trimite trim ite lui A valoarea RB = αb (mod p). p). a ab PASUL 3. A calculeaz˘ a K = K A,B A,B = RB = α . b ab PASUL 4. B calculeaz˘ a K = K B,A B,A = RA = α .
−
∈
∈ ∈
30.2 30.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 30.2.1. 30.2.1. S˘a se specifice cheia rezultat˘a ˆın urma urm a aplic˘ apl ic˘arii 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 RA = αa (mod p) p) = 22009 mod 25307 = 5755. PASUL 2. B trimite lui A valoarea RB = αb (mod p) p) = 22010 mod 25307 = 11510. 249
250
PROTOCOLUL DIFFIE-HELLMAN
a 2009 mod 25307 = 21554. PASUL 3. A calculeaz˘ a K = K A,B A,B = RB = 11510 b 2010 mod 25307 = 21554. PASUL 4. B calculeaz˘ a K = K B,A B,A = RA = 5755
30.3 30.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 30.3.1. 30.3.1. S˘a se specifice cheia rezultat˘a ˆın urma urm a aplic˘ apl ic˘arii arii protocolului Diffie-Hellman specificat de parametrii: p = 25307, α = 2, a = 3578, b = 19956. R˘ aspuns: k = 3694. urm a aplic˘ apl ic˘arii arii protocolului Exercit¸iul ¸iul 30.3.2. 30.3.2. S˘a se specifice cheia rezultat˘a ˆın urma Diffie-Hellman specificat de parametrii: p = 25307, α = 2, a = 1989, b = 2009. R˘ aspuns: k = 12034. Exercit¸iul ¸iul 30.3.3. 30.3.3. S˘a se specifice cheia rezultat˘a ˆın urma urm a aplic˘ apl ic˘arii arii protocolului Diffie-Hellman specificat de parametrii: p = 17, α = 7, a = 9, 9 , b = 3. R˘ aspuns: k = 14. Exercit¸iul ¸iul 30.3.4. 30.3.4. S˘a se specifice cheia rezultat˘a ˆın urma urm a aplic˘ apl ic˘arii arii protocolului Diffie-Hellman specificat de parametrii: p = 10163, α = 652, a = 6026, b = 3510. R˘ aspuns: k = 7944. Exercit¸iul ¸iul 30.3.5. 30.3.5. S˘a se specifice cheia rezultat˘a ˆın urma urm a aplic˘ apl ic˘arii arii protocolului Diffie-Hellman specificat de parametrii: p = 63299, α = 49297, a = 5671, b = 59073. R˘ aspuns: k = 57286. Exercit¸iul ¸iul 30.3.6. 30.3.6. S˘a se specifice cheia rezultat˘a ˆın urma urm a aplic˘ apl ic˘arii arii protocolului Diffie-Hellman specificat de parametrii: p = 1319, α = 527, a = 1088, b = 584. R˘ aspuns: k = 352. Exercit¸iul ¸iul 30.3.7. 30.3.7. S˘a se specifice cheia rezultat˘a ˆın urma urm a aplic˘ apl ic˘arii arii protocolului Diffie-Hellman specificat de parametrii: p = 2099, α = 1023, a = 1496, b = 648. R˘ aspuns: k = 612.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
251
Exercit¸iul ¸iul 30.3.8. 30.3.8. S˘a se specifice cheia rezultat˘a ˆın urma urm a aplic˘ apl ic˘arii arii protocolului Diffie-Hellman specificat de parametrii: p = 1823, α = 776, a = 1515, b = 476. R˘ aspuns: k = 1555. Exercit¸iul ¸iul 30.3.9. 30.3.9. S˘a se specifice cheia rezultat˘a ˆın urma urm a aplic˘ apl ic˘arii arii protocolului Diffie-Hellman specificat de parametrii: p = 2207, α = 371, a = 839, b = 1358. R˘ aspuns: k = 731. Exercit¸iul ¸iul 30.3.10. 30.3.10. ˆIn urma aplic˘arii arii protocolului Diffie-Hellman, una dintre entit˘ at a¸ile ¸t ile care doresc s˘a genereze o cheie comun˘a alege parametrul parametrul secret secret a = 1 (sau b = 1). Cum poate p oate un atacator determina cheia ˆın ın acest caz?
252
PROTOCOLUL DIFFIE-HELLMAN
Capitolul 31
PROTOCOLUL BLOM 31.1 31.1..
Brev Br evia iarr teor teoret etic ic
Protocolul lui Blom asigur˘a implementarea principiului compartiment˘arii, ari i, ˆıntre ınt re oricare doi participant¸i, ¸i, dintr-o mult¸ime ¸ime de n utilizatori. utilizatori. Protocolul Protocolul se bazeaz˘ bazeaza˘ pe existent¸a ¸a unei autorit˘at a¸i ¸ti de ˆıncrede ınc redere re T . T . Fie n 3 num˘ arul arul de utilizatori utiliz atori ¸si si p n un num˘ar ar prim. prim. Cheia, Cheia, ce urmeaz urmeaz˘˘a a fi calculat˘a de oricare doi participant¸i ¸i este ∗ 1 un element din Z p . Vom nota prin k num˘ arul arul maxim de intru¸si si ˆımpo ım potr triva iva c˘arora arora poate fi asigurat˘ a protect¸ia. ¸ia. Vom exemplifica protocolul pentru k = 1. PASUL 0. T face face public: public: num˘ num˘ arul arul prim p ¸si si pentru fiecare utilizator A un num˘ar ar aleator rA Z p , rA = rB pentru orice A = B. PASUL 1. T genereaz˘ a aleatoriu trei numere a,b,c Z p ¸si si form fo rmea eaz˘ z˘a polinomul2 :
≥
∈
≥
∈
f ( f (X, Y ) Y ) = a + b(X + Y ) Y ) + cXY cX Y mod p. PASUL 2. Pentru fiecare utilizator A, T va construi polinomul: gA (X ) = f ( f (X, rA ) mod p, pe care ˆıl ıl va transmite, cu asigurarea confident¸ialit˘ ¸ialit˘ at a¸ii, ¸t ii, c˘atre atre A. PASUL 3. Cheia stabilit˘a de c˘atre atre A ¸si si B va fi: K A,B f (rA , rB ). A,B = K B,A B,A = f ( 1
numit ¸si si nivel de compartimentare. compartime ntare. k a X i Y j mod pentru k arbitrar polimonul utilizat ˆın cadrul protocolului este f (X, Y ) = i,j =0 i,j p, ai,j ∈ Zp , ai,j = aj,i pentru orice i,j. 2
253
254
PROTOCOLUL BLOM
Observat¸ia ¸ia 31.1.1. 31.1.1. Protocolul Blom, pentru k = 1, este necondit¸ionat ¸ionat sigur ˆımpotr ımp otriva iva oric˘ ori c˘arui arui atac individual. Cu alte cuvinte, cuvinte, orice alt participan participantt C nu poate determina, din valorile publice rA ¸si si rB , cheia K A,B utili zat ˆın schema A,B . Acesta este utilizat de protect¸ie, ¸ie, utilizat˘a de HDCP (High-bandwidth Digital Content Protection), ˆın generarea cheilor dintre surs˘a ¸si si destin des tinat at¸ie ¸ie (playere HD DVD sau televiziunea HD).
31.2 31.2..
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 31.2.1. 31.2.1. Specificat¸i ¸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 rA = 12, rB = 7 ¸si rC = 1. Valorile alorile alese de c˘atre atre T fiind a = 8, b = 7, 7 , c = 2. 2. Rezolvare: T construie¸ constr uie¸ste ste polinomul: pol inomul: f ( f (X, Y ) Y ) = 8 + 7(X 7( X + + Y ) Y ) + 2X 2 X Y. Polinoamele specifice fiec˘arui arui utilizator utilizator sunt: sunt: gA (X ) = 7 + 14X, 14X, gB (X ) = 6 + 4X, 4X, gC (X ) = 15 + 9X. 9X. Cheile de compartimentare (secrete) sunt: K A,B 3 , K A,C 4 , K B,C 10 . A,B = 3, A,C = 4, B,C = 10. A poate calcula K AB AB prin: gA (rB ) = 7 + 14 7 mod 17 = 3. 3.
·
B poate calcula K BA BA prin:
·
gB (rA ) = 6 + 4 12 mod 17 = 3. 3.
31.3 31.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 31.3.1. 31.3.1. Specificat¸i ¸i cheile cheile rezultate rezultate ˆın urma protocolului protocolului Blom, ce asigur˘ a compartimentarea comparti mentarea ˆıntre trei utilizatori utiliza tori A,B,C, caracterizat de p = 29, k = 1, cheile publice ale acestora fiind rA = 1, rB = 2 ¸si rC = 3. Valorile alorile alese de c˘atre atre T fiind a = 13, b = 11, c = 17.
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
255
R˘ aspuns. Polinoamele secrete sunt gA (X ) = 324+28X, aspuns. 324+28X, gB (X ) = 6+16X, 6+16X, gC (X ) = 17 + 4X 4X . Cheile rezultate sunt K AB 22 , K AC 21,, K BC 25 . AB = 22, AC = 21 BC = 25. Exercit¸iul ¸iul 31.3.2. 31.3.2. Specificat¸i ¸i cheile cheile rezultate rezultate ˆın urma protocolului protocolului Blom, ce asigur˘ a compartimentarea comparti mentarea ˆıntre trei utilizatori utiliza tori A,B,C, caracterizat de p = 29, k = 1, cheile publice ale acestora fiind rA = 13, rB = 11 ¸si si rC = 17. Valorile alese de c˘atre atre T fiind a = 1, b = 2, 2 , c = 3. 3. R˘ aspuns. Polinoamele secrete sunt gA (X ) = 27+12X, aspuns. 27+12X, gB (X ) = 23+6X, 23+6X, gC (X ) = 6 + 24X 24X . Cheile rezultate sunt K AB 14 , K AC 28,, K BC 9. AB = 14, AC = 28 BC = 9.
256
PROTOCOLUL BLOM
Capitolul 32
PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR 32.1 32.1..
Brev Br evia iarr teor teoret etic ic
Schema lui Shamir ˆı¸si si propune propun e s˘a partajeze cheia de cifrare S = Z q la o mult¸ime ¸ime de n participant¸i ¸i (q n + 1) astfel ast fel ˆıncˆat at pentru reconstruct¸ia ¸ia cheii s˘a fie nevoie de cooperarea a cel put¸in ¸in k dintre participant¸i. ¸i. Init¸ializare. ¸ializare. n num˘ arul arul participant participant¸ilor, ¸ilor, k pragul minim de reconstruct¸ie ¸ie al secretului S. Se aleg n valori (publice) distincte x1 , . . . xn ¸si si se distribuie distrib uie fiec˘arui arui participant i valoarea xi .
∈K
≥
PASUL 1. Se alege de c˘atre atre autoritatea de distribut ¸ie a secretului T P (Trusted Party) un num˘ar ar prim q suficient de mare (q ( q n + 1). 1). Se genereaz genereaz˘˘a aleatoriu , de c˘atre atre autoritatea de distribut¸ie ¸ie a secretului T P , P , un polinom de grad k 1:
≥
−
k 1
P ( P (X ) =
−
ai X i + S mod q.
i=1
PASUL 2 (distribut¸ia ¸ia secretului secretului). ). Autoritatea Autoritatea T P distribuie participantului i valoarea yi = P ( P (X i ), i = 1, . . . , n . PASUL 3 (recuperarea (recuperarea secretului secretului). ). Cu informat¸ia ¸ia oferit˘a de k participant¸i ¸i se poate recupera, prin rezolvarea unui sistem liniar de k ecuat¸ii, ¸ii, valoarea S. Dac˘ a num˘arul arul participant participant¸ilor ¸ilor care pun la dispozit¸ie ¸ie informat¸ia ¸ia yi este mai mic decˆat at k, atunci nu se poate determina S. 257
258
32.2 32.2..
PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 32.2.1. 32.2.1. S˘ a se partajaze secretul S = 13, pentru pentru o schema schema majoritar ma joritar˘˘a k = 3 din n = 5 participant¸i, ¸i, utilizˆand and algoritmul lui Shamir specificat de q = 17, valorile publice xi = i, i = 1, 1 , . . . , 5 ¸si si valorile aleatoare aleato are a[1] = 10, a[2] = 2. Rezolvare: Se obt¸ine ¸ine polinomul P ( P (X ) = a2 X 2 + a1 X + X + S = 2X 2 X 2 + 10X 10X + + 13. Secretul se partajeaz˘a ˆın: y1 = P (1) P (1) = (2 + 10 + 13) mod 17 = 8; y2 = P (2) P (2) = (8 + 20 + 13) mod 17 = 7; y3 = P (3) P (3) = (18 + 30 + 13) mod 17 = 10; y4 = P (4) P (4) = (32 + 40 + 13) mod 17 = 0; y5 = P (5) P (5) = (50 + 50 + 13) mod 17 = 11. 11 .
32.3 32.3..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 32.3.1. 32.3.1. S˘ a se partajaze secretul S = 4, pentru o schema majoritar˘a k = 3 din n = 5 participant¸i, ¸i, utilizˆand and algoritmul lui Shamir specificat de q = 17, valorile publice xi = i, i = 1, 1 , . . . , 5 ¸si si valorile aleatoare aleato are a[1] = 10, a[2] = 2. R˘ aspuns: 16 16,, 15 15,, 1, 8, 2 .
{
}
Exercit¸iul ¸iul 32.3.2. 32.3.2. S˘ a se partajaze secretul S = 0, pentru o schema majoritar˘a k = 3 din n = 5 participant¸i, ¸i, utilizˆand and algoritmul lui Shamir specificat de q = 17, valorile publice xi = i, i = 1, 1 , . . . , 5 ¸si si valorile aleatoare aleato are a[1] = 10, a[2] = 2.
{
}
R˘ aspuns: 12 12,, 11 11,, 14 14,, 4, 15 . Exercit¸iul ¸iul 32.3.3. 32.3.3. S˘a se reconstituie secretul S , din valorile 12 12,, 4, 15 , ¸stii st iind nd c˘ a acestea au fost obt¸inute ¸inute cu ajutorul schemei majoritare (5, (5 , 3) a lui Shamir specificat˘ a de q = 17 ¸si si valorile publice public e 1, 4, 5 .
{
{
}
}
R˘ aspuns: S = 0.
{
}
Exercit¸iul ¸iul 32.3.4. 32.3.4. S˘a se reconstituie secretul S , din valorile 1, 8, 2 , ¸stii st iind nd c˘a acestea au fost obt¸inute ¸inute cu ajutorul schemei majoritare (5, (5, 3) a lui Shamir specificat˘ specificat˘ a de q = 17 ¸si si valorile publice public e 3, 4, 5 .
{
R˘ aspuns: S = 4.
}
259
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
{
}
Exercit¸iul ¸iul 32.3.5. 32.3.5. S˘a se reconstituie secretul S , din valorile 10 10,, 0, 11 , ¸stii st iind nd c˘ a acestea au fost obt¸inute ¸inute cu ajutorul schemei majoritare (5, (5 , 3) a lui Shamir specificat˘ a de q = 17 ¸si si valorile publice public e 3, 4, 5 .
{
}
R˘ aspuns: S = 13 13.. Exercit¸iul ¸iul 32.3.6. 32.3.6. Ce se ˆıntˆ ınt ˆampl˘ ampl˘ a dac˘a ˆın protocolul lui Shamir se renunt¸˘ ¸a˘ la condit¸ia ¸ia de primalitate asupra lui q ?
260
PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR
Capitolul 33
SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT CRT 33.1 33.1..
Brev Br evia iarr teor teoret etic ic
Una dintre primele scheme de partajare a secretelor, bazate pe CRT, este schema Mignotte . Aceasta Aceasta presupune presupune faptul c˘a ¸sirul ru l p1 < p 2 < .. . < pn este un ¸sir sir Mig Mignot notte: te: k 2
−
i=0
k
pn−i <
pi .
i=0
Secretul S , ce trebuie trebuie partajat, partajat, trebui trebuiee s˘ a apart¸in˘ ¸in˘a intervalului intervalului1 (β, α), unde −2 pn−i . Valor α = ki=0 pi ¸si si β = ki=0 aloril ilee ce se dist distri ribu buie ie fiec˘ aruia aruia dintra dintra cei n participant¸i ¸i sunt S mod pi , i = 1, . . . , n. n. Recuperarea Recuperarea secretului secretului se realizeaz realizeaz˘˘a, a , de c˘atre atre k participant¸i, ¸i, prin rezolvarea, cu ajutorul CRT, a sistemului S = S ij mod pi , j = 1, 1 , . . . , k. k.
33.2 33.2..
Exer Exerci cit¸ii ¸t ii rezolvate
{
}
Exercit¸iul ¸iul 33.2.1. 33.2.1. Fie Fi e ¸sirul si rul 5, 7, 9, 11 11,, 13 o secvent¸˘ ¸a˘ (5, (5, 3) Mignotte , α = 11 13, β = 5 7 9, secretul S = 235 (α, β ). ). Care sunt secretele secretele ce sunt distribuite distribuite celor cinci participant participant¸i? ¸i?
·
· ·
∈
1
Dac˘ a lungimea intervalului este mic˘a, a, atunci schema nu este practic˘a, a, existˆ and and posibilitatea ca printre valorile valoril e distribuite dis tribuite s˘a este coliziuni. coliziuni .
261
262
SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT
Rezolvare: S 1 = S mod 5 = 0, 0 , S 2 = S mod 7 = 5, 5, S 3 = S mod 9 = 6, 6 , S 4 = S mod 11 = 10, 10, S 5 = S mod 13 = 12. Spre exemplu, grupul P 1 , P 3 , P 4 trebuie s˘a rezolve problema:
{
ce are solut¸ie ¸ie unic˘a 285.
x x x
≡ ≡ ≡
0 mo d 5 6 mo d 9 10 mo d 11
}
Capitolul 34
CANALE SUBLIMINALE 34.1 34.1..
Brev Br evia iarr teor teoret etic ic
ˆIn sistemul de autentificare ElGamal, A alege un num˘ar ar prim mare q ¸ si un elem el ement ent q ¸si primitiv α Z q . Valorile q ¸si si α sunt publice. Printr-un canal sigur, A ¸si si B stabilesc un num˘ar ar p Z q . Protocolul prin care A transmite lui B mesajul subliminal y Z q prin utilizarea textului x este urm˘atorul: atorul: PASUL 0. A calculeaza β = αy mod q . PASUL 1. Se determin˘a γ ca solut¸ie ¸ie a ecuat¸iei ¸iei x = p β + β + y γ mod (q (q 1). 1). trimite lui B tripletul tripletul (x,β,γ ). ). PASUL 2. A trimite a a = (α ( α p )β β γ mod q. PASUL 3. B calculeaz˘ PASUL 4. Dac˘ a a = αx mod q atunci B decide c˘a mesajul este autentic. ( x p β ) γ −1 mod (q (q 1). 1). PASUL 5. B recupereaz˘a mesajul subliminal: y = (x
∈ ∈
∈
·
·
−
·
− · ·
34.2 34.2..
−
Exer Exerci cit¸ii ¸t ii rezolvate
Exercit¸iul ¸iul 34.2.1. 34.2.1. Se consider˘a canalul subliminal ElGamal dat de q = 11 ¸si si α = 2. 2. S˘a presupunem c˘a se dore¸ste ste transmiterea mesajului y = 9 folosind cheia secret˘a k = 0 ¸si si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul de comunicat¸ie? ¸ie? Rezolvare: PASUL 0. A calculeaz˘ a β = αy mod q = 2 9 mod 11 = 6. PASUL 1. Se determin˘a γ ca solut¸ie ¸ie a ecuat¸iei ¸iei x = p β + y γ mod (q (q 1), 1 − echivalent cu 5 = 0+9γ 0+9 γ mod 10 de unde rezult˘a γ = 5 9 mod 10 = 5 9 mod 10 = 5. PASUL 2. A trimite trimite lui B tripletul tripletul (x,β,γ ) = (5, (5 , 6, 5).
·
263
·
·
·
−
264
34.3 34.3..
CANALE SUBLIMINALE
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 34.3.1. 34.3.1. Se consider˘a canalul subliminal ElGamal dat de q = 11 ¸si si α = 2. 2. S˘a presupunem c˘a se dore¸ste ste transmiterea mesajului y = 9 folosind cheia secret˘a k = 8 ¸si si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul de comunicat¸ie? ¸ie?
{
}
R˘ aspuns: 5, 6, 3 . Exercit¸iul ¸iul 34.3.2. 34.3.2. Se consider˘a canalul subliminal ElGamal dat de q = 11 ¸si si α = 2. 2. S˘a presupunem c˘a se dore¸ste ste transmiterea mesajului y = 1 folosind cheia secret˘a k = 8 ¸si si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul de comunicat¸ie? ¸ie?
{
}
R˘ aspuns: 5, 2, 9 . Exercit¸iul ¸iul 34.3.3. 34.3.3. Se consider˘a canalul subliminal ElGamal dat de q = 11, α = 2 ¸si si cheia secret˘a k = 8. Se rec recep ept¸ioneaz˘ ¸t ioneaz˘ a mesajul 5, 6, 3 . Acesta cont¸ine ¸ine mesaje ascunse? ascunse?
{
}
R˘ aspuns: Mesajul recept¸ionat ¸ionat este autentic, mesajul subliminal fiind y = 9. Exercit¸iul ¸iul 34.3.4. 34.3.4. Se consider˘a canalul subliminal ElGamal dat de q = 11, α = 2 ¸si si cheia secret˘a k = 8. Se rec recep ept¸ioneaz˘ ¸t ioneaz˘ a mesajul 5, 6, 2 . Acesta cont¸ine ¸ine mesaje ascunse? ascunse?
{
}
R˘ aspuns: Mesajul recept¸ionat ¸ionat nu este autentic. autentic. Exercit¸iul ¸iul 34.3.5. 34.3.5. Se consider˘a canalul subliminal ElGamal dat de q = 11, α = 2 ¸si si cheia secret˘a k = 8. Se rec recep ept¸ioneaz˘ ¸t ioneaz˘ a mesajul 5, 2, 9 . Acesta cont¸ine ¸ine mesaje ascunse? ascunse?
{
}
R˘ aspuns: Mesajul recept¸ionat ¸ionat este autentic, mesajul subliminal fiind y = 1. Exercit¸iul ¸iul 34.3.6. 34.3.6. Se consider˘a canalul subliminal ElGamal dat de q = 11, α = 2 ¸si si cheia secret˘a k = 0. Se rec recep ept¸ioneaz˘ ¸t ioneaz˘ a mesajul 5, 6, 5 . Acesta cont¸ine ¸ine mesaje ascunse? ascunse?
{
}
R˘ aspuns: Mesajul recept¸ionat ¸ionat este autentic, se ajunge la rezolvarea urm˘atoarei ecuat¸ii ¸ii 5 = 5 y mod 10 ce nu are solut¸ie ¸ie unic˘a, a, verificarea autenticit˘at a¸ii ¸tii se face prin
×
265
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
repetarea procedeului de construct¸ie ¸ie a mesajului ce se transmite. Se obt¸ine ¸ine mesajul ascuns y = 9. Exercit¸iul ¸iul 34.3.7. 34.3.7. ˆIn cadrul protocolui ElGamal, de transmitere a mesajelor subliminale, autentificatorul obt¸inut ¸inut γ nu este relativ prim cu q 1. Cum se rezolv˘a aceast˘ a spet¸˘ ¸a? a˘?
−
266
CANALE SUBLIMINALE
Capitolul 35
PRINCIPII CRIPTOGRAFICE Exercit¸iul 1. Metoda one-time pad (OTP) cifreaz˘ cifreaz˘a un mesaj m prin aplicarea 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 si c˘ a opera operat ¸ia t XOR cu zero nu modific˘ a nimic, nimic, rezult˘ ezult˘ a c˘ a metoda OTP las˘ a jum˘ atate din mesaj ˆın clar. Cu alte cuvinte, cuvinte, prin simpla observare observare a unui text cifrat cu aceast˘ a metod˘ a, un atacator cunoa¸ste ste jum˘ atate din bit ¸ii textului clar. Acest Acest lucru ˆınseamn˘ a, de fapt, c˘ a metoda OTP este una foarte slab˘ a? Cum Cum poate fi considerat ”‘perfect” un cifru bloc care cifreaz˘ a numai jum˘ atate din textul clar? Exercit¸iul 2. Pentru verificarea semn˘aturii aturii ElGamal ElGama l este necesar˘ n ecesar˘a efectuarea efect uarea opeo pex y rat¸iei ¸iei a b mod p unde a, b sunt fixate iar x, y sunt variabi vari abile. le. Ar˘at at¸i ¸i c˘a num˘ arul arul de ˆınmul mu l¸iri ¸tiri necesare pentru efectuarea acestui calcul este mai mic decˆat num˘ arul arul de x y operat¸ii ¸ii necesare pentru a calcula a b mod p prin dou˘a exponent¸ieri ¸ieri succesive. Exercit¸iul 3. Conside Con sider˘ r˘am am dou˘ dou a˘ numere prime p ¸si si q . Fie i p = p−1 mod q si iq = q −1 mod p iar n = p q . Care este valoarea rezultat˘a ˆın urma operat¸iei ¸iei q iq + p i p ? Putet¸i ¸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 ste semnarea semnare a a dou˘a mesaje cu algoritmul de semn˘atura atura El k k 1 2 Gamal. Cum putem calcula valorile g ¸si si g pentru a produce semn˘aturile aturil e ˆıntr-un timp mai scurt decˆat at cel necesar pentru a calcula dou˘ do u˘a semn˘aturi aturi secvent¸iale? ¸iale? Exercit¸iul 5. Consider˘am am protocolul Fiat-Shamir unde secretul s este ales astfel 2 ˆıncat aˆt ˆıncˆ ınc at aˆt vs = 1 mod n, v fiind cheia public˘ publica. ˘a. Protocolul este dup˘a cum urmez˘a: a: 267
268
PRINCIPII CRIPTOGRAFICE
• Alice alege un r aleato ale atorr ¸si si ˆıi trimite trim ite lui Bob x = r 2 mod n; aspunde cu un bit aleator e; • Bob r˘aspunde aspunde cu y = se r mod n; • Alice r˘aspunde • Bob verific˘a dac˘a y2 = vex mod n. Ar˘ atat atat¸i ¸ i c˘a valorile alorile rezultate rezultate ˆın urma protocolului, protocolului, adic˘ a {x,r,y},
defin defines escc o distribut¸ie ¸ ie ce poate fi simulat˘a f˘ar˘ ar˘ a a-l folosi pe s. Expl Explic icat at¸i ¸ i de ce acest lucru asigur˘a protocolului o securitate foarte bun˘a. 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); ¸i); cutia cont¸ine ¸ine o cheie necunoscut˘a k ¸si si acce ac cept pt˘˘a ca parametru un ˆıntre ınt regg r a c˘arui arui valoare poate fi setat˘a la 12, 11 sau 10 de c˘atre atre utilizator. Vi se permite s˘a introducet¸i ¸i ˆın cutie texte t exte clare dup˘a cum dorit¸i. ¸i. Cum at¸i ¸i proceda pentru a ataca aceast˘a implementare? Exercit¸iul 7. Un administrator de sistem are o cheie de 100 de bit¸i ¸i pe p e care dore¸ dor e¸ste ste s˘a o ˆımpart ımp art˘ a˘ celor doi utilizatori utiliz atori ˆın care are ˆıncredere ıncreder e ˆın ın mod egal. El dore¸ste ste ca accesul la informat¸ie ¸ie s˘a fie posibil˘a numai cˆand and cei doi coopereaz˘a. Cati ˆati bit¸i ¸i din cheie ar trebui s˘a dea fiec˘aruia aruia din cei doi utilizatori? Exercit¸iul 8. Pentru a gr˘abi abi verificarea semn˘aturilor aturilor si de tip RSA a mesajelor mi , se folose¸ folos e¸ste ste urm˘atoarea atoarea idee: se verific˘a dac˘a ( si )e = hash(m hash(mi ) mod n unde ”hash” reprezint˘a full domain hash - o schem˘a de semn˘atur˘ atur˘ a bazat˘ a pe RSA care maii ˆıntˆ ma ıntˆai ai aplic˘ a o funct¸ie ¸ie hash ¸si si apoi semn˘atura atura RSA. Ar˘atat atat¸i ¸i c˘a aceast˘ a idee nu este sigur˘a pentru un exponent e mic ¸si si propune prop unet¸i ¸t i o contram˘asur˘ asur˘a. a.
Exercit¸iul 9. De ce urm˘atorul atorul context este nesigur? nesigur? O autoritate autoritate de ˆıncredere ıncredere genereaz˘ a un modul RSA n a c˘arui arui factorizare r˘amˆ amˆ ane ane secret˘a. a. Autoritatea Autoritatea furnizeaz˘ furnizeaz˘ a fiec˘arui arui utilizator din sistem o pereche (e ( ei , di ) a¸sa sa ˆıncat ˆat ei di = 1 mod φ(n) unde i=j di = d j .
⇒
Exercit¸iul ¸iul 10. S˘a presupunem presupu nem c˘a cineva trimite mesaje mesa je cifrate cifrat e utilizˆand and DES ˆın modul de operare OFB cu o valoare init¸ial˘ ¸ial˘a secret˘a (fixat˘ a) a) I V . V . 1) Ar˘atat atat¸i ¸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 ¸iul 11. Dup˘ a ce a studiat protocolul Diffie-Hellman, un tˆan˘ an˘ ar ar criptograf decide s˘a ˆıl implementeze. Pentru a simplifica implementarea, el hot˘ ho t˘ar˘ ar˘a¸ a¸ste s˘a foloseasc˘a ∗ ˆ grupul aditiv (Z (Z p , +) ˆın lo cul grupului multiplicativ (Z (Z p , ). In calitate calitate de criptograf cu experient experient¸˘ ¸a, a˘, ce credet¸i ¸i despre acest protocol?
·
Exercit¸iul ¸iul 12. S˘ a presupunem c˘a Alice ¸si si Bob folosesc folose sc chei che i publice pu blice RSA cu acela¸ a cela¸si si modul n dar cu exponent¸i ¸i publici diferiti diferiti e1 ¸si si e2 . 1) Ar˘atat atat¸i ¸i c˘a Alice poate decripta mesa jele trimise t rimise lui Bob; 2) Ar˘atat atat¸i ¸i c˘a Alice poate decripta mesaje trimise c˘atre atre Alice Al ice ¸si si Bob dac˘a gcd( gcd(el , e2 ) = 1.
· −
Exercit¸iul ¸iul 13. Presupunem c˘a n = p q , unde p si q sunt numere prime distincte. 1) Calculat¸i ¸i S = n + 1 φ(n). 2) Care sunt r˘ad˘ ad˘ acinile acinile ecuat¸iei ¸iei x2 Sx + n? Dat¸i ¸i expresiile expresii le acestor acesto r r˘ad˘ ad˘acin ac inii ¸si si explicat¸i ¸ i cum pot fi g˘asite asite p ¸si si q cu ajutorul unui simplu algoritm algoritm pentru pentru calculul calculul r˘ad˘ ad˘ acinilor acinilor p˘ atrate atr ate ˆıntregi? ıntre gi? 3) Factorizat¸i ¸i n ˆın urm˘ ur m˘atoarele atoarele dou˘ a cazuri: a) n = 667, 667, φ(n) = 616; b) n = 15049, 15049, φ(n) = 14800.
−
Exercit¸iul ¸iul 14. S˘a construim construim un MAC folosind modul CFB de implement implementare, are, ˆın loc de modul CBC: fiind date blocurile de text clar α1 , . . . , αn, definim vectorul de int¸ializare ¸ializare β 0 = α1 . Apoi cifr˘am am secvent¸a ¸a de blocuri α2 , . . . , αn dup˘ a formulele: β i = αi+1
⊕ E (β i−1; K ).
ˆIn final, M AC (α1 . . . αn ) = E (β i−1 ; K ). ) . Ar˘atat atat¸i ¸i c˘a acesta este identic cu CBC MAC.
||
Exercit¸iul ¸iul 15. Pentru S-boxul S 5 din DES calculat¸i ¸i tendint¸a ¸a variabilei aleatoare: X 2
⊕ Y 1 ⊕ Y 2 ⊕ Y 3 ⊕ Y 4.
Exercit¸iul ¸iul 16. ˆIntr-un sistem de cifrare simetric, o cheie k este slab˘a dac˘a ek = dk . Determinat¸i ¸i toate cheile slabe ale sistemelor afine peste Z15 .
270
PRINCIPII CRIPTOGRAFICE
Capitolul 36
ATACURI ˆIN MEDIUL DE IMPLEMENTARE 36.1 36.1..
Brev Br evia iarr teor teoret etic ic
Atacurile Atacurile ˆın ın mediul de implement implementare are presupun presupun o serie de m˘asur˘ asur˘ atori atori hardware asupra asupra modului criptografic: criptografic: Atacuri prin m˘ asurarea timpului de execut ¸ie. Prin m˘asurarea asurarea timpului necesar efectu˘ arii unor operat ¸ii asupra cheii private , atacatorul poate determina exponent¸ii ¸ii utilizat¸i ¸i ˆın ın protocolul Diffie-Hellman, factorul RSA (ˆın special asupra algoritmului RSA ce folose¸ f olose¸ste ste pentru semn˘atur˘ atur˘ a lema chinezesc˘a a resturilor CRT), CRT), precum ¸si si o serie de alte sisteme criptografice cum ar fi algoritmul de semn˘atur˘ a digital˘ a DSS. Atacuri prin m˘ asurarea asurarea puterii consumate. Atacul cu ajutorul analizei analizei simple a puterii puterii (SPA) (SPA) const˘ a ˆın m˘asurarea asurarea puterii puterii consumate consumate de dispozitiv dispozitiv ˆın timpul operat¸iei iei crip criptog togra rafic fice. e. Ac Aces estt tip tip de atac atac se aplic˘ aplic˘ a, a , de regul regul˘˘a, a, dispozitivel dispozitivelor or cu surs˘a de tensiune exterioar˘a (ca de exemplu smart-cardur smart-cardurile). ile). Consumul Consumul de putere depinde de instruct¸iunea ¸iunea executat˘ executat˘ a. a. Astfel Astfel,, monitoriz monitorizˆ aˆnd consumul de putere, se and poate deduce secvent¸a ¸a de instruct¸iuni ¸iuni (codul surs˘a). a). Dac˘ a secvent¸a ¸a de instruct¸iuni ¸iuni depinde de lungimea cheii, atunci consumul de putere poate da informat¸ii ¸ii despre ˆ cheie. In majoritatea procesoarelor, patternul puterii consumate de o instruct¸iune ¸iune depinde depinde ¸si si de valoarea valoarea operanzilor operanzilor (de exemplu exemplu setarea setarea unui unui bit ˆıntr-un ıntr-un registru registru consum˘ a mai mult˘a energie decˆat at ¸stergerea stergerea acestuia). M˘asur˘ asur˘ atori atori efectuate asupra mai multor intr˘ari ari pot deduce deduce valoarea aloarea operandului. operandului. Tehnica ehnica se nume¸ nume¸ste ste analiza diferent ¸ial˘ a a puterii (DPA). Atacuri cu ajutorul defect ¸iunilor (erorilor) hardware. Echipamentele hardware pot genera erori (tranzient (tranziente, e, latente latente sau induse) induse) ˆın timpul efectuarii unor operat¸ii ¸ii aritmetice. aritmetice. Prin exploatarea exploatarea rat¸ional˘ ¸ional˘ a a acestor erori se pot recupera cheia privat˘a 271
272
ATACURI ˆIN MEDIUL DE IMPLEMENTARE
pentru algoritmii de semn˘atur˘ atur˘ a RSA ¸si si Rabin. O serie de protocoale protocoale criptografic criptograficee cum ar fi Fiat-Schamir ¸si si Schnorr se pot p ot sparge prin folosirea judicioas˘a a rezultatelor acestor erori. Analiza diferent ¸ial˘ a a defect ¸iunilor. iunilor. Analiza Analiza diferent diferent ¸ial˘ a a defect ¸iunilor (DFA) este o schem˘a ce se utilizeaz˘a pentru recuperarea cheilor secrete ale unui sistem criptografic dintr-un dintr-un dispozitiv HSM (Hardware (Hardware Security Security Module) securizat securizat fizic. Modelul de defect este acela al defectelor defectelor tranzient tranzientee (aleatoare) (aleatoare) ¸si si al defectelor defectelor induse. Metoda Meto da folose¸ f olose¸ste ste la identificarea identifica rea cheilor chei lor ˆın cazul ca zul utiliz˘ ut iliz˘arii arii unor cifruri cunoscute (de exemplu exemplu DES) ¸si/sau si/sau a unor cifruri cifruri cu algoritm algoritm necunoscut necunoscut sau la reconstruc reconstructt¸ia ¸ia algoritmul algoritmului ui (cu o structur˘ structur˘ a cunoscut˘ cunoscut˘ a). a).
36.2 36.2..
Exer Exerci cit¸ii ¸t ii propuse
Exercit¸iul ¸iul 36.2.1. 36.2.1. Ar˘ atat atat¸i ¸i c˘a tehnica DPA poate fi accelerat˘a folosind un compromis spat¸iu-timp. ¸iu-timp. Rezolvare: Facet¸i ¸i referire la articolul Computational Improvements to Differential Side Channel Analysis, NATO Advanced Research Workshop on Security and Embedded Systems, August 2005. Exercit¸iul ¸iul 36.2.2. 36.2.2. Descriet¸i ¸i un atac at ac prin pri n m˘asurarea asurarea timpului timpul ui de execut¸ie ¸ie asupra unei proceduri de comparat¸ie ¸ie a parolelor. Exercit¸iul ¸iul 36.2.3. 36.2.3. Pentru a proteja implementarea RSA de un atac prin m˘asurarea timpului de execut¸ie, ¸ie, dezvoltatorii decid s˘a adauge la finalul procedurii un timp de a¸steptare stepta re de d e durat˘ du rat˘a aleatoare, aleato are, cuprins ˆıntre 0 ¸si si n tacturi de ceas. ˆIn acest fel, se va elimina total riscul atacului sau acesta va fi doar ˆıncetinit? Exercit¸iul ¸iul 36.2.4. 36.2.4. Numit¸i ¸i 3 factori care determin˘a forma graficului puterii consumate de un microprocesor. Rezolvare: Instruct¸iunea, ¸iunea, datele manipulate de instruct¸iune ¸iune ¸si si adresa adr esa instruct in struct¸iunii. ¸iunii.
Capitolul 37
RESURSE SOFTWARE 37.1 37.1..
Cryp CrypT Tool
CrypTool este un pachet software dedicat simul˘arii arii ¸si si analizei an alizei de mecanisme me canisme criptologice tologice ˆıntr-un ıntr-un mod ilustrativ. ilustrativ. De la rolul init¸ial ¸ial de instruire ˆın domeniul securit˘at a¸ii ¸tii personalului p ersonalului diverselor companii private, CrypTool CrypTool a evoluat ˆıntr-un ıntr-un proiect educat¸ional ¸ional de tip open source cu aplicat¸ii ¸ii ˆın domeniul domeni ul criptografiei cripto grafiei ¸si si ma majorit joritatea atea domeniilor conexe. Produsul vizeaz˘a ˆın primul pri mul rˆand an d stu s tude dent nt¸ii ¸ii facult˘at a¸ilor ¸tilor de matematic˘ a ¸si si inform inf ormati atic˘ c˘a, a, a firmelor ce activeaz˘a ˆın domeniul domen iul securitat securi tat¸ii ¸ii informat¸iilor ¸iilor precum ¸si si a dezvoltatorilor de aplicat¸ii ¸ii sau utlizatorilor de calculatoare ˆın general care doresc dor esc sa-¸si si dobˆ dob ˆandeasc˘ andeasc˘ a bagajul baga jul minimal de cuno¸stint stint¸e ¸e criptografice. ˆIn prezent produsul este gratuit ¸si si disponibil ˆın mai multe versiuni, prima dintre acestea fiind CrypTool 1. 1.4.x dezvoltat˘ a integral ˆın mediul C ++. ++. Aceasta s-a extins ulterior ˆın alte dou˘a versiuni, ˆınc˘a aflate aflate la nivel nivel beta, ce folosesc folosesc standarde standarde de dezvoltare de ultim˘a generat¸ie ¸ie aflˆandu-se andu-se ˆıntr-o continu˘a actualizare. Astfel, ˆın iulie 2008, s-a lansat CryptTool 2. 2.0 dezvoltat ˆın mediul C #, #, versiune ce furnizeaz˘a o paleta mai larg˘ a de funct¸ionalit˘ ¸ionalit˘ at a¸i ¸ti combinat˘ a cu o interfat¸˘ ¸a˘ grafic˘a cu facilit˘ facilitat a˘¸i ¸ti de tip ”drag-and-drop”. La ˆınceputul lui 2010 2 010 s-a lansat versiunea JCrypTool 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 si c˘a folo¸se¸ se¸ste ste din plin puternicul puterni cul instrument instrum ent FlexiProv FlexiProvider ider prin care se pot ˆınc˘ arca arca cu u¸surint surint¸˘ ¸a˘ module criptografice criptografice ˆın orice aplicat¸ie ¸ie construit˘a peste JCA (Java Cryptography Architecture). CrypTool CrypTool a fost fo st dezvoltat ˆın colaborare colab orare cu institut¸ii ¸ii de ˆınv˘at a¸˘ ¸tamˆ a˘mˆ ant ant devenind astfel un soft educat¸ional ¸ional ¸si si un bun instrumen instrumentt de init¸iere ¸iere ˆın domeniul criptologiei, folosindu-se ˆın ın prezent cu succes in multe universit˘at a¸i ¸ti de prestigiu. Datorit˘a mama nipul˘ arii arii facile a mecanismelo mecanismelorr criptologice criptologice precum precum ¸si si a vizualiz˘ vizualiz˘arii arii ¸si si prezent˘arii arii ˆıntr-o ıntr- o manier˘ man ier˘a facil˘ a ¸si si inedit ine dit˘˘a a rezultatelor, CrypTool poate reprezenta compo273
274
RESURSE SOFTWARE
nenta practic˘a a cursurilor cursurilor teoretice din domeniul domeniul criptologiei criptologiei precum ¸si o metod˘a rapid˘a de familiarizare cu componente esent¸iale ¸iale ale acestui domeniu. Produsul acoper˘a ambele ramuri ramuri ale criptologiei criptologiei ¸si si anume anume criptografia ¸si si criptanaliza . Sunt Sunt tratate ma joritatea joritatea aspectelor fundamentale fundamentale ale criptografiei. criptografiei. Astfel, Astfel, produsul are implementa implementate te facilit˘ facilitat ˘a¸i ¸ti ˆın cadrul ca drul fiec˘ fi ec˘arui arui subdomeniu subd omeniu dup˘a cum cu m urmeaz˘ u rmeaz˘a: a: criptografia clasic˘a: a: cifrurile Caesar, substitut¸ie ¸ie monoalfabetic˘ monoalfabetic˘ a, a, substitut substitut¸ie ¸ie omofonic˘ a, a, Vigen`ere, ere, Hill, Playfair, ADFGVX, Addition, XOR, Vernam, Solitaire etc; criptografia simetric˘a modern˘a: a: cifrurile IDEA, RC2, RC4, DES, 3DES, DESX precum prec um ¸si si tot¸ii ¸ii finali¸stii stii cifrului AES ¸si si anume MARS, RC6, Rijndael, Serpent and Twofish; criptografia asimetric˘a: a: RSA; criptografia hibrid˘a: a: cifrarea datelor da telor realizˆadu-se adu-se cu algoritmi simetrici (AES), protect¸ia ¸ia cheii de cifrare fiind asigurat˘a prin metode asimetrice (RSA); semn˘ aturi aturi digitale: digitale: RSA, DSA, ECDSA (Elliptic Curve Digital Signature Signature Algorithm), Nyberg-Rueppel; funct¸ii ¸ii hash: MD2, MD4, MD5, SHA, SHA-1, SHA-2, RIPEMD-160; generatoare generatoare aleatoare: aleatoare: secude, secude, x2 mod n, LCG (linear congruence generator), ICG (inverse congruence generator). ˆIn cadrul criptanalizei se reg˘asesc asesc implement implementate ate majoritatea atacurilor atacurilor standard standard dup˘ a cum urmeaz˘a: a: atac cu text cifrat: Caesar, Vigen`ere, ere, Addition, XOR, Substitution, Playfair; atac cu text clar: Hill, Single-column transposition; atac manual: substitut¸ie ¸ie mono alfabetic˘a, a, Playfair, ADFGVX, Solitaire; atac prin fort¸˘ ¸a˘ brut˘a: a: pentru tot¸i ¸i algoritmii; se presupune fie c˘a entropia textului clar este mic˘a sau cheia este part¸ial ¸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 atacuri asupra asupra sistemelor sistemelor hibride: hibride: atacuri atacuri asupra asupra RSA sau AES(side AES(side channels attacks); atacuri atacuri asupra asupra semnatu semnaturil rilor or digital digitale: e: RSA prin factori factorizar zare; e; viabil viabil pˆan˘ an˘ a la lungime de 250 bit¸i ¸i (adica 75 cifre); atacuri asupra funct¸iilor ¸iilor hash: genera generare re colizi coliziuni uni texte texte ASCII ASCII cu parado paradoxul xul zilelor zilelo r de na¸stere stere (pˆan˘ an˘ a la 40 bit¸i); ¸i); analiz˘ analiz˘a aleatorism: aleatorism: bateria bateria de teste FIPS-PUB-140 FIPS-PUB-140-1, -1, periodicitate, periodicitate, Vitany Vitany, entropie, histograme, autocorelat¸ii, ¸ii, testul de compresie ZIP etc. ˆIn sprijinul sprijinul utilizatorilo utilizatorilor, r, CrypTool CrypTool are implement implementate ate o serie de demo-uri demo-uri ¸si si
• • • • • • • • • • • • • • • •
275
OPENSSL
animat¸ii ¸ii prin prin care care sunt sunt exempl exemplific ificate ate divers diversee facilit facilit˘˘at a¸i ¸t i pe care produsul le ofer˘a folosindu-se folos indu-se primitive primiti ve criptografi cript ografice ce suport su portate ate ¸si si implementat im plementatee ˆın aplicat a plicat¸ie ¸ie ca de exemplu Caesar, Vigen`ere, ere, Nihilist, DES (toate (to ate patru cu ANIMAL), Enigma (Flash), (Fla sh), Rijdael/AES (Flash and Java), criptare hibrid˘a ¸si si decriptare decript are (AES-RSA (AES-R SA ¸si si AESECC), generare generare ¸si si verificare verificare de semn˘ aturi aturi digital digitale, e, protocol protocolul ul de schim schimb b de chei chei Diffie-Hellman, secret sharing (CRT sau Shamir), metoda challenge-response (autentiicare), atacuri tip side-channel, securizarea e-mail-ului prin protocolul S/MIME (Java ¸si si Flash), Flash) , prezent˘ari ari grafice 3D pentru date (pseudo)aleatoare, sensibilitatea funct¸iilor ¸iilor hash privind modific˘ari ari ale textului clar, teoria numerelor ¸si si cripto sisteme RSA (Authorware). CrypTool CrypTool cont¸ine ¸ine ¸si si un modul educat¸ional ¸ional interacti interactiv v dedicat dedicat aplicat¸iilor ¸iilor criptografice ce necesit˘a aspecte elementar elementaree de teoria numerelor numerelor denumit denumit ”NT”. Acest modul introduce introduce utilizatorul utilizatorul ˆın probleme probleme elementar elementaree de teoria teoria numerelor numerelor precum precum algoritmul lui Euclid pentru g˘asirea asirea celui mai mare divizor comun, testul Fermat pentru primalitate, factorizarea Fermat, factorizarea Pollard Rho ¸si si altele. Un alt avantaj avantaj al produslui CrypTool CrypTool ˆıl reprezint˘ a existent¸a ¸a unui meniu de documentare umentare consisten consistentt ¸si si o extindere extindere online a acestuia acestuia cont¸inˆ ¸inˆand and ˆın plus explicat¸ii ¸ii privind not¸iuni ¸iuni generale de criptografie, o cronologie privind dezvoltarea domeniului, exemple de utilizare a facilit˘at a¸ilor ¸tilor aplicat¸iei, ¸iei, index sortat pe topicuri criptografice ¸si si list li st˘˘a de referint¸e. ¸e. Faptul c˘ a pachet pachetul ul softw software are este este open source source,, c˘ a acoper˘ a aspecte legate atˆat at de criptografia clasic˘a cˆat at ¸si si cea mo modern dern˘˘a, a, a modalit˘ at a¸ilor ¸tilor multiple de simulare ¸si si vizualizare vizualizare originale, originale, precum precum ¸si si a modului facil de aplicare aplicare ¸si si analiz˘ a a mecanismelor criptografice ne conduc la concluzia ca pachetul CrypTool reprezint˘a atˆ at at o modalitat mod alitatee rapid˘a de init¸iere ¸iere ˆın domeniul criptografiei cˆat at ¸si si un instrument instrum ent de d e lucru l ucru puterni put ernicc pentru p entru specia sp eciali¸ li¸sti sti ˆın vederea ved erea studieri stud ieriii ¸si si apli a plic˘ c˘arii ari i ˆın acela a cela¸¸si si medi m ediu u a a diverse dive rse probleme concrete ce pot ap˘area area in criptografie ¸si si criptanaliz˘a. a.
37.2 37.2..
Open OpenSS SSL L
OpenSSL este o suit˘a de aplicat¸ii ¸ii ce implementeaz˘a protocoalele Secure Sockets Layer (SSL v2/v3) ¸si si Transport Layer Security (TLS v1) precum ¸si si o libr˘arie arie dedicat˘ a ce acoper˘a o gam˘ a larg˘a de primitive primitive criptografic criptografice. e. Proiectul Proiectul este manageriat manageriat de o comunitate comunitate de voluntar voluntarii din ˆıntreaga ıntreaga lume ce comunic˘ comunic˘ a, a, folosind Internetul, ˆın vederea planific˘ planifi c˘arii arii ¸si si dezvolt˘arii arii continu continuee a toolkit-ului toolkit-ului OpenSSL precum ¸si si a documentat¸iei ¸iei aferente. OpenSSL este bazat pe libr˘aria aria SSLeavy dezvoltat˘a de Eric A. Young ¸si si Tim J. Hudson, proiect ˆıncheiat la sfˆar¸ ar¸situl situl anului 1998. Asupra produsului pro dusului act¸ioneaz˘ ¸ioneaz˘ a o dubl˘ a licent¸iere, ¸iere, atˆ at a t cea de OpenSSL cˆat at ¸si si cea original˘ origin al˘a a libr˘ariei ariei SSLeavy.
276
RESURSE SOFTWARE
Ambele tipuri de licent¸e ¸e sunt de tipul BSD open-source, toolkit-ul putˆand and astfel fi folosit atˆ at pentru scopuri comerciale cˆat at at ¸si si non-comerciale. Pachetul sofware folose¸ste ste instrumente criptografice puternice, fiind dezvoltat continuu ¸si si distribuit legal de cˆateva ateva t˘ ari ari europene, supunˆandu an du-se -se ˆıns˘ ın s˘a unor restrict¸ii ¸ii de import import/ex /export port ¸si si uz ˆın unel un elee t¸˘ ¸ari a˘ri din lume. OpenSSL este disponibil ˆın numeroase versiuni fiind ˆıntr-o continu˘ a dezvoltare, bug-uri bug-uri fiind des semnalate semnalate ¸si si corectate. corectate. Versiunea ersiunea stabil˘ stabil˘a curent˘a este OpenSSL 0.9.8m aceasta fiind disponibil˘ a din luna februarie februarie 2010; in plus utilizatorii utilizatorii beneficiaz˘a de acces online permananent pentru studierea dezvolt˘arilor arilor ulterioare ultimei versiuni versiuni stabile. Versiunile ersiunile sunt disponibile pentru ma joritatea joritatea sistemelor sistemelor de operare tip UNIX (incluzˆand and Solaris, Sola ris, Linux, Mac OS X ¸si si cele patru sisteme de operare op erare BSD open o pen source), Open Op en VMS ¸si si Microsoft Windows. OpenSSL implement implementeaza eaza protocoalele protocoalele SSL ¸si si TSL. Transport ransport Lay Layer er Security Security (TLS) ¸si si predeceso p redecesorul rul s˘au au Secure Se cure Sockets Layer (SSL), (SSL ), sunt su nt protocoa prot ocoale le criptogra cri ptografice fice ce furnizeaz˘ furnizeaz˘ a securitatea securitatea comunicat comunicat¸iilor ¸iilor peste peste ret¸ele ¸ele similare similare Intern Internetu etului lui.. Cele Cele dou˘ a protocoale permit aplicat¸iilor ¸iilor de tip client/server s˘a comunice securizat. TLS furnizeaz˘ a autentificare endpoint endp oint precum ¸si si confident¸ialitatea ¸ialitatea comunicat¸iilor ¸iilor peste Internet Internet folosindu-s folosindu-see securizare securizare RSA suportˆ a nd lungimi de chei de pˆan˘ and an˘a la 2048 de bit¸i. ¸i. Protocoale Protocoale sunt sunt utilizate utilizate pentru navigare navigare pe Internet, Internet, p o¸st˘ st˘ a electronic˘a, a, voice-over-IP (VoIP) etc. Libr˘ aria aria criptografic˘a OpenSSL implemeneaz˘a o gam˘a larg˘ a de algoritmi utilizat¸i ¸i ˆın diverse standarde utilizate ˆın Internet. Facilit˘at a¸ile ¸t ile furnizate de aceast˘a libr˘arie arie sunt sunt folosite folosite pentru pentru a implement implementaa SSL, TLS ¸si si S/MIME, S/MIME, precum precum ¸si si pentru pentru SSH, OpenPGP ¸si si alte alt e standarde criptografice. Libr˘aria aria are implementate o varietate de primiti prim itive ve cript cr iptogr ografic aficee ¸si si alte alt e faci f acilit lit˘˘at at¸i ¸i dup˘a cum urmeaz˘a: a: Algoritmi de cifrare simetrice: Blowfish, CAST, DES, IDEA, RC2, RC4, RC5; Algoritmi Algoritmi de cifrare cifrare asimetrici: asimetrici: RSA (bazat pe factorizare factorizareaa numerelor numerelor mari), DSA (bazat pe problema logaritmului discret), EC (curbe eliptice) Diffie-Hellman key exchange; Certificate digitale: X509, X509v3; Funct¸ii ¸ii hash hash ¸si si coduri coduri de auten autentifi tificar care: e: HMA HMAC, C, MD2, MD2, MD4, MD5, MD5, MDC2, MDC2, RIPEMD, RIPEMD, SHA; Funct¸ii ¸ii de control a intr˘aril ar ilor or ¸si si ie¸siril si rilor or,, fun f unct ct¸ii ¸ii de codificare codificare a datelor: datelor: PKCS7, PKCS7, PKCS12, ASN1, BIO, EVP, PEM. Utilitarul OpenSSL este un tool linie comand˘a utilizat ˆın gestionarea diverselor funct¸ii ¸ii criptografice criptografice din libr˘ aria OpenSSL. Acesta poate fi folosit pentru: aria Creare ¸si si management manag ement de chei private, p rivate, chei publice p ublice ¸si si parametrii; parame trii; Operat¸ii ¸ii ce implic˘a criptografia cu chei publice; Creare de certificate X.509 X.5 09 , CSRs ¸si si CRLs;
• • • • • • • •
277
MAPLE
• Calculare de rezumate de mesaj; • Cifrare ¸sisi descifrare folosind diverse cifruri; • testare client¸i/servere ¸i/servere (SSL/TLS); • Semn˘aturi aturi ¸si si cifrare de mail (S/MIME); ari ¸si si verific˘ verifi c˘ari ari de m˘arci arci temporare. • Cereri, gener˘ari
OpenSSL este unul dintre put¸inele ¸inele proiecte open source supuse valid˘arii arii de conformitate cu standardului FIPS 140-2, utilizat ˆın securitatea calculatoarelor, calculat oarelor, dezvoltat de National National Institute Institute of Standards Standards and Technology echnology (NIST). (NIST). Pachetul Pachetul software software ˆın ı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 supuse valid˘arii arii de confomitate FIPS 140-2. ˆIn ianuarie 2006 aceast˘ a component˘ component˘ a fost certificat˘ a, a, aceasta fiind ˆıns˘ a revocat˘a ˆın iulie 2006 datorit˘ a unor nel˘amuriri amuriri privind validitatea interact¸ion˘ ¸ion˘arii arii modulului cu software extern. ˆIn februarie 2007 produsul a fost recertificat. Validarea alidarea OpenSSL FIPS Object Ob ject Module este unic˘a printre toate valid˘arile arile FIPS 140-2 prin faptul c˘a produc˘atorul atorul pune la dispozit¸ie ¸ie ˆıntreg codul codu l surs˘ surs ˘a. a. Prin urmare, folosit f˘ ar˘ ar˘a nicio modificare ¸si si construit pe p e orice platform˘ platfo rm˘a conform documentat¸iei ¸iei pus˘a la dispozit¸ie ¸ie se obt¸ine ¸ine direct direct un modul criptografic criptografic validat. validat. Orice modificare modificare minor˘a asupra asupra codului implic˘ a necesitatea revalid˘arii, arii, proces costisitor (aproximativ 50000$) 5000 0$) ¸si si ˆındelungat ındelun gat (ˆıntre 6 ¸si 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 arii FIPS 140-2 datorit˘ datori t˘a lispei li spei de finant fi nant¸are. ¸are. Validarea versiunilor precedente au fost finant¸ate ¸ate de sectorul sectoru l comercial comerci al ¸si si sponsori spon sori guvernamentali, guvername ntali, o parte dintre ace¸stia stia preferˆand and s˘a r˘amˆ amˆ an˘ an˘ a anonimi.
37.3. .3.
MAPLE APLE
ˆIn cadrul acestei sect¸iuni ¸iuni vom exemplifica, printr-o serie de exemple, modalit˘at a¸ile ¸tile de rezolvare a problemelor propuse, ˆın ın cadrul acestei culegeri, cu a jutorul aplicat¸iei ¸iei software MAPLE. Exemplul Exemplul 37.3.1. 37.3.1. Algoritmul Algoritmul de cifrare cifrare ElGamal. ElGamal. p (ordinul grupului), α (generatorul) numere prime publice; a, β := αa mod p cheia public˘a; a; a cheia privat˘a, m mesajul clar; k num˘ ar ar aleator secret;
278
RESURSE SOFTWARE
regula de cifrare: y1 := αk mod p; y2 := (m β k ) mod p; regula de descifrare: des := y2 (y1a )−1 mod p.
∗
∗
>
p:=17;
>
alpha:=14;
>
a:=2;
>
beta:=al beta:=alpha^ pha^a a mod p;
>
m:=4;
>
k:=4;
>
y1:=alph y1:=alpha^k a^k mod p;
>
y2:=(m*( y2:=(m*(beta beta^k)) ^k)) mod p;
>
text_cifrat:=(y1,y2);
>
text_descifrat:=y2*( text_descifrat:=y2*(y1^a)^(-1) y1^a)^(-1) mod p;
Exemplul Exemplul 37.3.2. 37.3.2. Algoritmul Algoritmul de semn˘ atur˘ atur˘ a ElGamal. p ¸si si α numere prime publice; a cheia secret˘a, a, β := αa mod p cheia public˘a; a; x mesajul ce trebuie semnat; k num˘ ar ar secret; secret; k γ := α mod p, δ := (x ( x a γ )k−1 mod ( p 1), 1), sign := (γ, ( γ, δ ); ); γ δ x verificar verifi carea ea semn˘ sem n˘aturii: atu rii: β γ mod p = α mod p.
− ∗ ∗
−
>
p:=467;
>
alpha:=2;
>
a:=127;
>
beta:=al beta:=alpha^ pha^a a mod p;
>
x:=102;
>
k:=15;
>
gamma:=a gamma:=alpha lpha^k ^k mod p;
>
delta:=(x-a*gamma)*k delta:=(x-a*gamma)*k^(-1) ^(-1) mod (p-1);
>
(beta^ga (beta^gamma* mma*gamm gamma^de a^delta lta - alpha^x) alpha^x) mod p;
Exemplul Exemplul 37.3.3. 37.3.3. Algoritmul Algoritmul de semn˘ atur˘ atur˘ a DSA. p ¸si si q numere prime (publice); α (public) (public) r˘ ad˘ ad˘acina acina de ordin q a unit˘ at a¸ii; ¸tii; a a cheia secret˘a, a, β = (α ) mod p;
279
MAPLE x mesajul; k num˘ ar ar aleatoriu (secret); sign = (γ, ( γ, δ ) unde γ = (α ( αk mod p) mod q ¸si si δ = (x ( x + a γ ) k −1 mod q. >
p:=7879;
>
q:=101;
>
alpha:=170;
>
a:=75;
>
beta:=(a beta:=(alpha lpha^a) ^a) mod p;
>
x:=1234;
>
k:=50;
>
gamma: gamma:=(a =(alph lpha^k a^k mod p) mod q;
>
delta:=(x+a*gamma)*k delta:=(x+a*gamma)*k^(-1) ^(-1) mod q;
∗ ∗
Exemplul Exemplul 37.3.4. 37.3.4. Protocolul Diffie-Hellman. Caracteristicile protocolului: p num˘ ar prim (minim 1024 bit¸i), ar ¸i), q divizor prim al lui q α element de ordin q ; a num˘ ar ar generat de A ¸si si trimis trim is lui B ; b num˘ ar ar generat de B ¸si si trimis tri mis lui A; cheia comun˘a este k := αa∗b mod p. >
p:=25307;
>
alpha:=2;
>
a:=3578;
>
b:=19956;
>
k:=((a k:=((alph lpha^a a^a) ) mod p)^b p)^b mod p;
¸i); − 1 (minim 160 bit¸i);
Exemplul Exemplul 37.3.5. 37.3.5. Protocolul Protocolul Blom. p num˘ ar ar prim, n num˘arul arul de utilizatori; k = 1 nivel de compartimentare (protocolul (proto colul este neconditionat sigur ˆımpotriva ımpotriva atacului unui utilizator); a,b,c coeficient¸ii ¸ii polinomului; A denumire generic˘a participan participantt protocol, rA cheia public˘a a lui A; f ( f (X, Y ) Y )a + b(X + Y ) Y ) + cXY cX Y polinom (simetric), (simetric), gA (X ) = f ( f (X, rA ) polinomul secret al lui A;
280
RESURSE SOFTWARE
K matricea cheilor de compartimentare(simetric˘a). 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= g[i]:=eval(f(X,Y),Y=r[i]) r[i]) mod p;
>
end do; do;
>
K:=array(1..n, 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= K[i,j]:=eval(g[i],X=r[j]) r[j]) mod p;
>
end do; do;
>
end do; do;
>
print(K);
Exemplul Exemplul 37.3.6. 37.3.6. Schema de partajare a lui Shamir. n num˘ arul arul de participant¸i; ¸i; k num˘ arul minim de participant¸i arul ¸i care pot reconstitui secretul; q num˘ar ar prim (identific˘a corpul Z [q ] ˆın ın care se lucreaz˘ lucreaz ˘a); a); ste partajat; partajat ; S secretul care se dore¸ste xi (publice) se distribuie utilizatorilor, i = 1, 1 , . . . , n; n; ai (aleatoare), i = 1, 1 , . . . , k 1. >
n:=5;
>
k:=3;
>
q:=17;
>
S:=13;
>
x[1]:=1;
>
x[2]:=2;
>
x[3]:=3;
−
281
MAPLE >
x[4]:=4;
>
x[5]:=5;
>
a[1]:=10;
>
a[2]:=2;
>
p:=S+a[1 p:=S+a[1]*x+ ]*x+a[2] a[2]*x^2 *x^2 mod q;
>
for for i from from 1 to n do subs( subs(x= x=x[ x[i] i],p ,p) ) mod mod q
>
od;
Recuperarea secretului secretului din schema schema lui Shamir. Shamir. Exemplul Exemplul 37.3.7. 37.3.7. Recuperarea n num˘ arul arul de participant¸i; ¸i; k num˘arul arul minim de participant¸i ¸i care pot reconstitui secretul; q num˘ ar ar prim (identifica corpul Z [q ] ˆın care se lucreaza); lucreaz a); S secretul care se doreste partajat; xi (publice) se distribuie utilizatorilor, i = 1, 1 , . . . , n; n; si secretul distribuit, i = 1, . . . , k 1;
−
>
n:=5;
>
k:=3;
>
q:=17;
>
x[1]:=1;
>
x[2]:=2;
>
x[3]:=3;
>
x[4]:=4;
>
x[5]:=5;
>
s[1]:=8;
>
s[2]:=7;
>
s[3]:=10;
>
p:=S+a[1 p:=S+a[1]*x+ ]*x+a[2] a[2]*x^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 Exemplul 37.3.8. 37.3.8. Canalul Canalul subliminal subliminal ElGamal. ElGamal. q num˘ar ar prim; α element primitiv; x mesaj cifrat; y mesaj subliminal; subliminal;
282
RESURSE SOFTWARE
k cheia secret˘a; a; β autentificator; γ autentificator; mesajul subliminal (x,β,γ (x,β,γ ). >
q:=11;
>
alpha:=2;
>
y:=9;
>
x:=5;
>
k:=0;
>
beta:=al beta:=alpha^ pha^y y mod q;
>
gama:=y^(-1)*(x-k*be gama:=y^(-1)*(x-k*beta) ta) mod (q-1);
>
M:=(x,beta,gama);
Exemplul Exemplul 37.3.9. 37.3.9. Extragerea Extragerea datelor din canalul canalul subliminal subliminal ElGamal. q num˘ar ar prim; α element primitiv; x mesaj cifrat; y mesaj subliminal; subliminal; k cheia secret˘a; a; β autentificator; γ autentificator; mesajul subliminal (x,β,γ (x,β,γ ). >
q:=11;
>
alpha:=2;
>
k:=0;
>
x:=5;
>
beta:=6;
>
gamma:=5;
>
a:=alpha a:=alpha^x ^x mod q;
>
b:=((alpha^k)^beta)* b:=((alpha^k)^beta)*beta^gamma beta^gamma mod q;
>
if( a= b) then print("M print("Mesaj esaj_Aut _Auth_OK h_OK"); ");
>
Mesaj_subliminal:=(x Mesaj_subliminal:=(x-k*beta)*ga -k*beta)*gamma^(-1) mma^(-1) mod (q-1);
>
else print("Mesaj_Auth_FAI print("Mesaj_Auth_FAIL") L")
>
fi;
Capitolul 38
APLI APLICA CAT T ¸ I I PRACT PRACTIC ICE E ˆIn acest capitol ne propunem s˘a facem o scurt˘a descriere a celor 4 probleme date la MITRE Cyber Challenge 1 , ˆın ın perioada p erioada 9-12 ianuarie 2012. Pentru fiecare problem˘ a prezent˘am am ¸si si cˆate ate o sugestie de rezolvare. Primele trei probleme pro bleme sunt su nt legate legat e ˆıntre ele, ˆın sensul sens ul c˘a pentru rezolvarea celei de-a doua probleme este nevoie de parola obt¸inut˘ ¸inut˘a ˆın urma rezolvarii primei probleme, iar rezolvarea rezolvarea celei de-a doua probleme ne conduce la un indiciu folositor ˆın ın rezolvarea problemei cu num˘arul arul trei. trei. Ultima Ultima proble problem˘ m˘ a este independent˘a de primele trei, aceasta aceasta avˆ and and de fapt fapt rolul rolul de a scoate scoate ˆın eviden evident¸˘ ¸ta˘ o vulnerabilitate a ECDSA (acela¸si si tip de vulnerabilitate care a fost folosit˘a ¸si si pentru aflarea cheii de semnare de la PlayStation3). Proble Problema ma 1. Obiectivul Obiectivul primei primei probleme probleme este acela de a recunoa¸ recunoa¸ste ste cˆand and s-a folosit folos it criptografia cripto grafia clasic˘a (cifrurile (cifru rile Caesar, Vigen`ere, ere, Hill etc) ˆın mediul digital. digita l. Scenariul ipotetic este urm˘atorul: atorul: g˘ asim asim un fi¸sier sier “ciudat, pe care nu l-am creat noi, ˆın calculatorul personal. Acest fi¸sier, sier, neededinformation.txt, este pus la dispozit¸ie ¸ie ˆın cadrul problemei. problem ei. Se cere decriptarea decriptarea informat informat¸iei ¸iei cont¸inut ¸inutee ˆın aces ac estt fi¸sier si er ¸si si g˘asirea asirea parolei ascunse ˆın interiorul s˘au. au. S¸ tim c˘a aceast ace ast˘˘a parol˘ par ol˘a ˆıncepe cu ”S”, se termin˘a cu ”D” ¸si si este format˘ a numai din majuscule. Problema se poate p oate rezolva rezolva foarte u¸sor sor folosind pachetul software CrypTool pentru a face o criptanaliz˘ criptanaliz˘ a a nedeedinformation.txt: Analysis Symmetric encryption(classic) Ciphertext-Only Vigen`ere . ˆIn urma acestei criptanalize rezult˘a pentru pe ntru ˆınceput ıncepu t c˘a lungimea lungimea cheii folosite este 6, iar la urm˘atorul atorul pas obt¸inem ¸inem cheia ”SQUARE” cu ajutorul c˘areia areia putem decripta
1
http://www.iccs.fordham http://www.iccs.fordham.edu/mitre/ .edu/mitre/
283
284
APLICA APL ICAT T ¸ II PRACTICE PRAC TICE
textul cont¸inu ¸i nutt ˆın neededinformation.txt. La sfˆar¸ ar¸situl situl textului textulu i decriptat decript at se afl˘a ¸si si parola pe care o c˘autam: autam: ”PASSWORDFORTOMMOROWISSTRONGPASSWORDSAREGOOD ”PASSWORDFORTOMMOROWIS STRONGPASSWORDSAREGOOD”. ”. Problema 2. Aceast˘a problem˘a ˆı¸si si propune prop une s˘a arate ara te posib po sibile ilele le locuri lo curi ˆın care un adversar poate ascunde informat¸ii, ¸ii, precum ¸si si modurile ˆın care acest lucru se poate face. face. Mai precis precis proble problema ma presup presupune une g˘asirea asirea unor informat¸ii ¸ii ascunse ˆın interiorul unei imagini. imagini. Presupunem c˘a avem o imagine hiding.gif. Ceri Cerint nt¸a ¸a problemei este aceea de a g˘asi asi informat¸ia ¸ia ascuns˘a ˆın aceast ace ast˘ a˘ imagine, ¸stiind stiind c˘ a aceasta ˆıncepe ıncepe cu ”h”, se termin˘ a cu ”l”, iar m˘arimea arimea fiec˘arei arei litere conteaz˘a. a. De asemen asemenea, ea, a¸sa sa cum am ment¸ionat ¸ionat anterior, vom avea nevoie de parola obt¸inut˘ ¸inut˘a la prima problem˘a. a. Uitˆ andu-ne andu-ne la propriet˘at a¸ile ¸t ile imaginii hiding.gif, observ˘am a m 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 si obser ob serv˘ v˘am am c˘a apare ”PK”ˆ ”PK”ˆın format hexa 50 4B), ceea ce ˆınse ın seam amn˘ n˘a c˘a este vorba despre o arhiv˘a (PK reprezint˘a init¸ialele ¸ialele lui Phil Katz). Prin urmare schimb˘am am extensia ¸si si obt¸inem ¸inem hinding.zip. Desc Deschi hizˆ zˆ and and aceast˘a arhiv˘ a g˘ asim alte imagini, una dintre ele (care atrage atent¸ia asim ¸ia ˆın mod deosebit) fiind i maginee ˆıns˘a, a, avem nevoie de parola look at me.gif. Pentru a putea vedea aceast˘a imagin obt¸inut˘ ¸inut˘ a la problema 1. G˘ asim asi m ˆın final fina l ¸si si informa inf ormat¸ia ¸t ia pe care o c˘autam, aut am, ¸si si anume anum e hollenger.dll. Problema 3. Cea de-a treia problem˘a este legat˘a de analiza traficului de date. Presupunem Presupu nem c˘a avem la l a dispozit disp ozit¸ie ¸ie o captur˘a de trafic de date, day3.pcap. Se cere s˘a se g˘aseasc˘ aseasc˘ a, a, cu ajutorul r˘aspunsului aspunsului de la problema anterior˘a, a, fi¸sier si erul ul transferat din calculatorul personal c˘atre atre o surs˘a necunoscut˘a. Raspunsul ˘aspunsul pentru
285
aceast˘ a problem˘a ˆıl va constitui informat¸ia ¸ia ascuns˘a ˆın fi¸sierul sier ul respect resp ectiv. iv. S¸ tim c˘a ˆıncepe cu ”P”, se termin˘a cu ”k” ¸si si m˘arimea arimea fiec˘arei arei litere este important˘a. a. ˆ Pentru a putea deschide day3.pcap vom folosi Wireshark. Wireshark. In continuare c˘aut˘ aut˘ am am Filter : hollenger.dll (select˘am am Packet hollenger.dll astfel: Edit Find Packet Filter : bytes ¸si si String ) Find , iar apoi Follow TCP stream. Observ˘ am din nou PK ¸si am si folosim folosim opt¸iunea ¸iunea Save as pentru a obt¸ine ¸ine day3.zip. Arhiva cont¸ine ¸ine mai multe mult e fi¸siere, sier e, printre print re care ¸si si hollenger.dll. Deschidem hollenger.dll cu UltraEdit UltraE dit ¸si si observ˘am am ”num˘ arul arul magic” GIF87a (ˆın format hexa 47 49 46 38 37 61), ceea ce ˆınseamn˘ ınseamn˘ a c˘a este vorba de o imagine. Schimbˆand and deci extensia obt¸inem ¸inem hollenger.gif, aceasta fiind o imagine care cont¸ine ¸ine urm˘atoarea atoarea fraz˘ a : ”The Root Password is Pengu1nsR0ck”. Pengu1nsR0ck ”.
Problema 4. Obiectivul acestei probleme este recuperarea unei chei private ECDSA care a fost folosit˘a pentru semnarea a dou˘a mesaje diferite. ˆInaint Ina intee ˆıns˘ ın s˘a de a continua prezentarea acestei ultime probleme, reamintim algoritmul de semn˘atur˘ atur˘ a ECDSA:
286
APLICA APL ICAT T ¸ II PRACTICE PRAC TICE
E
Parametrii publici ˆın acest caz sunt: un num˘ ar ar prim p, o curb˘a elip el ipti tic˘ c˘a (F p ) ¸si un punct G (F p ) cu ordG ordG = q, q prim.
∈ E
∈ E
Cheia public˘a (de verificare) V (F p ) se construie¸ste ste cu ajutorul cheii private (de semnare) 1 s q 1 astfel: V = sG. sG.
≤ ≤ −
Semn˘ atura atura mesajului m (mod q ), ), calculat˘ calculat˘ a cu ajutorul unei chei efemere e (mod q ), ), este definit˘a ca fiind perechea (s ( s1 , s2 ) = (xeG mod q , (m + ss1 )e−1 mod q ), ), unde prin xeG ˆın¸elegem ¸telegem coordonata x a punctului eG (F p ).
∈ E
Semn˘ atura atura (s (s1 , s2 ) a mesajului m este verificat˘a dac˘ d ac˘a are a re loc lo c urm˘ u rm˘atoarea atoarea egalitate 1 1 − − (ˆın ın care ca re v1 = ds2 mod q ¸si si v2 = s1 s2 mod q ) : xv1 G+v2 V mod q = s1 . Revenim acum la problema noastr˘a. a. Datele care ne sunt puse la dispozit¸ie ¸ie se afl˘a ˆın trei tr ei fi¸sier si ere: e: signatures.txt,parameters.der ¸si si public.oct. Primul Primu l fi¸sier sier cont con ¸ine ¸t ine valorile hash-urilor hash-u rilor ¸si si semn˘aturile aturile pentru cele dou˘a mesaje (ˆın format for mat hexa): hexa ):
287 m1 =DE37B3145DB7359A0ACC13F0A4AFBD67EB496903 s11 =ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2 s12 =BE4FA99C9D261C5F387A3ACE025702F6FB7884DD07CE18CAD48654B8 m2 =28469B02BF0D2CFC86FF43CB612EE8FC05A5DBAA s21 =ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2 s22 =D3540E2B13E51605F5FEB8C87EE8E176E59213F31EA8B8FFDAD077E2 Pentru a putea vedea informat¸iie ¸iie din di n cel ce l de-al de -al doilea fi¸sier, sier, parameters.der, vom folosi OpenSSL astfel: openssl openssl ecparam ecparam -inform -inform DER -in /cygdriv /cygdrive/e/ e/e/para paramete meters.d rs.der er -outform -outform PEM -out /cygdriv /cygdrive/e/ e/e/para paramete meters.p rs.pem em openssl openssl ecparam ecparam -text -text -in /cygdriv /cygdrive/e/ e/e/para paramete meters.p rs.pem em -noout -noout Field Field Type: Type: primeprime-fie field ld 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 (0x5) ) Generator (uncompressed): (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 Cofa Cofact ctor or: : 1 (0x1 (0x1) ) Prin urmare, parameters.der cont¸ine ¸ine de fapt parametrii publici:
• num˘arul arul prim p: p=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D. p=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D. • curba eliptic˘a E : y2 = x3 + 5 considerat˘ 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 ¸ii care urmeaz˘a vor constitui coordonata coordonata x a punctului G, iar cealalt˘ cealalt˘ a jum˘ atate atate coordonata y a punctului G): xG =85CEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643 yG =58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22 num˘arul arul prim q , acesta fiind ordinul punctului G: q =010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7. =010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7. cofactorul, cofac torul, care ˆın acest caz este 1, 1 , ceea ce ˆınseamn˘ ınseamn ˘a c˘a punctul G este generator pentru pentru grupul punctelor curbei eliptice eliptice considerate considerate..
• •
288
APLICA APL ICAT T ¸ II PRACTICE PRAC TICE
Pentru ultimul ult imul fi¸sier, sier , public.oct, folosim UltraEdit ¸si g˘asim asim reprezentarea hexa a informat¸iei ¸iei cont¸inute ¸inu te ˆın inter int erio iorul rul s˘au: 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, a, mai precis punctul V de coordonate: coordonate: xV =85CEEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643 yV =58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22 Avem acum toate datele necesare pentru a afla cheia privat˘a s. Observat¸ia ¸ia important˘ a pe care se bazeaz˘a ˆıns ın sa˘ ˆıntreaga rezolvare rezolvare este aceea c˘a ˆ valorile s11 ¸si si s21 sunt egale. In acest caz, dac˘a not˘ am a m cu e1 , respectiv e2 cheile efemere folosite pentru semnarea mesajelor m1 , respectiv m2, rezult˘a fie c˘a e1 = e2 = e, fie c˘a e1 + e2 = q . Vom ar˘ata ata cum putem afla cheia privat˘a s dac˘ a presupunem c˘a este vorba de primul caz, anume c˘a pentru pe ntru semnarea semna rea celor cel or dou˘a mesa je diferite dif erite m1 ¸si si m2 s-a folosit aceea¸si si cheie efemer˘a e. No Notˆ tˆ and and cu r valoare comun˘a s11 = s21 , avem urm˘atoarele atoarele dou˘ a relat¸ii: ¸ii: s21 = (m1 + sr) sr )e−1 mod q = r1 ¸si si s22 = (m ( m2 + sr) sr)e−1 mod q = r2 de unde putem afla cheia privat˘a s astfel: r1 r2 −1 = (m ( m1 + sr)( sr)(m m2 + sr) sr)−1 mod q s = (m ( m2 r1 m1 r2 )[r )[r (r2 r1 )]−1 mod q ˆIn continuare co ntinuare vom lucra ˆın PARI/GP, PARI/GP , prin urmare transform˘am am mai m ai ˆıntˆai ai toate valorile de care avem nevoie din baza 16 ˆın baza 10. O metod˘ meto d˘a de a face acest lucru poate fi urm˘atoarea: atoarea:
⇒
gp> gp> gp>
−
−
n=leng n=length th(w) (w); ; for(i=1,n,if(w[i]==A, for(i=1,n,if(w[i]==A,w[i]=10,if w[i]=10,if(w[i]==B,w (w[i]==B,w[i]=11,if(w [i]=11,if(w[i]==C,w[i [i]==C,w[i]=12, ]=12, if(w[i]==D,w[i]=13,if(w[i]==E,w[i]=14,if(w[i]==F,w[i]=15))))))); W=sum(i= W=sum(i=1,n, 1,n,16^ 16^ (i-1)*w[ (i-1)*w[n+1n+1-i]); i]);
Afl˘ am acum, ˆın ipoteza am ipo teza c˘ a s-a folosit aceea¸si si cheie efemer˘ ef emer˘a e, cheia privat˘a s: gp> q=269599466671506397 q=2695994666715063979466701508 946670150870196403465 701964034651032708312 103270831200745489949 0074548994958668279; 58668279; gp> m1=12686380921382101 m1=126863809213821016326075805 632607580558224295380 582242953806661035033 66610350339; 9; gp> m2=22993418633568584 m2=229934186335685840756719395 075671939532439464628 324394646288453721002 8453721002; ; gp> r=181872508000979720 r=1818725080009797201052108007 105210800739375851001 393758510015490185857 549018585711307784371 1130778437166133474; 66133474; gp> r1=20042106687643588 r1=200421066876435888723892421 872389242180506526832 805065268328322513716 832251371631259823173 31259823173622191288; 622191288; gp> r2=22255471905305126 r2=222554719053051266943780747 694378074733040389009 330403890094391367365 439136736542793238977 42793238977855911906; 855911906; gp> s=(((m2*r1-m1*r2) s=(((m2*r1-m1*r2)%q))*(bezout((r*(r2-r1))%q,q)[1])%q 15010575815029851772642085218329323233091815558722670713086641180071
Verific˘ am am c˘ a aceasta este corect˘a, a, adic˘a vrem s˘a vedem dac˘a ˆıntr-a ınt r-ade dev˘ v˘ar ar are loc egalitatea V = sG. sG. Pentru Pentru aceasta aceasta init¸ialliz˘ ¸ialliz˘ am am curba eliptic˘a peste care vrem s˘a lucr˘ am, am, iar apoi calcul˘am am punctul sG: sG:
E
289 gp> gp> gp> gp> gp> gp>
p=269599466671506397 p=2695994666715063979466701508 946670150870196306736 701963067363714442254 371444225405724810993 057248109931527511; 1527511; E=ellinit([0,0,0,0,5 E=ellinit([0,0,0,0,5]*Mod(1,p) ]*Mod(1,p)); ); xG=16983810465656793 xG=169838104656567934451781833 445178183341822322175 418223221758836422215 883642221536626637512 36626637512293983324; 293983324; yG=13272896753306862 yG=132728967533068621545367854 154536785447615077600 476150776004798628713 479862871316829862783 16829862783613755813; 613755813; G=[xG,yG G=[xG,yG]; ]; ellpow(E,G,s); ellpow(E,G,s);
Obt¸inem ¸inem c˘a: a: xsG = 14091661710852556870833728605751404033863675975464814254659297347139 yeG = 9333722541138719487032926806284603775374491724501611657294489976354 Aceste valori sunt egale cu xV , respectiv respectiv yV , prin urmare, cheia privat˘a s pe care am g˘ asit-o asit-o este bun˘a. a. Deoarece problema cerea cheia privat˘a s ˆın format for mat hexa, hex a, facem fac em ˆın final fina l ¸si si transtra nsformarea num˘arului arului s din baza 10 ˆın baza 16: gp> gp> gp> gp> gp> gp> gp> gp>
v=vector(60); v=vector(60); v[1]=divrem(s,16)[1] v[1]=divrem(s,16)[1]; ; for(i=2,60,v[i]=divr for(i=2,60,v[i]=divrem(v[i-1], em(v[i-1],16)[1]); 16)[1]); w=vector(60); w=vector(60); w[1]=divrem(s,16)[2] w[1]=divrem(s,16)[2]; ; for(i=2,60,w[i]=divr for(i=2,60,w[i]=divrem(v[i-1], em(v[i-1],16)[2]); 16)[2]); S=vector(60,i,w[61-i S=vector(60,i,w[61-i]); ]); for(i=1,60,if(S[i]== for(i=1,60,if(S[i]==10,S[i]=A, 10,S[i]=A,if(S[i]==11 if(S[i]==11,S[i]=B,if ,S[i]=B,if(S[i]==12,S (S[i]==12,S[i]=C, [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 ¸inem c˘a S=8E88B0433C87D1269173487795C81553AD819A1123AE54854B3C0DA7.
290
APLICA APL ICAT T ¸ II PRACTICE PRAC TICE
Capitolul 39
˘ PROBLEME DE SINTEZA 39.1. .1.
Enun unt¸uri ¸turi
1. Completat Completat¸i: ¸i: Scopul cifr˘arii a rii este este de a asigur asigura a . . . . . . unei unei comu comuni nica cat¸ii. ¸tii. (a) autenticita autenticitatea tea (b) confidenti confidentialitate alitateaa (c) integritate integritateaa (d) nerepudier nerepudierea ea 2. Urm˘ atorul atorul text a fost obt¸inut ¸inut utilizˆand and sistemul sistemul de cifrare cifrare Cezar (au fost eliminate accentele, spat¸iile ¸iile si semnele de punctuat¸ie): ¸ie): MHPEUDVVHPRQUL MHPEUDVVHPRQULYYDOPDLVFHVWSRXUOHWRXIIHU. Care este decriptarea sa? (a) Chacun semble semble des yeux yeux approuver approuver mon courroux. courroux. (b) Ma bouche mille fois lui jura jura le contraire. contraire. (c) J‘embrass J‘embrassee mon rival rival mais c‘est pour l‘etouffer. l‘etouffer. (d) De grˆace, ace, apprenez-moi, Seigneur, mes attentats. 3. Cifrat¸i ¸i textul ”Attaque `a l‘aube ” cu ajutorul algoritmului de substitut¸ie ¸ie precizat mai jos. A J
B G
C F
D K
E P
F R
G M
H T
I S
J K V Z
N I
O Y
P B
Q C
R W
S A
T O
U X
V E
W H
291
X N
L D Y U
M Q Z L
˘ PROBLEME DE SINTEZ A
292 Care este textul cifrat obt¸inut? ¸inut? (a) JOOJCXPJDJ JOOJCXPJDJXGP XGP (b) SHHSMYVSWSYP SHHSMYVSWSYPV V (c) JOOJCXPJBJXGP JOOJCXPJBJXGP (d) SHHSMYVSZSY SHHSMYVSZSYPV PV
4. Cifrul Vigen`ere ere reprezint˘a o modalitate de cifrare ˆımbun˘ at˘ at˘at a¸it˘ ¸tit˘ a a sistemelor ˆ de cifrare cu substitut¸ie ¸ie simpl˘a. a. In ce const˘a acesta? (a) ˆın aplicare a plicarea a succesiv˘ suc cesiv˘a a mai multor substitut¸ii ¸ii alfabetice pe acela¸si si text. (b) ˆın aplicarea de substitut¸ii ¸ii alfabetice care nu cifreaz˘a niciodat˘ a o liter˘a ˆın ea ˆıns˘ ın s˘a¸si. (c) ˆın cifrarea literelor care apar cel mai frecvent frecvent (cum ar a r fi e) ˆın ın mai multe simboluri diferite. (d) ˆın alegerea mai multor alfabete de sustitut¸ie ¸ie independente indep endente ¸si si schimbarea alfabetului folosit, la fiecare liter˘a, a, ˆın mod ciclic. 5. Reprezentarea ˆın baza 2 a num˘ arului arului 1729 este: (a) 100101101 10010110100 00 (b) 110110000 11011000001 01 (c) 110011000 11001100011 11 (d) 6C1 6. Propunem urm˘atorul atorul algoritm de cifrare: cifrare: Alice ¸si si Bob doresc doresc s˘a schimbe un mesaj m care reprezint˘a un num˘ar ˆıntr ın treg eg ˆıntr ın tree 0 ¸si si N 1. Pentru aceasta, ei partajeaz˘ a o cheie secret˘a comun˘ a k extras˘a alea al eato torr ˆıntre ınt re 0 ¸si si N 1. Mesajul cifrat se obt¸ine ¸ine ca c = m + k mod N . N . Ce p˘arere arere avet¸i ¸i despre despre securitatea securitatea sistemului?
−
−
(a) Proast˘ Proasta: a˘: sistemul reprezint˘a o variant˘a a sistemului lui Cezar. (b) Bun˘ Buna, a˘, dac˘a adversarul nu cunoa¸ste ste algoritmul de cifrare. (c) Foarte bun˘ buna, a˘, cu condit¸ia ¸ia s˘a nu utilizeze cheia k decˆ at at o singur˘a dat˘ a. a. (d) Excelent˘ Excelent˘ a: a: sistemul reprezint˘a o variant˘ a a algoritmului RSA. 7. Alice Alice ˆıi trimit trimitee lui Bob un mesaj mesaj cifrat cifrat c obt¸inut ¸inut cu ajutorul algoritmul algoritmului ui precedent. Cum determin˘a Bob mesajul original m? (a) m = c + k mod N
293
ENUN EN UNT T ¸ UR URI I
− k mod N (c) m = c × k mod N
(b) m = c
(d) m = ck mod N
8. Care dintre dintre acronimele urm˘atoare atoare desemneaz˘a un algoritm de cifrare de tip bloc? (a) AES (b) HMA HMAC C (c) SHA-1 SHA-1 (d) NIST NIST 9. Inversul Inversul lui lui 17 modulo 100: (a) este este 83. (b) este este 53. (c) este este 1/17. (d) nu exist exist˘˘a. a. 10. Am ˆın ın posesi p osesiaa mea un mesaj m pe care nu vreau ˆınc˘a s˘a ˆıl ıl divulg, divulg , dar doresc s˘a pot p ot dovedi peste pe ste cˆat a¸iva ¸tiva ani c˘a ˆıl cuno¸steam steam deja ˆın 2010 (conform (confo rm amprentei de timp). Pentru aceasta, este suficient s˘a public ast˘azi: azi: (a) un text cifrat corespunz˘ corespunz˘ ator ator lui m cu o cheie cunoscut˘a numai de mine. (b) un text cifrat corespunz˘ corespunz˘ ator ator lui m cu o cheie cunoscut˘a de toat˘ a lumea. (c) imaginea imaginea lui m printr-o funct¸ie ¸ie de dispersie (funct¸ie ¸ie hash). (d) imaginea imaginea lui m printr-un MAC folosind o cheie aleatoare. 11. Funct¸ia ¸ia de dispersie (hash) SHA-512 ˆıntoarce valori ˆıntre 0 ¸si si 2512 1. Se calculeaz˘ calcul eaz˘a imagini imagi ni prin aceast˘ aceast a˘ funct¸ie ¸ie ˆın mod aleator. aleator. Care este ordinul ordinul de m˘arime arime al numerelor pentru care trebuie calculate valorile prin aceasta funct¸ie ¸ie pentru a g˘asi asi 2 valori care s˘a aib˘ a primii 20 de bit¸i ¸i egali?
−
(a) 20 (b) 1000 (c) 1000 1000000 000 (d) 2512
˘ PROBLEME DE SINTEZ A
294
12. Construim Construim un generator generator de numere numere pseudo-aleatoare pseudo-aleatoare care init¸ializeaz˘ ¸ializeaz˘ a cu x0 cu o valoare valoa re ˆıntre 0 ¸si si 999 ¸si si determi det ermin˘ n˘a xn+1 = 500x 500xn + 789 mod 1000. ˆIn ce condit¸ii ¸ii at¸i ¸i utiliza acest generator? (a) Pentru a produce pro duce numere aleato a leatoare are ˆıntre 0 ¸si si 999, 999 , dac˘a nu prezint˘a interes nivelul de securitate. (b) Pentru Pentru generarea generarea unei chei de tip one-time pad . (c) Pentru Pentru construct construct¸ia ¸ia unei funct¸ii ¸ii de dispersie. (d) Niciodat˘ a. a. 13. Cum este obt¸inut˘ ¸inut˘ a cheia secret˘a necesar˘a pentru criptarea comunicat¸iei, ¸iei, la conectarea la un site web securizat? (a) Se obt¸ine ¸ine din parola introdus˘a pentru conectare, printr-un algoritm de derivare a cheii precum PBKDF (Password Based Key Derivation Function). (b) Provine Provine din cheia public˘ publica˘ a serverului, cont¸inut˘ ¸inut˘ a ˆıntr-un ıntr- un certifica cert ificat. t. (c) Provine din cheia privat˘ privat˘a a serverului, divulgat˘a clientului dup˘a stabilirea conexiunii. (d) Se obt¸ine ¸ine ˆın urma unui schimb de d e chei ˆıntre client ¸si si server, precum schimbul de chei Diffie-Hellman. 14. Care este dificultate dificultatea a de a factoriza factoriza un num˘ ar ar prim pe 1024 de bit¸i ¸i ast˘azi? azi? (a) Este simplu! simplu! (b) Num˘ Numarul a˘rul poate fi factorizat cu ajutorul a cˆateva ateva mii de calculatoare actuale care s˘a ruleze rule ze ˆıntre 1 ¸si si 2 ani. ani . (c) Nimeni Nimeni nu poate face asta momentan, momentan, dar poate se va reu¸ reu¸si si de c˘ atre atre agent¸ii ¸ii precum NSA. (d) Acest lucru lucru nu va fi posibil p osibil timp de mai multe milenii. milenii. 15. Algoritmul Algoritmul RSA RSA (f˘ ar˘ ar˘a padding) este un algoritm de cifrare: (a) simetric, simetric, tip bloc. bloc. (b) simetric, simetric, tip fluid (debit). (debit). (c) part par¸ial ¸t ial homomorfic. (d) bazat pe identitate. identitate.
295
ENUN EN UNT T ¸ UR URI I
16. Fie generatorul generatorul Geffe descris de trei registre de deplasare LFSRi (ale c˘aror aror polinoame de feedback sunt primitive de grad 19, 21 ¸si si respectiv 24) iar ie¸sirea sirea de formula: y(t) = a1 (t) a3 (t) a1 (t) a2 (t). Care este complexitate complexitateaa LC ¸si si perioada P a acestui generator?
·
⊕
·
Figura 39.1: Generatorul Geffe. (a) (b) (c) (d)
LC= 640, P= 264 . LC= LC=64 LC =64 , P=(2 P=(219 1)(221 1)(224 1). 1). LC=876 LC =876 , P=(2 P=(219 1)(221 1)(224 1). 1). Niciunul Niciunul dintre dintre r˘aspunsuri aspunsuri nu este corect. corect.
− −
− −
− −
17. Fie secvent¸a ¸a dat˘ a de reprezentarea binar˘a (scris˘a pe 8 bit¸i) ¸i) a num˘arului arului i, i = 0, ..., ..., 255 : 00000000 00000001 00000010 00000010 00000011 00000011 00000100 00000100 ... ... 11111111
Care este statistica testului frecvent¸ei ¸ei aplicat˘a acestei secvent¸e ¸e binare binare?? Este Este secvent¸a ¸a aleatoare, relativ la testul frecvent¸ei, ¸ei, la riscul de ordinul 1 de 5%? (a) (b) (c) (d)
f tf sirul sirul nu este es te aleatoriu. aleat oriu. tf = 256, ¸ f tf sirul sirul este aleatoriu. aleat oriu. tf = 1, ¸ f tf sirul sirul este aleatoriu. aleat oriu. tf = 0, ¸ niciunul dintre r˘ aspunsuri aspunsuri nu este corect.
18. Care dintre di ntre urm˘atoarele atoare le afirmat afirm at¸ii ¸ii sunt adev˘arate: arate: (a) Atac reu¸sit sit asupra asu pra a dou˘ do u˘a preimagini ale unei funct¸ii ¸ii hash implic˘a reu¸ re u¸sita si ta atacului de generare de coliziuni.
˘ PROBLEME DE SINTEZ A
296
(b) Atac Atac reu¸ reu¸sit sit de genera generare re de colizi coliziuni uni asupra asupra unei unei funct funct¸ii ¸ii hash hash implic implic˘˘a reu¸sita sita atacului atacul ui asupra a dou˘ d ou˘a preimag p reimagini ini a aceleia¸ a celeia¸si si funct f unct¸ii ¸ii hash. 19. Care dintre di ntre urm˘atoarele atoare le afirmat afirm at¸ii ¸ii sunt adev˘arate: arate: (a) Un registru registru de deplasare de lungime lungime n are perioada de 2 n
− 1.
(b) Un registru registru de deplasare de lungime lungime n are perioada maxim˘a de 2n
− 1.
(c) Un registru registru de deplasare de lungime lungime n, cu polinomul caracteristic primin tiv, are perioada de 2 1.
−
20. Probab Probabili ilitate tateaa de coliziu coliziune ne a dou˘ doua˘ me mesaje saje de lung lungim imee n bit¸i ¸i procesa procesate te de aceea ac eea¸¸si si func fu nct¸ie ¸t ie hash ideal˘a, a, ce are ie¸sirea sirea pe m bit¸i, ¸i, este: (a) 2−m . (b) 2−n . (c) 2−mn . (d) 2m−n . (e) 2n−m . (f) Niciuna Niciuna din valorile valorile de mai sus. sus. 21. Fie extensia extensia Galois GF(32 ) generat˘a de r˘ad˘ ad˘acina acina polinomului X 2 aceast˘ a extensie valoarea log2α+1 (1 + α) este: (a) 8. (b) 4. (c) 2. (d) 5. (e) 6. (f) Niciuna Niciuna din valorile valorile de mai sus. sus. 22. Simbolul Simbolul lui Jacobi Jacobi (a)
6278 9975
este:
−1.
(b) 0. (c) 1.
(d) Niciuna Niciuna din valorile valorile de mai sus.
− X − 1. ˆIn
297
ENUN EN UNT T ¸ UR URI I
23. ˆIn cadrul unui act¸iuni ¸iuni judiciare judiciare urmeaz˘ urmeaz˘a a fi desemnat unul dintre cei doi judec˘atorii atorii de serviciu. serv iciu. Deoarece Deoare ce niciunul nici unul dintre dintr e cei doi nu dore¸ d ore¸ste ste s˘a fac˘ fac ˘a acest lucru ˆın mod mo d benevol, b enevol, se propune modalitatea mo dalitatea de decizie bazat˘a pe rezultatul obt¸inut ¸inut din aruncarea aruncarea unei monede. Astfel, Astfel, judec˘atorul atorul A alege ”stema” sau ”banul” iar judec˘atorul atorul B arunc˘ a moneda, decizia fiind luat˘a ˆın urma rezultatului obt¸inut. ¸inut. Avˆ and and ˆın vedere faptul c˘a A ¸si si B ˆın loca lo cat¸ii ¸t ii fizice diferite se propune, de c˘atre atre criptograf, urm˘atorul atorul protocol. protocol. PASUL 1. Participantul A alege x = 0 (”st (”stem ema” a”)) sau sau x = 1 (”banu (”banul”) l”) ¸si si o cheie aleatoare aleato are k . Se cifr cifrea eaz˘ z˘ a cu ajutorul algoritmului DES valoarea x: y = DE DES S (x; k). PASUL 2. A transmite y c˘atre atre B . PASUL 3. B arunc˘ a o moned˘a ¸si si comunic comu nic˘˘a lui A rezultatul obt¸inut. ¸inut. PASUL 4. A comunic˘ a lui B cheia k . PASUL 5. B descifreaz˘a y, cu ajutorul aj utorul algoritmului algori tmului DES ¸si si ob¸tine ceea ce a ales A. Criptograful afirm˘a faptul c˘ a ”participantul A nu ˆı¸si si poate po ate schimba schimb a opt¸iunea” ¸iunea” datorit˘ a valorii transmise y. Ar˘atat atat¸i ¸i urm˘ u rm˘atoa at oarel rele: e: a) Utilizˆand and ”birthday attack” utilizatorul A p oate oa te tri¸ tr i¸sa; sa ; b) Care este complexitatea atacului de la punctul a)? c) Care este cerint¸a ¸a primitivei criptografice ce asigur˘a valabilitatea afirmat a firmat¸iei ¸iei ”participantul A nu ˆı¸si si poat po atee schimb sch imb˘˘a opt¸iunea”; ¸iunea”; d) Corectat¸i ¸i protocolul proto colul astfel ˆıncˆat at s˘a nu mai fie posibil atacul de la punctul a). 24. Fie p un num˘ar ar prim pr im ¸si si G mult¸imea ¸imea tuturor elementelor x relat¸ia ¸ia x 1 mod p. Ar˘atat atat¸i ¸i faptul c˘a: a:
≡
∈ Z p
2
care satisfac satisfac
a) G este grup multiplicativ; b) G = p;
| |
c) L : G grupuri;
→ Z p definit de L(x) = (x − 1) p−1 mod p este un izomorfism de
d) p +1 este un generator al lui G ¸si si izomorfismul izomor fismul este logaritmul logar itmul ˆın baza p + 1 L ( x ) 2 a lui G. Cu alte cuvinte avem: ( p ( p + 1) mod p x pentru orice x.
≡
25. S˘ a consider˘am am algoritmul de semnare DSS cu parametrii p,q,g, p,q,g, o funct¸ie ¸ie hash H ¸si si o cheie che ie secret sec ret˘˘a x. ˆIn cadrul implement˘ implement˘ arii arii se precalculea precalculeaz˘ z˘a perechea k (k, r) ce satisface relat¸ia ¸ia r = (g mod p) mod q , aceasta fiind utilizat˘a pentru generarea semn˘aturilor. aturilor. Recuperat¸i ¸i cheia privat˘a de semnare.
˘ PROBLEME DE SINTEZ A
298
26. Protocolul Wired Equivalent Privacy Privacy (WEP) utilizat ˆın standardul IEEE 802.11 802 .11 este utilizat pentru a proteja datele ˆın cadrul transmisiilor wireless. Protocolul WEP are o cheie K de 40 de bit¸i, ¸i, partajat˘ a ˆıntre entit˘ entit at a˘¸ile ¸t ile ce comunic˘a ¸si 1 este utilizat˘a pentru protect¸ia ¸ia fiec˘arui arui ”frame” transmis. ˆIn cadrul acestui exercit¸iu ¸iu vom presupune faptul c˘a cheia K este fix˘a ¸si si nu ˆı¸si si schi sc himb mb˘˘a valoarea. Pentru ca utilizatorul A s˘a transmit˘ a un ”frame” la B va proceda dup˘a cum urmeaz˘ a: a: PASUL 1. Codificarea CRC: Dˆandu-se andu-se un mesaj de n-bit¸i ¸i M (n este constant), A calculeaz˘a o sum˘ a de control de 32 de bit¸i ¸i L(M ), M ), unde L este o 2 funct¸ie ¸ie liniar˘a ce nu depinde de K . Textul extul clar, clar, de lungime lungime (n (n + 32) bit¸i, ¸i, este P = M L(M ) M ).
||
PASUL 2. A cifreaz˘ a P cu algoritmului RC4, cheia K ¸si si vecto vec torul rul I V de 24 de bit¸i ¸i specific fiec˘arui arui ”frame” transmis. Textul cifrat va fi C = P RC 4(I 4(I V , K ). ) . PASUL 3. A transmite pe canalul radio (IV,C (IV,C ) c˘atre atre B . ˆ Intreb˘ ari:
⊕
a) Anumit¸i ¸i produc˘atori atori specific˘a faptul c˘a protocolul WEP are o securitate de 40+24=64 40+24=64 bit¸i ¸i de cheie. Ce p˘arere arere avet¸i ¸i de acest fapt. Justificat¸i ¸i r˘aspun as punsu sul. l. b) Care este modalitatea prin care B extrage mesajul original M ? M ? c) ˆIn cadrul unor implement˘ari, ari, vectorul IV de 24 de bit¸i, ¸i, este ales aletoriu la fiecare fiecare ”frame” ”frame” transm transmis. is. Ar˘ atat atat¸i ¸i c˘a acest lucru conduce la probleme de securitate atunci cˆand and traficul traficul de date este mare. Propunet Propunet¸i ¸i o modalitate de remediere a problemei ap˘arute. arute. d) S˘a examin examin˘ am a˘ m o alt˘ a proble problem˘ m˘ a de securi securitat tatee a protocol protocolulu uluii WEP. WEP. Vom presupune faptul c˘a atacatorul intercepteaz˘a datele (IV,C (IV,C ) transmise de A. Ar˘ atat atat¸i ¸i faptul c˘a adversarul, chiar dac˘a nu cunoa¸ste ste cheia K , poate calcula ∗ ∗ u¸sor sor un text tex t cifr c ifrat at C (C = C ) ¸si si retrans retr ansmit mitee (IV,C ( IV,C ∗ ) f˘ara˘ ca B s˘a p oat˘ oa t˘a dede ∗ tecta acest lucru. Cˆate ate posibilit˘ posibilitat a˘¸i ¸ti de alegere avem pentru C ? Ce proprietate a securit˘ securit˘ at a¸ii ¸t ii este violat˘a? a?
27. Descifrat Descifrat¸i, ¸i, cu a jutorul jutoru l algoritmului algo ritmului RSA-CRT, indicˆand and semnificat sem nificat¸iile ¸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. a. 1 2
pachet de date. L(X ⊕ Y ) = L(X ) ⊕ L(Y ). ).
299
ENUN EN UNT T ¸ UR URI I Parametrii algoritmului sunt urm˘atorii: 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 numerele prime prime q = 754 7 5411 ¸si si p = 2q 2 q + + 1. Fie α = 604 60 4 ¸si si β = 3791. a) Ar˘atat atat¸i ¸i c˘a ord( ord(α) = ord( ord(β ) = q ˆ q ˆın Zq . Mai mult, ar˘atat atat¸i ¸i c˘a α ¸si si β genereaz˘ a ∗ acela¸ ace la¸si si subgrup sub grup G ˆın Z p . b) Definim funct¸ia ¸ia hash h : Zq h(7431, (7431, 55 5564 64)) ¸si si h(1459, (1459, 954).
× Zq → G prin h(x1, x2) = xα1 xβ 2 .
Calcul Calculat at¸i ¸i
c) La punctul precedent at¸i ¸i obt¸inut ¸inut o coliziune pentru h. Folosit¸i-o ¸i-o pentru a calcula logaritmul discret dlogα β . d) Folosind logaritmul discret calculat, determinat¸i ¸i ¸si si alte coliziuni colizi uni pentru h.
˘ PROBLEME DE SINTEZ A
300
39.2.
R˘ aspunsuri aspunsuri
1. R˘ aspuns: (b). Pentru autenticitate, se folosesc MAC sau semn˘aturile aturile electronice. Pentru integritate, ˆın funct¸ie ¸ie de nivelul de exigent¸˘ ¸a, a˘, se pot utiliza sume de control, funct¸ii ¸ii hash, MAC, etc. 2. R˘ aspuns: (c). V˘a putet pu tet¸i ¸i ajuta de pozit¸ia ¸ia literelor dublate. ˆIntrebare suplimentar˘ a: de unde provin aceste versuri? a: 3. R˘ aspuns: (a). Literele de pe a doua linie sunt imaginile celor din prima linie, ¸si si nu invers. inve rs. 4. R˘ aspuns: (d). (d). Me Metod todaa (a) (a) este este doar o subs substit titut ut¸ie ¸ie normal˘a (compunerea a 2 permut˘ari ari este tot o permutare). permutare). Metoda (b) este mai slab˘ a decˆ at at prima ˆıntr ın truc ucˆ aˆt expune mai multe informat¸ii at ¸ii despre textul text ul clar. Metoda Meto da (c) se nume¸ste ste substitut¸ie ¸ie polialfabetic˘ polialfabetic˘ a. a. 5. R˘ aspuns: (b). (b). Este Este de ajuns ajuns s˘ a se calculeze restul ˆımp˘art art¸irii ¸ irii lui 1729 la 4 pentru a elimina (a) ¸si si (c). (d) este 1729 ˆın hexazecimal (i.e. ˆın baza 16). 6. R˘ aspuns: (c). (c). Alg Algori oritm tmul ul este o varian ariant˘ t˘ a a one-time pad . Ofer Ofer˘˘a securitate perfect˘a dac˘ a nu se utilizeaz˘a cheia de criptare decˆat at o singur˘ sin gur˘a dat˘ dat a. a˘. Poate fi de asemenea considerat o variant˘a a cifrului lui Cezar, dar aplicat unei singure litere litere ¸si si cu un decalaj decalaj ales aleator. Utilizat Utilizat ˆın ın acest fel, cifrul cifrul lui Cezar ar fi sigur. sigur. Sistem Sistemul ul nu are nicio nicio leg˘ leg˘atur˘ atur˘ a cu RSA. R˘aspunsul aspunsul (b) nu ar satisface principiul principiul lui Kerckhoff: Kerckhoff: un sistem de criptare trebuie trebuie s˘a r˘ amˆ amˆ an˘ an˘a sigur cˆand and adversarul cunoa¸ste ste tot despre acesta, mai put¸in ¸in cheia utilizat˘a. a. 7. R˘ aspuns: (b). Operat¸ia ¸ia invers˘a adun˘ arii arii cu k mod N este sc˘aderea aderea cu k mod N . N . 8. R˘ aspuns: (a). (a). HMA HMAC C este MAC, SHA-1 SHA-1 este o funct funct¸ie ¸ie de dispersie ¸si si NIST este o agent¸ie ¸ie american˘a de standardizare. 9. R˘ aspuns: (b). 53
× 17 = 1 mod 100
10. R˘ aspuns: (c). La momentul divulg˘arii arii mesa jului, toat˘ t oat˘ a lumea va putea verifica faptul c˘a hash-ul este corect ¸si si c˘a se cuno¸stea stea mesajul m la momentul calculul˘arii arii acestui hash. Metoda nu permite dezv˘aluirea aluirea mesajului m. O cifrare a lui m cu o cheie cunoscut˘a doar de cel care face criptarea nu garanteaz˘ a nimic: se poate de asemenea publica publica un cuvˆant ant aleator pentru ca ulterior s˘a se alea al eag˘ g˘a cheia care s˘a corespund˘ corespund˘ a unei cript˘ari ari corecte. co recte. Aceea¸si si problem˘ prob lem˘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, sterilor, pentru obt¸inerea ¸inerea unei coliziuni pe primii 20 de bit¸i ¸i ai funct¸iei ¸iei de dispersie, este necesar s˘a se calculeze valoare 20 funct¸iei ¸iei hash pentru 2 , adic˘a aproximati aproximativ v 1000 numere. numere.
√
12. R˘ aspuns: (d). (d). Valoa aloarea rea lui xn este constant˘a, a, egal˘ a cu 289, ˆıncepˆand a nd 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 ar prim este imediat˘a. a. 15. R˘ aspuns: (c). (c). Propri Proprieta etatea tea de homomorfis homomorfism m este este aceea aceea c˘a cifrarea RSA a produsului a 2 mesaje (modulo N ) N ) este produsul cifr˘arilor arilor corespunz˘atoare atoare celor 2 numere. Restul variantelor sunt eronate, fiindc˘a RSA este un cifru cu cheie public˘a, a, deci asimetric. 16. R˘ aspuns: (c). Se aplic˘a propriet˘ propriet˘ at a¸ile ¸tile generatorului Geffe. 17. R˘ aspuns: (c). ˆIn aceast˘a situat¸ie ¸ie secvent¸a ¸a supus˘a test˘arii arii este ideal˘ a, a, num˘ arul arul de bit¸i ¸i de 0 este egal cu num˘arul arul de bit¸i ¸i de d e 1 ¸si si anume 1024. 18. R˘ aspuns: (a). 19. R˘ aspuns: (b), (b), (c). (c). Un registr registru u de deplas deplasare are de lungime lungime n are 2n 1 st˘ st ˘ari ar i posibile (starea nul˘a este exclus˘a). a). ˆIn situat¸ia ¸ia ˆın care polinomul caracteristic este primitiv atunci el genereaz˘a toate st˘arile arile posibile. posibile.
−
20. R˘ aspuns: (a). Num˘arul arul de ie¸ i e¸siri siri posibile, posi bile, ale unei funct¸ii ¸ii hash h ash ideale cu ie¸sirea sirea m pe m bit¸i, ¸i, este 2 . 21. R˘ aspuns: (e). 22. R˘ aspuns: (a). 23. R˘ aspuns: a) A va determina dou˘a chei k ¸si si k∗ astf as tfel el ˆıncˆ ın cˆat: at: DES DE S (”banul (”banul”; ”; k ) = DE DES S (”stema (”stema””, k ∗ ). Pentru acest lucru procedeaz˘a dup˘ a cum urmeaz˘a: a: i) A va construi co nstrui dou˘a liste (DE DES S (”banul (”banul”; ”; k ), k) ¸si si (DE DES S (”stema (”stema”; ”; k ∗ ), k ∗ ), pentru toate cheile k respectiv k ∗ . Listele Listele sunt sortate ˆın raport cu primul primul cˆamp amp al fiec˘arei arei intr˘ari ari (i.e. DE DES S (”banul (”banul”; ”; k) respectiv DE DES S (”stema (”stema”; ”; k ∗ )).
˘ PROBLEME DE SINTEZ A
302
ii) A va c˘auta auta coliziuni colizi uni ˆın cadrul acestor acesto r liste ¸si si va obt ob ¸ine ¸tine k , k∗ astf as tfel el ˆıncˆ ın cˆat: at: DES DE S (”banul (”banul”; ”; k ) = DE DES S (”stema (”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 autare a coliziunilo coliz iunilorr ˆın cadrul celor dou˘a liste, pe 64 de bit¸i, ¸i, DE DES S (”banul (”banul”; ”; k ) ¸si DE DES S (”stema (”stema”; ”; k∗ ). Conform ”birthday attack” este nevoie numai de 2 32 evalu˘ari ari ale algoritmulu algoritmuluii DES pentru a determina o coliziune. c) Cerint¸a ¸a primitivei criptografice este ca funct¸iile: ¸iile: k
→ DE DES S (”banul (”banul”; ”; k ) ¸si k → DE DES S (”stema (”stema”; ”; k )
s˘a fie rezistente la coliziuni. colizi uni.
d) Se poate utiliza un algoritm de cifrare bloc pe 128 de bit¸i, ¸i, spre exemplu 64 AES (ˆın acest caz ”birthday attack” are nevoie de 2 evaluari ale AES). Ca o alternativ˘a se poate utiliza o funct¸ie ¸ie hash h rezistent˘ a la coliziuni. coliziuni. ParticParticipantul A alege x ”stema” stema”, ”banul” banul” , o valoare aleatoare r ¸si si calcul cal culeaz eaz˘˘a y = h(x r). Dup˘ a ce B face alegerea, alegerea, A poate dezv˘alui alui x ¸si si r .
||
∈{
}
24. R˘ aspuns: a) Vom ar˘ata ata faptul c˘ a G = x Z p2 x 1 mod p ˆın raport rapo rt cu 2 multiplicarea modul p este grup. Pentru aceasta se vor verifica urm˘atoarele: operat¸ia ¸ia este parte stabil˘a, a, asociativitatea, elementul neutru ¸si si elementul simetrizabil.
{ ∈
| ≡
}
2
b) Orice element a din Z p se poate scrie ˆın ın mod unic a = a1 + a2 p, p, unde a1 ¸si si a2 sunt numere num ere ˆıntregi ıntregi ce satisfa s atisfacc relat re lat¸ia ¸ia 0 a1 , a2 p 1. Orice elemen elementt 2 p a din Z este es te ˆın G dac˘ a ¸si si numai dac˘a elementul corespunz˘ator ator a1 este egal cu 1, de aici rezult˘a faptul c˘a G = p.
≤
| |
≤ −
c) Fie a = 1 + kp, kp , 0 k < p ¸si si b = 1 + lp, lp, 0 l < p elemente din G. Se verific˘a faptul c˘a L este homomorfism: L(a b) = k + l mod p ¸si si L(a) + L(b) = k + l mod p, deci L(a b) = L(a) + L(b). Direct Direct se veri verific˘ fic˘ a injectivitat inject ivitatea ea ¸si si sujectivitatea lui L, deci L este izomorfism de grupuri.
≤ ·
·
d) Avem de ar˘atat atat faptul c˘ a orice element a lui p + 1. Din binomul lui Newton rezult˘a: a: n
2
2
( p + 1) mod p =
≤
∈ G poate fi scris ca o putere a
i=0
n i p mod p2 = 1 + np. i
Deci, p + 1 genereaz˘a G. Pent Pentru ru orice orice y y 2 numai dac˘ a x = ( p + 1) mod p .
∈ G avem:
Deoarece ( p ( p + 1)y mod p2 = 1 + py, py , obt¸inem: ¸inem:
y = log p+1 a ¸si p+1 (x) dac˘
˘ R ASPUNSURI
303
y=
x
− 1 mod p = L(x).
p
Acest˘ a funct¸ie ¸ie logaritm st˘a la baza ba za algoritmului criptografic Okamoto-Uchiyama. Okamoto-Uchiyama. 25. R˘ aspuns: S˘ a consider˘am am semn˘ aturile aturile pentru mesajele m ¸si si m∗ . Semn Semn˘˘aturile aturile ∗ sunt (r, (r, s) ¸si (r, s ). Avem: s=
s∗ =
H (m) + xr mod q k
H (m∗ ) + xr mod q. k
Deducem k=
H (m) s
− H (m∗) mod q. − s∗
Vom calcula apoi r = (g ( gk mod p) mod q ¸ si ˆın final fin al vom recup rec upera era x prin formula: q ¸si
x=
ks
− H (m) mod q. r
26. R˘ aspuns: a) Nu este corect corect s˘ a se calculeze calculeze dimensiunea dimensiunea cheii cheii prin sumarea sumarea dimensiunii celor dou˘a intr˘ari ari ˆın algoritm algoritm deoarece deoarece numai numai una este secret˘ secret˘a. a. Deci dimensiunea cheii este de 40 de bit¸i ¸i nu de 64 de bit¸i. ¸i. b) Ma Maii ˆıntˆ ınt ai aˆi B reconstruie¸ reconst ruie¸ste ste textul clar P ∗ = C RC 4(IV,K 4(IV,K ). Ulterior P ∗ este ˆımp˘ ımp art a˘rt¸it ¸it ˆın dou˘a p˘ar¸i ¸ti P ∗ = M ∗ Q∗ , unde M ∗ este de n bit¸i ¸i iar Q∗ de 32 de bit¸i. ¸i. B calculeaz˘ a L(M ∗ ) ¸si si com compar par˘˘a cu Q∗ . B accept˘a mesajul M ∗ dac˘ a ∗ ∗ ¸si si numai numa i dac˘ dac ˘a L(M ) = Q, altfel va respinge mesajul M .
||
⊕
c) Conform ”birthday paradox” alegˆand and I V aleatoriu la fiecare ”frame” rezult˘a 24 c˘a la fiecare 2 2 5000 ”frame”-uri exist˘a o coliziune pentru dou˘a I V din cele 5000 transmise de la/c˘atre atre acela¸si si utilizator. utiliz ator. ˆIn aceast˘a situat¸ie ¸ie avem o coliziune ˆın ¸sirurile sirurile cheie, ceea ce poate conduce la informat¸ie ¸ie despre textul clar ([83]). O alternativ˘a este de a incrementa I V . V .
≈
˘ PROBLEME DE SINTEZ A
304
d) Fie M ∗ = M ∆ un nou mesa j, unde ∆ este un ¸sir sir de n bit¸i. ¸i. Vom calcula ∗ diferent¸a ¸a dintre noul text cifrat C ¸si si C :
⊕
C ∗
⊕ C
= (P ∗ = = =
⊕ RC 4(I 4(I V , K )) ) ) ⊕ (P ⊕ RC 4(IV,K 4(IV,K )) )) P ∗ ⊕ P (M ⊕ M ∗ )||(L(M ) M ) ⊕ L(M ∗ )) ∆ ⊕ L(∆). (∆).
Deci, pentru orice ∆ nenul, adversarul cunoa¸ste ste faptul f aptul c˘a C ∗ = C (∆ L(∆)) care verific˘a CRC-ul. ˆIn concluzie acesta are (2 n 1) posibilit˘ at a¸i ¸t i de alegere ∗ pentr pe ntru u ∆ (¸si si C ). Proprietatea Proprietatea violat˘ violat˘ a este cea de integritate a mesajului . O concluzie ce se desprinde din acest exercit¸iu ¸iu este aceea c˘a CRC-urile (cu sau f˘ ar˘ ar˘ a cheie) ne asigur˘a protect¸ia ¸ia contra erorilor erorilo r de transmisie transm isie nu ¸si si ˆımpotriva ımpo triva unui adversar malit¸ios. ¸ios.
⊕ ||
−
27. Raspuns: Prin calcule directe vom obt¸ine: ¸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)(q 1). 1).
−
−
Apoi, prin calcul direct sau utilizˆand 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 modN ,, N = p q .
·
Folosind codificarea spat¸iu= ¸ iu= 00, A = 01, B = 02, ..., Z = 26 obt¸inem textul clar: ”THE MAG MAGIC IC WORDS WORDS ARE SQUEAMISH SQUEAMISH OSSIFRAGE OSSIFRAGE”. ”.
Bibliografie [1] Abramowitz M., Stegun I.A., I.A., Handbook of Mathematical Functions , Washington, D.C., U.S. Governme Government nt Printing Office, 1964. [2] Anand P., P., Foundations of Rational Choice Under Risk , Oxford: Oxford University Press, 1993. [3] Akerlof G. A., Yellen J. L., L. , Rational Models of Irrational Behavior , 1987. [4] Aumann R. J., Hart S., S., Handbook of Game Theory with Economic Applications , 3 vols. Amsterdam: North-Holland, 2002. [5] Aumann R. J., Maschler M. B., B. , Repeated Games with Incomplete Information , Cambridge, Mass.: MIT Press, 1995. [6] Atanasiu A., A., Securitatea Informat ¸iei, vol. 1, Criptografie , ed. InfoData, InfoData, Cluj, 2008. [7] Atanasiu Atanasiu A., A., Securitatea Securitatea Informat ¸iei, vol. 2, Proto Protoco coale ale de securitate securitate , ed. InfoData, Cluj, 2009. [8] Baker K., Kropp D., D., Management Management Science: Science: An Introd Introduction uction to the Use of Decision Models , 1985. [9] Baase Baase S., Van Gelder Gelder A., A., Computer Algorithms, Introduction to Design and Analysis Analysis , Addison Wesley Longman, 2000. [10] Bellman R. E., E., Teoria grafurilor , Editura Tehnic˘a, a, Bucure¸ Bucu re¸sti, sti , 1976 1 976.. [11] Bellman R., R., Dynamic Programming Programming , Princeton Princeton Universi University ty Press, 1957. [12] Berge C., C., Th´eorie eorie des graphes et ses applications , Dunod, 1967. [13] Berger J., J., Statistical decision theory and Bayesian Analysis , 2nd ed., New York: Springer Verlag, 1985. 305
306
BIBLIOGRAFIE
[14] Bertse Bertsek kas D. P., Dynamic Dynamic Prog Progrramming and Optimal Control Control , 2nd 2nd ed., ed., Athena Scientific, 2000. [15] Bertseko Bertsekoss A., A., Linear Linear Network Network Optimization, Optimization, Algorithms Algorithms and Codes Codes , MIT Press, Press, 1991. [16] Biggs N., Lloyd E., Wilson R., R. , Graph Theory , Oxford University Press, 1986. [17] Bondy J.A., Murty U.S.R., U.S.R., Graph Theory, Springer, 2008. [18] Baird Baird D., Gert Gertne nerr R. H., H., Pick Picker er R. C. , Game Theory and the Law , Cambridge, Mass.: Harvard University Press, 1994. [19] Browson R., R., Operational Research , 2nd edition, Prentice Hall, 1997. [20] Budn Budnic ick k F., F., Ric Richard hard M., M., Vollma ollmann nn T. E. , Principles Principles of Oper Operations ations Research for Management , Homewood: Irwin, 1977. [21] Chartrand G., G., Introductory Graph Theory , Dover, 1985. [22] Clemen R., Decisions: An Introduction Introduction to Decision Decision Analysis Analysis , R., Making Hard Decisions: 2nd ed., Belmont CA: Duxbury Press, 1996. [23] Corm Cormen en T., Leis Leiser erso son n C., Rive Rivest st R. Introd Introduction uction to Algorithms Algorithms MIT Press, Press, 1990. [24] Dantz Dantzig ig,, Geor George ge B., B., Linear Linear Prog Progrramming and Extensions Extensions , Prince Princeton ton:: Princeton U P, 1963. [25] De Groot M., M. , Optimal Statistical Decisions , Wiley Classics Library, Library, 2004. [26] Denardo E.V., E.V., Dynamic Dynamic Progr Programming amming:: Models Models and Applications Applications , Mineola, NY: Dover Dover Publications, Publications, 2003. [27] Dimand M. A., Robert W. D., 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., M., The art and theory of dynamic programming , Academic Academic Press, Press, 1977. [29] Dugatkin L. A., Hudson K. R., R. , Game Theory and Animal Behavior , New York: Oxford University Press, 1998. [30] Fryer K., 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, Alan, Algorithmic Graph Theory , Cambridge University Press,1985. [33] Giegerich R., Meyer C., Steffen P., P. , A Discipline of Dynamic Programming over Sequence Data , Science of Computer Programming 51 (3), 2004. [34] Golumbic Golumbic M., M., Algorithmic Algorithmic Graph Theory Theory and Perfect Perfect Graphs Graphs , Aca Academ demic ic Press, Press, 1980. [35] Harary F., F., Graph Theory , Reading, MA: Addison-Wesley,1969 [36] Harary F., Palmer E., E., Graphical Enumeration , New York, NY: Academic Press,1973. [37] Harsanyi J. C., Reinhard S., S., A General Theory of Equilibrium Selection in Games , Cambridge, Mass.: MIT Press, 1988. [38] Heims S. J., J., John Von Neumann and Norbert Norbert Wiener: Wiener: From Mathematics Mathematics to the Technologies of Life and Death , Cambridge, Mass.: MIT Press, 1980. [39] Heinz Heinze e C. D., D., Management Management Science Science:: Introdu Introductory ctory Concepts Concepts and ApplicaApplications , 1982. [40] Hiller F., F., Introduction to Operational Research , Mc. Graw Hill, 1995. [41] Kaufmann A., A., Metode Met ode ¸si si modele model e ale a le cercet˘ arii operat ¸ionale , Editura Tehnic˘a, a, Bucure¸ Buc ure¸sti, sti , 196 1967. 7. [42] Kaufmann A., Desbazeile G., G., La methode du chemin critique , Paris, 1969. [43] Kirb Kirby y M. W., W., Oper Operational ational Rese Resear arch ch in War and Peac Peace e , Imperial College Press, London, 2003. [44] Mahade Mahadev v N.V.R. N.V.R.,, Peled Peled U. N., N., Threshold Threshold Graphs Graphs and Relate Related d Topics , North-Holland, 1995. [45] Mathur K., Solow D., D., Management Science: The Art of Decision Making , 1994. [46] McKinsey, McKinsey, Introduction to the Theory of Games , McGraw-Hill Book Company, Inc., New York. [47] Menezes A.J. , Handbook of Applied Cryptography , CRC Press, 1997.
308
BIBLIOGRAFIE
[48] Meyn S., S., Control Techniques for Complex Networks , Cambridge University Press, Press, 2007. [49] Nasar S., 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., Jr., Essays on Game Theory , Cheltenham, Cheltenham, U.K., and Brookfield, Brookfield, Vt.: Edward Elgar, 1996. [51] Naccach Nac cache e D., Mih˘ ait ait¸˘ ¸a ˘ A., Olimid R. F., Oprina A. G., Simion E., E., Criptogr Cript ografie afie ¸si si Securitatea Securitat ea Informat In format ¸iei. Aplicat ¸ii , MATRIXROM, 2011. [52] Owen G., G., Teoria Jocurilor , Editura Tehnic˘a, a, Bucu B ucure¸ re¸sti, sti , 1976 1 976.. [53] Pidd M., M., Tools for Thinking: Modelling in Management Science , J. Wiley & Sons Ltd., Chichester; 2nd. Edition, 2003. [54] Peterson Peterson M., M., An Introd Introduction uction to Decision Decision Theory Theory , Cambridge Cambridge Universit University y Press,2009. [55] Popescu O. ¸si si al. Matematici Matem atici pentru economi¸ economi¸sti sti , Editura Didactic˘a ¸si si PedPedagogic˘a, a, Bucu B ucure¸ re¸sti, sti , 1992 1 992.. [56] Preda V., V., Teoria deciziilor statistice , Editura Academiei, Bucure¸sti, sti, 1991. [57] Raiffa H., H., Decision Decision Analysis: Analysis: Introdu Introductory ctory Readings Readings on Choices Choices Under Uncertainty , McGraw Hill, 1997. [58] Rapoport A., Albert M. C., C., Prisoners Dilemma: A Study in Conflict and Cooperation , Ann Arbor: University of Michigan Press, 1965. [59] Riker W. H., Ordeshook P. C., C. , An Introduction to Positive Political Theory , Englewood Cliffs, N.J.: Prentice Hall, 1973. [60] Robert C., C., The Bayesian Choice , 2nd ed., New York: Springer, 2007. [61] Roth Roth A. E., E., R. E. Verre errecc cchia hia,, The Shapley Value as Applied to Cost Allocat Allocation: ion: a Reinterpr Reinterpretation etation , Journa Journall of Accoun Accounting ting Resear Research ch 17 (1979): (1979): 295303. [62] Rubins Rubinstei tein n A., A., Modeling Modeling Bounded Bounded Rationalit Rationality y , Cam Cambrid bridge ge,, Ma Mass ss.: .: MI MIT T Press, Press, 1998. [63] Rume Rumelt lt R. P., Sche Schend ndel el D. E., E., Teece eece D. J., J., Fundamental undamental Issues in Strategy: Strategy: A Research Research Agenda , Boston: Harvard Business School Press, 1994.
309
BIBLIOGRAFIE
[64] Samuelson L., L., Evolution and Game Theory , Journal of Economic Perspectives 16, 2002. [65] Schelling T., T., The Strategy of Conflict , Cambridge, Mass.: Harvard University Press, Press, 1960. [66] Schotter A., A., The Economic Theory of Social Institutions , Cambridge, U.K.: Cambridge University Press, 1981. [67] Schneier B., B., Applied Cryptography , Adison-Wesley, 1998. [68] Seiz J. A., A., Game Theory Theory and Bargainin Bargainingg Models Models , In The Elgar Companion to Feminist Economics, edited by Janice Peterson and Margaret Lewis. Cheltenham, U.K., and Northampton, Mass.: Edward Elgar, 1999. [69] Shafer G., Pearl J., J., Readings in uncertain reasoning , San Mateo, CA: Morgan Kaufmann,1990 Kaufmann,1990.. [70] Shapiro C., C., The Theory of Business Strategy , RAND Journal of Economics 20, 1989.
−
[71] Shapley L. S., 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 Mathema Mathematic ticss Studie Studies, s, no. 28. Prince Princeton ton,, N.J.: N.J.: Prince Princeton ton Unive Universi rsity ty Press, Press, 1953. [72] Shap Shaple ley y L. S., S., Shub Shubik ik M., M., A Method for Evaluating the Distribution of Power in a Committee System , American Political Science Review 48, 1954. [73] Shubi Shubik k M., M., A Game-The Game-Theor oretic etic Approa Approach ch to Political Political Economy Economy , Vol. 2 of Game Theory in the Social Sciences. Cambridge, Mass.: MIT Press, 1984. [74] Sierksma G., G., Linear and Integer Programming: Theory and Practice 2nd ed. New York: Marcel Dekker, 2002. [75] Simion Simio n E., Opri¸san san Gh., Gh., Elemente de Cercet˘ ari Operat Operat ¸ionale ¸ional e ¸si si Cripto Cri ptologie logie , Politehnic Politehnicaa Press, Press, ISBN 973-844 973-8449-006, 9-006, 2002. [76] Simio Simion n E., E., Pred Preda a V., V., Po Popes pescu cu A., A., Criptanaliza. Rezultate ¸si si Tehnici Matematice , Universitatea din Bucure¸sti, sti, ISBN 973575975-6, 2004. [77] Simion E., E., Enciclopedie Matematic˘ a , Edit¸ie ¸ie coordonat˘ a de M. Iosifescu, O. St˘an˘ an˘ a¸ a¸sil˘a ¸si si D. S¸ tef˘ te f˘anoiu, anoiu, Editura AGIR, ISBN 978-973-720-288-8, pp. 905944, 2010.
310
BIBLIOGRAFIE
[78] Smith J.Q., J.Q., Decision Decision Analysis: Analysis: A Bayesian Approac Approach h , Chapman and Hall, 1988. [79] Sniedovich M., M., Dynamic Programming: Foundations and Principles , Taylor & Francis, 2010. [80] Stok Stokey ey N., N., Lucas Lucas R. E., E., Pres Presco cott tt E. Recursive Recursive Methods Methods in Economic Economic Dynamics , Harvard Univ. Press, 1989. [81] Taha H., H., Operational Research , Prentice Hall, 1994. [82] Tomescu I., I., Introducere Int roducere ˆın ın combinat combi natori oric˘ c˘ a , Editura Tehnic˘a, a, Bucure¸ Bucu re¸sti, sti , 1970 1 970.. [83] S. Vaudenay, audenay, A Classical Classical Introd Introduction uction to Cryptogr Cryptography: aphy: Applications Applications for Communications Security , Springer-Verlag, 2005. [84] Wald A., A., Contributions to the Theory of Statistical Estimation and Testing Hypotheses , Annals of Mathematical Statistics 10 (4), 1939. [85] Winston W., W., Operations Operations Research: Research: Applications and Algorithms , Duxbury Press; 4th. Edition, 2003. [86] Zid˘ Zi d˘ aroi ar oiu u C., C. , Programare liniar˘ a , Editura Tehnic˘a, a, Bucure¸ Buc ure¸sti, sti , 1983. 19 83. [87] Zid˘ Zi d˘ aroi ar oiu u C., C. , Programare dinamic˘ a , Editura Tehnic˘a, a, Bucure¸ Bucu re¸sti, sti, 198 1980. 0.