sisteme criptografice cu chei publice

37
Sisteme criptografice cu chei publice - 1 -

Upload: mihai-lungu

Post on 27-Sep-2015

255 views

Category:

Documents


5 download

DESCRIPTION

Sisteme Criptografice Cu Chei Publice

TRANSCRIPT

Vitaminele.doc

Sisteme criptografice cu chei publice

CUPRINS

21.Introducere

32. Criptografie

42.1 Scopul de baza al criptografiei

53. Algoritmi criptografici cu cheie secreta(simetrici)

64. Algoritmi criptografici cu chei publice (asimetrice)

64.1 Scurt istoric

84.2 Functii neinversabile

104.3 Securitatea sistemelor de criptare cu cheie publica

124.4 Schimbul de chei Diffie-Hellman

144.5 RSA

164.6 Semnatura digitala

184.5.1 Protocoale de semnatura

194.6 ECC (Elliptical Curve Cryptography)

214.6.1 Operatii cu punctele de pe curbele eliptice

244.7 Comparatie ntre criptarea simetrica si cea cu cheie publica

25Concluzii:

26BIBLIOGRAFIE

1.Introducere

Criptografia este stiinta scrierilor secrete. Ea sta la baza multor servicii si mecanisme de securitate folosite in internet, folosind metode matematice pentru transformarea datelor, in intentia de a ascunde continutul lor sau de a le proteja impotriva modificarii. Criptografia are o lunga istorie, confidentialitatea comunicarii fiind o cerinta a tuturor timpurilor. Daca ar trebui sa alegem un singur exemplu al criptografiei "clasice", acesta ar fi cifrul lui Cezar, nu atat datorita celebritatii imparatului roman de care se leaga folosirea lui, ci pentru ca principiul sau de baza, al substitutiei, s-a mentinut nealterat aproape doua milenii.

Multa vreme, eforturile criptografilor au fost dirijate spre intarirea cifrurilor prin complicarea algoritmului, combinand substitutii si transpozitii asupra unor simboluri sau asupra unor blocuri (grupe de simboluri). Istoria moderna a criptografiei cunoaste numeroase inovatii in aceasta privinta. Doua sunt elementele ce au marcat insa cotitura semnificativa in dezvoltarea metodelor criptografice.

Primul este legat de dezvoltarea retelelor de calculatoare, al caror stimulent extraordinar s-a manifestat atat prin presiunea exercitata de tot mai multi utilizatori (a caror dorinta obiectiva este pastrarea secretului si a sigurantei asupra postei electronice private, a transferului electronic de fonduri si a altor aplicatii) cat si prin potentarea gamei de instrumente folosite efectiv in executia algoritmilor de cifrare. Utilizarea calculatoarelor electronice a permis folosirea unor chei de dimensiuni mai mari, sporindu-se atfel rezistenta la atacuri criptoanalitice. Cand cheia secreta are o dimeniune convenabila si este suficient de frecvent schimbata, devine practic imposibila spargerea cifrului, chiar daca se cunoaste algoritmul de cifrare. Pe aceasta idee se bazeaza si standardul american de cifrare a datelor - DES (Data Encryption Standard) larg utilizat de guvernul SUA si de diverse companii internationale. Propus intr-o forma initiala de IBM in 1975, DES a rezistat evaluarii facute de "spargatorii de cifruri" de la U.S. National Security Agency (NSA), care au recomandat doar reproiectarea anumitor componente (casete de substitutie). DES a fost adoptat ca standard federal in 1977 si a fost folosit intens datorita performantelor de viteza atinse la cifrare (peste 100 de milioane de biti/secunda). Din pacate, nu se stie cu certitudine daca cei de la NSA sau de la vreo alta organizatie au reusit sau nu sa sparga DES. Experienta a aratat insa ca orice schema criptografica are o viata limitata si ca avansul tehnologic reduce, mai devreme sau mai tarziu, securitatea furnizata de ea.

Al doilea moment important in evolutia criptografiei moderne l-a constituit adoptarea unui principiu diferit de acela al cifrarii simetrice. Whitfield Diffie si Martin Hellman, cercetatori la Univeritatea Stanford din California, prin articolul "New Directions in Criptography", publicat in 1976 in revista IEEE Transactions on Information Theory, au pus bazele "criptografiei asimetrice" cu chei publice. in locul unei singure chei secrete, criptografia asimetrica foloseste doua chei diferite, una pentru cifrare, alta pentru descifrare. Deoarece este imposibila deducerea unei chei din cealalta, una din chei este facuta publica, fiind pusa la indemana oricui doreste sa transmita un mesaj cifrat. Doar destinatarul, care detine cea de-a doua cheie, poate descifra si utiliza mesajul. Tehnica cheilor publice poate fi folosita si pentru autentificarea mesajelor, fapt care i-a sporit popularitatea. Nu este, deci, de mirare ca guvernul SUA a initiat adoptarea unui standard de semnatura digitala bazat pe conceptul de cheie publica. Acest demers a generat controverse, soldate chiar cu acuze intre organizatiile implicate. Pana in decembrie 1990, Institutul National de Standarde si Tehnologie ai SUA (NIST) recomanda pentru adoptare ca standard metoda RSA, prezenta deja in industrie. Dar noua luni mai tirziu, in august 1991, NIST a avansat un cu totul alt algoritm, bazat pe o metoda cu chei publice, publicata de Taher El Gamal in 1986. Noua propunere, denumita DSS (Digital Signature Standard), a fost dezvoltata de Agentia de Securitate Nationala a SUA (NSA). Ea a dezamagit nu datorita performantelor, ci "gratie" autorului, care este nu doar proiectant, dar si spargator de cifruri, ceea ce a starnit, inevitabil, suspiciuni. Un cifru se defineste ca transformarea unui mesaj clar sau text clar in mesaj cifrat ori criptograma. Procesul de transformare a textului clar in text cifrat se numeste cifrare sau criptare, iar transformarea inversa, a criptogramei in text clar, are denumirea de descifrare sau decriptare. Atat cifrarea cat si descifrarea sunt controlate de catre una sau mai multe chei criptografice. Exista doua tipuri de sisteme criptografice:

simetrice (cu cheie secreta) care folosesc aceeasi cheie, atat la cifrarea cat si la descifrarea mesajelor.

asimetrice (cu chei publice) care folosesc chei distincte de cifrare si descifrare (dar legate una de alta). Una din chei este tinuta secreta si este cunoscuta doar de proprietarul ei. A doua cheie (perechea ei) este facuta publica, de unde si numele de criptografie cu cheie publica.

2. Criptografie

Criptografia reprezinta un set de standarde si protocoale pentru codificarea datelor si mesajelor, astfel ncat acestea sa poata fi stocate si transmise mai sigur. Ea sta la baza multor servicii si mecanisme de securitate folosite n INTERNET, folosind metode matematice pentru transformarea datelor, in intentia de a ascunde continutul lor sau de a le proteja impotriva modificarii. Criptografia ne ajuta sa avem comunicatii mai sigure, chiar si atunci cand mediul de transmitere (de exemplu, Internetul) nu este de incredere. De asemenea, se poate utiliza pentru criptarea fisierelor sensibile, astfel ca probabilitatea de a fi intelese de intrusi sa fie mai mica. Criptografia poate fi utilizata pentru a contribui la asigurarea integritatii datelor, precum si la meninerea lor ca secrete. Criptografia ne ajuta sa verificam originea datelor si a mesajelor prin utilizarea semnaturilor digitale si a certificatelor. Cand utilizam metode criptografice, cheile criptografice trebuie sa ramana secrete. Algoritmii, dimensiunea cheilor si formatele de fisiere pot fi facute publice fara a compromite securitatea.

Unul din principalele motive ale vulnerabilitatii unui sistem informatic il reprezinta faptul ca majoritatea informatiilor pe care atacatorii le obtin de la un sistem sunt intr-o forma pe care o pot citi si intelege. Avand in vedere milioanele de mesaje electronice care traverseaza internetul in fiecare zi, este usor de inteles cum un sniffer bine pozitionat in retea poate captura un volum mare de informatii pe care utilizatori nu ar dori sa le faca cunoscute unor persoane necunoscute. Acesti oaspeti nepoftiti pot face publice aceste informatii ,ca le modifice pentru a aduce o imagine defavorabila unui individ sau unei organizatii. O solutie la aceasta problema cu ajutorul criptografiei ar fi ca accesul persoanelor necunoscute la astfel de informatii sa fie restrictionat.

