[Tecniche di Crittoanalisi] Attacco Matematico VS Forza Bruta

Crittoanalisi

Quanto è sicuro un codice crittografico? Le nostre informazioni sono protette abbastanza nell’era della condivisione globale? In questo articolo andremo a vedere le regole che governano l’eterno scontro tra crittoanalisti e crittografi.

Da quando la crittografia ha fatto la sua comparsa è subito sorto il quesito inerente la sua efficacia nel celare l’informazione nei confronti di chi non deve giungere a conoscenza delle informazioni nascoste attraverso un codice (crittografico appunto). Inizialmente la sicurezza veniva mantenuta attraverso la segretezza dell’algoritmo utilizzato per occultare l’informazione ma, nel corso dei secoli, tale sicurezza si è spostata  dalla segretezza dell’algoritmo impiegato alla segretezza della chiave (principio di Kerckhoffs). Infatti, una regola fondamentale della crittografia moderna consiste nel supporre che il crittoanalista conosca il metodo di cifratura impiegato. L’ammontare degli sforzi necessari per sostituire un vecchio metodo, ogni volta che esso risulti compromesso, ha sempre reso poco pratico il mantenimento della segretezza della comunicazione crittografata, ed il fatto di pensare che l’algoritmo sia segreto, quando in realtà non lo è, rappresenta più un danno che un vantaggio.

Quanto fin qui detto vale per tutti i moderni algoritmi crittografici siano essi simmetrici (in cui la chiave di criptazione e quella di decriptazione coincidono) siano essi asimmetrici (in cui le due chiavi non coincidono).

Tecniche di crittoanalisi matematiche

Come accennato all’inizio, ciò che interessa maggiormente ai progettisti di sistemi crittografici risiede nella valutazione del livello di sicurezza e di robustezza dell’algoritmo crittografico nei confronti degli attacchi condotti da parte dei crittoanalisti. Ma in base a cosa possiamo dire che un codice crittografico è sicuro?

Da un punto di vista informazionale, possiamo dire che:

  • una tecnica crittografica è incondizionatamente sicura se il testo cifrato non contiene informazioni sufficienti a determinare in modo univoco il testo in chiaro;
  • una tecnica crittografica è computazionalmente sicura se il costo della violazione del codice supera il valore delle informazioni crittografate ed il tempo richiesto per la violazione è maggiore del tempo di vita utile delle informazioni criptate.

I crittoanalisti cercano di forzare i codici crittografici mediante un procedimento che prende il nome di crittoanalisi.

Abbiamo visto che oggigiorno l’analista è a conoscenza del funzionamento dell’algoritmo crittografico e l’azione crittoanalitica, condotta su un testo cifrato EK(Pt), si prefigge i seguenti obiettivi:

  • determinare il testo in chiaro Pt;
  • trovare la chiave K.

Questi risultati possono essere conseguiti mediante quattro tipologie di attacco crittoanalitico:

  • attacco mediante conoscenza del solo testo cifrato, in cui si conoscono solo l’algoritmo crittografico ed il testo cifrato (tecnica che si basa sull’analisi statistica del testo);
  • attacco mediante testo cifrato selezionato, in cui si sceglie il testo cifrato da cui si cerca di ottenere il relativo testo in chiaro;
  • attacco mediante testo in chiaro noto, in cui si conosce una particolare parte del testo in chiaro (metodo che rappresenta l’attacco più probabile, in grado di riconoscere la posizione di precise parole);
  • attacco mediante testo in chiaro scelto, in cui si cerca di ottenere la versione cifrata di un messaggio noto.

Tecniche di crittoanalisi non matematiche

E’ anche possibile tentare si forzare un testo cifrato mediante un attacco a forza bruta (brute force), in cui, noti l’algoritmo di codifica ed i testi in chiaro Pt e cifrato EK(Pt), si vuole individuare la chiave di codifica K.

In questo tipo di attacco si procede in modo esaustivo; questo fu, ad esempio, il metodo utilizzato dal controspionaggio polacco ed inglese per decifrare i messaggi tedeschi della macchina Enigma, ideata da Arthur Scherbius. Per ottenere il risultato infatti, gli alleati utilizzarono la famosa “Bomba” ideata da Marian Rejewski, una speciale macchina calcolatrice in grado di sottoporre il messaggio cifrato ad un attacco di forza bruta, fino a trovare la soluzione. La macchina venne poi perfezionata dagli inglesi, grazie al contributo del grande matematico Alan Turing.

Questo tipo di attacco, però, è vincolato da limiti di tipo temporale; infatti il triplo DES, ad esempio, costituisce un codice per il quale l’approccio della forza bruta richiede 2112 tentativi: anche con un miliardo di chips che effettuano un miliardo di operazioni al secondo, ci vorrebbero 100 milioni di anni per un attacco di forza bruta.

A quanto pare, almeno per il momento, sembra che i crittografi abbiano vinto sui crittoanalisti.

2 Comments

  1. gio22 9 agosto 2013
  2. Ivan Scordato 9 agosto 2013

Leave a Reply