Parametrii algoritmului de criptare. Tipuri de algoritmi de criptare

Metode moderne de criptare de bază

Dintre diferitele metode de criptare, se pot distinge următoarele metode principale:

  • - Algoritmi de înlocuire sau înlocuire - caracterele textului sursă sunt înlocuite cu caractere ale altui (sau aceluiași) alfabet în conformitate cu o schemă prestabilită, care va fi cheia acestui cifr. Separat, această metodă nu este practic utilizată în criptosistemele moderne datorită puterii sale criptografice extrem de scăzute.
  • - Algoritmi de rearanjare - caracterele textului original sunt schimbate după un anumit principiu, care este cheia secretă. Algoritmul de permutare în sine are o putere criptografică scăzută, dar este inclus ca element în multe criptosisteme moderne.
  • - Algoritmi Gamma - caracterele textului sursă sunt adăugate la caracterele unei anumite secvențe aleatoare.
  • - Algoritmi bazați pe transformări matematice complexe ale textului sursă după o anumită formulă. Mulți dintre ei folosesc probleme de matematică nerezolvate. De exemplu, algoritmul de criptare RSA utilizat pe scară largă pe Internet se bazează pe proprietăți numere prime.
  • - Metode combinate. Criptarea secvenţială a textului sursă folosind două sau mai multe metode.

Să aruncăm o privire mai atentă la algoritmii construiți pe transformări matematice complexe și metode combinate, care sunt cele mai frecvent utilizate pentru a proteja datele în sistemele informaționale moderne.

Algoritmi bazați pe transformări matematice complexe

algoritmul RSA

Algoritmul RSA (după primele litere ale numelor de familie ale creatorilor săi Rivest - Shamir - Adleman) se bazează pe proprietățile numerelor prime (și ale celor foarte mari). Numerele prime sunt acele numere care nu au alți divizori decât ele însele și unul. Iar numerele coprime sunt acele numere care nu au divizori comuni alții decât 1.

În primul rând, trebuie să alegeți două numere prime foarte mari (sunt necesare numere prime mari pentru a construi chei mari și puternice. De exemplu, programul Unix ssh-keygen generează implicit chei lungi de 1024 de biți). Ca rezultat al înmulțirii p și q, se determină parametrul n. Apoi este selectat un număr aleatoriu e și trebuie să fie relativ prim cu numărul (n) = (p - 1)*(q - 1). Se găsește un număr d pentru care relația este adevărată

(e*d) mod (n) = 1.

Mod este restul diviziunii, adică dacă e înmulțit cu d este împărțit cu (n), atunci restul ar trebui să fie 1. Cu alte cuvinte, numerele (e*d - 1) și (n) ar trebui să fie divizibile cu un număr întreg. .

Cheia publică este o pereche de numere e și n, iar cheia privată este d și n. La criptare, textul sursă este tratat ca o serie de numere și se efectuează o operație pe fiecare număr care trebuie să fie mai mic de n

C(i) = (M(i) e) mod n. (1)

Rezultatul este secvența C(i), care constituie criptotextul. Decodificarea informațiilor are loc conform formulei

M(i) = (C(i) d) mod n. (2)

După cum puteți vedea, decriptarea necesită cunoașterea cheii secrete.

Să ne uităm la un exemplu folosind numere mici. Fie p = 3, q ​​= 7. Atunci n = = p*q = 21. Să alegem e = 5. Din formula (d*5) mod 12 = 1 calculăm d = 17. Prin urmare, publicul cheia este 17, 21, cheia secretă este 5, 21.

Să criptăm secvența „2345”:

C 1 = 2 17 mod 21 = 11;

C 2 = 3 17 mod 21 = 12;

C 3 = 4 17 mod 21 = 16;

C 4 = 5 17 mod 21 = 17.

Criptotext - 11 12 16 17. Să verificăm decriptarea:

M 1 = 11 5 mod 21 = 2;

M 2 = 12 5 mod 21 = 3;

M 3 = 16 5 mod 21 = 4;

M 4 = 17 5 mod 21 = 5;

După cum puteți vedea, rezultatul a coincis cu textul simplu original.

Criptosistemul RSA este utilizat pe scară largă pe Internet. Atunci când utilizatorii se conectează la un server securizat folosind protocolul Secure Socket Layer (SSL), Secure Socket Layer este un protocol care garantează transmiterea securizată a datelor într-o rețea; combină un sistem criptografic cu cheie publicăși blochează criptarea datelor., instalează un certificat WebMoney pe PC sau se conectează la un server la distanță folosind Open SSH sau SecureShell, majoritatea nici măcar nu bănuiesc că toate aceste programe folosesc criptarea cu cheie publică folosind ideile algoritmului RSA.

Este acest sistem cu adevărat atât de fiabil?

De la crearea sa, RSA a fost supus constant atacurilor de forță brută (atac de forță brută) - un atac efectuat prin simpla încercare a tuturor cheilor posibile sau cele mai frecvente (parole) În al doilea caz, forța brută este destul de comună „atac de dicționar”. În 1978, autorii algoritmului au publicat un articol în care prezentau un șir criptat cu metoda pe care tocmai o inventaseră. Prima persoană care a descifrat mesajul a primit o recompensă de 100 USD, dar aceasta a necesitat împărțirea unui număr de 129 de cifre în doi factori. Aceasta a fost prima competiție care a spart RSA. Problema a fost rezolvată la numai 17 ani de la publicarea articolului.

Puterea criptografică a RSA se bazează pe presupunerea că este extrem de dificil, dacă nu imposibil, să se determine cheia privată din cheia publică. Pentru a face acest lucru, a fost necesar să se rezolve problema existenței divizorilor unui număr întreg imens. Până acum, nimeni nu a rezolvat-o folosind metode analitice, iar algoritmul RSA poate fi spart doar prin forță brută. Strict vorbind, afirmația că problema factorizării este dificilă și că ruperea sistemului RSA este dificilă nu este, de asemenea, dovedită.

