Criptare simetrică a datelor. Criptosisteme simetrice. Sistem criptografic cu cheie publică

Există două metodologii pentru procesarea informațiilor criptografice folosind chei - simetrică și asimetrică.

simetric (secret) o metodologie în care atât pentru criptare, cât și pentru decriptare, expeditorul și destinatarul folosesc aceeași cheie, a cărei utilizare au convenit înainte de începerea interacțiunii (Fig. 2.1). Dacă cheia nu a fost compromisă, decriptarea autentifică automat expeditorul, deoarece doar expeditorul are cheia cu care să cripteze informația și doar destinatarul are cheia cu care să decripteze informația. Deoarece expeditorul și destinatarul sunt singurele persoane care cunosc această cheie simetrică, dacă cheia este compromisă, va fi compromisă doar interacțiunea dintre acești doi utilizatori.

Orez. 2.1

Algoritmi criptare simetrică Ei folosesc chei care nu sunt foarte lungi și pot cripta rapid cantități mari de date.

Instrumentele disponibile astăzi care utilizează metodologia simetrică includ, de exemplu, rețelele de bancomate. Aceste sisteme sunt dezvoltări originale ale băncilor care le dețin și nu sunt de vânzare.

Dintre algoritmii de criptare simetrică, cel mai utilizat algoritm este Criptare DES(inventat de IBM), care este recomandat în sectoarele deschise ale economiei SUA. Acest algoritm a fost inițial condamnat la o durată de viață limitată, deoarece lungimea cheii era limitată la 56 de biți.

La începutul anului 1997 la algoritmul DES, care are o cheie pe 56 de biți, a fost contestată. Pe 17 iunie 1997, după 140 de zile, cheia a fost decriptată. Aceasta a însemnat moartea virtuală a DES ca standard de criptare. Într-adevăr, când, la începutul anului 1998, următoarea competiție pentru găsirea unei chei DES a reușit în doar 39 de zile, Institutul Național de Standarde al SUA (NIST) a anunțat un concurs pentru aprobarea noului standard AES (Advanced Encryption Standard). AES a devenit un algoritm simetric complet deschis, cu dimensiuni de cheie de 128, 192, 256 de biți.

Situația este agravată de faptul că, conform legislației SUA, exportul ca produse software Sunt permise sisteme de criptare cu o cheie de cel mult 128 de biți. Adică, atunci când cumpărați un sistem de criptare cu o cheie de 1024 sau 2048 sau mai mulți biți, trebuie să știți că atunci când cheia este schimbată, partea activă (în schimbare) va fi partea de 128 de biți a cheii. Sistemele de criptare simetrică au unul dezavantaj general, constând în complexitatea distribuției cheilor. Dacă cheia este interceptată de o terță parte, un astfel de sistem de protecție criptografică va fi compromis. Deci, la înlocuirea cheii, aceasta trebuie transmisă în mod confidențial participanților la procedurile de criptare. Evident, această metodă nu este potrivită atunci când trebuie să stabiliți conexiuni securizate cu mii sau mai mulți abonați la Internet. Problema principală este cum să generați și să transmiteți în siguranță cheile către participanții la interacțiune. Cum să instalați canal securizat transferul de informații între participanții la interacțiune pentru a transfera chei pe canale de comunicare nesecurizate? Lipsa unei metode sigure de schimb de chei limitează răspândirea tehnicilor de criptare simetrică pe Internet.

Au încercat să rezolve această problemă prin dezvoltare asimetric (deschis) metodologia de criptare. Criptează un document cu o cheie și îl decriptează cu alta. Fiecare participant la transmiterea de informații generează în mod independent două numere aleatorii(chei secrete și publice).

Cheia publică este trimisă canale deschise comunicare către un alt participant la procesul de criptoprotecție, dar cheia secretă este păstrată secretă.

Expeditorul criptează mesajul cheie publică destinatar, A Numai proprietarul cheii private o poate decripta(Fig. 2.2).

Orez. 2.2

Cheia publică nu trebuie să fie ascunsă. Indiferent cine știe cheia dată, deoarece este destinat doar criptării datelor. Această metodă este potrivită pentru aplicare largă. Dacă atribuiți fiecărui utilizator de pe Internet propria pereche de chei și publicați cheile publice ca numere în carte de telefoane, atunci aproape toată lumea va putea face schimb de mesaje criptate între ei. Arată ca o cutie cu două uși cu laturi diferite. Fiecare ușă are propria sa încuietoare. Documentul este plasat în cutie, blocat și deblocat pe cealaltă parte cu cheia destinatarului. Aceasta folosește teoria numerelor prime. Un astfel de algoritm protecţie criptografică numit RSA.

