Criptarea Informatiei
CRIPTAREA INFORMAȚIEI
CUPRINS
INTRODUCERE
CAPITOLUL I. Securitatea informației
Tehnici de Securitate
Probleme de Securitate
Cauzele problemelor de securitate
Obiectivele securității informației
CAPITOLUL II. Scurtă introducere în Criptografie
2.1 Istoria criptografiei
Concepte de bază ale criptografiei
Importanța și rolul criptografiei
Puterea criptografiei
Scheme criptografice simetrice
Scheme criptografice asimetrice
Scheme criptografice hibride
Hashing
2.10Administrarea cheilor
Administrarea centralizată a cheilor
Administrarea descentralizată a cheilor
Scopuri actuale ale criptografiei
Două principii criptografice fundamentale
Redundanța
Prospețimea
Funcțiile criptografice
CAPITOLUL III. Metode de criptare.Algoritmi simetrici și algoritmi asimetrici
Criptografia simetrică
Algoritmul DES
Scurt istoric al dezvoltarii DES
Prezentarea algoritmului DES
Variante de DES
Algoritmul AES
Criptografia asimetrică
Algoritmul RSA
Algoritmul ElGamal
CAPITOLUL IV.Implementarea algoritmului RSA
Principiul de funcționare
CONCLUZII
BIBLIOGRAFIE
INTRODUCERE
Criptografia este la fel de veche că și scrierea în sine .Ea permite oamenilor să facă afaceri online fără griji de înșelăciune.Aproape în fiecare zi, milioane de oameni comunică pe cale electronică,nu contează prin ce metode fie că vorbim despre e-mail, despre busines desfășurat pe internet), telefoane mobile etc. Totodată anume faptul că au crescut numărul informațiilor transmite pe cale electronică a dus la o mare necesitate de criptografie.Cel mai accesat în zilele noastre este Internetul,care este format din miliarde de calculatoare conectate între ele,și care la rîndul lor permite comunicarea aproape și transmiterea de documente,informații,peste tot în lume. World Wide Web este folosit pentru afaceri online, distribuție de date, marketing, cercetare, învățare, precum și o mulțime de alte activități.
Una din direcțiile importante ale criptografiei este de a crea,dezvolta și menține site-uri web securizate și transmisie electronică sigură. În același timp pentru ca un site web să fie sigur că toate datele care sunt transmise între calculatoarele în care datele sunt păstrate și în cazul în care acesta este primit, trebuie să fie criptate. Faptul că datele sunt criptate și securizate permite oamenilor să facă banking on-line, on-line de comercializare,pot face cumpărături online fără să le fie teamă de furturi,spargeri,pot face plăti online cu cardul de credit fără ași face griji că datele personale și informațiile pot fi descoperite. Criptografia joacă un rol foarte important în cresterea și dezvoltarea permanentă a internetului cît și a comerțului electronic(vînzare/cumpărare).
Până în secolul XXI, toate tranzacțiile comerciale pe Internet au rezultat a fi un total de sute de miliarde de dolari pe an.Iar acest nivel de activitate nu ar fi fost posibilă fără securitatea criptografică.
Populația folosește e-mailul pentru a rezolva probleme personale,profesionale ,de afaceri și asta se întîlmplă practic în fiecare zi la nivel mondial. E-mailul nu are nici o formă fizică și tocmai de aceea poate există electronic în mai multe locuri concomitent. Iar acest fapt reprezintă o posibilă problemă, fiindcă crește probabilitatea de spărgători de coduri.Rolul criptării este de a proteja e-mailul,și a face cît mai greu,practice imposibilă,citirea de informație de către orice altă persoană răufăcătoare.
Nevoia de a cripta informațiile a existat în permanentă încă de la începuturi însă astăzi, mai mult că niciodată, informații personale/confidențiale se transmit zilnic între instituții guvernamentale și/sau companii.În fiece moment cu siguranță mii de cetățeni ai planetei își introduc datele de identificare ale cardurilor de credit/debit pentru a face cumpărături online.Tocmai de aceea apariția criptosistemelor a devenit o necesitate pentru dezvoltarea umanității.
Scopul unui criptosistem este de a avertiza sau descoperi acțiuni care nu sunt premise într-un sistem informatic,de exemplu:
examinarea neanunțată a infomațiile transmise sau datelor stocate.
Ștergerea,schimbarea sau eliminarea mesajelor deja existente.
Analiza traficului.
Conectările care nu sunt premise.
Un criptosistem trebuie să îndeplinească:
Protecția datelor – ascunde conținutul informațiilor dar în același timp asigură inaccesibilitatea conținutului informației transmise .
Autentificarea care este de 2 tipuri:
Primul timp se referă la personae,cărți de credit și aici ea se numește identificare sau altfel spus autentificarea entităților.
Al doilea tip de referă la informația transmisă,conținutul acesteia care trebuie să fie autentificată,și datele să fie integer.
După modul în care se împart cheile folosite pentru a cripta o informație sunt chei secrete(simetrice) și chei publice(asimtrice).
Pentru criptografia simetrică este specifică folosirea cheilor identice atît la criptare cît și la decriptare.
Pentru criptografia asimetrică este specific faptul că folosește două chei,acestea fiind total diferite, una pentru criptare , iar cealată pentru decriptare. Din cauza faptului că este imposibil de dedus o cheie din cealată cheie,una din ele este făcută publică fiind pentru criptare / decriptare.
Rețele de comunicații în special internetul a schimbat modul de gândire și de gestionare a informațiilor, crescând riscurile de informare transmise, ceea ce înseamnă că informația este puterea de umanitate pentru propria lor dezvoltare și stăpânirea de aceeași ființă umană, fiecare persoană în cauza este de a crea mecanisme care au grijă de credibilitate și încredere.
În plus cu mult timp în urmă,criptografia s-a arătat a fi o metodă bună capabilă să se ocupe de siguranța informațiilor ,criptarea și securizarea acestora.
Nevoia de a trimite mesaje înțelese doar de către destinatari a făcut posibilă crearea cifrelor, astfel încât un mesaj după un proces de transformare ar putea fi citit doar urmând un proces.La momentul actual ,este încercarea de a face din ce în ce mai sigură transmiterea în siguranță a acestor informații.
Importanța criptografie este de a oferi comunicații sigure (și secrete) pe canale nesigure, pentru a oferi nu numai o protecție, ci și să se asigure că există confidențialitate.
Criptografia atât în poliție, diplomație și spionaj, constituie cele mai bune metode de apărare a comunicației și a datelor care călătoresc prin intermediul rețelelor de calculatoare și Internet. Astăzi sunt un mecanism esențial pentru tranzacțiile de natură financiară cum ar fi cumpărăturile sigure pe internet.
Criptografia constituie un domeniu de mare importanță valoare, lucru care se datorează cantității enorme de date și informații transmise între personae aflate în diferite colțuri ale lumii,sau date transmise între diferite terminale.
Criptografia își are originile încă din antichitate,ea cunoscînd o evoluție extraordinară,iar în perioada modernă fiind o bombă atomică deoarece au apărut și s-au dezvoltat diferite mijloace de comunicație,a apărut Internetul și utilizarea pe larg a acestuia.
Necesitatea de a transmite și procesa date sigure,au dus la descoperirea și implementarea diferitor algoritmi de criptare și decriptare,care aveau la rîndul lor diferite dimensiuni și timp de execuție.
Această lucrare tinde de a prezenta cîțiva algoritmi simetrici și asimetrici (criptare/decriptare) și implementînd un algoritm eficient în utilizare.
Se observă din ce în ce mai mult că dezvoltarea noilor tehnologii informaționale este un proces pe care nu-l putem evita,ceea ce caraterizează de fapt și societatea în care trăim.
Procesul de informatizare reprezintă un proces sinuos care implicit este legat de cunoașterea tuturor fundamentelor informaticii cît și a tehnicii de calcul,iar odată cu asta duce și la elaborarea diferitor sisteme de țin de securitatea informației,stocarea ei,integritatea datelor,etc.
Începînd dezvoltarea în masă a diferitor metode și forme automatizate în vederea prelucrării infomatiei,a început să crească și necesitatea cît mai acidă a proceselor de securitate.
Relevanța și importanța problemei de securitate a informației și a tehnologiilor informaționale rezultă din mai multe aspecte [14]:
sporirea bruscă a potențialului de calcul al calculatoarelor moderne și simplificarea exploatării lor;
creșterea rapidă a volumului de informație cu care operează societatea prin intermediul calculatorului și a altor mijloace tehnice;
concentrarea în baze de date unice a diverselor tipuri de informație (după scop și apartenență);
sporirea impresionantă a numărului de calculatoare personale utilizate în diverse domenii de activitate;
lărgirea considerabilă a cercului de utilizatori care au acces direct la resursele de calcul și la blocurile de date;
dezvoltarea rapidă a instrumentelor software care nu îndeplinesc norme minime de siguranță;
implementarea pe scară largă a tehnologiilor de rețele și conectarea rețelelor locale la cele globale;
dezvoltarea Internetului, care practic nu împiedică încălcările referitoare la securitatea sistemelor de prelucrare a informației din întreaga lume.
Scopul principal al criptografiei este de a face documentele (informația în general, indiferent de forma de prezentare, inclusiv informația aflată sub formă binară, de șir de biți) neinteligibile decât de către entitățile cărora le este adresată, pentru a asigura confidențialitatea corespondenței.
In partea practică se urmărește implementarea unui algoritm de criptare.[4,6,7,19]
Capitolul I
Securitatea informației
În securitatea informațiilor ar trebui să distingă două scopuri de protecție: de securitate a informațiilor și protecție a datelor.Securitatea informațiilor, are scopul de a proteja datele înșiși și încearcă să evite pierderea lor și modificarea neautorizată. Protecția trebuie să asigure în primul rând confidențialitatea, integritatea și disponibilitatea datelor, însă există cerințe suplimentare, precum autenticitate, printre altele.
În multe state există norme juridice care reglementează prelucrarea datelor cu caracter personal, cum ar fi în Spania, unde există "Legea privind protecția datelor cu caracter personal", care urmărește să garanteze și să protejeze, în ceea ce privește prelucrarea datelor cu caracter personal, libertăților publice și a drepturilor fundamentale ale individului, și în special onoarea lor, vieții private și a vieții de familie. Dar problema mare este atunci când nu există legi și norme juridice care împiedică abuzul sau utilizarea abuzivă a datelor cu caracter personal sau dacă sunt aplicate necorespunzător sau arbitrar.
Există unele profesii care, prin caracterul lor profesional, sunt recunoscute și legate de jurământul lui de a respecta datele cu caracter personal, cum ar fi medici, avocați, judecători și preoți. Dar, indiferent, dacă nu există norme juridice, responsabilitatea pentru prelucrarea corectă a datelor cu caracter personal și consecințele care pot rezulta în cazul lipsei acesteia, revine cu fiecare persoană care gestionează sau are contact cu astfel de informații, și ar trebui să fie înrădăcinate coduri de conduită , și în cele din urmă etica profesională și umană, să respecte și să nu prejudicieze drepturilor omului și sa nu facă nici un rău.
Există multe definiții ale securității. Simplificând,în general, putem defini securitatea ca "Element ce indică faptul că un sistem este liber de pericol, rău sau risc." (Villalon)
Când vorbim despre securitatea informațiilor indicăm faptul că fiecare informație în parte are o relevanță specială într-un anumit context și, prin urmare, protejată.
Securitatea informațiilor poate fi definită că un ansamblu de măsuri tehnice, organizatorice și juridice care permite organizației să asigure confidențialitatea, integritatea și disponibilitatea sistemului său de informare.
Până la apariția și utilizarea pe scară largă a sistemelor informatice, informațirme juridice, responsabilitatea pentru prelucrarea corectă a datelor cu caracter personal și consecințele care pot rezulta în cazul lipsei acesteia, revine cu fiecare persoană care gestionează sau are contact cu astfel de informații, și ar trebui să fie înrădăcinate coduri de conduită , și în cele din urmă etica profesională și umană, să respecte și să nu prejudicieze drepturilor omului și sa nu facă nici un rău.
Există multe definiții ale securității. Simplificând,în general, putem defini securitatea ca "Element ce indică faptul că un sistem este liber de pericol, rău sau risc." (Villalon)
Când vorbim despre securitatea informațiilor indicăm faptul că fiecare informație în parte are o relevanță specială într-un anumit context și, prin urmare, protejată.
Securitatea informațiilor poate fi definită că un ansamblu de măsuri tehnice, organizatorice și juridice care permite organizației să asigure confidențialitatea, integritatea și disponibilitatea sistemului său de informare.
Până la apariția și utilizarea pe scară largă a sistemelor informatice, informațiile de interes ale unei organizații se păstrau pe hârtie și depozitate în cantități mari de dulapuri voluminoase.Date despre clienți sau furnizori ale unei organizații, sau angajați au fost înregistrate pe hârtie, cu toate problemele pe care le implică, după depozitare, transport, acces și prelucrare.
Sistemele informatice permit scanarea întregii cantități de informații prin reducerea spațiului ocupat, dar mai presus de toate, facilitarea de analiză și prelucrare. Acesta este câștigat în "spațiu", acces, viteză în procesarea acestor informații .
Din antichitate până în prezent – informațiile strict personale erau păstrate în secret prin diferite modalități. A rămas celebru modul în care Cezar făcea schimb de informații cu generalii săi, aplicând cifrul care îi poartă numele. Timpul s-a scurs, noi ne-am dezvoltat încontinuu, dar problema păstrării în secret a informației confidențiale, problema comunicațiilor secretizate a rămas actuală și, astfel, începând cu anii 40 ai secolului XX, s-a desfășurat o intensă cercetare în domeniul comunicațiilor secretizate, obiectul de studiu al cărora este Criptografia.
Criptografia modernă utilizează două tipuri de sisteme de criptare: sisteme cu cheie privată și sisteme cu cheie publică. La baza oricărui tip de sistem de criptare se află o teorie matematică bine fundamentată, în funcție de care sistemul poate fi utilizat într-un scop sau altul.
Soluționarea problemei de securitate informațională nu poate fi realizată fără a lua în considerație doi factori importanți, ce influențează nemijlocit atingerea scopului final:
a) dezvoltarea mijloacelor de comunicații informaționale;
b) dezvoltarea sistemelor performante de criptare, care se completează reciproc și care permit obținerea unor rezultate importante în asigurarea securității de manipulare cu masive mari de informație.
În zilele noastre aproape în toate domeniile de activitate sunt create,dezvoltate și implementate tehnologii informaționale cît mai performanțe.Iar apariția diferitor rețele la nivel mondial cît și local ,prin care se face posibilă transmiterea de date a permis utilizatorilor de calculatoare să folosească mecanisme noi în vederea schimbului de informații.
Ceea ce a dus la ulitilzare pe larg a rețelelor globale a fost apariția Internetului,cu scopul că fiecare persoană în parte să poate transmite date și informații.
Din moment ce mijloacele și formele de automatizare a proceselor de prelucrare a informației se dezvoltă încontinuu și cunosc de fapt o nouă etapă de dezvoltare,practic crește și dependența societății de gradul de securitate al tehnologiilor informaționale utilizate.
Metodele contemporane de prelucrare, transmitere și stocare a informației au contribuit la apariția riscurilor legate de posibilitatea pierderii, denaturării, destăinuirii datelor care sunt adresate sau care aparțin utilizatorilor finali. De aceea, asigurarea securității informației este una dintre direcțiile cele mai importante în dezvoltarea tehnologiilor informaționale. Protecția informației este activitatea îndreptată spre prevenirea scurgerii informației protejate, precum și a acțiunilor nesancționate sau neintenționate asupra acestor informații . În mod obiectiv, noțiunea de securitate informațională a apărut odată cu inventarea mijloacelor de comunicații informaționale între oameni , dar și odată cu înțelegerea de către om a faptului că alți oameni sau comunități au interese, cărora li se pot cauza daune prin intervenția asupra mijloacelor de comunicații informaționale, existența și dezvoltarea acestora asigurând schimbul de informații între toate elementele societății umane.
Dacă luăm în considerație influența transformărilor de idei în securitatea informațională, putem evidenția careva etape ale dezvoltării mijloacelor de comunicații informaționale :[14]
Etapa I – până la anul 1816 – este caracterizată de mijloacele de comunicații informaționale apărute pe cale firească. În această perioadă, problema de bază a securității informaționale consta în protecția datelor referitoare la evenimente, fapte, avere, amplasament și a altor date care au pentru om, personal, sau pentru societate o importanță vitală.
Etapa II – începând cu anul 1816 – este corelată cu începutul aplicării mijloacelor tehnice artificiale ale comunicațiilor electrice și radio. Pentru asigurarea secretizării și protecției de perturbații ale comunicațiilor radio era necesar de utilizat experiența acumulată pe parcursul primei etape ale securității informaționale la un nivel tehnologic mai înalt, și anume aplicarea unei codificări a mesajului (semnalului) rezistente la perturbații cu decodificarea ulterioară a mesajului (semnalului) primit.
Etapa III – începând cu anul 1935 – este în legătură directă cu inventarea mijloacelor de radar și sonor. Metoda de bază în asigurarea securității informaționale în această perioadă presupunea o combinare de măsuri tehnice și organizatorice direcționate spre mărirea securității. Ca modalitate de asigurare a securității informației a servit o serie de astfel de măsuri care vizau îmbunătățirea protecției mijloacelor radar de la efectele asupra receptorilor lor generate de bruiajul electronic activ de mascare și de cel pasiv de simulare.
Etapa IV – începe cu anul 1946 – este condiționată de inventarea și implementarea în activitatea practică a mașinilor electronice de calcul – calculatoarele.
Etapa V – începe din anul 1965 – este în corelație cu crearea și dezvoltarea rețelelor de comunicații informaționale. Problema securității informației era rezolvată, în principiu, la fel prin metode și procedee de protecție fizică a mijloacelor de dobândire, prelucrare și transmitere a informației, unite în rețeaua locală. Acest lucru se făcea pe calea administrării și dirijării accesului la resursele din rețea.
Etapa VI – începe cu anul 1973 – este legată de utilizarea dispozitivelor ultramobile de comunicație cu o gamă largă de sarcini. Amenințările la adresa securității informaționale au devenit mai periculoase. Pentru asigurarea protecției informației în sistemele de calculatoare cu rețelele fără fir de transmitere a datelor a fost necesar de stabilit noi criterii de securitate. S-au format comunități de oameni – hackerii – ce aveau drept scop prejudicierea securității informaționale a utilizatorilor individuali, a companiilor, dar și a unor state întregi. Resursele informaționale au devenit cele mai importante resurse ale statului, iar asigurarea protecției lor a devenit o componentă obligatorie și cea mai importantă pentru securitatea națională. În această perioadă se naște și o nouă ramură a sistemului juridic, legată de protecția informațiilor.
Etapa VII – începe în anul 1985 – este legată de crearea și dezvoltarea rețelelor de comunicații informaționale cu implementarea mijloacelor de asigurare spațiale. Actualmente, ne aflăm într-o nouă etapă de dezvoltare a securității informaționale. Acum se aplică pe scară largă mijloacele ultramobile de comunicații cu o gamă largă de sarcini și acoperire globală în spațiu și timp, și cu asigurarea sistemelor spațiale de comunicații.
Etapa inițială în dezvoltarea criptografiei începe cu cifrul lui Cezar menționat mai sus care nu este primul cifru din istorie utilizat de om. Încă din cele mai vechi timpuri, oamenii făceau schimb de informații, scriind unul altuia scrisori, care deseori trebuiau să fie păstrate în secret. Date exacte și dovezi incontestabile despre apariția scrierii secrete în antichitate nu sunt. Se cunoaște doar că în Grecia Antică, pentru transmiterea unui mesaj a fost folosit un rob căruia i s-a ras capul, după care pe cap a fost scris mesajul. După ce părul a crescut, robul a fost trimis spre adresat cu mesajul „Rade-i capul” .
Putem afirma că criptanaliza antica, spre deosebire de cea contemporană, foarte serioasă, era numai o quasiștiință. Însă orice lucru măreț are un început modest. Hieroglifele Egiptului Antic conțineau, într-o formă departe de cea impecabilă, două dintre elementele de bază ale criptografiei – secretul și transformarea textului. Astfel s-a născut criptologia.
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-o lume unde informația este practic indispensabilă, asigurarea securității acestor informatii devine una dintre cele mai primordiale probleme. Aceast lucru se datorează faptului că informația este lipsită de valoare atâta timp cât atributele ei de securitate nu sunt asigurate. Securitatea î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 personae neautorizate sau distrugerea ei.
Securitatea informației este acel domeniu destinat sa se ocupe cu studierea diferitor mecanisme de protectie a datelor,a informatiilor, cu scopul de a asigura unu 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.
De asemenea sunt și o mulțime de beneficii o dată cu dezvoltarea securității informației cum ar fi:
Întreruperi de servicii cauzate de viruși, hacking, etc sunt evitate.
Numărul de incidente este minimizat.
Aveți acces la informații atunci când este necesar și integritatea datelor este păstrată.
Confidențialitatea datelor și a vieții private a clienților și utilizatorilor este păstrată.
Regulamentul cu privire la protecția datelor sunt respectate.
Încrederea își îmbunătățește percepția clienților și utilizatorilor în ceea ce privește calitatea serviciilor.
Tehnici de Securitate
Mecanismele prin care utilizatorilor li se acordă sau nu capacitatea de a interacționa și de a folosi resursele este cunoscut ca și control al accesului. Acesta este adeseori referit prin termenul de autorizare. Autorizarea definește tipul de acces la resurse pe care îl are utilizatorul și este considerat adeseori următorul pas logic imediat după autentificare. Autentificarea demonstrează identitatea utilizatorului unui sistem , iar acțiunea este cea de logare.
Identificarea și autentificarea sunt cunoscute ca și un proces în doi pași, dar reprezintă activități distincte. Identificarea e afirmarea unei identități ,iar autentificarea este verificarea acesteia. Problema este atât verificarea că o asemenea identitate există într-adevăr printre conturile cunoscute ale mediului securizat, cât și asigurarea faptului că entitatea este una corectă,validă și autorizată să folosească acea identitate.
Autentificarea poate lua mai multe forme : cel mai adesea, cu configurări de unul, doi sau trei factori. Cu cât sunt mai speciali factorii folosiți într-un proces de autorizare, cu atât mai de încredere devine autentificarea în sine. Dacă toți factorii de autentificare oferiți sunt valizi pentru identitatea susținută, atunci se presupune că entitatea e ceea ce afirmă să fie. Atunci mecanismele de restricție a permisiunilor și acțiunilor preiau controlul activităților utilizatorului de la acest moment. [4,6,7,19]
Demonstrarea identității ia de obicei forma unui singur factor sau a unei combinații din cei trei enumerați mai jos:
ceva ce știi ( cum ar fi o parolă);
ceva ce ai ( cum ar fi un smartcard);
ceva ce ești ( cum ar fi o amprentă).
Odată ce subiectul a fost autentificat, accesul său trebuie sa fie autorizat. Procesul autorizării asigură că activitatea solicitată sau accesul unui obiect este posibil, având în vedere drepturile și privilegiile oferite identității autentificate .
Chiar dacă un subiect a fost identificat și autentificat, acest lucru nu înseamnă neapărat că a fost autorizat. Este posibil ca un subiect să se logheze într-o rețea, însă sa fie blocat de la accesarea unui fișier. Majoritatea utilizatorilor de rețea sunt autorizați să realizeze doar un număr limitat de activități pe o colecție anume de resurse.
Este importantă înțelegerea diferențelor dintre identificare, autentificare și autorizare. Deși sunt similare și esențiale pentru toate mecanismele de securitate, sunt distincte și nu pot fi confundate.
Autentificarea multifactor presupune ca un utilizator să ofere doi sau mai mulți factori de autentificare pentru a-și demonstra identitatea. Există trei categorii de factori de autentificare recunoscuți la nivel general.
Dacă doi sau mai mulți factori de autentificare sunt folosiți, dar unii dintre ei sunt de același tip, atunci acest lucru este cunoscut ca și autentificare robustă. Această afirmație se bazează pe argumentul conform căruia dacă doi sau mai mulți factori sunt diferiți , atunci două sau mai multe tipuri de atacuri trebuie efectuate pentru a fura sau pentru a identifica factorul de identificare în sine.
Figura 1.1 Autentificare cu doi factori
O dată cu dezvoltarea societății,oamenii au simțit nevoia elaborării fie a unei tehnici noi,fie o informație nouă,fie o tehnică nouă ,iar dezvoltarrea acestora a dus îndeosebi și la necesitatea de protecție a ceea ce a avea să cunoască o largă și furtunoasă dezvoltare.Și în scopul de a proteja în permanentă tot ceea ce aparte și are să apară pe parcursul timpului s-au pus bazele securității informației.Este evident faptul că la baza securității au stat careva principii care să le ghideze întregul proces de dezvoltare,și aici avem cîteva:
Siguranța
Există o frază care a devenit celebra în lumea securității. Eugene Spafford, profesor de informatică la Universitatea Purdue (Indiana, SUA) și expert de securitate a datelor, a declarat că "singurul sistem securizat este acela care este oprit și scos din priză, îngropat într-un adăpost de beton, înconjurat de un gaz otrăvitor și păzit de gardieni bine plătiți și foarte bine înarmați. Chiar și așa, nu mi-aș paria viață mea pe el. "
Vorbind despre securitatea calculatoarelor în termeni absoluți este imposibil și de aceea vorbim mai degrabă de fiabilitatea sistemului, care în realitate este o relaxare a primului termen. Definim fiabilitatea că probabilitatea cum că un sistem se comportă cum era de așteptat de la el.
În general, un sistem va fi în siguranță sau de încredere, dacă putem garanta trei lucruri:
Observație: acces la informații numai prin modul autorizat și controlat.
Integritatea: modificarea informațiilor numai cu permisiune.
Disponibilitate: sistem de informații trebuie să rămână accesibil sub licență.
Există o altă proprietate a sistemelor :Confidențialitatea care este înțeleasă că nivelul de calitate al serviciilor oferite. Dar această proprietate ,care face referință la disponibilitate, este la același nivel cu siguranță. În cazul nostru vom menține disponibilitatea că un aspect de securitate.
Confidențialitatea
În general, termenul "confidențial" se referă la "Ce se face sau se declară cu încredere sau siguranță reciprocă între două sau mai multe persoane."
În ceea ce privește securitatea informațiilor, confidențialitate se referă la necesitatea de a ascunde sau păstra anumite informații sau resurse secrete.Scopul confidențialitate este astfel de a împiedică divulgarea neautorizată a informațiilor.
În general, orice întreprindere publică sau privată și orice domeniu de aplicare prevede că anumite informații nu poți fi accesate din diferite motive. Unul dintre exemplele tipice este armata unei țări. În plus, se știe că cele mai importante realizări în materie de siguranță sunt întotdeauna legate de aspecte strategice militare.
Un exemplu tipic de un mecanism care garantează confidențialitatea este criptografia, care are scopul de a cifra sau cripta datele care sunt de neînțeles pentru acei utilizatori care nu au permisiuni suficiente. Dar chiar și în acest caz, există o serie de date sensibile care trebuie protejată și cheia de criptare. Această cheie este necesară pentru ca utilizatorul corespunzător să poată decripta informațiile primite și în funcție de tipul mecanismului de criptare folosit, cheia poate / trebuie să călătorească prin rețea și să poată realiza cu instrumente concepute pentru acest lucru. Dacă apare această situație, confidențialitatea operației realizate (fie bancară, administrativă sau altfel) este compromisă.
Integritatea
În general, termenul de "integritate" se referă la o calitate de "complet" și arată "Asta nu duce lipsă de una din piesele sale.".
În ceea ce privește securitatea informațiilor, integritatea se referă la exactitatea informațiilor sau resurselor, și este de obicei exprimată în ceea ce privește prevenirea schimbărilor necorespunzătoare sau neautorizate.
Scopul integrității este de a preveni modificarea neautorizată a informațiilor.
Integritatea se referă la:
integritatea datelor (volumul de informații)
integritatea sursei (sursă datelor, apel autentificare)
Este important să se sublinieze integritatea de origine, deoarece aceasta poate afecta exactitatea lor, credibilitatea și încrederea care oamenii o pun în informație.
Disponibilitatea
În ceea ce privește securitatea informațiilor, disponibilitate se referă la sistemul de informații care trebuie în permanență să rămână accesibil elementelor autorizate.
Scopul disponibilității este de a preveni întreruperi neautorizate/controlate de resursele de calcul.În ceea ce privește securitatea calculatorului "un sistem este disponibil atunci când proiectarea și implementarea sa permite refuzarea în mod deliberat accesul la anumite date sau servicii."
Un sistem este disponibil dacă permite să nu fie disponibil. Și un sistem care "nu este disponibil", este la fel de rău că și cum nu ar fi sistem. Nu servește.
Probleme de Securitate
Fără îndoială că în ultimii ani s-au făcut pași mari în securitatea informațiilor. Treptat, între companii începe să se implanteze ideea că securitatea este un domeniu care trebuie să i se acorde o atenție specifică și independentă, dincolo de ceea ce mulți consideră doar"calculator". Securitatea datelor din punctul de vedere al criptografiei se confruntă cu patru probleme esențiale:
autentificarea “two-way” a participanților ( în timpul schimbului de date, fiecare parte vrea să fie sigură de identitatea celeilalte ) ;
autenticitatea datelor (integritate – un termen general care înseamnă că datele sunt de încredere);
secretizarea datelor ( de care este necesară când date sensibile sunt transferate);
non-repudierea (oferă un mecanism pentru ca recipientul să poată dovedi că informația a fost generată de un anumit transmițător). [2,3,27]
Iar în continuare vor fi enumerate cîteva erori tipice legate de securitatea informațiilor,pe care le comite fiecare personaa în parte conștient sau inconștient:
Gândind că informațiile sau sistemele dumneavoastră nu interesează pe nimeni.
Acest lucru este, fără îndoială, principalul obstacol în îmbunătățirea securității informațiilor unei organizații:gîndind că nu sunt scopul nimănui. Există mai multe argumente convingătoare pentru a demonstra această afirmație.Să presupunem că nimeni nu este interesat de sistemele noastre, dar o scanare de un vierme poate detecta doar din întâmplare un computer vulnerabil. În cele din urmă, multe organizații subestimează valoarea de informații pe care a au, atât pentru concurență externă cît și internă: bilanțuri, liste de prețuri, marje, procese de producție, inovații, etc.
Crezând că securitatea este doar tehnică și, prin urmare, doar o chestiune de calculator.
Limitarea securității doar la control tehnic,evident necesare,duce la neglijarea aspectelor importante, cum ar fi legale și organizatorice. Gestionarea incidentelor, definind responsabilități sau abordînd cerințele de natură juridică, sunt aspecte vitale pentru a preveni amenințările, cum ar fi ingineria socială.
Un antivirus și firewall sunt suficiente
Puține organizații în prezent nu dispun de un antivirus și chiar un firewall. Cu toate acestea, acest lucru duce la un sentiment fals de securitate care te face să uiți că există multe alte amenințări, atât tehnice cât și non-tehnice, care necesită adoptarea de măsuri specifice.
Gândind că securitatea este un produs și nu un process
Această eroare persistă din epoci îndepărtate atunci încă când securitatea era un aspect mai mult legat de sarcinile personale decît aria calculatoarelor. Cu toate acestea, lucrurile s-au schimbat în mod semnificativ și securitate a dobândit un statut propriu.
Orice persoană care lucrează într-un departament de resurse umane, de producție, logistică sau de contabilitate trebuie să efectueze lucrări de întreținere de zi cu zi, fie actualizarea cunoștințelor lor, menținerea sistemelor, punerea în aplicare a noilor procese sau adaptarea funcțiunilor sale la noile cerințe legale; zonele și departamentele se adapteză la schimbări în mod constant.
Cu toate acestea,securitatea se consideră a fi în continuare un domeniu care nu are nevoie de întreținere sau de monitorizare.
Confidențialitatea este legată de spioni
Este adevărat că spionii și marile multinaționale semnează acorduri în semn de confidențialitate.
Atît cu furnizorii, clienții cît și angajații și în cele din urmă fiecare persoană fizică sau juridică care va accesa informațiile companiei, este vital de a semna acorduri de confidențialitate al căror scop este pur și simplu de a proteja informațiile organizației. Rareori un astfel de efort mic aduce astfel de beneficii mari.
Contemplînd securitatea în contractele corporative
Astăzi, formularul de comandă rămîne a fi în multe cazuri, procedura pentru recrutare. Nu există nici un contract de servicii și nici clauze de confidențialitate.
Furnizarea de servicii prin Internet, fără a ține cont de ceea ce privește siguranță lor.
Un serviciu oferit de Internet este accesibil practic de miliarde de oameni, dintre care unele din ele cu siguranță nu sunt cu intenții bune.
Neglijând gestionarea rețelei și sistemele
Multe companii încă neglijează menținerea în permanentă a securității serverelor și a rețelelor sale, ceea ce duce la dispozitive de rețea vulnerabile, puncte WiFi care permit unei persoane din altă parte sa acceseze rețeaua nostra corporativă, baze de date de uz intern accesibile de pe Internet, sau servere fără actualizare de mulți ani.
Problemele de Securitate nu se rezumă doar la cele enumerate mai sunt,sunt și altele mult mai complexe și mai periculoase:
Viermi (Computer worms) – Morris worm (1988), Melissa worm (1999)
Viruși (Computer viruses)
Atacuri de tip refuz de servicii (denial of service)
Email spam – Nigerian scam, recomandări vînzări acțiuni bursă
Furturi de identitate, Găuri de securitate în diferite sisteme
Votul electronic
Spyware
Cauzele problemelor de securitate
Bug-uri software și greșeli de configurare, etc.
Factori care contribuie la aceste greșeli:
Puține cursuri în securitatea informației
Cărțile de programare nu explică problemele de Securitate
Puține audituri de securitate
Limbaje de programare nesigure
Programatorii sunt indolenți la problemele de Securitate
Consumatorii nu le pasă de securitate
Securitatea face lucrurile mai greu de utilizat
Securitatea este dificilă, scumpă și consumatoare de timp[20,21,22]
Obiectivele securității informației
Abilitatea de a localiza principalele elemente critice ale unei rețele într-o companie și evaluarea principalelor riscuri de securitate.
Abilitatea de a identifica riscurile de securitate ale unui anumit flux de informații într-un mediu.
Înțelegerea mecanismelor și tehnologiile de bază legate de identitatea digitală și protecția datelor cu caracter personal.
Cunoașterea principalelor etape pentru crearea unei garanții de management de proiect al informațiilor, precum și politica și legislația care trebuie sa se aplice.
Abilitatea de a decide ce fel de consultanță sau audit tehnic de securitate a informațiilor ar putea avea nevoie într-o anumită situație.
Abilitatea de a conduce procesul de dezvoltarea și implementarea unor politici de securitate.
Capacitatea de a evalua măsura în care o arhitectura de securitate asigură confidențialitatea, integritatea și disponibilitatea bunurilor de informare.
Capitolul II
Scurtă introducere în Criptografie
Cuvântul Criptografie vine de la "Kryptos" greacă, ceea ce înseamnă ascuns, și "graphia", adică scris, iar definiția sa în conformitate cu dicționarul este "Artă de a scrie un cod secret sau o enigmă." Criptografia este o tehnică, sau mai degrabă un set de tehnici, inițial care se ocupă cu protecția sau ascunderea informațiilor împotriva observatorilor neautorizați.
În timpurile moderne, criptografia este metodologia care oferă securitatea rețelelor de calculatoare, inclusiv identificarea entităților și autentificare, controlul accesului la resurse, confidențialitatea mesajelor transmise, integritatea mesajului și non-repudierea.
Criptografia este definită că fiind acel compartiment al matematicii care are ca scop securizarea informației,dar totodată ocupîndu-se și de autentificare și resctricționare a accesului într-un sistem informatic.Ea este o parte a științei menită să protejeze informația, prin criptarea unui mesaj într-un format indescifrabil.
În timpurile vechi , toată informația era transmisă prin mesageri.Iar criptarea mesajelor era o metodă de securizare în cazul în care mesagerul era capturat de inamic. Astăzi însă , mesagerul a fost înlocuit cu pachete ce transporta date de 0 și 1 prin rețele de cablu sau unde radio. În același timp mesajele în continuare sunt criptate, în caz că pachetele sunt interceptate de intruși din exteriorul caii de transmisie.
Unul din instrumentele de bază ale criptografiei este sistemul de criptare, care are la bază algoritmul de criptare. Printre algoritmii vechi ,cu mii de ani în urmă, de criptare se numără cifrul lui Cezar,care înlocuia fiecare litera a mesajului cu a treia litera după ea din alfabet. La rândul sau, acest algoritm a fost destul de eficient, cu toate că este foarte simplu să restabilești textul original, avându-l pe cel criptat. Odată cu trecerea timpului, au fost îmbunătățite și sistemele de criptare, fiind elaborate sisteme cu cheie privată , precum și cele cu cheie publică .
Sistemele de criptare cu cheie privată (sau sistemele simetrice de criptare) sunt sistemele în care cheia de criptare coincide cu cheia de decriptare. Astfel de sisteme sunt folosite pentru protecția datelor memorate în fișiere, baze de date sau a informațiilor transmise în rețele.
Printre sistemele cu cheie privată menționăm următoarele:
Algoritmul DES (Data Encryption Standard) a fost elaborat de către firma IBM și, în anul 1977, a fost aprobat ca standard oficial în SUA.
Algoritmul AES (Advanced Encryption Standard) , sau Rijndael, este un algoritm pe blocuri (lungimea blocului este de 128 biți, iar lungimea cheii – 128, 192 sau 256 biți), aprobat în calitate de standard de criptare în SUA în anul 2002.. În practica aplicațiilor Internet, cifrurile cu chei publice sunt folosite, în general, pentru semnătura digitală asociată mesajelor, pentru autentificarea conținutului și a emițătorului, dar și pentru cifrarea și distribuția cheilor simetrice, folosite în secretizarea mesajelor, operație numită anvelopare a cheii.
Printre sistemele cu cheie publică se numără:
Algoritmul RSA a fost publicat în anul 1978 de Ron Rivest, Adi Shamir și Leonard Adleman la Massachusetts Institute of Technology. Puterea sa criptografică se bazează pe dificultatea problemei factorizării numerelor întregi, problemă la care se reduce criptanaliza RSA și pentru care toți algoritmii de rezolvare cunoscuți au complexitate exponențială.
Algoritmul ElGamal, elaborat de Taher Elgamal în anul 1984, publicat – în 1985, având la bază problema logaritmului discret.
Istoria criptografiei
Între Egiptul Antic și Internet, criptogramele (criptate mesaje) au modelat o mare parte din marile episoade istorice și nenumărate anecdote. Istoria criptografiei a început cu miliarde de ani în urmă. La începutul secolului XX, invenția de mașini mecanice și electro-mecanice complexe, cum ar fi rotoarele mașinii Enigmă, și introducerea ulterioară a electronicii și informaticii a permis dezvoltarea mai multor scheme complexe de criptare a informațiilor și datelor.
Criptografia de ocupă anume de cifrarea și codificarea mesajelor pentru ca conținutul să fie păstrat în sigurață față de persoanele neautorizate.
Începuturile criptografiei sunt înregistrate încă pe la începutul anilor 2000 i.H., în Egipt atunci cînd hieroglifele erau instrumentele folosite pentru decorarea camerelor mortuare. Aceste hieroglife redau istoria vieții celui care a murit. Aceste tradiții nu aveau că scop să ascundă mesajele în sine,dar cel mai probabil aveau un caracter nobil.
Metodele de criptare s-au dezvoltat foarte mult începînd de la elemente nesemnificative la aplicații teoretice/practice pentru o mai bună securizare a informației.
Una din metodele vechi criptografice este metoda criptografică evreiască care se cere a ordona invers toate literele alfabetului,așa încît fiecare litera din alfabetul original să îi fie puse în corespondență o litera din alfabetul inversat. De exemplu:
ABCDEFGHI JK LMNOPQ R STU VW XYZ
ZYXWVUTSR QP ONMLKJ I HGF ED CBA
Dacă punem în aplicare ceea ce s-a relatat mai sus,cuvîntul “criptare” va capătă forma criptată astfel: “xirkgziv”.Acest mod de a cripta este un cifru cu substituție fiindcă fiecare caracter în parte este înlocuit respective cu alt caracter.El se numește de tip monoalfabet,fiindcă este destul de evident că folosește un singur alfabet pentru a cripta mesajul.
În trecut spartanii utilizau un mod neobișnuit de a cripta informațiile și anume scrierea unui mesaj pe un papirus făcut sul pe un baț.Acel papirus trebuia înfășurat pe un cilindru de același diametru cu cilindrul inițial.În cazul dat literele se potriveau în formă mesajului care era transmis. Dacă papirusul nu era înfășurat pe cilindru, literele și caracterele păreau pur și simplu aleatoare. Această metodă de altfel era folosită în armată pentru a transmite mesaje.
Figura 2.1 Primele incercari ale criptografiei-heroglifele
Unul dintre primele cifruri cu substituție a fost al lui Cezar, unde fiecare literă din textul original era înlocuită cu o litera aflată la un număr fix de poziții distanță de ea în alfabet. Acest cifrul respectiv a fost denumit Cezar despre care se spune că l-a folosit, cu o deplasare de 3, în comunicația cu generalii săi în timpul campaniilor militare.De fapt metoda de permutare a literelor din alfabet era destul de simplă și plus la asta era similară cu modul în care criptau spartanii.Acum însă pentru timpurile noastre se consideră această tehnică mult prea simplă pentru a putea proteja careva informații și a le păstra în maximă siguranță.
Criptografia foarte mult s-a dezvoltat și a cunoscut o perioada de glorie în momentul în care a început a evolua și Europa,astfel prin secolul XVII au început a fi folosite pe larg metodele de comunicație militară.
În perioada celui de-al doilea război mondial, metodele simple de criptare erau utilizate pentru a comunica strategic.Anume sistemele de telegrafie și radio au adus foarte bune rezultate în armata militară pentru a putea comunica.O extraordinară realizare în domeniul criptografiei, ceea ce ține de militărie,a fost mașina cu cifru rotativ. Acesta mașinărie performantă la moment înlocuia fiecare literă folosind diverse rotoare din cadrul dispozitivului.
Cu timpul acest sistem cu rotoare a condus la dezvoltarea celei mai renumite mașini cu cifru: “Enigma” care era în totalitate inventată de către germani. Acest dispozitiv german avea un tablou comutator, un rotor reflector și 3 rotoare. Cu toate că mecanismul mașinăriei era complicat pentru vremea aceea, un grup de criptografi polonezi, a reușit să spargă codul permițându-le britanicilor accesul la planurile de atac ale germanilor. Se spune că spargerea mecanismului de criptare a scurtat al doilea război mondial cu doi ani.[8,11,12]
După cel de-al doilea război mondial au început intensiv să se dezvolte calculatoarele numerice și mai ales electronică,iar toată această evoluție au dus la apariția multor cifruri mult mai complexe,iar metodele și dispozitivile de criptare s-au extins considerabil,am putea spune exponențial. Criptografia a devenit foarte importantă în diferite acțiuni guvernamentale și politice,este aplicată în același timp la controlul granițelor.
Aproape toate sistemele de criptare care au fost dezvoltate la început au suferit schimbări și modernizări în ceea ce ține de adăugarea unor noi forme necesare de protecție. Criptarea în perioada contemporană nu este un moft sau ceva opțional,dar este o necessitate,fiindcă ea este folosită în toate aspectele vieții economice,policice,sociale,în dispozitivele hardware și software cu scopul de a proteja informațiile, tranzacțiile bancare, e-mailul,comunicări prin internet, telefoane,faxuri etc.
Cei care au accelerat dezvoltarea și evoluția criptografiei : au fost volumul mare de informații care circulă la nivel mondial,creșterea numărului de rău-făcători care au ca scop spargerea codurilor,dar și valoarea imensă a calculelor numerice. Din moment ce hackerii și intrușii se arată a fi mai inteligenți și mai pregătiți din punct de vedere tehnic, atunci este necesar de a a găsi noi strategii de criptare mult mai complexe și mai sigure.
Criptanaliza este o știință ce necesită studierea și descifrarea algoritmilor de criptare. Se realizează într-un mediu academic de către hackeri, curioși și motivați. Diferite metode de criptare au fost folosite de-a lungul timpului dar în zilele noastre acestea sunt tot mai adânc înglobate în viață de zi cu zi. Sistemele informatice automatizate și criptografia joacă un rol deosebit de important în funcționarea guvernelor, economiilor, afaceriilor private. Cu cât dependența noastră față de tehnologie crește, cu atât crește și dependența față de criptografie deoarece, secretele trebuie întotdeauna păstrate.[1]
Concepte de baza ale criptografiei
Pentru a începe, trebuie să ne definim generic în ce constă acest termen pentru al putea relaționa cu aplicațiile sale în lumea informatică, mai precis în ceea ce privește tehnologia informației, și cum se face.
Cunoștem că Criptografia (derivă de la grecul Crypto, care înseamnă "ascunse" și Graphos, "scrierea"), studiul de tehnici care se aplică atât știință cît și în artă, pentru a putea modifica caracterul limbii în transmiterea unui mesaj.
Această modificare efectuează diferite tehnici care gravitează în jurul unei codificări sau criptări (sau o combinație a celor două), și are ca unic scop ca mesajul care este trimis să nu fie citit de altcineva decât de destinatar,făcîndu-se imposibil de citit pentru cine nu are autorizare și nu are forma de a-l putea descifra.
Aplicarea ei în lumea calculatoarelor este legată nu numai de transport maritim și de primirea mesajelor pe cale electronică cum ar fi e-mailul, dar inclusiv putem găsi și în distribuția de fișiere în întreagă rețea de rețele,avînd diferite metodologii pentru care se garantează sau refuzată accesul la informație.
În cazul a ceea ce înseamnă stocare de fișiere și corespunzătoarea ei distribuție, una dintre cele mai comune moduri de a face acest lucru este de criptare prin atribuirea unui cod secret, care permite să fie deschis sau executat fișierul în cauză, și deasemenea citirea corectă a acestuia.
În alte cazuri,de asemenea se poate aplica o tehnică de cifrare sau criptare, astfel încât, dacă un document este modificat de o terță parte, se modifică complet fișierul făcându-l de neînțeles.Principalul obiectiv urmărit prin utilizarea acestor tehnici se bazează pe confidențialitatea unui fișier, punând o barieră pentru acei utilizatori neautorizați, în special în cazurile de informații personale și vulnerabile.
Criptarea este reprezentată de modul de a transforma datele originale,numit text clar ,într-o altă formă care practic pare imposibil de citit,numi text criptat.
În momentul în care informația s-a transformat în text criptat,absolut nimeni nu o poate desluși,nici calculatorul,nici omul,pînă în momentul în care mesajul nu este decripat.
Modalitatea acesta ne dă posibilitatea de a transmite informații personale și confidențiale prin niște canale total nesecurizate fără dezvăluire neautorizată.
Atunci când datele sunt salvate pe un calculator, ele de obicei sunt protejate prin diverse controale de acces: logice și fizice.Însă dacă aceleași date sunt transmise printr-o rețea, ele nu mai au parte de controale, iar datele sunt într-o stare mult mai vulnerabilă.
Figura 2.2 Procesul de criptare/decriptare.[8,11]
Acel sistem care oferă criptare și decriptare se numește sistem criptografic și poate fi elaborat prin componente de hardware sau printr-o aplicație cu ajutorul unui cod de program. Un sistem criptografic utilizează un algoritm de criptare ce definește cât de simplu sau cît de complicat va fi întregul proces. Aproape toți algoritmii constau din formule matematice complicate ce sunt aplicate textului clar. Metodele de criptare folosesc valori secrete numite chei care inițial sunt folosite de către algoritm în scopul de a cripta și decripta textul,exemplul este arătat în Figura 2.3.
Figura 2.3 Rolul cheii in criptarea si decriptarea mesajului.
Algoritmul este definit că fiind un set de regului matematice, care dirijează și controlează modul în care criptarea și decriptarea se va desfășura. Partea secretă în utilizarea unui algoritm de criptare și decriptare este cheia. Cheia poate lua orice valoare, fiind construită dintr-un șir lung de biți luați aleator. Fiecare algoritm posedă un keyspace, adică un domeniu de valori la care apelăm în momentul în care dorim să construim o cheie.Astfel cheia este construită din valori care sunt alese din keyspace,în cele din urmă valorile se aleg în mod aleator. În dependență de cît de mare este keyspace-ul, atunci cu atît mai multe chei vor fi generate și vor putea fi folosite valorile respective. Cu cât cheile sunt mai diferite, cu atît mai dificil le va fi rău-făcătorilor să le descifreze.
Algoritmul de critare ar trebui să utilizeze keyspace-ul cît mai mare pentru a genera chei și cît mai aleator posibil,fiindcă astfel vor fi și mai multe chei. În momentul în care folosim un keyspace mai restrâns, vor fi mai puține valori pentru generarea cheilor, precum în Figura 2.4.
Figura 2.4 Keyspace-urile.
Dacă din careva considerente mesajul este aflat în momentul în care este transmis între doi indivizi, cel care află mesajul poate sa îl vadă da îi va fi inutil la moment,datorită faptului că mesajul apare în formă criptată.Să presupunem că intrusul ar cunoaște algoritmul cu care a fost criptat mesajul de către cele două părți, însa daca el nu cunoaște cheia pentru criptare și decriptare,informația care o posedă va fi una fără valoare,lucru arătat în Figura 2.5.
Figura 2.5 Importanța cheii potrivite
Importanța și rolul criptografiei
O primă problemă majoră în domeniul comunicațiilor și informatizării o reprezintă criptografia.În epoca anterioară ,acestă tehnică era doar o măsură secundară de siguranță.Un ordin pe un suport de hîrtie într-o ambasadă,de exemplu,normal era criptat,dar măsura de protecție principală în sine nu era criptată,pentru a păstra confidențialitatea, integritatea și autenticitatea informațiilor. Deși mesajele telegrafice erau de multe ori codificate, utilizatorii aveau mai multă încredere în integritatea companiilor de telegraf decât în codurile de securitate.
Apariția radioului a introdus schimbări semnificative în această stare de lucruri.Utilizarea lor, în special în scopuri militare în timp de război, a fost diferită și extrem de important.
Problema cu aparatul de radio, dintr-un punct de vedere al securității, era faptul că emisiile lor puteau fi prinse de către oricine.Și posibil, chiar, ca oamenii nedoriți să poată primi mai bine informația decît corespunzătorul real sau interesat.
Acest factor a promovat criptografia la un nivel superior între măsurile de securitate pentru a proteja integritatea, confidențialitatea și autenticitatea de informații. Apoi a început să fie singura măsură de uz general în domeniul protecției emisiilor de radio.
Datorită faptului că informația a început că crească într-un volum considerabil de mare,criptografia și-a căpătat bine meritatul rol de a fi utilizată în diferite domenii de activitate ,cum ar fi:centre medicale,diferite instituții private,publice,în sfere bancare etc ,dar în același timp și telefonie,email,fax.
Efectuarea diferitor studii în domeniul securității și nu numai criptografia a fost apreciată ca fiind studierea tehnicilor matematice care se referă la securitatea informației dar și confidențialitate, integritate, autentificare.
Însă criptografia nu este în totalitate matematică ,cum ar fi de exemplu criptarea cuantică care mai mult face referință la cunoștințe din fizică decât de matematică. Ron Rivest(criptograf american) a definit criptografia în cel mai simplu mod posibil: “criptografia înseamnă comunicare în prezența adversarilor”.
Domeniul de bază al criptografiei este de a crea și dezvolta funcții criptografice. O funcție criptografică este o funcție care depinde de o caracteristică numită cheie și se întrebuințează unui mesaj (text clar) pentru a obține un mesaj criptat numit criptotext (text criptat)– toate astea definesc o funcție de criptare.
Obiectivul criptografiei este de a crea inversa unei 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. Dezvoltarea criptografiei parcurge 3 pași: Teorie, Practică, Standarde.
Puterea criptografiei
Puterea metodelor de criptare depinde de algoritm, cheie, lungimea acesteia, și modul în care ele funcționează împreună.În momentul în care vorbim despre putere în intenția de a cripta careva informații, atunci ne referim la modul cât de usor sau cît de greu poate fi aflată cheia sau metoda folosită la criptare.Aflarea unei chei necesită încercarea unui număr foarte mare de valori cu intenția de a găsi valoarea unică ce poate fi folosită pentru a decripta mesajul.O cheie poate fi aflată pe cale forțată iar în funcție de algoritmul de criptare și de lungimea cheii, se poate de aflat foarte ușor sau foarte greu,aproape imposibil.Scopul realizării unei metode de criptare este de a face un compromis între prea scump sau care durează prea mult timp.
Puterea mecanismului de protecție ar trebui folosită în corelație cu sensibilitatea datelor care sunt criptate. Nu este nevoie ca informația despre ieșirea la iarbă verde a unui prieten să fie criptată cu un algoritm de criptare NSA. La fel, nu este o idee bună că informațiile interceptate de un spion KGB să fie transmise folosindu-se PGP (Pretty Good Privacy).Fiecare tip de mecanism de criptare are rostul lui.
Chiar dacă algoritmul este foarte complex și meticulos, există alte probleme de criptare care pot scădea puterea metodelor de criptare. Deoarece cheia este valoarea secretă necesară pentru a cripta și decripta mesaje, protecția inadecvată a cheii poate scădea puterea criptării. Un algoritm foarte puternic poate fi utilizat, folosindu-se un keyspace mare, și o valoare mare a cheii, toate acestea fiind condiții pentru o criptare puternică, dar dacă utilizatorul își împărtășește cheia altora, aceste părți ale ecuației nu mai contează.
Un algoritm fără defecte, o cheie mare care folosește toate valorile posibile din cadrul keyspace-ului și protejarea cheii sunt elemente importante ale criptării. Dacă unul dintre acestea este slab, poate deveni veriga slabă care afectează întreg procesul.[1]
Scheme criptografice simetrice
Criptarea simetrică este considerată a fi criptare tradițională fiindcă ea folosește aceeași cheie pentru a cripta și decripta.
Un cifru simetric este un cifru care utilizează aceeași cheie pentru a cripta și decripta. Cele două părți care comunică folosind un cifru simetric trebuie să cadă de acord asupra cheii pentru a utiliza în avans. Odată ce sunt de acord, expeditorul criptează un mesaj folosind cheia, îl trimite la destinatar, iar receptorul decriptează folosind aceeași cheie. Că un exemplu de sistem simetric "Enigma" .Acesta este un sistem care a fost folosit de Germania, unde cheile sunt distribuite zilnic sub formă de liste de coduri. În fiecare zi, un operator radio, receptor sau transmițător consulta copia lui de liste de coduri pentru a găsi cheia zilei. Tot traficul trimis prin unde radio pentru acea zi a fost apoi criptat și decriptat folosind cheia zilei.
În criptarea cu cheia secretă, securitatea depinde de un secret împărtășit numai de expeditor și destinatar. Principala amenințare vine de la redundanța mare a sursei. Shannon a sugerat două metode de bază pentru a contracara o criptanaliză statistică: difuzie și confuzie.
Scopul difuziei implică anularea influenței redundanței asupra textului cifrat.Există două moduri de a realiza acest lucru. Primul, cunoscut sub numele de transpoziție,evita criptanaliza bazată pe frecvente de n-cuvinte. Un alt mod este de a face fiecare literă a textului criptat să depindă de un număr mare de scrisori din textul original.
Scopul confuzie este de a face relația dintre cheie și textul cifrat să fie cît mai complexe posibil, făcând astfel ca statistica textului cifrat să nu fie puternic influențat de textul original. Acest lucru se realizează de obicei cu tehnică de substituție(înlocuire).
Există două moduri de bază in funcționare:
Cifru bloc: Informațiile care trebuie criptate sunt împărțite în blocuri de lungime fixa (8.16, … bytes) și apoi algoritmul de criptare este aplicat la fiecare bloc,folosind o cheie secretă. Exemple: DES, AES.
Există diferite moduri de operare, în funcție de modul în care se amestecă cheia pentru a cripta datele :
Modul BCE (lista de coduri electronice): Textul este împărțit în blocuri și fiecare bloc este criptat independent folosind cheia .Acesta are dezavantajul că poate dezvălui modele în date.
Modul CBC(CBC): Textul este împărțit în blocuri și fiecare bloc se amestecă cu cifra blocului anterior,apoi este criptat folosind cheia
Moduri CFB (FeedBack Cipher) și OFB (FeedBack ieșire).
Cifru flux: Pentru unele aplicații, cum ar fi criptarea convorbirilor telefonice, cifrul bloc este inadecvată, deoarece datele sunt produse în timp real, în fragmente mici. Eșantioane de date poate fi la fel de mici ca 8 biți sau 1 bit. Algoritmul generează o secvență pseudoaleatoare (secvență de chei cifru) de biți utilizate ca o cheie.Criptarea se face prin combinarea fluxului de cifru cu textul clar.
Sistemele simetrice au atît avantaje cît și dezavantaje,printre avantaje se numără: criptare și decriptare de mare viteză, nu crește dimensiunea mesajului, tehnologia bine cunoscută și pe scară largă.Iar printre dezavantaje se evidențiază: siguranța depinde de un secret comun între emițător și receptor, administrarea cheilor nu este "scalabilă", distribuția cheilor trebuie să se facă printr-un mediu securizat.
Un bun sistem de criptare pune toată securitatea în cheie și nici un caz în algoritm. Cu alte cuvinte, aceasta nu ar trebui să fie de nici un ajutor pentru un atacator să cunoască algoritmul utilizat. Doar dacă el obține cheia,l-ar ajuta să cunoscă algoritmul.
Din moment ce toată securitatea este în cheie, este important să fie foarte greu de ghicit aceasta. Acest lucru înseamnă că gama de chei posibile, sau spațiul de posibile chei, trebuie să fie larg. Richard Feynman a fost renumit în Los Alamos anume pentru capacitatea lui de a sparge seifuri. Pentru a alimenta legenda care a fost în jurul lui, a fost transportat un set de instrumente, inclusiv un stetoscop. De fapt, el a folosit o varietate de trucuri pentru a reduce la un număr mic numărul de combinații care ar fi trebuit încercate și apoi pur și simplu de ghicit până se găsește combinația corectă. Cu alte cuvinte, a redus dimensiunea posibilităților cheilor.
Marea Britanie folosea mașini pentru a ghici cheile în timpul celui de-al doilea război mondial.Sistemul german “Enigma” a fost prevăzut cu o cheie mare, dar britanicii au construit motoare de calcul specializate pentru a testa cheile într-un mod mecanic până cheia zilei era găsită. Acest lucru a însemnat că, uneori, au găsit cheia de câteva ori pe zi după ce a fost pus în folosință, dar și în alte zile nu a putut găsi cheia potrivită.
Astăzi, calculatoarele pot ghici chei foarte repede, iar acesta este motivul pentru care dimensiunea cheii este importantă în "criptosistemele " moderne.Cifru DES folosește o cheie de 56 de biți, ceea ce înseamnă că există 256 de chei posibile. 256 sunt 72.057.594.037.927.936 chei. Aceasta reprezintă un număr foarte mare de chei, dar un calculator mașină de uz general poate verifica întregul spațiu într-o chestiune de zile. Un calculator specializat poate face în ore.
Un exemplu simplu de criptare:
Pentru o mai bună înțelegere a criptării, iată un exemplu foarte simplu de criptare, care, deși departe sub aspectul complexității de algoritmele și cheile folosite în realitate, dau, credem, o bună idee a ceea ce se întâmplă atunci când are loc criptarea.Să luăm, de exemplu, următorul text: SCIENTIA [16]
Aplicându-i un algoritm și o cheie, pornind de la textul clar de mai sus, putem avea următorul text: UEKGPVKC
Cum am ajuns la acest text? Am folosit un algoritm ce constă în a înlocui fiecare literă din SCIENTIA cu o altă literă, iar cheia este 2. S a fost înlocuit cu litera din alfabet (ce constă din ABCDEFGHIJKLMNOPRSTUVWXYZ) aflată la două poziții spre dreapta, adică U, C a fost înlocuit cu E și așa mai departe.
Algoritmiii cei mai folosiți în domeniu sunt algoritmul DES (Data Encription Standard), și varianta sa mai nouă 3DES (Triple DES). Algoritmul DES folosește o cheie secretă de 56 biți iar algoritmul 3DES este o variantă a sa mult mai sigură, pentru că poate folosi până la 3 chei diferite de 56 biți fiecare. Evident toate cele 3 chei trebuie distribuite tuturor participanților la sistem și trebuie păstrate secrete (ceea ce constituie o problemă practică uneori dificilă).
Schemele simetrice, cum ar fi DES, se bazează pe o cheie secretă comună atât pentru criptare, cât și pentru decriptare (Figura 2.8)[2]
Figura 2.6 Schema simetrică de criptare /decriptare [2]
Securitatea datelor este asigurată prin utilizarea algoritmilor criptografici. Un algoritm criptografic este o metodă, în mod normal bazată pe o funcție matematică, utilizată pentru autentificare și/sau secretizare. Securitatea unei scheme criptografice constă în totalitate în cheia secretă și nu în secretizarea algoritmului.
Scheme criptografice asimetrice
În criptarea asimetrică sau cu cheie publică,cheia de decriptare nu poate fi calculată din cheia de criptare.
În 1975, doi ingineri în domeniul electronicii de la Universitatea Stanford,Whitfield Diffie și Martin Hellman a publicat un articol intitulat "New Directions în Criptografie, care a avut ca efect o bombă în domeniul criptografiei, introducînd conceptul de criptografie cu cheie publică.
Algoritmii de criptare cu cheie secretă (sau cheie privată),unicele cunoștințe până atunci, nu îndeplineau noile cerințe care au apărut paralel cu explozia de noi moduri foarte impersonale – cum ar fi dezvoltarea rețelelor de comunicații.[30]
Soluția complet revoluționară propusă a fost de a introduce noțiunea de funcție că un fel capcană, sau funcție one-way (deasemenea cunoscută sub numele de funcția cu sens ireversibil). Este o funcție care foarte ușor se calculează într-un singur sens, dar este imposibil de inversat dacă nu se cunoaște capcana secretă, cu toate că funcția în sine este cunoscută de toți.
Atunci cheia publică este funcția, în timp ce capcană, cunoscută de un număr limitat de utilizatori este numită cheie privată. Așa s-a născut lumea lui Alice, Bob și societatea. Alice și Bob sunt două persoane care caută să comunice într-o formă integră, în timp ce unele persoane pot asculta, trage cu urechea sau modifica canalul de comunicare. Orice utilizator poate cripta folosind cheia publică, dar numai acele persoane care cunosc cheia secretă poate decripta corect.
În conformitate cu spiritul criptografiei moderne, și deasemenea cum se întâmplă în sistemele simetrice, algoritmii de criptare și decriptare sunt publice, astfel încât sistemul de securitate se bazează exclusiv pe cheia de decriptare.
Potrivit Diffie și Hellman, tot algoritmul cu cheie publică trebuie să îndeplinească următoarele proprietăți de complexitate în calcul:
Oricine poate calcula propriile chei publice și private în timp polinomial.
Expeditorul poate cripta mesajul cu cheia publică a destinatarului în timp polinomial.
Receptorul poate decripta mesajul cifrat cu cheia privată în timp polinomial.
Criptanalisul care încearcă să verifice cheia privată utilizând cheia publica va întâlni o problemă greu de rezolvat.
Criptanalistul care încearcă să decripteze un text cifrat cu cheia publică va întâlni o problemă greu de rezolvat.
În practică, proiectantul de algoritmi asimetrici se întîlnește cu cinci probleme numerice diferite. Primele trei, corespunzătoare condițiilor 1,2 și 3, trebuie să aparțină clasei polinom. Ceilalți doi, corespunzătoare condițiilor 4 și 5, sunt probleme complexe.
În linii generale, un program de urmat pentru construirea unei criptări cu cheie publică este după cum urmează:
• Alegeți o problema P dificilă, eventual netratabilă.
• Alegerea unei subprobleme ușoare P, Pfacil, care se rezolva în timp polinomial, de preferință, în timp liniar.
• Transformarea problemei Pfacil astfel încât problema rezultată Pdificil, să nu pară ca problema originală,dar ca originalul P.
• Publicarea problemei Pdificil și modul în care această ar trebui să fie utilizată, constituind acest proces cheia(publică) de criptare. Informațiile despre cum se poate recupera Pfacil plecînd de la problema Pdificil este ținută secret și constituie cheia (secretă) decriptare.
Utilizatorii legitimați utilizează cheia secretă pentru a efectua decriptarea transformînd problema Pdificil în problema Pfacil, în timp ce, dimpotrivă, criptanalist trebuie să se confrunte forțat la rezolvarea problemei Pdificil. Este mult mai greu de a proiecta un sistem de cheie publică sigură împotriva atacurilor cu text original ales,decît un sistem de cheie secretă securizat împotriva același tip de atac.
În construcția de criptosisteme pot fi observate diferențe între algoritmii cu chei simetrice și cele cu chei publice. În primul rând, există mai multe constrângeri majore de elaborare a unui algoritm asimetric decît unul simetric,deoarece cheia publică care reprezintă informații suplimentare,care potențial un dușman o poate utiliza pentru a efectua criptanaliza. În mod normal, algoritmul cheii publice este bazat pe dificultatea de rezolva o problema de matematică cunoscută, în timp ce unii algoritmi simetricii, cum ar fi DES, sunt concepuți în așa fel încât ecuațiile matematice care îi descriu sunt atât de complexe încât nu sunt rezolvabile analitic.
În al doilea rând, există diferențe mari în generarea cheilor.
În algoritmii simetrici, unde cunoașterea cheii de criptare este echivalentă cu cheia de decriptare și invers, cheia poate fi selectată într-o formă aleatoare.Cu toate acestea, în algoritmii asimetrici, cum ar fi relația dintre cheia de criptare și decriptare nu este publică, este nevoie de o metodă de calculare a celei publice,pornind de la cheia privată și calculul invers să fie imposibil de realizat.
Acum câțiva ani, aceste tipuri de sisteme nu păreau să aibă vreun avantaj în lumea criptografică, fiindcă în mod tradițional criptografia se utiliza numai în scopuri militare și diplomatice, și în aceste cazuri, grupul de utilizatori este suficient de mic încît să împartă un sistem de chei. Cu toate acestea, în prezent, aplicațiile criptografiei au crescut progresiv, ajungând la multe alte domenii unde sistemele de comunicație au un rol vital. Din ce în ce mai mult se găsesc rețele mari de utilizatori, în care este necesar că două persoane să fie capabile să mențină secretă comunicarea cu celălalt.În aceste cazuri, schimbul continuu de chei nu este o soluție foarte eficientă.
Pe de altă parte, subliniem avantajul care reprezinta sistemele asimetrice – posibilitatea de a iniția comunicații secrete fără să fi avut nici un contact anterior.
Schemele asimetrice oferă autentificare prin utilizarea semnăturilor digitale în următorul mod:
1. O funcție hash generează un rezultat care reflectă un întreg mesaj (incluzând data și timpul).[17]
2. Rezultatul este semnat cu cheia privată a emițătorului.
3. Semnătura e verificată de destinatar folosind cheia publică a emițătorului.
Figura 2.7 Schema asimetrică de criptare/decriptare[2]
Există mai mulți algoritmi utilizați pe scară largă de exemplu: RSA,ElGamal.
Acest sistem are două moduri de cifrare:
Criptare: mesajul este criptat folosind cheia publică a destinatarului,mesajul criptat este trimis la destinatar, mesajul primit este decriptat folosind cheia privată a destinatarului, asigurându-se astfel confidențialitatea mesajului.
Autentificare: mesajul este criptat folosind cheia privată a emitentului, mesajul criptat este trimis la unul sau mai mulți destinatari, mesajul este decriptat folosind cheia publică a emitentului. Această garantează autenticitatea expeditorului și integritatea mesajului.
Principalul dezavantaj al schemelor asimetrice îl reprezintă viteză scăzută de criptare/ decriptare și faptul că dimensiunea mesajului criptat este mai mare decît originalul.Iar principalele avantaje sunt: cheile nu sunt schimbate,este o tehnologie larg răspândită, modurile lor se referă la cerințele de securitate a informațiilor.
Scheme criptografice hibride
Atât schemele simetrice, cât și cele asimetrice sunt folositoare, însă ambele au minusurile lor. Deci, combinarea lor în vederea eliminării pe cât posibil a acestora este ideală. Schemele hibride reușesc să atingă acest scop, combinând ce e mai bun din ambele categorii de scheme:
autentificarea puternică “two-way” a participanților folosind scheme asimetrice;
management simplu al cheilor folosind scheme asimetrice;
transfer sigur al cheilor simetrice folosind scheme asimetrice;
criptare/decriptare rapidă folosind algoritmi simetrici;
non-repudiere folosind semnături digitale obținute cu scheme asimetrice. [25]
Acest sistem este unirea avantajeler celor două, trebuie de menționat că problema ambelor sisteme criptografice este că cel simetric este nesigur ,iar cel asimetric este lent.
Procesul de criptare utilizând un hibrid este după cum urmează (pentru a trimite un fișier):
Generează o cheie publică și o cheie privată (la receptor).
Criptează un fișier de formă sincronă.
Receptorul ne trimite cheia sa publică.
Criptăm cheia care am folosito pentru a cripta fișierul cu cheia publică a destinatarului.
Trimitem fișier criptat (sincron) și cheia fișierului criptat (asincron și poate vedea doar receptorul).
Cifrurile cu cheie publică nu sunt panaceu. Multe cifruri simetrice sunt mai puternice din punct de vedere al securității, precum criptarea și decriptarea cu cheia publică sunt mai scumpe decât operațiunile corespunzătoare în sistemele simetrice. Oricum, cifrurile cu cheie publice sunt un instrument eficient pentru distribuirea chei de cifrare simetrice, și, astfel, așa se folosesc în sistemele de cifrare hibride.
Un cifru hibrid folosește atât un cifru simetric cît și unul asimetric. Acesta funcționează prin utilizarea unei criptări cu cheie publică pentru a partaja o cheie de criptare simetrică. Mesajul trimis este apoi criptat folosind cheia și este trimis la destinatar. Din moment ce avem o cheie simetrică ce nu este sigură, cheia utilizată este diferită pentru fiecare sesiune.
Hashing
Hashing-ul este un tip de criptografie care nu reprezintă un algoritm de criptare. În schimb, acesta este folosit pentru a produce un identificator unic ( cunoscut ca și valoare hash, amprentă) al datelor. Hashing-ul este o funcție cu o singură direcție care creează un rezultat de lungime fixă dintr-o intrare de orice lungime. O valoare hash servește ca și un cod ID pentru detectarea momentului în care datele sursă au fost alterate, având în vedere ca nu este posibil ca două surse sa producă același hash. Datele pot fi un fișier, un hard drive, un pachet de trafic pe o rețea, sau un email. Valoarea hash este folosita , pe scurt, pentru detectarea încălcării integrității datelor.
De exemplu, o valoare hash calculată acum poate fi comparată cu o valoare hash creată cu o săptămâna în urmă. Dacă cele doua valori coincid, atunci datele nu au fost schimbate. Figura de mai jos arată funcționalitatea de bază a unui hash sau a unei valori MAC.
Figura 2.8 MAC-ul este calculat de emițător și de receptor folosind același algoritm
Spre deosebire de criptografia tradițională, care transforma datele într-un text criptat, hashing-ul produce o valoare fără a modifica datele originale. Datorită acestei caracteristici speciale, poate fi folosit pentru a proteja sau pentru a verifica integritatea datelor.
Punctul forte al hashing-ului stă în faptul că poate fi realizat într-o singură direcție. Este imposibilă din punct de vedere matematic conversia unei valori hash în datele originale. Deci, dacă cineva obține valoarea hash, nu va putea recrea datele originale care au produs-o.
Cu toate acestea, hashing-ul nu este în totalitate rezistent la atacuri.
Cele mai sigure sisteme stochează parolele în baza de date de conturi proprie într-o formă hash. Algoritmii de hash nu pot fi efectuați invers, deci, în general, e o soluție sigură. Însă, deoarece algoritmul de hash folosit de un software comercial este cunoscut, hash-urile parolelor stocate pot fi exploatate.
Utilizarea funcțiilor hash în criptografie:
Una dintre cele mai interesante aplicații ale criptografiei actuale este posibilitatea reală de a adăuga intr-un mesaj o semnătură digitală: Autentificarea completa.
Toate acestea începe în anul 1976 când Diffie și Hellman au prezentat un model de criptare asimetric cu cheie publica, cu sistemele vechi de criptare cu cheie simetrică, acest lucru a fost imposibil si foarte complex.
Administrarea cheilor
Administrarea cheilor este noțiunea folosită pentru descrierea mecanisme, tehnici și procese folosite pentru a proteja, folosi, distribui , stoca și controla cheile criptografice. O soluție de administrare a cheilor ar trebui să respecte următoarele reguli de baza :
cheia ar trebui să fie suficient de lungă pentru a oferi nivelul necesar de protecție;
cheile ar trebui stocate și transmise într-un mod securizat;
cheile ar trebui să fie într-adevăr aleatorii, ar trebui să folosească întregul spectru al spațiului de chei și nu ar trebui să se repete niciodată;
perioada de viața a unei chei ar trebui să corespundă sensibilității datelor pe care le protejează;
cu cât mai mult e folosită o cheie, cu atât mai scurtă ar trebui să fie perioada sa de viață;
cu cât mai scurtă lungimea cheii, cu atât mai scurtă ar trebui sa fie perioada sa de viață;
cheile ar trebui să aibă o rezervă sau să fie recuperate în caz de urgență;
cheile ar trebui să fie distruse în mod adecvat la sfârșitul perioadei lor de viață.
Administrarea centralizată a cheilor
Administrarea centralizată a cheilor oferă control total asupra lor organizației și ia această
responsabilitate de la utilizatorii finali. O asemenea soluție necesită o investiție semnificativă în infrastructură, capabilitățile de procesare, supravegherea administrativă și lungimea de bandă pentru comunicare.
Într-o soluție de administrare centralizată, copiile tuturor cheilor criptografice sunt adeseori stocate într-o rezervă. Acest lucru permite administratorilor să recupereze cheile în eventualitatea unei pierderi a unei chei și oferă administrației posibilitatea să acceseze date criptate oricând are nevoie .
Alte aspecte importante ale administrării centralizate a cheilor sunt:
cheile trebuie create doar pe servere dedicate , securizate;
cheile pot fi distribuite doar unor utilizatori autorizați și doar într-o maniera securizată;
cheile pot fi modificate doar de administratori;
revocarea cheilor și a certificatelor digitale corespunzătoare se află la discreția organizației.
Figura 2.9 Ilustrează o facilitate de generare a cheilor centralizată
Administrarea centralizată a cheilor e adeseori inacceptabilă pentru o comunitate de utilizatori deschisă sau publică deoarece nu oferă niciun control pentru confidențialitate sau integritate. De fapt, fiecare cheie generată de sistemul centralizat e de obicei stocată într-o rezervă. Prin urmare, nimic criptat de un utilizator final nu este complet privat, deoarece un administrator ar putea să extragă cheia din rezervă și să o folosească pentru a decripta un mesaj sau un fișier.
Administrarea descentralizată a cheilor
O schemă alternativă este cunoscută ca și administrarea descentralizată a cheilor. În acest tip de mediu, utilizatorii finali iși generează propriile chei ( simetrice sau asimetrice) și , după necesitate, înregistrează cheile la autoritățile centralizate. De exemplu, pentru a solicita un certificat digital, un utilizator final ar trebui sa transmită doar cheia publică Autorității de Certificare. Cheia sa privată este păstrată mereu privat, astfel încât aceasta e singura entitate în posesia ei. În plus, datorită caracterului cheii publice , compromiterea acesteia nu va rezulta într-o compromitere totală a soluției securizate a utilizatorului.
Figura 2.10 Un sistem de generare de chei descentralizat
Într-un sistem de administrare a cheilor descentralizat, utilizatorii finali sunt singurii responsabili pentru administrarea propriilor chei și pentru folosirea unei rezerve ce asigură toleranța la greșeli. Dacă un utilizator final eșuează în a lua măsurile de precauție necesare, o cheie pierdută sau coruptă ar putea însemna pierderea tuturor datelor criptate cu acea cheie .
Cheile criptografice și certificatele digitale ar trebui stocate într-un mod sigur. Dacă o cheie privată sau o cheie secretă e compromisă vreodată, atunci securitatea tuturor datelor criptate cu acele chei este pierdută. Mecanismele de stocare de încredere trebuie folosite pentru protejarea cheilor de stocare. Există două metode sau mecanisme pentru stocarea cheilor : bazate hardware sau bazate software.
Cheile pot fi stocate fie în soluții hardware, fie în soluții software. Ambele oferă beneficii unice și ambele au neajunsuri. O soluție software oferă mecanisme de stocare flexibile și , adeseori, opțiuni customizabile. Însa, o asemenea soluție e vulnerabilă atacurilor electronice ( viruși sau intruziuni), poate să nu controleze corect accesul și poate să fie ștearsă sau distrusă. Majoritatea soluțiilor software se bazează pe securitatea sistemului de operare gazdă, care nu poate fi suficientă.
Soluțiile hardware nu sunt atât de flexibile. Însa, sunt mult mai sigure și mai de încredere decât soluțiile software. Acestea pot fi scumpe și sunt supuse furtului fizic. Dacă un utilizator nu se află în posesia fizică a soluției de stocare hardware,atunci nu poate avea acces la resursele securizate sau criptate. Exemple comune, dar soluții de stocare hardware a cheii includ smartcard-urile și driverele de memorie flash.
În unele situații se pot folosi mai multe perechi de chei : un set de chei poate fi folosit pentru autentificare și criptare, iar celălalt pentru semnături digitale. Acest lucru permite primei perechi de chei sa fie salvată într-o rezervă și inclusă în backup-urile de date ale unei scheme de administrare centralizată a datelor. Al doilea set de chei este atunci protejat de a fi compromis, iar confidențialitatea semnăturii digitale a deținătorului e protejată, prevenindu-se astfel falsul și folosirea neadecvată.
Scopuri actuale ale criptografiei
Criptografia nu mai reprezintă doar domeniul elitei specializate a matematicienilor și operativelor militare. Aplicațiile sale cu potențial ridicat în ceea ce privește eficiența costului în sistemele moderne de comunicare devin din ce în ce mai numeroase și mai variate. În ciuda vânzărilor dezamăgitoare ale echipamentelor criptografice, se prevede că piața pentru aceste dispozitive se va extinde rapid în următorii ani .
Criptarea este folosită din mai multe motive tehnice/operaționale. Unul dintre cele mai evidente dintre acestea este ascunderea datelor pentru a dobândi confidențialitate și secretizare. Prin codarea unui mesaj în clar, părțile neautorizate pot fi împiedicate din a câștiga acces la datele în mișcare. Accesul la date este astfel controlat atât în cazul unor acte intenționate, cum ar fi căutarea prin fișierele ce aparțin unei alte entități, cât și în cazul unor acte neintenționate, cum ar fi primirea unui mesaj cu un destinatar diferit. Criptarea poate, prin mai multe transformări de criptare și decriptare, să ascundă și adresele sursă și destinație (nume, numere ale utilizatorilor, locațiile sistemelor sursă, precum și alți identificatori) ale mesajele transmise într-o rețea de calculatoare. Pe lângă utilizarea criptării în mod exclusiv, introducerea unor semnale aleatoare cifrate într-un canal de comunicare permit inclusiv ascunderea lungimii și frecvenței mesajului. Această tehnică, folosită mai ales în mediile cu un risc ridicat, cum ar fi cel militar, nu permite inamicului să analizeze traficul rețelei și să formuleze presupuneri studiate despre activități prezente sau viitoare.
Integritatea datelor este un alt scop dorit ce poate fi atins prin criptare. Pentru a preveni modificări nedetectabile sau ștergerea de date , criptarea poate fi folosită ca și o metodă de autentificare. În funcție de modul de operare folosit, aceasta poate dezvălui chiar și cele mai mici modificări. Modificarea sau ștergerea, chiar și a unui singur bit al transmisiei criptate, va face ca restul mesajului decriptat să devină ininteligibil utilizatorului.
Criptarea poate fi folosită de asemenea și pentru a oferi siguranța că utilizatorii sau procesele sunt autorizați să folosească resursele sistemului. Dacă un protocol de înregistrare solicită utilizatorului să ofere o cheie secretă de criptare, atunci capătă multe dintre caracteristicile unei parole. Dacă o aplicație implică accesul la un fișier sensibil, criptat, atunci aceasta va fi împiedicată de la citirea conținutului în clar al fișierului dacă nu deține o cheie corectă .
Detecția și corectarea erorilor și omisiunilor care au fi putut fi cauzate fie de un deranjament tehnic, fie de factorul uman constau într-un alt aspect pe care criptarea îl poate asigura. Modul cipher-feedback este o implementare care aduce imediat în atenția utilizatorului manevrarea incorectă a mesajului în cadrul transmisiei, procesării sau stocării.
Adițional, utilizarea a diferite chei pentru fiecare mesaj poate preveni reproducerea neautorizată a mesajului. Această capabilitate este folositoare mai ales în cazul în care un infractor sofisticat poate introduce în mod repetat pe o linie semnale care induc un bancomat să elibereze bancnote.
Pentru a prezenta o imagine corectă a costurilor și a beneficiilor criptografiei, mai multe amenințări operaționale/tehnice în cazul criptosistemelor ar trebui menționate.
Pierderea sau distrugerea de chei criptografice pot conduce la pierderi de date, precum și la probleme de recuperare și backup.
Datorită faptului că datele criptate pot fi inaccesibile și lipsite de valoare fără cheia potrivită, răscumpărarea cheilor pierdute reprezintă o posibilitate. O funcționare defectă a dispozitivelor criptografice, cum ar fi criptarea sau decriptarea cu un algoritm sau cu o cheie diferită decât cele adecvate, poate de asemenea rezultă în obținerea unor date incomprehensibile sau chiar în pierderea acestora. Eșecul dispozitivelor criptografice nu este neapărat motivul acestor rezultate, însă acestea pot limita operațiile și expune date amenințărilor prezentate, cum ar fi spionajul. Generarea eronată a cheilor criptografice nu afectează informațiile și securitatea sistemului de comunicare , doar dacă rezultatul generării nu este o cheie “slabă” care poate fi ușor descoperită de către criptanaliștii pregătiți. Eșecul în încărcarea de noi chei la momentele potrivite slăbește securitatea sistemului și poate întrerupe operații , dacă alte părți ale unui sistem au încărcat asemenea chei conform unui grafic.
Mai mult, dispozitivele criptografice pot avea caracteristici slab sau deloc documentate care pot diminua perceperea securității conform utilizării criptografiei de către acestea. O caracteristică nespecificată în documentație , asociată cu mai multe implementări hardware anterioare ale US Dată Encryption Standard permitea unui utilizator să obțină ca și ieșire o cheie criptografică secretă la introducerea unui șir de zerouri. La momentul actual, niciun dispozitiv comercializat nu prezintă această caracteristică.
Piața criptografică non-militară oferă o gama variată de dispozitive criptografice pentru prelucrarea datelor digitale, dar și a celor analogice. Transformarea semnalelor vocale, a datelor din sistemele de calculatoare și a datelor reprezentate într-o formă video sau grafică pot fi toate manevrate cu produse criptografice disponibile la momentul actual. Una din problemele asociate cu utilizarea acestora este întârzierea impusă de transformările criptografice. Multe dispozitive disponibile sunt considerate a avea un impact advers asupra rezultatului sistemului. Cum transformările sunt efectuate din ce în ce mai frecvent de dispozitive hardware cu viteză crescută, se prevede că acest defect va înceta să mai fie o piedică în utilizarea lor.
Două principii criptografice fundamentale
Deși în paginile ce urmează vom studia diferite sisteme criptografice, pentru toate acestea există două principii de bază a căror înțelegere este importantă
Redundanța
Primul principiu este acela că toate mesajele criptate trebuie să conțină redundanță, adică informație ce nu este necesară pentru înțelegerea mesajului. Un exemplu poate clarifica de ce este nevoie de aceasta. Să considerăm o companie ce se ocupă cu comenzile prin poștă The Couch Potato (TCP), cu 60000 de produse. Crezând că vor fi foarte eficienți, programatorii de la TCP au decis că mesajele de comandă trebuie să conțină un nume de client pe 16 octeți, urmat de un câmp de date pe 3 octeți (1 octet pentru cantitate și 2 octeți pentru numărul produsului). Ultimii 3 octeți vor fi criptați folosind o cheie foarte lungă, cunoscută doar de client și de TCP. La prima vedere sistemul pare sigur și, într-un anumit sens, chiar este, deoarece intrușii pasivi nu pot decripta mesajele. Din nefericire, există o slăbiciune fatală a acestui sistem, care îl face inutilizabil. Să presupunem că o funcționară recent concediată vrea să se răzbune pe TCP pentru că a dat-o afară. Chiar înainte de a pleca, ea ia lista clienților cu ea. Ea lucrează în timpul nopții și scrie un program care generează comenzi fictive folosind nume de clienți reali. Deoarece nu posedă lista cheilor, ea pune numere aleatorii în ultimii 3 octeți și trimite sute de comenzi la TCP. Când sosesc aceste mesaje, calculatorul TCP folosește numele clientului pentru a localiza cheia și a decripta mesajul. Din nefericire pentru TCP, aproape fiecare mesaj de 3 octeți este valid, iar calculatorul începe să tipărească instrucțiunile trimise. Deși pare ciudat ca un client să comande 837 de seturi de leagăne pentru copii sau 540 de cutii cu nisip, calculatorul poate crede că acesta plănuiește să deschidă o mulțime de locuri de joacă. În acest mod, un intrus activ (ex-funcționara) poate cauza probleme imense, chiar dacă ea nu poate înțelege mesajele pe care le generează calculatorul ei. Problema poate fi rezolvată prin adăugarea unor informații redundante tuturor mesajelor. De exemplu, dacă mesajele de comandă sunt extinse la 12 octeți, dintre care primii 9 trebuie să fie zerouri, atunci acest atac nu ar mai fi funcțional, deoarece ex-funcționara nu mai poate genera un șir mare de mesaje valide.
Morala povestirii este aceea că toate mesajele trebuie să conțină o cantitate considerabilă de informație redundantă, astfel încât intrușii activi să nu poată trimite mesaje aleatorii care să fie interpretate ca mesaje valide. Totuși, adăugarea informației redundante facilitează spargerea mesajelor de către criptanaliști. Să presupunem că afacerea de comenzi prin poștă este foarte competitivă și competitorul principal al companiei The Coach Potato, The Sofa Tuber, ar vrea tare mult să știe câte cutii de nisip vinde TCP. În consecință, ei ascultă linia telefonică a TCP. În schema originală, cu mesaje de 3 octeți, criptanaliza era aproape imposibilă, deoarece după ghicirea unei chei, criptanalistul nu avea cum să-și dea seama dacă a ghicit corect. În fond, aproape orice mesaj este tehnic corect. Cu noua schemă de 12 octeți, este ușor pentru criptanalist să distingă un mesaj valid de unul invalid. Astfel că avem: Principiul criptografic 1: Mesajele trebuie să conțină redundanță. Cu alte cuvinte, după decriptarea unui mesaj, receptorul trebuie să poată distinge dacă este valid printr-o simplă inspectarea a acestuia și prin execuția unui calcul simplu. Această redundanță este necesară pentru a împiedica intrușii activi să înșele receptorul trimițându-i un mesaj fals și determinându-l să acționeze în numele mesajului decriptat. Cu toate acestea, aceeași redundanță facilitează intrușilor pasivi spargerea sistemului, deci aici apar unele probleme.
Mai mult decât atât, redundanța nu trebuie niciodată să fie folosită sub forma a n zerouri la începutul sau sfârșitul unui mesaj, deoarece trecerea unor astfel de mesaje prin anumiți algoritmi criptografici dă rezultate predictibile, simplificând criptanaliza. Un cod CRC polinomial ar fi o alegere mult mai bună decât un șir de 0 deoarece receptorul îl poate verifica ușor, dar pentru criptanalist el reprezintă o muncă în plus. Și mai bună ar fi folosirea unei dispersii criptografice (eng.: cryptographic hash), un concept pe care-l vom explora mai târziu. Să ne întoarcem un moment la criptografia cuantică și să vedem care este rolul redundanței acolo. Datorită interceptării fotonilor de către Trudy, câțiva dintre biții cheii acoperitoare a lui Bob vor fi eronați. Bob are nevoie de redundanță în mesajele primite pentru a determina faptul că există erori. O formă foarte primitivă de redundanță este transmiterea mesajului de două ori. Dacă cele două copii nu sunt identice, Bob știe că fie fibra optică are foarte multe zgomote, fie cineva interferează cu transmisia. Bineînțeles că trimiterea de două ori a fiecărui lucru este extrem de ineficient: o metodă mult mai eficientă de a detecta și corecta erorile este folosirea unui cod Hamming sau Reed-Solomon. Dar trebuie să fie clar că o anumită redundanță este necesară pentru a putea distinge între un mesaj valid și unul invalid, mai ales în prezența unui intrus activ.
Prospețimea
Cel de-al doilea principiu criptografic este acela că trebuie luate anumite măsuri pentru ne asigura că fiecare mesaj primit poate fi verificat că este proaspăt, adică a fost trimis foarte recent. Această măsură este necesară pentru a împiedica intrușii activi să retransmită mesaje mai vechi. Dacă nu se iau nici un fel de astfel de măsuri, ex-funcționara noastră ar putea asculta linia telefonică a TCP și ar putea retransmite mesajele valide trimise anterior. Reformulând această idee obținem: Principiul criptografic 2: Este necesară o metodă pentru a dejuca atacurile prin replicarea mesajelor O astfel de măsură este de a include în fiecare mesaj o amprentă de timp validă doar pentru, să spunem, 10 secunde. Receptorul trebuie doar să păstreze mesajele primite în ultimele 10 secunde, pentru a compara mesajele nou sosite cu anterioarele și pentru a filtra duplicatele. Mesajele mai vechi decât 10 secunde pot fi aruncate, deoarece orice replică a lor trimisă mai târziu de 10 secunde va fi refuzată ca fiind prea veche.
Funcțiile 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 asigura 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).[17]
Î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 2.13.
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ă, această având un sens larg, desemnând orice bloc constructiv.
Figura 2.11 Un algoritm de criptare și un algoritm de decriptare[17]
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 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 2.14.
Figura 2.12 Taxonomie a criptosistemelor [17]
Capitolul III
Metode de criptare.Algoritmi simetrici și algoritmi asimetrici
În realitate, interesul criptografiei cu chei publice este de a se ocupa de multe probleme de securitate, și de a oferi o mare flexibilitate. Permite găsirea de soluții la problemele cum ar fi autentificarea, identificarea persoanelor și autentificarea documentelor.
Pe de altă parte, ca și criptografia cu cheie secretă, criptografia cu cheie publică permite să elaboreze sisteme de criptare, asigurînd confidențialitatea comunicațiilor.
Să presupunem că Alice vrea să comunice cu Bob în mod privat. Alice găsește într-un director cheia publică a lui Bob, și criptează mesajul cu această cheie. Când Bob primește textul criptat, el folosește cheia sa privată pentru a decripta mesajul și recupera textul clar.
Ambele chei au roluri complet diferite, acesta este motivul pentru care vorbim de criptare asimetrică ,în opoziție cu criptarea simetrică care utilizează aceeași cheie pentru a cripta și decripta și sunt numite criptosisteme simetrice.
Criptografia cu cheie publică are un alt avantaj față de criptografia cu cheie secretă. Dacă n utilizatori doresc să comunice printr-un sistem cu cheie secretă, fiecare trebuie să aibă o cheie diferită pentru fiecare persoană din grup. De aceea este nevoie pentru a genera un total de n (n-1) chei.
Într-un proces de criptare ,cel mai important este cheia și algoritmul.Fiindcă algoritmii sunt formule matematice destul de complicate care dirijează metodă după care va fi tranformat textul original într-un text absolut necunoscut.Cheia însă este reprezentată de un șir de biți inserată într-un algoritm.Astfel pentru că două persoane să poată comunica între ele,ele trebuie să posede același algoritm de criptare,iar în unele cazuri este necesar să aibă și aceeași cheie.
Algoritmii criptografiei folosesc fie chei simetrice, numite și chei secrete, fie chei asimetrice, numite chei publice. [4,6,7,19]
3.1 Criptografia simetrică
Criptografia simetrică, este reprezentată de faptul ambele părți care va dori să cripteze sau să decripteze un mesaj va folosi aceeași cheie. Cheile simetrice mai sunt numite și chei secrete, fiindcă această modalitate de criptare se bazează pe faptul că fiecare utilizator în parte trebuie să păstreze cheia secretă.Dacă această cheie ajunge în mâinile unui intrus, acesta va pute decripta mesajul interceptat folosind această cheie.[3]
Securitatea algoritmului simetric depinde în totalitate de eficacitatea și modul în care este păstrată și protejată cheia.În cazul în care o cheie este aflată atunci toate mesajele care au fost codate pot fi citite de către oricine care are acea cheie. Deoarece ambii utlizatori folosesc aceeași cheie pentru a cripta și decripta mesaje, sistemele de criptare simetrice asigura confidențialitate, dar nu pot oferi autenticitate sau non-repudiere. Nu există nici o modalitate de a dovedi cine a trimis într-adevăr mesajul dacă doi oameni folosesc aceași cheie.[5]
Sistemele simetrice sunt pe larg folosite fiindcă sunt rapide și greu de spart. Iar dacă facem o comparare între algoritmii simetrici și asimetrici,cei simetrici sunt cu mult mai rapizi în ceea ce privește criptarea unei cantități mari de date ,și datele criptate sunt foarte greu de aflat.
Figura 3.1 Algoritmul simetric
După ce mesajul a fost criptat cu cheia secretă, întrebarea este cum să împărtășim cheia secretă care a fost utilizată pentru a cripta mesajul.Această este cea mai mare problema istorică cu care sa confruntat criptografia. Este cunoscut ca problema de distribuției a cheii.La ce servește să utilizezi cel mai bun algoritm de criptare din lume, dacă nu poți împărți cheia cu destinatarul mesajului?
Timp de secole, criptografia s-a confruntat cu puțin succes la această problema, până cînd în 70 sa inventat criptografia cu cheie publică.Iar în cele ce urmează vor fi reprezentați doi dintre cei mai cunoscuți algoritmi cu cheie private:DES și AES.
Algoritmul DES
Scurt istoric al dezvoltării DES
DES (Dată Encryption Standard- standard de cifrare a datelor) este un algoritm dezvoltat inițial de IBM la cererea BNS (Biroul Național de Standarde, Biroul Național de Standardizare în prezent numit NIST, Institutul Național de Standarde și Tehnologie) din SUA,și mai târziu modificat și adoptat de către guvernul Statelor Unite în 1977 ca și standard de cripare a tuturor informațiilor sensibile neclasificate. Mai târziu, în 1980, NIST standardizează diferite moduri de funcționare a algoritmului. Acesta este cel mai studiat și utilizat dintre toți algoritmii cu cheie simetrică.
Numele original al algoritmului,așa cum l-a numit IBM, a fost Lucifer. El a lucrat pe blocuri de 128 biți, având aceeași cheie egal lungime. Acesta a fost bazat pe operații logice booleene și ar putea fi ușor de implementat atât în software cît și hardware. În urma modificărilor introduse de BNS,practic consistent s-a redus în lungime cheia și blocurile.DES cifrează blocuri de 64-biți, de permutare și substituție,iar cu ajutorul unei chei de 64 de biți, dintre care 8 sunt de paritate (folosește de fapt 56 biți),produce astfel 64 de biți pentru criptate.
Figura următoare prezintă un scurt istoric al dezvoltării DES:
Figura 3.2 Scurt istoric al dezvoltării DES
Scopul proiectării DES a fost de a proteja anumite informații secrete ce puteau exista în birourile federale.
Datorită inexistenței unei tehnologii criptografice generale în afara domeniului securității naționale și produse de securitate, cum ar fi cele de criptare, erau necesare în aplicațiile secrete folosite pe calculatoarele federale și guvernamentale, NBS (Național Bureau of Standards) a inițiat în 1973 un proiect pentru asigurarea securității sistemelor de calcul, proiect care cuprindea și dezvoltarea unui standard pentru criptarea datelor din calculatoare.[23,24]
Prezentarea algoritmului DES
DES oferă un algoritm implementabil în dispozitivele electronice pentru criptarea– decriptarea datelor. Ideea de "standardizare" în criptografie este revoluționară. Înaintea publicării lui DES, nu se cunoștea o altă publicație conținând descrierea unui algoritm criptografic în uz.
Caracteristici:
lungimea unui bloc este de 64 de biți;
cheia este pe 64 de biți dintre care 8 sunt biți de paritate;
flexibilitatea implementării și utilizării în diferite aplicații;
fiecare bloc cifrat este independent de celelalte;
nu este necesară sincronizarea între operațiile de criptare/decriptare ale unui bloc;
pentru creșterea securității se poate aplică algoritmul T-DES (triplu DES) care constă în iterarea de trei ori a algoritmului DES.
Figura 3.2 Prezentarea generală a algoritmului DES
În figura 3.2 se da o schemă generală pentru algoritmul DES. Există două intrări în algoritm și anume un bloc de text în clar de 64 de biți și o cheie de 56 de biți.
Din figura se poate observă că în partea dreapta a desenului avem generarea cheilor iar în partea stânga se prelucrează textul. Intrarea în bloc se va supune întâi unei permutări inițiale după care au loc 16 iteratii succesive, o interschimbare pe 32 de biți și în încheiere se va aplică inversa permutării inițiale.
În cazul algoritmului DES, și cheia de 56 de biți va fi supusă unei permutări de tipul 1 după care va fi împărțită în două blocuri de 28 de biți inițial. După aceasta, asupra ambelor părți astfel obținute se va efectua o rotație circulară spre stânga cu un număr de biți corespunzător numărului iteratiei. Prezentarea unei singure iteratii a algoritmului DES se da în figura 3.3.
Figura 3.3 Descrierea unei singure iterații a algoritmului DES
În ciuda complexității sale, algoritmul DES are, la baza, un cifru cu substituție monoalfabetica, folosind caractere pe 64 de biți. Ori de câte ori se cifrează același bloc de text clar, la ieșire se va obține același bloc de text cifrat. Un criptanalist poate exploata această proprietate pentru a reuși să decripteze o criptare realizată cu ajutorul algoritmului DES.
Plecând de la algoritmul “Lucifer” conceput în Laboratoarele IBM a fost dezvoltat algoritmul de criptare DES (Dată Encryption Standard). Algoritmul a fost conceput pentru guvernul Statelor Unite dar și pentru folosință publică. Trebuie de menționat că chiar și cei mai mari experți în domeniul criptografiei fac diverse presupuneri referitor la versiunea algoritmului Lucifer care a fost predecesorul lui DES. În mai 1973, revista Federal Register a sintetizat principiile care trebuie să stea la baza proiectării unui algoritm criptografic standard [15]:
algoritmul trebuie să asigure un înalt nivel de securitate;
algoritmul trebuie să fie complet specificat și simplu de înțeles;
securitatea algoritmului trebuie să fie asigurată de cheie și nu trebuie să depindă de păstrarea secretă a algoritmului;
algoritmul trebuie să fie disponibil tuturor utilizatorilor;
algoritmul trebuie să fie adaptabil pentru diverse aplicații;
algoritmul trebuie să fie implementabil pe dispozitivele electronice;
algoritmul trebuie să fie eficient în utilizare;
algoritmul trebuie să poată fi validat;
algoritmul trebuie să fie exportabil.[15]
DES a fost oficial adoptat că standard federal la 23 noiembrie 1976, iar în 1977 specificațiile sale au fost făcute publice.
Algoritmul DES este o combinație complexă, folosind două blocuri fundamentale în criptografie: substituția și permutarea (transpozitia). Acest cifru bloc acceptă un bloc de 64 de biți la intrare și generează un bloc cifrat de 64 de biți. DES este un algoritm simetric. Același algoritm și aceeași cheie sunt folosiți atât la criptare cât și la decriptare.
Algoritmul este constituit din 16 cicluri repetate ale blocurilor fundamentale. Textul inițial este descompus în blocuri de 64 de biți. Cheia este de 64 biți din care doar 56 sunt efectivi, ceilalți fiind biți de paritate.Folosirea substituției provoacă confuzie prin sistematică substituire a unor biți cu alții. Transpozițiile provoacă difuzie prin re-ordonarea biților. Algoritmul folosește numai operații aritmetice și logice clasice cu număr de până la 64 de biți, ceea ce face relativ ușor de implementat atât software cât mai ales hardware: unul din scopurile declarate ale algoritmului fiind ușoară lui implementare hardware într-un cip specializat.
Cu algoritmul DES se poate face cifrarea și decifrarea unui mesaj. Deși DES a fost cel mai celebru algoritm al secolului XX, la momentul de față, este considerat că fiind nesigur pentru multe aplicații. Pare paradoxal, dar această este consecință măririi considerabile a puterii de calcul de la confirmarea DES-ului că un standard criptografic și până în anul 2000. Slăbiciunea pleacă de la lungimea mică a cheii de 56 biți. Varianta algoritmului cunoscută că triplu-DES este cea care e considerată sigură și la această ora . Insecuritatea DES-ului pleacă de la premisa că un atac „în forță” are șanse de reușită în condițiile puterii de calcul existente (a se vedea atacurile EFF); până în anul 2004, cel mai eficient atac este datorat criptanalizei liniare, care, folosind 243 texte cunoscute, generează o complexitate temporală de 239-43 (Junod 2001); în condițiile unui atac cu text ales complexitatea poate fi redusă de patru ori (Knudsen și Mathiassen, 2000).
Exemplu:
DES lucrează pe biți, sau numere în baza doi, 0 și 1,obișnuite pentru calculatoare. Fiecare grup de 4 biți formează un hexazecimal, sau număr în baza 16.Numărul binar "0001" își are reprezentantul în baza 16 numărul "1", numărul binar "1000" este egal cu numărul "8" în hexazecimal,"1001" este egal cu numărul "9" în baza 16, "1010" este egal cu numărul "A" în baza 16, și "1111" este egal cu "F" în baza 16.
DES funcționează pe principiul criptării a unor grupuri de 64 biți, care sunt egale cu numere în baza 16, pentru a realiza criptarea DES se utilizează "chei", care sunt de fapt niște numere lungi în baza 16, ba chiar reprezentate pe 64 biți. Totodată, fiecare a 8-a cheie este ignorată de algoritmul DES, astfel cheia cea mai eficientă, are o lungine de 56 biți. În orice caz, 64 biți este numărul rotujit în jurul căruia DES este organizat.
De exemplu, dacă considerăm mesajul 8787878787878787", și îl criptăm cu cheia DES "0E329232EA6D0D73", ajungem la textul "0000000000000000". Dacă acest text este decriptat cu aceeași cheie secretă DES "0E329232EA6D0D73", atunci ajungem la textul original "8787878787878787".
Acest exemplu este precis pentru că textul nostru avea exact 64 de biți. Acest lucru s-ar adeveri dacă textul ar avea o lungime egală cu multiplii de 64 de biți, dar majoritatea mesajelor nu vor face parte din această categorie.
Dacă luăm că exemplu textul "Your lips are smoother than vaseline", acest text are 38 de biți (76 de cifre lungime).Astfel acest text trebuie completat cu câțiva extra biți, la coadă pentru criptare. Odată ce mesajul criptat a fost decriptat, acești extra biți, sunt șterși. Sunt de asemena mai multe metode de completare.Aici vom adaugă doar zerourile la coadă, astfel mesajul va fi multiplu de 8 biți. (16 cifre hexa sau 64 biți).
Textul "Your lips are smoother than vaseline" este în hexazecimal: "596F7572206C6970 732061726520736D 6F6F746865722074 68616E2076617365 6C696E650D0A".
Se observă că primele 72 de cifre hexazecimale reprezintă textul în engelza, pe când 0D reprezintă caracterul "Enter" și "0A" codul hexa pentru caracterul " sfârșit de linie" arătând că mesajul codat s-a terminat. După aceea se completează cu câteva zerouri la coadă pentru a obține un nr. hexazecimal cu 80 de cifre.: "596F7572206C6970 732061726520736D 6F6F746865722074 68616E2076617365 6C696E650D0A0000".
Dacă după aceea codificăm, mesajul 64 biți deodată folosind cheia DES 0E329232EA6D0D73 ca mai sus obținem textul cifrat"C0999FDDE378D7ED 727DA00BCA5A84EE 47F269A4D6438190 9DD52F78F5358499 828AC9B453E0E653". Acesta este codul secret ce poate fi transmis pentru depozitare.Decriptarea textului cifrat reface mesajul original "Your lips are smoother than vaseline".
DES în detaliu
DES este un cifru bloc,adică operează pe bloc de texte de mărimi date (64-bits) și returneazaa blocuri de text cifrat de aceleași mărimi. Deși DES duce la o permutare de aranjamente posibile de 64 biți fiecare putând fi sau 0 sau 1.Fiecare bloc de 64 biți este divizat în două blocuri de 32 biți fiecare, unul stânga jumate bloc L și jumate dreapta R. (Această divizare este folosită doar în anumite operații.)
Exemplu:
Fie M textul mesaj M = 0123456789ABCDEF, fiecare M este în hexazecimal (baza 16) format. Rescierea M în formatul binar, obținem 64-bit blocuri de text:
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
L = 0000 0001 0010 0011 0100 0101 0110 0111
R = 1000 1001 1010 1011 1100 1101 1110 1111
Primul bit a lui M este "0". Ultimul bit este "1". Se citește de la stânga la dreapta. DES operează pe blocuri de 64-bit folosind chei de 56 biți.Cheile sunt actual depozitate că fiind 64 biți lungime, dar al 8-lea bit este nefolosit adică (8, 16, 24, 32, 40, 48, 56, și 64),și sunt reduși la 56 biți.
Exemplu: Fie K cheia hexazecimala K = 133457799BBCDFF1. Această ne da nouă cheia binară(substituind 1 = 0001, 3 = 0011, etc., și gruparea tuturora în câte opt biți, din care ultimul din fiecare grupa fiind neutilizat.
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
Algoritmul DES folosește următorii pași:
Pasul 1: Crearea a 16 subchei, fiecare de lungime 48.
Al 64-bit ce formează cheia este permutată în funcție de următorul tabel, PC-1. De la prima intrare în tabel este "57", asta însemnând că al 57-telea bit din cheia originală K devine primul bit al cheiei permutate K+. Al 49-lea bit din cheia originală devine al doilea bit al cheii permutate. Al 4-lea bit al cheii originale este ultimul bit al cheii permutate. A se avea în vedere doar cei 56 biți al cheii originale apare în cheia permutată.
PC-1
–––––––––––––
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
–––––––––––––
Exemplu: Din cheia originală formată din 64-bit
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
obținem permutarea de 56 biți
K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
următorul pas, împarte acestei chei în jumătate:stânga și dreapta , și , unde fiecare jumătatea are 28 biți.
Exemplu: Din cheia permutată K+, obținem:
= 1111000 0110011 0010101 0101111
= 0101010 1011001 1001111 0001111
Cu si definită, acum creăm 16 blocuri si , 1<=n<=16. Fiecare pereche din blocuri si este format din perechea de dinainte si , respectiv, for n = 1, 2, …, 16, folosind o planificare de "deplasări la stînga" din blocul anterior.Pentru a face o deplasare, se mută fiecare bit cu un loc la stînga, exceptînd primul bit, ce este deplasat la sfîrșitul blocului.
Numărul de iteratii Numărul deplasărilor la stînga
–––––––––––––––––––-
1 1
2 1
3 2
4 2
5 2
6 2
7 2
8 2
9 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1.
–––––––––––––––––––-
Acest lucru înseamnă, de exemplu, si se obțin din și , respectiv, din două deplasări la stînga, și si se obțin din si , respectiv, dintr-o deplasare la stînga. În toate cazurile, cu o deplasare la stînga se dorește o rotație de biți un loc la stînga,astfel încît după fiecare o singură deplasare la stînga biții de pe poziția a 28-a reprezintă biți ce au fost înainte în pozițiile 2, 3,…, 28, 1.
Exemple: Din prechile originale pare si obtinem:
= 1111000011001100101010101111
= 0101010101100110011110001111
= 1110000110011001010101011111
= 1010101011001100111100011110
= 1100001100110010101010111111
= 0101010110011001111000111101
= 0000110011001010101011111111
= 0101011001100111100011110101
= 0011001100101010101111111100
= 0101100110011110001111010101
= 1100110010101010111111110000
= 0110011001111000111101010101
= 0011001010101011111111000011
= 1001100111100011110101010101
= 1100101010101111111100001100
= 0110011110001111010101010110
= 0010101010111111110000110011
= 1001111000111101010101011001
= 0101010101111111100001100110
= 0011110001111010101010110011
= 0101010111111110000110011001
= 1111000111101010101011001100
= 0101011111111000011001100101
= 1100011110101010101100110011
= 0101111111100001100110010101
= 0001111010101010110011001111
= 0111111110000110011001010101
= 0111101010101011001100111100
= 1111111000011001100101010101
= 1110101010101100110011110001
= 1111100001100110010101010111
= 1010101010110011001111000111
= 1111000011001100101010101111
= 0101010101100110011110001111
Acum formăm cheile , pentru 1<=n<=16, aplicând urmatorul tabel de permutări fiecărei din perechile concatenate . Fiecare pereche are 56 biți, dar PC-2 utilizează doar 48 din acestea.
PC-2
–––––––––––-
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
–––––––––––-
Totodată, fiecare prim bit al este al 14-lea bit al lui , al doilea bit este al 17-lea, și tot așa, sfârșindu-se cu al 48-lea bit al lui fiind al 32-lea bit al lui .
Exemple: Pentru prima cheie avem
= 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110
și, după ce aplicăm permutările PC-2, devine
= 000110 110000 001011 101111 111111 000111 000001 110010
Pentru fiecare cheie avem
= 011110 011010 111011 011001 110110 111100 100111 100101
= 010101 011111 110010 001010 010000 101100 111110 011001
= 011100 101010 110111 010110 110110 110011 010100 011101
= 011111 001110 110000 000111 111010 110101 001110 101000
= 011000 111010 010100 111110 010100 000111 101100 101111
= 111011 001000 010010 110111 111101 100001 100010 111100
= 111101 111000 101000 111010 110000 010011 101111 111011
= 111000 001101 101111 101011 111011 011110 011110 000001
= 101100 011111 001101 000111 101110 100100 011001 001111
= 001000 010101 111111 010011 110111 101101 001110 000110
= 011101 010111 000111 110101 100101 000110 011111 101001
= 100101 111100 010111 010001 111110 101011 101001 000001
= 010111 110100 001110 110111 111100 101110 011100 111010
= 101111 111001 000110 001101 001111 010011 111100 001010
= 110010 110011 110110 001011 000011 100001 011111 110101
Atâta tot în ceea ce privește subcheile. Acum să luăm în considerare mesajul în sine.
Pasul 2: Codificarea fiecărui bloc de date de 64 biți.
Există o permutare inițială IP a 64 de biți de date în mesajul M. Aceasta rearanjeaza biți în conformitate cu tabelul următor,în care intrările din tabel arată noul aranjament de biți de la planificarea inițială. Bitul 58-lea din M va fi primul bit din IP.Al 50-lea bit din M devine al doilea bit dinIP.Al 7-lea bit din M va fi ultimul bit din IP
IP
––––––––––––––
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
––––––––––––––
Exemplu: Aplicând permutarea inițială la blocul de text M, dată înainte , obținem:
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010
Aici al 58-lea bit de M este "1", ce devine primul bit al lui IP. Al 50-lea bit din M este "1", ce devine al doilea bit al IP. Al 7-lea bit din M este "0", ce devine ultimul bit din IP.
Următorul pas se divide blocul permutat IP în prima jumătate stînga de 32 biți, și cealalaltă jumatate dreaptă de 32 , folosind o funcție f ce operează pe două blocuri–un bloc de date de 32 bits și i.
Exemplu: Din IP, obținem ș
= 1100 1100 0000 0000 1100 1100 1111 1111
= 1111 0000 1010 1010 1111 0000 1010 1010
Trecem acum prin 16 iterații, pentru 1<=n<=16, folosind o funcție f ce operează pe două blocuri–un bloc de date de 32 biți și o cheie de 48 biți – pentru a produce un bloc de 32 biți. Fie XOR,atunci pentru n de la 1 la 16 calculăm:
=
=+(,)
Acesta rezultă într-un bloc final , pentru n = 16, de . Acesta este , în fiecare iterație, considerăm cei 32 din dreapta biți rezultatul de dinainte și considerăm cei 32 biți din pasul curent. Pentru cei 32 biți din dreapta din pasul curent , aplicăm XOR cu cei din stânga 32 biți din pasul precedent cu calculul f .
Exemplu: Pentru n = 1, avem
= 000110 110000 001011 101111 111111 000111 000001 110010
= R0 = 1111 0000 1010 1010 1111 0000 1010 1010
=+(,)
Necesitatea de a explica cum funcționează functia f. Pentru a calcula f, extindem fiecare bloc n-1 de la 32 de biți la 48 de biți (pentru a se potrivi dimensiunea sub-cheile). Aceasta se face cu ajutorul unui tabel de selecție care repetată unii dintre biții din . Noi numim acest tabel a functiei Y.Prin urmare, Y () are un bloc de intrare de 32 de biți și un bloc de ieșire de 48 de biți.
Y este astfel încât ieșirea 48 de biți, scrisă în 8 blocuri de 6 biți fiecare, sunt obținute prin selectarea biților la intrările sale, în conformitate cu următorul tabel:
Tabelul Y
–––––––––––-
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
–––––––––––-
Deșii primii 3 biți din Y() sunt biți din poziția 32, 1 si 2 din pe cand ultimii 2 biți din Y() sunt biții din pozițiile 32 si 1.
Exemplu: Calculăm Y() pentru cum urmează:
= 1111 0000 1010 1010 1111 0000 1010 1010
Y() = 011110 100001 010101 010101 011110 100001 010101 010101
(A se vedea fiecare bloc al 4-lea bit original a fost expandat într-un bloc de 6 biți de ieșire)
În calcularea funcției f , aplicăm XOR pentru Y() folosind cheia :
+ Y().
Exemplu: Pentru , Y(), avem:
= 000110 110000 001011 101111 111111 000111 000001 110010
Y() = 011110 100001 010101 010101 011110 100001 010101 010101
+ Y() = 011000 010001 011110 111010 100001 100110 010100 100111.
Încă nu am terminat de calculat functia f. În acest moment,am extins de la 32 la 48 biți, folosind tabelul de selecție Y și XOR-at rezultatul cu cheia K n. Cu acest proces s-au obținut 48 de biți sau opt grupuri de 6 biți. Acum vom face un lucru ciudat mediu cu fiecare grup de șase biți: utilizîndu-i că direcții în tabelele numite “cutii S”. Fiecare grup de șase biți ne va da o adresă într-o cutie S diferita. Un număr de 4 biți va fi amplasat în această direcție. Acest număr de 4 biți va înlocui originale 6 biți. Rezultatul principal este că cele opt grupe de 6 biți sunt transformate în opt grupe de patru biți (ieșiri 4-biți ale cutii S), într-un total de 32 de biți.
Scriem resultatul anterior, care are 48 biți, în forma:
+ Y() =,
unde fiecare Bi este un grup de șase biți. Acum calculăm
unde se referă la i ieșirea din cutia S.
Pentru a repeta, fiecare din funcțiile , ,…, , se ia un bloc de 6- biți ca și intrare și unu de 4 biți ca bloc de ieșire. Tabelul ce determină este prezentat și explicat mai jos:
Funția
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| –––––––––––––––––––––
0 | 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 | 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 | 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 | 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13.
Dacă este funcția definită în acest tabel și B este un bloc de 6 biți, atunci (B) este determinat cum urmează: Primul și ultimul bit al lui B reprezintă în baza 2 un număr în baza zecimală de la 0 la 3 (sau binar 00 la 11).
Exemplu: Pentru prima rundă, obținem ca și ieșire din cele 8 S cutie:
+ Y() = 011000 010001 011110 111010 100001 100110 010100 100111.
= 0101 1100 1000 0010 1011 0101 1001 0111
Etapa finală în calcularea a funcției f este să se facă o permutare P a outputului S-box pentru a obține valoarea finală a lui f:
f = P( )
Permutarea P este definită în următorul tabel. P deține o ieșire 32-biți dintr-o intrare 32-biți permutând biții din blocul de intrare .
P
––––––
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
––––––
Exemplu: Din ieșirile celor opt S cutii:
= 0101 1100 1000 0010 1011 0101 1001 0111
obținem
f = 0010 0011 0100 1010 1010 1001 1011 1011
= + f( , ) = 1100 1100 0000 0000 1100 1100 1111 1111 + 0010 0011 0100 1010 1010 1001 1011 1011 = 1110 1111 0100 1010 0110 0101 0100 0100
În runda următoare, vom avea = , care este blocul tocmai am calculat, iar apoi trebuie să ne calculeze = + f (, ), și așa mai departe, timp de 16 runde. La sfârșitul rundei a șaisprezecea avem blocurile și . Noi apoi inversăm ordinea celor două blocuri în blocul 64 de biți si aplicăm o permutare finală IP-1 definită de urmatorul tabel:
IP-1
–––––––––––––––
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
–––––––––––––––
Această este, ieșirea algoritmului are bitul 40 al blocului de preiesire așa cum este primul bit, bitul 8 ca și cel de-al doilea bit, și tot așa, până la bitul al 25-lea al blocului de preiesire este ultimul bit de ieșire.
Exemplu: Dacă procesăm toate 16 blocuri folosind metod definită mai sus, obținem, la a 16-ea etapă:
= 0100 0011 0100 0010 0011 0010 0011 0100
= 0000 1010 0100 1100 1101 1001 1001 0101
Întoarcem ordinea acestor două blocuri și aplicând permutarea finală la:
= 00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100
IP-1 = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101
ce reprezintă în hexadecimal 85E813540F0AB405.
Aceasta este forma criptată a lui M = 0123456789ABCDEF: numită, C = 85E813540F0AB405.
Decriptarea este simplă, inversarea criptării, urmând aceeași pași ca și mai sus,dar întorcând ordinea în care subcheile se aplică.
Variante de DES
DES multiplu
Unele implementări de DES folosesc triplul-DES. Deoarece DES nu este un grup, textul cifrat rezultat este mult mai greu de spart folosind căutarea exhaustivă: 2112 încercări în loc de 256 încercări.
DES cu sub-chei independente
O altă variantă constă în folosirea unei sub-chei diferite pentru fiecare trecere, în loc de a o genera dintr-o singură cheie de 56 de biți. Deoarece în fiecare din cele 16 treceri se folosește o cheie de 48 de biți, rezultă că lungimea cheii pentru această varianta este de 768 biți, ceea ce va crește semnificativ dificultatea unui atac în forță împotriva algoritmului, acesta având complexitatea de 2768.
DESX
DESX este o variantă DES dezvoltată de RSA Data Security, care a fost inclusă încă din 1968 în programul de securitate pentru poștă electronică MailSafe. DESX folosește o tehnică numită albire, pentru a ascunde intrările și ieșirile DES. În plus față de cheia DES de 56 de biți, DESX are o cheie suplimentară de albire de 64 de biți. Acești 64 de biți sunt operați XOR cu textul în clar înainte de prima trecere DES. 64 de biți suplimentari, calculați că o funcție bijectivă de toți cei 120 de biți ai cheii DES, sunt operați XOR cu textul cifrat înaintea ultimei treceri. Albirea îl face pe DESX mult mai puternic decât DES față de un atac în forță; atacul necesită (2120)/n operații cu n texte în clar cunoscute. De asemenea se îmbunătățește securitatea împotriva criptanalizei liniare și diferențiale; atacul necesită 261 texte în clar date și 260 de texte în clar cunoscute.
CRYPT(3)
CRYPT(3) este o variantă de DES întâlnită în sistemele UNIX. Este folosită în mod obișnuit pentru parole, dar uneori și pentru criptare. Diferența între CRYPT(3) și DES este că CRYPT(3) are o permutare de chei cu 212 posibilități, astfel încât să nu permită folosirea cipurilor DES la construcția unui dispozitiv hardware de spart parole.
DES generalizat
DES-ul generalizat (GDES) a fost proiectat să mărească viteză DES-ului și să întărească algoritmul. Mărimea totală a blocului crește, în timp ce suma calculelor rămâne constanța.
GDES operează pe blocuri de text în clar de lungime variabilă. Blocurile criptate sunt împărțite în q sub-blocuri; numărul exact depinde de mărimea totală a blocului. În general q este egal cu lungimea blocului împărțită la 32.
Funcția f este calculată o dată la fiecare trecere, pe ultimul bloc din dreapta. Rezultatul este operat XOR cu toate celelalte părți, care sunt apoi rotițe spre dreapta. GDES are un număr variabil de treceri, n. Există o mică modificare la ultima trecere, astfel încât procesele de criptare și decriptare diferă doar prin ordinea sub-cheilor. De fapt, pentru q=2 și n=16 se obține algoritmul DES.
Biham și Shamir arată că, folosind criptanaliza diferențială, GDES cu q=8 și n=16 este vulnerabil cu doar șase texte în clar date. Dacă se folosesc și sub-chei independente, sunt necesare 16 texte în clar date. Pentru q=8 și n=64, GDES e mai slab decât DES; sunt necesare 249 texte în clar date pentru a-l sparge. De fapt, orice schemă GDES este mai rapidă decât DES, dar este de asemenea mai puțin sigură.
RDES
RDES este o variantă care înlocuiește schimbarea stânga-dreapta de la sfârșitul fiecărei treceri cu o schimbare dependență de cheie. Schimbările sunt fixe, depinzând doar de cheie. Această înseamnă că cele 15 schimbări dependente de cheie se petrec cu 215 posibilități și că această variantă nu rezistă la criptanaliza diferențială.
O idee mai bună este că schimbarea să aibă loc doar în partea dreapta, la începutul fiecărei treceri, iar schimbarea să depindă de datele de intrare și nu de cheie. În RDES-1 se practică o schimbare dependentă de date de cuvinte pe 16 biți la începutul fiecărei treceri. În RDES-2 există o schimbare de octeți dependența de date la începutul fiecărei treceri, după o schimbare ca în RDES-1. Se poate continua în același mod până la RDES-4. RDES-1 este sigură atât față de criptanaliza liniară cât și față de cea diferențială.
3DES
Când s-a descoperit că cheile pe 56 de biți folosite de DES nu sunt suficiente pentru a proteja împotriva atacurilor cu forță brută, 3DES a fost ales ca modalitate simplă de a mari spațiul cheilor fără nevoia de a trece la un nou algoritm. Utilizarea a trei pași este esențială pentru a evita atacurile meet-in-the-middle care sunt eficiente împotriva criptării duble cu DES. Mulțimea funcțiilor de criptare DES cu toate cheile posibile nu formează cu operațiunea de compunere a funcțiilor o structura matematică de grup; dacă ar fi fost așa, construcția 3DES ar fi fost echivalentă cu o operațiune DES și astfel, la fel de nesigură ca aceasta.
Cel mai eficient atac asupra 3DES cu trei chei necesită aproximativ 232 texte clare cunoscute, 2113 pași, 290 criptări DES individuale, și 288locuri de stocare. Acesta este un volum nepractic și NIST consideră criptarea 3DES cu 3 chei utilizabilă până în 2030. Dacă atacatorul caută să descopere oricare din multiplele chei criptografice, există un atac eficient din punct de vedere spațial care descoperă una din 228 chei, dacă se dau câteva texte clare alese pentru fiecare cheie, efectuând 284 operațiuni de criptare.[15]
Algoritmul AES
Cu mult înainte de a apărea calculatoare ,oamenii au avut necesitatea de a schimba mesaje într-o formă sigură, astfel încât mesajele să poată fi citite numai de persoanele care sunt vizate. Plecînd de la această necesitate a luat naștere criptografia ,aceasta prevede tehnici de codare și decodare a informațiilor printr-un schimb securizat.
De la apariția calculatoarelor și mai ales de la creșterea și extinderea rețelelor de comunicație ,necesitatea de a face schimb de informații în siguranță a fost mai mare și tocmai de aceea apar diferite implementări ale cifrurilor.
Există două sisteme de criptare care implică diferite tipuri de algoritmi, sisteme simetrice și asimetrice, fiecare cu avantajele și dezavantajele sale. Din sistemele simetrice face parte și algoritmul Advanced Encryption Standard (AES), care este unul dintre cei mai utilizați algoritmii în prezent , considerat de către Guvernul Statelor Unite, ca un algoritm sigur pentru protecția națională de informații , deși nu se cunosc atacuri eficiente care l-ar putea vulnera .
Astăzi, volumul de informații pentru prelucrate este foarte mare și uneori este necesar pentru a stoca informații sau transmite date în condiții de siguranță. AES este un algoritm simplu și rapid, dar chiar și așa, timpul de calcul pentru a cripta un mare volum de informații poate fi important, este necesar în aceste cazuri de a conta pe procesoare mai rapide.
Este un algoritm de criptare simetric dezvoltat de elevii Vincent Rijmen și Joan Daemen de Katholieke Universiteit Leuven din Belgia, sub denumirea "Rijndael", a fost prezentat în 1997 la concursul organizat de Institutul Național de Standarde și Tehnologie (NIST), pentru a alege cel mai bun algoritm de criptare; algoritmul a câștigat concursul devenid standardul anului 2002,cu unele modificări mai tîrziu el a fost redenumit AES (Advanced Encryption Standard) și a devenit unul dintre cei utilizați algoritmi în prezent.
În 2003, guvernul american a anunțat că algoritmul era suficient de sigur și ar putea fi utilizat pentru protecția națională a informațiilor. Până la momentul actual nu se cunosc atacuri eficiente.
AES ia ca octet de element de bază (8 biți) și vede biții ca elemente într-un cîmp finit,toată funcționarea algoritmului este bazată pe acest domeniu finit de operațiuni, rotații și operațiunile de suma modulo 2.
AES este un algoritm bloc cifru, inițial a fost conceput pentru a avea lungime bloc variabil, dar standardul definește o dimensiune bloc de 128 de biți, așa că prin urmare, datele care trebuie criptate sunt împărțite în segmente de 16 bytes (128 biți) și fiecare segment se vede ca un bloc sau o matrice de 4×4 bytes care este numit de stat.
Fiind simetric,utilizează aceeași cheie pentru criptare și decriptare,lungimea cheii poate fi 128, 192 sau 256 biți specificată de standard, această permite trei implementări cunoscut sub numele de AES-128, AES-192 și AES-256.
Plecînd de la o cheie inițială de 16 bytes (128 biți), care, de asemenea, se poate vedea ca un bloc sau matrice de 4×4 bytes, sunt generate 10 chei, aceste cheii rezultate împreună cu cheia inițială sunt numite subchei.
Rijndael permite lungimi de chei și mărimi de blocuri de la 128 biți la 256 biți, în pași de câte 32 biți. Lungimea cheii și lungimea blocului pot fi alese în mod independent, însă în practică se vor folosi două variante: bloc de 128 biți cu cheie de 128 biți și bloc de 128 biți cu cheie de 256 biți. O cheie de 128 biți permite un spațiu al cheilor de 2128 chei. La 26 mai 2002, AES a fost anunțat standard de criptare în SUA. La moment este cel mai răspândit algoritm de criptare simetrică.[23,24]
Proiectarea AES
În proiectarea AES s-a ținut cont de trei criterii:
rezistență împotriva tuturor atacurilor cunoscute;
viteză și compactitatea codului pe un mare număr de platforme;
simplicitatea proiectării.[15]
Ca și DES, AES folosește substituție și permutări, ca și runde multiple. Numărul de runde depinde de mărimea cheii și de mărimea blocului, fiind 10 în cazul 128/128 și mărindu-se până la 14 pentru cazul 256/128. Spre deosebire de DES, toate operațiile sunt la nivel de octet, pentru a permite implementări eficient hardware și software.
Descrierea AES
În algoritmul AES rezultatul cifrat intermediar este numit vector state, care poate fi reprezentat ca un tabel cu patru linii și patru coloane, acestea fiind numerotate începând de la 0.
Vectorul state se inițializează cu blocul de 128 biți de text în clar (în ordinea coloanelor, cu primii patru octeți în coloana 0) și va fi modificat la fiecare pas al calculului, prin substituții, permutări și alte transformări, rezultând în final blocul de 128 biți de text cifrat.
Avantajele AES relativ la implementare sunt:
AES se poate implementa pe un procesor Pentium Pro și va rula cu o viteză mai mare decât orice alt cifru bloc;
AES se poate implementa pe un dispozitiv Smart Card, folosind un spațiu redus de memorie RAM și un număr redus de cicluri;
transformarea din cadrul unei runde este paralelă prin proiectare, ceea ce constituie un avantaj pentru viitoarele procesoare;
AES nu folosește operațiuni aritmetice, ci doar operații la nivel de șiruri de biți.
Simplitatea proiectării AES
AES nu folosește componente criptografice externe, cum ar fi cutii S, biți aleatori sau șiruri de cifre din dezvoltarea numărului ;
AES nu își bazează securitatea pe interacțiuni obscure sau greu de înțeles între operațiuni aritmetice;
proiectarea clară a AES nu permite ascunderea unei “trape”.
Criptografia asimetrică
Criptarea simetrică este bazată pe o singură cheie secretă care este folosită atît de emițător cît și de destinatar,pe cînd în criptarea asimetrică specificul este că ambele părți au chei absolut diferite,însă cele 2 chei asimetrice sunt în legătură matematică. Dacă mesajul e criptat cu o cheie,pentru a decripta mesajul se necesită cunoașterea celeilalte chei.
În algoritmii asimetrici, perechea de chei e construită dintr-o cheie publică și una privată. Cheia publică poate fi cunoscută de oricine, iar cea privată trebuie să fie cunoscută doar de proprietarul mesajului. Figura 3.4 arată un sistem de criptare asimetric.
Atît cheia publică cît și cea privată, sunt în legătură matematică, dar nu pot fi derivate una din cealaltă.
Figura 3.4 Algoritmul asimetric
Dacă emițătorul criptează un mesaj cu cheia să privată, receptorul trebuie să aibă o copie a cheii publice a transmițătorului pentru a-l decripta. Receptorul poate decripta mesajul celui care a trimis și să hotărască să îi răspundă acestuia în formă criptată. Trebuie doar să cripteze răspunsul cu cheia publică a emițătorului, iar el poate decripta mesajul cu cheia să privată. Nu se poate cripta și decripta folosindu-se exact aceeași cheie, la utilizarea tehnologiei de criptare bazată pe chei asimetrice.
Emițătorul poate cripta un mesaj cu cheia sa privată, iar receptorul îl poate decripta folosind cheia publică a emițătorului. Prin decriptarea mesajului cu cheia publică a transmițătorului, receptorul se asigură că mesajul este într-adevăr de la emițător. Un mesaj poate fi decriptat cu o cheie publică, doar dacă a fost criptat cu cheia privată corespondentă. Se asigură astfel autenticitatea, deoarece emițătorul este singurul care ar trebui să aibă cheia să privată. Când receptorul vrea să se asigure că emițătorul este singurul care poate citi răspunsul, va cripta mesajul cu cheia sa publică. Doar transmițătorul va putea să decripteze mesajul deoarece el este singurul care are cheia privată necesară.[5]
Receptorul poate și să cripteze răspunsul cu cheia sa privată, în loc să folosească cheia publică a emițătorului. Acesta vrea ca să știe că mesajul a venit de la ea și nu de la altcineva. Dacă a criptat răspunsul cu cheia publică a transmițătorului, nu se asigură autenticitate, deoarece oricine poate obține cheia publică a emițătorului. Dacă folosește propria cheie privată pentru a cripta mesajul, emițătorul poate fi sigur că mesajul a venit de la ea și nu de la altcineva. Cheile simetrice nu oferă autenticitate, deoarece se folosește aceeași cheie la ambele capete. Folosirea cheilor secrete nu asigura faptul că mesajul provine de la o anumită entitate.
Pentru ca un mesaj să fie în format securizat și semnat, expeditorul trebuie să cripteze mesajul cu propria cheie privată și să îl decripteze cu cheia publică a receptorului. Receptorul trebuie să decripteze mesajul cu propria cheie privată, iar apoi să îl decripteze din nou cu cheia publică a expeditorului.
Principala problema a cifrurilor asimetrice nu este securitatea lor, dar schimbul de chei. Odată ce expeditorul și destinatarul au făcut schimb de chei,le pot utiliza pentru a comunica în siguranță, dar întrebarea este prin ce canal de comunicare este mai sigur pentru a "comunica" cheia în sine? Ar fi mult mai ușor pentru un atacator să intercepteze cheia pentru a testa combinațiile posibile ale spațiului cheilor. O altă problema este numărul de chei necesare. Dacă există n oameni care au nevoie să comunice, apoi n (n-1) / 2 chei pentru fiecare pereche de oameni care trebuie să comunice privat. Acest lucru poate lucra cu un mic grup de oameni, dar ar fi imposibil de a efectua cu grupuri mai mari.
Sistemele de criptografie cu cheie publică au fost inventate pentru a evita complet problema de schimb de chei. Un sistem de criptare cu cheie publică utilizează o pereche de chei pentru mesaje. Cele două chei aparțin aceleiași persoane care a trimis mesajul. O cheie este publică și poate fi dată la oricare altă persoană.Cealaltă cheie este privată și proprietarul trebuie să o păstreze în așa fel încât nimeni să nu poată avea acces la ea. Expeditorul utilizează cheia publică a destinatarului pentru a cripta mesajul, și o dată criptat, doar cheia privată a destinatarului îl poate decripta. Acest protocol rezolva problema schimbului de chei, care este inerent pentru cifrurile simetrice. Nu este nevoie că expeditorul și receptorul să se pună de acord cu o cheie. Tot ce se cere este faptul că, înainte de comunicarea secretă, expeditorul primește o copie a cheii publice a destinatarului. Mai mult decât atât, aceiași cheia publică poate fi folosită de oricine dorește să comunice cu proprietarul. Prin urmare, doar n chei pare sunt necesare pentru fiecare n oameni care doresc să comunice unul cu celălalt.
Ca și în cazul cifrurilor simetrice bune , cu un sistem bun de criptare cu cheie publică toată securitatea se află în cheie. Prin urmare, dimensiunea cheii este o măsură de securitate a sistemului, dar nu se poate compara dimensiunea de criptare simetrică cu o criptare cu cheie publică pentru măsuri de siguranță. Criptarea asimetrică funcționează mai încet decât criptarea simetrică, dar poate să ofere confidențialitate, autenticitate și non repudiere.
Definiție. O schemă de criptare cu cheie publică constă în trei algoritmi (Figura 3.5):
1. Generatorul de chei, care returnează i pereche cheie secretă-cheie publică (SK, PK);
2. Algoritmul de criptare, care primește la intrare un mesaj m din mulțimea mesajelor posibile, o cheie publică PK și returnează criptotextul c.
3. Algoritmul de decriptare, care ia ca intrare un text cifrat c din mulțimea textelor cifrate, o cheie secretă SK și returnează un mesaj m.
Figura 3.5 Schemă de criptare cu cheie publică
La momentul actual cele mai cunoscute sisteme de criptare cu cheie publlică sunt:
Sistemul RSA: se bazează pe dificultatea descompunerii in factori primi a numerelor mari (de sute de cifre). Este sistemul cel mai larg utilizat in acest moment.
Sistemul El Gamal: se bazează pe dificultatea calculului logaritmului discret intr-un corp finit.
Algoritmul RSA (Rivest, Shamir și Adleman)
La începutul anilor '90, cercetători Rivest, Shamir și Adleman au propus un standard de criptare asimetrică, numindu-l RSA.Algoritmii cu cheie publică cum ar fi RSA, se bazează pe o baza matematică în care fiecare dintre părți are o pereche de chei: una se numește cheie publică, și este destinată pentru a fi distribuită liber (de fapt, cu cît mai amplu este distribuită acesta cheie , cu atît mai puține posibilități vor fi de "uzurpare a identității electronice".
A două cheie este privată și va fi cunoscută doar de legitimul sau proprietar. Baza matematică se bazează pe faptul că nu există nici o modalitate eficientă de factorizare a numerelor care sunt produse de chei mai mari. Factorizarea produsului a două numere prime implică recuperarea textului clar din textul cifrat, cunoscînd cheia publică.[28]
RSA este prima realizare concretă de algoritm de criptare asimetrică și semnătură digital.[17]
În criptografie, RSA este un algoritm de criptare cu cheie publică. Acesta este utilizat pe scară largă în protocoalele de comerț electronic. Sub rezerva multiplelor controverse, de la nașterea lui nimeni nu a reușit să dovedească sau infirme securitatea lui, și este văzut că unul dintre cei mai siguri algoritmi asimetrici.
Numele său a fost dat după cei trei inventatorii ai săi: Ronald Rivest, Adi Shamir și Leonard Adleman, iar din 1983 a fost brevet sub numele de RSA Laboratories până la 20 septembrie 2000, astfel încât utilizarea sa comercială a fost limitată la acea dată. De fapt, primele versiuni de PGP l-a încorporat ca o metodă de criptare și semnătură digitală, dar utilizarea sa este descurajată de versiunea 5 în favoarea altor algoritmi, care până atunci se găseau gratuit.
Securitatea algoritmului RSA se bazează pe faptul că nu există nici o formă eficientă de factorizare a numerelor care să fie produse de două prime mari. Cheile publice și private se calculează începînd cu un număr care se obține ca un produs a două prime mari. Atacatorul, dacă dorește să recupereze un text clar plecînd de la criptogramă și cheia publică, este o problemă de factorizare. Dacă cineva cunoaște cheia publică și factorizarea modulului, poate calcula d.
Cu alte cuvinte, RSA se bazează pe utilizarea unei funcții matematice care este ușor de calculat, dar greu pentru a inversa. Singura modalitate de a o inversa, aceasta este folosind cheia privată.
Generarea cheilor
În continuare vom enumera pașii pentru generarea cheilor RSA.
Se alege două numere prime mari p și q aleatoriu, astfel încât sa fie diferite;
Se calculează n = p*q;
Se calculează z = (p-1)*(q-1), în conformitate cu funcția lui Euler;
Se alege e = 3, prime între ele la z, dacă este necesar se recalculează p și q
Se calculează d pina cind d*e = 1 mod z
Cheia publică este compusă din perechea (e, n), unde n este cunoscut ca modul și e cunoscut ca exponent de criptare . Este folosită de către emitenți pentru cripta mesajul original.
Cheia privată este compusă din perechea (d, n) unde d este exponentul de decriptare. Este folosită de către receptor pentru a recupera mesajul original prin decriptare. Trebuie de reținut că doar d este un secret ,pentru că n asemenea este cunoscut de către public.
Cîteva considerații despre chei:
n trebui să aibă în practică cel puțin 700 de biți, dar cu cît vor fi mai mulți cu atît va fi mai bine.
Securitatea RSA depinde în mare măsură de dificultatea factorizării. Din acest motiv, anumite valori ale lui n ar trebui să fie evitate, pentru caracteristicile sale. De exemplu, dacă p-1 este produs de factori primi mici, este posibil să factorizăm n prin metoda Pollard.
Metoda cea mai rapidă pentru a găsi numere prime mari este de a folosi o proba de primalitate probabilistică.
Pentru calcularea lui e se oferă o valoare mică cunoscută. Poate fi 3 sau 65537. Securitatea sistemului RSA nu va fi afectată.
Calcul lui d poate fi realizat cu ușurință prin aplicarea algoritmului de extindere al lui Euclid deoarece modul lui n și al exponentului de criptare sunt cunoscute.
Securitatea semantică înseamnă că nici o informație a mesajului original nu poate fi recuperată din mesajul criptat. RSA nu îndeplinește această caracteristică. De exemplu, dacă textul clar este reprezentat în valori ASCII și criptează caracter după caracter, sistemul poate fi ușor întrerupt.
Este foarte probabil să se poată rupe cheia RSA fără să factorize modulul n,cu toate acestea, acest lucru nu a fost demonstrat.
Criptarea mesajului
Pentru criptarea unui fișier text se prevede ca fiecare caracter al dosarului să fie convertit într-un număr. Cel mai comun mod de a face acesta, este convertirea fiecărui caracter în codul ASCII corespunzător și adăugînd 100, așa lucrează cu valori de trei cifre. De obicei, această secvență lungă de numere este stocată într-un fișier.
Apoi,se formează mesaje m pentru fiecare bloc j de caractere ce se poate forma. j trebuie să fie determinat astfel încât ca < n < pentru un mesaj m mai mare al modului n să poata fi criptată.
Se va cripta fiecare bloc M astfel formînd cu următoarea expresie:
c = mod n
care reprezintă puterea modulară al modului n și c. Se va obține un mesaj c pentru fiecare bloc m care va trebui să fie stocat într-un alt fisier.
Decriptarea mesajului
Pentru decriptarea unui fișier criptat se citește fiecare bloc salvat anterior. Fiecare bloc reprezintă mesajul criptat c care va fi decriptat cu următoarea expresie:
m= mod n
ce reprezintă alimentarea modulară d modulului n al lui m. Se va obține un mesaj m pentru fiecare bloc c, care va trebui stocat într-un alt fisier. Acest fișier conține fișierul convertit în numere corespunzător celor inițiale.
Exemplu:
Se selectează două numere prime:
p=15
q=11
Pentru a ilustra metoda într-un mod simplu au fost alese numere prime mici.
Se calculează n = p * q = 5 * 11 = 55, astfel n=55.
Se calculează funcția lui Euler z = (p-1) * (q-1) = 4 * 10 = 40,astfel avem z=40.
Se alege e=3 ,se verifică dacă sunt prime între ele,cu z.
Se calculează e*d=1 mod n, 3 * 27 = 1 mod 40 ( = 81 = 2 * 40 + 1),astfel d=27.
Pentru a cripta mesajul "4", vom calcula dimensiunea blocului,vom aplica formula < n < si amintindu-ne ca n=55.
j=1, < n < , 1 < n < 10,
j=2, < n < , 10 < n < 100,
Prin urmare, blocul care urmează să fi criptat trebuie să fie de 2 caractere. "4" devine 52. Se adăuga 100 așa cum este indicat în algoritm dupa care obținem un mesaj mai mare decît 55 si care nu poate fi criptat cu aceste chei.Se formează un bloc de 2 caractere și se aplică următoarea formulă c= mod n:
m=52, c = mod 55 = 140608 mod 55 = 2556 * 55 + 28 = 28 mod 55, astfel avem c=28.
Pentru decriptarea mesajului c,aplicăm formula m= mod n:
c=28, m=2827 mod 55 = 1183768682616191959377597437620164493312 mod 55 = 21523066956658035625047226138548445333 * 55 + 52= 52 mod 55, astfel avem m=52, convertind în caracter ASCII reprezintă valoarea original “4”.
În sistemele de comunicație în timp real, unde viteza de criptare și decriptare este foarte importantă (de exemplu, audio securizate), RSA se folosește doar la începutul comunicației, pentru a transmite cheia secretă de comunicație, dar care pe parcurs este utilizată într-un algoritm cu cheie secretă, AES de exemplu.
Singura cale cunoscută de a sparge complet sistemul RSA este factorizarea modulului, însă nu există nici o demonstrație că aceasta ar putea fi singură cale de a sparge complet RSA-ul. Mai mult, recent s-a instalat mult scepticism cu privire la echivalență între securitatea RSA și problema factorizării întregilor odată cu apariția articolului lui Boneh și Venkatesan [17,26].
Algoritmul ElGamal
Este un algoritm de criptare asimetrică, bazată pe ideea de Diffie-Hellman și funcționează într-un mod similar cu acest algoritm discret.
Este un algoritm, proces sau sistem de criptare bazat pe problemele matematice ale algoritmilor discreți.Utilizînd criptografia asimetrică, ElGamal este format din trei componente: generator cheie, algoritmul de criptare și decriptare.În continuare se descrie algoritmul utilizînd grupul multiplicativ de întregi modulo p.
Acesta a fost descris de Taher ElGamal în 1984 și este utilizat în GNU software Privacy Guard, versiunile recente ale PGP, precum și alte sisteme criptografice. Acest algoritm nu este sub orice brevet, ceea ce îl face liber în al folosi. În timpul 1984 și 1985 ElGamal a dezvoltat un nou criptosistem cu cheie publică bazat pe ireductibilitatea de calcul a problemei logaritmului discret. Deși, în general, nu este folosit direct ca viteză de criptare și autentificare este mai mic decât cel obținut cu RSA, și, de asemenea, semnăturile produse sunt mai lungi, algoritmul ElGamal este de mare importantă în dezvoltarea DSS (Digital Signature standard), NIST (Institutul Național de Standarde și Tehnologie) american.
În semnăturile digitale care sunt utilizate pe scară largă, o parte terță poate falsifica semnăturile dacă x este cheia secretă a semnatarului sau constată coliziuni în funcția hash. Se consideră că ambele probleme sunt suficient de dificile. Semnatarul trebuie să fie atent și să aleagă o cheie diferită de uniform aleatore pentru fiecare semnătură. Acest lucru asigura informații-cheie sau chiar parțiale despre care nu este deductibilă. Alegeri greșite ale cheilor reprezintă scurgere de informații care facilitează ca atacatorul să deducă cheia secretă. În special, în cazul în care două mesaje sunt trimise cu aceeași valoare cheie aleasă este ușor de dedus valoarea cheii secrete. Până în prezent algoritmul ElGamal de criptare / decriptare poate fi considerat un algoritm eficient. Un adversar cu capacitatea de a calcula logaritmi discreți ar putea fi capabil de a sparge o criptare ElGamal. Cu toate acestea, în prezent, algoritmul de calcul al logaritmilor discreți este subexponential cu o complexitate de λ = 1/3, la fel ca și cele două numere prime factorizate, și, prin urmare, imposibilitatea de a efectua o astfel de sarcină în număr mare într-un timp rezonabil.
Algoritmul lui El Gamal este un algoritm cu cheie publică,care folosește aritmetica modulară pe numere mari.Pentru a-l descrie voi începe prin a examina ce valori constituie cheile publice și cele private,precum și modul în care acestea trebuie generate.
Primul pas constă în generarea unui număr prim foarte mare, p,care va fi modulul nostru.Apoi vom genera un alt număr prim foarte mare, a,doar că a e mai mic decât p și relative prim cu p.Următorul pas este generarea unui număr mare secret, A care va fi elementul principal al cheii private.Numărul A trebuie să aparțină intervalului [1,p -2].În final calculăm ultimul număr mare.Cheia publică va fi constituită din p,d și y ,iar cheia privată din A și p. Astfel pentru a cripta un mesaj M trebuie să generăm un alt număr mare k cuprins în intervalul [1,p-2] .Există asfel două valori care trebuie calculate și care vor reprezenta cifrul nostru C,și anume d care se obține din mod p.
Generarea cheilor
Fiecare entitate generează o cheie publică și o cheie privată corespunzătoare. Entitatea A execută următoarele:
1. Generează un număr prim mare p și un generator α al grupului multiplicativ .
2. Selectează un număr întreg a, 1 ≤ a ≤ p-2 și calculează mod p.
3. Cheia publică a lui A este (p, α,), iar cheia privată a lui A este a.
Algoritmul de criptare
Utilizatorul B criptează un mesaj m și-l trimite la utilizatorul A:
1. Obține cheia public ă (p, α,) a lui A.
2. Reprezintă mesajul de criptat într-un număr întreg m din intervalul [0,p-1].
3. Selectează aleator un număr întreg k, 1 ≤ k ≤ p-2.
4. Calculează = mod p și = m( mod p.
5. Trimite textul cifrat c = (,) la utilizatorul A.
Algoritmul de decriptare
Pentru a determina textul clar m din textul cifrat c, utilizatorul A execută următoarele:
Utilizează cheia sa privată a pentru a calcula: mod p
Determină textul clar m astfel: M = ()* mod p
Se observă că = = .
CAPITOLUL IV
Implementarea algoritmului RSA
CONCLUZII
Criptografia a fost utilizată, într-o formă sau alta, timp de 4000 de ani, iar atacurile asupra criprografiei se desfășoară, probabil, de 3999 de ani și 364 de zile. În timp ce un grup de persoane încearcă să găseasca modalități de a ascunde și transmite secrete, un alt grup încearcă să găsească scăpări în ideile și produsesele nou dezvoltate. Acesta poate fi considerat un comportament distructiv sau hackerii pot fi priviți ca un ghimpe în lumea caculatoarelor care necesită dezvoltarea unor produse și medii mai securizate.
Algoritmii criptografici oferă unelte pentru majoritatea protocoalelor din infrastructurile actuale. Algoritmii funcționează pe baza a diverse funcții matematice și oferă diferite tipuri de functionalități și de securitate. Un mare pas înainte s-a făcut când criptarea a trecut de la utilizarea cheii simetrice la criptografia cu cheie publică. Această evoluție a oferit utilizatorilor și întreținătorilor mai multă libertate și flexibilitate, cu privire la comunicarea cu o varietate de diferite tipuri de utilizatori din întreaga lume.
De-a lungul lucrării am însușit care este adevăratul lor al criptografiei și ce s-ar întîmpla în cazul absenței acesteia.Faptul că codificarea informației a devenit indispensabilă vieții actuale,a accelerat și dezvoltarea diferitor metode de protecție a informației.
Pe parcursul cercetării am accentuat și care sunt avantajele/dezavantajele atît a criptării simetrice cît și asimetrice,iar în cele ce urmează ,vor fi accentuate cîteva:
Avantajele criptografiei cu chei simetrice
Algoritmii folosiți permit gestionarea unor volume mari de date, cu viteză relativ bună. În special atunci când este vorba de implementări hard.
Cheile folosite pentru algoritmii simetrici sunt relativ scurte.
Algoritmii simetrici pot fi folosiți ca primitive pentru a construi soluții criptografice incluzînd generatoarele de numere pseudo-aleatoare și funcțiile hash.
Algoritmii cu chei simetrice se pot compune pentru a produce algoritmi mai puternici.
Dezavantajele criptografiei cu chei simetrice
Într-o comunicație cheia trebuie să rămînă secretă în ambele capete.
Într-o rețea cu mulți utilizatori numărul cheilor care trebuie gestionate devine o problemă majoră.
Pentru o comunicație între două părți, practica criptografică impune schimbul cheilor frecvent, uneori chiar la fiecare sesiune, ceea ce în condițiile unui canal nesigur de comunicație este o altă problemă.
Avantajele criptografiei cu chei publice
Dintre cele două chei folosite în algoritmii cu chei publice doar una trebuie ținută secret.
Administrarea cheilor într-o rețea poate fi făcută cu un singur administrator “de încredere”.
În general perechile de chei publice/secrete pot fi folosite pe o perioada lungă de timp fără a fi schimbate.
Într-o rețea de dimensiuni mari numărul de chei necesare este considerabil mai mic decît în cazul criptografiei simetrice
Dezavantajele criptografiei cu chei publice
Viteza algoritmilor cu chei publice (chiar și a celor mai performanți) este de câteva ori mai mică decât a celor cu chei secrete.
Dimensiunea cheilor folosite este mai mare (1024 pentru RSA în comparație cu 64 sau 128 în cazul algorimilor de tip bloc).
Pentru nici un algoritm cu chei publice nu s-a demonstrat că ar fi “sigur”; securitatea lor se bazează prezumția de dificultate a unui set de probleme de teoria numerelor.
Istoria criptografiei cu chei publice este relativ scurtă (din 1970) .
Tema abordată este una de actualitate și care necesită o mare atenție din partea fiecărei persoane în parte.Fiindcă la momentul actual fiecare comunicăm prin rețele de internet,fiecare vorbim la telefon sau face schimb de informații în mediul online.
BIBLIOGRAFIE
[1]. Shon Harris,Exam Guide, Fifth Edition, “All-in-One CISSP”.
[2]. ARX,Version 3.9 “Cryptokit Developers Guide “.
[3]. Dr Keith Martin “Cryptographic Key Management”.
[4]. Hans Delfs, Helmut Knebl, “Introduction to Cryptography: Principles and Applications”, Springer, 2002.
[5]. www.sims.berkeley.edu/courses/is224/s99/GroupC/pr2/s4.html
[6]. Weidong Kou, “Payment Technologies for E-Commerce”, Editor Springer Verlag, 2003.
[7]. dr.ing.Dan Vasilache, “Guvernarea electronica .O introducere.”, 2007.
[8]. C. Popescu, “Introducere în criptografie”, Editura Universitatii din Oradea, Oradea, 2001
[9]. Knudsen J, “Java Cryptography”, Ed.O‟Reilly, 1998.
[10].Viega J., Messier M., Pravir C., “Network Security with OpenSSL”, Ed. O‟Reilly, 2002.
[11].Alfred Menezes, Paul van Oorschot, Scott Vanstone, “Handbook of Applied Cryptography”,1996.
[12]. http://webhost.uoradea.ro/cpopescu/
[13].Marius Ionuț Iviniciu,“Securitatea aplicațiilor software folosind criptarea ADN si BioJava”,2010
[14].Mihai Bulat,Sergiu Cataranciuc,Aureliu Zgureanu,“Multimi de relatii multi-are si criptarea informatiei”,Chisinau, 2013.
[15].http://adi.ro/pub/scoala/Master/SemI/SecDate/Materiale%20CURS%202007/05%20Criptografia%20moderna.doc.
[16]. http://security199.blogspot.com/2013/04/sisteme-de-criptare-informatiei.html
[17].Bogdan Groza,“ Introducere in Criptografie.Functii Criptografice.Fundamente matematice”.
[18].Tanenbaum A., “Rețele de Calculatoare”, Ed. Byblos S.R.L., 2003.
[19]. http://www.danvasilache.info/eGA1.pdf[20]. http://webhost.uoradea.ro/cpopescu/curs-si.html
[21]. Constantin Popescu, Curs, Specializarea Informatica, anul III, An univ. 2012/2013
[22]. William Stallings, “Cryptography and Network Security”, Prentice Hall, USA, 4edition, 2006.
[23].Adam J.Elbirt, “Understanding and Applying Cryptography and Data Security” CRC Press,2009
[24]. Kenneth H.Rosen, “Cryptography.Theory and Practice”, III Edition.
[25]. Mihir Bellare ,Phillip Rogaway , “Introduction to Modern Cryptography”.
[26]. D. Boneh, R. Venkatesan, “Breaking rsa may not be equivalent to factoring, Proceedings of Eurocrypt 98, LectureNotes in Computer Science”, vol. 1233,Springer-Verlag,1998.
[27]. Dmitrii Pădure, Ion Popescu, Vladimir Frolov, Valeria Popa ,“ Algoritmi de criptare și protocoale în rețelele de nouă generație(NGN).
[28]. Emil Simion, “Criptografie”, Bucuresti.
[29]. http://www.aut.upt.ro/~bgroza/Books/IntroCripto.pdf
[30]. Katia Regina, Leon Lomparte, “Encription RSA de archivos de texto”, Lima – Peru, 2005.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Criptarea Informatiei (ID: 149685)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
