Tipuri de criptare a datelor. Algoritmi moderni de criptare

În epoca noastră informatică, omenirea refuză tot mai mult să stocheze informații în formă scrisă de mână sau tipărită, preferând documentele. Și dacă înainte pur și simplu furau hârtii sau pergamente, acum informația electronică este piratată. Algoritmii de criptare a datelor în sine sunt cunoscuți din timpuri imemoriale. Multe civilizații au preferat să-și cripteze cunoștințele unice, astfel încât doar oamenii cunoscători să le poată obține. Dar să vedem cum se reflectă toate acestea în lumea noastră.

Ce este un sistem de criptare a datelor?

În primul rând, trebuie să decideți ce sisteme criptografice sunt în general. În linii mari, acesta este un algoritm special pentru înregistrarea informațiilor care ar fi de înțeles doar pentru un anumit cerc de oameni.

În acest sens, pentru un străin, tot ceea ce vede ar trebui (și, în principiu, face) să pară un set de simboluri fără sens. Doar cineva care cunoaște regulile aranjamentului lor poate citi o astfel de secvență. Ca cel mai mult exemplu simplu puteți defini un algoritm de criptare cu cuvinte scrise, să zicem, invers. Desigur, acesta este cel mai primitiv lucru cu care poți veni. Se înțelege că, dacă cunoașteți regulile de înregistrare, restaurarea textului original nu va fi dificilă.

De ce este necesar acest lucru?

Probabil că nu merită explicat de ce au fost inventate toate acestea. Uite, ce cantități de cunoștințe rămase de la civilizațiile antice sunt astăzi în formă criptată. Fie anticii nu doreau să știm acest lucru, fie toate acestea s-au făcut astfel încât o persoană să le poată folosi numai atunci când a atins nivelul necesar de dezvoltare - deocamdată putem doar ghici despre asta.

Totuși, dacă vorbim despre lumea de astăzi, securitatea informațiilor devine una dintre cele mai mari probleme. Judecati singuri, pentru ca sunt atatea documente in aceleasi arhive despre care guvernele unor tari nu ar vrea sa vorbeasca, cate evolutii secrete, cate tehnologii noi. Dar toate acestea, în mare, sunt scopul principal al așa-numiților hackeri în sensul clasic al termenului.

Îmi vine în minte o singură frază, care a devenit un clasic al principiilor lui Nathan Rothschild: „Cine deține informațiile, deține lumea”. Și de aceea informațiile trebuie protejate de privirile indiscrete, pentru ca altcineva să nu le folosească în propriile scopuri egoiste.

Criptografia: un punct de plecare

Acum, înainte de a lua în considerare însăși structura pe care o are orice algoritm de criptare, să ne aruncăm puțin în istorie, în acele vremuri îndepărtate când această știință era la început.

Se crede că arta de a ascunde datele a început să se dezvolte activ cu câteva mii de ani în urmă î.Hr. Primatul este atribuit vechilor sumerieni, regelui Solomon și preoților egipteni. Abia mult mai târziu au apărut aceleași semne și simboluri runice asemănătoare lor. Dar iată ce este interesant: uneori algoritmul de criptare a textelor (și la acea vreme ei erau cei care erau criptați) era de așa natură încât în ​​același simbol un singur simbol putea însemna nu numai o literă, ci și un întreg cuvânt, concept sau chiar o propoziție. Din această cauză, descifrarea unor astfel de texte, chiar și cu sisteme criptografice moderne care fac posibilă restabilirea formei originale a oricărui text, devine absolut imposibilă. Dacă vorbim limbaj modern, acestea sunt destul de avansate, după cum se spune acum, algoritmi de criptare simetrică. Să le privim separat.

Lumea modernă: tipuri de algoritmi de criptare

În ceea ce privește protecția datelor confidențiale în lumea modernă, merită menționat vremurile în care computerele erau necunoscute omenirii. Ca să nu mai vorbim de câtă hârtie au tradus alchimiștii sau aceiași Templieri, încercând să ascundă textele adevărate despre cunoștințele cunoscute de ei, merită să ne amintim că de la apariția conexiunii, problema nu a făcut decât să se agraveze.

Și aici, poate, cel mai faimos dispozitiv poate fi numit o mașină de criptare germană din al Doilea Război Mondial numită „Enigma”, care tradus din engleză înseamnă „ghicitoare”. Din nou, acesta este un exemplu al modului în care sunt utilizați algoritmii de criptare simetrică, a căror esență este că criptatorul și descifratorul cunosc cheia (algoritmul) folosit inițial pentru a ascunde datele.

Astăzi, astfel de criptosisteme sunt folosite peste tot. Cel mai frapant exemplu este, să zicem, algoritmul de criptare AES256, care este un standard internațional. În terminologia computerizată, permite utilizarea unei chei de 256 de biți. În general, algoritmii moderni de criptare sunt destul de diverși și pot fi împărțiți în două clase mari: simetrice și asimetrice. Ele, în funcție de zona de destinație, sunt utilizate foarte larg astăzi. Și alegerea algoritmului de criptare depinde direct de sarcinile stabilite și de metoda de restaurare a informațiilor în forma sa originală. Dar care este diferența dintre ele?

Algoritmi de criptare simetrici și asimetrici: care este diferența

Acum să vedem care este diferența fundamentală între astfel de sisteme și pe ce principii se bazează aplicarea lor în practică. După cum este deja clar, algoritmii de criptare sunt asociați cu conceptele geometrice de simetrie și asimetrie. Ce înseamnă aceasta va fi acum clarificat.

Algoritmul de criptare simetric DES, dezvoltat în 1977, implică o singură cheie care este probabil cunoscută de ambele părți. Cunoscând o astfel de cheie, nu este dificil să o aplici în practică pentru a citi același set de caractere fără sens, aducând-o, ca să spunem așa, într-o formă lizibilă.

Ce sunt algoritmii de criptare asimetrică? Aici se folosesc două chei, adică una este folosită pentru a codifica informațiile originale, iar alta este folosită pentru a decripta conținutul și nu este deloc necesar ca acestea să coincidă sau să fie deținute simultan de părțile de codificare și decodare. Unul este suficient pentru fiecare dintre ei. Acest lucru asigură că ambele chei nu cad în mâinile terților într-un grad foarte mare. Totuși, pe baza situației actuale, pentru mulți infractori acest tip de furt nu reprezintă o problemă deosebită. Un alt lucru este căutarea exactă a cheii (în general, parolă) care este potrivită pentru decriptarea datelor. Și aici pot exista atât de multe opțiuni încât până și cel mai modern computer le va procesa timp de câteva decenii. După cum s-a afirmat, niciunul dintre sistemele informatice disponibile în lume nu poate pirata accesul la acesta și obține ceea ce se numește „interceptare” și nu va putea să o facă în următoarele decenii.

Cei mai faimoși și mai des utilizați algoritmi de criptare

Dar să revenim la lumea computerelor. Ce oferă astăzi principalii algoritmi de criptare, menționați pentru a proteja informațiile scena modernă dezvoltarea tehnologiei informatice și mobile?

În majoritatea țărilor, standardul de facto este sistemul criptografic AES bazat pe o cheie de 128 de biți. Cu toate acestea, în paralel cu acesta, se folosește uneori un algoritm care, deși se referă la criptarea folosind o cheie deschisă (publică), este totuși unul dintre cele mai fiabile. Acest lucru, apropo, a fost dovedit de toți experții de top, deoarece sistemul în sine este determinat nu numai de gradul de criptare a datelor, ci și de menținerea integrității informațiilor. În ceea ce privește primele dezvoltări, care includ algoritmul de criptare DES, acesta este iremediabil depășit, iar încercările de a-l înlocui au început încă din 1997. Atunci, pe baza lui, a apărut un nou standard Advanced (mai întâi cu o cheie de 128 de biți, apoi cu o cheie de 256 de biți).

Criptare RSA

Acum să ne concentrăm pe tehnologia RSA, care se referă la un sistem de criptare asimetric. Să presupunem că un abonat trimite informații criptate folosind acest algoritm către altul.

Pentru criptare se iau două numere suficient de mari X și Y, după care se calculează produsul lor Z, numit modul. În continuare, se selectează un număr străin A care îndeplinește condiția: 1< A < (X - 1) * (Y - 1). Оно обязательно должно быть простым, то есть не иметь общих делителей с произведением (X - 1) * (Y - 1), равным Z. Затем происходит вычисление числа B, но только так, что (A * B - 1) делится на (X - 1) * (Y - 1). В данном примере A - открытый показатель, B - секретный показатель, (Z; A) - открытый ключ, (Z; B) - секретный ключ.

Ce se întâmplă în timpul expedierii? Expeditorul creează un text cifrat, notat F, cu un mesaj inițial M, urmat de A și înmulțit cu mod Z: F = M**A*(mod Z). Destinatarul trebuie doar să calculeze un exemplu simplu: M = F**B*(mod Z). În linii mari, toate aceste acțiuni se reduc doar la exponențiere. Opțiunea de a crea o semnătură digitală funcționează pe același principiu, dar ecuațiile de aici sunt ceva mai complicate. Pentru a nu deranja utilizatorul cu algebra, un astfel de material nu va fi prezentat.

Cât despre hacking, algoritmul de criptare RSA reprezintă o sarcină aproape imposibilă pentru un atacator: să calculeze cheia B. Acest lucru ar putea fi făcut teoretic folosind instrumente de factoring disponibile (prin factorizarea numerelor originale X și Y), dar astăzi nu există astfel de instrumente, prin urmare, sarcina în sine devine nu numai dificilă - este complet imposibilă.

Criptare DES

În fața noastră este un alt algoritm de criptare, în trecut, destul de eficient, cu o lungime maximă a blocului de 64 de biți (caractere), dintre care doar 56 sunt semnificative. După cum am menționat mai sus, această tehnică este deja depășită, deși a durat destul de mult ca standard pentru criptosistemele utilizate în SUA chiar și pentru industria de apărare.

Esența criptării sale simetrice este că pentru aceasta este utilizată o anumită secvență de 48 de biți. În acest caz, pentru operații sunt utilizate 16 cicluri dintr-un eșantion de cheie de 48 de biți. Dar! Prin urmare, toate ciclurile sunt similare în principiu de funcționare în acest moment Nu este dificil să calculezi cheia necesară. De exemplu, unul dintre cele mai puternice computere din Statele Unite, care costă mai mult de un milion de dolari, „rupe” criptarea în aproximativ trei ore și jumătate. Pentru mașinile de rang inferior, nu durează mai mult de 20 de ore pentru a calcula chiar și secvența în manifestarea sa maximă.

Criptare AES

În sfârșit, avem în fața noastră cel mai răspândit și, până de curând, invulnerabil sistem - algoritmul de criptare AES. Astăzi este prezentat în trei modificări - AES128, AES192 și AES256. Prima opțiune este folosită mai mult pentru a asigura securitatea informațiilor dispozitivelor mobile, a doua este folosită la un nivel superior. Ca standard, acest sistem a fost introdus oficial în 2002, iar suportul său a fost anunțat imediat de Intel Corporation, care produce cipuri de procesor.

Esența sa, spre deosebire de orice alt sistem de criptare simetrică, se rezumă la calcule bazate pe o reprezentare polinomială a codurilor și operații de calcul cu matrice bidimensionale. Potrivit guvernului Statelor Unite, cracarea unei chei pe 128 de biți, chiar și cea mai modernă, ar dura aproximativ 149 de trilioane de ani. Vă rugăm să ne deosebim de o astfel de sursă competentă. În ultima sută de ani, tehnologia informatică a făcut un salt pe măsură, așa că nu este nevoie să vă amăgiți prea mult, mai ales că astăzi, după cum se dovedește, există sisteme de criptare chiar mai bune decât cele pe care Statele Unite le-au declarat complet rezistente. la hacking.

Probleme cu viruși și decriptare