Toate criptosistemele asimetrice sunt supuse atacurilor de forță brută și, prin urmare, trebuie să utilizeze chei mult mai lungi decât cele utilizate în criptosistemele simetrice pentru a oferi un nivel echivalent de securitate. Acest lucru are un impact imediat asupra resurselor de calcul necesare pentru criptare. RSA a devenit un algoritm standard de cheie asimetrică utilizat de companii pentru semnătură digitală și criptare.

Sistemele de criptare simetrice și asimetrice au fiecare propriile avantaje și dezavantaje. Dezavantajele unui sistem de criptare simetric sunt dificultatea de a înlocui o cheie compromisă, iar dezavantajele unui sistem asimetric sunt viteza relativ scăzută de operare. În ceea ce privește puterea criptografică, o lungime a cheii de 128 de biți într-un sistem simetric corespunde unei chei de 2304 de biți într-un sistem asimetric.

În prezent, sistemele de criptare care utilizează un algoritm combinat au devenit larg răspândite, permițând utilizarea transferului deschis al cheilor de criptare (ca în RSA) la viteza mare de criptare inerentă în AES.

Pentru a evita viteza redusă a algoritmilor de criptare asimetrică, este generată o cheie simetrică temporară pentru fiecare mesaj. Mesajul este criptat folosind această cheie temporară de sesiune simetrică. Această cheie de sesiune este apoi criptată folosind cheia publică asimetrică a destinatarului și un algoritm de criptare asimetrică. Deoarece cheia de sesiune este mult mai scurtă decât mesajul în sine, timpul său de criptare va fi relativ scurt. După aceasta, această cheie de sesiune criptată, împreună cu mesajul criptat, este transmisă destinatarului (Fig. 2.3).

Orez. 2.3

Destinatarul folosește același algoritm de criptare asimetrică și cheia lor secretă pentru a decripta cheia de sesiune, iar cheia de sesiune rezultată este folosită pentru a decripta mesajul în sine (Figura 2.4).

Orez. 2.4

Sistemele criptografice cu cheie publică sunt în prezent utilizate pe scară largă în diverse protocoale de rețea, în special, în protocoalele TLS și predecesorul său SSL (subiacent HTTPS), în SSH. Folosit și în PGP, S/MIME.

Există un număr incredibil de declarații îndrăznețe care plutesc pe Internet, cum ar fi criptarea asimetrică mai bună decât criptarea simetrică, la fel ca și invers. Și adesea începătorii ascultă aceste cuvinte fără să înțeleagă cu adevărat ce înseamnă despre care vorbim. Se spunea că AES este cool sau, dimpotrivă, regulile RSA, și toată lumea a fost luată la valoarea nominală. Cu toate acestea, această abordare duce adesea la probleme atunci când, din cauza înțelegerii insuficiente a esenței problemei, sunt implementate părți complet inutile sau sistemul se dovedește a fi lipsit de apărare.

Prin urmare, în acest articol vă voi spune minimul de bază pe care un începător ar trebui să-l cunoască. Nu va fi niciunul formule complexe sau justificări matematice, dar se va explica diferența dintre criptarea simetrică și cea asimetrică și se vor da și câteva puncte esențiale. Dar mai întâi lucrurile.

Criptare simetrică

Criptarea simetrică folosește o singură parolă (sau așa cum este numită și cheie). Să vedem cum se întâmplă totul. Sunt cateva algoritm matematic criptare, care primește o parolă și text ca intrare. Rezultatul este text criptat. Pentru a obține textul original, se folosește aceeași parolă, dar cu un algoritm de decriptare (uneori poate fi același).

Cu alte cuvinte, de îndată ce cineva află această parolă, securitatea este imediat ruptă. Prin urmare, dacă se utilizează criptarea simetrică, ar trebui să se acorde o atenție considerabilă problemei creării și menținerii securității parolei în sine. Nu trebuie transmisă către formă deschisă, nu contează dacă este o rețea sau o bucată de hârtie atașată la monitor. Parola trebuie să fie suficient de complexă încât să nu poată fi obținută prin simplă forță brută. Dacă parola este folosită de mai multe persoane, trebuie gândită metoda sigura distribuția acestuia, precum și un sistem de alertă în cazul în care parola devine cunoscută altcuiva.

În ciuda limitărilor sale, criptarea simetrică este utilizată pe scară largă. În principal datorită ușurinței de înțelegere a întregului proces (o singură parolă) și încărcăturii tehnice (de obicei astfel de algoritmi sunt rapidi).

Criptare asimetrică

Criptarea asimetrică folosește două parole - una deschisă (publică) și una privată (secretă). Deschideți parola este trimis tuturor oamenilor, în timp ce parola privată rămâne pe partea serverului sau a altui receptor. Mai mult decât atât, numele sunt adesea condiționate, deoarece un mesaj criptat cu una dintre chei poate fi decriptat doar folosind o altă cheie. Cu alte cuvinte, cheile sunt echivalente în acest sens.

