Renato Betti


UN PO' DI STORIA

Secondo la Vita Caesarum di Svetonio, uno dei più antichi sistemi cifranti risale a Giulio Cesare e fu usato nella sua guerra contro i Galli. È noto che altri sistemi, spesso molto originali, erano stati usati anche in precedenza, ma questo di Cesare è forse il primo a non essere occasionale: propone un metodo, un sistema, è ripetibile con chiavi diverse.



Giulio Cesare
L'idea è in verità così semplice che non rende onore alla perspicacia dei Galli, ma la assumiamo per comodità di esposizione: dopo aver disposto le lettere nel classico ordine alfabetico, considerato circolare -quindi, con la lettera a che segue la z- ciascuna lettera viene traslata a destra di una stessa quantità. Così, se la traslazione è di due lettere, la a diventa c, la b diventa d ... e così via, finché la z diventa b come nello schema seguente nel quale ogni lettera in chiaro è posta al di sopra della corrispondente lettera cifrata:

 

a b c d e f g h i l m n o p q r s t u v z
c d e f g h i l m n o p q r s t u v z a b

Tutte le lettere del messaggio vengono quindi ordinatamente cambiate nelle loro corrispondenti lettere cifrate. Questo è il cifrario di Cesare (o di traslazione) e l'informazione essenziale della chiave in questo caso è solo data dalla quantità che specifica il valore della traslazione: si hanno in tutto, evidentemente, 21 chiavi cifranti distinte - di cui una banale, l'identità.
Il criterio della semplicità è senz'altro soddisfatto. Forse fin troppo. E non è difficile pensare di passare da una traslazione ad una affinità, per aumentare un po' il numero di cifrari senza tuttavia rendere impraticabile il sistema. Questo vuol dire che invece di una formula del tipo:

n'=n+k

dove n rappresenta la posizione della lettera da cifrare, n' la posizione della corrispondente lettera cifrata (n, n' =1, 2, ... , 21) e k è la chiave, si userà un'espressione del tipo:

n'=an+b

In questo caso la chiave è data dalla coppia ordinata di interi (a, b), entrambi non superiori a 21. Non tutti i valori di a hanno però senso: se si vuole risalire univocamente dal testo cifrato a quello in chiaro, è necessario che sia MCD(a,21)=1 cioè che l'intero a non abbia divisori comuni con 21 (come si dice: a e 21 devono essere primi fra di loro). È facile calcolare (esercizio!) il numero di cifrari affini che sono distinti: si tratta di 252, uno dei quali è ancora l'identità.
Il numero di cifrari è maggiore di prima, ma sempre troppo basso per pensare di fronteggiare l'attacco di abili decrittatori. Una strategia potrebbe essere quella di assumere una permutazione qualsiasi per determinare le lettere cifrate, invece di usare una formula semplice come quella della traslazione o dell'affinità. Le permutazioni possibili sono 21! e questo è un numero che ha ben 20 cifre decimali e mette al riparo qualunque cifrario dal pericolo di essere infranto per tentativi. Ma non va bene. Perché chi trasmette e chi riceve dovrebbero registrare da qualche parte la permutazione delle lettere che hanno scelto, a scapito della segretezza: la chiave crittografica non è data da una informazione facile da ricordare, e di uso semplice, ma è tutta la permutazione stessa.
Il problema che si pone è allora questo: come generare una permutazione delle lettere dell'alfabeto mediante un meccanismo semplice da ricordare? Nella pratica questo problema ha dato luogo all'idea di parola chiave. A questo punto, dall'epoca di Cesare, siamo già arrivati al Rinascimento, quando le tecniche crittografiche -
legate alla crescita dei commerci e dei contatti diplomatici fra gli Stati- risorgono da un periodo oscuro.
Presa una parola senza ripetizioni, si usano le sue lettere come le prime della permutazione da usare, a partire da un certo posto. Le altre lettere del cifrario vengono elencate successivamente, saltando quelle già usate. Ad esempio, con la parola chiave salve utilizzata a partire dalla lettera d, cioè dalla quarta posizione, si ottiene la permutazione seguente
:

a b c d e f g h i l m n o p q r s t u v z
t u z s a l v e b c d f g h i m n o p q r

