UNIVERSITÀ DEGLI STUDI DELL’INSUBRIA

Facoltà di Scienze matematiche, fisiche e naturali

 

Corso di Laurea in

SCIENZE DELLA COMUNICAZIONE

-------æ-------

 

Titolo insegnamento:  SCRITTURE SEGRETE

 

Docente: Dott. Nicola AMATO

 

-------æ-------

 

 

Lezione n. 4

 

 

Nozioni basilari di crittoanalisi.

 

 

 

 

Che cos’è la crittoanalisi

 

La crittoanalisi si può definire come la scienza che si occupa di decrittare codici segreti, violare schemi di autenticazione e, in generale, “rompere” protocolli di crittografia.

Il crittoanalista è colui che, come avrete già capito, ha il compito di scoprire i punti deboli degli algoritmi e quindi violarli. La potenza dei computer moderni può aiutare moltissimo il crittoanalista, ma molti sistemi che possono sembrare estremamente sicuri possono essere infranti semplicemente con carta e penna.

Il crittoanalista analizza il contenuto di un testo cifrato ed attraverso tecniche statistiche/matematiche può riuscire ad ottenere informazioni sul testo in chiaro.

Generalmente un crittoanalista entra in gioco nella fase di progettazione di un algoritmo di crittografia, con il compito di scovare all’interno di quest’ultimo eventuali punti deboli. In quest’ottica gli algoritmi considerati più sicuri sono quelli il cui codice è pubblico, perchè per vari anni sono stati oggetti di analisi e tentativi di rottura. Altri algoritmi di crittografia, invece, associano il proprio grado di sicurezza alla segretezza degli algoritmi stessi, ma proprio per questo non vengono considerati sicuri al pari di quelli resi pubblici: il codice può infatti nascondere dei bug, la cui scoperta rende inefficace l’algoritmo.

Tipi di attacchi da crittoanalisi

 

 

Gli attacchi fondamentali che possono essere perpetrati da parte di un crittoanalista sono solitamente di sei tipi. Qui di seguito li classificheremo in ordine crescente di qualità dell’informazione in possesso del crittoanalista:

1.      Attacco ciphertext-only: in questo caso il crittoanalista è in possesso del solo testo cifrato ottenibile facilmente analizzando i pacchetti in transito sulla rete. La possibilità di successo di questo tipo di attacco è molto remota e necessita di un’enorme quantità di dati cifrati.

2.      Attacco known-plaintext: il crittoanalista è in possesso del testo cifrato e del corrispondente testo in chiaro. Grazie a questo tipo di informazione è possibile risalire alla chiave segreta. Sebbene possa non servire in questo specifico caso, l’acquisizione della chiave segreta equivale a carpire il “modus operandi” di un determinata persona o azienda che usa crittografare i propri dati. Dal momento che di solito una stessa chiave viene utilizzata per diversi documenti e per un certo periodo di tempo, l’acquisizione della chiave equivale quindi a rendere vulnerabile anche altri testi cifrati.

3.      Attacco chosen-plaintext: partendo dalla scelta di un eventuale testo in chiaro, il crittoanalista calcola il testo cifrato con l’intenzione di ottenere la stessa sequenza di dati cifrati in suo possesso. In questo caso, il crittoanalista conosce per sommi capi quelli che potrebbero essere i contenuti del testo in chiaro. Tenta allora di crittografare questo probabile testo effettuando tanti tentativi fino a che non risulta simile al testo cifrato in suo possesso, modificando di volta in volta sia l’eventuale testo in chiaro sia la chiave di cifratura (non l’algoritmo in quanto si suppone sempre noto). 

4.      Attacco adaptive-chosen-plaintext: è una variante dell’attacco di tipo chosen-plaintext che modifica la scelta del testo in chiaro sulla base del risultato dell’analisi effettuata in precedenza.

5.      Attacco chosen-ciphertext: al contrario dell’attacco chosen-plaintext, in questo caso il crittoanalista sceglie il testo cifrato con l’intenzione di decriptarlo ottenendo il testo in chiaro in suo possesso. Questo tipo di attacco è generalmente applicato in sistemi a chiave pubblica.

6.      Attacco adaptive-chosen-ciphertext: partendo sempre dal testo cifrato, la scelta di quest’ultimo viene modificata in base ai risultati dell’analisi precedente.

 

Oltre a questi attacchi fondamentali, esistono inoltre altre tipologie di crittoanalisi. Vediamole brevemente.

 

·        Crittoanalisi statistica: avviene attraverso lo studio della frequenza dei caratteri o sottostringhe del testo cifrato.

·        Brute force: letteralmente forza bruta. Consiste nel calcolare tutte le possibili combinazioni di chiavi. Il metodo “forza bruta” è un algoritmo di risoluzione di un problema che consiste nel verificare tutte le soluzioni possibili fino a che non si trova quella effettivamente corretta. Il metodo è anche noto come ricerca esaustiva della soluzione. In ambito crittoanalitico questo metodo si utilizza in genere per trovare la chiave di un sistema che utilizza un cifrario di cui non si conosca alcun attacco migliore. Nell’ambito della sicurezza informatica questo metodo si utilizza soprattutto per trovare la password di accesso ad un sistema.  La differenza principale tra attaccare una chiave crittografica e attaccare una password è che la prima è solitamente stata generata in modo totalmente casuale mentre una password, per la stessa natura di dover essere ricordata e inserita da esseri umani, è generalmente meno densa di informazioni e spesso semantica; quindi facile da individuare.

·        Man-in-the-middle: sfruttando il sistema dei keyserver un intruso può posizionarsi tra un mittente e destinatario e scambiare le loro chiavi pubbliche e privata. Cosa difficilissima. Oppure generare una chiave pubblica utilizzando nome ed e-mail non sue.

·        Crittoanalisi differenziale: si analizzano le distanze numeriche dei caratteri del testo cifrato, con l'ausilio di sofisticate tecniche matematiche in unione a degli algoritmi molto veloci.

·         Crittoanalisi lineare: è basata sullo studio a coppia di plain-text e cipher-text.