Puncte:3

Modul CBC cu IV predictibil ok dacă cheia este folosită o singură dată?

drapel mc

Cineva mi-a spus recent că utilizarea modului CBC cu un IV predictibil (de exemplu, toate 0) este rezonabil de sigură dacă o cheie este folosită doar o singură dată pentru criptare. Am trecut prin câteva exemple de atacuri alese în text clar împotriva modului CBC cu un IV previzibil și se pare că ei presupun că cheia care este folosită pentru textul criptat al atacatorului este aceeași cu cheia folosită pentru textul criptat al atacatorului. . De asemenea, în acest caz, un atacator nu a putut controla întregul text simplu care este criptat, doar o mică parte din acesta.

Deci, este această persoană corectă, utilizarea cheii pentru criptare o singură dată face utilizarea unui seif IV previzibil sau există o problemă pe care nu o văd?

Maarten Bodewes avatar
drapel in
Interesant - nu am putut găsi un dup pe acest site, deși sunt sigur că asta a fost cel puțin o parte din alte răspunsuri. Cel mai apropiat pe care l-am putut găsi este [acest răspuns](https://crypto.stackexchange.com/a/5099/1172). Evident, date identice la începutul mai multor mesaje și a cel puțin unui bloc ar duce la blocuri de text cifrat identice, astfel încât reutilizarea unei combinații cheie/IV nu este niciodată sigură IND-CPA fără a face revendicări specifice asupra mesajelor de intrare, *indiferent* dacă atacatorul controlează mesajele - nu este necesar un atac activ / Oracle.
Maarten Bodewes avatar
drapel in
Dupe complet [aici](https://security.stackexchange.com/q/10081/2651) dar postat pe [security.se] înainte ca acest site să existe.
automatictester avatar
drapel ht
S-ar putea să fiți interesat de [acest lucru](https://security.stackexchange.com/questions/17044/when-using-aes-and-cbc-is-it-necessary-to-keep-the-iv-secret)
Meir Maor avatar
drapel in
Ar trebui să avem un răspuns la acest lucru aici, la întrebarea cripto, legitimă, răspunsul de mai sus pare un răspuns complet, îl copiem literal și îl trimitem la original? (posibil ca răspuns comunitar). Scrie ceva original care spune în esență același lucru, adăugând eventual ceva nu foarte important doar pentru a simți că am făcut ceva nou?
Maarten Bodewes avatar
drapel in
Hmm, poate că ar fi trebuit să postez răspunsul meu la linkul pe care testerul automat l-a inclus aici și apoi să fiu legat de el de pe site-ul de securitate. Nu sunt sigur de asta, poate ceva pentru [meta].
Puncte:3
drapel my

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.

fgrieu avatar
drapel ng
Nu văd în întrebare nimic care să facă imposibil un atac multi-țintă. Deci nu pot fi de acord. Vedeți [răspunsul meu](https://crypto.stackexchange.com/a/93801/555).
Puncte:1
drapel ng

Deci, este această persoană corectă, utilizarea cheii pentru criptare o singură dată face utilizarea unui seif IV previzibil?

Nu, este greșit cel puțin din punct de vedere academic. Și în unele cazuri practic.

Asta din cauza așa-ziselor atacuri cu mai multe ținte. Presupunând $b$- chei de biți și $k$ sunt folosite chei aleatorii (și astfel $k$ texte cifrate) pentru primul bloc cunoscut comun (sau ales). $P_0$ de text simplu (de exemplu, același început al sarcinii utile), există un așa-numit atac multi-țintă cu costuri așteptate $2^{b-1}/k$ criptări care recuperează un text simplu complet, adică $k$ ori mai rapid decât cu IV aleatoriu. Acest atac pur și simplu enumera cheile, criptează fix cunoscut $\text{IV}\oplus P_0$, și caută rezultatul într-un tabel cu toate primele blocuri de text cifrat (care pot fi optimizate pentru a costa puțin peste un singur acces la memorie).

Chiar și atunci când „primul bloc cunoscut comun (sau ales) de text simplu” condiția este îndeplinită, acest atac este rareori un dezastru în practică pentru chei aleatorii de 128 de biți sau mai mari, chiar și pentru chei foarte mari $k$ (care ar fi multe milioane în unele scenarii realiste, de exemplu, cheile de sesiune). Asta pentru că stocarea și accesarea tabelului necesar are de fapt un cost deloc neglijabil (investiție și putere). Este greu de imaginat că pierdem mai mult de 20 de biți de securitate împotriva unui atacator care folosește ASIC-uri, care este cel mai rezonabil mod de a efectua un astfel de atac împotriva unei chei de 128 de biți prin forță brută. Dar problema ar putea fi devastatoare dacă cheia ar fi derivată din punct de vedere determinist dintr-o parolă și chiar sunt folosite o mie de parole.

poncho avatar
drapel my
Dacă ar fi doar un milion de chei posibile, ești deja aproape spart...
fgrieu avatar
drapel ng
@poncho: Am clarificat ce vreau să spun. Milionul meu (acum mii) nu este numărul de chei _posibile_ pentru cifrul bloc, ci numărul parolelor utilizate efectiv, astfel încât cheile _țintă utilizate efectiv_ pentru cifrul bloc, derivate printr-o funcție de derivare a cheilor bazată pe parolă, de ex. Argon2 Scrypt sau PBKDF2 se presupune că nu are sare aleatorie.
Meir Maor avatar
drapel in
Mi se pare minunat că am votat pozitiv două răspunsuri bune, unul răspunzând da și unul nu.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.