fbpx
  • Home
  • Ce este criptografia? Cum algoritmii păstrează informațiile secrete și sigure
zap October 29, 2020 0 Comments

Definiția criptografiei

Criptografia este știința păstrării informațiilor în siguranță, transformându-le într-o formă pe care destinatarii neintenționați nu o pot înțelege. În criptografie, un mesaj original lizibil de către om, denumit text simplu, este schimbat prin intermediul unui algoritm, sau a unei serii de operații matematice, în ceva care pentru un observator neinformat ar arăta ca un tâmpit; această tâmpenie se numește text cifrat.

Sistemele criptografice necesită o metodă pentru ca destinatarul să poată folosi mesajul criptat – de obicei, deși nu întotdeauna, transformând textul cifrat înapoi în text simplu.

Criptografie vs. criptare

Criptarea este ceea ce numim procesul de transformare a textului simplu în text cifrat. (Cripta te poate face să te gândești la morminte, dar provine dintr-un cuvânt grecesc care înseamnă „ascuns” sau „secret”.) Criptarea este o parte importantă a criptografiei, dar nu cuprinde întreaga știință. Opusul său este decriptarea.

Un aspect important al procesului de criptare este că implică aproape întotdeauna atât un algoritm, cât și o cheie. O cheie este doar o altă informație, aproape întotdeauna un număr, care specifică modul în care algoritmul este aplicat textului simplu pentru a-l cripta. Chiar dacă cunoașteți metoda prin care un mesaj este criptat, este dificil sau imposibil să decriptați fără acea cheie.

Istoria criptografiei

Acest lucru este foarte abstract și o modalitate bună de a înțelege specificul a ceea ce vorbim este de a privi una dintre cele mai vechi forme cunoscute de criptografie. Este cunoscut sub numele de cifru Caesar, deoarece Iulius Caesar l-a folosit pentru corespondența sa confidențială; așa cum a descris-o biograful său, Suetonius, „dacă avea ceva confidențial de spus, el îl scria cifrat, adică schimbând astfel ordinea literelor alfabetului … Dacă cineva dorește să le descifreze și ajunge la semnificația lor, el trebuie să înlocuiască a patra literă a alfabetului, și anume D, cu A, și așa cu celelalte.”

Descrierea lui Suetonius poate fi împărțită în cele două elemente criptografice pe care le-am discutat, algoritmul și cheia. Algoritmul de aici este simplu: fiecare literă este înlocuită cu o altă literă din alfabet. Cheia este câte litere din alfabet trebuie să folositi pentru a vă crea textul cifrat. Sunt trei în versiunea cifrului descris de Suetonius, dar, evident, sunt posibile și alte variații – cu o cheie de patru, A ar deveni E, de exemplu.

Câteva lucruri ar trebui să fie clare din acest exemplu. Criptarea de acest fel oferă o modalitate destul de simplă de a trimite în secret orice mesaj doriți. Contrastează acest lucru cu un sistem de fraze de cod în care, să zicem, „Să comandăm pizza” înseamnă „Am să invadez Galia”. Pentru a traduce acest tip de cod, oamenii de la ambele capete ale lanțului de comunicare ar avea nevoie de o carte de fraze de cod și nu ați avea cum să codificați fraze noi la care nu v-ați gândit în prealabil. Cu ajutorul cifrului Caesar, puteți cripta orice mesaj la care vă puteți gândi. Partea dificilă este că toată lumea care comunică trebuie să cunoască algoritmul și cheia în avans, deși este mult mai ușor să transmiteți și să păstrați informațiile în siguranță decât ar fi cu o carte de cod complexă.

Cifrul Cezar este ceea ce este cunoscut ca un cifru de substituție, deoarece fiecare literă este substituită cu alta; alte variante în acest sens ar substitui blocurile de litere sau cuvintele întregi. În cea mai mare parte a istoriei, criptografia a constat din diverse cifre de substituție desfășurate pentru a menține securitatea comunicațiilor guvernamentale și militare. Matematicienii arabi medievali au împins știința înainte, în special arta decriptării – odată ce cercetătorii au realizat că anumite litere într-o limbă dată sunt mai frecvente decât altele, devine mai ușor să recunoaștem tiparele, de exemplu. Dar majoritatea criptării premoderne este incredibil de simplă în conformitate cu standardele moderne, din motivul evident că, înainte de apariția computerelor, era dificil să efectuați transformări matematice suficient de rapid pentru a face criptarea sau decriptarea să merite.

De fapt, dezvoltarea computerelor și progresele în criptografie au mers mână în mână. Charles Babbage, a cărui idee pentru Difference Engine prevestea computerele moderne, era, de asemenea, interesat de criptografie. În timpul celui de-al doilea război mondial, germanii au folosit mașina electromecanică Enigma pentru a cripta mesajele – și, faimos, Alan Turing a condus o echipă din Marea Britanie care a dezvoltat o mașină similară pentru a sparge codul, în procesul de stabilire a bazelor primelor computere moderne . Criptografia a devenit radical mai complexă pe măsură ce computerele au devenit disponibile, dar au rămas provincia spionilor și a generalilor încă câteva decenii. Cu toate acestea, acest lucru a început să se schimbe în anii 1960.