Desigur, vorbim despre viruși. ÎN în ultima vreme Au apărut viruși ransomware destul de specifici care criptează tot conținutul hard diskși partiții logice pe computerul infectat, după care victima primește o scrisoare prin care se anunță că toate fișierele sunt criptate și doar sursa specificată le poate decripta după ce a plătit o sumă ordonată.

În același timp, cel mai important, se indică faptul că sistemul AES1024 a fost folosit pentru a cripta datele, adică lungimea cheii este de patru ori mai mare decât AES256 actual, iar numărul de opțiuni la căutarea unui decriptor adecvat crește pur și simplu. incredibil.

Și pe baza declarației guvernului SUA despre timpul necesar pentru a decripta o cheie de 128 de biți, cum rămâne cu timpul necesar pentru a găsi o soluție pentru cazul unei chei de 1024 de biți și variantele acesteia? Aici Statele Unite au făcut o greșeală. Ei credeau că sistemul lor de criptare computerizată era perfect. Din păcate, au fost niște specialiști (aparent în spațiul post-sovietic) care au depășit postulatele „imuabile” americane din toate punctele de vedere.

Cu toate acestea, chiar și principalii dezvoltatori de software antivirus, inclusiv Kaspersky Lab, specialiștii care au creat Doctor Web, ESET Corporation și mulți alți lideri mondiali pur și simplu ridică din umeri, spun ei, pur și simplu nu există bani pentru a descifra un astfel de algoritm. , păstrând tăcerea în legătură cu faptul că nu este suficient timp. Desigur, atunci când contactați asistența, vi se cere să trimiteți fișierul criptat și, dacă este disponibil, de preferință originalul - în forma în care era înainte de a începe criptarea. Vai, chiar analiză comparativă nu a produs încă rezultate tangibile.

Lumea pe care nu o cunoaștem

Ce putem spune dacă urmărim viitorul fără a putea descifra trecutul. Dacă te uiți la lumea mileniului nostru, vei observa că același împărat roman Gaius Iulius Caesar a folosit algoritmi de criptare simetrică în unele dintre mesajele sale. Ei bine, dacă te uiți la Leonardo da Vinci, în general te simți neliniștit doar din conștientizarea că în domeniul criptografiei acest om, a cărui viață este acoperită de un anumit văl de mister, și-a depășit contemporaneitatea de secole.

Până acum, mulți sunt bântuiți de așa-numitul „zâmbet al Giocondei”, în care există ceva atât de atractiv încât omul modern incapabil să înțeleagă. Apropo, relativ recent au fost găsite în pictură anumite simboluri (în ochi, pe rochie etc.), care indică clar că toate acestea conțin un fel de informații criptate de un mare geniu, pe care astăzi, din păcate, le putem extrage incapabil sa. Dar nici măcar nu am menționat diferite tipuri de structuri la scară mare care ar putea revoluționa înțelegerea fizicii din acea vreme.

Desigur, unele minți sunt înclinate exclusiv către faptul că, în majoritatea cazurilor, așa-numitul „ raportul de aur„, cu toate acestea, nu oferă cheia pentru tot acel depozit uriaș de cunoștințe, despre care se crede că este fie de neînțeles pentru noi, fie pierdut pentru totdeauna. Aparent, criptografii mai au de făcut o cantitate incredibilă de muncă pentru a înțelege că algoritmii moderni de criptare nu pot fi comparați uneori cu evoluțiile civilizațiilor antice. În plus, dacă astăzi există principii general acceptate de securitate a informațiilor, atunci cele care erau folosite în antichitate, din păcate, ne sunt complet inaccesibile și de neînțeles.

Și încă un lucru. Există o credință nespusă că majoritatea textelor antice nu pot fi traduse pur și simplu pentru că cheile pentru descifrarea lor sunt păzite cu grijă de societăți secrete precum francmasonii, Illuminati etc. Chiar și templierii și-au lăsat amprenta aici. Ce putem spune despre faptul că Biblioteca Vaticanului rămâne în continuare complet inaccesibilă? Nu acolo se păstrează principalele chei pentru înțelegerea antichității? Mulți experți sunt înclinați către această versiune, considerând că Vaticanul ascunde în mod deliberat aceste informații de la societate. Dacă acest lucru este adevărat sau nu, nimeni nu știe încă. Dar un lucru poate fi spus absolut sigur - sistemele de criptografie antice nu erau în niciun fel inferioare (și poate chiar superioare) celor utilizate în lumea computerelor moderne.

În loc de postfață

În sfârșit, merită spus că nu toate aspectele legate de sistemele criptografice actuale și tehnicile pe care le folosesc au fost luate în considerare aici. Cert este că, în majoritatea cazurilor, ar fi necesar să se furnizeze formule matematice complexe și să se prezinte calcule, care pur și simplu ar face ca majoritatea utilizatorilor să se învârtească. Uită-te la exemplul care descrie algoritmul RSA pentru a realiza că orice altceva va părea mult mai complicat.

Principalul lucru aici este să înțelegeți și să vă adânciți, ca să spunem așa, în esența problemei. Ei bine, dacă vorbim despre ce sisteme moderne sunt care oferă să stocheze informații confidențiale în așa fel încât să fie accesibile unui număr limitat de utilizatori, aici nu există de ales. În ciuda prezenței multor sisteme criptografice, aceiași algoritmi RSA și DES sunt în mod clar inferiori specificului AES. Cu toate acestea, majoritatea aplicațiilor moderne dezvoltate pentru sisteme de operare complet diferite folosesc AES (desigur, în funcție de aplicație și dispozitiv). Dar evoluția „neautorizată” a acestui criptosistem, ca să spunem ușor, i-a șocat pe mulți, în special pe creatorii săi. Dar, în general, pe baza a ceea ce este disponibil astăzi, nu va fi dificil pentru mulți utilizatori să înțeleagă ce sunt sistemele de criptare a datelor criptografice, de ce sunt necesare și cum funcționează.

Criptarea datelor este extrem de importantă pentru a proteja confidențialitatea. În acest articol, voi discuta despre diferitele tipuri și metode de criptare care sunt folosite pentru a proteja datele astăzi.

Știați?
În epoca romană, criptarea era folosită de Iulius Caesar pentru a face scrisorile și mesajele să nu fie citite inamicului. A jucat un rol important ca tactică militară, mai ales în timpul războaielor.

Pe măsură ce capacitățile internetului continuă să crească, tot mai multe dintre afacerile noastre se desfășoară online. Dintre acestea, cele mai importante sunt internet banking-ul, plata online, email-urile, schimbul de mesaje private și oficiale etc., care presupun schimbul de date și informații confidențiale. Dacă aceste date cad în mâini greșite, pot dăuna nu numai utilizatorului individual, ci și întregului sistem de afaceri online.

Pentru a preveni acest lucru, au fost luate mai multe măsuri de securitate a rețelei pentru a proteja transmiterea datelor cu caracter personal. Principalele dintre acestea sunt procesele de criptare și decriptare a datelor, care este cunoscută sub numele de criptografie. Există trei metode principale de criptare utilizate în majoritatea sistemelor de astăzi: hashing, criptare simetrică și asimetrică. În rândurile următoare, voi vorbi mai detaliat despre fiecare dintre aceste tipuri de criptare.

Tipuri de criptare

Criptare simetrică

În criptarea simetrică, datele normale care pot fi citite, cunoscute sub numele de text simplu, sunt criptate astfel încât să devină ilizibile. Această amestecare a datelor se face folosind o cheie. Odată ce datele sunt criptate, acestea pot fi trimise în siguranță către destinatar. La destinatar, datele criptate sunt decodificate folosind aceeași cheie care a fost folosită pentru codare.

Astfel, este clar că cheia este cea mai importantă parte a criptării simetrice. Trebuie să fie ascuns de străini, deoarece oricine are acces la el va putea decripta datele private. Acesta este motivul pentru care acest tip de criptare este cunoscut și ca „cheie secretă”.

ÎN sisteme moderne ah, cheia este de obicei un șir de date care provine dintr-o parolă puternică sau dintr-o sursă complet aleatorie. Este introdus în software-ul de criptare simetrică, care îl folosește pentru a păstra secrete datele de intrare. Codificarea datelor se realizează folosind un algoritm de criptare simetric, cum ar fi Standardul de criptare a datelor (DES), Standardul de criptare avansată (AES) sau algoritmul internațional de criptare a datelor (IDEA).

Restricții

Cea mai slabă verigă în acest tip de criptare este securitatea cheii, atât în ​​ceea ce privește stocarea, cât și transmiterea către utilizatorul autentificat. Dacă un hacker este capabil să obțină această cheie, el poate decripta cu ușurință datele criptate, înfrângând întregul scop al criptării.

Un alt dezavantaj este că software-ul care prelucrează datele nu poate funcționa cu date criptate. Prin urmare, pentru a putea folosi acest software, datele trebuie mai întâi decodificate. Dacă software-ul în sine este compromis, atunci un atacator poate obține cu ușurință datele.

Criptare asimetrică

Criptarea cheii asimetrice funcționează similar cu cheia simetrică, prin aceea că folosește o cheie pentru a cripta mesajele transmise. Cu toate acestea, în loc să folosească aceeași cheie, el folosește una complet diferită pentru a decripta acest mesaj.

Cheia folosită pentru codificare este disponibilă pentru toți utilizatorii rețelei. Ca atare, este cunoscută ca o cheie „publică”. Pe de altă parte, cheia folosită pentru decriptare este păstrată secretă și este destinată utilizării private de către utilizator însuși. Prin urmare, este cunoscută drept cheia „privată”. Criptarea asimetrică este cunoscută și sub numele de criptare cu cheie publică.

Deoarece, prin această metodă, cheia secretă necesară pentru decriptarea mesajului nu trebuie transmisă de fiecare dată și, de obicei, este cunoscută doar de utilizator (destinator), probabilitatea ca un hacker să poată decripta mesajul este mare. mai jos.

Diffie-Hellman și RSA sunt exemple de algoritmi care utilizează criptarea cu chei publice.

Restricții

Mulți hackeri folosesc man-in-the-middle ca formă de atac pentru a ocoli acest tip de criptare. În criptarea asimetrică, vi se oferă o cheie publică care este utilizată pentru a face schimb de date în siguranță cu o altă persoană sau serviciu. Cu toate acestea, hackerii folosesc înșelăciunea în rețea pentru a vă păcăli să comunicați cu ei în timp ce sunteți făcut să credeți că vă aflați pe o linie sigură.

Pentru a înțelege mai bine acest tip de hacking, luați în considerare două părți care interacționează, Sasha și Natasha, și un hacker, Serghei, cu intenția de a le intercepta conversația. În primul rând, Sasha trimite un mesaj prin intermediul rețelei destinat Natasha, cerându-i cheia publică. Serghei interceptează acest mesaj și obține cheia publică asociată cu ea și o folosește pentru a cripta și a trimite un mesaj fals către Natasha, care conține cheia lui publică în loc de a lui Sasha.

Natasha, crezând că acest mesaj a venit de la Sasha, acum o criptează cu cheie publică Serghei și îl trimite înapoi. Acest mesaj a fost din nou interceptat de Serghei, decriptat, modificat (dacă se dorește), criptat din nou folosind cheia publică pe care Sasha a trimis-o inițial și trimis înapoi lui Sasha.

Astfel, atunci când Sasha primește acest mesaj, el a fost făcut să creadă că a venit de la Natasha și rămâne inconștient de jocul greșit.

Hashing

Tehnica hashing folosește un algoritm cunoscut sub numele de funcție hash pentru a genera un șir special din datele date, cunoscut sub numele de hash. Acest hash are următoarele proprietăți:

  • aceleași date produc întotdeauna același hash.
  • Nu este posibil să generați date brute numai dintr-un hash.
  • Nu este practic să încercați combinații diferite de intrări pentru a încerca să generați același hash.

