Un atac bumerang este un atac criptografic asupra unui cifr bloc bazat pe metode de criptoanaliza diferențială . Algoritmul de atac a fost publicat în 1999 de profesorul de la Universitatea Berkeley, David Wagner, care l-a folosit pentru a sparge codurile COCONUT98 , Khufu și CAST-256 [1] .
Această metodă a făcut posibilă efectuarea de atacuri cu succes asupra multor cifruri recunoscute anterior ca rezistente la criptoanaliza diferențială „clasică”.
Există modificări ale acestei metode de criptoanaliza: atac de bumerang îmbunătățit (atac de bumerang amplificat) și atac dreptunghiular (atac dreptunghiular).
Atacul bumerang se bazează pe principiile criptoanalizei diferenţiale . Metoda bumerangului constă în folosirea unui cvartet de texte clare și a textelor cifrate corespunzătoare, mai degrabă decât a unei perechi, ca în criptoanaliza diferențială.
O altă diferență notabilă între metoda bumerangului și criptoanaliza diferențială clasică, în care modificările textului cifrat cauzate de modificările textului clar acoperă întregul cifru, este că modificările textului clar pot acoperi doar o parte a cifrului.
În unele cazuri, utilizarea acestei metode de atac poate reduce semnificativ cantitatea de date necesare (comparativ cu criptoanaliza diferențială). În plus, atacul este aplicabil algoritmilor cu o structură rotundă eterogenă.
Una dintre cele mai interesante caracteristici ale algoritmului de atac este că funcționează foarte bine cu cifrurile care au funcții rotunde asimetrice. Funcțiile rotunde asimetrice pot fi împărțite în două tipuri: runde de tip A, care au o difuzie mai bună înainte decât înapoi și runde de tip B, care au o difuzie mai bună înapoi. Se remarcă faptul că, dacă prima jumătate a cifrului constă din runde de tip B, iar a doua din runde de tip A, atunci un astfel de cifru va fi cel mai vulnerabil la un atac de bumerang.
Mai mult, în lucrarea sa [1] , Wagner demonstrează că diferența dintre textele clare astfel obținute și este egală cu diferența dintre textele clare originale și și este egală cu .
Analizând un set de cvartete de texte cu o anumită diferență, se poate selecta o anumită cheie (sau fragmentul acesteia), care este cheia dorită fie fără ambiguitate, fie cu cea mai mare probabilitate (în comparație cu alte chei).
Atacul cu bumerang îmbunătățit este un atac cu text clar , în timp ce atacul cu bumerang clasic este un atac cu text clar ales adaptiv .
Când comparăm acești doi algoritmi, celelalte lucruri fiind egale, atacul clasic de bumerang necesită mult mai puține date decât cel îmbunătățit. La prima vedere, o astfel de schimbare a algoritmului nu aduce beneficii. Cu toate acestea, există trei puncte care îl deosebesc de atacul clasic, ceea ce face ca în unele cazuri să merite folosirea unui atac îmbunătățit:
Principiile atacului bumerang și atacului bumerang îmbunătățit au fost aplicate pentru a efectua un atac cu cheie conectată asupra cifrurilor AES -192 și AES-256. Această metodă se bazează pe detectarea coliziunilor locale în cifrurile bloc și pe utilizarea comutatoarelor bumerang.
În mod implicit, cifrul este împărțit în runde, dar această diviziune nu este întotdeauna cea mai bună pentru un atac cu bumerang. S-a propus împărțirea rundelor în operații simple și folosirea paralelismului existent în aceste operații. De exemplu, unii octeți pot fi procesați independent. Într-un astfel de caz, un octet poate fi procesat mai întâi înainte de conversie de către algoritmul de criptare, după care trece la procesarea unui alt octet după conversie. Există întrerupătoare pe scară, întrerupătoare Feistel și întrerupătoare cu S-box.
Această metodă de atac este mai eficientă decât atacul cu forță brută . Dar, în același timp, se observă că metoda are în principal valoare teoretică pentru specialiști și nu va reprezenta o amenințare pentru implementările practice ale AES în viitorul apropiat, din cauza cerințelor ridicate pentru timpul de procesare și puterea de calcul. Pe de altă parte, această tehnică poate fi aplicată destul de eficient atacurilor cu funcția hash criptografică .
Deoarece multe funcții hash se bazează pe cifruri bloc , este firesc să încerci atacuri bumerang asupra lor, dar există mai multe obstacole. În special, decriptarea, care este o parte integrantă a unui atac bumerang, poate să nu fie disponibilă în contextul funcțiilor hash.
Cu toate acestea, s-a demonstrat [6] că un atac bumerang, și anume o variantă a acestuia, un atac de bumerang îmbunătățit bazat pe text clar, poate fi folosit pentru a sparge o funcție hash. Acest tip de atac oferă o îmbunătățire față de atacurile diferențiale utilizate anterior .
Ideea principală a adaptării la atac este de a folosi, pe lângă calea diferențială globală atent aleasă, utilizată în atacurile diferențiale clasice, mai multe căi diferențiale suplimentare care sunt foarte bune la un număr limitat de etape, dar nu acoperă întreaga funcție. . Pentru a combina aceste căi diferențiale împreună, este utilizată o schemă de bază de atac cu cifru bloc folosind metoda bumerangului.
Acest atac a fost aplicat cu succes algoritmului SHA-1 .
Un atac bumerang este o alegere adaptativă a atacului text simplu și text cifrat. Acesta este unul dintre cele mai dificile tipuri de atacuri criptografice de implementat în practică.
În ceea ce privește metoda criptoanalizei diferențiale, aplicarea practică a atacului bumerang este limitată de cerințe ridicate pentru timpul de procesare și volumul de date.
În practică, atacul bumerang a fost aplicat în principal cifrurilor cu un număr redus de runde.
În acest sens, algoritmul este mai mult o realizare teoretică.