Con la crittografia "a doppia chiave", si utilizza una coppia di chiavi diverse, ma in grado di funzionare solo l’una con l’altra. Una chiave è detta privata, cioè utilizzabile solo dal legittimo possessore, l’altra è detta pubblica perché resa nota a chiunque. In pratica, ciò che viene cifrato da una chiave può essere decifrato solo con l’altra chiave della coppia e viceversa.
Queste chiavi sono generate da un computer in base a funzioni matematiche (algoritmi) appositamente inventate, che rendono virtualmente impossibile riuscire a scoprire una chiave della coppia partendo dall’altra. In particolare, quanto maggiore è la lunghezza delle chiavi e complessa è la formula matematica, tanto minore sarà la probabilità di riuscire a "ricostruire" la chiave privata a partire dalla conoscenza della corrispondente chiave pubblica.
Ad esempio, nel 1997, gli RSA Laboratories degli Usa hanno stimato che una chiave lunga 512 bit generata con l'algoritmo RSA (inventato nel 1978 e tuttora tra i più forti ed utilizzati) poteva essere "scoperta" con i computer in possesso di una grande impresa abbastanza in fretta; per una chiave di 1024 bit sarebbero stati necessari tutti i computer del governo Usa al lavoro per qualche mese; mentre una chiave di 2048 bit è ancora al di là della capacità tecnologica attuale.
In considerazione di ciò, la normativa italiana ha fissato a 1024 bit la lunghezza minima delle chiavi per poter generare firme digitali legalmente valide e prevede per il futuro l'eventuale imposizione di chiavi più lunghe.
Grazie a queste caratteristiche, una delle due chiavi può essere resa pubblica, ad esempio su un sito Internet, mentre l'altra chiave deve rimanere privata, in possesso esclusivo del suo titolare.
Se il problema è comunicare in modo riservato con un altro soggetto, il mittente deve inviare il messaggio codificandolo con la chiave pubblica del destinatario e solo questi sarà in grado di decodificarlo grazie all'ausilio della propria chiave privata; neppure il mittente stesso sarebbe più in grado di farlo.
Viceversa, se il problema è garantire l’integrità (assenza di modifiche) ed origine del messaggio, è sufficiente che il mittente utilizzi la propria chiave privata per cifrarlo e chiunque sia in possesso della sua chiave pubblica sarà in grado, oltre che di decifrarlo, di avere la certezza che nessun’altra chiave, se non quella privata legata alla chiave pubblica, possa avere generato il messaggio stesso. Questa procedura è alla base della firma digitale.
Lo svantaggio, rispetto al sistema a chiave unica, è costituito dall’utilizzo di algoritmi che comportano operazioni molto più complesse. Per questo motivo, nella generazione della firma digitale si utilizza un passaggio intermedio che accelera il processo, ossia l’estrazione di un’impronta del documento da cifrare.
D’altro canto, lo schema crittografico a chiave pubblica risolve i problemi di coloro che non sono in grado di scambiarsi la singola chiave in modo sicuro, che non hanno mai avuto precedenti contatti, o che non sanno chi leggerà il messaggio cifrato, ma vogliono garantirne l'integrità e la fonte.
Per quanto riguarda la protezione della chiave privata, è fondamentale che gli utilizzatori la custodiscano gelosamente e non la rivelino a nessuno: se questa fosse diffusa, l'intero meccanismo diverrebbe inutile.
La chiave dovrebbe essere quindi memorizzata su un computer o su altro supporto (ad esempio una carta a microchip) protetto da una password o un PIN – Personal Identification Number - (come il numero personale della carta Bancomat) o da un sistema di riconoscimento biometrico.
In ogni caso, a fronte di divulgazione involontaria, smarrimento o furto della chiave privata, il titolare dovrà premurarsi di informare tempestivamente coloro che gli inviano messaggi cifrandoli con la sua chiave pubblica (il proprietario potrebbe non essere più in grado di decifrarli se privo della chiave privata, mentre i dati risulterebbero accessibili ai terzi in possesso della chiave stessa).
Su questi temi la normativa italiana, ai fini della validità legale della firma digitale, ha definito alcune regole tecniche specifiche:
|