Astfel, principala diferență dintre hashing și celelalte două forme de criptare a datelor este că, odată ce datele sunt criptate (hashing), nu pot fi recuperate înapoi în forma sa originală (decriptate). Acest fapt asigură că, chiar dacă un hacker pune mâna pe hash, acesta nu îi va fi de nici un folos, deoarece nu va putea decripta conținutul mesajului.

Message Digest 5 (MD5) și Secure Hashing Algorithm (SHA) sunt doi algoritmi de hashing utilizați pe scară largă.

Restricții

După cum am menționat mai devreme, este aproape imposibil să decriptați datele dintr-un anumit hash. Cu toate acestea, acest lucru este adevărat numai dacă este implementat hashing puternic. În cazul unei implementări slabe a tehnicii de hashing, folosind suficiente resurse și atacuri de forță brută, un hacker persistent poate găsi date care se potrivesc cu hash-ul.

Combinație de metode de criptare

După cum sa discutat mai sus, fiecare dintre aceste trei metode de criptare suferă de unele dezavantaje. Cu toate acestea, atunci când se utilizează o combinație a acestor metode, acestea formează un sistem de criptare sigur și foarte eficient.

Cel mai adesea, tehnicile cu chei private și publice sunt combinate și utilizate împreună. Metoda cheii private permite decriptarea rapidă, în timp ce metoda cheii publice oferă o modalitate mai sigură și mai convenabilă de a transmite cheia secretă. Această combinație de metode este cunoscută sub denumirea de „plic digital”. Program de criptare e-mail PGP se bazează pe tehnica „plicului digital”.

Hashingul este folosit ca mijloc de verificare a puterii unei parole. Dacă sistemul stochează un hash al parolei în locul parolei în sine, va fi mai sigur, deoarece chiar dacă un hacker pune mâna pe acest hash, el nu îl va putea înțelege (citi). În timpul verificării, sistemul va verifica hash-ul parolei de intrare și va vedea dacă rezultatul se potrivește cu ceea ce este stocat. În acest fel, parola reală va fi vizibilă doar în scurte momente când trebuie schimbată sau verificată, reducând foarte mult probabilitatea ca aceasta să cadă pe mâini greșite.

Hashingul este, de asemenea, folosit pentru a autentificarea datelor folosind o cheie secretă. Un hash este generat folosind datele și această cheie. Prin urmare, doar datele și hash-ul sunt vizibile, iar cheia în sine nu este transmisă. În acest fel, dacă se fac modificări fie la date, fie la hash, acestea vor fi detectate cu ușurință.

În concluzie, aceste tehnici pot fi folosite pentru a codifica eficient datele într-un format care nu poate fi citit, care poate asigura că acestea rămân în siguranță. Cele mai multe sisteme moderne folosesc de obicei o combinație a acestor metode de criptare împreună cu implementări puternice de algoritm pentru a îmbunătăți securitatea. Pe lângă securitate, aceste sisteme oferă și multe beneficii suplimentare, cum ar fi verificarea identității utilizatorului și asigurarea faptului că datele primite nu pot fi modificate.

Este ușor să trimiți munca ta bună la baza de cunoștințe. Utilizați formularul de mai jos

Studenții, studenții absolvenți, tinerii oameni de știință care folosesc baza de cunoștințe în studiile și munca lor vă vor fi foarte recunoscători.

Lucrări de curs

Pe subiect:

Algoritmi de criptare a datelor

Introducere

1. Scopul și structura algoritmilor de criptare

1.1 Prezentare generală a metodelor criptografice

2. Algoritm de criptare simetrică

2.1 Structura algoritmilor de criptare

3. Aplicarea unui algoritm de criptare simetrică

Concluzie

Referințe

Introducere

Problema protejării informațiilor prin transformarea acesteia astfel încât să nu poată fi citită de un străin a îngrijorat mintea umană încă din cele mai vechi timpuri.

De ce problema utilizării metodelor criptografice în sistemele informaționale a devenit deosebit de relevantă în acest moment?

Până în prezent, fiecare formă cunoscută de comerț este susceptibilă la fraudă, de la marcaje pe piață până la facturi false și valută falsă. Schemele de comerț electronic nu fac excepție. Numai criptografia puternică poate preveni aceste forme de atac.

Banii electronici fără criptografie nu vor supraviețui. Internetul se transformă treptat într-o Autostradă a Informației. Acest lucru se datorează faptului că numărul utilizatorilor de internet este în continuă creștere, ca o avalanșă. Pe lângă schimbul obișnuit de informații, relațiile de afaceri pătrund în Rețea, care implică întotdeauna plăți bănești. Există multe exemple de tranzacționare online cu diverse bunuri și servicii. Acesta este comerțul tradițional, susținut de capacitățile rețelei, când cumpărătorul poate alege un produs din cataloage uriașe și chiar poate examina acest produs (un astfel de serviciu, bazat pe transferul de imagini tridimensionale, devine din ce în ce mai răspândit) . Acesta este accesul la serviciile turistice, când poți afla dinainte totul despre locul călătoriei tale și nivelul de servicii, te uiți la fotografii (natura, restaurante, piscine, mobilierul camerei...), rezervi o excursie și rezervați bilete de avion. Există destul de multe astfel de exemple și multe dintre ele implică plăți bănești.

În ceea ce privește plățile folosind un card de credit, dezavantajele sale sunt evidente: trebuie să obțineți un card (și în Rusia nu toată lumea știe ce este), există și temeri că toată lumea de pe Internet va cunoaște codurile cardului dvs. de credit și oamenii răi vor ștergeți-vă contul. De fapt, probabilitatea unei astfel de fraude nu este mai mare decât aceea, atunci când schimbați valută, vi se vor da bani falși. Și, în general, nu există mai multe probleme cu banii electronici decât cu cei obișnuiți. Au fost dezvoltate mai multe sisteme de plată pentru a efectua plăți pe internet. Care fie folosesc inteligent cardurile de credit existente, fie se bazează pe bani electronici puri, adică un sistem de fișiere securizat care stochează înregistrările stării contului tău. Există mai mult de o duzină de astfel de sisteme în lume și există și câteva în Rusia, dintre care cel mai comun este CyberPlat.

1. Plățile pe internet presupun transferul de informații speciale care nu pot fi dezvăluite unor persoane neautorizate.

2. La efectuarea plăților, este necesar să se asigure că toți actorii (cumpărător, vânzător, bancă sau sistem de plată) sunt exact cine spun ei că sunt.

Acești doi factori sunt suficienți pentru a înțelege că fără criptografie, plățile pe internet sunt imposibile, iar însăși ideea de bani electronici presupune o protecție fiabilă a informațiilor și o garanție că nimeni nu va putea înlocui participantul la tranzacție. și astfel furați bani electronici.

Apariția unor noi computere puternice, tehnologii de calcul de rețea și neutroni a făcut posibilă discreditarea sistemelor criptografice care până de curând erau considerate indestructibile.

Toate acestea îi împing pe cercetători să creeze noi criptosisteme și să le analizeze cu atenție pe cele existente.

Relevanța și importanța problemei asigurării securității informațiilor se datorează următorilor factori:

* Nivelurile și ratele actuale de dezvoltare a instrumentelor de securitate a informațiilor sunt semnificativ în urma nivelurilor și ratelor de dezvoltare tehnologia de informație.

* Rate mari de creștere a flotei calculatoare personale, folosit în diverse sfere ale activității umane.

1. Scopul și structura algoritmilor de criptare

Criptarea este cea mai utilizată metodă criptografică pentru menținerea confidențialității informațiilor; protejează datele de accesul neautorizat. În primul rând, să ne uităm la metodele de bază de protecție a informațiilor criptografice. Într-un cuvânt, criptografie- știința securității informațiilor folosind metode matematice. Există, de asemenea, o știință opusă criptografiei și dedicată metodelor de deschidere a informațiilor protejate - criptoanaliza. Combinația dintre criptografie și criptoanaliza este denumită în mod obișnuit criptologie. Metodele criptografice pot fi clasificate în diferite moduri, dar cel mai adesea sunt împărțite în funcție de numărul de chei utilizate în algoritmii criptografici corespunzători (vezi Fig. 1):

1. Fără cheie, care nu utilizează nicio cheie.

2. O singură cheie - folosesc un parametru cheie suplimentar - de obicei o cheie secretă.

3. Două chei, folosind două chei în calculele lor: secretă și publică.

Orez. 1. Criptoalgoritmi

1.1 Prezentare generală a metodelor criptografice

Criptarea este principala metodă de protecție; Să ne uităm la asta în detaliu mai jos.

Merită să spuneți câteva cuvinte despre alte metode criptografice:

1. O semnătură electronică este utilizată pentru a confirma integritatea și calitatea de autor a datelor. Integritatea datelor înseamnă că datele nu au fost modificate accidental sau intenționat în timpul stocării sau transmiterii.

Algoritmii de semnătură electronică folosesc două tipuri de chei:

o cheia secretă este utilizată pentru calcularea semnăturii electronice;

o Cheia publică este folosită pentru a o verifica.

Când se utilizează un algoritm de semnătură electronică puternic din punct de vedere criptografic și când se stochează și se utilizează în mod corespunzător cheia secretă (adică atunci când este imposibil ca altcineva decât proprietarul său să folosească cheia), nimeni altcineva nu poate calcula semnătura electronică corectă a oricărei chei. document electronic.

2. Autentificarea vă permite să verificați dacă utilizatorul (sau computer la distanță) este cu adevărat cine spune că este. Cea mai simplă schemă autentificarea se bazează pe parolă - folosește o parolă ca element secret, care este prezentată de utilizator atunci când o verifică. O astfel de schemă s-a dovedit a fi slabă dacă nu se aplică măsuri administrative și tehnice speciale pentru a o consolida. Și pe baza criptării sau hashingului (vezi mai jos), puteți construi scheme de autentificare a utilizatorilor foarte puternice.

3. Există diverse metode criptografice de sumă de verificare:

o cheie și hashing fără cheie;

o calculul prefixelor de imitație;

o utilizarea codurilor de autentificare a mesajelor.

De fapt, toate aceste metode, în diferite moduri, calculează din date de dimensiune arbitrară, cu sau fără o cheie secretă, o sumă de control de o dimensiune fixă ​​care se potrivește în mod unic cu datele originale.

O astfel de sumă de verificare criptografică este utilizată pe scară largă în diferite metode de securitate a informațiilor, de exemplu:

o să confirme integritatea oricăror date în cazurile în care utilizarea unei semnături electronice este imposibilă (de exemplu, din cauza consumului mare de resurse) sau este redundantă;

o în schemele de semnătură electronică în sine, de obicei hash-ul datelor este „semnat”, și nu datele întregi;

o în diverse scheme de autentificare a utilizatorilor.

4. Generatoarele de numere aleatoare și pseudoaleatoare vă permit să creați secvențe de numere aleatoare care sunt utilizate pe scară largă în criptografie, în special:

o Sunt necesare numere aleatorii pentru a genera chei secrete, care, în mod ideal, ar trebui să fie complet aleatorii;

o numere aleatorii sunt folosite în mulți algoritmi de semnătură electronică;

o Numerele aleatorii sunt folosite în multe scheme de autentificare.

Nu este întotdeauna posibil să obțineți numere absolut aleatorii - acest lucru necesită generatoare hardware de înaltă calitate. Cu toate acestea, pe baza algoritmilor de criptare simetrică, este posibil să se construiască generatoare de numere pseudoaleatoare de înaltă calitate.

2 Algoritm de criptare simetric

Criptare informația este transformarea informațiilor deschise în informații criptate (care este cel mai adesea numită text cifrat sau criptogramă), și invers. Prima parte a acestui proces se numește criptare, a doua - decriptare.

Te poți gândi la criptare ca la următoarea formulă:

C = E k1(M), Unde:

M(mesaj) - informații deschise,

