Il cifrario di Vigenère è un crittosistema simmetrico, che usa la stessa chiave sia per la cifratura sia per la decifratura. Il cifrario di Vigenère assomiglia molto al cifrario di Cesare, con la sola differenza che esso usa una chiave più lunga per attenuare il problema principale del cifrario di Cesare: il fatto che una lettera possa essere codificata in un solo modo. Per questo si usa una parola chiave al posto di un carattere semplice. Si associa in un primo tempo ad ogni lettera una cifra corrispondente:
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
Esso consiste nel codificare un testo con una parola aggiungendo ad ognuna delle lettere la lettera di un'altra parola detta chiave. La chiave è aggiunta indefinitamente in rapporto con il testo da codificare, poi il codice ASCII di ognuna delle lettere della chiave è aggiunto al testo da criptare. Ad esempio il testo "civediamoacasa" con la chiave "salve" sarà codificato nel modo seguente:
Testo originale:
c | i | v | e | d | i | a | m | o | a | c | a | s | a |
99 | 105 | 118 | 101 | 100 | 105 | 97 | 109 | 111 | 97 | 99 | 97 | 99 | 97 |
Chiave:
s | a | l | v | e |
115 | 97 | 108 | 118 | 101 |
Testo criptato:
c+s | i+a | v+l | e+v | d+e | i+s | a+a | m+l | o+v | a+e | c+s | a+a | s+l | a+v |
99 + 115 | 105 + 97 | 118 + 108 | 101 + 118 | 100 + 101 | 105 + 115 | 97 + 97 | 109 + 108 | 111 + 118 | 97 + 101 | 99 + 115 | 97 + 97 | 99 + 108 | 97 + 118 |
Per decifrare questo messaggio basta avere la chiave segreta e fare la decifratura al contrario, con una sottrazione. Anche se questa cifratura è molto più sicura di quella di Cesare, è anch'essa facilmente crackabile. In effetti, quando i messaggi sono molto più lunghi della chiave, è possibile rilevare la lunghezza della chiave e utilizzare per ogni sequenza della lunghezza della chiave il metodo consistente nel calcolare la frequenza d'apparizione delle lettere, permettendo di determinare uno a uno i caratteri della chiave.
Per evitare questo problema, una soluzione consiste nell'usare una chiave di dimensioni simili a quella del testo per rendere impossibile uno studio statistico del testo criptato. Questo tipo di sistema di cifratura è detto Sistema a chiave usa e butta. Il problema di questo metodo è la lunghezza della chiave di cifratura (più il testo da criptare è lungo, più la chiave deve essere voluminosa), che impedisce la sua memorizzazione e include una probabilità d'errore nella chiave maggiore (un solo errore rende il testo indecifrabile, ecc.).
Foto: © Pixabay.