Il cifrario polialfabetico
Il cifrario polialfabetico utilizza più alfabeti per codificare un messaggio.
Questo metodo venne usato per la prima volta da Leon Battista Alberti con due alfabeti cifranti nel XV secolo. Un secolo dopo Vigenère usò lo stesso cifrario con 26 alfabeti.
Un esempio pratico
Devo cifrare il messaggio
"si parte domani mattina alle otto"
Per semplicità non considero gli spazi
"sipartedomanimattinaalleotto"
Quindi divido il messaggio in blocchi composti da n caratteri.
Ad esempio n=4 caratteri.
sipa
rted
oman
imat
tina
alle
otto
A questo punto considero 26 alfabeti cifranti, ognuno dei quali è associato a una lettera dell'alfabeto e a un numero
A questo punto scelgo una parola chiave per cifrare il testo.
Ad esempio, scelgo la parola "mare"
Poi codifico ogni colonna usando un alfabeto cifrante diverso.
La scelta degli alfabeti cifranti è determinata dalla password "mare".
- La prima colonna è cifrata con l'alfabeto cifrante associato alla lettera "m" (riga 12)
- La seconda colonna è cifrata con l'alfabeto cifrante associato alla lettera "a" (riga 0)
- La terza colonna è cifrata con l'alfabeto cifrante associato alla lettera "r" (riga 17)
- La quarta colonna è cifrata con l'alfabeto cifrante associato alla lettera "e" (riga 4)
In questo modo ogni colonna è cifrata in modo diverso.
lo
Questo mi permette di evitare che il messaggio sia decodificato con una semplice analisi della frequenza delle lettere.
Ad esempio, codifico la prima colonna del messaggio usando l'alfabeto alla riga 12 associato alla lettera "m"
Eipa
Dted
Aman
Umat
Fina
Mlle
Atto
Poi codifico la seconda colonna del messaggio usando l'alfabeto alla riga 0 associato alla lettera "a"
EIpa
DTed
AMan
UMat
FIna
MLle
ATto
Poi codifico la terza colonna del messaggio usando l'alfabeto alla riga 17 associato alla lettera "r"
EIGa
DTVd
AMRn
UMRt
FIEa
MLCe
ATKo
Infine codifico la quarta colonna del messaggio usando l'alfabeto alla riga 4 associato alla lettera "e"
EIGE
DTVH
AMRR
UMRX
FIEE
MLCI
ATKS
Ora tutte le lettere in ciascun blocco che si trovano nella stessa colonna sono cifrate con lo stesso alfabeto cifrante.
Il messaggio cifrato con i quattro alfabeti periodici è il seguente
EIGE
DTVH
AMRR
UMRX
FIEE
MLCI
ATKS
Chi riceve il messaggio cifrato deve conoscere la parola chiave "mare" e la tabella di trascodifica dei 26 alfabeti per poterlo decifrare.
Tuttavia, se il messaggio è molto lungo, chi intercetta il messaggio potrebbe compiere un'analisi della frequenza sulle singole colonne e risalire comunque ai 4 alfabeti cifranti.
Per evitare questo rischio riscrivo in serie il messaggio per nascondere l'informazione sulla lunghezza dei blocchi
EIGEDTVHAMRRUMRXFIEEMLCIATKS
In questo modo chi intercetta il messaggio non conosce più la lunghezza dei blocchi.
Pertanto, dovrà compiere diverse analisi delle frequenze delle lettere ipotizzando tutte le possibili lunghezze dei blocchi (n=2, n=3, n=4, ecc. ).
Gli equivalenti numerici
In alternativa alle lettere potrei anche usare gli equivalenti numerici di ogni lettera dell'alfabeto
E così via.