CU(text cifrat) - textul cifrat obținut ca urmare a criptării,

E(criptare) - o funcție de criptare care efectuează transformări criptografice peste M,

k1(cheie) - parametru de funcție E, numit cheie criptare.

În standardul GOST 28147-89 (standardul definește algoritmul intern de criptare simetrică) conceptul cheie este definită după cum urmează: „O stare secretă specifică a unor parametri ai unui algoritm de transformare criptografică, asigurând selecția unei transformări dintr-un set de toate transformările posibile pentru un algoritm dat”.

Cheia poate aparține unui anumit utilizator sau unui grup de utilizatori și poate fi unică pentru aceștia. Informațiile criptate folosind o anumită cheie pot fi decriptate numai folosind aceeași cheie sau o cheie legată de aceasta printr-o anumită relație.

Decriptarea poate fi reprezentată într-un mod similar:

M" = D k2(C), Unde:

M"- mesaj primit ca urmare a decriptării,

D(decriptare) - functie de decriptare; la fel ca funcția de criptare, efectuează transformări criptografice pe textul cifrat,

k2- cheie de decriptare.

Pentru a obține textul clar corect ca urmare a decriptării (adică același care a fost criptat anterior: M" = M), trebuie îndeplinite simultan următoarele condiții:

1. Funcția de decriptare trebuie să se potrivească cu funcția de criptare.

2. Cheia de decriptare trebuie să se potrivească cu cheia de criptare.

Dacă lipsește cheia corectă k2 primiți mesajul original M" = M folosind funcția corectă D imposibil. Cuvântul „imposibil” în acest caz înseamnă de obicei imposibilitatea de a calcula în în timp real cu resursele de calcul existente.

Algoritmii de criptare pot fi împărțiți în două categorii (vezi Fig. 1):

1. Algoritmi de criptare simetrică.

2. Algoritmi de criptare asimetrică.

În algoritmi criptare simetrică Pentru decriptare, se folosește de obicei aceeași cheie ca și pentru criptare, sau o cheie legată de aceasta printr-o relație simplă. Acesta din urmă este mult mai puțin comun, mai ales în algoritmii moderni de criptare. O astfel de cheie (obișnuită pentru criptare și decriptare) este de obicei numită simplu cheie de criptare.

ÎN criptare asimetrică cheie de criptare k1 ușor de calculat din cheie k2în așa fel încât calculul invers să fie imposibil. De exemplu, relația cheie ar putea fi:

k1 = ak2 mod p,

unde a și p sunt parametrii algoritmului de criptare, care au o dimensiune suficient de mare.

Această relație cheie este utilizată și în algoritmii de semnătură electronică.

Caracteristica principală a algoritmului de criptare este puterea criptografică, care îi determină rezistența la dezvăluire prin metode de criptoanaliza. De obicei, această caracteristică este determinată de intervalul de timp necesar pentru spargerea cifrului.

Criptarea simetrică este mai puțin convenabilă datorită faptului că atunci când transmiteți informații criptate cuiva, este necesar ca destinatarul să primească o cheie în avans pentru a decripta informațiile. Criptarea asimetrică nu are această problemă (deoarece cheia publică poate fi transmisă liber prin rețea), totuși, are propriile probleme, în special problema falsificării cheii publice și a vitezei reduse de criptare. Cel mai adesea, criptarea asimetrică este utilizată împreună cu criptarea simetrică - pentru a transmite cheia de criptare simetrică, care criptează cea mai mare parte a datelor. Cu toate acestea, schemele de stocare și transfer ale cheilor reprezintă un subiect pentru un articol separat. Aici îmi voi permite să afirm că criptarea simetrică este folosită mult mai des decât criptarea asimetrică, așa că restul articolului va fi dedicat doar criptării simetrice.

Există două tipuri de criptare simetrică:

· Blocați criptarea- informațiile sunt împărțite în blocuri de lungime fixă ​​(de exemplu, 64 sau 128 de biți), după care aceste blocuri sunt criptate unul câte unul. Mai mult, în diferiți algoritmi de criptare sau chiar în diferite moduri de operare ale aceluiași algoritm, blocurile pot fi criptate independent unul de celălalt sau „cu înlănțuire” - atunci când rezultatul criptării blocului curent de date depinde de valoarea blocului anterior sau pe rezultatul criptării blocului anterior.

· Criptare în flux- necesar, în primul rând, în cazurile în care informațiile nu pot fi împărțite în blocuri - să zicem, un anumit flux de date, fiecare caracter al cărui caracter trebuie să fie criptat și trimis undeva, fără a aștepta datele rămase suficiente pentru a forma blocul. Prin urmare, algoritmii de criptare a fluxului criptează datele bit cu bit sau caracter cu caracter. Deși merită spus că unele clasificări nu fac distincție între criptarea bloc și stream, având în vedere că criptarea stream este criptarea blocurilor de lungime unitară.

Să ne uităm la cum arată algoritmii de criptare simetrică bloc din interior.

2.1 Structura algoritmilor de criptare

Marea majoritate a algoritmilor moderni de criptare funcționează într-un mod foarte asemănător: o anumită transformare este efectuată asupra textului cifrat folosind cheia de criptare, care se repetă de un anumit număr de ori (runde). În același timp, în funcție de tipul transformării repetate, algoritmii de criptare sunt de obicei împărțiți în mai multe categorii. Există de asemenea diverse clasificări, îți voi oferi una dintre ele. Deci, în funcție de structura lor, algoritmii de criptare sunt clasificați după cum urmează:

1. Algoritmi bazati pe reteaua Feistel.

Rețeaua Feistel presupune împărțirea blocului de date procesat în mai multe subblocuri (cel mai adesea în două), dintre care unul este procesat de o anumită funcție f()și se suprapune cu unul sau mai multe alte subblocuri. În fig. Figura 2 prezintă cea mai comună structură a algoritmilor bazați pe rețeaua Feistel.

Orez. 2. Structura algoritmilor bazati pe reteaua Feistel.

Argument suplimentar al funcției f(), indicat în Fig. 2 cum Ki, numit cheie rotundă. Cheia rotundă este rezultatul procesării cheii de criptare prin procedura de extindere a cheii, a cărei sarcină este obținerea numărului necesar de chei Ki dintr-o cheie de criptare inițială de dimensiune relativ mică (în prezent, o dimensiune de 128 de biți este considerată suficientă pentru o cheie de criptare simetrică). În cele mai simple cazuri, procedura de extindere a cheii împarte pur și simplu cheia în mai multe fragmente, care sunt folosite alternativ în runde de criptare; Mult mai des, procedura de extindere a cheilor este destul de complexă, iar cheile Ki depind de valorile majorității biților din cheia de criptare originală.

Suprapunerea unui subbloc procesat pe unul neprocesat se face cel mai adesea folosind o operație XOR logică (așa cum se arată în Fig. 2). Destul de des, în loc de XOR, aici este folosită adăugarea modulo 2 n, Unde n- dimensiunea subblocului în biți. După suprapunere, subblocurile sunt schimbate, adică în următoarea rundă a algoritmului, este procesat un alt subbloc de date.

Această structură de algoritmi de criptare și-a primit numele de la Horst Feistel, unul dintre dezvoltatorii algoritmului de criptare Lucifer și algoritmul DES (Data Encryption Standard) dezvoltat pe baza ei, un fost standard de criptare din SUA (dar încă utilizat pe scară largă). Ambii acești algoritmi au o structură similară cu cea prezentată în Fig. 2. Printre alți algoritmi bazați pe rețeaua Feistel, putem cita ca exemplu standardul intern de criptare GOST 28147-89, precum și alți algoritmi foarte cunoscuți: RC5, Blowfish, TEA, CAST-128 etc.

Majoritatea algoritmilor moderni de criptare se bazează pe rețeaua Feistel - datorită numeroaselor avantaje ale unei astfel de structuri, printre care sunt de remarcat următoarele:

o Algoritmii bazati pe reteaua Feistel pot fi proiectati in asa fel incat acelasi cod algoritm sa poata fi folosit pentru criptare si decriptare - diferenta dintre aceste operatii nu poate fi decat in ordinea aplicarii cheilor Ki; Această proprietate a algoritmului este cea mai utilă atunci când este implementată în hardware sau pe platforme cu resurse limitate; Un exemplu de astfel de algoritm este GOST 28147-89.

o Algoritmii bazați pe rețeaua Feistel sunt cei mai studiati - unor astfel de algoritmi au fost dedicate o cantitate imensă de cercetări criptoanalitice, ceea ce reprezintă un avantaj incontestabil atât în ​​dezvoltarea algoritmului, cât și în analiza acestuia.

Există, de asemenea, o structură mai complexă a rețelei Feistel, un exemplu al căruia este prezentat în Fig. 3.

Orez. 3. Structura rețelei Feistel.

Această structură se numește generalizat sau extins Rețeaua Feistel și este folosită mult mai puțin frecvent decât rețeaua tradițională Feistel. Un exemplu de astfel de rețea Feistel este algoritmul RC6.

2. Bazat pe algoritmi rețele de permutare (Rețeaua SP- Rețea de substituție-permutare).

Spre deosebire de rețeaua Feistel, rețelele SP procesează întregul bloc criptat într-o singură rundă. Procesarea datelor se reduce în principal la înlocuiri (când, de exemplu, un fragment dintr-o valoare de intrare este înlocuit cu un alt fragment în conformitate cu un tabel de înlocuire, care poate depinde de valoarea cheii Ki) și permutări în funcție de cheie Ki(o diagramă simplificată este prezentată în Fig. 4).

Orez. 4. Rețea de substituție-permutare.

Cu toate acestea, astfel de operațiuni sunt tipice și pentru alte tipuri de algoritmi de criptare, prin urmare, în opinia mea, denumirea de „rețea de substituție-permutare” este destul de arbitrară.

Rețelele SP sunt mult mai puțin comune decât rețelele Feistel; Exemple de rețele SP includ algoritmii Serpent sau SAFER+.

3. Algoritmi cu structura "pătrat"(Pătrat).

Structura „pătrată” se caracterizează prin reprezentarea blocului de date criptat sub forma unei matrice bidimensionale de octeți. Transformările criptografice pot fi efectuate pe octeți individuali ai unei matrice, precum și pe rândurile sau coloanele acestuia.

Structura algoritmului își ia numele de la algoritmul Square, care a fost dezvoltat în 1996 de Vincent Rijmen și Joan Daemen, viitorii autori ai algoritmului Rijndael, care a devenit noul standard de criptare AES din SUA după ce a câștigat o competiție deschisă. Algoritmul Rijndael are, de asemenea, o structură asemănătoare pătratului; De asemenea, exemplele includ algoritmul Shark (o dezvoltare anterioară a lui Ridgeman și Damen) și Crypton. Dezavantajul algoritmilor cu o structură „pătrată” este lipsa lor de cunoștințe, ceea ce nu a împiedicat algoritmul Rijndael să devină noul standard american.

Orez. 5. Algoritmul Rijndael.

În fig. Figura 5 prezintă un exemplu de operație pe un bloc de date realizată de algoritmul Rijndael.

4. Algoritmi cu o structură non-standard, adică acei algoritmi care nu pot fi clasificați ca unul dintre tipurile enumerate. Este clar că ingeniozitatea poate fi nelimitată, așa că este dificil să clasificăm toate opțiunile posibile pentru algoritmii de criptare. Ca exemplu de algoritm cu o structură nestandard, putem cita algoritmul FROG, care este unic în structura sa, în fiecare rundă din care există suficiente reguli complexe se efectuează modificarea a doi octeți de date criptate (vezi Fig. 6).

Orez. 6. Modificarea a doi octeți de date criptate.

Granițele stricte dintre structurile descrise mai sus nu sunt definite, așa că destul de des există algoritmi clasificați de diverși experți ca diferite tipuri de structuri. De exemplu, algoritmul CAST-256 este denumit de autorul său o rețea SP și mulți experți o numesc o rețea Feistel extinsă. Un alt exemplu este algoritmul HPC, numit de autorul său rețeaua Feistel, dar considerat de experți un algoritm cu o structură nestandard.

3. Aplicarea SIMalgoritm de criptare metrică

algoritm de criptare criptare simetrică

Metodele de criptare simetrică sunt convenabile deoarece pentru a asigura un nivel ridicat de securitate a transmisiei datelor, nu este necesară crearea de chei lungi. Acest lucru vă permite să criptați și să decriptați rapid cantități mari de informații. În același timp, atât expeditorul, cât și destinatarul informațiilor dețin aceeași cheie, ceea ce face imposibilă autentificarea expeditorului. În plus, pentru a începe să lucreze cu utilizarea unui algoritm simetric, părțile trebuie să schimbe în siguranță o cheie secretă, ceea ce este ușor de făcut în persoană, dar foarte dificil dacă este necesar să transferați cheia prin orice mijloc de comunicare.

Schema de operare care utilizează un algoritm de criptare simetrică constă din următoarele etape:

părțile instalează pe computerele lor software care asigură criptarea și decriptarea datelor și generarea primară de chei secrete;

o cheie secretă este generată și distribuită între participanți schimbul de informații. Uneori este generată o listă de chei unice. În acest caz, se folosește o cheie unică pentru fiecare sesiune de transfer de informații. În acest caz, la începutul fiecărei sesiuni, expeditorul anunță destinatarul despre numărul de serie al cheii pe care a folosit-o în acest mesaj;

expeditorul criptează informațiile folosind software-ul instalat care implementează un algoritm de criptare simetrică;

informația criptată este transmisă destinatarului prin canale de comunicare;

destinatarul decriptează informațiile folosind aceeași cheie ca și expeditorul.

Mai jos este o prezentare generală a unor algoritmi de criptare simetrică:

DES (Standard de criptare a datelor). Dezvoltat de IBM și utilizat pe scară largă din 1977. Momentan oarecum depășit, deoarece lungimea cheii utilizată în acesta nu este suficientă pentru a asigura rezistența la atac prin căutarea exhaustivă a tuturor valorilor cheie posibile. Descoperirea acestui algoritm a fost posibilă datorită dezvoltării rapide a tehnologiei informatice, care a făcut un salt uriaș din 1977;

Triplu DES. Aceasta este o versiune avansată a DES care utilizează algoritmul DES pentru criptare de trei ori cu chei diferite. Este semnificativ mai rezistent la hacking decât DES;

Rijndael. Algoritmul a fost dezvoltat în Belgia. Funcționează cu chei cu lungimea de 128, 192 și 256 de biți. Momentan, experții în criptografie nu au nicio plângere în acest sens;

Skipjack. Algoritmul a fost creat și utilizat de către Agenția de Securitate Națională a SUA. Lungimea cheii este de 80 de biți. Criptarea și decriptarea informațiilor se realizează ciclic (32 de cicluri);

IDEE. Algoritmul este brevetat în SUA și în mai multe țări europene. Deținătorul brevetului este Ascom-Tech. Algoritmul folosește procesarea ciclică a informațiilor (8 cicluri) prin aplicarea unui număr de operații matematice;

RC4. Algoritmul este special conceput pentru criptarea rapidă a unor volume mari de informații. Utilizează o cheie de lungime variabilă (în funcție de nivelul necesar de securitate a informațiilor) și funcționează mult mai rapid decât alți algoritmi. RC4 se referă la așa-numitele cifruri flux.

În conformitate cu legislația SUA (International Traffic in Arms Peguiation Agreement), dispozitivele criptografice, inclusiv software-ul, sunt clasificate ca sisteme de arme.

Prin urmare, atunci când exportați produse software care utilizează criptografie, este necesară permisiunea Departamentului de Stat. De fapt, exportul de produse criptografice este controlat de NSA (National Security Agency). Guvernul SUA este foarte reticent în a emite astfel de licențe, deoarece ar putea dăuna securității naționale a SUA. Cu toate acestea, Hewlett-Packard a primit recent permisiunea de a-și exporta suita criptografică Ver Secure în Marea Britanie, Germania, Franța, Danemarca și Australia. Acum, HP poate opera sisteme în aceste țări care utilizează standardul cripto Triple DES pe 128 de biți, care este considerat absolut fiabil.

CONCLUZIE

Alegerea pentru PI specifică ar trebui să se bazeze pe o analiză aprofundată a punctelor forte și a punctelor slabe ale anumitor metode de protecție. O alegere justificată a unui anumit sistem de protecție, în general, ar trebui să se bazeze pe anumite criterii de eficacitate. Din păcate, metode adecvate pentru evaluarea eficacității sistemelor criptografice nu au fost încă dezvoltate.

Cel mai simplu criteriu pentru o astfel de eficiență este probabilitatea dezvăluirii unei chei sau puterea unui set de chei. În esență, aceasta este aceeași cu puterea criptografică. Pentru a o estima numeric, puteți folosi și complexitatea rezolvării cifrului încercând toate cheile.

Cu toate acestea, acest criteriu nu ia în considerare alte cerințe importante pentru criptosisteme:

* imposibilitatea dezvăluirii sau modificării semnificative a informațiilor pe baza analizei structurii acesteia;

* perfecționarea protocoalelor de securitate utilizate,

* cantitatea minimă de informații cheie utilizate,

* complexitatea minimă a implementării (în numărul de operațiuni ale mașinii), costul acesteia,

* randament ridicat.

Desigur, este de dorit să se utilizeze niște indicatori integrali care să țină cont de acești factori.

Pentru a ține cont de costul, intensitatea forței de muncă și volumul informațiilor cheie, puteți utiliza indicatori specifici - raportul dintre parametrii specificați și puterea setului de chei de cifrare.

Este adesea mai eficient să folosiți judecata și simularea experților atunci când selectați și evaluați un sistem criptografic.

În orice caz, setul selectat de metode criptografice trebuie să combine atât comoditatea, flexibilitatea și eficiența utilizării, cât și protecția fiabilă a informațiilor care circulă în sistemul informațional împotriva atacatorilor.

Funcțiile eliptice sunt, de asemenea, o metodă de criptare simetrică.

Curbele eliptice sunt obiecte matematice pe care matematicienii le-au studiat intens încă din secolul al XVII-lea. N. Koblitz și V. Miller au propus în mod independent sisteme de securitate criptografică cu cheie publică care utilizează proprietățile unui grup aditiv de puncte pe o curbă eliptică pentru criptare. Aceste lucrări au stat la baza criptografiei bazate pe algoritmul curbei eliptice.

Mulți cercetători și dezvoltatori au testat algoritmul ECC pentru putere. Astăzi, ECC oferă o cheie publică mai scurtă și mai rapidă, oferind o tehnologie practică și sigură aplicabilă în diverse domenii. Utilizarea criptografiei bazată pe algoritmul ECC nu necesită suport hardware suplimentar sub forma unui coprocesor criptografic. Toate acestea ne permit să folosim acum sisteme criptografice cu chei publice pentru a crea carduri inteligente ieftine.

Referințe

1) Chmora A.L. Criptografia aplicată modernă. Ed. a II-a, șters. - M.: Helios ARV, 2004. - 256 p.: ill.