Compania RSA (http://www.rsa.ru) organizează în mod regulat competiții pentru spargerea propriilor cifruri (și nu numai a propriilor sale). Competițiile anterioare au fost câștigate de organizația Distributed.net (http://www.distributed.net), care este o comunitate de voluntari pe Internet.

Membrii Distributed.net descarcă un mic program client pe computerul lor, care se conectează la serverul central și primește o bucată de date pentru calcule. Apoi toate datele sunt încărcate pe serverul central, iar clientul primește următorul bloc de informații inițiale. Și asta se întâmplă până când toate combinațiile sunt rezolvate. Utilizatorii, participanții la sistem, sunt uniți în echipe, iar site-ul menține evaluări atât pentru echipe, cât și pentru țări. De exemplu, Distributed.net, un participant la competiția de cracking RC5-64 (RSA block cipher using a 64-bit key), a reușit să o spargă după cinci ani (1.757 de zile). În acest timp, 327.856 de utilizatori au participat la proiect și au fost rezolvate peste 15.268 * 10 18 opțiuni cheie. S-a dovedit că expresia „unele lucruri sunt mai bine lăsate necitite” a fost criptată (nu fără umor). Recomandări generale conform cifrului RC5-64 sunt următoarele: algoritmul este suficient de puternic pentru nevoile de zi cu zi, dar nu este recomandat să criptați cu el datele care rămân secrete mai mult de cinci ani.”

Criptare probabilistică

Un tip de criptosistem cu cheie publică este criptarea probabilistică, dezvoltată de Shafi Golwasser și Silvio Minnelli. Esența sa este de a subordona algoritmul de criptare E modelelor probabilistice. Care sunt avantajele acestei abordări? De exemplu, în sistemul RSA, 0 și 1 nu sunt „mascate”. Această problemă este rezolvată cu succes de algoritmi probabilistici, deoarece potrivesc textul simplu M nu doar cu criptotextul C, ci cu un element din setul de criptotexte SM. Mai mult, fiecare element al acestui set este selectat cu o anumită probabilitate. Cu alte cuvinte, pentru orice text simplu M, rezultatul algoritmului E va fi o variabilă aleatorie. Poate părea că în acest caz va fi imposibil să decriptați informațiile, dar acest lucru nu este deloc adevărat. Pentru a face posibilă decriptarea, este necesar ca pentru diferite texte clare M 1 și M 2, mulțimile CM 1 și CM 2 să nu se intersecteze. De asemenea, aș dori să spun că algoritmii de criptare probabilistică sunt mai fiabili decât cei determiniști. În acest domeniu, cele mai comune sunt criptarea probabilistică bazată pe funcții RSA și criptosistemul El-Gamala.

Metode de criptare combinate

Una dintre cele mai importante cerințe pentru un sistem de criptare este puterea sa criptografică ridicată. Cu toate acestea, creșterea acestuia pentru orice metodă de criptare duce, de regulă, la o complicație semnificativă a procesului de criptare în sine și la o creștere a costurilor cu resursele (timp, hardware, reducere). lățime de bandă etc.), și ca urmare - timpul de funcționare al sistemelor criptografice.

Suficient mijloace eficiente creșterea puterii criptării este utilizarea combinată a mai multor metode diferite de criptare, de ex. criptarea secvențială a textului original folosind două sau mai multe metode.

După cum au arătat studiile, puterea criptării combinate nu este mai mică decât produsul punctelor forte ale metodelor utilizate.

Strict vorbind, puteți combina orice metode de criptare și în orice cantitate, dar în practică următoarele combinații sunt cele mai răspândite:

substituție + gamma;

permutare + gamma;

gamming + gamming;

substituție + permutare;

Un exemplu tipic de cifru combinat este standardul național de criptare a datelor din SUA (DES).

Standard criptografic DES

În 1973, Biroul Național de Standarde din SUA a început să dezvolte un program pentru a crea un standard pentru criptarea datelor computerizate. A fost anunțată o competiție între companiile de dezvoltare, care a fost câștigată de IBM, care în 1974 a prezentat un algoritm de criptare cunoscut sub numele de DES (Data Encryption Standard).

În acest algoritm, vectorii de intrare pe 64 de biți, numiți blocuri de text simplu, sunt convertiți în vectori de ieșire pe 64 de biți, numiți blocuri de text cifrat, folosind o cheie binară de 56 de biți K. Numărul de chei distincte ale algoritmului DES este 2 56 .

Algoritmul este implementat în 16 cicluri de criptare similare, în care ciclul i folosește cheia ciclică Ki, care este un eșantion generat algoritmic de 48 din cei 56 de biți ai cheii Ki, i = 1,2,...,16 .

Algoritmul oferă securitate ridicată, dar rezultatele recente au arătat că tehnologia actuală poate crea un dispozitiv de calcul care costă aproximativ 1 milion de dolari care poate sparge o cheie secretă folosind forța brută în medie în 3,5 ore.

Datorită dimensiunii mici a cheii, s-a decis să se utilizeze algoritmul DES pentru a închide informațiile comerciale. Implementarea practică a enumerarii tuturor cheilor în aceste condiții nu este fezabilă din punct de vedere economic, deoarece costurile enumerarii nu corespund valorii informațiilor ascunse de cifr.

Algoritmul DES a fost primul exemplu de producție și implementare pe scară largă a mijloacelor tehnice în domeniul securității informațiilor. Biroul Național de Standarde din SUA testează implementările hardware ale algoritmului DES propus de companiile de dezvoltare pe un banc de testare special. Numai după rezultatele testelor pozitive, producătorul primește un certificat de la Biroul Național de Standarde pentru dreptul de a-și vinde produsul. Până în prezent, câteva zeci de produse realizate pe diverse baze de elemente au fost certificate.

S-a atins viteza mare de criptare. Este de 45 Mbit/s în cele mai bune produse. Unele produse hardware costă mai puțin de 100 USD.

Principalele domenii de aplicare ale algoritmului DES:

stocarea datelor pe computere (criptare fișiere, parole);