Astfel de algoritmi de criptare permit ca parola (cheia) să fie distribuită liber în rețea, deoarece fără o a doua cheie este imposibil să obțineți mesajul original. Pe baza acestui principiu Protocolul SSL, ceea ce îl face ușor de instalat conexiune sigură cu utilizatorii datorită faptului că cheie privată(parola) este stocată numai pe partea serverului. Dacă observi, mesajul „ conexiune nesigură" când deschideți un site cu prefixul https. Aceasta înseamnă că este foarte posibil ca cheia privată să fi fost compromisă de mult timp și să fie cunoscută atacatorilor. Prin urmare, o astfel de conexiune sigură poate să nu fie sigură.

În cazul criptării asimetrice, aceasta devine oarecum mai simplă în ceea ce privește stocarea parolelor, deoarece cheia secretă nu trebuie transferată nimănui. Este suficient ca o singură persoană sau server să o știe. De asemenea, problema spargerii unei parole devine mai ușoară, deoarece serverul poate schimba oricând perechea de chei și poate trimite parola publică creată tuturor.

Cu toate acestea, criptarea asimetrică este mai „grea”, cu alte cuvinte, necesită mai multe resurse computerizate. Există, de asemenea, restricții asupra procesului de generare a cheilor în sine (încă trebuie selectate). Prin urmare, în practică, criptarea asimetrică este de obicei utilizată numai pentru autentificarea și identificarea utilizatorilor (de exemplu, conectarea la un site web) sau pentru a crea o cheie de sesiune pentru criptarea simetrică ( O parolă temporară pentru schimbul de date între utilizator și server) sau pentru crearea de semnături digitale care sunt criptate cu o cheie secretă. După cum probabil ați înțeles deja, în acest din urmă caz Oricine poate verifica o astfel de semnătură folosind o cheie publică disponibilă public.

Puncte importante despre criptarea simetrică și asimetrică

Cea mai importantă diferență între criptarea simetrică și cea asimetrică este abordarea lor. Prin urmare, atunci când auziți sau citiți un articol despre comparația lor de genul „acest algoritm este mai bun” fără a menționa specificul (anumite condiții și sarcini), puteți începe în siguranță să faceți alte lucruri, deoarece aceasta este o activitate foarte inutilă similară dezbaterii „Care este mai bine? Un tanc sau o navă cu aburi?". Fără precizări, nici una, nici alta. Cu toate acestea, există Puncte importante, care merită cunoscute:

1. Algoritmul simetric este bun pentru transmisie volume mari date criptate. Un algoritm asimetric, toate celelalte lucruri fiind egale, va fi semnificativ mai lent. În plus, pentru a organiza schimbul de date folosind un algoritm asimetric, fie ambele părți trebuie să cunoască cheia publică și cheia privată, fie trebuie să existe două astfel de perechi (câte o pereche pentru fiecare parte).

2. Criptarea asimetrică vă permite să începeți o conexiune sigură fără niciun efort din partea utilizatorului. Algoritmul simetric presupune că utilizatorul trebuie să „descopere cumva parola”. Cu toate acestea, merită să înțelegeți că algoritmii asimetrici, de asemenea, nu oferă securitate 100%. De exemplu, ei sunt susceptibili la atacuri de tip om-in-the-middle. Esența acestuia din urmă este că un computer este instalat între dvs. și server, care vă trimite cheia publică și utilizează cheia publică a serverului pentru a transfera date de la dvs.

3. Din punctul de vedere al piratarii (compromiterii) unei parole, algoritmul asimetric este mai ușor, deoarece serverul trebuie doar să schimbe o pereche de chei și să o trimită pe cea creată cheie publică. În cazul criptării simetrice, se pune întrebarea cum se transmite următoarea parolă. Cu toate acestea, aceste restricții sunt ocolite, de exemplu, de ambele părți cheile sunt generate constant conform aceluiași algoritm, apoi întrebarea devine despre păstrarea secretului acestui algoritm.

4. Algoritmii simetrici se construiesc de obicei pe baza unor blocuri cu functii matematice transformări. Prin urmare, este mai ușor să modificați astfel de algoritmi. Algoritmii asimetrici sunt de obicei construiți pe unele probleme matematice, de exemplu. RSA este construit pe problema exponentiatiei si modulo. Prin urmare, sunt aproape imposibil sau foarte greu de modificat.

5. Algoritmii asimetrici sunt de obicei folosiți împreună cu cei simetrici. Se întâmplă aproximativ după cum urmează. Folosind un algoritm asimetric, o cheie de sesiune creată de utilizator pentru criptarea simetrică este trimisă către server, după care schimbul de date are loc folosind un algoritm simetric. Ordinea se poate schimba parțial sau cheia poate fi formată puțin diferit, dar sensul este aproximativ același.