In questo caso la chiave crittografica si riduce alla coppia (salve, 4). Ma la storia non finisce qui: un decrittatore con buone conoscenze di Statistica, qualche tabella ed un numero sufficiente di messaggi cifrati, che A e B si sono scambiati, è in poco tempo in grado di risalire alla chiave. Naturalmente, conoscerà la frequenza con cui le varie lettere dell'alfabeto compaiono in testi della stessa natura di quelli che vuole decrittare -lettere d'amore o messaggi militari che siano- e distinguerà presto, ad esempio, le vocali e certe consonanti più usate dalle altre lettere. Il tutto con grande ambiguità, ma solo per il momento. Farà delle prove, metterà in atto delle congetture, tentativi più o meno motivati, fino a trovare una parola di senso compiuto o a riconoscere il periodo con cui avviene la cifratura: sostanzialmente la lunghezza della parola chiave.
A questo punto è fatta. Da qui ad infrangere tutto il cifrario il passo è breve.
Come annullare le frequenze statistiche ed evitare le ripetizioni periodiche? Si riconosce facilmente che l'analisi delle frequenze è resa possibile dal fatto che il cifrario è a sostituzione monoalfabetica, vale a dire che ogni lettera viene cifrata sempre con la stessa lettera nel corso, della trasmissione dell'intero messaggio. Questo inconveniente si può risolvere passando a cifrari a sostituzione polialfabetica, ad esempio usando cento simboli diversi, di natura qualsiasi, per cifrare le 21 lettere in chiaro. Se sappiamo ad esempio che nei messaggi che ci interessano la lettera a ricorre mediamente dieci volte su cento, basterà usare dieci simboli diversi per cifrarla. Niente paura: non è necessario che fra l'alfabeto in chiaro e quello cifrato ci sia una corrispondenza biunivoca, ma solo che sia univoco i: passaggio dal testo cifrato a quello in chiaro. In questo modo, la lettera a viene cifrata una volta in un modo e una volta in un altro in dieci maniere diverse e la sua frequenza è di fatto annullata: ma chi riceve il messaggio e conosce il sistema cifrante è in grado in ogni caso di riconoscere che ben dieci simboli diversi vanno interpretati come a.

Figura 3 Disco cifrario

Si capisce però che il problema è risolto solo in parte in quanto, nel continuo alternarsi fra la ricerca della semplicità del sistema e la sua sicurezza, questo metodo richiede a chi trasmette e a chi riceve di dotarsi di una imponente tabella da consultare ogni volta. E questo fatto, pur fornendo in alcuni casi delle indicazioni utili, contraddice l'esigenza di segretezza della chiave.

Il prossimo passo, invece, individuato nel corso del `400 da alcuni studiosi rinascimentali ed esplicitamente proposto da quel grande artista e matematico che fu Leon Battista Alberti (1406-1472), risulta decisivo: nella sua opera Modus scribendi in ziferas del 1466, introduce una sostituzione polialfabetica facile da eseguire e che rende estremamente più difficili da cogliere i cicli che avvengono nella cifratura e quindi le periodicità del cifrario. Questa idea rimarrà in funzione, sostanzialmente inalterata, fino all'epoca moderna.
A questo scopo bisogna dotarsi di un cifrario dinamico: ogni lettera del testo in chiaro viene cifrata in maniera diversa di volta in volta, a seconda della sua posizione nel testo stesso. L'Alberti, da abile costruttore qual era, aveva anche ideato un pratico meccanismo, dotato di due copie dell'alfabeto su due dischi in grado di ruotare l'uno rispetto all'altro e quindi di entrare fra di loro in corrispondenza in tutta una molteplicità di modi: dopo aver cifrato una lettera del messaggio, una semplice rotazione di una o più tacche permette di cambiare la corrispondenza per la prossima lettera da cifrare. Per il suo uso da parte di chi riceve il messaggio è sufficiente conoscere il punto iniziale di corrispondenza dei dischi ed il numero di tacche di cui ruotare, dopo ogni operazione di cifratura. Questa è la chiave del sistema cifrante ideato da Leon Battista Alberti. Questa idea di una corrispondenza dinamica fra gli alfabeti, variabile nel corso del messaggio, fu portata a compimento ed utilizzata dal diplomatico francese Blaise de Vigenère (1523-1596) nel secolo successivo e diffusa nella sua opera Traité des chiffres ou secrètes maniéres d'escrire del 1586: i cifrari che ne conseguirono, rimasti in funzione praticamente fino al `900, presero tutti il suo nome: cifrari di Vigenère.