autentificarea mesajelor (avand un mesaj si un grup de control, este usor de verificat autenticitatea mesajului;

sistem electronic de plată (pentru tranzacții cu o clientelă largă și între bănci);

Schimbul electronic de informații comerciale (schimbul de date între cumpărători, vânzător și bancher este protejat de modificări și interceptări.

Mai târziu, a apărut o modificare a DES - Triple DES („triplu DES” - deoarece criptează informațiile de trei ori cu algoritmul DES „obișnuit”), fără principalul dezavantaj al versiunii anterioare - o cheie scurtă; este de două ori mai lung aici. Dar, după cum s-a dovedit, Triple DES a moștenit alte slăbiciuni ale predecesorului său: lipsa capacităților de calcul paralel pentru criptare și viteză redusă.

GOST 28147-89

În 1989, URSS a dezvoltat un cifru bloc pentru utilizare ca standard de stat criptarea datelor. Dezvoltarea a fost acceptată și înregistrată ca GOST 28147-89. Algoritmul a fost introdus în 1990. Și deși domeniul de aplicare al acestui algoritm de criptare este încă în curs de clarificare, începutul implementării lui, în special în sistemul bancar, s-a făcut deja. Algoritmul este oarecum lent, dar are o putere criptografică foarte mare.

ÎN schiță generală GOST 28147-89 este similar cu DES. Diagrama bloc a algoritmului GOST diferă de diagrama bloc a algoritmului DES numai în absența unei permutări inițiale și a numărului de cicluri de criptare (32 în GOST față de 16 în algoritmul DES).

Cheia algoritmului GOST este o matrice formată din vectori cu 32 de dimensiuni X 1, X 2,...X 8. Cheia ciclică a ciclului i-lea Ki este egală cu Xs, unde seria de valori i de la 1 la 32 corespunde următoarelor serii de valori s:

1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1.

Cifrul GOST folosește o cheie de 256 de biți, iar volumul spațiului de cheie este de 2.256. Niciunul dintre sistemele informatice de uz general existente în prezent sau care se preconizează a fi implementat în viitorul apropiat nu poate fi folosit pentru a selecta o cheie în mai puțin de multe sute de ani. standard rusesc a fost proiectat cu o marjă mare, durabilitatea sa este cu multe ordine de mărime superioară standardului american DES, cu dimensiunea sa reală a cheii de 56 de biți și un volum al spațiului cheie de numai 2 56 , ceea ce în mod clar nu este suficient. Cheia algoritmului criptografic GOST are o lungime de 32 de octeți (256 de biți) și de patru ori mai mare decât cheia DES. Timpul necesar pentru a sorta toate cheile crește nu de patru ori, ci cu 256 32-8 = 256 24, ceea ce se traduce în cifre astronomice). În acest sens, DES poate fi de interes de cercetare sau științific mai degrabă decât de interes practic.

Concluzii privind utilizarea algoritmilor moderni de criptare

În prezent, cele trei standarde principale de criptare cel mai frecvent utilizate sunt:

  • - DES;
  • - GOST 28147-89 - o metodă domestică, caracterizată prin rezistență criptografică ridicată;
  • - RSA este un sistem în care criptarea și decriptarea sunt efectuate folosind chei diferite.

Dezavantajul RSA este viteza de criptare destul de scăzută, dar oferă o semnătură electronică personală bazată pe o cheie secretă unică pentru fiecare utilizator. Caracteristicile celor mai populare metode de criptare sunt prezentate în Tabelul 1.

Tabelul 1 Caracteristicile celor mai comune metode de criptare

Datorită faptului că funcția principală a software-ului nostru este criptarea datelor, ni se pun adesea întrebări cu privire la anumite aspecte ale criptografiei. Am decis să colectăm cele mai frecvente întrebări într-un singur document și am încercat să le oferim cele mai detaliate, dar în același timp, nu supraîncărcate cu răspunsuri de informații inutile.

1. Ce este criptografia?

Criptografia este o disciplină științifică teoretică, o ramură a matematicii care studiază transformarea informațiilor pentru a o proteja de acțiunile inteligente ale inamicului.

2. Ce este un algoritm de criptare?

Un algoritm de criptare este un set de reguli logice care determină procesul de conversie a informațiilor dintr-o stare deschisă într-una criptată (criptare) și, invers, dintr-o stare criptată într-una deschisă (decriptare).

Algoritmii de criptare apar ca rezultat al cercetărilor teoretice, atât de către oameni de știință individuali, cât și echipe științifice.

3. Cum protejează criptarea datele?

Principiul de bază al protecției datelor prin criptare este criptarea datelor. Pentru un străin, datele criptate arată ca „gunoaie de informații” - un set de caractere fără sens. Astfel, dacă informația ajunge în mâinile unui atacator sub formă criptată, pur și simplu nu o va putea folosi.

4. Care algoritm de criptare este cel mai puternic?

În principiu, orice algoritm de criptare propus de orice expert cunoscut în domeniul criptografiei este considerat puternic până la proba contrarie.

De regulă, toți algoritmii de criptare care apar recent sunt publicati pentru consumul public și sunt studiati cuprinzător în centre specializate de cercetare criptografică. Rezultatele unor astfel de studii sunt publicate și pentru consumul public.

5. Ce este o cheie de criptare?

O cheie de criptare este o secvență de biți aleatorie, pseudo-aleatorie sau special formată, care este un parametru variabil al algoritmului de criptare.

Cu alte cuvinte, dacă criptați aceleași informații cu același algoritm, dar cu chei diferite, rezultatele vor fi și ele diferite.

O cheie de criptare are o caracteristică esențială - lungimea sa, care este de obicei măsurată în biți.

6. Care sunt algoritmii de criptare?

Algoritmii de criptare sunt împărțiți în două clase mari - simetrice și asimetrice (sau nesimetrice).

Algoritmii de criptare simetrică folosesc aceeași cheie pentru a cripta informațiile și pentru a le decripta. În acest caz, cheia de criptare trebuie să fie secretă.

Algoritmii de criptare simetrică sunt de obicei ușor de implementat și nu necesită multe resurse de calcul pentru a funcționa. Cu toate acestea, inconvenientul unor astfel de algoritmi apare în cazurile în care, de exemplu, doi utilizatori trebuie să schimbe chei. În acest caz, utilizatorii fie trebuie să se întâlnească direct, fie să aibă un fel de canal sigur, protejat de interceptare, pentru trimiterea cheii, ceea ce nu este întotdeauna posibil.

Exemple de algoritmi de criptare simetrică sunt DES, RC4, RC5, AES, CAST.

Algoritmii de criptare asimetrică folosesc două chei - una pentru criptare și una pentru decriptare. În acest caz, vorbim despre o pereche de chei. O cheie a perechii poate fi publică (accesabilă pentru toată lumea), cealaltă poate fi secretă.

Algoritmii de criptare asimetrică sunt mai complex de implementat și mai pretențioși la resursele de calcul decât cei simetrici, cu toate acestea, problema schimbului de chei între doi utilizatori este mai ușor de rezolvat.

Fiecare utilizator își poate crea propria pereche de chei și poate trimite cheia publică abonatului său. Această cheie poate cripta doar datele; decriptarea necesită o cheie secretă, care este păstrată doar de proprietarul acesteia. Astfel, un atacator care obține o cheie publică nu îi va oferi nimic, deoarece îi este imposibil să decripteze datele criptate.

Exemple de algoritmi de criptare asimetrică sunt RSA, El-Gamal.

7. Cum sunt sparți algoritmii de criptare?

În știința criptografică există o subsecțiune - criptoanaliza, care studiază problemele ruperii algoritmilor de criptare, adică obținerea de informații deschise din informații criptate fără o cheie de criptare.

Există multe tehnici și tehnici diferite de criptoanaliza, dintre care majoritatea sunt prea complexe și lungi pentru a fi reproduse aici.

Singura metodă care merită menționată este metoda de enumerare directă a tuturor valorilor posibile ale cheilor de criptare (numită și metoda „forței brute”). Esența acestei metode este de a căuta prin toate valorile posibile ale cheii de criptare până când cheia dorită este selectată.

8. Care ar trebui să fie lungimea cheii de criptare?

Astăzi, pentru algoritmii de criptare simetrică, 128 de biți (16 octeți) este considerată o lungime suficientă a cheii de criptare. Pentru a enumera complet toate cheile posibile pe 128 de biți (atac de forță brută) într-un an, aveți nevoie de procesoare 4,2x1022 cu o capacitate de 256 de milioane de operațiuni de criptare pe secundă. Costul acestui număr de procesoare este de 3,5x1024 dolari SUA (conform lui Bruce Schneier, Applied Cryptography).

Există un proiect internațional distribuit.net, al cărui scop este de a uni utilizatorii de internet pentru a crea un supercomputer virtual distribuit care forță brute chei de criptare. Cel mai recent proiect de cracare a cheilor pe 64 de biți a fost finalizat în 1.757 de zile, a implicat peste trei sute de mii de utilizatori, iar puterea de calcul a tuturor computerelor din proiect a fost echivalentă cu aproape 50.000 de procesoare AMD Athlon XP cu o viteză de ceas de 2 GHz.

Trebuie avut în vedere că mărirea lungimii cheii de criptare cu un bit dublează numărul valorilor cheii și, în consecință, timpul de căutare. Adică, pe baza cifrelor de mai sus, în 1757 * 2 zile puteți sparge nu o cheie de 128 de biți, așa cum ar părea la prima vedere, ci doar una de 65 de biți.

9. Am auzit de chei de criptare de 1024 și chiar 2048 de biți, dar spuneți că 128 de biți sunt de ajuns. Ce înseamnă?

Așa este, cheile de criptare de 512, 1024 și 2048 de biți, și uneori mai lungi, sunt folosite în algoritmii de criptare asimetrică. Ei folosesc principii complet diferite față de algoritmii simetrici, astfel încât scalele cheilor de criptare sunt și ele diferite.

Răspunsul la această întrebare este cel mai păzit secret al serviciilor de informații ale oricărui stat. Din punct de vedere teoretic, este imposibil să citești date criptate folosind un algoritm cunoscut cu o cheie de lungime suficientă (vezi întrebările anterioare), totuși, cine știe ce se ascunde în spatele vălului secretelor de stat? Se poate dovedi că există unele tehnologii extraterestre cunoscute de guvern care pot fi folosite pentru a sparge orice cod :)