6. Crearea cheilor (parole) securizate în algoritmii asimetrici este o chestiune foarte dificilă, spre deosebire de algoritmii simetrici, unde este suficient să se formeze cheia conform regulilor de generare a parolelor securizate (cifre, litere, majuscule etc.). Cu toate acestea, faptul că parola secreta Numai serverul știe, ceea ce facilitează păstrarea cheii în siguranță.

1Sistemele de criptare simetrică sunt sisteme în care aceeași cheie criptografică este utilizată pentru criptare și decriptare. Înainte de inventarea schemei de criptare asimetrică, singura metodă care exista a fost criptarea simetrică. Cheia algoritmului trebuie ținută secretă de ambele părți. Algoritmul de criptare este selectat de către părți înainte de începerea schimbului de mesaje.

2 Schimbul de informații se realizează în trei etape:

1) expeditorul transferă cheia către destinatar (într-o rețea cu mai mulți abonați, fiecare pereche de abonați trebuie să aibă o cheie proprie, diferită de cheile altor perechi);

2) expeditorul, folosind cheia, criptează mesajul care este trimis destinatarului;

3) destinatarul primește mesajul și îl decriptează.

Dacă se folosește o cheie unică pentru fiecare zi și pentru fiecare sesiune de comunicare, acest lucru va crește securitatea sistemului.

Algoritmii de criptare asimetrică (sau criptografia cu cheie publică) folosesc o cheie (publică) pentru a cripta informațiile și alta (secretă) pentru a le decripta. Aceste chei sunt diferite și nu pot fi derivate unele de altele.

Schema de schimb de informații este următoarea:

Destinatarul calculează cheile publice și private, păstrează secretul cheii secrete și pune la dispoziție cheia publică (informează expeditorul, un grup de utilizatori ai rețelei, publică);

Expeditorul, folosind cheia publică a destinatarului, criptează mesajul care este trimis destinatarului;

Destinatarul primește mesajul și îl decriptează folosind cheia sa privată.

3 Criptarea simetrică implică utilizarea aceleiași chei atât pentru criptare, cât și pentru decriptare. Două cerințe principale se aplică algoritmilor simetrici: pierderea completă a tuturor tiparelor statistice din obiectul de criptare și lipsa liniarității. Se obișnuiește să se împartă sistemele simetrice în bloc și flux. În sistemele bloc, datele sursă sunt împărțite în blocuri și apoi transformate folosind o cheie.

În sistemele de streaming, este generată o anumită secvență (gama de ieșire), care este ulterior suprapusă mesajului în sine, iar criptarea datelor are loc într-un flux pe măsură ce gama este generată.

4 De obicei, criptarea simetrică utilizează o combinație complexă și în mai multe etape de substituții și permutări ale datelor originale și pot exista multe etape (pase), iar fiecare dintre ele trebuie să corespundă unei „chei de acces”. Operația de înlocuire îndeplinește prima cerință a unui cifru simetric, scăpând de orice statistică prin amestecarea biților de mesaj conform unei anumite legi specificate. Permutarea este necesară pentru a îndeplini a doua cerință - pentru a face algoritmul neliniar. Acest lucru se realizează prin înlocuirea unei anumite părți a unui mesaj de o dimensiune dată cu o valoare standard prin accesarea matricei originale.

5 În sistemele de comunicații guvernamentale și militare, se folosesc doar algoritmi simetrici, deoarece nu există o justificare strict matematică pentru securitatea sistemelor cu cheie publică, așa cum nu s-a dovedit contrariul. Această figură prezintă o diagramă a funcționării sistemului de criptare în funcționarea tehnologiei GSM

6 Acest tabel prezintă principalele caracteristici ale algoritmilor de criptare compoziți

7 Inițiativa de dezvoltare a AES aparține Institutului Național de Standarde al SUA - NIST. Scopul principal a fost crearea unui standard federal american care să descrie algoritmul de criptare folosit pentru a proteja informațiile atât în ​​sectorul public, cât și în cel privat. AES este un algoritm de criptare bloc simetric cu lungime variabilă bloc și lungime variabilă a cheii.

8 IDEA (International Data Encryption Algorithm) este un algoritm de criptare simetrică în bloc dezvoltat de Xuejia Lai și James Massey de la Institutul Federal de Tehnologie Elvețian. IDEA este unul dintre câțiva algoritmi criptografici simetrici care au fost inițial menționați să înlocuiască DES. IDEA este un algoritm de bloc care utilizează o cheie de 128 de biți pentru a cripta datele în blocuri de 64 de biți. Scopul dezvoltării IDEA a fost de a crea un algoritm criptografic relativ puternic, cu o implementare destul de simplă.

