Cum funcționează cifrele bloc

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În criptografie, modul de operare al cifrelor bloc este o serie de proceduri standard ale unui algoritm care funcționează prin intermediul cifrelor bloc pentru a garanta securitatea textelor sau mesajelor de orice lungime.

Modurile au fost inițial definite de Institutul Național de Standarde și Tehnologie (NIST) în 1980 cu standardul FIPS 81 intitulat Moduri de operare Standard de criptare a datelor, astfel încât algoritmul de criptare DES să poată fi aplicat la o varietate de situații diferite [1] .

Standardul avea ulterior extensii, codificate în 800-38A.

Aceste moduri pot fi utilizate cu orice algoritm de cifrare bloc simetric , inclusiv Triple DES și AES .

Carte electronică (BCE)

Pictogramă lupă mgx2.svg Același subiect în detaliu: carte electronică de coduri .

Modul BCE este cel mai simplu. Textul simplu este tratat 64 de biți la un moment dat; fiecare dintre blocurile pe 64 de biți este criptat cu aceeași cheie. Pentru mesajele mai lungi de 64 de biți, procedăm prin împărțirea mesajului în bucăți de 64 de biți, utilizând biți de umplere în ultimul bloc, dacă este necesar.

Ecb encryption.png

Pentru o cheie dată, există un singur text cifrat pentru fiecare bloc de 64 de biți cu text simplu; cu alte cuvinte, dacă același bloc de 64 de biți de text simplu apare de mai multe ori în mesaj, același text cifrat va fi întotdeauna produs. Din acest motiv, metoda BCE este ideală pentru volume limitate de date (de exemplu, transmiterea unei chei de criptare), deoarece pentru mesaje mai lungi ar putea fi nesigur: dacă ar fi vorba de a cripta un mesaj foarte structurat, analiza criptografică ar putea exploata regularitățile sale.

Beneficii

  • Criptarea modului BCE este paralelizabilă
  • Erorile rămân localizate, deci nu există propagare a erorilor pe diferite blocuri

Dezavantaje

  • Integritatea mesajului nu este garantată, deoarece un atacator ar putea inversa blocajele și victima nu ar observa
  • Folosește o cheie fixă ​​care poate fi predispusă atacurilor de analiză criptografică
  • Nu este sigur împotriva atacurilor de forță brută

Înlănțuire în blocuri cifrate (CBC)

Pentru a depăși limitele de securitate ale BCE , este necesar să se utilizeze o tehnică în care același bloc de text clar, atunci când se repetă, produce blocuri de text cifrat diferite. Așa se întâmplă cu modul CBC, unde intrarea algoritmului criptografic este rezultatul XOR dintre blocul de text clar curent și blocul de text cifrat anterior; aceeași cheie este utilizată pentru fiecare bloc.
În timpul decriptării, fiecare bloc de text cifrat trece prin algoritmul de decriptare; rezultatul este XORed cu blocul anterior de text cifrat pentru a produce blocul text simplu.

Cbc encryption.png

Pentru a demonstra corectitudinea mecanismului, se poate scrie:

Prin urmare:

Pentru a produce primul bloc de text cifrat, XOR se efectuează între un vector de inițializare IV ( vector de inițializare ) și primul bloc de text simplu. În decriptare, IV este supus unui XOR cu ieșirea algoritmului de decriptare pentru a obține din nou primul bloc de text simplu.
Vectorul de inițializare IV trebuie, prin urmare, să fie cunoscut nu numai de expeditor, ci și de destinatar, care îl primește de obicei împreună cu cheia; ambele valori sunt criptate în modul BCE.
Pentru a crește nivelul de securitate și pentru a evita atacurile de reluare , este utilizat un IV aleatoriu pentru fiecare proces de criptare.
Acest lucru vă permite să produceți un text cifrat diferit chiar și cu același text simplu și cheie de criptare. În aceste cazuri este de dorit să puteți evita partajarea fiecărei IV generate cu destinatarul; acest lucru este posibil, pur și simplu prin prefixarea textului simplu cu un bloc de text aleatoriu: în acest fel va fi generat un prim bloc criptat, oricum utilizabil în procesul de criptare. Prin implementarea acestui mod, în timpul decriptării va fi necesar să se genereze un nou IV aleatoriu, apoi să se arunce primul bloc de text simplu care va fi produs.
Este posibil să utilizați un IV aleatoriu fără a fi nevoie să împărtășiți fiecare valoare destinatarului, chiar și în cifrele bloc în modul CFB și OFB
În concluzie, acest mod este cel mai potrivit pentru criptarea mesajelor mai lungi de 64 de biți . În plus, modul CBC poate fi utilizat și pentru autentificare .

Feedback cifrat (CFB)

Modul CFB a fost conceput pentru a converti în mod ideal cifrarea de bloc în flux de cifrare . Criptarea fluxului nu necesită umplere și poate funcționa și în timp real.
În operația de criptare, funcția de criptare este un registru de schimbare a intrării pe 64 de biți care este inițial configurat cu un vector de inițializare IV (Vector de inițializare). Cei mai semnificativi s biți (adică cei mai la stânga) ai ieșirii sunt XORed cu primul segment de text simplu P 1 pentru a produce prima unitate de text cifrat C 1 . Conținutul registrului de deplasare este deplasat la stânga cu s biți, iar C 1 este introdus în s biții cel mai puțin semnificativi (cei din dreapta) ai registrului. Procesul se repetă până când toate unitățile de text simplu sunt epuizate.
La decriptare, se utilizează aceeași schemă, cu excepția faptului că unitățile de text cifrate primite sunt supuse unui XOR cu ieșirea funcției de criptare. Prin urmare, funcția de decriptare nu este utilizată, deoarece, dacă S S (X) sunt cei mai semnificativi s biți de X , atunci:

Prin urmare

și același raționament se aplică la pașii următori.

Cfb encryption.png

Feedback de ieșire (OFB)

Modul OFB este foarte similar cu CFB . Avantajul OFB este că nu propagă erorile de transmisie pe biți . Dezavantajul său este că este mai vulnerabil la un atac de modificare a fluxului de mesaje.

Ofb encryption.png

Contor (CTR)

Acest al cincilea mod a fost introdus ulterior celorlalte patru, pentru a fi aplicat la ATM (Asynchronous Transfer Mode) și IPsec (securitate IP ).
În acest mod, este utilizat un contor corespunzător dimensiunii blocului de text simplu. Cerința esențială este ca valoarea sa să fie diferită pentru fiecare bloc care trebuie criptat; de obicei este inițializat cu o anumită valoare și apoi incrementat cu o unitate pentru fiecare bloc ulterior (modulul 2 b unde b corespunde dimensiunii blocului).
Pentru criptare, contorul este criptat și apoi se aplică un XOR cu blocul text simplu pentru a produce blocul text cifrat.
Aceeași secvență de valori de contor este utilizată pentru decriptare căreia i se aplică XOR cu blocuri de text cifrat.

Ctr encryption.png

Avantajele modului CTR sunt:

Tabel rezumat

Mod Aplicații tipice
BCE Transmiterea în siguranță a valorilor individuale
CBC
  • Difuzare generală orientată spre blocuri
  • Autentificare
CFB
  • Transmisie de natură generală orientată către fluxul de date
  • Autentificare
OFB Transmisie de date orientată spre flux pe canale zgomotoase
CTR
  • Difuzare generală orientată spre blocuri
  • Util pentru cerințele de viteză mare

Notă

Bibliografie

  • William Stallings, Cryptography and Network Security , McGraw-Hill, 2004. ISBN 88-386-3435-1

linkuri externe