Referenţ Referenţi ştiinţ tiinţifici: Prof. univ. dr. Octavian ST Ă N ĂŞ IL Ă 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
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
i
Cuvˆ ant ˆınai ant ın aint nte e Cercetarea Cercetarea Operat ¸ional˘ a 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 a problemei de transport cˆ 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 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 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 Crip disciplina Criptografie tografie ¸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
˘ CERCETARI OPERAT ¸ IONALE
˘ 1 PROGRAMARE LINIARA 1.1. Folosirea eficient˘ a a resurselor limitate . . . . 1.2. Forme ale problemelor de programare liniar˘ a 1.3. Algoritmul simplex (Dantzig) . . . . . . . . . 1.4. Duala unei probleme de programare liniar˘a . 1.5. Problema de transport . . . . . . . . . . . . . 1.6. Aplicat¸ii . . . . . . . . . . . . . . . . . . . . .
1 . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
˘ 2 PROGRAMARE DINAMIC A 2.1. Forma unei probleme de optimizare secvent¸ial˘a . . . . . . 2.2. Teorema de optim . . . . . . . . . . . . . . . . . . . . . . 2.3. Programare dinamic˘a regresiv˘a . . . . . . . . . . . . . . . 2.3.1. Ecuat¸iile program˘arii dinamice regresive . . . . . . 2.3.2. Rezolvarea problemelor de programare regresiv˘ a . 2.3.3. Aplicat¸ii . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Programare dinamic˘a progresiv˘a . . . . . . . . . . . . . . 2.4.1. Ecuat¸iile program˘arii dinamice progresive . . . . . 2.4.2. Rezolvarea problemelor de programare progresiv˘ a 2.4.3. Aplicat¸ii . . . . . . . . . . . . . . . . . . . . . . . . 3 TEORIA JOCURILOR 3.1. Not¸iuni introductive . . . . . . . . . . . . . . . . . . 3.2. Principiul minimax . . . . . . . . . . . . . . . . . . . 3.3. Strategii mixte ¸s i valoarea jocului . . . . . . . . . . . 3.4. Teorema fundamental˘ a a teoriei jocurilor . . . . . . 3.5. Rezolvarea jocurilor matriceale . . . . . . . . . . . . 3.5.1. Formularea problemei de optimizare . . . . . 3.5.2. Reducerea la probleme de programare liniar˘a 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
3.6. Aplica Aplicat¸tii
CUPRINS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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 . . . . . . . . . . . . . 125 8.1.4 8.1 .4.. Defin Definit it¸ia ¸ia statistic˘a a probabilit˘ at a¸tii . . . . . . . . . . . . . . . 126 8.1.5 8.1 .5.. Defin Definit it¸ia ¸ia axioma axi omatic˘ tic˘a a probab pro babili ilit˘ t˘at a¸tii . . . . . . . . . . . . . . 126 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) . . . . . . . . . . . . . . 128 8.2.5. 8.2.5. Teorema eorema celor celor 3σ 3σ . . . . . . . . . . . . . . . . . . . . . . . . . 128 8.3. Legea numerelor mari . . . . . . . . . . . . . . . . . . . . . . . . . . 128 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 . . 129 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
vi
8.5.3. Testul 3 . . . . . . . . . . . . . 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 8.6 8.6.4. Intervale de ˆıncredere . . . . . 8.6.5. Teste statistice . . . . . . . . .
II
CUPRINS . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
CRIPTOLOGIE
9 SISTEMUL DE CIFRARE CEZAR 9.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2. Exerci Exercit¸tii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3. Exerci Exercit¸tii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
131 132 132 133 1 34 13 4 14 0 141 141 142 14 4
147 149 1 49 149 15 0
10 METODA SUBSTITUT ¸ IEI 153 10.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 10.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 10.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 11 SISTEMUL DE CIFRARE PLAYFAIR 159 11.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 11.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 11.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 12 SISTEMUL DE CIFRARE HILL 165 12.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 12.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 12.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 13 SISTEME DE CIFRARE POLIALFABETICE 171 13.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 13.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 13.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
vii
CUPRINS
14 METODA TRANSPOZIT ¸ IEI 177 14.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 14.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 14.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 15 SISTEME MIXTE 181 15.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 15.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 15.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 16 GENERATOARE PSEUDOALEATOARE 187 16.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 16.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 16.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 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 197 . . . . . . . . . . . 1 97 . . . . . . . . . . . 197 . . . . . . . . . . . 20 1
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 . . .
193 1 93 193 19 4
207 2 07 207 20 9
A RESTURILOR 211 . . . . . . . . . . . . . . . . . . . . . . . . . . 2 11 . . . . . . . . . . . . . . . . . . . . . . . . . . 212 . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3
21 SISTEMUL DE CIFRARE MERKLE-HELLMAN 21.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
217 2 17 218 21 9
viii
CUPRINS
22 SISTEMUL DE CIFRARE RSA 221 22.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 22.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 22.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 23 SISTEMUL DE CIFRARE ELGAMAL 227 23.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 23.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 23.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 24 ARITMETICA PE CURBE ELIPTICE 229 24.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 24.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 24.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
233 2 33 233 23 4
26 SISTEMUL DE CIFRARE MENEZES-VANSTONE 237 26.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 26.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 26.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 27 FUNCT ¸ I I DE DISPERSIE 241 27.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 27.2. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 ˘ TURA ELGAMAL 28 SEMNA 245 28.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 28.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 28.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 ˘ TURA DSA/ECDSA 29 SEMNA 249 29.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 29.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 29.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
ix
CUPRINS
30 PROTOCOLUL DIFFIE-HELLMAN 253 30.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 30.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 30.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 31 PROTOCOLUL BLOM 257 31.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 31.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 31.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
261 2 61 262 26 2
33 SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT265 33.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 33.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 34 CANALE SUBLIMINALE 34.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34.2. Exercit¸ii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34.3. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
267 2 67 267 26 8
35 PRINCIPI I CRIPTOGRAFICE
271
36 ATACURI ˆIN MEDIUL DE IMPLEMENTARE 275 36.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 36.2. Exercit¸ii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 37 RESURSE SOFTWARE 277 37.1. CrypTo ol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 37.2. OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 37.3. MAPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 38 APLICAT ¸ I I PRACTICE
287
˘ 39 PROBLEME DE SINTEZ A 295 39.1. Enunt¸uri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 39.2. R˘ aspunsuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
x BIBLIOGRAFIE
CUPRINS 309
Partea I
˘ CERCETARI OPERAT ¸ IONALE
1
Capitolul 1
˘ PROGRAMARE LINIARA 1.1.
Folosirea eficient˘ a a resurselor limitate
O problem˘a practic˘a ce apare frecvent ˆın activitatea de conducere economic˘a este urm˘atoarea: sunt disponibile mai multe resurse (materii prime, fort¸a˘ de munc˘a, resurse financiare) ˆın cantit˘a¸t i limitate. Cu ajutorul acestor resurse se pot desf˘a¸sura mai multe activit˘a¸t i economice. Problema const˘ a ˆın determinarea nivelurilor activit˘ a¸tilor luate ˆın considerare care s˘a se ˆıncadreze ˆın limit˘arile precizate ale resurselor ¸si s˘a asigure satisfacerea optim˘a a unui anumit criteriu. S˘ a not˘ a m cu i, 1 i m, tipul resursei ¸si cu bi cantitatea de resurs˘a de tipul i care este disponibil˘a . Vom nota prin j, 1 j n, tipul activit˘a¸t ii (procesului de subproduct¸ie) ¸si prin x j nivelul (necunoscut) la care urmeaz˘a s˘ a se desf˘a¸soare aceast˘ a activitate. ˆIn sfˆar¸sit, vom nota prin aij cantitatea de resurs˘a de tipul i, 1 i m, necesar˘a pentru producerea unei unit˘a¸ti din produsul realizat ˆın procesul de product¸ie de tipul j, 1 j n, (ˆın general, activitatea de tipul j ). Presupunem aici c˘a aij depinde numai de tipul resursei ¸si de tipul procesului de product¸ie ¸si nu de nivelul la care urmeaz˘a s˘ a se desf˘a¸soare aceast˘a activitate. Cu notat¸iile introduse, rezult˘a c˘a putem exprima cantitatea total˘a de resurs˘a de tipul i care va fi efectiv utilizat˘a ˆın procesele de product¸ie:
≤ ≤
≤ ≤
≤ ≤
≤ ≤
ai1 x1 + ai2 x2 + . . . + ain xn . Cum nu putem consuma resursa de tipul i mai mult decˆat cantitatea disponibil˘ a bi , rezult˘a c˘a trebuie satisf˘acute condit¸iile: n
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¸soar˘a activitatea de tipul j, rezult˘a c˘a trebuie s˘a fie de asemenea satisf˘acute condit¸iile: x j
≥ 0, 1 ≤ j ≤ n.
(1.2)
Inegalit˘ a¸t ile 1.1 sunt numite restrict ¸iile problemei, iar 1.2 sunt numite condit ¸iile de nenegativitate ale problemei. Sistemul de inegalit˘a¸t i liniare poate avea o infinitate de solut¸ii, o solut¸ie unic˘a sau nici o solut¸ie (sistem incompatibil). Cazul cel mai frecvent pentru problemele practice corect puse este cazul ˆın care sistemul 1.1, 1.2 are o infinitate de solut¸ii. Prin urmare este posibil s˘a organiz˘ am procesele de product¸ie pentru fabricarea sortimentelor de tipul j, 1 j n, ˆıntr-o infinitate de moduri, respectˆand condit¸iile 1.1 de folosire a resurselor limitate. Adoptarea unei variante de plan se face pe baza unor criterii economice, cum ar fi: venitul realizat, beneficiul realizat, cheltuielile de product¸ie, product¸ia fizic˘a, consumurile de materii prime ¸si materiale, consumurile de energie etc. Vom presupune ˆın cele ce urmeaz˘a c˘ a putem formula un singur criteriu pe baza c˘aruia adopt˘ am decizia. Mai mult, vom presupune c˘a acest criteriu este reprezentat din punct de vedere matematic de o funct¸ie liniar˘a. Un exemplu de astfel de criteriu se obt¸ine ˆın modul urm˘ator. Dac˘ a not˘ am prin c j beneficiul unitar adus de activitatea de tipul j, 1 j n, atunci este clar c˘a beneficiul total este:
≤ ≤
≤ ≤
n
c j x j .
(1.3)
j=1
Problema care se pune este de a afla solut¸iile sistemului de inegalit˘a¸t i liniare 1.1, 1.2 care asigur˘a obt¸inerea valorii maxime pentru beneficiul total 1.3. Cu alte cuvinte, din punct de vedere matematic se cere rezolvarea problemei:
≤ ≤ ≤ ≥ ≤ ≤ sup n
j=1
x j
n
j=1
c j x j
aij x j
0, 1
bi , 1
j
i
m,
n,
care este numit˘a problema de programare liniar˘ a sau program liniar . Funct¸ia liniar˘a ce se dore¸ste maximizat˘a se nume¸ste funct ¸ie obiectiv sau funct ¸ia criteriu sau, ˆınc˘a, funct ¸ia de eficient ¸˘ a a problemei. Problema ment¸ionat˘ a poate fi rezolvat˘ a cu ajutorul algoritmului simplex sau simplex dual. Acesta este prezentat pe larg ˆın literatura de specialitate (Zid˘ aroiu ). O serie de produse soft ca MATLAB sau MAPLE au rutine specializate de rezolvare a problemelor de optimizare cu a jutorul acestor metode. Din acest motiv, omitem prezentarea rezolv˘arii complete a problemelor prin aceste metode.
˘ FORME ALE PROBLEMELOR DE PROGRAMARE LINIAR A
1.2.
5
Forme ale problemelor de programare liniar˘ a
Forma standard a unei probleme de programare liniar˘a este:
min(max)c x Ax = b x 0
≥
Remarc˘ am c˘a o problem˘a de maxim se poate transforma ˆıntr-o problem˘a de minim prin folosirea formulei max( f ) = min(f ). Forma canonic˘ a a unei probleme de programare liniar˘a este:
−
−
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(mult¸ime de restrict¸ii); sau > convert(mult¸ime de restrict¸ii, stdle); O restrict¸ie a unei probleme de programare liniar˘a este numit˘a concordant˘ a dac˘a este o inegalitate de tipul pentru problema de minim ¸si o inegalitate de tipul pentru problema de maxim. Forma mixt˘ a a unei probleme de programare liniar˘a cont¸ine restrict¸ii ¸si sub form˘a de ecuat¸ii. Deoarece prin operat¸ii matematice orice problem˘a de programare liniar˘a se poate aduce ˆın forma canonic˘a a problemei, pentru cazul de minim vom lucra numai cu astfel de probleme, adic˘a cu probleme ˆın forma canonic˘a.
≥
≤
Definit¸ia 1.2.1. Fie problema de programare liniar˘a ˆın forma standard atunci mult ¸imea programelor este definit˘a ca:
{ ∈ Rn|Ax = b, x ≥ 0}.
P = x
Un punct de minim global al funct¸iei obiectiv z = c x pe mult¸imea programelor P este numit solut ¸ie optim˘ a , iar mult¸imea programelor optime ale problemei va fi notat˘ a cu: P ∗ = x P min c x = c x .
{ ∈ |
x P
∈
}
˘ PROGRAMARE LINIAR A
6
Definim solut ¸ia de baz˘ a a sistemului Ax = b ca o solut¸ie x Rn c˘areia componentelor sale nenule ˆı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 Ax = b se poate scrie ˆın forma explicit˘a:
∈
xB = B −1 b
− B−1RxR
ˆın care R este matricea obt¸inut˘ a din A prin eliminarea coloanelor j1 , . . . , jm . Notˆ and: B
B−1 b =x , B−1 a j = y jB, 1 rezult˘ a c˘a:
− B
xB =x sau
B
xB i =xi
} R {
j
y jBx j
∈R B yij x j , i
j
B {
−
≤ j ≤ n,
∈R
∈B
}− B
unde = j1 , . . . , jm ¸si = 1, . . . , n . Solut¸ia de baz˘a corespunz˘atoare bazei B B este x B =x ¸si x R = 0. Este clar c˘a aceast˘ a solut¸ie de baz˘a este un program dac˘a este ˆındeplinit˘a condit¸ia: B−1 b 0.
≥
O baz˘a B care verific˘a inegalitatea de mai sus se nume¸ste baz˘ a primal admisibil˘ a. ˆIn problemele practice o astfel de baz˘a se determin˘a prin metoda bazei artificiale. De foarte multe ori ˆıns˘a, aceasta este disponibil˘a direct, baza primal admisibil˘a fiind matricea unitate. Avem urm˘atoarea teorem˘a numit˘ a teorema fundamental˘ a a program˘ arii liniare . Teorema 1.2.1. i) Dac˘a problema de programare liniar˘ a:
min(max)c x Ax = b x 0
≥
are un program optim, atunci ea are un program de baz˘ a. ii) Dac˘ a problema de mai sus are un program optim, atunci ea are un program optim de baz˘ a. Algoritmul fundamental pentru rezolvarea problemelor de programare liniar˘a ment¸ionate se nume¸ste algoritmul simplex primal ¸si a fost elaborat de George Dantzig ˆın anul 1951. Algoritmul este descris ˆın orice carte fundamental˘ a de programare liniar˘a ¸si este implementat ˆın majoritatea softurilor matematice de prelucrare de date.
7
ALGORITMUL SIMPLEX (DANTZIG)
1.3.
Algoritmul simplex (Dantzig)
Pentru rezolvarea problemelor de programare liniar˘a s-a impus algoritmul simplex datorat lui G.B. Dantzig (1951). Aceast˘ a metod˘ a ne permite s˘a explor˘am ˆın mod sistematic mult¸imea programelor de baz˘ a a unei probleme de programare liniar˘a ˆın forma standard prin trecerea de la un program de baz˘a la un program de baz˘a vecin, care este cel put¸in la fel de bun ca cel precedent. Metoda furnizeaz˘a , de asemenea, criterii pentru punerea ˆın evident¸a˘ a situat¸iei cˆand problema are optim infinit precum ¸si a cazului ˆın care mult¸imea programelor este vid˘a. PASUL 0. Se pune problema de optimizat ˆın forma standard:
inf cT x Ax = b, x 0.
≥
(Dac˘a problema are restrict¸ii de forma unor inegalit˘a¸t i, atunci se transform˘a mai ˆıntˆ ai toate inegalit˘ a¸tile ˆın inegalit˘a¸t i de tipul ; sc˘azˆ andu-se variabilele artificiale y, problema de maxim se va transforma ˆın problem˘a de minim etc.). A este o matrice cu m linii ¸si n coloane pentru care avem rang(A) = m < n. Vom nota cu z funct¸ia obiectiv adic˘a z = c T x. PASUL 1. Se determin˘a o baz˘a B primal admisibil˘a (fie este disponibil˘a direct fie se determin˘a cu ajutorul bazei artificiale prin metoda celor dou˘a faze) ¸si se calculeaz˘a:
≥
xB = B −1 b, B z B = c T B x , 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. Vom nota cu mult¸imea indicilor j care determin˘a matricea B ¸si prin = 1, . . . , n . Tabelul simplex init¸ial are forma:
{
}−B
B
R
TABELUL 1.1
cB
V.B. xB z
V.V.B. xB 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): x este program optim. ˆIn caz contrar se determin˘a mult¸imea (nevid˘a):
− ≤ ∀ ∈ R
B
R+ = { j ∈ R|z j − c j > 0} ¸si se trece la pasul urm˘ator. B PASUL 3. Dac˘a exist˘a j + pentru care y j are optim infinit. ˆIn caz contrar, determin˘am k
∈ R
max(z jB j
¸si r
≤ 0 ne oprim (STOP): problema ∈ R+ cu criteriul de intrare ˆın baz˘ a : − c j ) = zk − ck B
B
∈ B+ = {i ∈ B|yik > 0} cu criteriul de ie¸sire din baz˘ a : xB xB i r min ( B ) = B i∈B+ y yrk ik
B Elementul y rk se nume¸ste pivot . Se trece la pasul urm˘ator.
∼
PASUL 4. Se consider˘a baza B obt¸inut˘ a din B prin ˆınlocuirea coloanei ar cu coloana ak , ¸si se calculeaz˘a valorile (prin formula de schimbare a bazei adic˘a regula de ∼
∼
B
B
∼
∼
transformare a tabelului simplex) x , z , y jB , z jB
∼
− c j ¸si se trece la Pasul 2 ˆınlocuind
peste tot baza B cu baza B . Calculele pot fi simplificate prin folosirea regulilor de transformare a tabelului simplex : i) elementele situate pe linia pivotului se ˆımpart la pivot; ii) elementele situate pe coloana pivotului devin zero, cu except¸ia pivotului care devine 1; iii) celelalte elemente se transform˘a dup˘ a regula dreptunghiului: dac˘a ne imaB gin˘ am dreptunghiul a c˘ arui diagonal˘a este determinat˘a de elementul y ij care trebuie
∼B
B transformat ¸si pivotul yrk , atunci noua valoare y ij se obt¸ine ˆımp˘art¸ind la pivot B B diferent¸a dintre produsul elementelor yij yrk situate pe diagonala considerat˘a mai B B sus ¸si produsul y rj yik situat pe cealalt˘a diagonal˘ a a dreptunghiului. Observat ¸ii . i) Dac˘a la sfˆar¸situl algoritmului z jB c j < 0 j atunci solut¸ia problemei este unic˘a. ii) Este posibil ca ˆın cadrul algoritmului simplex s˘a apar˘ a fenomenul de ciclare (prin trecerea de la o baz˘a la alta s˘a ajung ˆıntr-o baz˘a deja procesat˘a). Exist˘ a mai multe tehnici de evitare a acestui fenomen asupra c˘arora nu ne vom opri ˆıns˘a. iii) Se poate da ¸si o interpretare geometric˘a a solut¸iilor unei probleme de programare liniar˘a ˆın cazul bidimensional. Domeniul de admisibilitate poate fi:
−
∀ ∈ R
˘ DUALA UNEI PROBLEME DE PROGRAMARE LINIAR A
9
-un poligon convex, iar cel put¸in unul dintre vˆ arfurile sale este solut ¸ie a problemei de optimizare. Se poate ˆıntˆ ampla ca solut¸ia s˘a fie o latur˘a a poligonului convex ce determin˘ a domeniul de definit¸ie, ˆın acest caz avem mai multe solut ¸ii ; -un domeniu nem˘arginit, caz ˆın care problema are optim infinit ; -mult¸imea vid˘a, caz ˆın care problema de optimizare nu are solut ¸ie .
1.4.
Duala unei probleme de programare liniar˘ a
Avˆ and o problem˘a de programare liniar˘a, problema construit˘a dup˘ a urm˘atoarele reguli se nume¸ste problema dual˘ a : a) termenii liberi din problema primal˘a devin coeficient¸i ai funct¸iei obiectiv ˆın problema dual˘ a; b) coeficient¸ii funct¸iei obiectiv din problema primal˘a devin termeni liberi ˆın problema dual˘ a; c) o problem˘a de maximizare (minimizare) devine o problem˘a de minimizare (maximizare); d) matricea coeficient¸ilor sistemului de restrict¸ii din problema dual˘a este transpusa matricei coeficient¸ilor sistemului de restrict¸ii primale; e) variabile duale (primale) asociate unor restrict¸ii primale (duale) concordante sunt supuse condit¸iilor de nenegativitate; f) variabile primale (duale) asociate unor restrict¸ii duale (primale) care sunt restrict¸ii neconcordante sunt supuse condit¸iei de nepozitivitate; g) variabile duale (primale) asociate unor restrict¸ii primale (duale) care sunt ecuat¸ii nu sunt supuse nici unei condit¸ii privind semnul. Remarc˘ am c˘a duala unei probleme ˆın forma canonic˘ a este tot ˆın forma canonic˘ a. Enunt¸a˘m ˆın continuare teorema fundamental˘ a a dualit˘ at ¸ii: Teorema 1.4.1. Fiind dat cuplul de probleme duale:
¸si
min c x Ax b x 0
≥
≥
max b y A y c y 0
≥
≤
una ¸si numai una din afirmat ¸iile urm˘atoare este adev˘arat˘ a: a) ambele probleme au programe. ˆ In acest caz, ambele probleme au programe optime ¸si valorile optime ale funct ¸iilor obiectiv coincid;
˘ PROGRAMARE LINIAR A
10
b) una din probleme are programe, iar cealalt˘ a nu are. ˆ In acest caz, problema care nu are programe are optim infinit; c) nici una din probleme nu are programe. Exist˘ a un algoritm numit algoritmul simplex dual care rezolv˘a problema primal˘ a prin intermediul problemei duale. Acela¸si lucru putem s˘a-l afirm˘am ¸si despre algoritmul simplex primal care rezolv˘a problema primal˘a, dup˘ a care pune ˆın evident¸a˘ solut¸ia problemei duale. Programul MAPLE are o procedur˘a de construct¸ie a dualei. Sintaxa acesteia este: > dual(funct¸ia liniar˘a, mult¸ime de restrict¸ii, nume variabila dual˘a);
1.5.
Problema de transport
S˘ a presupunem c˘a exist˘a m centre de aprovizionare (depozite) ¸si n centre de consum (beneficiari). Un produs omogen este depozitat ˆın cantit˘ a¸tile a i , 1 i m, ˆın centrele de aprovizionare ¸si este cerut ˆın cantit˘a¸tile b j , 1 j n, la beneficiari. Vom presupune c˘a sunt ˆındeplinite condit¸iile:
≤ ≤
≤ ≤
≥
≤ ≤
≥
≤ ≤ n,
ai 0, 1 i m, b j 0, 1 j a1 + . . . + am = b 1 + . . . + bn .
(1.4)
Cu alte cuvinte, presupunem c˘a disponibilitat¸ile ¸si cererile sunt nenegative, iar disponibilitatea egaleaz˘ a cererea total˘a. O astfel de problem˘a de transport se nume¸ste problem˘ a de transport echilibrat˘ a . Problema const˘ a ˆın organizarea transportului de la depozite la beneficiari astfel ˆıncˆ at s˘a se obt¸in˘a cheltuieli minime de transport. S˘ a not˘ am cu x ij cantitatea (necunoscut˘a) care urmeaz˘a s˘a fie transportat˘a de la depozitul i la beneficiarul j. Cantitatea ce se transport˘a de la depozitul i la tot¸i beneficiarii trebuie s˘a egaleze disponibilitatea de la depozitul respectiv, adic˘a: n
xij = a i , 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: m
i=1
xij = b j , 1
≤ j ≤ n.
(1.6)
Evident, cantit˘ a¸tile transportate sunt nenegative, adic˘a:
≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n.
xij
(1.7)
11
APLICAT ¸ II
Sistemul de inegalit˘a¸t i liniare 1.5-1.7 are ˆın condit¸iile 1.4 o infinitate de solut¸ii. Ca ¸si ˆın cazul precedent, pentru adoptarea unui plan de transport vom introduce un nou criteriu economic. S˘ a not˘ am pentru aceasta prin cij costul transportului unei unit˘a¸t i din produsul considerat de la depozitul i la beneficiarul j ; evident, ¸si ˆın acest caz presupunem c˘a acest cost unitar de transport nu depinde de cantitatea ce urmeaz˘ a s˘a fie transportat˘a din i ˆın j . Este clar c˘a cheltuielile de transport sunt: m
n
cij xij .
i=1 j=1
Problema const˘ a ˆın determinarea solut¸iilor sistemului de ecuat¸ii ¸si inegalit˘a¸ti 1.5-1.7 pentru care costul total de transport este minim, adic˘a:
≤ ≤ ≤ ≤ ≥ ≤ ≤ ≤ ≤ inf n
j=1 m i=1
m
i=1 j=1
cij xij ,
xij = a i , 1
i
m,
xij = b j , 1
j
n,
xij
1.6.
n
0, 1
i
m, 1
j
n.
Aplicat¸ii
Exercit¸iul 1.6.1. S˘a se scrie duala problemei de programare liniar˘a:
min(2x1 + 3x2 + x3 ), x1 + x2 + 3x4 3, 2x2 + 5x3 + 4x4 = 5, 2, x1 + x3 x1 , x2 0, x3 arbitrar, x 4
≥
≤ − ≥
≤ 0.
G˘ asit¸i solut¸ia optim˘a a problemei primale. R˘ aspuns: Respectˆand regulile de formare a problemei duale obt¸inem:
−
max(3u1 + 5u2 2u3 ), u1 + u3 2, u1 + 2u2 3, 5u2 + u3 = 1, 3u1 + 4u2 0, u1 0, u2 arbitrar, u 3
≥
≤ ≤ ≥
≤ 0.
˘ PROGRAMARE LINIAR A
12
Solut¸ia problemei primale se poate g˘asi cu metoda simplex primal sau dual. Sintaxa MAPLE pentru rezolvarea acestei probleme este: > with(simplex) : > obiectiv := 2 x1 + 3 x2 + x3 ; > restrictii := x1 + x2 + 3 x4 >= 3, 2 x2 + 5 x3 + 4 x4 = 5, x1 + x3 <= 2 ; > minimize(obiectiv, restrictii union x1 >= 0, x2 >= 0, x4 <= 0 ); Solut¸ia furnizat˘a de procedur˘a fiind:
∗ {
∗
∗
∗
∗
{
x1 = 0, x2 = 15/2, x3 = valoarea funct¸iei obiectiv fiind 41/2.
∗
}
−}
−2, x4 = 0,
Exercit¸iul 1.6.2. Rezolvat¸i urm˘atoarea problem˘a de programare liniar˘ a precum ¸si duala acesteia:
min(2αx1 + 3αx2 + αx3 ), x1 + x2 + 3x4 3, 2x2 + 5x3 + 4x4 = 5, x1 + x3 2, x1 , x2 0, x3 arbitrar, x 4
≥
≤ − ≥
≤ 0.
unde α este un parametru real.
Exercit¸iul 1.6.3. Rezolvat¸i urm˘atoarea problem˘a de programare liniar˘ a precum ¸si duala acesteia:
min(2x1 + 3x2 + x3 ), x1 + x2 + 3x4 3 + α, 2x2 + 5x3 + 4x4 = 5 α, x1 + x3 2 + 2α, x1 , x2 0, x3 arbitrar, x 4
α este un parametru real.
≥
≤ − ≥
−
≤ 0.
R˘ aspuns. Execit¸iile 1.6.2-1.6.3 se pot rezolva fie prin aplicarea metodei simplex fie prin metoda postoptimiz˘arii considerˆand ˆın tabelul simplex, obt¸inut ˆın problema 1.6.1., α = 0. Exercit¸iul 1.6.4. S˘a se rezolve cu algoritmul simplex problema de programare liniar˘a: max(2x1 + x2 ), x1 x2 4, 3x1 x2 18, x1 + 2x2 6, x1 , x2 0.
−
− ≤ − ≤ ≤ ≥
13
APLICAT ¸ II
Exercit¸iul 1.6.5. S˘a se minimizeze expresia 2x1 + 3x2 cu sistemul de restrict¸ii:
− − − − ≥
x1 x2 + x3 = 1, x1 + x2 x4 = 1, x1 2x2 + x5 = 1, 2x1 + x3 x4 = 2, xi 0, i = 1, . . . , 5.
R˘ aspuns. ˆIn urma aplic˘arii algoritmului simplex primal obt¸inem solut¸ia x∗1 = 1, x∗2 = 0, x∗3 = 0, x∗4 = 0, x∗5 = 0, iar valoarea minim˘a a funct¸iei obiectiv z ∗ = 2. Exercit¸iul 1.6.6. Rezolvat¸i problema urm˘atoare:
min(x1 + 6x2 ), 2x1 + x2 3, x1 + 3x2 4, x1 , x2 0.
≥
≥ ≥
R˘ aspuns. Vom rezolva problema grafic. Se va reprezenta ˆıntr-un sistem de axe de coordonate domeniul de admisibilitate. Pe acela¸si grafic reprezent˘ am ¸si ecuat¸ia x1 + 6x2 = 0. Obt¸inem figura 1.1.
Figura 1.1: Domeniul de admisibilitate ¸si funct¸ia obiectiv. Vom duce drepte paralele cu x2 =
− 16 x1
pˆan˘ a se intersecteaz˘ a cu domeniul
˘ PROGRAMARE LINIAR A
14
de admisibilitate. Prima dreapt˘ a care realizeaz˘a aceast˘ a intersect¸ie ne furnizeaz˘a minimul funct¸iei obiectiv z min = 4. Solut¸ia optim˘ a este x ∗1 = 4, x∗2 = 0. Exercit¸iul 1.6.7. G˘asit¸i minimul funct¸iei 2x1 + 3x2 + x3 cu restrict¸iile:
≥
x1 + x2 + 3x4 3, 2x2 + 5x3 + 4x4 = 5, x1 + x3 2, x1 , x2 , x3 , x4 0, 1 .
≤ − ∈ { }
Exercit¸iul 1.6.8. S˘a se rezolve problema de programare liniar˘a ˆın forma standard: min(2x1 + 3x2 ), x1 x2 + x3 = 1, x1 + x2 x4 = 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 mai ˆıntˆai problema:
min(x6 + x7 + x8 ), x1 x2 + x3 + x6 = 1, x1 + x2 x4 + x7 = 1, x1 2x2 + x5 = 1, 2x1 + x3 x4 + x8 = 2, xi 0, 1 i 8.
− − − − ≥ ≤ ≤
(s-au introdus variabilele ecart x 6 , x7 , x8 ˆın restrict¸iile problemei init¸iale, cu except¸ia celei de a treia restrict¸ie, unde variabia x5 este asociat˘a unui vector unitar al matricei coeficient¸ilor). Baza primal admisibil˘ a este format˘a din coloanele matricei A corespunz˘atoare variabilelor x 6 , x7 , x5 , x8 . Tabelul simplex asociat 1.2 este: TABELUL 1.2
V.B. x6 x7 x5 x8
V.V.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
APLICAT ¸ II
Vectorul care intr˘a ˆın baz˘a este evident a1 conform criteriului de intrare ˆın baz˘ a . Dup˘ a cum ne indic˘a criteriul de ie¸sire din baz˘a, oricare dintre variabilele de baz˘a poate p˘ar˘asi baza: pentru a face o alegere, vom elimina din baz˘ a vectorul 6 coespunz˘ator variabilei x 6 , adic˘a a . Obt¸inem deci tabelul simplex 1.3: TABELUL 1.3
V.B. x1 x7 x5 x8
V.V.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 ne arat˘a c˘a valoarea funct¸iei obiectiv este nul˘a. Toate variabilele artificiale sunt nule, dar x 7 ¸si x8 sunt ˆınc˘a variabile de baz˘ a. Se vede u¸sor c˘a variabila x7 poate fi eliminat˘a din baz˘a ¸si ˆınlocuit˘ a cu x2 , B deoarece pivotul y 72 = 2 este nenul. Dup˘a calcule se obt¸ine tabelul simplex 1.4: TABELUL 1.4
V.B. x1 x2 x5 x8
V.V.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 x 8 nu mai poate fi eliminat˘a dintre variabilele de baz˘a, deoarece tot¸i coeficient¸ii y8 j , 1 j 5, sunt egali cu zero. Acest fapt ne arat˘ a c˘ a ecuat¸ia a patra din problema init¸ial˘a este o consecint¸a˘ a celorlalte patru ecuat¸ii (ecuat¸ia a patra este suma primelor dou˘a ecuat¸ii, situat¸ie ce putea fi observat˘a de la ˆınceput). ˆIn acest caz, ecuat¸ia a patra poate fi neglijat˘a ¸si deci linia a patra a tabelului simplex poate fi eliminat˘a; partea r˘amas˘ a a tabelului simplex nu mai cont¸ine variabile artificiale de baz˘a ¸si, ca urmare, prima faz˘a este terminat˘a. Vom trece acum la faza a doua a metodei, adic˘a la rezolvarea problemei init¸iale, folosind drept baz˘a init¸ial˘ a ultima baz˘a obt¸inut˘ a din tabelul 1.4, dup˘a eliminarea ultimei linii.
≤ ≤
˘ PROGRAMARE LINIAR A
16 Tabelul simplex corespunz˘ator este tabelul 1.5: TABELUL 1.5
V.B. x1 x2 x5 z
V.V.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 j, 1 ≤ j ≤ 5, rezult˘a c˘a am obt¸inut programul
optim de baz˘a (degenerat): x∗1 = 1, x∗2 = 0, x∗3 = 0, x∗4 = 0, x∗5 = 0, iar valoarea optim˘a a funct¸iei obiectiv este z ∗ = 2.
Capitolul 2
˘ PROGRAMARE DINAMICA 2.1.
Forma unei probleme de optimizare secvent ¸ial˘ a
Programarea dinamic˘ a este o metod˘a de rezolvare a unei clase de probleme, al c˘aror model matematic prezint˘a caracteristicile unui sistem secvent¸ial. ˆIntr-o astfel de problem˘a, la fiecare faz˘a t T, cu T R, se alege o solut¸ie (decizie, strategie, politic˘a) xt dintr-o mult¸ime de solut ¸ii admisibile X t , X t M nt , unde M R, iar nt N∗ , putˆandu-se de fiecare dat˘a m˘asura eficient¸a (sau utilitatea) ut a solut¸iei alese. Problema de optimizare const˘a ˆın determinarea solut¸iei globale ¸ie de eficient ¸˘ a global˘ a f care este definit˘a cu x = (xt )t∈T care optimizeaz˘a o funct ajutorul funct ¸iilor de eficient ¸˘ a part ¸ial˘ a ut , t T. Evolut¸ia sistemului este descris˘a ¸si de familia parametrilor de stare (st )t∈T a c˘aror lege de variat¸ie este cunoscut˘a ¸si dependent˘a de deciziile alese (dac˘a legea este determinist˘a avem o problem˘a de programare dinamic˘ a determinist˘ a , iar dac˘a legea este probabilist˘a avem o problem˘a de programare stochastic˘ a ) . S˘a not˘am cu S t mult¸imea st˘arilor la momentul t.
∈
⊆
⊂
⊆
∈
∈
→
Definit¸ia 2.1.1. (Caracteristicile unui sistem secvent ¸ial.) O funct¸ie s : T S t cu s(t) = s t t T, st S t se nume¸ste traiectoria, corespunz˘atoare deciziei globale x = (xt )t∈T , a sistemului secvent¸ial. Aceasta descrie starea sistemului de-a lungul ˆıntregii perioade de timp T , ˆın condit¸iile alegerii deciziei x.
∀∈
∈
Avem ˆın general:
xt = x t (st ) uti : S ti 1 X ti τ ti : S ti 1 X ti −
−
× → R, × → S t , i
uti = u ti (sti , xti ) τ ti = τ ti (sti 1 , xti ). −
∈ S t , t0 fiind momentul init¸ial.
Traiectoria s depinde de starea init¸ial˘ a s t0 = s 0 17
0
˘ PROGRAMARE DINAMIC A
18
Definit¸ia 2.1.2. Se nume¸ste traiectorie optim˘ a traiectoria s∗ corespunz˘atoare unei decizii optime x ∗ care optimizeaz˘a funct¸ia obiectiv. Tehnica program˘arii dinamice const˘a ˆın determinarea solut¸iilor optime globale ¸si a valorii optime a funct¸iei obiectiv, prin rezolvarea secvent¸ial˘ a a unor probleme de optimizare asociate problemei init¸iale, dar mult mai simple decˆat aceasta deoarece optimul se calculeaz˘a dup˘ a o singur˘a variabil˘a. Bellman a formulat ˆın 1957 principiul optimalit˘ a¸t ii: o condit¸ie 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 la intervalul [t1 , t2 ], cˆand s t1 = s ∗ (t1 ) adic˘a orice substrategie a unei strategii optime este ea ˆıns˘ a¸si optim˘ a . Pentru a fixa ideile, ˆın cele ce urmeaz˘a, vom presupune c˘a avem de-a face cu o problem˘ a de minimizare, toate considerat¸iile fiind valabile f˘ar˘a nici un fel de restrict¸ii ¸si pentru problema de maxim. Forma general˘a a unei probleme de optimizare (minimizare) ce urmeaz˘a a fi rezolvat˘a prin aceast˘a tehnic˘a este urm˘atoarea:
∀
∈
|
{ ∈
| ∈ X 1(s0), . . . , xn ∈ X n(sn−1)}
min f (u1 (s0 , x1 ), . . . , un (sn−1 , xn )) x1 si = τ i (si−1 , xi ), i = 1, n si S i , i = 1, n.
Problema de optimizare astfel definit˘a se nume¸ste efectiv decompozabil˘ a , adic˘a vectorul de stare s i , la ie¸sirea din faza i, nu depinde decˆat de vectorul de stare s i−1 ¸si de decizia x i , luat˘ a ˆın faza i. Funct¸iile u i sunt funct ¸iile de eficient ¸˘ a la faza i cˆand se ia decizia x i ¸stiind c˘a vectorul de stare este s i . Toate elementele descriptive ale unei probleme de optimizare sunt determinate de o decizie aleas˘a ¸si de starea init¸ial˘ a s 0 :
∼
∈ X 1(s0) =X ∼ 1 (s0)
∼
s1 = τ 1 (s0 , x1 ) =τ 1 (s0 , x1 ), u1 (s0 , x1 ) =u1 (s0 , x1 ), x1
∼
s2 = τ 2 (τ 1 (s0 , x1 ), x2 ) = τ 2 (s0 , x1 , x2 ), u2 (s1 , x2 ),
∼
∈ X 2(τ 1(s0, x1)) =X ∼ 2 (s0, x1)
u2 (τ 1 (s0 , x1 ), x2 ) = u2 (s0 , x1 , x2 ), x2
...........................................
∼
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, n.
19
TEOREMA DE OPTIM Funct¸ia obiectiv se scrie:
∼
∼
∼
∼
f (u1 (s0 , x1 ), u2 (s0 , x1 , x2 ), . . . , un (s0 , x1 , . . . , xn )) =f (s0 , x1 , . . . , xn ). Definit¸ia 2.1.3. O solut¸ie (decizie) x∗ (s0 ) = (x∗1 (s0 ), . . . , x∗n (s0 )) admisibil˘ a se spune c˘a este optim˘a relativ la starea init¸ial˘ a s0 pentru o problem˘a de optimizare sub forma secvent¸ial˘ a, dac˘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, n . Rezolvarea unei probleme de optimizare pus˘a ˆın forma secvent¸ial˘ a const˘a ˆın ∗ ∗ ∗ g˘ asirea unei solut¸ii x (s0 ) = (x1 (s0 ), . . . , xn (s0 )), ˆın funct¸ie de starea init¸ial˘a s0 , astfel ˆıncˆat funct¸ia de eficient¸a˘ global˘ a f s˘ a fie optim˘a.
2.2.
Teorema de optim
Pentru a formula teorema de optim trebuie s˘a definim mai ˆıntˆ a i not¸iunea de ˆ funct ¸ie decompozabil˘ a. In esent¸a˘, acest lucru ˆınseamn˘a c˘a problema se poate descompune ˆıntr-un num˘ar de faze.
× × → × → × →
Definit¸ia 2.2.1. O funct¸ie f : D = S X Y R, unde X , Y ¸si S sunt mult¸imi nevide se nume¸ste decompozabil˘a dac˘a exist˘a funct¸iile u, v : D R, u fiind constant˘ a ˆın raport cu variabila y Y (exist˘ a u : S X R astfel ˆıncˆ at u (s,x,y) = u(s, x), (s,x,y) D) ¸si o funct¸ie F :u (D) v(D) R, F (α, .) monoton cresc˘atoare pentru fiecare α u (D), astfel ˆıncˆat f (s,x,y) = F (u(s, x), v(s,x,y)) (s,x,y) D.
∀
∈
∈ ∈
→
∀
∈
Teorema 2.2.1. ( Teorema de optim). Dac˘ a F este decompozabil˘ a ¸si dac˘ a exist˘ a pentru orice s S :
∈
min f (s,x,y); min F (u(s, x), min v(s,x,y));min min f (s,x,y), x,y
x
atunci pentru orice s
y
x
y
∈ S avem:
min f (s,x,y) = min F (u(s, x), min v(s,x,y)). x,y
x
y
˘ PROGRAMARE DINAMIC A
20
2.3.
Programare dinamic˘ a regresiv˘ a
2.3.1.
Ecuat¸iile program˘arii dinamice regresive
Pentru a pune sub forma unui algoritm problema secvent¸ial˘ a trebuie s˘a existe o anume leg˘atur˘ a de tip recursiv ˆıntre funct¸iile de eficient¸a˘ trunchiate ale procesului la fazele i: f n−i+1 (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, . . . , n pentru i = 1, 2, . . . , n 1, cu f 1 (un ) = un ¸si f n = f. Aceast˘a proprietate se nume¸ste proprietatea de decompozabilitate a funct¸iei obiectiv. Ecuat¸ia se rescrie:
−
∼
∼
f n−i+1 (si−1 , xi , . . . , xn ) = F n−i+1 (ui (si−1 , xi ), f n−i (τ i (si−1 , xi ), xi+1, . . . , xn )),
∼
∀i = 1, n − 1, ∀si−1 ∈ S i−1, ∀xi ∈ X i(si−1), ∀xn ∈ X n(sn−1), ∼
∼
cu f 1 = u n ¸si f n =f = f.
∼
Aplic˘ am teorema de optim funct¸iilor f n−i+1 pentru i = 1, 2, . . . , n
{
∼
|
−1:
}
min f n−i+1 (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˘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, . . . , n . Avem: gn−i (si−1 ) = g n−i (τ i (si−1 , xi )) ¸si obt¸inem: gn−i+1 (si−1 ) = min F n−i+1(ui (si−1 , xi ), gn−i (τ i (si−1 , xi )), i = 1, n xi
cu g1 (sn−1 ) = min un (sn−1 , xn ). xi
Aceste ecuat¸ii se numesc ecuat ¸iile program˘ arii dinamice regresive .
−1
˘ REGRESIV A ˘ PROGRAMARE DINAMIC A
2.3.2.
21
Rezolvarea problemelor de programare regresiv˘ a
Elementele prezentate ˆın paragrafele precedente ne permit s˘a elabor˘am urm˘atorul algoritm de rezolvare a problemelor de optimizare dinamice regresive. PASUL 0. Problema matematic˘ a se codific˘a sub forma unei probleme de programare liniar˘a, punˆandu-se ˆın evident¸a˘ funct¸ia obiectiv ¸si sistemul de restrict¸ii corespunz˘ator. PASUL 1. Se pune problema sub forma unui proces secvent¸ial de decizie urm˘arindu-se urm˘atoarele elemente: i) forma funct¸ional˘ a a funct¸iilor de transfer τ i : S i−1 X i S i :
× →
si = τ i (si−1 , xi ), i = 1, n. ii) spat¸iul st˘arilor posibile: S 0 , S 1 , . . . , Sn ; iii) spat¸iul deciziilor: X i (si−1 ); iv) funct¸iile part¸iale de eficient¸a˘ u i (si−1 , xi ), i = 1, 2, . . . , n;
∼
v) funct¸iile obiectiv ale proceselor trunchiate la fazele i, i+1, . . . , n : f i (xi , . . . , xn ) pentru i = 1, 2, . . . , n. PASUL 2. Se rezolv˘a problema din faza n, adic˘a se calculeaz˘a:
∼
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 s n−1 este parametru. Deci pentru s n−1 S n−1 se determin˘a x ∗n−1 (sn−1 )
∈
∈ X n(sn−1), astfel ˆıncˆat:
g1 (sn−1 ) = u n (sn−1 , x∗n−1 (sn−1 )). Se atribuie contorului i valoarea n 1. Acest contor are semnificat¸ia fazei i a procesului secvent¸ial. PASUL 3. Se rezolv˘a problema din faza i a c˘arei necunoscut˘a este x i , iar s i−1 este parametru. Deci pentru s i−1 S i−1 , se determin˘a valorile x ∗i (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. PASUL 4. Dac˘a i > 1 goto PASUL 3. Se determin˘a, pentru s 0 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 = g n (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 vectorilor init¸iali pentru a afla s ∗0 :
∼
f (s∗0 , x∗1 (s∗0 ), . . . , x∗n (s∗0 )) = min gn (s0 ) = g n (s∗0 ), s0 S 0
∈
atins pentru starea init¸ial˘ a s ∗0 . PASUL 6. Se scrie solut¸ia optim˘ a: x∗ = (x∗1 , . . . , x∗n ) unde x ∗1 = x ∗1 (s∗0 ), x∗2 = x ∗2 (τ 1 (s0 , x∗1 (s0 )) etc.
2.3.3.
Aplicat¸ii
Exercit¸iul 2.3.1. O unitate comercial˘a trebuie s˘a r˘ aspund˘ a unei cereri de 25 unit˘ a¸ti dintr-un anumit tip de produs, cerere e¸salonat˘a pe o perioad˘a de 4 luni. La ˆınceputul fiec˘arei luni, unitatea se poate aproviziona cu orice cantitate din produsul respectiv, la un pret¸ ce variaz˘a de la lun˘a la lun˘a, conform datelor din tabelul 2.1: TABELUL 2.1
luna i 1 2 3 4 cererea 5 7 α 5 pret¸ 12β 10β 9β 10β S˘ a se determine politica optim˘a de reaprovizionare a unit˘a¸t ii cu produsul respectiv, astfel ˆıncˆat toate cererile s˘a fie satisf˘acute, ¸stiind c˘a ˆın depozitul respectiv se g˘ asesc la ˆınceputul primei luni 3 unit˘a¸ti de produs ¸si c˘a nu pot fi p˘astrate ˆın depozit mai mult de 9 unit˘ a¸t i de produs, iar la sfˆar¸situl ultimei luni toate produsele au fost vˆandute. Parametrul β este un num˘ar real strict pozitiv. R˘ aspuns. PASUL 0. Deoarece cererea trebuie s˘a fie de 25 unit˘at¸i avem: 5 + 7 + α + 5 = = 25 deci α = 8. Se codific˘a problema: Se noteaz˘a cu x i num˘arul de unit˘a¸ti comandate la ˆınceputul lunii i ¸si cu s i stocul existent la sfˆar¸situl lunii i. Funct¸ia de minimizat este: 12βx 1 + 10βx 2 + 9βx 3 + 10βx 4 , putem deci presupune c˘a β = 1 avˆand grij˘ a ca la final s˘a ˆınmult¸im valoarea optim˘a a funct¸iei obiectiv cu β .
˘ REGRESIV A ˘ PROGRAMARE DINAMIC A
23
Avem: 3 + x1 + x2 + x3 + x4 = 25 sau x 1 + x2 + x3 + x4 = 22. 3 + x1 9 ¸si 3 + x1 5 0 deci x 1 [2, 6], 3 + x1 5 + x2 9 ¸si 3 + x1 5 + x2 7 0 deci x 1 + x2 [9, 11], 3+x1 5+x2 7+x3 9 ¸si 3+x1 5+x2 7+x3 8 0 deci x1 +x2 +x3 [17, 18] 3 + x1 5 + x2 7 + x3 8 + x4 9 (echivalent cu 5 9 inegalitate care spune c˘a dup˘ a ce s-a efectuat comanda la ˆınceputul lunii a 4-a mai este de satisf˘acut o cerere de 5 unit˘a¸ti de produs) ¸si 3 + x1 5 + x2 7 + x3 8 + x4 5 = 0 (ecuat¸ie ce constituie o verificare part¸ial˘ a). Problema de minimizat devine:
≤ − − −
− ≥ ∈ ≤ − − ≥ ∈ − ≤ − − − ≥ − − ≤ ≤ − − − −
∈
min(12x1 + 10x2 + 9x3 + 10x4 ) 2 x1 6 9 x1 + x2 11 4 x4 5 x1 + x2 + x3 + x4 = 22.
≤ ≤ ≤ ≤ ≤ ≤
PASUL 1. Se determin˘a spat¸iul st˘arilor S i , i = 0, 4: s0 = 3 S 0 = 3 , s1 = s 0 + x1 5 = x 1 2 S 1 = [0, 4], s2 = s 1 + x2 7 = x 1 + x2 9 S 2 = [0, 2], s3 = s 2 + x3 8 = x 1 + x2 + x3 17 S 3 = [0, 1], s4 = s 3 + x4 5 = x 1 + x2 + x3 + x4 17 5 = 0 S 4 = 0 . Se determin˘a spat¸iul deciziilor X i (si−1 ), i = 1, n : x1 X 1 (s0 ) = [5 s0 , 9 s0 ] = [2, 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 de transfer: τ i (si−1 , xi ), i = 1, n : τ 1 (s0 , x1 ) = s 0 + x1 5, τ 2 (s1 , x2 ) = s 1 + x2 7, τ 3 (s2 , x3 ) = s 2 + x3 8, τ 4 (s3 , x4 ) = s 3 + x4 5 = 0. Funct¸iile part¸iale de eficient¸a˘ sunt: u1 (s0 , x1 ) = 12x1 , u2 (s1 , x2 ) = 10x2 , u3 (s2 , x3 ) = 9x3 , u4 (s3 , x4 ) = 10x4 , ¸si funct¸iile de eficient¸a˘ ale proceselor de decizie trunchiate la fazele i , . . . , 4 (pentru i = 1, . . . , 4) sunt:
∈
{} − − ∈ − − ∈ − − ∈ − − − − − − − − − { − } − − − −
∈ ∈ ∈ ∈
{
}
∼ f 4 = 12x1 + 10x2 + 9x3 + 10x4 , ∼ f 3 = 10x2 + 9x3 + 10x4 ,
∈
{}
˘ PROGRAMARE DINAMIC A
24
∼ ∼
f 2 = 9x3 + 10x4 , f 1 = 10x4 . PASUL 2. Se rezolv˘a problema:
∼
min f 1 (sn−1 , xn ) xn
| ∈ X n(sn−1)} = min{u4(s3, x4)|x4 ∈ X 4(s3)} = = min{10x4 |x4 ∈ {5 − s3 }} = 10(5 − s3 ) = 50 − 10s3 , minim atins pentru x ∗4 (s3 ) = 5 − s3 . {
PASUL 3/4. Se rezolv˘a problema:
∼
{ | ∈ } { − | ∈ [8 − s2, 9 − s2]} = { − − | ∈ − − s2]} = {− − | ∈ − − } −(9 − s2) − 10s2 + 130 = − −
min f 3 x3 X 3 (s2 ) = min 9x3 + 50 10s3 x3 = min 9x3 + 50 10(s2 + x3 8) x3 [8 s2 , 9 = min x3 10s2 + 130 x3 [8 s2 , 9 s2 ] = = 121 9s2 , minim atins pentru x ∗3 (s2 ) = 9 s2 . Se rezolv˘a problema:
∼
min f 2 x2
{ | ∈ X 2(s1)} = min{10x2 + 121 − 9s2|x2 ∈ [7 − s1, 9 − s1]} = = min{10x2 + 121 − 9(s1 + x2 − 7)|x2 ∈ [7 − s1 , 9 − s1 ]} = = min{x2 − 9s1 + 184|x2 ∈ [7 − s1 , 9 − s1 ]} = 7 − s1 − 9s1 + 184 = −10s1 + 191, minim atins pentru x ∗2 (s1 ) = 7 − s1 . Se rezolv˘a problema:
∼
{ | ∈ X 1(s0)} = min{12x1 + 191 − 10s1|x1 ∈ [2, 6]} = = min{12x1 + 191 − 10(s0 + x1 − 5)|x1 ∈ [2, 6]} = = min{2x1 − 10s0 + 241|x1 ∈ [2, 6]} = 243 − 10s0 , min f 1 x1
minim atins pentru x ∗1 (s∗0 ) = 2, s∗0 = 3. PASUL 5. Avem: s∗1 = s ∗0 + x∗1 5 = 0 deci x ∗2 (s1 ) = 7, s∗2 = s ∗1 + x∗2 7 = 0 deci x ∗3 (s2 ) = 9, s∗3 = s ∗2 + x∗3 8 = 1 deci x ∗4 (s3 ) = 4. PASUL 6. Solut¸ia optim˘ a x∗ = (2, 7, 9, 4) iar traiectoria optim˘a este s∗ = (0, 0, 1, 0).
− − −
Exercit¸iul 2.3.2. Un depozit trebuie s˘a r˘ aspund˘ a unei cereri de marf˘a totale de α unit˘a¸t i de produs de la m beneficiari (cererea fiec˘arui beneficiar este de α i unit˘a¸ti de produs). Dac˘a costul de aprovizionare ¸si transport al unei unit˘a¸t i de produs la
˘ REGRESIV A ˘ PROGRAMARE DINAMIC A
25
beneficiarul i este β i , iar depozitul dispune init¸ial de γ unit˘a¸ti de produs ¸si dac˘a acesta nu poate det¸ine ˆın stoc mai mult de δ unit˘a¸t i de produs s˘a se determine politica optim˘ a de reaprovizionare cu produsul respectiv astfel ˆıncˆat toate cererile s˘a fie satisf˘acute. La final mai exist˘a ˆın stoc ε unit˘a¸t i de produs. Indicat ¸ie. Se noteaz˘a cu x i num˘arul de unit˘a¸ti de produs comandate la ˆınceputul livr˘ arii i ¸si cu s i stocul existent dup˘a livrarea i. Problema de programare ce trebuie rezolvat˘a este:
− − ≤ ≤ ≥ ∀ min m
i=1 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, m,
0 i = 1, m.
αi . Se vor pune ˆın evident¸a˘ funct¸iile reciproce de transfer, funct¸iile
part¸iale de eficient¸a˘, funct¸iile de eficient¸a˘ ale proceselor trunchiate, spat¸iul st˘arilor ¸si spat¸iile de decizie. Problema se va rezolva prin metoda program˘arii regresive ˆın n faze. Exercit¸iul 2.3.3. S˘a se g˘aseasc˘a o planificare optim˘a unei investit¸ii de 5 milioane dolari pentru construirea a trei obiective cunoscˆand randamentele investit¸iilor pe obiective, a¸sa cum sunt prezentate ˆın tabelul 2.2. TABELUL 2.2
Investit¸ii 0 1 2 3 4 5
Obiectiv 1 0 0, 20 0, 35 0, 51 0, 68 0, 75
Obiectiv 2 0 0, 23 0, 34 0, 50 0, 63 0, 79
Obiectiv 3 0 0, 19 0, 37 0, 49 0, 65 0, 80
R˘ aspuns . Modelul matematic al problemei este:
max(r1 (x1 ) + r2 (x2 ) + r3 (x3 )) x1 + x2 + x3 = 5, xi 0, 1, 2, 3, 4, 5 , i = 1, 2, 3, 4, 5.
∈ {
}
˘ PROGRAMARE DINAMIC A
26
ˆIn vederea rezolv˘arii problemei cu ajutorul program˘arii dinamice, se pune mai ˆıntˆ ai problema sub forma unui proces secvent¸ial de decizie. Pentru realizarea acestui scop, se noteaz˘a cu si , i = 1, 2, 3, suma investit˘a ˆın primul obiectiv, ˆın primul ¸si al doilea, ¸si respectiv suma investit˘a ˆın cele trei obiective. Avem: s0 = 0, s1 = s 0 + x1 , s2 = s 1 + x2 , s3 = s 2 + x3. Folosind aceste egalit˘a¸t i, obt¸inem cu ajutorul sistemului de restrict¸ii, S 0 = 0 , S 1 = S 2 = 0, 1, 2, 3, 4, 5 , S 3 = 5 . X 1 (s0 ) = 0, 1, 2, 3, 4, 5 , X 2 (s1 ) = 0, . . . , 5 s1 , X 3 (s2 ) = 5 s2 . Remarc˘ am c˘a avem urm˘atoarele funct¸ii de transfer: τ 1 (s0 , x1 ) = s 0 + x1 , τ 2 (s1 , x2 ) = s 1 + x2 , τ 3 (s2 , x3 ) = s 2 + x3 . Funct¸iile part¸iale de eficient¸a˘, precum ¸si funct¸iile de decizie ale proceselor de decizie trunchiate la fazele i , . . . , 3 (pentru i = 1, . . . , 3) sunt urm˘atoarele: u1 (s0 , x1 ) = r 1 (x1 ), u2 (s1 , x2 ) = r 2 (x2 ), u3 (s2 , x3 ) = r 3 (x3 ),
{
}
{
{}
}
{
{ }
{
− }
{ − }
}
∼
∼
∼
f 3 = r 1 (x1 ) + r2 (x2 ) + r3 (x3 ), f 2 = r 2 (x2 ) + r3 (x3 ), f 1 = r 3 (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 faze, folosind ecuat¸iile program˘arii regresive ¸si obt¸inem: Faza 3. Avem:
{
| ∈ X 3(s2)} = r3(5 − s2),
g1 (s2 ) = max r3 (x3 ) x3 obt¸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: g2 (0) = max 0, 80;0, 88;0, 83;0, 87;0, 82;0, 79 = 0, 88 pentru x ∗2 (0) = 1; g2 (1) = max 0, 65;0, 72;0, 71;0, 69;0, 63 = 0, 72 pentru x ∗2 (1) = 1; g2 (2) = max 0, 49;0, 60;0, 53;0, 50 = 0, 60 pentru x ∗2 (2) = 1; g2 (3) = max 0, 37;0, 42;0, 34 = 0, 42 pentru x ∗2 (3) = 1; g2 (4) = max 0, 19;0, 23 = 0, 23 pentru x ∗2 (4) = 1; g2 (5) = max 0 = 0 pentru x ∗2 (5) = 1. Faza 1. Avem:
{ { { { { {}
}
}
}
}
}
{
| ∈ X 1(s0)} = = max{0, 88;0, 92;0, 95;0, 93;0, 91;0, 75} = 0, 95, g3 (s0 ) = max r1 (x1 ) + g2 (s0 + x1 ) x1
obt¸inut pentru x∗1 (s∗0 ) = 2, unde s∗0 = s 0 = 0. Avem ˆın continuare, s∗1 = = s ∗0 +x∗1 = 2, de unde x∗2 (s∗1 ) = 1; s∗2 = s ∗1 +x∗2 = 3, de unde x∗3 (s∗2 ) = = 5 s∗2 = 2; s∗3 = s ∗2 +s∗3 = 5.
−
˘ PROGRESIV A ˘ PROGRAMARE DINAMIC A
27
ˆIn concluzie, am obt¸inut: max(r1 (x1 ) + r2 (x2 ) + r3 (x3 )) = 0, 95, pentru solut¸ia optim˘a unic˘a x∗ = (x∗1 , x∗2 , x∗3 ) = (2, 1, 2), iar traiectoria optim˘a a procesului este s∗ = (2, 3, 5).
2.4.
Programare dinamic˘ a progresiv˘ a
2.4.1.
Ecuat¸iile program˘arii dinamice progresive
Procedura iterativ˘ a descris˘a ˆın paragraful anterior este valabil˘ a f˘ ar˘a nici o restrict¸ie asupra st˘arii init¸iale sau finale. Aceste dou˘a st˘ari au ˆın mod evident, roluri importante, a¸sa cum s-a v˘azut pentru starea s0 . ˆIn timp ce s1 , . . . , sn−1 sunt st˘ari de intrare ¸si ie¸sire, s0 este numai stare de intrare pentru faza 1 a problemei, iar sn numai stare de ie¸sire pentru faza n a problemei. Din punct de vedere matematic singurul lucru care deosebe¸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, n,
ce conduc la o procedur˘a de rezolvare de la ultima faz˘a spre prima faz˘a a problemei, altfel spus, am mers spre trecut . ˆIn anumite probleme se pot pune restrict¸ii asupra st˘arilor s 0 ¸si/sau s n . Dac˘ a s0 este impus˘a, optimizarea din ultima faz˘ a a problemei conduce la un singur gn (s0 ) deoarece s0 nu mai este parametru, iar ˆın faza 1 lu˘am direct s 0 = s ∗0 . Deci schema propus˘a este viabil˘a. Dac˘ a sn este impus˘a, adic˘a sn = s∗n cu s∗n dat, trebuie ca starea init¸ial˘ a s0 ¸si ∗ solut¸ia optim˘a x (s0 ) s˘a satisfac˘ a relat¸ia: s∗n = τ n (τ n−1 (. . . τ2 (τ 1 (s0 , x∗1 (s0 )), x∗2 (s0 )), . . . , x∗n (s0 )). Aceast˘a relat¸ie nu poate fi verificat˘a decˆat la sfˆar¸situl procedurii, lucru care spore¸ste timpul de procesare. Metoda de reducere la cazul precedent este mult mai eficace, dac˘ a vom reu¸si s˘a schimb˘am sensul ˆın care au fost f˘acute calculele adic˘a s˘a mergem spre viitor prin folosirea funct ¸iilor reciproce de transfer : si−1 =τ i (si , xi ),
i = 1, n.
Funct¸iile elementare de eficient¸a˘ ui , pentru i = 1, . . . , n , respectiv funct¸ia obiectiv global˘ a f , devin u i (τ i (si , xi ), xi ) =ui (si , xi ), pentru i = 1, . . . , n , respectiv:
−
−
f (u1 (s0 , x1 ), . . . , un (sn−1 , xn )) = 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 anterior, toate elementele descriptive ale problemei pot fi exprimate ca funct¸ie de decizie aleas˘a ¸si starea s 0 . Similar se define¸ste decompozabilitatea progresiv˘a ¸si se ajunge la ecuat ¸iile program˘ arii dinamice progresive .
2.4.2.
Rezolvarea problemelor de programare progresiv˘ a
Elementele prezentate ˆın paragrafele precedente ne permit s˘a elabor˘am urm˘atorul algoritm de rezolvare a problemelor de optimizare dinamice progresive. PASUL 0. Problema matematic˘ a se codific˘a sub forma unei probleme de programare liniar˘a, punˆandu-se ˆın evident¸a˘ funct¸ia obiectiv ¸si sistemul de restrict¸ii corespunz˘ator. PASUL 1. Se pune problema sub forma unui proces secvent¸ial de decizie avˆanduse ˆın vedere urm˘atoarele elemente: − i) forma funct¸ional˘ a a funct¸iilor reciproce de transfer τ i : S i X i S i−1 :
× →
−
si−1 = τ i (si , xi ), i = 1, n. ii) spat¸iul st˘arilor posibile: S 0 , S 1 , . . . , Sn ;
−
iii) spat¸iul deciziilor: X i (si ); − iv) funct¸iile part¸iale de eficient¸a˘ ui (si , xi ), i = 1, 2, . . . , n;
∼ −
v) funct¸iile obiectiv ale proceselor secvent¸iale trunchiate la fazele 1, . . . , i : f i (x1 , . . . , xi ) pentru i = 1, 2, . . . , n. PASUL 2. Se rezolv˘a problema din faza 1, adic˘a se calculeaz˘a:
∼
| ∈ −
{− | ∈ − } − unde sn−1 este parametru. Deci pentru s1 ∈ S 1 se 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 ) = g 1 (s1 ),
{
}
(s1 ), astfel ˆıncˆat:
−
g1 (s1 ) =u1 (s1 , x∗1 (s1 )). Se atribuie contorului i valoarea 2. Acest contor are semnificat¸ia fazei i a procesului secvent¸ial. PASUL 3. Se rezolv˘a problema din faza i a c˘arei necunoscut˘a este xi , iar si
∈ S i, se determin˘a x ∗i (si) ∈X − i (si) astfel ˆıncˆat:
este parametru. Deci pentru s i
− −
−
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 s n = s ∗n ¸si avem:
∈
∼ ∼ − ∗ ∗ ∗ ∗ ∗ f (s , x (s ), . . . , x (s )) = min{f n
1
n
n
n
∗
|x1, . . . , xn} =gn (s∗n),
n (sn , x1 , . . . , xn )
unde x ∗n−1 (s∗n−1 ) = x ∗n−1 = x ∗n−1 (τ n (s∗n , x∗n )) etc. PASUL 6. Se scrie solut¸ia optim˘ a: x∗ = (x∗1 , . . . , x∗n ) unde x ∗n = x ∗n (s∗n ), x∗n−1 = x ∗n−1 (τ n (s∗n , x∗n )) etc. Observat ¸ii. i) Dac˘a st˘arile s0 sau sn sunt cunoscute, se merge de la starea necunoscut˘a spre starea cunoscut˘a. ii) Dac˘ a ambele st˘ari sunt impuse ¸si dac˘a se pot defini funct¸iile de transfer atˆat ˆıntr-un sens cˆat ¸si ˆın cel˘alalt atunci se poate opta pentru oricare dintre cele dou˘a metode de rezolvare, adic˘a progresiv sau regresiv.
2.4.3.
Aplicat¸ii
Exercit¸iul 2.4.1. Aplicat¸ia similar˘ a celei de la paragraful de aplicat¸ii corespunz˘ ator program˘ arii dinamice regresive. R˘ aspuns . Pasul 0 este identic cu cel de la rezolvarea aplicat¸iei de la capitolul program˘ arii regresive. PASUL 1. Se determin˘a funct¸iile reciproce de transfer: τ 1 (s1 , x1 ) = s 1 x1 + 5, τ 2 (s2 , x2 ) = s 2 x2 + 7, τ 3 (s3 , x3 ) = s 3 x3 + 8, τ 4 (s4 , x4 ) = s 4 x4 + 5. Funct¸iile part¸iale de eficient¸a˘ sunt: u1 (s1 , x1 ) = 12x1 , u2 (s2 , x2 ) = 10x2 , u3 (s3 , x3 ) = 9x3 , u4 (s4 , x4 ) = 10x4 . Funct¸iile de eficient¸a˘ ale proceselor trunchiate la fazele 1, . . . , i (pentru i = 1, . . . , 4) sunt:
− − − −
∼
f 1 = 12x1 ,
∼
f 2 = 12x1 + 10x2 ,
˘ PROGRAMARE DINAMIC A
30
∼
f 3 = 12x1 + 10x2 + 9x3 ,
∼
f 4 = 12x1 + 10x2 + 9x3 + 10x4 . Noile spat¸ii de decizie se determin˘a succesiv: Din s 0 = 3 rezult˘a s 1 x1 + 5 = 3 sau x 1 = s 1 + 2 de unde x 1 s1 + 2 , din s 1 [0, 4] rezult˘a s 2 x2 + 7 [0, 4] de unde x 2 [s2 + 3, s2 + 7], din s 2 [0, 2] rezult˘a s 3 x3 + 8 [0, 2] de unde x 3 [s3 + 6, s3 + 8], din s 3 [0, 1] rezult˘a s 4 x4 + 5 [0, 1] de unde x 4 [s4 + 4, s3 + 5]. PASUL 2. Se rezolv˘a problema din faza 1 adic˘a se calculeaz˘a:
∈ ∈ ∈
∼
{ | ∈
−
}
− − −
∈ ∈ ∈
{
∈ {
∈ ∈ ∈
}
| ∈ {s1 + 2 }} = 12s1 + 24,
min f 1 x1 X 1 (s1 ) = min 12x1 x1 minim atins pentru x ∗1 (s1 ) = s 1 + 2. PASUL 3/4. Se rezolv˘a problema:
∼
{ | ∈ { { {− −
} { | ∈ − | ∈
| ∈ } | ∈ }
}
min f 2 x2 X 2 (s2 ) = min 12x1 + 10x2 x2 [s2 + 3, s2 + 7] = = min 10x2 + 12s1 + 24) x2 [s2 + 3, s2 + 7] = = min 10x2 + 12(s2 x2 + 7) + 24) x2 [s2 + 3, s2 + 7] = = min 2x2 + 12s2 + 108 x2 [s2 + 3, s2 + 7] = = 2(s2 + 7) + 12s2 + 108 = 10s2 + 94, minim atins pentru x ∗2 (s2 ) = s 2 + 7. Se rezolv˘a problema:
∼
}
min f 3 x3 X 3 (s3 ) = min 12x1 + 10x2 + 9x3 x3 [s3 + 6, s3 + 8] = = min 9x3 + 10s2 + 94 x3 [s3 + 6, s3 + 8] = = min 9x3 + 10(s3 x3 + 8) + 94 x3 [s3 + 6, s3 + 8] = = min x3 + 10s3 + 174 x3 [s3 + 6, s3 + 8] = = s3 8 + 10s3 + 174 = 9s3 + 166, minim atins pentru x ∗3 (s3 ) = s 3 + 8. Se rezolv˘a problema:
{ | ∈ { { {− − − ∼
{ | ∈ { { {
} { | ∈ − | ∈ | ∈ } { | ∈ − | ∈
| ∈
}
}
}
}
| ∈ [s4 + 4, s3 + 5]} = }
min f 4 x4 X 4 (s4 ) = min 12x1 + 10x2 + 9x3 + 10x4 x4 = min 10x4 + 9s3 + 166 x4 [s4 + 4, s3 + 5] = = min 10x4 + 9(s4 x4 + 5) + 166 x4 [s4 + 4, s3 + 5] = = min x4 + 9s4 + 211 x4 [s4 + 4, s3 + 5] = = 10s4 + 215 = 215, minim atins pentru x ∗4 (s∗4 ) = s ∗4 + 4 = 4, unde s ∗4 = 0. PASUL 5. Avem: s∗3 = s ∗4 x∗4 + 5 = 1 ¸si x ∗3 = s ∗3 + 8 = 9, s∗2 = s ∗3 x∗3 + 8 = 0 ¸si x ∗2 = s ∗2 + 7 = 7, s∗1 = s ∗2 x∗2 + 7 = 0 ¸si x ∗1 = s ∗1 + 2 = 2. PASUL 6. Solut¸ia optim˘ a este:
− − −
| ∈
}
}
˘ PROGRESIV A ˘ PROGRAMARE DINAMIC A
31
x∗ = (2, 7, 9, 4), iar traiectoria optim˘a s∗ = (0, 0, 1, 0), deci s-a obt¸inut aceea¸si solut¸ie ca ˆın rezolvarea problemei prin metoda regresiv˘a. Exercit¸iul 2.4.2. Un depozit trebuie s˘a r˘ aspund˘ a unei cereri de marf˘a totale de α unit˘a¸t i de produs de la m beneficiari (cererea fiec˘arui beneficiar este de α i unit˘a¸ti de produs). Dac˘ a costurile de transport al unei unit˘a¸t i de produs la beneficiarul i este β i ¸si dac˘a depozitul dispune init¸ial de γ unit˘a¸t i de produs, iar dac˘a acesta nu poate det¸ine ˆın stoc mai mult de δ unit˘a¸t i de produs s˘a se determine politica optim˘a de reaprovizionare cu produsul respectiv astfel ˆıncˆat toate cererile s˘a fie satisf˘acute. ˆIn final depozitul nu mai are nici o cantitate ˆın stoc. Indicat ¸ie. Vom nota cu x i num˘arul de unit˘a¸ti de produs comandate la ˆınceputul livr˘ arii i ¸si cu s i stocul existent dup˘a livrarea i. Problema de programare ce trebuie rezolvat˘a este:
− − ≤ ≤ ≥ ∀ min m
i=1 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, m,
0 i = 1, m.
αi . Se vor pune ˆın evident¸a˘ funct¸iile reciproce de transfer, funct¸iile
part¸iale de eficient¸a˘, funct¸iile de eficient¸a˘ ale proceselor trunchiate, spat¸iul st˘arilor ¸si spat¸iile de decizie. Problema se poate rezolva ¸si prin programare dinamic˘a progresiv˘a ˆın n faze ¸si evident ¸si prin metoda program˘arii dinamice regresive sau cu ajutorul algoritmilor simplex primal ori simplex dual prin aducerea acesteia la forma standard. Exercit¸iul 2.4.3. Rezolvat¸i numeric prin programare dinamic˘a regresiv˘a ¸si progresiv˘a problema anterioar˘a pentru m = 3, α = 25 (α1 = 10, α2 = = 8, α3 = 7), β 1 = 3, β 2 = 10, β 3 = 4, γ = 3 ¸si δ = 10. Aplicat¸i pentru rezolvarea problemei algoritmul simplex primal. Scriet¸i duala problemei de programare liniar˘a asociat˘ a. Rezolvat¸i programul dual. Indicat ¸ie. Aplicˆand exercit¸iul precedent restrict¸ia a doua devine: α1
− γ ≤ x1 ≤ δ − γ,
˘ PROGRAMARE DINAMIC A
32
− 3 ≤ x1 ≤ 10 − 3 deci x 1 = 7. Restrict¸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
Exercit¸iul 2.4.4. Generalizat¸i problema de la exercit¸iul 2.4.2 la o problem˘a cu n depozite. Rezolvat¸i aceast˘a problem˘a prin metoda program˘arii dinamice ¸si apoi prin metoda de rezolvare a problemelor clasice de transport. Exercit¸iul 2.4.5. Un tren de marf˘a cu capacitatea maxim˘a z trebuie s˘a transporte diferite cantit˘a¸ti de N m˘arfuri diferite. S˘a not˘ am cu vi valoarea celui de al i-lea tip de marf˘a ¸si cu w i greutatea sa. S˘a se determine ˆınc˘arc˘atura de valoare maxim˘a. Aplicat¸ie numeric˘a N = 3, z = 100 t, v1 = 10$, v2 = 30$, v3 = 5$, w1 = 150 t, w2 = 20 t, w 3 = 30 t. Indicat ¸ie. Dac˘a not˘ am cu x i num˘arul articolelor din marfa i care sunt ˆınc˘arcate, atunci problema de programare liniar˘a de rezolvat este:
≤ ≥ max N
i=1
xi
N
i=1
xi wi
xi vi , z,
0, i = 1, N .
Problema se poate rezolva prin metodele program˘arii dinamice sau cu algoritmul simplex.
Capitolul 3
TEORIA JOCURILOR 3.1.
Not¸iuni introductive
De foarte multe ori suntem pu¸si ˆın fat¸a unor situat¸ii conflictuale a c˘aror evolut¸ie ulterioar˘ a depinde de decizia sau planul adoptat , numit˘a ¸si strategie . Prin termenul de evolut ¸ie se ˆınt¸elege modificarea unei funct¸ii obiectiv numit˘a ˆın acest caz funct ¸ie de pierdere sau cˆ a¸stig , deci prin joc ˆın cele ce urmeaz˘a se ˆınt¸elege acea situat¸ie care funct¸ioneaz˘ a dup˘ a reguli bine definite, ˆın care dou˘a sau mai multe elemente decizionale, numite juc˘ atori , aleg o decizie dintr-o mult¸ime de variante bine specificate. Deoarece jocurile de care ne vom ocupa au la baz˘a aceste elemente decizionale, ele se vor numi jocuri strategice . Spunem despre strategia unui joc c˘a este o strategie pur˘ a dac˘ a unul dintre adversari alege una din cele m variante dup˘a care jocul se opre¸ste. Strategia mixt˘ a presupune continuarea partidei, iar alegerea variantei se face cu o anumit˘ a probabilitate. Fiecare din p˘ art¸ile implicate ˆın joc urm˘are¸ste optimizarea funct¸iei obiectiv, iar strategia care realizeaz˘a aceast˘ a optimizare se nume¸ste strategie optim˘ a . Din punct de vedere al cˆa¸stigului jocurile se clasific˘a ˆın: - jocuri cu suma nul˘ a : sunt acele jocuri ˆın care suma pierderilor fiec˘arui juc˘ator este egal˘a cu suma cˆa¸stigurilor tuturor juc˘atorilor; - jocuri f˘ ar˘ a sum˘ a nul˘ a : sunt acele jocuri ˆın care o parte din pierderea ¸si/sau cˆa¸stigul unui juc˘ ator nu se reg˘ase¸ste la ceilalt¸i juc˘atori. O alt˘a clasificare este dup˘a cardinalul num˘arului de strategii: jocuri finite sau infinite . Fie X ¸si Y strategiile pure a doi juc˘atorilor A respectiv B ¸si a X ¸si b Y strategile pure alese de c˘atre ace¸stia. Vom nota cu LA (a, b) ¸si LB (a, b) pierderile corespunz˘atoare fiec˘arui juc˘ator, cˆa¸stigul fiind considerat o pierdere negativ˘a. Suma
∈
33
∈
34
TEORIA JOCURILOR
pierderilor celor doi juc˘atori este: LA (a, b) + LB (a, b). Dac˘ a jocul este cu suma nul˘a atunci LA (a, b) + L B (a, b) = 0. Deci, LB (a, b) = LA (a, b) = L(a, b), unde L(a, b) este cˆa¸stigul juc˘atorului A dac˘a acesta joac˘ a strategia a iar r˘aspunsul lui B fiind prin strategia b. Jocurile de tip poker sunt jocuri cu suma nul˘a, iar jocurile de tip Casino sunt f˘ ar˘a suma nul˘a (se pl˘atesc impozite c˘atre stat sau se pl˘atesc taxe c˘atre proprietarul jocului). Formalizˆ and cele definite avem:
−
{
}
Definit¸ia 3.1.1. Se nume¸ste joc tripletul J = (X , Y , L) unde X = a1 , . . . , am ¸si Y = b1 ,...,bn sunt mult¸imile de strategii pure ale celor doi juc˘atori, iar L : X Y R este funct¸ia de cˆas¸tig care se poate exprima sub forma matriceal˘a:
{ × →
}
Q =
q 11 ... q1n ... ... ... q m1 ... qmn
ˆın care q ij = L(ai , b j ), i = 1, m , j = 1, n. Forma matriceal˘a a unui joc se nume¸ste forma normal˘ a . Matricea jocului este alc˘atuit˘a ˆın raport cu juc˘ atorul A numit juc˘ator maximizant. Juc˘atorul B se va numi juc˘ator minimizant, iar matricea sa va avea elementele q ij .
−
Exemplul 3.1.1. Jocul const˘ a ˆın aruncarea monedei ˆın care fiecare juc˘ ator poate alege, independent de cel˘alalt stema S sau banul B. Dac˘a alegerile coincid, atunci juc˘atorul 2 prime¸ste de la juc˘atorul 1 suma x. ˆIn caz contrar juc˘atorul 1 prime¸ste de la juc˘atorul 2 suma x. Matricea jocului este: Q =
3.2.
−
x x
x x
−
.
Principiul minimax
Teoria jocurilor are ca rol elaborarea unor planuri rat¸ionale de act¸iune pentru cazurile conflictuale. Astfel, principiul adoptat este principul minimiz˘ arii pierderii maxime numit ¸si principiul minimax . Juc˘ atorul A act¸ioneaz˘ a astfel ˆıncˆ at s˘a maximizeze cel mai mic cˆas¸tig pe care-l poate obt¸ine de la juc˘atorul B, iar juc˘atorul B act¸ioneaz˘ a astfel ˆıncˆ at s˘a minimizeze pierderea sa maxim˘a. Valoarea: α = max min q ij i
j
STRATEGII MIXTE S ¸ I VALOAREA JOCULUI
35
se nume¸ste valoarea inferioar˘ a a jocului ¸si reprezint˘a cel mai mic cˆa¸stig pe care A ˆıl poate avea de la B , iar valoarea: β = min max q ij j
i
se nume¸ste valoarea superioar˘ a a jocului ¸si reprezint˘a cea mai mare pierdere pe care B o poate avea. Jocurile pentru care α = β se numesc jocuri cu punct ¸sa, iar valoarea comun˘a a acestor dou˘a valori se nume¸ste valoarea jocului . Elementul care realizeaz˘ a aceast˘ a egalitate se nume¸ste punct ¸sa . O strategie ai a juc˘atorului A se nume¸ste dominant˘ a pentru strategia a j dac˘a q ik q jk pentru orice k = 1, n. Strategiile dominate vor fi eliminate din joc de c˘atre A (acesta dore¸ste s˘a cˆa¸stige cˆat mai mult) strategiile dominante ale lui B vor fi eliminate din politica sa pentru c˘a duc la pierderi mai mari.
≥
3.3.
Strategii mixte ¸si valoarea jocului
Jocurile cu punct ¸sa reprezint˘ a o clas˘a particular˘a de jocuri ¸si se pune ˆın mod natural ˆıntrebarea dac˘a, ˆın ipoteza repet˘arii partidelor, nu se poate g˘asi o strategie prin care juc˘atorul A s˘a obt¸in˘a un cˆa¸stig mai mare decˆat cel asigurat prin criteriul minimax. Vom numi strategie mixt˘ a o combinat¸ie probabilist˘a de strategii pure. Strategiile mixte au dublu rol: 1. de a ˆımpiedica adversarul s˘a cunoasc˘a strategia aleas˘a; 2. de a m˘ ari cˆa¸stigul garantat de valoarea inferioar˘a a jocului. Fie X = (x1 ,...,xm ) vectorul probabilit˘a¸tilor cu care juc˘atorul A alege strategiile pure a1 ,...,am ¸si Y = (y1 ,...,y n ) vectorul probabilit˘a¸t ilor cu care juc˘atorul B alege strategiile pure b1 ,...,bn . Avem:
{
}
{
}
≥ ≥ xi
m
i=1
¸si
0, i = 1, m
xi = 1,
y j
n
j=1
0, j = 1, n
y j = 1.
Cˆ a¸stigul mediu realizat de c˘atre A cˆand el folose¸ste strategia mixt˘a X , iar B strategia b j va fi: m
M (X, j) =
i=1
q ij xi .
36
TEORIA JOCURILOR
Similar, cˆa¸stigul mediu realizat de A cˆand el folose¸ste strategia a i , iar B folose¸ste strategia mixt˘a Y va fi: n
M (i, Y ) =
q ij y j .
j=1
Valoarea medie a jocului va fi: n
m
M (X, Y ) =
m
q ij xi y j =
j=1 i=1
n
q ij xi y j ,
i=1 j=1
sau matriceal:
M (X, Y ) = X QY.
3.4.
Teorema fundamental˘ a a teoriei jocurilor
Teorema 3.4.1. (Valoarea inferioar˘ a ¸si valoarea superioar˘ a a jocului). Fie X , Y submult ¸imi ale lui R ¸si fie L : X Y R. Dac˘ a exist˘ a m˘ arimile:
× →
max[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 3.4.1. (Punct ¸sa ). Punctul (x0 , y0 ) este punct ¸sa al funct¸iei L dac˘a: L(x, y0 )
≤ L(x0, y0) ≤ L(x0, y).
Teorema 3.4.2. (Condit ¸ii necesare ¸si suficiente pentru existent ¸a punctelor ¸sa). Fie X , Y submult ¸imi ale lui R ¸si fie L : X Y R. Dac˘ a exist˘ a m˘ arimile:
× →
max[min L(x, y)], x X y Y
∈
∈
min[max L(x, y)], y Y x X
∈
∈
atunci condit ¸ia necesar˘ a ¸si suficient˘ a ca L s˘a aib˘ a punctul (x0 , y0 ) punct ¸sa este: 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 3.4.2 ne spune: condit¸ia necesar˘ a ¸si suficient˘a ca L s˘ a aib˘ a punctul (x0 , y0 ) punct ¸sa este ca valoarea inferioar˘a a jocului s˘a fie egal˘a cu valoarea sa superioar˘a. Teorema 3.4.3. (Teorema fundamental˘ a a teoriei jocurilor). Fie jocul J = (X , Y , L). Atunci exist˘ a o pereche X 0 , Y 0 de strategii mixte optime astfel ˆıncˆ at: max [ min M (X, Y )] = min [ max M (X, Y )] = M (X 0 , Y 0 ) = v,
X S m Y S n
∈
∈
Y S n X S m
∈
∈
unde S m ¸si S n sunt submult ¸imi ale spat ¸iilor euclidiene m-dimensionale respectiv n-dimensionale. Valoarea v se nume¸ste valoarea jocului. Observat ¸ii . i) Un joc nu poate avea decˆ at o singur˘a valoare, chiar dac˘a are mai multe strategii optime mixte. ii) Condit¸ia necesar˘a ¸si suficient˘a ca v s˘ a fie valoarea jocului ¸si X 0 , Y 0 s˘ a fie strategii mixte este ca: M (i, Y 0 )
≤ v ≤ M (X 0, j), 1 ≤ i ≤ m, 1 ≤ j ≤ n.
3.5.
Rezolvarea jocurilor matriceale
3.5.1.
Formularea problemei de optimizare
Fie un joc cu matricea Q = ( q ij ). Dac˘a juc˘ atorul A folose¸ste strategiile pure ai cu probabilit˘ a¸tile xi , i = 1, . . . , m atunci acesta poate spera un cˆa¸stig de cel put¸in v, care este egal cu valoarea jocului adic˘a:
≥ ≥
v
≤ ≥
v
xQ m
i=1
xi = 1
xi
0, i = 1, m
≥ def ⇔ ≥ ∀
unde v = (v , . . . , v) iar a b ai bi i. Similar, dac˘ a juc˘atorul B utilizeaz˘a strategiile pure b j cu probabilit˘a¸tile y j , 1 j n, el se poate a¸stepta la o pierdere cel mult egal˘a cu valoarea v a jocului:
≤ ≤
Qy n
j=1
y j
y j = 1 0, j = 1, n
38
TEORIA JOCURILOR
3.5.2.
Reducerea la probleme de programare liniar˘ a
Pentru a transforma cele dou˘a sisteme ˆın modele de programare liniar˘a este necesar ca valoarea jocului v s˘a fie strict pozitiv˘a. ˆIn acest sens se pot folosi urm˘atoarele observat¸ii: i) dac˘a fiec˘arui element al matricei Q i se adaug˘a o constant˘ a k, atunci valoarea jocului devine v + k, iar strategiile mixte r˘amˆ an neschimbate; ii) dac˘a fiecare element al matricei Q se ˆınmult¸e¸ste cu constanta k, atunci valoarea jocului devine vk, iar strategiile mixte optime r˘amˆ an neschimbate. Deci prin folosirea adecvat˘a a observat¸iilor amintite se poate presupune v = 1. Problemele de rezolvat devin folosind notat¸ia X i = xi /v:
≥≥ ≥ ≤ m
min(
i=1
X i )
Q X 1 X i 0, i = 1, m
¸si
max(
n
j=1
Y j )
QY 1 Y j 0, j = 1, n.
Cele dou˘a probleme de programare liniar˘a sunt ˆın forma canonic˘a ¸si sunt duale una alteia. Acestea se pot rezolva prin metodele simplex sau simplex-dual. Se poate apela pentru rezolvarea acestor probleme la programele specializate existente pe piat¸a software.
3.6.
Aplicat¸ii
Exercit¸iul 3.6.1. Se consider˘a jocul ˆın forma matriceal˘ a: TABELUL 3.1
A/B 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˘a ˆın raport cu juc˘atorul A (maximizant).
39
APLICAT ¸ II i) S˘a se calculeze valoarea inferioar˘ a ¸si valoarea superioar˘a a jocului. ii) Are jocul punct ¸sa? iii) Aflat¸i strategiile mixte optime ale celor doi juc˘atori.
R˘ aspuns. Matricea jocului fiind alc˘atuit˘a ˆın raport cu juc˘ atorul A, care este juc˘ator maximizant, acesta dore¸ste s˘a cˆa¸stige cˆat mai mult ¸si va elimina din joc strategiile dominate. Avem a4 a3 , deci strategia a3 va fi eliminat˘a din joc de c˘atre juc˘atorul A. Deoarece b1 b4 ¸si b3 b4 , atunci juc˘atorul B elimin˘a din joc strategiile b 1 ¸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, i
j
¸si valoarea superioar˘a a jocului este: β = min max q ij = 2. j
i
∈
Deoarece α < β jocul nu are punct ¸sa. Valoarea jocului v [0, 2]. Problema de programare liniar˘a pe care trebuie s˘a o rezolve juc˘atorul maximizant A (maximizarea profitului minim) este urm˘atoarea:
− −
≥ ≥ ≥ ≥
− −
≥ ≥ ≥ ≥
max(v) 5x1 + 3x2 v 2x1 + 2x3 v x1 x2 + 4x3 v x1 + x2 + x3 = 1 x1 , x2 , x3 0,
sau dac˘a se noteaz˘a X i = x i /v pentru i = 1, 2, 3 obt¸inem problema de programare liniar˘a: min(X 1 + X 2 + X 3 ) 5X 1 + 3X 2 1 2X 1 + 2X 3 1 X 1 X 2 + 4X 3 1 X 1 , X 2 , X 3 0. Similar, problema de programare liniar˘ a corespunz˘ atoare juc˘ atorului B este:
40
TEORIA JOCURILOR
− −
max(Y 1 + Y 2 + Y 3 ) 5Y 1 + 2Y 2 + Y 3 1 3Y 1 Y 2 1 2Y 2 + 4Y 3 1 Y 1 , Y 2 , Y 3 0.
≤
≤ ≤ ≥
Cele dou˘a probleme de programare liniar˘a sunt duale una alteia. Rezolvarea acestora se poate face cu ajutorul algoritmului simplex primal sau dual. Pentru rezolvarea cu ajutorul programului MAPLE a acestora sintaxa este pentru juc˘atorul A (maximizant): > with(simplex) : > minimize(x + y + z, 5 x + 3 y >= 1, 2 x + 2 z >= 1, x y + 4 z >= 1, NONNEGATIV E ); Solut¸ia este: x = 0, y = 1/3, z = 1/2, iar respectiv pentru juc˘atorul B (minimizant): > maximize(x + y + z, 5 x + 2 y + z <= 1, 3 x z <= 1, 2 y + 4 z <= 1, NONNEGATIV E ); Solut¸ia este: x = 1/3, y = 1/2, z = 0. Deci strategia optim˘ a pentru juc˘atorul A se determin˘a din:
−
∗
∗
∗
− ∗
∗
− ∗
∗
X 1 = 0, X 2 =
∗
∗
∗ −
1 1 , X 3 = , 3 2
iar strategia optim˘a a juc˘atorului B se determin˘a din: Y 1 =
1 1 , Y 2 = , Y 3 = 0. 3 2
Valoarea jocului este v = 6/5 iar strategiile optime sunt pentru A: x1 = 0, x2 =
2 3 , x3 = , 5 5
respectiv pentru B :
2 3 , y2 = , y3 = 0. 5 5 x1 = 0 se explic˘a prin faptul c˘a strategia a1 a 3 (ˆın matricea redus˘a Q), poate fi eliminat˘ a din joc de c˘ atre A. y1 =
≺
Exercit¸iul 3.6.2. O firm˘a A dore¸ste s˘a se lanseze pe piat¸a˘. Cercet˘arile efectuate ˆın acest sens stabilesc c˘a dac˘ a pret¸urile variaz˘a ˆın raport cu cele ale concurent¸ei B , atunci se obt¸in rezultatele din tabelul 3.2:
41
APLICAT ¸ II TABELUL 3.2
−5% 0% +5% −2 −4 −4 −1 0 −3 −3 2 0
A/B 5% 0% +5%
−
Ce strategie mixt˘a va adopta firma A ˆın fat¸a concurent¸ei? Exercit¸iul 3.6.3. Se consider˘a jocul ˆın forma matriceal˘ a: TABELUL 3.3
A/B 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˘a ˆın raport cu juc˘atorul A (maximizant), iar ρ este un parametru real strict pozitiv. i) S˘a se calculeze valoarea inferioar˘ a ¸si valoarea superioar˘a a jocului. ii) Are jocul punct ¸sa? iii) Aflat¸i strategiile mixte optime ale celor doi juc˘atori. Exercit¸iul 3.6.4. Se consider˘a jocul de dou˘a persoane ˆın forma matriceal˘a: TABELUL 3.4
A/B a1 a2 a3
b1 0 β α
−
b2 α 0 β
−
b3 β α 0
−
Matricea jocului este alc˘atuit˘a ˆın raport cu juc˘atorul A, (maximizant) iar α ¸si β sunt parametri reali strict pozitivi. i) S˘a se calculeze valoarea inferioar˘ a ¸si valoarea superioar˘a a jocului. ii) Are jocul punct ¸sa? iii) Aflat¸i strategiile mixte optime ale celor doi juc˘atori.
42
TEORIA JOCURILOR
Exercit¸iul 3.6.5. Se consider˘a urm˘atorul scenariu criptografic: un utilizator al unui canal de comunicat¸ie poate transmite mesaje cifrate corespunz˘atoare a trei categorii de mesaje clare: confident¸ial, secret ¸si strict secret. Utilizatorul poate opta pentru unul din dou˘a sisteme de cifrare (de exemplu, un sistem simetric ¸si un sistem asimetric etc). Indicat¸i strategia optim˘a de alegere a sistemului criptografic. Procentele categoriei de secret ¸si pierderile corespunz˘atoare (cantitate de mesaj decriptat˘ a pe 24 ore de procesare selectiv˘a, estimat˘ a procentual de designerul sistemelor criptografice) sunt date ˆın tabelul 3.5. Care trebuie s˘a fie procentele pi pentru ca utilizatorul s˘a opteze pentru strategia 2? TABELUL 3.5
Tip mesa j confident¸ial secret strict secret
Prob. mesa j p1 p2 p3
S1 0 0,6% 0,4%
S2 0,3% 0,5% 1%
Exercit¸iul 3.6.6. S˘a se determine o pereche de strategii optime ¸si valoarea urm˘ atorului joc matriceal: 3 6 1 4 5 2 4 2 . 1 4 3 5
R˘ aspuns. Se va scrie problema de optimizare pentru primul juc˘ator ¸si se rezolv˘a aceasta. Valoarea jocului va fi 13/4. Exercit¸iul 3.6.7. Se consider˘a jocul ˆın forma matriceal˘ a (ˆın raport cu juc˘atorul A): TABELUL 3.6
A/B 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 valoarea inferioar˘ a ¸si valoarea superioar˘a a jocului. ii) Determinat¸i, dac˘a exist˘a, punctul ¸sa al jocului. iii) S˘a se determine strategiile mixte ale celor doi juc˘atori. R˘ aspuns. Valoarea inferioar˘a a jocului este 1, iar valoarea superioar˘ a este 2. Valoarea jocului este 8/5.
43
APLICAT ¸ II
Exercit¸iul 3.6.8. Folosind criteriul minimax, s˘a se rezolve un joc matriceal de ordinul 3 3 a c˘arui matrice este:
×
C =
−
1 3 2 0 2 1
−3 3 0
.
Specificat¸i ¸si valorile inferioar˘a ¸si superioar˘a ale jocului. Cum se modific˘a aceste strategii dac˘ a ultima linie a matricei C se ˆınmult¸e¸ste cu γ ? Pentru ce valoare a lui γ jocul are punct ¸sa? R˘ aspuns. Valoarea inferioar˘a a jocului este: α = max min q ij = 0, i
j
¸si valoarea superioar˘a a jocului este: β = min max q ij = 2. j
i
Strategia optim˘ a (mixt˘ a) a primului juc˘ator este unic˘a ¸si este egal˘a cu: x1 =
1 2 , x2 = , x3 = 0. 3 3
Valoarea jocului (aceasta este unic˘a) este egal˘a cu v = 1. Strategia optim˘ a a celui de-al doilea juc˘ator nu este unic˘a. O strategie optim˘a este spre exemplu: y1 =
1 3 1 , y2 = , y3 = , 5 5 5
o alt˘ a strategie optim˘a este: y1 = 0, y2 =
2 1 , y3 = . 3 3
Exercit¸iul 3.6.9. (Dilema prizonierului.) Se consider˘a urm˘atoarea situat¸ie: doi suspect¸i de trafic de droguri sunt anchetat¸i, ˆın stare de arest preventiv, de organele abilitate, care nu au suficiente dovezi. Procurorul de caz le ofer˘a celor doi, independent, posibilitatea de a recunoa¸ste sau nu implicarea ˆın traficul de droguri, precum ¸si consecint¸ele deciziei. Astfel, ˆın situat¸ia ˆın care ambii recunosc procurorul va propune pedeaps˘a minim˘a de trei ani pentru cei doi suspect¸i. ˆIn cazul ˆın care doar unul recunoa¸ste pentru acesta procurorul va propune aceeia¸si pedeaps˘a de trei ani
44
TEORIA JOCURILOR
cu suspendare (eliberare), pentru complicele sau propunˆand pedeapsa maxim˘a de cinsprezece ani cu executare. ˆIn situat¸ia ˆın care niciunul nu recunoa¸ste, procurorul propune, pentru alt delict ce ˆıl poate dovedi, pentru fiecare din cei doi suspet¸i, pedeapsa de un an. Care este decizia pe care o iau cei doi suspect¸ i de trafic de droguri? R˘ aspuns. Forma matriceal˘a a jocului este: A/B coopereaz˘a nu coopereaz˘a
coopereaz˘a ( 3, 3) ( 15, 0)
nu coopereaz˘a (0, 15) ( 1, 1)
− − − − − − Valoarea inferioar˘ a a jocului este α = −3, valoarea superioar˘a a jocului fiind β =
−3, deci jocul este cu punct ¸sa. Aceast˘a dilem˘a, ˆın care se afl˘a cei doi suspect¸i, poate fi numit˘a paradox, deoarece decizia acestora luat˘a individual ¸si con¸stient (aceea de a m˘arturisi) ¸si decizia colectiv˘a (aceea de a t˘ainui) sunt divergente.
Capitolul 4
TEORIA DECIZIILOR STATISTICE 4.1.
Prezentarea problemelor
Situat¸iile reale necesit˘a adoptarea unor decizii ce trebuie determinate utilizˆand diverse criterii. Spre deosebire de statistica matematic˘a clasic˘a , care se ocupa de dezvoltarea unor teorii ¸si tehnici de inferent¸a˘ asupra parametrului θ, utilizˆand numai informat¸ia de select¸ie, teoria deciziilor statistice combin˘a informat¸ia de select¸ie cu alte dou˘ a aspecte importante legate de consecint ¸ele posibile ale adopt˘arii unei decizii ¸si de informat ¸ia a priori cu privire la parametrul θ. Cunoa¸sterea consecint¸elor posibile ale adopt˘arii diferitelor decizii presupune o exprimare cantitativ˘a a cˆ a¸stigului sau pierderii produse pentru fiecare decizie posibil˘a ¸si pentru diferitele valori posibile ale parametrului θ. Funct¸ia astfel obt¸inut˘ a, ce depinde de decizia adoptat˘a ¸si de parametrul θ, apare ˆın literatura de specialitate sub diferite denumiri ca funct ¸ie cˆa¸stig sau funct ¸ie utilitate . Informat¸ia a priori cu privire la parametrul θ se obt¸ine din alte surse decˆat cele de natur˘ a statistic˘a ce implic˘a problema de decizie respectiv˘a. Este o informat¸ie care se obt¸ine dintr-o experient¸a˘ trecut˘a cu privire la situat¸ii similare ce implic˘a parametrul θ. Aceast˘a informat¸ie a priori este cuantificat˘a printr-o distribut¸ie de probabilitate cu privire la parametrul θ. Problema existent¸ei acestei distribut¸ii este o problem˘a destul de discutat˘ a. Abordarea teoriei deciziilor prin intermediul unei distribut¸ii a priori corespunde abord˘arii bayesiane. Problemele legate de teoria deciziilor pot fi ˆıncadrate ˆın cadrul teoriei jocurilor ceea ce justific˘a prezentarea acestui capitol dup˘ a capitolul corespunz˘ator teoriei jocurilor. Decidentul poate avea sau nu posibilitatea efectu˘ arii unor experient¸e a priori lu˘arii deciziei. Astfel, avem decizii f˘ ar˘ a experient ¸˘ a a priori , decizii cu experient ¸˘ a unic˘ a (sau decizii cu volum de e¸santionaj 45
46
TEORIA DECIZIILOR STATISTICE
dat, ˆın care decizia se ia dup˘a efectuarea tuturor observat¸iilor) ¸si decizii secvent ¸iale (pe baza observat¸iei se poate decide efectuarea unei noi observat¸ii sau luarea unei decizii corespunz˘atoare). Astfel, paragrafele 4.2 ¸si 4.3 ale acestui capitol abordeaz˘ a strategiile de luare a deciziilor ˆın situat¸iile ˆın care nu avem experient¸e a priori, respectiv situat¸ia unei experient¸e de volum fixat. Deciziile se pot lua ˆın condit¸ii de risc (dispunem de informat¸ie a priori cu privire la starea parametrului θ) sau ˆın condit¸ii de incertitudine. Astfel, paragraful 4.4 prezint˘a o serie de criterii pentru alegerea deciziilor optime ˆın caz de incertitudine.
4.2.
Strategii Bayes ¸si strategii minimax
Pentru a fixa ideile s˘a presupunem c˘a mult¸imea parametrilor de stare (necunoscut˘a) θ este finit˘a Θ = θ1 , . . . , θm . S˘a presupunem c˘a avem o informat¸ie a priori despre θ dat˘ a de distribut¸ia de probabilitate a priori ξ (θ). Aceast˘a distribut¸ie se nume¸ste strategie mixt˘ a . S˘a presupunem c˘a avem mult¸imea strategiilor pure:
{
}
{
}
A = a1 ,...,an . S˘ a not˘ am prin L(θ, a) valoarea funct ¸iei de pierdere: L : Θ
× A → R+,
care este pierderea obt¸inut˘ a dac˘ a se adopt˘a decizia a ¸si starea parametrului este θ. Pierderea medie este definit˘a ca: L(ξ, a) = M [L(θ, a)] =
L(θ, a)ξ (θ), pentru orice a
θ Θ
∈
∈ A.
Numim strategie Bayes act¸iunea cea mai favorabil˘a a∗ care minimizeaz˘a pierderea medie, adic˘a a ∗ pentru care: L(ξ, a∗ ) = min L(ξ, a). a A
∈
Numim strategie minimax act¸iunea cea mai favorabil˘a a ∗ care minimizeaz˘a pierderea maxim˘a, adic˘a a ∗ pentru care: max L(ξ, a∗ ) = min max L(ξ, a). θ Θ
∈
a A θ Θ
∈
∈
Dac˘ a nu ne limit˘am numai la strategiile pure, atunci vom folosi o combinat¸ie de strategii pure alese dup˘a o lege de probabilitate. Aceast˘ a strategie se nume¸ste strategie mixt˘ a .
˘ CAZUL EFECTU ARII UNOR EXPERIENT ¸ E UNICE
47
Fie η(a) = (η(a1 ),...,η(am )) distribut¸ia de probabilitate care define¸ste probabilitatea cu care se folosesc strategiile pure a1 ,...,am . ˆIn general, dispunem de o mult¸ime de strategii mixte: H = η1 (a),...,η p (a) .
{
}
Atunci pierderile medii sunt date de: L(ξ, η) = M θ,a (L(θ, a)) =
L(θ, a)ξ (θ)η(a).
θ Θa A
∈ ∈
ˆIn acest caz trebuie g˘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˘ arii unor experient¸e unice
S˘ a presupunem c˘a decidentul, pentru a-¸si l˘argi cuno¸stint¸ele despre st˘arile naturii, opteaz˘ a pentru efectuarea unei experient¸e unice (de exemplu, pentru a estima influent¸a unui anumit tip de medicament asupra unei categorii de pacient¸i, se poate face o experient¸a˘ unic˘a ce const˘a ˆın m˘asurarea zilnic˘a, timp de mai multe luni, a unei concentrat¸ii, dintr-un anumit tip de compus proteic, pentru m pacient¸i din categoria respectiv˘a). Fie Z spat¸iul rezultatelor z 1 ,...,zl ale experient¸ei. Fiec˘arui rezultat z Z obt¸inut cˆand starea θ Θ ˆıi corespunde o probabilitate determinat˘ a de p(z θ), care satisface relat¸iile:
∈
|
|
≥ |
p(z θ) 0, pentru orice z p(z θ) = 1. z Z
∈
∈
∈ Z
Definit¸ia 4.3.1. Tripletul format din spat¸iul rezultatelor experient¸ei Z , spa¸t iul st˘arilor naturii Θ ¸si distribut¸ia condit¸ionat˘ a p(z θ) definit˘a pe Z pentru fiecare θ Θ, se nume¸ste spat ¸iu de e¸santionaj . Vom nota acest lucru cu = (Z, Θ, p).
|
∈
E
→ A, ¸si asociaz˘a
Definit¸ia 4.3.2. Se nume¸ste funct¸ie de decizie funct¸ia d : Z fiec˘arui rezultat z k Z o act¸iune a j A, j = 1, n.
∈
∈
48
TEORIA DECIZIILOR STATISTICE
Pierderea suferit˘a ˆın cazul ˆın care starea parametrului θ este θi , i = 1, m este dat˘a de: L(θi , a j ) = L(θi , d(zk )) = L zk (θi , d). Pentru un θ dat, rezultatul z al experient¸ei va fi o variabil˘a aleatoare determinat˘a de probabilitatea condit¸ionat˘ a p(z θ), deci ¸si pierderile L z (θ, d) sunt variabile aleatoare ¸si se vor realiza cu aceea¸si probabilitate.
|
× D → R dat˘a de: Lz (θ, d) p(z |θ),
Definit¸ia 4.3.3. Numim funct ¸ie de risc funct¸ia ρ : Θ ρ(θ, d) = M [Lz (θ, d)] =
z Z
∈
¸si reprezint˘a valorea medie a pierderii pe spat¸iul rezultatelor Z . Se a junge la concluzia c˘a spat¸iul deciziilor D joac˘ a ˆın problema strategiei ˆın cazul efectu˘arii unei experient¸e unice, acela¸si rol ca spat¸iul A ˆın problema strategiei f˘ar˘a experient¸e. Deci metodele de rezolvare ale celor dou˘a tipuri de probleme vor fi asem˘an˘ atoare. Se pot aborda strategii mixte η(d) definite pe spat¸iul D. Funct¸ia de risc este ˆın acest caz: ρ(θ, η) = M [ρ(θ, d)] =
ρ(θ, d)η(d)
d D
=
∈
|
Lz (θ, d) 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. Strategia η ∗ (d) se alege astfel ˆıncˆat: ρ(θ, η ∗ ) = min max ρ(θ, η), η
θ Θ
∈
iar valoarea corespuz˘atore a riscului se nume¸ste risc minimax . Principiul lui Bayes minimizeaz˘a riscul mediu definit de: ρ(ξ, d) =
ρ(θ, d)ξ (θ).
θ Θ
∈
Strategia pur˘ a d ∗ se alege astfel ˆıncˆat: ρ(ξ, d∗ ) = min ρ(ξ, d). d D
∈
DECIZII OPTIME ˆıN CAZ DE INCERTITUDINE
4.4.
49
Decizii optime ˆın caz de incertitudine
Pˆ an˘ a ˆın acest punct au fost tratate procesele de decizii ˆın condit¸ii de risc, ceea ce reprezint˘a faptul c˘a sunt cunoscute (sau se pot determina) probabilit˘a¸tile corespunz˘atoare parametrului θ Θ. ˆIn continuare ne vom ocupa de procesele de decizie desf˘a¸surate ˆın condit¸ii de incertitudine, deci cˆand nu se cunosc probabilit˘a¸tile corespunz˘atoare lui θ. Faptul c˘a atitudinea fat¸a˘ de decizie este subiectiv˘a face ca ˆın teoria deciziilor s˘a nu existe criterii universal valabile. Vom prezenta cˆateva criterii de alegere a deciziei ˆın caz de incertitudine, precizˆand c˘a aplicarea lor poate duce la rezultate diferite. Un mod de a alege o decizie ar putea fi acela al alegerii strategiei indicate ca rezultat al aplic˘arii mai multor criterii. S˘ a consider˘am situat¸ia ˆın care dispunem de m strategii pure a 1 , . . . , am , iar parametrul θ are n st˘ari posibile θ 1 , . . . , θm . Elementul q ij va reprezenta cˆa¸stigul realizat dac˘ a se adopt˘a act¸iunea a i ¸si starea parametrului θ este θ j , i = 1, m , j = 1, n.
∈
4.4.1.
Criteriul lui Hurwicz
Criteriul lui Hurwicz sau criteriul optimismului alege ca strategie optim˘a acea act¸iune a i care corespunde la: max[εQi + (1 i
unde ε
− ε)q i],
∈ [0, 1] se nume¸ste optimismul decidentului, iar q i = min q ij ¸si Q i = max q ij . j j
4.4.2.
Criteriul lui Savage
Criteriul lui Savage sau criteriul regretelor alege ca strategie optim˘a acea act¸iune ai care corespunde la: min max bij = max min bij , j
i
i
j
(dac˘ a nu se poate alege o strategie pur˘a, adic˘a matricea nu are punct ¸sa, se va determina o strategie mixt˘a optim˘ a), unde matricea regretelor (diferent¸a dintre cˆa¸stigul realizat prin luarea unei decizii f˘ar˘a a cunoa¸ste starea naturii ¸si cel realizat dac˘a se cuno¸steau aceste st˘ari) este definit˘a ca: bij = max q kj k
− q ij , i = 1, m , j = 1, n.
50
TEORIA DECIZIILOR STATISTICE
4.4.3.
Criteriul Bayes-Laplace
Criteriul lui Bayes-Laplace alege ca strategie optim˘a acea act¸iune ai care corespunde la: n 1 max[ q ij ], i n
j=1
adic˘ a se presupune c˘a toate st˘ arile naturii au aceea¸si probabilitate.
4.4.4.
Criteriul lui Wald
Criteriul lui Wald alege, dac˘a jocul are punct ¸sa, ca strategie optim˘a acea act¸iune ai care corespunde la principiul minimax. Dac˘a jocul nu are punct ¸sa, atunci se determin˘ a strategia mixt˘a optim˘ a cu probabilit˘a¸tile x 1 ,...,xm care maximizeaz˘a: m
min[ j
4.5.
q ij xi ].
i=1
Aplicat¸ii
Exercit¸iul 4.5.1. O linie de fabricare a cimentului poate folosi ca materie prim˘a trei tipuri de nisip ai c˘arui parametri sunt θ 1 , θ2 , respectiv θ 3 . Se ¸stie c˘a linia tehnologic˘a poate folosi ˆın medie 60% din primul tip, 30% din al doilea tip ¸si 10% din al treilea tip ¸si c˘a poate funct¸iona ˆın trei regimuri a 1 , a2 ¸si a3 . Pierderile reflectˆ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 a priori. Care este strategia optim˘ a ˆın sensul lui Bayes? R˘ aspuns. Pierderile medii corespunz˘atoare probabilit˘ a¸t ii a priori sunt:
·
·
·
L(ξ, a1 ) = 0 0, 6 + 0, 5 0, 3 + 1 0, 1 = 0, 25
·
·
·
·
L(ξ, a2 ) = α 0, 6 + 2α 0, 3 + α 0, 1 = 1, 3 α
51
APLICAT ¸ II
·
·
·
L(ξ, a3 ) = 2 0, 6 + 1 0, 3 + 3 0, 1 = 1, 8. Strategia Bayes este acea act¸iune care minimizez˘a pierderea medie adic˘a strategia 5 5 sau strategia a 2 dac˘a α a1 dac˘a α . 26 26 5 Remarc˘ am c˘a pentru α = avem dou˘a strategii optime ¸si anume a 1 ¸si a 2 . 26
≥
≤
Exercit¸iul 4.5.2. Aceea¸si problem˘a ca la 4.5.1. c˘ a de aceast˘a dat˘ a dispunem de o strategie mixt˘a cu frecvent¸ele 20%, 30%, respectiv 50%. Exercit¸iul 4.5.3. Se consider˘a jocul contra naturii ˆın forma matriceal˘ a: TABELUL 4.2
A/B 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 jocului este alc˘ atuit˘a ˆın raport cu juc˘atorul statistician A (maximizant) ¸si reprezint˘a cˆa¸stigurile realizate de acesta. S˘ a se aplice criteriile lui Hurwicz, Savage, Bayes s¸i Wald pentru 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: max[εQi + (1 i
∈
− ε)q i] = 5ε
unde ε [0, 1]. Deci strategia optim˘ a este a 4 . ii) Pentru aplicarea criteriului lui Savage se determin˘a matricea regretelor:
52
TEORIA DECIZIILOR STATISTICE TABELUL 4.4
(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 2 1
i
j
\
Se observ˘a faptul c˘a jocul nu are punct ¸sa, ¸si, deci vom determina strategia mixt˘a cu ajutorul algoritmului simplex primal sau dual. Solut¸ia problemei ata¸sate se poate rezolva cu ajutorul programului MAPLE, iar sintaxa pentru aceasta este: > with(simplex) : > minimize(x + y + z + w, 2 x + 3 y + z >= 1, 8 x + 4 z + 3 w >= 1, 3 y + 3 z >= 1, 2 y + 2 z >= 1, 3 x + 5 y + z >= 1,NONNEGATIVE ); solut¸ia problemei fiind x = 0, y = 1/4, z = 1/4, w = 0. Aceasta conduce la strategia mixt˘a optim˘ a:
∗ ∗
∗ ∗
∗
∗
∗
∗
∗
∗
∗
1 1 , x3 = , x4 = 0. 2 2
x1 = 0, x2 =
iii) Pentru aplicarea criteriului lui Bayes-Laplace vom considera echiprobabile st˘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
j=1
1 1 7/5 14/5
deci statisticianul va alege strategia a 4 deoarece aceasta maximizeaz˘a: n
1 n
q ij .
j=1
iv) Pentru aplicarea criteriului lui Wald, deoarece jocul nu are punct ¸sa statisticianul va alege o strategie mixt˘a cu probabilit˘a¸tile x 1 ,...,xm care maximizeaz˘a: m
min[ j
i=1
q ij xi ].
53
APLICAT ¸ II
Strategia optim˘ a se determin˘a cu a jutorul algoritmului simplex. Sintaxa MAPLE pentru rezolvarea problemei de programare liniar˘a ata¸sat˘a jocului este: > with(simplex) : > minimize(x + y + z + w, 2 x + 2 y + 4 z + 5 w >= 1, 5 x + 3 y z >= 1, 4 x + y + z + 3 w >= 1, 2 x + 2 w >= 1, x y + 3 z + 4 w >= 1,NONNEGATIVE ); iar solut¸ia acesteia este x = 0, y = 2/5, z = 0, w = 3/5. Aceasta conduce la strategia optim˘ a :
∗
∗
∗
∗
∗
x1 = 0, x2 =
∗ ∗
∗
−
−∗
∗ − ∗ ∗
2 3 , x3 = 0, x4 = , 5 5
valoarea x 3 = 0 se explic˘a prin faptul c˘a strategia a 3
≺ a4.
Exercit¸iul 4.5.4. Se consider˘a jocul contra naturii ˆın forma matriceal˘ 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 jocului este alc˘ atuit˘a ˆın raport cu juc˘atorul statistician A (maximizant) ¸si reprezint˘a cˆas¸tigurile realizate de acesta. Dispunem de urm˘ atorea distribut¸ie a priori asupra parametrului θ :(0, 2; 0, 1; 0, 1; 0, 1; 0, 6). Care sunt pierderile medii corespunz˘atoare distribut¸iei a priori? Care este act¸iunea optim˘ a Bayes corespunz˘atoare?
54
TEORIA DECIZIILOR STATISTICE
Capitolul 5
TEORIA GRAFURILOR 5.1.
Grafuri orientate
Acest capitol este dedicat ˆın special prezent˘arii unor not¸iuni elementare de teoria grafurilor punˆandu-se accentul pe algoritmii lui Ford, Bellman-Kalaba ¸si Dijkstra de determinare a drumurilor optime ˆıntr-un graf. ˆIncepem printr-o serie de definit¸ii. Definit¸ia 5.1.1. Un graf orientat G este o pereche G = (X, A), unde X este o mult¸ime finit˘a, iar A X X. Elementele x X se numesc noduri ale grafului G, iar perechile (x, y) A se numesc arce ale grafului. Pentru un arc (x, y) A, vˆarful x se nume¸ste extremitate init ¸ial˘ a sau surs˘ a, iar y, extremitate final˘a sau destinat ¸ie .
∈
⊂ ×
∈
∈
Definit¸ia 5.1.2. Un graf neorientat va fi notat cu G = (X, U ), unde X reprezint˘ a mult¸imea nodurilor (vˆarfurilor) grafului, iar U mult¸imea muchiilor. Prin muchie se va ˆınt¸elege perechea u = i, j , i, j X . Dac˘a i = j perechea i, j este egal˘a cu perechea j, i , iar muchiile ordonate (i, j) ¸si ( j, i) reprezint˘a arce distincte. O muchie se reprezint˘a printr-o linie care une¸ste cele dou˘a noduri ¸si se noteaz˘a cu u = [i, j], i, j X.
{ } ∈
{ }
∈
{ }
Definit¸ia 5.1.3. O rut˘ a orientat˘ a este un arc (i, j) din G ¸si i se poate asocia o valoare numeric˘a v (u) sau v ij cu semnificat¸ie real˘a de lungime, distant¸a˘, cost etc. Definit¸ia 5.1.4. Un drum ˆıntre s ¸si t se define¸ste ca o succesiune de rute orientate µ : [(s, i1 ), . . . , (in , t)] cu proprietatea c˘a (s, i1 ), . . . , (in , t) sunt arce ˆın graf. Definit¸ia 5.1.5. Un drum care nu trece de dou˘a ori printr-un nod al s˘a u se nume¸ste drum elementar . 55
56
TEORIA GRAFURILOR
Drumurile elementare vor fi determinate ˆın acest˘a lucrare. Unui drum µ i se asociaz˘a valoarea drumului v (µ) = v si1 + . . . + vin t . Num˘arul de arce prin care trece un drum se nume¸ste lungimea drumului . Un drum µ al grafului G poate fi dat ca un ¸sir de noduri, µ : [s, i1 , . . . , in , t] unde (s, i1 ), . . . , (in , t) sunt rute orientate. Se pune problema determin˘arii unui drum µ∗ de la s la t cu valoare minim˘a, adic˘ a: v(µ∗ ) = min v(µ), µ M (s,t)
∈
unde M (s, t) este mult¸imea drumurilor ˆın graful G de la s la t. Avem urm˘atoarea teorem˘a de invariant¸a˘ la multiplicare. Teorema 5.1.1. Fie un graf orientat G ¸si D un drum de lungime minim˘ a ˆıntre dou˘ a noduri s ¸si t. Dac˘ a valorile fiec˘ arei muchii se ˆınmult ¸esc cu un parametru real strict pozitiv α, atunci ˆın noul graf G drumul de lungime minim˘ a dintre nodurile s ¸si t este identic (ca succesiune a nodurilor) cu drumul de lungime minim˘ a din graful G, iar ˆıntre valorile L (s, t) ¸si L(s, t) ale celor dou˘ a drumuri exist˘ a relat ¸ia:
L (s, t) = αL(s, t). Nu se poate formula o regul˘a de invariant¸a˘ relativ la operat¸ia aditiv˘a (valorile fiec˘arei muchii se adun˘a cu un num˘ ar real pozitiv). G˘asirea unui contraexemplu se las˘a pe seama cititorului.
5.2.
Algoritmul lui Kaufmann
Definit¸ia 5.2.1. Fie G = (X, A) un graf orientat. Vom nota mult¸imea nodurilor cu x1 , . . . , xn . Matricea A = (aij ) dat˘ a de aij = 1 dac˘a (xi , x j ) A ¸si aij = 0 dac˘ a (xi , x j ) / A se nume¸ste matricea arcelor . Matricea D = (dij ) dat˘ a de relat¸iile dij = 1 dac˘a exist˘a drum de la i la j ¸si d ij = 0 dac˘a nu exist˘a drum de la i la j se nume¸ste matricea drumurilor .
{
} ∈
∈
Remarc˘ am c˘a ˆıntr-un graf avˆ and n noduri orice drum elementar are lungimea de cel mult n 1.
−
∈
Definit¸ia 5.2.2. Puterea de atingere p(xi ) a unui vˆarf xi X ˆın graful G = (X, A) este egal˘a cu num˘a rul de vˆarfuri la care se poate ajunge din xi , adic˘a cu ponderea Hamming a vectorului reprezentat de linia i a matricei D. S˘ a not˘ am prin Γ(k) (xi ) mult¸imea de vˆarfuri din G la care se poate ajunge din x i folosind drumuri elementare formate din k arce. Avem urm˘atorea teorem˘a:
57
ALGORITMUL LUI CHEN
Teorema 5.2.1. Fie G un graf avˆ and n vˆ arfuri, atunci elementul dij = = 1 dac˘ a ¸si numai dac˘ a avem relat ¸ia: n 1
x j
−
∈
Γ(k) (xi )
k=1
Problema determin˘arii eficiente a matricei drumurilor a fost rezolvat˘a de A. Kaufmann, iar algoritmul corespunz˘ator se mai nume¸ste ¸si algoritmul ˆınmult¸irii latine. PASUL 0. Se construie¸ste matricea conexiunilor directe, notat˘a prin K(1) ˆın care se trec efectiv arcele, inexistent¸a unui arc (0 ˆın matricea drumurilor) fiind marcat˘a prin . PASUL 1. Se construie¸ste matricea destinat¸iilor posibile K (0) . PASUL 2. Se compun (ˆınmult¸ire latin˘a) matricele K (1) ¸si K (0) : K (1) &K(0). PASUL k. Recursiv, calcul˘am matricea K(k+1) = K(k) &K(0) , care ne va da lista drumurilor formate din k + 1 arce. Observat ¸ie. Regula de ˆınmult¸ire latin˘a respect˘a regula de ˆınmult¸ire a matricelor ¸si ˆın plus dac˘a unul din elementele participante la calcul este , atunci rezultatul este s¸i ˆın caz contrar rezultatul compunerii const˘a ˆın concatenarea simbolurilor participante.
∗
∗
∗
5.3.
Algoritmul lui Chen
Definit¸ia 5.3.1. Un drum elementar se nume¸ste drum hamiltonian dac˘a trece o singur˘a dat˘ a prin toate nodurile grafului. Urm˘ atoarea teorem˘ a, atribuit˘ a lui Chen, este o condit¸ie necesar˘a ¸si suficient˘a pentru ca un graf f˘ar˘a circuite s˘a cont¸in˘a un drum hamiltonian. Teorema 5.3.1. Un graf f˘ar˘ a circuite, care are n noduri, cont ¸ine un drum hamiltonian, dac˘ a ¸si numai dac˘ a avem: n
p(xi ) =
i=1
n(n
− 1) .
2
Remarc˘ am c˘a ˆıntr-un graf f˘ ar˘a circuite (un drum ˆın care extremit˘a¸t ile coincid se nume¸ste circuit), exist˘a cel mult un drum hamiltonian. Algoritmul de determinare a drumurilor hamiltoniene ˆın grafuri f˘ar˘a circuite este prezentat ˆın cele ce urmeaz˘a. PASUL 0. Pentru graful G scriem matricea drumurilor D = (dij ), ordonˆand vˆarfurile ˆın ordine descresc˘atoare a puterii de atingere (prin aceast˘a operat¸ie, dac˘a
58
TEORIA GRAFURILOR
graful nu are circuite atunci toate valorile de 1 din matrice vor ap˘area deasupra diagonalei principale). PASUL 1. Dac˘a exist˘a un indice i pentru care d ii = 1, atunci graful are circuite ¸si algoritmul se opre¸ste, deoarece acesta nu se poate aplica. n(n 1) PASUL 2. Dac˘a ˆın matricea D exist˘a valori de 1, atunci graful admite 2 un drum hamiltonian ¸si se trece la pasul 3; ˆın caz contrar graful nu are un drum hamiltonian, iar algoritmul se opre¸ste. PASUL 3. Ordinea vˆarfurilor ˆın cadrul drumului hamiltonian este dat˘ a de ordinea descresc˘atoare a puterilor de atingere. Pentru grafurile care au circuite algoritmul de determinare a drumurilor hamiltoniene este dat de algoritmul lui Kaufmann prezentat anterior. Astfel prezent¸a unui element diferit de pe diagonala uneia dintre matricele K (k) din cadrul acestui algoritm indic˘ a atˆ at prezent¸a unui circuit hamiltonian cˆat ¸si ordinea vˆarfurilor.
−
∗
5.4.
Algoritmul lui Ford
Algoritmul lui Ford determin˘a drumurile de valoare minim˘a ˆıntr-un graf orientat G = (X, A) cu ¸si f˘ar˘a circuite, de la un nod s la toate celelalte noduri. Fie l(u) valoarea unui arc u A. ˆIn particular, ˆın cazul ˆın care se cere, algoritmul determin˘a drumurile de valoare minim˘ a de la nodul s la orice alt nod t. Dac˘a graful este neorientat sau part¸ial orientat, fiec˘arei muchii u cu extremit˘a¸tile i ¸si j ¸si valoarea l(u) i se asociaz˘a dou˘ a arce (i, j) ¸si ( j, i) cu aceea¸si valoare l ij = l ji = l(u). Fiec˘ arui nod j i se asociaz˘a o variabil˘a λ j care va da valoarea cea mai mic˘a de la nodul s la nodul j, (λs = 0). PASUL 0. Se ˆıntocme¸ste un tabel cu toate nodurile grafului ¸si corespunz˘ator cu valorile: λs = 0, λ j = , j = s.
∈
∞
∈
PASUL 1. Pentru toate arcele (i, j) A se compar˘a (dac˘ a are sens) diferent¸a λ j λi cu valoarea l ij : dac˘ a λ j λi > lij , 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 pˆan˘ a cˆand, pentru toate arcele (i, j) A, se verific˘a relat¸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, j) care verific˘a relat¸ia cu egalitate, adic˘a λ j λi = l ij . Arcele
−
59
ALGORITMUL BELLMAN-KALABA
care verific˘a aceast˘ a egalitate formeaz˘ a un graf part¸ial al drumurilor de lungime minim˘ a de la nodul s la toate celelalte noduri ale grafului. Drumurile de valoare maxim˘a se pot obt¸ine cu algoritmul lui Ford init¸ializˆ and λs = 0, λ j = , j = s ¸si ˆınlocuind inegalit˘ a¸t ile (>, ) din pa¸sii 1 ¸si 2 prin (<, ), iar cuvˆantul min prin max .
−∞
5.5.
≤
≥
Algoritmul Bellman-Kalaba
Algoritmul Bellman-Kalaba este un algoritm care se aplic˘a unui graf orientat cu ¸si f˘ar˘a circuite, cu ajutorul c˘aruia se determin˘a drumul minim sau drumurile minime de la toate nodurile grafului la un nod final t. Fie l(u) valoarea unui arc u Γ. Dac˘ a graful este neorientat, fiec˘arei muchii cu extremit˘at¸ile i ¸si j ¸si cu valoarea l(u) se asociaz˘a dou˘ a arce (i, j) ¸si ( j, i) cu valori egale l ij = l ji = l(u). PASUL 0. Se asociaz˘a grafului G o matrice V = (vij ) ale c˘arei elemente se determin˘a astfel:
∈
vij =
∞
lij dac˘a (i, j) Γ 0 dac˘ a i = j dac˘a (i, j) / Γ.
∈
∈
{ (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 v i , astfel: (0)
= vit ,
(0)
= 0.
vi
vt
i = t,
(0)
Linia v i , conform acestor relat¸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:
{ }
(k)
= min vi
(k)
= 0.
vi
vt
(k−1) { + vij }, j =i
i = t,
Algoritmul se opre¸ste, ˆıntr-o etap˘a, dac˘a: (k)
vi
(k 1)
= v i
−
, pentru orice nod i.
60
TEORIA GRAFURILOR (k)
M˘ arimea v i reprezint˘a valoarea drumului minim de la vˆarful i la nodul final t. Dac˘ a: (k) (k−1) vi = 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 = i}
= j vi
¸si marc˘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) , ˆıncepˆand cu cele din coloana i. Observat ¸ii : i) Algoritmul lui Ford determin˘a drumurile de valoare minim˘a (sau maxim˘a) care pleac˘a de la un nod surs˘a s c˘atre toate celelalte noduri ale grafului. ii) Algoritmul Bellman-Kalaba determin˘a drumurile de valoare minim˘a (sau maxim˘a) care sosesc ˆıntr-un nod final t de la celelalte noduri ale grafului.
∞
5.6.
∅
Algoritmul lui Dijkstra
Ideea de baz˘a a algoritmului lui Dijkstra este de a pleca din nodul s ¸si de a eticheta celelalte noduri ˆın ordinea dep˘art˘ arii lor, ˆın sensul lungimii, de nodul surs˘a s. Fiec˘ arui nod j i se asociaz˘a o variabil˘a p( j), care ˆın orice moment va ret¸ine cea mai mic˘a lungime a drumurilor de la s la i ( p(s) = 0). Se vor considera dou˘a liste L ¸si T . Lista L este lista nodurilor permanente (valorile sunt fixate), iar T este o list˘a cu noduri temporare (valorile pot fi modificate). Init¸ial, lista L = s iar lista ¸si T se compune din acele nodurie j X pentru care ruta (s, j) este permis˘a . Un nod i ∗ din lista T a c˘arui variabil˘a p(i∗ ) are valoarea cea mai mic˘a se include ˆın lista L. ˆIn lista T se includ apoi, toate nodurile j, care nu sunt ˆınscrise ˆın aceast˘a list˘a ¸si ruta (i, j) este permis˘a. Pentru a reconstrui drumurile de lungime minim˘a de la s la toate nodurile ce pot fi atinse din s, folosind rute orientate permise ale grafului, se introduce pentru fiecare nod j = s din graf un indicator pred( j), care va ret¸ine ˆın orice moment ultimul nod dinaintea lui j, pe drumul de la s la j care a fost g˘asit a avea cea mai scurt˘a lungime pˆ an˘ a ˆın acel moment ( pred(s) = 0). Algoritmul lucreaz˘a ˆıntr-un tabel cu coloanele: iterat¸ia, lista L, nodul j, variabila p( j) ¸si indicatorul pred( j). Faptul c˘ a un nod j este inclus ˆın lista permanent˘a L, se marcheaz˘a prin ˆın stˆanga tabelului (coloana L), ˆın dreptul nodului j. ˆIn orice moment, nodurile din tabel f˘ar˘a marcajul apart¸in listei temporare T .
{ }
∈
∗
∗
61
ARBORI MINIMALI
ˆIn stˆanga tabelului se precizeaz˘a iterat¸ia ˆın care nodul respectiv este permanentizat ˆın lista L, prin marcarea cu . PASUL 0. Tabelul cont¸ine nodul s marcat cu ¸si acele noduri j pentru care ruta orientat˘ a (s, j) este permis˘a. Corespunz˘ator p(s) = 0, p( j) = v sj , pred( j) = s. Se consider˘a marcarea nodului s ca fiind iterat¸ia 0. Iterat¸ia k. PASUL 1. Dac˘a ˆın tabel lista T este vid˘a, atunci toate nodurile sunt permanente (marcate cu ). Graful este analizat ˆın ˆıntregime ¸si algoritmul se opre¸ste. PASUL 2. Se alege i ∗ T cu proprietatea:
∗
∗
∗
∈
p(i∗ ) = min p( j). j T
∈
Dac˘ a i ∗ t algoritmul se opre¸ste, ¸si se determin˘a drumul de lungime minim˘a de la s la t. ˆIn caz contrar, nodul i∗ este transferat ˆın lista L, prin marcarea cu ¸si astfel este scos din lista T . ˆIn lista T se ˆınscriu toate nodurile j T cu proprietatea c˘a ruta (i∗ , j) este permis˘a . Se iau p( j) = ¸si pred( j) = . PASUL 3. Se corecteaz˘a valorile variabilelor corespunz˘atoare nodurilor j T adiacente cu nodul i ∗ comparˆand:
≡
∞
∅
∈
∗
∈
p( j) cu p(i∗ ) + vi j . ∗
a) dac˘ a p( j) > p(i∗ ) + vi j , atunci p( j) = p(i∗ ) + vi j ¸si pred( j) = i ∗ ; b) dac˘a p( j) = p(i∗ ) + vi j , atunci i pred( j); c) dac˘a p( j) < p(i∗ ) + vi j , atunci se trece la examinarea unui nod din lista T . Dup˘ a epuizarea listei T se reia pasul 1 ˆın cadrul urm˘atoarei iterat¸ii. Dup˘a oprirea algoritmului ¸si atingerea nodului t (ˆın pasul 2) drumul de lungime minim˘a se reconstituie din aproape ˆın aproape de la nodul t c˘atre nodul s cu ajutorul indicatorilor pred( j). Dac˘ a nodul t nu este evident¸iat, dup˘a oprirea algoritmului se reconstituie, ˆın acela¸si fel, graful drumurilor de lungime minim˘a de la s la orice alt nod ˆın graf. ∗
∗
∗
5.7.
∗
∈
Arbori minimali
Definit¸ia 5.7.1. Se nume¸ste arbore un graf neorientat finit, conex (ˆıntre orice dou˘ a noduri ale sale s ¸si t exist˘a un drum) ¸si f˘ar˘a cicluri. Problema ce urmeaz˘a s˘ a o rezolv˘am are forma: fiind dat un graf G neorientat, conex s˘a se extrag˘a din G un arbore part¸ial pentru care suma valorilor muchiilor este minim˘a.
62
TEORIA GRAFURILOR
Vom presupune, pentru a simplifica ideile, c˘a ˆıntre orice dou˘a noduri ale grafului G exist˘a cˆate o muchie, ¸si c˘a toate valorile muchiilor sunt diferite dou˘a cˆate dou˘ a. Fie A = a1 , . . . , am mult¸imea muchiilor grafului. Vom nota cu p i = p(ai ) valoarea muchiei a i . Vom presupune deci c˘a p 1 < .. . < p m .
{
5.7.1.
}
Algoritmul lui Kruskal
PASUL 1. Se alege muchia a 1 de valoare minim˘a. PASUL 2. Se alege muchia a 2 de valoare minim˘a r˘ amas˘a. PASUL 3. Se atribuie S = a1 , a2 . PASUL 4. Dac˘a am acoperit toate nodurile grafului, atunci algoritmul se opre¸ste. Se alege muchia ar , de valoare minim˘a, din A S, care nu formeaz˘a cicluri cu muchiile lui S . PASUL 5. Se actualizeaz˘a S = S ar ¸si goto PASUL 4. Observat ¸ie . Dac˘a exist˘a ˆın graf muchii de valori egale, atunci s-ar putea ca problema s˘ a admit˘ a mai multe solut¸ii.
{
}
−
∪{ }
5.8.
Aplicat¸ii
Exercit¸iul 5.8.1. Posibilit˘ a¸tile de comunicare ˆıntre localit˘a¸t ile 1-6 sunt reprezentate prin graful din figura 5.1, unde fiec˘arei muchii (sau arc) i se atribuie lungimea tronsoanelor respective. Se cere drumul de lungime minim˘a ˆıntre 1 ¸si 6.
Figura 5.1: Graf orientat. Rezolvare. Pentru rezolvarea problemei vom aplica algoritmul lui Ford. Problema se poate rezolva ¸si cu algoritmul lui Bellman-Kalaba. PASUL 0. λ1 = 0, λ j = , j = 1 .
∞
63
APLICAT ¸ II TABELUL 5.1
j 1 2 3 4 5 6
λ j Init¸ializare Iterat¸ia 1 λ1 0 0 λ2 2 λ3 8,5 10,8 λ4 λ5 7 λ6 13,11
∞ ∞ ∞ ∞ ∞
Iterat¸ia 2 0 2 5 8 7 11
PASUL 1. Iterat¸ia 1. Pentru fiecare arc (i, j) dac˘a se verific˘a λ j λi > lij , atunci λ j = λi + lij . (1, 2) λ 2 λ1 = > 2, atunci λ 2 = λ1 + l12 = 0 + 2 = 2, (1, 3) λ 3 λ1 = > 8, atunci λ 3 = λ1 + l13 = 0 + 8 = 8, (2, 1) λ 1 λ2 = 0 2 = 2 < 2, (2, 3) λ 3 λ2 = 8 2 = 6 > l23 = 3, atunci λ 3 = λ 2 + l23 = 2 + 3 = 5, (2, 4) λ 4 λ2 = > 8, atunci λ 4 = λ2 + l24 = 2 + 8 = 10, (3, 1) λ 1 λ3 = 0 5 = 5 < l31 = 8, (3, 2) λ 2 λ3 = 2 5 = 3 < l32 = 4, (3, 4) λ 4 λ3 = 10 5 = 5 = l 34 = 5, (3, 5) λ 5 λ3 = 5= > l35 = 2, atunci λ 5 = λ 3 + l35 = 5 + 2 = 7, (4, 2) λ 2 λ4 = 2 10 = 8 < l42 = 8, (4, 3) λ 3 λ4 = 5 10 = 5 < l43 = 5, (4, 5) λ 5 λ4 = 7 10 = 3 < l45 = 3, (4, 6) λ 6 λ4 = > l 46 , atunci λ 6 = λ 4 + l46 = 10 + 3 = 13 , (5, 3) λ 3 λ5 = 5 7 = 2 < l53 = 2, (5, 4) λ 4 λ5 = 10 7 = 3 > l54 = 1, atunci λ 4 = λ 5 + l54 = 7 + 1 = 8, (5, 6) λ 6 λ5 = 13 7 = 5 > l56 = 4, atunci λ 6 = λ 5 + l56 = 7 + 4 = 11. Iterat¸ia 2. Se reia pasul 1. (1, 2) λ 2 λ1 = 2 = l 12 , (1, 3) λ 3 λ1 = 5 < l13 = 8, (2, 1) λ 1 λ2 = 2 < l21 = 2, (2, 3) λ 3 λ2 = 3 = l 23 , (2, 4) λ 4 λ2 = 6 < l24 = 8, (3, 1) λ 1 λ3 = 5 < l31 = 8, (3, 2) λ 2 λ3 = 3 < l32 = 4, (3, 4) λ 4 λ3 = 3 < l34 = 5, (3, 5) λ 5 λ3 = 2 = l 35 , (4, 2) λ 2 λ4 = 6 < l42 = 5,
−
− − − − − − − − − − − − − − − − − − − − − − − − − −
∞ ∞ − − ∞ − − − ∞− − − − ∞ − − − − − − −
−
− − ∞ − − − −
64
TEORIA GRAFURILOR
− − − − − −
− − −
(4, 3) λ 3 λ4 = 3 < l43 = 5, (4, 5) λ 5 λ4 = 1 < l45 = 3, (4, 6) λ 6 λ4 = 3 = l 46 , (5, 3) λ 3 λ5 = 2 < l53 = 2, (5, 4) λ 4 λ5 = 1 = l 54 , (5, 6) λ 6 λ5 = 4 = l 56 . ˆIn aceast˘a iterat¸ie valorile variabilelor λ j nu s-au modificat. Aceasta ˆınseamn˘ a c˘ a algoritmul s-a terminat, iar drumurile minime ˆıntre 1 ¸si 6 sunt date de arcele (i, j) care realizeaz˘a egalit˘ a¸tile λ j λi = lij . Aceste arce au fost marcate cu litere bold ˆın cadrul algoritmului. ˆIn etapa a doua arcele care realizeaz˘a aceste egalit˘a¸ti sunt: (1, 2), (2, 3), (3, 5), (4, 6), (5, 4), (5, 6). Astfel ˆıntre 1 ¸si 6 am dou˘a drumuri minime ¸si anume:
−
µ1 : [1, 2, 3, 5, 4, 6],
l(µ1 ) = 11,
¸si µ2 : [1, 2, 3, 5, 6],
l(µ2 ) = 11.
Exercit¸iul 5.8.2. Se consider˘a graful din figura 5.2. S˘a se determine rutele de cost minim de la fiecare nod la nodul 6.
Figura 5.2: Graf orientat. Rezolvare. Pentru rezolvarea problemei aplic˘am algoritmul Bellman-Kalaba. Init¸ializare: (0)
vi
(0)
= vi6 ,
v6 = 0.
i = 1, 2, 3, 4, 5
65
APLICAT ¸ II
Se scriu aceste valori ˆın linia v (0) a tabelului 5.2. Deci, coloana 6 este transpus˘ a ˆın (0) linia de ˆınceput 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 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 elementele 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, ∞ + 1, 2 + ∞, 8 + 3, 0 + ∞} = 11, (1) succ1 = {5}, (0)
(0)
(0)
(0)
v2 = min v1 + v21 , v3 + v23 , v4 + v24 , v5 + v25 , v6 + v26 = = min
(1)
{
{∞ + 3, ∞ + 5, 2 + 8, 8 + ∞, 0 + ∞} = 10, (1) succ2 = {4}, (0)
(0)
(0)
(0)
v3 = min v1 + v31 , v2 + v32 , v4 + v34 , v5 + v35 , v6 + v36 = = min
(1)
{
{∞ + 1, ∞ + 5, 2 + ∞, 2 + 8, 0 + ∞} = 10, (1) succ3 = {5}, (0)
(0)
(0)
(0)
v4 = min v1 + v41 , v2 + v42 , v3 + v43 , v5 + v45 , v6 + v46 = = min
{
{∞ + ∞, ∞ + ∞, ∞ + ∞, 8 + 3, 0 + 2} = 2,
66
TEORIA GRAFURILOR (1)
succ4 = 6 , (1)
{
(0)
(0)
{}
(0)
(0)
(0)
}
(1)
}
(1)
}
(1)
}
(1)
}
(1)
}
v5 = min v1 + v51 , v2 + v52 , v3 + v53 , v4 + v54 , v6 + v56 = = min
{∞ + 3, ∞ + ∞, ∞ + ∞, 2 + 4, 0 + 8} = 6, (1) succ5 = {4}, (1)
v6 = 0. PASUL 2. Se calculeaz˘a elementele liniei v (2) . (2)
{
(1)
{
(1)
{
(1)
(1)
(1)
(1)
v1 = min v2 + v12 , v3 + v13 , v4 + v14 , v5 + v15 , v6 + v16 =
{
∞, 6 + 3, 0 + ∞} = 9, (2) succ1 = {5},
= min 10 + 3, 10 + 1, 2 +
(2)
(1)
(1)
(1)
v2 = min v1 + v21 , v3 + v23 , v4 + v24 , v5 + v25 , v6 + v26 =
{
∞, 0 + ∞} = 10, (2) succ2 = {4},
= min 11 + 3, 10 + 5, 2 + 8, 6 +
(2)
(1)
(1)
(1)
v3 = min v1 + v31 , v2 + v32 , v4 + v34 , v5 + v35 , v6 + v36 = = min 11 + 1, 10 + 5, 2 +
{
(2)
∞, 6 + 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, 0 + 2} = 2, (2) succ4 = {6}, (1)
(1)
(1)
(1)
v5 = min v1 + v51 , v2 + v52 , v3 + v53 , v4 + v54 , v6 + v56 =
{
= min 11 + 3, 10 +
∞, 10 + ∞, 2 + 4, 0 + 8} = 6, (2) succ5 = {4}, (2)
v6 = 0.
67
APLICAT ¸ II PASUL 3. Se calculeaz˘a elementele 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, 8 + 1, 2 +
∞, 6 + 3, 0 + ∞} = 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, 8 + 5, 2 + 8, 6 +
{
∞, 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, 10 + 5, 2 +
∞, 6 + 2, 0 + ∞} = 8, (3)
succ3 = 5 ,
{}
(3)
(2) (2) (2) { (2) = min{9 + ∞, 10 + ∞, 8 + ∞, 6 + 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, 10 +
∞, 8 + ∞, 2 + 4, 0 + 8} = 6, (3)
{}
succ5 = 4 , (3)
v6 = 0. (2)
(3)
Se observ˘a c˘a vi = v i , i = 1, . . . , 6, ceea ce ˆınseamn˘a c˘a algoritmul s-a terminat. (3) Elementele vi sunt valorile minimale ale drumurilor de la fiecare vˆarf i la nodul final 6. Cu ajutorul liniei succ(3) preciz˘ am drumurile de la fiecare nod i la nodul final 6, prin considerarea arcelor date de nodurile i ¸si succesoarele acestora. ˆIn cazul nostru avem arcele: (1, 3), (1, 5), (2, 4), (3, 5), (4, 6), (5, 4). Astfel de la nodul 1 la nodul final 6 avem dou˘a drumuri ¸si anume: µ1 = [1, 3, 5, 4, 6], µ2 = [1, 5, 4, 6] ambele (3) au valoarea egal˘ a cu v 1 = 9.
68
TEORIA GRAFURILOR
Exercit¸iul 5.8.3. Posibilit˘ a¸tile de comunicare ˆıntre localit˘a¸t ile 1-6 sunt reprezentate prin graful din figura 5.3, unde fiec˘arei muchii i se atribuie lungimea tronsonului respectiv. Se cere drumul de lungime minim˘a ˆıntre 2 ¸si toate celelalte noduri ale grafului precum ¸si valoarea acestui drum.
Figura 5.3: Graf orientat. Rezolvare . Exemplu: ˆıntre 2 ¸si 4 exist˘ a trei drumuri minime ¸si anume: µ1 : [2, 1, 5, 3, 4], l(µ1 ) = 11a, µ2 : [2, 1, 5, 3, 6, 4], l(µ2 ) = 11a, ¸si µ 3 : [2, 1, 5, 6, 4], l(µ2 ) = 11a. Exercit¸iul 5.8.4. Posibilit˘ a¸tile de comunicare ˆıntre localit˘a¸t ile 1-4 sunt reprezentate prin graful din figura 5.4, unde fiec˘arei muchii i se atribuie lungimea tronsonului respectiv. Se cere drumul de lungime minim˘a ˆıntre 1 ¸si toate celelalte noduri ale grafului precum ¸si valoarea acestui drum.
Figura 5.4: Graf orientat. Rezolvare. Se aplic˘a algoritmul lui Ford. Init¸ializare.
69
APLICAT ¸ II TABELUL 5.4
j 1 2 3 4
λ j Init¸ial λ1 0 λ2 λ3 λ4
∞ ∞ ∞
Iterat¸ia 1 0 2 5 3
Iterat¸ia 1. Pentru fiecare arc (i, j) care verific˘a relat¸ia λ j λ j = λ i + lij .
− λ1 = ∞ > l12 ⇒ λ2 = λ1 + l12 = 2. (1, 4) : λ 4 − λ1 = ∞ > l41 ⇒ λ4 = λ 1 + l14 = 3. (2, 1) : λ 2 − λ1 = −2 < 2. (2, 3) : λ 3 − λ2 = ∞ > l23 ⇒ λ3 = λ 2 + l23 = 5. (2, 4) : λ 4 − λ2 = 1 < l24 . (3, 2) : λ 2 − λ3 = −3 < l32 . (3, 4) : λ 4 − λ3 = −2 < l34 . (4, 2) : λ 2 − λ4 = −1 < l42 . (4, 3) : λ 3 − λ4 = 2 < l43 .
− λi > lij reactualiz˘am
(1, 2) : λ 2
Iterat¸ia 2. Pentru fiecare arc (i, j) care verific˘a relat¸ia λ j λ j = λ i + lij .
− λ1 = 2 = l12. (1, 4) : λ 4 − λ1 = 3 = l 41 . (2, 1) : λ 2 − λ1 = −2 < l21 . (2, 3) : λ 3 − λ2 = 3 = l 23 . (2, 4) : λ 4 − λ2 = 1 = l 24 . (3, 2) : λ 2 − λ3 = −3 < l32 . (3, 4) : λ 4 − λ3 = −2 < l34 . (4, 2) : λ 2 − λ4 = −1 < l42 . (4, 3) : λ 3 − λ4 = 2 < l43 .
− λi > lij reactualiz˘am
(1, 2) : λ 2
Drumurile de lungime minim˘a ˆıntre nodul 1 ¸si celelalte noduri ale grafului se reconstituie din figura 5.5. Drumul de lungime minim˘ a dintre nodul 1 ¸si nodul 3 este [1, 2, 3] ¸si are valoarea 5.
70
TEORIA GRAFURILOR
Figura 5.5: Drumurile optime ˆıntre nodul 1 ¸si celelalte noduri ale grafului.
Exercit¸iul 5.8.5. Se consider˘a graful din figura 5.6. Numerele de pe muchii reprezint˘ a distant¸a dintre noduri. S˘a se determine rutele cele mai scurte ¸si lungimile lor de la fiecare nod la nodul 1.
Figura 5.6: Graf orientat.
Rezolvare. Se aplic˘a algoritmul Bellman-Kalaba. ˆIn final rutele cele mai scurte de la celelalte noduri ale grafului la nodul 1 se reconstituie din arcele din figura 5.7.
71
APLICAT ¸ II
Figura 5.7: Reconstruct¸ia drumurilor optime care ajung ˆın nodul 1. Exercit¸iul 5.8.6. Pentru graful din figura 5.8 determinat¸i drumurile de lungime minim˘ a ˆıntre nodul 0 ¸si 7. Care este valoarea minim˘a a acestui drum?
Figura 5.8: Graf orientat. Rezolvare. Se aplic˘a algoritmul Bellman-Kalaba sau Ford. Drumul de lungime minim˘ a dintre nodul 0 ¸si 7 obt¸inut prin ambele metode este urm˘atorul [0, 1, 3, 5, 7]. Valoarea minim˘ a a acestui drum este 37. Exercit¸iul 5.8.7. Se consider˘a graful din 5.9. S˘ a se pun˘a ˆın evident¸a˘ urm˘atoarele elemente: i) matricea arcelor (sau matricea conexiunilor directe); ii) matricea drumurilor; iii) puterea de atingere a fiec˘arui vˆarf; iv) dac˘a graful are circuite; iv) determinat¸i drumurile hamiltoniene din graf.
72
TEORIA GRAFURILOR
Figura 5.9: Graf orientat. Rezolvare. i) Matricea conexiunilor directe este:
A =
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 vˆarf al grafului sunt: p(x1 ) = 4, p(x2 ) = 4, p(x3 ) = 4, p(x4 ) = 0. iv) Graful are circuite, de exemplu x1 , x2 , x1 este un circuit, deci algoritmul lui Chen nu se poate aplica. v) Graful avˆ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 posibile:
K(0) =
∗ ∗ ∗
x1
x2
∗ x4 ∗ x3 x 4 x2 ∗ ∗ ∗ ∗ ∗
.
.
73
APLICAT ¸ II PASUL 2. Determin˘am drumurile formate din dou˘a arce din matricea: 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 = K (2) &K(0) :
K(3)
∗ (x2 , x1 , x2 , x1 ) ∗ ∗
(x1 , x2 , x1 , x2 ) (x2 , x1 , x2 , x3 ) (x3 , x2 , x1 , x2 ) sau (x3 , x2 , x3 , x2 )
∗
∗ ∗ ∗ ∗
(x1 , x2 , x4 ) (x2 , x1 , x2 , x4 ) (x3 , x2 , x1 , x4 )
∗
Algoritmul se opre¸ste pentru c˘a drumul hamiltonian (dac˘ a exist˘a) are lungimea 3 = nr. noduri 1. Deci drumul hamiltonian este (x3 , x2 , x1 , x4 ).
−
Exercit¸iul 5.8.8. S˘a se g˘aseasc˘a drumurile hamiltoniene din graful din figura 5.10.
Figura 5.10: Graf orientat. Rezolvare. Se aplic˘a algoritmul lui Kaufmann ¸si se obt¸in drumurile hamiltoniene:
µ1 = µ2 = µ3 = µ4 = µ5 =
[1, 2, 3, 4, 6, 5], [2, 3, 1, 6, 5, 4], [3, 1, 2, 5, 4, 6], [3, 1, 6, 2, 5, 4], [5, 4, 6, 2, 3, 1].
74
TEORIA GRAFURILOR
Capitolul 6
PROBLEME DE TRANSPORT 6.1. 6.1.1.
Problema clasic˘ a de transport Formularea problemei
Problema de transport ˆın forma standard are forma urm˘atoare:
≤ ≤ ≤ ≤ ≥ ≤ ≤ ≤ ≤ ≥ ≤ ≤ ≥ ≤ ≤ inf n
j=1 m i=1
xij
unde:
m
n
i=1 j=1
cij xij ,
xij = a i , 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
(6.1)
n.
(6.2)
b j .
Teorema 6.1.1. Condit ¸ia necesar˘ a ¸si suficient˘ 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 ˆındeplinite.
75
76
PROBLEME DE TRANSPORT
6.1.2.
Algoritmul de transport (adaptarea algoritmului simplex)
Fundamente teoretice Problema de transport se poate scrie ˆın forma matriceal˘a:
inf ct x Ax = b x 0
≥
Unei probleme de transport ˆıi asociem un tabel de transport care cont¸ine datele numerice ale problemei de transport. Tabelul de transport 6.1 are m linii ¸si n coloane. Fiecare celul˘a (i, j), 1 i m, 1 j n, a acestui tabel poate fi asociat˘a cu costul unitar cij , cu necunoscut˘ a xij , cu valoarea xij a variabilei xij dintr-o anumit˘ a solut¸ie (xij ) a sistemului de ecuat¸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 o coloan˘a suplimentar˘a ˆın care sunt trecute ˆın mod obi¸snuit cantit˘a¸tile disponibile ai , 1 i m, ¸si o linie suplimentar˘a ˆın care sunt trecute cererile b j , 1 j n. ˆIn celula (i, j) este trecut costul unitar c ij ; dac˘a dorim s˘a scriem ¸si valoarea x ij a variabilei x ij , vom ˆımp˘art¸i celula (i, j) printr-o diagonal˘ a ˆın dou˘a p˘art¸i ¸si vom scrie c ij ˆın partea superioar˘a, iar x ijˆın partea inferioar˘a. Tabelului de transport T ˆıi asociem un graf neorientat Γ avˆ and drept noduri mult¸imea celulelor (i, j), 1 i m, 1 j n, ale tabelui de transport T ¸si drept muchii mult¸imile formate din dou˘a celule situate ˆıntr-o aceea¸si linie sau coloan˘a a lui T . ˆIn cele ce urmeaz˘a vom considera numai acele subgrafuri part¸iale ale lui Γ care se obt¸in prin unirea cu muchii a celulelor vecine, adic˘a a celulelor situate pe o aceea¸si linie sau coloan˘a a lui T ˆıntre care nu exist˘a alte celule din mult¸imea de noduri ale subgrafului. Un subgraf part¸ial de acest tip al lui Γ se nume¸ste π-graf . Un π-graf care este un lant¸ (ciclu) elementar avˆand cel mult o muchie ˆın fiecare linie sau coloan˘a a tabelului de transport T va fi numit µ-lant ¸ sau µ-ciclu .
≤ ≤
≤ ≤
≤ ≤
≤ ≤
Algoritmul de transport PASUL 0. Se determin˘a o solut¸ie de baz˘a admisibil˘ a xij (vom vedea ulterior cum anume) corespunz˘ 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˘a sistemul de ecuat¸ii: ¸ii:
∀
ui + v j = c ij , (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 z valorile z ij cij = u i + v j cij pentru (i, j ) (mult¸imea ¸imea celulelor care nu sunt ˆın ın baz˘a). a). Dac˘ a z ij cij 0 pentru toate celulele (i, ( i, j ) , ne oprim (STOP (STOP): ): solut¸ia ¸ia de baz˘ a x ij 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 } = z sk − csk
¸si si se s e trece tr ece la pasul urm˘ator. ator. PASUL 2. Se determin˘a µ-ciclul µ -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 criteri cu criteriul ul 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 µ ın µ-ciclul -ciclul determinat anterior. Se trece apoi la pasul urm˘ator. ∼ PASUL 3. Se consider˘a matricea B obt o bt¸inut˘ ¸inut˘ a din B din B prin ˆınlocuirea ınlo cuirea coloanei coloa nei a a rt ∼ ∼ 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 µ ın µ ciclu, xij + x rt , dac˘a (i, j ) are rang impar ˆın µ ın µ ciclu, xij , da d ac˘a (i, j ) nu apart¸ine µ ¸ine µ ciclului.
−
−
−
∼
−
∼
Se trece apoi la pasul 1 ˆınlocuind B ınlocuind B cu B ¸si si solu so lut¸ia x ¸t ia x ij 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 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 rang j ¸si se ˆınlo cuie¸ste st e a i cu a cu a i = a i xij . Dac˘a x ij = a i = 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 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 ii) Metoda costului minim . La fiecar fiecaree pas se alege alege celula celula (i, ( i, j ) corespunz˘atoare atoare costului minim c minim c ij 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 M 1,...,m ¸si si o mult mu lt ¸ime de indici N 1,...,n ast a stfe fell ˆı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 cu cerere excedentar˘ a este este urm˘atoarea: atoarea:
≤ ≤ ≤ ≤ ≤ ≥ ≤ ≤ ≤ ≤ ≥ ≤ ≤ ≥ ≤ ≤ ≤ − inf n
j=1 j =1 m i=1
m
i=1 j=1 j =1
cij xij ,
xij = a i , 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˘ cu ofert˘ a excedentar˘ a este 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 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 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 = a i , 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 x ij 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 x variabila x ij 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, r , 1 r m, ˆ m, ˆın ı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 b ¸tile b s ¸si si bk ; evident, avem a avem a r = b s + bk . Algoritmul care transform˘a (xij ) ˆın programul de baz˘a (xij ) este urm˘atorul: atorul: PASUL 1. Se adaug˘a la linia r 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 x atoare x0s ¸si x si x 0k sunt b sunt b s respectiv bk . Se ˆınlocuiesc costurile unitare init¸iale c ¸iale c ij , 1 i m, 1 j n, cu c cu c ij = 0 ¸si si se atribuie celulelor nou introduse costuri egale cu unitatea, adic˘a c r0 = c 0s = c = c 0k = 1. 1. PASUL 2. Se rezolv˘a sistemul de ecuat¸ii: ¸ii:
{ {
} }
≤ ≤
≤ ≤
ur = 1, 1, vs = 1, vk = 1, 1, ui + v j = c ij , (i, j )
≤ ≤
∈ B, i = r, j = s, s, k.
PASUL 3. Se S e 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 = x 0s = x 0k = 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 ∗ = d ij. (i, j ) pentru care x care x ij
− ≥
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 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 init¸ial˘ a de baz˘a determinat˘a prin metoda colt¸ului de N-V este: x11 = min 5, 10 = 5, elimin˘am coloana 1, x12 = min 3, 5 = 3, elimin˘am coloana 2, x13 = min 7, 2 = 2, elimin˘am linia 1, x23 = min 5, 5 = 5. Costul aferent acestei solut¸ii este C = 28.
{ } { } { } { }
Figura 6.1: Solut¸ia init¸ial˘ a ¸si marcarea celulelor din µ-ciclu. Iterat¸ia 1, PASUL 1. i) Rezolv˘am sistemul (o solut¸ie particular˘a care se obt¸ine setˆand u 1 = 0): ui + v j = c ij (i, j) ,
∀
∈B
Solut¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a se trec elementele u i , iar pe orizontal˘a se trec elementele v j ). ii) Calcul˘am elementele:
− cij = ui + v j − cij ∀(i, j) ∈ R,
zij
care se trec ˆın colt¸urile din dreapta sus ale fiec˘arei celule secundare. iii) Calcul˘am (criteriul de optim): max (zij
(i,j)
∈R
− cij ) = z22 − c22 = 2 > 0
Criteriul de optim nu este ˆındeplinit, deci celula (2, 2) intr˘a ˆın baz˘a. Iterat¸ia 1, PASUL 2. Pentru a determina care celul˘a iese din baz˘a determin˘am µ-ciclul format din celula (2, 2) cu o parte a celulelor din baz˘a: (2, 2), (2, 3)∗ , (1, 3), (1, 2)∗ , (2, 2). Se adopt˘ a un sens de parcurs al acestui µ-ciclu marcˆandu-se cu par. Condit¸ia de ie¸sire din baz˘a:
∗ celulele de rang
84
PROBLEME DE TRANSPORT
min xij =x12 ,
∗
deci celula (1, 2) iese din baz˘a. Iterat¸ia 1, PASUL 3. Aplicˆand formulele de schimbare a bazei obt¸inem noua solut¸ie. Costul corespunz˘ator acesteia este: C 1 = 22, care este mai mic decˆat costul anterior C 0 . Repet˘am pa¸sii anteriori: Iterat¸ia 2, PASUL 1. i) Rezolv˘am sistemul (o solut¸ie particular˘a care se obt¸ine setˆand u 1 = 0): ui + v j = c ij (i, j) ,
∀
∈B
Solut¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a se trec elementele u i , iar pe orizontal˘a se trec elementele v j ). ii) Calcul˘am elementele:
− cij = ui + v j − cij ∀(i, j) ∈ R,
zij
care se trec ˆın colt¸urile din dreapta sus ale fiec˘arei celule secundare.
Figura 6.2: Solut¸ia final˘ a. iii) Calcul˘am (criteriul de optim):
− cij ) = z12 − c12 = −2 < 0,
max (zij
(i,j)
∈R
solut¸ia este optim˘a, iar aceasta este: x11 = 5, x13 = 5, x22 = 3, x23 = 2. Exercit¸iul 6.1.3. S˘a se g˘aseasc˘ a o solut¸ie de baz˘a pentru problema de transport echilibrat˘a ale c˘arei date sunt prezentate ˆın tabelul 6.4. G˘asit¸i valoarea corespunz˘atoare a funct¸iei obiectiv. G˘asit¸i solut¸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β = 5β +λ de unde λ = 10β. PASUL 0. Determin˘am o solut¸ie de baz˘a prin metoda costului minim. Deci: x31 = min β ; 10β = β, elimin˘am coloana 1 din tabelul de transport, x14 = min 7β ; 2β = 2β, elimin˘am linia 1 din tabelul de transport, x23 = min β ; 3β = β, elimin˘am coloana 3 din tabelul de transport, x34 = min 4β ; 9β = 4β, elimin˘am coloana 4 din tabelul de transport, x32 = min 7β ; 5β = 5β, elimin˘am linia 3 din tabelul de transport, x22 = min 2β ; 2β = 2β, elimin˘am coloana 1 din tabelul de transport. Costul de transport corespunz˘ ator acestei solut¸ii este:
{ { { { { {
} } } } } }
C 0 = αβ + 2αβ + 2αβ + 12αβ + 20αβ + 12αβ = 49αβ. Iterat¸ia 1, PASUL 1. i) Rezolv˘am sistemul (o solut¸ie particular˘a care se obt¸ine setˆand u 1 = 0): ui + v j = c ij (i, j) ,
∀
∈B
Solut¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a se trec elementele u i , iar pe orizontal˘a se trec elementele v j ). ii) Calcul˘am elementele:
− cij = ui + v j − cij ∀(i, j) ∈ R,
zij
care se trec ˆın colt¸urile din dreapta sus ale fiec˘arei celule secundare. iii) Calcul˘am (criteriul de optim): max (zij
(i,j)
∈R
− cij ) = z24 − c24 = α > 0.
Criteriul de optim nu este ˆındeplinit, deci celula (2, 4) intr˘a ˆın baz˘a. Iterat¸ia 1, PASUL 2. Pentru a determina care celul˘a iese din baz˘a determin˘am µ-ciclul format din celula (2, 4) cu o parte a celulelor din baz˘a: (2, 4), (3, 4)∗ , (3, 2), (2, 2)∗ , (2, 4).
86
PROBLEME DE TRANSPORT
Figura 6.3: µ-ciclul format de celula (2,4) cu o parte a celulelor din baz˘a, celulele de rang par sunt marcate cu .
∗
Se adopt˘ a un sens de parcurs al acestui µ-ciclu marcˆandu-se cu par. Condit¸ia de ie¸sire din baz˘a:
∗ celulele de rang
min xij =x24 ,
∗
deci celula (2, 2) iese din baz˘a. Iterat¸ia 1, PASUL 3. Aplicˆand formulele de schimbare a bazei obt¸inem noua solut¸ie. Costul corespunz˘ator acesteia este: C 1 = 47αβ, care este mai mic decˆat costul anterior C 0 . Repet˘am pa¸sii anteriori: Iterat¸ia 2, PASUL 1. i) Rezolv˘am sistemul (o solut¸ie particular˘a care se obt¸ine setˆand u 1 = 0): ui + v j = c ij (i, j) ,
∀
∈B
Solut¸iile acestui sistem se trec pe marginea tabelului de transport (pe vertical˘a se trec elementele u i , iar pe orizontal˘a se trec elementele v j ).
Figura 6.4: Noua solut¸ie de baz˘a. Aceasta este optim˘a.
˘ DE TRANSPORT PROBLEMA CLASIC A
87
ii) Calcul˘am elementele: zij
− cij = ui + v j − cij ∀(i, j) ∈ R,
care se trec ˆın colt¸urile din dreapta sus ale fiec˘arei celule secundare. iii) Calcul˘am (criteriul de optim):
− cij ) = z21 − c21 = −α < 0,
max (zij
(i,j)
∈R
solut¸ia este optim˘a, iar aceasta este:
Costul minim va fi 47αβ.
x14 = 2β, x23 = β, x14 = 2β, x31 = β, x32 = 7β, x34 = 2β.
Exercit¸iul 6.1.4. S˘a se g˘aseasc˘ a, prin metoda colt¸ului de N-V ¸si prin metoda costului minim, o solut¸ie de baz˘a pentru problema de transport ale c˘arei date sunt prezentate ˆın tabelul 6.5. G˘ asit¸i pentru aceaste solut¸ii valorile corespunz˘atoare ale funct¸iilor obiectiv. Care solut¸ie este mai bun˘a ¸si de ce? G˘asit¸i solut¸ia optim˘ a a problemei. TABELUL 6.5
8 4 1 5
3 1 9 10
5 6 4 20
2 7 3 15
10 15 25
Exercit¸iul 6.1.5. S˘a se g˘aseasc˘ a o solut¸ie de baz˘a pentru problema de transport echilibrat˘a ale c˘arei date sunt prezentate ˆın tabelul 6.6. G˘asit¸i valoarea corespunz˘atoare a funct¸iei obiectiv. G˘asit¸i solut¸ia optim˘ a a problemei. TABELUL 6.6
8α 3α 5α 2α 10β 4α α 6α 7α 15β α 9α 4α 3α λ 5β 10β 20β 15β
88
PROBLEME DE TRANSPORT
R˘ aspuns . Se determin˘a λ = 25β. Valoarea minim˘ a a costului este 140αβ, iar solut¸ia optim˘ a este: x14 = 10β, x22 = 10β, x23 = 5β, x31 = 5β, x33 = = 15β, x34 = 5β. Exercit¸iul 6.1.6. S˘a se g˘aseasc˘ a o solut¸ie de baz˘a pentru problema de transport ale carei date sunt prezentate ˆın tabelul 6.7. Costurile unitare de penalizare pentru nesatisfacerea cererii sunt egale cu 2, iar costurile de stocare sunt nule. G˘asit¸i valoarea corespunz˘atoare a funct¸iei obiectiv. G˘asit¸i solut¸ia optim˘ a a problemei. TABELUL 6.7
2 3 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 este mai mare ca oferta). Vom introduce un depozit fictiv ˆın care avem 10 λ. Noul tabel de transport va fi tabelul 6.8:
−
TABELUL 6.8
2 3 1 2 1
3 6 4 2 7
4 2 5 2 1
1 4 3 2 6
2 3 λ 10
−λ
Noua problem˘a de transport este echilibrat˘a ¸si se rezolv˘a cu algoritmul cunoscut. Pentru λ = 10 problema este o problem˘a de transport echilibrat˘a a c˘arei rezolvare se face cu ajutorul algoritmului cunoscut. Pentru λ > 10 problema este o problem˘a de transport cu ofert˘a excedentar˘ a (oferta este mai mare ca cererea). Vom introduce un consumator fictiv cu o cerere de λ 10. Noul tabel de transport va fi tabelul 6.9:
−
TABELUL 6.9
2 3 1 1
3 6 4 7
4 2 5 1
1 4 3 6
0 0 0 λ
2 3 λ
− 10
Noua problem˘a de transport este echilibrat˘a ¸si se rezolv˘a cu algoritmul cunoscut.
89
FLUX MAXIM INTR-O RET ¸ EA DE TRANSPORT
Exercit¸iul 6.1.7. Pentru ce valoare a costului unitar c problema ale c˘arei date sunt prezentate ˆın tabelul 6.10 are optimul egal cu 140? TABELUL 6.10
8 4 1 5
6.2. 6.2.1.
3 1 9 10
5 c 4 20
2 7 3 15
10 15 25
Flux maxim intr-o ret¸ea de transport Ret¸ele de transport
ˆIn acest paragraf vom reveni la problema de transport. Aceasta va fi abordat˘ a din perspectiva teoriei grafurilor. Definit¸ia 6.2.1. O ret¸ea de transport flux este un graf orientat G = (X, Γ) ˆın care fiecare muchie (u, v) Γ are o capacitate c(u, v) 0. Dac˘a (u, v) / Γ, atunci c(u, v) = 0.
∈
≥
∈
Fie s nodul surs˘a ¸si t nodul destinat¸ie. Definit¸ia 6.2.2. Fluxul ϕ : X X R este o funct¸ie real˘a ce satisface urm˘atoarele propriet˘ a¸ti: i) restrict ¸ii de capacitate : pentru orice u, v X, ϕ(u, v) c(u, v) (un arc care realizeaz˘ a egalitate se nume¸ste arc saturat ); ii) antisimetrie : pentru orice u, v X, ϕ(u, v) = ϕ(v, u); iii) conservarea fluxului : pentru orice u X s, t are loc:
× →
∈
∈
≤
− ∈ −{ }
ϕ(u, v) = 0.
v X
∈
Cantitatea ϕ(u, v), poate fi pozitiv˘a sau negativ˘a ¸si se nume¸ste fluxul de ret ¸ea de la u la v . Definit¸ia 6.2.3. Valoarea fluxului Φ este definit˘a ca:
|Φ | =
ϕ(s, v)
v X
∈
sau, cu alte cuvinte, valoarea fluxului este fluxul total de la surs˘a.
90
PROBLEME DE TRANSPORT
Problema fluxului maxim ˆıntr-un graf G, de la un nod surs˘a s la un nod destinat¸ie t, ˆıntr-o ret¸ea de transport, const˘a ˆın determinarea unui flux maxim de la s la t.
6.2.2.
Algoritmul Ford-Fulkerson
ˆIn acest paragraf prezent˘ am metoda Ford-Fulkerson de rezolvare a problemei fluxului maxim, respectiv a fluxului minim. Este vorba mai degrab˘a de o metod˘a decˆat de un algoritm pentru c˘a suport˘a mai multe implement˘ari cu timpi de rulare diferit¸i. Metoda Ford-Fulkerson face apel la trei idei importante care sunt relevante pentru multe dintre problemele de grafuri: flux compatibil, drum ¸si t˘aietur˘a de capacitate minim˘ a. Algoritmul de rezolvare a problemei de flux maxim PASUL 1. ˆIn cadrul acestei prime etape se urm˘are¸ste construirea unui flux compatibil. Pentru aceasta se consider˘ a drumurile nesaturate de la sursa s la destinat¸ia t. Fie µi un drum nesaturat. Fluxul propagat de-a lungul acestui drum este dat de: ϕi = min [c(u, v) ϕ(u, v)].
−
(u,v) µi
∈
Vom obt¸ine un nou flux care satureaz˘a cel put¸in un arc cu relat¸ia: ϕ(u, v) =
∈ ∈
ϕ(u, v) + ϕi ϕ(u, v)
cˆand (u, v) µi cˆand (u, v) / µi .
Dac˘ a ret¸eaua de transport cont¸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 ˆıntr-un singur sens. Astfel, odat˘a cu identificarea unui drum se orienteaz˘ a ¸si rutele. Pe fiecare arc se ˆınsumeaz˘a fluxurile propagate. Fluxul propagat ˆın ret¸ea este egal cu suma fluxurilor de-a lungul drumurilor identificate: Φ= ϕi .
i
PASUL 2. ˆIn cadrul etapei a doua se determin˘a fluxul de valoare maxim˘a cu ajutorul urm˘ atorului procedeu de marcare : i) se marcheaz˘a intrarea s cu [+]; ii) dac˘a nodul i este marcat ¸si (i, j) Γ cu ϕ(i, j) < c(i, j), atunci nodul j se marcheaz˘ a cu [+i]; iii) dac˘ a nodul j este marcat ¸si (i, j) Γ cu ϕ(i, j) > 0, atunci nodul i se marcheaz˘ a cu [ j];
∈
−
∈
91
FLUX MAXIM INTR-O RET ¸ EA DE TRANSPORT
iv) dac˘a i este un nod marcat ¸si (i, j) este arc saturat, atunci nodul j nu se marcheaz˘ a. Dac˘ a se reu¸se¸ste ca ie¸sirea t s˘a fie marcat˘a, atunci exist˘a un drum sau lant¸ de la s la t. De-a lungul acestui drum sau lant¸ notat cu µ k se propag˘a un flux dat de relat¸ia: ϕk = min( min (c(u, v) (u,v) B
∈
min ϕ(u, v)), − ϕ(u, v)), (u,v) ∈C
ϕk > 0,
unde B este mult¸imea arcelor pe care se execut˘a marcaj de tip ii), iar C este mult¸imea arcelor pe care se execut˘a marcaj de tip iii). Se obt¸ine un nou flux ˆımbun˘at˘ a¸t it, cu relat¸ia: ϕ(u, v) =
∈ ∈
ϕ(u, v) + ϕk ϕ(u, v) ϕk ϕ(u, v)
cˆand (u, v) B cˆand (u, v) C ˆın rest.
−
Dac˘ a nu se mai poate marca nodul de ie¸sire t al ret¸elei, atunci algoritmul s-a terminat. Suma fluxurilor propagate de-a lungul drumurilor ¸si lant¸urilor care unesc nodul de intrare s cu nodul de ie¸sire t, reprezint˘a fluxul de valoare maxim˘a ˆın ret¸eaua de transport. PASUL 3. Se determin˘a t˘ aietura de capacitate minim˘ a . Fie A mult¸imea nodurilor nemarcate ale ret¸elei, conform procedeului de marcare din pasul 2. Mult¸imea arcelor (i, j) cu i / A ¸si j A (incidente spre interior mult¸imii A) notat˘ a cu A se va numi t˘ aietur˘ a de capacitate minim˘ a ˆın graf . Aceasta reprezint˘a o granit¸a˘ ˆıntre nodurile marcate ¸si nodurile nemarcate. Capacitatea t˘ aieturii se noteaz˘a c( A ) ¸si se define¸ste ca fiind suma capacitatilor arcelor sale: c( A) = c(u, v).
∈
∪ ∪
∪
∈
(u,v)
∈∪A
Conform teoremei Ford-Fulkerson , ˆıntr-o ret¸ea de transport dat˘a, fluxul de valoare maxim˘ a este egal cu valoarea t˘ aieturii de valoare minim˘ a , adic˘a:
∪
max Φ(ϕ) = min c( A). ϕ
s / A,t A
∈ ∈
T˘ aietura de capacitate minim˘a reprezint˘a ¸strangularea ˆın graf. Arcele ei fiind saturate, ˆınseamn˘ a c˘a pentru m˘arirea fluxului propagat trebuie m˘arit˘ a capacitatea unuia sau mai multor arce ale t˘aieturii. Observat ¸ii: i) Operat¸ia de marcare este operat¸ia de decizie asupra optimalitat¸ii. ii) T˘aietura de capacitate minim˘a are dublu rol ¸si anume: -verific˘a rezultatul prin intermediul teoremei Ford-Fulkerson; -indic˘ a locul unde trebuie umblat pentru a m˘ari capacitatea fluxului.
92
PROBLEME DE TRANSPORT Algoritmul de rezolvare a problemei de flux minim
Pentru a obt¸ine un flux de valoare minim˘a se induce ˆın ret¸ea un flux arbitrar cu condit¸ia ϕ(u, v) c(u, v), pentru fiecare arc (u, v). ˆIn vederea determin˘ arii fluxului de valoare minim˘a se consider˘a pentru ˆınceput lant¸ urile de la nodul final t la nodul de ˆınceput s dup˘a urm˘atorul procedeu de marcare: i) nodul final t se marcheaz˘a cu [+t]; ii) dac˘a j este nod marcat, (i, j) arc ¸si ϕ(i, j) > c(i, j), atunci nodul i se marcheaz˘a cu [ j]; iii) dac˘a i este nod marcat ¸si (i, j) arc, atunci nodul j se marcheaz˘a cu [+i]. Dac˘ a se reu¸se¸ste marcarea nodului de ˆınceput s ˆınseamn˘a c˘a s-a g˘asit un lant¸ µ de-a lungul c˘aruia fluxul poate fi diminuat. Dac˘ a B este mult¸imea arcelor din lant¸ul µ din categoria ii) ¸si
≥
−
θ = min [ϕ(u, v) (u,v) B
∈
− c(u, v)],
atunci noul flux diminuat este: ϕ(u, v) =
ϕ(u, v) + θ ϕ(u, v) θ ϕ(u, v)
−
∈ ∈
cˆand (u, v) B cˆ and (u, v) µ, (u, v) / B ˆın rest.
∈
Dac˘ a nu se mai reu¸se¸ste marcarea nodului de ˆınceput s, ˆınseamn˘a c˘a nu mai exist˘a nici un lant¸ de-a lungul c˘aruia fluxul s˘a poat˘ a fi diminuat, deci s-a g˘asit fluxul de valoare minim˘a.
6.2.3.
Problema de transport ca problem˘ a de flux maxim
ˆIn acest paragraf vom vedea c˘a problema clasic˘a de transport se poate modela ca o problem˘ a de flux maxim. Pentru a fixa ideile s˘a presupunem c˘a avem m centre de aprovizionare ¸si n centre de consum (beneficiari), iar transportul se face cu ajutorul unor sisteme limitate pe fiecare direct¸ie d ij . Vom construi un graf orientat de la cele m depozite la cei n beneficiari, valoarea fiec˘arui arc fiind egal˘a cu valoarea dij , un nod de intrare X input ¸si un nod de ie¸sire din ret¸ea X output cu leg˘atur˘ a la fiecare din depozite respectiv beneficiari, valoarea fiec˘arui arc fiind egal˘a cu a i respectiv b j . Problema ce urmeaz˘a a fi rezolvat˘a este o problem˘a de flux maxim.
FLUX MAXIM INTR-O RET ¸ EA DE TRANSPORT
6.2.4.
93
Aplicat¸ii
Exercit¸iul 6.2.1. Un proces economic dispune de o ret¸ea de tranport de genul celei din figura 6.5. Capacit˘a¸t ile de trasport sunt cele indicate pe figur˘a. Care este fluxul maxim propagat ˆın sistem ˆıntre punctele 1 ¸si 9? Care este fluxul de la nodul 3 la 5?
Figura 6.5: Flux ˆıntre dou˘a noduri. R˘ aspuns. Se propag˘a un flux maxim ˆın ret¸eaua de transport de la nodul 1 la nodul 9. Pentru aceasta se genereaz˘a drumuri de la nodul 1 la nodul 9 (rute orientate, ˆın acela¸si sens) care se satureaz˘a. ˆIn identificarea acestor drumuri vom avea grij˘a ca o rut˘a neorientat˘ a s˘a nu fie folosit˘a decˆat ˆıntr-un singur sens. Astfel, se indic˘a ˆın continuare aceste drumuri, precum ¸si fluxul propagat pe fiecare dintre ele. Odat˘a cu identificarea unui drum se orienteaz˘a ¸si rutele. Pe fiecare arc se ˆınsumeaz˘a ¸si fluxurile propagate. Obt¸inem deci drumurile: 10 5 10 10 µ1 = (1 2 6 8 9), ϕ1 = 5. 5 4 6 5 5 µ2 = (1 2 7 6 8 9), ϕ2 = 4. 1 2 3 2 1 1 µ3 = (1 2 3 7 6 8 9), ϕ3 = 1. 8 2 8 µ4 = (1 3 7 9), ϕ4 = 2. 6 5 2 6 µ5 = (1 3 5 7 9), ϕ5 = 2. 4 3 10 µ6 = (1 3 5 9), ϕ6 = 3. 1 5 6 7 µ7 = (1 3 4 5 9), ϕ7 = 1. 10 5 6 µ8 = (1 4 5 9), ϕ8 = 5.
→ → → → → → → →
→ → → → → → → →
→ → → → → → → →
→ → → → → → → →
94
PROBLEME DE TRANSPORT
ˆIn acest moment, toate drumurile de la nodul 1 la nodul 9 cont¸in rute orientate (fig. 6.6) ¸si fiecare drum are cel put¸in o rut˘a saturat˘ a. Fluxul propagat de-a lungul acestor drumuri este egal cu: Φ =
8
i=1
ϕi = 23.
Figura 6.6: Rute orientate. ˆIn etapa urm˘atoare vom aplica procedeul de marcare. Astfel, urm˘ atoarele noduri sunt marcate ca ˆın figura 6.7.
Figura 6.7: Marcarea nodurilor.
95
FLUX MAXIM INTR-O RET ¸ EA DE TRANSPORT
Nodul final 9 nu poate fi marcat, deci fluxul propagat este maxim . Mult¸imea nodurilor nemarcate este: A = 5, 6, 7, 8, 9 , t˘aietura de capacitate minim˘a cuprinde arcele: A= (3, 5), (4, 5), (2, 6), (2, 7), (3, 7) ,
{
∪
{
}
}
∪
cu valoarea capacit˘a¸tii: c( A) = 5 + 6 + 5 + 4 + 3 = 23 . Se observ˘a c˘a valoarea capacit˘ a¸tii t˘aieturii minime este egal˘a cu valoarea maxim˘a a fluxului, ceea ce confirm˘ a, conform teoremei Ford-Fulkerson, c˘ a fluxul este maxim. Prin arcul [3, 5] se propag˘a un flux de 5 fiind la capacitate maxim˘a. Sintaxa MAPLE pentru rezolvarea acestei probleme este: > with(networks) : > new(G) : > addvertex(1, 2, 3, 4, 5, 6, 7, 8, 9, G) : > addedge([ 1, 2 , 1, 3 , 1, 4 , 2, 6 , 2, 7 , 2, 3 , 3, 4 , 3, 7 , 3, 5 , 6, 7 , 6, 8 , 4, 5 , 5, 7 , 5, 9 , 7, 8 , 7, 9 , 8, 9 ]); > weights = [10, 8, 10, 5, 4, 2, 5, 3, 5, 6, 10, 6, 2, 10, 3, 8, 10], G); > flow(G, 1, 9); Orice cantitate suplimentar˘a de flux trebuie s˘a treac˘a prin una sau mai multe arce ale t˘aieturii. S˘a presupunem c˘a se ˆınlocuie¸ste conducta ˆıntre nodurile 2 ¸si 7 de capacitate 4 cu una de capacitate 7. Prin aplicarea procedeului de marcare se obt¸ine lant¸ul din figura 6.8, cu φ = 1.
{ }{ }{ }{ }{ }{ }{ } { }{ }{ }{ }{ }{ }{ }{ }{ }{ }
Figura 6.8: Lant¸ obt¸inut ˆın urma procesului de marcare. Fluxul propagat este conform figurii 6.9. Arcele [2, 3] ¸si [3, 4] nu sunt utilizate.
96
PROBLEME DE TRANSPORT
Figura 6.9: Flux propagat. Observ˘ am ˆın figur˘a c˘a drumul: µ = (1
→4 4 →5 3 →2 2 →2 7 →3 9), ϕ = 2.
Situat¸ia este prezentat˘a ˆın figura 6.10, iar fluxul propagat este egal cu 26.
Figura 6.10: Flux propagat ¸si t˘aietura de capacitate minim˘a. Noua t˘ aietur˘a de capacitatea egal˘ a cu 26, are valoarea minim˘a ¸si cuprinde arcele:
{(1, 2), (3, 2), (3, 7), (3, 5), (4, 5)}
FLUX MAXIM INTR-O RET ¸ EA DE TRANSPORT
97
Exercit¸iul 6.2.2. Se consider˘a ret¸eaua de transport din figura 6.11. Care este fluxul maxim propagat ˆıntre nodurile 1 ¸si 5? (α > 0 parametru real).
Figura 6.11: Fluxul propagat. Este pus˘a ˆın evident¸a˘ t˘ aietura de capacitate minim˘ a. R˘ aspuns. La pasul 1 se genereaz˘a rute orientate de la nodul 1 la nodul 5 care se satureaz˘a. 40α 15α 22α µ1 : 1 2 3 5, ϕ1 = min 40α, 15α, 22α = 15α;
−→ −→ −→ { } 25α 8α µ2 : 1 −→ 2 −→ 5, ϕ2 = min{25α, 8α} = 8α; 17α 12α 12α 7α µ3 : 1 −→ 2 −→ 4 −→ 3 −→ 5, ϕ3 = min{17α, 12α, 12α, 7α} = 7α; 18α 18α µ4 : 1 −→ 4 −→ 5, ϕ4 = min{18α, 18α} = 18α; Fluxul este Φ =
4
i=1
ϕi = 48α.
Pasul 2 const˘a ˆın marcarea nodurilor. Nodul final nu se poate marca, deci fluxul este maxim (fig.6.12). Mult¸imea nodurilor nemarcate este: A = 5 .
{}
Figura 6.12: Nodul final 5 nu poate fi marcat, deci fluxul nu este maxim.
98
PROBLEME DE TRANSPORT
∪
{
}
T˘ aietura de capacitate maxim˘a este: A = (4, 5), (2, 5), (3, 5) , iar capacitatea acesteia este c( A ) = 48α ceea ce confirm˘a, conform teoremei Ford-Fulkerson, c˘a fluxul este maxim. Pentru a m˘ari fluxul trebuie m˘arit˘ a capacitatea unuia sau a mai multor arce ale t˘aieturii de capacitate minim˘a.
∪
Exercit¸iul 6.2.3. Un anume tip de produs este disponibil ˆın trei depozite ˆın cantit˘ a¸tile de 30, 40 respectiv 50 t. Acesta este solicitat ˆın dou˘a centre de consum ˆın cantit˘ a¸t ile de 40 respectiv 80 t. ˆIntre surs˘a ¸si destinat¸ie exist˘a tronsoane directe, iar transportul se face cu mijloace auto cu capacit˘a¸t i limitate (tonaj) conform tabelului 6.11. TABELUL 6.11
c1 d1 10 d2 20 d3 10
c2 2
−
20
S˘ a se determine un plan optim de transport. R˘ aspuns. Codific˘am problema conform grafului din figura 6.13. Pentru aceasta am introdus nodul d care constituie intrarea ˆın ret¸ea ¸si nodul c care constituie ie¸sirea din ret¸eaua de transport.
Figura 6.13: Codificarea problemei sub forma unei probleme de flux maxim. Problema se rezolv˘a cu ajutorul algoritmului Ford-Fulkerson. Se propag˘a un flux maxim ˆın ret¸eaua de transport de la nodul d (input) la nodul c (output). Pentru aceasta se genereaz˘a drumuri de la nodul d la nodul c (rute orientate, ˆın acela¸si
FLUX MAXIM INTR-O RET ¸ EA DE TRANSPORT
99
sens) care se satureaz˘a. ˆIn identificarea acestor drumuri vom avea grij˘a ca o rut˘a neorientat˘ a s˘a nu fie folosit˘ a decˆat ˆıntr-un singur sens. Astfel, se indic˘a ˆın continuare aceste drumuri precum ¸si fluxul propagat pe fiecare dintre ele. Odat˘a cu identificarea unui drum se orienteaz˘a ¸si rutele. Pe fiecare arc se ˆınsumeaz˘a ¸si fluxurile propagate. Obt¸inem deci drumurile: 30 10 40 d1 −→ c1 −→ 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, 10, 40 = 10,
{ } ϕ2 = min{20, 2, 80} = 2, ϕ3 = min{40, 20, 30} = 20, ϕ4 = min{50, 10, 10} = 10, ϕ5 = min{40, 20, 78} = 20.
ˆIn acest moment, toate drumurile de la nodul c la nodul d cont¸in rute orientate ¸si fiecare drum are cel put¸in o rut˘a saturat˘a. Fluxul propagat de-a lungul acestor drumuri este egal cu: 5
Φ=
ϕi = 62.
i=1
ˆIn etapa urm˘atoare vom aplica procedeul de marcare. Astfel, urm˘ atoarele noduri sunt marcate ca ˆın figura 6.14.
Figura 6.14: Marcarea nodurilor. Nodul final nu poate fi marcat deci fluxul este maxim. Nodul final d nu poate fi marcat, deci, fluxul propagat este maxim . Mult¸imea nodurilor nemarcate este:
{
}
A = d1 , d2 , d ,
100
PROBLEME DE TRANSPORT
¸si t˘aietura de capacitate maxim˘a cuprinde arcele:
∪ A= {(c1, d1), (c1, d2), (c2, d1), (c3, d1), (c3, d2)}, cu valoarea capacit˘a¸tii:
∪
c( A) = 10 + 2 + 20 + 10 + 20 = 62 . Se observ˘a c˘a valoarea capacit˘ a¸tii t˘aieturii minime este egal˘a cu valoarea maxim˘a a fluxului, ceea ce confirm˘ a, conform teoremei Ford-Fulkerson, c˘ a fluxul este maxim (fig. 6.15).
Figura 6.15: T˘aietura de capacitate minim˘a ¸si fluxul propagat. Observ˘ am c˘a cererea nu poate fi satisf˘acut˘ a, deci pentru m˘arirea capacit˘a¸t ii trebuie m˘arit˘ a capacitatea unuia din arcele t˘aieturii de capacitate minim˘a. Exercit¸iul 6.2.4. S˘a se scrie un program MAPLE pentru rezolvarea problemelor de flux maxim ˆıntr-o ret¸ea de transport. Verificat¸i rezultatul cu teorema FordFulkerson. R˘ aspuns. Pentru fixarea ideilor vom exemplifica programul pe problema 6.2.1. Vom indica atˆat sintaxa MAPLE (>) cˆat ¸si comentariile corespunz˘atoare (italic). Se init ¸ializeaz˘ a: lista de vˆ arfuri, lista muchiilor, lista ponderilor, nodul init ¸ial s ¸si nodul final t. > varfuri := 1, 2, 3, 4, 5, 6, 7, 8, 9 ; > muchii := [ 1, 2 , 1, 3 , 1, 4 , 2, 6 , 2, 7 , 2, 3 , 3, 4 , 3, 7 , 3, 5 , 6, 7 , 6, 8 , 4, 5 , 5, 7 , 5, 9 , 7, 8 , 7, 9 , 8, 9 ]; > ponderi := [10, 8, 10, 5, 4, 2, 5, 3, 5, 6, 10, 6, 2, 10, 3, 8, 10];
{ } { }{ }{ }{ }{ }{ }{ }{ } { }{ }{ }{ }{ }{ }{ }{ }{ }
FLUX MAXIM INTR-O RET ¸ EA DE TRANSPORT
101
> s := 1; > t := 9; Se creeaz˘ a ret ¸eaua conform init ¸ializ˘ arilor. > with(networks) : > new(G) : > addvertex(varfuri,G) : > addedge(muchii, weights = ponderi, G); Valoarea fluxului maxim. > flow(G,s,t); T˘ aietura de capacitate minim˘ a. > mincut(G,s,t,vf ); Valoarea t˘ aieturii de capacitate minim˘ a trebuie s˘ a fie egal˘ a cu valoarea fluxului maxim (Teorema Ford-Fulkerson). > vf ; Graful G. > draw(G); Exercit¸iul 6.2.5. Pentru ce valoare a parametrului a graful din figura 6.16 admite un flux maxim ˆıntre nodurile 1 ¸si 3 de 40.
Figura 6.16: Problema de flux maxim ˆıntre nodurile 1 ¸si 3.
R˘ aspuns. Se aplic˘a algoritmul Ford-Fulkerson, dup˘a care se determin˘a valoarea parametrului a din ecuat¸ia Φmax = 40. Deci se execut˘a urm˘atoarele etape: a) se genereaz˘a rute orientate de la nodul 1 la nodul 3: 2a 8a 2a 2 5 3, ϕ1 = 2a, µ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. Fluxul ˆın ret¸ea fiind Φ = 6a; b) se marcheaz˘a nodurile: 1, 2, 5, 6 . c) t˘aietura de capacitate minim˘a fiind: fiind egal˘ a cu 6a, deci fluxul este maxim. Ecuat¸ia Φmax = 40 duce la a = 20/3.
{
}
{(5, 3), (6, 3), (6, 4)}, valoarea acesteia
Exercit¸iul 6.2.6. Pentru datele din problema anterioar˘a formulat¸i problema ca o problem˘a de programare liniar˘a ¸si rezolvat¸i-o prin metoda simplex. Exercit¸iul 6.2.7. Pentru ret¸eaua de transport din figura 6.17 cu intrarea 0 ¸si ie¸sirea 7 ¸si capacit˘a¸t ile scrise pe arce s˘a se determine:
Figura 6.17: Ret¸ea de transport.
{
}
{
}
i) capacit˘ a¸t ile t˘aieturilor mult¸imilor A 1 = 1, 4, 6, 7 ¸si A 2 = 5, 6, 7 ; ii) fluxul maxim care str˘abate ret¸eaua ¸si valoarea sa; iii) care capacitate de transport trebuie m˘arit˘ a ¸si cu ce valoare pentru a atinge un flux maxim ˆın ret¸ea de 30 ? Solut¸ia indicat˘ a este unic˘a? iv) care este fluxul maxim ˆın ret¸eaua de transport dac˘a suprim˘am rutele 1 4 respectiv 5 1?
−
−
R˘ aspuns. Capacit˘ a¸t ile t˘aieturilor mult¸imilor A1 ¸si A2 sunt 50 respectiv 35. Se aplic˘ a algoritmul Ford-Fulkerson. Fluxul maxim ˆın ret¸ ea va fi egal cu 23. Pentru m˘arirea fluxului trebuie m˘arite capacit˘ a¸t ile t˘aieturii de capacitate minim˘a.
Capitolul 7
TEORIA STOCURILOR 7.1.
Formularea modelului matematic
Prin stoc vom ˆınt¸elege ˆın cele ce urmeaz˘a o rezerv˘a de bunuri materiale destinate vˆanz˘ arii sau folosirii lor ˆın procesul de product¸ie. Constituirea unui stoc presupune cheltuieli de aprovizionare, cheltuieli de stocaj, pierderi pentru deprecierea m˘arfurilor etc. Orice gestiune de stoc presupune intr˘ari ˆın stoc (inputs ) ¸si ie¸siri din stoc (outputs ), determinate de cererea de bunuri care poate fi determinist˘a, aleatoare cu o repartit¸ie cunoscut˘a statistic sau necunoscut˘a. Elementele principale care intervin ˆın activitatea de management al stocului sunt: -cererea de bunuri; -nivelul stocului; -volumul comenzii de reaprovizionare; -perioada de reaprovizionare; -costul de stocare; -costul de penalizare; -costul de lansare al comenzii; -alte costuri. Deciziile care se iau ˆın organizarea unui stoc au la baz˘a un criteriu de optim, determinat de politica economic˘ a. Vom numi politic˘a optim˘ a acea activitate de management al stocului care implic˘ a un cost total minim. Elementele unei politici optime sunt: nivelul optim al stocului, volumul optim al unei comenzi de reaprovizionare, perioada optim˘ a de reaprovizionare, num˘ arul optim de reaprovizion˘ ari, costul total optim numit ¸si gestiunea optim˘a. Modelele matematice permit stabilirea politicilor optime. Dup˘ a natura cererii, modelele pot fi deterministe sau aleatorii. ˆIn cele ce urmeaz˘a sunt prezentate o serie de modele matematice consacrate din teoria stocurilor. Strategia de abordare 103
104
TEORIA STOCURILOR
a problemelor este specific˘a problemelor de cercetare operat¸ional˘ a ¸si anume de a codifica corespunz˘ator problema matematic˘ a ˆıntr-o problem˘a de optimizare.
7.2.
Modele deterministe
7.2.1. Model de stocare a unui produs cu cerere constant˘ a, perioad˘ a constant˘ a de reaprovizionare ¸si f˘ ar˘ a lips˘ a de stoc Presupunem c˘a se stocheaz˘a un produs al c˘arui consum este o funct¸ie liniar˘a de timp, cererea produsului este Q pentru o perioad˘a de timp θ, reaprovizionarea stocului se face instantaneu la intervale de timp egale cu T ¸si ˆın cantit˘a¸t i egale cu q , costul unitar de stocare ˆın unitatea de timp este c s , costul de lansare al comenzii de reaprovizionare este c l (totalul cheltuielilor legate de operat¸ia de reaprovizionare ce nu depinde de q ) ¸si nu se admite lipsa de stoc.
Figura 7.1: Model de stocare a unui produs cu cerere constant˘a, perioad˘a constant˘ a de reaprovizionare ¸si f˘ar˘ a lips˘a de stoc. 1 Pentru fiecare perioad˘a de timp T se fac cheltuielile c l + qT cs (ˆıntr-o perioad˘a 2 T se afl˘a ˆın medie cantitatea q/2). Dac˘ a not˘ a m cu ν num˘arul de reaprovizion˘ari avem: Q θ ν = = . q T Funct¸ia obiectiv C (q ) ce trebuie minimizat˘a este: 1 Q 1 (cl + qT cs )ν = c l + qθc s . 2 q 2
105
MODELE DETERMINISTE
Volumul optim qˆ al unei comenzi de reaprovizionare se obt¸ine din condit¸ia de minim pentru funct¸ia obiectiv C (q ). Deci punˆand condit¸ia:
C (q ) = 0, obt¸inem: qˆ =
2Qcl . θcs
(C (ˆ q ) > 0 deci extremul este punct de minim). Obt¸inem num˘arul optim de reaprovizion˘ ari: νˆ =
Q = qˆ
perioada optim˘a: ˆ= θ = T νˆ ¸si gestiunea optim˘a:
ˆ = C (ˆ C q ) =
Qθcs , 2cl
2θcl Qcs
2Qθc s cl .
7.2.2. Model de stocare a unui produs cu cerere constant˘ a, perioad˘ a constant˘a de reaprovizionare ¸si cu posibilitatea lipsei de stoc ˆIn acest model se admit ipotezele de la modelul anterior cu deosebirea c˘a se admite ¸si lips˘a de stoc penalizat˘a cu un cost unitar de penalizare c p . Perioada constant˘ a T este ˆımp˘art¸it˘a ˆın dou˘a subperioade T 1 (ˆın care se satisface cererea ¸si se pl˘atesc pentru stocul mediu s/2 cheltuielile de stocare c s ) ¸si T 2 (ˆın care nu se mai satisface cererea ¸si se pl˘ate¸ste pentru lipsa medie (q s)/2 costul unitar de penalizare c p ). Pentru o perioad˘a T = T 1 + T 2 se vor face cheltuielile:
−
−
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 θ = c l + 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 cu posibilitatea lipsei de stoc. Avem:
T 1 s = T q
¸si
−
T 2 q s = . T q
De unde: T 1 = ¸si T 2 =
q
s T q
− s T. q
Deci ˆınlocuind valorile lui T 1 ¸si T 2 ˆın formula lui C (q, s) obt¸inem: C (q, s) =
Q θ θ c l + s2 cs + (q q 2q 2q
Condit¸iile de minim pentru funct¸ia obiectiv sunt: ∂C (q, s) =0 ∂q ¸si
∂C (q, s) = 0. ∂s
− s)2c p.
107
MODELE DETERMINISTE Adic˘ a:
− 1q 2 Qcl − 2q θ 2 s2cs + 2q θ 2 (q 2 − s2)c p = 0, θ scs q
de unde obt¸inem: q 2 =
− θq (q − s)c p = 0, 2Qcl (cs + c p ) 2 + s θc p c p
¸si s =
c p q. cs + c p
Obt¸inem pentru valoarea optim˘a pentru volumul comenzii: 2Qcl cs + c p q ˆ2 = . . θc p c p Dac˘ a not˘ am ρ =
c p (factor de penalizare), obt¸inem: cs + c p qˆ =
stocul optim fiind:
√ 2Qcl . θc p
1 , ρ
2Qcl . ρ. θc p
sˆ = ρ qˆ =
Funct¸ia obiectiv C (q, s) are minimul C (qˆ, sˆ) (acest minim se nume¸ste gestiunea optim˘a) deoarece matricea hessian˘ a este pozitiv definit˘a. Num˘ arul optim de reaprovizion˘ari este: νˆ =
Q = qˆ
perioada optim˘a: ˆ= θ = T νˆ ¸si gestiunea optim˘a:
Qθc p . ρ, 2cl
√
√
ˆ = C (ˆ C q, sˆ) =
2θcl . Qc p
1 ρ
2Qθcs cl . ρ.
→ ∞ atunci ρ → 1 ¸si obt¸inem modelul anterior.
Observat ¸ie . Dac˘a c p
108
TEORIA STOCURILOR
7.2.3. Model de stocare a unui produs cu cerere constant˘ a, perioad˘ a constant˘ a de reaprovizionare ¸si f˘ ar˘ a lips˘ a de stoc, luˆand ˆın considerare ¸si costul de achizit¸ie Presupunem c˘a se stocheaz˘a un produs al c˘arui consum este o funct¸ie liniar˘a de timp, cererea produsului este Q pentru o perioad˘a de timp θ, reaprovizionarea stocului se face instantaneu la intervale de timp egale cu T ¸si ˆın cantit˘a¸t i egale cu q , costul unitar de achizit¸ ie sau de product¸ie ca , costul unitar de stocare ˆın unitatea de timp este cs ¸si se presupune proport¸ional cu cheltuielile f˘acute pentru apovizionarea cu o unitate de produs, costul fix al comenzii de reaprovizionare este cb (totalul cheltuielilor legate de operat¸ia de reaprovizionare ce nu depinde de q ) ¸si nu se admite lipsa de stoc. Acest model este o variant˘a a modelului 1 ˆın care costul de lansare al comenzii este: cl = qca + cb , costul unitar de stocare: cs = α(ca +
c b ). q
Funct¸ia obiectiv devine: C (q ) = =
Q q c b (qc a + cb ) + θα(ca + ) q 2 q Q 1 1 c b + θαqca + Qca + θαcb . q 2 2
Din condit¸ia de optim pentru C (q ) obt¸inem: qˆ =
2Qcb . αθca
(C (ˆ q ) > 0, deci extremul este punct de minim). Obt¸inem num˘arul optim de reaprovizion˘ ari: νˆ =
Q = qˆ
perioada optim˘a:
ˆ= θ = T νˆ
αQθca , 2cb 2θcb αQca
¸si gestiunea optim˘a: ˆ = C (qˆ ) = C
1 2αQθca cb + Qca + αθcb . 2
109
MODELE DETERMINISTE
7.2.4.
Model de stocare a mai multor produse
ˆIn cazurile practice ne confrunt˘ am cu situat¸ia stoc˘arii mai multor produse. Vom presupune c˘a suntem ˆın cazul modelului 1, deci se stocheaz˘a k produse P i (i = 1, 2, . . . , k) al c˘aror consum sunt funct¸ii liniare de timp, cererea produsului P i este Qi pentru o perioad˘a de timp θ, reaprovizionarea stocului se face instantaneu la intervale de timp egale cu T i ¸si ˆın cantit˘a¸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 cheltuielilor legate de operat¸ia de reaprovizionare ce nu depinde de q i ) ¸si nu se admite lipsa de stoc pentru nici un produs. Costul total de stocare pentru produsul P i este: C i (q i ) =
Qi 1 cli + q i θcsi , q i 2
iar funct¸ia obiectiv pentru toate produsele stocate: k
C (q 1 , . . . , qk ) =
C i (q i ).
i=1
Cum funct¸iile C i (q i ) (i = 1, . . . , k) sunt independente, minimul sumei lor are loc odat˘ a cu minimul fiec˘areia dintre ele ¸si deci avem echivalent¸a˘ ˆıntre relat¸iile: ∂C (q 1 , . . . , qk ) =0 ∂q i ¸si
∂C i (q i ) = 0, i = 1, . . . , k . ∂q i G˘ asim pentru produsele P i valorile: q ˆi =
2Qi cli , θcsi
num˘arul de reaprovizion˘ari: ν ˆi =
Qi = qˆi
perioada optim˘a: ˆ= θ = T νˆ i
Qi θcsi , 2cli
2θcli Qcsi
110
TEORIA STOCURILOR
¸si gestiunea optim˘a: k
ˆ= C
ˆi , C
i=1
unde:
ˆi = C i (q i ) = C
2θQ i cli csi .
Rezultate similare se obt¸in pentru celelalte modele.
7.3.
Modele probabiliste
7.3.1. Model de stocare a unui produs cu cerere aleatoare, cu pierdere ˆın cazul surplusului de stoc, cu cheltuieli suplimentare ˆın cazul lipsei de stoc ¸si cu cost de stocare neglijabil Presupunem c˘a se stocheaz˘a un singur produs a c˘arui cerere este o variabil˘a aleatoare X cu repartit¸ia: X : (x, p(x)), x = 0, 1, 2, . . . pentru cerere discret˘a ¸si:
∈ [0, ∞) pentru cerere continu˘a; excedentul de stoc, cˆand x ≤ s (s fiind stocul), se penalizeaz˘a X : (x, f (x)), x
cu o pierdere unitar˘a c1 ; lipsa de stoc, cˆ and x > s, se penalizeaz˘a cu cheltuieli suplimentare de reaprovizionare unitare c2 ; cheltuielile de stocare sunt foarte mici ˆın raport cu c 1 ¸si c 2 ¸si se neglijeaz˘a. Cazul discret. Variabila aleatoare excedent de stoc E s are repartit¸ia:
− −
E s : cu media:
s x p(x)
, x = 0, 1, . . . , s ,
s
M (E s ) =
(s
x=0
− x) p(x),
iar variabila aleatoare lips˘a de stoc are repartit¸ia: Ls : cu media:
x s p(x)
M (Ls ) =
, x = s + 1, s + 2, . . .
∞
(x
x=s+1
− s) p(x).
111
MODELE PROBABILISTE
Funct¸ia obiectiv a modelului matematic reprezint˘a cheltuielile medii totale legate de managementul stocului, adic˘ a: s
C (s) = c 1
(s
x=0
− x) p(x) + c2
∞
(x
x=s+1
− s) p(x).
Stocul optim sˆ se obt¸ine din condit¸ia de minim pentru funct¸ia obiectiv C (s). Teorema 7.3.1. (Optim pentru cazul discret). Funct ¸ia C (s) ˆı¸si atinge minimul c2 ˆın punctul sˆ pentru care F (ˆs 1) < ρ < F (ˆs), unde ρ = , iar F (s) = P r(x c1 + c2 s) =
s
−
≤
p(x) este o funct ¸ie cresc˘ atoare.
x=0
Demonstra¸tie. C (s) este o funct¸ie discret˘a ¸si sˆ este punct de minim dac˘a ¸si numai dac˘a avem C (sˆ) < min C (sˆ 1), C (sˆ + 1) . Aceast˘a dubl˘a inegalitate permite determinarea lui sˆ ca solut¸ie a sistemului de inecuat¸ii:
{
−
}
C (s 1) C (s + 1)
− − C (s) > 0 − C (s) > 0.
(7.1)
Avem: s+1
C (s + 1) = c 1
(s + 1
x=0 s
= c 1
− − (s + 1
− x) p(x) + c2
(s
x) p(x) + c1
x=0
−c2
∞
s
(x
x=s+1 s
x=0
s
p(x)
x=0
− s − 1) p(x) =
(x
x=s+2
− s − 1) p(x) = ∞
− −
p(x) + c2
p(x) = C (s) + c1
x=s+1
Notˆ and F (s) =
x) p(x) + c2
x=0 s
= c 1
∞
∞
(x
s) p(x)
x=s+1
∞
c2
−
p(x).
x=s+1
p(x), avem:
x=0
C (s + 1) = C (s) + (c1 + c2 )F (s)
− c2.
(7.2)
112
TEORIA STOCURILOR
Analog obt¸inem: s 1
C (s
− 1)
= c1
−
(s
1
x) p(x) + c2
−
s + 1) p(x)
s 1
(s
−
x) p(x) + c1
x=0
+c2
(x
x=s
x=0 s 1
= c1
∞
−− − − − − p(x) + c2
s
p(x) = c 1
x=s
+c1 F (s
(s
(x
s) p(x)
x=s
x=0
∞
∞
x) p(x) + c2
x=0
∞
(x
x=s+1
− s) p(x)
− 1) + c2(1 − F (s − 1))
sau C (s
− 1) = C (s) − (c1 + c2)F (s − 1) + c2.
(7.3)
ˆInlocuind 7.2 ¸si 7.3 ˆın 7.1 obt¸inem:
− C (s) C (s − 1) − C (s) C (s + 1)
de unde: F (s
− c2 > 0, −(c1 + c2)F (s − 1) + c2 > 0,
= (c1 + c2 )F (s) =
− 1) < c1 +c2 c2 < F (s)
sau F (s
− 1) < ρ < F (s)
¸si teorema este demonstrat˘a. Observat ¸ii: i) Dac˘ a F (ˆs 1) < ρ < F (ˆs) ¸si deoarece F (s) este cresc˘atoare atunci exist˘a sˆ unic. ii) Dac˘a F (ˆ s 1) < ρ = F (ˆs) atunci C (s) are dou˘a puncte de minim sˆ ¸si sˆ + 1. iii) Dac˘a F (ˆ s 1) = ρ < F (ˆs) atunci C (s) are dou˘a puncte de minim sˆ 1 ¸si sˆ. Cazul continuu. Variabila excedent de stoc E s are repartit¸ia:
− − −
−
E s :
− s x f (x)
cu media:
, x
∈ [0, s],
s
M (E s ) =
− (s
0
x)f (x)dx,
113
MODELE PROBABILISTE iar variabila aleatoare lips˘a de stoc are repartit¸ia:
− x s f (x)
Ls :
, x
∈ [s, ∞),
cu media:
∞
M (Ls ) =
− (x
s)f (x)dx.
s
Funct¸ia obiectiv a modelului matematic reprezint˘a cheltuielile medii totale legate de managementul stocului, adic˘ a: s
C (s) = c 1
− (s
∞
x)f (x)dx + c2
− (x
s)f (x)dx.
s
0
Stocul optim sˆ se obt¸ine din condit¸ia de minim pentru funct¸ia obiectiv C (s). Teorema 7.3.2. (Optim pentru cazul continuu). Funct ¸ia C (s) ˆı¸si atinge minis c2 mul ˆın punctul sˆ pentru care F (ˆ s) = ρ, unde ρ = ¸si F (s) = = f (x)dx. c1 + c2 0
Demonstrat¸ie. s
C (s) = c 1
∞
f (x)dx
0
− c2
f (x)dx
s
¸si din condit¸ia C (s) = 0, rezult˘a: c1 F (s)
− c2(1 − F (s)) = 0,
de unde: F (s) =
c2 = ρ. c1 + c2
Solut¸ia ecuat¸iei F (s) = ρ o vom nota cu sˆ ¸si deoarece C (s) > 0, aceasta este punct de minim.
114
TEORIA STOCURILOR
7.3.2. Model de stocare a unui produs cu cerere aleatoare, cu cost de stocare ¸si cost de penalizare pentru lips˘ a de stoc Presupunem c˘a se stocheaz˘a un singur produs a c˘arui cerere este o variabil˘a aleatoare X cu repartit¸ia: X : (x, p(x)), x = 0, 1, 2, . . . pentru cerere discret˘a ¸si X : (x, f (x)), x
∈ [0, ∞)
pentru cerere continu˘a, costul unitar de stocare este 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: i) cererea nu dep˘a¸se¸ste stocul (fig.7.3), deci ea este satisf˘acut˘a ˆın toat˘ a perioada T , adic˘a avem x s pe perioada T ; ii) cererea este mai mare decˆat stocul (fig.7.4), adic˘a x > s, ceea ce face ca ˆın perioada T 1 cererea s˘a fie satisf˘acut˘a, iar ˆın perioada T 2 cererea s˘a nu fie satisf˘acut˘ a (T 1 + T 2 = T ).
≤
Figura 7.3: Cererea nu dep˘a¸se¸ste stocul. Prezent˘am cazul discret ¸si cazul continuu. Cazul discret. Pentru situat¸ia i) stocul mediu pentru care se pl˘ate¸ste costul unitar de stocare c s , este: s x (s ) p(x). 2
x=0
−
115
MODELE PROBABILISTE
Figura 7.4: Cererea dep˘a¸se¸ste stocul. Pentru situat¸ia ii) vom avea un stoc mediu:
∞
x=s+1
s p(x), 2
pentru care se pl˘atesc cheltuieli unitare de stocare c s pe perioada T 1 ¸si o lips˘a medie de stoc (penurie medie ): ∞ x s p(x), 2
−
x=s+1
penalizat˘a cu un cost unitar de penalizare c p pe perioada T 2 . Funct¸ia obiectiv a modelului reprezint˘a cheltuielile medii totale legate de managementul stocului, pe perioada T , adic˘a: s
C T (s) = c s T
(s
x=0
Avem: ¸si
−
x ) p(x) + cs T 1 2
∞
x=s+1
s 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
x
T 2 =
− s T s
ˆInlocuind valorile lui T 1 ¸si T 2 ˆın formula lui C T (s) g˘ asim: C T (s) = T C (s), unde am notat prin C (s) cheltuielile medii totale ˆın unitatea de timp ¸si: s
C (s) = c s
(s
x=0
−
x 1 ) p(x) + cs s2 2 2
∞
x=s+1
p(x) 1 + c p x 2
∞
(x
x=s+1
− s)2 p(x). x
Stocul optim sˆ se obt¸ine din condit¸ia de minim pentru funct¸ia C (s). Teorema 7.3.3. (Optim pentru cazul discret). Funct ¸ia C (s) ˆı¸si atinge minimul c p ˆın punctul sˆ pentru care L(ˆ s 1) < ρ < L(ˆ s), unde ρ = ¸si cs + c p
−
s
L(s) =
1 p(x) + (s + ) 2
x=0
∞
x=s+1
p(x) . x
Demonstrat¸ie. Condit¸ia de minim pentru funct¸ia discret˘a C (s) este
{
ρ < min C (sˆ
− 1), C (sˆ + 1)}
condit¸ie ce permite determinarea punctului de minim s ca solut¸ie a sistemului de inecuat¸ii: C (s 1) C (s) > 0 C (s + 1) C (s) > 0.
− − −
Avem: s+1
C (s + 1) = c s
(s + 1
x=0
1 + c p 2
∞
x=s+2
(x
−
x 1 ) p(x) + cs (s + 1)2 2 2
− s − 1)2 p(x). x
Sumele din partea a doua a egalit˘a¸t ii se rescriu:
∞
x=s+2
p(x) + x
117
MODELE PROBABILISTE
s+1
x ) p(x) = 2
s+1
− − (s + 1
x=0
s
=
(s
x=0
∞
x=s+2
x ) p(x) + 2
p(x) = x
(s
x=0 s
−
x ) p(x) + 2
p(x) +
x=0
∞
x=s+1
p(x) x
s+1
p(x) =
x=0
s + 1 p(s + 1), 2
− p(ss ++11)
¸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(x) + (2s + 1)
x=s+1
∞
x=s+1
∞
− s − 1)2 p(x) =
p(x) = x
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:
s
C (s + 1) = C (s) + (cs + c p )
1 p(x) + (s + ) 2
x=0
sau C (s + 1)
− ∞
x=s+1
p(x) x
c p
− C (s) = (cs + c p)L(s) − c p.
Analog g˘ asim: C (s
− 1) − C (s) = −(cs + c p)L(s − 1) + c p.
ˆInlocuind aceste relat¸ii ˆın sistemul descris obt¸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(s) ¸si teorema este demonstrat˘a . Se arat˘a simplu c˘a C (ˆ s) > 0 ¸si, deci, sˆ solut¸ia inegalit˘ a¸tilor L(s 1) < ρ < L(s) este punct de minim. Gestiunea optim˘a se obt¸ine calculˆand pe C (ˆ s).
−
−
118
TEORIA STOCURILOR
Cazul continuu. Rat¸ionˆ and ca la cazul discret, se obt¸ine pentru funct¸ia obiectiv de la acest model C (s), expresia: s
C (s) = c s
− (s
0
x 1 )f (x)dx + s2 cs 2 2
∞
s
∞
f (x) 1 dx + c p x 2
(x
s
− s)2 f (x)dx. x
Stocul optim sˆ se obt¸ine din condit¸ia de minim pentru funct¸ia C (s). Teorema 7.3.4. (Optim pentru cazul continuu). Funct ¸ia C (s) ˆı¸si atinge minic p mul ˆın punctul sˆ pentru care L(s) = ρ, unde ρ = ¸si: cs + c p
∞
L(s) = F (s) + s
s
f (x) dx, cu F (s) = x
s
f (x)dx.
0
Demonstrat¸ie. Avem: s
C (s) = c s
∞
f (x)dx + scs
s
0
f (x) dx x
∞
− c p
s
(x
− s) f (x)dx. x
Ecuat¸ia C (s) = 0 ne d˘a:
∞
F (s) + s
s
f (x) c p dx = , sau L(s) = ρ. x cs + c p
Solut¸ia ecuat¸iei L(s) = ρ o vom nota cu sˆ ¸si deoarece C (ˆ s) > 0, aceasta este punct de minim.
7.4.
Aplicat¸ii
Exercit¸iul 7.4.1. O unitate comercial˘a are o cerere anual˘a (365 zile) de 2000t benzin˘a. Costul de lansare al comenzii este de 150$, iar costul de stocare pe zi este de 0,5$/t. ˆIn ipoteza c˘a se admite un consum uniform, aprovizionarea se face ˆın cantit˘a¸ti egale ¸si c˘a nu se admite lipsa benzinei din stoc, s˘a se determine: volumul optim al unei comenzi, num˘arul optim de reaprovizion˘ari, perioada optim˘a ¸si gestiunea optim˘a.
APLICAT ¸ II
119
R˘ aspuns . Modelul matematic al problemei este un model de stocare a unui produs cu cerere constant˘ a, perioad˘ a constant˘ a de reaprovizionare ¸si f˘ar˘a lips˘a de stoc. Datele problemei sunt: Q = 2000 t; θ = 365 zile; cl = 150$; cs = 0, 5$/t.
Exercit¸iul 7.4.2. La un magazin se estimeaz˘a c˘a cererea lunar˘a (30 zile) pentru un anume tip de produs este de 6000 kg. Costul zilnic de stocare pentru 10 kg din marfa respectiv˘a este de 0, 25$, costul de lansare a unei comenzi este de 100$ ¸si costul de penalizare de 0, 25$ /kg. ˆIn ipoteza c˘a se admite o vˆanzare uniform˘ a, aprovizionarea se face ˆın cantit˘ a¸ti egale ¸si la intervale egale de timp, s˘a se determine volumul optim al unei comenzi, stocul optim, num˘arul optim de reaprovizion˘ari, perioada optim˘a ¸si gestiunea optim˘a.
R˘ aspuns . Modelul matematic al problemei este un model de stocare a unui produs cu cerere constant˘ a, perioad˘a constant˘ a de reaprovizionare ¸si cu posibilitatea lipsei de stoc. Q = 6000 kg; θ = 30 zile; cs = 0, 025$; c p = 0, 25$; cl = 100$.
Exercit¸iul 7.4.3. La un magazin alimentar se vˆand produse lactate care au un termen de garant¸ie de 3 zile. Necesarul de produse pentru 300 zile este de 250000 buc˘ a¸t i, pret¸ul de achizit¸ie de 0,25$, costul fix de lansare al comenzii 500$, iar coeficientul de proport¸ionalitate de 0,015. ˆIn ipoteza c˘a se admite o vˆanzare uniform˘ a, aprovizionarea se face la intervale egale ¸si c˘a nu se admite lipsa de stoc, s˘a se stabileasc˘a, dac˘a este posibil (nu se dep˘a¸se¸ste termenul de garant¸ie), comanda optim˘a, num˘ arul optim de comenzi ¸si gestiunea optim˘a.
R˘ aspuns. Modelul matematic al problemei este un model de stocare a unui produs cu cerere constant˘a, perioad˘a constant˘ a de reaprovizionare ¸si f˘ar˘a lips˘a de stoc, luˆand ˆın considerare ¸si costul de achizit¸ie.
120
TEORIA STOCURILOR θ = 300 zile; Q = 250000; ca = 0, 25$; cb = 500$; α = 0, 15; cu restrict¸ia T
≤ 3.
Exercit¸iul 7.4.4. Se organizeaz˘ a pe o period˘a de 300 zile stocul produselor P 1 , P 2 , P 3 , ˆın condit¸iile modelului de stocare a mai multor produse. Sunt date: Q1 = 400t; Q2 = 2500t; Q3 = 900t; cl1 = 200$; cl2 = 150$; cl3 = 400$; cs1 = 2$; cs2 = 2$; cs3 = 4$. S˘ a se stabileasc˘a elementele optime ale activit˘a¸t ii de management a stocului.
Exercit¸iul 7.4.5. Cererea (ˆın tone) pentru o anumit˘ a marf˘ a este o variabil˘a aleatoare cu densitatea de probabilitate: f (x) =
∈
λ(x + α), x [0, 5] 0, ˆın rest.
S ¸ tiind c˘a surplusul de marf˘a se vinde cu o pierdere de 10$ /t, iar ˆın cazul lipsei de marf˘a se fac cheltuieli suplimentare de aprovizionare de 20$/t, s˘a se optimizeze stocul. Parametrul α este un num˘ar ˆıntreg bine precizat. 5
R˘ aspuns. Determin˘am mai ˆıntˆai valoarea λ din condit¸ia
λ(x+α) = 1. Obt¸inem:
0
λ =
2 . 25 + 10α
Funct¸ia de repartit¸ie va fi: s
F (s) = λ
(x + α)ds = λ(
0
s2 + αs), 2
121
APLICAT ¸ II iar ecuat¸ia F (s) = devine:
c2 c1 + c2
2 s2 2 ( + αs) = , 25 + 10α 2 3
care este echivalent˘a cu:
− 10(5 3+ 2α) = 0.
s2 + 2αs
√
Solut¸ ia sˆ(α) = α + 31 9α2 + 30 Gestiunea optim˘ a va fi C (ˆ s(α)).
−
∈ [0, 5] a acestei ecuat¸ii este stocul optim.
Exercit¸iul 7.4.6. Cererea (ˆın tone) pentru o anumit˘ a marf˘ a este o variabil˘a aleatoare cu densitatea de probabilitate: f (x) =
∈
λ(x + α), x [0, 5] 0, ˆın rest.
S ¸ tiind c˘a costul de stocare este de 1$/t, iar ˆın cazul lipsei de marf˘ a cheltuielile de penalizare sunt de 10$/t, s˘a se optimizeze stocul. Parametrul α este un num˘ar ˆıntreg bine precizat. 5
R˘ aspuns. Determin˘am mai ˆıntˆai valoarea λ din condit¸ia
λ(x+α) = 1. Obt¸inem:
0
λ =
2 . 25 + 10α
Funct¸ia de repartit¸ie va fi: s
F (s) = λ
(x + α)ds = λ(
0
Ecuat¸ia
∞
F (s) + s
0
care ne va da stocul optim va fi:
s2 + αs), 2
f (x) c p dx = x c p + cs
122
TEORIA STOCURILOR
s2 λ( + αs) + s 2 sau s2 λ( + αs) + s 2
∞
s
∞
s
λ(x2 + α) 10 dx = x 11
λ(x2 + α) 10 dx = , x 11
ecuat¸ie care nu are solut¸ii (integrala este divergent˘a). Acest lucru ne arat˘a c˘a nu se poate calcula mereu un stoc optim. Exercit¸iul 7.4.7. ˆIn vederea efectu˘arii unor studii de marketing, o agent¸ie comercial˘a cump˘ar˘a un calculator electronic. Calculatorul este dotat cu un num˘ar de circuite integrate care ˆın caz de defectare se schimb˘a. Se ¸stie c˘a acest tip de circuite cump˘arate odat˘ a cu calculatorul cost˘a 5$ bucata, iar comanda special˘a cost˘a 10$ bucata. Datele statistice arat˘ a urm˘atoarea cerere de terminale (tabelul 7.1): TABELUL 7.1
Circuite ˆınlocuite (x) Num˘ ar calculatoare cu x circuite ˆınlocuite
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 gestiunea optim˘a. R˘ aspuns. Modelul matematic corespunz˘ator este modelul de stocare a unui produs cu cerere aleatoare, cu pierdere ˆın cazul surplusului de sto c, cu cheltuieli suplimentare ˆın cazul lipsei de stoc ¸si cu cost de stocare neglijabil. Exercit¸iul 7.4.8. Se ¸stie c˘a un anumit produs are o cerere lunar˘a aleatoare conform cu tabelul 7.2: TABELUL 7.2
cererea x 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 c˘a lipsa de stoc este penalizat˘a cu 3$ pe zi pentru o ton˘a lips˘a, s˘a se determine stocul optim. R˘ aspuns. Modelul matematic corespunz˘ator este modelul de stocare a unui produs cu cerere aleatoare, cu cost de stocare ¸si cost de penalizare pentru lips˘a de stoc (caz discret).
Capitolul 8
˘ ¸I PROBABILITAT 8.1.
Probabiliatea unui eveniment
8.1.1. Cazul finit dimensional ¸si al evenimetelor elementare echiprobabile Fermat (1601-1665) ¸si Pascal (1623-1662) au definit pentru prima dat˘ a probabilitatea realiz˘ arii evenimentului A, ca: Num˘arul cazurilor favorabile aparit¸iei evenimentului A . Num˘ arul total de cazuri Definit¸ia este valabil˘a ˆın cazul finit dimensional ¸si al evenimentelor elementare echiprobabile. Exemple: a) Se arunc˘a cu dou˘a zaruri. Probabilitatea de a obt¸ine poart˘ a ˆın cas˘ a , adic˘a n m = 2, unde n ¸si m sunt numerele de pe zarurile care au ie¸sit la aruncare, este: P (A) =
| − |
P (A) =
8 = 0, 22. 36
b) Schema lui Bernoulli (1700-1782), f˘ar˘ a ˆıntoarcere. ˆIntr-o urn˘a sunt a bile albe, b bile negre, c bile ro¸sii. Se fac n extrageri succesive n a + b + c, f˘ar˘a revenire. Probabilitatea s˘ a avem extrase α bile albe, β bile negre, γ bile ro¸sii, n = α + β + γ, 0 α a, 0 β b, 0 γ c este:
≤
≤ ≤
≤ ≤
≤ ≤
P (A) =
C aα C bβ C cγ
· ·
α+β +γ C a+b+c
.
c) Schema lui Bernoulli, cu ˆıntoarcere. ˆIntr-o urn˘a sunt a bile albe, b bile negre, c bile ro¸sii. Se fac n extrageri succesive n a + b + c, cu revenire. Probabilitatea
≤
123
124
˘ ¸ I PROBABILIT AT
s˘a avem extrase α bile albe, β bile negre, γ bile ro¸sii, n = α + β + γ, 0 0 β b, 0 γ c este:
≤ ≤
≤ ≤
n! P (A) = α!β !γ !
a a+b+c
α
b a+b+c
β
c a+b+c
≤ α ≤ a,
γ
d) Schema lui Poisson (1781-1840). Se consider˘a n urne U i , i = 1, . . . , n, cont¸inˆand bile albe ¸si negre, cu probabilitatea ca efectuˆand la ˆıntˆ amplare o extragere din urna U i , i = 1, . . . , n s˘a apar˘ a o bil˘a alb˘ a respectiv neagr˘a sunt pi respectiv q i = 1 pi . Se extrage o bil˘a din fiecare urn˘a. Probabilitate ca din cele n bile extrase, k s˘ a fie k albe ¸si n k s˘a fie negre este coeficientul lui t din polinomul:
−
−
·
P (t) = ( p1 t + q 1 ) ( p2 t + q 2 ) . . . ( pn t + q n ).
8.1.2.
Probabit˘ a¸t i geometrice
Aria ha¸surat˘a Formula utilizat˘ a este P (A) = . Aria total˘ a Exemple: a) Se aleg la ˆıntˆamplare dou˘ a numere, 1 α, β 2 2 α + β 1?
≤
− ≤
≤ 1. Care este probabiliatea ca
Figura 8.1: Exemplu de probabilitate geometric˘a. π . 4 b) Acul lui Buffon (1707-1788). ˆIn plan este trasat˘a o ret¸ea de drepte paralele, echidistante, la distant¸a 1, una de alta. Se arunc˘a un ac de lungime 0, 5. Probabilitatea ca acul s˘a ating˘ a ret¸eaua este 1 , se poate ar˘ata folosind probabilit˘ a¸ti geometrice. π P (A) =
125
PROBABILIATEA UNUI EVENIMENT
c) Se alege la ˆıntˆ amplare un triunghi, din mult¸imea tuturor triunghiurilor. Prob1 abilitatea ca triunghiul s˘ a fie ascut¸itunghic este . Probabilitatea ca triunghiul s˘a 4 fie dreptunghic este 0. Acestea se pot deduce utilizˆand probabili˘ a¸ti geometrice.
8.1.3.
Frecvent¸˘ a absolut˘ a. Frecvent¸˘ a relativ˘ a
Not˘ a m cu (f n ) ¸sirul frecvent¸elor absolute ale aparit¸iei evenimentului A ˆın urma unor experimente repetate. Fie (ν n ) ¸sirul frecvent¸elor relative corespunz˘atoare: ν n = f n . Dac˘a ν n p ¸si p = P (A), calculat˘ a, estimat˘ a printr-o alt˘a metod˘ a, atunci avem n o mai mare ˆıncredere c˘a p = P (A). Frecvent¸a absolut˘ a poate fi privit˘a ca o variabil˘a aleatoare, astfel: f ¯1 variabila aleatoare care are repartit¸ia:
→
0 1 q p
,
−
unde p = P (A), q = 1 p. f ¯2 este variabila aleatoare care are repartit¸ia:
0 1 q p
+
0 1 q p
=
0 1 2 2 q 2qp p2
.
f ¯3 este variabila aleatoare care are repartit¸ia:
0 1 q p
+
0 1 q p
+
0 1 q p
=
0 1 2 3 3 2 2 q 3q p 3qp p3
¸s.a.m.d.
S ¸irul variabilelor aleatoare f ¯n monitorizeaz˘a aparit¸ia evenimetului A. Deci f ¯n este variabila aleatoare care are repatit¸ia:
0 1 2 ... n 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 absolute ¸si frecvent¸ele relative pot fi privite ca ¸siruri numerice, (f n ) ¸si (ν n ) ¸si pot fi privite ca varialibele aleatoare (f ¯n ) ¸si (¯ ν n ). Frecvent¸a relativ˘a ν¯ n este variabila aleatoare ν¯n =
·
126
˘ ¸ I PROBABILIT AT
8.1.4.
Definit ¸ia statistic˘ a a probabilit˘ a¸t ii
a) Fie experient¸a arunc˘arii cu banul. A evenimentul de a apare banul . P (A) = 1 p = . Person a facut experint¸a de 24000 ori ¸si a obt¸inut ν n = 0, 5005.. 2 b) S-a f˘acut experint¸a acului lui Buffon de un num˘ar de 5000 de ori. S-a obt¸inut pentru ν 5000 = 0, 3175, de unde π 3, 1496. Aceste dou˘a exemple, celebre, ne ˆındrept˘a¸tesc s˘a accept˘am cu ˆıncredere ¸si sperant¸e definit¸ia urm˘atoare: Fie A un eveniment. Repet˘am experint¸a de multe ori ¸si calcul˘am f n ¸si ν n . Dac˘a ν n se stabilizeaz˘a ˆın jurul unei valori p R, accept˘am definit¸ia P (A) = ν n = p, n suficient de mare, cˆand ν n se stabilizeaz˘a aproape de p. Aceasta este definit¸ia statistic˘a a probabilit˘a¸t ii lui A.
≈
∈
8.1.5.
Definit ¸ia axiomatic˘ a a probabilit˘ at¸ii
K P
Definit¸ia 8.1.1. (Ω, , ) se nume¸ste cˆamp de probabilitate dac˘a: a) Ω = (spat¸iul evenimentelor); b) (Ω) ( se numet¸e cˆampul/mult¸imea evenimentelor); c) P (A), A , P (A) [0, 1] (probabilitatea evenimentului A).
∅ K ⊂ P
8.2. 8.2.1. p(x) =
K ∈K
∈
Variabile aleatoare normal distribuite Densitatea de probabilitate normal˘ a
− 1 √ e σ 2π
(x
− m)2
2σ 2
,m
∈ R, σ > 0 se nume¸ste densitatea de probabilitate
normal˘ a, densitatea de probabilitate a lui Gauss (1777-1855). O variabil˘a aleatoare care are densitatea p(x) se nume¸ste normal distribuit˘a ¸si are media m ¸si abaterea p˘atratic˘ a σ :
8.2.2. Φ(x) =
Funct ¸ia Laplace-Gauss
√ 12π
x
t2 − e 2 dt este funct¸ia Laplace (1749-1827)-Gauss.
−∞
Φ(x) are urm˘atoarele propriet˘a¸t i imdediate: 1 Φ(0) = 2 Φ(x) + Φ( x) = 1, x R Φ(x) 1, x 3 Φ(x) 0, x 3.
≈ ≈
−
≥ ≤−
∈
VARIABILE ALEATOARE NORMAL DISTRIBUITE
127
Figura 8.2: Graficul densit˘a¸tii normale.
Figura 8.3: Graficul funct¸iei Laplace-Gauss.
8.2.3.
O formul˘ a analitic˘ a pentru calculul probabilit˘ a¸t ii
Enunt¸a˘m o teorem˘a de mare important¸a˘. Teorema 8.2.1. a) Dac˘a f este o variabil˘a aleatoare cu densitatea de probabil-
β
itate p(x), atunci P (α
≤ f ≤ β ) =
α
p(x)dx.
b) Dac˘ a f este o variabil˘a aleatoare normal distribuit˘a, adic˘a p(x) este densitatea
128
˘ ¸ I PROBABILIT AT
normal˘ a, atunci: P (α
8.2.4.
≤ f ≤ β ) = Φ( β −σ m ) − Φ( α −σ m ).
Inegalitatea lui Cebˆ a¸sev (1821-1894)
|−
Dac˘ a f este o variabil˘a aleatoare cu media m ¸si media p˘atratic˘ a σ, atunci: P ( f 2 σ m ) , > 0. 2
|≥ ≤ 8.2.5.
Teorema celor
3σ
a) Dac˘ a f este o variabil˘a aleatoare cu media m ¸si abaterea p˘atratic˘ a σ, atunci 8 P ( f m 3σ) . 9 b) Dac˘ a f este o variabil˘a aleaoare normal distribuit˘a, atunci P ( f m 3σ) 1.
| − | ≤ 8.3.
≥
| − |≤
≈
Legea numerelor mari
Fie (Ω, , P ) un cˆamp de probabilitate ¸si (f n ), f variabile aleatoare. f n ¸si numai dac˘a pentru orice > 0, lim n→∞ P ( f n f ) = 0.
K
| − |≥
→ p f dac˘a
Teorema 8.3.1. Fie (Ω, , P ) un cˆamp de probabilitate, A , ¸si p = P (A). Fie (f n ) ¸sirul frecvent¸elor absolute ¸si (ν n ) ¸sirul frecvent¸elor ata¸sate unor experimente succesive. Fie (f n ) ¸sirul variabilelor aleatoare al frecvent¸elor absolute ¸si (ν n ) ¸sirul variabilelor aleatoare al frecvent¸elor relative ale apari¸tiei evenimentului A. Atunci: a) ν n p ˆın ”imensa majoritate” a cazurilor. p p b) ν n p = . 1
K
→ →
∈ K
Observat¸ie. Dac˘a ν n
p
→ p =
p 1
, deci totdeauna ν n tinde ˆın probabilitate la
p . Evident sunt ”miracole” cˆand ν n nu converge la p dar ˆın 1 ”imensa majoritate” a cazurilor ν n p. Legea numerelor mari d˘a relat¸ia dintre p = P (A), probabilitatea lui A, calculat˘ a sau estimat˘ a ˆıntr-un anume mod ¸si probabilitatea lui A ˆın sens statistic. variabila aleatoare
8.4.
→
Teorema limit˘ a central˘ a
Sunt multe variante ˆın care se prezint˘ a acest important rezultat, care se mai nume¸ste Teorema fundamental˘ a a statisticii .
129
TESTE
8.4.1.
Forma Leapunov (1857-1918) a Teoremei Limit˘ a Central˘ a
K P
Teorema 8.4.1. Fie (f n ) un ¸sir de variabile aleatoare pe (Ω, , ), astfel ˆıncˆ at: 1. (f n ) variabile aleatoare independente; 2. (f n ) sunt din aceeia¸si ”lume”, adic˘a au aceia¸si densitate de probabilitate (sau aceia¸si matrice de repartit¸ie), deci au aceia¸si medie m ¸si aceia¸si medie p˘atratic˘a σ 2 . β n m Atunci, pentru n ”mare” avem: P (α f 1 + . . . + f n β ) Φ( ) σ n α n m Φ( ). σ n
≤
−√ ·
≤ ≈
−√ ·
−
Observat¸ia 8.4.1. Comparˆand teorema de mai sus cu formula de la punctul 8.2.3 se poate enunt¸a urm˘atorul rezultat, numit Miracolul Gauss-Lapace: Dac˘ a f 1 , . . . fn , . . . sunt variabile aleatoare independente, din aceeia¸si ”lume”, atunci pentru n ”mare”, F = f 1 + . . . fn se comport˘a ca o variabil˘a aleatoare normal distribuit˘ a cu media M = n m ¸si abaterea medie p˘atratic˘ a σ n.
· √
·
8.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limit˘ a Central˘ a
K P
Teorema 8.4.2. Fie (f n ) un ¸sir de variabile aleatoare pe (Ω, , ), astfel ˆıncˆ at: 1. (f n ) variabile aleatoare independente. 0 1 2. (f n ) variabile aleatoare, din aceeia¸si ”lume”, Bernoullian˘ a cu X = . q p β n p Atunci, pentru n ”mare” avem: P (α f 1 + . . . + f n β ) Φ( ) npq α n p Φ( ). npq
≤
− · √
8.5.
≤ ≈
− · − √
Teste
ˆIn cele ce urmeaz˘a vom prezenta cˆateva teste ce au fost sau se pot propune la un examen. Fiecare test are trei p˘art¸i. Partea 1 este partea teoretic˘a, p˘art¸ile 2 ¸si 3 cont¸in aplicat¸ii referitoare a legea numerelor mari ¸si teorema limit˘a central˘ a.
8.5.1.
Testul 1
Exercit¸iul 8.5.1.1. a) Enunt¸at¸i teorema celor 3σ. b) Legea uniform˘a pe intervalul [10, 20]. Media ¸si abaterea medie p˘atratica pentru o variabil˘a aleatoare uniform repartizat˘ a pe [10, 20].
130
˘ ¸ I PROBABILIT AT
c) Fie (f n ) variabile aleatoare, care au densit˘a¸t ile de probabiliatate ( pn ), respectiv, unde p n are graficul:
Figura 8.4: Densitatea de probabilitate. S ¸irul de variabile aleatoare f n converge ˆın probabilitate, la 0 (f n
→ p 0)?
Exercit¸iul 8.5.1.2. O ret¸ea de traficant¸i de droguri pun droguri ˆın pachet¸ele ˆıntre 10g ¸si 50g. Distribut¸ia se apreciaz˘a c˘a se face uniform. Pachetele se pun ˆın baxuri, fiecare bax, avˆand 1000 pachet¸ele. Baxul este respins la controlul vamal dac˘a are mai mult de 32Kg. Folosind teorema limit˘a central˘a s˘a se determine probabilitatea ca baxul s˘a treac˘a controlul vamal. Exercit¸iul 8.5.1.3. Se consider˘a ecuat¸ia ax2 + bx + 1 = 0, a = 0, a,b R, 1 a 1, 2 b 2. Se aleg la ˆıntˆamplare a, b ˆın condit¸iile de mai sus. Se cere: a) S˘ a se determine p = P (A), probabilitatea ca ambele r˘ad˘acini s˘a fie reale. b) S˘a se determine n N astfel ˆıncˆat P ( ν¯n p 0, 01) = 0, 7, unde ν¯n este variabila aleatoare a frecvent¸elor relative ale aparit¸iei evenimentului A, A fiind evenimentul ca ambele r˘ad˘acini s˘a fie reale.
− ≤ ≤ − ≤ ≤
∈
8.5.2.
∈
| − | ≤
Testul 2
Exercit¸iul 8.5.2.1. a) Densitatea de probabilitate normal˘ a . Definit¸ie, propriet˘ a¸t i, graficul. b) Dac˘ a f este o variabil˘a aleatoare normal distribuit˘a, cu m = 70, σ = 5, calculat¸i P (60 f 70). c) Enunt¸at¸i teorema limit˘a central˘a sub forma Moivre-Laplace.
≤ ≤
131
TESTE
Exercit¸iul 8.5.2.2. Se aunc˘a dou˘ a zaruri. Not˘ a m cu A evenimentul ca suma zarurilor s˘a fie 7. a) Calculat¸i P (A). b) Determinat¸i variabila aleatoare ce monitorizeaz˘a ”aparit¸ia” evenimentului A. Determinat¸i m ¸si σ. c) Determinat¸i n N, de cˆate ori trebuie f˘acut˘ a experient¸a, astfel ˆıncˆat P ( ν¯ n p 0, 01) = 0, 8, unde ν¯ n este variabila aleatoare a frecvent¸elor relative ale aparit¸iei evenimentului A.
∈
|≤
| −
Exercit¸iul 8.5.2.3. O banc˘a are 10000 client¸i. Se estimeaz˘ a c˘ a un client pe o perioad˘a de o lun˘a are urm˘atoarele opt¸iuni: i) ˆın 30% din cazuri face un ˆımprumut de 100 euro; ii) ˆın 20% din cazuri nu face ˆımprumut, nu face economii; iii) ˆın 20% din cazuri face economii de 100 euro; iv) ˆın 30% din cazuri face un ˆımprumut de 200 euro. Not˘ am cu S suma conturilor tuturor client¸ilor. Determinat¸i: a) P (S 0), situat¸ia ˆın care banca este ˆın mare dificultate; b) P (S 1000000), situat¸ia ˆın care banca are mare profit; c) P (500000 S 700000).
≤ ≥
8.5.3.
≤ ≤
Testul 3
Exercit¸iul 8.5.3.1. a) Φ(x), funct¸ia lui Laplace. Definit¸ie, propriet˘a¸ti, graficul. Calculat¸i Φ(1) + Φ( 2). b) Enunt¸ul legii numerelor mari sub forma lui Bernoulli.
−
− ≤
Exercit¸iul 8.5.3.2. Se alege la ˆıntˆamplare o pereche de numere (x, y), 1 x, y 1. Not˘ am cu A evenimentul ca x 2 + y 2 1. a) Determinat¸i p = P (A). b) Se noteaz˘a cu ν¯ n ¸sirul variabilelor aleatoare ale frecvent¸elor relative ale aparit¸iei evenimentului A. Determinat¸i n astfel ˆıncˆat P ( ν¯n p 0, 01) = 0, 8.
≤
≤
| − |≤
Exercit¸iul 8.5.3.3. Se arunc˘a cu dou˘a zaruri ¸si se noteaz˘a suma zarurilor cu s. Se acord˘a 1 puncte dac˘a s 5. Se acord˘a 0 puncte dac˘a s = 6 sau s = 7. Se acord˘a 1 punct dac˘a s 8. Se face experient¸a de 1000 ori ¸si se noteaz˘a S = s. Determinat¸i P (100 S 150).
−
≤
≥ ≤ ≤
132
˘ ¸ I PROBABILIT AT
8.5.4.
Testul 4
Exercit¸iul 8.5.4.1. a) Inegalitatea lui Cebˆa¸sev. b) Fie f o variabil˘a aleatoare care are densitatea de probabilitate p(x) = Determinat¸i P (0
1 . + 1)
π(x2
≤ f ≤ 1).
Exercit¸iul 8.5.4.2. Se alege un triunghi, ˆın mod aleatoriu, din mult¸imea tuturor triunghiurilor. Fie A evenimentul ca un unghi al triunghiului ales s˘a fie mai mare sau egal cu 120◦ . Fie p = P (A). a) Calculat¸i p. b) Se efectueaz˘a aceast˘ a experient¸a˘ de 1000 ori. S˘a se determine probabilitatea ca evenimentul A s˘a se produc˘a de un num˘ar de ori cupris ˆıntre 100 ¸si 200 ori. c) S˘a se determine de cˆate ori trebuie efectuat˘a exprient¸a, astfel ˆıncˆat ν¯ n p, cu eroare de cel mult 0, 01 cu o probabilitatea de 0, 7.
≈
Exercit¸iul 8.5.4.3. Se arunc˘ a 1000 zaruri. Se noteaz˘ a cu S suma tuturor zarurilor. Determinat¸i n = P (3500 S 4000) ¸si m = P (4000 S 6000). Care num˘ar este mai mare, n sau m?
≤ ≤
8.5.5.
≤ ≤
Testul 5
Exercit¸iul 8.5.5.1. a) Teorema celor 3σ. Deducet¸i o teorem˘a analoag˘ a 2σ. n 1 b) Fie densitatea de probabilitate p n (x) = . π x2 + n2 p f n variabila aleatoare cu densitatea de probabilitate p n . f n 0?
·
→
Exercit¸iul 8.5.5.2. Fie f 1 , . . . , f1000 variabile aleatoare independente, definite (Ω, , ). Presupunem c˘a variabilele aleatoare au aceia¸si densitate de probabilitate p(x), a c˘arui grafic este reprezentat ˆın figura 8.5. a) Determinat¸i m ¸si σ, media ¸si abaterea medie p˘atratic˘a a acestor variabile aleatoare. b) Not˘ am cu S = f 1 + . . . f1000 . Determinat¸i P (S 1350).
K P
≤
Observat¸ia 8.5.1. Problema de mai sus poate fi privit˘a astfel: f 1 , f 2 , . . . f1000 sunt conturi ”independente” cu densitatea de probabilitatea p(x). Fiecare cont este ˆıntre 3 x 7 puncte sau ˆıntre 300 RON ¸si 700 RON, distribuite dup˘a legea p(x). S˘a se determine probabilitatea ca suma conturilor sa fie ˆın situat¸ia S 1350 puncte sau S 135000 RON.
− ≤ ≤ ≤
−
≤
133
TESTE
Figura 8.5: Densitatea de probabilitate.
K P
Exercit¸iul 8.5.5.3. Fie (f n ) un ¸sir de variabile aleatoare simple pe (Ω, , ) a 1 0 1 c˘aror repartit¸ie este: . 1 2 1 1 n n n a) Calculat¸i m n ¸si σ n , mediile ¸si abaterile medii p˘atratice ale lui f n . p b) Decidet¸i dac˘a f n 0.
−
−
→
8.5.6.
Testul 6
→ p
Exercit¸iul 8.5.6.1. a) Definit¸i convergent¸a ˆın probabilitate, f n f. b) Se consider˘a (f n ), un ¸sir de variabile aleatoare care au densitatea de probabilitate p n , acestea avˆand graficul din figura 8.6. p Decidet¸i dac˘a f n 0. c) Aceia¸si ˆıntrebare ca la punctul b) dac˘a p n are graficul din figura 8.7.
→
Exercit¸iul 8.5.6.2. Cˆa¸stigul zilnic al unui juc˘ator la rulet˘a este repartizat uniform ˆın intervalul [ 45, 55]. Care este probabilitatea ca el s˘a cˆa¸stige 1000 euro ˆın 100 zile?
−
Exercit¸iul 8.5.6.3. Probabilitatea de cˆa¸stig la rulet˘a este 0, 45. Presupunem c˘a la fiecare joc cˆa¸stig˘ a sau pierde 1 euro. Cˆ ate jocuri trebuie jucate astfel ˆıncˆa t cu probabilitatea de 0, 5 cˆa¸stigul cazinoului s˘a fie de cel put¸in 1000 euro?
134
˘ ¸ I PROBABILIT AT
Figura 8.6: Densitatea de probabilitate.
Figura 8.7: Densitatea de probabilitate.
8.6. 8.6.1.
Cˆ ateva distribut¸ii importante Repartit¸ii continue
Vom prezenta o serie de distribut¸ii continue precum ¸si principalele lor propriet˘a¸ti. Repartit¸ia normal˘ a
Definit¸ia 8.6.1. (Repartit¸ia normal˘ a ). Vom spune c˘a variabila aleatoare X urmeaz˘ a o repartit¸ie normal˘a de parametrii µ ¸si σ 2 (vom nota acest lucru prin
ˆ C ATEVA DISTRIBUT ¸ II IMPORTANTE
135
∼ N (µ, σ2)) dac˘a are densitatea de repartit¸ie: (x − µ)2 − 1 2σ 2 , n(x; µ, σ 2 ) = √ e σ 2π
X
x
∈ R.
Teorema 8.6.1. Media ¸si dispersia unei variabile aleatoare X repartizat˘ a nor2 mal de parametrii µ ¸si σ este: M (X ) = µ,
respectiv D2 (X ) = σ 2 . a X 1 ¸si X 2 au o repartit ¸ie N (µ1 , σ12 ), respectiv N (µ2 , σ22 ) Teorema 8.6.2. Dac˘ atunci αX 1 + βX 2 N (αµ1 + βµ 2 , α2 σ12 + β 2 σ22 )
∼
∈ R.
unde α, β
Repartit¸ia lognormal˘ a Definit¸ia 8.6.2. (Repartit¸ia lognormal˘ a ). Vom spune c˘a variabila aleatoare X (X > 0) urmeaz˘a o repartit¸ie lognormal˘ a (vom nota acest lucru prin X LN (µ, σ 2 )) dac˘ a logaritmul ei are densitatea de repartit¸ie N (µ, σ 2 ).
∼
Teorema 8.6.3. Media ¸si dispersia unei variabile aleatoare X repartizat˘ a log2 normal de parametrii µ ¸si σ este: 1
2
M (X ) = e µ+ 2 σ , respectiv 2
D2 (X ) = e 2µ+σ (eσ
2
− 1).
Teorema 8.6.4. Dac˘ a variabila aleatoare X urmeaz˘ a o repartit ¸ie lognormal˘ a 2 de parametrii µ ¸si σ 0 atunci repartit ¸ia lognormal˘ a standardizat˘ a tinde c˘ atre repartit ¸ia N (0, 1).
→
136
˘ ¸ I PROBABILIT AT
Teorema 8.6.5. Dac˘ a X 1 ¸si X 2 au o repartit ¸ie LN (µ1 , σ12 ), respectiv LN (µ2 , σ22 ) atunci: eβ X 1α1 X 2α2 N (β + α1 µ1 + α2 µ2 , α21 σ12 + α22 σ22 )
∼
unde β > 0 ¸si α1 , α2
∈ R.
Repartit¸ia uniform˘ a Definit¸ia 8.6.3. Vom spune c˘a variabila aleatoare X are o repartit¸ie uniform˘a ˆın intervalul [a, b] (vom scrie acest lucru prin X U (a, b)) dac˘ a densitatea sa de repartit¸ie este:
∼
u(x) =
1
b
− a,
x
∈ [a, b] ¸si
u(x) = 0,
∈
x / [a, b].
Teorema 8.6.6. Media ¸si dispersia unei variabile aleatoare X repartizat˘ a U (a, b) : M (X ) =
a+b , 2
respectiv 2
D (X ) =
(b
− a)2 . 12
Repartit¸ia exponent¸ial˘ a Definit¸ia 8.6.4. Vom spune despre variabila aleatoare X c˘a urmeaz˘a o repartit¸ie exponent¸ial˘a de parametru λ > 0 (vom scrie acest lucru X E xp(λ)) dac˘ a densiλt − tatea de repartit¸ie este f (t) = λe pentru t 0 ¸si f (t) = 0 pentru t < 0.
≥
Teorema 8.6.7. Dac˘ a X
∼ Exp(λ) atunci M (X ) =
1 , λ
D2 (X ) =
1 λ2
M (X r ) =
r! . λr
¸si
∼
ˆ C ATEVA DISTRIBUT ¸ II IMPORTANTE
137
Exercit¸iul 8.6.1. Dac˘a X ¸si Y sunt variabile aleatoare independente repartizate Exp(λ) atunci X Exp(λ). X + Y
∼
Repartit¸ia gama Definit¸ia 8.6.5. Vom spune despre o variabil˘a aleatoare c˘a urmeaz˘a o repartit¸ie gama de parametrii α ¸si β (vom scrie acest lucru X γ (α, β )) dac˘ a are densitatea de repartit¸ie: x 1 f (x) = α xα−1 e− β , 0 x < . β Γ(α)
∼
≤
∞
unde Γ este funct¸ia lui Euler definit˘a prin formula:
∞
Γ(α) =
xα−1 e−x dx.
0
∼
Teorema 8.6.8. Dac˘ a X γ (α1 , β ) ¸si Y independente atunci: a) X + Y γ (α1 + α2 , β ); X b) are densitatea de repartit ¸ie: Y
∼ γ (α2, β ) sunt variabile aleatoare
∼
h(x) =
Γ(α1 + α2 ) α1 −1 x (1 + x)−(α1 +α2 ) , Γ(α1 )Γ(α2 )
x
≥ 0.
Generalizˆ and la n variabile aleatoare, obt¸inem repartit¸ia Dirichlet. Teorema 8.6.9. Dac˘ a X i γ (αi , 1) sunt k + 1 variabile aleatoare independente atunci repartit ¸ia variabilelor aleatoare Y 1 , . . . , Yk+1 date de:
∼
Y j =
X j , j = 1, . . . , k X 1 + . . . + 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 ,
138
˘ ¸ I PROBABILIT AT
unde 0 < y j ¸si y1 + . . . + yk < 1. n cu 2 orice n ˆıntreg pozitiv ¸si β = 2σ 2 . Repartit¸ia astfel obt¸inut˘a se nume¸ste repartit¸ia χ2 cu n grade de libertate. Un alt caz particular important al repartit¸iei gama se obt¸ine pentru α =
Observat¸ia 8.6.1. Pentru n = 2 repartit¸ia χ 2 devine repartit¸ia exponent¸ial˘ a. Teorema 8.6.10. Dac˘ a X i variabila aleatoare:
∼
N (0, σ 2 ) sunt n variabile independente atunci n
Y =
i=1
X j2
∼ χ2(n).
∼ χ2(n), atunci asimptotic X − nσ 2 √ ∼ N (0, 1).
Teorema 8.6.11. Dac˘ a X
σ 2 2n
De obicei, cunatilele repartit¸iei χ2 (n) sunt tabelate pˆan˘a la n = 30, deoarce pentru n > 30 este posibil s˘a se foloseasc˘a cunatilele repartit¸iei N (0, 1).
ˆ C ATEVA DISTRIBUT ¸ II IMPORTANTE
139
Repartit¸ia beta Definit¸ia 8.6.6. Vom spune c˘a variabila aleatoare X urmeaz˘a o repartit¸ie beta de parametrii α ¸si β (vom scrie acest lucru ca X B e(α, β )), dac˘ a are densitatea de repartit¸ie:
∼
f (x) =
Γ(α+β ) α 1 (1 Γ(α)Γ(β ) x
− x)β −1,
−
0
0 < x < 1; α,β > 0 ˆın rest.
a ca o transformare a repartit¸ie Definit¸ia 8.6.7. Repartit¸ia F (m, n) este obt¸inut˘ beta: βX Y = unde X Be(α, β ) α(1 X ) cu α =
m 2
∼
−
¸si β =
f (x) =
n ¸ia 2 . Distribut
n Γ( m+ ) 2 m Γ( 2 )Γ( n ) 2
α β
α
corespunz˘atoare variabilei Y
yα−1 (1 + αβ y)−(α+β ) ,
0
∼ F (m, n) este:
0 < x < 1; α, β > 0 ˆın rest.
∼ χ2(m) ¸si Y ∼ χ2(n) atunci:
Teorema 8.6.12. Dac˘ a X
F =
X/m Y /n
∼ Be(α, β ).
Definit¸ia 8.6.8. Repartit¸ia t(n) (t cu n grade de liberatate) este obt¸inut˘ a ca o transformare a repartit¸ie F (1; n) ¸si anume:
√
t =
X
iar densitatea de repartit¸ie corespunz˘atoare este: f (x) =
n+1
√ Γ(πnΓ( n) ) (1 + xn ) − n 2
2
+1 2
,
2
0
−∞ < x < ∞; n = 1, 2, 3, . . . ˆın rest.
∼ N (0, 1) ¸si Y ∼ χ2(n) atunci
Teorema 8.6.13. Dac˘ a X
t =
X
∼ Y n
t(n).
140
˘ ¸ I PROBABILIT AT
Repartit¸ia Cauchy
C
Definit¸ia 8.6.9. Repartit¸ia Cauchy (µ; θ) este definit˘a de densitatea de repartit¸ie: µ 1 f (x) = , x R, µ > 0. π µ2 + (x θ)2
−
∈
Observat¸ia 8.6.2. Repartit¸ia Cauchy este un exemplu de repartit¸ie care nu are momente.
8.6.2.
Distribut ¸ii discrete
Vom prezenta principalele distribut¸ii discrete: Bernoulli, Binomial˘a, Poisson, hipergeometric˘a ¸si geometric˘a. Distribut¸ia Bernoulli Definit¸ia 8.6.10. Distribut¸ia Bernoulli de parametru p este dat˘a de P (X = 1) = p ¸si P (X = 0) = 1 p, cu p (0, 1).
−
∈
Teorema 8.6.14. Dac˘ a variabila X urmeaz˘ a o distribut ¸ie Bernoulli de para2 metru p atunci media este M (X ) = p iar dispersia D (X ) = p(1 p).
−
Distribut¸ia binomial˘ a Definit¸ia 8.6.11. Distribut¸ia binomial˘ a Bi(n, p) de parametrii n ¸si p este dat˘a i n i i − de P (X = i) = C n p (1 p) pentru i = 0, . . . , n .
−
Teorema 8.6.15. Dac˘ a variabila X urmeaz˘ a o distribut ¸ie binomial˘ a Bi(n, p)atunci 2 media este M (X ) = np iar dispersia D (X ) = np(1 p).
−
Teorema 8.6.16. Dac˘ a X 1 , . . . , Xn sunt n variabile aleatoare independente repartizate Bernoulli de parametru p atunci variabila mial˘ a Bi(n, p).
n
i=1
X i urmeaz˘ a o repartit ¸ie bino-
Observat¸ia 8.6.3. Distribut¸ia binomial˘ a Bi(n, p) de parametrii n ¸si p este modelat˘ a de select ¸ia cu revenire dintr-o urn˘a U (a, b) care cont¸ine a bile albe ¸si b bile negre ¸si este probabilitatea ca din n extrageri s˘a se obt¸in˘a k bile albe:
ˆ C ATEVA DISTRIBUT ¸ II IMPORTANTE
P (X = k)
141
− k
a a+b
= C nk
n a+b
1
n k
−
.
Distribut¸ia Poisson
→ ∞ →
Distribut ¸ia Poisson se obt¸ine din distribut¸ia Bi(n, p) cˆand n , p 0 ¸si produsul n p = λ este constant. Funct¸ia densitate de probabilitate este dat˘a de:
·
λk e−λ , k!
P (X = k) =
k = 0, 1, 2, . . .
Distribut¸ia hipergeometic˘ a Distribut ¸ia hipergeometric˘ a este modelat˘a de o select ¸ie f˘ ar˘ a revenire dintr-o urn˘a U (a, b) care cont¸ine a bile albe ¸si b bile negre ¸si este probabilitatea ca din n extrageri s˘a se obt¸in˘a k bile albe: C ak C bn−k P (X = k) = unde n n C a+b
≤ a + b ¸si k ≤ a.
Distribut¸ia geometric˘ a Distribut¸ia geometric˘a are funct¸ia de densitate de probabilitate dat˘a de: P (X = n) = p(1
− p)n, pentru n = 0, 1, . . .
Este numit˘a distribut¸ia lui Pascal (1623-1662) ¸si mai este numit˘ a distribut¸ia primului succes.
8.6.3.
Calculul numeric al cuantilelor
Vom prezenta dou˘a metode numerice de calcul a cuantilei de ordinul α pentru repartit¸ia N (0, 1), respectiv repartit¸ia χ 2 (n). Cuantila repartit ¸iei normale F˘ ar˘ a restrˆangerea generalit˘a¸tii putem presupune c˘a α tehnica dezvolt˘arii ˆın fract¸ii continue, vom obt¸ine: 2
uα = ω
−
i=0 3 i=0
ai ω i , ω = bi ω i
ln
∈ [0, 0, 5]. Atunci, utilizˆand
1 , α2
142
˘ ¸ I PROBABILIT AT
unde constantele a i ¸si b i sunt:
a0 = 2, 515517 a1 = 0, 802853 a2 = 0, 010328 b0 = 1 b1 = 1, 432877 b2 = 0, 189269 b3 = 0, 001308.
Cuantilele repartit¸iei chi-p˘ atrat Cuantila de ordinul α a repartit¸iei χ 2 (n), pentru n > 30, este dat˘a de: hα = n +
√
2 2nuα + u2α 3
− 23 + O( √ 1n ).
Pentru detalii se poate consulta Abramowitz ¸si Stegun [1].
8.6.4.
Intervale de ˆıncredere
Se nume¸ste interval de ˆıncredere cu nivelul de semnificat ¸ie α al caracteristicii (medie, dispersie, proport¸ie etc.) c al unei variabile aleatoare X un interval [a; b] cu proprietatea: Pr(c
−
∈ [a; b]) ≥ 1 − α,
valoarea 1 α se nume¸ste nivel de ˆıncredere . Fie x1 , . . . xn realiz˘ arile a n variabile aleatoare independente identic repartizate ca ¸si X (din lumea lui X ). Atunci:
{
}
x¯ =
x1 + . . . + xn n
este un estimator nedeplasat pentru media m a variabilei aleatoare X ¸si: 2
s =
(x1
− x¯)2 + . . . (xn − x¯)2 n−1
este un estimator nedeplasat pentru dispersia σ 2 a variabilei aleatoare X . 1. Intervalul de ˆıncredere pentru media m a unei populat¸ii normale, cu σ cunoscut. Intervalul de ˆıncredere pentru media m a unei populat¸ii nu neap˘arat normale dar n 30, cu σ cunoscut.
≥
ˆ C ATEVA DISTRIBUT ¸ II IMPORTANTE
143
− z1− √ σn < m < ¯x + z1− √ σn nivelul de ˆıncredere este 1 − α, iar z 1− fiind determinat din relat¸ia: x ¯
α
α
2
2
α 2
Φ(z1− α2 ) = Pr(z
≤ z1−
) =1 2
α
− α2 .
2. Intervalul de ˆıncredere pentru media m a unei populat¸ii normale, cu σ necunoscut ¸si n 30, este:
≤
− t1− ;n−1 √ sn < m < ¯x + t1− ;n−1 √ sn nivelul de ˆıncredere este 1 − α, iar t 1− (n − 1) fiind determinat din relat¸ia: x ¯
α
α
2
2
α 2
Pr(t
≤ t1− ;n−1) = 1 − α2 , α 2
unde num˘arul gradelor de libertate al repartit¸iei t este n
− 1.
3. Intervalul de ˆıncredere pentru proport¸ia p a unei populat¸ii repartizate binomial este: p¯
p¯ ¯q < p < p¯ + z1− α2 n
− z1− nivelul de ˆıncredere este 1 − α, iar z 1− α 2
Φ(z1− α2 ) = Pr(z unde np
α 2
p¯ ¯q n
fiind determinat din relat¸ia:
≤ z1−
) =1 2
α
− α2 ,
≥ 5, nq ≥ 5, p + q = 1.
4. Intervalul de ˆıncredere pentru dispersia σ 2 a unei populat¸ii normale este: (n 1)s2 (n 1)s2 2 < σ < χ21− α ;n−1 χ2α ;n−1
−
−
2
nivelul de ˆıncredere este 1
2
− α, iar χ 2 ;n−1 fiind determinat din relat¸ia: α 2
Pr(χ2
≤ χ2 ;n−1) = α2 , α 2
unde num˘arul gradelor de libertate al repartit¸iei χ 2 este n
− 1.
144
˘ ¸ I PROBABILIT AT
8.6.5.
Teste statistice
Fie dou˘a ipoteze statistice H 0 (ipoteza nul˘a) ¸si H A (ipoteza alternativ˘a) asupra caracteristicii unei variabile aleatoare. Definim: 1 α = Pr(accept H 0 H 0 adev˘arat˘ a) probabilitatea aparit¸iei unui rezultat negativ ; α = Pr(resping H 0 H 0 adev˘arat˘a) probabilitatea aparit¸iei unui rezultat fals pozitiv ; 1 β = Pr(resping H 0 H 0 fals˘a) probabilitatea aparit¸iei unui rezultat pozitiv ; β = Pr(accept H 0 H 0 fals˘a) probabilitatea aparit¸iei unui rezultat fals negativ . Decizia referitoare la apartenent¸a la una din cele dou˘a ipoteze se face pe baza unei funct¸ii de test f calculat˘a dintr-un e¸santion X 1 ,...,X n de volum n. Regiunea de acceptare a ipotezei alternative, deci de respingere a ipotezei nule se nume¸ste regiune critic˘a. Ideal este ca ambele tipuri de erori s˘a fie minime. Acest lucru nu este posibil pentru testele bazate pe intervale de ˆıncredere pentru care valoarea α este fixat˘a. Valoarea P este cel mai mic prag de semnificat¸ie (risc de ordinul 1) pentru care se respinge ipoteza nul˘a H 0 (pe baza valorilor statisticii f (X 1 ,...,X n )) deci:
−
|
− −
|
−
|
|
−
≤ α
P
−
resping H 0 la pragul α,
¸si α < P accept H 0 la pragul α. Observat¸ia 8.6.4. Valoarea P asociat˘ a unei statistici f (X 1 ,...,X n ) se obt¸ine din ecuat¸ia P = P r(resping H 0 regiunea de respingere pentru H 0 dat˘ a de valoarea f ).
|
1. Pentru ipoteza nul˘ a H 0 : m = m0 de verificare a mediei m a unei populat¸ii nu neap˘arat normale, cu σ cunoscut, pentru care volumul sondajului n 30, versus ipoteza alternativ˘a H A : m m0 , regiunea critic˘a este dat˘a de:
≥
≥
z =
√ n(¯x − m ) 0
σ
≥ z1−α.
2. Pentru ipoteza nul˘ a H 0 : m = m0 de verificare a mediei m a unei populat¸ii nu neap˘arat normale, cu σ cunoscut, pentru care volumul sondajului n 30, versus ipoteza alternativ˘a H A : m m0 , regiunea critic˘a este dat˘a de: z =
≤ √ n(¯x − m ) 0
σ
≥
≤ zα .
ˆ C ATEVA DISTRIBUT ¸ II IMPORTANTE
145
Figura 8.8: Interpretarea testelor statistice. 3. Pentru ipoteza nul˘ a H 0 : m = m0 de verificare a mediei m a unei populat¸ii nu neap˘arat normale, cu σ cunoscut, pentru care volumul sondajului n 30, versus ipoteza alternativ˘a H A : m = m 0 , regiunea critic˘a este dat˘a de:
≥
z =
√ n(¯x − m ) 0
σ
≤z
α 2
sau z =
√ n(¯x − m ) 0
σ
≥ z1−
α 2
.
4. Pentru ipoteza nul˘ a H 0 : m = m0 de verificare a mediei m a unei populat¸ii normale, cu σ necunoscut, pentru care volumul sondajului n 30, versus ipoteza alternativ˘ a H A : m = m 0 , regiunea critic˘a este dat˘a de:
≤
t =
√ n(¯x − m ) 0
≤ t ;n−1 sau t = α
s
2
√ n(¯x − m ) 0
s
≥ t1− ;n−1. α 2
5. Pentru ipoteza nul˘ a H 0 : m 1 = m 2 de verificare a egalit˘a¸tilor mediilor m 1 ¸si m2 unor populat¸ii nu neap˘arat normale, cu σ 1 respectiv σ 2 cunoscute, pentru care volumul sondajului n 30, m 30, versus ipoteza alternativ˘a H A : m 1 = m 2 , regiunea critic˘a este dat˘a de:
≥
z =
≥
−− x ¯
σ12 n
y¯ σ22 m
≤z
α 2
sau z =
−− x ¯
σ12 n
y¯ σ22 m
≥ z1−
α 2
.
146
˘ ¸ I PROBABILIT AT
6. Pentru ipoteza nul˘ a H 0 : σ 2 = σ02 de verificare a egalit˘a¸t ilor dispersiilor unei populat¸ii normale versus ipoteza alternativ˘a H A : σ 2 > σ02 , regiunea critic˘a este dat˘a de: 2
χ =
(n
− 1)s2 ≥ χ2 σ02
1 α;n 1 .
− −
7. Pentru ipoteza nul˘ a H 0 : σ 2 = σ02 de verificare a egalit˘a¸t ilor dispersiilor unei populat¸ii normale versus ipoteza alternativ˘a H A : σ 2 < σ02 , regiunea critic˘a este dat˘a de: 2
χ =
(n
− 1)s2 ≤ χ2
α;n 1 .
σ02
−
8. Pentru ipoteza nul˘ a H 0 : σ 2 = σ02 de verificare a egalit˘a¸t ilor dispersiilor unei populat¸ii normale versus ipoteza alternativ˘a H A : σ 2 = σ02 , regiunea critic˘a este dat˘a de:
χ2 =
(n
− 1)s2 ≤ χ2
α
σ02
;n 1
2
−
sau 2
χ =
(n
− 1)s2 ≥ χ2 σ02
− α ;n−1 .
1
2
Partea II
CRIPTOLOGIE
147
Capitolul 9
SISTEMUL DE CIFRARE CEZAR 9.1.
Breviar teoretic
Algoritmul de cifrare al lui Cezar este un sistem de cifrare monoalfabetic pentru care textul clar este construit din literele alfabetului latin A Z ¸si cheia de cifrare este reprezentat˘a de un num˘ar ˆıntreg k 0, . . . , 25 . ˆIn faza de preprocesare, delimitatorul de spat¸iu este ignorat sau ˆınlocuit cu caracterul cel mai put¸in frecvent din limba ˆın care este textul clar (ˆın limba romˆan˘ a Q). Fiecarei litere din textul surs˘a i se asociaz˘a ordinea lexicografic˘a x. Pentru cifrare, aceasta se ˆınlocuie¸ste prin caracterul cod (x + k) mod 26. Pentru descifrare se utilizeaz˘a regula invers˘a: (x k) mod 26.
∈ {
}
−
−
9.2.
Exercit ¸ii rezolvate
Exercit¸iul 9.2.1. S˘a se cifreze mesajul: CRIPTOGRAFIE algoritmul utilizat fiind cifrul lui Cezar cu cheia de cifrare k = 7. Rezolvare: Se cifreaz˘a liter˘a cu liter˘a, ¸tinˆand cont de pozit¸ia ocupat˘ a de litere ˆın alfabet: - Literei C ˆıi corespunde x = 2, deci se va cifra ˆın (2 + 7) mod 26 = 9 adic˘a J; - Literei R ˆıi corespunde x = 16, deci se va cifra ˆın (17 + 7) mod 26 = 24, adic˘a Y; 149
150
SISTEMUL DE CIFRARE CEZAR
Se continu˘a ˆın mod analog pentru fiecare liter˘a ¸si ˆın final se obt¸ine JYPWA VNYHM PL. Exercit¸iul 9.2.2. S˘a se decripteze mesajul: JAJSN SHWDU YTQTL DXNQJ SHJNX LTQIJ SXXXX algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i cheia de cifrare. Rezolvare: Se verific˘a, pe rˆand, toate cheile posibile, pˆan˘ a cˆand se obt¸ine un text cu sens. ˆIn funct¸ie de lungimea cheii, corespondent¸a dintre literele textului clar ¸si cele ale textului cifrat devine: x textul clar k = 1 k = 2 k = 3 k = 4 k = 5 ...
0 A B C D E F ..
1 B C D E F G ..
2 C D E F G H ..
3 4 5 6 ... 25 D E F G ... Z E F G H ... A F G H I ... B G H I J ... C H I J K ... D I J K L ... E .. .. .. .. .. ..
Se observ˘a c˘a sistemul presupune ˆınlocuirea fiec˘arei litere cu litera corespunz˘atoare ˆın alfabetul rotit cu k pozit¸ii. Decriptˆ and fiecare caracter ˆın corespondentul s˘au clar se obt¸ine, pe rˆand: - pentru k = 1 : IZIRM RGVCT XSPSK CWMPI RGIMW KSPHI RWWWW - pentru k = 2 : HYHQL QFUBS WRORJ BVLOH QFHLV JROGH QVVVV - pentru k = 3 : GXGPK PETAR VQNQI AUKNG PEGKU IQNFG PUUUU - pentru k = 4 : FWFOJ ODSZQ UPMPH ZTJMF ODFJT HPMEF OTTTT - pentru k = 5 : EVENI NCRYP TOLOG YSILE NCEIS GOLDE NSSSS Dup˘ a o regrupare a literelor, pentru k = 5 se obt¸ine: EVEN IN CRYPTOLOGY SILENCE IS GOLDEN.
9.3.
Exercit ¸ii propuse
Exercit¸iul 9.3.1. Scriet¸i o aplicat¸ie care s˘a implementeze urm˘atoarele funct¸ii: - cifrarea unui text cu ajutorul algoritmului de cifrare Cezar;
EXERCIT ¸ II PROPUSE
151
- descifrarea unui text cifrat cu algoritmul lui Cezar; - decriptarea unui text, despre care se ¸stie c˘a a fost cifrat prin metoda Cezar, prin generarea tuturor solut¸iilor posibile. Verificat¸i rezultatul pe datele de intrare din exercit¸iile urm˘atoare. Exercit¸iul 9.3.2. S˘a se cifreze mesajul: MIRACLE algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 3. R˘ aspuns: PLUDFOH. Exercit¸iul 9.3.3. S˘a se cifreze mesajul: CALCULATOR algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 11. R˘ aspuns: NLWNF WLEZC. Exercit¸iul 9.3.4. S˘a se cifreze mesajul: ELECTRONIC MAIL algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 5. R˘ aspuns: JQJHY WTSNH RFNQ. Exercit¸iul 9.3.5. S˘a se cifreze mesajul: DIGITAL SIGNATURE algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 2. R˘ aspuns: FKIKV CNUKI PCVWT G. Exercit¸iul 9.3.6. S˘a se decripteze mesajul: IGQTI GYCUJ KPIVQ PXXXX algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i cheia de cifrare. R˘ aspuns: GEORGE WASHINGTON, k = 2. Exercit¸iul 9.3.7. S˘a se decripteze mesajul: UIPNB TKFGG FSTPO algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i cheia de cifrare. R˘ aspuns: THOMAS JEFFERSON, k = 1.
152
SISTEMUL DE CIFRARE CEZAR
Exercit¸iul 9.3.8. S˘a se decripteze mesajul: AREYY KYYOS VYUTM XGTZ algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i cheia de cifrare. R˘ aspuns: ULYSSES SIMPSON GRANT, k = 6. Exercit¸iul 9.3.9. S˘a se decripteze mesajul: CDTC JCON KPEQ NP algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i cheia de cifrare. R˘ aspuns: ABRAHAM LINCOLN, k = 2. Exercit¸iul 9.3.10. S˘a se decripteze mesajul: ECFDEPO ALCEJ algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i cheia de cifrare. R˘ aspuns: TRUSTED PARTY, k = 11. Exercit¸iul 9.3.11. S˘a se cifreze mesajul: EXAMEN CRIPTOGRAFIE algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 3. R˘ aspuns: HADPH QFULS WRJUD ILH. Exercit¸iul 9.3.12. S˘a se decripteze mesajul: HADPH QFULS WRJUD ILH algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i cheia de cifrare. R˘ aspuns: EXAMEN CRIPTOGRAFIE, k = 3. Exercit¸iul 9.3.13. S˘a se cifreze mesajul: KANSAS CITY algoritmul utilizat fiind cifrul lui Cezar, cheia de cifrare k = 4. R˘ aspuns: OERWE WGMXC. Exercit¸iul 9.3.14. S˘a se decripteze mesajul: OERWE WGMXC algoritmul utilizat fiind cifrul lui Cezar. Indicat¸i cheia de cifrare. R˘ aspuns: KANSAS CITY, k = 4.
Capitolul 10
METODA SUBSTITUT ¸ IEI 10.1.
Breviar teoretic
Operat¸ia de cifrare se bazeaz˘a pe o corespondent ¸˘ a biunivoc˘a ˆıntre alfabetul clar ¸si alfabetul cifrat . Se presupune c˘a alfabetul clar este format din cele 26 de litere (ˆın limba romˆan˘a f˘ar˘ a diacritice) plus delimitatorul de cuvˆant spat¸iul. Alfabetul cifrat poate fi format din aceelea¸si caractere sau doar din cele 26 de litere (ale limbii romˆane) caz ˆın care spat¸iul se va ˆınlocui cu cea mai put¸in frecvent˘a liter˘a (Q) sau se va ignora pur ¸si simplu. ˆIn continuare, delimitatorul de cuvˆant este ˆınlocuit cu litera Q. Corespondent¸a dintre cele dou˘a alfabete poate fi: - aleatoare; - pseudoaleatoare: plecˆand de la o parol˘a se construie¸ste alfabetul cifrat. ˆIntrucˆat ˆın cazul corespondent¸ei aleatoare lucrurile sunt cˆat se poate de clare, vom prezenta pe scurt o metod˘a de construct¸ie a corespondent¸ei ˆın cel de-al doilea caz. Pornind de la o parol˘a, alfabetul cifrat este construit dup˘a urm˘atorul algoritm: - se scriu, o singur˘a dat˘ a, ˆın ordinea aparit¸iei, literele din parol˘a; - se scriu literele alfabetului care nu apar ˆın parol˘a. Corespondent ¸a ˆıntre cele dou˘a alfabete se realizeaz˘a dup˘ a regula alfabet ˆın alfabet dup˘ a o permutare fix˘a σ (aceasta poate fi chiar permutarea identic˘a iar la descifrare se aplic˘a aceela¸si procedeu dar cu inversa permut˘arii σ). ˆIn funct¸ie de forma permut˘arii substitut¸ia se nume¸ste: - direct˘ a (alfabetul cifrat are acela¸si sens lexicografic cu alfabetul clar, sunt ˆın total 26 astfel de substitut¸ii). Exemplu de substitut¸ie direct˘a: A G
B H
C I
D J
E K
F L
G M 153
H N
I O
J P
K Q
L R
M S
154
METODA SUBSTITUT ¸ 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 lexicografic cu alfabetul clar, sunt ˆın total 26 de astfel de substitut¸ii). Exemplu de substitut¸ie invers˘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 reciproce (dac˘ a litera se substituie cu litera atunci se va substitui cu ) ¸si anume: - atbash (prima jum˘atate a literelor alfabetului se mapeaz˘ a ˆın cea de-a dou˘ a jum˘atate ˆın ordine invers lexicografic˘a):
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 jum˘ atate a literelor alfabetului se mapeaz˘ a ˆın cea de-a dou˘ a jum˘atate ˆın ordine lexicografic˘a): A N
B O
C P
D Q
E R
F S
G T
H 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
M O
E N
S Z
T Y
U X
V W
- atbah :
ˆIn cele ce urmeaz˘a vom presupune faptul c˘a substitut¸ia este direct˘a dac˘ a nu este specificat altfel. Definit¸ia 10.1.1. Un cifru de substitut ¸ie liniar de la Zm la Zm (m fiind num˘arul de caractere al alfabetului surs˘a) poate fi descris prin funct¸ia f : Z m Zm 1 − definit˘ a prin f (x) = αx + β cu gcd(α, m) = 1, funct¸ia de descifrare fiind f (x) = 1 − α (x β ). Cheia de cifrare o formeaz˘a numerele α ¸si β .
→
−
Observat¸ia 10.1.1. Cifrul de substitut¸ie are proprietatea de confuzie (ascunderea leg˘aturii dintre textul clar ¸si textul cifrat).
155
EXERCIT ¸ II REZOLVATE
10.2.
Exercit¸ii rezolvate
Exercit¸iul 10.2.1. S˘a se construiasc˘a alfabetul de cifrare cu ajutorul parolei TESTARESISTEM iar apoi s˘a se cifreze mesajul IN CRIPTOGRAFIE NICI O REGULA NU ESTE ABSOLUTA. Permutarea care realizeaz˘a corespondent¸a este: 0 25
1 24
2 23
3 22
4 21
5 20
6 19
7 18
8 17
9 16
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 dintre alfabetul clar ¸si alfabetul de cifrare (ˆınainte de realizarea permut˘ 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 dintre alfabetul clar ¸si alfabetul de cifrare dup˘ a realizarea permut˘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 spat¸iul este ˆınlocuit cu cea mai put¸in frecvent˘a liter˘a: INQCRIPTOGRAFIEQNICIQOQREGULAQNUQESTEQABSOLUTA. Mesajul cifrat va fi: OHDXC OFMGQ CZUOV DHOXO DGDCV QIKZD HIDVB MVDZY BGKIM Z.
156
METODA SUBSTITUT ¸ IEI
Exercit¸iul 10.2.2. S˘a se descifreze mesajul: DOJMD OVPGF OMATN BXXXX algoritmul utilizat fiind o substitut¸ie simpl˘a determinat˘a de cuvˆantul cheie PASSWORD. Rezolvare: Corespondent¸a dintre alfabetul clar ¸si alfabetul 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.
Exercit¸ii propuse
Exercit¸iul 10.3.1. Dezvoltat¸i o aplicat¸ie care s˘a simuleze execut¸ia funct¸iilor de cifrare/descifrare corespunz˘atoare metodei substitut¸iei. Exercit¸iul 10.3.2. Dezvoltat¸i o aplicat¸ie care s˘a decripteze, prin metoda frecvent¸ei, mesajele cifrate prin metoda substitut¸iei. Exercit¸iul 10.3.3. Dezvoltat¸i o aplicat¸ie care s˘a decripteze, prin metoda atacului cu text clar cunoscut, mesajele cifrate prin metoda substitut¸iei. Exercit¸iul 10.3.4. S˘a se cifreze mesajul: WEB DESIGN algoritmul utilizat fiind o substitut¸ie simpl˘a determinat˘a de cuvˆantul cheie BROWSER. R˘ aspuns: VSRWS PDAJ. Exercit¸iul 10.3.5. S˘a se cifreze mesajul: PUBLIC KEY algoritmul utilizat fiind o substitut¸ie simpl˘a determinat˘a de cuvˆantul cheie ASYMMETRIC. R˘ aspuns: KQSFC YDEX.
EXERCIT ¸ II PROPUSE
157
Exercit¸iul 10.3.6. S˘a se descifreze mesajul: ONCJB DFJPT DCJKN KKQTV TDSXXX algoritmul utilizat fiind o substitut¸ie simpl˘a determinat˘a de cuvˆantul cheie CRIPTOGRAFIE. R˘ aspuns: FRANKLIN DELANO ROOSEVELT. Exercit¸iul 10.3.7. S˘a se descifreze mesajul: EKBJO DSZAT NCGPF TJJTP YXXXX algoritmul utilizat fiind o substitut¸ie simpl˘a determinat˘a de cuvˆantul cheie CRIPTO. R˘ aspuns: JOHN FITZGERALD KENNEDY. Exercit¸iul 10.3.8. Demonstrat¸i c˘a metoda de cifrare prin substitut¸ie este un sistem ˆınchis. Exercit¸iul 10.3.9. S˘a se cifreze mesajul: PRIVATE KEY algoritmul utilizat fiind o substitut¸ie simpl˘a determinat˘a de cuvˆantul cheie BUCURESTI. R˘ aspuns: LNAVB PEFEY. Exercit¸iul 10.3.10. S˘a se descifreze mesajul: LNAVB PEFEY algoritmul utilizat fiind o substitut¸ie simpl˘a determinat˘a de cuvˆantul cheie BUCURESTI. R˘ aspuns: PRIVATE KEY. Exercit¸iul 10.3.11. S˘a se cifreze mesajul: ASSYMETRIC ENCRYPTION algoritmul utilizat fiind o substitut¸ie simpl˘a determinat˘a de cuvˆantul cheie BRASOV. Exercit¸iul 10.3.12. S˘a se descifreze mesajul: BPPYI OQNEA OJANY LQEKJ algoritmul utilizat fiind o substitut¸ie simpl˘a determinat˘a de cuvˆantul cheie BRASOV. R˘ aspuns: ASSYMETRIC ENCRYPTION.
158
METODA SUBSTITUT ¸ IEI
Capitolul 11
SISTEMUL DE CIFRARE PLAYFAIR 11.1.
Breviar teoretic
Sistemul Playfair , propus ˆın anul 1854 de Charles Wheatstone dar promovat pentru utilizare de Lordul Playfair, este unul dintre cele mai cunoscute sisteme de cifrare digrafice (transform˘a un grup de 2 litere ˆıntr-un grup de alte dou˘ a litere). Acest sistem de cifrare este foarte simplu de folosit ¸si mult mai sigur decˆat sistemele de substitut¸ie monoalfabetice. Descriem ˆın continuare modul de utilizare ˆın cazul alfabetului latin compus din 26 litere. Literele alfabetului A Z sunt trecute ˆıntr-un careu de 5 5 (litera I fiind asimilat˘a literei J ). Textul clar este preprocesat astfel ˆıncˆat acesta s˘a fie compatibil cu matricea de cifrare: delimitatorul de cuvˆant este ignorat sau este ˆınlocuit cu cea mai put¸in frecvent˘a liter˘a, litera I este asimilat˘a cu litera J, ¸si dac˘a este cazul, se adaug˘ a o liter˘a la text pentru a avea un num˘ar par de digrame. Regula de cifrare este urm˘atoarea: i) Dac˘ a digrama care se dore¸ste cifrat˘a nu are literele pe aceea¸si linie sau coloan˘a, atunci regula de cifrare este regula dreptunghiului , traseul fiind pe vertical˘ a de la cea de-a doua liter˘a a digramei c˘atre prima liter˘a. Sau, altfel spus, prima litera a perechii cifrate este aceea care se gaseste pe aceeasi linie cu prima litera a perechii ˆın clar. ii) Dac˘a digrama ce se dore¸ste cifrat˘a are literele pe aceea¸si linie, atunci se aplic˘a regula: cifreaz˘ a la dreapta, descifreaz˘ a la stˆanga . iii) Dac˘a digrama ce se dore¸ste cifrat˘a are literele pe aceeia¸si coloan˘a, atunci se aplic˘ a regula: cifreaz˘ a ˆın jos, descifreaz˘ a ˆın sus.
−
×
Observat¸ia 11.1.1. Dac˘a o digram˘ a apare ˆın textul clar ˆın ordine invers˘a atunci 159
160
SISTEMUL DE CIFRARE PLAYFAIR
acela¸si lucru se va ˆıntˆampla ¸si ˆın textul cifrat. Observat¸ia 11.1.2. Algoritmul Playfair nu are regul˘a pentru cifrarea literelor duble: digramele ce cont¸in dou˘a litere identice sunt sparte prin introducerea artificial˘a a unei alte litere. Observat¸ia 11.1.3. Algoritmul Playfair apare ca o extindere, ˆın sensul reducerii num˘arului de tabele rectangulare folosite (de la dou˘a la unul), al cifrului cu 2 tabele. Metoda cea mai frevent˘a de atac a acestui tip de cifru const˘a ˆın analiza frecvent¸ei digramelor de text clar combinat˘a cu metoda comparat¸iei patternurilor din textul cifrat cu patternuri din dict¸ionar.
11.2.
Exercit¸ii rezolvate
Exercit¸iul 11.2.1. S˘a se construiasc˘a matricea de cifrare Playfair cu ajutorul parolei CRIPTOGRAFIE iar apoi s˘a se cifreze mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR. Rezolvare: Matricea Playfair se obt¸ine trecˆand literele din parol˘a o singur˘a dat˘ a ˆın careul de 5 5 iar apoi celelalte litere ale alfabetului ˆın ordine lexicografic˘a:
×
C 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): SIQINQCRIPTOGRAFIEQTACEREAQESTEQAURQ. Exemplific˘ am pentru fiecare caz cˆate o digram˘ a:
• SI - conform regulii de cifrare se formeaz˘a dreptunghiul cu colt¸urile I ¸si S
parcurs ˆın sensul IQSP. Textul cifrat ˆıl constituie digrama format˘a din colt¸urile care nu apar ˆın textul clar, luate conform ordinii de parcurgere: QP.
EXERCIT ¸ II PROPUSE
161
• QI - ˆıntrucˆat literele sunt pe aceea¸si coloan˘a se aplic˘a regula cifreaz˘a ˆın jos, descifreaz˘a ˆın sus, obt¸inˆandu-se digrama XA ( X este litera situat˘a sub Q ¸si A este litera situat˘a sub I).
• NQ - ˆıntrucˆat literele sunt situate pe aceea¸si linie se aplic˘a regula cifreaz˘a la dreapta, descifreaz˘a la stˆanga, obt¸inˆandu-se digrama QS(Q este in dreapta lui N ¸si S este ˆın dreapta lui Q).
ˆIn continuare, respectˆand regulile de cifrare Playfair mesajul cifrat devine: QPXAQ SRIPT CEDGF ETAUI OIGTO FUAUP AUEQI NXXXX. Exercit¸iul 11.2.2. S˘a se descifreze mesajul: UFRIL ERGPC RQAW Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind CRIPTOGRAFIE. Rezolvare: Matricea Playfair este aceea¸si din exercit¸iul anterior, fiind format˘a pornind de la aceea¸si parol˘a. Exemplific˘ am pentru fiecare caz operat¸ia de descifrare pe cˆate o digram˘ a:
• UF - conform regulii de descifrare, se formeaz˘a dreptunghiul cu colt¸urile U ¸si
F. Textul clar ˆıl constituie celelalte 2 colt¸uri, primul caracter al textului clar fiind cel care se g˘ase¸ste pe aceea¸si linie cu primul caracter ˆın clar din digram˘a. Se obt¸ine SE.
• RI - ˆıntrucˆat literele sunt situate pe aceea¸si linie se aplic˘a regula cifreaz˘a la
dreapta, descifreaz˘a la stˆanga, obt¸inˆandu-se digrama CR(R este in stˆanga lui R ¸si R este ˆın stˆanga lui I).
• LE - ˆıntrucˆat literele sunt pe aceea¸si coloan˘a se aplic˘a regula cifreaz˘a ˆın jos,
descifreaz˘a ˆın sus, obt¸inˆandu-se digrama ET (E este litera situat˘a deasupra lui L ¸si T este litera situat˘a deasupra lui E). ˆIn continuare, respectˆand regulile de descifrare Playfair mesajul cifrat devine: SECRET WRITING.
11.3.
Exercit¸ii propuse
Exercit¸iul 11.3.1. Scriet¸i o aplicat¸ie care s˘a implementeze urm˘atoarele funct¸ii: - cifrarea unui text cu ajutorul algoritmului Playfair; - descifrarea unui text cifrat cu algoritmul Playfair; Verificat¸i rezultatul pe datele de intrare din exercit¸iile urm˘atoare.
162
SISTEMUL DE CIFRARE PLAYFAIR
Exercit¸iul 11.3.2. S˘a se cifreze mesajul: SECURITY IS CHANGING FIELD Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind CHANNEL. R˘ aspuns: UAEQQ KYNMQ HANEL PEFLO CGMA. Exercit¸iul 11.3.3. S˘a se cifreze mesajul: AUTONOMOUS ATTACK AGENTS Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind MALICIOUS. R˘ aspuns: UFNDV EOESB CPZQL MFCHF PNGL. Exercit¸iul 11.3.4. S˘a se cifreze mesajul: VALUABLE SOURCE OF REFERENCE Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind INSTITUTE. R˘ aspuns: WERDB CFDNP DZDAM GMDMF MDTABV. Exercit¸iul 11.3.5. S˘a se cifreze mesajul: THE CIRCLE Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind ALBUM. R˘ aspuns: POFDKQDAKB. Exercit¸iul 11.3.6. S˘a se descifreze mesajul: KDDPM RUBVR PTSFU HPEBV Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD. R˘ aspuns: GERALD RUDOLPH FORD. Exercit¸iul 11.3.7. S˘a se descifreze mesajul: KDPEK DOSTF RDRXB NBBBB Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD. R˘ aspuns: GEORGE WALKER BUSH. Exercit¸iul 11.3.8. S˘a se descifreze mesajul: KDPEK DKBDC RDQOP MTKDC XPNS Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD.
EXERCIT ¸ II PROPUSE
163
R˘ aspuns: GEORGE HERBERT WALKER BUSH. Exercit¸iul 11.3.9. S˘a se descifreze mesajul: GBQY YAAO RNBM Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind TEST. R˘ aspuns: HARRY TRUMAN. Exercit¸iul 11.3.10. S˘a se descifreze mesajul: PIGOY CLETY AEYLQ VSFWN Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind CRYPTOOL. R˘ aspuns: THE ART OF PROGRAMMING. Exercit¸iul 11.3.11. S˘a se cifreze mesajul: SINAIA Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind SECRET KEY. R˘ aspuns: RFOYHB. Exercit¸iul 11.3.12. S˘a se descifreze mesajul: RFOYHB Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind SECRET KEY. R˘ aspuns: SINAIA. Exercit¸iul 11.3.13. S˘a se cifreze mesajul: PREDEAL Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD. R˘ aspuns: RFRBD ONU. Exercit¸iul 11.3.14. S˘a se descifreze mesajul: RFRBD ONU Algoritmul utilizat este cifrul lui Playfair, parola utilizat˘a fiind PASSWORD. R˘ aspuns: PREDEAL.
164
SISTEMUL DE CIFRARE PLAYFAIR
Capitolul 12
SISTEMUL DE CIFRARE HILL 12.1.
Breviar teoretic
Sistemul de cifrare Hill este o metod˘a de substitut¸ie poligrafic˘a bazat˘ a pe calcule efectuate ˆın algebra mod p. ˆIn faza de preprocesare delimitatorul de spat¸iu este ignorat sau ˆınlocuit cu caracterul cel mai put¸in frecvent din limba ˆın care este textul clar (ˆın limba romˆan˘ a Q). Algoritmul proceseaz˘a un bloc de date M de n caractere (litere), cheia de cifrare fiind reprezentat˘a de o matrice K de dimensiune n n, inversabil˘a mod p. Exist˘ a dou˘ a subclase ale algoritmului Hill pentru care regulile de cifrare difer˘a prin ordinea ˆın care se efectueaz˘a ˆınmult¸irile: o prima subclasa are ca regul˘ a de 1 − cifrare operat¸ia de ˆınmult¸ire C = MK cu descifrarea M = CK iar a doua subclasa folose¸ste ca regul˘a de cifrare ˆınmult¸irea C = KM avˆand descifrarea corespunz˘atoare M = K −1 C.
×
Observat¸ia 12.1.1. Dac˘a matricea K este simetric˘a (matricea K ¸si transpusa ei sunt egale) atunci regulile de cifrare pentru cele dou˘a subclase sunt echivalente. Observat¸ia 12.1.2. ˆIn cazul alfabetului latin p = 26, cheia de cifrare K trebuie s˘a fie o matrice inversabil˘a mod 26.
165
166
12.2.
SISTEMUL DE CIFRARE HILL
Exercit¸ii rezolvate
Exercit¸iul 12.2.1. S˘a se cifreze mesajul: BLAZE OF GLORY. Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare fiind matricea:
×
J V
B I
.
Rezolvare: Prin ˆınlocuirea literelor din cheie cu pozit¸iile corespunz˘ atoare din alfabet (A - 0, B - 1, etc.) se obt¸ine: K =
9 21
1 8
.
Textul clar se sparge ˆın blocuri de 2 caractere, care se cifreaz˘ a pe rˆ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. ˆIn final se obt¸ine: GLFSS MPBDT HB. Exercit¸iul 12.2.2. S˘a se descifreze mesajul: JESHB JJAZM TANCF VBJXX. Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare fiind matricea:
×
H D
U F
.
Rezolvare: Prin ˆınlocuirea literelor din cheie cu pozit¸iile corespunz˘ atoare din alfabet (A - 0, B - 1, etc.) se obt¸ine: K =
7 3
20 5
Se determin˘a inversa matricei K mod 26 :
.
167
EXERCIT ¸ II PROPUSE
K−1 = det(K)−1 K∗ mod 26,unde det(K)−1 mod 26 = (7 5
· − 3 · 20)−1 mod 26 = (−25)−1 mod 26 = 1
¸si K∗ =
5 3
−
−20 7
mod 26 =
5 6 23 7
.
S-a obt¸inut: 1
K− =
5 23
6 7
.
Pentru descifrarea perechii JE, se determin˘a matricea linie care cont¸ine valorile corespunz˘atoare din alfabet:
C =
J E
=
9
4
.
Prin ˆınmult¸ire cu cheia de descifrare se obt¸ine: M =
9 4
5 6 23 7
mod 26 =
7 4
=
H E .
Deci, JE se descifreaz˘a ˆın HE. Se procedeaz˘a ˆın mod analog pentru toate perechile de cˆate 2 caractere cifrate: SH se descifreaz˘a ˆın RB, BJ ˆın ER, etc. ˆIn final, dup˘a efectuarea tuturor calculelor ¸si regruparea literelor, se obt¸ine: HERBERT CLARK HOOVER.
12.3.
Exercit¸ii propuse
Exercit¸iul 12.3.1. Scriet¸i o aplicat¸ie care s˘a implementeze funct¸iile de cifrare ¸si descifrare, specifice algoritmului Hill cu p = 26. Verificat¸i rezultatul pe datele de intrare din exercit¸iile urm˘atoare. Exercit¸iul 12.3.2. S˘a se cifreze mesajul: COMPLETE AND PROPER PACKAGE. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
N C
T R
.
168
SISTEMUL DE CIFRARE HILL
R˘ aspuns: GIZTL MLCNN MBTML UMDMI AUYC. Exercit¸iul 12.3.3. S˘a se cifreze mesajul: ESOTERIC TOPIC OF RESEARCH. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
B G
Y P
.
R˘ aspuns : ICYXC NUOZQ LMIYD LICES DWHM. Exercit¸iul 12.3.4. S˘a se cifreze mesajul: BENJAMIN HARRISON. Algoritmul utilizat este cifrul lui Hill (3 3), cheia de cifrare fiind matricea:
×
A B C
B C A
C A B
.
R˘ apuns: EJPYJ EBIXZ IRUSE ANA. Exercit¸iul 12.3.5. S˘a se descifreze mesajul: ZKNAW NIOZO BRXSW QNNXX. Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare fiind matricea:
×
B V
E H
.
R˘ apuns: RONALD WILSON REAGAN. Exercit¸iul 12.3.6. S˘a se descifreze mesajul: ZPXUB IRHNU VXWSP DJTNN. Algoritmul utilizat este cifrul lui Hill (2 2), cheia de cifrare fiind matricea:
×
J X
D C
.
R˘ apuns: RICHARD MILHOUS NIXON. Exercit¸iul 12.3.7. S˘a se descifreze mesajul: EJPYJ EBIXZ IRUSE ANA.
169
EXERCIT ¸ II PROPUSE 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 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 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 12.3.10. Demonstrat¸ i c˘a algoritmul lui Hill este un algoritm de cifrare ˆınchis. Exercit¸iul 12.3.11. S˘a se cifreze mesajul: OPERATIONAL RESEARCH. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
F H
H I
.
R˘ aspuns : TKJID WIMNN SFQQU CVFLD. Exercit¸iul 12.3.12. S˘a se descifreze mesajul: TKJID WIMNN SFQQU CVFLD. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
F H
H I
.
170
SISTEMUL DE CIFRARE HILL
R˘ aspuns: OPERATIONAL RESEARCH. Exercit¸iul 12.3.13. S˘a se cifreze mesajul: CRYPTOLOGY. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
T S
E T
.
R˘ aspuns : CVWPB KFWCS. Exercit¸iul 12.3.14. S˘a se cifreze mesajul: NAVAJO CODE. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
L L
Q J
.
R˘ aspuns : NNXXL RMSTR. Exercit¸iul 12.3.15. S˘a se descifreze mesajul: CVWPB KFWCS. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
T S
E T
.
R˘ aspuns: CRYPTOLOGY. Exercit¸iul 12.3.16. S˘a se descifreze mesajul: NNXXL RMSTR. Algoritmul utilizat este cifrul lui Hill, cheia de cifrare fiind matricea:
R˘ aspuns: NAVAJO CODE.
L L
Q J
.
Capitolul 13
SISTEME DE CIFRARE POLIALFABETICE 13.1.
Breviar teoretic
Un sistem de cifrare de tip substitut¸ie polialfabetic˘ a este generalizarea sistemului de cifrare de substitut¸ie monoalfabetic˘ a, fiind compus dintr-un num˘ar N de alfabete. Fiecare alfabet reprezint˘a o permutare (stabilit˘a ˆın funct¸ie de parol˘a) a alfabetului de intrare. Algoritmul de cifrare const˘a ˆın substituirea celei de a i a litere m din textul clar cu litera corespunz˘atoare din cel de al i mod N alfabet. Sistemele polialfabetice sunt u¸sor de identificat prin aplicarea analizei frecvent¸elor de apatit¸ie a literelor ˆın secvent¸e decimate din textul cifrat. Un exemplu de sistem polialfabetic este algoritmul lui Vigen`ere ˆın care parola k1 , . . . , kn este folosit˘a periodic pentru a transforma caracterul m j A , . . . , Z din textul clar dup˘a formula: c j = (m j + k j mod n ) mod 26. Pentru descifrare se folose¸ste formula: m j = (c j k j mod n ) mod 26. Atacul sistemelor polialfabetice este similar cu atacul a N sisteme de substitut¸ie monoalfabetic˘a . Deci, o procedur˘a de tip divide et impera are o complexitate de a ˆın continuare: O(N ). Procedura este descris˘ Intrare: Textul cifrat de lungime M suficient de mare. Ie¸sire: Textul clar corespunz˘ator sistemului de cifrare polialfabetic. PASUL 1. Determin˘a num˘ arul de alfabete N . PASUL 2. Pentru j = 0 to 4 execut˘a: pentru i = 1 to N j execut˘a: aplic˘ a procedura de reconstruct¸ie part¸ial˘ a (pe baza frecven¸telor ( j + 1) gramelor) a alfabetelor i, . . . , i + j. PASUL 3. Conform celor N alfabete reconstruie¸ste textul clar.
−
∈ {
−
−
−
171
}
172
SISTEME DE CIFRARE POLIALFABETICE
Observat¸ia 13.1.1. Procedura descris˘a mai sus are ca parametru implicit de analiz˘a num˘ arul maxim de leg˘aturi 4 : astfel, 1 gramele sunt caracterele, 2 gramele sunt dublet¸ii, etc.
−
13.2.
−
Exercit¸ii rezolvate
Exercit¸iul 13.2.1. S˘a se cifreze mesajul WINDS OF CHANGE cu ajutorul algoritmului Vigen`ere, parola fiind FUTURE. Rezolvare: Aplicˆand cifrarea pentru fiecare caracter al textului clar, t¸inˆand cont de pozit¸ia acestora ˆın alfabet, se obt¸ine: j 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) 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 13.2.2. S˘a se descifreze mesa jul IHWGZ CIHGO GKAJV OI ¸stiind c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind PASSWORD.
Rezolvare: Aplicˆand descifrarea pentru fiecare caracter al textului cifrat, t¸inˆand cont de pozit¸ia acestora ˆın alfabet, se obt¸ine:
173
EXERCIT ¸ II PROPUSE 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) 8 P 15 (8 15)(mod 26) = 19 T 7 A 0 (7 0)(mod 26) = 7 H 22 S 18 (22 18)(mod 26) = 4 E 6 S 18 (6 18)(mod 26) = 14 O 25 W 22 (25 22)(mod 26) = 3 D 2 0 14 (2 14)(mod 26) = 14 O 8 R 17 (8 17)(mod 26) = 17 R 7 D 3 (7 3)(mod 26) = 4 E 6 P 15 (6 15)(mod 26) = 17 R 14 A 0 (14 0)(mod 26) = 14 O 6 S 18 (6 18)(mod 26) = 14 O 10 S 18 (10 18)(mod 26) = 18 S 0 W 22 (0 22)(mod 26) = 4 E 9 0 14 (9 14)(mod 26) = 21 V 21 R 17 (21 17)(mod 26) = 4 E 14 D 3 (14 3)(mod 26) = 11 L 8 P 15 (8 15)(mod 26) = 19 T
− − − − − − − − − − − − − − − − −
− − − − − − − − − − − − − − − − −
− − − − − − − − − − − − − − − − − −
− − − − − − − − − − − − − − − − −
Dupa gruparea literelor rezult˘a: THEODORE ROOSEVELT.
13.3.
Exercit¸ii propuse
Exercit¸iul 13.3.1. S˘a se cifreze mesajul OPTIMISTIC cu ajutorul algoritmului Vigen`ere, folosind parola GOODDAYS. R˘ aspuns: UDHLPIQLOQ. Exercit¸iul 13.3.2. S˘a se cifreze mesajul THANK YOU cu ajutorul algoritmului Vigen`ere, folosind parola POLITE. R˘ aspuns: IVLVD CDI. Exercit¸iul 13.3.3. S˘a se cifreze mesajul GOING BACK IN TIME cu ajutorul algoritmului Vigen`ere, folosind parola MEMORY. R˘ aspuns: SSUBX ZMGW WE RUQQ. Exercit¸iul 13.3.4. S˘a se cifreze mesajul FAST CARS cu ajutorul algoritmului Vigen`ere, folosind parola RADAR.
174
SISTEME DE CIFRARE POLIALFABETICE
R˘ aspuns: WAVT TRRV. Exercit¸iul 13.3.5. S˘a se cifreze mesajul SUITCASE cu ajutorul algoritmului Vigen`ere, folosind parola TRIP. R˘ aspuns: LLQIVRAT. Exercit¸iul 13.3.6. S˘a se descifreze mesajul WIUXGHG WXGALFYK ¸stiind c˘a a fost cifrat cu a jutorul algoritmului Vigen`ere, parola fiind TEST. R˘ aspuns: DECENDO DECISMUS. Exercit¸iul 13.3.7. S˘a se descifreze mesa jul UAEGQD OOGAT ¸stiind c˘a a fost cifrat cu ajutorul algoritmului Vigen` ere, parola fiind TANGO. R˘ aspuns: BARACK OBAMA. Exercit¸iul 13.3.8. S˘a se descifreze mesajul XVLGM OXLDC ¸stiind c˘a a fost cifrat cu a jutorul algoritmului Vigen`ere, parola fiind BRIDE. R˘ aspuns: WEDDING DAY. Exercit¸iul 13.3.9. S˘a se descifreze mesajul IHZSV SKIEE CHWPU ACSH ¸stiind c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind PARADOX. R˘ aspuns: THIS SENTENCE IS FALSE. Exercit¸iul 13.3.10. S˘a se descifreze mesa jul MYEYS VOJFQ ZAVLL N ¸stiind c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind TRANSILVANIA. R˘ aspuns: THE LAND OF DRACULA. Exercit¸iul 13.3.11. S˘a se cifreze mesajul OPERATIONAL RESEARCH cu ajutorul algoritmului Vigen`ere, folosind parola PASSWORD. R˘ aspuns: DPWJW HZRCA DJAGV DGCZ. Exercit¸iul 13.3.12. S˘a se descifreze mesajul DPWJW HZRCA DJAGV DGCZ ¸stiind c˘a a fost cifrat cu ajutorul algoritmului Vigen`ere, parola fiind PASSWORD.
EXERCIT ¸ II PROPUSE
175
R˘ aspuns: OPERATIONAL RESEARCH. Exercit¸iul 13.3.13. S˘a se cifreze mesajul CRIPTOGRAFIE cu ajutorul algoritmului Vigen`ere, folosind parola TEST. R˘ aspuns: VVAIM SYKTJ AX. Exercit¸iul 13.3.14. S˘a se descifreze mesajul VVAI MSYK TJAX ¸stiind c˘a a fost cifrat cu a jutorul algoritmului Vigen`ere, parola fiind TEST. R˘ aspuns: CRIPTOGRAFIE.
176
SISTEME DE CIFRARE POLIALFABETICE
Capitolul 14
METODA TRANSPOZIT ¸ IEI 14.1.
Breviar teoretic
Metoda transpozit¸iei asigur˘a, ˆın cadrul sistemelor criptografice, realizarea difuziei: ˆımpr˘a¸stierea propriet˘a¸tilor statistice ale textului clar ˆın textul cifrat. Metoda transpozit¸iei ˆımbrac˘a mai multe forme: textul este citit ˆıntr-o form˘a matriceal˘a linie cu linie sau coloan˘a cu coloan˘ a, se permut˘ a liniile ¸si/sau coloanele, rezultatul fiind apoi scris linie cu linie sau coloan˘a cu coloan˘ a. Spre exemplu, ˆın cazul transpozit¸iei coloanelor, textul clar se cite¸ste, linie cu linie, ˆıntr-o form˘a tabelar˘ a cu n coloane, acesta fiind scris pe coloane ˆın funct¸ie de cheia de cifrare reprezentat˘a de o permutare din σ n . Dac˘ a dimensiunea textului clar nu este un multiplu de n atunci acesta se poate completa sau nu cu un caracter bine precizat. ˆIn faza de preprocesare delimitatorul de spat¸iu este ignorat sau ˆınlocuit cu caracterul cel mai put¸in frecvent din limba ˆın care este textul clar (ˆın limba romˆan˘ a Q).
14.2.
Exercit¸ii rezolvate
Exercit¸iul 14.2.1. S˘a se cifreze prin metoda transpozit¸iei (N = 12), pornind de la parola CRIPTOGRAFIE mesajul SI IN CRIPTOGRAFIE TACEREA ESTE AUR. Rezolvare: Vom construi secvent¸a numeric˘a de cifrare asociind fiec˘arei litere din parol˘ a indicele din ordinea lexicografic˘a: astfel literele din parol˘a, scrise ˆın ordine lexicografic˘ a sunt: 177
178
METODA TRANSPOZIT ¸ IEI
1 A
2 C
3 E
4 F
5 G
6 I
7 8 I O
9 P
10 R
11 R
12 T
deci parola CRIPTOGRAFIE produce permutarea: 2 10 6 9 12 8 5 11 1 4 7 3. Textul clar este scris ˆıntr-o tabel˘a cu 12 coloane: 2 S G E
10 I R A
6 Q A Q
9 I F E
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 cu o secvent¸a˘ cunoscut˘a (ˆın acest caz caracterul Q). Textul cifrat se obt¸ine citind coloanele tabelei de cifrare ˆın ordinea indicat˘a de parola numeric˘a: IAASG EORRQ PCUCQ EQAQT ERQET IFEIR ARTQN IS. Descifrarea se va realiza ˆın mod similar folosind permutarea invers˘a σ −1 . Dac˘ a dimensiunea transpozit¸iei N este mai mic˘a decˆat lungimea parolei atunci se vor ret¸ine N caractere din parol˘a.
14.3.
Exercit¸ii propuse
Exercit¸iul 14.3.1. Scriet¸i un program care s˘a implementeze funct¸iile de cifrare/descifrare specifice metodei transpozit¸iei coloanelor. Exercit¸iul 14.3.2. S˘a se cifreze mesajul: ELECTRIC HOTPLATE printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (2, 1, 3). R˘ aspuns: LTCOL EECIH PTERQ TAQ. Exercit¸iul 14.3.3. S˘a se cifreze mesajul: CERCETARI OPERATIONALE printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (3, 1, 2). R˘ aspuns: EEROR IAQRT IPAOL QCCAQ ETNE. Exercit¸iul 14.3.4. S˘a se cifreze mesajul CRIPTOGRAFIE prin metoda transpozit¸iei utilizˆand permutarea σ = (4, 2, 1, 3). Verificat¸i rezultatul obt¸inut.
EXERCIT ¸ II PROPUSE
179
Exercit¸iul 14.3.5. S˘a se descifreze mesajul: EORSE TOROE LHDEO VT cifrat printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (2, 3, 1). R˘ aspuns: THEODORE ROOSEVELT. Exercit¸iul 14.3.6. S˘a se descifreze mesajul: SFCME TAEAE NLR cifrat printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (1, 2, 3). R˘ aspuns: STEFAN CEL MARE. Exercit¸iul 14.3.7. S˘a se descifreze mesajul: HTZMA VEUII IAL cifrat printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (2, 3, 1). R˘ aspuns: MIHAI VITEAZUL. Exercit¸iul 14.3.8. S˘a se descifreze mesajul: NMTMA STEDI NEINO NT cifrat printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (2, 3, 1). R˘ aspuns: SENTIMENT DOMINANT. Exercit¸iul 14.3.9. S˘a se descifreze mesajul: TDDDR TEAAU EIASN RLCPR cifrat printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (3, 1, 2). R˘ aspuns: STANDARDUL DE CRIPTARE. Exercit¸iul 14.3.10. Demonstrat¸i c˘a algoritmul de cifrare ce utilizeaz˘a transpozit¸ia este un sistem ˆınchis. Exercit¸iul 14.3.11. S˘a se cifreze mesajul: CERCETARI OPERATIONALE printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (2, 1, 3). R˘ aspuns: EERPAOLCC AORIARTIETNE.
180
METODA TRANSPOZIT ¸ IEI
Exercit¸iul 14.3.12. S˘a se descifreze mesajul: EERPAOLCC AORIARTIETNE cifrat printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (2, 1, 3). R˘ aspuns: CERCETARI OPERATIONALE. Exercit¸iul 14.3.13. S˘a se cifreze mesajul: OPERATIONAL RESEARCH printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (2, 1, 4, 3). R˘ aspuns: PTASC OANER RORAE ILEH. Exercit¸iul 14.3.14. S˘a se descifreze mesajul: PTASC OANER RORAE ILEH cifrat printr-o transformare de tip transpozit¸ie cu ajutorul permut˘arii σ = (2, 1, 4, 3). R˘ aspuns: OPERATIONAL RESEARCH.
Capitolul 15
SISTEME MIXTE 15.1.
Breviar teoretic
Sistemele mixte au la baz˘a o cifrare succesiv˘a a mesajului prin metoda substitut¸iei ¸si apoi prin metoda transpozit¸iei sau invers. Atacarea sistemul de cifrare se realizeaz˘a de la ultima sa component˘ a c˘atre prima. Remarc˘ am faptul c˘a substitut¸ia simpl˘a este comutativ˘a cu operat¸ia de transpozit¸ie deci se poate oricˆand aborda mai ˆıntˆ ai substitut¸ia ¸si apoi transpozit¸ia. ˆIn cazul utiliz˘arii unui sistem polialfabetic, cu num˘ar necunoscut de alfabete, recomandarea este ca dup˘a stabilirea, prin metode statistice, a num˘arului de alfabete, s˘a se abordeze concomitent identificarea efectiv˘a a alfabetelor ¸si al transpozit¸iei utilizate. ˆIn cazul utiliz˘arii unui sistem poligrafic (tabele de cifrare) ¸si o transpozit¸ie este recomandabil˘ a o tehnic˘a de tip backtracking.
15.2.
Exercit¸ii rezolvate
Exercit¸iul 15.2.1. S˘a se cifreze mesajul GEOMETRIC FIGURE cu ajutorul algoritmului lui Cezar (k = 5) ¸si al transpozit¸iei σ = (2, 1, 3). Rezolvare: Mai ˆıntˆ ai textul este cifrat cu sistemul Cezar folosind cheia k = 5, deci corespondent¸a dintre cele 2 alfabete devine: text clar text cifrat
A F
B G
C H
D I
E J
F K
G L
H M
I N
... ...
Astfel se obt¸ine: LJT RJY WNH KNL ZWJ. Apoi, textul obt¸inut se a¸seaz˘a ˆıntr-o tabel˘ a cu 3 coloane: 181
182
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 ¸si ˆın final cea din dreapta): JJNNWLRW KZTYHLJ . Exercit¸iul 15.2.2. S˘a se decripteze mesajul urm˘ator: DKVUR UTUBK WFCVG ETGOC XWVWC OCVPQ VUVWG FGHTQ VKUUV KKNKC RKCPQ OQFKC EWVG ¸stiind c˘a a fost cifrat cu ajutorul algoritmului lui Cezar (k = 2) ¸si supracifrat prin metoda transpozit¸iei utilizˆand permutarea (3, 2, 1). Rezolvare: Cum substitut¸ia ¸si transpozit¸ia sunt comutative, putem mai ˆıntˆai decripta mesajul folosind Cezar cu cheia k = 2 ¸si apoi decripta prin metoda transpozit¸iei. Pentru decriptarea mesajului folosind metoda Cezar cu k = 2, fiecare caracter se ˆınlocuie¸ste cu caracterul situat cu 2 pozit¸ii mai ˆınainte ˆın alfabet: text cifrat 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 CREMA VUTUA MATNO TSTUE DEFRO TISST IILIA PIANO MODIA CUTE . Acesta reprezint˘a un text cifrat prin metoda transpozit¸iei. Cum textul are 64 de caractere ¸si permutarea este de lungime 3, atunci num˘arul de litere pe coloane este: 21, 21 si ¸ 22. Coloanele cu numai 21 de caractere sunt cele care corespund valoriilor luate ˆın ordine descresc˘atoare din permutarea invers˘a σ −1 = (3, 2, 1):
183
EXERCIT ¸ II PROPUSE 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 coloanelor conform permut˘ arii inverse σ −1 se obt¸ine tabela din dreapta. Citind pe linii se descoper˘ a textul clar: SUBSTITUTIA SIMPLA SI TRANSPOZITIA SUNT DOUA METODE DE CIFRARE COMUTATIVE .
15.3.
Exercit¸ii propuse
Exercit¸iul 15.3.1. Dezvoltat¸i o aplicat¸ie care s˘a implementeze rutine specifice decript˘ arii sistemelor mixte compuse din transpozit¸ii ¸si substitut¸ii simple. Exercit¸iul 15.3.2. Se dau criptogramele: Criptograma 1: VXEVW LWXWL DVLPS ODVLW UDQVS RCLWL DVXQW GRXDP HWRGH GHFLI UDUHF RPXWD WLYHX Criptograma 2: YAHYZ OZAZO GYOSV RGYOZ XGTYV
184
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 criptogramele: Criptograma 1: BITSP SRSZI UDATE CREMA VUTUA MATNO TSTUE DEFRO TISST IILIA PIANO MODIA CUTE Criptograma 2: UTUAM ATNOT STUED EFROT IBITS PSRSZ IUDAT ECREM AVSST IILIA PIANO MODIA CUTE Care din afirmat¸iile ¸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 SIMPLA SI 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 σ 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
185
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.
186
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( a (t n) 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 LFSR are forma:
−
≥
−
−
− −
⊕ −
⊕
−
−
a(t) = c 1 a(t
− 1) ⊕ c2a(t − 2) ⊕ . . . ⊕ cn−1a(t − n + 1) ⊕ a(t − n),
(16.1)
∈ {0, 1}. Conexiunea de feedback a unui LFSR unui LFSR poate poate fi exprimat˘ a printr-un
unde c unde c i
187
188
GENERATOARE PSEUDOALEATOARE PSEUD OALEATOARE
polinom de feedback: f ( f (X ) = 1 + c1 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 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 LFSR are polinomul de feedback dat de f de f ((X ) = 1 + 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 al LFSR-ului -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 T pentru care X care X 1 este divizibil cu n f ( f (X ) s˘a fie T 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 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 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 ı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 µ unde µ este este funct funct ¸ia lui M¨ oebius definit˘ definit˘a ˆın felul f elul urm˘ator ator pentru n pentru n = =
k
1
dac˘ a
k
i
i pα µ (n) = 0 i : µ(
αi > 1, µ(n) = ( 1)k dac˘ a n este produsul a k numere prime distincte distin cte ¸si si
−
189
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˘ 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 ı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 mod 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 α (1 + α3 ) = 1 + α + α3 ; α6 =αα5 = α(1 α (1 + α + α3 ) = 1 + α + α2 + α3 ; α7 =αα6 = α(1 α (1 + α + α2 + α3 ) = 1 + α + α2 ; α8 =αα7 = α(1 α (1 + α + α2 ) = α + α2 + α3 ; α9 =αα8 = α( α (α + α2 + α3 ) = 1 + α2 ; α10 =αα9 = α(1 α (1 + α2 ) = α + α3 ; α11 =αα10 = α( α (α + α3 ) = 1 + α2 + α3 ; α12 =αα11 = α(1 α (1 + α2 + α3 ) = 1 + α; α13 =αα12 = α(1 α (1 + α) = α + α2 ; α14 =αα13 = α( α (α + α2 ) = α 2 + α3 ; α15 =αα14 = α( α (α2 + α3 ) = 1. Ordinul lui α lui α este 2 4 1, ˆın ın concluzie, polinomul de feedback este primitiv.
−
190
16.3.
GENERATOARE PSEUDOALEATOARE
Exercit¸ii propuse
Exercit¸iul 16.3.1. Implementat¸i o rutin˘a de testat primitivismul unui polinom din Z 2 [X ]. Exercit¸iul 16.3.2. O secvent¸a˘ determinat˘a de polinomul de feedback 1 + X 2 + X 4 are perioad˘a maxim˘a? R˘ aspuns: Nu. Polinomul nu este ireductibil, deci nu este primitiv. Exercit¸iul 16.3.3. O secvent¸a˘ determinat˘a de polinomul de feedback 1+X +X 4 are perioad˘a maxim˘ a? R˘ aspuns: Da. Polinomul de feedback este primitiv. Exercit¸iul 16.3.4. O secvent¸a˘ determinat˘a de polinomul de feedback 1+X +X 3 are perioad˘a maxim˘ a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
X 2
Exercit¸iul 16.3.5. O secvent¸a˘ determinat˘a de polinomul de feedback 1 + X + + X 3 are perioad˘a maxim˘ a? R˘ aspuns: Nu. Polinomul nu este primitiv.
Exercit¸iul 16.3.6. O secvent¸a˘ determinat˘a de polinomul de feedback 1 + X 2 + X 5 are perioad˘a maxim˘a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
X 3
Exercit¸iul 16.3.7. O secvent¸a˘ determinat˘a de polinomul de feedback 1 + X + + X 4 + X 5 are perioad˘a maxim˘ a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
X 3
Exercit¸iul 16.3.8. O secvent¸a˘ determinat˘a de polinomul de feedback 1 + X + + X 5 are perioad˘a maxim˘ a? R˘ aspuns: Nu. Polinomul nu este primitiv.
EXERCIT ¸ II PROPUSE
X 2
191
Exercit¸iul 16.3.9. O secvent¸a˘ determinat˘a de polinomul de feedback 1 + X + + X 3 + X 5 are perioad˘a maxim˘ a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
Exercit¸iul 16.3.10. O secvent¸a˘ determinat˘a de polinomul de feedback 1+ X 2 + X 3 + X 4 + X 5 are perioad˘a maxim˘ a? R˘ aspuns: Da. Polinomul de feedback este primitiv.
192
GENERATOARE PSEUDOALEATOARE
Capitolul 17
CALCULE ˆIN CORPURI GALOIS 17.1.
Breviar teoretic
Corpul Galois GF (2n ) este definit de un polinom f (X ) Z 2 [X ] de grad n. Elementele acestui corp sunt polinoame. Operat¸iile ˆıntre dou˘a polinoame a(X ) = a0 + a 1 X + . . . an X n ¸si b(X ) = b0 + b1 X + . . . bn X n din GF (2n ) se definesc ˆın modul urm˘ator: a) a(X ) b(X ) = c(X ), c i = (ai + bi ) mod 2; b) a(X ) b(X ) = a(X )b(X ) mod f (X ). Un element din GF (2n ) se poate reprezenta sub forma binar˘a (¸si apoi hexazecimal˘ a) prin coeficient¸ii s˘ai : a0 + a 1 X + . . . + a n X n se identific˘a cu an . . . a1 a0 , ai 0, 1 Inversul unui element din GF (2n ) se determin˘a cu algoritmul lui Euclid, exemplificat ˆın continuare.
∈
⊕ •
∈ { } 17.2.
Exercit¸ii rezolvate
{ }
Exercit¸iul 17.2.1. Care este inversul elementului 45 (reprezentat ˆın format hexa) din GF (28 ) definit de polinomul f (X ) = 1 + X + X 3 + X 4 + X 8 . Rezolvare: Elementului 45 ˆıi corespunde polinomul X 6 + X 2 + 1. Pentru a afla inversul lui 45 modf (X ) utiliz˘am algoritmul lui Euclid: X 8 + X 4 + X 3 + X + 1 = X 2 (X 6 + X 2 + 1) + X 3 + X 2 + X + 1, X 6 + X 2 + 1 = (X 3 + X 2 )(X 3 + X 2 + X + 1) + 1, plecˆ and de la ultima ecuat¸ie c˘atre prima, succesiv obt¸inem:
{ }
{ }
193
194
CALCULE ˆIN CORPURI GALOIS
1 = (X 3 + X 2 )(X 3 + X 2 + X + 1) + X 6 + X 2 + 1 1 = (X 3 + X 2 )(X 2 (X 6 + X 2 + 1) + X 8 + X 4 + X 3 + X + 1) + X 6 + X 2 + 1 1 = (X 5 + X 4 + 1)(X 6 + X 2 + 1) + (X 3 + X 2 + 1)(X 8 + X 4 + X 3 + X + 1) deci inversul polinomului X 6 + X 2 + 1 este X 5 + X 4 + 1. Utilizˆand codificarea hexa ajungem la concluzia c˘a inversul elementului 45 este 31 .
{ }
{ }
Exercit¸iul 17.2.2. S˘a se adune elementele 57 ¸si 83 ˆın corpul Galois GF (28 ) definit de polinomul 1 + X + X 3 + X 4 + X 8 .
{ } { }
{ } { { } ⊕ { } {
}
Rezolvare: Scrierea binar˘a a celor dou˘a elemente este 57 = 01010111 respectiv 83 = 10000011 . Efectuˆ and calculele obt¸inem 57 83 = 11010100 = D4 .
{ } { { }
}
}
{ } { }
Exercit¸iul 17.2.3. S˘a se ˆınmult¸easc˘a elementele 57 ¸si 83 ˆın corpul Galois GF (28 ) definit de polinomul 1 + X + X 3 + X 4 + X 8 . Rezolvare: 57 83 = (X 6 + X 4 + X 2 + X + 1)(X 7 + X + 1) = X 13 + X 11 + X 9 + X 8 + X 6 + X 5 + X 4 + X 3 + 1 mod (X 8 + X 4 + X 3 + X + 1) = X 7 + X 6 + 1 = 11000001 = C 1 .
{ } • { } } { }
{
17.3.
Exercit¸ii propuse
Exercit¸iul 17.3.1. Implementat¸i proceduri de calcul ˆın corp Galois.
{ }
Exercit¸iul 17.3.2. Care este inversul elementului 33 (reprezentat ˆın format hexa) din GF (28 ) definit de polinomul 1 + X + X 3 + X 4 + X 8 .
{ }
R˘ aspuns: 6C .
{ }
Exercit¸iul 17.3.3. Care este inversul elementului 12 (reprezentat ˆın format hexa) din GF (28 ) definit de polinomul 1 + X + X 3 + X 4 + X 8 .
{ }
R˘ aspuns: AA .
{ }
Exercit¸iul 17.3.4. Care este inversul elementului 31 (reprezentat ˆın format hexa) din GF (28 ) definit de polinomul 1 + X + X 3 + X 4 + X 8 .
{ }
R˘ aspuns: 45 .
195
EXERCIT ¸ II PROPUSE
{ } { }
Exercit¸iul 17.3.5. Ar˘ atat¸i c˘a elementele 12 ¸si AA (reprezentate ˆın format hexa) sunt inverse ˆın corpul Galois GF (28 ) definit de polinomul 1+X +X 3 +X 4 +X 8 . Exercit¸iul 17.3.6. S˘a se adune elementele 5 ¸si 7 ˆın corpul Galois GF (24 ) definit de polinomul 1 + X + X 4 .
{ } { }
{ }
R˘ aspuns: 2 .
{ } { }
Exercit¸iul 17.3.7. S˘a se ˆınmult¸easc˘a elementele 5 ¸si 7 ˆın corpul Galois GF (24 ) definit de polinomul 1 + X + X 4 .
{ }
R˘ aspuns: 8 . Exercit¸iul 17.3.8. Se consider˘a transformarea dat˘ a de
g(y) =
1 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 (28 ) definit de polinomul 1 + X + X 3 + X 4 + X 8 . Calculat¸i g (1), g(2), g(3), g(4), g(5). R˘ aspuns: Transformarea indicat˘a ˆın problem˘a define¸ste tabela de substitut¸ie a algoritmului RIJNDAEL. Valorile solicitate (ˆın zecimal) sunt: g(1) = 124, g(2) = 119, g(3) = 123, g(4) = 242, g(5) = 107.
196
CALCULE ˆIN CORPURI GALOIS
Capitolul 18
ALGORITMUL RIJNDAEL STANDARDUL AES 18.1.
Breviar teoretic
Pentru rezolvarea urm˘atoarelor exercit¸ii plec˘am de la ipoteza cunoa¸sterii standardului FIPS 197 - Advanced Encryption Standard compus din patru operat¸ii (sumare modulo 2 cu cheia de rund˘a, subtitut¸ia la nivel de octet, shiftarea liniilor, mixarea coloanelor etc.) ˆın cadrul procesului de transformare a st˘arilor ¸si din generatorul de chei de rund˘a.
18.2.
Exercit¸ii rezolvate
Exercit¸iul 18.2.1. Intrarea ˆın runda i = 6 a algoritmului AES 128/128 pentru cifrarea textului ,,zero peste tot”, cu ajutorul cheii ,,zero peste tot”, este:
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 dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si AddRoundKey? 197
198
ALGORITMUL RIJNDAEL - STANDARDUL AES
Rezolvare: Rutina SubBytes presupune folosirea urm˘ atorului Sbox:
0 1 2 3 4 5 6 7 8 9 a b c d e f
0 63 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 octetul D4 se caut˘a ˆın SBox elementul aflat la intersect¸ia liniei D cu coloana 4 ¸si se substituie ˆın stare elementul g˘asit in Sbox. D4 se va substitui cu 48. Procedeul se aplic˘ a similar pentru ceilalt¸i octet¸i din stare. Rezultatul aplic˘arii rutinei SubBytes se constituie ˆın urm˘atoarea stare:
48 A8 84 50
48 6C EA 26
FC 6C 90 C3
F3 6B EA 27
B6 B6 1D 26
Rutina ShiftRows act¸ioneaza ˆın felul urm˘ator asupra st˘arii: prima linie r˘amane neschimbat˘ a, a doua linie se rote¸ste la stˆanga cu un octet, a treia linie se rote¸ste la stˆanga cu doi octet¸i iar a patra linie se rote¸ste la stˆanga cu trei octet¸i. Dup˘ a aplicarea rutinei ShiftRows, starea va fi urm˘atoarea: FC 6B 1D 50
F3 B6 84 C3
B6 A8 90 27
199
EXERCIT ¸ II REZOLVATE
Rutina MixColumns presupune ˆınmult¸irea fiec˘arei coloane din stare cu urm˘atoarea matrice fixat˘a:
02 01 01 03
03 02 01 01
01 03 02 01
01 01 03 02
Operat¸iile care rezult˘a din ˆınmult¸irea matricilor se fac ˆın corpul Galois GF(28 ) ¸si sunt ˆınmult¸iri de polinoame modulo polinomul generator al corpului GF(2 8 ) care este h(X ) = X 8 + X 4 + X 3 + X + 1. Observ˘a m c˘a singurele ˆınmult¸iri care apar sunt cele cu 02 ¸si 03. Inmult¸irea cu polinomul 02 in GF (28 ) ˆınseamn˘a ˆınmult¸irea cu polinomul X . Fie f (X ) = b 7 X 7 + b6 X 6 + b5 X 5 + b4 X 4 + b3 X 3 + b2 X 2 + b1 X + b0 un polinom din GF (28 ). S˘a vedem ce presupune ˆınmult¸irea 02 f (X ) adic˘a X f (X ):
∗
∗
X f (X ) = b 7 X 8 + b6 X 7 + b5 X 6 + b4 X 5 + b3 X 4 + b2 X 3 + b1 X 2 + b0 X ( modm(X )),
∗
unde m(X ) este polinomul generator m(X ) = X 4 + X 3 + X +1 al corpului Galois GF(28 ). Dac˘ a b 7 = 0, atunci polinomul este ˆın forma redus˘a ˆın GF (28 ) (are gradul 7). Dac˘ a b 7 = 1, atunci: X f (X ) = X 8 mod m(X ) + b6 X 7 + b5 X 6 + b4 X 5 + b3 X 4 + b2 X 3 + b1 X 2 + b0 X.
∗
Deci: X f (X ) = (X 4 + X 3 + X + 1 ) + b6 X 7 + b5 X 6 + b4 X 5 + b3 X 4 + b2 X 3 + b1 X 2 + b0 X.
∗
Prin urmare, ˆınmult¸irea cu polinomul X poate fi implementat˘a, ˆın cazul ˆın care bitul cel mai semnificativ al polinomului f (X ) este 1, ca o operat¸ie de shift la stˆanga cu 1 bit urmat˘a de un XOR cu (00011011), care reprezint˘a polinomul (X 4 + X 3 + X + 1). Dac˘ a bitul cel mai semnificativ al polinomului f (X ) este 0, atunci ˆınmult¸irea presupune doar operat¸ie de shift la stˆanga cu un bit. Pentru a trece starea curent˘a prin rutina MixColumns, se ˆınmult¸este pe rˆand fiecare coloan˘a din stare cu matricea fixat˘a de mai sus. Vom prezenta doar modul de efectuare al ˆınmult¸irii:
02 01 01 03
03 02 01 01
01 03 02 01
01 01 03 02
·
48 6C EA 26
200
ALGORITMUL RIJNDAEL - STANDARDUL AES
Coloana rezultat va cont¸ine urm˘atoarele linii:
∗ ⊕ ∗ ⊕ ⊕ ∗ ⊕ ∗ ⊕ ∗ ⊕ ⊕ ⊕ ∗ ⊕ ∗ ∗ ⊕ ⊕ ⊕ ∗
02 48 03 6C EA 26 01 48 02 6C 03 EA 26 48 6C 02 EA 03 26 03 48 6C EA 02 26
R˘ amˆan de efectuat ˆınmult¸irile care apar pe fiecare linie: 02 48 = 02 01001000 = 10010000. 03 48 = 02 48 48 = 11011000. 03 6C = 03 01101100 = 02 01101100 01101100 = 11011000 10110100. 02 EA = 02 11101010 = 11010100 00011011 = 11110001. 03 EA = 02 EA EA = 11110001 11101010 = 00011011. 02 26 = 02 00100110 = 01001100. 03 26 = 02 26 26 = 01001100 00100110 = 01101010. Dup˘ a calculele r˘amase, coloana rezultat va fi:
∗ ∗ ∗ ∗ ∗ ∗ ∗
∗ ∗ ⊕ ∗ ∗ ∗ ⊕ ∗ ∗ ⊕
∗
⊕
⊕ 01101100 =
⊕ ⊕
⊕
E8 93 81 12
Pentru celelalte coloane din stare se procedeaz˘a similar. Starea rezultat˘a dup˘a aplicarea rutinei MixColumns este urm˘atoarea:
E8 93 81 12
13 5D 5D C9
7B D0 08 A1
23 71 4C B7
Aplicarea rutinei AddRoundKey presupune o simpl˘a operat¸ie de XOR pe fiecare octet din stare cu octet-ul corespunz˘ator din cheia de rund˘a.
E8 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
201
EXERCIT ¸ II PROPUSE
18.3.
Exercit¸ii propuse
Exercit¸iul 18.3.1. Intrarea ˆın runda i = 7 a algoritmului AES 128/128 pentru cifrarea textului ,,zero peste tot”, cu ajutorul cheii ,,zero peste tot”, este:
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 dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si AddRoundKey? R˘ aspuns: Ie¸sirea din runda 7 este:
B7 AA E4 C5
1D 25 2D 4F
6C 92 0F 81
94 E5 81 50
Exercit¸iul 18.3.2. Intrarea ˆın runda i = 8 a algoritmului AES 128/128 pentru cifrarea textului ,,zero peste tot”, cu ajutorul cheii ,,zero peste tot”, este:
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 dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si AddRoundKey?
202
ALGORITMUL RIJNDAEL - STANDARDUL AES
R˘ aspuns: Ie¸sirea din runda 8 este:
23 37 8C 3C
13 21 63 DB
AA C0 C6 57
2E 03 CB 95
Exercit¸iul 18.3.3. Intrarea ˆın runda i = 8 a algoritmului AES 128/128 pentru cifrarea textului ,,zero peste tot”, cu ajutorul cheii ,,zero peste tot”, este:
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 dup˘a procesarea rutinelor SubBytes, ShiftRows, MixColumns ¸si AddRoundKey? R˘ aspuns: Ie¸sirea din runda 9 este:
7F FE 0E 95
51 A5 66 35
0E 34 7C 47
29 29 EC CB
Exercit¸iul 18.3.4. Executat¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL (AES), cu urm˘atoarele intr˘ari: pentru starea curent˘a:
pentru cheia de rund˘a:
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 01
203
EXERCIT ¸ II PROPUSE
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 din rund˘a este:
1E 1F 3E 3E
Exercit¸iul 18.3.5. Executat¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL (AES), cu urm˘atoarele intr˘ari: pentru starea curent˘a:
1E 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:
9B 73 D6 C9
R˘ aspuns: Ie¸sirea din rund˘a este:
66 E0 D8 04
Exercit¸iul 18.3.6. Executat¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL (AES), cu urm˘atoarele intr˘ari: pentru starea curent˘a:
204
pentru cheia de rund˘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 din rund˘a este:
7E 41 45 5E
Exercit¸iul 18.3.7. Executat¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL (AES), cu urm˘atoarele intr˘ari: pentru starea curent˘a:
pentru cheia de rund˘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 din rund˘a este:
79 89 5E 0D
205
EXERCIT ¸ II PROPUSE
Exercit¸iul 18.3.8. Executat¸i o rund˘a complet˘a, pentru algoritmul RIJNDAEL (AES), cu urm˘atoarele intr˘ari: pentru starea curent˘a:
pentru cheia de rund˘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 din rund˘a este:
A0 F7 36 25
206
ALGORITMUL RIJNDAEL - STANDARDUL AES
Capitolul 19
CRIPTANALIZA CIFRURILOR BLOC 19.1.
Breviar teoretic
Deoarece nu exist˘a o formul˘ a matematic˘ a universal˘a care s˘a poat˘ a fi aplicat˘a ˆın operat¸ia de criptanaliz˘a, am propus ca exercit¸ii la acest capitol modific˘ari ale unor algoritmi de cifruri bloc consacrate. Sunt date o serie de indicat¸ii precedate de o scurt˘ a descriere a algoritmilor propriu-zi¸si.
19.2.
Exercit¸ii rezolvate
Exercit¸iul 19.2.1. Studiat¸i urm˘atorele simplific˘ari ale algoritmului RC5: -RC5 cu 8 iterat¸ii dar f˘ar˘ a rotat¸ii; -RC5 cu 8 iterat¸ii iar num˘arul de rotat¸ii egal cu num˘arul de iterat¸ii. R˘ aspuns. ˆIn cele ce urmeaz˘a facem o scurt˘a descriere a cifrului RC5 cu r iterat¸ii. Acesta are lungimea blocului de date variabil˘a dar vom considera ˆın cele ce urmeaz˘a c˘a aceasta a fost setat˘ a la 64 bit¸i. Operat¸ia de cifrare folose¸ste 2r+2 chei dependente de cuvintele pe 32 bit¸i S 0 , S 1 , S 2 , . . . , S2r+2 unde r este num˘arul de iterat¸ii. Pentru cifrare blocul de date se ˆımparte ˆın dou˘a p˘art¸ i de 32 bit¸i notate cu L respectiv R (RC5 face apel la codificarea little-endian pentru ˆımpachetarea octet¸ilor ˆın cuvinte: primul octet se transform˘a ˆın cele mai put¸in semnificative pozit¸ii ale lui L, etc.). Apoi avem:
L = L + S 0 , R = R + S 1 . 207
208
CRIPTANALIZA CIFRURILOR BLOC
Pentru i = 1, . . . , r se execut˘a:
⊕ R) << R) + S 2i, ⊕ L) << L) + S 2i+1. Ie¸sirea const˘a ˆın registrele L ¸si R. Simbolul ⊕ are semnificat¸ia sumei mod 2, simbolul << semnific˘a rotire circular˘a ¸si ˆın fine simbolul + are semnificat¸ia sumei mod 232 . Operat¸ia de decriptare este similar˘a (intervin operatorii ⊕, >> ¸si −). Modul de L = ((L R = ((R
construct¸ie al secvent¸ei S (care deriv˘a din cheie) nu este esent¸ial ˆın cadrul acestui exercit¸iu. Dac˘ a set˘am num˘ arul de iterat¸ii r = 8 ¸si nu facem nici un fel de rotat¸ii atunci pentru i = 1, . . . , 8 se execut˘a:
L = (L R = (R
⊕ R) + S 2i, ⊕ L) + S 2i+1.
Algoritmul astfel setat nu ˆındepline¸ste criteriul de avalan¸s˘a strict˘a (schimbarea unui bit ˆın blocul de text clar produce, ˆın medie, schimb˘ari de 50% la ie¸sire). Schema de mai sus permite atacul cu ajutorul tehnicii criptanalizei liniare pentru aflarea lui S, deci a cheii efective. Dac˘ a set˘am num˘ arul de iterat¸ii r = 8 ¸si num˘arul de rotat¸ii egal cu r atunci pentru i = 1, . . . , 8 se execut˘a:
L = ((L R = ((R
⊕ R) << 8) + S 2i, ⊕ L) << 8) + S 2i+1.
Algoritmul astfel setat nu ˆındepline¸ste criteriul de avalan¸s˘a strict˘a . Schema de mai sus permite atacul cu ajutorul tehnicii criptanalizei diferent¸ial/liniare pentru aflarea lui S. Exercit¸iul 19.2.2. Studiat¸i urm˘atorele simplific˘ari ale algoritmului DES: -DES cu 12 iterat¸ii dar f˘ar˘ a aplicat¸iile S ; -DES cu 4 iterat¸ii; -DES cu 6 iterat¸ii. R˘ aspuns. Cifrul bloc DES (proiectat ˆın 1977) este sub controlul unei chei efective de 56 bit¸i (cheia de baz˘a este de 64 bit¸ i, 8 bit¸i fiind pentru detect¸ia erorilor) iar m˘arimea blocului de date este de 64 bit¸i. Textul clar este permutat iar apoi este ˆımp˘ art¸it ˆın dou˘ a blocuri L ¸si R de lungime 32 bit¸i. Se execut˘a apoi iterativ operat¸iile (pentru i = 1, . . . , n u m˘ arul de iteratii):
Li = R i , Ri = L i f (Ri−1 , K i ).
⊕
209
EXERCIT ¸ II PROPUSE
ˆIn final textul este supus permut˘arii inverse. Ne concentr˘ am asupra descrierii 32 48 32 funct¸iei f : Z2 Z 2 Z2 . Init¸ial blocul R (32 bit¸i) este extins cu ajutorul funct¸ iei E la un bloc pe 48 bit¸i care este sumat mod2 cu cheia K (extins˘a la 48 bit¸i cu ajutorul algoritmului de producere a subcheilor). Opt aplicat¸ii S : Z 62 Z42 produc o ie¸sire pe 32 bit¸i care este permutat˘a pentru a produce ie¸sirea final˘a dintr-o iterat¸ie. Dac˘a aplicat¸iile S sunt fixe (se selecteaz˘a 4 bit¸i din 6 ˆın mod fix) atunci se poate aplica tehnica criptanalizei diferent¸iale (bit¸ii de la ie¸sire sunt bit¸ii de la intrare (sumat¸i mod2 cu cheia K ) dar ˆıntr-o alt˘a ordine). Algoritmul DES cu 4 cˆ at ¸si cu 6 iterat¸ii poate fi spart cu a jutorul tehnicii atacului cu text clar cunoscut.
×
→
→
19.3.
Exercit¸ii propuse
Exercit¸iul 19.3.1. Studiat¸i regula B a algoritmului Skipjack cu 8 iterat¸ii. Exercit¸iul 19.3.2. Ce defect are un algoritm de cifrare care este ˆınchis (un algoritm de cifrare se nume¸ste ˆınchis dac˘a pentru orice chei k1 ¸si k2 exist˘a o cheie k3 astfel ˆıncˆat pentru orice text clar M avem E k1 E k2 (M ) = E k3 (M ))? R˘ aspuns. Ca metod˘a de atac generic˘ a se poate opta pentru cifrarea repetitiv˘a. Exercit¸iul 19.3.3. Aplicat¸i tehnica criptanalizei diferent¸iale ¸si criptanalizei liniare asupra algorimului FEAL. Exercit¸iul 19.3.4. Studiat¸i tehnica criptanalizei diferent¸iale ˆın cazul algoritmului DES cu 16 iterat¸ii. Exercit¸iul 19.3.5. Aplicat¸i tehnica criptanalizei liniare ˆın cazul algoritmului DES cu 16 iterat¸ii. Exercit¸iul 19.3.6. Avˆ and la dispozit¸ie un cifru bloc E k (.) proiectat¸i un cifru flux ¸si viceversa. Exercit¸iul 19.3.7. Scriet¸i funct¸ia analitic˘ a a celor opt funct¸ii de substitut¸ie S ale cifrului DES. Exercit¸iul 19.3.8. Fie E M (.) ¸si DK (.) funct¸iile de cifrare respectiv descifrare ale unui cifru. Care este valoarea lui D K (E K (M ))?
210
CRIPTANALIZA CIFRURILOR BLOC
Not˘ a. Descrierea algoritmilor RC5, DES, Skipjack ¸si FEAL poate fi g˘asit˘ a ˆın Schneier [67] sau Menezes [47]. Exercit¸iul 19.3.9. Implementat¸i modalit˘ a¸t i de testare a cifrurilor bloc. Exercit¸iul 19.3.10. Implementat¸i modalit˘ a¸t i de generare a tabelelor de substitut¸ie.
··
Exercit¸iul 19.3.11. Fie E ( , ) o funct¸ie de cifrare pe m bit¸i de cheie ¸si n bit¸i de date. Care este valoarea maxim˘a a lui m astfel ˆıncˆat cheia efectiv˘a a cifrului s˘a fie m?
Capitolul 20
˘ A LEMA CHINEZEASCA RESTURILOR 20.1.
Breviar teoretic
Teorema 20.1.1. (Lema chinezeasc˘ a a resturilor- CRT) Fie m1 , . . . , mk numere ˆıntregi 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 M i =
M pentru orice i = 1, . . . , k . mi
Deoarece (mi , m j ) = 1 pentru orice i = j avem (M j , m j ) = 1 pentru orice j adic˘a exist˘ a N j astfel ca M j N j = 1 mod m j . Atunci dac˘a not˘ am k
x =
ai M i N i
i=0
211
˘ A RESTURILOR LEMA CHINEZEASC A
212 ¸si reducem modulo m i avem: k
x =
a j M j N j mod m i pentru orice i.
j=0
Folosind faptul c˘a (M i , m j ) = 1 pentru i = j obt¸inem: x = ai M i N i mod m i = ai mod m i pentru orice i.
Unicitatea solut ¸iei. Fie x ¸si x dou˘ a solut¸ii atunci x = x
−x
= 0 mod m i pentru orice i
deci x = 0 mod M.
20.2.
Exercit¸ii rezolvate
Exercit¸iul 20.2.1. S˘a se rezolve sistemul de ecuat¸ii:
x x x
≡ 3 ≡ 34 ≡ 2
mod 13 mod 47 mod 51
Rezolvare: Solut¸ia sistemului de congruent¸e este dat˘a de formula: 3
x =
a j M j N j mod M.
j=1
unde a1 = 3, a2 = 34, a3 = 2 iar m1 = 13, m2 = 47, m3 = 51. Se observ˘a c˘a m1 , m2 ¸si m3 sunt prime ˆıntre ele. Calcul˘ am M = 13 47 51 = 31161 ¸si M 1 = 47 51 = 2397, M 2 = 13 51 = 663 si M 3 = 13 47 = 611. Mai departe trebuie calculat inversul lui M j pentru j = 1 , j = 2 ¸si j = 3. Cu algoritmul lui Euclid extins, se calculeaz˘a N 1 = M 1−1 mod m 1 = 2397−1 mod 13 = 5−1 mod 13 = 8. Similar se calculeaz˘a N 2 = M 2−1 mod m 2 = 663−1 mod 47 = 5−1 mod 47 = 19, iar
·
· ·
·
·
213
EXERCIT ¸ II PROPUSE
N 3 = M 3−1 mod m 3 = 611−1 mod 51 = 50−1 mod 51 = 50. ˆIn acest moment, avem toate datele necesare pentru a calcula solut¸ia x a sistemului de congruent¸e: x = a 1 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 ˆıntradev˘ar aceasta este solut¸ia sistemului.
·
20.3.
·
·
·
·
·
Exercit¸ii propuse
Exercit¸iul 20.3.1. S˘a se rezolve sistemul de ecuat¸ii:
x x x
≡ 1 ≡ 2 ≡ 3
mod 13 mod 17 mod 11
R˘ aspuns: x = 1158 mod 2431. Exercit¸iul 20.3.2. S˘a se rezolve sistemul de ecuat¸ii:
x x x
≡ 3 ≡ 2 ≡ 2
mod 13 mod 11 mod 19
R˘ aspuns: x = 211 mod 2717. Exercit¸iul 20.3.3. S˘a se rezolve sistemul de ecuat¸ii:
x x x
≡ 3 ≡ 5 ≡ 7
mod 5 mod 7 mod 11
R˘ aspuns: x = 348 mod 385.
Exercit¸iul 20.3.4. S˘a se rezolve sistemul de ecuat¸ii:
R˘ aspuns: x = 991 mod 7429.
x x x
≡ 5 ≡ 3 ≡ 2
mod 17 mod 19 mod 23
˘ A RESTURILOR LEMA CHINEZEASC A
214
Exercit¸iul 20.3.5. S˘a se rezolve sistemul de ecuat¸ii:
x x x
≡ 5 ≡ 3 ≡ 2
mod 11 mod 19 mod 23
R˘ aspuns: x = 3613 mod 4807. Exercit¸iul 20.3.6. S˘a se rezolve sistemul de ecuat¸ii:
x x x
≡ 5 ≡ 3 ≡ 2
mod 17 mod 21 mod 23
R˘ aspuns: x = 4119 mod 8211. Exercit¸iul 20.3.7. S˘a se rezolve sistemul de ecuat¸ii:
x x x
≡ 4 ≡ 9 ≡ 14
mod 21 mod 31 mod 23
R˘ aspuns: x = 6178 mod 14973. Exercit¸iul 20.3.8. S˘a se rezolve sistemul de ecuat¸ii:
x x x
≡ 4 ≡ 9 ≡ 3
mod 47 mod 11 mod 23
R˘ aspuns: x = 10767 mod 11891. Exercit¸iul 20.3.9. S˘a se rezolve sistemul de ecuat¸ii:
x x x
≡ 11 ≡ 12 ≡ 13
mod 17 mod 19 mod 23
R˘ aspuns: x = 3394 mod 7429. Exercit¸iul 20.3.10. S˘a se rezolve sistemul de ecuat¸ii:
215
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
x x x
≡ 8 ≡ 14 14 ≡ 17 17
mo d 23 m o d 29 m o 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 15 ≡ 3 ≡ 13 13
m o d 23 mo d 19 m o d 36
216
˘ 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 cifrare Merkle-Hellman const˘ 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. 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 pentru k = n, = n, ..., ..., 1: S atunci b b k = 1 ¸si S = S = S S − M k ; • dac˘a M k < S atunci • altfel b altfel b k = 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 b i = 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 este ¸sirul sirul ponderil p onderilor or pentru pentr u un rucsac rucsa c supercresc˘ supe rcresc˘ator iar cheia iar cheia public˘ a este este ¸sirul sirul ponderi p onderilor lor 217
218
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 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 atu nci 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 mo mod d p, ...,mM ...,mM n mo mod d p }, unde m unde m ¸si p si p sunt sunt numere naturale prime ˆıntre ele (acestea fac parte din cheia privat˘a) a) ¸si p 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 b 1 ...bn va fi num˘arul arul natural: n
bi (mM i mo mod d p) 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 ¸ m ¸si p. si p. Acesta Acesta va calcula calcul a mai ma i ˆıntˆai ai pe m pe m mod p. mod p. Se Se va multiplica 1 − apoi textul cifrat cu m mod p 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 plicatorul m = 31. Cifrat 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 mo mod d p, ..., ..., mM n mo mod d 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 mo mod d
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 este c = 333.
219
EXERCIT EXE RCIT ¸ II PROPUSE PROP USE
Exercit¸iul ¸iul 21.2.2. 21.2.2. S˘ a se descifreze mesajul C = 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 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 plicatorul m = 31. Cifrat Cifrat¸i ¸i mesajul 011111.
{
{
}
}
R˘ aspuns: Cheia public˘a 62 62,, 93 93,, 81 81,, 88 88,, 102 102,, 37 , mesajul cifrat c 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 plicatorul m = 31. Cifrat Cifrat¸i ¸i mesajul 111110.
{
{
}
}
R˘ aspuns: Cheia public˘a 62 62,, 93 93,, 81 81,, 88 88,, 102 102,, 37 , mesajul cifrat c 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 plicatorul m = 31. Cifrat Cifrat¸i ¸i mesajul 001110.
{
{
}
}
R˘ aspuns: Cheia public˘a 62 62,, 93 93,, 81 81,, 88 88,, 102 102,, 37 , mesajul cifrat c 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 modulul p = 105 1 05 ¸si si multiplicatorul multiplic atorul m = m = 31.
{
}
220
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 modulul p = 228 2 28 ¸si si multiplicatorul multiplic atorul m = m = 191.
{
}
R˘ aspuns: Cheia public˘a 154 154,, 43 43,, 166 166,, 61 61,, 208 208,, 163 , m−1 mod p 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 = p = 209 2 09 ¸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 modulul p = 209 2 09 ¸si si multiplicatorul multiplic atorul m = m = 20.
{
}
R˘ aspuns: Cheia public˘a 60 60,, 80 80,, 11 11,, 82 82,, 164 164,, 170 , m −1 mod p 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 = p = 238 2 38 ¸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 modulul p = 238 2 38 ¸si si multiplicatorul multiplic atorul m = m = 167.
{
}
R˘ aspuns: Chei Ch eiaa publ pu blic˘ ic˘a 25 25,, 192 192,, 171 171,, 58 58,, 166 166,, 90 , m−1 mod p mod p = 181, mesajul clar 011101.
{
}
Capitolul 22
SISTEMUL DE CIFRARE RSA 22.1.
Breviar teoretic
Algoritmul RSA a fost inventat de c˘atre Ron Rivest, Adi Shamir ¸si Leonard Adleman s¸i a fost studiat ˆın cadrul unor studii criptanalitice extinse. Securitatea RSA-ului se bazeaz˘a pe dificultatea factoriz˘arii numerelor mari. Cheia public˘ a ¸si cheia privat˘a sunt funct¸ie de o pereche de numere prime mari (de 200 de cifre sau chiar mai mari). Factorizarea produsului a dou˘a numere prime implic˘a recuperarea textului clar din textul cifrat, cunoscˆand cheia public˘a. Pentru generarea a dou˘a chei (public˘a ¸si privat˘a) se aleg aleatoriu dou˘a numere prime mari p ¸si q. Din rat¸ionamente de securitate p ¸si q au acela¸si ordin de m˘arime. Se va calcula produsul n = p q. Se va alege apoi, aleatoriu, exponentul public (de cifrare) e astfel ca e ¸si ( p 1)(q 1) s˘a fie relativ prime. Utilizˆand algoritmul extins al lui Euclid vom calcula exponentul privat (de descifrare) d astfel ca
·
−
ed
−
≡ 1 mod ( p − 1)(q − 1).
Cu alte cuvinte d
≡ e−1 mod ( p − 1)(q − 1).
Remarc˘ am faptul c˘ a d ¸si n sunt relativ prime. Perechea (e, n) constituie cheia public˘a iar (d,p,q ) este cheia privat˘a. Cele dou˘a numere p ¸si q nu mai sunt necesare la cifrare/descifrare, dar nu vor fi niciodat˘a f˘acute publice (cunoa¸sterea lor ¸si a exponentului de cifrare e conduce imediat la determinarea coeficientului de descifrare d, deci sistemul de criptare devine inutil). Pentru a cifra un mesaj M ˆıl vom diviza ˆın blocuri de lungime mai mic˘a n (cu date binare vom alege cea mai mare putere a lui 2 mai mic˘a decˆat n). Dac˘ a p ¸si q sunt numere prime de 100 cifre atunci n va avea sub 200 de cifre iar fiecare mesaj bloc M i va avea sub 200 de cifre. Dac˘a trebuie cifrate blocuri de lungime fix˘a 221
222
SISTEMUL DE CIFRARE RSA
atunci vom apela la operat¸ia de padding cu zero. Mesajul cifrat C se va obt¸ine prin concatenarea mesajelor C i care au aproximativ aceeia¸si lungime. Formula de cifrare va fi: C i M ie mod n.
≡
Pentru a descifra un mesaj se calculeaz˘a:
≡ C id mod n,
M i deoarece C id
≡ ≡
≡ M ied ≡ M ik( p−1)(q−1)+1 k( p−1)(q −1) M i M i ≡ M i mod n. (M ie )d
Observat¸ia 22.1.1. Pentru a evita metodele de factorizare cunoscute numerele p ¸si q trebuie s˘a fie numere prime tari . Un num˘ar prim p se nume¸ste num˘ar prim tare dac˘a: i) p 1 are un factor mare r; ii) p + 1 are un factor mare s; iii) r 1 are un factor mare t.
− −
Operat¸ia de semnare a unui mesaj M se realizeaz˘a prin exponent¸ierea amprentei H (M ) cu ajutorul cheii private: s = H (M )d mod n. Verificarea semn˘aturii se realizeaz˘a prin comparat¸ia lui H (M ) cu s e mod n. ˆIn cazurile practice valoarea lui e este un num˘ar relativ mic, deci d are o valoare mare. Acest lucru conduce la timpi de rulare diferit¸i ˆıntre operat¸iile private (descifrare/semnare) ¸si cele publice(cifrare/verificare semn˘atur˘ a). Pentru optimizarea calculelor de verificare a semn˘ aturii se poate utiliza lema chinezeasc˘ a a resturilor (CRT), ˆıns˘a acest lucru induce vulnerabilit˘a¸ti ˆın mediul de implementare. Astfel, dac˘ a p > q , sunt precalculate valorile: dP = (e−1 mod n) mod ( p
− 1), dQ = (e−1 mod n) mod (q − 1), qInv = q −1 mod p. ˆIn faza de calcul se execut˘a: m1 = c dP mod p, m2 = c dQ mod q, h = qInv(m1
− m2) mod p,
m = m 2 + hq.
Cheia privat˘ a ce se stocheaz˘a fiind ( p, q, dP, dQ, qI nv).
223
EXERCIT ¸ II REZOLVATE
22.2.
Exercit¸ii rezolvate
Exercit¸iul 22.2.1. Se d˘a num˘ arul n = 36187829 despre care se cunoaste faptul c˘a este un produs de dou˘ a numere cu valoarea φ(n) = 36175776. Factorizat¸i num˘arul n. Rezolvare: Folosim relat¸ile p + q = n Obt¸inem p = 5657 ¸si q = 6397.
− ( p − 1)(q − 1) +1 ¸si p − q =
( p + q )2
− 4n.
Exercit¸iul 22.2.2. S˘a se cifreze mesajul M = 3, utilizˆand sistemul RSA cu urm˘ atorii parametrii: N = 187 (modulul de cifrare), e = 7 (exponentul de cifrare). Rezolvare: Criptograma este: C = M e = 37 = 2187 = 130 mod 187. Exercit¸iul 22.2.3. S˘a se descifreze mesajul C = 130, utilizˆand sistemul RSA cu urm˘atorii parametrii: N = 187 = 11 17 (modulul de cifrare), e = 7 (exponentul de cifrare).
·
·
Rezolvare: Deoarece se cunoa¸ste factorizarea N = 11 17, se poate calcula ϕ(N ) = 16 10 = 160, ϕ(ϕ(N )) = 64. Exponentul de descifrare va fi: d = e ϕ(ϕ(N ))−1 = 7 63 = (7 9 )7 = (40353607)7 = 77 = 823543 = 23 mod 160. Descifrarea mesajului cifrat C va fi: C d = 13023 = 3 = M mod 187.
·
Exercit¸iul 22.2.4. S˘a se descifreze, utilizˆand CRT, mesajul cifrat c = 8363, pentru cazul ˆın care p = 137, q = 131, n = p q = 17947, e = 3, d = 11787.
·
Rezolvare: ˆIn faza de precalcul avem: dP = (e−1 mod n) mod ( p
− 1) = 91,
dQ = (e−1 mod n) mod (q − 1) = 87, qInv = q −1 mod p = 114. Calcul˘ am apoi: m1 = c dP mod p = 102, m2 = c dQ mod q = 120, h = qInv(m1
− m2) mod p = 3,
m = m 2 + hq = 513.
224
22.3.
SISTEMUL DE CIFRARE RSA
Exercit¸ii propuse
Exercit¸iul 22.3.1. Fie numerele prime p = 211 ¸si q = 167. S˘a se cifreze mesajul TEST cu ajutorul algoritmului RSA, utilizˆand exponentul public e = 28 + 1. Elementele din mesajul clar se codific˘a conform codului ASCII. R˘ aspuns: N = 35237, φ(N ) = 34860, d = 23873, mesajul cifrat este: 01154 05746 04357 01154. Exercit¸iul 22.3.2. S˘a se descifreze mesajul 01154 05746 04357 01154 cu ajutorul algoritmului RSA ( p = 211 ¸si q = 167), utilizˆand exponentul public e = 28 + 1. Elementele din mesajul clar se decodific˘a conform codului ASCII. R˘ aspuns: N = 35237, φ(N ) = 34860, d = 23873, mesajul clar este TEST. Exercit¸iul 22.3.3. S˘a se cifreze mesajul M = 146, utilizˆand sistemul RSA cu urm˘ atorii parametrii: n = 187 (modulul de cifrare), e = 7 (exponentul de cifrare). R˘ aspuns: C = 141. Exercit¸iul 22.3.4. S˘a se descifreze mesajul C = 141, utilizˆand sistemul RSA cu urm˘atorii parametrii: n = 187 (modulul de cifrare), d = 23(exponentul de descifrare). R˘ aspuns: M = 146. Exercit¸iul 22.3.5. S˘a se cifreze mesajul M = 9, utilizˆand sistemul RSA cu urm˘ atorii parametrii: n = 187 (modulul de cifrare), e = 7 (exponentul de cifrare). R˘ aspuns: C = 70. Exercit¸iul 22.3.6. S˘a se descifreze mesajul C = 70, utilizˆand sistemul RSA cu urm˘atorii parametrii: n = 187 (modulul de cifrare), d = 23 (exponentul de descifrare). R˘ aspuns: M = 9. Exercit¸iul 22.3.7. S˘a se cifreze mesajul M = 3, utilizˆand sistemul RSA cu urm˘ atorii parametrii: n = 35237 (modulul de cifrare), e = 11 (exponentul de cifrare).
225
EXERCIT ¸ II PROPUSE R˘ aspuns: C = 962.
Exercit¸iul 22.3.8. S˘a se descifreze mesajul C = 962, utilizˆand sistemul RSA cu urm˘atorii parametrii: n = 35237 (modulul de cifrare), d = 31691 (exponentul de descifrare). R˘ aspuns: M = 3. Exercit¸iul 22.3.9. S˘a se cifreze mesajul M = 5, utilizˆand sistemul RSA cu urm˘ atorii parametrii: n = 221 (modulul de cifrare), e = 11 (exponentul de cifrare). R˘ aspuns: C = 164. Exercit¸iul 22.3.10. S˘a se descifreze mesajul C = 164, utilizˆand sistemul RSA cu urm˘atorii parametrii: n = 221 = 13 17 (modulul de cifrare), e = 11 (exponentul de cifrare).
·
R˘ aspuns: M = 5, d = 35. Exercit¸iul 22.3.11. S˘a se cifreze mesajul M = 4, utilizˆand sistemul RSA cu urm˘ atorii parametrii: N = 209 (modulul de cifrare), e = 11 (exponentul de cifrare). Rezolvare: Criptograma este: C = M e = 411 = 92 mod 209. Exercit¸iul 22.3.12. S˘a se descifreze mesajul C = 92, utilizˆand sistemul RSA cu urm˘atorii parametrii: N = 209 = 11 19 (modulul de cifrare), e = 11 (exponentul de cifrare).
·
·
Rezolvare: Deoarece se cunoa¸ste factorizarea N = 11 19, se poate calcula ϕ(N ) = 18 10 = 180, d = 131, M = 4.
·
226
SISTEMUL DE CIFRARE RSA
Capitolul 23
SISTEMUL DE CIFRARE ELGAMAL 23.1.
Breviar teoretic
Algoritmul de cifrare ElGamal este definit de un num˘ar prim p ¸si un element g Z p∗ primitiv, numit generator. Pentru cheia privat˘a x Z p∗ se calculeaz˘a y = g x mod p, cheia public˘a fiind tripletul (y,g,p). Pentru a cifra un mesaj M Z p se alege aleatoriu k Z p−1 , textul cifrat fiind (y1 , y2 ) = (g k mod p,M y k mod p). Pentru a descifra mesajul (y1 , y2 ) se calculeaz˘a y 2 (y1x )−1 mod p.
∈
∈
∈
23.2.
∈
Exercit¸ii rezolvate
Exercit¸iul 23.2.1. S˘a se cifreze mesajul M = 4 cu ajutorul algoritmului ElGamal cu parametrii p = 17, g = 14, x = 2. Rezolvare: Cheia public˘a este (y,g,p) = (142 mod 17, 14, 17) = (9, 14, 17), cheia privat˘a x = 2. Alegem, spre exemplu, k = 7 relativ prim cu 16 = p 1. Obt¸inem mesajul cifrat C = (147 mod 17, 4 97 mod 17) = 6, 8 .
·
{ }
−
{ }
Exercit¸iul 23.2.2. S˘a se descifreze mesajul 6, 8 , ¸stiind c˘a a fost cifrat cu ajutorul algoritmului ElGamal cu parametrii p = 17, g = 14, x = 2.
{
} {
}
Rezolvare: Cheia public˘a este y,g,p = 9, 14, 17 , cheia privat˘a x = 2. Mesajul clar se obt¸ine aplicˆand formula y 2 y1−x mod p = 4. 227
228
23.3.
SISTEMUL DE CIFRARE ELGAMAL
Exercit¸ii propuse
Exercit¸iul 23.3.1. S˘a se cifreze mesajul 5 cu ajutorul algoritmului ElGamal cu parametrii p = 23, g = 14, x = 2. Valoarea k utilizat˘a pentru cifrare este 7. R˘ aspuns: Mesajul cifrat este (19, 11). Exercit¸iul 23.3.2. S˘a se cifreze mesajul 5 cu ajutorul algoritmului ElGamal cu parametrii p = 23, g = 14, x = 2. Valoarea k utilizat˘a pentru cifrare este 9. R˘ aspuns: Mesajul cifrat este (21, 20). Exercit¸iul 23.3.3. S˘a se cifreze mesajul 3 cu ajutorul algoritmului ElGamal cu parametrii p = 47, g = 14, x = 3. Valoarea k utilizat˘a pentru cifrare este 5. R˘ aspuns: Mesajul cifrat este (3, 34). Exercit¸iul 23.3.4. S˘a se cifreze mesajul 8 cu ajutorul algoritmului ElGamal cu parametrii p = 47, g = 4, x = 2. Valoarea k utilizat˘a pentru cifrare este 3. R˘ aspuns: Mesajul cifrat este (17, 9). Exercit¸iul 23.3.5. S˘a se cifreze mesajul 4 cu ajutorul algoritmului ElGamal cu parametrii p = 23, g = 7, x = 3. Valoarea k utilizat˘a pentru cifrare este 3. R˘ aspuns: Mesajul cifrat este (21, 14). Exercit¸iul 23.3.6. S˘a se descifreze mesajul (17, 9) cu ajutorul algoritmului ElGamal cu parametrii p = 47, g = 4, x = 2. R˘ aspuns: Mesajul clar este 8. Exercit¸iul 23.3.7. S˘a se descifreze mesajul (3, 34) cu ajutorul algoritmului ElGamal cu parametrii p = 47, g = 14, x = 3. R˘ aspuns: Mesajul clar este 3. Exercit¸iul 23.3.8. S˘a se descifreze mesajul (21, 14) cu ajutorul algoritmului ElGamal cu parametrii p = 23, g = 7, x = 3. R˘ aspuns: Mesajul clar este 4.
Capitolul 24
ARITMETICA PE CURBE ELIPTICE 24.1.
Breviar teoretic
Definit¸ia 24.1.1. O curb˘ a eliptic˘ a E este constituit˘ a din elemente (numite puncte) de tipul (x, y) ce satisfac ecuat¸ia: y2
≡ x3 + ax + b mod p 0 mod p ¸si p este un num˘ar unde a ¸si b sunt constante astfel ˆıncˆat 4a3 + 27b2 = prim, ˆımpreun˘a cu un element singular, notat O ¸si numit punctul de la infinit. Acest punct poate fi privit ca fiind punctul din vˆarful ¸si de la baza oric˘arei linii verticale.
O curb˘a eliptic˘a E are o structur˘a de grup abelian ˆımpreun˘ a cu operat¸ia adunare. Adunarea a dou˘a puncte de pe o curb˘a eliptic˘a este definit˘a ˆın concordant¸a˘ cu o mult¸ime simpl˘a de reguli (vezi figura 24.1). Fiind date dou˘a puncte pe E , P 1 (x1 , y1 ) ¸si P 2 (x2 , y2 ), avem urm˘atoarele cazuri: - dac˘a x 2 = x 1 ¸si y 2 = y1 atunci P 1 + P 2 = . - altfel P 1 + P 2 = (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
229
230
ARITMETICA PE CURBE ELIPTICE
Figura 24.1: Operat¸ia de adunare pe o curb˘a eliptic˘a.
O
Observat¸ia 24.1.1. A nu se confunda punctul la infinit cu perechea (0, 0). Punctul la infinit apart¸ine tuturor curbelor eliptice, ˆın timp ce punctul (0, 0) este un element doar pentru curbele eliptice cu parametrul b = 0.
24.2.
Exercit¸ii rezolvate
Exercit¸iul 24.2.1. Fie curba eliptic˘a y 2 = x 3 + 7x + 4 definit˘a peste F 71 . S˘a se adune punctele P (15, 17) ¸si Q(43, 24). Rezolvare: Coordoantele punctului P + Q = (x3 , y3 ), sunt date de formulele:
unde λ =
y2 y1 x2 x1 .
− −
x3 = λ 2 x1 x2 y3 = λ(x1 x3 ) y1
− − − −
231
EXERCIT ¸ II PROPUSE
Pentru calculul λ = 7 (28 −1 mod 71), se folose¸ste algoritmul lui Euclid care gase¸ste 33 = 28−1 mod 71, deci λ = 231. Atunci x 3 = 2312 15 43 mod 71 = 53 iar y 3 = 231(15 53) 17 mod 71 = 9. ˆIn concluzie, coordoantele punctului care reprezinta suma celor doua puncte de pe curba eliptic˘a dat˘ a sunt (53, 9).
· − −
−
−
Exercit¸iul 24.2.2. Fie curba eliptic˘a y 2 = x 3 + x+3 definit˘a peste F 17 . Ar˘atat¸i c˘a punctul (2, 8) este un generator al punctelor de pe curba eliptic˘a. Rezolvare: Succesiv putem scrie 1P = (2, 8), 2P = (12, 3), 3P = (16, 16), 4P = (8, 8), 5P = (7, 9), 6P = (6, 15), 7P = (11, 6), 8P = (3, 13), 9P = (3, 4), 10P = (11, 11), 11P = (6, 2), 12P = (7, 8), 13P = (8, 9), 14P = (16, 1), 15P = (12, 14), 16P = (2, 9), 17P = O.
24.3.
Exercit¸ii propuse
Exercit¸iul 24.3.1. Fie curba eliptic˘a y 2 = x 3 + 2x + 3 definit˘a peste F 23 . S˘a se adune punctele P (6, 1) ¸si Q(13, 8). R˘ aspuns: R(5, 0). Exercit¸iul 24.3.2. Fie curba eliptic˘a y 2 = x 3 + 7x + 4 definit˘ a peste F 71 . Se d˘a punctul P (15, 17). Aflat¸i 2P . R˘ aspuns: (66, 25). Exercit¸iul 24.3.3. Fie curba eliptic˘a y 2 = x 3 + x + 6 definit˘a peste F 11 . S˘a se arate c˘a punctul (2, 7) este un generator al punctelor de pe curba eliptic˘a. R˘ aspuns: 1P = (2, 7), 2P = (5, 2), 3P = (8, 3), 4P = (10, 2), 5P = (3, 6), 6P = (7, 9), 7P = (7, 2), 8P = (3, 5), 9P = (10, 9), 10P = (8, 8), 11P = (5, 9), 12P = (2, 4), 13P = O. Exercit¸iul 24.3.4. Fie curba eliptic˘a y 2 = x 3 + 6x + 11 definit˘a peste F 17 . Se d˘ a punctul P (6, 5). Aflat¸i 2P . R˘ aspuns: (1, 1). Exercit¸iul 24.3.5. Fie curba eliptic˘a y 2 = x 3 + x +3 definit˘a peste F 7 . Ar˘atat¸i c˘a punctul (4, 6) este un generator al punctelor de pe curba eliptic˘a.
232
ARITMETICA PE CURBE ELIPTICE
R˘ aspuns: Succesiv obt¸inem 1P = (4, 6), 2P = (6, 1), 3P = (5, 0), 4P = (6, 6), 5P = (4, 1), 6P = O. Exercit¸iul 24.3.6. Fie curba eliptic˘a y 2 = x3 + 9 definit˘a peste F 37 . Se d˘a punctul P (6, 22). Aflat¸i 2P . R˘ aspuns: (35, 1). Exercit¸iul 24.3.7. Fie curba eliptic˘a y 2 = x3 + 9 definit˘a peste F 37 . Se dau punctele P (6, 22) ¸si Q(8, 15). Aflat¸i P + Q. R˘ aspuns: (26, 11). Exercit¸iul 24.3.8. Fie curba eliptic˘a y 2 = x 3 + 11x + 20 definit˘ a peste F 23 . Se dau punctele P (7, 7) ¸si Q(15, 15). Aflat¸i P + Q. R˘ aspuns: (2, 21). Exercit¸iul 24.3.9. Fie curba eliptic˘a y 2 = x 3 + 7x + 11 definit˘a peste F 23 . Se dau punctele P (21, 14) ¸si Q(7, 9). Aflat¸i P + Q. R˘ aspuns: (22, 7). Exercit¸iul 24.3.10. Fie curba eliptic˘a y 2 = x 3 + 5x + 5 definit˘a peste F 17 . Se d˘ a punctul P (3, 8). Aflat¸i 3P . R˘ aspuns: (12, 5). Exercit¸iul 24.3.11. Fie curba eliptic˘a y 2 = x 3 + 3x definit˘a peste F 11 . Ar˘atat¸i c˘a punctele P (0, 0) ¸si Q(1, 2) apart¸in curbei. Aflat¸i P + Q. R˘ aspuns: Cele 2 puncte satisfac fiecare ecuat¸ia curbei eliptice. Suma lor este (3, 5). Exercit¸iul 24.3.12. Fie curba eliptic˘a y 2 = x 3 + 6x + 11 definit˘ a peste F 17 . Se dau punctele P (12, 3) ¸si Q(6, 12). Aflat¸i P + Q. R˘ aspuns: (14, 0).
Capitolul 25
SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE 25.1.
Breviar teoretic
◦
Algoritmul ElGamal poate fi extins pe orice grup finit (G, ), ˆın care problema logaritmului discret este dificil˘a, ˆın particular ¸si pe grupul punctelor de pe o curb˘a eliptic˘a. Astfel, fie α G pentru care problema logaritmului ˆın subgrupul H = αi i 0 este dificil˘a. Pe baza cheii private x Z , se construie¸ste β = α x , cheia public˘a fiind G,α,β . Pentru a cifra un mesaj M se alege aleatoriu k Z |H | ¸si se aplic˘a regula de k k cifrare: E (M, k) = (α , M β ). Mesajul clar m se recupereaz˘a din mesajul cifrat (y1 , y2 ) dup˘a regula: y2 (y1x )−1 . ˆIntr-adev˘ ar y 2 (y1x )−1 = M β k ((αk )x )−1 = M αkx (αkx )−1 = M.
∈
{
{ |≥ }
∈
}
∈
◦
◦
25.2.
◦ ◦
◦
◦
◦
Exercit¸ii rezolvate
Exercit¸iul 25.2.1. S˘a se cifreze mesajul (10, 9) utilizˆ and curba eliptic˘a (pub2 3 lic˘a) E : y = x + x + 6 pe Z 11 cu ajutorul algoritmului ElGamal. Rezolvare: Pentru a calcula punctele curbei eliptice se calculeaz˘a valorile z = + x + 6 mod 11, se vede care din aceste valori sunt reziduri p˘atratice cu ajutorul p 1 teoremei lui Euler (z este reziduu p˘atratic dac˘ a ¸si numai dac˘a z 2 1 mod p) ¸si x3
−
233
≡
234
SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE
±
p+1
apoi se calculeaz˘a r˘ad˘acinile p˘atrate ale acestor reziduri prin formula y = z 2 mod p). Punctele curbei eliptice vor fi: (2, 7), (2, 4), (3, 5), (3, 6), (5, 2), (5, 9), (7, 2), (7, 9), (8, 3), (8, 8), (10, 2), (10, 9), . Grupul E este grup ciclic (num˘arul de elemente este al grupului este num˘ar prim) ¸si se ia ca generator pentru acesta elementul (public) α = (2, 7). Cheia privat˘a de descifrare, notat˘a prin d, este o valoare ˆıntre 1 ¸si num˘arul de puncte de pe o curb˘a eliptic˘a 1. Cheia public˘a, notat˘ a prin β, se obt¸ine din α ¸si exponentul secret d prin formula β = dα. Operat¸ia de cifrare a mesajul M cu ajutorul cheii (secrete) k este:
O}
{
−
E (M, k) = (kα,M + kβ ). Operat¸ia de descifrare pentru a obt¸ine M este: Dk (y1 , y2 ) = y 2
− dy1.
Fie d = 3. Se determin˘a β = 3(2, 7) = (8, 3). Considerˆ and valoarea aleatoare k = 4, se obt¸ine: E (M, k) = (4(2, 7), (10, 9) + 4(8, 3)) = ((10, 2), (10, 9) + (2, 4)) = ((10, 2), (3, 5)) Exercit¸iul 25.2.2. S˘a se descifreze mesajul ((10, 2), (3, 5)) ¸stiind c˘a a fost cifrat cu algoritmul ElGamal utilizˆ and curba eliptic˘a(public˘ a) E : y 2 = x 3 + x + 6 pe Z 11 ¸si cheia privat˘a d = 3. Rezolvare: Se determin˘a mesajul clar ca fiind: M = y 2 (3, 5) (2, 4) = (3, 5) + (2, 7) = (10, 9).
−
25.3.
− dy1 = (3, 5) − 3(10, 2) =
Exercit¸ii propuse
Exercit¸iul 25.3.1. Se consider˘a algoritmul ElGamal precizat de parametrii E : = x3 + x + 6 peste Z11 . Ar˘atat¸i c˘a α = (2, 7) este un generator al grupului E . Se consider˘a cheia privat˘a d = 5. S˘a se cifreze mesajul (10, 9) cu valoarea aleatoare k = 3. y2
R˘ aspuns: Valoarea cheii publice este β = dα = (3, 6). Mesajul cifrat este (kα,M + kβ ) = ((8, 3), (10, 9) + (5, 2)) = ((8, 3), (5, 9)). Exercit¸iul 25.3.2. Se consider˘a algoritmul ElGamal precizat de parametrii E : = x 3 + x +6 peste Z 11 . Ar˘atat¸i c˘a α = (2, 7) este un generator al grupului E . S˘a se descifreze mesajul ((8, 3), (5, 9)) cu ajutorul cheii private d = 5. y2
235
EXERCIT ¸ II PROPUSE R˘ aspuns: Dk (y1 , y2 ) = (y2 (5, 9)) = (10, 9).
− dy1) = ((5, 9) − 5(8, 3)) = ((5, 9) − (5, 2)) = ((5, 9) +
Exercit¸iul 25.3.3. Se consider˘a algoritmul ElGamal precizat de parametrii E : = x3 + x + 6 peste Z13 . Ar˘atat¸i c˘a α = (4, 3) este un generator al grupului E . Se consider˘a cheia privat˘a d = 3. S˘ a se cifreze mesajul (3, 7) cu valoarea aleatoare k = 4. y2
R˘ aspuns: Valoarea cheii publice este β = dα = (3, 7). Mesajul cifrat este (kα,M + kβ ) = ((9, 4), (3, 7) + (4, 10)) = ((9, 4), (2, 9)). Exercit¸iul 25.3.4. Se consider˘a algoritmul ElGamal precizat de parametrii E : = x 3 + x +6 peste Z 13 . Ar˘atat¸i c˘a α = (4, 3) este un generator al grupului E . S˘a se descifreze mesajul ((9, 4), (2, 9)) cu ajutorul cheii private d = 3. y2
R˘ aspuns: Dk (y1 , y2 ) = (y2 (4, 3)) = (3, 7).
− dy1) = ((2, 9) − 3(9, 4)) = ((2, 9) − (4, 10)) = ((2, 9) +
Exercit¸iul 25.3.5. Se consider˘a algoritmul ElGamal precizat de parametrii E : y 2 = x 3 + x + 6 peste Z17 . Se alege generatorul subgrupului ciclic α = (1, 5) al lui E . Se consider˘ a cheia privat˘a d = 7. S˘ a se cifreze mesajul (8, 4) utilizˆ and valoarea aleatoare k = 3. R˘ aspuns: Valoarea cheii publice este β = dα = (7, 13). Mesajul cifrat este (kα,M + kβ ) = ((7, 4), (8, 4) + (1, 5)) = ((7, 4), (16, 2)). Exercit¸iul 25.3.6. Se consider˘a algoritmul ElGamal precizat de parametrii E : = x 3 + x + 6 peste Z 17 . S˘a se descifreze mesajul ((7, 4), (16, 2)) cu ajutorul cheii private d = 3. y2
R˘ aspuns: Dk (y1 , y2 ) = (y2 ((2, 9) + (1, 12)) = (8, 4).
− dy 1) = ((16, 2) − 7(7, 4)) = ((16, 2) − (1, 5)) =
Exercit¸iul 25.3.7. Se consider˘a algoritmul ElGamal precizat de parametrii E : = x 3 +2x +6 peste Z 29 . Se alege generatorul subgrupului ciclic α = (20, 10) al lui E . Se consider˘a cheia privat˘a d = 5. S˘a se cifreze mesajul (10, 9) utilizˆand valoarea aleatoare k = 6. y2
R˘ aspuns: Valoarea cheii publice este β = dα = (1, 3). Mesajul cifrat este (kα,M + kβ ) = ((14, 9), (10, 9) + (14, 9)) = ((14, 9), (5, 20)).
236
SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE
Exercit¸iul 25.3.8. Se consider˘a algoritmul ElGamal precizat de parametrii E : = x3 + 2x + 6 peste Z29 . S˘a se descifreze mesajul ((14, 9), (5, 20)) cu ajutorul cheii private d = 5. y2
R˘ aspuns: Dk (y1 , y2 ) = (y2 ((5, 20) + (14, 20)) = (10, 9).
− dy1) = ((5, 20) − 5(14, 9)) = ((5, 20) − (14, 9)) =
Exercit¸iul 25.3.9. Se consider˘a algoritmul ElGamal precizat de parametrii E : = x 3 + 2x +7 peste Z 17 . S˘a se descifreze mesajul ((16, 2), (2, 6)) cu ajutorul cheii private d = 5. y2
R˘ aspuns: Dk (y1 , y2 ) = (y2 ((2, 6) + (16, 15)) = (8, 12).
− dy 1) = ((2, 6) − 5(16, 2)) = ((2, 6) − (16, 2)) =
Capitolul 26
SISTEMUL DE CIFRARE MENEZES-VANSTONE 26.1.
Breviar teoretic
ˆIn acest sistem de cifrare - de fapt o variant˘a a lui ElGamal - curba eliptic˘a este utilizat˘a pentru mascare, textele clare ¸si cele cifrate putˆand fi formate din orice elemente nenule (nu neap˘arat puncte din E ). Fie E o curb˘a eliptic˘ a peste Z p , p > 3 num˘ar prim care cont¸ine un subgrup ciclic G ˆın care problema logaritmului discret este dificil˘a. Pe baza cheii private d Z , se construie¸ste β = dα, cheia public˘a fiind E,α,β . Pentru a cifra mesajul m = (m1 , m2 ) Z p∗ Z p∗ se alege aleatoriu k ¸si se construie¸ste textul cifrat (y0 , y1 , y2 ) dup˘a regulile: y0 = kα, (c1 , c2 ) = kβ , y i = c i mi , i = 1, 2. La descifrare, cunoscˆa nd (y0 , y1 , y2 ) ¸si cheia privat˘a d se determin˘a textul clar astfel: 1 −1 (m1 , m2 ) = (y1 c− 1 mod p, y2 c2 mod p), unde dy 0 = (c1 , c2 )
{ } ∈ ×
26.2.
∈
Exercit¸ii rezolvate
Exercit¸iul 26.2.1. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x3 + x + 6 peste Z13 . Ar˘atat¸i c˘a α = (4, 3) este un generator al grupului E . Se consider˘a cheia privat˘a d = 3. S˘a se cifreze mesajul (3, 7) cu valoarea aleatoare k = 4. Rezolvare: Curba eliptica are 13 puncte deci grupul E este ciclic ¸si orice element este generator. 237
238
SISTEMUL DE CIFRARE MENEZES-VANSTONE
·
Se calculeaz˘a β = 3α = 3 (4, 3) = (3, 7) Cifrarea mesajului (3, 7) cu valoarea aleatoare k = 4 se face dupa urm˘atoarea formul˘ a ek (x, k) = (y0 , y1 , y2 ) unde y0 = k α, (c1 , c2 ) = k β, yi = ci xi (mod p) pentru i = 1, 2. Calcul˘ am y 0 = 4 (4, 3) = (9, 4) iar (c1 , c2 ) = 4 β = 12α = (4, 10) deci c 1 = 4 iar c2 = 10 Se calculeaz˘a ¸si y1 = 4 3 mod 13 = 12 ¸si y2 = 10 7 mod 13 = 5. Rezultatul cifrarii mesajului (3, 7) cu valoarea aleatoare k = 4 este ((9,4), 12,5).
·
·
·
·
·
26.3.
·
·
Exercit¸ii propuse
Exercit¸iul 26.3.1. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x3 + x + 6 peste Z13 . Ar˘atat¸i c˘a α = (4, 3) este un generator al grupului E . Se consider˘a cheia privat˘a d = 3. S˘a se cifreze mesajul (1, 1) cu valoarea aleatoare k = 2. R˘ aspuns: β = (3, 7), (y0 , y1 , y2 ) = ((2, 9), 11, 3). Exercit¸iul 26.3.2. Se consider˘a curba eliptic˘a E : y 2 = x 3 + x + 6 peste Z13 . Cˆate puncte are aceast˘a curb˘a? Gasit¸i un generator al punctelor de pe curba eliptic˘a. Cˆate elemente se pot cifra prin algoritmul ElGamal? Dar cu ajutorul algoritmului Menezes-Vanstone? R˘ aspuns: Curba are 13 puncte. Cum num˘ arul de puncte este prim, grupul E este ciclic ¸si deci orice punct din E este generator. Folosind sistemul ElGamal se pot cifra numai punctele de pe curb˘a, deci 13. Cu Menezes-Vanstone se poate cifra orice punct din Z13 Z13 .
×
Exercit¸iul 26.3.3. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x 3 +2x+5 peste Z11 . Cunoscˆand cheia public˘a (α, β ) = ((3, 7), (4, 0)), s˘a se cifreze mesajul (5, 2) cu valoarea aleatoare k = 7. R˘ aspuns: (y0 , y1 , y2 ) = ((0, 7), 9, 0). Exercit¸iul 26.3.4. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x 3 +7x+3 peste Z17 . Cunoscˆand cheia public˘a (α, β ) = ((12, 8), (7, 2)), s˘a se cifreze mesajul (14, 7) cu valoarea aleatoare k = 7. R˘ aspuns: (y0 , y1 , y2 ) = ((12, 9), 13, 3).
EXERCIT ¸ II PROPUSE
239
Exercit¸iul 26.3.5. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x 3 +3x+2 peste Z23 . Cunoscˆand cheia public˘a (α, β ) = ((15, 15), (15, 8)), s˘a se cifreze mesajul (13, 19) cu valoarea aleatoare k = 2. R˘ aspuns: (y0 , y1 , y2 ) = ((18, 0), 4, 0). Exercit¸iul 26.3.6. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x 3 +2x+7 peste Z23 . Cunoscˆand cheia public˘a (α, β ) = ((5, 21), (16, 15)), s˘a se cifreze mesajul (8, 10) cu valoarea aleatoare k = 4. R˘ aspuns: (y0 , y1 , y2 ) = ((21, 8), 13, 12). Exercit¸iul 26.3.7. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x 3 +2x+7 peste Z23 . Cunoscˆand cheia public˘a (α, β ) = ((5, 21), (16, 15)), s˘a se cifreze mesajul (19, 2) cu valoarea aleatoare k = 5. R˘ aspuns: (y0 , y1 , y2 ) = ((15, 13), 5, 16). Exercit¸iul 26.3.8. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x 3 +2x+5 peste Z17 . Cunoscˆand cheia privat˘a d = 3, s˘a se descifreze mesajul (y0 , y1 , y2 ) = ((1, 12), 2, 10). R˘ aspuns: (m1 , m2 ) = (12, 5). Exercit¸iul 26.3.9. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x 3 +5x+4 peste Z19 . Cunoscˆand cheia privat˘a d = 2, s˘a se descifreze mesajul (y0 , y1 , y2 ) = ((17, 9), 12, 14). R˘ aspuns: (m1 , m2 ) = (11, 11). Exercit¸iul 26.3.10. Se consider˘a algoritmul Menezes-Vanstone precizat de parametrii E : y 2 = x 3 +2x+7 peste Z23 . Cunoscˆand cheia privat˘a d = 7, s˘a se descifreze mesajul (y0 , y1 , y2 ) = ((21, 8), 8, 4). R˘ aspuns: (m1 , m2 ) = (12, 11).
240
SISTEMUL DE CIFRARE MENEZES-VANSTONE
Capitolul 27
FUNCT ¸ II DE DISPERSIE 27.1.
Breviar teoretic
Problematica funct¸iilor hash fiind deosebit de vast˘a, ˆın cele ce urmeaz˘a ne vom opri numai asupra aspectelor strict necesare ˆınt¸elegerii utiliz˘arii acestor funct¸ii ˆın cadrul algoritmilor de semn˘atur˘a digital˘ a. Definit¸ia 27.1.1. O funct¸ie f se nume¸ste funct¸ie unidirect¸ional˘ a dac˘ a: a) fiind dat x, este u¸sor de calculat f (x); b) fiind dat f (x), este greu de calculat x. Definit¸ia 27.1.2. O funct¸ie f se nume¸ste funct¸ie unidirect¸ional˘ a cu trap˘a (trapdoor) dac˘ a: a) fiind dat x, este u¸sor de calculat f (x); b) fiind dat f (x), este greu de calculat x; c) pe baza unei informat¸ii secrete y , este u¸sor de calculat x din f (x). Definit¸ia 27.1.3. Funct ¸ia hash este o funct¸ie care se aplic˘a unui ¸sir de lungime oarecare obt¸inˆandu-se un ¸sir de lungime fixat˘a (de obicei, mai mic˘a decˆat lungimea ¸sirului de intrare). Definit¸ia 27.1.4. O funct¸ie H se nume¸ste funct ¸ie hash unidirect ¸ional˘ a dac˘a: a) H este funct¸ie hash; b) H este funct¸ie unidirect¸ional˘ a. Pentru a putea fi folosite pentru semn˘aturi digitale, funct¸iile hash unidirect¸ionale trebuie s˘ a mai ˆındeplineasc˘a, printre altele una din urm˘atoarele dou˘ a condit¸ii: 1) oricare ar fi M dat, este greu de g˘asit M astfel ˆıncˆat H (M ) = H (M );
241
242
FUNCT ¸ II DE DISPERSIE
2) este greu de g˘asit o pereche oarecare M , M astfel ˆıncˆ at H (M ) = H (M ). Funct¸iile hash unidirect¸ionale care ˆındeplinesc condit¸ia (1) se numesc funct¸ii hash unidirect¸ionale slabe (sau universale), iar cele care ˆındeplinesc condit¸ia (2) se numesc funct¸ii hash unidirect¸ionale tari (sau f˘ar˘ a coliziuni). Prima condit¸ie este u¸sor de justificat: dac˘a A a semnat mesajul M cu H (M ), iar B obt¸ine M astfel ˆıncˆat H (M ) = H (M ), atunci B ar putea pretinde c˘a A ar fi semnat mesajul M . A doua condit¸ie este justificat˘a de existent¸a atacului birthday , metod˘a general˘a de atac aplicabil˘ a oric˘arei funct¸ii hash, atac inspirat de paradoxul matematic al zilei de na¸stere. Datorit˘ a atacului birthday, pentru o funct¸ie hash care are la ie¸sire un ¸sir cu o lungime de m bit¸i (2m posibilit˘a¸t i) se pot g˘asi coliziuni generˆand doar 2m/2 perechi de mesaje-valori hash. ˆIn aceste condit¸ii, algoritmii hash care produc valori hash de 64 bit¸i se consider˘a nesiguri deoarece, cu tehnologia actual˘a , se pot genera 2 64/2 = 232 mesaje ¸si deci este posibil˘a g˘asirea de mesaje care s˘a intre ˆın coliziune. De aceea se recomand˘a ca valoarea hash s˘a fie de lungime de cel put¸in 128 bit¸i. ˆIn cele ce urmeaz˘a vom descrie funct¸ia de dispersie Chaum -van Heijt-Pfitzmann. p 1 Fie p un num˘ar prim mare astfel ca q = s˘ a fie de asemenea prim. Consider˘am 2 α, β Z p elemente primitive. Calculul valorii logaritmului discret logα β este dificil din punct de vedere computat¸ional. Vom defini funct¸ia de dispersie Chaum -van Heijt-Pfitzmann h : Z q Zq Z p∗ prin
−
∈
× →
h(x1 , x2 ) = α x1 β x2 mod p. Dac˘ a exist˘a o coliziune pentru funct¸ia Chaum -van Heijt-Pfitzmann atunci calculul logaritmului discret logα β este u¸sor. S˘ a vedem cum anume se poate determina valoarea logaritmului discret log α β . S˘a presupunem c˘a avem coliziunea h(x1 , x2 ) = h(x3 , x4 ) cu (x1 , x2 ) = (x3 , x4 ). Deci αx1 β x2 = α x3 β x4 mod p sau echivalent α x1 −x3 = β x4 −x2 mod p. Fie d = (x4 x2 , p 1). Deoarece p 1 = 2q iar q este num˘ar prim avem d 1, 2, q , p 1 . Cazul d = 1. Deoarece (x4 x2 , p 1) = 1 exist˘a y = (x4 x2 )−1 mod p. Deci:
−
−
∈{
−
−
− }
−
−
β = β (x4 −x2 )y mod p = α (x1 −x3 )y mod p. Deci logα β = (x1 x3 )(x4 x2 )−1 mod ( p 1). Cazul d = 2. Deoarece p 1 = 2q , q num˘ar prim, rezult˘a (x4 x2 , q ) = 1. Fie y = (x4 x2 )−1 mod q . Deci, exist˘a k num˘ar ˆıntreg astfel ˆıncˆ at (x4 x2 )y = kq + 1. q Deoarece β = 1 mod p, rezult˘a:
−
−
−
−
−
−
β (x4 −x2 )y = β (kq+1) = ( 1)k β mod p =
−
− −
±β mod p.
243
EXERCIT ¸ II PROPUSE Acest lucru conduce la: α(x1 −x3 )y = β (x4 −x2 )y mod p =
±β mod p.
Suntem ˆın una din urm˘atoarele dou˘ a situat¸ii: logα β = (x1 logα β = (x1
− x3)(x4 − x2)−1 mod ( p − 1),
− x3)(x4 − x2)−1 + q mod ( p − 1),
Se verific˘a direct care dintre rezultate este cel corect. Cazul d = q . Deoarece 0 x2 q 1 ¸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 caz este posibil numai dac˘a x4 = x 2 , rezult˘a x1 = x 3 . S-a ajuns la (x1 , x2 ) = (x3 , x4 ), ceea ce contrazice ipoteza.
− − ≤ − ≤ − − − − 27.2.
≤ ≤ −
≤ ≤ −
Exercit¸ii propuse
Exercit¸iul 27.2.1. Fie f : Z2 n Z2 n o funct¸ie hash pentru care problema CSP 1 este satisf˘acut˘a. Definim funct¸ia g : Z 2 2n Z2 n prin g(x1 x2 ) = f (x1 x2 ). Ar˘atat¸i c˘a g nu satisface problema CSP.
→
→
||
⊕
Exercit¸iul 27.2.2. Fie p = 12347, α = 2, β = 8461 parametrii pentru funct¸ia de dispersie Chaum - van Heijst - Pfitzmann. Fiind dat˘a coliziunea α5692 β 144 = α212 β 4214 mod p, s˘a se calculeze logα β . R˘ aspuns: logα β = 5689. Exercit¸iul 27.2.3. Fie p = 15083, α = 154, β = 2307 parametrii pentru funct¸ia de dispersie Chaum - van Heijst - Pfitzmann. Fiind dat˘a coliziunea α7431 β 5564 = α1459 β 954 mod p, s˘a se calculeze logα β .
1
Fiind dat˘ a o pereche valid˘ a (x, y ) este dificil de aflat x1 = x astfel ˆıncˆ at f (x1 ) = f (x).
244
FUNCT ¸ II DE DISPERSIE
Capitolul 28
˘ SEMNATURA ELGAMAL 28.1.
Breviar teoretic
Fie p un num˘ar prim pentru care problema logaritmului discret ˆın Z p este dificil˘a ¸si α Z p ∗ un element primitiv. Cheia public˘a β se construie¸ste din cheia privat˘a a: β = α a mod p. Semn˘ atura mesajului x, calculat˘a cu ajutorul valorii aleatoare (secrete) k Z p−1 , este definit˘a ca fiind (γ, δ ) unde: γ = α k mod p ¸si δ = (H (x) aγ )k−1 mod ( p 1), H ( ) fiind o funct¸ie hash (H (x) = x dac˘a nu este specificat˘a funct¸ia hash). Semn˘ atura (γ, δ ) a mesajului x este verificat˘a dac˘ a are loc: γ δ H ( x) mod p. β γ = α
∈
∈
−
·
28.2.
−
Exercit¸ii rezolvate
Exercit¸iul 28.2.1. S˘a se semneze mesajul x = 101 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: p = 467, α = 2, cheia privat˘a a = 127, alegˆand valoarea k = 213. Rezolvare: Se calculeaz˘a β = α a mod p = 2127 mod 467 = 132 Semn˘ atura mesajului x = 101 cu k = 213 (de remarcat faptul c˘a (213, 466) = 1 1 − ¸si 213 mod 466 = 431) este: γ = α k mod p = 2213 mod 467 = 29 ¸si δ = (101 245
− 127 · 29) · 431 mod 466 = 16.
246
28.3.
˘ SEMN ATURA ELGAMAL
Exercit¸ii propuse
Exercit¸iul 28.3.1. S˘a se semneze mesajul x = 100 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: p = 163, α = 2, cheia privat˘a a = 127, alegˆand valoarea k = 215. R˘ aspuns: Semn˘atura mesajului este (γ, δ ) = (52, 24). Exercit¸iul 28.3.2. S˘a se semneze mesajul x = 102 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: p = 467, α = 2, cheia privat˘a a = 127, alegˆand valoarea k = 213. R˘ aspuns: Semn˘atura mesajului este (γ, δ ) = (29, 447). Exercit¸iul 28.3.3. S˘a se semneze mesajul x = 57 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: p = 97, α = 3, cheia privat˘a a = 27, alegˆand valoarea k = 37. R˘ aspuns: Semn˘atura mesajului este (γ, δ ) = (66, 39). Exercit¸iul 28.3.4. S˘a se semneze mesajul x = 29 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: p = 127, α = 5, cheia privat˘a a = 13, alegˆand valoarea k = 19. R˘ aspuns: Semn˘atura mesajului este (γ, δ ) = (66, 89). Exercit¸iul 28.3.5. S˘a se semneze mesajul x = 78 cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: p = 131, α = 7, cheia privat˘a a = 19, alegˆand valoarea k = 17. R˘ aspuns: Semn˘atura mesajului este (γ, δ ) = (3, 93). Exercit¸iul 28.3.6. Mesajul x = 57 a fost semnat cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: p = 97, α = 3, β = 70, obt¸inˆandu-se semn˘ atura (γ, δ ) = (66, 39). Este aceasta o semn˘atur˘a valid˘a? R˘ aspuns: Semn˘atura este valid˘a deoarece se satisface relat¸ia de verificare β γ γ δ mod p = α x mod p = 89.
EXERCIT ¸ II PROPUSE
247
Exercit¸iul 28.3.7. Mesajul x = 34 a fost semnat cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: p = 131, α = 7, β = 16, obt¸inˆandu-se semn˘ atura (γ, δ ) = (3, 110). Este aceasta o semn˘atur˘a valid˘a? R˘ aspuns: Semn˘atura nu este valid˘a deoarece nu se satisface relat¸ia de verificare mod p = 4; α x mod p = 9.
β γ γ δ
Exercit¸iul 28.3.8. Mesajul x = 78 a fost semnat cu ajutorul algoritmului ElGamal specificat de parametrii urm˘atori: p = 131, α = 7, β = 16, obt¸inˆandu-se semn˘ atura (γ, δ ) = (3, 93). Este aceasta o semn˘atur˘ a valid˘a? R˘ aspuns: Semn˘atura este valid˘a deoarece se satisface relat¸ia de verificare β γ γ δ mod p = α x mod p = 61.
248
˘ SEMN ATURA ELGAMAL
Capitolul 29
˘ SEMNATURA DSA/ECDSA 29.1.
Breviar teoretic
−
Fie p un num˘ar prim de 512 bit¸i ¸si q un factor prim de 160 bit¸i ai lui p 1 ¸si α Z p ∗ o r˘adacin˘ a primitiv˘ a de ordin q a unit˘at¸ii. Cheia public˘a β se construie¸ste din cheia privat˘a a: β = αa mod p. Semn˘atura mesajului x, calculat˘ a cu a jutorul valorii aleatoare (secrete) k Z q∗ , este definit˘a ca fiind (γ, δ ) unde: (γ, δ ) = ((αk mod p) mod q, (H (x) + aγ )k −1 mod q ), H ( ) fiind o funct¸ie hash (H (x) = x dac˘a nu este specificat˘a funct¸ia hash). Semn˘ atura (γ, δ ) a mesajului x este verificat˘a dac˘ a are loc urm˘atoarea egalitate, 1 1 − − unde e 1 = H (x)δ mod q ¸si e 2 = γδ 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 se lucreaz˘a pe curb˘a eliptic˘a E peste Z q . Elementele necesare algoritmului sunt: G(xG , yG ) generatorul punctelor de pe curba eliptic˘a; n num˘arul elementelor de pe curba eliptic˘a (sau ordinul lui G dac˘a G nu este generator); Ln num˘arul de bit¸i ai lui n; dA cheia privat˘a,dA [1, n]; QA = d A G cheia public˘a. ˆIn contexul celor de mai sus, algoritmul ECDSA este urm˘atorul: PASUL 1. Se calculeaz˘a e = H (M ). Fie z cei cei mai semnificativi Ln bit¸i ai lui e. PASUL 2. Se alege valoarea aleatoare 1 k in intervalul [1, n 1].
∈
∈
·
∈
−
1
valoarea k se nume¸ste cheie efemer˘a.
249
250
˘ SEMN ATURA DSA/ECDSA
PASUL 3. r = x1 mod n, unde (x1 , y1 ) = kG. 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 este (r, s). Verificarea semn˘aturii ECDSA (r, s se realizeaz˘a dup˘ a urm˘atorul algoritm. PASUL 1. Dac˘a r, s / [1, n] semn˘atura este invalid˘a. PASUL 2. Fie e = H (M ), z cei mai semnificativi L n bit¸i ai lui e. PASUL 3. Se calculeaz˘a: w = s −1 mod n. PASUL 4. Se calculeaz˘a: u1 = zw mod n ¸si u 2 = rw mod n. PASUL 5. Fie (x1 , y1 ) = u 1 G + u2 QA . PASUL 6. Semn˘atura este valid˘a dac˘ a ¸si numai dac˘a r = x 1 mod n.
∈
29.2.
Exercit¸ii rezolvate
Exercit¸iul 29.2.1. S˘a se semneze mesajul x = 100 cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, valoarea aleatoare utilizat˘ a k = 50, cheia secret˘a fiind a = 75. Verificat¸i rezultatul obt¸inut. Rezolvare: Se calculeaz˘a: γ = (αk mod p) mod q = (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: (αe1 β e2 mod p) mod q = (17012 456784 mod 7879) mod 101 = 2518 mod 101 = 94 = γ .
·
·
·
·
·
29.3.
Exercit¸ii propuse
Exercit¸iul 29.3.1. S˘a se semneze mesajul x = 101 cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, valoarea aleatoare utilizat˘ a k = 50, cheia secret˘a fiind a = 75. Verificat¸i rezultatul obt¸inut. R˘ aspuns: Semn˘atura mesajului este (γ, δ ) = (94, 40). Cheia public˘ a este β = 4567.
EXERCIT ¸ II PROPUSE
251
Exercit¸iul 29.3.2. S˘a se semneze mesajul x = 102 cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, valoarea aleatoare utilizat˘ a k = 50, cheia secret˘a fiind a = 75. Verificat¸i rezultatul obt¸inut. R˘ aspuns: Semn˘atura mesajului este (γ, δ ) = (94, 38). Cheia public˘ a este β = 4567. Exercit¸iul 29.3.3. S˘a se semneze mesajul x = 75 cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: p = 131, q = 13, α = 7, a = 3, valoarea aleatoare utilizat˘ a k = 11. Verificat¸i rezultatul obt¸inut. R˘ aspuns: Semn˘atura mesajului este (γ, δ ) = (10, 6). Totu¸si, semn˘atura nu se verific˘a pentru ca ord(α) = 65 ¸si nu q = 13. ˆIn concluzie, algoritmul DSA este setat impropriu. Exercit¸iul 29.3.4. Mesajul x = 502 a fost semnat cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: p = 617, q = 11, α = 113, β = 489, valoarea aleatoare utilizat˘ a k = 21 ¸si s-a obt¸inut semn˘atura (γ, δ ) = (3, 10). Este aceast˘ a semn˘ atur˘ a valid˘a? R˘ aspuns: Semn˘atura este valid˘a deoarece se satisface relat¸ia de verificare (αe1 β e2 mod p) mod q = γ = 3. Exercit¸iul 29.3.5. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, β = 4567, valoarea aleatoare utilizat˘ a k = 50 ¸si s-a obt¸inut semn˘atura (γ, δ ) = (94, 78). Este aceast˘ a semn˘ atur˘ a valid˘a? R˘ aspuns: Semn˘atura nu este valid˘a deoarece nu se satisface relat¸ia de verificare mod p) mod q = γ .
(αe1 β e2
Exercit¸iul 29.3.6. Mesajul x = 99 a fost semnat cu ajutorul algoritmului DSA specificat de parametrii urm˘atori: p = 7879, q = 101, α = 170, β = 4567, valoarea aleatoare utilizat˘ a k = 50 ¸si s-a obt¸inut semn˘atura (γ, δ ) = (94, 44). Este aceast˘ a semn˘ atur˘ a valid˘a? R˘ aspuns: Semn˘atura este valid˘a deoarece se satisface relat¸ia de verificare (αe1 β e2 mod p) mod q = γ = 94.
252
˘ SEMN ATURA DSA/ECDSA
Capitolul 30
PROTOCOLUL DIFFIE-HELLMAN 30.1.
Breviar teoretic
Fie p un num˘ar prim, q un divizor prim al lui p 1 ¸si α Z p∗ , element de ordin q. Protocolul Diffie-Hellman (DH), ce returneaz˘a o cheie comun˘a de sesiune K este urm˘ atorul: PASUL 1. A genereraz˘a aleator a Z q∗ ¸si trimite lui B valoarea R A = α a (mod p). PASUL 2. B genereraz˘a aleator b Z q∗ ¸si trimite lui A valoarea R B = α b (mod p). PASUL 3. A calculeaz˘a K = K A,B = R B a = α ab . PASUL 4. B calculeaz˘a K = K B,A = R A b = α ab .
−
∈
∈ ∈
30.2.
Exercit¸ii rezolvate
Exercit¸iul 30.2.1. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 25307, α = 2, a = 2009, b = 2010. R˘ aspuns: k = 21554. Rezolvare: PASUL 1. A trimite lui B valoarea RA = αa (mod p) = 22009 mod 25307 = 5755. PASUL 2. B trimite lui A valoarea RB = αb (mod p) = 22010 mod 25307 = 11510. 253
254
PROTOCOLUL DIFFIE-HELLMAN
PASUL 3. A calculeaz˘a K = K A,B = R B a = 115102009 mod 25307 = 21554. PASUL 4. B calculeaz˘a K = K B,A = R A b = 57552010 mod 25307 = 21554.
30.3.
Exercit¸ii propuse
Exercit¸iul 30.3.1. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 25307, α = 2, a = 3578, b = 19956. R˘ aspuns: k = 3694. Exercit¸iul 30.3.2. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 25307, α = 2, a = 1989, b = 2009. R˘ aspuns: k = 12034. Exercit¸iul 30.3.3. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 17, α = 7, a = 9, b = 3. R˘ aspuns: k = 14. Exercit¸iul 30.3.4. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 10163, α = 652, a = 6026, b = 3510. R˘ aspuns: k = 7944. Exercit¸iul 30.3.5. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 63299, α = 49297, a = 5671, b = 59073. R˘ aspuns: k = 57286. Exercit¸iul 30.3.6. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 1319, α = 527, a = 1088, b = 584. R˘ aspuns: k = 352. Exercit¸iul 30.3.7. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 2099, α = 1023, a = 1496, b = 648. R˘ aspuns: k = 612.
EXERCIT ¸ II PROPUSE
255
Exercit¸iul 30.3.8. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 1823, α = 776, a = 1515, b = 476. R˘ aspuns: k = 1555. Exercit¸iul 30.3.9. S˘a se specifice cheia rezultat˘a ˆın urma aplic˘arii protocolului Diffie-Hellman specificat de parametrii: p = 2207, α = 371, a = 839, b = 1358. R˘ aspuns: k = 731. Exercit¸iul 30.3.10. ˆIn urma aplic˘arii protocolului Diffie-Hellman, una dintre entit˘ a¸t ile care doresc s˘a genereze o cheie comun˘a alege parametrul secret a = 1 (sau b = 1). Cum poate un atacator determina cheia ˆın acest caz?
256
PROTOCOLUL DIFFIE-HELLMAN
Capitolul 31
PROTOCOLUL BLOM 31.1.
Breviar teoretic
Protocolul lui Blom asigur˘a implementarea principiului compartiment˘arii, ˆıntre oricare doi participant¸i, dintr-o mult¸ime de n utilizatori. Protocolul se bazeaz˘ a pe existent¸a unei autorit˘a¸ti de ˆıncredere T . Fie n 3 num˘arul de utilizatori ¸si p n un num˘ar prim. Cheia, ce urmeaz˘a a fi calculat˘a de oricare doi participant¸i este un element din Z p ∗ . Vom nota prin k num˘arul maxim de intru¸si1 ˆımpotriva c˘arora poate fi asigurat˘ a protect¸ia. Vom exemplifica protocolul pentru k = 1. PASUL 0. T face public: num˘ arul prim p ¸si pentru fiecare utilizator A un num˘ar aleator r A Z p , r A = r B pentru orice A = B. PASUL 1. T genereaz˘a aleatoriu trei numere a, b, c Z p ¸si formeaz˘a polinomul2 :
≥
∈
≥
∈
f (X, Y ) = a + b(X + Y ) + cXY mod p. PASUL 2. Pentru fiecare utilizator A, T va construi polinomul: gA (X ) = f (X, rA ) mod p, pe care ˆıl va transmite, cu asigurarea confident¸ialit˘ a¸t ii, c˘atre A. PASUL 3. Cheia stabilit˘a de c˘atre A ¸si B va fi: K A,B = K B,A = f (rA , rB ). 1
numit ¸si nivel de compartimentare. pentru k arbitrar polimonul utilizat ˆın cadrul protocolului este f (X, Y ) = ki,j=0 ai,j X i Y j mod p, ai,j ∈ Zp , ai,j = a j,i pentru orice i,j. 2
257
258
PROTOCOLUL BLOM
Observat¸ia 31.1.1. Protocolul Blom, pentru k = 1, este necondit¸ionat sigur ˆımpotriva oric˘arui atac individual. Cu alte cuvinte, orice alt participant C nu poate determina, din valorile publice r A ¸si rB , cheia K A,B . Acesta este utilizat ˆın schema de protect¸ie, utilizat˘a de HDCP (High-bandwidth Digital Content Protection), ˆın generarea cheilor dintre surs˘a ¸si destinat¸ie (playere HD DVD sau televiziunea HD).
31.2.
Exercit¸ii rezolvate
Exercit¸iul 31.2.1. Specificat¸i elementele de securitate pentru protocolul Blom, ce asigur˘a compartimentarea ˆıntre trei utilizatori A,B, C, caracterizat de p = 17, k = 1, cheile publice ale acestora fiind r A = 12, rB = 7 ¸si r C = 1. Valorile alese de c˘atre T fiind a = 8, b = 7, c = 2. Rezolvare: T construie¸ste polinomul: f (X, Y ) = 8 + 7(X + Y ) + 2XY. Polinoamele specifice fiec˘arui utilizator sunt: gA (X ) = 7 + 14X, gB (X ) = 6 + 4X, gC (X ) = 15 + 9X. Cheile de compartimentare (secrete) sunt: K A,B = 3, K A,C = 4, K B,C = 10. A poate calcula K AB prin: gA (rB ) = 7 + 14 7 mod 17 = 3.
·
B poate calcula K BA prin:
·
gB (rA ) = 6 + 4 12 mod 17 = 3.
31.3.
Exercit¸ii propuse
Exercit¸iul 31.3.1. Specificat¸i cheile rezultate ˆın urma protocolului Blom, ce asigur˘a compartimentarea ˆıntre trei utilizatori A,B, C, caracterizat de p = 29, k = 1, cheile publice ale acestora fiind r A = 1, rB = 2 ¸si r C = 3. Valorile alese de c˘atre T fiind a = 13, b = 11, c = 17.
EXERCIT ¸ II PROPUSE
259
R˘ aspuns. Polinoamele secrete sunt gA (X ) = 324+28X, gB (X ) = 6+16X, gC (X ) = 17 + 4X . Cheile rezultate sunt K AB = 22, K AC = 21, K BC = 25. Exercit¸iul 31.3.2. Specificat¸i cheile rezultate ˆın urma protocolului Blom, ce asigur˘a compartimentarea ˆıntre trei utilizatori A,B, C, caracterizat de p = 29, k = 1, cheile publice ale acestora fiind r A = 13, r B = 11 ¸si r C = 17. Valorile alese de c˘atre T fiind a = 1, b = 2, c = 3. R˘ aspuns. Polinoamele secrete sunt gA (X ) = 27+12X, gB (X ) = 23+6X, gC (X ) = 6 + 24X . Cheile rezultate sunt K AB = 14, K AC = 28, K BC = 9.
260
PROTOCOLUL BLOM
Capitolul 32
PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR 32.1.
Breviar teoretic
Schema lui Shamir ˆı¸si propune s˘a partajeze cheia de cifrare S = Z q la o mult¸ime de n participant¸i (q n + 1) astfel ˆıncˆat pentru reconstruct¸ia cheii s˘a fie nevoie de cooperarea a cel put¸in k dintre participant¸i. Init¸ializare. n num˘arul participant¸ilor, k pragul minim de reconstruct¸ie al secretului S. Se aleg n valori (publice) distincte x 1 , . . . xn ¸si se distribuie fiec˘arui participant i valoarea x i .
∈ K
≥
PASUL 1. Se alege de c˘atre autoritatea de distribut ¸ie a secretului T P (Trusted Party) un num˘ar prim q suficient de mare (q n + 1). Se genereaz˘a aleatoriu , de c˘atre autoritatea de distribut¸ie a secretului T P , un polinom de grad k 1:
≥
−
k 1
P (X ) =
−
ai X i + S mod q.
i=1
PASUL 2 (distribut¸ia secretului). Autoritatea T P distribuie participantului i valoarea y i = P (X i ), i = 1, . . . , n . PASUL 3 (recuperarea secretului). Cu informat¸ia oferit˘a de k participant¸i se poate recupera, prin rezolvarea unui sistem liniar de k ecuat¸ii, valoarea S. Dac˘a num˘arul participant¸ilor care pun la dispozit¸ie informat¸ia yi este mai mic decˆat k, atunci nu se poate determina S. 261
262
32.2.
PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR
Exercit¸ii rezolvate
Exercit¸iul 32.2.1. S˘a se partajaze secretul S = 13, pentru o schema majoritar˘ a k = 3 din n = 5 participant¸i, utilizˆand algoritmul lui Shamir specificat de q = 17, valorile publice x i = i, i = 1, . . . , 5 ¸si valorile aleatoare a[1] = 10, a[2] = 2. Rezolvare: Se obt¸ine polinomul P (X ) = a 2 X 2 + a1 X + S = 2X 2 + 10X + 13. Secretul se partajeaz˘a ˆın: y1 = P (1) = (2 + 10 + 13) mod 17 = 8; y2 = P (2) = (8 + 20 + 13) mod 17 = 7; y3 = P (3) = (18 + 30 + 13) mod 17 = 10; y4 = P (4) = (32 + 40 + 13) mod 17 = 0; y5 = P (5) = (50 + 50 + 13) mod 17 = 11.
32.3.
Exercit¸ii propuse
Exercit¸iul 32.3.1. S˘a se partajaze secretul S = 4, pentru o schema majoritar˘a k = 3 din n = 5 participant¸i, utilizˆand algoritmul lui Shamir specificat de q = 17, valorile publice x i = i, i = 1, . . . , 5 ¸si valorile aleatoare a[1] = 10, a[2] = 2. R˘ aspuns: 16, 15, 1, 8, 2 .
{
}
Exercit¸iul 32.3.2. S˘a se partajaze secretul S = 0, pentru o schema majoritar˘a k = 3 din n = 5 participant¸i, utilizˆand algoritmul lui Shamir specificat de q = 17, valorile publice x i = i, i = 1, . . . , 5 ¸si valorile aleatoare a[1] = 10, a[2] = 2.
{
}
R˘ aspuns: 12, 11, 14, 4, 15 . Exercit¸iul 32.3.3. S˘a se reconstituie secretul S , din valorile 12, 4, 15 , ¸stiind c˘a acestea au fost obt¸inute cu ajutorul schemei majoritare (5, 3) a lui Shamir specificat˘ a de q = 17 ¸si valorile publice 1, 4, 5 .
{
{
}
}
R˘ aspuns: S = 0.
{
}
Exercit¸iul 32.3.4. S˘a se reconstituie secretul S , din valorile 1, 8, 2 , ¸stiind c˘a acestea au fost obt¸inute cu ajutorul schemei majoritare (5, 3) a lui Shamir specificat˘ a de q = 17 ¸si valorile publice 3, 4, 5 .
{
R˘ aspuns: S = 4.
}
263
EXERCIT ¸ II PROPUSE
{
}
Exercit¸iul 32.3.5. S˘a se reconstituie secretul S , din valorile 10, 0, 11 , ¸stiind c˘a acestea au fost obt¸inute cu ajutorul schemei majoritare (5, 3) a lui Shamir specificat˘ a de q = 17 ¸si valorile publice 3, 4, 5 .
{
}
R˘ aspuns: S = 13. Exercit¸iul 32.3.6. Ce se ˆıntˆampl˘ a dac˘ a ˆın protocolul lui Shamir se renunt¸a˘ la condit¸ia de primalitate asupra lui q ?
264
PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR
Capitolul 33
SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT 33.1.
Breviar teoretic
Una dintre primele scheme de partajare a secretelor, bazate pe CRT, este schema Mignotte . Aceasta presupune faptul c˘a ¸sirul p1 < p2 < .. . < pn este un ¸sir Mignotte: k 2
−
i=0
k
pn−i <
pi .
i=0
Secretul S , ce trebuie partajat, trebuie s˘ a apart¸in˘a intervalului1 (β, α), unde k k−2 α = si β = aruia dintra cei n i=0 pi ¸ i=0 pn−i . Valorile ce se distribuie fiec˘ participant¸i sunt S mod p i , i = 1, . . . , n. Recuperarea secretului se realizeaz˘a , de c˘atre k participant¸i, prin rezolvarea, cu ajutorul CRT, a sistemului S = S ij mod p i , j = 1, . . . , k.
33.2.
Exercit¸ii rezolvate
{
}
Exercit¸iul 33.2.1. Fie ¸sirul 5, 7, 9, 11, 13 o secvent¸a˘ (5, 3) Mignotte , α = 11 13, β = 5 7 9, secretul S = 235 (α, β ). Care sunt secretele ce sunt distribuite celor cinci participant¸i?
·
· ·
∈
1
Dac˘ a lungimea intervalului este mic˘a, atunci schema nu este practic˘a, existˆ and posibilitatea ca printre valorile distribuite s˘a este coliziuni.
265
266
SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT
Rezolvare: S 1 = S mod 5 = 0, S 2 = S mod 7 = 5, S 3 = S mod 9 = 6, S 4 = S mod 11 = 10, S 5 = S mod 13 = 12. Spre exemplu, grupul P 1 , P 3 , P 4 trebuie s˘a rezolve problema:
{
ce are solut¸ie unic˘a 285.
x x x
≡ 0 ≡ 6 ≡ 10
mod 5 mod 9 mod 11
}
Capitolul 34
CANALE SUBLIMINALE 34.1.
Breviar teoretic
ˆIn sistemul de autentificare ElGamal, A alege un num˘ar prim mare q ¸si un element primitiv α Z q . Valorile q ¸si α sunt publice. Printr-un canal sigur, A ¸si B stabilesc un num˘ar p Z q . Protocolul prin care A transmite lui B mesajul subliminal y Z q prin utilizarea textului x este urm˘atorul: PASUL 0. A calculeaza β = α y mod q . PASUL 1. Se determin˘a γ ca solut¸ie a ecuat¸iei x = p β + y γ mod (q 1). PASUL 2. A trimite lui B tripletul (x,β,γ ). PASUL 3. B calculeaz˘a a = (α p )β β γ mod q. PASUL 4. Dac˘a a = α x mod q atunci B decide c˘a mesajul este autentic. PASUL 5. B recupereaz˘a mesajul subliminal: y = (x p β ) γ −1 mod (q 1).
∈ ∈
∈
·
·
−
·
− · ·
34.2.
−
Exercit¸ii rezolvate
Exercit¸iul 34.2.1. Se consider˘a canalul subliminal ElGamal dat de q = 11 ¸si α = 2. S˘a presupunem c˘a se dore¸ste transmiterea mesajului y = 9 folosind cheia secret˘a k = 0 ¸si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul de comunicat¸ie? Rezolvare: PASUL 0. A calculeaz˘a β = α y mod q = 29 mod 11 = 6. PASUL 1. Se determin˘a γ ca solut¸ie a ecuat¸iei x = p β + y γ mod (q 1), echivalent cu 5 = 0+9γ mod 10 de unde rezult˘a γ = 5 9−1 mod 10 = 5 9 mod 10 = 5. PASUL 2. A trimite lui B tripletul (x,β,γ ) = (5, 6, 5).
·
267
·
·
·
−
268
34.3.
CANALE SUBLIMINALE
Exercit¸ii propuse
Exercit¸iul 34.3.1. Se consider˘a canalul subliminal ElGamal dat de q = 11 ¸si α = 2. S˘a presupunem c˘a se dore¸ste transmiterea mesajului y = 9 folosind cheia secret˘a k = 8 ¸si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul de comunicat¸ie?
{
}
R˘ aspuns: 5, 6, 3 . Exercit¸iul 34.3.2. Se consider˘a canalul subliminal ElGamal dat de q = 11 ¸si α = 2. S˘a presupunem c˘a se dore¸ste transmiterea mesajului y = 1 folosind cheia secret˘a k = 8 ¸si textul cifrat x = 5. Care este mesajul ce se va transmite pe canalul de comunicat¸ie?
{
}
R˘ aspuns: 5, 2, 9 . Exercit¸iul 34.3.3. Se consider˘a canalul subliminal ElGamal dat de q = 11, α = 2 ¸si cheia secret˘a k = 8. Se recept¸ioneaz˘ a mesajul 5, 6, 3 . Acesta cont¸ine mesaje ascunse?
{
}
R˘ aspuns: Mesajul recept¸ionat este autentic, mesajul subliminal fiind y = 9. Exercit¸iul 34.3.4. Se consider˘a canalul subliminal ElGamal dat de q = 11, α = 2 ¸si cheia secret˘a k = 8. Se recept¸ioneaz˘ a mesajul 5, 6, 2 . Acesta cont¸ine mesaje ascunse?
{
}
R˘ aspuns: Mesajul recept¸ionat nu este autentic. Exercit¸iul 34.3.5. Se consider˘a canalul subliminal ElGamal dat de q = 11, α = 2 ¸si cheia secret˘a k = 8. Se recept¸ioneaz˘ a mesajul 5, 2, 9 . Acesta cont¸ine mesaje ascunse?
{
}
R˘ aspuns: Mesajul recept¸ionat este autentic, mesajul subliminal fiind y = 1. Exercit¸iul 34.3.6. Se consider˘a canalul subliminal ElGamal dat de q = 11, α = 2 ¸si cheia secret˘a k = 0. Se recept¸ioneaz˘ a mesajul 5, 6, 5 . Acesta cont¸ine mesaje ascunse?
{
}
R˘ aspuns: Mesajul recept¸ionat este autentic, se ajunge la rezolvarea urm˘atoarei ecuat¸ii 5 = 5 y mod 10 ce nu are solut¸ie unic˘a, verificarea autenticit˘a¸tii se face prin
×
269
EXERCIT ¸ II PROPUSE
repetarea procedeului de construct¸ie a mesajului ce se transmite. Se obt¸ine mesajul ascuns y = 9. Exercit¸iul 34.3.7. ˆIn cadrul protocolui ElGamal, de transmitere a mesajelor subliminale, autentificatorul obt¸inut γ nu este relativ prim cu q 1. Cum se rezolv˘a aceast˘ a spet¸a˘?
−
270
CANALE SUBLIMINALE
Capitolul 35
PRINCIPII CRIPTOGRAFICE Exercit¸iul 1. Metoda one-time pad (OTP) cifreaz˘a un mesaj m prin aplicarea operat ¸iei XOR cu o cheie secret˘ a k. Avˆ and ˆın vedere c˘ a o cheie bun˘ a are, statistic, jum˘ atate din bit ¸i zero ¸si c˘ a operat ¸ia XOR cu zero nu modific˘ a nimic, rezult˘ a c˘ a metoda OTP las˘ a jum˘ atate din mesaj ˆın clar. Cu alte cuvinte, prin simpla observare a unui text cifrat cu aceast˘ a metod˘ a, un atacator cunoa¸ste jum˘ atate din bit ¸ii textului clar. Acest lucru ˆınseamn˘ a, de fapt, c˘ a metoda OTP este una foarte slab˘ a? Cum poate fi considerat ”‘perfect” un cifru bloc care cifreaz˘ a numai jum˘ atate din textul clar? Exercit¸iul 2. Pentru verificarea semn˘aturii ElGamal este necesar˘a efectuarea operat¸iei ax by mod p unde a, b sunt fixate iar x, y sunt variabile. Ar˘at¸i c˘a num˘ arul de ˆınmult¸iri necesare pentru efectuarea acestui calcul este mai mic decˆat num˘ arul de x y operat¸ii necesare pentru a calcula a b mod p prin dou˘a exponent¸ieri succesive. Exercit¸iul 3. Consider˘am dou˘a numere prime p ¸si q . Fie i p = p−1 mod q si iq = q −1 mod p iar n = p q . Care este valoarea rezultat˘a ˆın urma operat¸iei q iq + p i p ? Putet¸i explica cum poate fi folosit˘a aceast˘ a valoare pentru a reduce stocarea cheii secrete la implementarea RSA CRT?
·
·
·
Exercit¸iul 4. Se dore¸ste semnarea a dou˘a mesaje cu algoritmul de semn˘atura El Gamal. Cum putem calcula valorile g k1 ¸si g k2 pentru a produce semn˘aturile ˆıntr-un timp mai scurt decˆat cel necesar pentru a calcula dou˘a semn˘aturi secvent¸iale? Exercit¸iul 5. Consider˘ am protocolul Fiat-Shamir unde secretul s este ales astfel 2 ˆıncˆ at ˆıncˆ at vs = 1 mod n, v fiind cheia public˘a. Protocolul este dup˘a cum urmez˘a: 271
272
PRINCIPII CRIPTOGRAFICE
• Alice alege un r aleator ¸si ˆıi trimite lui Bob x = r 2 mod n; • Bob r˘aspunde cu un bit aleator e; • Alice r˘aspunde cu y = ser mod n; • Bob verific˘a dac˘a y 2 = v ex mod n. Ar˘ atat¸ i c˘a valorile rezultate ˆın urma protocolului, adic˘ a {x,r,y},
definesc o distribut¸ ie ce poate fi simulat˘a f˘ar˘ a a-l folosi pe s. Explicat¸i de ce acest lucru asigur˘a protocolului o securitate foarte bun˘a. Exercit¸iul 6. Se d˘a o cutie neagr˘a care ruleaz˘a algoritmul AES (12 runde pentru o cheie de 192 bit¸i); cutia cont¸ine o cheie necunoscut˘a k ¸si accept˘a ca parametru un ˆıntreg r a c˘arui valoare poate fi setat˘a la 12, 11 sau 10 de c˘atre utilizator. Vi se permite s˘a introducet¸i ˆın cutie texte clare dup˘a cum dorit¸i. Cum at¸i proceda pentru a ataca aceast˘a implementare? Exercit¸iul 7. Un administrator de sistem are o cheie de 100 de bit¸i pe care dore¸ste s˘a o ˆımpart˘ a celor doi utilizatori ˆın care are ˆıncredere ˆın mod egal. El dore¸ste ca accesul la informat¸ie s˘a fie posibil˘a numai cˆand cei doi coopereaz˘a. Cˆati bit¸i din cheie ar trebui s˘a dea fiec˘aruia din cei doi utilizatori? Exercit¸iul 8. Pentru a gr˘abi verificarea semn˘aturilor si de tip RSA a mesajelor mi , se folose¸ste urm˘atoarea idee: se verific˘a dac˘ a ( si )e = hash(mi ) mod n unde ”hash” reprezint˘a full domain hash - o schem˘a de semn˘atur˘ a bazat˘ a pe RSA care mai ˆıntˆai aplic˘a o funct¸ie hash ¸si apoi semn˘atura RSA. Ar˘atat¸i c˘a aceast˘ a idee nu este sigur˘a pentru un exponent e mic ¸si propunet¸i o contram˘asur˘a.
Exercit¸iul 9. De ce urm˘atorul context este nesigur? O autoritate de ˆıncredere genereaz˘ a un modul RSA n a c˘arui factorizare r˘amˆ ane secret˘a. Autoritatea furnizeaz˘ a fiec˘arui utilizator din sistem o pereche (ei , di ) a¸sa ˆıncˆat ei di = 1 mod φ(n) unde i = j di = d j .
⇒
Exercit¸iul 10. S˘a presupunem c˘a cineva trimite mesaje cifrate utilizˆand DES ˆın modul de operare OFB cu o valoare init¸ial˘a secret˘a (fixat˘ a) I V . 1) Ar˘atat¸i cum poate fi efectuat un atac cu text clar pentru a decripta mesajele transmise? 2) Este mai bun modul de operare CFB? 3) Dar modul de operare CBC?
273 Exercit¸iul 11. Dup˘a ce a studiat protocolul Diffie-Hellman, un tˆan˘ ar criptograf decide s˘a ˆıl implementeze. Pentru a simplifica implementarea, el hot˘ar˘a¸ste s˘a foloseasc˘ a ∗ ˆ grupul aditiv (Z p , +) ˆın locul grupului multiplicativ (Z p , ). In calitate de criptograf cu experient¸a˘, ce credet¸i despre acest protocol?
·
Exercit¸iul 12. S˘a presupunem c˘a Alice ¸si Bob folosesc chei publice RSA cu acela¸si modul n dar cu exponent¸i publici diferiti e 1 ¸si e 2 . 1) Ar˘atat¸i c˘a Alice poate decripta mesa jele trimise lui Bob; 2) Ar˘atat¸i c˘a un interceptor pasiv poate decripta mesaje trimise c˘atre Alice ¸si Bob dac˘a gcd(el , e2 ) = 1.
· −
Exercit¸iul 13. Presupunem c˘a n = p q , unde p si q sunt numere prime distincte. 1) Calculat¸i S = n + 1 φ(n). 2) Care sunt r˘ad˘ acinile ecuat¸iei x2 Sx + n? Dat¸i expresiile acestor r˘ad˘acini ¸si explicat¸ i cum pot fi g˘asite p ¸si q cu ajutorul unui simplu algoritm pentru calculul r˘ad˘ acinilor p˘ atrate ˆıntregi? 3) Factorizat¸i n ˆın urm˘atoarele dou˘ a cazuri: a) n = 667, φ(n) = 616; b) n = 15049, φ(n) = 14800.
−
Exercit¸iul 14. S˘a construim un MAC folosind modul CFB de implementare, ˆın loc de modul CBC: fiind date blocurile de text clar α 1 , . . . , αn , definim vectorul de int¸ializare β 0 = α 1 . Apoi cifr˘am secvent¸a de blocuri α 2 , . . . , αn dup˘a formulele: β i = αi+1
⊕ E (β i−1; K ).
ˆIn final, M AC (α1 . . . αn ) = E (β i−1 ; K ) . Ar˘atat¸i c˘a acesta este identic cu CBC MAC.
||
Exercit¸iul 15. Pentru S-boxul S 5 din DES calculat¸i tendint¸a variabilei aleatoare: X 2
⊕ Y 1 ⊕ Y 2 ⊕ Y 3 ⊕ Y 4.
Exercit¸iul 16. ˆIntr-un sistem de cifrare simetric, o cheie k este slab˘a dac˘ a ek = dk . Determinat¸i toate cheile slabe ale sistemelor afine peste Z 15 .
274
PRINCIPII CRIPTOGRAFICE
Capitolul 36
ATACURI ˆIN MEDIUL DE IMPLEMENTARE 36.1.
Breviar teoretic
Atacurile ˆın mediul de implementare presupun o serie de m˘asur˘ atori hardware asupra modului criptografic: Atacuri prin m˘ asurarea timpului de execut ¸ie. Prin m˘asurarea timpului necesar efectu˘ arii unor operat ¸ii asupra cheii private , atacatorul poate determina exponent¸ii utilizat¸i ˆın protocolul Diffie-Hellman, factorul RSA (ˆın special asupra algoritmului RSA ce folose¸ste pentru semn˘atur˘ a lema chinezesc˘a a resturilor CRT), precum ¸si o serie de alte sisteme criptografice cum ar fi algoritmul de semn˘atur˘ a digital˘ a DSS. Atacuri prin m˘ asurarea puterii consumate. Atacul cu ajutorul analizei simple a puterii (SPA) const˘ a ˆın m˘asurarea puterii consumate de dispozitiv ˆın timpul operat¸iei criptografice. Acest tip de atac se aplic˘ a , de regul˘a, dispozitivelor cu surs˘a de tensiune exterioar˘a (ca de exemplu smart-cardurile). Consumul de putere depinde de instruct¸iunea executat˘ a. Astfel, monitorizˆ and consumul de putere, se poate deduce secvent¸a de instruct¸iuni (codul surs˘a). Dac˘ a secvent¸a de instruct¸iuni depinde de lungimea cheii, atunci consumul de putere poate da informat¸ii despre cheie. ˆIn majoritatea procesoarelor, patternul puterii consumate de o instruct¸iune depinde ¸si de valoarea operanzilor (de exemplu setarea unui bit ˆıntr-un registru consum˘a mai mult˘a energie decˆat ¸stergerea acestuia). M˘asur˘ atori efectuate asupra mai multor intr˘ari pot deduce valoarea operandului. Tehnica se nume¸ste analiza diferent ¸ial˘ a a puterii (DPA). Atacuri cu ajutorul defect ¸iunilor (erorilor) hardware. Echipamentele hardware pot genera erori (tranziente, latente sau induse) ˆın timpul efectuarii unor operat¸ii aritmetice. Prin exploatarea rat¸ional˘ a a acestor erori se pot recupera cheia privat˘a 275
276
ATACURI ˆIN MEDIUL DE IMPLEMENTARE
pentru algoritmii de semn˘atur˘ a RSA ¸si Rabin. O serie de protocoale criptografice cum ar fi Fiat-Schamir ¸si Schnorr se pot sparge prin folosirea judicioas˘a a rezultatelor acestor erori. Analiza diferent ¸ial˘ a a defect ¸iunilor. Analiza diferent ¸ial˘ a a defect ¸iunilor (DFA) este o schem˘a ce se utilizeaz˘a pentru recuperarea cheilor secrete ale unui sistem criptografic dintr-un dispozitiv HSM (Hardware Security Module) securizat fizic. Modelul de defect este acela al defectelor tranziente (aleatoare) ¸si al defectelor induse. Metoda folose¸ste la identificarea cheilor ˆın cazul utiliz˘arii unor cifruri cunoscute (de exemplu DES) ¸si/sau a unor cifruri cu algoritm necunoscut sau la reconstruct¸ia algoritmului (cu o structur˘ a cunoscut˘ a).
36.2.
Exercit¸ii propuse
Exercit¸iul 36.2.1. Ar˘ atat¸i c˘a tehnica DPA poate fi accelerat˘a folosind un compromis spat¸iu-timp. Rezolvare: Facet¸i referire la articolul Computational Improvements to Differential Side Channel Analysis, NATO Advanced Research Workshop on Security and Embedded Systems, August 2005. Exercit¸iul 36.2.2. Descriet¸i un atac prin m˘asurarea timpului de execut¸ie asupra unei proceduri de comparat¸ie a parolelor. Exercit¸iul 36.2.3. Pentru a proteja implementarea RSA de un atac prin m˘asurarea timpului de execut¸ie, dezvoltatorii decid s˘a adauge la finalul procedurii un timp de a¸steptare de durat˘a aleatoare, cuprins ˆıntre 0 ¸si n tacturi de ceas. ˆIn acest fel, se va elimina total riscul atacului sau acesta va fi doar ˆıncetinit? Exercit¸iul 36.2.4. Numit¸i 3 factori care determin˘a forma graficului puterii consumate de un microprocesor. Rezolvare: Instruct¸iunea, datele manipulate de instruct¸iune ¸si adresa instruct¸iunii.
Capitolul 37
RESURSE SOFTWARE 37.1.
CrypTool
CrypTool este un pachet software dedicat simul˘arii ¸si analizei de mecanisme criptologice ˆıntr-un mod ilustrativ. De la rolul init¸ial de instruire ˆın domeniul securit˘a¸tii personalului diverselor companii private, CrypTool a evoluat ˆıntr-un proiect educat¸ional de tip open source cu aplicat¸ii ˆın domeniul criptografiei ¸si majoritatea domeniilor conexe. Produsul vizeaz˘a ˆın primul rˆand student¸ii facult˘a¸tilor de matematic˘ a ¸si informatic˘a, a firmelor ce activeaz˘a ˆın domeniul securitat¸ii informat¸iilor precum ¸si a dezvoltatorilor de aplicat¸ii sau utlizatorilor de calculatoare ˆın general care doresc sa-¸si dobˆandeasc˘ a bagajul minimal de cuno¸stint¸e criptografice. ˆIn prezent produsul este gratuit ¸si disponibil ˆın mai multe versiuni, prima dintre acestea fiind CrypTool 1.4.x dezvoltat˘a integral ˆın mediul C ++. Aceasta s-a extins ulterior ˆın alte dou˘a versiuni, ˆınc˘a aflate la nivel beta, ce folosesc standarde de dezvoltare de ultim˘a generat¸ie aflˆandu-se ˆıntr-o continu˘a actualizare. Astfel, ˆın iulie 2008, s-a lansat CryptTool 2.0 dezvoltat ˆın mediul C #, versiune ce furnizeaz˘a o paleta mai larg˘ a de funct¸ionalit˘ a¸ti combinat˘ a cu o interfat¸a˘ grafic˘a cu facilit˘ a¸ti de tip ”drag-and-drop”. La ˆınceputul lui 2010 s-a lansat versiunea JCrypTool dezvoltat˘a ˆın mediul Java, avantajele acestei versiuni fiind c˘a este independent˘a de platforma pe care ruleaz˘a (Windows, Linux, Mac) ¸si c˘a folo¸se¸ste din plin puternicul instrument FlexiProvider prin care se pot ˆınc˘ arca cu u¸surint¸a˘ module criptografice ˆın orice aplicat¸ie construit˘a peste JCA (Java Cryptography Architecture). CrypTool a fost dezvoltat ˆın colaborare cu institut¸ii de ˆınv˘a¸ta˘mˆ ant devenind astfel un soft educat¸ional ¸si un bun instrument de init¸iere ˆın domeniul criptologiei, folosindu-se ˆın prezent cu succes in multe universit˘a¸ti de prestigiu. Datorit˘a manipul˘ arii facile a mecanismelor criptologice precum ¸si a vizualiz˘arii ¸si prezent˘arii ˆıntr-o manier˘a facil˘ a ¸si inedit˘a a rezultatelor, CrypTool poate reprezenta compo277
278
RESURSE SOFTWARE
nenta practic˘a a cursurilor teoretice din domeniul criptologiei precum ¸si o metod˘a rapid˘a de familiarizare cu componente esent¸iale ale acestui domeniu. Produsul acoper˘a ambele ramuri ale criptologiei ¸si anume criptografia ¸si criptanaliza . Sunt tratate ma joritatea aspectelor fundamentale ale criptografiei. Astfel, produsul are implementate facilit˘a¸ti ˆın cadrul fiec˘arui subdomeniu dup˘a cum urmeaz˘a: criptografia clasic˘a: cifrurile Caesar, substitut¸ie monoalfabetic˘ a, substitut¸ie omofonic˘ a, Vigen`ere, Hill, Playfair, ADFGVX, Addition, XOR, Vernam, Solitaire etc; criptografia simetric˘a modern˘a: cifrurile IDEA, RC2, RC4, DES, 3DES, DESX precum ¸si tot¸ii finali¸stii cifrului AES ¸si anume MARS, RC6, Rijndael, Serpent and Twofish; criptografia asimetric˘a: RSA; criptografia hibrid˘a: cifrarea datelor realizˆadu-se cu algoritmi simetrici (AES), protect¸ia cheii de cifrare fiind asigurat˘a prin metode asimetrice (RSA); semn˘aturi digitale: RSA, DSA, ECDSA (Elliptic Curve Digital Signature Algorithm), Nyberg-Rueppel; funct¸ii hash: MD2, MD4, MD5, SHA, SHA-1, SHA-2, RIPEMD-160; generatoare aleatoare: secude, x2 mod n, LCG (linear congruence generator), ICG (inverse congruence generator). ˆIn cadrul criptanalizei se reg˘asesc implementate majoritatea atacurilor standard dup˘ a cum urmeaz˘a: atac cu text cifrat: Caesar, Vigen`ere, Addition, XOR, Substitution, Playfair; atac cu text clar: Hill, Single-column transposition; atac manual: substitut¸ie mono alfabetic˘ a, Playfair, ADFGVX, Solitaire; atac prin fort¸a˘ brut˘a: pentru tot¸i algoritmii; se presupune fie c˘a entropia textului clar este mic˘a sau cheia este part¸ial cunoscut˘a sau alfabetului textului clar este cunoscut; atacuri asupra RSA: bazate pe factorizare sau tehnici care apeleaz˘a la structurile algebrice (latice); atacuri asupra sistemelor hibride: atacuri asupra RSA sau AES(side channels attacks); atacuri asupra semnaturilor digitale: RSA prin factorizare; viabil pˆ an˘ a la lungime de 250 bit¸i (adica 75 cifre); atacuri asupra funct¸iilor hash: generare coliziuni texte ASCII cu paradoxul zilelor de na¸stere (pˆan˘ a la 40 bit¸i); analiz˘ a aleatorism: bateria de teste FIPS-PUB-140-1, periodicitate, Vitany, entropie, histograme, autocorelat¸ii, testul de compresie ZIP etc. ˆIn sprijinul utilizatorilor, CrypTool are implementate o serie de demo-uri ¸si
• • • • • • • • • • • • • • • •
279
OPENSSL
animat¸ii prin care sunt exemplificate diverse facilit˘a¸t i pe care produsul le ofer˘a folosindu-se primitive criptografice suportate ¸si implementate ˆın aplicat¸ie ca de exemplu Caesar, Vigen`ere, Nihilist, DES (toate patru cu ANIMAL), Enigma (Flash), Rijdael/AES (Flash and Java), criptare hibrid˘a ¸si decriptare (AES-RSA ¸si AESECC), generare ¸si verificare de semn˘aturi digitale, protocolul de schimb de 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 Flash), prezent˘ari grafice 3D pentru date (pseudo)aleatoare, sensibilitatea funct¸iilor hash privind modific˘ari ale textului clar, teoria numerelor ¸si cripto sisteme RSA (Authorware). CrypTool cont¸ine ¸si un modul educat¸ional interactiv dedicat aplicat¸iilor criptografice ce necesit˘a aspecte elementare de teoria numerelor denumit ”NT”. Acest modul introduce utilizatorul ˆın probleme elementare de teoria numerelor precum algoritmul lui Euclid pentru g˘asirea celui mai mare divizor comun, testul Fermat pentru primalitate, factorizarea Fermat, factorizarea Pollard Rho ¸si altele. Un alt avantaj al produslui CrypTool ˆıl reprezint˘ a existent¸a unui meniu de documentare consistent ¸si o extindere online a acestuia cont¸inˆand ˆın plus explicat¸ii privind not¸iuni generale de criptografie, o cronologie privind dezvoltarea domeniului, exemple de utilizare a facilit˘a¸tilor aplicat¸iei, index sortat pe topicuri criptografice ¸si list˘a de referint¸e. Faptul c˘ a pachetul software este open source, c˘ a acoper˘a aspecte legate atˆat de criptografia clasic˘a cˆat ¸si cea modern˘a, a modalit˘ a¸tilor multiple de simulare ¸si vizualizare originale, precum ¸si a modului facil de aplicare ¸si analiz˘ a a mecanismelor criptografice ne conduc la concluzia ca pachetul CrypTool reprezint˘a atˆ at o modalitate rapid˘a de init¸iere ˆın domeniul criptografiei cˆat ¸si un instrument de lucru puternic pentru speciali¸sti ˆın vederea studierii ¸si aplic˘arii ˆın acela¸si mediu a a diverse probleme concrete ce pot ap˘area in criptografie ¸si criptanaliz˘a.
37.2.
OpenSSL
OpenSSL este o suit˘a de aplicat¸ii ce implementeaz˘a protocoalele Secure Sockets Layer (SSL v2/v3) ¸si Transport Layer Security (TLS v1) precum ¸si o libr˘arie dedicat˘ a ce acoper˘a o gam˘ a larg˘ a de primitive criptografice. Proiectul este manageriat de o comunitate de voluntari din ˆıntreaga lume ce comunic˘ a, folosind Internetul, ˆın vederea planific˘arii ¸si dezvolt˘arii continue a toolkit-ului OpenSSL precum ¸si a documentat¸iei aferente. OpenSSL este bazat pe libr˘aria SSLeavy dezvoltat˘a de Eric A. Young ¸si Tim J. Hudson, proiect ˆıncheiat la sfˆar¸situl anului 1998. Asupra produsului act¸ioneaz˘ a o dubl˘ a licent¸iere, atˆ a t cea de OpenSSL cˆat ¸si cea original˘a a libr˘ariei SSLeavy.
280
RESURSE SOFTWARE
Ambele tipuri de licent¸e sunt de tipul BSD open-source, toolkit-ul putˆand astfel fi folosit atˆ at pentru scopuri comerciale cˆat ¸si non-comerciale. Pachetul sofware folose¸ste instrumente criptografice puternice, fiind dezvoltat continuu ¸si distribuit legal de cˆateva t˘ ari europene, supunˆandu-se ˆıns˘a unor restrict¸ii de import/export ¸si uz ˆın unele t¸a˘ri din lume. OpenSSL este disponibil ˆın numeroase versiuni fiind ˆıntr-o continu˘ a dezvoltare, bug-uri fiind des semnalate ¸si corectate. Versiunea stabil˘a curent˘a este OpenSSL 0.9.8m aceasta fiind disponibil˘ a din luna februarie 2010; in plus utilizatorii beneficiaz˘a de acces online permananent pentru studierea dezvolt˘arilor ulterioare ultimei versiuni stabile. Versiunile sunt disponibile pentru ma joritatea sistemelor de operare tip UNIX (incluzˆand Solaris, Linux, Mac OS X ¸si cele patru sisteme de operare BSD open source), Open VMS ¸si Microsoft Windows. OpenSSL implementeaza protocoalele SSL ¸si TSL. Transport Layer Security (TLS) ¸si predecesorul s˘au Secure Sockets Layer (SSL), sunt protocoale criptografice ce furnizeaz˘ a securitatea comunicat¸iilor peste ret¸ele similare Internetului. Cele dou˘ a protocoale permit aplicat¸iilor de tip client/server s˘a comunice securizat. TLS furnizeaz˘ a autentificare endpoint precum ¸si confident¸ialitatea comunicat¸iilor peste Internet folosindu-se securizare RSA suportˆ a nd lungimi de chei de pˆan˘a la 2048 de bit¸i. Protocoale sunt utilizate pentru navigare pe Internet, po¸st˘ a electronic˘a, voice-over-IP (VoIP) etc. Libr˘ aria criptografic˘a OpenSSL implemeneaz˘a o gam˘a larg˘ a de algoritmi utilizat¸i ˆın diverse standarde utilizate ˆın Internet. Facilit˘a¸t ile furnizate de aceast˘a libr˘arie sunt folosite pentru a implementa SSL, TLS ¸si S/MIME, precum ¸si pentru SSH, OpenPGP ¸si alte standarde criptografice. Libr˘aria are implementate o varietate de primitive criptografice ¸si alte facilit˘at¸i dup˘a cum urmeaz˘a: Algoritmi de cifrare simetrice: Blowfish, CAST, DES, IDEA, RC2, RC4, RC5; Algoritmi de cifrare asimetrici: RSA (bazat pe factorizarea numerelor mari), DSA (bazat pe problema logaritmului discret), EC (curbe eliptice) Diffie-Hellman key exchange; Certificate digitale: X509, X509v3; Funct¸ii hash ¸si coduri de autentificare: HMAC, MD2, MD4, MD5, MDC2, RIPEMD, SHA; Funct¸ii de control a intr˘arilor ¸si ie¸sirilor, funct¸ii de codificare a datelor: PKCS7, PKCS12, ASN1, BIO, EVP, PEM. Utilitarul OpenSSL este un tool linie comand˘a utilizat ˆın gestionarea diverselor funct¸ii criptografice din libr˘ aria OpenSSL. Acesta poate fi folosit pentru: Creare ¸si management de chei private, chei publice ¸si parametrii; Operat¸ii ce implic˘a criptografia cu chei publice; Creare de certificate X.509 , CSRs ¸si CRLs;
• • • • • • • •
281
MAPLE
• Calculare de rezumate de mesaj; • Cifrare ¸si descifrare folosind diverse cifruri; • testare client¸i/servere (SSL/TLS); • Semn˘aturi ¸si cifrare de mail (S/MIME); • Cereri, gener˘ari ¸si verific˘ari de m˘arci temporare.
OpenSSL este unul dintre put¸inele proiecte open source supuse valid˘arii de conformitate cu standardului FIPS 140-2, utilizat ˆın securitatea calculatoarelor, dezvoltat de National Institute of Standards and Technology (NIST). Pachetul software ˆın sine nu este validat, fiind dezvoltat˘a o component˘ a software a acestuia denumit˘a OpenSSL FIPS Object Module, aceasta fiind compatibil˘a cu OpenSSL fiind creat˘a pentru a oferi posibilitatea produselor ce folosesc API de tip OpenSSL de a fi supuse valid˘arii de confomitate FIPS 140-2. ˆIn ianuarie 2006 aceast˘ a component˘ a fost certificat˘ a, aceasta fiind ˆıns˘ a revocat˘a ˆın iulie 2006 datorit˘ a unor nel˘amuriri privind validitatea interact¸ion˘arii modulului cu software extern. ˆIn februarie 2007 produsul a fost recertificat. Validarea OpenSSL FIPS Object Module este unic˘a printre toate valid˘arile FIPS 140-2 prin faptul c˘ a produc˘atorul pune la dispozit¸ie ˆıntreg codul surs˘a. Prin urmare, folosit f˘ ar˘a nicio modificare ¸si construit pe orice platform˘a conform documentat¸iei pus˘a la dispozit¸ie se obt¸ine direct un modul criptografic validat. Orice modificare minor˘a asupra codului implic˘ a necesitatea revalid˘arii, proces costisitor (aproximativ 50000$) ¸si ˆındelungat (ˆıntre 6 ¸si 12 luni). Cea mai recent˘a validare open source este OpenSSL FIPS Object Module (Software Version: 1.2), FIPS 140-2 certificate #1051. ˆIn prezent nu exist˘a niciun alt produs open source supus valid˘arii FIPS 140-2 datorit˘a lispei de finant¸are. Validarea versiunilor precedente au fost finant¸ate de sectorul comercial ¸si sponsori guvernamentali, o parte dintre ace¸stia preferˆand s˘a r˘amˆ an˘ a anonimi.
37.3.
MAPLE
ˆIn cadrul acestei sect¸iuni vom exemplifica, printr-o serie de exemple, modalit˘a¸tile de rezolvare a problemelor propuse, ˆın cadrul acestei culegeri, cu a jutorul aplicat¸iei software MAPLE. Exemplul 37.3.1. Algoritmul de cifrare ElGamal. p (ordinul grupului), α (generatorul) numere prime publice; a cheia privat˘a, β := α a mod p cheia public˘a; m mesajul clar; k num˘ar aleator secret;
282
RESURSE SOFTWARE
regula de cifrare: y1 := αk mod p; y 2 := (m β k ) mod p; regula de descifrare: des := y 2 (y1a )−1 mod p. >
p:=17;
>
alpha:=14;
>
a:=2;
>
∗
beta:=alpha^a mod p;
>
m:=4;
>
k:=4;
>
y1:=alpha^k mod p;
>
y2:=(m*(beta^k)) mod p;
> >
∗
text_cifrat:=(y1,y2); text_descifrat:=y2*(y1^a)^(-1) mod p;
Exemplul 37.3.2. Algoritmul de semn˘atur˘ a ElGamal. p ¸si α numere prime publice; a cheia secret˘a, β := α a mod p cheia public˘a; x mesajul ce trebuie semnat; k num˘ar secret; γ := α k mod p, δ := (x a γ )k−1 mod ( p 1), sign := (γ, δ ); verificarea semn˘aturii: β γ γ δ mod p = α x mod p. >
p:=467;
>
alpha:=2;
>
a:=127;
>
− ∗ ∗
−
beta:=alpha^a mod p;
>
x:=102;
>
k:=15;
>
gamma:=alpha^k mod p;
>
delta:=(x-a*gamma)*k^(-1) mod (p-1);
>
(beta^gamma*gamma^delta - alpha^x) mod p;
Exemplul 37.3.3. Algoritmul de semn˘atur˘ a DSA. p ¸si q numere prime (publice); α (public) r˘ad˘acina de ordin q a unit˘a¸tii; a cheia secret˘a, β = (αa ) mod p;
283
MAPLE x mesajul; k num˘ar aleatoriu (secret); sign = (γ, δ ) unde γ = (αk mod p) mod q ¸si δ = (x + a γ ) k −1 mod q. >
p:=7879;
>
q:=101;
>
alpha:=170;
>
a:=75;
>
∗ ∗
beta:=(alpha^a) mod p;
>
x:=1234;
>
k:=50;
>
gamma:=(alpha^k mod p) mod q;
>
delta:=(x+a*gamma)*k^(-1) mod q;
Exemplul 37.3.4. Protocolul Diffie-Hellman. Caracteristicile protocolului: p num˘ar prim (minim 1024 bit¸i), q divizor prim al lui q α element de ordin q ; a num˘ar generat de A ¸si trimis lui B ; b num˘ar generat de B ¸si trimis lui A; cheia comun˘a este k := α a∗b mod p. >
p:=25307;
>
alpha:=2;
>
a:=3578;
>
b:=19956;
>
− 1 (minim 160 bit¸i);
k:=((alpha^a) mod p)^b mod p;
Exemplul 37.3.5. Protocolul Blom. p num˘ar prim, n num˘arul de utilizatori; k = 1 nivel de compartimentare (protocolul este neconditionat sigur ˆımpotriva atacului unui utilizator); a,b,c coeficient¸ii polinomului; A denumire generic˘a participant protocol, r A cheia public˘a a lui A; f (X, Y )a + b(X + Y ) + cXY polinom (simetric), gA (X ) = f (X, rA ) polinomul secret al lui A;
284
RESURSE SOFTWARE
K matricea cheilor de compartimentare(simetric˘a). >
p:=29;
>
a:=1;
>
b:=2;
>
c:=3;
>
n:=3;
>
r:=array(1..n,[13,11,17]);
>
f(X,Y):=a+b*(X+Y)+c*X*Y;
>
g:=array(1..n);
>
for i from 1 to n do:
>
g[i]:=eval(f(X,Y),Y=r[i]) mod p;
>
end do;
>
K:=array(1..n, 1..n);
>
for i from 1 to n do:
>
for j from 1 to n do:
>
K[i,j]:=eval(g[i],X=r[j]) mod p;
>
end do;
>
end do;
>
print(K);
Exemplul 37.3.6. Schema de partajare a lui Shamir. n num˘arul de participant¸i; k num˘arul minim de participant¸i care pot reconstitui secretul; q num˘ar prim (identific˘a corpul Z [q ] ˆın care se lucreaz˘a); S secretul care se dore¸ste partajat; xi (publice) se distribuie utilizatorilor, i = 1, . . . , n; ai (aleatoare), i = 1, . . . , k 1. >
n:=5;
>
k:=3;
>
q:=17;
>
S:=13;
>
x[1]:=1;
>
x[2]:=2;
>
x[3]:=3;
−
285
MAPLE >
x[4]:=4;
>
x[5]:=5;
>
a[1]:=10;
>
a[2]:=2;
>
p:=S+a[1]*x+a[2]*x^2 mod q;
>
for i from 1 to n do subs(x=x[i],p) mod q
>
od;
Exemplul 37.3.7. Recuperarea secretului din schema lui Shamir. n num˘arul de participant¸i; k num˘arul minim de participant¸i care pot reconstitui secretul; q num˘ar prim (identifica corpul Z [q ] ˆın care se lucreaza); S secretul care se doreste partajat; xi (publice) se distribuie utilizatorilor, i = 1, . . . , n; si secretul distribuit, i = 1, . . . , k 1;
−
>
n:=5;
>
k:=3;
>
q:=17;
>
x[1]:=1;
>
x[2]:=2;
>
x[3]:=3;
>
x[4]:=4;
>
x[5]:=5;
>
s[1]:=8;
>
s[2]:=7;
>
s[3]:=10;
>
p:=S+a[1]*x+a[2]*x^2 mod q; solve( subs(x=x[1],p)=s[1],subs(x=x[2],p)=s[2],subs(x=x[3],p)=s[3] , S,a[1],a[2] );
> >
}{
{
}
Exemplul 37.3.8. Canalul subliminal ElGamal. q num˘ar prim; α element primitiv; x mesaj cifrat; y mesaj subliminal;
286
RESURSE SOFTWARE
k cheia secret˘a; β autentificator; γ autentificator; mesajul subliminal (x,β,γ ). >
q:=11;
>
alpha:=2;
>
y:=9;
>
x:=5;
>
k:=0;
>
beta:=alpha^y mod q;
>
gama:=y^(-1)*(x-k*beta) mod (q-1);
>
M:=(x,beta,gama);
Exemplul 37.3.9. Extragerea datelor din canalul subliminal ElGamal. q num˘ar prim; α element primitiv; x mesaj cifrat; y mesaj subliminal; k cheia secret˘a; β autentificator; γ autentificator; mesajul subliminal (x,β,γ ). >
q:=11;
>
alpha:=2;
>
k:=0;
>
x:=5;
>
beta:=6;
>
gamma:=5;
>
a:=alpha^x mod q;
>
b:=((alpha^k)^beta)*beta^gamma mod q;
>
if( a= b) then print("Mesaj_Auth_OK");
>
Mesaj_subliminal:=(x-k*beta)*gamma^(-1) mod (q-1);
>
else print("Mesaj_Auth_FAIL")
>
fi;
Capitolul 38
APLICAT ¸ II PRACTICE ˆIn acest capitol ne propunem s˘a facem o scurt˘a descriere a celor 4 probleme date la MITRE Cyber Challenge 1 , ˆın perioada 9-12 ianuarie 2012. Pentru fiecare problem˘ a prezent˘am ¸si cˆate o sugestie de rezolvare. Primele trei probleme sunt legate ˆıntre ele, ˆın sensul c˘a pentru rezolvarea celei de-a doua probleme este nevoie de parola obt¸inut˘a ˆın urma rezolvarii primei probleme, iar rezolvarea celei de-a doua probleme ne conduce la un indiciu folositor ˆın rezolvarea problemei cu num˘arul trei. Ultima problem˘ a este independent˘a de primele trei, aceasta avˆ and de fapt rolul de a scoate ˆın evident¸a˘ o vulnerabilitate a ECDSA (acela¸si tip de vulnerabilitate care a fost folosit˘a ¸si pentru aflarea cheii de semnare de la PlayStation3). Problema 1. Obiectivul primei probleme este acela de a recunoa¸ste cˆand s-a folosit criptografia clasic˘a (cifrurile Caesar, Vigen`ere, Hill etc) ˆın mediul digital. Scenariul ipotetic este urm˘atorul: g˘ asim un fi¸sier “ciudat, pe care nu l-am creat noi, ˆın calculatorul personal. Acest fi¸sier, neededinformation.txt, este pus la dispozit¸ie ˆın cadrul problemei. Se cere decriptarea informat¸iei cont¸inute ˆın acest fi¸sier ¸si g˘asirea parolei ascunse ˆın interiorul s˘au. S¸tim c˘a aceast˘a parol˘a ˆıncepe cu ”S”, se termin˘a cu ”D” ¸si este format˘a numai din majuscule. Problema se poate rezolva foarte u¸sor folosind pachetul software CrypTool pentru a face o criptanaliz˘ a a nedeedinformation.txt: Analysis Symmetric encryption(classic) Ciphertext-Only Vigen`ere . ˆIn urma acestei criptanalize rezult˘a pentru ˆınceput c˘a lungimea cheii folosite este 6, iar la urm˘atorul pas obt¸inem cheia ”SQUARE” cu ajutorul c˘areia putem decripta
1
http://www.iccs.fordham.edu/mitre/
287
288
APLICAT ¸ II PRACTICE
textul cont¸inut ˆın neededinformation.txt. La sfˆar¸situl textului decriptat se afl˘a ¸si parola pe care o c˘autam: ”PASSWORDFORTOMMOROWISSTRONGPASSWORDSAREGOOD”. Problema 2. Aceast˘a problem˘a ˆı¸si propune s˘a arate posibilele locuri ˆın care un adversar poate ascunde informat¸ii, precum ¸si modurile ˆın care acest lucru se poate face. Mai precis problema presupune g˘asirea unor informat¸ii ascunse ˆın interiorul unei imagini. Presupunem c˘a avem o imagine hiding.gif. Cerint¸a problemei este aceea de a g˘asi informat¸ia ascuns˘a ˆın aceast˘ a imagine, ¸stiind c˘ a aceasta ˆıncepe cu ”h”, se termin˘ a cu ”l”, iar m˘arimea fiec˘arei litere conteaz˘a. De asemenea, a¸sa cum am ment¸ionat anterior, vom avea nevoie de parola obt¸inut˘a la prima problem˘a. Uitˆ andu-ne la propriet˘a¸t ile imaginii hiding.gif, observ˘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 observ˘am c˘ a apare ”PK”ˆın format hexa 50 4B), ceea ce ˆınseamn˘a c˘a este vorba despre o arhiv˘a (PK reprezint˘a init¸ialele lui Phil Katz). Prin urmare schimb˘am extensia ¸si obt¸inem hinding.zip. Deschizˆ and aceast˘ a arhiv˘ a g˘ asim alte imagini, una dintre ele (care atrage atent¸ia ˆın mod deosebit) fiind a, avem nevoie de parola look at me.gif. Pentru a putea vedea aceast˘a imagine ˆıns˘ obt¸inut˘ a la problema 1. G˘ asim ˆın final ¸si informat¸ia pe care o c˘autam, ¸si anume hollenger.dll. Problema 3. Cea de-a treia problem˘a este legat˘a de analiza traficului de date. Presupunem c˘a avem la dispozit¸ie o captur˘a de trafic de date, day3.pcap. Se cere s˘a se g˘aseasc˘ a, cu ajutorul r˘aspunsului de la problema anterior˘a, fi¸sierul transferat din calculatorul personal c˘atre o surs˘a necunoscut˘a. R˘aspunsul pentru
289
aceast˘ a problem˘a ˆıl va constitui informat¸ia ascuns˘a ˆın fi¸sierul respectiv. S¸tim c˘a ˆıncepe cu ”P”, se termin˘a cu ”k” ¸si m˘arimea fiec˘arei litere este important˘a. Pentru a putea deschide day3.pcap vom folosi Wireshark. ˆIn continuare c˘aut˘ am am Packet hollenger.dll astfel: Edit Find Packet Filter : hollenger.dll (select˘ bytes ¸si String ) Find , iar apoi Follow TCP stream. Observ˘ am din nou PK ¸si folosim opt¸iunea Save as pentru a obt¸ine day3.zip. Arhiva cont¸ine mai multe fi¸siere, printre care ¸si hollenger.dll. Deschidem hollenger.dll cu UltraEdit ¸si observ˘am ”num˘ arul magic” GIF87a (ˆın format hexa 47 49 46 38 37 61), ceea ce ˆınseamn˘ a c˘a este vorba de o imagine. Schimbˆand deci extensia obt¸inem hollenger.gif, aceasta fiind o imagine care cont¸ine urm˘atoarea fraz˘ a : ”The Root Password is Pengu1nsR0ck”.
Problema 4. Obiectivul acestei probleme este recuperarea unei chei private ECDSA care a fost folosit˘a pentru semnarea a dou˘a mesaje diferite. ˆInainte ˆıns˘a de a continua prezentarea acestei ultime probleme, reamintim algoritmul de semn˘atur˘ a ECDSA:
290
APLICAT ¸ II PRACTICE
E
Parametrii publici ˆın acest caz sunt: un num˘ ar prim p, o curb˘a eliptic˘a (F p ) ¸si un punct G (F p ) cu ordG = q, q prim.
∈ E
∈ E
Cheia public˘a (de verificare) V (F p ) se construie¸ste cu ajutorul cheii private (de semnare) 1 s q 1 astfel: V = sG.
≤ ≤ −
Semn˘ atura mesajului m (mod q ), calculat˘ a cu ajutorul unei chei efemere e (mod q ), este definit˘a ca fiind perechea (s1 , s2 ) = (xeG mod q , (m + ss1 )e−1 mod q ), unde prin x eG ˆınt¸elegem coordonata x a punctului eG (F p ).
∈ E
Semn˘ atura (s1 , s2 ) a mesajului m este verificat˘a dac˘a are loc urm˘atoarea egalitate 1 −1 (ˆın care v 1 = ds − 2 mod q ¸si v 2 = s 1 s2 mod q ) : xv1 G+v2 V mod q = s 1 . Revenim acum la problema noastr˘a. Datele care ne sunt puse la dispozit¸ie se afl˘a ˆın trei fi¸siere: signatures.txt,parameters.der ¸si public.oct. Primul fi¸sier cont¸ine valorile hash-urilor ¸si semn˘aturile pentru cele dou˘a mesaje (ˆın format hexa):
291 m1 =DE37B3145DB7359A0ACC13F0A4AFBD67EB496903 s11 =ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2 s12 =BE4FA99C9D261C5F387A3ACE025702F6FB7884DD07CE18CAD48654B8 m2 =28469B02BF0D2CFC86FF43CB612EE8FC05A5DBAA s21 =ACB2C1F5898E7578A8A861BDF1CA39E7EF41EAC0B6AAA49468DD70E2 s22 =D3540E2B13E51605F5FEB8C87EE8E176E59213F31EA8B8FFDAD077E2 Pentru a putea vedea informat¸iie din cel de-al doilea fi¸sier, parameters.der, vom folosi OpenSSL astfel: openssl ecparam -inform DER -in /cygdrive/e/parameters.der -outform PEM -out /cygdrive/e/parameters.pem openssl ecparam -text -in /cygdrive/e/parameters.pem -noout Field Type: prime-field Prime: 00:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff: ff:ff:ff:ff:ff:ff:ff:ff:ff:fe:ff:ff:e5:6d A: 0 B: 5 (0x5) Generator (uncompressed): 04:a1:45:5b:33:4d:f0:99:df:30:fc:28:a1:69:a4: 67:e9:e4:70:75:a9:0f:7e:65:0e:b6:b7:a4:5c:7e: 08:9f:ed:7f:ba:34:42:82:ca:fb:d6:f7:e3:19:f7: c0:b0:bd:59:e2:ca:4b:db:55:6d:61:a5 Order: 01:00:00:00:00:00:00:00:00:00:00:00:00:00:01: dc:e8:d2:ec:61:84:ca:f0:a9:71:76:9f:b1:f7 Cofactor: 1 (0x1) Prin urmare, parameters.der cont¸ine de fapt parametrii publici:
• num˘arul prim p: p=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D. • curba eliptic˘a E : y2 = x3 + 5 considerat˘a peste F p. • coordonatele punctului G ( 04 semnific˘a faptul c˘a asupra coordonatelor punc-
tului G nu s-a aplicat o compresie, prin urmare jum˘atate din octet¸ii care urmeaz˘a vor constitui coordonata x a punctului G, iar cealalt˘ a jum˘ atate coordonata y a punctului G): xG =85CEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643 yG =58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22 num˘arul prim q , acesta fiind ordinul punctului G: q =010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7. cofactorul, care ˆın acest caz este 1, ceea ce ˆınseamn˘a c˘a punctul G este generator pentru grupul punctelor curbei eliptice considerate.
• •
292
APLICAT ¸ II PRACTICE
Pentru ultimul fi¸sier, public.oct, folosim UltraEdit ¸si g˘asim reprezentarea hexa a informat¸iei cont¸inute ˆın interiorul s˘au: 04:85:CE:EE:9C:98:EF:DF:DF:CF:64:CB:52:2A:77:3F:14:35:D5: 68:17:36:77:D1:D2:8F:C0:06:43:58:A1:05:CC:1A:B1:A5:3D:77: B2:78:85:07:76:E1:44:19:7F:3F:A4:E2:7A:A6:76:40:8D:FE:22
Aceasta este cheia public˘a, mai precis punctul V de coordonate: xV =85CEEE9C98EFDFDFCF64CB522A773F1435D568173677D1D28FC00643 yV =58A105CC1AB1A53D77B278850776E144197F3FA4E27AA676408DFE22 Avem acum toate datele necesare pentru a afla cheia privat˘a s. Observat¸ia important˘ a pe care se bazeaz˘a ˆıns˘ a ˆıntreaga rezolvare este aceea c˘a ˆ valorile s11 ¸si s21 sunt egale. In acest caz, dac˘a not˘ 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 e 1 + e2 = q . Vom ar˘ata cum putem afla cheia privat˘a s dac˘a presupunem c˘a este vorba de primul caz, anume c˘a pentru semnarea celor dou˘a mesa je diferite m1 ¸si m 2 s-a folosit aceea¸si cheie efemer˘a e. Notˆ and cu r valoare comun˘a s11 = s 21 , avem urm˘atoarele dou˘ a relat¸ii: s21 = (m1 + sr)e−1 mod q = r 1 ¸si s22 = (m2 + sr)e−1 mod q = r 2 de unde putem afla cheia privat˘a s astfel: r1 r2 −1 = (m1 + sr)(m2 + sr)−1 mod q s = (m2 r1 m1 r2 )[r(r2 r1 )]−1 mod q ˆIn continuare vom lucra ˆın PARI/GP, prin urmare transform˘am mai ˆıntˆai toate valorile de care avem nevoie din baza 16 ˆın baza 10. O metod˘a de a face acest lucru poate fi urm˘atoarea:
⇒
gp> gp> gp>
−
−
n=length(w); for(i=1,n,if(w[i]==A,w[i]=10,if(w[i]==B,w[i]=11,if(w[i]==C,w[i]=12, if(w[i]==D,w[i]=13,if(w[i]==E,w[i]=14,if(w[i]==F,w[i]=15))))))); W=sum(i=1,n,16^ (i-1)*w[n+1-i]);
Afl˘ am acum, ˆın ipoteza c˘ a s-a folosit aceea¸si cheie efemer˘a e, cheia privat˘a s: gp> q=26959946667150639794667015087019640346510327083120074548994958668279; gp> m1=1268638092138210163260758055822429538066610350339; gp> m2=229934186335685840756719395324394646288453721002; gp> r=18187250800097972010521080073937585100154901858571130778437166133474; gp> r1=20042106687643588872389242180506526832832251371631259823173622191288; gp> r2=22255471905305126694378074733040389009439136736542793238977855911906; gp> s=(((m2*r1-m1*r2)%q))*(bezout((r*(r2-r1))%q,q)[1])%q 15010575815029851772642085218329323233091815558722670713086641180071
Verific˘ am c˘a aceasta este corect˘a, adic˘a vrem s˘a vedem dac˘a ˆıntr-adev˘ar are loc egalitatea V = sG. Pentru aceasta init¸ialliz˘ am curba eliptic˘a peste care vrem s˘a lucr˘ am, iar apoi calcul˘am punctul sG:
E
293 gp> gp> gp> gp> gp> gp>
p=2695994666715063979466701508701963067363714442254057248109931527511; E=ellinit([0,0,0,0,5]*Mod(1,p)); xG=16983810465656793445178183341822322175883642221536626637512293983324; yG=13272896753306862154536785447615077600479862871316829862783613755813; G=[xG,yG]; ellpow(E,G,s);
Obt¸inem c˘a: xsG = 14091661710852556870833728605751404033863675975464814254659297347139 yeG = 9333722541138719487032926806284603775374491724501611657294489976354 Aceste valori sunt egale cu x V , respectiv y V , prin urmare, cheia privat˘a s pe care am g˘ asit-o este bun˘a. Deoarece problema cerea cheia privat˘a s ˆın format hexa, facem ˆın final ¸si transformarea num˘arului s din baza 10 ˆın baza 16: gp> gp> gp> gp> gp> gp> gp> gp>
v=vector(60); v[1]=divrem(s,16)[1]; for(i=2,60,v[i]=divrem(v[i-1],16)[1]); w=vector(60); w[1]=divrem(s,16)[2]; for(i=2,60,w[i]=divrem(v[i-1],16)[2]); S=vector(60,i,w[61-i]); for(i=1,60,if(S[i]==10,S[i]=A,if(S[i]==11,S[i]=B,if(S[i]==12,S[i]=C, if(S[i]==13,S[i]=D,if(S[i]==14,S[i]=E,if(S[i]==15,S[i]=F)))))));
Obt¸inem c˘a S=8E88B0433C87D1269173487795C81553AD819A1123AE54854B3C0DA7.
294
APLICAT ¸ II PRACTICE
Capitolul 39
˘ PROBLEME DE SINTEZA 39.1.
Enunt¸uri
1. Completat¸i: Scopul cifr˘a rii este de a asigura . . . . . . unei comunicat¸ii. (a) autenticitatea (b) confidentialitatea (c) integritatea (d) nerepudierea 2. Urm˘atorul text a fost obt¸inut utilizˆand sistemul de cifrare Cezar (au fost eliminate accentele, spat¸iile si semnele de punctuat¸ie): MHPEUDVVHPRQULYDOPDLVFHVWSRXUOHWRXIIHU. Care este decriptarea sa? (a) Chacun semble des yeux approuver mon courroux. (b) Ma bouche mille fois lui jura le contraire. (c) J‘embrasse mon rival mais c‘est pour l‘etouffer. (d) De grˆace, apprenez-moi, Seigneur, mes attentats. 3. Cifrat¸i textul ”Attaque `a l‘aube ” cu ajutorul algoritmului de substitut¸ie 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
295
X N
L D Y U
M Q Z L
˘ PROBLEME DE SINTEZ A
296 Care este textul cifrat obt¸inut? (a) JOOJCXPJDJXGP (b) SHHSMYVSWSYPV (c) JOOJCXPJBJXGP (d) SHHSMYVSZSYPV
4. Cifrul Vigen`ere reprezint˘a o modalitate de cifrare ˆımbun˘ at˘a¸tit˘a a sistemelor ˆ de cifrare cu substitut¸ie simpl˘a. In ce const˘a acesta? (a) ˆın aplicarea succesiv˘a a mai multor substitut¸ii alfabetice pe acela¸si text. (b) ˆın aplicarea de substitut¸ii alfabetice care nu cifreaz˘a niciodat˘ a o liter˘a ˆın ea ˆıns˘a¸si. (c) ˆın cifrarea literelor care apar cel mai frecvent (cum ar fi e) ˆın mai multe simboluri diferite. (d) ˆın alegerea mai multor alfabete de sustitut¸ie independente ¸si schimbarea alfabetului folosit, la fiecare liter˘a, ˆın mod ciclic. 5. Reprezentarea ˆın baza 2 a num˘ arului 1729 este: (a) 10010110100 (b) 11011000001 (c) 11001100011 (d) 6C1 6. Propunem urm˘atorul algoritm de cifrare: Alice ¸si Bob doresc s˘a schimbe un mesaj m care reprezint˘a un num˘ar ˆıntreg ˆıntre 0 ¸si N 1. Pentru aceasta, ei partajeaz˘ a o cheie secret˘a comun˘ a k extras˘a aleator ˆıntre 0 ¸si N 1. Mesajul cifrat se obt¸ine ca c = m + k mod N . Ce p˘arere avet¸i despre securitatea sistemului?
−
−
(a) Proast˘ a: sistemul reprezint˘a o variant˘ a a sistemului lui Cezar. (b) Bun˘ a, dac˘ a adversarul nu cunoa¸ste algoritmul de cifrare. (c) Foarte bun˘ a, cu condit¸ia s˘a nu utilizeze cheia k decˆat o singur˘a dat˘ a. (d) Excelent˘ a: sistemul reprezint˘a o variant˘ a a algoritmului RSA. 7. Alice ˆıi trimite lui Bob un mesaj cifrat c obt¸inut cu ajutorul algoritmului precedent. Cum determin˘a Bob mesajul original m? (a) m = c + k mod N
297
ENUNT ¸ URI
− k mod N (c) m = c × k mod N
(b) m = c
(d) m = c k mod N
8. Care dintre acronimele urm˘atoare desemneaz˘a un algoritm de cifrare de tip bloc? (a) AES (b) HMAC (c) SHA-1 (d) NIST 9. Inversul lui 17 modulo 100: (a) este 83. (b) este 53. (c) este 1/17. (d) nu exist˘a. 10. Am ˆın posesia mea un mesaj m pe care nu vreau ˆınc˘a s˘a ˆıl divulg, dar doresc s˘a pot dovedi peste cˆa¸tiva ani c˘a ˆıl cuno¸steam deja ˆın 2010 (conform amprentei de timp). Pentru aceasta, este suficient s˘a public ast˘azi: (a) un text cifrat corespunz˘ ator lui m cu o cheie cunoscut˘a numai de mine. (b) un text cifrat corespunz˘ ator lui m cu o cheie cunoscut˘a de toat˘ a lumea. (c) imaginea lui m printr-o funct¸ie de dispersie (funct¸ie hash). (d) imaginea lui m printr-un MAC folosind o cheie aleatoare. 11. Funct¸ia de dispersie (hash) SHA-512 ˆıntoarce valori ˆıntre 0 ¸si 2512 1. Se calculeaz˘a imagini prin aceast˘ a funct¸ie ˆın mod aleator. Care este ordinul de m˘arime al numerelor pentru care trebuie calculate valorile prin aceasta funct¸ie pentru a g˘asi 2 valori care s˘a aib˘ a primii 20 de bit¸i egali?
−
(a) 20 (b) 1000 (c) 1000000 (d) 2512
˘ PROBLEME DE SINTEZ A
298
12. Construim un generator de numere pseudo-aleatoare care init¸ializeaz˘ a cu x0 cu o valoare ˆıntre 0 ¸si 999 ¸si determin˘a x n+1 = 500xn + 789 mod 1000. ˆIn ce condit¸ii at¸i utiliza acest generator? (a) Pentru a produce numere aleatoare ˆıntre 0 ¸si 999, dac˘a nu prezint˘a interes nivelul de securitate. (b) Pentru generarea unei chei de tip one-time pad . (c) Pentru construct¸ia unei funct¸ii de dispersie. (d) Niciodat˘ a. 13. Cum este obt¸inut˘ a cheia secret˘a necesar˘a pentru criptarea comunicat¸iei, la conectarea la un site web securizat? (a) Se obt¸ine din parola introdus˘a pentru conectare, printr-un algoritm de derivare a cheii precum PBKDF (Password Based Key Derivation Function). (b) Provine din cheia public˘a a serverului, cont¸inut˘ a ˆıntr-un certificat. (c) Provine din cheia privat˘a a serverului, divulgat˘a clientului dup˘a stabilirea conexiunii. (d) Se obt¸ine ˆın urma unui schimb de chei ˆıntre client ¸si server, precum schimbul de chei Diffie-Hellman. 14. Care este dificultatea de a factoriza un num˘ ar prim pe 1024 de bit¸i ast˘azi? (a) Este simplu! (b) Num˘ arul poate fi factorizat cu ajutorul a cˆateva mii de calculatoare actuale care s˘a ruleze ˆıntre 1 ¸si 2 ani. (c) Nimeni nu poate face asta momentan, dar poate se va reu¸si de c˘ atre agent¸ii precum NSA. (d) Acest lucru nu va fi posibil timp de mai multe milenii. 15. Algoritmul RSA (f˘ ar˘a padding) este un algoritm de cifrare: (a) simetric, tip bloc. (b) simetric, tip fluid (debit). (c) part¸ial homomorfic. (d) bazat pe identitate.
299
ENUNT ¸ URI
16. Fie generatorul Geffe descris de trei registre de deplasare LFSRi (ale c˘aror polinoame de feedback sunt primitive de grad 19, 21 ¸si respectiv 24) iar ie¸sirea de formula: y(t) = a 1 (t) a3 (t) a 1 (t) a2 (t). Care este complexitatea LC ¸si perioada P a acestui generator?
·
⊕
·
Figura 39.1: Generatorul Geffe. (a) (b) (c) (d)
LC= 640, P= 264 . LC=64 , P=(219 1)(221 1)(224 1). LC=876 , P=(219 1)(221 1)(224 1). Niciunul dintre r˘aspunsuri nu este corect.
− −
− −
− −
17. Fie secvent¸a dat˘ a de reprezentarea binar˘a (scris˘a pe 8 bit¸i) a num˘arului i, i = 0, ..., 255 : 00000000 00000001 00000010 00000011 00000100 ... 11111111
Care este statistica testului frecvent¸ei aplicat˘a acestei secvent¸e binare? Este secvent¸a aleatoare, relativ la testul frecvent¸ei, la riscul de ordinul 1 de 5%? (a) (b) (c) (d)
f tf = 256, ¸sirul nu este aleatoriu. f tf = 1, ¸sirul este aleatoriu. f tf = 0, ¸sirul este aleatoriu. niciunul dintre r˘aspunsuri nu este corect.
18. Care dintre urm˘atoarele afirmat¸ii sunt adev˘arate: (a) Atac reu¸sit asupra a dou˘a preimagini ale unei funct¸ii hash implic˘a reu¸sita atacului de generare de coliziuni.
˘ PROBLEME DE SINTEZ A
300
(b) Atac reu¸sit de generare de coliziuni asupra unei funct¸ii hash implic˘a reu¸sita atacului asupra a dou˘a preimagini a aceleia¸si funct¸ii hash. 19. Care dintre urm˘atoarele afirmat¸ii sunt adev˘arate: (a) Un registru de deplasare de lungime n are perioada de 2 n
− 1.
(b) Un registru de deplasare de lungime n are perioada maxim˘a de 2n
− 1.
(c) Un registru de deplasare de lungime n, cu polinomul caracteristic primitiv, are perioada de 2 n 1.
−
20. Probabilitatea de coliziune a dou˘ a mesaje de lungime n bit¸i procesate de aceea¸si funct¸ie hash ideal˘a, ce are ie¸sirea pe m bit¸i, este: (a) 2−m . (b) 2−n . (c) 2−mn . (d) 2m−n . (e) 2n−m . (f) Niciuna din valorile de mai sus. 21. Fie extensia Galois GF(32 ) generat˘a de r˘ad˘acina polinomului X 2 aceast˘ a extensie valoarea log2α+1 (1 + α) este: (a) 8. (b) 4. (c) 2. (d) 5. (e) 6. (f) Niciuna din valorile de mai sus. 22. Simbolul lui Jacobi (a)
6278 este: 9975
−1.
(b) 0. (c) 1.
(d) Niciuna din valorile de mai sus.
− X − 1. ˆIn
301
ENUNT ¸ URI
23. ˆIn cadrul unui act¸iuni judiciare urmeaz˘a a fi desemnat unul dintre cei doi judec˘atorii de serviciu. Deoarece niciunul dintre cei doi nu dore¸ste s˘a fac˘a acest lucru ˆın mod benevol, se propune modalitatea de decizie bazat˘a pe rezultatul obt¸inut din aruncarea unei monede. Astfel, judec˘atorul A alege ”stema” sau ”banul” iar judec˘atorul B arunc˘a moneda, decizia fiind luat˘a ˆın urma rezultatului obt¸inut. Avˆ and ˆın vedere faptul c˘a A ¸si B ˆın locat¸ii fizice diferite se propune, de c˘atre criptograf, urm˘atorul protocol. PASUL 1. Participantul A alege x = 0 (”stema”) sau x = 1 (”banul”) ¸si o cheie aleatoare k. Se cifreaz˘ a cu ajutorul algoritmului DES valoarea x: y = DE S (x; k). PASUL 2. A transmite y c˘atre B . PASUL 3. B arunc˘a o moned˘ a ¸si comunic˘a lui A rezultatul obt¸inut. PASUL 4. A comunic˘a lui B cheia k. PASUL 5. B descifreaz˘a y, cu ajutorul algoritmului DES ¸si ob¸tine ceea ce a ales A. Criptograful afirm˘ a faptul c˘ a ”participantul A nu ˆı¸si poate schimba opt¸iunea” datorit˘ a valorii transmise y. Ar˘atat¸i urm˘atoarele: a) Utilizˆ and ”birthday attack” utilizatorul A poate tri¸sa; b) Care este complexitatea atacului de la punctul a)? c) Care este cerint¸a primitivei criptografice ce asigur˘a valabilitatea afirmat¸iei ”participantul A nu ˆı¸si poate schimb˘a opt¸iunea”; d) Corectat¸i protocolul astfel ˆıncˆat s˘a nu mai fie posibil atacul de la punctul a). 24. Fie p un num˘ar prim ¸si G mult¸imea tuturor elementelor x relat¸ia x 1 mod p. Ar˘atat¸i faptul c˘a:
≡
∈ Z p care satisfac 2
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 izomorfismul este logaritmul ˆın baza p + 1 a lui G. Cu alte cuvinte avem: ( p + 1)L(x) mod p 2 x pentru orice x.
≡
25. S˘ a consider˘am algoritmul de semnare DSS cu parametrii p, q,g, o funct¸ie hash H ¸si o cheie secret˘a x. ˆIn cadrul implement˘ arii se precalculeaz˘a perechea k (k, r) ce satisface relat¸ia r = (g mod p) mod q , aceasta fiind utilizat˘a pentru generarea semn˘aturilor. Recuperat¸i cheia privat˘a de semnare.
˘ PROBLEME DE SINTEZ A
302
26. Protocolul Wired Equivalent Privacy (WEP) utilizat ˆın standardul IEEE 802.11 este utilizat pentru a proteja datele ˆın cadrul transmisiilor wireless. Protocolul WEP are o cheie K de 40 de bit¸i, partajat˘ a ˆıntre entit˘a¸t ile ce comunic˘a ¸si este utilizat˘a pentru protect¸ia fiec˘arui ”frame”1 transmis. ˆIn cadrul acestui exercit¸iu vom presupune faptul c˘a cheia K este fix˘a ¸si nu ˆı¸si schimb˘a valoarea. Pentru ca utilizatorul A s˘a transmit˘ a un ”frame” la B va proceda dup˘a cum urmeaz˘ a: PASUL 1. Codificarea CRC: Dˆandu-se un mesaj de n-bit¸i M (n este constant), A calculeaz˘a o sum˘a de control de 32 de bit¸i L(M ), unde L este o funct¸ie liniar˘a 2 ce nu depinde de K . Textul clar, de lungime (n + 32) bit¸i, este P = M L(M ).
||
PASUL 2. A cifreaz˘a P cu algoritmului RC4, cheia K ¸si vectorul I V de 24 de bit¸i specific fiec˘arui ”frame” transmis. Textul cifrat va fi C = P RC 4(I V , K ) . PASUL 3. A transmite pe canalul radio (IV,C ) c˘atre B . ˆ Intreb˘ ari:
⊕
a) Anumit¸i produc˘atori specific˘a faptul c˘ a protocolul WEP are o securitate de 40+24=64 bit¸i de cheie. Ce p˘arere avet¸i de acest fapt. Justificat¸i r˘aspunsul. b) Care este modalitatea prin care B extrage mesajul original M ? c) ˆIn cadrul unor implement˘ari, vectorul IV de 24 de bit¸i, este ales aletoriu la fiecare ”frame” transmis. Ar˘ atat¸i c˘a acest lucru conduce la probleme de securitate atunci cˆand traficul de date este mare. Propunet¸i o modalitate de remediere a problemei ap˘arute. d) S˘a examin˘ a m o alt˘ a problem˘ a de securitate a protocolului WEP. Vom presupune faptul c˘a atacatorul intercepteaz˘a datele (IV,C ) transmise de A. Ar˘ atat¸i faptul c˘a adversarul, chiar dac˘a nu cunoa¸ste cheia K , poate calcula u¸sor un text cifrat C ∗ (C ∗ = C ) ¸si retransmite (IV,C ∗ ) f˘ar˘ a ca B s˘a poat˘a detecta acest lucru. Cˆate posibilit˘ a¸ti de alegere avem pentru C ∗ ? Ce proprietate a securit˘ a¸t ii este violat˘a?
27. Descifrat¸i, cu a jutorul algoritmului RSA-CRT, indicˆand semnificat¸iile elementelor algoritmului, mesajul: C = 9686 9613 7546 2206 1477 1409 2225 4355 8829 0575 9991 1245 7431 9874 6951 2093 0816 2982 2514 5708 3569 3147 6622 8839 8962 8013 3919 9055 1829 9451 5781 5154. Textul clar este ˆın limba englez˘a. 1 2
pachet de date. L(X ⊕ Y ) = L (X ) ⊕ L(Y ).
303
ENUNT ¸ URI Parametrii algoritmului sunt urm˘atorii: a) exponentul de cifrare este e = 9007,
b) p = 3490 5295 1084 7650 9491 4784 9619 9038 9813 3417 7646 3849 3387 8439 9082 0577, c) q = 0003 2769 1329 9326 6709 5499 6198 8190 8344 6141 3177 6429 6799 2942 5397 9828 8533. 28. Fie numerele prime q = 7541 ¸si p = 2q + 1. Fie α = 604 ¸si β = 3791. a) Ar˘atat¸i c˘a ord(α) = ord(β ) = q ˆın Z q . Mai mult, ar˘atat¸i c˘a α ¸si β genereaz˘a acela¸si subgrup G ˆın Z p∗ . b) Definim funct¸ia hash h : Zq h(7431, 5564) ¸si h(1459, 954).
× Zq → G prin h(x1, x2) = xα1 xβ 2 .
Calculat¸i
c) La punctul precedent at¸i obt¸inut o coliziune pentru h. Folosit¸i-o pentru a calcula logaritmul discret dlogα β . d) Folosind logaritmul discret calculat, determinat¸i ¸si alte coliziuni pentru h.
˘ PROBLEME DE SINTEZ A
304
39.2.
R˘ aspunsuri
1. R˘ aspuns: (b). Pentru autenticitate, se folosesc MAC sau semn˘aturile electronice. Pentru integritate, ˆın funct¸ie de nivelul de exigent¸a˘, se pot utiliza sume de control, funct¸ii hash, MAC, etc. 2. R˘ aspuns: (c). V˘a putet¸i ajuta de pozit¸ia literelor dublate. ˆIntrebare suplimentar˘ a: de unde provin aceste versuri? 3. R˘ aspuns: (a). Literele de pe a doua linie sunt imaginile celor din prima linie, ¸si nu invers. 4. R˘ aspuns: (d). Metoda (a) este doar o substitut¸ie normal˘a (compunerea a 2 permut˘ari este tot o permutare). Metoda (b) este mai slab˘ a decˆ at prima ˆıntrucˆ at expune mai multe informat¸ii despre textul clar. Metoda (c) se nume¸ste substitut¸ie polialfabetic˘ a. 5. R˘ aspuns: (b). Este de ajuns s˘ a se calculeze restul ˆımp˘art¸ irii lui 1729 la 4 pentru a elimina (a) ¸si (c). (d) este 1729 ˆın hexazecimal (i.e. ˆın baza 16). 6. R˘ aspuns: (c). Algoritmul este o variant˘ a a one-time pad . Ofer˘a securitate perfect˘a dac˘ a nu se utilizeaz˘a cheia de criptare decˆat o singur˘a dat˘ a. Poate fi de asemenea considerat o variant˘a a cifrului lui Cezar, dar aplicat unei singure litere ¸si cu un decalaj ales aleator. Utilizat ˆın acest fel, cifrul lui Cezar ar fi sigur. Sistemul nu are nicio leg˘atur˘ a cu RSA. R˘aspunsul (b) nu ar satisface principiul lui Kerckhoff: un sistem de criptare trebuie s˘a r˘ amˆ an˘a sigur cˆand adversarul cunoa¸ste tot despre acesta, mai put¸in cheia utilizat˘a. 7. R˘ aspuns: (b). Operat¸ia invers˘a adun˘ arii cu k mod N este sc˘aderea cu k mod N . 8. R˘ aspuns: (a). HMAC este MAC, SHA-1 este o funct¸ie de dispersie ¸si NIST este o agent¸ie american˘a de standardizare. 9. R˘ aspuns: (b). 53
× 17 = 1 mod 100
10. R˘ aspuns: (c). La momentul divulg˘arii mesajului, toat˘ a lumea va putea verifica faptul c˘ a hash-ul este corect ¸si c˘a se cuno¸stea mesajul m la momentul calculul˘arii acestui hash. Metoda nu permite dezv˘aluirea mesajului m. O cifrare a lui m cu o cheie cunoscut˘a doar de cel care face criptarea nu garanteaz˘ a nimic: se poate de asemenea publica un cuvˆant aleator pentru ca ulterior s˘a se aleag˘a cheia care s˘a corespund˘ a unei cript˘ari corecte. Aceea¸si problem˘a apare ˆın cazul MAC.
˘ R ASPUNSURI
305
O cheie cunoscut˘a de toat˘ a lumea ar conduce la determinare textului clar m, ceea ce ar fi echivalent cu divulgarea mesajului m. 11. R˘ aspuns: (b). Conform paradoxului na¸sterilor, pentru obt¸inerea unei coliziuni pe primii 20 de bit¸i ai funct¸iei de dispersie, este necesar s˘a se calculeze valoare funct¸iei hash pentru 220 , adic˘a aproximativ 1000 numere.
√
12. R˘ aspuns: (d). Valoarea lui xn este constant˘a, egal˘ a cu 289, ˆıncepˆ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 prim este imediat˘a. 15. R˘ aspuns: (c). Proprietatea de homomorfism este aceea c˘a cifrarea RSA a produsului a 2 mesaje (modulo N ) este produsul cifr˘arilor corespunz˘atoare celor 2 numere. Restul variantelor sunt eronate, fiindc˘a RSA este un cifru cu cheie public˘a, deci asimetric. 16. R˘ aspuns: (c). Se aplic˘a propriet˘ a¸tile generatorului Geffe. 17. R˘ aspuns: (c). ˆIn aceast˘a situat¸ie secvent¸a supus˘a test˘arii este ideal˘ a, num˘ arul de bit¸i de 0 este egal cu num˘arul de bit¸i de 1 ¸si anume 1024. 18. R˘ aspuns: (a). 19. R˘ aspuns: (b), (c). Un registru de deplasare de lungime n are 2n 1 st˘ari posibile (starea nul˘a este exclus˘a). ˆIn situat¸ia ˆın care polinomul caracteristic este primitiv atunci el genereaz˘a toate st˘arile posibile.
−
20. R˘ aspuns: (a). Num˘arul de ie¸siri posibile, ale unei funct¸ii hash ideale cu ie¸sirea pe m bit¸i, este 2 m . 21. R˘ aspuns: (e). 22. R˘ aspuns: (a). 23. R˘ aspuns: a) A va determina dou˘a chei k ¸si k ∗ astfel ˆıncˆat: DES (”banul”; k) = DE S (”stema”, k ∗ ). Pentru acest lucru procedeaz˘a dup˘ a cum urmeaz˘a: i) A va construi dou˘a liste (DES (”banul”; k), k) ¸si (DES (”stema”; k ∗ ), k ∗ ), pentru toate cheile k respectiv k ∗ . Listele sunt sortate ˆın raport cu primul cˆamp al fiec˘arei intr˘ari (i.e. DES (”banul”; k) respectiv DES (”stema”; k ∗ )).
˘ PROBLEME DE SINTEZ A
306
ii) A va c˘auta coliziuni ˆın cadrul acestor liste ¸si va obt¸ine k, k∗ astfel ˆıncˆat: DES (”banul”; k) = DE S (”stema”; k ∗ ). iii) Dup˘a ce se arunc˘a moneda A comunic˘a lui B cheia k sau k ∗ dup˘a caz. b) Complexitatea atacului anterior este reprezentat˘a de c˘autarea coliziunilor ˆın cadrul celor dou˘a liste, pe 64 de bit¸i, DES (”banul”; k) ¸si DES (”stema”; k∗ ). Conform ”birthday attack” este nevoie numai de 2 32 evalu˘ari ale algoritmului DES pentru a determina o coliziune. c) Cerint¸a primitivei criptografice este ca funct¸iile:
→ DES (”banul”; k) ¸si k → DES (”stema”; k)
k
s˘a fie rezistente la coliziuni.
d) Se poate utiliza un algoritm de cifrare bloc pe 128 de bit¸i, spre exemplu AES (ˆın acest caz ”birthday attack” are nevoie de 264 evaluari ale AES). Ca o alternativ˘ a se poate utiliza o funct¸ie hash h rezistent˘a la coliziuni. Participantul A alege x ”stema”, ”banul” , o valoare aleatoare r ¸si calculeaz˘a y = h(x r). Dup˘a ce B face alegerea, A poate dezv˘alui x ¸si r.
||
∈ {
}
24. R˘ aspuns: a) Vom ar˘ata faptul c˘ a G = x Z p2 x 1 mod p ˆın raport cu 2 multiplicarea modul p este grup. Pentru aceasta se vor verifica urm˘atoarele: operat¸ia este parte stabil˘a, asociativitatea, elementul neutru ¸si elementul simetrizabil.
{ ∈
| ≡
}
2
b) Orice element a din Z p se poate scrie ˆın mod unic a = a 1 + a2 p, unde a1 ¸si a 2 sunt numere ˆıntregi ce satisfac relat¸ia 0 a1 , a2 p 1. Orice element 2 a din Z p este ˆın G dac˘a ¸si numai dac˘a elementul corespunz˘ator a1 este egal cu 1, de aici rezult˘a faptul c˘ a G = p.
≤
| |
≤ −
c) Fie a = 1 + kp, 0 k < p ¸si b = 1 + lp, 0 l < p elemente din G. Se verific˘a faptul c˘ a L este homomorfism: L(a b) = k + l mod p ¸si L(a) + L(b) = k + l mod p, deci L(a b) = L(a) + L(b). Direct se verific˘ a injectivitatea ¸si sujectivitatea lui L, deci L este izomorfism de grupuri.
≤ ·
·
d) Avem de ar˘atat faptul c˘ a orice element a lui p + 1. Din binomul lui Newton rezult˘a: n
2
≤
2
( p + 1) mod p =
∈ G poate fi scris ca o putere a
i=0
n i p mod p 2 = 1 + np. i
Deci, p + 1 genereaz˘a G. Pentru orice y numai dac˘ a x = ( p + 1)y mod p 2 .
∈ G avem:
Deoarece ( p + 1)y mod p 2 = 1 + py, obt¸inem:
y = log p+1 (x) dac˘a ¸si
˘ R ASPUNSURI
307
y =
x
− 1 mod p = L(x).
p
Acest˘ a funct¸ie logaritm st˘a la baza algoritmului criptografic Okamoto-Uchiyama. 25. R˘ aspuns: S˘a consider˘am semn˘aturile pentru mesajele m ¸si m∗ . Semn˘aturile sunt (r, s) ¸si (r, s∗ ). Avem: s =
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 = (gk mod p) mod q ¸si ˆın final vom recupera x prin formula:
x =
ks
− H (m) mod q. r
26. R˘ aspuns: a) Nu este corect s˘ a se calculeze dimensiunea cheii prin sumarea dimensiunii celor dou˘a intr˘ari ˆın algoritm deoarece numai una este secret˘a. Deci dimensiunea cheii este de 40 de bit¸i nu de 64 de bit¸i. b) Mai ˆıntˆ ai B reconstruie¸ste textul clar P ∗ = C RC 4(IV,K ). Ulterior P ∗ este ˆımp˘ art¸it ˆın dou˘a p˘art¸i P ∗ = M ∗ Q∗ , unde M ∗ este de n bit¸i iar Q ∗ de 32 de bit¸i. B calculeaz˘a L(M ∗ ) ¸si compar˘a cu Q∗ . B accept˘a mesajul M ∗ dac˘a ¸si numai dac˘a L(M ∗ ) = Q, altfel va respinge mesajul M ∗ .
||
⊕
c) Conform ”birthday paradox” alegˆand IV aleatoriu la fiecare ”frame” rezult˘a 24 c˘a la fiecare 2 2 5000 ”frame”-uri exist˘a o coliziune pentru dou˘a IV din cele 5000 transmise de la/c˘atre acela¸si utilizator. ˆIn aceast˘a situat¸ie avem o coliziune ˆın ¸sirurile cheie, ceea ce poate conduce la informat¸ie despre textul clar ([83]). O alternativ˘a este de a incrementa I V .
≈
˘ PROBLEME DE SINTEZ A
308
d) Fie M ∗ = M ∆ un nou mesa j, unde ∆ este un ¸sir de n bit¸i. Vom calcula diferent¸a dintre noul text cifrat C ∗ ¸si C :
⊕
C ∗
⊕ C
= (P ∗ = = =
⊕ RC 4(I V , K) ) ⊕ (P ⊕ RC 4(IV,K )) P ∗ ⊕ P (M ⊕ M ∗ )||(L(M ) ⊕ L(M ∗ )) ∆ ⊕ L(∆).
Deci, pentru orice ∆ nenul, adversarul cunoa¸ste faptul c˘a C ∗ = C (∆ L(∆)) care verific˘a CRC-ul. ˆIn concluzie acesta are (2 n 1) posibilit˘ a¸t i de alegere ∗ pentru ∆ (¸si C ). Proprietatea violat˘ a este cea de integritate a mesajului . O concluzie ce se desprinde din acest exercit¸iu este aceea c˘a CRC-urile (cu sau f˘ ar˘a cheie) ne asigur˘a protect¸ia contra erorilor de transmisie nu ¸si ˆımpotriva unui adversar malit¸ios.
⊕ ||
−
27. Raspuns: Prin calcule directe vom obt¸ine: d = e−1 = 0001 0669 8614 3685 7802 4442 8687 7132 8920 1547 8070 9906 6339 3786 2801 2262 2449 6631 0631 2591 1774 4708 7334 0168 5974 6230 6553 9685 4451 3277 1090 5360 6095 mod( p 1)(q 1).
−
−
Apoi, prin calcul direct sau utilizˆand CRT: M = C d = 20 0805 0013 0107 0903 0023 1518 0419 0001 1805 0019 1721 0501 1309 1908 0015 1919 0906 1801 0705 modN , N = p q .
·
Folosind codificarea spat¸ iu= 00, A = 01, B = 02, ..., Z = 26 obt¸inem textul clar: ”THE MAGIC WORDS ARE SQUEAMISH OSSIFRAGE”.
Bibliografie [1] Abramowitz M., Stegun I.A., Handbook of Mathematical Functions , Washington, D.C., U.S. Government Printing Office, 1964. [2] Anand P., Foundations of Rational Choice Under Risk , Oxford: Oxford University Press, 1993. [3] Akerlof G. A., Yellen J. L., Rational Models of Irrational Behavior , 1987. [4] Aumann R. J., Hart S., Handbook of Game Theory with Economic Applications , 3 vols. Amsterdam: North-Holland, 2002. [5] Aumann R. J., Maschler M. B., Repeated Games with Incomplete Information , Cambridge, Mass.: MIT Press, 1995. [6] Atanasiu A., Securitatea Informat ¸iei, vol. 1, Criptografie , ed. InfoData, Cluj, 2008. [7] Atanasiu A., Securitatea Informat ¸iei, vol. 2, Protocoale de securitate , ed. InfoData, Cluj, 2009. [8] Baker K., Kropp D., Management Science: An Introduction to the Use of Decision Models , 1985. [9] Baase S., Van Gelder A., Computer Algorithms, Introduction to Design and Analysis , Addison Wesley Longman, 2000. [10] Bellman R. E., Teoria grafurilor , Editura Tehnic˘a, Bucure¸sti, 1976. [11] Bellman R., Dynamic Programming , Princeton University Press, 1957. [12] Berge C., Th´eorie des graphes et ses applications , Dunod, 1967. [13] Berger J., Statistical decision theory and Bayesian Analysis , 2nd ed., New York: Springer Verlag, 1985. 309
310
BIBLIOGRAFIE
[14] Bertsekas D. P., Dynamic Programming and Optimal Control , 2nd ed., Athena Scientific, 2000. [15] Bertsekos A., Linear Network Optimization, Algorithms and Codes , MIT Press, 1991. [16] Biggs N., Lloyd E., Wilson R., Graph Theory , Oxford University Press, 1986. [17] Bondy J.A., Murty U.S.R., Graph Theory, Springer, 2008. [18] Baird D., Gertner R. H., Picker R. C. , Game Theory and the Law , Cambridge, Mass.: Harvard University Press, 1994. [19] Browson R., Operational Research , 2nd edition, Prentice Hall, 1997. [20] Budnick F., Richard M., Vollmann T. E. , Principles of Operations Research for Management , Homewood: Irwin, 1977. [21] Chartrand G., Introductory Graph Theory , Dover, 1985. [22] Clemen R., Making Hard Decisions: An Introduction to Decision Analysis , 2nd ed., Belmont CA: Duxbury Press, 1996. [23] Cormen T., Leiserson C., Rivest R. Introduction to Algorithms MIT Press, 1990. [24] Dantzig, George B., Linear Programming and Extensions , Princeton: Princeton U P, 1963. [25] De Groot M., Optimal Statistical Decisions , Wiley Classics Library, 2004. [26] Denardo E.V., Dynamic Programming: Models and Applications , Mineola, NY: Dover Publications, 2003. [27] Dimand M. A., Robert W. D., The History of Game Theory, Vol. 1: From the Beginnings to 1945 , London and New York: Routledge, 1996. [28] Dreyfus S. E., Law A. M., The art and theory of dynamic programming , Academic Press, 1977. [29] Dugatkin L. A., Hudson K. R., Game Theory and Animal Behavior , New York: Oxford University Press, 1998. [30] Fryer K., Operational Reasearch , Operational Research Society.
BIBLIOGRAFIE
311
[31] Goodwin P., Wright G. Decision Analysis for Management Judgment , 3rd ed., Chichester: Wiley 2004. [32] Gibbons Alan, Algorithmic Graph Theory , Cambridge University Press,1985. [33] Giegerich R., Meyer C., Steffen P., A Discipline of Dynamic Programming over Sequence Data , Science of Computer Programming 51 (3), 2004. [34] Golumbic M., Algorithmic Graph Theory and Perfect Graphs , Academic Press, 1980. [35] Harary F., Graph Theory , Reading, MA: Addison-Wesley,1969 [36] Harary F., Palmer E., Graphical Enumeration , New York, NY: Academic Press,1973. [37] Harsanyi J. C., Reinhard S., A General Theory of Equilibrium Selection in Games , Cambridge, Mass.: MIT Press, 1988. [38] Heims S. J., John Von Neumann and Norbert Wiener: From Mathematics to the Technologies of Life and Death , Cambridge, Mass.: MIT Press, 1980. [39] Heinze C. D., Management Science: Introductory Concepts and Applications , 1982. [40] Hiller F., Introduction to Operational Research , Mc. Graw Hill, 1995. [41] Kaufmann A., Metode ¸si modele ale cercet˘ arii operat ¸ionale , Editura Tehnic˘a, Bucure¸sti, 1967. [42] Kaufmann A., Desbazeile G., La methode du chemin critique , Paris, 1969. [43] Kirby M. W., Operational Research in War and Peace , Imperial College Press, London, 2003. [44] Mahadev N.V.R., Peled U. N., Threshold Graphs and Related Topics , North-Holland, 1995. [45] Mathur K., Solow D., Management Science: The Art of Decision Making , 1994. [46] McKinsey, Introduction to the Theory of Games , McGraw-Hill Book Company, Inc., New York. [47] Menezes A.J. , Handbook of Applied Cryptography , CRC Press, 1997.
312
BIBLIOGRAFIE
[48] Meyn S., Control Techniques for Complex Networks , Cambridge University Press, 2007. [49] Nasar S., A Beautiful Mind: A Biography of John Forbes Nash, Jr., Winner of the Nobel Prize in Economics , 1994. New York: Simon and Schuster, 1998. [50] Nash J. F. Jr., Essays on Game Theory , Cheltenham, U.K., and Brookfield, Vt.: Edward Elgar, 1996. [51] Naccache D., Mih˘ ait¸a ˘ A., Olimid R. F., Oprina A. G., Simion E., Criptografie ¸si Securitatea Informat ¸iei. Aplicat ¸ii , MATRIXROM, 2011. [52] Owen G., Teoria Jocurilor , Editura Tehnic˘a, Bucure¸sti, 1976. [53] Pidd M., Tools for Thinking: Modelling in Management Science , J. Wiley & Sons Ltd., Chichester; 2nd. Edition, 2003. [54] Peterson M., An Introduction to Decision Theory , Cambridge University Press,2009. [55] Popescu O. ¸si al. Matematici pentru economi¸sti , Editura Didactic˘a ¸si Pedagogic˘a, Bucure¸sti, 1992. [56] Preda V., Teoria deciziilor statistice , Editura Academiei, Bucure¸sti, 1991. [57] Raiffa H., Decision Analysis: Introductory Readings on Choices Under Uncertainty , McGraw Hill, 1997. [58] Rapoport A., Albert M. C., Prisoners Dilemma: A Study in Conflict and Cooperation , Ann Arbor: University of Michigan Press, 1965. [59] Riker W. H., Ordeshook P. C., An Introduction to Positive Political Theory , Englewood Cliffs, N.J.: Prentice Hall, 1973. [60] Robert C., The Bayesian Choice , 2nd ed., New York: Springer, 2007. [61] Roth A. E., R. E. Verrecchia, The Shapley Value as Applied to Cost Allocation: a Reinterpretation , Journal of Accounting Research 17 (1979): 295303. [62] Rubinstein A., Modeling Bounded Rationality , Cambridge, Mass.: MIT Press, 1998. [63] Rumelt R. P., Schendel D. E., Teece D. J., Fundamental Issues in Strategy: A Research Agenda , Boston: Harvard Business School Press, 1994.
313
BIBLIOGRAFIE
[64] Samuelson L., Evolution and Game Theory , Journal of Economic Perspectives 16, 2002. [65] Schelling T., The Strategy of Conflict , Cambridge, Mass.: Harvard University Press, 1960. [66] Schotter A., The Economic Theory of Social Institutions , Cambridge, U.K.: Cambridge University Press, 1981. [67] Schneier B., Applied Cryptography , Adison-Wesley, 1998. [68] Seiz J. A., Game Theory and Bargaining Models , In The Elgar 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., Readings in uncertain reasoning , San Mateo, CA: Morgan Kaufmann,1990. [70] Shapiro C., The Theory of Business Strategy , RAND Journal of Economics 20, 1989.
−
[71] Shapley L. S., A Value for n Person Games , In Harold Kuhn and Albert W. Tucker, eds., Contributions to the Theory of Games, Vol. 2, Annals of Mathematics Studies, no. 28. Princeton, N.J.: Princeton University Press, 1953. [72] Shapley L. S., Shubik M., A Method for Evaluating the Distribution of Power in a Committee System , American Political Science Review 48, 1954. [73] Shubik M., A Game-Theoretic Approach to Political Economy , Vol. 2 of Game Theory in the Social Sciences. Cambridge, Mass.: MIT Press, 1984. [74] Sierksma G., Linear and Integer Programming: Theory and Practice 2nd ed. New York: Marcel Dekker, 2002. [75] Simion E., Opri¸san Gh., Elemente de Cercet˘ ari Operat ¸ionale ¸si Criptologie , Politehnica Press, ISBN 973-8449-006, 2002. [76] Simion E., Preda V., Popescu A., Criptanaliza. Rezultate ¸si Tehnici Matematice , Universitatea din Bucure¸sti, ISBN 973575975-6, 2004. [77] Simion E., Enciclopedie Matematic˘ a , Edit¸ie coordonat˘ a de M. Iosifescu, O. St˘an˘ a¸sil˘a ¸si D. S¸tef˘anoiu, Editura AGIR, ISBN 978-973-720-288-8, pp. 905944, 2010.