Singurul lucru care poate fi spus cu încredere este că nici un singur stat, nici un singur serviciu de informații nu va dezvălui acest secret și, chiar dacă este posibil să descifrezi cumva datele, nu va arăta niciodată acest lucru în niciun fel.

Pentru a ilustra această afirmație, poate fi dat un exemplu istoric. În timpul celui de-al Doilea Război Mondial, prim-ministrul britanic Winston Churchill, ca urmare a interceptării și descifrării mesajelor germane, a luat cunoștință de viitorul bombardament asupra orașului Coventry. În ciuda acestui fapt, el nu a luat nicio măsură pentru a împiedica inamicul să afle că informațiile britanice le-ar putea descifra mesajele. Drept urmare, în noaptea de 14-15 noiembrie 1940, Coventry a fost distrusă de aeronavele germane, ucigând număr mare civili. Astfel, pentru Churchill, costul dezvăluirii informațiilor despre care putea descifra mesajele germane a fost mai mare decât costul a câteva mii de vieți umane.

Evident, pentru politicienii moderni prețul unor astfel de informații este și mai mare, așa că nu vom afla nimic despre capacitățile serviciilor de informații moderne, nici explicit, nici indirect. Deci, chiar dacă răspunsul la această întrebare este da, probabil că această posibilitate nu se va manifesta.

Sursa: SecurIT

^ înapoi la început ^

De obicei, noi algoritmi de criptare sunt publicati pentru consumul public si studiati in centre de cercetare specializate. Rezultatele unor astfel de studii sunt publicate și pentru consumul public.

Algoritmi simetrici
Algoritmii de criptare sunt împărțiți în două clase mari: simetrice (AES, GOST, Blowfish, CAST, DES) și asimetrice (RSA, El-Gamal). Algoritmii de criptare simetrică folosesc aceeași cheie pentru a cripta informațiile și pentru a le decripta, în timp ce algoritmii asimetrici folosesc două chei - una pentru criptare și una pentru decriptare.

Dacă informațiile criptate trebuie transferate într-o altă locație, atunci trebuie să fie transferată și cheia de decriptare. Punctul slab aici este canalul de transmisie a datelor - dacă nu este sigur sau este accesat, atunci cheia de decriptare poate cădea în mâinile unui atacator. Sistemele bazate pe algoritmi asimetrici nu au acest dezavantaj. Deoarece fiecare participant într-un astfel de sistem are o pereche de chei: o cheie publică și una secretă.

Cheie de criptare
Aceasta este o secvență aleatorie sau special creată de biți dintr-o parolă, care este un parametru variabil al algoritmului de criptare.
Dacă criptați aceleași date cu același algoritm, dar cu chei diferite, rezultatele vor fi și ele diferite.

De obicei, în programele de criptare (WinRAR, Rohos etc.), cheia este creată dintr-o parolă specificată de utilizator.

Cheia de criptare vine în lungimi diferite, care sunt de obicei măsurate în biți. Pe măsură ce lungimea cheii crește, puterea teoretică a cifrului crește. În practică, acest lucru nu este întotdeauna adevărat.

În criptografie, mecanismul de criptare este considerat a fi o cantitate neclasificată, iar un atacator poate avea codul sursă complet al algoritmului de criptare, precum și textul cifrat (regula lui Kerkhoff). O altă presupunere care poate apărea este că un atacator poate cunoaște o parte din textul necriptat (plat).

Puterea algoritmului de criptare.
Algoritmul de criptare este considerat puternic până când se dovedește contrariul. Astfel, dacă un algoritm de criptare a fost publicat, există de mai bine de 5 ani și nu au fost găsite vulnerabilități serioase pentru acesta, putem presupune că puterea sa este potrivită pentru protejarea informațiilor clasificate.

Durabilitate teoretică și practică.
În 1949 K.E. Shannon a publicat articolul „Theory of Communications in Secret Systems”. Shannon a considerat puterea sistemelor criptografice ca fiind practică și teoretică. Concluzia privind puterea teoretică este încă pesimistă: lungimea cheii ar trebui să fie egală cu lungimea textului simplu.
Prin urmare, Shannon a luat în considerare și problema puterii practice a sistemelor criptografice. Este sistemul de încredere dacă atacatorul are timp și resurse de calcul limitate pentru a analiza mesajele interceptate?

De obicei, vulnerabilitățile se găsesc în programele care criptează datele folosind un anumit algoritm. În acest caz, programatorii fac o eroare în logica programului sau în protocolul criptografic, datorită căreia, studiind modul în care funcționează programul (la un nivel scăzut), pot obține în cele din urmă acces la informații secrete.

Hacking algoritmul de criptare
Un criptosistem este considerat a fi compromis dacă un atacator poate calcula cheia secretă și, de asemenea, poate realiza un algoritm de conversie echivalent cu criptoalgoritmul original. Și pentru ca acest algoritm să fie executabil în în timp real.

