Puncte:0

Este criptarea multiplă folosind modul de operare CBC susceptibilă la atacurile Meet-in-the-middle?

drapel pf

L-am citit o dată pe o pagină (nu-mi amintesc linkul și nu l-am găsit) care spunea despre o cascadă de AES cu două chei de 256 de biți și că oferă 384 de biți de securitate. Poate nu de 512 biți din cauza dimensiunii blocului AES-256 de 128 de biți.

Asta mi-a lăsat îndoieli.

Să presupunem că criptez ceva de două ori folosind modul CBC și două chei diferite.

Un adversar nu poate determina un bloc criptat cu primul strat de criptare deoarece este XOR cu blocul precedent, iar blocul precedent este criptat cu al doilea strat de criptare. Acest lucru ar putea face criptarea imună la atacurile Meet-in-the-middle, am dreptate sau nu?

kelalaka avatar
drapel in
Dacă nu vi se pare util răspunsul anterior, de ce ar trebui să scrie unul pe altul? Ar trebui să indicați ce nu este clar sau de ce răspunsul nu a fost de ajutor. Răspunsul este da [similar cu precedentul](https://crypto.stackexchange.com/a/98436/18298). Blocul anterior este IV, astfel încât atacul MiTM este posibil cu un atac în text simplu cunoscut. De asemenea, ar trebui să vă susțineți afirmația furnizând pagina.
phantomcraft avatar
drapel pf
@kelalaka Îmi pare rău, nu îmi amintesc linkul paginii și l-am căutat, dar nu îl găsesc. Cum pot marca răspunsul util? Ne pare rău, nu găsesc această resursă aici în pagina de întrebări.
kelalaka avatar
drapel in
Se poate vota un răspuns dacă este util/corect/etc. Solicitantul poate accepta un răspuns dacă răspunsul îi satisface (bifează sub votul sus/în jos). Deci alții pot vedea că întrebările sunt satisfăcătoare. Votați negativ dacă este greșit și indicați-l printr-un comentariu.
Puncte:2
drapel ar

Dacă IV-urile pentru ambele straturi criptate sunt transmise în mod clar, atunci există un atac generic de recuperare a cheilor în text simplu, care funcționează (în esență) pe orice mod de criptare și permite recuperarea celor două chei folosind aproximativ $3 \lceil k \mathbin/ b \rceil \cdot 2^k$ blocați ro/decriptări, $2k \cdot 2^k$ bucăţi de memorie şi $O(k \cdot 2^k)$ timp de calcul non-cifrare în medie, unde $k$ și $b$ sunt dimensiunile cheii și ale blocurilor cifrului în biți (adică $k = b = 128$ pentru AES-128 sau $k = 256$, $b = 128$ pentru AES-256). Pur și simplu merge așa:

  1. Decriptați primul $\lceil k \mathbin/ b \rceil$ blocuri ale textului cifrat cu fiecare dintre $2^k$ posibilele chei exterioare și cunoscutul IV exterior. Pentru fiecare cheie, luați prima $k$ biți din textul simplu rezultat (dacă $k$ nu este deja un multiplu al $b$, care este întotdeauna pentru AES), adăugați cheia și stocați combinația 2k$-bit șir într-o listă.

  2. Sortați lista. (Acest lucru durează $O(n \log n)$ timp pentru o $n$-lista de elemente, unde $n = 2^k$ în acest caz.)

  3. Încercați să criptați primul $\lceil k \mathbin/ b \rceil$ blocuri ale textului simplu cunoscut folosind fiecare dintre $2^k$ posibile chei interioare și cunoscutul IV interior. Pentru fiecare cheie, căutați prima $k$ biți din textul simplu rezultat din listă (folosind o căutare binară, care ia $O(\log n)$ timp) pentru a obține o listă de posibile chei exterioare pe care această cheie interioară s-ar putea potrivi. (Numărul mediu de potriviri candidate pe care le veți găsi pentru fiecare cheie interioară este unul, deși, desigur, unele chei nu vor avea potriviri, iar altele vor avea mai multe.) Dacă există potriviri, criptați încă un bloc de text simplu cunoscut cu textul interioară. cheie și decriptați încă un bloc de text cifrat cu fiecare cheie exterioară potrivită pentru a vedea dacă se potrivesc în continuare. Dacă o fac (ceea ce v-ați aștepta să se întâmple după ce ați testat jumătate din cheile interioare în medie), aproape sigur aveți perechea de chei potrivită.

Un atac generic de recuperare a cheilor de forță brută asupra unui singur criptarea stratului, desigur, durează aproximativ $\frac12 \lceil k \mathbin/ b \rceil \cdot 2^k$ blocați ro/decriptările în medie. Astfel (cel puțin dacă ignorăm costurile de memorie și numărăm doar operațiunile de criptare bloc) criptarea dublă cu IV-uri cunoscute este doar (cel mult) $6$ de ori mai greu de spart în medie decât criptarea unică, pentru (doar!) aproximativ $\log_2 6 â 2,6 $ elemente suplimentare de securitate. Ceea ce, pentru a fi clar, este absolut neglijabil.

(Desigur, costul memoriei acestui atac este nu neapărat neglijabile, dar există, de asemenea, diferite compromisuri de timp – memorie care pot fi făcute pentru a o reduce.)


Rețineți că atacul generic de întâlnire la mijloc descris mai sus depinde de faptul că IV-ul interior este disponibil pentru atacator în mod clar. Dacă nu este, dar este, în schimb, criptat cu cheia exterioară, atunci atacul nu va funcționa fără modificări.

Desigur, o soluție trivială ar fi pur și simplu forța brută a tuturor valorilor posibile ale IV-ului interior de 128 de biți la pasul 2. Pentru AES-256 dublu, acest lucru va permite ca criptarea dublă să fie întreruptă în aproximativ $2^{128} \time 2^{256} = 2^{384}$ Criptări AES, care este încă mai mică decât $2^{512}$ criptări la care s-ar aștepta de la lungimea cheii.

kelalaka avatar
drapel in
Ai intrat în modul complet, pe care trebuie să îl actualizez și atunci. :)

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.