Calculatoare, Siguranță
Algoritmul Diffie-Hellman: scopul
Aparent, puțini oameni de astăzi, folosind transmisia de date pe canale de comunicare neprotejate, își imaginează ce este algoritmul Diffie-Hellman. În principiu, mulți oameni nu au nevoie de această înțelegere. Cu toate acestea, utilizatorii de sisteme informatice, ca să spunem, mai curios, să înțeleagă acest lucru nu va face rău. În special, schimbul de chei de către algoritmul Diffie-Hellman poate fi util utilizatorilor interesați de securitatea informațiilor și criptografie.
Care este tehnica Diffie-Hellman?
Dacă abordați problema algoritmului însuși, în timp ce nu intrăți în detalii tehnice și matematice, îl puteți defini ca metodă de criptare și decriptare a informațiilor transmise și recepționate între doi sau mai mulți utilizatori de sisteme informatice sau de altă natură care implică schimbul de date utilizând un canal neprotejat.
După cum este deja clar, în lipsa unei protecții a canalului în sine, un atacator poate intercepta sau modifica fișierele aflate în proces de trimitere și primire. Cu toate acestea, algoritmul de distribuție a cheilor Diffie-Hellman pentru accesarea datelor transmise și recepționate este astfel încât interferențele străine sunt aproape complet eliminate. În același timp, comunicarea pe canalul de comunicare utilizat (fără a-l proteja) devine securizată dacă ambele părți utilizează aceeași cheie.
preistorie
Algoritmul Diffie-Hellman a fost introdus în lume în anul 1976. Creatorii săi au fost Whitfried Diffie și Martin Hellman, care, în căutarea unor metode sigure și fiabile de criptare a datelor, s-au bazat pe munca lui Ralph Merkle, care a dezvoltat așa-numitul sistem de distribuire a cheilor publice.
Dar dacă Merkel a dezvoltat un cadru exclusiv teoretic, Diffie și Hellman au prezentat publicului o soluție practică la această întrebare.
Cea mai simplă explicație
De fapt, testul în sine se bazează pe tehnologii criptografice de criptare, care chiar și astăzi surprind multe specialiști în acest domeniu. Antologia cipurilor include o istorie destul de mare. Esența întregului proces se reduce la faptul că există doi abonați care corespund prin e-mail sau schimbă anumite date utilizând programe de calculator. Dar protecția se face în așa fel încât algoritmul Diffie-Hellman însuși necesită ca cheia de decriptare să fie cunoscută celor două părți (transmiterea și primirea). În acest caz, nu contează care dintre ele generează numărul aleatoriu inițial (acest timp este explicat atunci când se ia în considerare formulele pentru calcularea cheilor).
Metoda de criptare a datelor din perioadele timpurii
Pentru a face mai clară, observăm că modul cel mai primitiv de criptare a datelor este, de exemplu, scrierea de cuvinte nu de la stânga la dreapta, așa cum este obișnuit în majoritatea scripturilor, dar de la dreapta la stânga. În mod similar, este ușor să utilizați și să înlocuiți literele alfabetului în mesaj. De exemplu, într-un cuvânt, a doua literă se modifică la prima, a patra la a treia și așa mai departe. Același document când privim la el poate fi un nonsens complet. Cu toate acestea, cel care a scris textul sursă, îi spune celui care ar trebui să o citească, în ce ordine este necesar să aranjeze simbolurile date. Aceasta se numește cheia.
Rețineți că majoritatea textelor și cuneiformelor încă nediferente ale sumerienilor și egiptenilor vechi rămân înțeles greșit de criptoanaliștii pur și simplu pentru că nu știu cum să stabilească succesiunea dorită a simbolurilor.
Deci și în cazul nostru, algoritmul Diffie-Hellman implică opțiunea că cheia de decriptare este cunoscută unui număr limitat de utilizatori. Este adevărat că merită să facem o rezervă, deoarece interferența în transferul datelor criptate de acest tip poate fi încălcată de către terți dacă rezolvă sistemul de înlocuire sau înlocuire a simbolurilor.
Este de la sine înțeles că astăzi există criptosisteme destul de puternice bazate pe algoritmi, cum ar fi AES, dar nu oferă o garanție deplină a protecției împotriva hacking-ului datelor de către o terță parte.
Ei bine, acum să aruncăm o privire asupra sistemului de criptare, aplicării practice și gradului de protecție.
Algoritmul Diffie-Hellman: scopul
Algoritmul însuși a fost creat astfel încât să asigure nu numai confidențialitatea datelor transferate de o parte a celeilalte părți, ci și să le extragă în siguranță în momentul primirii. Aproximativ, un astfel de sistem de transmisie ar trebui să ofere protecție completă în toate canalele de comunicare posibile.
Amintiți-vă cel puțin anii celui de-al doilea război mondial, când inteligența tuturor țărilor aliate a vânat fără succes o mașină de criptare numită "Enigma", prin care mesajele codificate au fost transmise pe codul Morse. La urma urmei, nimeni, chiar și cel mai mult, așa cum spuneam acum, expertul în criptografie "avansat" ar putea dezvălui codul său. Abia după ce capturarea sa a fost cheia dezvăluirii mesajelor transmise de flota germană.
Algoritm Diffie-Hellman: o prezentare generală
Astfel, algoritmul implică utilizarea mai multor concepte de bază. Să presupunem că avem cel mai simplu caz, când există doi abonați (utilizatorul) la conectare. Indicați-le ca A și B.
Ei folosesc două numere X și Y, care nu sunt secrete în acest canal de comunicare, pentru controlul transmisiei-recepției. Întreaga chestiune a problemei este de a genera pe baza lor o nouă valoare care va fi cheia. Dar! Primul abonat utilizează un număr mare, iar al doilea - în mod necesar întregul (împărțind fără rest), dar mai mic decât primul.
Firește, utilizatorii sunt de acord că aceste numere sunt păstrate în secret. Cu toate acestea, deoarece canalul de comunicare este neprotejat, aceste două numere pot deveni cunoscute altor persoane interesate. De aceea utilizatorii din aceleași mesaje fac schimb de chei private pentru a decripta mesajele.
Formule de bază pentru calculul cheii
Se consideră că algoritmul Diffie-Hellman aparține așa-numitului sistem de criptare simetrică, pe baza căruia au apărut protocoalele unui cifru asimetric. Cu toate acestea, dacă luăm în considerare aspectele de bază ale calculării cheilor de către părțile receptoare, va trebui să reamintim cel puțin algebra.
Deci, să presupunem că fiecare dintre abonați generează numere aleatorii a și b . În avans, cunosc valorile lui x și y , care pot fi chiar "cusute" în software-ul dorit.
La trimiterea sau primirea unui astfel de mesaj, abonatul A calculează valoarea cheie pe baza formulei A = x a mod y , iar al doilea folosește combinația B = x b mod y , urmată de transferul cheii decriptate către primul utilizator. Aceasta este prima etapă.
Să presupunem că cel de-al treilea părŃi interesat are la dispoziŃie atât valori calculate ale lui A, cât și B. Totuși, ea nu poate interfera cu procesul de transfer de date, deoarece în a doua etapă trebuie să știŃi cum este calculată cheia comună.
Pe baza formulelor de mai sus, puteți opri calculul cheii publice. Dacă vă uitați la algoritmul Diffie-Hellman, exemplul poate arăta astfel:
1) primul abonat calculează cheia bazată pe x prin formula B a mod y = x ab mod y ;
2) a doua, pornind de la numărul inițial y și Obținut din protocolul de rețea al parametrului B, determină cheia pe baza parametrului A: A b mod y = x ba mod y .
După cum vedem, valorile finale, chiar și atunci când gradele sunt schimbate, coincid. Astfel, interpretarea datelor de către ambele părți este, după cum se spune, redusă la un singur numitor.
Vulnerabilitatea în interferența cu procesul de transfer de date
Așa cum s-ar putea presupune, intervenția unui terț nu este exclusă. Cu toate acestea, în acest caz vorbim despre numerele inițial specificate de ordinul 10 100 sau chiar 10 300 .
Se înțelege că niciunul dintre generatoarele de parole create sau codurile de acces create nu poate determina numărul în sine (cu excepția parametrilor inițiali și finali, mai degrabă decât a celor intermediari pentru interferențe în sistemul de transmisie). Acest lucru va dura atât de mult încât viața de pe Pământ se va sfârși. Cu toate acestea, există încă lacune într-un astfel de sistem de securitate.
Cel mai adesea ele sunt asociate cu cunoașterea logaritmului discret. Dacă astfel de cunoștințe sunt disponibile, este posibil să se crawleze algoritmul Diffie-Hellman (dar numai pentru parametrii inițiale și finali, așa cum am menționat mai sus). Un alt lucru este că astfel de cunoștințe sunt posedate de unități.
Utilizarea algoritmului pentru platforma Java
Algoritmul Diffie-Hellman pe Java este folosit exclusiv pentru apeluri precum "client-server".
Cu alte cuvinte, serverul așteaptă conectarea mașinilor client. Atunci când se face o astfel de conexiune, algoritmul execută pentru a căuta fie cheia publică, fie cea privată, după care utilizatorul poate obține acces nestingherit la toate funcțiile și datele serverului propriu-zis. Uneori, acest lucru este valabil și pentru sistemele mobile, dar foarte puțini oameni știu despre acest lucru, mai ales că partea executivă lucrează în mod invizibil sub formă de scripturi executabile.
Utilizarea algoritmului pentru platforma C (+ / ++)
Dacă te uiți la algoritmul Diffie-Hellman pe "C" (+ / ++), atunci totul nu este atât de neted. Faptul este că uneori există problema când limba de programare în sine lucrează în cea mai mare parte cu calcule legate de punctul de plutire. De aceea, atunci când specificăm valorile întregi sau atunci când încercăm să rotunjim (chiar și atunci când creștem la putere), poate exista o problemă la compilare. Acest lucru este valabil mai ales pentru utilizarea incorectă a funcției int.
Cu toate acestea, merită acordată atenția celorlalte componente executabile, care, de regulă, reprezintă sarcina claselor, aceleași exponentiere sau asociate cu bibliotecile atașate GMP.
Modern algoritmi de criptare
Se crede că algoritmul Diffie-Hellman încă nu poate fi depășit. De fapt, el a constituit baza pentru apariția unor astfel de sisteme de protecție cunoscute în domeniul criptare a datelor, cum ar fi AES128 și AES256.
Cu toate acestea, după cum arată practica, în ciuda disponibilității numerelor care nu sunt percepute abstracționat de om, majoritatea sistemelor de tipul actual utilizează numai valorile primelor zece (nu mai mult), deși algoritmul implică numere în sine de milioane de ori mai mari.
În loc de o urmă
În general, probabil este deja clar ce este sistemul și care sunt componentele sale algoritmice. Rămâne doar să adăugăm că este înzestrat cu astfel de oportunități atât de mari încât aproape nimeni nu o folosește pe deplin.
Pe de altă parte, există în mod evident suficiente vulnerabilități în algoritm. Judecați-vă: la urma urmei, scriind un program pentru calculul logaritmilor discrete, practic oricare dintre creatorii săi pot accesa nu numai parametrii inițiali stabiliți de utilizatori, ci și cheile comune care sunt generate în sistemul de criptare și decriptare.
În cel mai simplu caz, este suficient să instalați același applet executabil Java care poate fi utilizat chiar și în comunicațiile mobile. Firește, utilizatorul nu știe despre asta, dar oricine poate folosi datele sale în scopuri proprii.
Similar articles
Trending Now