Încerc să aflu mai multe despre modul GCM și despre diferența dintre CBC. Știu deja că GCM oferă un MAC care este utilizat pentru autentificarea mesajelor. Din ceea ce am citit și din fragmentele de cod pe care le-am văzut, GCM face un sistem exclusiv sau foarte asemănător CBC, dar nu sunt sigur cu ce este exclusiv sau contra. În modul CBC, textul exclusiv – sau este text clar împotriva blocului anterior de text cifrat, cu excepția primului bloc care utilizează un IV aleatoriu. GCM face același lucru sau face exclusivitatea sau împotriva altceva? Dacă da, cineva vă poate explica pe scurt cum folosește GCM IV-ul și cum se face exclusivitatea sau.
Comentarii
- Dacă nu respectați autentificarea, GCM se comportă ca modul CTR, nu ca modul CBC. Căutați-le pe wikipedia.
- Doar pentru că nu este ' definit în această pagină … GCM = Galois / Counter Mode și CBC = Cipher Block Chaining … alte definiții includ MAC (Message Authentication Code), IV (Initialisation Vector) și CTR (Counter Mode).
Răspuns
Modurile GCM și CBC funcționează intern diferit; ambele implică un cifru de bloc și un exclusiv – sau, dar le folosesc în moduri diferite.
În modul CBC, criptați un bloc de date luând blocul curent în format clar și exclusiv-oring care cu blocul anterior de text cifrat (sau IV), și apoi trimiterea rezultatului acestuia prin intermediul cifrului bloc; ieșirea cifrului blocului este blocul textului cifrat.
Modul GCM oferă atât confidențialitate (criptare), cât și integritate. Pentru a furniza criptarea, GCM menține un contor; pentru fiecare bloc de date, trimite valoarea curentă a contorului prin cifrarea blocului. Apoi, este nevoie de ieșirea cifrului bloc și exclusiv sau „s” cu textul simplu pentru a forma textul cifrat.
Rețineți două diferențe cheie:
-
Ce este exclusiv sau ed; în modul CBC, textul simplu este exclusiv sau „ed” cu date pe care atacatorul le cunoaște (IV sau un bloc anterior de text cifrat); prin urmare, asta în sine nu oferă nicio securitate inerentă (în schimb, o facem pentru a minimiza șansa de a trimite același bloc de două ori prin cifrarea blocului). În modul GCM, textul în format clar este exclusiv sau „ed cu ieșire din cifrul bloc; este inerent modelului de securitate că atacatorul nu poate ghici această ieșire (cu excepția cazului în care cunoaște deja textul în clar și textul cifrat).
-
Ce se trimite prin intermediul cifrului bloc; în modul CBC, textul simplu este trimis prin cifrul bloc (după ce a fost „randomizat” cu un exclusiv sau); în modul GCM, ceea ce este trimis prin cifrul bloc nu depinde de fapt de datele care sunt criptat, dar în schimb numai în starea internă.
În ceea ce privește modul în care GCM folosește un IV (eu personal consider „nonce” un termen mai bun pentru ceea ce folosește GCM, deoarece asta subliniază ideea că, cu GCM, nu puteți utiliza aceeași nonce pentru aceeași cheie de două ori), ei bine, este folosit pentru a inițializa contorul.
Comentarii
- Foarte interesant … Dacă înțeleg corect, spuneți că în modul GCM textul cifrat al unui bloc este exclusiv sau ' ed împotriva textului simplu care tocmai a fost introdus prin cifrare și acel bloc este apoi trimis. Dacă acest lucru este adevărat, atunci cum este decriptat acel bloc? Nu este ' textul cifrat din criptarea AES (de exemplu) necesară pentru decriptarea datelor? Cum este obținut? De asemenea, dacă o se obține text criptat riginal, apoi ar putea fi folosit pentru a exclude sau a textului cifrat trimis, care ar returna textul clar și nu ar mai avea nevoie de o decriptare suplimentară … Îmi lipsește ceva .. ' .
- Nu, în GCM, luăm un contor, îl trimitem prin cifrarea blocului, apoi exclusiv – sau cel cu textul clar pentru a forma textul cifrat. Pe partea de decriptare, menținem același contor, îl trimitem prin cifrarea blocului și apoi exclusiv – sau cel cu textul cifrat pentru a forma textul simplu.
- @poncho Deci, în GCM nu avem nevoie de Parte „decriptare” a cifrului bloc? Deoarece folosim „criptare” pe ambele părți.
- Dacă utilizați aceeași nonce de două ori cu aceeași cheie, vă deschideți la … ce atac?
- @RobertSiemer: două atacuri: a) atacatorul câștigă o cantitate semnificativă de informații din cele două mesaje criptate cu aceeași nonce (posibil suficient pentru a deduce ambele conținuturi) și b) atacul câștigă informații care să-i permită să modifice mesajele fără a fi detectat