Criptologia are o subsecțiune - criptoanaliza, care studiază problemele hacking-ului sau falsificării mesajelor criptate. Există multe moduri și metode de criptoanaliza. Cea mai populară este metoda de căutare directă prin toate valorile posibile ale cheii de criptare (așa-numita metodă „forță brută”). Esența acestei metode este de a căuta prin toate valorile posibile ale cheii de criptare până când cheia dorită este selectată.

În practică, aceasta înseamnă că atacatorul trebuie:

  • Aveți la dispoziție un criptosistem (adică un program) și exemple de mesaje criptate.
  • Înțelegeți protocolul criptografic. Cu alte cuvinte, modul în care programul criptează datele.
  • Dezvoltați și implementați un algoritm de căutare cheie pentru acest criptosistem.

Cum să determinați dacă cheia este corectă sau nu?
Totul depinde de programul specific și de implementarea protocolului de criptare. De obicei, dacă după decriptare rezultatul este „gunoi”, atunci aceasta este o cheie incorectă. Și dacă textul este mai mult sau mai puțin semnificativ (acest lucru poate fi verificat), atunci Cheia este corectă.

Algoritmi de criptare
AES (Rijndael). În prezent, standardul federal de criptare din SUA.

Ce algoritm de criptare ar trebui să aleg pentru a proteja informațiile?

Aprobat ca standard de Departamentul de Comerț la 4 decembrie 2001. Decizia a intrat în vigoare din momentul publicării în Registrul Federal (12/06/01). O versiune de criptare cu doar o dimensiune de bloc de 128 de biți a fost adoptată ca standard.

GOST 28147-8. Standard Federația Rusă pentru criptare și protecția datelor. Inițial a avut un rating (OB sau SS - nu se știe exact), apoi ratingul a fost coborât succesiv, iar până când algoritmul a fost realizat oficial prin Standardul de stat al URSS în 1989, a fost eliminat. Algoritmul rămâne PAL (după cum știți, PAL nu este considerat o placă). În 1989 a devenit standardul oficial al URSS, iar mai târziu, după prăbușirea URSS, standardul federal al Federației Ruse.

Blowfish Schema complexă de generare a elementelor cheie complică semnificativ un atac cu forță brută asupra algoritmului, dar îl face nepotrivit pentru utilizarea în sistemele în care cheia se schimbă frecvent și cantități mici de date sunt criptate pe fiecare cheie.

Algoritmul este cel mai potrivit pentru sistemele în care cantități mari de date sunt criptate folosind aceeași cheie.

DES Standard federal de criptare din SUA 1977-2001. Adoptat ca standard federal al SUA în 1977. În decembrie 2001, și-a pierdut statutul din cauza introducerii unui nou standard.

CASTÎntr-un fel, un analog al DES.

www.codenet.ru/progr/alg/enc
Algoritmi de criptare, revizuire, informații, comparație.

http://www.enlight.ru/crypto
Materiale privind criptarea asimetrică, semnăturile digitale și alte sisteme criptografice „moderne”.

Alexandru Velikanov,
Olga Cheban,
Tesline-Service SRL.

Fostul bancher din Abu Dhabi, Mohammad Ghaith bin Mahah Al Mazroui, a dezvoltat un cod despre care susține că este imposibil de descifrat. Cifrul, numit Codul Abu Dhabi, se bazează pe un grup de simboluri inventate de însuși Al Mazrui. În codul său, fiecare literă este înlocuită cu un simbol special inventat, iar aceste simboluri nu aparțin niciunei limbi cunoscute din lume.

Ce algoritmi de criptare a datelor sunt mai siguri?

Dezvoltatorului i-a luat un an și jumătate să lucreze la cifrul, pe care Al Mazroui îl numește „complet nou”.

Potrivit entuziastului, oricine își poate crea propriul cod, iar complexitatea cifrului este determinată de lungimea cheii sale. Se crede că, în principiu, dacă ai dorința, anumite abilități și software adecvat, aproape fiecare, chiar și cel mai complex cifru poate fi spart.

Cu toate acestea, Al Mazrui asigură că creația sa este indestructibilă și este cel mai fiabil cifr din ziua de azi. „Este aproape imposibil să descifrezi un document codificat cu Codul Abu Dhabi”, este sigur Al Mazrouei.

Pentru a demonstra că are dreptate, bancherul i-a provocat pe toți criptografii, hackerii și criptografii remarcabili, îndemnându-i să încerce să-i spargă codul.

3. Kryptos este o sculptură pe care sculptorul american James Sanborn a instalat-o pe terenul sediului CIA din Langley, Virginia, în 1990. Mesajul criptat scris pe el încă nu poate fi descifrat.

4. Cod imprimat pe lingoul de aur chinezesc. Se presupune că șapte lingouri de aur au fost eliberate generalului Wang în Shanghai în 1933. Acestea conțin imagini, scriere chineză și unele mesaje criptate, inclusiv cu litere latine. Acestea pot conține certificate de autenticitate ale metalului emise de una dintre băncile din SUA.

Ce algoritm de criptare să alegeți în TrueCrypt

5. Criptograme Bale- trei mesaje criptate despre care se crede că conțin informații despre locul unde se află o comoară de două vagoane de aur, argint și pietre pretioase, îngropat în anii 1820 lângă Lynchburg, în comitatul Bedford, Virginia, de un grup de mineri de aur condus de Thomas Jefferson Bale. Prețul comorii, care nu a fost găsită până acum, în bani moderni, ar trebui să fie de aproximativ 30 de milioane de dolari. Misterul criptogramelor nu a fost încă rezolvat, în special, problema existenței reale a comorii rămâne controversată. Unul dintre mesaje a fost descifrat - descrie comoara în sine și oferă indicații generale despre locația sa. Literele rămase nedescoperite pot conține locația exactă a marcajului și o listă a proprietarilor comorii. (informatii detaliate)

