I saggi pubblicati su Tangram

I cifrari polialfabetici

Tangram, anno VI n° 17 (settembre 2007)

Era sopravvissuto, inoltre, il catalogo della straordinaria biblioteca di Hutchinson, che i cittadini avevano trovato subito dopo la sua scomparsa, e un manoscritto di suo pugno, non finito, composto in un cifrario che nessuno era in grado di decodificare. Ward fece una copia fotostatica del manoscritto e non appena gli fu consegnata cominciò a lavorare saltuariamente al cifrario. Dopo il mese di agosto gli sforzi che fece per venire a capo del codice divennero intensi e addirittura febbrili, e da ciò che disse all'epoca, ma anche dalla sua condotta, c'è ragione di credere che trovasse la chiave prima di ottobre o novembre. Tuttavia, non dichiarò mai pubblicamente se fosse riuscito o meno nell'impresa.

Howard Phillips Lovecraft, "Il caso di Charles Dexter Ward"

Il nostro viaggio nella storia delle scritture segrete ci porta oggi ad incontrare i cifrari a sostituzione polialfabetica, ovvero la "risposta definitiva" della crittografia rinascimentale ai primitivi e troppo vulnerabili sistemi a sostituzione monoalfabetica di cui abbiamo parlato la volta scorsa.

Ricapitolando brevemente il discorso, il punto debole dei cifrari monoalfabetici sta nella correlazione troppo stretta fra testo chiaro e testo cifrato, che infatti sono in perfetta corrispondenza biunivoca tra loro. Una delle regole base della crittografia è quella di non fornire appigli supplementari al potenziale decrittatore, ossia non dargli modo di fare "progressi in cascata": nella decrittazione dei cifrari monoalfabetici, invece, la conoscenza di ogni nuova lettera accelera il processo di identificazione delle lettere mancanti. In effetti un cifrario monoalfabetico cede assai rapidamente all'attacco sistematico portato avanti mediante considerazioni statistiche e grammaticali proprio in quanto, come abbiamo visto la volta scorsa, ogni passo in avanti moltiplica le informazioni in possesso del decrittatore.

Così, fin dai primi anni in cui in occidente rifiorì l'uso della crittografia, gli esperti cercarono metodi per correggere le debolezze dei cifrari monoalfabetici o per superarle completamente. I primi tentativi, quali l'uso di omofoni e nulle che vedremo tra un attimo, furono semplici correzioni sviluppate in modo empirico ed applicate un po' per vera e propria imperizia tecnica dei crittografi ed un po' per non abbandonare del tutto un sistema estremamente semplice e, quindi, pratico da usare. Solo in seguito si scoprì la reale alternativa nella figura dei cifrari polialfabetici, molto più sicuri di quelli monoalfabetici tanto da essere stati ritenuti assolutamente inviolabili fino in tempi piuttosto recenti.

Sostituzione con omofoni e nulle

Il primo esempio documentato di uso della tecnica degli omofoni per irrobustire un cifrario a sostituzione monoalfabetica risale al 1401, e si trova all'interno di un codice messo a punto dal segretario del duca di Mantova per proteggere la corrispondenza fra il suo signore ed un tale Simone da Crema. L'espediente, tanto semplice quanto intelligente, non era stato però ben compreso dal suo ideatore e quindi veniva applicato solo in parte. Fu soltanto verso la metà del secolo successivo che gli omofoni furono usati in maniera estesa e consapevole; ad essi si aggiunse ben presto l'uso accorto delle nulle, noto empiricamente da tempo ma introdotto in modo sistematico e rigoroso dalla famiglia Argenti nelle cifre pontificie.

Omofoni e nulle sono tecniche semplici ma abbastanza efficaci con cui si può rendere più difficile la crittanalisi di un semplice cifrario monoalfabetico. Esse agiscono in modi opposti, ma il loro scopo è comunque quello di complicare la vita al decrittatore confondendogli le idee: in particolare fornendogli falsi indizi (con le nulle) e nascondendogli nel contempo quelli veri (con gli omofoni). Ciò in definitiva serve a tentare di vanificare il principale metodo di attacco del decrittatore che, come abbiamo visto in dettaglio la volta scorsa, si basa essenzialmente sulla ricerca delle lettere più frequenti. In effetti queste due tecniche, se adoperate assieme e miscelate con cura, permettono di aumentare in buona misura la sicurezza di un cifrario monoalfabetico senza tuttavia complicarlo troppo, e quindi senza aggravare più di tanto il lavoro del legittimo decifratore oltre che quello di colui il quale compila il crittogramma stesso.