9. În țara noastră, tehnologia descrisă în GOST 28147-89 „Sisteme de procesare a informațiilor. Protecție criptografică. Algoritm de conversie criptografică” este utilizată ca standard. Acest GOST a fost adoptat în 1989 și nu s-a schimbat de atunci. Algoritmul de criptare a fost dezvoltat de KGB la sfârșitul anilor 70, cu toate acestea, a fost creat cu o „marjă de siguranță” destul de mare. În acest parametru, a fost un ordin de mărime superior DES-ului american, care a fost înlocuit mai întâi cu triplu și apoi cu AES. Astfel, astăzi puterea criptografică a standardului rus satisface pe deplin toate cerințele moderne.

10 Să trecem la conceptul de putere criptografică (sau putere criptografică) - capacitatea unui algoritm criptografic de a rezista criptoanalizei. Un algoritm securizat este unul care, pentru un atac de succes, necesită ca inamicul să aibă resurse de calcul de neatins, un volum de neatins de mesaje interceptate deschise și criptate sau un astfel de timp de divulgare încât, după expirarea acestuia, informațiile protejate să nu mai fie relevante etc. În cele mai multe cazuri, puterea criptografică nu poate fi determinată matematic, se poate dovedi doar vulnerabilitățile unui algoritm criptografic. Există criptosisteme destul de sigure. Vernam Cipher (în engleză Verrnam Cipher, un alt nume pentru One-time pad - one-time pad scheme) este un sistem de criptare simetrică propus pentru prima dată în 1882 de F. Millero și reinventat în 1917 de către angajatul AT&T Gilbert Vernam

Un sistem de criptare simetrică utilizează aceeași cheie pentru a cripta și decripta informațiile. Aceasta înseamnă că oricine are acces la cheia de criptare poate decripta mesajul. Pentru a preveni dezvăluirea neautorizată a informațiilor criptate, toate cheile de criptare din sistemele cripto simetrice trebuie păstrate secrete. Acesta este motivul pentru care criptosistemele simetrice sunt numite criptosisteme cu cheie secretă — cheia de criptare trebuie să fie accesibilă numai celor cărora le este destinat mesajul. Criptosisteme simetrice numite și sisteme criptografice cu o singură cheie. Diagrama unui criptosistem de criptare simetrică este prezentată în Fig. 4.3.

Orez. 4.3. Sistem de criptare simetric al criptosistemului

Aceste criptosisteme sunt cele mai caracterizate de mare viteză criptarea, iar cu ajutorul acestora asigură atât confidențialitatea și autenticitatea, cât și integritatea informațiilor transmise.

Confidențialitatea transferului de informații folosind un sistem criptografic simetric depinde de puterea cifrului și de asigurarea confidențialității cheii de criptare. De obicei, cheia de criptare este un fișier sau o matrice de date și este stocată pe un mediu de cheie personală, cum ar fi o dischetă sau un card inteligent; Este obligatoriu să se ia măsuri pentru a se asigura că mass-media cheie personală nu este accesibilă pentru nimeni, altul decât proprietarul său.

Autenticitatea este asigurată datorită faptului că fără decriptare prealabilă este aproape imposibil să se efectueze modificări semantice și falsificare criptografică mesaj privat. Un mesaj fals nu poate fi criptat corect fără a cunoaște cheia secretă.

Integritatea datelor este asigurată prin atașarea la datele transmise cod special(imitoprefixe), generate folosind o cheie secretă. Prefixul de imitație este un tip de sumă de control, adică o caracteristică de referință a unui mesaj față de care se verifică integritatea acestuia din urmă. Algoritmul de generare a unui prefix de imitație trebuie să asigure dependența acestuia, conform unei legi criptografice complexe, de fiecare bit al mesajului. Integritatea mesajului este verificată de către destinatarul mesajului prin generarea, cu ajutorul unei chei secrete, a unui prefix de imitație corespunzător mesajului primit și comparându-l cu valoarea primită a prefixului de imitație. Dacă există o potrivire, se ajunge la concluzia că informația nu a fost modificată pe drumul de la expeditor la destinatar.



Criptarea simetrică este ideală pentru criptarea informațiilor „pentru sine”, de exemplu pentru a preveni acces neautorizat la ea în lipsa proprietarului. Aceasta poate fi fie criptarea de arhivă a fișierelor selectate, fie criptarea transparentă (automată) a unităților logice sau fizice întregi.

Având o viteză mare de criptare, sistemele cripto cu o singură cheie permit rezolvarea multor probleme importante de securitate a informațiilor. in orice caz utilizare independentă criptosisteme simetrice în retele de calculatoare ridică problema distribuirii cheilor de criptare între utilizatori.

Înainte de a începe să schimbați date criptate, trebuie să faceți schimb de chei secrete cu toți destinatarii. Transferul cheii secrete a unui criptosistem simetric nu poate fi efectuat pe canale de comunicații publice; cheia secretă trebuie transferată expeditorului și destinatarului printr-un canal securizat.