Criptografie în securitatea rețelei

A fost formarea primelor rețele de calculatoare care au început civilii să se gândească la importanța criptografiei. Calculatoarele vorbeau între ele prin rețeaua deschisă, nu doar prin conexiuni directe între ele; acest tip de rețea a fost transformator în multe moduri grozave, dar a făcut, de asemenea, ușor de cercetat datele care călătoresc prin rețea. Și serviciile financiare fiind un caz de utilizare timpurie pentru comunicarea computerizată, a fost necesar să se găsească o modalitate de a păstra informațiile secrete.

IBM a condus calea la sfârșitul anilor 1960 cu o metodă de criptare cunoscută sub numele de „Lucifer”, care a fost în cele din urmă codificată de Biroul Național de Standarde al SUA ca primul standard de criptare a datelor (DES). Pe măsură ce internetul a început să crească din ce în ce mai mult, a fost nevoie de o criptare mai mare și mai bună, iar astăzi o parte semnificativă a datelor care zboară în jurul lumii este criptată folosind diferite tehnici pe care le vom discuta mai detaliat într-o clipă.

La ce se folosește criptografia?

Am discutat deja câteva dintre aplicațiile specifice ale criptografiei, de la păstrarea secretelor militare la transmiterea în siguranță a datelor financiare pe internet. În imaginea de ansamblu, totuși, există câteva obiective generale de securitate cibernetică pe care le folosim criptografiei pentru a ne ajuta să le realizăm, așa cum explică consultantul în securitate cibernetică Gary Kessler. Folosind tehnici criptografice, profesioniștii în securitate pot:

  • Păstra confidențialitatea conținutului datelor
  • Autentifica identitatea expeditorului și a destinatarului unui mesaj
  • Asigura integritatea datelor, arătând că nu au fost modificate
  • Demonstra că presupusul expeditor a trimis cu adevărat acest mesaj, un principiu cunoscut sub numele de non-respingere

Puteți recunoaște unele dintre aceste principii din variații ale triadei CIA. Prima dintre aceste utilizări este cea evidentă – puteți păstra datele secrete criptându-le. Ceilalți iau câteva explicații, în care vom intra în timp ce descriem diferitele tipuri de criptografie.

Tipuri de criptografie

Există numeroși algoritmi criptografici utilizați, dar, în general, pot fi împărțiți în trei categorii: criptografie cu cheie secretă, criptografie cu cheie publică și funcții hash. Fiecare are propriul său rol de jucat în domeniul criptografic.

Criptografie cu cheie secretă. Cifrul Cezar despre care am discutat mai sus este un exemplu excelent de criptografie cu cheie secretă. În exemplul folosit, dacă mesajele criptate erau schimbate între Caesar și unul dintre centurionii săi, ambele părți ar trebui să știe cheia – în acest caz, câte litere înainte sau înapoi din alfabet trebuie să mutați pentru a transforma textul în text cifrat sau invers. Dar cheia trebuie să rămână un secret între cei doi. De exemplu, nu ați putea trimite cheia împreună cu mesajul, deoarece dacă ambii ar cădea în mâinile inamicului, mesajul le-ar fi ușor de descifrat, învingând în primul rând întregul scop al criptării. Cezar și centurionul său ar trebui probabil să discute cheia atunci când s-au văzut în persoană, deși, evident, acest lucru este mai puțin decât ideal atunci când războaiele se luptă pe distanțe mari.

Criptografia cheii secrete, uneori numită și cheie simetrică, este folosită pe scară largă pentru a păstra confidențialitatea datelor. Poate fi foarte util pentru păstrarea unui hard disk local privat, de exemplu; deoarece același utilizator criptează și decriptează în general datele protejate, partajarea cheii secrete nu este o problemă. Criptografia cu cheie secretă poate fi utilizată și pentru a păstra confidențialitatea mesajelor transmise pe internet; cu toate acestea, pentru a reuși acest lucru, trebuie să implementați următoarea noastră formă de criptografie în tandem cu aceasta.

Criptografie cu cheie publică. Poate că Cezar a reușit să se consulte personal cu centurionii săi, dar nu doriți să intrați în banca dvs. și să discutați cu casierul doar pentru a afla care este cheia privată pentru criptarea comunicării dvs. electronice cu banca – ceea ce ar învinge scopul operațiunilor bancare online. În general, pentru a funcționa în siguranță, internetul are nevoie de o modalitate prin care părțile comunicante să stabilească un canal de comunicații securizat, în timp ce vorbesc doar între ele printr-o rețea inerent nesigură. Modul în care funcționează este prin criptografie cu cheie publică.

În criptografia cu cheie publică, uneori numită și cheie asimetrică, fiecare participant are două chei. Una este publică și este trimisă oricărei părți cu care dorește să comunice. Aceasta este cheia utilizată pentru a cripta mesajele. Dar cealaltă cheie este privată, împărtășită nimănui și este necesar să decriptați aceste mesaje. Pentru a utiliza o metaforă: gândiți-vă la cheia publică ca la deschiderea unui spațiu pe o cutie poștală suficient de largă pentru a lăsa o scrisoare. Dați aceste dimensiuni oricui credeți că ar putea să vă trimită o scrisoare. Cheia privată este ceea ce utilizați pentru a deschide cutia poștală, astfel încât să puteți scoate scrisorile.

