Breve (Oserei Dire Brevissima) Introduzione alla Crittografia Contemporanea

Fino a qualche decennio fa la crittografia era un argomento riservato a pochi esperti e utilizzato quasi esclusivamente in ambito militare o spionistico. Oggi la crittografia è ovunque, naturalmente nei computer ma anche nei telefoni, nelle trasmissioni televisive. La crittografia è determinante per l’esistenza del commercio elettronico.

La crittografia esiste da millenni. Da sempre le vengono consegnate le informazioni che dovrebbero rimanere riservate o circoscritte. Ha avuto uno sviluppo quantitativo nello scorso secolo grazie all’introduzione del calcolo elettronico. Ma la potenza di calcolo dei moderni computer non ha contribuito a creare codici più sicuri. Gli stessi concetti matematici alla base dei sistemi crittografici attualmente più avanzati erano stati introdotti da grandi del passato come Gauss e Riemann (e altri).

Guerra Fredda

Attualmente il sistema di crittografia più sicuro rimane il codice Vernam considerato cifrario perfetto. Il codice Vernam (o cifrario di Vernam), si basa su di un codice ancora più antico, il cifrario di Vigenerè aggiungendo però l’elemento della non riutilizzabilità della chiave segreta, introducendo di fatto il concetto di One-Time Pad (OTP); e aggiungendo anche l’elemento della lunghezza della chiave stessa che deve essere lunga quanto il dato da cifrare.

Questo sistema è stato abbondantemente utilizzato durante la Guerra Fredda. Le informazioni erano sicure, a meno che i cifrari non cadessero in mano nemica; oppure che gli agenti non utilizzassero erroneamente più volte la stessa chiave usa-e-getta. Pare che sia accaduto poche volte.

Il codice Vernam  è molto sicuro: ma non è particolarmente comodo. Il problema dello scambio delle chiavi su canali non protetti è sempre stato un problema di difficile soluzione. In questo caso la tecnologia ha dato una mano non indifferente.

Spie e Matematici

La potenza di calcolo e il potenziale della crittografia nell’ambito del commercio globalizzato fece si che negli anni ’70 dello scorso secolo argomenti che fino a pochi anni prima, e per tutto il tempo della storia del pensiero umano precedente, erano stati circoscritti nel rarefatto mondo dei cultori della teoria dei numeri, vennero presi in considerazione per risolvere il problema dello scambio delle chiavi crittografiche. Fu così che  il GCHQ britannico, ovvero l’agenzia gemella della NSA statunitense, scoprì la crittografia asimmetrica. L’invenzione non ebbe seguito operativo e rimase segreta fino alla seconda metà degli anni ’90.

A riscoprirla e farla germogliare nel mondo reale furono alcuni matematici, informatici e crittografi ormai leggendari: Diffie, Hellman, Rivest, Shamir, Adleman.

Esistono tre tipi di crittografia: Simmetrica, Asimmetrica,Hash.

L’uso di uno di questi tipi non è esclusivo. Questi sistemi si completano a vicenda. Per esempio, durante una navigazione Internet, nella fase di autenticazione per effettuare un pagamento, viene stabilita una connessione sicura (SSL). Questa fase utilizza lo scambio delle chiavi tramite crittografia asimmetrica. Successivamente le chiavi così ottenute saranno utilizzate per instaurare un canale cifrato simmetrico.

Crittografia Simmetrica

La crittografia simmetrica è la forma di crittografia più nota. C’è un messaggio “in chiaro” (plaintext) da trasmettere in modo riservato; una chiave segreta utilizzata per cifrare il messaggio, chiave che deve essere condivisa tra le parti che trattano il messaggio: il destinatario dovrà essere in possesso della chiave segreta per poter decifrare il messaggio.
L’ultimo elemento è l’algoritmo di codifica. Contrariamente a quello che si potrebbe ingenuamente supporre, l’algoritmo può anche non essere segreto. L’elemento di segretezza viene fornito unicamente dalla chiave. L’algoritmo dovrebbe anzi essere pubblico ed essere stato sottoposto a certificazioni da gruppi di lavoro autorevoli e separati.

Crittografia Asimmetrica

Descrivendo la crittografia simmetrica ho messo in risalto il problema dello scambio della chiave segreta. Se devo trasmettere un messaggio in Cina e io mi trovo in Europa, devo essere sicuro che il destinatario possegga la chiave segreta. Se non l’abbiamo concordata di persona prima della partenza devo in qualche modo recapitare la chiave segreta su di un canale protetto.
E qui c’è un paradosso: se ho un canale sicuro dove inviare la chiave segreta, perché non utilizzare quel canale anche per recapitare il messaggio segreto? Il problema è che il canale sicuro è la crittografia: crittografia che non funziona se non si conosce la chiave segreta…
Per risolvere questo paradosso è entrata in scena la crittografia asimmetrica, utilizzata per lo scambio delle chiavi crittografiche.
La crittografia asimmetrica si basa sul principio dei problemi asimmetrici: facile da formulare ma difficile da risolvere. Ci vogliono pochi millisecondi per moltiplicare due numeri primi, ma ci vuole parecchio più tempo per fattorizzare il risultato. Cosa ancor più vera se i numeri in questione sono composti da centinaia di cifre.
Con questo tipo di crittografia oltre al messaggio, alla chiave segreta e all’algoritmo, si aggiunge un nuovo elemento: la chiave pubblica. Il mittente cifra il messaggio con la chiave pubblica del destinatario. La chiave pubblica può essere trasmessa su qualsiasi canale. Un messaggio cifrato con un chiave pubblica può essere decifrato solo dal possessore della chiave privata (segreta) “gemella” della chiave pubblica. Neppure chi cifra un messaggio può decifrarlo se non è in possesso della chiave privata.
La cosa curiosa è che a differenza del codice Vernam, la sicurezza di questo meccanismo non è dimostrata. Se domani venisse scoperta una scorciatoia per la fattorizzazione dei numeri primi tutto il giochino andrebbe in malora. La crittografia asimmetrica è nella mani di Riemann e della sua ipotesi.

Hash

Le funzioni hash sono funzioni non reversibili che producono un risultato di lunghezza fissa partendo da un parametro di lunghezza variabile. Queste funzioni sono utilizzate per cifrare le password. Le password così cifrate non possono essere decifrate (ma possono essere craccate).
Queste funzioni sono utilizzabili anche per controllare l’integrità di un dato. Calcolare l’hash di un file significa ottenere un’impronta digitale univoca: ogni file ha una propria impronta. L’alterazione di un solo bit di informazione del file modificherebbe di conseguenza la firma, evidenziando la discrepanza.
In genere nei siti dove si può effettuare il download di file di grosse dimensioni o immagini iso, accanto al file stesso viene fornito il valore hash (md5 o sha1). Se alla fine del download si rileva l’impronta digitale del file e la si confronta con quella fornita online si ha la certezza che il file è integro e si evita di sprecare il tempo della masterizzazione e il cd.
La firma dei file viene utilizzato anche in computer forensics. All’atto del sequestro di un hard-disk, viene effettuata una copia fisica; quindi a garanzia delle parti coinvolte, la copia viene firmata. L’alterazione o la manomissione dei dati su disco verrebbe inesorabilmente evidenziata al momento della verifica della firma.

2 Commenti

1 Trackback / Pingback

  1. GSM Craccato:Usare il Cellulare Non è Mai Stato Così Pericoloso | PillolHacking.Net

I commenti sono bloccati.