Copyright © 1986 Università di Firenze.All rights reserved.
Free license available.
Revisori: Franco Pirri e Maurizio Lunghi
Forza degli algoritmi crittografici
Attacchi crittoanalitici
appendice 1
In generale la sicurezza dei sistemi di crittografia è strettamente connessa alla loro resistenza nei confronti di tutti gli attuali tentativi di rottura condotti ai loro danni; occorre dunque estrema attenzione in fase di progettazione.
FORZA DEGLI ALGORITMI CRITTOGRAFICI 
In teoria, ogni metodo crittografico che si basa sull'utilizzo di una chiave può essere rotto provando tutte le possibili chiavi in sequenza.
Tale tipo di attacco è detto della forza bruta, e richiede un tempo di computazione esponenzialmente crescente con la lunghezza della chiave.
Ad esempio, una chiave di 32 bits necessita di 2^32 operazioni (circa 10^9), che corrispondono all'incirca alle prestazioni che può offrire un home computer; un sistema con chiavi di 40 bits (per esempio la versione esportabile di (RC4) ha bisogno di 2^40 operazioni, che è una potenza di computazione disponibile in molte università e piccole aziende; un sistema con chiavi di 56 bits può essere violato con uno speciale hardware il cui costo è però accessibile alle grandi aziende, ai governi e purtroppo alle organizzazioni criminali; chiavi di 64 bits possono esser svelate attualmente dai maggiori governi ma lo saranno ben presto anche dalle maggiori compagnie e dalle organizzazioni malavitose; chiavi di 80 bits potrebbero essere rivelate in un futuro prossimo, cosa invece non prevedibile per le chiavi di 128 bits.
Se prendiamo come esempio il DES il suo progetto originale prevedeva una lunghezza della chiave maggiore degli attuali 56 bits, e questo induce a sospettare che l' IBM sia stata influenzata dalla NSA nella stesura del progetto finale, in modo che la chiave del DES potesse resistere a tutti gli attacchi allora conosciuti ma non a quelli portati al cifrario dai potenti e sofisticati mezzi a sua disposizione.
La debolezza del DES è stata comunque provata qualche anno fa, quando fu costruita una macchina (costo 1 milione di dollari) contenente 57000 chip, ciascuno dei quali era in grado di provare 50 milioni di codici DES al secondo, e che complessivamente impiegava 7 ore per provare tutte le chiavi DES (dunque 3.5 ore in media per trovare la soluzione).
Se si pensa che con 100 milioni di dollari il tempo necessario per trovare la chiave giusta scendeva a 2 minuti, non è difficile capire che con il budget a disposizione dei governi possa essere costruita una macchina che rompa il cifrario in pochi secondi.
Per quanto riguarda invece la crittografia a chiave pubblica, la lunghezza delle chiavi è molto maggiore di quella delle chiavi simmetriche. Qui il problema non è quello di indovinare la chiave giusta, bensì quello di trovare la chiave segreta che si accoppia con quella pubblica.
Nel caso di RSA, questo è equivalente a fattorizzare un numero intero molto grande, che ha due fattori primi altrettanto grandi; per altri crittosistemi è invece equivalente a eseguire una operazione discreta di modulo tra un logaritmo e un grande numero intero.
Per dare un idea della complessità, per un crittosistema RSA, un numero di 256 bits è facilmente fattorizzato da chiunque disponga di un semplice home computer; chiavi da 384 bits possono essere violate da gruppi di ricerca universitari o da alcune compagnie; crittosistemi a 512 bits possono esser rotti dai maggiori governi; chiavi da 768 bits saranno probabilmente violate tra pochissimo; chiavi a 1024 sono per il momento considerate sicure a meno di vistosi progressi fatti nel campo della fattorizzazione, mentre le chiavi di 2048 bits possono esser ritenute sicure almeno per una decina di anni.
Notiamo infine che la forza di un crittosistema molto spesso coincide con il suo punto più debole; per questo, nessun aspetto deve esser trascurato in fase di progettazione, dalla scelta dell'algoritmo alla distribuzione della chiave e alle sue modalità di utilizzo.
La crittoanalisi è l'arte di rivelare le comunicazioni crittate senza la conoscenza della chiave giusta. Esistono oggi numerose tecniche di crittoanalisi, quelle più diffuse, e che dovrebbero esser note a tutti gli implementatori di crittosistemi, sono:
appendice 1
ATTACCHI CRITTOANALITICI
Attacco a solo testo cifrato
Attacco a testo chiaro conosciuto
Attacco a testo chiaro scelto
Attacco "uomo in mezzo"
Un modo per prevenire questo tipo di attacco è quello di fare un hashing della chiave segreta e firmarla, e poi inviarla al corrispondente che può così verificare l'autenticità del mittente e del messaggio.
Attacco "timing"
Bibliografia e sorgenti d'informazione