Criptarea reprezinta procesul de transcriere a informatiei din forma sa originala numita plaintext intr-o forma codata, incomprehensibila numita ciphertext. Decriptarea se refera la procesul invers de transformare a informatiei din ciphertext in plaintext. Orice tip de date pot fi cripatate inclusiv imagini digitale sau sunete .

Criptografia securizeaza informatia protejandui confidentialitatea . Criptografia poate fi folosita deasemeni pentru a proteja integritatea si autenticitatea datelor. De exemplu sumele de verificare sunt folosite pentru a verifica integritatea unui bloc de informatie. O astfel de verificare care este un numar calculat din continutul unui fisier , poate fi folosit pentru a verifica daca informatia este corecta. Totusi, un hacker ar putea falsifica acest checksum dupa ce in prealabil a modificat blocul de informatie. Daca acest checksum nu este protejat modificarea informatiilor nu ar putea fi sesizata. Autenticitatea datelor poate fi protejata si in alt mod. De exemplu pentru a transmite catre un coleg un e-mail , expeditorul mai intai cripteaza informatia pentru a-si proteja confidentialitatea si apoi ataseaza o semnatura digitala criptata acestui mesaj. In momentul in care destinatarul primeste informatia , acesta verifica originea mesajului folosind o cheie pentru a verifica daca semnatura digitala a expeditorului si decripteaza informatia folosind cheia de decriptare corespunzatoare. Pentru a proteja informatia de a nu fi modificate sau falsificate ,semnatura digitala este formata prin cripatea unei combinatii a unei sume de verificare a informatiei si a cheii private a autorului. Un efect secundar a acestei autentificari este conceptul de non-repudiere . O persoana care a semnat un document electronic cu semnatura digitala nu poate sa pretinda ulterior ca nu el a semnat documentul intrucat, teoretic, doar acea persoana poate crea semnatura corecta.

Legile din ziua de azi din diferite tari ,incluzand si Statele Unite ale Americii , restrictioneaza exportul sau importul de tehnologie criptografica. In era Internetului insa este extrem de important cunoasterea foarte bine a reglementarilor guvernamentale care se aplica in fiecare tara cu referiere la utilizarea criptografiei.

2.1 Scopul de baza al criptografiei

Din cele expuse mai sus se pot evidentia urmatoarele cerinte fata de criptografia moderna:

1. Confidentialitate asigurarea ca nimeni nu poate citi mesajul cu exceptia destinatarului.

2. Integritatea datelor realizeaz protejarea datelor la alterare sau manipularea de ctre persoane neautorizate. Prin manipularea datelor inelegem procese cum ar fi insertii, intarzieri sau substituiri.

3. Autentificarea presupune posibilitatea de identificare a sursei informatiei si a entitatii (o persoana, un terminal de computer, o carte de credit).

4. Non-repudierea care previne negarea unor angajamente sau actiuni anterioare.

Deci criptografia trebuie sa acopere in mod corespunzator aceste patru directii atat in teorie cat si in practica. Ea trebuie sa previna si sa detecteze furtul si alte actiuni ilegale, fiind doar una din tehnicile de asigurare a securitatii informatiei.

Asa cum am identificat anterior exista doua tipuri de sisteme criptografice:

simetrice (cu cheie secreta) care folosesc aceeasi cheie, atat la cifrarea cat si la descifrarea mesajelor;

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

Din punct de vedere algoritmic si al domeniului de aplicare criptografia poate fi divizata in patru primitive criptografice:

algoritmi criptografici cu cheie secreta;

algoritmi criptografici cu chei publice;

semnatura digitala

functii dispersive.

Pentru a crea un sistem criptografic care va rezolva problemele securitatii informationale sigur si eficient este nevoie de folosit primitivele criptografice in grup dup cerinte.

Un sistem criptografic (criptosistem) este compus din:

M-text clar;

C-text cifrat;

2 functii inverse E() si D();

un algoritm care produce cheile Ke si Kd astfel incat:M = DKd(C) si C= EKe(M)

Grafic functionarea unui sistem criptografic se poate reprezenta astfel:

Figura 1:Modul de functionare a unui sistem criptografic.

3. Algoritmi criptografici cu cheie secreta(simetrici)

Pentru asigurarea confidentialitatii datelor memorate in calculatoare sau transmise prin retele se folosesc preponderent algoritmi criptografici cu cheie secreta (simetrici). Ei se caracterizeaza prin aceea ca ambii utilizatori ai algoritmului impart aceeasi cheie secreta, folosita atit la cifrare cat si la descifrare. Cheia de criptare este necesar de pastrat in secret fata de utilizatorii neautorizati, pentru ca cel ce are acces la acesta cheie poate avea acces si la informatia secreta. Algoritmii criptografici simetrici se caracterizeaza printr-o viteza de cifrare foarte mare, in comparatie cu algoritmii criptografici asimetrici si sunt comozi la cifrarea blocurilor mari de informatie. Securitatea acestui tip de algoritm depinde in mare masura de lungimea cheii si posibilitatea de a o pastra in secret.

Cei mai cunoscuti algoritmi criptografici simetrici sunt:

cifruri bloc

DES (Data Encryption Standard), Triple DES

IDEA (International Data Encryption Algorithm)

AES(Advanced Encryption Standard)

cifruri secventiale

RC4

Pentru a compara criptografia cu chei publice folosite de Pki , exista o alta metoda numita criptografia simetrica. Aceeasi cheie este folosita atat pentru cripare cat si pentru decriptare.

Figura 2 : criptografia simetrica

4. Algoritmi criptografici cu chei publice (asimetrice)

4.1 Scurt istoric

Criptografia cu cheie publica poate fi considerata una din marile inventii ale secolului 20. Dupa cum se cunoaste din literatura acestui domeniu, Diffie, Hellman si Merkle sunt cei care au prezentat pentru prima data un astfel de sistem in lucrarea lor intitulata "New Directions n Cryptography". Totusi conform unui articol din New York Times, ei nu ar fi fost primii care au avut aceasta idee, serviciile secrete britanice detinand informatii despre acest tip de criptare cu ctiva ani inainte de publicarea lucrarii celor trei. Organizatia britanica The British Comunications - Electronics Security Group a publicat o serie de articole conform carora James Ellis a fost primul care a demonstrat

n 1970 ca un astfel de criptosistem poate fi realizat. n 1973 Clifford Cocks inventeaza ceea ce pare a fi o varianta a cifrului RSA, iar dupa cteva luni Malcom Wiliamson un cifru asemanator, dar nu identic, cu cifrul Diffie-Hellman. Sursa lor de inpiratie se pare ca ar fi fost o lucrare stiintifica a unui angajat de la compania americana Bell Laboratories, din perioada celui de-al II-lea razboi mondial.

De partea cealalta a atlanticului, Bobby Innman, fiind director al NSA a sustinut fara argumente exacte, faptul ca agentia dispunea de un system cu cheie publica de cel putin o decada naintea publicarii Diffie-Hellman-Merkle. In sprijinul afirmatiei sale exista totusi o dovada, un proiect numit STU-III, care implementa un sistem de telefonie bazat pe certificate si care s-a desfasurat pe la mijlocul anilor 70 In timp ce criptografia care utilize certificate a aparut n domeniul public n 1979.

Criptografia cu cheie simetrica sau cheie secreta era cea mai folosita metoda de transmitere a mesajelor criptate, dar aceasta metoda punea unele

inconveniente. Faptul ca ambele parti trebuiau sa dispuna de aceeasi cheie de criptare nu punea probleme exagerat de grele, cheia putea fi transmisa pe un canal sigur, cum ar fi un curier de incredere sau o intalnire secreta, prealabila transmiterii mesajelor. Problemele apareau in momentul in care la runda de comunicare luau parte mai multe entitati, fiind nevoie de un management riguros al cheilor de criptare atunci cand se dorea transmiterea de mesaje pe care doar unii din participanti trebuiau sa le poata citi. O alta problema ar fi putut fi compromiterea cheii de criptare. Daca unul din membri pierdea cheia sau ii era furata de o persoana din afara grupului, trebuia pornit un nou proces de transmitere pe canale sigure a noii chei de criptare.

Criptografia cu cheie publica este solutia problemelor de genul celor prezentate anterior dupa cum vom vedea in sectiunile urmatoare. Aceasta metoda se numeste criptografie cu cheie publica, deoarece utilizeaza pentru operatiile de criptare - decriptare, doua chei distincte din care una este facuta publica. Spre deosebire de un criptosistem clasic, cu cheie simetrica, criptosistemele cu cheie publica nu necesita o sesiune prealabila de stabilire a cheii de criptare.