Matematica modului în care puteți utiliza o cheie pentru a cripta un mesaj și alta pentru a decripta este mult mai puțin intuitivă decât modul în care funcționează cheia cifrului Cezar. Principiul de bază care face ca procesul să funcționeze este acela că cele două chei sunt de fapt legate între ele matematic, astfel încât este ușor să derivăm cheia publică din cheia privată, dar nu și invers. De exemplu, cheia privată ar putea fi două numere prime foarte mari, pe care le-ați înmulți împreună pentru a obține cheia publică.

Calculele necesare pentru criptografia cu cheie publică sunt mult mai complexe și consumă resurse decât cele din spatele infrastructurii cheii secrete. Din fericire, nu este nevoie să-l utilizați pentru a proteja fiecare mesaj pe care îl trimiteți online. În schimb, ceea ce se întâmplă de obicei este că o parte va folosi criptografia cu cheie publică pentru a cripta un mesaj care conține încă o altă cheie criptografică. Această cheie, care a fost transmisă în siguranță prin internetul nesigur, va deveni apoi cheia privată care codifică o sesiune de comunicații mult mai lungă criptată prin criptarea cheii secrete.

În acest fel, criptografia cu cheie publică ajută cauza confidențialității. Dar aceste chei publice fac parte, de asemenea, dintr-un set mai mare de funcții cunoscut sub numele de infrastructură de chei publice sau PKI. PKI oferă modalități de a vă asigura că orice cheie publică este asociată cu o anumită persoană sau instituție. Un mesaj criptat cu o cheie publică confirmă astfel identitatea expeditorului, stabilind autentificarea și non-repudierea.

Funcții Hash. Algoritmii criptografici cu cheie publică și privată implică transformarea textului simplu în text cifrat și apoi înapoi în text clar. În schimb, o funcție hash este un algoritm de criptare unidirecțional: odată ce ați criptat textul clar, nu îl puteți recupera vreodată din textul cifrat rezultat (denumit hash).

Acest lucru ar putea face ca funcțiile hash să pară un exercițiu oarecum inutil. Dar cheia utilității lor este că, pentru orice funcție hash dată, nu există două texte simple care să producă același hash. (Din punct de vedere matematic, acest lucru nu este chiar corect, dar pentru orice funcție hash efectiv utilizată, șansele ca acest lucru să se întâmple sunt în general foarte mici și pot fi ignorate în siguranță.)

Acest lucru face din algoritmii de hash un instrument excelent pentru asigurarea integrității datelor. De exemplu, un mesaj poate fi trimis împreună cu propriul hash. La primirea mesajului, puteți rula același algoritm de hash pe textul mesajului; dacă hashul pe care îl produceți este diferit de cel care însoțește mesajul, știți că mesajul a fost modificat în tranzit.

Hashing-ul este, de asemenea, utilizat pentru a asigura confidențialitatea parolelor. Stocarea parolelor ca text simplu este o mare siguranță, deoarece acest lucru îi face pe utilizatori predispuși la furturi de conturi și identitate în urma încălcărilor de date (ceea ce, din păcate, nu îi împiedică pe jucătorii mari să o facă). Dacă în schimb stocați o versiune hash a parolei unui utilizator, hackerii nu vor putea să o decripteze și să o folosească în altă parte, chiar dacă reușesc să vă încalce apărarea. Atunci când un utilizator legitim se conectează cu parola sa, puteți doar să o hash și să verificați dacă nu aveți hash pe care îl aveți în dosar.

Hashing-ul este, de asemenea, utilizat pentru a asigura confidențialitatea parolelor. Stocarea parolelor ca text simplu este o mare siguranță, deoarece acest lucru îi face pe utilizatori predispuși la furturi de conturi și identitate în urma încălcărilor de date (ceea ce, din păcate, nu îi împiedică pe jucătorii mari să o facă). Dacă în schimb stocați o versiune hash a parolei unui utilizator, hackerii nu vor putea să o decripteze și să o folosească în altă parte, chiar dacă reușesc să vă încalce apărarea. Atunci când un utilizator legitim se conectează cu parola sa, puteți doar să o hash-uiți și verificați împotriva hashului pe care îl aveți la dosar.

Exemple și tehnici de criptografie

Există numeroase tehnici și algoritmi care implementează fiecare dintre cele trei tipuri de criptare discutate mai sus. În general, acestea sunt destul de complexe și depășesc scopul acestui articol; am inclus link-uri aici, unde puteți afla mai multe despre unele dintre cele mai utilizate exemple.

Criptare cheie secretă:

Criptare cu cheie publică:

Funcții Hash:

Există o gamă largă de funcții hash cu diferite scopuri specializate. Lista de pe Wikipedia este un loc bun pentru a începe.

Sursa: https://www.csoonline.com/article/3583976/what-is-cryptography-how-algorithms-keep-information-secret-and-safe.html