L'idea di fondo è grosso modo questa: dato che l'appiglio principale del decrittatore è l'analisi di frequenza del crittogramma, che fornisce indicazioni quanto mai chiare sull'identità di alcune lettere fondamentali (prime fra tutte le vocali), la prima cosa da fare è confondere le acque alterando proprio il conteggio delle lettere più presenti. Per fare ciò, ossia per poter "mimetizzare" le lettere più frequenti fra tutte le altre, occorre rompere in parte la corrispondenza biunivoca fra lettere del chiaro e lettere del cifrato, consentendo cioè che a talune lettere del chiaro corrispondano più simboli diversi nel cifrato. Ho usato qui appositamente il termine "simbolo" perché evidentemente per raggiungere lo scopo desiderato è necessario che l'alfabeto cifrante sia "più ricco" di quello relativo al testo chiaro, cioè sia formato da un numero maggiore di simboli. Per usare gli omofoni dobbiamo dunque supporre che ogni lettera dell'alfabeto chiaro venga trasformata in un simbolo di un alfabeto più vasto; per comodità possiamo stabilire che ad ogni lettera normale venga associata ad esempio una coppia di cifre, ossia un numero da 00 a 99, ma ci si può basare anche su altre convenzioni.

Sfrutteremo dunque la maggior ricchezza di questo nuovo alfabeto (che consente di rappresentare cento simboli diversi, contro i soli ventisei che a noi servono) per confondere l'analisi di frequenza nel nostro crittogramma, facendo in modo che le lettere più usate siano rappresentate da più di un simbolo. Ad esempio la "E" potrebbe essere cifrata indifferentemente come 07, 23, 42, 55, 98: così, avendo cura di usare effettivamente tutte le varie alternative in corrispondenza ad ogni occorrenza della "E" nel chiaro, possibilmente scegliendole di volta in volta in maniera casuale, possiamo ottenere un crittogramma in cui l'incidenza statistica della lettera "E" non sia così marcata ed evidente come ci si aspetterebbe. In particolare il tipico "picco" di circa l'11% di presenze sul totale non esisterà più, essendo stato frazionato su cinque simboli diversi; i quali peraltro, essendo attestati ciascuno attorno al 2%, non richiamano in modo particolare l'attenzione del decrittatore.

I simboli alternativi usati per rappresentare la medesima lettera al fine di evitarne il riconoscimento mediante analisi di frequenza si chiamano, abbastanza naturalmente, omofoni. Il loro uso, come dicevo prima, data dagli inizi del XV secolo. All'epoca tuttavia si usavano omofoni solo per le vocali, e fu soltanto dopo oltre cento anni che si cominciò ad assegnare omofoni anche alle consonanti di uso più frequente. Chiaramente ciò riflette le scarse conoscenze di decrittazione possedute in quel periodo, e c'è anzi da stupirsi di come l'esperienza puramente empirica dei crittografi dell'epoca abbia portato al raggiungimento di soluzioni semplici ed efficaci a problemi spesso neppure ben percepiti.

