La maggioranza dei cifrari a cui fanno riferimento diverse opere storiche o di fiction appartengono alla stessa famiglia di cifrari, ovvero al cifrario monoalfabetico. Abbiamo già parlato delle falle contenute in alcuni cifrari e della possibilità di craccare un cifrario attraverso l’analisi della frequenza dei simboli all’interno dello schema. Questo è un qualcosa che è stato fatto molto prima che venissero inventati i computer.
Uno dei cifrari più famosi e interessanti è stato concepito per eliminare questo errore all’interno del codice: questo cifrario si chiama cifrario di Vigenère. Attribuito a un diplomatico francese del XVII secolo, è stato in realtà creato da due persone diverse, svincolate tra loro. Curiosamente Blaise de Vigenère non era uno di loro; Vigenere è stato semplicemente colui che ha proposto il cifrario a Enrico III e da cui il cifrario ha preso il nome.
Il primo riferimento a questo cifrario si trova nel libro di Leon Battista Alberti “Trattato della cifra“. Alberti è famoso per essere stato il primo a parlare della prospettiva lineare in pittura ma i suoi studi toccano molteplici ambiti. L’idea che sta dietro al cifrario di Alberti è piuttosto semplice, ma ha posto le basi per la nascita di una nuova crittografia e del cifrario polialfabetico.
#Infosec: cifrario di Vigenere, come il passato influisce sul presente
Tweet
In un cifrario monoalfabetico, ogni simbolo scritto in testo in chiaro viene sotituito da un simbolo costante in testo cifrato (è come usare un altro alfabeto). Non importa se le sostituzioni siano causali o se si basano su di una certa frequenza di sostituzione all’interno di uno stesso alfabero (come nel caso del Cifrario di Cesare), né se si tratti di lettere, numeri o simboli.
Come viene descritto nel racconto di Arthur Conan Doyle “L’avventura degli omini danzanti“, i simboli sostituiti possono essere persino dei pittogrammi, ma questo non rende il cifrario immune alle vulnerabilità: uno può fare una supposizione circa le parole chiave usate nel testo cifrato o analizzare la frequenza con cui appare un certo simbolo all’interno del messaggio o tirare ad indovinare.
Tempo fa, un “umile servo” ha usato questo metodo (solo per divertimento) per decifrare un’email che gli era stata inviata in uno schema di codifica alternativa. Non è stato difficile decodificare questi messaggi; si può fare anche senza una particolare preparazione o con un computer con una potenza non troppo elevata.
Un cifrario polialfabetico fa uso di un certo numero di alfabeti per sostituire le lettere del messaggio. Prendiamo il cifrario di Vigenere. Ecco lo schema: prediamo il cifrario di Cesare come base e completiamo una tabella che include tutte le possibili sostituzioni:
In questo modo avremo 26 alfabeti diversi e dobbiamo decidere il principio di sostituzione. Una volta decisa la chiave, il cifrario diventerà difficilissimo a decifrare.
Dato che abbiamo iniziato questo post parlando di figure storiche, prendiamo VINTAGE come parola chiave. Per poter cifrare una frase come THINK ABOUT IT, dobbiamo ripetere la frase fino a quando non raggiunga la lunghezza della parola in chiaro:
Ora, per ognuno di questi simboli del testo d’origine, utilizzeremo un sostituto che si trova nella linea che inizia con la lettera della parola chiave e nella colonna che inizia con la lettera della parola in chiaro. Per esempio, la prima lettera verrà rimpiazzata dal simbolo che si trova nel punto d’incontro tra la colonna T e la linea V, ovvero “O”.
Per decrifrare un messaggio dobbiamo fare il contrario: dobbiamo trovare le linee che corrispondono alle lettere della parola chiave, trovare le lettere del cifrario e poi scrivere le lettere che corrispondono alle colonne, ottenendo così il testo in chiaro.
È affascinante come l’idea originale concepita da Alberti includeva un disco con degli anelli alfabetici rotanti, mentre la tavola che abbiamo descritto sopra è stata elaborata successivamente da un’altra persone. Il disco descritto nel trattato del 1446 è stato usato dagli Stati Confederati nella Guerra di Secessione Americana.
In generale, il cifrario era piuttosto affidabile, ed è stato persino considerato “impenetrabile” dal matematico Charles Lutwidge Dodgson (alias Lewis Carrol) e lodato dalla Scientific American Magazine. Inoltre, un’altra famosa ripetizione è stata introdotta in seguito dal Cifrario di Grondfeld. La principale differenza riguarda il fatto che la sostituzione di alfabeti era limitata a 10 (in base al numero dei digiti) e che la parola chiave era un numero.
L’aspetto interessante è che, in certi casi, il Cifrario di Vigenere era suscettibile alla crittoanalisi. Era possibile definire la lunghezza della chiave e poi, analizzando le file delle lettere, cifrate dalla stessa linea della tabella, uno poteva adottare un metodo standard basato sulla frequenza di certe lettere di un linguaggio.
Il primo a realizzare un attacco di successo su una modificazione del cifrario di Vigenere, nel lontano 1854, era Charles Babbage, un pioniere delle scienze computazionali ma l’analisi è stata pubblicata da un’altro ricercatore, Friedrich Kasiski 9 mesi dopo.
Strano ma tutto questo ha aiutato a rafforzare il cifrario. Una delle aggiunte era l’uso di parole chiave che fossero lunghe quanto il messaggio stesso, eliminando la possibilità dell’analisi di frequenza.
Comunque sia, questa miglioria ha portato ad un’altra vulnerabilità: l’uso di testo sensibile come chiave ha offerto ad un crittoanalista informazioni statistiche circa la chiave, dando un’altro indizio utile per decifrare il testo.
Questa idea ha dato il via ad altri miglioramenti come l’uso delle sequenze random di simboli usati come chiave.
Questa idea è stata utilizzata nel concetto di one-time pads (OTP, in italiano blocco monouso. Se questi cifrari riuscivano a diventare impenetrabili, venivano usati nella crittografia civile e miliate. Ma questa è un’altra storia.