6. Manuscrisul Voynich, care este adesea numită cea mai misterioasă carte din lume. Manuscrisul folosește un alfabet unic, are aproximativ 250 de pagini și include desene care înfățișează flori necunoscute, nimfe goale și simboluri astrologice. A apărut pentru prima dată la sfârșitul secolului al XVI-lea, când Sfântul Împărat Roman Rudolf al II-lea l-a cumpărat la Praga de la un comerciant necunoscut pentru 600 de ducați (aproximativ 3,5 kg de aur, astăzi peste 50 de mii de dolari). De la Rudolph al II-lea cartea a trecut la nobili și oameni de știință, iar la sfârșitul secolului al XVII-lea a dispărut. Manuscrisul a reapărut în jurul anului 1912, când a fost cumpărat de librarul american Wilfrid Voynich. După moartea sa, manuscrisul a fost donat Universității Yale. Omul de știință britanic Gordon Wragg crede că cartea este o păcăleală inteligentă. Textul conține caracteristici care nu sunt caracteristice niciunei limbi. Pe de altă parte, unele caracteristici, cum ar fi lungimea cuvintelor și modul în care literele și silabele sunt conectate, sunt similare cu cele existente în limbile reale. „Mulți oameni cred că este prea complicat să fii o farsă și ar fi nevoie de niște ani de alchimist nebun pentru a construi”, spune Rugg. Cu toate acestea, Rugg arată că o astfel de complexitate ar putea fi atinsă cu ușurință prin utilizarea unui dispozitiv de criptare inventat în jurul anului 1550, numit reticulul lui Cardan. În acest tabel cu simboluri, cuvintele sunt create prin mutarea unei cărți cu găuri tăiate în ea. Spațiile rămase în tabel au ca rezultat cuvinte de lungimi diferite. Suprapunând astfel de grilaje pe tabelul de silabe a manuscrisului, Rugg a creat un limbaj care împărtășește multe, dacă nu toate, caracteristicile limbajului manuscrisului. Potrivit acestuia, ar dura trei luni pentru a crea întreaga carte. (informații detaliate, Wikipedia)

7. Dorabella Cipher, compusă în 1897 de compozitorul britanic Sir Edward William Elgar. El a trimis o scrisoare în formă criptată în orașul Wolverhampton prietenei sale Dora Penny, fiica în vârstă de 22 de ani a lui Alfred Penny, rectorul Catedralei Sf. Petru. Acest cod rămâne nerezolvat.

8. Până de curând, lista a inclus și haocifrare, care nu a putut fi dezvăluit în timpul vieții creatorului său. Cifrul a fost inventat de John F. Byrne în 1918 și timp de aproape 40 de ani a încercat fără succes să intereseze autoritățile americane în el. Inventatorul a oferit o recompensă în numerar oricui putea să-și rezolve codul, dar, ca urmare, nimeni nu a aplicat pentru el.

Dar în mai 2010, membrii familiei lui Byrne i-au predat toate documentele rămase Muzeului Național de Criptografie din Maryland, ceea ce a dus la dezvăluirea algoritmului.

9. Cifrul D'Agapeyeff. În 1939, cartograful britanic de origine rusă Alexander D'Agapeyeff a publicat o carte despre elementele de bază ale criptografiei, Codes and Ciphers, în prima ediție a căreia a prezentat un cifr din propria sa invenție. Acest cod nu a fost inclus în edițiile ulterioare. Ulterior, D'Agapeyeff a recunoscut că a uitat algoritmul pentru spargerea acestui cifr. Se bănuiește că eșecurile care s-au întâmplat pe toți cei care au încercat să-și descifreze opera au fost cauzate de faptul că autorul a greșit la criptarea textului.

Dar în timpul nostru, există speranța că cifrul poate fi spart folosind metode moderne - de exemplu, un algoritm genetic.

10. Taman Shud. La 1 decembrie 1948, cadavrul unui bărbat a fost găsit pe coasta australiană la Somerton, lângă Adelaide, îmbrăcat într-un pulover și o haină, în ciuda unei zile de obicei fierbinți pentru clima australiană. Nu s-au găsit documente despre el. Încercările de a compara amprentele dinților și degetelor sale cu datele disponibile despre oamenii vii nu au dus la nimic. Un examen patologic a evidențiat un flux nenatural de sânge, care i-a umplut, în special, cavitatea abdominală, precum și o creștere. organele interne, dar nu au fost găsite substanțe străine în corpul său. Totodată, la gara a fost găsită o valiză care ar fi putut aparține defunctului. În valiză erau pantaloni cu un buzunar secret, în care au găsit o bucată de hârtie ruptă dintr-o carte pe care erau imprimate cuvinte. Taman Shud. Ancheta a stabilit că bucata de hârtie a fost ruptă dintr-o copie foarte rară a colecției „Rubai” a marelui poet persan Omar Khayyam. Cartea în sine a fost găsită pe bancheta din spate a unei mașini, lăsată descuiată. Pe coperta din spate a cărții erau cinci rânduri mâzgălite neglijent cu majuscule - sensul acestui mesaj nu putea fi descifrat. Până astăzi, această poveste rămâne unul dintre cele mai misterioase mistere ale Australiei.


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.
    Atunci când se folosește un algoritm de semnătură electronică criptografic puternic și cu stocarea și utilizarea corespunzătoare a cheii secrete (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 orice 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ă 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 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. Sub cuvântul „imposibil” în în acest caz, de obicei se înțelege că este imposibil de calculat î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 astfel:

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 de la o cheie de criptare inițială de o 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 operația 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. 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ă non-standard.

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). Amestecarea 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 de criptograme foarte scurte necesită căutarea printr-un număr mare de 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 se folosește o singură literă sau cuvânt. Această cheie oferă șirul sau șirurile de început 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 caractere 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
caracterele sunt amestecate astfel încât fiecare caracter să fie înlocuit cu un alt caracter 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. Cifrele 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. Este de fapt 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 unui PSP 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 stărilor 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 PRP, 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 ciphergrame 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.

Aproape toate metodele criptografice utilizate implică împărțirea mesajului în număr mare bucăți (sau caractere) de dimensiune fixă, fiecare dintre acestea fiind criptată separat, dacă nu independent. Acest lucru simplifică foarte mult sarcina de criptare, deoarece mesajele au de obicei lungimi diferite.

Există trei metode principale de criptare:: threading, blocare și utilizarea feedback-ului.

Sunt evidențiate următoarele patru trăsături caracteristice ale metodelor criptografice.

    Operații pe biți sau blocuri individuale.

    Dependența sau nedependența funcției de criptare de rezultatele criptării părților anterioare ale mesajului.

3. Dependența sau independența criptării caracterelor individuale ale mesajelor de poziția lor în text. De exemplu, cu criptarea fluxului, diverse semne mesajele sunt criptate în funcție de poziția lor în mesaj. Această proprietate se numește dependență pozițională sau independență a cifrului.

4. Simetria sau asimetria funcției de criptare. Această proprietate importantă definește diferența esențială dintre criptosistemele convenționale simetrice (cu o singură cheie) și criptosistemele asimetrice cu două chei (cheie publică). Principala diferență dintre cele două este că, într-un criptosistem asimetric, cunoașterea cheii de criptare (sau decriptare) nu este suficientă pentru a descoperi cheia de decriptare (sau de criptare) corespunzătoare.

Principalele caracteristici ale criptosistemelor

criptosisteme

Operațiuni cu

biți sau blocuri

Dependență/independență de semne

mesaje

Dependență/independență pozițională

Simetrie/

asimetrie

În linie

criptare

nu depinde

simetric

Bloc

criptare

nu depinde

nu depinde

simetric sau asimetric