2) A.G. Rostovtsev, N.V. Mikhailova Metode de criptoanaliza a cifrurilor clasice.

3) A. Salomaa Criptografia cu chei publice.

4) Gerasimenko V.A. Protecția informațiilor în sistemele automate de prelucrare a datelor carte. 1.-M.: Energoatomizdat. -2004.-400s.

5) Gregory S. Smith. Programe de criptare a datelor // PC World -2007. -Nu 3.

6) Rostovtsev A. G., Mikhailova N. V. Metode de criptoanaliza a cifrurilor clasice. -M.: Nauka, 2005. -208 p.

Postat pe http://www.allbest.ru/

Documente similare

    Istoria apariției algoritmilor de criptare simetrică. Rolul unei chei simetrice în asigurarea gradului de secretizare a unui mesaj. Difuzia și confuzia ca metode de conversie a biților de date. Algoritmii de criptare DES și IDEA, principalele lor avantaje și dezavantaje.

    lucru de laborator, adaugat 18.03.2013

    Caracteristici ale criptării datelor, scopul criptării. Conceptul de criptografie ca știință, principalele sarcini. Analiza metodei gamma, metoda substituției și permutării. Metode de criptare simetrică cu chei private: avantaje și dezavantaje.

    lucrare curs, adăugată 05.09.2012

    Principiul implementării software a metodelor criptografice clasice. Metoda de criptare folosind tabelul Vigenère. Creare editor de text Blocnotes care conține metode de criptare. Algoritm verbal și program pentru metode de criptare.

    lucrare de curs, adăugată 20.01.2010

    Istoria criptografiei. Comparația algoritmilor de criptare, aplicația în sistem de operare. Analiza produselor din domeniul criptării personalizate. Activați sau dezactivați criptarea curbei eliptice. Folosind o funcție hash. Semnătura electronică.

    lucrare curs, adaugat 18.09.2016

    Apariția cifrurilor, istoria evoluției criptografiei. O metodă de aplicare a cunoștințelor despre caracteristicile textului natural pentru nevoile de criptare. Criterii de determinare a naturaleței. O metodă pentru construirea de algoritmi de criptare simetrică. Criptosistem cu cheie publică.

    rezumat, adăugat 31.05.2013

    Criptografia și criptarea. Criptosisteme simetrice și asimetrice. Metode moderne de criptare de bază. Algoritmi de criptare: înlocuire (înlocuire), permutare, gamma. Metode de criptare combinate. Criptare software.

    rezumat, adăugat 24.05.2005

    Automatizarea procesului de criptare pe baza tehnologiilor informaționale moderne. Măsuri de securitate criptografică. Managementul cheilor criptografice. Comparația algoritmilor de criptare simetrici și asimetrici. Programe de criptare a informațiilor.

    lucrare curs, adaugat 12.02.2014

    Istoricul algoritmilor de criptare simetrică (criptare cu cheie privată). Standarde pentru algoritmi criptografici. Senzori cu numere aleatorii, generare cheie. Domeniu de interes: criptoanaliza. Sisteme de semnătură electronică. Transformarea inversă a informațiilor.

    rezumat, adaugat 06.12.2013

    Metode de bază de protecție a informațiilor criptografice. Sistem de criptare Caesar cu cheie numerică. Algoritmi pentru permutări duble și pătrate magice. Schema de criptare El Gamal. Metoda permutării unice prin cheie. Criptosistem de criptare a datelor RSA.

    lucru de laborator, adaugat 20.02.2014

    Scurt istoric dezvoltarea metodelor criptografice de protectie a informatiilor. Esența criptării și criptografiei cu chei simetrice. Descrierea metodelor de criptare analitică și aditivă. Metode de criptare cu cheie publică și certificate digitale.

Rezolvarea problemei determinării unei chei prin simpla încercare a tuturor opțiunilor posibile este, în general, nepractică, cu excepția utilizării unei chei foarte scurte. Prin urmare, dacă un criptoanalist dorește să aibă o șansă reală de a sparge un cifr, trebuie să renunțe la metodele de forță brută și să folosească o strategie diferită. Analiza statistică folosind frecvența de apariție a caracterelor individuale sau combinații de caractere poate fi utilizată pentru a rezolva multe scheme de criptare. Pentru a complica rezolvarea problemei ruperii unui cifr folosind analiza statistică, K. Shannon a propus două concepte de criptare, numite amestecarea (confuzie) Și difuziune (difuziune). Mixarea este utilizarea substituției în care relația dintre cheie și textul cifrat devine cât se poate de complexă. Aplicarea acestui concept complică utilizarea analizei statistice, care restrânge zona de căutare a cheii, iar decriptarea chiar și a unei secvențe criptograme foarte scurte necesită forță brută cantitate mare chei. La rândul său, difuzia este aplicarea unor astfel de transformări care netezesc diferențele statistice dintre simboluri și combinațiile lor. Ca rezultat, utilizarea de către criptoanalist a analizei statistice poate duce la un rezultat pozitiv numai dacă este interceptat un segment suficient de mare al textului cifrat.

