Attacco a boomerang

Da Wikipedia, l'enciclopedia libera.
Attacco a boomerang

In crittografia l'attacco a boomerang è un metodo o tipo di attacco per la crittanalisi dei cifrari a blocchi basato sulla crittanalisi differenziale. L'attacco è stato pubblicato nel 1999 da David Wagner, che lo ha utilizzato per violare il cifrario COCONUT98.

L'attacco a boomerang ha permesso nuove modalità di attacco a molti cifrari precedentemente indicati come resistenti alla crittanalisi differenziale.

Sono anche state pubblicate versioni migliorate dell'attacco denominate attacco a boomerang amplificato ed attacco a rettangolo.

Modalità dell'attacco[modifica | modifica sorgente]

L'attacco a boomerang è basato sulla crittanalisi differenziale. Nella crittanalisi differenziale un attaccante esplora in che modo le differenze nei dati forniti in ingresso ad un cifrario (il testo in chiaro) possono incidere sulle differenze risultanti nei dati in uscita (il testo cifrato): è necessaria però un "differenziale" (cioè una differenza nei dati in ingresso che produrrà verosimilmente una differenza in quelli in uscita) ad alta probabilità che coinvolga tutto, o quasi tutto, il cifrari. L'attacco a boomerang, invece, permette l'uso di differenziali che coinvolge solo una parte del cifrario.

L'attacco tenta di creare una particolare struttura detta "a quartetto" in un punto a metà del cifrario. Per questo scopo, definiamo che l'azione di cifratura E del cifrario possa essere divisa in 2 fasi consecutive, E0 ed E1, tali che E(M) = E1(E0(M)), dove M è un messaggio in chiaro. Supponiamo di avere 2 differenziali per le 2 fasi; possiamo allora definire:

\Delta\to\Delta^*

per E0, e

\nabla\to\nabla^*

per E1-1 (l'azione di decifratura di E1).


L'attacco di base procede come segue:

  • si sceglie un testo in chiaro casuale P e si calcola P' = P \oplus \Delta;
  • si richiedono le cifrature di P e P' per ottenere C = E(P) e C' = E(P');
  • si calcola D = C \oplus \nabla e D' = C' \oplus \nabla;
  • si richiedono le decifrature di D e D' per ottenere Q = E^{-1}(D) e Q' = E^{-1}(D');
  • si compara Q e Q': quando i differenziali non mutano più, allora si ha Q \oplus Q' = \Delta.

Applicazioni a cifrari specifici[modifica | modifica sorgente]

Il miglior attacco al KASUMI, un cifrario a blocchi utilizzato nel 3GPP, è un attacco a rettangolo correlato alla chiave che può violare tutti gli 8 passaggi del cifrario più velocemente di una ricerca esaustiva (Biham ed altri, 2005). L'attacco richiede 254,6 testi in chiaro scelti, ognuno dei quali cifrato con una di 4 chiavi correlate, ed ha una complessità temporale equivalente a 276,1 cifrature del KASUMI.

Voci correlate[modifica | modifica sorgente]

Riferimenti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]