Modul de înlănțuire a blocurilor de text cifrat
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită la 27 mai 2015; verificările necesită
10 modificări .
Cipher Block Chaining ( CBC ) este unul dintre modurile de criptare pentru un cifru bloc simetric folosind un mecanism de feedback . Fiecare bloc de text simplu (cu excepția primului) este adăugat bit cu bit modulo 2 ( operație XOR ) cu rezultatul criptării anterioare.
Criptarea poate fi descrisă după cum urmează:
unde sunt numerele de bloc, este vectorul de inițializare ( mesaj de sincronizare ) și sunt blocurile de text cifrat și, respectiv, de text simplu, și este funcția de cifru bloc . Decriptare:
Particularitati:
- Prezența unui mecanism de propagare a erorilor: dacă un bit al textului cifrat se modifică în timpul transmisiei, această eroare se va propaga la următorul bloc. Cu toate acestea, eroarea nu se va propaga la blocurile ulterioare (după unul), prin urmare modul CBC este numit și auto-vindecare [1] .
- Nu este rezistent la pierderi de biți sau erori de inserție, cu excepția cazului în care este utilizat un mecanism suplimentar de aliniere a blocurilor.
- Atacatorul are capacitatea de a adăuga blocuri la sfârșitul mesajului criptat, completând astfel textul simplu (cu toate acestea, fără cheie, se dovedește un gunoi. Și utilizarea funcției Hash pentru a confirma integritatea mesajului anulează acest tip de atac. .)
- Pentru mesaje foarte mari (32 GB cu o lungime a blocului de 64 de biți), este încă posibil să se utilizeze atacuri bazate pe caracteristicile structurale ale textului simplu (o consecință a paradoxului zilei de naștere ).
- Necesită ca mesajul să fie un multiplu al lungimii blocului.
- Vulnerabil la atacul Padding Oracle. Dacă un atacator poate trimite mesaje criptate pentru decriptare de un număr nelimitat de ori, el poate, schimbând anumiți octeți, să ghicească umplutura corectă. Acest lucru duce la capacitatea de a decripta mesajul cu excepția primului bloc, de a crea un mesaj criptat arbitrar corect, cu excepția primului bloc, fără a cunoaște cheia.
Note
- ↑ Oleg Zenzin - Moduri de criptare, secțiunea Acumularea erorilor în diferite moduri de criptare . Preluat la 3 august 2011. Arhivat din original la 20 august 2011. (nedefinit)
Literatură
- Schneier B. 9.3. Mod de înlănțuire a blocurilor de text cifrat // Criptografie aplicată. Protocoale, algoritmi, cod sursă în limbaj C = Criptografie aplicată. Protocoale, algoritmi și cod sursă în C. - M. : Triumph, 2002. - S. 225-229. — 816 p. - 3000 de exemplare. - ISBN 5-89392-055-4 .