Implementarea scopurilor proclamate de aceste concepte se realizează prin utilizarea repetată a metodelor elementare de criptare precum metoda substituției, permutării și amestecării.

10.4.1. Metoda de înlocuire.

Cea mai simplă și mai lungă istorie este metoda substituției, a cărei esență este că un caracter din textul sursă este înlocuit cu altul, selectat din acest sau altul alfabet conform regulii specificate de cheia de criptare. Locația personajului în text nu se schimbă. Unul dintre cele mai timpurii exemple de utilizare a metodei de stadializare este Cifrul Caesar, care a fost folosit de Gaius Julius Caesar în timpul campaniilor sale galice. În ea, fiecare literă a textului simplu a fost înlocuită cu alta, luată din același alfabet, dar deplasată ciclic cu un anumit număr de caractere. Aplicarea acestei metode de criptare este ilustrată de exemplul prezentat în Fig. 10.3, în care transformarea de criptare se bazează pe utilizarea unui alfabet cu o deplasare ciclică de cinci poziții.

Orez. 10.3, O )

Sursă

Criptogramă

Orez. 10.3, b )

Evident, cheia de cifrare este valoarea de deplasare ciclică. Dacă selectați o cheie diferită de cea prezentată în exemplu, cifra se va schimba.

Un alt exemplu de schemă de substituție clasică este un sistem de criptare numit pătratul Polybius. În legătură cu alfabetul rus, această schemă poate fi descrisă după cum urmează. Inițial, literele E și E sunt combinate într-una singură; I, J și b, b, al căror adevărat sens în textul decriptat este ușor de restabilit din context. Apoi 30 de caractere ale alfabetului sunt plasate într-un tabel de dimensiunea 65, un exemplu de umplere care este prezentat în Fig. 10.4.

Orez. 10.4.

Criptarea oricărei litere de text simplu se realizează prin specificarea adresei acesteia (adică numărul rândului și al coloanei sau invers) în tabelul furnizat. Deci, de exemplu, cuvântul CAESAR este criptat folosind un pătrat Polybius ca 52 21 23 11 41 61. Este absolut clar că codul poate fi schimbat ca urmare a rearanjamentelor literelor din tabel. De asemenea, trebuie remarcat faptul că cei care au participat la un tur al cazematelor Cetății Petru și Pavel ar trebui să-și amintească cuvintele ghidului despre cum au bătut prizonierii între ei. Evident, metoda lor de comunicare este acoperită complet de această metodă de criptare.

Un exemplu de cifru polialfabetic este o schemă bazată pe așa-numitul. cheia progresivă a lui Trithemius. Baza acestei metode de criptare este tabelul prezentat în Fig. 10.5, ale căror linii sunt copii ale alfabetului original deplasate ciclic cu o poziție. Deci, prima linie are o schimbare zero, a doua este deplasată ciclic cu o poziție la stânga, a treia este de două poziții față de prima linie etc.

Orez. 10.5.

O metodă de criptare folosind un astfel de tabel este utilizarea, în locul primului caracter de text simplu, a unui caracter din prima schimbare ciclică a alfabetului original, situat sub simbolul criptat, al doilea caracter de text simplu din șirul corespunzător celei de-a doua deplasări ciclice. , etc. Un exemplu de criptare a unui mesaj într-un mod similar este prezentat mai jos (Fig. 10.6).

Text simplu

Cifrarea textului

Orez. 10.6.

Sunt cunoscute mai multe variante interesante de cifruri bazate pe cheia progresivă Trithemius. Într-una dintre ele, chemat Metoda cheii Viginère, se aplică un cuvânt cheie care specifică liniile pentru a cripta și decripta fiecare caracter text simplu ulterior: prima literă a cheii specifică rândul tabelului din Fig. 10.5, cu care se criptează primul caracter al mesajului, a doua literă a cheii determină rândul tabelului care criptează al doilea caracter al textului simplu etc. Lăsați cuvântul „THROMB” să fie ales ca cheie, apoi mesajul criptat folosind cheia Viginère poate fi prezentat după cum urmează (Fig. 10.7). Este evident că cheia poate fi deschisă pe baza analizei statistice a cifrgramei.

Text simplu

Cifrarea textului

Orez. 10.7.

O variantă a acestei metode este așa-numita. metoda automata (deschide) cheie Viginera, în care ca cheie de formare este folosită o singură literă sau cuvânt. Această cheie furnizează șirul sau șirurile inițiale pentru criptarea primelor sau a primelor câteva caractere ale textului simplu, similar cu exemplul discutat anterior. Caracterele text simplu sunt apoi folosite ca cheie pentru a selecta șirul de criptare. În exemplul de mai jos, litera „I” este folosită ca cheie de formare (Fig. 10.8):

Text simplu

Cifrarea textului

Orez. 10.8.

După cum arată exemplul, alegerea liniilor de criptare este complet determinată de conținutul textului simplu, adică Feedback-ul în text simplu este introdus în procesul de criptare.

O altă variantă a metodei Viginère este metoda automata (criptat) Cheia Viginère. Ea, ca și criptarea cu chei publice, folosește, de asemenea, o cheie formativă și feedback. Diferența este că, după criptare folosind cheia generatoare, fiecare simbol al cheii ulterioare din secvență este preluat nu din textul simplu, ci din criptograma rezultată. Mai jos este un exemplu care explică principiul utilizării acestei metode de criptare, în care, ca și înainte, litera „I” este folosită ca cheie de formare (Fig. 10.9):

Text simplu

Cifrarea textului

Orez. 10.9.

După cum se poate vedea din exemplul de mai sus, deși fiecare simbol al cheii ulterior este determinat de simbolul criptogramei precedent, acesta depinde funcțional de toate simbolurile anterioare ale mesajului deschis și ale cheii de formare. În consecință, există un efect de dispersie a proprietăților statistice ale textului sursă, ceea ce face dificilă aplicarea analizei statistice pentru un criptoanalist. Punctul slab al acestei metode este că textul cifrat conține caracterele cheie.

Conform standardelor actuale, criptarea Viginère nu este considerată sigură, dar principala sa contribuție este descoperirea că secvențele de chei care nu se repetă pot fi generate folosind fie mesajele în sine, fie funcțiile mesajelor.

O opțiune pentru implementarea tehnologiei de substituție care implementează suficient conceptul de amestecare este următorul exemplu, bazat pe o transformare neliniară. Fluxul de biți de informații este pre-împărțit în blocuri de lungime m, cu fiecare bloc reprezentat de unul dintre simboluri diferite. Apoi o mulțime de
simbolurile sunt amestecate astfel încât fiecare simbol să fie înlocuit cu un alt simbol din acest set. După operația de amestecare, simbolul se transformă din nou în m– bloc de biți. Un dispozitiv care implementează algoritmul descris când
, prezentată în Fig. 10.10, unde tabelul specifică regula de amestecare a simbolurilor unui set de
elemente.

Orez. 10.10.

Nu este greu să arăți că există
diferite substituiri sau posibile modele asociate acestora. În legătură cu care, la valori mari m sarcina criptoanalistului devine aproape imposibilă din punct de vedere computațional. De exemplu, când
numărul de substituţii posibile este definit ca
, adică reprezintă un număr astronomic. Evident, cu o asemenea valoare m această transformare folosind bloc de substituție (substituţie bloc, S-bloc) poate fi considerat a avea secret practic. Cu toate acestea, implementarea sa practică este cu greu posibilă, deoarece presupune existența
conexiuni.

Să ne asigurăm acum că S- blocul prezentat în fig. 10.10, realizează într-adevăr o transformare neliniară, pentru care folosim principiul suprapunerilor: transformarea
este liniară dacă. Să presupunem că
, A
. Apoi, a, de unde rezultă că S– blocul este neliniar.

10.4.2. Metoda de rearanjare.

La rearanjare(sau transpuneri) în conformitate cu cheia, ordinea caracterelor de text simplu se modifică, dar sensul caracterului este păstrat. Cifrurile de permutare sunt cifruri bloc, adică textul sursă este mai întâi împărțit în blocuri, în care se realizează permutarea specificată de cheie.

Cea mai simplă implementare a acestei metode de criptare poate fi algoritmul de intercalare discutat anterior, a cărui esență este împărțirea fluxului de simboluri de informații în blocuri de lungime.
, scriindu-l rând cu rând într-o matrice de memorie de dimensiune linii şi coloane și citire pe coloane. Acest algoritm este ilustrat printr-un exemplu cu
în fig. 10.11, timp în care se înregistrează fraza X= „Timpul examenului va începe în curând.” Apoi, ieșirea dispozitivului de permutare va primi o criptogramă a formei

Orez. 10.11.

Varianta considerată a metodei permutării poate fi complicată prin introducerea cheilor
Şi
, care determină ordinea de scriere a rândurilor și, respectiv, a coloanelor de citire, așa cum este ilustrat de tabelul din Fig. 10.12. Rezultatul transformării va arăta astfel

Orez. 10.12.

În fig. Figura 10.13 prezintă un exemplu de permutare binară a datelor (operație liniară), din care se poate observa că datele sunt pur și simplu amestecate sau rearanjate. Transformarea se realizează folosind un bloc de permutare ( permutare bloc, P-bloc). Tehnologia de amestecare implementată de acest bloc are un dezavantaj major: este vulnerabilă la mesajele frauduloase. Mesajul fraudulos este prezentat în Fig. 10.13 și constă în transmiterea unei singure unități la intrare, restul fiind zerouri, ceea ce permite detectarea uneia dintre conexiunile interne. Dacă un criptoanalist ar analiza o astfel de schemă folosind un atac de text simplu, ar trimite o secvență de mesaje momeală similare, schimbând o singură poziție cu 1 cu o singură transmisie. Ca urmare a unui astfel de atac, toate conexiunile de intrare și de ieșire vor fi stabilite. Acest exemplu demonstrează de ce securitatea unui circuit nu ar trebui să depindă de arhitectura acestuia.

10.4.3. Metoda Gamma.

P Multe sisteme moderne de telecomunicații care folosesc operațiuni de amestecare demonstrează încercări de a aborda secretul perfect. Sub încurcătură se referă la procesul de suprapunere a codurilor de caractere de text simplu cu coduri ale unei secvențe aleatoare de numere, care se mai numește și gamma (numită după litera  a alfabetului grecesc, folosită în formulele matematice pentru a desemna un proces aleatoriu). Gumarea se referă la metodele de criptare a fluxului, atunci când caracterele succesive de text simplu sunt convertite secvenţial în caractere de cifrare, ceea ce măreşte viteza de conversie. Deci, de exemplu, un flux de biți de informații ajunge la o intrare a sumatorului modulo 2 prezentat în Fig. 10.14, în timp ce pe a doua există o secvență binară amestecată
. Ideal consistență
trebuie să fie o secvență aleatorie cu valori la fel de probabile de zerouri și unu. Apoi fluxul de ieșire criptat
va fi independent din punct de vedere statistic de secvența informațională
, ceea ce înseamnă că va fi îndeplinită condiția suficientă a secretului perfect. De fapt, este o coincidență totală
nu este necesar, deoarece altfel destinatarul nu ar putea recupera textul simplu. Într-adevăr, restaurarea textului simplu pe partea de recepție ar trebui să fie efectuată conform regulii
, astfel încât să fie generată exact aceeași secvență de amestecare și cu aceeași fază pe partea de recepție. Cu toate acestea, din cauza aleatoriei absolute
această procedură devine imposibilă.