O noua privire asupra sistemelor criptografice a adus-o algoritmii criptografici asimetrici(cu chei publice). Acesti algoritmi se caracterizeaza prin aceea, ca la criptare si decriptare se folosesc chei diferite, legate intre ele printr-o relatie matematica. Acest tip de relatie este de o asa natura, ca cunoscand o cheie sa o determini pe cealalta, din punct de vedere computational, este foarte greu. Astfel daca criptam cu prima cheie vom putea decripta doar cu cea de a doua si invers. In acest fel pentru transmitere de informatii secrete una dintre chei(de exemplu cea de criptare) se poate face publica, pe cand cealalta sa fie tinut in secret. Dac facem cheia de descifrare publica, atunci pe baza acestui sistem se poate crea un sistem de autentificare.

In sistemele de criptare clasice,sistemele cu cheie privata, destinatarul si expeditorul aleg o cheie secreta K care defineste regulile de criptare (EK) si decriptare (DK).In aproape toate cazurile DK si EK coincideau sau se puteau deduce imediat una din alta facand sistemul extrem de vulnerabil. Un punct slab al sistemelor cu cheie privata este acela ca necesita o comunicare prealabila a cheii ntredestinatar si expeditor printr-un canal sigur nainte de transmiterea mesajului criptat. Practic, n conditiile cererii tot mai mari de securizare a comunicatiilor, acest lucru este din ce n ce mai dificil de realizat.

Obiectivul sistemelor de criptare cu cheie publica este acela de a face imposibilde obtinut cheia Dk plecand de la Ek. Astfel, regula de criptare Ek poate fi publicata ntr-un registru public (de unde si numele sistemelor). Avantajul consta n faptul ca expeditorul poate trimite un mesaj criptat cu Ek fara a intra n prealabil n contact cu destinatarul. Acesta este singura persoana capabila sa decripteze textul, utilizand cheia sa secreta

Pentru intelegerea sistemului, sunt necesare urmatoarele lamuriri:

cheie publica nu poate decripta un mesaj criptat;

se recomanda ca o cheie privata sa nu deriveze dintr-o cheie publica;

un mesaj care a fost criptat printr-o anumita cheie poate fi decriptat cu alta

cheie;

cheia privata nu este facut publica.

Se pot evidentia doua directii de utilizare a criptosistemelor asimetrice:

de confidentialitate, se face publica cheia publica si astfel cel care doreste sa trimita date confidentiale proprietarului cheii publice va cripta aceste date cu acesta cheie, stiind ca doar prorietarul le va putea decripta.

de autentificare atat a emitatorului cat si a datelor, emitatorul cripteaza datele cu cheia sa secreta, iar cel ce va dori sa autentifice datele va folosi la decriptare cheia pereche(cea facuta publica)

Chiar daca criptosistemul asimetric este destul de puternic, vom avea nevoie ca lungimea cheii ss fie de minimum 2304 biti pentru a oferi un nivel de securitate comparabil cu cel oferit de o cheie de 128 biti in criptosistemul simetric. Criptosistemele asimetrice sunt cu mult mai lente la criptare/decriptare si sunt nepractice la criptarea volumelor mari de informatii. Criptosistemele simetrice sunt de aproximativ 1000 de ori mai rapide ca cele asimetrice, de aceea criptosistemele asimetrice cel mai des se folosesc in urmatoarele scopuri de baza:

la distributia cheilor, care se folosesc la algoritmii simetrici de criptare

semnatura digitala, un atribut al unui utilizator, folosita pentru recunoasterea acestuia.

Ideea de sistem de criptare cu cheie publica apare n 197 6 si este prezentatta de Diffie si Hellman . De atunci au aparut diverse astfel de sisteme, a caror securitate este bazata pe probleme calculatorii. Cele mai cunoscuten acest moment sunt:

RSA(Rivest-Shamir-Adleman)

EG(El Gamal)

Standardul DSS de semnatura digitala

ECC(Elliptical Curve Cryptography)

4.2 Functii neinversabile

O observatie importanta este aceea ca un sistem cu cheie publica nu este sigur neconditionat ,oricine putand sa efectueze criptari, nu este exclus sa gaseasca anumite puncte slabe care sa i permita sa si decripteze mesajele. Ideea de baza folosita este aceea de functie neinversabila.

Criptografia prin chei publice este posibila in aplicatiile care functioneaza intr-un singur sens. O functie in sens unic este aceea care este usor de calculat intro directie, dar este dificil de calculat in sens invers. Pentru o astfel de functie, daca y = f(x), este simplu de determinat valoarea lui y daca se cunoaste x, dar este foarte dificil sa-l determini pe x cunoscandu-l pe y. Intr-o astfel de situatie se afla cautarile telefonice. Este usor sa gasesti numarul cuiva daca stii numele si adresa, dar este foarte dificil sa gasesti pe cineva intr-o carte de telefon cunoscandu-i doar numarul de telefon. Pentru ca functiile cu sens unic sa fie utile in contextul criptografiei bazate pe chei publice ele trebuie s aiba o trapa(trapdoor), adica un mecanism secret care sa permita realizarea cu usurinta a functiei inverse functiei in sens unic. Printr-o astfel de modalitate se poate obtine x daca se da y.

Exemplul1: Ne putem imagina usor strazile cu sens unic dintr-un oras. Astfel, este usor ca mergand pe astfel de strazi sa ajungem de la punctul A la punctul B, dar este

imposibil sa ajungem de la B la A.In acest mod, criptarea este privita ca directia A B;

desi este foarte usor de parcurs drumul n aceasta directie, nu ne putem ntoarce napoi spre A (adica sa decriptam mesajul).

Exemplul 2 : Sa consideram cartea de telefon a unui oras mare . Cu ajutorul ei este foarte usor sa gasim numarul de telefon al unei anumite persoane.In schimb, este extrem de greu - practic imposibil - sa afli persoana care are un anumit numar de telefon. Ne aflam n situatia parcurgerii secventiale a (cel putin) unui volum gros, ceea ce conduce la o crestere exagerata a timpului.

Aceasta da o sugestie de constructie a unui sistem de criptare cu cheie publica. Criptarea se face independent de context, litera cu litera. Pentru fiecare litera a textului clar se alege un nume care ncepe cu acest caracter si numarul de telefon al persoanei respective va constitui criptarea. Sistemul este homofonic; doua aparitii diferite ale aceleiasi litere vor fi

codificate foarte probabil cu numere diferite.

De exemplu, textul clar SOLIST se poate cripta astfel:

S Simion Pavel6394502

O Olaru Stefan 7781594

L Lambru Stelian 6300037

I Ilie Romeo 3134971

S Solovean Raluca 6281142

T Tecuceanu Paul 3359962

Deci, textul criptat va fi

639450 277815 946300 037313 497162 811423 359962

De remarcat ca metoda este nedeterminista; din acelasi text clar se pot obtine enorm de multe texte criptate. Pe de alta parte, orice text criptat conduce la un text clar unic. Bob va avea la dispozitie pentru decriptare o carte de telefon scrisa n ordinea crescatoare

a numerelor. Aceasta i va permite sa decripteze mesajele cu un algoritm de complexitate

O(log n).

Deci, o functie neinversabila f trebuie sa verifice doua conditii:

Fiind dat x, f(x) este usor de calculat;

Calculul lui x din f(x) este imposibil.

De remarcat ca, din punct de vedere strict matematic, nu se cunosc astfel de functii. A demonstra ca exista functii neinversabile este echivalent cu a demonstra relatia P = NP, conjectura care sta la bazantregii teorii criptografice. De aceea, termenii folositi sunt relativi la complexitatea calculatorie. Astfel, o problema este:

1. usoara daca se poate rezolva cu un algoritm cel mult liniar;

2. grea daca se poate rezolva cu un algoritm polinomial neliniar;

3. imposibila daca este NP - completa.

4.3 Securitatea sistemelor de criptare cu cheie publica

In majoritatea sistemelor de criptare, aparatul matematic folosit este bazat pe teoria numerelor teoria functiilor recursive si teoria probabilitatilor. Pe o scara mult mai restransa apar functiile eliptice, teoria automatelor, calcul neconventional (cuantic, molecular etc). Sistemele de criptare cu cheie publica un avantaj major fata de sistemele clasice: aici nu mai este necesar efortul transmiterii cheii. Un contact prealabil ntre Alice si Bob pentru a pune la punct detaliile sistemului de criptare este inutil. Un sistem de criptare cu cheie publica nu ofera nsa o securitate absoluta. Aceasta se datoreaza faptului ca Oscar poate oricand sa dispuna de atacuri pasive sau active.

