Telemat Lab's home page


Copyright © 1986 Università di Firenze.All rights reserved.

Free license available.

MIDDLE

di Cecconi Alessia e Gallileo Giovanni

Revisori: Franco Pirri e Maurizio Lunghi


appendice 1

home pageIndicePrec.Succ.

APPENDICE 1

RESISTENZA DEI CRITTOSISTEMI

e CRITTOANALISI

Forza degli algoritmi crittografici
Attacchi crittoanalitici


appendice 1

FORZA DEGLI ALGORITMI CRITTOGRAFICI

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.
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.


appendice 1

ATTACCHI CRITTOANALITICI

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:

Attacco a solo testo cifrato
L'intruso non conosce nulla circa il contenuto del messaggio, e deve quindi lavorare soltanto sul ciphertext. In pratica esiste la possibilità di indovinare qualcosa circa il testo chiaro, e questo perchè, ad esempio, molti messaggi hanno testate di formato fisso, oppure iniziano in modo facilmente intuibile. Potrebbe anche essere facile indovinare una parola contenuta in un certo blocco di testo cifrato.

Attacco a testo chiaro conosciuto
L'attacker conosce oppure può indovinare il testo chiaro corrispondente ad alcune parti di testo cifrato. Il suo compito è quello di decifrare il resto del ciphertext avvalendosi di queste informazioni. Ciò può esser fatto, ad esempio, determinando la chiave usata per crittare i dati.

Attacco a testo chiaro scelto
Il crittoanalista è in grado di ottenere qualsiasi testo lui voglia benchè crittato con la chiave sconosciuta. Il suo compito è quello di determinare proprio la chiave di crittazione. Alcuni algoritmi, in particolar modo RSA sono estremamente vulnerabili a questo tipo di attacco, per cui quando essi sono usati, devono esser prese le dovute precauzioni in fase di progettazione affinchè un intruso non abbia mai a disposizione quantità arbitrarie di testo chiaro.

Attacco "uomo in mezzo"
Questo tipo di attacco è efficace nei confronti delle comunicazioni di crittografia, come ad esempio nel caso dei protocolli per lo scambio di chiavi. Supponiamo che due corrispondenti stiano scambiandosi la chiave tramite, per esempio, l'algoritmo di Diffie Helmann ed un intruso si pone nel mezzo della linea di comunicazione tra i due. Egli può eseguire uno scambio di chiavi separato con ciascuno dei due, dando ovviamente ad essi la netta impressione di aver scambiato la chiave tra loro e basta. In realtà invece l'attacker potrà decrittare un messaggio proveniente da uno dei due, leggerlo ed eventualmente modificarlo, e successivamente ricrittarlo ed inviarlo all'altro in maniera perfettamente trasparente.
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"
Questo tipo di attacco è relativamente recente ed è basato su ripetute misurazioni dell'esatto tempo di esecuzione delle operazioni di esponenziazione. Questo attacco è efficace contro RSA, Diffie Helmann, e contro il metodo delle curve ellittiche.

Bibliografia e sorgenti d'informazione


Telemat Lab's home page
home pageIndicePrec.Succ.


Explore the TELEMAT Site !!!

Ultimo aggiornamento: 24/1/97