În practică, secvențele pseudo-aleatorie (PRS) au găsit o utilizare pe scară largă ca secvențe de amestecare, care pot fi reproduse pe partea de recepție. În tehnologia de criptare a fluxului, un generator bazat pe registru cu deplasare liniară cu feedback (liniar feedback schimbare registru(LFSR)). O structură tipică a unui generator PSP, prezentată în Fig. 10.15, include un registru de deplasare, care constă în – elemente private delay sau biți având stări posibile și stocarea unui element de câmp
în timpul unui interval de ceas, un circuit de feedback care include multiplicatori de elemente (stări) stocate în biți de constante , și viperă. Formarea PSP este descrisă printr-o relație recurentă a formei

unde sunt coeficienții
sunt constante fixe care îi aparțin
, conform căruia fiecare element următor al secvenței este calculat pe baza n cele anterioare.

Deoarece numărul de stări diferite ale registrului este finit (cel mult ) este inevitabilă o situație când, după un anumit număr de cicluri, starea se repetă sub forma unuia dintre cele apărute anterior. Cu toate acestea, începând cu o încărcare inițială, de ex. stare fixă, diagrama din Fig. 10.15 va forma doar o singură secvență determinată de recursiunea menționată. În consecință, repetarea stării registrului duce la repetarea tuturor simbolurilor generate ulterioare, ceea ce înseamnă că orice PRP este periodic. Mai mult, în cazul unei stări zero a registrului (prezența zerourilor în toți biții), se va forma întotdeauna o secvență degenerată infinită, constând doar din zerouri. Evident, un astfel de caz este absolut fără speranță, așa că starea zero a registrului trebuie exclusă. Ca urmare, nu mai rămâne
stări permise de registru, care limitează perioada maximă posibilă a secvenței la o valoare nu mai mare decât
.

Exemplul 10.4.1. În fig. 10.16, o, este prezentată implementarea unui generator bazat pe un registru de deplasare cu feedback liniar, generând o secvență binară pseudo-aleatorie a perioadei
. Rețineți că, în cazul PSP-ului binar, înmulțirea cu unu este echivalentă cu simpla conectare a ieșirii biților la sumator. Orez. 10.16, b, ilustrează conținutul succesiv al registrului (stări de biți), precum și starea ieșirii de feedback (punctul de feedback din diagramă) atunci când sunt aplicate impulsuri de ceas. Secvența se citește sub forma unor stări succesive ale extremei n rang egal. Citirea stărilor altor biți are ca rezultat copii ale aceleiași secvențe, deplasate cu unul sau două cicluri de ceas.

La prima vedere, se poate presupune că utilizarea lățimii de bandă a memoriei pe termen lung poate oferi o securitate destul de ridicată. De exemplu, în sistemul de comunicații mobile celulare al standardului IS-95, PSP-ul perioadei este folosit ca amestecare.
printre jetoanele elementare. La o viteză a cipului de 1,228810 6 simboluri/sec, perioada sa este:

Prin urmare, se poate presupune că, deoarece secvența nu se repetă pe o perioadă atât de lungă, ea poate fi considerată aleatorie și oferă un secret perfect. Cu toate acestea, există o diferență fundamentală între o secvență pseudo-aleatoare și o secvență cu adevărat aleatoare: o secvență pseudo-aleatoare este formată conform unui algoritm. Astfel, dacă algoritmul este cunoscut, atunci secvența în sine va fi cunoscută. Ca rezultat al acestei caracteristici, o schemă de criptare care utilizează un registru de deplasare cu feedback liniar este vulnerabilă la un atac de text simplu cunoscut.

Pentru a determina atingerile de feedback, starea inițială a registrului și întreaga secvență, criptoanalistul trebuie doar să aibă
biți de text simplu și textul cifrat corespunzător. Evident, valoarea 2 n semnificativ mai mică decât perioada PSP, egală cu
. Să ilustrăm vulnerabilitatea menționată cu un exemplu.

Exemplul 10.4.2. Lăsați perioada PSP să fie folosită ca amestec
, generat folosind recursiunea formei

la starea iniţială a registrului 0001. Ca urmare, se va genera secvenţa. Să presupunem că un criptoanalist, care nu știe nimic despre structura de feedback a generatorului PSP, a reușit să obțină
bit din criptogramă și echivalentul său deschis:

Apoi, prin adăugarea ambelor secvențe modulo 2, criptoanalistul are la dispoziție un fragment din secvența de amestecare, care arată starea registrului de deplasare în momente diferite. Deci, de exemplu, primii patru biți ai secvenței de taste corespund stării registrului la un moment dat în timp . Dacă acum deplasăm fereastra care alocă biții cvadrupli cu o poziție spre dreapta, atunci stările registrului de deplasare vor fi obținute în momente succesive de timp.
. Având în vedere structura liniară a circuitului de feedback, putem scrie asta

Unde simbolul PSP, care este generat de circuitul de feedback și furnizat la intrarea primei cifre a registrului și
determină absenţa sau prezenţa i-a conexiune între ieșirea bitului de registru de deplasare și sumator, adică circuit de feedback.

Analizând stările registrului de deplasare la patru momente consecutive de timp, putem crea următorul sistem de patru ecuații cu patru necunoscute:

Rezolvarea acestui sistem de ecuații dă următoarele valori ale coeficientului:

Astfel, după ce s-a determinat diagrama de conexiune de feedback a registrului liniar și cunoscând starea acestuia la momentul de timp , criptoanalistul este capabil să reproducă secvența de amestecare la un moment arbitrar în timp și, prin urmare, este capabil să decripteze criptograma interceptată.

Generalizarea exemplului considerat la cazul unui registru arbitrar de deplasare a memoriei n, ecuația inițială poate fi reprezentată ca

,

iar sistemul de ecuații se scrie sub următoarea formă matriceală

,

Unde
, A
.

Se poate arăta că coloanele matricei sunt liniar independente și, prin urmare, există o matrice inversă
. Prin urmare

.

Inversarea matricei necesită ordine operațiuni, deci când
avem
, că pentru un computer cu viteză de funcționare, o operație în 1 μs va necesita 1 secundă pentru a inversa matricea. Evident, slăbiciunea registrului de deplasare se datorează liniarității feedback-ului.

Pentru a face mai dificil pentru analiști să calculeze elementele PSP atunci când compară text simplu și fragmente de text cifrat, este utilizat feedback-ul asupra rezultatului și al textului cifrat. În fig. 10.17 explică principiul introducerii feedback-ului prin text cifrat.

Orez. 10.17. Criptare în flux cu feedback.

În primul rând, este transmis un preambul, care conține informații despre parametrii PSP-ului generat, inclusiv valoarea fazei inițiale. Z 00. Pentru fiecare n simbolurile de cifrare generate sunt calculate și o nouă valoare de fază este setată în generator
. Feedback-ul face ca metoda gamma să fie sensibilă la distorsiunile criptogramei. Astfel, din cauza interferenței în canalul de comunicație, unele simboluri primite pot fi distorsionate, ceea ce va duce la calcularea unei valori eronate a fazei PRP și va complica decodificarea ulterioară, dar după primire. n caractere criptate corecte, sistemul este restaurat. În același timp, o astfel de distorsiune poate fi explicată prin încercarea unui atacator de a impune date false.


Criptarea este cea mai utilizată metodă criptografică pentru menținerea confidențialității informațiilor; protejează datele de accesul neautorizat. În primul rând, să ne uităm la metodele de bază de protecție a informațiilor criptografice. Într-un cuvânt, criptografie- știința securității informațiilor folosind metode matematice. Există, de asemenea, o știință opusă criptografiei și dedicată metodelor de deschidere a informațiilor protejate - criptoanaliza. Combinația dintre criptografie și criptoanaliza este denumită în mod obișnuit criptologie. Metodele criptografice pot fi clasificate în diferite moduri, dar cel mai adesea sunt împărțite în funcție de numărul de chei utilizate în algoritmii criptografici corespunzători (vezi Fig. 1):

  1. Fără cheie, care nu folosește nicio cheie.
  2. O singură cheie - folosesc un parametru cheie suplimentar - de obicei o cheie secretă.
  3. Două chei, folosind două chei în calculele lor: secretă și publică.

Orez. 1. Criptoalgoritmi

Prezentare generală a metodelor criptografice

Criptarea este principala metodă de protecție; Să ne uităm la asta în detaliu mai jos.

Merită să spuneți câteva cuvinte despre alte metode criptografice:

  1. O semnătură electronică este utilizată pentru a confirma integritatea și calitatea de autor a datelor. Integritatea datelor înseamnă că datele nu au fost modificate accidental sau intenționat în timpul stocării sau transmiterii.
    Algoritmii de semnătură electronică folosesc două tipuri de chei:
    • cheia secretă este utilizată pentru calcularea semnăturii electronice;
    • cheia publică este folosită pentru a o verifica.
    Când se utilizează un algoritm de semnătură electronică puternic din punct de vedere criptografic și când se stochează și se utilizează în mod corespunzător cheia secretă (adică atunci când este imposibil ca altcineva decât proprietarul său să folosească cheia), nimeni altcineva nu poate calcula semnătura electronică corectă a oricărei chei. document electronic.
  2. Autentificarea vă permite să verificați dacă un utilizator (sau computer la distanță) este cine spune că este. Cea mai simplă schemă de autentificare este una cu parolă - o parolă este folosită ca element secret, care este prezentată de utilizator atunci când o verifică. O astfel de schemă s-a dovedit a fi slabă dacă nu se aplică măsuri administrative și tehnice speciale pentru a o consolida. Și pe baza criptării sau hashingului (vezi mai jos), puteți construi scheme de autentificare a utilizatorilor foarte puternice.
  3. Există diferite metode de sumă de verificare criptografică:
    • cheie și hashing fără cheie;
    • calcularea prefixelor de imitație;
    • utilizarea codurilor de autentificare a mesajelor.
    De fapt, toate aceste metode, în diferite moduri, calculează din date de dimensiune arbitrară, cu sau fără o cheie secretă, o sumă de control de o dimensiune fixă ​​care se potrivește în mod unic cu datele originale.
    O astfel de sumă de verificare criptografică este utilizată pe scară largă în diferite metode de securitate a informațiilor, de exemplu:
    • să confirme integritatea oricăror date în cazurile în care utilizarea unei semnături electronice este imposibilă (de exemplu, din cauza consumului mare de resurse) sau este redundantă;
    • în schemele de semnătură electronică în sine, de obicei hash-ul datelor este „semnat”, și nu toate datele;
    • în diferite scheme de autentificare a utilizatorilor.
  4. Generatoarele de numere aleatoare și pseudoaleatoare vă permit să creați secvențe de numere aleatoare care sunt utilizate pe scară largă în criptografie, în special:
    • sunt necesare numere aleatorii pentru a genera chei secrete, care, în mod ideal, ar trebui să fie complet aleatorii;
    • numerele aleatorii sunt folosite în mulți algoritmi de semnătură electronică;
    • Numerele aleatorii sunt folosite în multe scheme de autentificare.
    Nu este întotdeauna posibil să obțineți numere absolut aleatorii - acest lucru necesită generatoare hardware de înaltă calitate. Cu toate acestea, pe baza algoritmilor de criptare simetrică, este posibil să se construiască generatoare de numere pseudoaleatoare de înaltă calitate.
Criptare

Criptare informația este transformarea informațiilor deschise în informații criptate (care este cel mai adesea numită text cifrat sau criptogramă), și invers. Prima parte a acestui proces se numește criptare, a doua - decriptare.

Te poți gândi la criptare ca la următoarea formulă:

C = E k1 (M),

Unde:
M(mesaj) - informații deschise,
CU(text cifrat) - textul cifrat obținut ca urmare a criptării,
E(criptare) - o funcție de criptare care efectuează transformări criptografice peste M,
k1(cheie) - parametru de funcție E, numit cheie criptare.