Anume:

Daca criptanalistul dispune de un text criptat y, el poate cauta exhaustiv un text clar x astfel ca eK(x) = y. Singura aparare contra unui astfel de atac consta n gradul de complexitate al sistemului.

Un criptanalist activ poate efectua cu succes un atac de tipul meet in the middle. Sa presupunem ca Alice si Bob doresc sa stabileasca un contact. Ei fac publice cheile de criptare eA respectiv eB. Daca contactul este nepersonalizat, Oscar poate controla mesajele schimbate ntre cei doi, n felul urmator:

1. Oscar opacizeaza printr-un mijloc oarecare aceste chei si trimite lui Alice cheia e1B ca din partea lui Bob; substituie similar pentru Bob cheia eA cu

e1A.

2. Fie m mesajul pe care Alice vrea sa l trimita lui Bob. Ea va cripta si va trimite y1 = e1B(m).

3. Oscar intercepteaza mesajul (reamintim, toate canalele sunt nesigure) si afla m = d1B(y1).

4. Oscar recripteaza y = eB(m) si trimite y lui Bob.

Bineinteles, Oscar poate modifica sau ntarzia mesajul m daca doreste. Din aceasta cauza, aproape n toate sistemele de criptare cu cheie publica apare necesitatea autentificarii mesajului sau a expeditorului, precum si aceea a confidentialitatii.

Definitie : Confidentialitatea asigura accesul la informatie doar partilor autorizate de a avea acest acces.

Definitie: Autentificarea este procesul prin care un calculator (program de calculator sau alt utilizator) incearca sa confirme unui destinatar ca mesajul primit de acesta vine (sau nu vine) din partea sa.

Metodele prin care un expeditor uman se poate autentifica sunt clasificate in:

1. ceva ce utilizatorul este (de exemplu amprente digitale, de retina, de voce, secventa DNA, recunoasterea semnaturii, identificatori biometrici).

2. ceva de utilizatorul are (de exemplu card ID, date de securitate soft pe calculator sau telefon).

3. ceva ce utilizatorul stie (de exemplu un password, o parola, un numar de identificare - PIN).

4. Orice combinatie ntre metodele anterioare (de exemplu un card bancar cu PIN asigura o dubla autentificare).

Alt termen frecvent utilizat este cel de integritate. El se refera la validitatea datelor.

Definitie :Integritatea este siguranta ca datele la care se refera un utilizator pot fi accesate si pot fi modificate numai de cei autorizati sa o faca.

In general integritatea poate fi compromisa n doua moduri:

1. Prin alterare intentionata (de exemplu modificarea unui cont bancar, a unei adrese de e-mail, a unui document de indetitate);

2. In mod accidental (transmisii perturbate de zgomote de canal, zgarierea harddiscului).

Presupunem ca Alice si Bob sunt doi utilizatori, cu posibile conflicte de interese. Cand Alice trimite un mesaj lui Bob, ambele parti trebuie sa se asigure ca:

Mesajul nu este trimis de o terta persoana care pretinde a fi Alice;

Bob sa nu poata obliga pe Alice sa tina cont de mesaje care nu-i apartin, iar Alice sa poata recunoaste public propriile mesaje.

Intr-o oarecare masura, cele doua conditii sunt contradictorii: conform primei conditii, Bob trebuie sa stie ceva despre modul de criptare al lui Alice, care i va permite sa autentifice mesajul, iar conform celei de-a doua conditii, el nu trebuie sa stie prea mult.

O modalitate frecvent utilizata pentru autentificarea mesajelor este folosirea codurilor de autentificare.

Exemplul : MAC-ul (Message Authentication Code) definit in cadrul sistemului de criptare DES este o varianta prin care se poate asigura atat autenticitatea cat si integritatea mesajului. Daca se solicita si autentificarea partenerilor, atunci se foloseste de obicei semnatura electronica.

4.4 Schimbul de chei Diffie-Hellman

Metoda schimbului de chei Diffie-Hellman, cunoscuta si ca metoda de distributie a cheilor publice, poarta numele a doi specialisti de la Standford University, Whitfield Diffie si Martin Hellman. In anul 1976, ei au inventat o metoda prin care doua parti pot cadea de comun acord sa comunice prin mesaje secrete fara sa fie nevoie de o terta parte, de un schimb off-line sau de transmiterea vreunei valori secrete intre ele. Independent, Ralph Merkle a venit cu o solutie de distributie a cheilor publice, numai ca metoda propusa implica substantiale cheltuieli pentru efectuarea calculelor si a transmisiei. Varianta realizata de Diffie si Hellman a fost numita sistemul distribuiei cheilor publice sau al schimburilor de chei publice.

Metoda de generare a cheii in cazul Diffie-Hellman presupune ca fiecare parte genereaza doua numere , una publica si una privata . Aceste valori sunt bazate pe o baza de numeratie prestabilita sau un grup Diffie Hellman. Cele doua parti schimba valorile publice acest lucru putand fi facut si prin intermediul unui canal nesigur.

Figura 3: schimbul de chei Diffie Hellman

Metoda Diffie-Hellman se bazeaza pe conceptul perechii de chei public privat. Protocolul incepe cu fiecare parte care genereaza independent cate o cheie privata. In pasul urmator, fiecare calculeaza cate o cheie publica, aceasta fiind o functie matematica a cheilor private respective. Urmeaza schimbul de chei publice.In final, fiecare dintre cele doua persoane calculeaza o functie a propriei chei private si a cheii publice a celeilalte persoane. Matematica este cea care va face sa se ajunga la aceeasi valoare, care este derivata din cheile lor private. Ele vor folosi valoarea ca pe cheie a mesajului. Diffie si Hellman folosesc exponentierea in aritmetica modulara pentru a calcula cheile publice si cheia mesajului. Aritmetica modulara este ca si aritmetica standard, cu exceptia faptului ca folosete numere numai in intervalul 0 la N, numit modulo. Atunci cand o operatie produce un rezultat care este mai mare sau egal cu N, N este scazut repetat din rezultat pana cand valoarea se incadreaza in intervalul 0 la N-1 (ca si cum s-ar imparti la N si se ia in seama restul). De exemplu, 3+4 mod 5 = 2. Daca rezultatul este negativ, N se adauga acestuia pana cand se va incadra in intervalul 0 la N-1. De exemplu, 3-8 mod 7 =-5 mod 7 = 2.

In aritmetica modulara, exponentierea este o functie intr-un singur sens. Aceasta inseamna ca este usor de calculat un numar y = gx mod N pentru o valoare secreta x, insa este mult mai dificil sa se calculeze x din y, daca numerele sunt suficient de mari, ca de exemplu o lungime de cateva sute de cifre (noi presupunem ca g i N sunt cunoscute). Aceasta este referita ca si problema logaritmului discret pentru ca x este logaritm din y n baza g (mod N), iar numerele sunt finite si intregi.

Cu metoda Diffie-Hellman a schimbului de chei publice, Alice si Bob stabilesc cheia mesajului secret dup cum urmeaza. Alice genereaza o cheie secreta xa si Bob o cheie secreta xb. Dup aceasta, Alice calculeaza o cheie publica ya, care este g ridicat la puterea xa modulo p, unde p este un numar prim (adica nu poate fi descompus in produsul a doua numere), g fiind mai mic decat p. Identic, Bob calculeaza o cheie publica yb, prin ridicarea lui g la puterea xb modulo p. Ei vor schimba valorile publice ale acestora. Apoi, Alice ridica cheia publica a lui Bob la puterea exponentului sau, xa modulo p, in timp ce Bob ridica cheia publica a lui Alice la exponentul sau, xb modulo p. Amandoi vor obtine acelasi rezultat, g ridicat la puterea xa i xb, iar rezultatul obtinut va fi folosit de amandoi drept cheia K a mesajului. Matematic, totul se va exprima astfel:

ya = gxa mod p

yb = gxb mod p

K = yaxb mod p = ybxa mod p = gxa*xb mod p

Desi in practica se folosesc numere foarte lungi, de cateva sute de cifre, pentru

a ajuta la intelegerea modului de functionare, vom folosi numere mici.

Exemplul 1

S presupunem c p = 7, g = 3, cheia lui Alice xa = 1 i a lui Bob xb = 2

Vom avea:

Alice calculeaza cheia sa publica: ya = gxa mod p = 31 mod 7 = 3

Bob calculeaza cheia sa publica: yb = gxb mod p = 32 mod 7 = 2

Alice calculeaza K = ybxa mod p = 21 mod 7 = 2

Bob calculeaza K = yaxb mod p = 32 mod 7 = 2

sau

K = gxa*xb mod p = 32x1 mod 7 = 9 mod 7 = 2.

Exemplul 2

Presupunem ca p = 5, g = 4, cheia lui Alice xa = 3 i a lui Bob xb = 2

Alice calculeaza cheia sa publica: ya = gxa mod p = 43 mod 5 = 4

Bob calculeaza cheia sa publica: yb = gxb mod p = 42 mod 5 = 1

Alice calculeaza K = ybxa mod p = 13 mod 5 = 1

Bob calculeaza K = yaxb mod p = 42 mod 5 = 1

sau

K = gxa*xb mod p = 43x2 mod 5 = 4096 mod 5 = 1.

In ambele cazuri K ia valori identice, 2, respectiv 1.Metoda Diffie-Hellamn, precum si variantele ei sunt utilizate n cteva protocoale de securitate a retelelor si in produse comerciale, inclusiv la AT&T 3600 Telephone Security Device, la Fortezza card o varianta de carduri criptate, si la Pretty Good Privacy pentru criptarea e-mail-urilor si a unor fisiere.

4.5 RSA

Pe vremea cand Diffie si Hellman au inventat metoda distributiei prin chei publice, acestia au gandit si la un alt concept mult mai performant, dar n-au gasit solutia implementarii lui criptografia prin chei publice. Prin aceasta, fiecare persoana are o pereche de chei publica privata, unica, pe termen lung. Componenta publica, transmisibila prin Internet si partajata cu toata lumea, este folosita pentru criptarea datelor, in timp ce componenta privata, greu de calculat pe baza cheii publice, este folosita pentru decriptare.

Acest sistem criptografic cu chei publice , realizat de trei cercetatori de la Massachusetts Institute of Technology, reprezinta standardul de facto in domeniul semnaturilor digitale si al criptarii cu chei publice. El se bucura de o foarte mare apreciee in mediul guvernamental cat si in cel comercial , fiind sustinut prin lucrari si studii de comunitate academica. Sub diferite forme de implementare ,prin programe sau dispozitive hardware speciale , RSA este astazi recunoscuta ca cea mai sigura metoda de cifrarea si autentificare disponibila comercial.

RSA este bazat pe cvasi-imposibiltatea actuala de a factoriza numere (intregi) mari; functiile de criptare/decriptare sunt de tip exponential , unde exponentul este cheia iar calculele se fac in inelul claselor de resturi modulo n.

Pentru a transmite un mesaj cu text clar catre Bob, folosind sistemul cheilor publice, gen RSA, Alice genereaza cheia K a mesajului si o folosete prin intermediul criptosistemului conventional, cum ar fi DES, pentru criptarea mesajului. Utilizand criptografia prin chei publice, ea, de asemenea, cripteaza K, sub cheia publica a lui B, denumita KBobpub. Apoi, ea transmite atat cheia criptata, cat si mesajul criptat catre Bob. Bob, la randul sau, apeleaza la propria lui cheie privata, denumita KBobpriv, pentru a decripta cheia K a mesajului, apoi el foloseste cheia K pentru decriptarea mesajului. Modelul este redat sub form grafica mai jos.

Figura 3 Alice transmite un mesaj lui Bob folosind o combinatie de cheie singulara si criptografiere prin cheie publica

Teoretic, Alice poate sa transmita textul catre Bob folosind doar criptarea prin cheia publica a lui Bob, apeland doar la criptografia prin cheie publica. In practica, insa, nu se intampla asa datorita incetinirii procesului de transmitere prin multimea calculelor de efectuat. E mult mai rapid sa folosesti o metoda conventionala de mare viteza pentru criptarea mesajului, rezervand metoda cheii publice doar pentru distributia cheii. In plus, nu se considera o practica prea inspirata sa folosesti aceeasi cheie pentru criptarea mesajelor de-a lungul unei mari perioade de timp, din cauza sporirii sanselor de a fi atacata. Perechea de chei publica-privata este uneori numita cheia cheii de criptare, pentru a o deosebi de cheia mesajului (cheia datelor criptate).

Ca si Diffie-Hellman, sistemul RSA calculeaza exponentierile in aritmetica modulara folosind numere cu lungimea de cateva sute de cifre. In RSA, totusi, fiecare persoana are un modulo N personal, care este produsul a doua numere prime secrete. Cheia K a mesajului este criptata prin ridicarea ei la puterea exponentului public a lui Bob (eb), modulo Nb, iar decriptarea se efectueaza prin ridicarea ei la puterea exponentului privat al lui Bob (db), modulo Nb. Presupunand ca C va prelua valoarea cheii textului criptat, aceasta se va exprima matematic astfel:

C = Keb mod Nb (criptarea lui K)

K = Cdb mod Nb (decriptarea)

Pentru ca exponentul folosit la decriptare (db) sa poata reface exponentierea cu eb la criptare, formula eb * db = 1 mod (pb-1)(qb-1) trebuie sa fie realizata; in care Nb = pb * qb pentru numerele prime pb si qb.

In aceste conditii, oricine stie eb, pb si qb poate sa foloseasca formula pentru a

deduce db. Din acest motiv, pb si qb nu se divulga, chiar daca eb si Nb sunt facute publice. Calcularea factorilor primi ai lui Nb se considera a fi, din punct de vedere matematic, nerezolvabila pentru numere foarte mari. Vom folosi valori mici ale numerelor din exemplul urmtor pentru a usura intelegerea mecanismului. Sa presupunem ca Bob a ales numerele prime secrete pb = 5 si qb = 3, de unde rezulta ca Nb = pb * qb = 5 * 3 = 15. Apoi alege exponentul

secret db = 29 si il calculeaza pe eb dupa formula eb * db = 1 mod (pb-1)(qb-1), ceea ce va conduce la eb * 29 = 1 mod (4 * 2), 29 * eb = 1 mod 8. Prin incercari succesive rezulta eb = 5.

Daca Alice doreste sa transmita cheia K = 2 catre Bob, ea o va cripta cu exponentierea din cheia publica a lui Bob, efectuand calculele:

C = Keb mod Nb = 25 mod 15 = 32 mod 15 = 2

Cnd Bob obtine cheia criptata o va decripta folosindu-si cheia secreta drept exponent, prin calculul:

K = Cdb mod Nb = 229 mod 15 = 2 (Se aplica mod (2 ** 29, 15)).

Observam ca s-a obtinut valoarea K = 2 a cheii transmisa de Alice.

4.6 Semnatura digitala

Inventarea criptografiei prin chei publice a adus doua importante mutatii valoroase. Prima, discutata anterior, permite transmiterea unui secret catre o alta persoana fara sa fie nevoie de o a treia persoana de incredere sau de un canal de comunicatie off-line pentru a transmite cheia secreta. A doua mutatie s-a produs pe planul calcularii semnaturii digitale. O semnatura digitala este un bloc de date (alcatuit din cifre binare, ceea ce in engleza inseamna binary digit, de unde si digitala exprimata printr-un sir de cifre) ce se ataseaza unui mesaj sau document pentru a intari increderea unei alte persoane sau entitati, legandu-le de un anumit emitator. Legatura este astfel realizata incat semnatura digitala poate fi verificata de receptor sau de o terta persoana si nu se poate spune c a fost uitata. Daca doar o cifr binara nu corespunde, semnatura va fi respinsa in procesul de validare. Semnatura digitala stabileste autenticitatea sursei mesajului. Daca o persoana nu-si da in vileag cheia personala privata nimeni nu poate sa-i imite semnatura. O semnatura digitala nu inseamna si recunoasterea dreptului de proprietate asupra textului transmis, ci ea atesta faptul ca persoana semnatara a avut acces la el si l-a semnat. Documentul poate fi si sustras de undeva. Totusi, atunci cand semnarea este cuplata cu crearea documentului, semnatura poate oferi o proba evidenta a originii documentului. In aceasta categorie intra fotografiile luate cu camere digitale bazate pe chei private.

In acest caz, proba este de necontestat. Asa se procedeaza cand se intentioneaza realizarea protectiei impotriva manipularii imaginilor cu ajutorul calculatorului. La fel pot fi camerele video, radio-receptoarele si alti senzori care pot semna iesirea pentru a-i certifica originea.