La tattica complementare all'uso degli omofoni consiste nell'inserire nel crittogramma dei simboli privi di significato al solo scopo di confondere l'analisi del decrittatore. Queste "false lettere" si chiamano nulle e contribuiscono, se usate assieme agli omofoni, a mascherare bene l'apparenza statistica del testo cifrato. Esse servono soprattutto per rompere certi schemi ripetitivi (detti incastri) che potrebbero venirsi a formare e che costituirebbero un punto di appiglio al lavoro del decrittatore. Proseguendo col caso in esempio potremmo pensare di usare come nulle i simboli 03, 12, 37, 54, 72, 89, 91, inframmezzandoli senza troppa parsimonia ai simboli reali del cifrato soprattutto tra le doppie e le altre sequenze obbligate imposte dalla lingua usata per il testo chiaro (tipo "CH" o "QU" per l'italiano). Chiaramente chi decifra un testo con nulle e omofoni non fa molto lavoro supplementare; tuttavia il decrittatore farà una certa fatica a ricostruire la situazione, almeno se chi ha preparato il crittogramma avrà lavorato con criterio.

Naturalmente la semplice aggiunta di nulle ed omofoni non rende del tutto sicuri i cifrari monoalfabetici, anche se certamente aggiunge alla loro soluzione qualche complicazione in più. Di ciò non tardarono ad accorgersi i gli stessi crittologi del Rinascimento, che spesso la sapevano più lunga di quanto non volessero esplicitamente ammettere. Quando, ad esempio, gli Argenti insistevano sull'uso delle nulle ("almeno tre per riga", si raccomandavano) lo facevano con cognizione di causa: essi infatti avevano correttamente identificato i punti deboli della cifratura con omofoni e sapevano forzarla senza troppa difficoltà, ricercando appunto quegli schemi "ad incastro" che rivelano l'uso degli omofoni e che solo un uso accorto delle nulle riesce a mascherare.

I cifrari polialfabetici

La soluzione definitiva alle debolezze intrinseche dei cifrari monoalfabetici non sta dunque nell'uso degli omofoni e delle nulle, anche se la strada imboccata è quella giusta. Occorre proseguirla però fino alle sue estreme conseguenze, ossia fino alla rottura totale della corrispondenza biunivoca fra alfabeto chiaro e alfabeto cifrante. La grande idea sta nell'usare non più un solo alfabeto cifrante ma tanti alfabeti diversi, alternati tra loro. In questo modo il crittogramma diventa realmente molto difficile da decrittare perché l'analista perde del tutto la sua arma migliore, ossia l'analisi delle frequenze. Infatti adesso ogni lettera del crittogramma può in teoria rappresentare qualunque lettera del chiaro, e non è più vero che ad ogni lettera del cifrato corrisponda sempre uno ed un solo significato: un bel pasticcio, non c'è che dire! Tant'è vero che i cifrari a sostituzione polialfabetica, così chiamati appunto per la loro caratteristica di fare uso di più di un alfabeto cifrante, vennero ritenuti del tutto sicuri e resistenti all'analisi per circa tre secoli dopo la loro scoperta. Fu solo nel 1863 che Kasiski pubblicò la soluzione generale di una vasta classe di cifrari polialfabetici, dimostrando come in fondo essi non fossero realmente impenetrabili; tuttavia il suo metodo è lungo e laborioso, e fino all'avvento dei computer la decrittazione un cifrario polialfabetico è rimasta un vero e proprio lavoraccio.

È interessante forse notare come l'idea di usare più di un alfabeto cifrante non venne in mente ad una persona sola né sorse dall'oggi al domani: fu invece conseguenza quasi spontanea del lavoro di perlomeno quattro persone diverse nell'arco di un'ottantina d'anni. Il concetto fondamentale fu espresso per la prima volta da Leon Battista Alberti nel suo "De Cifris" (circa 1466), in cui descriveva un regolo circolare di sua invenzione che permetteva di realizzare facilmente un cifrario in cui l'alfabeto cifrante poteva essere mutato "ogni tre o quattro parole".

Il passo successivo, ossia l'idea di cambiare alfabeto non ogni qualche parola ma ad ogni lettera, venne ad un personaggio assai famoso, uno degli intellettuali più noti e chiacchierati della sua epoca: l'abate Johannes Tritemius (italianizzato in Tritemio), meglio noto per i suoi lavori ermetici sull'alchimia e sull'occultismo in genere. Nel suo trattato in sei volumi "Polygraphia", pubblicato nel 1518, egli esponeva un sistema di cifratura polialfabetica che faceva uso di 24 cifrari di Cesare ottenuti ciascuno per scorrimento del precedente di un posto verso sinistra. Essi venivano usati uno dopo l'altro in successione per cifrare le lettere del testo chiaro; per facilitare l'operazione Tritemio li aveva organizzati in forma di matrice quadrata ("tableau", come si chiama oggi in crittografia) gettando così un'altra base per la definitiva formalizzazione del metodo più generale, che comunque rimaneva ancora al di là da venire.

Un altro importante contributo venne da Giovan Battista Bellaso, nobile di Brescia, che in un suo trattatello del 1553 descrisse per la prima volta la sua idea di usare una frase convenzionale come "chiave" di un sistema di cifratura polialfabetica; si trattava di un sostanziale miglioramento rispetto al metodo di Tritemio perché la successione dei diversi alfabeti cifranti non era più rigida e monotona ma veniva variata in modo a priori imprevedibile a seconda della successione delle lettere nella parola chiave.

La sintesi di queste tre idee fu infine compiuta da un altro famoso erudito del tempo, il napoletano Giovan Battista della Porta noto soprattutto per il ponderosissimo trattato in venti volumi "Magia Naturalis". Strana figura di filosofo-scienziato dai mille interessi (fu tra l'altro vicepresidente della giovane Accademia dei Lincei), il Della Porta si occupò anche di crittologia pubblicando nel 1563, all'età di soli ventotto anni, l'importantissimo trattato "De furtivis litterarum notis". In esso egli esponeva una notevole serie di esperienze in materia di crittografia e decrittazione e presentava il suo metodo di cifratura per sostituzione polialfabetica, che comprendeva e unificava i suggerimenti dell'Alberti, del Tritemio e del Bellaso. Si trattava infatti di un sistema basato su di un tableau come quello di Tritemio, in cui la cifratura avveniva selezionando un alfabeto diverso ad ogni lettera del chiaro; tuttavia gli alfabeti non erano rigidamente prefissati come nel tableau di Tritemio ma erano resi variabili come nel regolo dell'Alberti; e la loro selezione avveniva seguendo una chiave alfabetica costituita da una frase come suggerito dal Bellaso. Era nato il concetto di moderno cifrario polialfabetico, che fu poi ripreso e migliorato in seguito da altri nonché, purtroppo… stravolto completamente! Per qualche strano scherzo del destino, infatti, il cifrario polialfabetico del Della Porta fu in seguito attribuito al crittologo francese Blaise de Vigenère, oltretutto in una forma troppo semplificata (derivata direttamente dal metodo di Tritemio) che né l'uno né l'altro descrissero o usarono mai.

Il (falso) Vigenère

Il nome di Vigenère è stato, ed è tutt'ora, sinonimo di cifrario a sostituzione polialfabetica. Tuttavia, per ironia della sorte, il metodo passato alla storia con questo nome non fu mai usato dal suo presunto autore: si tratta invece di una forma variante del sistema a tableau di Tritemio, molto più facile da risolvere rispetto ai sistemi piuttosto complessi realmente sviluppati da Vigenère.

Valente crittologo al servizio di re Carlo IX, egli aveva studiato i testi originali dell'Alberti, del Bellaso, di Tritemio e del Della Porta nonché il trattato nel quale Gerolamo Cardano (sì, proprio l'inventore del giunto cardanico) aveva per primo introdotto il concetto di chiave autocifrante. Il suo lavoro, teso a migliorare il sistema generale del Della Porta, lo condusse a riprendere il concetto del Cardano di cui eliminò i difetti originali. I suoi cifrari migliori, sistemi molto robusti a sostituzione polialfabetica con chiave autocifrante, passarono però inosservati e furono addirittura reinventati in modo indipendente nel XIX secolo; mentre il suo nome rimase invece associato al sistema, assai più semplice, che ora vedremo in dettaglio.

Una descrizione in termini moderni del metodo potrebbe essere questa: le lettere del chiaro vengono cifrate usando una successione di cifrari di Cesare differenti, biunivocamente identificati dalle lettere progressive di una parola chiave ed applicati a rotazione. Nella sua formulazione originale esso faceva invece uso di un tableau di Tritemio contenente 26 alfabeti normali, ognuno scalato di una lettera a sinistra rispetto al precedente (figura 1).

La chiave del cifrario è una parola breve che viene scritta ripetutamente sotto al testo chiaro in modo che ad ogni lettera del chiaro sia associata una lettera della chiave, formando cioè quello che in gergo crittografico si chiama "verme". Per cifrare si cerca nella prima colonna del tableau la lettera del chiaro e nella prima riga quella del verme; la lettera cifrata è quella che si trova all'intersezione di quella colonna con questa riga. Per decifrare si segue uno schema leggermente diverso: dapprima si identifica la lettera del verme sulla prima riga, quindi si scende sulla corrispondente colonna sino ad incontrare la corrispondente lettera del cifrato; da qui si scorre a sinistra rimanendo sulla stessa riga, e la lettera che si trova in prima colonna sarà quella del chiaro. Il sistema, come si vede, è molto semplice da utilizzarsi ma il suo risultato è piuttosto efficace.

In figura 2 ho riportato un esempio che serve a chiarire il concetto meglio di una lunga descrizione. Seguendo la classica disposizione usata dai crittologi, nella prima riga si trova il testo chiaro e nella seconda il verme, ossia la chiave ripetuta in corrispondenza al chiaro. Nella terza riga compare invece il cifrato, ciascuna lettera del quale è ottenuta cifrando la corrispondente lettera del chiaro con la corrispondente lettera del verme. L'esempio non è gran che realistico perché impiega una parola chiave troppo corta, ma rende bene l'idea del procedimento.

Analizzando il risultato si osserva come l'uso di diversi alfabeti cifranti, nonostante la scelta non ottimale della chiave, renda comunque la cifra piuttosto oscura. In particolare notiamo che, al contrario di come avveniva nei cifrari monoalfabetici, a lettera uguale (nel chiaro) non corrisponde più lettera uguale (nel cifrato). Ad esempio le due L presenti in posizioni diverse nel chiaro vengono tramutate rispettivamente in N e Z, mentre le tre C diventano T, C ed E. Ma ovviamente la cosa più importante ad essere spazzata via è l'analisi di frequenza delle varie lettere: laddove infatti la sostituzione monoalfabetica lasciava immutate le frequenze tipiche di tutte le lettere fondamentali, quella polialfabetica produce una distribuzione pressoché piatta la quale non fornisce alcuna indicazione utile al decrittatore. Di solito, anzi, questa caratteristica viene usata proprio come "cartina di tornasole" per riconoscere il tipo di cifrario impiegato per produrre un crittogramma sconosciuto: se il conteggio delle occorrenze dei simboli produce un istogramma sostanzialmente uniforme, si può avere la sostanziale certezza di trovarsi di fonte ad un metodo basato sulla sostituzione polialfabetica.

In generale inoltre un cifrario polialfabetico distrugge completamente tutti quegli importanti appigli lessicali quali consonanti raddoppiate, sequenze obbligate e così via: vediamo infatti come la doppia T del chiaro sparisca, diventando in questo caso WH. Di contro nascono invece degli artefatti che confondono ulteriormente l'analisi, come ad esempio le doppie II e WW nel cifrato che corrispondono rispettivamente alle sequenze RI e TI del chiaro. Va tuttavia esplicitamente notato come in generale esista la possibilità che due lettere uguali adiacenti nel chiaro generino due lettere uguali adiacenti nel cifrato: ciò accade precisamente quando esse capitano in corrispondenza di una coppia di lettere uguali nel verme, come si può vedere anche nel nostro esempio (la doppia A nel chiaro, cifrata con una doppia R, produce una doppia R). Questa osservazione è solo apparentemente insignificante: essa infatti è alla base dei ragionamenti che portarono Kasiski a scoprire il primo metodo generalizzato di attacco per i cifrari polialfabetici, di cui ci occuperemo più da vicino in futuro.

Altre variazioni

I cifrari a sostituzione, monoalfabetici o polialfabetici che siano, non esauriscono l'armamentario a disposizione del crittologo: nel corso dei secoli infatti l'ingegno umano ha prodotto altre classi di sistemi di cifratura, basati su principi diversi e spesso complementari a questi. Si tratta dei metodi a trasposizione, di cui esistono moltissime varianti. Saranno loro l'oggetto della nostra prossima incursione nel mondo delle scritture segrete.


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
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 A
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z 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

Figura 1: Il classico "Tableau" di Tritemio è alla base di quei cifrari polialfabetici passati alla storia col nome di Vigenère. È formato essenzialmente da ventisei cifrari di Cesare, ciascuno spostato di un posto a sinistra rispetto al precedente. La cifratura avviene utilizzando i vari cifrari monoalfabetici elementari, presi secondo l’ordine dato dalla particolare parola chiave prescelta per l’operazione.


L A C R I T T O L O G I A E U N A S C I E N Z A A N T I C A
C O R R A D O C O R R A D O C O R R A D O C O R R A D O C O
N O T I I W H Q Z F X I D S W B R J C L S P N R R N W W E O

Figura 2: Un esempio di applicazione del cifrario detto di Vigenère, fatta utilizzando il tableau della figura precedente. Nella prima riga dello schema compare il testo chiaro, in quella centrale il cosiddetto "verme" (ossia la parola chiave ripetuta, in questo caso "CORRADO") e nella terza il risultato dell’operazione di cifratura.

Saggio pubblicato su Tangram, rivista di cultura ludica, anno VI n° 17 (settembre 2007)
Copyright © 2007, Corrado Giustozzi. Tutti i diritti riservati.

Ultima modifica: 10 gennaio 2011
Visitatori dal 23 ottobre 2005: 71,443

Torna alla Pagina dei saggi pubblicati su Tangram
Vai alla Pagina dei Commenti

Copyright © 1995-2012 Corrado Giustozzi