Il cifrario di Vernam
| Addizione di caratteri con il codice Baudot |
chiaro c |
A T T E N Z I O N E
11000 00001 00001 10000 00110 10001 01100 00011 00110 10000
|
verme v |
W I A P F I L K M S
11001 01100 11000 01101 10110 01100 01001 11110 00111 10100
|
cifrato c XOR v |
00001 01101 11001 11101 10000 11101 00101 11101 00001 00100
T P W Q E Q H Q T {sp}
|
Ben diversa sarebbe però la situazione se la chiave avesse lunghezza infinita o, che in fondo è lo stesso, fosse lunga come il testo chiaro (o meglio come la somma di tutti i testi chiari).
È questa l'idea proposta da
Gilbert S. Vernam nel 1917 e
brevettata nel 1919, per il cifrario che porta il suo nome; viene generata una chiave del tutto casuale, e dunque imprevedibile, lunga come il testo; a questo punto il chiaro e la chiave vengono "sommati" proprio come nel cifrario di Vigenere. L'unica differenza è che nel Vernam si sommano non tanto gli ordinali delle lettere ma i singoli bit che codificano la lettera nei codici usati nelle telecomunicazioni (allora il
codice Baudot, oggi il codice ASCII) con
un'addizione modulo 2, che ha anche il vantaggio di essere reversibile, e quindi utile anche per decifrare. Da un punto di vista logico equivale ad una disgiunzione esclusiva
XOR (XOR = aut aut).
In tal modo la debolezza del Vigenere è superata e anzi
Claude Shannon, il padre della Teoria dell'Informazione, ha dimostrato nel 1949 che ogni cifrario "teoricamente sicuro" è un cifrario di Vernam (e viceversa). Infatti se la chiave è totalmente casuale e lunga come il testo allora il testo cifrato non contiene alcuna
informazione sul testo chiaro, ed è del tutto al sicuro dagli attacchi della
crittanalisi statistica.
Per avere una sicurezza assoluta non si dovrebbe mai riutilizzare la stessa chiave; se si utilizza più volte la stessa chiave infatti questa torna ad essere più breve del messaggio, o meglio della somma di tutti i messaggi e il cifrario non è più perfetto. Per questo motivo questo tipo di cifrario viene detto a chiave non riutilizzabile (One time pad).
Perché allora non usiamo tutti questo cifrario? Il problema è che la chiave lunga come il testo deve essere preventivamente comunicata al destinatario in modo sicuro e ... qui il gatto si morde la coda, visto che non sempre è disponibile un canale sicuro di comunicazione.
I due corrispondenti dovrebbero incontrarsi periodicamente in luogo sicuro e generare una sequenza casuale lunghissima, sufficiente per
un gran numero di messaggi, da utilizzare un po' alla volta. Una volta esaurita la chiave dovranno incontrarsi di nuovo, rigenerare la chiave etc.etc.
Per semplificare le cose si potrebbe pensare di generare la chiave in modo
pseudo-casuale, secondo una qualche regola nota e riproducibile dal destinatario; questa idea diede luogo nel periodo tra le due guerre mondiali a una generazione di macchine cifranti, tra le quali la
macchina Lorenz usata dai tedeschi nella II guerra mondiale. Ma così il cifrario non è più assolutamente sicuro, perché la chiave non è più realmente lunga come il testo, la vera chiave è la regola generatrice!. Tanto è vero che la macchina Lorenz
fu forzata dagli inglesi sin dal 1941.
Nonostanti queste difficoltà il cifrario di Vernam sembra sia stato usato effettivamente negli anni della guerra fredda dai servizi segreti dell'Est e per il telefono rosso tra Washington e Mosca. Un cifrario di Vernam era anche
quello trovato addosso al Che Guevara dopo la sua uccisione nel 1967.
Fonti bibliografiche e collegamenti