Există implementări de algoritmi de criptare simetrică pentru criptarea datelor abonaților - adică pentru trimiterea de informații criptate către abonat, de exemplu, prin Internet. Utilizarea unei chei pentru toți abonații unei astfel de rețele criptografice este inacceptabilă din motive de securitate. Într-adevăr, dacă cheia este compromisă (pierdută, furată), fluxul de documente al tuturor abonaților va fi în pericol. În acest caz, poate fi utilizată o matrice cheie (Fig. 4.4).

Matricea cheilor este un tabel care conține cheile conexiunii pe perechi a abonaților. Fiecare element al tabelului este destinat să conecteze abonații iȘi jși este disponibil doar pentru acești doi abonați. În consecință, pentru toate elementele matricei cheie se respectă egalitatea

. (4.3)

Fig.4.4. Matricea cheii

Fiecare i Rândul --lea al matricei reprezintă un set de chei pentru un anumit abonat i pentru a comunica cu ceilalți N- 1 abonat. Seturile de chei (seturile de rețea) sunt distribuite între toți abonații rețelei criptografice. Similar cu cele de mai sus, seturile de rețea trebuie distribuite prin canale securizate comunicare sau din mână în mână.



Trăsătură caracteristică algoritmi criptografici simetrici este că în cursul activității lor transformă un bloc de informații de intrare de o lungime fixă ​​și obțin un bloc rezultat de aceeași dimensiune, dar inaccesibil pentru citire de către terți care nu dețin cheia. Schema de funcționare a unui cifru bloc simetric poate fi descrisă de funcții

Unde M– bloc de date original (deschis); CU– bloc de date criptat.

Cheie LA este un parametru al criptoalgoritmului bloc simetric și reprezintă un bloc informație binară marime fixa. Original Mși criptate CU blocurile de date au și o lățime fixă, egală între ele, dar nu neapărat egal cu lungimea cheie LA.

Cifrurile bloc sunt baza pe care sunt implementate aproape toate criptosistemele simetrice. Criptosistemele simetrice permit codificarea și decodificarea fișierelor de lungime arbitrară. Aproape toți algoritmii folosesc un anumit set de transformări matematice reversibile pentru transformări.

Tehnica de creare a lanțurilor de octeți criptați cu algoritmi bloc le permite să cripteze pachete de informații de lungime nelimitată. Lipsa corelației statistice între biții fluxului de ieșire a cifrului bloc este utilizată pentru a calcula sume de control pachete de date și hashing parole.

Un algoritm criptografic este considerat ideal de puternic dacă citirea unui bloc de date criptat necesită căutarea prin toate cheile posibile până când mesajul decriptat are sens. În general, puterea unui cifru bloc depinde doar de lungimea cheii și crește exponențial odată cu creșterea sa.

Pentru a obține coduri bloc puternice, utilizați două principii generale:

¨ difuziune– este răspândirea influenței unui caracter de text simplu asupra mai multor caractere de text cifrat, ceea ce face posibilă ascunderea proprietăților statistice ale textului simplu.

¨ amestecarea– utilizarea transformărilor de criptare care complică restabilirea relației dintre proprietățile statistice ale textului simplu și ale textului cifrat.

Cu toate acestea, cifrul nu numai că ar trebui să facă dificilă spargerea, ci și să ofere ușurință în criptare și decriptare dacă cheia secretă este cunoscută de utilizator.

O modalitate obișnuită de a obține efecte de împrăștiere și amestecare este utilizarea unui cifru compus, adică unul care poate fi implementat ca o secvență cifruri simple, fiecare dintre acestea contribuind la o dispersie și amestecare generală semnificativă.

În cifrurile compuse, permutările și substituțiile simple sunt cel mai adesea folosite ca cifruri simple. Permutarea pur și simplu amestecă caracterele text simplu, cu tipul specific de amestecare determinat de cheia secretă. În substituție, fiecare caracter text simplu este înlocuit cu un alt caracter din același alfabet, iar tipul specific de substituție este, de asemenea, determinat de cheia secretă. Trebuie remarcat faptul că într-un cifru bloc modern, blocurile de text simplu și de text cifrat sunt secvențe binare lungi de obicei 64 sau 128 de biți. Cu o lungime de 64 de biți, fiecare bloc poate lua 2 64 de valori. Prin urmare, substituțiile sunt efectuate într-un alfabet foarte mare care conține până la 2 64 ~ 10 19 „caractere”.

Alternând în mod repetat permutările și substituțiile simple, controlate de o cheie secretă suficient de lungă, se poate obține un cifr puternic, cu o bună împrăștiere și amestecare.