Din revers

comunicare de la

text cifrat

biți sau blocuri

nu depinde

simetric

Într-un criptosistem care are proprietatea că funcția de criptare depinde de semnele mesajului, poate apărea propagarea erorilor. Dacă, de exemplu, o parte din textul cifrat este corupt în timpul transmisiei, atunci după decriptare textul simplu poate conține mai mulți biți corupti. Erorile de inserare și renunțare pot duce, de asemenea, la propagarea erorilor catastrofale în timpul decriptării.

Cifruri în flux. Criptarea fluxului constă în adăugarea biților de text simplu modulo 2 cu biții unei secvențe pseudo-aleatoare.

La beneficii Cifrurile de flux nu includ propagarea erorilor, implementare simplă și viteză mare de criptare.

Dezavantaj este necesitatea de a transmite informații de sincronizare înainte de antetul mesajului, care trebuie să fie primit înainte ca orice mesaj să fie decriptat. Acest lucru se datorează faptului că, dacă două mesaje diferite sunt criptate cu aceeași cheie, atunci aceeași secvență pseudo-aleatorie trebuie utilizată pentru a decripta aceste mesaje. Această situație poate crea o amenințare periculoasă pentru puterea criptografică a sistemului și, prin urmare, este adesea folosită o cheie de mesaj suplimentară, selectată aleatoriu, care este transmisă la începutul mesajului și este utilizată pentru a modifica cheia de criptare. Ca rezultat, mesajele diferite vor fi criptate folosind secvențe diferite.

Cifrurile de flux sunt utilizate pe scară largă în sistemele militare și în alte sisteme similare pentru a cripta datele și semnalele vocale digitizate. Până de curând, astfel de aplicații erau predominante pentru această metodă de criptare. Acest lucru se explică, în special, prin simplitatea relativă a proiectării și implementării generatoarelor de secvențe bune de criptare. Dar factorul principal, desigur, rămâne absența propagării erorilor în cifrul fluxului.

Deoarece canalele de calitate relativ scăzută sunt folosite pentru a transmite date și mesaje vocale în rețelele de comunicații tactice, orice sistem criptografic care crește rata de eroare deja ridicată nu este aplicabil. În astfel de cazuri, este necesar să folosiți un criptosistem care să nu propage erori.

Cu toate acestea, proliferarea erorilor poate fi și un lucru pozitiv. Să fie, de exemplu, datele criptate să fie transmise pe un canal cu o probabilitate de eroare foarte mică (de exemplu, 10 5) și este foarte important ca datele să fie primite cu absolut exactitate. Aceasta este o situație tipică în rețelele de calculatoare, în care o eroare într-un singur bit poate duce la consecințe catastrofale și, prin urmare, canalul de comunicare trebuie să fie foarte fiabil. Într-o astfel de situație, o greșeală este la fel de periculoasă ca 100 sau 1000 de greșeli. Dar 100 sau 1000 de erori pot fi găsite mai ușor decât o singură eroare. Prin urmare, în acest caz, propagarea erorilor nu mai este un dezavantaj al cifrului.

Metoda standard pentru generarea de secvențe pentru criptarea fluxului este metoda utilizată în standardul de criptare a datelor DES în modul feedback de ieșire.

Cifre bloc. Pentru cifrurile bloc, textul simplu este mai întâi împărțit în blocuri de lungime egală, apoi o funcție de criptare dependentă de cheie este utilizată pentru a transforma blocul de text simplu de lungime T biți într-un bloc de text cifrat de aceeași lungime. O proprietate importantă a cifrurilor bloc este că fiecare bit al unui bloc de text cifrat este o funcție a tuturor (sau aproape toți) biții blocului de text clar corespunzător și nu pot fi reprezentate două blocuri de text simplu de același bloc de text cifrat. Algoritmul de cifrare bloc poate fi utilizat în diferite moduri. Cele patru moduri de criptare din standardul DES se aplică de fapt oricărui cifru bloc.

Aceste moduri au primit următoarele nume:

    modul de criptare directă sau criptare folosind o carte electronică de coduri (carte electronică de coduri),

    criptare cu înlănțuire a blocurilor de text cifrat CBC (Cipher block chaining),

    criptare cu feedback din ciphertext CFB (Cipher feedback),

    criptare cu feedback de la ieșirea OFB (Output feedback).

Avantajul principal Cifrarea directă în bloc (cartea de coduri electronice) este că într-un sistem de cifru bloc bine conceput, micile modificări ale textului cifrat vor cauza modificări mari și imprevizibile ale textului simplu corespunzător și invers.

Cu toate acestea, utilizarea unui cifru bloc în acest mod este asociată cu lipsuri grave. Prima dintre acestea este că, datorită naturii fixe a criptării, chiar și cu o lungime de bloc relativ mare, de exemplu 50-100 de biți, criptoanaliza „dicționar” este posibilă într-o formă limitată.

Este clar că un bloc de această dimensiune poate fi repetat într-un mesaj din cauza cantității mari de redundanță în textul tipic în limbaj natural. Acest lucru ar putea avea ca rezultat blocuri de text clar identice de lungime T biții din mesaj vor fi reprezentați prin blocuri de text cifrat identice, oferind criptoanalistului câteva informații despre conținutul mesajului.

Un alt dezavantaj potențial al acestui cifru este propagarea erorilor (aceasta este una dintre problemele cu toate tipurile de cifruri, cu excepția cifrurilor flux). Schimbarea unui singur bit într-un bloc de text cifrat primit va duce la decriptarea incorect a întregului bloc. Aceasta, la rândul său, va avea ca rezultat 1 to T biți distorsionați din textul sursă restaurat.

Datorită dezavantajelor remarcate, cifrurile bloc sunt rareori utilizate în acest mod pentru a cripta mesajele lungi. Cu toate acestea, în instituțiile financiare, unde mesajele constau adesea din unul sau două blocuri, cifrurile bloc (în special algoritmul DES) sunt utilizate pe scară largă în această formă simplă. Deoarece această aplicație implică posibilitatea unor modificări frecvente ale cheii de criptare, probabilitatea de a cripta două blocuri identice de text simplu cu aceeași cheie este foarte mică. Cifrurile bloc sunt utilizate cel mai adesea în sistemele de criptare cu feedback din textul cifrat.

Educația este de asemenea posibilă sisteme mixte (hibride) de criptare în flux și bloc folosind cele mai bune proprietăți ale fiecăruia dintre aceste cifruri. În astfel de sisteme, criptarea fluxului este combinată cu permutări pseudo-aleatoare. Textul simplu este mai întâi criptat ca în criptarea fluxului normal, apoi textul cifrat rezultat este împărțit în blocuri de dimensiune fixă. În fiecare bloc, se realizează o permutare pseudo-aleatoare sub controlul unei chei (se preferă diferite permutări pentru blocuri individuale).