Desi semnatura digitala este implementata prin sistemul criptografiei cu chei publice, transformarile ce au loc sunt diferite de cele de la criptare. In timp ce la criptare fiecare parte are o pereche de chei publica-privata, in cazul semnaturii digitale, componenta privata este intrebuintata pentru semnarea mesajelor, iar cea publica este folosita de o alta parte pentru a verifica semnatura. Modul de functionare este redat mai jos :

Figura 4: Alice transmite catre Bob un mesaj semnat si criptat.

Mesajul este criptat printr-o singura cheie de criptare, iar cheia prin criptarea cu cheie publica. Mesajul este semnat cu sistemul semnaturii digitale prin cheie publica

Dupa prezentarea suplimentara a algorimilor semnaturii digitale sa parcurgem pasii dialogului purtat de Alice cu Bob. Alice intentioneaza sa semneze un mesaj. Ea va incepe prin calcularea unei valori rezumat a mesajului, care este determinata printr-o functie publica de dispersie (hashing). In acest moment nu se folosesc chei. In pasul urmator, ea va utiliza o cheie privata pentru semnatura KSAlicepriv, pentru a calcula o transformare criptografica a valorii rezumat a mesajului. Rezultatul, care este semnatura sa pe mesaj, se ataseaza mesajului. Din acest moment, mesajul semnat poate fi transmis altei persoane, inclusiv Bob, sau poate fi stocat intr-un fisier.

Sa presupunem ca Bob va receptiona mesajul ei. El poate sa valideze semnatura lui Alice facand apel la cheia ei publica pentru semnatura, KSAlicepub, ce va fi folosita ca intrare intr-o functie criptografica prin care se va testa daca valoarea rezumat determinata de el este aceeasi cu valoarea codificata prin semnatura lui Alice. Daca da, va accepta semnatura. Se observa ca nici o cheie de-a lui Bob nu este folosita in procesul de validare a semnaturii transmise de Alice, ci doar cheile ei. In schimb, cand Alice transmite cheia unui mesaj secret catre Bob, ea va folosi doar cheile lui Bob.

Daca Alice doreste sa transmita un mesaj catre Bob, mesaj care sa fie semnat si criptat, procesul presupune utilizarea cheilor pentru semnatura ale lui Alice (KSAlicepriv, KSAlicepub), cheilor lui Bob de criptare a cheii (KBobpub) si o cheie a mesajului, K. In sinteza, iata pasii:

Alice genereaza o cheie aleatoare a mesajului, K. Alice cripteaza mesajul

M cu cheia K, obtinand mesajul criptat, MC;

Alice cripteaza cheia K folosind cheia publica a lui Bob de criptare a

cheii, KBobpub, rezultand cheia criptata, KC;

Alice proceseaza o semnatura S folosind cheia sa privat pentru

semnatura, KSAlicepriv;

Alice transmite catre Bob KC, MC si S;

Bob foloseste cheia sa privata de criptare a cheii, KBobpriv, pentru a

decripta KC si a obtine K;

Bob foloseste K pentru decriptarea MC si obtinerea textului-clar, M;

Bob foloseste cheia publica pentru semnatur a lui Alice, KSAlicepub, pentru

validarea semnaturii S.

Tot acest proces este folosit de sistemul de criptare e-mail-uri, asa ca Alice si Bob nu vor efectua operatiunile enuntate, ci le face calculatorul. Pentru a dispune de aceste servicii este necesara contactarea unor firme specializate. Microsoft recomanda Verisign, cu site-ul www.verisign.com, desi sunt mai multe oferte.

Oricum e necesara obtinerea unui ID digital. La click-ul pe Sign apare semnul sigiliului special pentru semnatura, iar la comanda Send, ni se ofer un meniu prin care putem incepe dialogul pentru obtinerea ID-ului digital pentru semnatura, prin click pe butonul Get Digital ID.

4.5.1 Protocoale de semnatura

Orice protocol de semnatura este format dintr-un algoritm de semnatura si un algoritm de verificare. Bob semneaza un mesaj x bazat pe un algoritm (secret) de semnatura sig. Rezultatul sig(x) este apoi verificat de un algoritm public de verificare ver. Pentru orice pereche (x; y), algoritmul de verificare ofera un raspuns dicotomic (adevarat sau fals), dupa cum y este o

semnatura autentica a lui x sau nu.

Definitie :Un protocol de semnatura este un cvintuplu (P,A,K,S, V) unde:

1.P,A,K sunt multimi finite, nevide, ale caror elemente se numesc mesaje, semnaturi si respectiv chei

