Criptografie asimetrică este un domeniu de criptografie în cazul în care există o distincție între datele publice și privat , spre deosebire de criptografie simetrică în cazul în care funcționalitatea se realizează prin posesia unei date secrete comune între participanți.
Criptografia asimetrică poate fi ilustrată cu exemplul de criptare a cheilor publice și private , care este o tehnică de criptare , adică scopul este de a garanta confidențialitatea datelor. Termenul asimetric se aplică prin faptul că există două chei de criptare (utilizatorul care dorește să primească mesaje se fabrică singur), cum ar fi dacă utilizatorul utilizează o primă cheie într-un algoritm numit „criptare”, datele devin de neînțeles pentru toți cei care nu au a doua cheie, care poate găsi mesajul inițial atunci când această a doua cheie este dată la intrarea unui așa-numit algoritm de „decriptare”.
Prin convenție, numim cheia de decriptare cheia privată și cheia de criptare cheia publică .
Cheia aleasă privată nu este transmisă nimănui, în timp ce cheia aleasă publică este transferabilă fără restricții.
Acest sistem permite două lucruri majore:
Conceptul de criptografie cu cheie publică - un alt nume pentru criptografie asimetrică - este atribuit în general lui Whitfield Diffie și Martin Hellman care l-au prezentat publicului la Conferința Națională de Calculatoare din 1976 și apoi au fost publicate câteva luni mai târziu în New Directions in Cryptography . Cu toate acestea, conceptul a fost descoperit independent de alți cercetători în același timp.
Se spune că Ralph Merkle a făcut aceeași descoperire în același timp, deși articolele sale nu au fost publicate până în 1978.
În articolul lor din 1976, W. Diffie și M. Hellman nu au putut da exemplul unui sistem de chei publice, care nu a găsit unul. Abia în 1978 a avut un exemplu dat de Ronald Rivest , Adi Shamir și Leonard Adleman , RSA , o abreviere preluată din cele trei nume ale autorilor săi. Cei trei bărbați au fondat ulterior compania RSA Security . Sistemul Merkle-Hellman este considerat pe scară largă ca prima realizare practică a unui sistem de criptare cu cheie publică, totuși sa dovedit a fi nesigur de către Shamir în 1982.
În plus față de cercetarea publică, serviciile de cifrare britanice (GCHQ, Government Communications Headquarters ) ar fi efectuat cercetări secrete care să conducă la concepte și instrumente de criptare asimetrică din prima jumătate a anilor 1970:
Aceste descoperiri nu au fost făcute publice de GCHQ decât în 1997 .
Criptare asimetrică sau criptografia cu chei publice se bazează pe existența unor funcții cu sens unic și încălcare secrete .
One-way funcții sunt matematice funcții astfel încât atunci când sunt aplicate la un mesaj, este extrem de dificil de a găsi mesajul original.
Cu toate acestea, existența unei încălcări secrete permite persoanei care a proiectat funcția unidirecțională să decodeze cu ușurință mesajul datorită unei informații aflate în posesia sa, numită cheie privată.
Să presupunem că Alice dorește să primească un mesaj secret de la Bob pe un canal care ar putea fi ascultat de un atacator pasiv Eve :
Terminologia utilizată în mod convențional este:
În practică, se utilizează funcții de criptare convenționale , termenii „cheie publică” și „cheie privată” corespunzând apoi parametrilor utilizați pentru aceste funcții.
Alice își dorește să poată primi mesaje criptate de la oricine.
Distribuirea cheilor publiceApoi generează o valoare dintr-o funcție de încălcare secretă unidirecțională utilizând un algoritm de criptare asimetrică ( lista aici ), de exemplu RSA .
Alice transmite funcția de codificare a mesajelor către toată lumea (cheie publică denotată), dar păstrează secretă funcția de decodare (cheie privată denotată).
CriptareUnul dintre rolurile cheii publice este furnizarea de criptare ; Deci, aceasta este cheia pe care Bob o va folosi pentru a trimite mesaje criptate către Alice. Cealaltă cheie - informațiile secrete - utilizate pentru a cuantifica zarurile . Astfel, Alice, și singură, pot citi mesajele lui Bob. Cunoașterea unei chei nu ne permite să o deducem pe cealaltă.
Autentificarea originiiPe de altă parte, utilizarea de către Alice a cheii sale private în rezumatul unui mesaj îi va permite lui Bob să verifice dacă mesajul vine cu adevărat de la Alice: el va aplica cheia publică a lui Alice la hashul furnizat (hash criptat cu cheia privată a lui Alice) și, prin urmare, găsește rezumatul mesajului original. Îi va fi suficient să compare rezumatul astfel obținut și rezumatul real al mesajului pentru a ști dacă Alice este într-adevăr expeditorul. Acesta este modul în care Bob va fi liniștit cu privire la originea mesajului primit: acesta aparține într-adevăr lui Alice. În special acest mecanism funcționează semnătura digitală .
Criptare: Alice a ales un seif. Îl trimite deschis lui Bob și păstrează cheia. Când Bob vrea să îi scrie lui Alice, își lasă mesajul acolo, închide seiful, nu are nevoie de cheie pentru asta și îl trimite înapoi lui Alice. La primire, doar Alice poate deschide seiful, deoarece singura are cheia, presupunând seiful, și nimeni nu poate reface cheia.
Autentificare sau semnătură: Alice plasează un mesaj în seiful pe care îl închide cu cheia privată înainte de a-l trimite lui Bob. Dacă Bob reușește, folosind cheia publică a lui Alice (pe care o are), să citească scrisoarea, este pentru că este a lui Alice și, prin urmare, ea este cea care a plasat scrisoarea acolo.
Cutia cu două încuietoriO altă posibilă analogie ar fi să ne imaginăm o cutie cu două încuietori diferite. Când cutia este închisă pe o parte, numai cheia corespunzătoare celeilalte blocări permite deschiderea cutiei și invers. Una dintre chei este privată și păstrată secretă, cealaltă se spune că este publică și o copie poate fi obținută de oricine dorește să folosească cutia.
Pentru a cripta un mesaj Bob preia caseta, plasează mesajul acolo și îl închide cu cheia publică. Numai titularul cheii private care permite accesul la cealaltă încuietoare, Alice în acest caz, va putea redeschide caseta.
Pentru a semna un mesaj, Alice îl plasează în cutie și îl închide folosind cheia privată. Deci, oricine a recuperat cheia publică va putea deschide caseta. Dar, întrucât caseta a fost închisă de cheia privată, această persoană va fi asigurată că într-adevăr Alice, singurul deținător al acestei chei, va fi plasat mesajul în cutie și închis caseta menționată.
În schimbul proprietăților lor specifice, cifrele asimetrice sunt în general mai puțin eficiente decât echivalentele lor simetrice : timpii de procesare sunt mai mari și, pentru un nivel echivalent de securitate, cheile trebuie să fie mult mai lungi.
Dacă criptarea asimetrică face posibilă protecția împotriva ascultării pasive , transmiterea inițială a cheii publice pe un canal nesecurizat se expune atacurilor omului din mijloc . Pentru a proteja împotriva acestui risc, se folosește în general o infrastructură cu cheie publică .
Criptografia asimetrică îndeplinește o nevoie majoră de criptografie simetrică : partajarea sigură a unei chei între doi corespondenți, pentru a preveni interceptarea acestei chei de către un terț neautorizat și, prin urmare, citirea datelor criptate fără autorizare.
Deoarece mecanismele de criptare simetrică sunt mai puțin costisitoare în timpul de calcul , acestea sunt preferate mecanismelor de criptare asimetrice. Cu toate acestea, orice utilizare a unei chei de criptare simetrice necesită ca cei doi corespondenți să împartă această cheie, adică să o cunoască înainte de schimb. Aceasta poate fi o problemă dacă comunicarea acestei chei se realizează printr-un mediu nesecurizat, „în clar”. Pentru a depăși acest dezavantaj, se utilizează un mecanism de criptare asimetric pentru singura fază de schimb a cheii simetrice, iar aceasta din urmă este utilizată pentru restul schimbului.
Un dezavantaj major al utilizării mecanismelor de criptare asimetrice este faptul că cheia publică este distribuită tuturor oamenilor: Bob , Carole și Alice care doresc să facă schimb de date confidențial. Prin urmare, atunci când persoana cu cheia privată, Alice , decriptează datele criptate, nu are nicio modalitate de a verifica cu certitudine originea acestor date ( Bob sau Carole ): vorbim despre probleme de autentificare .
Pentru a rezolva această problemă, mecanismele de autentificare sunt utilizate pentru a garanta originea informațiilor criptate. Aceste mecanisme se bazează, de asemenea, pe criptare asimetrică, principiul căruia este următorul: Bob dorește să trimită date criptate Alice, garantându-i că el este expeditorul.
Această metodă de autentificare folosește specificitatea perechilor de chei asimetrice: dacă criptăm un mesaj folosind cheia publică, atunci putem decripta mesajul folosind cheia privată; inversul este, de asemenea, posibil: dacă criptăm folosind cheia privată, atunci putem decripta folosind cheia publică.
Criptografia asimetrică este utilizată și cu certificatele digitale , care conțin cheia publică a entității asociate certificatului. Cheia privată este stocată la nivelul ultimei entități. O aplicație de certificat este, de exemplu, implementarea unei infrastructuri cu cheie publică (PKI) pentru a gestiona autentificarea și semnătura digitală a unei entități, de exemplu, un server web ( Apache cu modulul SSL de exemplu) sau pur și simplu un client care dorește să semneze și criptați informațiile folosind certificatul lor așa cum este descris în secțiunile anterioare.
Criptarea simetrică utilizând o cheie pe 128 de biți oferă 2128 (~ 3,4 10 38 ) modalități de a cripta un mesaj. Un hacker care încearcă să descifreze forța brută a mesajului ar trebui să le încerce unul câte unul.
Pentru sistemele cu cheie publică, este diferit. În primul rând, tastele sunt mai lungi (de exemplu 2048 biți minimum pentru RSA ); de fapt, acestea au o structură matematică foarte particulară (nu se poate alege o secvență de biți aleatori ca cheie secretă, de exemplu în cazul RSA, se folosesc doar numere prime ). Unii algoritmi care exploatează această structură sunt mai eficienți decât o căutare exhaustivă pe, de exemplu, 1024 biți. Astfel, în cazul RSA, sita generală a câmpurilor numerice este o metodă mai eficientă decât căutarea exhaustivă a factorizării .
Rețineți dezvoltarea actuală a criptografiei utilizând curbe eliptice , care permit (cu prețul teoriei și implementărilor mai complexe) utilizarea cheilor semnificativ mai mici decât cele ale algoritmilor convenționali (o dimensiune de 160 biți fiind considerată foarte sigură în prezent), pentru o nivel echivalent de siguranță.
În ediția din 6 septembrie 2013, ziarul The Guardian a susținut că NSA a fost capabilă să descifreze majoritatea datelor criptate care circulă pe internet. Cu toate acestea, multe surse au indicat că NSA nu a rupt matematic cifrele, ci s-ar baza pe punctele slabe în implementarea protocoalelor de securitate.