Leon Battista Alberti
In questi cifrari, la corrispondenza dinamica si unisce all'uso di una parola convenzionale da usare come chiave che non occorre più scegliere senza ripetizioni la cui prima formalizzazione sembra essere presente nel trattato De furtivis literarum notis, vulgo de ziferis, scritto nel 1563 dallo scienziato e filosofo Giovan Battista della Porta.

L'idea è quella di utilizzare le lettere della parola chiave, ripetuta con continuità finché occorre in corrispondenza del testo in chiaro, per indicare il cifrario (del tipo Cesare) da usare in quel momento. In sostanza, la lettera da cifrare e la corrispondente lettera della parola chiave sono usate come una sorta di coordinate piane con cui individuare la lettera cifrata all'interno di un quadro -un tableau, come si dice oggi in Matematica- che contiene tutti i possibili cifrari di Cesare.
Ad esempio, si scelga ancora la parola salve come chiave e si supponga di voler trasmettere il messaggio:

studiate la matematica e sarete sempre contenti.

Le operazioni sono le seguenti:
1. ogni lettera del messaggio in chiaro viene messa in corrispondenza con una lettera della chiave, ripetuta quanto basta in corrispondenza delle sue lettere:

s t u d i a t e l a m a t e m a t i c a
s a l v e s a l v e s a l v e s a l v e

e s a r e t e s e m p r e c o n t e n t i
s a l v e s a l v e s a l v e s a l v e s

2. la lettera della chiave indica quale cifrario utilizzare per la corrispondente lettera in chiaro, con riferimento al seguente quadro, che contiene in maniera ordinata tutti i cifrari di Cesare:

3. per cifrare il messaggio si usano le lettere della parola chiave per individuare il cifrario: così, per la prima lettera s, si usa la riga che comincia con la s stessa di salve e si individua la n; per la successiva lettera in chiaro t il cifrario è quello che comincia con la a di salve e quindi rimane t anche dopo la cifratura; ora si ricorre alla l della parola chiave per cifrare la u, trasformandola in g e così via. Il messaggio cifrato prende forma...

Continuate voi. Per apprezzare meglio l'uso del cifrario dinamico, si osservi come già da questo piccolo frammento risulta che la lettera e viene cifrata una prima volta con la p e la volta seguente con la c. Viceversa, la lettera f sta sia per la m che per la t grazie al fatto che queste lettere occupano posizioni diverse nel messaggio in chiaro.
È ovvio che, variando la parola chiave, si ottiene in questo modo una quantità infinita di cifrari. E se la chiave è abbastanza lunga - e non occorre più il vincolo che non abbia lettere ripetute - il periodo del sistema cifrante è lungo di conseguenza. Eppure non bisogna sottovalutare i metodi della Statistica né la capacità e l'ostinazione dei decrittatori: pur di conoscere un numero abbastanza alto di messaggi cifrati, nel corso del tempo sono stati elaborati dei metodi per trovare il periodo del sistema cifrante e da qui, in maniera empirica, risalire alla chiave.
Questi risultati, inutile dirlo, sono stati ottenuti in ambito militare. Gli artefici principali sono stati l'ufficiale prussiano Friedrich Wilhelm Kasicki (1805-1881) e, più tardi, il generale americano William Frederick Friedman (1891-1969). L'idea adottata da Kasiski si basa sull'analisi delle ripetizioni di gruppi di lettere, che sono poste in relazione diretta con la lunghezza della parola chiave: questo permette di scindere il cifrario nelle sue componenti monoalfabetiche, più semplici da decrittare. II lavoro di Friedman si concentra invece sulla probabilità che due lettere qualsiasi di un testo cifrato corrispondano in realtà alla stessa lettera in chiaro. Una breve esposizione di questi metodi, senza troppe complicazioni tecniche, si può trovare nell'agile testo di Berardi e Beutelspacher [2]. Siamo così giunti agli albori del `900, quando i dispositivi elettromeccanici sono pronti per l'elaborazione delle sempre maggiori quantità di dati che risultano connesse con l'operazione di decrittazione e, come riflesso, per la duale operazione di messa a punto del sistema cifrante.