Lab 2 Algoritm de Criptare

15
Ministerul Educației al Republicii Moldova Universitatea Tehnică a Moldovei Facultatea de Inginerie și Management in Electronică și Telecomunicații Catedra Telecomunicații DARE DE SEAMĂ Lucrarea de laborator Nr.2 Tema: Algoritm simetric de criptare(AES) La disciplina: Protecția informației A efectuat st. gr. TLC-113 Moraru Oleg

description

algoritm de criptare

Transcript of Lab 2 Algoritm de Criptare

Page 1: Lab 2 Algoritm de Criptare

Ministerul Educației al Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea de Inginerie și Management in Electronică și Telecomunicații

Catedra Telecomunicații

DARE DE SEAMĂ

Lucrarea de laborator Nr.2

Tema: Algoritm simetric de criptare(AES)

La disciplina: Protecția informației

A efectuat st. gr. TLC-113

Moraru Oleg

A verificat conf.dr.

Ciobanu Mihail

Chișinău 2014

Page 2: Lab 2 Algoritm de Criptare

I.Introducere

Criptografia este un set de standarde şi protocoale pentru codificarea datelor şi mesajelor, astfel încât acestea să poată fi stocate şi transmise mai sigur. Ea stă la baza multor servicii şi mecanisme de securitate folosite în INTERNET, folosind metode matematice pentru transformarea datelor, în intenţia de a ascunde conţinutul lor sau de a le proteja împotriva modificării. Criptografia vă ajută să aveţi comunicaţii mai sigure, chiar şi atunci cînd mediul de transmitere (de exemplu, Internetul) nu este de încredere. De asemenea, se poate utiliza pentru criptarea fişierelor sensibile, astfel ca probabilitatea de a fi înţelese de intruşi să fie mai mică. Criptografia poate fi utilizată pentru a contribui la asigurarea integrităţii datelor, precum şi la menţinerea lor ca secrete. Criptografia vă ajută să verificaţi originea datelor şi a mesajelor prin utilizarea semnăturilor digitale şi a certificatelor. Cînd utilizaţi metode criptografice, cheile criptografice trebuie să rămână secrete. Algoritmii, dimensiunea cheilor şi formatele de fişiere pot fi făcute publice fără a compromite securitatea.

II. Scopul de bază al criptografiei

Din cele expuse mai sus se poate de evidenţiat următoarele cerinţe faţă de criptografia modernă:

1. Confidenţialitate – asigurarea ca nimeni nu poate citi mesajul cu exceptia destinatarului.

2. Integritatea datelor – realizează protejarea datelor la alterare sau manipularea de către

persoane neautorizate. Prin manipularea datelor înţelegem procese cum ar fi inserţii,

întârzieri sau substituiri.

3. Autentificarea – presupune posibilitatea de identificare a sursei informaţiei şi a entităţii (o

persoană, un terminal de computer, o carte de credit).

4. Non-repudierea – care previne negarea unor angajamente sau acţiuni anterioare.

Deci criptografia trebuie să acopere în mod corespunzător aceste patru direcţii atît în teorie cît şi în practică. Ea trebuie să prevină şi să detecteze furtul şi alte acţiuni ilegale, fiind doar una din tehnicile de asigurare a securităţii informaţiei.

Există două tipuri de sisteme criptografice:

• simetrice (cu cheie secretă) care folosesc aceeaşi cheie, atît la cifrarea cît şi la descifrarea mesajelor;

• asimetrice (cu chei publice) care folosesc chei distincte de cifrare şi descifrare (dar legate una de alta).

Page 3: Lab 2 Algoritm de Criptare

III. Criptografia cu chei simetrice

Criptografia cu chei simetrice se referă la metode de criptare în care atât trimițătorul cât și receptorul folosesc aceeași cheie (sau, mai rar, în care cheile sunt diferite, dar într-o relație ce la face ușor calculabile una din cealaltă). Acest tip de criptare a fost singurul cunoscut publicului larg până în 1976 .

Studiul modern al cifrurilor cu chei simetrice se leagă mai ales de studiul cifrurilor pe blocuri și al cifrurilor pe flux și al aplicațiilor acestora. Un cifru pe blocuri este, într-un fel, o formă modernă de cifru polialfabetic Alberti: cifrurile pe blocuri iau la intrare un bloc de text clar și o cheie, și produc la ieșire un bloc de text cifrat de aceeași dimensiune. Deoarece mesajele sunt aproape mereu mai lungi decât un singur bloc, este necesară o metodă de unire a blocurilor succesive. S-au dezvoltat câteva astfel de metode, unele cu securitate superioară într-un aspect sau altul decât alte cifruri. Acestea se numesc moduri de operare și trebuie luate în calcul cu grijă la folosirea unui cifru pe blocuri într-un criptosistem.

