(Questo intervento è tratto dall'articolo pubblicato in "Informatica e Società" su MCmicrocomputer n. 168, dicembre 1996)
Se l'uso di tecniche crittografiche per proteggere i documenti
è antico quanto la scrittura stessa, solo l'avvento del computer ha permesso di
realizzare nella pratica dei sistemi di crittografia di nuova concezione basati
su principi materialmente impossibili da applicarsi con sistemi manuali o
meccanici. Si tratta di una nuova classe di cifrari che godono di molte
importanti proprietà: sono molto sicuri ma al contempo facili da gestire; sono
immuni dai principali problemi dei sistemi di crittografia classici, primo fra
tutti quello della gestione e distribuzione delle chiavi; sono in grado di
fornire "servizi" aggiuntivi quali la "firma elettronica" e
la certificazione del mittente.
Tutti si basano sul concetto di "chiave asimmetrica", del tutto
assente nella crittografia classica. Tutti i cifrari tradizionali, infatti, si
comportano nella pratica come si comporta la normale serratura della nostra
porta, che apriamo e chiudiamo con una stessa chiave. Nel caso specifico, la
chiave crittografica usata per cifrare un messaggio è la stessa che poi viene
applicata per decifrarlo. Un cifrario di questo tipo si chiama "simmetrico".
Nel 1976 due crittologi americani, Diffie ed Hellmann, pubblicarono un
fondamentale lavoro teorico nel quale, ipotizzando di poter disporre di un
cifrario "asimmetrico", dimostravano la fattibilità di
sistemi crittografici di nuovo tipo, adatti alla crittografia di massa mediante
il concetto delle "chiavi pubbliche".
In pratica un sistema del genere è dotato di due chiavi distinte, che sono una
l'inverso dell'altra: se una viene usata per la cifratura la seconda deve essere
usata decifratura, e viceversa. Punto fondamentale del sistema è che le due
chiavi devono essere indipendenti: ossia la conoscenza di una delle due chiavi
non deve dare alcuna informazione utile alla ricostruzione dell'altra.
Dato un cifrario del genere, vediamo con quale elegante
meccanismo si riesce ad istituire un sistema crittografico pubblico. Ogni utente
del sistema si genera (da solo, è importante!) la propria coppia di chiavi, che
chiameremo "diretta" e "inversa". Tutte le
chiavi dirette vengono inserite in una lista pubblica, una specie di grande
elenco del telefono di tutti gli utenti cui tutti hanno libero accesso; le
chiavi inverse rimangono invece segrete.
Se l'utente A vuole mandare all'utente B un messaggio che solo B può leggere,
non fa altro che cifrarlo con la chiave diretta di B, che può trovare
nell'elenco pubblico. Il messaggio così cifrato può ora essere letto solo da
B, perché solo lui è in possesso della propria chiave inversa che è l'unica
in grado di decifrarlo. Nemmeno lo stesso A può rileggere il proprio messaggio
una volta che lo ha cifrato con la chiave pubblica di B! Come si vede il sistema
è assolutamente sicuro, ma solo a patto che le chiavi inverse rimangano sempre
segrete: da qui la necessità che ciascun utente generi le proprie chiavi e non
comunichi a nessuno la propria chiave inversa.
Vediamo ora invece come si può certificare l'identità del mittente di un messaggio privato. Diciamo che A vuole mandare a B un messaggio tale che non solo esso possa essere letto soltanto da B, ma anche tale che B possa avere l'assoluta certezza che nessun altro all'infuori di A possa averlo creato. Per far ciò, A cifra dapprima il messaggio usando la propria chiave segreta; poi cifra ulteriormente il messaggio risultante usando la chiave pubblica di B. A questo punto B, per leggere il messaggio, deve compiere le seguenti operazioni: dapprima decifra il messaggio utilizzando la propria chiave privata, come nel caso precedente; ottiene così un messaggio che però è ancora in cifra, per cui B procede a decifrarlo ulteriormente usando però questa volta la chiave pubblica di A. Solo adesso il messaggio è in chiaro e può essere letto; e B (o un giudice di tribunale...) ha la assoluta certezza che esso sia stato originato proprio da A, perché solo lui può aver usato la propria chiave segreta per applicargli la seconda cifratura.
Come caso particolare A può anche mandare messaggi pubblici, ossia diretti a tutti e non segreti, in modo però che risulti certamente che proprio lui ne è l'autore. Per far ciò basta che li cifri con la propria chiave segreta: chiunque può infatti decifrarli utilizzando la chiave pubblica di A, e questo basta a dimostrare che l'autore del messaggio è proprio A dato che solo lui poteva conoscere la propria chiave segreta.
Questa nuova classe di cifrari a chiave pubblica è diventata realtà nel 1978, quando tre ricercatori del MIT (Rivest, Shamir e Adleman) scoprirono la possibilità reale di costruire cifrari a chiave asimmetrica utilizzando particolari proprietà formali dei numeri primi con qualche centinaio di cifre. In realtà l'algoritmo da essi inventato, che dalle loro iniziali si chiama oggi RSA, non è sicuro in termini matematicamente dimostrabili, dato che esiste la possibilità teorica che nuove scoperte matematiche possano minarne la base; ma tutti gli studiosi sono d'accordo nel ritenere che tale possibilità sia enormemente improbabile, e dunque l'algoritmo RSA viene oggi ritenuto di massima affidabilità.
Da notare che Rivest, Shamir e Adleman hanno provveduto a
brevettare il proprio algoritmo ed a costituire una società (la RSA Data
Security) per tutelarne i diritti commerciali. La RSA, recentemente
acquistata dalla Security Dynamics, ha venduto i diritti dell'algoritmo
a molti operatori di rilievo quali Netscape, Microsoft ed altri; ed una variante
del sistema RSA è utilizzato nel diffusissimo pacchetto di crittografia
chiamato PGP (Pretty Good Privacy), disponibile liberamente nel pubblico
dominio. Oggi dunque l'algoritmo RSA costituisce il fondamento dei sistemi
crittografici su cui si stanno basando i meccanismi di sicurezza ed
autenticazione di Internet e della futura società "senza carta".
(da MCmicrocomputer n. 168 - dicembre 1996)
Pagina precedente
Sommario attualità
FORUM MULTIMEDIALE LA SOCIETÀ DELL'INFORMAZIONE