Securitatea Informației - Introducere în Criptografie (PDF)

Summary

Această lucrare oferă o introducere în criptografie, acoperind funcțiile criptografice, fundamentele matematice și computaționale. Autorul prezintă scheme de criptare cu cheie simetrică, funcții hash, coduri de autentificare și noțiuni de bază despre curbe eliptice. Lucrarea este o introducere completă în criptografie și securitate informație.

Full Transcript

Introducere în Criptografie Funcții Criptografice, Fundamente Matematice și Computaţionale Bogdan Groza Prefaţă Prezenta lucrare, extinde lucrarea autorului publicată în 2007 sub titlul Introducere în criptografia cu cheie publică1....

Introducere în Criptografie Funcții Criptografice, Fundamente Matematice și Computaţionale Bogdan Groza Prefaţă Prezenta lucrare, extinde lucrarea autorului publicată în 2007 sub titlul Introducere în criptografia cu cheie publică1. Această extensie, care refolosește o bună parte din textul anterior era necesară din două motive: pe de o parte textul anterior cerea îmbunătățiri și actualizări, pe de altă parte o carte dedicată strict criptografiei cu cheie publică adresa o nișă pentru care era greu de găsit o audiență potrivită (cel puţin în cadrul universităţii în care autorul își desfășoară activitatea didactică). Astfel, prezenta lucrare completează lucrarea anterioară cu detalii privitoare la criptografia cu cheie simetrică, funcţii hash, coduri de autentificare, noţiuni de bază despre curbe eliptice, etc., oferind o imagine mult mai completă asupra criptografiei. Nu în ultimul rând, prezenta carte este văzută de autor ca fiind prima dintr-o serie de trei volume ce formează un compendiu de criptografie şi securitatea informaţiei. Volumul 1 este dedicat funcţiilor criptografice şi fundamentelor matematice şi computaţionale, în timp ce volumul 2 va fi dedicat protocoalelor criptografice şi aplicaţiilor practice iar volumul 3 unor concepte avansate în criptografie. Orizontul de timp în care se doreşte publicarea celorlalte două volume este 5-10 ani. Trecând mai bine de trei decenii de la intrarea criptografiei în domeniul academic, există multe cărţi de referinţă ale domeniului şi desigur ne putem întreba de ce este utilă încă o carte, aceasta. În contextul actual nu pare fezabil a preda criptografie după niciuna din cărțile mari ale domeniului, în special la nivelul studiilor de licenţă. Poate acest lucru ar deveni fezabil în câţiva ani, sau poate este parţial fezabil şi acum la ciclul master, dar din punctul de vedere al autorului este necesară mult mai multă seriozitate din partea studenţilor care participă. Altfel riscăm a preda criptografie doar pentru 5% din audienţă. Mijloace moderne de predare (computerul și proiectorul) fac flexibilă predarea şi ne oferă posibilitatea de a modela o programă de studii după cum dorim. Dar foliile de curs în format de proiectare conțin doar informație fragmentară, incompletă, punând studentul la a rezolva un puzzle prin citirea lor. Desigur poate fi un puzzle mai greu sau mai simplu în funcție de priceperea autorului, la fel și cartea, dar în orice caz cartea oferă informații mai fluente, mai uşor de interpretat și este în general un instrument de învățare mai bun. 1 Bogdan Groza, Introducere in Criptografia cu Cheie Publica, Editura Politehnica, 2007. 3 Nu în ultimul rând, o carte oferă viziunea personală a autorului asupra domeniului şi poate chiar modul în care autorul l-a învățat. Cu riscul de a nu fi cea mai bună cale, în lipsa unui criteriu pentru aceasta, trebuie să ne asumăm puterea de a spune ce avem de spus. Existenţa unor cărţi în limba română, într-un moment în care limba ştiinţei la nivel mondial este engleza, nu poate fi justificată prin prisma noţiunii de cultură ştiinţifică naţională, deoarece ştiinţa nu are o naţie, ea este în cele din urmă a tuturor (matematica nu diferă între continente). Dar, existenţa unor cărţi în limba naţională, devine peste ani dovada incontestabilă a existenţei unui învățământ naţional de tradiţie în acel domeniu. Pentru a conserva partea pozitivă din identitatea învăţământului românesc, este bine să avem şi cărţi de studiu în limba română. Timişoara, 2012 Cuprins 1 INTRODUCERE............................................................................................................................. 9 1.1 SECURITATEA INFORMAŢIEI, DEFINIREA PROBLEMEI..................................................................... 9 1.2 INCIDENTUL CA MOTIVAȚIE, EVOLUȚIA CAUZELOR INCIDENTELOR DE LA INTERNE LA EXTERNE 11 1.3 CADRUL DE LUCRU ȘI ECUAȚIA DE BAZĂ (VULNERABILITATE + ADVERSAR = RISC DE SECURITATE)........................................................................................................................................................ 13 1.4 ADVERSARI (CU CINE NE CONFRUNTĂM)....................................................................................... 14 1.5 OBIECTIVE DE SECURITATE (ȚINTE ALE ADVERSARULUI)........................................................... 15 1.6 VULNERABILITĂȚI (CE EXPLOATEAZĂ ADVERSARUL).................................................................. 19 1.7 ATACURI ASUPRA CANALULUI DE COMUNICARE (CAPABILITĂȚI ALE ADVERSARULUI)........... 20 1.8 CRIPTOGRAFIA ŞI ROLUL EI............................................................................................................... 23 1.9 GARANȚIA OFERITĂ DE CRIPTOGRAFIE: NIVELUL DE SECURITATE............................................. 25 1.10 SCURT ISTORIC AL CRIPTOGRAFIEI.................................................................................................. 27 1.11 ISTORIA CRIPTOGRAFIEI CU CHEIE PUBLICĂ ÎN PARTICULAR....................................................... 31 1.12 O PRIVIRE DE ANSAMBLU ASUPRA FUNCŢIILOR CRIPTOGRAFICE................................................ 34 1.13 DEZIDERATE ÎN SISTEMELE CRIPTOGRAFICE CONTEMPORANE.................................................. 36 1.14 LITERATURĂ RELEVANTĂ ÎN DOMENIU........................................................................................... 37 1.15 SĂ NU SUPRAEVALUĂM CRIPTOGRAFIA: SECURITATEA ESTE UN PROCES, NU UN PRODUS...... 39 2 SCHEME DE CRIPTARE CU CHEIE SIMETRICĂ (CRIPTAREA CU CHEIE SECRETĂ) 40 2.1 DEFINIŢIE ŞI PROPRIETĂŢI............................................................................................................... 40 2.2 CLASIFICARE: CODURI BLOC ȘI CODURI STREAM............................................................................ 43 5 2.3 PRINCIPII CONSTRUCTIVE: SUBTITUŢIA ŞI TRANSPOZIŢIA, CIFRU PRODUS............................... 44 2.4 MAŞINA ENIGMA................................................................................................................................ 44 2.5 REŢEAUA FEISTEL.............................................................................................................................. 46 2.6 CRIPTOSISTEMUL DES...................................................................................................................... 47 2.7 3DES................................................................................................................................................... 51 2.8 CRIPTOSISTEMUL AES...................................................................................................................... 51 2.9 MODURI DE OPERARE A CRIPTĂRILOR SIMETRICE: ECB, CBC CM ŞI ALTELE......................... 53 2.10 TIPURI DE ATAC ASUPRA FUNCȚIILOR DE CRIPTARE.................................................................... 58 3 FUNCŢII CRIPTOGRAFICE FĂRĂ CHEIE: FUNCŢII HASH............................................. 60 3.1 DEFINIŢIE ŞI PROPRIETĂŢI................................................................................................................ 60 3.2 FUNCŢII HASH FRECVENT UTILIZATE ÎN PRACTICĂ: MD5 ŞI FAMILIA SHA............................. 61 3.3 NOUA GENERAŢIE DE FUNCŢII HASH SHA3................................................................................... 65 4 CODURI DE AUTENTIFICARE A MESAJELOR (HASH-URI CU CHEIE)...................... 66 4.1 DEFINIŢIE ŞI PROPRIETĂŢI............................................................................................................... 66 4.2 CODURI MAC ÎN PRACTICĂ: CBC-MAC ŞI H-MAC..................................................................... 69 5 GENERATOARE DE NUMERE ALEATOARE ŞI PSEUDO-ALEATOARE...................... 71 5.1 GENERATORUL LINEAR CONGRUENŢIAL......................................................................................... 72 5.2 GENERATOARE LFSR (FIBONACCI ŞI GALOIS)............................................................................. 73 5.3 GENERATORUL BLUM-BLUM-SHUB................................................................................................ 74 5.4 GENERATOARE HARDWARE.............................................................................................................. 75 6 SCHEME DE CRIPTARE CU CHEIE ASIMETRICĂ (CRIPTAREA CU CHEIE PUBLICĂ) 76 6.1 DEFINIŢIE ŞI PROPRIETĂŢI............................................................................................................... 76 6.2 TAXONOMIE A CRIPTOSISTEMELOR CU CHEIE PUBLICĂ................................................................ 79 6.3 SCHIMBUL DE CHEIE DIFFIE-HELLMAN-MERKLE........................................................................ 81 6.4 SECURITATEA SCHIMBULUI DE CHEIE DIFFIE-HELLMAN-MERKLE........................................... 82 6.5 CRIPTAREA ASIMETRICĂ RSA.......................................................................................................... 84 6.6 SECURITATEA CRIPTOSISTEMULUI RSA......................................................................................... 85 6.7 CRIPTAREA ASIMETRICĂ RABIN....................................................................................................... 90 6.8 SECURITATEA CRIPTOSISTEMULUI RABIN...................................................................................... 92 6.9 CRIPTAREA ASIMETRICĂ EL-GAMAL............................................................................................... 93 6.10 SECURITATEA CRIPTOSISTEMULUI ELGAMAL............................................................................... 94 6.11 CRIPTOSISTEMUL GOLDWASSER-MICALI....................................................................................... 95 6.12 SCHIMBUL DE CHEIE DIFFIE-HELLMAN FOLOSIND CURBE ELIPTICE (ECDH)............................ 97 6.13 LIPSA SECURITĂŢII ÎN VARIANTELE „TEXT-BOOK” ALE ALGORITMILOR DE CRIPTARE............ 99 6.14 VARIANTE CONTEMPORANE ALE CRIPTOSISTEMOR CLASICE DE CRIPTARE CU CHEIE PUBLICĂ (REZISTENŢA IND/NM-CCA2).....................................................................................................................102 6.15 FUNCȚIA DE PADDING OAEP.........................................................................................................105 6.16 FUNCȚIA DE PADDING PKCS..........................................................................................................108 7 SCHEME DE SEMNARE DIGITALĂ.....................................................................................109 7.1 PROPRIETĂȚI ȘI CLASIFICARE: SEMNĂTURI CU APENDICE ȘI CU RECUPERAREA MESAJULUI 109 7.2 SEMNĂTURA DIGITALĂ RSA (VARIANTA TEXT-BOOK).............................................................112 7.3 VARIANTE SIGURE ÎN PRACTICĂ PENTRU SEMNĂTURĂ RSA: FDH, PSS, PKCS V.1.5........115 7.4 SEMNĂTURA DIGITALĂ RABIN.......................................................................................................118 7.5 SEMNĂTURA „BLIND” BAZATĂ PE RSA.........................................................................................120 7.6 SEMNĂTURA DIGITALĂ ELGAMAL.................................................................................................121 7.7 SEMNĂTURA DIGITALĂ DSA...........................................................................................................122 7.8 SEMNĂTURA DIGITALĂ FOLOSIND CURBE ELIPTICE (ECDSA).................................................124 7.9 TIPURI DE ATAC ASUPRA SEMNĂTURILOR DIGITALE..................................................................124 8 FUNDAMENTE MATEMATICE............................................................................................126 8.1 ELEMENTE DE TEORIA PROBABILITĂŢILOR................................................................................126 8.2 ELEMENTE DE ALGEBRĂ: GRUPURI, INELE ŞI CÂMPURI..............................................................129 7 8.3 ELEMENTE DE TEORIA NUMERELOR............................................................................................130 8.3.1 Mulţimea de resturi Zn........................................................................................................ 130 8.3.2 Teorema Chineză a Resturilor.......................................................................................... 131 8.3.3 Teoremele lui Fermat şi Euler.......................................................................................... 133 8.3.4 Ordinul unui element şi generatori în Zn..................................................................... 135 8.3.5 Congruenţe polinomiale în Zn.......................................................................................... 136 8.3.6 Reziduuri cvadratice în Zn................................................................................................. 137 8.3.7 Numărul de reziduuri cvadratice în Zn......................................................................... 139 8.3.8 Simbolurile Legendre şi Jacobi......................................................................................... 141 8.3.9 Utilizarea reziduurilor cvadratice în criptanaliză................................................... 144 8.3.10 Curbe Eliptice.................................................................................................................... 146 9 FUNDAMENTE COMPUTAŢIONALE.................................................................................148 9.1 ELEMENTE DE TEORIA COMPLEXITĂŢII.......................................................................................151 9.2 ELEMENTE DE TEORIA INFORMAŢIEI...........................................................................................154 9.3 CALCULUL OPERAŢIILOR ELEMENTARE........................................................................................156 9.4 CALCULUL C.M.M.D.C. ŞI INVERSELOR MULTIPLICATIVE............................................................161 9.5 CALCULUL RĂDĂCINII DE ORDIN E CU RELATIV PRIM LA ORDINUL GRUPULUI........................163 9.6 CALCULUL RĂDĂCINII PĂTRATE.....................................................................................................164 9.7 CALCUL RĂDĂCINII PĂTRATE PENTRU MODULE BLUM...............................................................166 9.8 VERIFICAREA APARTENENŢEI LA MULŢIMEA REZIDUURILOR CVADRATICE............................167 9.9 PROBLEMA FACTORIZĂRII ÎNTREGI (IFP)....................................................................................169 9.9.1 Algoritmi de factorizare clasici........................................................................................ 172 9.9.2 Algoritmi de factorizare dedicaţi.................................................................................... 174 9.9.3 Algoritmi de factorizare generali.................................................................................... 176 9.10 PROBLEMA LOGARITMULUI DISCRET (DLP)...............................................................................178 9.11 GENERAREA NUMERELOR PRIME...................................................................................................179 9.12 MULTIPLICAREA UNUI PUNCT DE PE O CURBĂ ELIPTICĂ............................................................182 10 BIBLIOGRAFIE.........................................................................................................................183 11 ANEXE........................................................................................................................................191 1 INTRODUCERE "Cryptography is communication in the presence of adversaries" – R. Rivest. Ce este securitatea informaţiei şi care este rolul criptografiei, acestea sunt două întrebări la care dorim să răspundem. Evitând o explicaţie tip dicţionar care nu ar sluji scopului acestei cărţi, vom încerca să conturăm un răspuns mai larg în cadrul unui context general. Vom face aceasta în cadrul obiectivelor de securitate şi al adversarilor la adresa acestora, un cadru ce poate încadra funcţiile criptografice ca obiecte ce au un scop precis. Continuăm apoi cu o scurtă privire istorică asupra criptografiei și o taxonomie a funcțiilor criptografice. Nu în ultimul rând, facem o trecere în revistă a literaturii relevante în domeniu. 1.1 SECURITATEA INFORMAŢIEI, DEFINIREA PROBLEMEI Un instrument trebuie văzut în primul rând în cadrul contextului din care face parte, criptografia reprezintă instrumentul de bază în domeniul mai larg al securității informației. Într-un secol în care informaţia este indispensabilă, asigurarea securităţii acesteia devine o preocupare de prim rang. Aceasta se datorează faptului că informaţia este lipsită de valoare atâta timp cât atributele ei de securitate nu sunt asigurate. În mare, securitate înseamnă protecţie în faţa unei potenţiale ameninţări iar în ceea ce priveşte informaţia ameninţările pot varia de la simpla alterare neintenţionată a acesteia până la accesarea de către persoane neautorizate sau distrugerea ei. Securitatea informaţiei este domeniul care se ocupă de studiul mecanismelor de protecţie a informaţiei, în scopul asigurării unui nivel de încredere în informație, şi este corect a spune că nivelul de încredere în informaţie depinde de nivelul mecanismelor de securitate care îi garantează protecţia în fața riscurilor care apar asupra securităţii ei. Tehnicile de asigurare a securităţii informaţiei adresează informaţie indiferent de natura ei şi este important de remarcat că informaţia are valoare în special atunci când este subiect al schimbului sau procesării, deci tocmai atunci când este vulnerabilă în 10 Funcţii Criptografice, Fundamente Matematice şi Computaţionale faţa unor părţi ce nu pot fi considerate de încredere. Astfel, fără a exclude valoarea informaţiei stocate, valoarea informaţiei creşte evident în acțiunea de schimb sau de procesare şi este evident că o informaţie complet izolată nu conduce la riscuri de securitate foarte mari dar în acelaşi timp nici nu poate aduce foarte multe beneficii având în general valoare scăzută. În diverse materiale pot fi găsite numeroase definiții și denumiri asociate domeniului mai larg al securității informaţiei. Este relevantă definiția din glosarului lucrării unde Securitatea Sistemelor Informatice (INFOSEC – Information System Security) este definită după cum urmează: Securitatea Sistemelor Informatice (INFOSEC) înseamnă protecţia sistemelor informatice împotriva accesului neautorizat sau a modificării informaţiei, fie stocată, procesată sau în tranzit, şi împotriva refuzului de servicii către utilizatorii autorizaţi sau asigurării de servicii către utilizatorii neautorizaţi, incluzând acele metode necesare detectării, documentării şi respingerii acestor ameninţări. Securitatea informaţiei este un domeniu care provoacă practicantul la un mod de a gândi. Pentru a defini specificaţiile de securitate ale unui sistem, trebuie să existe o imagine suficient de clară asupra sistemului şi pericolelor ce planează asupra sa. O imagine devine clară pe măsură ce apar cât mai multe întrebări şi desigur răspunsuri. Nu există nici un diagnostic general şi nici o reţetă universală pentru a face securitate. Există totuşi câteva întrebări relevante în faţa cărora trebuie să dăm un răspuns înainte de a proiecta o potenţială soluţie de securitate, iată câteva dintre acestea, conform lucrării : cum ajunge adversarul la sistem? Care sunt obiectivele de securitate ce trebuie asigurate în sistem? Care este nivelul de securitate la care trebuie să răspundă sistemul? Desigur perspectivele deschise de aceste întrebări nu sunt nici pe departe exhaustive şi nici suficient de detaliate. De exemplu, poate că fără a introduce problematici noi, putem nuanţa aceste trei întrebări prin altele cum ar fi : ce trebuie protejat? Care sunt ameninţările şi vulnerabilităţile? Care sunt implicaţiile în cazul distrugerii sau pierderii echipamentului? Care este valoarea echipamentului pentru organizaţie? Ce poate fi făcut pentru a minimiza expunerea la pericole? O expunere succintă a problemelor de evaluare a ameninţării şi riscurilor se găseşte în. Este de remarcat că în cadrul răspunsului la prima întrebare putem distinge două situaţii: situaţia în care adversarul ajunge personal la sistem şi situaţia în care ajunge pe cale electronică la sistem. Pentru prima situaţie soluţiile de tratare se încadrează în categoria soluţiilor de securitate fizică. Pentru cea de a doua situaţie vorbim de securitate electronică, tehnicile criptografice joacă un rol fundamental în acest context. Este de remarcat că aceste două tipuri distincte de soluţii de securitate pot adesea să se contopească, de exemplu un lacăt ataşat 1. Introducere 11 unei uşi este un dispozitiv de securitate fizică, dar unui astfel de lacăt i se poate ataşa un dispozitiv de autentificare bazat pe tehnici criptografice, cum ar fi de exemplu un smart-card. Acest nivel de detaliere este suficient pentru prezentul capitol, dar în practică nu este nici pe departe complet deoarece în cazul securităţii electronice există de asemenea multe alte moduri în care adversarul poate ajunge la sistem şi problema se complică în continuare (de exemplu poate ajunge de pe un suport de date, sau prin intermediului unei reţele etc.). 1.2 INCIDENTUL CA MOTIVAȚIE, EVOLUȚIA CAUZELOR INCIDENTELOR DE LA INTERNE LA EXTERNE O caracteristică interesantă pentru adoptarea practicilor bune de securitate (și a dezvoltării tehnicilor criptografice în general) este faptul că aceasta este în general motivată de incidente, de cele mai multe ori incidente cu urmări negative. Într-adevăr, de cele mai multe ori, lumea evită să adopte măsuri de securitate sub pretexte de forma: ”așa ceva nu se poate întâmpla”. Astfel, din comoditate, lumea evită de exemplu să instaleze un software de securitate pe un smart-phone, software care ar permite în cazul furtului trimiterea unui simplu SMS ce ar porni un sistem de localizare sau ștergerea datelor ce au caracter personal. Odată ce telefonul este furat, posesorul regretă acest lucru. Este nevoie așadar de incident pentru a conștientiza riscul de securitate. Aici exemplele sunt numeroase, multe lucruri sunt aparent greu crezut, probabil și înainte de ziua neagră 9/11 puțini ar fi crezut că un zgârie-nori ar putea fi lovit și doborât de un avion deturnat de teroriști. Dacă în perioada 1982-2000 exista un echilibru între sursele incidentelor de securitate, aşa cum este sugerat în Figura 1.1 i), acestea provenind în esenţă din trei direcţii distincte: externe, interne, accidentale; în perioada 2001-2003 pe lângă faptul că numărul de atacuri creşte semnificativ şi acest echilibru este pierdut, marea parte a problemelor de securitate începând să fie datorate factorilor externi, lucru sugerat în Figura 1.1 ii). Explicaţia acestui fapt vine exact din deschiderea naturală a sistemelor către utilizarea reţelelor publice şi utilizarea componentelor standard impuse de piaţă. Deschiderea sistemului (adversarul are acces la sistem) este datorată faptului că nu mai există perimetre securizate în sensul de izolare informatică. Chiar deconectarea de la Internet nu garantează acest lucru deoarece un USB drive infectat odată introdus poate infecta sistemul izolat (aceasta pare să fi fost calea de intrare a viermelui Stuxnet în centralele de prelucrare a uraniului din Iran). 12 Funcţii Criptografice, Fundamente Matematice şi Computaţionale i) ii) FIGURA 1.1. CAUZELE INCIDENTELOR DE SECURITATE I) ÎN PERIOADA 1982-2000 II) ÎN PERIOADA 2001-2003 i) ii) FIGURA 1.2. CĂDEREA DE ENERGIE ELECTRICĂ DIN AUGUST, 2003: I) ÎNAINTE II) DUPĂ (COPYRIGHT: POZELE APARŢIN DOMENIULUI PUBLIC ŞI SUNT FĂCUTE DE U.S. NATIONAL OCEANIC AND ATHMOSPHERIC ADMINISTRATION ) 1. Introducere 13 Dispariția securității prin obscuritate este datorată standardelor (adversarul cunoaște sistemul). Securitatea prin obscuritate nu este o soluție deoarece ea expune sistemul în fața oamenilor din interior care pot fi ușor de corupt sau cumpărat (în cele din urma oamenii din interior sunt angajați cu salarii modeste dar care cunosc detalii critice). Blackout-ul din August 2003 (cădere de energie electrică pe coasta de Est a continentului american) cu toate că nu este rezultatul direct al unui atac informatic este un exemplu clar al pagubelor pe care un astfel de incident poate să le aducă: o arie de 24.000 km2 a fost afectată, 265 de centrale electrice au fost afectate din care 22 erau nucleare, 50 de milioane de oameni au fost afectaţi din care peste 21 milioane din New York. Figura 1.2 surprinde imaginea din satelit asupra acestui incident. Pierderile totale sunt estimate la 6 miliarde de dolari. Una dintre cauzele căderii a fost o problemă în sistemele informatice care nu au declanşat semnalul de alarmă făcând astfel ca luarea de măsuri pentru a preveni căderea să întârzie până când a fost prea târziu. Desigur, este doar o problemă de timp până când adversari, precum mişcările extremiste de exemplu, ar putea exploata vulnerabilităţi de securitate criptografică pentru a cauza pagube similare. Acest lucru este recunoscut în mod curent în special în Statele Unite în sectoarele de distribuţie a gazului şi electricităţii aşa cum arată lucrări de ultimă oră. 1.3 CADRUL DE LUCRU ȘI ECUAȚIA DE BAZĂ (VULNERABILITATE + ADVERSAR = RISC DE SECURITATE) Existenţa unei vulnerabilităţi şi a unui potenţial adversar implică existenţa unui risc de securitate, aceasta este o lege nescrisă a securităţii informaţiei pe care datorită importanţei o vom scrie ca ecuaţie: Vulnerabilitate + Adversar = Risc de Securitate Cadrul general de lucru este ilustrat în Figura 1.3. Entităţile participante la comunicare, numite simplu participanţi, în general notate cu A şi B, schimbă succesiv rolul de emiţător şi receptor. Se distinge pe lângă acestea prezenţa unui adversar, care obturează canale nesigure de comunicare (prin acestea înţelegând canale publice care pot fi accesate de către adversar), şi prezenţa unei părţi de încredere, aceasta fiind utilă în special în scenariile cu chei secrete unde rolul părţii de încredere este de a distribui chei de sesiune între participanţi. De asemenea ne raportăm la un cadru de timp. Este posibilă și prezenţa unor canale sigure de comunicare, prin acestea înţelegând în general canale cu securitate 14 Funcţii Criptografice, Fundamente Matematice şi Computaţionale fizică dar pentru a nu încărca figura le vom omite. În principiu orice element al imaginii poate să lipsească, mai puţin un participant care este întotdeauna necesar şi adversarul în faţa căruia dorim să asigurăm diverse obiective de securitate. CANAL PUBLIC (NESIGUR) Adv A CANAL PUBLIC (NESIGUR) B Parte de incredere FIGURA 1.3. CADRUL DE LUCRU: CLIENȚI ONEȘTI (A,B), ADVERSAR (ADV), PARTE DE ÎNCREDERE ȘI TIMP. 1.4 ADVERSARI (CU CINE NE CONFRUNTĂM) Entitatea care comite un atac o vom numi în limbaj de securitate adversar (mai rar se foloseşte termenul de atacator, și mai rar cel de intrus). Lista potenţialilor adversari poate fi un punct de pornire în evaluarea riscurilor. Cu privire la aceştia interesează câteva coordonate cum ar fi: resursele de calcul, resursele financiare, resursele intelectuale, motivaţia, amploarea şi natura pagubelor care le pot cauza. Fără a face o enumerare exhaustivă a acestora şi fără 1. Introducere 15 a insista pe detaliile cu privire la coordonatele anterior amintite, conform aceasta ar fi o potenţială listă: i) Hackerii dispun de resurse de calcul şi financiare scăzute şi atacă sisteme în general doar motivaţi de dorinţa de a brava sau pentru amuzament. ii) Clienţii unei reţele au putere de calcul limitată şi sunt motivaţi de interese economice, de exemplu: fraudarea valorii facturate în reţeaua termo- electrică etc. iii) Comercianţii dispun de putere de calcul modestă şi de resurse financiare apreciabile având interes în aflarea sau manipularea secretelor pentru câştigarea avantajelor financiare. iv) Crima organizată are putere de calcul modestă şi putere financiară ridicată având interes în alterarea parametrilor la care funcţionează sistemele pentru câştigarea unor avantaje financiare. v) Teroriştii dispun de putere ridicată de calcul şi financiară fiind motivaţi de raţiuni politico-religioase cu scopul de a răspândii panică şi pagube de ordin financiar. vi) Guvernele statelor adversare, dispun de putere de calcul şi financiară ridicată, şi mai mult, de operatori pricepuţi şi antrenaţi cu experienţă în domeniu. Scopul acestora este în general de a afecta infrastructurile în atacuri complexe de natură fizică sau electronică. vii) Oamenii din sistem sunt persoane care deţin informaţii de detaliu şi au acces la elementele cheie în funcţionare, sunt motivaţi în general de interese sau nemulţumiri de ordin salarial/financiar. viii) O combinaţie a variantelor de mai sus este cel mai periculos tip de adversar; în practică este posibilă orice combinaţie şi aceasta are cele mai mari şanse de succes într-un atac. 1.5 OBIECTIVE DE SECURITATE (ȚINTE ALE ADVERSARULUI) În ceea ce priveşte obiectivele de securitate care trebuie asigurate în sistem acestea variază într-un diapazon destul de larg. În ceea ce priveşte criptografia în general, şi nu securitatea în ansamblu, putem distinge patru obiective majore de securitate care sunt recunoscute de orice autor în domeniu: confidenţialitate, integritate, autenticitate și non-repudiere. Confidenţialitatea înseamnă asigurarea faptului că informaţia rămâne accesibilă doar părţilor autorizate în acest sens. Acesta este cel mai vechi obiectiv al criptologiei. În rândul necunoscătorilor este încă larg răspândită opinia că noţiunea de criptografie este sinonimă cu cea de confidenţialitate. Sigur opinia 16 Funcţii Criptografice, Fundamente Matematice şi Computaţionale este eronată pentru că criptografia se ocupă şi de asigurarea obiectivelor ce sunt enumerate în continuare şi care nu au nici o legătură cu păstrarea secretă a informaţiei. În ceea ce priveşte asigurarea acestui obiectiv prin tehnici criptografice, el este îndeplinit cu ajutorul funcţiilor de criptare. În general datorită eficienţei se folosesc funcţii simetrice (cu cheie secretă), dar scenarii practice conduc în general la orchestrarea acestora cu funcţii asimetrice (cu cheie publică). Integritatea se referă la asigurarea faptului că informaţia nu a fost alterată pe parcursul transmisiei sau de către un posibil adversar. Funcţiile criptografice utilizate în acest scop sunt funcţiile hash care fac ca modificarea unui singur bit de informaţie să poată fi detectată. Menţionăm că în principiu este greşită utilizarea funcţiilor de criptare simetrice şi asimetrice în acest scop, instrumentul criptografic dedicat fiind funcţiile hash (şi codurile MAC sau semnăturile digitale în contextul mai larg al autentificării). Desigur, există și funcţii simetrice şi asimetrice de criptare care pot asigura şi integritatea dar alegerea lor pentru acest scop trebuie făcută cu precauţie. Autentificarea are două coordonate distincte: autentificarea entităţilor şi autentificarea informaţiei. Autentificarea entităţilor se referă la existenţa unei garanţii cu privire la identitatea unei anume entităţi. Autentificarea informaţiei se referă la determinarea sursei de provenienţă a informaţiei – în mod implicit aceasta garantează şi integritatea informaţiei deoarece dacă informaţia nu mai are integritate, deci un potenţial adversar a alterat-o, atunci nici sursa ei de provenienţă nu mai este aceeaşi. Însă doar integritatea informaţiei nu implică şi autenticitatea ei deoarece nu garantează identitatea sursei de proveniență. Autentificarea se realizează în general prin protocoale care pot avea la bază întreg arsenalul de funcţii criptografice: funcţii hash, MAC, criptări simetrice şi asimetrice, semnături digitale. Autentificarea include de cele mai multe ori și un factor temporal care implică o garanţie cu privire la momentul de timp la care entitatea de care este legată a depozitat-o (deoarece în absența unei garanții temporale, informaţia putea fi replicată şi depusă de orice altă entitate pierzându- se astfel o valență a autentificării). Non-repudierea (sau nerepudierea) previne o entitate în a nega o acţiune întreprinsă (acţiune materializată desigur în transmisia unei informaţii). Aceasta înseamnă că dacă la un moment dat o entitate neagă ca ar fi emis o anume informaţie, entitatea care a primit informaţia respectivă poate demonstra unei părţi neutre că informaţia provine într-adevăr de la entitatea în cauză. Non- repudierea se realizează prin utilizarea semnăturilor digitale. Este util de spus, în special din considerente istorice în domeniu, că acum mai bine de 20 de ani în securitatea informaţiei trei obiective au fost considerate 1. Introducere 17 ca fiind fundamentale, acestea formează aşa numita triadă CIA: confidenţialitate, integritate, disponibilitate („CIA” adică Confidentiality, Integrity, Availability). Recent însă, în 2002, Donn Parker a propus extinderea acestora la şase obiective care poartă numele de Hexada Parkeriană: Confidenţialitate, Posesie sau Control, Integritate, Autenticitate, Disponibilitate, Utilitate (Confidentiality, Possession or Control, Integrity, Authenticity, Availability, and Utility). De asemenea, la fel de bine cunoscută şi vehiculată este tetrada PAIN care provine de la Confidenţialitate, Disponibilitate-Autenticitate, Integritate, Non-repudiere (Privacy, Availlability-Authentication, Integrity, Non-repudiation). Desigur că aceste obiective nu sunt Triada CIA o sinteză completă a Hexada Parkeriana Tetrada PAIN obiectivelor de securitate existente în Secolul XX Secolul XXI practică. Există desigur şi alte obiective, ceva FIGURA 1.4. EVOLUŢIA OBIECTIVELOR DE SECURITATE mai particulare dar la fel de relevante, care trebuie să le amintim. Rămâne o problemă deschisă dacă obiectivele următoare pot sau nu să fie derivate din cele amintite anterior, util pentru această lucrare este să le enumerăm şi să le explicăm succint în cele ce urmează. Actualitatea informaţiei se referă la asigurarea faptului că informaţia primită este actuală (proaspătă). Acest aspect poate fi interpretat în două moduri: pe de o parte se referă la faptul că informaţia poate expira după o anumită perioadă de timp, pe de altă parte se referă la faptul că un posibil adversar ar putea schimba ordinea în care pachetele cu informaţie ajung la destinaţie (diverse scenarii pot fi imaginate). Se realizează în general prin utilizarea parametrilor varianţi în timp: amprente temporale (time stamps), numere aleatoare (nonce), contoare (counter), etc. Anonimitatea se referă la împiedicarea identificării identităţii unei entităţi care a solicitat un serviciu. Spre exemplu, poate fi extrem de util în tranzacţii bancare când nu se doreşte identificare persoanei care sau către care se face o plată, sau în servicii de e-mail pentru păstrarea anonimităţii expeditorului, etc. Se realizează fie prin protocoale, fie prin funcţii criptografice adaptate acestui scop. De exemplu există un puternic segment de cercetare în zona funcţiilor de criptare cu renegare (deniable encryption), prin care se poate cripta informaţie al cărei conţinut poate fi schimbat la decriptare, făcând astfel renegabilă orice informaţie criptată (nu există pentru aceasta soluţii eficiente până în prezent). 18 Funcţii Criptografice, Fundamente Matematice şi Computaţionale Autorizarea se referă la controlul accesului şi la prevenirea intrării agenţilor neautorizaţi în sistem. Relaţia între obiectivul autentificării entităţilor şi controlul accesului constă în aceea că cel din urmă obiectiv se construieşte în general pe primul (e normal să fie necesară o metodă de a autentifica entitatea înainte de a-i permite accesul) dar obiectivele sunt totuşi distincte. Aceasta deoarece autorizarea înseamnă utilizarea unui mecanism de autentificare şi a unei politici de securitate pentru a decide dreptul de acces al unor entităţi asupra unor resurse. Disponibilitatea se referă la asigurarea faptului că un serviciu este accesibil atunci când un utilizator legitim îl solicită. Asigurarea acestui obiectiv presupune că o entitate neautorizată nu poate bloca accesul unei entităţi autorizate la serviciile sistemului. În acest caz însă nu intră în discuţie problemele legate de autorizarea accesului, anterior amintite, ci cele de disponibilitate a resursei în sine. Aceasta presupune a evita problemele de epuizare a resurselor sistemului din cauza utilizării nelegitime a acestora. Atacurile asupra acestui obiectiv sunt cele de tip Denial of Services (DoS) şi cauzează atât pagube economice dar şi de siguranţă în funcţionare. Protecţia părţilor terţe se referă la evitarea transmiterii pericolului asupra părţilor cu care există o legătură. De exemplu atacul asupra unei anume componente IT nu va defecta şi altă componentă, sau din punct de vedere economic: căderea unei componente datorită unei erori de manipulare nu va duce la discreditarea producătorului, etc. Revocarea se referă la posibilitatea de a revoca un drept oferit. Poate cel mai relevant exemplu în legătură cu criptografia este posibilitatea de a revoca un certificat de cheie publică de către entitatea care l-a emis. Trasabilitatea sau urmărirea unui sistem se referă la posibilitatea de a reconstrui istoricul funcţionării sistemului pe baza înregistrărilor, de exemplu înregistrarea comenzilor relevante, a persoanelor care le-au lansat etc. Obiectivul este relevant în determinarea cauzelor eventualelor problemelor de funcţionare, deci este utilizat în diagnosticare. Nici această listă de obiective nu este completă, aproape fiecare carte în domeniu prezintă liste mai mult sau mai puţin complete, iar prezentarea lor exhaustivă poate fi în sine subiectul unei cărţi. Totuşi aceste obiective pot crea o imagine parţială asupra a ceea ce trebuie protejat în sisteme informatice şi asupra modului în care criptografia contribuie la aceasta. 1. Introducere 19 1.6 VULNERABILITĂȚI (CE EXPLOATEAZĂ ADVERSARUL) Vulnerabilitatea este un punct slab al unui sistem care poate fi exploatat de un potenţial adversar. Vis-a-vis de vulnerabilități, trebuie reținută regula comun enunțată în cărțile de securitate că un sistem nu este mai sigur decât cea mai vulnerabilă componentă a sa. Vulnerabilităţile unui sistem informatic pot fi clasificate conform în: vulnerabilităţi de proiectare (de exemplu proiectarea greşită a unui protocol de comunicare), vulnerabilităţi de implementare (de exemplu overflow), vulnerabilităţi fundamentale (de exemplu alegerea unor parole slabe). În sunt evidenţiate câteva vulnerabilităţi ce duc frecvent la căderea protocoalelor de securitate: vulnerabilitatea unei primitive criptografice ce poate fi amplificată de protocolul de securitate (este important de subliniat că multe funcţii criptografice au vulnerabilităţi ascunse, iar pe de altă parte chiar şi folosirea celei mai solide funcţii criptografice în mod necorespunzător poate duce la pierderea totală a securităţii), asumarea unor garanţii de securitate care sunt supra-specificate sau prost înţelese (poate cea mai comună astfel de eroare este utilizarea unei funcţii de criptare şi prezumţia faptului că aceasta va asigura şi faptul că datele nu vor fi alterate), neatenţia în aplicarea unor principii generale aplicabile unei clase mai largi de primitive (de exemplu criptarea folosind un mecanism cu cheie publică a unei informaţii de entropie scăzută care poate fi uşor aflată cu un atac de tip forward-search). Dacă luăm ca studiu de caz sistemele industriale, sunt relevant exemplele din lucrarea unde între deficienţele de securitate în sisteme SCADA se enumeră următoarele: lipsa definiţiilor formale, lipsa unui buget de securitate incremental, absenţa expertizei necesare în domeniul securităţii, incapacitatea de a instala uşor tehnologia necesară, necesitatea educaţiei cu privire la bunele practici în vederea asigurării securităţii. Sigur toate aceste deficienţe nu sunt uşor de acoperit şi există şi recomandări concrete în vederea asigurării securităţii. De exemplu lucrarea indică 21 de paşi pentru a asigura securitatea sistemelor SCADA, între aceştia mulţi au la bază utilizarea unor tehnici criptografice: de exemplu pasul 5 se referă la eliminarea protocoalelor personalizate (custom) a căror securitate se bazează pe obscuritatea protocolului (singura soluţie care nu se bazează pe obscuritatea protocolului este criptografia) iar pasul 21 se referă la introducerea unor politici de securitate şi cursuri pentru ca personalul să fie conştient de protejarea informaţiei senzitive (inclusiv parolele care sunt un ingredient criptografic). Nu în ultimul rând există şi produse program destinate asigurării securităţii în sisteme SCADA precum IntruShield de la McAfee. În topul primelor 10 deficienţe de securitate ale reţelelor SCADA lucrarea (McAfee, 2007) enumeră: politici de securitate inadecvate, sisteme slabe de control ale reţelelor, 20 Funcţii Criptografice, Fundamente Matematice şi Computaţionale proasta configurare a sistemelor, comunicare wireless neadecvată, autentificare neadecvată la comunicare, lipsa mecanismelor de detecţie şi restricţionare a drepturilor de acces la sisteme de control, absenţa uneltelor pentru detecţia şi raportarea activităţilor anormale, utilizarea reţelei pentru trafic neautorizat, lipsa mecanismelor de detecţie a erorilor ce pot conduce la epuizarea bufferelor, lipsa mecanismelor de control a schimbului de software. Multe dintre aceste ameninţări au ca soluţie utilizarea criptografiei, de exemplu ameninţările legate de autenticitatea comenzilor şi de controlul accesului. Iar potenţialele atacuri încep să se diversifice de la o aplicaţie la alta conducând spre o paletă relativ largă de obiective de securitate ce trebuie asigurate. 1.7 ATACURI ASUPRA CANALULUI DE COMUNICARE (CAPABILITĂȚI ALE ADVERSARULUI) Un atac este o agresiune asupra unui obiectiv de securitate. Există o gamă foarte largă de atacuri şi diverse clasificări ale acestora în funcţie de diverse criterii. De exemplu în acestea sunt clasificate în: atacuri nedirecţionate ce constau în infiltrări în sistem în scopul exploatării oricărei vulnerabilităţi găsite şi atacuri direcţionate ce au un scop precis care constă în exploatarea unei anumite părţi a sistemului (de exemplu extragerea unei anumite informaţii, furtul unei parole etc.). O clasificare ceva mai clasică a atacurilor, preferată de majoritatea cărţilor de securitate cum ar fi este în: atacuri pasive și atacuri active. Atacurile pasive sunt citirea mesajelor şi analiza de trafic. Diferenţa între cele două atacuri este că la analiza de trafic nu este necesară citirea efectivă a mesajelor transmise ci doar observarea unor modele în comunicare, de exemplu ce natură are informația trimisă, e vorba de un download pentru un film, o convorbire telefonica prin Internet, etc. Este important de remarcat că aceste atacuri sunt violări ale obiectivului numit confidenţialitate. Atacurile active sunt cele de: modificarea informaţiei vehiculate între două entităţi care presupune alterarea detectabilă sau nu a informaţiei, impostura (impersonarea sau mascaradarea) care înseamnă a pretinde o altă identitate decât cea reală, retransmisie care înseamnă a transmite o informaţie care a fost transmisă anterior de un participant şi întreruperea legăturii care înseamnă efectiv tăierea canalului de comunicare (adică Denial Of Services - DoS). Este important de remarcat, din punct de vedere al obiectivelor de securitate, că primele trei atacuri sunt o agresiune a obiectivului de autenticitate iar ultimul o agresiune a disponibilităţii. 1. Introducere 21 Toate aceste atacuri se mai numesc şi atacuri asupra canalului de comunicare şi pentru combaterea lor se folosesc cu succes în practică tehnici criptografice. Figura 1.5 şi Figura 1.6 prezintă aceste atacuri. ASDF ASDF ASDF ASDF ASDF ASDF ASDF CANAL PUBLIC (NESIGUR) ASDF ASDF Adv CANAL PUBLIC (NESIGUR) A B INTERCEPTAREA CONVERSATIILOR *-+# *-+# *-+# ASDF ASDF ASDF ASDF CANAL PUBLIC (NESIGUR) ASDF ASDF Adv CANAL PUBLIC (NESIGUR) A B ANALIZA DE TRAFIC FIGURA 1.5. ATACURI PASIVE ASUPRA CANALULUI DE COMUNICARE Desigur, există şi alte atacuri asupra securităţii unui sistem pentru a căror contracarare nu se folosesc în general tehnici criptografice, ele fiind contracarate prin alte mijloace. Exemple de cauze ale unor astfel de atacuri sunt: i) viruşi informatici care duc în general la distrugerea software-ului prin infiltrare în fişiere existente şi fac imposibilă funcţionarea sistemului prin execuţia unor acţiuni dăunătoare, ii) programe tip „Cal Troian” sunt programe folosite în scopul obţinerii accesului la anumite informaţii, de exemplu aflarea parolelor în sisteme de operare perimate gen Win98, iii) programe tip „Vierme” care sunt programe care se propagă automat fără controlul unui utilizator şi în general afectează rata de transfer a reţelei (spre deosebire de viruşi nu se infiltrează în fişiere existente). 22 Funcţii Criptografice, Fundamente Matematice şi Computaţionale ASDF ASDF ASDF ASDF ASDF ASDF QWER CANAL PUBLIC (NESIGUR) QWER QWER Adv CANAL PUBLIC (NESIGUR) A B MODIFICAREA ASDF ASDF ASDF ASDF ASDF ASDF Adv CANAL PUBLIC (NESIGUR) A B IMPOSTURA ASDF ASDF ASDF ASDF ASDF ASDF ASDF ASDF ASDF ASDF ASDF ASDF ASDF CANAL PUBLIC (NESIGUR) ASDF Adv ASDF CANAL PUBLIC (NESIGUR) A B RETRANSMISIA ASDF ASDF ASDF ASDF ASDF ASDF CANAL PUBLIC (NESIGUR) Adv ? B CANAL PUBLIC (NESIGUR) A BLOCAREA CANALULUI DE COMUNICARE FIGURA 1.6. ATACURI ACTIVE ASUPRA CANALULUI DE COMUNICARE 1. Introducere 23 Trebuie însă menţionat că şi împotriva acestor atacuri, aparent imune la măsuri criptografice, încep să fie utilizate tehnici criptografice. Un bun exemplu de soluţie de ultimă oră în care funcţii criptografice sunt utilizate împotriva viruşilor este utilizarea funcţiilor criptografice hash pentru a construi o amprentă a sistemului de operare (sau individual pentru fiecare fişier) şi verificare la bootarea de pe un dispozitiv extern dacă imaginea curentă a sistemului coincide cu imaginea stocată în scopul detectării unor potenţiale modificări făcute de viruşi. 1.8 CRIPTOGRAFIA ŞI ROLUL EI Concluzia imediată a paragrafului anterior este aceea că riscurile de securitate există ca şi consecinţă a unor vulnerabilităţi în sistem şi a unor potenţiali adversari – acesta fiind un aspect natural şi inevitabil în practică. Riscurile de securitate, ca orice alte riscuri de altfel, trebuie acoperite cu garanţii de securitate. Atunci când obiectul manipulat este informaţia singura, criptografia este una din puținele garanţii demonstrabile. Deci rolul acesteia este de a oferi garanţii în faţa riscurilor de securitate ale informației. Criptografia este comun utilizată într-o gamă largă de aplicaţii din zona: instituţiilor medicale, publice, private, bancare şi chiar în cele mai comune aplicaţii pe care le folosim zi de zi: telefonie mobilă, servicii de e-mail, editoare de documente, etc. Conform lucrării de referinţă în domeniu criptografia este definită ca fiind studiul tehnicilor matematice referitoare la aspecte de securitatea informaţiei precum confidenţialitate, integritate, autentificarea entităţilor, autentificarea provenienţei datelor. Totuşi o astfel de definiţie nu este completă. Pe de o parte deoarece criptografia nu este în totalitate matematică (chiar dacă marea ei parte este), de exemplu criptarea cuantică face mai mult apel la cunoştinţe de fizică decât de matematică sau implementarea criptografiei ţine mai mult de ştiinţa calculatoarelor decât de matematică. Pe de altă parte pentru că nu ţine cont de fondul problemei. Ron Rivest a făcut o remarcă pe cât de simplă pe atât de profundă în ceea ce priveşte criptografia şi această remarcă poate fi considerată o excelentă definiţie a criptografiei: criptografia înseamnă comunicare în prezenţa adversarilor. Orice comentariu la adresa remarcii lui Rivest este superfluu. Din păcate definiţia din dicţionarul explicativ al limbii române, DEX ediţia a II-a 1998, nu poate fi utilizată pentru clarificare deoarece este complet depăşită, 24 Funcţii Criptografice, Fundamente Matematice şi Computaţionale criptografia fiind definită ca: scriere secretă cu ajutorul unui cod de semne convenţionale. Această descriere corespunzând stadiului domeniului de acum câteva secole. Domeniul criptografiei se ocupă de construcţia funcţiilor criptografice. Diverse funcţii criptografice vor fi descrise în capitolele următoare, iar pe moment putem să ne formăm o imagine intuitivă asupra unei funcţii criptografice ca fiind o funcţie care depinde de un parametru numit cheie şi se aplică unui mesaj („plaintext”) pentru a obţine un mesaj criptat numit criptotext („ciphertext”)– aceasta este ceea ce în principiu numim funcţie de criptare. Totodată obiectivul criptografiei este şi cel de a construi inversa acestei funcţii cu ajutorul căreia din criptotext alături de cheie se poate recupera mesajul original – aceasta fiind ceea ce numim funcţie de decriptare. Toate acestea sunt sugerate în Figura 1.7. Subliniem că această imagine este doar intuitivă deoarece nu toate funcţiile criptografice au cheie, şi mai mult, nu toate funcţiile criptografice admit o inversă. Domeniul care are ca obiectiv recuperarea din criptotext a mesajului şi a cheii se numeşte criptanaliză şi este ceea ce în limbaj comun numim spargerea funcţiilor criptografice care din punct de vedere intuitiv poate fi văzută ca inversarea acestora. Subliniem însă că în general a sparge o funcţie criptografică presupune acţiuni mult mai simple decât inversarea ei, imaginea creată având din nou doar valoare intuitivă. Criptografia şi criptanaliza sunt cele două ramuri ale domeniului numit criptologie. k h@6k... */A, ‘@4h asdf ALGORITM DE CRIPTARE c 0gQ1 i7R1 m asdf asdf asdf... m asdf ALGORITM DE DECRIPTARE asdf asdf... asdf... k h@6k... FIGURA 1.7. IMAGINE INTUITIVĂ CU PRIVIRE LA CE ÎNSEAMNĂ CRIPTAREA ŞI DECRIPTAREA – OBIECTIVE CONSTRUCTIVE ALE CRIPTOGRAFIEI. Evoluţia criptografiei, şi mai mult sau mai puţin a oricărui alt domeniu, poate fi văzută ca urmând următorul drum: Teorie, Practică, Standarde. Fără a 1. Introducere 25 reduce rolul aplicaţiilor practice şi a standardelor care ne fac viaţa mai uşoară este de remarcat că standardele acoperă doar probleme care sunt implementate practic, implementările practice urmează doar probleme fundamentate teoretic în prealabil iar teoria reprezintă baza cea mai solidă şi consistentă a domeniului. Mai mult, soluţiile de vârf ale domeniului se găsesc în teorie şi doar rar în implementările practice, care tratează în general aspecte demult cunoscute (de exemplu curbele eliptice sunt utilizate în practică doar în ultimii ani, în ciuda faptului că au fost propuse de Miller şi Kobliz încă din 1985). 1.9 GARANȚIA OFERITĂ DE CRIPTOGRAFIE: NIVELUL DE SECURITATE Între întrebările din primul subcapitol enunțam și o întrebare cu privire la nivelul de securitate (uneori numit nivel de încredere). Nivelul de securitate cuantifică efortul computațional necesar spargerii unei funcții criptografice. Aşa cum remarcă şi autorii din nivelul de securitate al unei primitive criptografice este o funcţie care scade odată cu timpul, aceasta datorându-se atât creşterii nivelului tehnologic cât şi descoperiri unor noi atacuri asupra funcției. De exemplu dacă o informaţie criptată folosind algoritmul DES (standard în criptarea simetrică începând din 1976) putea oferi un nivel ridicat de încredere în urmă cu 30 de ani, astăzi o astfel de informaţie poate fi uşor recuperată prin spargerea codului în doar câteva zile pe o mașină de calcul actuală. Cerințele curente sunt în general definite prin intermediul standardelor. În particular, pentru cazul tehnicilor criptografice, care sunt frecvent folosite pentru asigurarea obiectivelor de securitate anterior amintite, există standarde pentru marea parte a funcţiilor criptografice şi a dimensiunii cheilor pentru acestea. De exemplu Guvernul USA prin documentaţiile Federal Information Processing Standards (FIPS) impune standarde pentru funcţii hash, criptare simetrică, semnătură digitală; totuşi aceste standarde nu acoperă nici pe departe toate mecanismele. În Tabelul 1.1 sunt prezentate dimensiunile de chei recomandate pentru câţiva algoritmi frecvent utilizaţi în practică. În Tabelul 1.2 sunt prezentate recompensele oferite de RSA-Security pentru spargerea unor chei de RSA. Prin comparaţie între cele două tabele se poate observa că o cheie de RSA de 1024 biţi este recomandată de primul tabel pentru folosire până în 2010, în timp ce RSA-Security oferă o recompensă de 100.000 dolari pentru spargerea unei astfel de chei (în realitate costurile de spargere ale unei astfel de chei fiind de sute sau mii de ori mai mari). Pentru a forma o imagine mai clară asupra dimensiunii acestor numere, iată valoarea numărului RSA-640: 26 Funcţii Criptografice, Fundamente Matematice şi Computaţionale n=3107418240490043721350750035888567930037346022842727545 720161948823206440518081504556346829671723286782437916272838033 415471073108501919548529007337724822783525742386454014691736602 477652346609. Cei doi factori primi ai săi sunt: p=1634733645809253848443133883865090859841783670033092312 181110852389333100104508151212118167511579, q=1900871281664822113126851573935413975471896789968515493 666638539088027103802104498957191261465571. Nivelul de securitate al funcţiilor criptografice este frecvent clasificat după următoarele categorii: securitate necondiţionată, securitate bazată pe complexitate, securitate demonstrată. Această clasificare nu se referă la o cuantificare numerică a nivelului de securitate ci la garanţia pe care acesta se bazează. Încercăm să explicăm aceste trei noţiuni. Securitate necondiţionată au acele criptosisteme care nu pot fi sparte, indiferent de puterea de calcul de care dispune adversarul (one-time pad este un astfel de sistem). Discutăm de securitate bazată pe complexitate atunci când nivelul de securitate este dat de complexitatea (timpul de calcul ilustrat în număr de paşi) al unui algoritm care poate rezolva problema şi acest algoritm este cea mai bună cale de a rezolva problema. Noţiunea de securitate demonstrabilă (provable security) se foloseşte cu privire la acele criptosisteme despre care se poate demonstra că spargerea lor conduce la rezolvarea altei probleme care se ştie că este greu de rezolvat. Curbe Securitate AES RSA eliptice Durata de la nivel de (dimensiunea (dimensiunea (valoarea utilizare biţi cheii) modulului) ordinului recomandată bazei) 80 x 1024 160-223 Până în 2010 112 x 2048 224-255 Până în 2030 128 128 3072 256-383 După 2030 192 192 7680 384-511 x 256 256 15360 512+ x TABELUL 1.1. NIVELE COMPARATIVE DE SECURITATE (CONFORM CU ). 1. Introducere 27 De asemenea, în ceea ce priveşte nivelul de securitate se face uneori o diferenţiere între două nivele de securitate distincte numite: securitate slabă – este securitatea care răspunde unor garanţii în faţa vulnerabilităţilor ce pot fi exploatate de adversari neinteligenţi (cum ar fi erori introduse de mediu care pot fi corectate prin mecanisme redundante precum codurile de corecţie a erorilor CRC) şi securitate puternică care răspunde unor garanţii în faţa unor vulnerabilităţi ce pot fi exploatate de adversari inteligenţi (precum omul, sau agenţii software inteligenţi). Securitatea puternică este în mare măsură asigurată de tehnicile criptografice, dar nu exclusiv, de exemplu viruşii informatici pot fi consideraţi agenţi inteligenţi care exploatează sisteme dar criptologia nu oferă încă soluţii prea bune în acest sens. RSA-576 RSA-640 RSA-704 RSA-768 10.000$ 20.000$ (factorizat în (factorizat în 30.000$ 50.000$ decembrie 2003) noiembrie 2005) RSA-896 RSA-1024 RSA-1536 RSA-2048 75.000$ 100.000$ 150.000$ 200.000$ TABELUL 1.2. RECOMPENSE (EXPIRATE) PENTRU SPARGEREA UNOR CHEI RSA. 1.10 SCURT ISTORIC AL CRIPTOGRAFIEI În opinia autorului (deși poate nu numai deoarece opinii apropiate transpar și din alte lucrări), în context istoric evoluția criptografiei poate fi sistematizată în cadrul a patru etape: i) perioada antichității, ii) perioada medievală, iii) perioada premergătoare primului război mondial până după cel de- al doilea război mondial și iv) perioada criptografiei moderne cu începere după cel de-al doilea război mondial (poate mai exact în jurul anilor 70). Există o separare clară de mentalitate între cele 4 perioade așa cum vom încerca pe scurt să creionăm în cele ce urmează. Prima dintre ele, antichitatea, este caracterizată de sisteme criptografice lipsite de fundamente matematice dar și de dorința vreunui automatism (adică o procedură de a crea un model automat, de exemplu mecanic al criptării). Din 28 Funcţii Criptografice, Fundamente Matematice şi Computaţionale această perioadă datează codul Cezar (o simplă permutare a literelor) și cilindrul grecesc skytale pe care era înfășurată o bandă de hârtie pe care se scria textul (decriptarea necesita desigur înfășurare pe un cilindru similar ca diametru). Într- adevăr aceste tehnici sunt în mică măsura legate de criptografia modernă. Cea de a doua perioadă, cea medievală, este distinctă prin utilizarea tehnicilor de substituție polialfabetică. În acestea o literă este substituită cu orice altă literă fără repetiție evidentă, nu doar de una ca în cazul substituților simple, de exemplu permutarea din cadrul codului Cezar. Primul criptosistem polialfabetic a fost descoperit de Leon Battista Alberti (1404–1472) și se numește codul lui Alberti, aceasta este considerată prima mare descoperire în criptografie de după vremea lui Cezar. Cel mai elocvent exemplu este sistemul Vigenѐre după numele lui Blaise de Vigenѐre (1523–1596) deși el a fost descris prima dată de criptograful italian Giovan Battista Bellaso (1505-?) în 1553 în timp ce Vigenѐre îl publica în 1586. Tot Bellaso este autorul tabelei de criptare cunoscută sub numele de tabela Porta publicată de Giambattista della Porta (1535? –1615) în 1563 fără a da credit lui Bellaso. În aceeași perioadă desfășoară activități în criptografie și Gerolamo (Geronimo) Cardano (1501–1576) al cărui nume este cunoscut în matematică pentru formulele de rezolvare a ecuațiilor pătratice, cubice și cuartice; acesta introduce un sistem de criptare numit grila lui Cardano în 1550. Mai multe detalii despre istoria criptografiei pot fi găsite în cartea lui Kahn. Cea de a treia perioadă, cea a războaielor mondiale și perioada premergătoare, este remarcabilă prin apariția unor principii, precum legile lui Auguste Kerckhoffs (1835 – 1903) care sunt actuale chiar și azi și mai mult de atât a unor criptosisteme precum codul lui Gilbert Sandford Vernam (1890 – 1960) care până în ziua de azi rămâne singurul cod cu securitate necondiționată (cunoscut sub numele de codul Vernam, şi în varianta uşor modificată ca one- time-pad). Primele deziderate în construcţia unui algoritm criptografic au fost enunţate de către Kerckhoffs în secolul XIX. Pe lângă importanţa istorică, acestea au relevanţă chiar şi în zilele de astăzi, iar în acest context considerăm utilă amintirea lor: i) Sistemul trebuie să fie, dacă nu teoretic imposibil de spart, atunci imposibil de spart în practică. ii) Compromiterea detaliilor cu privire la sistemul criptografic nu trebuie să creeze probleme corespondenţilor. iii) Cheia trebuie să fie uşor de memorat fără a fi notată şi să fie uşor de schimbat. 1. Introducere 29 iv) Cifrul (mesajul criptat) trebuie să fie uşor de transmis prin telegraf. v) Aparatul de criptare trebuie să fie uşor de purtat şi operabil de către o singură persoană. vi) Sistemul trebuie să fie simplu, fără să necesite cunoaşterea unei liste lungi de reguli sau stres intelectual. (i) (ii) FIGURA 1.8. COMUNICAȚII WIRELESS (I) IERI (ÎN TIMPUL CELUI DE AL DOILEA RĂZBOI MONDIAL) ȘI AZI (II) (COPYRIGHT: POZELE DE LA I) AU FOST ALESE DIN DOMENIUL PUBLIC) În perioada premergătoare celui de-al doilea război mondial apare și mașina Enigma, un criptosistem despre care se poate spune că a jucat un rol decisiv în unul din cele mai importante evenimente din istoria omenirii: cel de-al doilea război mondial. Această perioadă include contribuțiile fundamentale ale lui Alan Mathison Turing (1912 –1954) constructor al mașinii care a spart Enigma (a 30 Funcţii Criptografice, Fundamente Matematice şi Computaţionale nu se confunda cu mașina Turing, o descoperire fundamentală a acestuia care reprezintă poate prima abstractizare a unei mașini de calcul moderne). Alan Turing rămâne recunoscut ca părinte al științei calculatoarelor și inteligenței artificiale. (i) (ii) FIGURA 1.9. MAȘINI CRIPTOGRAFICE: (I) IERI (MAȘINA ENIGMA) ȘI (II) AZI (SMART- CARD) În unele prezentări istorice se face o separare între perioada premergătoare războiului (perioada lui Kerckhoffs și Vernam) și perioada celui de-al doilea război mondial. Aici am decis să le grupăm deoarece descoperirile din ambele par să joace la unison în dezvoltarea criptografiei moderne. Într-adevăr însă există și rațiuni pentru a le separa, deoarece în mod cert descoperirile din perioada celui de-al doilea război mondial au avut un impact semnificativ asupra evoluției omenirii şi nu doar a criptografiei. Nu este de mirare că cel de-al doilea 1. Introducere 31 război mondial a dus la dezvoltarea criptografiei, deoarece rolul de bază în soarta războiului a fost jucat de submarine și avioane, două arme care depind de comunicare wireless, comunicare ușor de făcut (fără să necesite o infrastructură pentru mediul de transmisie, nu există cablu, ci doar aer) dar care este expusă adversarilor (oricine aude ce se vorbește). În Figura 1.8 sugerăm evoluţia comunicaţilor wireless din mediul militar către cel al societăţii de consum. Mediul wireless este unul dintre principalele motoare de dezvoltare a securităţii, evident datorită fragilităţii mediului în faţa adversarilor. Criptografia modernă începe în opinia multora cu Claude Elwood Shannon (1916 –2001) părinte al domeniului teoriei informației și care marchează intrarea criptografiei în era criptografiei matematice. Poate un alt început al criptografiei moderne ar putea fi văzut în codul lui Horst Feistel și nașterea criptografiei cu cheie publică datorată lui Diffie-Hellman-Merkle. Desigur însă vorbim de un continuum, așa că nu este ușor a trage o linie exactă acolo unde începe criptografia modernă și poate nici nu este așa de relevant. Relevant este că odată cu descoperirea criptografiei cu cheie publică, criptografia trece dintr-un domeniu preponderent militar, într-un domeniu academic, al universităților și grupurilor de cercetare. 1.11 ISTORIA CRIPTOGRAFIEI CU CHEIE PUBLICĂ ÎN PARTICULAR Cu certitudine istoria criptografiei cu cheie publică își merită propriul ei capitol. Aceasta deoarece, am spus şi subliniem, începutul ei marchează trecerea criptografiei din domeniul preponderent militar din care făcea parte anterior în domeniul public, academic. Criptografia cu cheie publică s-a născut ca domeniu din necesitatea de a rezolva două probleme fundamentale în securitate: i) transmisia de informaţie pe un canal nesigur între doi participanţi care nu au un secret partajat prealabil și ii) semnarea digitală a informaţiei în scopul asigurării non-repudierii acesteia. Este foarte simplu de înţeles de ce criptarea cu cheie secretă, numită şi criptare simetrică, nu poate fi folosită pentru atingerea acestor deziderate. Aşa cum a fost sugerat în Figura 1.7 cu privire la criptarea cu cheie secretă se poate observa că aceeaşi cheie, numită cheie secretă, este folosită pentru criptare şi decriptare. Astfel pentru ca doi participanţi să poată comunica în condiţii de securitate este strict necesar ca ei să fii schimbat în prealabil o cheie – lucru care impune existenţa anterioară a unui canal sigur de comunicare. Dar în practică de cele mai multe ori interacţiunile sunt spontane şi avem de a face cu participanţi 32 Funcţii Criptografice, Fundamente Matematice şi Computaţionale care nu au beneficiat în prealabil de un canal sigur de comunicare fiind astfel imposibilă existenţa unui secret partajat prealabil. Criptarea cu cheie publică, sau criptarea asimetrică, poate rezolva acest neajuns. Aceasta deoarece într-un sistem de criptare cu cheie publică criptarea şi decriptarea se fac cu chei distincte, şi astfel cheia de criptare, numită şi cheie publică, poate fi trimisă pe un canal nesigur deoarece intercepţia ei nu poate duce la decriptarea unui mesaj criptat cu aceasta. În acelaşi timp doar posesorul legitim al cheii de decriptare, numită şi cheie privată, este cel care poate recupera din criptotext mesajul original. În Figura 1.10 este sugerat mecanismul de criptare şi decriptare cu cheie asimetrică. pk  pub!1c... */A, ‘@4h asdf ALGORITM DE CRIPTARE c 0gQ1 i7R1 m asdf asdf asdf... m asdf asdf ALGORITM DE DECRIPTARE asdf... asdf... sk  pr1v@t3... FIGURA 1.10.CRIPTAREA CU CHEIE PUBLICĂ (CRIPTAREA ASIMETRICĂ). Conceptul de criptosistem cu cheie publică şi utilitatea lui în atingerea acestor obiective a fost publicat de Diffie şi Hellman în 1976. În fapt însă descoperirea conceptului de criptare cu cheie publică este descoperit de Ralph Merkle puţin înainte, dar aşa cum spune Hellman: „Diffie, Rivest, Shamir, Adleman şi eu am avut norocul de a primi rapid recenzii ale lucrărilor noastre, şi astfel au apărut înaintea contribuţiilor fundamentale ale lui Merkle” (în prefaţa de la cartea lui Yan ). Diffie şi Hellman însă eşuează în a propune o soluţie pentru semnătura digitală şi singura lor propunere este schimbul de cheie Diffie-Hellman care poate fi utilizat în scopul criptării asimetrice pentru rezolvarea criptării cu cheie publică. Doi ani mai târziu, în 1978, Rivest, Shamir şi Adleman descoperă criptosistemul denumit RSA, după numele autorilor, care poate fi utilizat pentru rezolvarea ambelor probleme: criptare asimetrică şi semnătură digitală. În 1979 Rabin publică un criptosistem similar cu RSA care diferă doar la valoarea 1. Introducere 33 exponentului utilizat şi care are securitatea echivalentă problemei factorizării întregilor (până în prezent o astfel de echivalenţă nu se poate demonstra în ceea ce priveşte RSA-ul). Doar în 1983 ElGamal descoperă că inclusiv logaritmii discreţi pe a căror dificultate se baza securitatea schimbului de cheie propus de Diffie şi Hellman pot fi utilizaţi pentru construcţia unei scheme de semnături digitale. În 1985 Miller şi Koblitz propun utilizarea curbelor eliptice în criptosistemele lui Diffie-Hellman şi ElGamal, practic problema logaritmului discret peste grupuri de întregi este transpusă în problema logaritmului discret peste curbe eliptice – principiul criptosistemelor rămânând însă acelaşi. În 2002, Hellman a propus ca schimbul de cheie descoperit în 1976 să fie numit Diffie- Hellman-Merkle (poate că inventatorul criptografiei cu cheie publică este totuşi Ralph Merkle). Acestea ar fi cele mai semnificative momente din istoria veche a criptografiei cu cheie publică. Relativ recent, în 1997, a fost făcută publică informaţia că serviciile secrete britanice erau în posesia sistemului RSA cu 5 ani înainte ca el să fie descoperit şi publicat de Rivest et al., în 1973, autorul fiind Clifford Cocks angajat al UK Intelligence Agency. Acelaşi lucru este valabil şi cu privire la schimbul de cheie Diffie-Hellman, descoperit în 1974 de serviciile secrete britanice şi anume de către Malcolm J. Williamson. Acestea sunt însă doar episoade din istoria ascunsă a criptografiei, istorie care este lipsită de o ţinută ştiinţifică şi care nu poate fi decât condamnată având în vedere faptul că în esenţă s-a opus unui progres natural. În prezent există o paletă largă de funcţii de criptare cu cheie publică, numită şi criptare asimetrică. Acestea pot fi împărţite în două mari categorii după cele două mari probleme pe care se bazează (această clasificare nu este exhaustivă deoarece există şi alte probleme pe care se pot construi criptosisteme cu cheie publică, doar că acestea nu prezintă eficienţa necesară în practică): i) criptosisteme cu cheie publică bazate pe dificultatea factorizării întregilor (au ca punct de plecare algoritmul RSA ) și ii) criptosisteme cu cheie publică bazate pe dificultatea logaritmului discret (au ca punct de plecare schimbul de cheie Diffie-Hellman şi semnătura digitală ElGamal precum şi extensiile acestora peste grupurile formate de curbe eliptice propuse de Koblitz şi Miller ). Mai există desigur şi alte momente marcante în evoluţia criptografiei cu cheie publică care trebuie amintite deoarece vom discuta construcţii legate de acestea în capitole următoare. Goldwasser şi Micali descriu ideea de securitate semantică în 1982, Dolev, Dwork şi Naor descriu conceptul de non-maleabilitate în 1991, Bellare şi Rogaway introduc modelul oracolelor aleatoare 1995, şi tehnica de padding OAEP pentru a produce criptosisteme rezistente în faţa unor 34 Funcţii Criptografice, Fundamente Matematice şi Computaţionale adversari activi. În 1998 Bellare, Desai, Pointcheval şi Rogaway trasează şi demonstrează primele relaţii între noţiunile de securitate pentru criptosisteme cu cheie publică, Shoup demonstrează în 2001 că OAEP nu are securitatea susţinută de Bellare şi Rogaway, Fujisaki, Okamoto, Pointcheval şi Stern arată că RSA-OAEP este sigur, Canneti, Goldreich şi Halevi arată că modelul ROM este nesigur în 1996 (în 2002 apare versiunea de jurnal a tezei) – rămânând deschisă problema găsirii unui model mai bun. Lista numelor relevante în criptografia cu cheie publică nu este nici pe departe completă şi rămâne desigur deschisă. În secţiunile următoare urmează ca aceste realizări să fie explicate, aici a fost un bun prilej de a le pune succint într-un cadru istoric. 1.12 O PRIVIRE DE ANSAMBLU ASUPRA FUNCŢIILOR CRIPTOGRAFICE Nu este deloc simplu a fixa o terminologie în acest domeniu străin oarecum de limba română. Vorbim de funcţii criptografice, de exemplu funcţii de criptare, funcţii de semnare digitală, sau alternativ în loc de funcţie folosim termenul de algoritm, deci algoritm criptografic, algoritm de criptare, etc. În general însă pentru a asigura operațiile necesare avem nevoie de perechi de funcţii (algoritmi), de exemplu avem nevoie de o funcţie de criptare dar şi de una de decriptare, mai mult chiar şi de o funcţie de generare a cheii. Din acest motiv vorbim de sisteme criptografice, prin acestea desemnând o colecţie de una sau mai multe funcţii. De exemplu un sistem criptografic cu cheie secretă este colecţie de trei funcţii: o funcţie de generare a cheii, o funcţie de criptare şi o funcţie de decriptare. În engleză însă, mai frecvent decât termenul de sistem se foloseşte termenul scheme, de exemplu vorbim de symmetric encryption scheme desemnând colecţia de trei algoritmi anterior menţionaţi. La fel există asymmetric encryption scheme şi digital signature scheme. Pentru uniformitate cu terminologia în engleză, vom folosi termenul de schemă criptografică şi în particular schemă de criptare simetrică, schemă de criptare asimetrică şi schemă de semnătură digitală pentru a desemna un sistem format din unul sau mai mulţi algoritmi care asigură funcţionalităţile necesare (criptare, decriptare, semnare, etc.). Se foloseşte de asemenea frecvent în criptografie noţiunea de funcţie one-way pentru a desemna o funcţie care este greu (imposibil în limite rezonabile de timp) de inversat din punct de vedere computaţional. Un caz particular îl joacă funcţiile one-way cu trapă, adică acele funcţii care devin eficient de inversat dacă se cunoaşte o informaţie suplimentară numită trapă. În esenţă toate schemele criptografice se bazează pe funcţii one-way, lucru uşor de dedus de altfel (de exemplu funcţiile one-way cu trapă stau la baza oricărei scheme de criptare). 1. Introducere 35 Definiţii mai riguroase pentru funcţiile one-way cu sau fără trapă se găsesc în anexa acestui volum. În general, o schemă criptografică şi echivalent un sistem criptografic, sau simplu criptosistem, este un ansamblu format din trei algoritmi: un algoritm de generare a cheilor (cheie de criptare şi cheie de decriptare), un algoritm de criptare şi un algoritm de decriptare alături de mulţimile din care provin intrările lor – acest lucru este sugerat în Figura 1.11. Noţiunea de criptosistem aşa cum a fost anterior definită nu este deloc rigidă ea putând de fapt să surprindă toate primitivele criptografice ce vor fi descrise în continuare, fiind un simplu exerciţiu de imaginaţie a gândi scenariile pentru care algoritmul de generare a cheii poate să lipsească sau algoritmii de criptare sau decriptare îndeplinesc alte roluri decât criptarea sau decriptarea efectivă a informaţiei, etc. Aşa cum am spus, se foloseşte frecvent, fără a pierde din semnificaţii, termenul de funcţie în locul celui de algoritm, de exemplu spunem funcţie de criptare sau funcţie de decriptare cu referire la algoritmii de criptare şi decriptare. Totodată este folosită şi noţiunea de primitivă criptografică, aceasta având un sens larg, desemnând orice bloc constructiv. Parametru (nivel) de securitate Valoare aleatoare Algoritm de generare a cheilor Cheie de criptare Cheie de decriptare Mesaj Criptotext 101 Algoritm de criptare 110 010 100 101 111 Algoritm de decriptare FIGURA 1.11. SISTEM CRIPTOGRAFIC. Există o paletă largă de funcţii şi sisteme criptografice în literatura de specialitate, acestea pot fi clasificate ca aparţinând la trei mari categorii: criptosisteme cu 36 Funcţii Criptografice, Fundamente Matematice şi Computaţionale cheie secretă (sau cheie simetrică), criptosisteme cu cheie publică (sau cheie asimetrică) şi criptosisteme fără cheie. Criptosistemele cu cheie simetrică utilizează aceeaşi cheie pentru criptare şi decriptare; avantajul lor este că necesită resurse de calcul reduse în timp ce dezavantajul este necesitatea unei chei secrete cunoscute de participanţii la comunicare (deci un secret partajat). Criptosistemele cu cheie asimetrică presupun utilizarea de chei diferite pentru criptare/decriptare; avantajul este posibilitatea de a efectua transmisii pe canale nesigure în absenţa unor secrete partajate iar dezavantajul este puterea de calcul relativ ridicată de care este nevoie. În principiu securitatea nu se poate construi decât în prezenţa funcţiilor din ambele categorii. Pe lângă criptosistemele cu cheie simetrică şi asimetrică mai există şi criptosistemele fără cheie. O taxonomie a criptosistemelor este sugerată în Figura 1.12. Functii si sisteme (scheme) criptografice Functii (algoritmi) Sisteme (scheme) cu Sisteme (scheme) cu fara cheie cheie simetrica cheie asimetrica Scheme de Scheme de criptare Coduri de criptare cu cheie Generatoare de Functii hash cu cheie simetrica Scheme de autentificare a asimetrica numere aleatoare criptografice (Criptarea cu cheie semnare digitala mesajelor (MAC) (Criptarea cu cheie secreta) publica) FIGURA 1.12. PRIVIRE DE ANSAMBLU ASUPRA SISTEMELOR CRIPTOGRAFICE. 1.13 DEZIDERATE ÎN SISTEMELE CRIPTOGRAFICE CONTEMPORANE Este necesară introducerea unei astfel de secțiuni, pe cât de scurtă pe atât de utilă. În cei mai bine de 8 ani de când desfășor activități în acest domeniu în cadrul Universității Politehnica din Timișoara, am remarcat o clară dezorientare a 1. Introducere 37 studenților (chiar masteranzi sau doctoranzi) în ceea ce privește dezideratele constructive ale sistemelor criptografice. Pe scurt spus, lumea crede că obiectivul este construcția unor sisteme imposibil de spart și atât. În realitate însă scopul este construcția unor sisteme imposibil de spart, dar totodată și eficiente computațional. Mai mult, eficiența computațională este un factor decisiv în alegerea unui sistem criptografic în practică. Fără o înţelegere adecvată a domeniului, mulţi entuziaşti nu sunt conştienţi că oricând am putea construi un sistem mai greu de spart (de exemplu criptarea multiplă) dar acesta nu ar ajuta cu nimic dacă nu ar fi și eficient. Codul Vernam, sau one-time-pad, este în continuare cel mai sigur criptosistem dar el nu este folosit pentru ca este ineficient (necesită chei de lungime egală cu mesajul). Deci pe scurt, în ceea ce privește funcțiile de criptare scopul ar fi construcția unor funcții cât mai rapide și cu chei cât mai mici. În prezent, în criptografie interesul este în a găsi sisteme noi, eficiente și proprietăți noi de securitate precum și demonstrații matematice că aceste proprietăți sunt atinse. 1.14 LITERATURĂ RELEVANTĂ ÎN DOMENIU Încerc să fac o trecere în revistă a literaturii care poate fi de interes pentru cititorul neiniţiat în acest domeniu. Cărţi clasice despre criptografie. Există trei cărţi de bază în criptografia clasică: Menezes et al. , Stinson şi Schneier. Denumim aceste cărţi clasice deoarece, cu toate că ele sunt actuale, nu oferă informaţii cu privire la tehnici moderne fără de care domeniul nu mai poate fi conceput în zilele noastre (de exemplu reducţia de securitate sau curbe eliptice). Cartea lui Menezes et al. este extrem de sintetică şi consistentă din punct de vedere al matematicii, iar cartea lui Stinson este de asemenea coerentă din punct de vedere matematic şi conţine formalisme destul de bune cu privire la criptosisteme. Cartea lui Schneier este din punct de vedere al matematicii ceva mai slabă, expunerile fiind mai literare, o recomand în special celor care sunt interesaţi de securitate în general şi nu neapărat de criptografie. Atenţie, toate aceste trei cărţi prezintă soluţii învechite, de exemplu nu sunt abordate noţiunile de IND-CCA2 şi NM-CCA2 vitale pentru criptosistemele cu cheie publică contemporane (vezi capitolul 6 al prezentei lucrări). Pentru cititorul care nu are mult timp de pierdut şi care trebuie să îşi formeze rapid o imagine despre criptografie recomand cartea recentă a lui Fergusson şi Scheneier care are expuneri simple şi de ansamblu asupra domeniului. 38 Funcţii Criptografice, Fundamente Matematice şi Computaţionale Cărţi moderne despre criptografie. Cărțile lui Mao şi Katz şi Lindell sunt cărţi moderne care conţin noţiuni de securitate moderne şi demonstraţii (reducţii) de securitate actuale. Prima prezintă o abordarea bazată pe soluţiile existente în lumea reală şi este cartea pe care o recomand în primul rând. Este excelentă ca lucrare de ansamblu, suficient de scurtă şi totuşi enciclopedică şi modernă, cursul ţinut la MIT de Bellare şi Goldwasser. Acesta poate fi însă greu de înţeles pentru cititorul lipsit de o bază oarecare în domeniu şi este un material extrem de dens. Cărţi solide pentru fundamente ale criptografiei sunt cele două volume publicate de Goldreich ,. Cărţi despre securitatea informaţiei. Pentru o vedere generală asupra aplicaţiilor de securitate şi parţial a criptografiei este utilă cartea lui Anderson deşi nu are prea mult de a face cu ingineria aşa cum titlul sugerează. Tot orientată spre practică este şi cartea lui Stallings. Cărţi despre Teoria Numerelor. Din punct de vedere al criptografiei cu cheie publică sunt foarte relevante aspectele de teoria numerelor, pentru acestea au devenit referinţă în domeniu cărţile lui Apostol şi a lui Hardy şi Wright. Pentru teoria probabilităţilor trebuie consultată. Abordări ale criptografiei prin prisma matematicii (în special algebră şi teoria numerelor) pot fi găsite în cartea lui Koblitz şi cea a lui Cohen. Este de asemenea o mare realizare în domeniu materialul oferit de Shoup care se focalizează asupra elementelor de calcul necesare (pe Internet este disponibilă şi o bibliotecă de funcţii implementate în C). Tot ca abordare din perspectiva teoriei numerelor recomand şi cartea lui Wagstaff. Pentru cei interesaţi de criptografia pe curbe eliptice (extensie a criptosistemelor lui Diffie-Hellman şi ElGamal), care poate fi văzută în sine ca un domeniu, recomand în primul rând lucrarea lui Cohen et al. apoi lista continuă cu lucrarea lui Washington şi lucrarea lui Hankerson et al. care o recomand în special pentru cei care vor să implementeze, primele două cărţi le recomand celor interesaţi de aspectele de matematică. Cele două cărţi publicate la Cambridge despre curbe eliptice având coautor pe Gadiel Seroussi sunt călduros recomandate , , personal nu le-am consultat dar am asistat la cursurile lui Serrousi pe această tema de la Bonn, Germania, în septembrie 2007. Articole de specialitate. În ceea ce priveşte articolele de specialitate din conferinţe şi jurnale aici lista recomandărilor ar fi enormă. Am inclus la bibliografie doar câteva articole de referinţă. În general sunt recomandate lucrările publicate în conferinţele centrale ale criptografiei, organizate de International Association for Cryptologic Research (IACR) : Crypto, Eurocrypt, Asiacrypt, International Workshop on Practice and Theory in Public Key Cryptography (PKC), Fast Software Encryption (FSE) şi mai recent Theory of 1. Introducere 39 Cryptography Conference (TCC). Jurnalul central în domeniu care este Journal of Cryptology publicat tot de IACR (detalii cu privire la toate acestea se găsesc pe pagina IACR www.iacr.org). Este de menționat şi jurnalul Design Codes and Cryptography, jurnal cu tradiţie în acest domeniu. Desigur, mai există şi alte publicaţii bune decât cele enumerate aici, lista nu este exhaustivă. 1.15 SĂ NU SUPRAEVALUĂM CRIPTOGRAFIA: SECURITATEA ESTE UN PROCES, NU UN PRODUS Este bine să încheiem capitolul cu modestie. Bruce Schneier în prefața la lucrarea Secrets and Lies își recunoaște greșeala din Apllied Cryptography de a supraevalua rolul criptografiei. Trebuie înțeles că criptografia este o piesă esențială în securitate, în opinia autorului cea mai importantă, dar nu e singura. "Security is a process, not a product" este o afirmație comună în securitatea informației. Trebuie înțeles că securitatea în sine nu este un simplu produs pe care îl cumpărăm și apoi totul decurge de la sine. Considerăm cazul simplu al unui antivirus, îl cumpărăm și instalăm. Va funcționa? Pentru aceasta este necesar și ca el să poată face update, și ca echipa care îl produce să lucreze la aceste update-uri, etc. Nu este vorba deci de o simplă cumpărare. Altfel, putem instala securitate de cel mai înalt nivel la un serviciu on-line, putem constrânge utilizatorii să folosească parole de 14 caractere corect alese. Dar dacă utilizatorii își spun parola mai departe, este sistemul sigur? Astfel securitatea trebuie văzută ca un proces, ca un sistem în ansamblu, în care fiecare componentă joacă un rol. Nu putem avea securitatea personală prin simpla cumpărare a unui produs, este necesară și implicarea personală care presupune în primul rând educarea utilizatorului. Din aceste motive securitatea nu este simplu de asigurat în cadrul unui sistem. 2 SCHEME DE CRIPTARE CU CHEIE SIMETRICĂ (CRIPTAREA CU CHEIE SECRETĂ) Istoria criptografiei începe cu construcţia funcțiilor de criptare cu cheie secretă. Începem cu expunerea unor procedee constructive de bază şi continuăm cu detalii despre criptosisteme contemporane precum DES şi AES. Nu în ultimul rând discuţia se axează şi asupra modurilor de operare a acestor criptosisteme, moduri esenţiale pentru securitate în practică. 2.1 DEFINIŢIE ŞI PROPRIETĂŢI Criptarea simetrică a mesajului m cu cheia secretă K o vom nota cu EK  m , unde E reprezintă algoritmul (funcţia) de criptare şi este întotdeauna cunoscut public. Securitatea criptosistemului (schemei de criptare simetrică) depinde doar de păstrarea secretă a cheii K (în nici un caz de vreun detaliu al algoritmului care este public). A cripta înseamnă a aplica algoritmul EK asupra mesajului m pentru a obţine criptotextul c  EK  m iar a decripta înseamnă a aplica algoritmul EK 1 (adeseori notat şi DK de la decriptare sau EK 1 simbolizând inversa funcţiei de criptare) asupra criptotextului c pentru a obţine mesajul m. Un sistem criptografic simetric îl definim după cum urmează. Definiţia 2.1. (schemă de criptare cu cheie simetrică) O schemă (sistem) de criptare cu cheie simetrică (secretă) constă în trei algoritmi: algoritmul de   generare a cheii K  Sym.Gen 1k care primeşte ca intrare nivelul de securitate k şi returnează cheia K , algoritmul de criptare EK  m  Sym.Enc 

Use Quizgecko on...
Browser
Browser