3.1. Algoritmi cu cheie secreta (algoritmi simetrici)

Acesti algoritmi folosesc aceeasi cheie si pentru criptare si pentru decriptare de aceea li se mai spun si algoritmi simetrici.

IDEA (International Data Encryption Algorithm) este un algoritm dezvoltat la ETH Zurich în Elvetia. Foloseste o cheie de 128 de biti si este considerat a fi sigur. Este unul dintre cei mai buni algoritmi publici cunoscuti. Este un algoritm destul de nou si nici o spargere a lui nu a fost publicata pâna acum.

RC4 este un cifru dezvoltat de RSA Data Security Inc. Algoritmul este foarte rapid dar securitatea sa nu este foarte bine cunoscuta dar nici spargerea lui nu pare a fi foarte usoara.

SAFER este un algoritm dezvoltat de J. L. Massey (unul din creatorii lui IDEA). Sunt cunoscute doua variante una pe 64 de biti si una pe 128.

Cifru bazat pe functiile hash . Orice functie puternica hash poate fi tranformata într-un cifru. Sunt câteva aranjamente; ideea generala este ca functia hash este folosita ca un generator aleator de numere, iar pe valoarea hash este facut XOR cu data de criptat. Când toti au fost folositi, o noua valoare hash este obtinuta modificând cheia.

Enigma este un cifru folosit în al doilea razboi mondial de catre germani.

Data Encryption Standard (DES) și Advanced Encryption Standard (AES) sunt cifruri pe blocuri care sunt considerate standarde de criptografie de guvernul american (deși DES a fost în cele din urmă retras după adoptarea AES). În ciuda decăderii ca standard oficial, DES (mai ales în varianta triple-DES, mult mai sigură) rămâne încă popular; este folosit într-o gamă largă de aplicații, de la criptarea ATM la securitatea e-mail-urilor și accesul la distanță securizat. Multe alte cifruri pe blocuri au fost elaborate și lansate, cu diverse calități. Multe au fost sparte. 

Page 4: Lab 2 Algoritm de Criptare

3.2. Cifrurile pe flux de date, în contrast cu cele pe blocuri, creează un flux arbitrar de material-cheie, care este combinat cu textul clar, bit cu bit sau caracter cu caracter. Într-un cifru pe flux de date, fluxul de ieșire este creat pe baza unei stări interne care se modifică pe parcursul operării cifrului. Această schimbare de stare este controlată de cheie, și, la unele cifruri, și de fluxul de text clar. RC4 este un exemplu de binecunoscut cifru pe flux.

Funcțiile hash criptografice (adesea numite message digest) nu folosesc neapărat chei, sunt o clasă importantă de algoritmi criptografici. Aceștia primesc date de intrare (adesea un întreg mesaj), și produc un hash scurt, de lungime fixă, sub forma unei funcții neinversabile. Pentru hash-urile bune, coliziunile (două texte clare diferite care produc același hash) sunt extrem de dificil de găsit.

MD5 (Message Digest Algorithm 5) este un algoritm sigur dezvoltat la RSA Data Security, Inc. Poate fi folosit pentru a cripta un bloc arbitrar de lungime variabila într-o valoare pe 128 biti. MD5 este foarte folosit si este considerat sigur. Totusi s-au raportat unele slabiciuni ale algoritmului.

MD2, MD4: Acestia sunt niste algoritmi mai vechi de la RSA Data Security. SHA (Secure Hash Algorithm). Acesta este un algoritm hash criptografic publicat de

Guvernul Statelor Unite. Produce o valoare hash de 160 de biti dintr-o valoare de lungime arbitrara. Multi considera algoritmul bun.