În standardul GOST 28147-89 (standardul definește algoritmul intern de criptare simetrică) conceptul cheie este definită după cum urmează: „O stare secretă specifică a unor parametri ai unui algoritm de transformare criptografică, asigurând selecția unei transformări dintr-un set de toate transformările posibile pentru un algoritm dat”.

Cheia poate aparține unui anumit utilizator sau unui grup de utilizatori și poate fi unică pentru aceștia. Informațiile criptate folosind o anumită cheie pot fi decriptate numai folosind aceeași cheie sau o cheie legată de aceasta printr-o anumită relație.

Decriptarea poate fi reprezentată într-un mod similar:

M" = D k2 (C),

Unde:
M"- mesaj primit ca urmare a decriptării,
D(decriptare) - functie de decriptare; la fel ca funcția de criptare, efectuează transformări criptografice pe textul cifrat,
k2- cheie de decriptare.

Pentru a obține textul clar corect ca urmare a decriptării (adică același care a fost criptat anterior: M" = M), trebuie îndeplinite simultan următoarele condiții:

  1. Funcția de decriptare trebuie să se potrivească cu funcția de criptare.
  2. Cheia de decriptare trebuie să se potrivească cu cheia de criptare.

Dacă lipsește cheia corectă k2 primiți mesajul original M" = M folosind funcția corectă D imposibil. Cuvântul „imposibil” în acest caz înseamnă de obicei imposibilitatea de a calcula în timp real cu resursele de calcul existente.

Algoritmii de criptare pot fi împărțiți în două categorii (vezi Fig. 1):

  1. Algoritmi simetrici de criptare.
  2. Algoritmi de criptare asimetrici.

În algoritmi criptare simetrică Pentru decriptare, se folosește de obicei aceeași cheie ca și pentru criptare, sau o cheie legată de aceasta printr-o relație simplă. Acesta din urmă este mult mai puțin comun, mai ales în algoritmii moderni de criptare. O astfel de cheie (obișnuită pentru criptare și decriptare) este de obicei numită simplu cheie de criptare.

ÎN criptare asimetrică cheie de criptare k1 ușor de calculat din cheie k2în așa fel încât calculul invers să fie imposibil. De exemplu, relația cheie ar putea fi:

k1 = a k2 mod p,

unde a și p sunt parametrii algoritmului de criptare, care au o dimensiune suficient de mare.

Această relație cheie este utilizată și în algoritmii de semnătură electronică.

Caracteristica principală a algoritmului de criptare este puterea criptografică, care îi determină rezistența la dezvăluire prin metode de criptoanaliza. De obicei, această caracteristică este determinată de intervalul de timp necesar pentru spargerea cifrului.

Criptarea simetrică este mai puțin convenabilă datorită faptului că atunci când transmiteți informații criptate cuiva, este necesar ca destinatarul să primească o cheie în avans pentru a decripta informațiile. Criptarea asimetrică nu are această problemă (deoarece cheia publică poate fi transmisă liber prin rețea), totuși, are propriile probleme, în special problema falsificării cheii publice și a vitezei reduse de criptare. Cel mai adesea, criptarea asimetrică este utilizată împreună cu criptarea simetrică - pentru a transmite cheia de criptare simetrică, care criptează cea mai mare parte a datelor. Cu toate acestea, schemele de stocare și transfer ale cheilor reprezintă un subiect pentru un articol separat. Aici îmi voi permite să afirm că criptarea simetrică este folosită mult mai des decât criptarea asimetrică, așa că restul articolului va fi dedicat doar criptării simetrice.

Există două tipuri de criptare simetrică:

  • Blocați criptarea- informațiile sunt împărțite în blocuri de lungime fixă ​​(de exemplu, 64 sau 128 de biți), după care aceste blocuri sunt criptate unul câte unul. Mai mult, în diferiți algoritmi de criptare sau chiar în diferite moduri de operare ale aceluiași algoritm, blocurile pot fi criptate independent unul de celălalt sau „cu înlănțuire” - atunci când rezultatul criptării blocului curent de date depinde de valoarea blocului anterior sau pe rezultatul criptării blocului anterior.
  • Criptare în flux- necesar, în primul rând, în cazurile în care informațiile nu pot fi împărțite în blocuri - să zicem, un anumit flux de date, fiecare caracter al cărui caracter trebuie să fie criptat și trimis undeva, fără a aștepta datele rămase suficiente pentru a forma blocul. Prin urmare, algoritmii de criptare a fluxului criptează datele bit cu bit sau caracter cu caracter. Deși merită spus că unele clasificări nu fac distincție între criptarea bloc și stream, având în vedere că criptarea stream este criptarea blocurilor de lungime unitară.

Să ne uităm la cum arată algoritmii de criptare simetrică din interior Structura algoritmilor de criptare

Marea majoritate a algoritmilor moderni de criptare funcționează într-un mod foarte asemănător: o anumită transformare este efectuată asupra textului cifrat folosind cheia de criptare, care se repetă de un anumit număr de ori (runde). În același timp, în funcție de tipul transformării repetate, algoritmii de criptare sunt de obicei împărțiți în mai multe categorii. Sunt și aici diverse clasificări, voi da una dintre ele. Deci, în funcție de structura lor, algoritmii de criptare sunt clasificați după cum urmează:

  1. Algoritmi bazați pe rețeaua Feistel.

    Rețeaua Feistel presupune împărțirea blocului de date procesat în mai multe subblocuri (cel mai adesea în două), dintre care unul este procesat de o anumită funcție f()și se suprapune cu unul sau mai multe alte subblocuri. În fig. Figura 2 prezintă cea mai comună structură a algoritmilor bazați pe rețeaua Feistel.

    Orez. 2. Structura algoritmilor bazati pe reteaua Feistel.

    Argument suplimentar al funcției f(), indicat în Fig. 2 cum Ki, numit cheie rotundă. Cheia rotundă este rezultatul procesării cheii de criptare prin procedura de extindere a cheii, a cărei sarcină este obținerea numărului necesar de chei Ki dintr-o cheie de criptare inițială de dimensiune relativ mică (în prezent, o dimensiune de 128 de biți este considerată suficientă pentru o cheie de criptare simetrică). În cele mai simple cazuri, procedura de extindere a cheii împarte pur și simplu cheia în mai multe fragmente, care sunt folosite alternativ în runde de criptare; Mult mai des, procedura de extindere a cheilor este destul de complexă, iar cheile Ki depind de valorile majorității biților din cheia de criptare originală.

    Suprapunerea unui subbloc procesat pe unul neprocesat se face cel mai adesea folosind o operație XOR logică (așa cum se arată în Fig. 2). Destul de des, în loc de XOR, aici este folosită adăugarea modulo 2n, Unde n- dimensiunea subblocului în biți. După suprapunere, subblocurile sunt schimbate, adică în următoarea rundă a algoritmului, este procesat un alt subbloc de date.

    Această structură de algoritmi de criptare și-a primit numele de la Horst Feistel, unul dintre dezvoltatorii algoritmului de criptare Lucifer și algoritmul DES (Data Encryption Standard) dezvoltat pe baza ei, un fost standard de criptare din SUA (dar încă utilizat pe scară largă). Ambii acești algoritmi au o structură similară cu cea prezentată în Fig. 2. Printre alți algoritmi bazați pe rețeaua Feistel, putem cita ca exemplu standardul intern de criptare GOST 28147-89, precum și alți algoritmi foarte cunoscuți: RC5, Blowfish, TEA, CAST-128 etc.

    Majoritatea algoritmilor moderni de criptare se bazează pe rețeaua Feistel - datorită numeroaselor avantaje ale unei astfel de structuri, printre care sunt de remarcat următoarele:

    • Algoritmii bazati pe reteaua Feistel pot fi proiectati in asa fel incat acelasi cod algoritm sa poata fi folosit pentru criptare si decriptare - diferenta dintre aceste operatii nu poate fi decat in ordinea aplicarii cheilor Ki; Această proprietate a algoritmului este cea mai utilă atunci când este implementată în hardware sau pe platforme cu resurse limitate; Un exemplu de astfel de algoritm este GOST 28147-89.
  2. Algoritmii bazați pe rețeaua Feistel sunt cei mai studiati - unor astfel de algoritmi au fost dedicate o cantitate imensă de cercetări criptoanalitice, ceea ce reprezintă un avantaj incontestabil atât în ​​dezvoltarea algoritmului, cât și în analiza acestuia.

    Există, de asemenea, o structură mai complexă a rețelei Feistel, un exemplu al căruia este prezentat în Fig. 3.

    Orez. 3. Structura rețelei Feistel.

    Această structură se numește generalizat sau extins Rețeaua Feistel și este folosită mult mai puțin frecvent decât rețeaua tradițională Feistel. Un exemplu de astfel de rețea Feistel este algoritmul RC6.

  3. Bazat pe algoritmi rețele de permutare (Rețeaua SP- Rețea de substituție-permutare).

    Spre deosebire de rețeaua Feistel, rețelele SP procesează întregul bloc criptat într-o singură rundă. Procesarea datelor se reduce în principal la înlocuiri (când, de exemplu, un fragment dintr-o valoare de intrare este înlocuit cu un alt fragment în conformitate cu un tabel de înlocuire, care poate depinde de valoarea cheii Ki) și permutări în funcție de cheie Ki(o diagramă simplificată este prezentată în Fig. 4).

    Orez. 4. Rețea de substituție-permutare.

    Cu toate acestea, astfel de operațiuni sunt tipice și pentru alte tipuri de algoritmi de criptare, prin urmare, în opinia mea, denumirea de „rețea de substituție-permutare” este destul de arbitrară.

    Rețelele SP sunt mult mai puțin comune decât rețelele Feistel; Exemple de rețele SP includ algoritmii Serpent sau SAFER+.

  4. Algoritmi cu structura "pătrat"(Pătrat).

    Structura „pătrată” se caracterizează prin reprezentarea blocului de date criptat sub forma unei matrice bidimensionale de octeți. Transformările criptografice pot fi efectuate pe octeți individuali ai unei matrice, precum și pe rândurile sau coloanele acestuia.

    Structura algoritmului își ia numele de la algoritmul Square, care a fost dezvoltat în 1996 de Vincent Rijmen și Joan Daemen, viitorii autori ai algoritmului Rijndael, care a devenit noul standard de criptare AES din SUA după ce a câștigat o competiție deschisă. Algoritmul Rijndael are, de asemenea, o structură asemănătoare pătratului; De asemenea, exemplele includ algoritmul Shark (o dezvoltare anterioară a lui Ridgeman și Damen) și Crypton. Dezavantajul algoritmilor cu o structură „pătrată” este lipsa lor de cunoștințe, ceea ce nu a împiedicat algoritmul Rijndael să devină noul standard american.

    Orez. 5. Algoritmul Rijndael.

    În fig. Figura 5 prezintă un exemplu de operație pe un bloc de date realizată de algoritmul Rijndael.

  5. Algoritmi cu o structură non-standard, adică acei algoritmi care nu pot fi clasificați în niciunul dintre tipurile enumerate. Este clar că ingeniozitatea poate fi nelimitată, așa că este dificil să clasificăm toate opțiunile posibile pentru algoritmii de criptare. Un exemplu de algoritm cu structură non-standard este algoritmul FROG, care este unic în structura sa, în fiecare rundă din care doi octeți de date criptate sunt modificați conform unor reguli destul de complexe (vezi Fig. 6).

    Orez. 6. Modificarea a doi octeți de date criptate.

    Granițele stricte dintre structurile descrise mai sus nu sunt definite, așa că destul de des există algoritmi clasificați de diverși experți ca diferite tipuri de structuri. De exemplu, algoritmul CAST-256 este denumit de autorul său o rețea SP și mulți experți o numesc o rețea Feistel extinsă. Un alt exemplu este algoritmul HPC, numit de autorul său rețeaua Feistel, dar considerat de experți un algoritm cu o structură nestandard.



Publicații pe această temă