La potente arma dei crittoanalisti

Furono i crittoanalisti arabi nel IX secolo a trovare il punto debole del cifrario di sostituzione con parola chiave. Analizzando i testi in una determinata lingua osservarono che alcune lettere compaiono più spesso delle altre. In particolare, analizzando un testo con un'attenta analisi delle frequenze delle lettere poterono osservare che ogni lettera era presente con una determinata percentuale. Ad esempio, se analizziamo un testo in italiano, abbastanza lungo, e eseguiamo l'analisi delle frequenze possiamo verificare che le vocali a, e, i sono quelle più presenti con una percentuale di frequenza intorno all'11%. In altre parole, analizzando un testo in italiano composto da 100 lettere molto probabilmente troveremo 11 volte la vocale a, 11 volte la vocale e, 11 volte la vocale i. In un testo in italiano le varie lettere sono presenti con le frequenze:

In generale se analizziamo un testo in una data lingua (inglese, tedesca, danese, ecc.) ogni lettera è presente con una data frequenza statistica che rappresenta la sua carta d'identità in quella lingua. Le lettere che compongono le parole nei linguaggi naturali non sono una disposizione casuale delle lettere dell'alfabeto ma hanno una loro struttura che si manifesta nella asimmetria delle frequenze. I crittoanalisti arabi osservarono che confrontando un testo in chiaro scritto in una data lingua e il corrispondente testo cifrato con il sistema di sostituzione con parola chiave non venivano perse le frequenze delle lettere. Ad esempio, se nel testo in chiaro la consonante n è presente con una frequenza del 7% e nel testo cifrato questa consonante viene sostituita con la lettera B allora nel testo cifrato la B avrà la stessa frequenza di n cioè del 7%. Questo perchè a lettere uguali nel testo originario corrispondono lettere uguali nel testo cifrato e quindi la frequenza percentuale di una data lettera nel testo in chiaro viene trasferita totalmente ad un'unica altra lettera nel testo cifrato. Pertanto un messaggio cifrato con il sistema di sostituzione può essere facilmente decrittato con l'aiuto della statistica. Conoscendo le frequenze delle singole lettere in una determinata lingua e sapendo che il messaggio segreto è stato ottenuto da un testo in chiaro in quella lingua, si può facilmente risalire al messaggio originale effettuando un confronto tra l'analisi delle frequenze (quella della lingua e quella del messaggio cifrato). In questo modo il contenuto di un messaggio crittato può essere svelato con un semplice calcolo delle frequenze di ogni lettera presente nel testo in cifra e non c'è più la necessità di controllare una ad una le innumerevoli chiavi. Il lavoro di un crittoanalista è inoltre, facilitato anche dalle caratteristiche peculiare della lingua. Ad esempio, nella lingua italiana quasi sempre le parole terminano con una vocale, se nella parola ci sono le doppie (due lettere consecutive uguali) queste sono sicuramente consonanti, le consonanti con la più bassa frequenza sono la q e la z e generalmente in una parola la lettera q è seguita dalla vocale u, le combinazioni di due lettere con maggiore frequenza sono er, es, on, re mentre le combinazioni di tre lettere con maggiore frequenza sono che, ere, zio, del, que. I crittoanalisti dimostrarono che la sicurezza di un cifrario non è garantita solo dalla possibilità di utilizzare un numero molto grande di chiavi ma deve anche, in quanche modo, annullare le asimmetrie frequentistiche presenti nei linguaggi naturali.

Come si vede sia i crittografici che i crittoanalisti utilizzano la matematica per il loro lavoro. Da un lato è stata utilizzata la permutazione delle 26 lettere dell'alfabeto per aumentare notevolmente il numero delle possibili chiavi, dall'altro lato si ù utilizzato la statistica per scoprire le frequenze delle lettere e risalire alla permutazione delle lettere che formano l'alfabeto cifrante.

© giuseppe sarnataro