Schema de aplicare a unui algoritm simetricDeoarece algoritmul este valid în ambele direcţii, utilizatorii trebuie să aibă încredere reciprocă. Securitatea acestui tip de algoritm depinde de lungimea cheii şi posibilitatea de a o păstra secretă. Când comunicaţiile dintre numeroşi utilizatori trebuie să fie criptate, apare o mare problem a managementului cheilor; pentru n utilizatori sunt posibile n(n-1)/2 legături bidirecţionale, fiind necesare tot atâtea chei. Aceasta implică în general probleme dificile în generarea, distribuţia şi memorarea cheilor. Utilizarea calculatoarelor electronice a permis folosirea unor chei de dimensiuni mai mari, sporindu-se astfel rezistenţa la atacuri

Page 5: Lab 2 Algoritm de Criptare

criptoanalitice. Când cheia secretă are o dimensiune convenabilă şi este suficient de frecvent schimbată, devine practic imposibilă spargerea cifrului, chiar dacă se cunoaşte algoritmul de cifrare.

3.3. Generatoare de numere aleatoare

      Sistemele criptografice au nevoie de generatoare de numere aleatoare foarte puternice. Numerele intr-un astfel de sistem se repeta foarte usor si astfel slabesc sistemul de criptare.

In momentul in care comunitatea criptografica avea nevoie sa furnizeze lumii noi standarde de criptare, Blowfish un nou bloc de cifru de 64 biti cu cheie de lungime variabila este propus.Desi exista diferite metode de criptare disponibile pentru a pastra un transfer de date sigur, multi dintre acesti algoritmi nu sunt disponibili pentru public, unii sunt protejati de autorizatii (Khufu , REDOC II , si IDEA), unii sunt pastrati secreti de guverne (Skipjack si Capstone protejate de guvernul american) ) sau unii sunt disponibili doar pe parti(RC2,RC4 si GOST). Totodata, algoritmul de criptare DES din ultimii 15 ani se apropie de sfarsitul lui in utilizare. Cheia lui de de 56 biti lungime este vulnerabila la un atac de forta bruta si noile avansari in criptanaliza diferentiala si criptanaliza liniara arata ca DES este vulnerabil si pentru alte atacuri deasemenea.

IV. Standardul de Criptare a Datelor (în engleză Data Encryption Standard, DES) este un cifru (o metodă de criptare a informației), selectat ca standard federal de procesare a informațiilor în Statele Unite în 1976, și care s-a bucurat ulterior de o largă utilizare pe plan internațional. Algoritmul a fost controversat inițial, având elemente secrete, lungimea cheii scurtă și fiind bănuit că ascunde de fapt o portiță pentru NSA. DES a fost analizat intens de către profesionaliști în domeniu și a motivat înțelegerea cifrurilor bloc șicriptanaliza lor.

DES este astăzi considerat nesigur pentru multe aplicații. Acest lucru se datorează în principiu cheii de 56 de biți, considerată prea scurtă; cheile DES au fost sparte în mai puțin de 24 de ore. De asemenea, există unele rezultate analitice care demonstrează slăbiciunile teoretice ale cifrului, deși nu este fezabilă aplicarea lor. Se crede că algoritmul este practic sigur în forma Triplu DES, deși există atacuri teoretice și asupra acestuia. În ultimii ani, cifrul a fost înlocuit de Advanced Encryption Standard (AES).

În unele documentații, se face distincție între DES ca standard și algoritmul de la baza lui, numit DEA (Algoritmul de Criptare a Datelor - în engleză, Data Encryption Algorithm).

Page 6: Lab 2 Algoritm de Criptare

Scurt istoric

Originile DES sunt în anii 1970. În 1972, după concluziile unui studiu asupra nevoilor de securitate pentru calculatoare a guvernului Statelor Unite, NBS (National Bureau of Standards) — acum numit NIST (National Institute of Standards and Technology) — a identificat necesitatea unui standard de criptare a datelor importante, nesecrete, care să fie folosit de toate statele. În consecință, pe 15 mai 1973, după consultarea cu NSA, NBS a solicitat propuneri pentru un cifru care să fie conform criteriilor de design riguroase. Nici una dintre înregistrări însă nu s-a dovedit a fi corespunzătoare. O a doua cerere a fost emisă pe 27 august 1974. De această dată, IBM a înscris un candidat considerat acceptabil, un cifru dezvoltat în perioada 1973–1974, bazat pe un algoritm existent, cifrul Lucifer al lui Horst Feistel. Echipa de la IBM implicată în dezvoltarea și analiza cifrului îi include pe Feistel,Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith, și Bryant Tuckerman.

Algoritm de standart