Toate acțiunile efectuate de criptoalgoritmul bloc asupra datelor se bazează pe faptul că blocul convertit poate fi reprezentat ca un număr întreg nenegativ din intervalul corespunzător capacității sale de biți. De exemplu, un bloc de date pe 32 de biți poate fi interpretat ca un număr în intervalul 0...4294 967 295. În plus, un bloc a cărui lățime de biți este o „putere a doi” poate fi interpretat ca o concatenare a mai multor numere independente nenegative dintr-un interval mai mic (menționat mai sus blocul de 32 de biți poate fi reprezentat și ca o concatenare a două numere independente de 16 biți din intervalul 0...65535 sau ca o concatenare a patru numere independente de 8 biți din intervalul 0...255).

Pe aceste numere, criptoalgoritmul bloc efectuează acțiunile enumerate în Tabelul 1 conform unei anumite scheme. 4.1.

Tabelul 4.1. Acțiuni efectuate de criptoalgoritmi asupra numerelor

Ca parametru V pentru oricare dintre aceste transformări pot fi utilizate:

¨ număr fix (de exemplu, X"= X + 125);

¨ numărul obţinut din cheie (de exemplu, X"= X + F(K));

¨ un număr obţinut din partea independentă a blocului (de exemplu, X 2" = X 2 + F(X 1)).

Secvența operațiunilor efectuate pe un bloc, combinații ale opțiunilor de mai sus Vși funcțiile în sine F si machiaza trăsături distinctive criptoalgoritm specific bloc simetric.

O trăsătură caracteristică a algoritmilor bloc este utilizarea repetată și indirectă a materialului cheie. Acest lucru este determinat în primul rând de cerința că decodarea inversă este imposibilă în ceea ce privește cheia atunci când originalul și textele cifrate sunt cunoscute. Pentru a rezolva această problemă, transformările de mai sus folosesc cel mai adesea nu valoarea cheie în sine sau partea sa, ci unele, uneori ireversibile, funcție a materialului cheie. Mai mult, în astfel de transformări același bloc sau element cheie este utilizat în mod repetat. Aceasta permite, dacă este îndeplinită condiția de reversibilitate a funcției în raport cu cantitatea, X faceți funcția ireversibilă în raport cu cheia LA.

Criptosistemele simetrice sunt înțelese ca sisteme în care aceeași cheie este folosită pentru a cripta și decripta mesajele (Fig. 9.1).

Întreaga varietate de sisteme simetrice se bazează pe următoarele clase de bază:

Substituții mono și multi-alfabetice;

Rearanjamente;

Cifre bloc;

Gumarea.

Înlocuiri

În substituțiile directe, fiecare caracter din textul sursă este înlocuit cu unul sau mai multe caractere. Una dintre subclasele importante de substituții directe este substituții monoalfabetice, în care se stabilește o corespondență unu-la-unu între caracterul e i al alfabetului original și caracterul corespunzător c j al textului cifrat. Toate metodele de substituție monoalfabetică pot fi reprezentate ca transformări numerice ale literelor din textul sursă, considerate numere, folosind următoarea formulă:

c ≡ (a*e +s) mod K , (5.1)

unde a este coeficientul zecimal; s – coeficientul de deplasare; e – codul literei textului sursă; c – codul literei criptate; K – lungimea alfabetului; mod este operația de calculare a restului de împărțire a expresiei în paranteze la modulul K.

Exemplu. Cifrul Cezarului

Să luăm în considerare criptarea într-un alfabet format din 26 de litere latine și un caracter spațiu (spațiul va fi reprezentat de semnul #). Atribuim codul 0 semnului #, codul 1 literei A, codul 2 B, codul 26 literei Z.

Hai sa luam următorii parametri: a = 1 s = 2 K = 27

Formula de criptare va lua forma

c ≡ (e + 2) mod 27 (5.2)

Alfabetul de intrare:

# A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Ieșire alfabet

B C D E F G H I J K L M N O P Q R S T U V W X Y Z # A

(Literele sunt deplasate cu două poziții: A-C B-D etc.)

Apoi mesajul original în formă criptată va arăta astfel:

Pentru decriptare (pentru cazul când a=1) utilizați următoarea formulă

e ≡ (K+ c - s) mod K (5.3)

Substituție polialfabetică simplă schimbă secvențial și ciclic alfabetele utilizate (în cazul precedent, un alfabet a fost folosit pentru criptare). Cu substituție m-alfabetică, semnul a 1 de la mesaj original este înlocuit cu un semn din alfabetul B 1, semnul a 2 cu un semn din alfabetul B 2, ... semnul a m cu un semn din alfabetul B m, semnul a m +1 cu un semn din alfabetul B 1, etc. Efectul utilizării substituției multialfabetice este că oferă mascarea statisticilor de frecvență ale limbii sursă, deoarece un anumit caracter din alfabetul A este convertit în mai multe caractere diferite din alfabetul cifru B.

Exemplu

Mesaj original: WE#NEED#SNOW

Cheie: SECURITYSECU

Cuvântul SECURITY este selectat ca cheie. Cuvântul este scris sub mesajul original, când literele cheii sunt epuizate, începem să repetăm ​​cuvântul până când literele mesajului original se epuizează. Fiecare literă a cheii (mai precis, codul acesteia) va specifica o schimbare în alfabetul sursă pentru a obține simbolul criptat. Îl folosim ca alfabet scrisoriși un semn # în loc de spațiu.

Cheie inițială Cipher

(W + S) mod 27 = (23 + 19) mod 27 = 15→O

(E + E) mod 27 = (5 + 5) mod 27 = 10 → J

(# + C) mod 27 = (0 + 3) mod 27 = 3 → C

Exercițiu

Vă sugerăm ca exercițiu să compuneți criptarea până la capăt.

Rearanjamente

Caracterele din textul sursă pot fi rearanjate după o anumită regulă.

Exemplul 1. Permutarea liniară

Să presupunem că trebuie să criptați următorul text:

ÎNCĂRCARE#PORTOCALE#BUTOI

Să împărțim textul în grupuri de lungime, de exemplu 4 caractere:

GRUZ ITe# APEL BSIN Y#BO CHKAH

Să stabilim următoarea regulă de permutare: „rearanjați grupuri de patru litere în ordinea 1-2-3-4 în ordinea 3-1-4-2”.

Obținem următorul text cifrat:

UGRZ EI#T EALP INS BYO# ACHK

cometariu

Dacă lungimea mesajului nu este un multiplu al lungimii grupului, atunci ultimul grup este completat cu simboluri (de exemplu, spații) până la lungimea necesară.

Scrierea textului original și apoi citirea textului cifrat se poate face pe diferite căi ale unora figură geometrică, de exemplu, un pătrat sau dreptunghi.

Exemplul 2. zăbrele Cardano

O grilă Cardano este o carte dreptunghiulară cu găuri, de obicei pătrate, care atunci când este plasată pe o coală de hârtie lasă la vedere doar unele părți din ea. Numărul de rânduri și coloane este par. Cardul este realizat în așa fel încât atunci când este rotit secvenţial, fiecare celulă a foii care stă la baza acesteia să fie ocupată. Dacă grila este pătrată, atunci o puteți roti succesiv în jurul centrului pătratului cu 90°.

Criptare:

VAVOCHS MUNOTI MYZHROE UXOY MDOSTO YASNTV

Descifrați mesajul rotind grătarul cu 90° în sensul acelor de ceasornic. Scrie-ți mesajul în pătrat, rând cu rând.

Numai metodele de înlocuire și permutare nu oferă puterea criptografică necesară. Prin urmare, ele sunt utilizate împreună, precum și utilizarea metodei aditive. În criptarea aditivă, textul original este mai întâi criptat folosind metoda de substituție, transformând fiecare literă într-un număr, iar apoi se adaugă un gamma secret (vezi mai jos) fiecărui număr - o secvență de numere pseudo-aleatorie.

Cifre bloc

Cifrurile bloc sunt o familie de transformări reversibile ale blocurilor (porțiuni cu lungime fixă) ale textului sursă.

Prin bloc de N biți înțelegem o succesiune de zerouri și uni de lungime N:

x = (x 0 , x 1 , …x N -1) . (5,5)

x în Z 2, N poate fi interpretat ca un vector și ca o reprezentare binară a unui număr întreg

(5.6)

Prin cifru bloc înțelegem elementul

Unde x = (x 0 , x 1 , …x N -1), y = (y 0 , y 1 , …y N -1)

Deși cifrurile bloc sunt un caz special de substituții, ele ar trebui luate în considerare în special pentru că, în primul rând, majoritatea cifrurilor simetrice utilizate în sistemele de transmisie de date sunt cifrurile bloc și, în al doilea rând, cifrurile bloc sunt descrise mai convenabil în formă algoritmică decât ca cele obișnuite. .

Cifruri în flux

Cifrurile de flux sunt un tip de gamma și convertesc textul simplu în text criptat, câte un bit. Un generator de secvențe de chei, uneori numit generator de chei de rulare, produce o secvență de biți k 1 , k 2 , … k N . Această secvență de taste este adăugată modulo 2 („exclusiv sau”) cu secvența de biți a textului sursă e 1, e 2, ..., e N:

Pe partea de recepție, textul cifrat este adăugat modulo 2 cu o secvență de taste identică pentru a obține textul original:

Stabilitatea sistemului depinde în întregime de structura internă a generatorului de secvențe de taste. Dacă generatorul produce o secvență cu o perioadă scurtă, atunci stabilitatea sistemului este scăzută. Dimpotrivă, dacă generatorul produce o secvență infinită de biți cu adevărat aleatori, atunci vom obține un pad unic cu durabilitate ideală.

Cifrurile de flux sunt cele mai potrivite pentru criptarea fluxurilor continue de date, de exemplu în rețelele de date.

  • Serghei Savenkov

    un fel de recenzie „scurtă”... de parcă s-ar grăbi undeva