2.Exista o aplicatie biunivoca ntre K si SxV anume, pentru fiecare K ( K exista o pereche unica (sigk verk ) unde sigK : P ( A, verK : P x A ( { T, F ) au proprietatea:

(x ( P, (y ( A, ver k (x; y) = T y = sigk ( x )

Pentru fiecare K ( K, functiile sigK si verK trebuie sa fie calculabile n timp polynomial verK este publica iar sigK este secreta. Pentru Oscar, imitarea unei semnaturi a lui Bob pentru un mesaj x trebuie sa fie imposibila (din punct de vedere al complexitatii calculului). Altfel spus, pentru un x dat, numai Bob este capabil sa calculeze o semnatura y astfel ca ver(x y) = T.

Bineinteles, nici un protocol de semnatura nu este absolut sigur deoarece Oscar poate ncerca folosind functia publica de verificare ver - toate semnaturile y posibile ale unui mesaj x, pana va gasi semnatura corecta. Deci, daca ar dispune de suficient timp, Oscar poate totdeauna sa contrafaca semnatura lui Bob.

4.6 ECC (Elliptical Curve Cryptography)

Curbele eliptice sunt un domeniu al matematicii cu o istorie ce se ntinde pe parcursul a peste un secol. Utilizarea curbelor eliptice in criptografie a fost propusa pentru prima oara in 1985 de Victor Miller, cercetator de la IBM si, independent, de Neal Kobitz, profesor la Universitatea din Washington. Ideea de baza era folosirea grupului punctelor de pe o curba eliptica in locul grupului Z*p din sistemele criptografice existente. La momentul descoperirii lor, sistemele bazate pe curbe eliptice au fost considerate nepractice. De atunci insa s-a ntreprins asupra lor o cercetare aprofundata si intensa. Datorita perioadei de studiu de aproximativ 20 de ani a proprietatilor

criptosistemelor bazate pe curbe eliptice, se poate considera ca acestea sunt

suficient de bine cunoscute.

Inca de la introducerea lor au existat discutii extinse si au fost publicate numeroase carti si articole asupra securitatii si eficientei lor. Anii 90 au fost

nsa extrem de importanti pentru acest tip de criptosisteme deoarece acestea au inceput sa cunoasca acceptarea comerciala odata cu standardizarea unor algoritmi si protocoale bazate pe curbe eliptice. Eficienta curbelor eliptice tine de un avantaj important pe care il au aceste obiecte matematice n fata altor criptosisteme. Avantajul consta n inexistenta sau mai bine spus, nu se cunoaste un algoritm cu timp subexponential care sa gaseasca logaritmi discreti pentru grupurile generate de o curba eliptica. In plus un alt avantaj ar fi acela ca utilizarea unei astfel de structuri care este mai mica decat altele, in ceea ce priveste numarul de elemente, conduce la pastrarea aceluia si nivel de securitate cu dimensiuni ale cheilor mai mici dect n cazul altor criptosisteme. Dimensiunile reduse ale cheilor si ale reprezentarilor elementelor conduc implicit la utilizarea a mai putine resurse pentru criptarea datelor si reducerea latimii de banda necesare transmiterii textelor criptate. Este evident ca astfel de proprietati fac din curbele eliptice si criptosistemele bazate pe aceste obiecte matematice solutii ideale de securitate a datelor pentru mediile n care puterea de procesare si conexiunea la retea sunt limitate. Printre aceste medii se pot enumera: telefoanele mobile, PDA-uri, smart-carduri, carduri pc, etc.

In ultimii ani, curbele eliptice au fost folosite pentru conceperea unor algoritmi eficienti de factorizare a intregilor si pentru demonstrarea primalitatii. Ele au fost utilizate in construirea criptosistemelor cu chei publice, in construirea generatoarelor de biti pseudoaleatoare si a permutarilor neinversabile. Curbele eliptice si-au gasit aplicabilitate si in teoria codurilor, unde au fost intrebuintate pentru obtinerea unor coduri corectoare de erori foarte bune. Curbele eliptice au jucat un rol important i n recenta demonstraie a Ultimei Teoreme a lui Fermat. Folosirea sistemelor de criptare bazate pe curbe eliptice permite cresterea securitatii, scazand n acelasi timp overhead-ul (supraincarcarea) si timpul de latenta.

Securitatea criptosistemelor bazate pe curbe eliptice consta in dificultatea calculului logaritmilor in campuri discrete (problema logaritmilor discreti): date fiind A (un element dintrun cmp finit) i Ax, este practic imposibil sa se calculeze x, atunci cand elementele sunt suficient de mari. Si alte sisteme criptografice se bazeaza pe problema logaritmilor discreti inZ* p: ElGamal, algoritmul de semnatura Schnorr, algoritmul de semnatura Nyberg-Rueppel, DSA. In mod clasic, aceste sisteme au fost definite in grupul multiplicativ Z* p. Ele pot fi insa definite la fel de bine in orice alt grup finit, cum ar fi grupul punctelor de pe o curba eliptica.

Serviciile de securitate oferite de criptosistemele bazate pe curbe eliptice sunt:

autentificarea entitatilor

confidentialitatea

integritatea datelor

ne-repudiere

schimb de chei autentificat.

Curbele eliptice sunt benefice n aplicatii in care :

puterea de calcul este limitata (cartele inteligente, dispozitive fara fir, placi PC);

spatiul pe circuit integrat este limitat (cartele inteligente, dispozitive fara fir, placi PC);

este necesara viteza mare de calcul;

se foloseste intens semnarea si verificarea semnaturii;

mesajele semnate trebuie memorate sau transmise;

latimea de banda este limitata (comunicatii mobile, anumite retele de calculatoare).

Aplicatii de genul transferurilor bancare sau transmisiile de date prin retele radio (fara fir), care necesita folosirea intensiva a semnarii digitale, autentificarii, viteza ridicata si largime de banda limitata, vor beneficia din plin de avantajele oferite de implementarile bazate pe conceptual curbelor eliptice. Sistemele bazate pe curbe eliptice se pot implementa mult mai usor si eficient atat in hardware cat si in software. Implementarile existente la momentul actual indic faptul ca aceste sisteme sunt pe departe mai eficiente decat orice alt sistem cu chei publice. Un cip construit de Certicom Corp. pentru realizarea operatiilor pe o curba eliptica peste campul F2155 are o frecvena de ceas de 40MHz si poate efectua aproximativ 40000 de operatii pe secunda. Cipul are doar 12000 de porti si este de 10 ori mai rapid dect DSA sau RSA pe 1024 de biti.

Definitie: Fie p (p>3) un numar prim . Curba eliptica y2 = x3 + ax+ b peste Zp este multimea solutiilor (xy) ( Zp x Zp ecuatiei

y2 = x3 + ax+b (mod p)

unde a, b ( Zp sunt constante astfel ca 4 a3 + 27 b2 ( 0 (mod p)

si dintr-un punct O numit punct la infinit.

O curba eliptica E se poate structura ca un grup abelian finit . Legea de compozitie (notata aditiv) este deinita astfel :

Fie P, Q ( E , P = (x1, y1) , Q = (x2 , y2) .

Daca x2 = x1 , y2= -y1 , atunci P + Q = O; altfel, P + Q = (x3, y3) unde

x3 = (2 - x1 x2 , y3 = ( (x1 - x2 ) y1 ,

iar

+

-

-

=

1

2

1

1

2

1

2

2

3

y

a

x

x

x

y

y

l

daca P Q sau P= Q

Se mai defineste P+Q = O +P = P ,

"

P

E

Verificarea proprietatilor de grup este banala . Elementul neutru este O.

4.6.1 Operatii cu punctele de pe curbele eliptice

Adunarea punctelor de pe curbele eliptice poate fi explicata cel mai usor

prin prisma reprezentarilor geometrice. Operatia de adunare pe o curba eliptica este corespondenta operatiei de inmultire in sistemele cu chei publice obisnuite iar adunarea multipla este corespondenta exponentierii modulare din acestea. Consideram reprezentarea din figura urmatoare :

Figura 5 :Adunarea punctelor de pe curba eliptica

Adunarea punctelor P(x1, y1) si Q (x2, y2 ) este echivalenta cu gasirea punctului R(x3, y3) prin trasarea unei drepte intre punctele P si Q care intersecteaza curba intr-un al treilea punct . Acest punct este inversul punctului R , iar R va fi punctul de reflexie al acestui punct . Mai exact vom trasa o perpendiculara din punctul R pe axa OX care se va interesecta curba in punctul R.

O alta operatie posibila cu punctele unei curbe este dublarea unui punct. Dublul unui punct se obtine asemanator, cu diferenta ca de aceasta data trasam o dreapta tangenta la punctul P(x1, y1). Conform figurii 6 se obtine la fel ca la adunare inversul punctului R, din care vom obtine R. Din punct de vedere algebric pentru a putea folosi aceste elemente pentru a defini un criptosistem bazat pe operatii cu puncte de pe curbe eliptice, avem nevoie sa definim o structura algebrica. Cea mai simpla structura care permite acest lucru este grupul.

Fie E o curba eliptica peste Fp sau peste Fpm si doua puncte P si Q de pe curba eliptica E. Multimea punctelor de pe curba E, notata cu E(Fp) are structura de grup impreuna cu adunarea punctelor.

1. Exista element neutru: Daca P este punctul la infinit notat cu , atunci

definim punctul P ca fiind . Pentru orice alt punct Q definim Q +

= Q.

2. Exista element invers: In Fp definim punctul invers al lui P(x, y) ca

fiind P(x,y). Daca exista un punct Q = P, atunci Q + P =

3. Operatia de adunare: O dreapta care intersecteaza cuba eliptica in

doua puncte P si Q, atunci aceasta va intersecta curba si intr-un al treilea punct. Definim P + Q = R, R(x3, y3) vor fi coordonatele celui de-al treilea punct de intersectie al dreptei cu curba eliptica E.

4. Dublarea punctelor: O dreapta d tangenta la curba eliptica E va intersecta curba eliptica in punctul R(x3, y3). Definim dublarea punctuluiP prin 2P = R

Figura 6: Adunarea punctelor de pe curba eliptica

Din descrierea de mai sus pot fi calculate formule exacte pentru adunarea si dublarea punctelor n functie de coordonatele punctelor si de tipurile de curbe prezentate mai sus rezultate prin schimbarile acceptabile de variabile. Desi regulile de calcul in grupul punctelor unei curbe eliptice par destul de complicate, aritmetica acestora poate fi implementat extrem de eficient, calculele in acest grup fiind realizate mult mai rapid decat cele din grupul Zp .

Exemplu numeric:

Fie curba eliptica E: y2=x3+x+6 pe Z11. Calculam mai intai punctele lui E: pentru orice x

Z11, se calculeaz z = x3+x+6 mod 11. Se testeaza daca z este un rest patratic (pentru un x dat) folosind criteriul lui Euler. Aplicand formula de calcul a radacinilor patrate a unui rest patratic modulo p se obtine : z(11+1)/4 mod 11 = z3 mod 11.

X

X3+x+6mod11

este rest patratic modulo 11?

y

0

6

Nu

1

8

Nu

2

5

Da

4,7

3

3

Da

5,6

4

8

Nu

5

4

Da

2,9

6

8

Nu

7

4

Da

2,9

8

9

Da

3,8

9

7

Nu

10

4

Da

2,9

Tabel 1: calculul punctelor curbei eliptice E.

Deci curba eliptica E admite 13 puncte. Ordinul grupului este prim, deci grupul este ciclic. Presupunem ca se ia =(2,7) generator al grupului. Se pot atunci calcula multiplii lui (care sunt puteri ale lui deoarece grupul este aditiv). Pentru a calcula 2=(2,7)+(2,7) se calculeaza mai intai =(322+1)(27)-1mod 11 = 23-1 mod 11 = 24 mod 11 = 8.

Atunci avem x3=82-2-2 mod 11=5 i y3=8(2-5)-7 mod 11=2.

In acelai mod se calculeaza urmatorii multiplii, obtinand:

= (2,7) 5 = (3,6) 9 = (10, 9)

2 = (5,2) 6 = (7,9) 10 = (8,8)

3 = (8,3)7 = (7,2) 11 = (5,9)

4 = (10,2) 8 = (3,5) 12 = (2, 4)

Observam ca ales mai sus este cu adevarat un generator al grupului.

Sa analizam in continuare un exemplu de criptare El Gamal pe curba eliptica din exemplul anterior:

Presupunem =(2,7) si fie exponentul secret da=7. Avem =7 =(7,2). Criptarea textului clar x cu cheia k se face in modul urmator:

eK(x, k) = (k, x+k) = (k(2,7), x+k(7,2)), unde 0 k 12 i x

E

Operatia de decriptare se desfasoara astfel:

dK(y1, y2) = y2-7y1.

Sa presupunem ca utilizatorul A vrea sa cifreze mesajul x = (10,9) (care este un punct de pe E) spre a-l trimite utilizatorului B. Pentru aceasta el alege valoarea aleatoare k=3 si calculeaza:

y1 = 3(2,7) = (8,3) si

y2 = (10,9)+3(7,2) = (10,9)+(3,5) = (10,2)]

Deci textul cifrat este y = ((8,3), (10,2)).

La receptie, utilizatorul B descifreaza mesajul in urmtorul mod:

x = (10,2)-7(8,3) = (10,2)-(3,5) = (10,2)+(3,6) = (10,9) rezultand sensul descifrat al mesajului.

4.7 Comparatie ntre criptarea simetrica si cea cu cheie publica

Avantaje ale sistemelor de criptare cu cheie simetrica:

1. Pot transmite volume mari de date. Exista implementari hard care pentru unele sisteme de criptare pot asigura rate de criptare de sute de mega-octeti pe secunda

2. Cheile sunt relativ scurte.

3. Pot fi folosite ca baza de constructie a diverselor mecanisme de criptare, cum ar fi

generatori de numere pseudo-aleatoare, generatori de functii de dispersie, scheme

de semnatura.

4. Prin compunere pot conduce la sistme de criptare puternice.

5. Au o istorie bogata n evenimente si experienta.

Dezavantaje ale sistemelor de criptare cu cheie simetrica:

1. Cheia trebuie sa ramana permament secreta n (cel putn) doua locuri distincte.

2. Cu cat lungimea unui mesaj criptat este mai mare, cu atat el este mai usor de spart.

3.In retele mari, o gestionare a cheilor devine extrem de dificila.

4. Necesita un canal sigur de comunicare, cel putin pentru transmiterea cheii. Acest

lucru devine dificil mai ales pentru sistemele care necesita schimbari frecvente ale

cheilor de criptare/decriptare.

Avantaje ale sistemelor de criptare cu cheie publica:

1. Sistemul este ideal pentru transmiterea informatiei prin canale nesigure.

2. Sistemele cu cheie publica sunt simplu de definit si elegante matematic.

3. Doar cheia de decriptare trebuie tinuta secreta, la un singur punct (destinatar).

4. In functie de modul de utilizare, o pereche de chei (publica,privata) poate fi pastrata o perioada mai lunga de timp.

5. Conduc la aplicatii de mare ntindere: semnaturi electronice, algoritmi de autentifi-

care, componente de comert electronic etc.

Dezavantaje ale sistemelor de criptare cu cheie publica:

1. Sunt semnificativ mai lente decat sistemele simetrice.

2. Sunt necesare chei de lungimi mult mai mari.

3. Nu se poate garanta securitatea absoluta a nici unei scheme de criptare cu cheie

publica

4. Implementarea trebuie realizata cu foarte mare grija. Sisteme cu grad ridicat teoretic de securitate pot fi sparte usor printr-o implementare neglijenta.

Dupa cum se observa, cele doua clase de sisteme de criptare dispun de o serie de avantaje complementare. Acest lucru face ca ele sa fie folosite combinat.

Concluzii:

Se pare ca discutia pe tema securitatii datelor este de actualitate . Apar cateva opinii in legtura cu ce s-a vorbit pana acum legat de acest subiect. In primul rand o precizare care sa clarifice conceptul de securitate: ascunderea datelor (fisiere, foldere, etc.) pe un HDD nu se numeste, in nici un caz securitate, aceasta se numeste obscuritate. Securitate este atunci cand atacatorul (hotul) are acces la date, stie unde sa le gaseasca, stie ce algoritm de criptare a fost folosit, mai stie si modul de funcionare a acestui algoritm si, peste toate acestea are si timp sa incerce diferite metode de atac, insa, daca nu stie cheia de decriptare, nu are cum sa decripteze fisierele (datele) protejate in timp util. In acest context, timpul util este mai mic decat timpul de viata (validitate) a informatiei protejate. Se poate discuta la nesfarsit despre diferiti algoritmi de criptare, cat de siguri sunt, cit de rapizi sunt, etc. Orice algoritm de criptare este inutil daca cheia de decriptare este compromisa (pierduta, furata, gasita, etc.). In alta ordine de idei, in momentul iin care un hot vrea sa jefuiasc o banca, in nici un caz nu va trece la fapte in momentul in care i trece ideea prin cap. Inainte de furt va avea grija sa urmareasca banca respectiva, isi pregateste lovitura. In aceeasi idee, cine vrea sa copieze date digitale, in mod sigur va urmari care sunt orele intre care proprietarul este conectat, unde tine fisierele, ce fel de protocol de autentificare foloseste pentru a fi recunoscut de catre sistem, etc. De aici rezulta ca, daca un hot copiaza ceva de pe un HDD, nu copiaza doar de dragul de a copia , copiaza fiindca stie ce sa copieze si de unde sa copieze, deci stie ca datele sunt intr-un anumit loc. Dac ai date importante, nu iti permiti sa le ascunzi pe HDD, sperand ca hotul (atacatorul) nu le va gasi din neatentie. n legatura cu programele care ascund sau restrictioneaz anumite drepturi in Windows 95/98, Windows 95/98 nu a fost creat cu securitatea datelor in gand. Si asta se vede tocmai la baza sistemului de operare, adica la sistemul de fisiere. Windows 9x se bazeaz pe sistemul de fisiere FAT, care stim foarte bine ce performante si ce slsbiciuni are. Mai mult de atat, din dorinta de a asigura compatibilitatea programelor scrise pentru Win 31, nucleul lui Win 9x se bazeaza pe apeluri de functii si servicii ale vechiului DOS, care habar nu are ce nseamna mai multi utilizatori sau mai multe task-uri. Astfel, securitatea datelor n Win 9x folosind programe care ascund sau restrictioneaza anumite drepturi, se aseamana cu sigurana unei case de piatra construita pe o fundatie de paie. Unica solutie pentru o adevarat securitate este folosirea/implementarea unui sistem criptografic, care sa fie independent de sistemul de operare si care sa preia sarcina de pe seama sistemului de operare. Prin Internet se gasesc o multime de implementari ale celor mai buni algoritmi de criptare. Foarte multe dintre acestea sunt gratuite si poti avea codul sursa pe care sa-l studiezi si sa-l modifici dupa bunul plac. Astfel, chiar daca nu esti un foarte bun cunoscator in domeniu, poti sa-ti faci o securitate destul de marita a fisierelor si a datelor.

BIBLIOGRAFIE

1) Ion Bica, Victor Valeriu Patriciu: Securitatea Comertului Electronic,

Editura All, Bucuresti 2001

2) Michael A. Banks: PC Confidential, Editura All, Bucuresti 2001

3) Sabin Corneliu Buraga: Tehnologii WEB, Editura MatrixRom, Bucuresti

2001

4) Titu I. Bajenescu: Tehnologiile XDSL si Internetul rapid Multimedia,

Editura Tehnica, Bucuresti 2001

5) Victor Pakondi: Dictionar Internet & Tehnologii World Wide Web,

Editura Kondyli, Bucuresti 2000

6) Network Associates, Inc.: An Introduction to Cryptography, Santa

Clara, California 2000 Documentatie PGP

7) CERTCoordination Center Reports: Security of the Internet,

http://www.cert.org/encyc_article/tocencyc.html Document HTML

8) Cookie Central: The Cookie Concept, http://www.cookiecentral.com

Document HTML

9) Dan Serbanescu: Serviciile secrete ale web-ului, revista PC Magazine

Romnia, ianuarie 2002

10) Mihaela Crstea: Securitatea ca mod de viata, revista PC Magazine

Romnia, aprilie 2002

11) http://www.cert.org/encyc_article/tocencyc.html

Un nou portal informaional!

Dac deii informaie interesant si doreti s te impari cu noi atunci scrie la adresa de e-mail : [email protected]

PAGE

- 22 -

_1235462585.unknown
_1235465412.unknown
_1235466421.unknown
_1235462618.unknown
_1235462408.unknown