Questo sistema funziona su dati binari (bit) invece che con le lettere.
Prima di continuare definiamo l'operatore logico XOR.
Notazione: ⨁
Lo XOR (or esclusivo: eXclusive OR) ritorna vero se gli elementi che gli vengono passati sono diversi.
A | B | XOR |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
A differenza del normale OR che ritorna vero se uno degli elementi passati è vero (1).
Il sistema di Vernam può essere definito come segue:
dove:
La decrittazione di un messaggio crittato utilizzando lo XOR non è altro che l'operazione inversa:
grazie alle proprietà dello XOR.
Esempio:
Testo | 11001010100 |
---|---|
Chiave | 00101 |
XOR (Testo, Chiave) | 11100011110 |
La chiave, come in Vigenére si ripete se il messaggio da crittare è più lungo.
Per ottenere, da un messaggio cifrato con Vernam, il messaggio originario, bisogna fare lo XOR (usando la stessa chiave) con il messaggio cifrato.
In sintesi, il cifrario di Vernam non è altro che la versione in bit del cifrario di Vigenére e soffre delle sue stesse vulnerabilità.