![]() |
![]() CrittanalisiParallelamente alla crittografia si è sviluppata un'altra disciplina il cui scopo è quello di individuare delle tecniche (attacchi) per scoprire il contenuto di messaggi cifrati senza conoscerne la chiave di cifratura. Tale disciplina è nota come crittanalisi.La capacità di un protocollo crittografico di resistere agli attacchi viene definita robustezza: più un protocollo è robusto, più sofisticati sono gli attacchi a cui deve essere sottoposto per essere violato. Due sono i parametri fondamentali che caratterizzano la robustezza di un protocollo crittografico:
Il primo attacco che viene considerato per valutare la robustezza di un protocollo crittografico è basato sulla ricerca esaustiva (o a forza bruta) nello spazio delle chiavi. L'attacco viene portato a termine assumendo di conoscere l'algoritmo di codifica e di avere a disposizione un testo cifrato: si prova a decrifrare il testo cifrato usando ad una ad una tutte le chiavi possibili fino a che si trova quella corretta. Questo tipo di attacco consente di rompere facilmente tutti i protocolli crittografici che usano chiavi la cui lunghezza è attorno ai 40 bit. In questo caso lo spazio delle chiavi contiene 1.099 miliardi di elementi diversi. Per esempio, l'algoritmo a chiave simmetrica DES, vedi il paragrafo Crittografia a chiave privata, è stato recentemente rotto, pur non essendo state trovate debolezze nell'implementazione che permetterebbero di risalire al messaggio senza essere in possesso della chiave. L'attacco all'algoritmo eseguito dalla Cryptography Research (http://www.cryptography.com) è stato infatti del tipo forza bruta, cioè sono state provate tutte le possibili chiavi in sequenza fino a quando non si è giunti ad un messaggio significativo. Tutti gli algoritmi crittografici possono essere rotti con questo tipo di attacco; il mezzo per difendersene è quello di aumentare la lunghezza della chiave (o chiavi) in modo da aumentare sensibilmente il numero delle combinazioni da provare. Come abbiamo già detto in precedenza, l'algoritmo DES utilizza chiavi a 56 bit, cioè è possibile utilizzare esattamente 256 (circa 72 milioni di miliardi) chiavi differenti per poter cifrare un messaggio. All'inizio degli anni '70, quando venne ideato il DES, questo valore sembrava più che sufficiente per ripararsi da possibili attacchi a forza bruta, grazie anche alla quantità, qualità e costo delle risorse di calcolo disponibili a quei tempi. Il continuo aumento della potenza di calcolo disponibile, ad un prezzo sempre più basso, ha permesso il finanziamento di alcuni progetti mirati a decifrare brani di messaggi cifrati con DES. L'ultimo, finanziato dalla Electronic Frontier Foundation (http://www.eff.org), ha portato alla costruzione di un sistema ad hoc chiamato Deep Crack. Il costo dell'investimento è stato di poco più di 200.000 dollari. Deep Crack è un chip specializzato che implementa in hardware l'algoritmo DES per cifrare e decifrare in rapida sequenza lo stesso blocco di 64 bit del messaggio con tutte le chiavi possibili. La frequenza del Deep Crack è di 40 Mhz che consente di esaminare 2.500.000 chiavi al secondo per ogni unità di elaborazione. Ogni chip contiene 24 unità di elaborazione, per una capacità di analisi di 60 milioni di chiavi al secondo. RSA, vedi il paragrafo Crittografia a chiave pubblica, basa la propria sicurezza contro l'attacco di un crittanalista sulla difficoltà di fattorizzare un numero sufficientemente grande. Il più grande numero fattorizzato fino ad oggi è composto da 129 cifre (circa 430 bit) utilizzando 1600 workstation per circa 8 mesi. In generale, i protocolli a chiave asimmetrica devono operare con chiavi di lunghezza superiore a quelli simmetrici per poter garantire la stessa robustezza. Nella tabella seguente viene illustrata la corrispondenza tra le dimensioni di chiavi simmetriche e asimmetriche che garantiscono lo stesso livello di robustezza.
|