Deci, este această persoană corectă, utilizarea cheii pentru criptare o singură dată face utilizarea unui seif IV previzibil?
Da, are dreptate.
Acest atac funcționează prin obținerea de către atacator a unui text cifrat în modul CBC și dorește să verifice conținutul textului simplu al unui anumit bloc de text simplu. Pentru a face acest lucru, el calculează că intrarea în cifrul bloc ar fi dacă acea presupunere ar fi corectă (și ieșirea corespunzătoare) și, pe baza acestuia, creează un mesaj text simplu care, cu IV predictibil, trimite acea intrare la cifrul bloc. . Apoi cere ca mesajul text simplu să fie criptat cu aceeași cheie. Dacă mesajul ciphertext corespunzător are blocul de ieșire așteptat, atunci el știe că presupunerea sa a fost corectă.
Dacă criptăm doar un singur mesaj, atunci el nu poate efectua acest atac - poate învăța textul cifrat original, dar apoi nu poate cere ca un al doilea mesaj să fie criptat cu aceeași cheie.
Acum, acest lucru este valabil dacă criptatorul preia întregul text simplu și îl criptează în întregime, iar acel text cifrat complet este trimis receptorului (și adversarului). Dacă rulați modul CBC în mod incremental, de exemplu, luați prima parte a textului simplu, o criptați, o trimiteți și apoi luați a doua parte a textului simplu și apoi o criptați, atunci nu este sigur - dacă atacatorul poate asculta prima parte a textului cifrat și apoi (pe baza acestuia) modifica ceea ce a doua parte a textului simplu, el poate implementa atacul „predictibil IV” - chiar dacă poate să nu pară că trimiteți un al doilea IV, din cauza cum funcționează modul CBC, sunteți efectiv.
De asemenea, în acest caz, un atacator nu a putut controla întregul text simplu care este criptat, doar o mică parte din acesta.
Nu contează - este încă în siguranță chiar dacă atacatorul are control arbitrar. De exemplu, dacă adversarul poate specifica întregul mesaj, cu excepția unui bit, tot nu poate afla care este acel bit.