Odată cu ascensiunea internetului, am mutat un volum enorm din comunicațiile noastre pe internet. Deoarece internetul, ca mijloc de comunicație, se bazează pe milioane de computere care se ocupă de transferul biților de informații schimbate între noi, lăsăm urme ale comunicațiilor noastre și despre noi înșine de-a lungul traseului.
S-ar putea ca informațiile dintr-un singur schimb de informații să nu ofere prea multe date pentru cei din exterior, însă, deoarece utilizăm atât de mult internetul, volumul mare de informații lăsate în urmă, indiferent de fragmentare, poate și va conduce inevitabil la identificarea dumneavoastră. Expunerea la date ar putea duce, de asemenea, la scurgerea în online a propriilor dumneavoastră informații cu caracter personal.
Menținerea privată a comunicațiilor este esențială pentru limitarea informațiilor pe care le lăsați în urmă. Atunci când vă securizați comunicațiile, de fapt ascundeți informațiile din surse disponibile publicului. Majoritatea modalităților de a menține comunicațiile private se bazează pe criptare. În realitate, criptarea vă ascunde comunicațiile de orice alte computere prin care trebuie să treacă informațiile. Algoritmul de criptare este ceea ce determină cât de sigură este criptarea, însă, din moment ce datele sunt procesate prin intermediul unor computere care nu sunt de încredere (rețineți, oricine poate instala un nod pe internet), modul în care se schimbă cheile de criptare ar putea reprezenta, totodată, și punctul slab.
O scurtă introducere în criptografie
Nu trebuie să înțelegeți toate detaliile criptării, însă vă oferim în continuare o scurtă trecere în revistă privind metodele simple de criptare - oamenii au tendința să considere că astfel de informații sunt interesante. Până la urmă, unele forme de criptografie au fost folosite de mii de ani. Este posibil ca cei care au utilizat pentru prima oară criptarea să fi fost egiptenii, deși este posibil ca simpla înlocuire a conținutului mesajului pentru a camufla mesajul original să fi fost utilizată chiar cu ceva timp înainte.
Gândiți-vă la primul capitol în care ați aflat despre triada CID. Criptografia este o modalitate obișnuită de a asigura că latura de confidențialitate a triadei este bine procesată.
Cifrul lui Cezar
Romanii utilizau criptografia destul de frecvent. Se știe că Iulius Cezar utiliza o formă de cifru de substituție cunoscută în prezent drept cifrul lui Cezar. Un cifru este un termen care descrie un algoritm utilizat la criptarea și decriptarea datelor. Un cifru de substituție este un cifru în care un semn este înlocuit cu altul, astfel cum este stabilit prin unele mijloace. De exemplu, Cezar utiliza un cifru în care fiecare literă era scrisă într-un mod care înlocuia semnul cu cel de-al treilea de la acesta în ordine alfabetică, de exemplu un A devenea un D, iar un B devenea un E și așa mai departe.
După cum puteți vedea din imagine, cheia pentru această „criptare” este „mută trei pași înainte în alfabet”. De asemenea, ați putea fi în stare să deduceți aceste tipuri de cifru în funcție de cât de secret puteți păstra sistemul în schimbul cheii. În exemplul cu cifrul lui Cezar, cheia putea fi orice și ați fi putut fi în stare s-o ghiciți destul de ușor, încercând toate combinațiile (utilizând forța brută) sau utilizând frecvența literelor dintr-o limbă dată. De exemplu, dacă litera P este litera cea mai utilizată din mesajul codificat și se cunoaște că limba este engleza, este o presupunere rezonabilă că P din mesajul secret este E în mesajul text, deoarece E este cea mai frecventă literă din limba engleză. Au fost utilizate diferite variații ale cifrului de substituție timp de cel puțin o mie de ani până când matematica a furnizat modalități de criptare mai bune.
Un alt cifru de substituție binecunoscut, menționat adesea, este așa-numitul „cifru Kamasutra”. Cifrul este menționat pentru prima oară în Kamasutra ca arta de a camufla mesaje, în special de către femei. Cifrul Kamasutra sugera că alfabetul se împarte în două părți care se împerechează una cu cealaltă. Perechea literei ar fi substituția în cifru, nu ar fi doar o schimbare de o anumită lungime.
O observație suplimentară este că nu trebuie să fie perfectă criptarea. În conflicte precum războiul, doar asigurarea că mesajul nu este citit în câteva minute sau ore poate fi esențială. Cu toate acestea, în cazurile în care datele criptate sunt confidențiale și pot și dăuna ulterior, ar trebui să vă asigurați că metoda pe care o utilizați nu se poate compromite prea ușor.
Cifrul Vigenère
În cursul secolului al XVI-lea, a fost elaborată o nouă modalitate de criptare mai bună care proteja împotriva atacurilor prin frecvență. Cifrul Vigenère utilizează o cheie repetitivă, care învinge utilizarea simplă a analizei frecvenței deoarece litera P nu mai corespunde literei E în majoritatea textelor criptate.
Cifrul Vigenère utilizează o cheie variabilă care face ca simplul cifru de substituție să fie mai robust. Cheia este repetată pentru a cuprinde întreaga lungime a mesajului. Lungimea cheii este partea cea mai importantă a cifrului Vigenère deoarece cu o lungime a cheii de 1, cifrul este, de fapt, un cifru a lui Cezar. Să parcurgem un exemplu.
Un exemplu de pătrat Vigenère. Puteți vedea că această versiune a cifrului Vigenère este, de fapt, un cifru a lui Cezar cu schimbare ciclică.
După cum puteți vedea din tabelul de mai sus, cu ajutorul unei chei formată doar din semnul „D”, cifrul este identic cu cifrul utilizat de Cezar în mesajele sale. Cu ajutorul tabelului, uitați-vă prin rândul D și de la coloana A veți găsi litera A criptată ca litera D, exact ca în cifrul lui Cezar.
Pentru a înțelege puterea cifrului lui Vigenère, haideți să parcurgem un exemplu mai complet cu o cheie mai lungă. Cu ajutorul pătratului Vigenère de mai sus (denumit și tabel Vigenère). Putem cripta un mesaj care conține doar text „CYBERSECURITY” cu cheia „SECRET” după cum urmează.
Mesaj: CYBERSECURITY
Cheie: SECRETSECRETS
Criptat:
Mai întâi trebuie să găsim coloana care îi corespunde literei C în rândul S al tabelului. Cu ajutorul tabelului, constatăm că rezultatul este litera U. Se introduce ca fiind prima literă a textului criptat.
Mesaj: CYBERSECURITY
Cheie: SECRETSECRETS
Criptat: U
Următoarea literă a mesajului este Y pe rândul E (a doua literă a cheii de criptare). Rezultatul este litera C. Dacă o adăugați criptării, aveți primele două litere ale textului criptat (textul cifru) care sunt UC
Mesaj: CYBERSECURITY
Cheie: SECRETSECRETS
Criptat: UC
Urmărind același tipar, obținem textul cifru final:
Mesaj: CYBERSECURITY
Cheie: SECRETSECRETS
Criptat: UCDVVLWGWIMMQ
Felicitări, tocmai v-ați criptat primul mesaj cu ajutorul cifrului Vigenère! Cifrul a fost utilizat cu succes timp de aproximativ trei secole până la descoperirea unei metode generale de decriptare. După cum v-ați fi putut da seama, cel mai probabil unele mesaje a fost decriptate mai devreme, deoarece secretul mesajului depinde de secretul și calitatea cheii.
Sign up to solve exercises
Cifrul Vigenère a rămas sigur foarte multă vreme, cu toate acestea, în secolul al XIX-lea au fost identificate și publicate câteva deficiențe generale. Cu ajutorul acestor metode, criptarea a fost spartă, în general, indiferent de cheia utilizată. Atacurile se bazează pe deficiențe și pe repetiția cheii în algoritm pentru a identifica lungimea cheii (sau posibilele lungimi ale cheii), iar cu aceste informații se poate utiliza un atac prin eliminarea cheii pentru a afla care este cheia utilizată. Se pot utiliza diferite metode multiple pentru a ghici care este lungimea cheii cu un procent ridicat de certitudine.
O formă de cifru Vigenère a fost utilizată și de forțele confederate în războiul civil din SUA. La vremea respectivă, forțele uniunii decriptau periodic mesajele celor confederate deoarece se identificaseră mai multe deficiențe ale cifrului.
Un cifru Vigenère care utilizează o cheie cu adevărat aleatorie de aceeași lungime a cheii ca mesajul text se consideră în general de nedescifrat și se numește un one-time pad. Un „one-time pad” nu are asociate disfuncțiile unei chei repetitive. Deoarece atacurile prin intermediul dicționarului nu se aplică unor chei cu adevărat aleatorii, secretul mesajului se bazează pe cheie și nu pe cifru. Cu toate acestea, utilizarea unui „one-time pad” este dificilă deoarece punctul slab va fi modul în care părțile fac schimb de cheie.
Un site interactiv distractiv cu multe exemple de diferite funcții criptografice istorice este Camera neagră a lui Simon Singh.
Odată cu invenția ingineriei mecanice, au fost inventate noi metode mai bune în domeniul criptării. S-au creat dispozitive în care la apăsarea unei taste se lumina litera criptată. Aceste dispozitive inițiale de criptare mecanică au extins și lungimea vocabularului, adăugând rotoarele rotative unul lângă celălalt. Atunci când un rotor cu 26 de semne se întorcea în loc de la A la Z, un altul se mișca cu un pas înainte, camuflând astfel tiparul repetitiv al cheii. Astfel, un singur rotor furniza o cheie de lungimea 26. Adăugarea unui rotor suplimentar care se mișca extindea pozițiile disponibile la 26 x 26 = 676. Pentru a crea cheia comună nu era necesară decât comunicarea stării inițiale a ambelor rotoare.
Presupunând că avem trei rotoare, iar configurația inițială pentru toate este A, obținem următoarele poziții la fiecare apăsare ulterioară a tastei:
A A A
B A A
C A A
D A A
…
Z A A
A B A
B B A
…
Y Z Z
Z Z Z
A A A
Configurația reală, cablarea și felul în care funcționează dispozitivele sunt mai complicate decât în exemplu, însă acesta prezintă puterea automatizării generării unei chei de criptare reală pe baza unei configurații inițiale a dispozitivelor mecanice.
Cel mai renumit dintre aceste dispozitive cu rotor se numea Enigma, care a fost utilizat pe scară largă de germani în cel de-al Doilea Război Mondial. Dispozitivele de tip Enigma utilizate în timpul războiului erau dotate cu de la trei până la opt rotoare. Cu toate acestea, modul în care germanii au folosit aceste dispozitive le-a permis criptologilor polonezi și britanici să utilizeze aceste deficiențe pentru a decripta mesajele germane.
Puteți consulta mai multe informații privind, poate, cel mai celebru dispozitiv de criptare care a existat vreodată pe Wikipedia.
Cifrurile pe care le-am prezentat sunt cifruri simetrice, ceea ce înseamnă că aceeași cheie care a fost utilizată la criptare se poate folosi pentru decriptare. De-a lungul anilor, s-au dezvoltat metode care nu necesită transmiterea cheii secrete către destinatarul mesajului, adică ceea ce se numește criptare asimetrică. În criptarea asimetrică, mesajul este criptat cu o cheie publică derivată din cheia secretă a destinatarului mesajului. De exemplu, dacă ați vrea să vă trimită colegii mesaje criptate, le-ați trimite cheia dumneavoastră publică acestora, iar ei ar folosi-o pentru a cripta mesajele pe care vi le adresează. După criptarea mesajelor, doar cineva (să sperăm că doar dumneavoastră) care are cheia dumneavoastră secretă ar putea decripta mesajele. Această situație se numește criptografie cu cheie publică deoarece utilizează o cheie publică pentru criptare.
Funcția hashing pentru a dovedi integritatea
S-a încetățenit utilizarea funcțiilor hashing pentru verificarea integrității unui mesaj. După cum vă puteți aminti, integritatea este o latură a triadei CID (confidențialitate, integritate și disponibilitate). Funcția hashing se poate utiliza pentru verificarea integrității în același mod în care se poate proteja o parolă. Funcția hashing se poate utiliza la calcularea unei valori pentru conținutul complet al unui mesaj și se poate trimite împreună cu mesajul original. Destinatarul unei parole căreia i s-a aplicat funcția hashing poate verifica ulterior dacă valoarea hash (așa numita „versiune abreviată a mesajului”) corespunde valorii calculate la destinație. Unele funcții hash criptografice incorporează identitatea în funcție, care poate fi verificată de către destinatar. Aceste funcții creează ceea ce se numește un cod de securitate a mesajului (cod MAC).
Criptografie modernă
Criptografia modernă depinde de cât de secretă este cheia și utilizează cifruri identificate și studiate pe scară largă. Cifrurile pot fi cunoscute, deoarece secretul depinde de cheie și nu de modul în care este utilizată cheia. De exemplu, atunci când vă vizitați banca online, browserul dumneavoastră și serverul de web al băncii fac un schimb securizat de cheie secretă, generată unic, simetrică (și lungă), utilizată la criptarea traficului dintre browserul dumneavoastră și serverul băncii. În plus, de obicei se folosește criptografia cu cheie publică pentru a verifica identitatea celeilalte părți. De asemenea, fiecare mesaj se poate verifica prin intermediul unui cod de autentificare a mesajului (MAC). Acest proces prin intermediul căruia un browser și un server fac schimb de cheii, verificare și autentificare se numește TLS sau securitatea stratului de transport, despre care vom afla mai multe în capitolul următor. Versiunile anterioare utilizau o metodă acum perimată, denumită SSL, strat de conexiune securizată.
Aspectele esențiale de învățare privind criptografia
Secretul mesajului dumneavoastră ar trebui să depindă mereu de secretul cheii și nu de secretul sistemului de criptare (acesta se cunoaște cu denumirea de principiul lui Kerckhoffs).
Utilizați mereu cifruri care au fost reexaminate public și au fost stabilite ca standard. Utilizarea „criptografiei secrete” sau inventarea propriei dumneavoastră criptografii este o abordare greșită, deoarece, ca în cazul cifrului lui Cezar, după ce sistemul devine cunoscut și înțeles, toate mesajele pot fi decriptate.