Ordinea acestor două operații poate fi inversată fără a afecta proprietățile de bază ale sistemului. Rezultatul este un cifru care nu propaga erori, dar are o proprietate suplimentară pe care nu o are un cifru de flux. Această proprietate înseamnă că interceptătorul nu știe care bit de text clar corespunde bitului de text cifrat. Acest lucru face ca mesajul criptat să fie mai complex și mai dificil de spart. Dar trebuie remarcat faptul că acesta nu mai este un adevărat cifru bloc, în care fiecare bit al textului cifrat este o funcție a unui singur, mai degrabă decât a tuturor, biților de text simplu.

Un criptosistem cu cheie publică trebuie să fie un sistem de criptare bloc care funcționează pe blocuri de lungime destul de mare. Acest lucru se datorează faptului că un criptoanalist care cunoaște cheia publică de criptare ar putea mai întâi să calculeze și să creeze un tabel de corespondență între blocurile text simplu și text cifrat. Dacă lungimea blocurilor este mică (de exemplu, 30 de biți), atunci numărul de blocuri posibile nu va fi prea mare (cu o lungime de 30 de biți aceasta este 2 30 -10 9) și poate fi compilat un tabel complet, permițând decriptarea instantanee a oricărui mesaj criptat folosind o cheie publică cunoscută.

Au fost propuse multe criptosisteme diferite cu cheie publică, dintre care cel mai faimos este RSA (Rivest, Shamir, Adleman). Puterea criptografică a acestui sistem se bazează pe dificultatea descompunerii numerelor mari în factori primi și pe alegerea a două numere prime mari pentru cheile de criptare și decriptare.

Se știe că algoritmul RSA nu poate fi utilizat pentru criptarea de mare viteză. Cea mai optimizată implementare software a acestui algoritm se dovedește a fi de viteză redusă, iar mai multe implementări hardware oferă viteze de criptare de la 10 la 100 Kbps (folosind numere prime de ordinul 2 7, care pare a fi lungimea minimă pentru a asigura puterea criptografică). Aceasta înseamnă că utilizarea RSA pentru cifrarea bloc este limitată, deși utilizarea sa pentru distribuirea cheilor, autentificare și generare de semnătură digitală prezintă posibilități interesante. Unii algoritmi criptografici cu cheie publică cunoscuți în prezent permit viteze de criptare mai mari decât algoritmul RSA. Cu toate acestea, nu sunt încă atât de populare.

Sisteme de criptare cu feedback. Sistemele de criptare în buclă închisă vin în diferite versiuni practice. Ca și în sistemele de criptare bloc, mesajele sunt împărțite într-un număr de blocuri constând din T biți și pentru a converti aceste blocuri în blocuri de text cifrat, care constau și în T bit, sunt folosite funcții speciale. Cu toate acestea, în timp ce într-un cifru bloc o astfel de funcție depinde doar de cheie, în cifrurile în buclă închisă depinde atât de cheie, cât și de unul sau mai multe blocuri de text cifrat anterioare. Această definiție generală a criptării în buclă închisă include ca cazuri speciale un număr mare de tipuri diferite de sisteme utilizate practic.

Utilizarea criptosistemelor de cifrare bloc cu feedback dă o serie de avantaje importante. Prima și cea mai semnificativă este capacitatea de a le folosi pentru a detecta manipulările mesajelor efectuate de interlocutorii activi. Acest lucru profită de faptul propagării erorilor, precum și de capacitatea unor astfel de sisteme de a genera cu ușurință un cod de autentificare a mesajelor MAC (cod de autentificare a mesajului). Al doilea avantaj este că cifrurile CTAK, folosite în locul cifrurilor bloc, nu necesită sincronizare inițială. Aceasta înseamnă că, dacă începutul unui mesaj este omis la recepție, restul acestuia poate fi decriptat cu succes (după recepția cu succes a t bit de text cifrat. De asemenea, rețineți că sistemele de criptare în buclă închisă sunt folosite nu numai pentru a cripta mesajele, ci și pentru a le autentifica.

Criptosistemele de cifrare în bloc cu feedback se caracterizează prin anumite dezavantaje. Principala este propagarea erorilor, i.e. un bit eronat în timpul transmisiei poate cauza de la 1 la sm + i erori în textul decriptat. Astfel, cerința de a crește t pentru a crește puterea criptografică, contrazice cerințele de sistem asociate cu propagarea erorilor. Un alt dezavantaj este că proiectarea și implementarea sistemelor de criptare în buclă închisă este adesea mai dificilă decât pentru sistemele de criptare în flux. Deși sistemele de criptare în buclă închisă de diferite tipuri au fost utilizate pe scară largă de mulți ani, există foarte puțini algoritmi specifici pentru astfel de sisteme. În cele mai multe cazuri, algoritmii publicati sunt derivați din algoritmi de cifrare bloc modificați pentru aplicații speciale.

Prima concluzie care poate fi trasă din analiză este că majoritatea criptosistemelor practice folosesc fie criptarea fluxului, fie algoritmi de criptare cu feedback. Majoritatea criptosistemelor de cifrare în flux utilizează algoritmi comerciali (inclusiv algoritmi de proprietate sau algoritmi de proprietate) sau algoritmi guvernamentali clasificați. Se pare că această situație va continua și în următorii ani.

De asemenea, este posibil ca majoritatea sistemelor de criptare în buclă închisă să se bazeze pe utilizarea unei variante speciale a algoritmilor de criptare bloc, în special cel mai faimos algoritm de criptare bloc DES. În ceea ce privește alte metode de criptare, se poate spune că, în ciuda creșterii rapide a publicațiilor privind criptosistemele cu cheie publică, doar una dintre ele, sistemul RSA, a trecut testul timpului.

Dar algoritmul sistemului are limitări severe de implementare și, prin urmare, este nepotrivit pentru unele aplicații criptografice. Desigur, se poate argumenta cu siguranță că criptosistemele cu chei publice au avut un impact semnificativ asupra tehnologiei de criptare a datelor. Acestea găsesc o utilizare din ce în ce mai mare, în principal pentru generarea de semnături digitale sau pentru gestionarea cheilor în sistemele cripto convenționale (cum ar fi criptarea cheilor).

Utilizatorii potențiali ai criptografiei au posibilitatea de a alege între sisteme de criptare în flux și sisteme de criptare în buclă închisă (eventual bazate pe utilizarea algoritmilor de criptare bloc). Cu toate acestea, există anumite domenii de aplicare, cum ar fi tranzacțiile financiare, în care se pot folosi tehnici de criptare directă a blocurilor („carte de coduri electronice”). Alegerea unui criptoalgoritm depinde în mare măsură de scopul său. Câteva informații care vă pot ghida atunci când alegeți tipul de criptare sunt date în tabel.



Publicații pe această temă