În ciuda criticilor, DES a fost aprobat ca standard federal în noiembrie 1976 și publicat pe 15 ianuarie 1977 ca FIPS PUB 46, utilizarea sa fiind autorizată pentru toate datele care nu sunt secrete de stat. A fost reafirmat ca standard în 1983, 1988 (revizuit ca FIPS-46-1), 1993 (FIPS-46-2) și încă o dată în 1998 (FIPS-46-3), ultima variantă recomandând "Triplu DES" (vezi mai jos). Pe 26 mai 2002, DES a fost înlocuit de AES, Advanced Encryption Standard, după o competiție publică. Chiar și din 2004, DES încă a rămas folosit pe scară largă. Pe 19 mai 2005, FIPS 46-3 a fost retras oficial, dar NIST a aprobat Triplu DES până în anul 2030 pentru informații guvernamentale. 

Un alt atac teoretic, criptanaliză liniară, a fost publicat în 1994, dar un atac prin forță brută a demonstrat în 1998 că DES poate fi spart practic, și a evidențiat nevoia unui algoritm de înlocuire. Acestea și alte metode de criptanaliză sunt discutate mai jos.

Introducerea lui DES este considerată un catalizator pentru studiul academic al criptografiei, mai ales al metodelor de spargere a cifrurilor bloc. Conform unei retrospective din partea NIST despre DES,

Page 7: Lab 2 Algoritm de Criptare

Despre DES se poate spune că a "inițiat" studiul nemilitar și dezvoltarea algoritmilor de criptare. În anii 1970 erau puțini criptografi, cu excepția celor din organizații militare sau de inteligență, iar studiul academic al criptografiei nu era dezvoltat. Acum există mulți criptologi academicieni activi, departamente de matematică care susțin programe de criptografie puternice și companii și consultanți de securitate a informațiilor comerciale. O generație de criptanaliști s-a chinuit să spargă algoritmul DES. În cuvintele criptografuluiBruce Schneier  "DES a galvanizat mai mult domeniul criptografiei mai mult decât orice altceva. Acesta este un algoritm de studiat". O mare parte a literaturii din criptografie din anii 1970 și 1980 s-a ocupat de DES, iar DES este standardul față de care toți algoritmii cu cheie simetrică au fost evaluați de atunci.

Algoritm de inlocuire

Grijile despre securitatea și operarea relativ înceată a lui DES în software au motivat cercetătorii să propună o varietate de alternative de cifruri bloc, care au început să apară la sfârșitul anilor 1980 și la începutul anilor 1990; de exemplu, RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 și FEAL. Cei mai mulți dintre acești algoritmi au păstrat blocul de 64 de biți al lui DES și puteau acționa ca înlocuitori, deși foloseau de obicei chei de 64 sau 128 de biți. În URSS, algoritmul GOST 28147-89 a fost introdus, cu mărimea blocului de 64 de biți și cheia de 256 de biți, iar acesta a fost folosit în Rusia mai târziu.

DES poate fi adaptat și reutilizat într-o schemă mai complexă. Mulți foști utilizatori ai DES folosesc acum Triplu DES (TDES, 3DES) care a fost descris și analizat de una dintre persoanele care a patentat DES; a implicat aplicarea lui DES de trei ori cu două (2TDES) sau trei (3TDES) chei diferite. 3DES este privit ca adecvat de sigur, deși este încet. O alternativă computațional mai ieftină este DES-X, care incrementează mărimea cheii prin aplicarea operației XOR pe material extra înainte și după DES. GDES a fost o variantă a DES propusă drept metodă de a mări viteza de criptare, dar a fost prea susceptibilă criptanalizei diferențiale.

În 2001, după o competiție internațională, NIST a selectat un cifru nou: Advanced Encryption Standard (AES), ca înlocuitor. Algoritmul care a fost selectat ca AES a fost înscris de către designerii săi sub numele de Rijndael. Alți finaliști în competiția NIST pentru AES sunt RC6, Serpent, MARS și Twofish.

Descriere

DES este cifrul bloc arhetip — un algoritm care ia un șir de lungime fixă de biți de text normal și îl transformă print-o serie de operații complexe într-un șir de biți criptați de aceeași lungime. În cazul DES, mărimea blocului este de 64 biți. DES folosește de asemenea și ocheie pentru particularizarea transformării, astfel încât numai cei care cunosc cheia folosită să poată efectua decriptarea. Cheia este formată din 64 de biți; totuși, numai 56 dintre ei sunt folosiți propriu-zis de algoritm. Opti biți sunt utilizați ca

