Storia della crittografiaCifrari polialfabetici
Il cifrario di Vernam
Il cifrario di Vigenere - Il codice Baudot - La macchina Lorenz - Hagelin RT

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}
Pagina interattiva

Il cifrario di Vigenere ha il suo tallone d'Achille nel fatto di essere un insieme di cifrari di Cesare intercalati a distanza fissa, cosa che ne rende possibile e anzi molto facile la crittanalisi, tanto più se la chiave è breve.

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 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).


Il cifrario può essere provato interattivamente alla pagina Vernam interattivo.


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.

Il Vernam nella pratica

Nonostante questa 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.

Tra le macchine cifranti ispirate al sistema Vernam, oltre ai sistemi a rotori che generano sequenze pseudocasuali, come la già citata Lorenz, furono usati sistemi a nastro perforato, che se generati con precedimenti realmente casuali, realizzano un vero cifrario di Vernam e sono quindi inattaccabili. Un esempio di questo genere è la macchina Hagelin RT con modulo a nastro.



Fonti bibliografiche e collegamenti



Valido HTML 4.01!