Page 8: Lab 2 Algoritm de Criptare

biți de paritate și nu sunt necesari după acest test. Deci cheia efectivă are doar 56 de biți, și așa este citată de obicei.

Ca și alte cifruri bloc, DES nu este o cale sigură de criptare folosit de sine-stătător. El trebuie folosit într-un mod de operare. FIPS-81 specifică câteva feluri pentru utilizarea cu DES . Alte comentarii despre acest lucru apar în FIPS-74 

Structură generală

Structura generală a algoritmului apare în Figura 1: sunt 16 pași identici de procesare, numiți runde. Există și câte o permutare inițială și finală, numite PI and PF, care sunt funcții inverse (PI "anulează" acțiunea lui PF și vice versa). PI și PF nu au aproape nici o importanță criptografică, dar au fost incluse pentru a facilita încărcarea și descărcarea blocurilor folosind hardware-ul din anii 1970.

Înaintea rundelor principale, blocul este împărțit în două jumătăți, de câte 32 de biți, și procesate alternativ; această alternare este cunoscută drept Schema Feistel. Structura Feistel asigură că criptarea și decriptarea sunt procese foarte asemănătoare — singura dieferență este ordinea aplicării subcheilor - invers la decriptare. Restul algoritmului este identic. Acest lucru simplifică implementarea, în special cea hardware, deoarece nu e nevoie de algoritmi separați.

Simbolul   cu roșu denotă operația OR exclusiv (XOR). Funcția F amestecă jumătate din bloc cu o subcheie. Rezultatului funcției F este combinat cu cealaltă jumătate de bloc, iar jumătățile sunt interschimbate înaintea următoarei runde. După ultima rundă, jumătățile nu sunt schimbate; aceasta este o trăsătură a structurii Feistel care face din criptare și decriptare procese similare.

Page 9: Lab 2 Algoritm de Criptare

Securitate și criptanaliză

Deși despre criptanaliza lui DES s-a publicat mai multă informație decât despre cea a oricărui alt cifru bloc, atacul cel mai practic rămâne cel prin forță brută. Diferite proprietăți criptanalitice minore sunt cunoscute, iar trei atacuri teoretice sunt posibile. Acestea au complexitatea mai mică decât cea a atacului prin forță brută, dar numărul de texte necesare este nerealist și de aceea nu sunt fezabile.

În ciuda tuturor criticilor și slăbiciunilor lui DES, nu există exemple de persoane care să fi suferit pierderi bănești din cauza limitărilor de securitate ale lui DES.

Page 10: Lab 2 Algoritm de Criptare

Proprietăți criptanalitice minore

DES deține proprietatea complementarității, adică

unde   este complementul pe biți al lui  .   denotă criptarea cu cheia  .   și   sunt textul normal și, respectiv, textul criptat. Proprietatea complementarității înseamnă că munca unui atac prin formță brută se înjumătățește (un bit) sub prezumpția unui text ales.

DES are, de asemenea, patru chei slabe. Criptarea (E) și decriptarea (D) cu o cheie slabă au același efect (vezi involuție):

 sau echivalent, 

Există și șase perechi de chei semi-slabe. Criptarea cu o pereche de chei semi-

slabe,  , operează identic cu decriptarea cu o alta,  :

 sau echivalent, 

Este ușor de evitat cheile slabe și semi-slabe într-o implementare, fie prin testare explicită, fie prina alegerea aleatorie a cheilor; șansele de alegere a unei chei slabe sau semi-slabe sunt neglijabile. Aceste chei nu sunt în realitate mai slabe decât alte chei în nici un fel, pentru că nu avantajează nici un atac.

S-a dovedit că DES nu este un grup, sau mai precis, mulțimea   (a tuturor cheilor

posibile  ) față de compunerea funcțiilor nu este grup, și nici măcar "aproape" de a fi grup (Campbell și Wiener, 1992). Aceasta a fost o întrebare pentru un timp, și dacă așa era cazul, ar fi fost posibil să se spargă DES, iar modalitățile de criptare multiple, precum Triplu DES nu ar fi mărit securitatea.

Este cunoscut faptul că securitatea criptografică maximă a lui DES este limitată la 64 de biți, chiar și când se aleg independent subcheile în locul derivării lor din cheia principală, care ar permite altfel o securitate de 768 de biți.