Transcript of Breve storia della Crittografia - CNR
La Scitale Spartana
L’arte dello scrivere-nascosto era già conosciuta ed utilizzata
mille anni prima di Cristo. Le più
antiche notizie sicure sono, però, probabilmente quelle sulla
scitale spartana. Questa tecnica
consisteva in questo. Dopo aver scelto un’asta, avente un certo
diametro, le si avvolgeva attorno un
nastro di cuoio. A questo punto si scriveva il messaggio partendo
da un’estremità dell’asta verso
l’altra, parallelamente all’asse. In seguito si svolgeva il nastro
di cuoio e lo si inviava al
destinatario. Questi, affinché potesse leggere correttamente il
messaggio, doveva riavvolgere il
nastro su un’altra asta di uguale diametro. Non era certamente ciò
che noi oggi definiremmo un
“algoritmo” sicuro, ma in base a quanto ci tramandano storici greci
quali Plutarco, esso fu usato con
successo per molti secoli. Si legge infatti nelle “Vite parallele”
di Plutarco, che questo sistema era
usato da Licurgo(?) (IX sec. a. C.) e da Lisandro. Quest’ultimo
infatti, nel 404 a. C. circa, ricevette
un corriere, pesto e insanguinato, dei cinque che avevano tentato
l’attraversamento del territorio
persiano. Il corriere porse la “cintura” a Lisandro, che l’avvolse
intorno all’asticciola, di giusto
diametro, ed apprese che il persiano Farnabazo progettava di
attaccarlo. Ebbe così il tempo di
prepararsi, e il nemico fu respinto. La scitale spartana è un
esempio di cifrario a sostituzione,
ottenuta manualmente, che aggiungeva alla sua efficacia tecniche
steganografiche, infatti la striscia
di cuoio poteva facilmente essere camuffata da cintura.
Il Codice Atbash
Certamente non furono solamente i Greci a utilizzare la
crittografia, si hanno, infatti, notizie del
fatto che anche Ebrei, Indiani, Cinesi utilizzavano con successo
diverse tecniche crittografiche. Per
esempio gli Ebrei inventarono il codice ATBASH, il cui nome deriva
infatti dalle lettere
dell’alfabeto ebraico (A = aleph, T = taw, B(a) = beth, SH = shin).
Questo algoritmo fa parte della
famiglia degli algoritmi simmetrici a sostituzione. Per cifrare un
testo in chiaro si effettuava, infatti,
la seguente sostituzione:
la prima lettera dell’alfabeto “A” la si sostituiva con l’ultima:
la “T”; la seconda “B” con la
penultima “S”. Da qui il nome dell’algoritmo. Per fare un esempio
utilizzerò però le lettere
dell’alfabeto inglese.
ALFABETO IN CHIARO 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
ALFABETO CIFRANTE Z Y X W V U T S R Q P O N M L K J I H G F E D C B
A
Quindi la frase in chiaro “Attaccheremo Gerico domani all’alba”
diventa in cifra “Zggzxxsvivnl
Tvirxl wlnzmr zoo’zoyz“.
Per quanto riguarda gli Indiani, invece, un’altra antica
descrizione di cifratura si trova addirittura
nelKamasutra, opera del brahmino Vatsyayana, un erudito del IV sec.
d.C., che utilizzò
manoscritti risalenti al IV sec. a. C. Secondo il Kamasutra, una
delle arti che le donne devono
imparare è l’arte della scrittura in codice, utile, secondo il
brahmino, per celare a occhi indiscreti la
corrispondenza fra due amanti. Una delle tecniche raccomandate
consiste nell’accoppiare a caso a
due a due le lettere dell’alfabeto e nel sostituire ciascuna
lettera del testo con quella a lei accoppiata.
Il cifrario di Cesare
Il primo uso sicuramente attestato della cifratura per sostituzione
in ambito militare si trova, però,
nei “Commentarii de bello gallico” di Caio Giulio Cesare (102-100
a. C. / 44 a. C.). Cesare
racconta:
ibi ex captivis cognoscit, quae apud Ciceronem gerantur quantoque
in periculo res sit. Tum
cuidam ex equitibus Gallis magnis preamiis persuadet, uti Ciceronem
epistulam deferat. Hanc
Graecis conscriptam litteris mittit, ne intecepta epistula nostra
ab hostibus consilia cognoscantur.
(De bello gallico, V,48.2-4).
Lì, apprende dai prigionieri quanto sta accadendo presso Cicerone e
in quale pericolo si trovi.
Allora convince con grandi ricompense un cavaliere dei Galli a
portare una sua lettera a Cicerone.
redige la missiva in caratteri greci perché se cada in mano nemica
non riveli i nostri piani.
NB: qui si parla di Quinto Tullio Cicerone fratello minore
dell’oratore Marco Tullio Cicerone.
Qui come si evince dal testo, Cesare utilizzò caratteri greci al
posto di quelli dell’alfabeto latino.
Tale sistema era abbastanza sicuro, infatti, è del tutto
improbabile che ci fosse, nei ranghi
dell’esercito che assediava Cicerone, qualcuno che conoscesse il
greco. A quel tempo il greco lo
imparavano solo i rampolli delle più ricche famiglie romane,
tramite un precettore greco e grazie a
viaggi studio in Grecia. Questo non è l’unico caso accertato di uso
di cifrari a trsposizione da parte
di Cesare; si sa, infatti, che Cesare ricorreva spessissimo alle
missive in cifra, anche per comunicare
coi parenti. Sappiamo, in proposito che la cifratura era talmente
tanto spesso utilizzata da Cesare,
che Valerio Probo dedicò ai suoi cifrari un intero trattato, che
purtroppo è andato perduto. Ma ci
sono altre testimonianze, come quelle di Svetonio. Si legge infatti
nelle “Vite dei Cesari“:
Extant et ad Ciceronem, item ad familiares domesticis de rebus, in
quibus, si qua occultius
perferenda erant, per notas scripsit, id est sic structo litterarum
ordine, ut nullum verbum effici
posset: quae si qui investigare et persequi velit, quartam
elementorum litteram, id est D pro A et
perinde reliquas commutet. (Vita di Cesare, 56)
Restano quelle a Cicerone, così come quelle ai familiari sugli
affari domestici, nelle quali, se
doveva fare delle comunicazioni segrete, le scriveva in codice,
cioè con l’ordine delle lettere così
disposto che nessuna parola potesse essere ricostruita: se qualcuno
avesse voluto capire il senso e
decifrare, avrebbe dovuto cambiare la quarta lettera degli
elementi, cioè D per A e così via per le
rimanenti.
Ecco un esempio:
ALFABETO IN CHIARO a b c d e f g h i l m n o p q r s t u v z
ALFABETO CIFRANTE D E F G H I L M N O P Q R S T U V Z A B C
Quindi la frase in chiaro “Veni Vidi Vici” diventa in cifra “Bhqn
Bngn Bnfn“.
La scacchiera di Polibio
La scacchiera di Polibio
Questo sistema ideato dallo storico greco Polibio di Megalopoli, in
Arcadia, (201 -120 circa a. C.),
prevede che ogni lettera dell’albabeto in chiaro, venga sostituita
dalla coppia di numeri che
individuano la sua posizione, quindi per esempio alfa viene cifrata
con 11, pi viene cifrata con 41 e
così via.
L’idea era che un messaggio potesse essere trasmesso tenendo
diverse combinazioni di torce in ogni
mano. La scacchiera ha altre importanti caratteristiche, e cioé la
riduzione nel numero di caratteri
diversi, la conversione in numeri e la riduzione di un simbolo in
due parti che sono utilizzabili
separatamente. Indipendentemente dalla tecnica, queste scacchiere
formano la base per molti altri
codici di cifratura come il Cifrario di Playfair.
Il Medioevo
Da Cesare fino all’alto medioevo, si continuò ad usare degli
algoritmo di cifratura per sostituzione o
per trasposizione; infatti tali algoritmi era ritenuti inviolabili
dai dotti. Consideriamo, ad esempio, la
cifratura di Cesare, essa prevede come abbiamo già detto, uno
spostamento di 3 posizioni. Ma è
chiaro che impiegando qualunque spostamento, compreso tra 1 e 20,
si possono generare 20 diverse
cifrature . Se invece di ricorrere al semplice spostamento, si
ammette l’uso di qualunque alfabeto
cifrante, ottenuto per riorganizzazione dell ‘alfabeto in chiaro,
si può generare un numero molto più
alto di cifrature . Per un gruppo di 21 lettere le possibili
combinazioni sono circa
50.000.000.000.000.000.000 ognuna delle quali permette una diversa
cifratura. A causa delle
tumultuose vicende della storia europea nel periodo compreso tra IV
e XI sec., non furono fatti
passi avanti nel campo della crittografia. Ma mentre l’ europa era
in piena decadenza, non molto
lontano, dall ‘altra parte del Mediterraneo la civiltà araba era in
piena fioritura. I suoi meriti, sono
tanti, fra questi a noi interessano particolarmente quelli legati
alla crittologia . Infatti, gli arabi non
solo continuarono ad utilizzare, con profitto, i sistemi di
cifratura, peraltro già utilizzati da secoli,
ma contribuirono, in maniera fondamentale, allo sviluppo dell
‘altra branca della crittologia .: la
crittanalisi . Mentre i crittografi mettevano a punto nuovi sistemi
di cifratura, i crittoanalisti
cercavano di individuare i loro punti deboli e capire i segreti che
custodivano. E furono i
crittoanalisti arabi a trovare il punto debole della sostituzione
monoalfabetica, un sistema che
resisteva da secoli ad ogni assalto. Alla base della crittoanalisi
araba vi era la cosiddetta analisi delle
frequenze. Cos’è? Si legge nel più antico trattato arabo
sull’argomento, “Sulla decifrazione dei
messaggi cifrati” dello studiosoAbu Yusuf ibn Ishaq al-Kindi (IX
sec. d.C.):
Un modo di svelare un messaggio crittato, se conosciamo la lingua
dell’originale, consiste nel
trovare un diverso testo in chiaro nella stessa lingua, abbastanza
lungo da poterne calcolare la
frequenza di ciascuna lettera. Chiamiamo “prima” quella che compare
più spesso, “seconda” la
successiva, e così via fino all ‘esaurimento di tutte le lettere
del campione di testo in chiaro.
Esaminiamo poi il testo in cifra che vogliamo interpretare,
ordinando in base alla frequenza anche i
suoi simboli. Troviamo il simbolo più comune, rimpiazziamolo con la
“prima” lettera dell’esempio
in chiaro; il simbolo che lo segue per frequenze sia rimpiazzato
dalla “seconda” lettera dell’esempio
in chiaro, e così via fino ad aver preso in considerazione tutti i
simboli che volevamo svelare.
Il Disco dell’Alberti
Queste tecniche innovative di crittoanalisi, messe a punto dagli
arabi, vennero reintrodotte in
Europa dove furono utilizzate con successo in molteplici campi, ma
soprattutto in ambito
diplomatico, governativo e commerciale. Ma come si suol dire, non
c’ era niente di nuovo sotto il
sole. Infatti si continuava ad utilizzare dei metodi di cifratura
per sostituzione monoalfabetica.
Chiunque inviava un messaggio in codice doveva rassegnarsi: se il
messaggio fosse caduto in mani
ostili, un abile decrittatore avrebbe potuto impadronirsi dei suoi
segreti più preziosi.
Ma per fortuna, un uomo, un italiano dal multiforme ingegno, Leon
Battista Alberti, vissuto nel
XV secolo, in pieno Rinascimento, propose di usare al posto di un
solo alfabeto due o più alfabeti
cifranti e di sostituirli durante la cifratura, per confondere
l’eventuale decrittatore. Tuttavia pur
essendosi imbattuto nella più importante scoperta degli ultimi 10
secoli, nel campo delle scritture
segrete, egli non riuscì a trasformare la sua geniale intuizione in
un “algoritmo” ben definito. Sarà
un diplomatico,Blaise de Vigenere, nato nel 1523, a mettere a
frutto l’intuizione dell’Alberti.
Tavola di Vigenere
Blaise de Vigenere pubblicò nel 1586 un trattato di cifre nel quale
proponeva tra gli altri un codice
che ebbe grande fortuna e che è ricordato con il suo nome. Si
tratta del più semplice codice di
sostituzione polialfabetica, e proprio per la sua semplicità ha
goduto per secoli di una fama
immeritata, essendo molto più debole di altri codici polialfabetici
precedenti come il disco
dell’Alberti, o le cifre del Bellaso. Tale fortuna è durata fino a
molti decenni dopo che era stato
pubblicato un primo metodo di decrittazione: quello del Kasiski; e
altri metodi di crittanalisi sono
possibili.
Dal cifrario di Vigenere deriva peraltro il Cifrario Vernam,
considerato il
cifrario matematicamente inviolabile.
Il metodo si può considerare una generalizzazione del codice di
Cesare; invece di spostare sempre
dello stesso numero di posti la lettera da cifrare, questa viene
spostata di un numero di posti
variabile, determinato in base ad una parola chiave, da concordarsi
tra mittente e destinatario, e da
scriversi sotto il messaggio, carattere per carattere; la parola è
detta verme, per il motivo che,
essendo in genere molto più corta del messaggio, deve essere
ripetuta molte volte sotto questo,
come nel seguente esempio:
TESTO CIFRATO : vviuzvrfuvdrwavum
Il testo cifrato si ottiene spostando la lettera chiara di un
numero fisso di caratteri, pari al numero
ordinale della lettera corrispondente del verme. Di fatto si esegue
una somma aritmetica tra
l’ordinale del chiaro (A = 0, B = 1, C = 2 …) e quello del verme;
se si supera l’ultima lettera, la Z,
Per semplificare questa operazione il Vigénère propose l’uso della
seguente tavola quadrata,
composta da alfabeti ordinati spostati. Volendo ad esempio cifrare
la prima R di ARRIVANO si
individuerà la colonna della R, quindi si scenderà lungo la colonna
fino alla riga corrispondente
della corrispondente lettera del verme (qui E); la lettera trovata
all’incrocio è la lettera cifrata
(qui V); la seconda R invece sarà cifrata con la lettera trovata
sulla riga della R di VERME, e cioé
con la I.
Il vantaggio rispetto ai codici mono-alfabetici è evidente: la
stessa lettera del testo chiaro non è
sempre cifrata con la stessa lettera; e questo rende più difficile
l’analisi statistica del testo cifrato e
la decrittazione.
Chi riceve il messaggio per decifrarlo deve semplicemente usare il
metodo inverso (sottrarre invece
che sommare); riferendosi all’esempio precedente si avrà:
TESTO CIFRATO : vviuzvrfuvdrwavum
Crittanalisi del cifrario di Vigenere: il metodo Kasiski
Il cifrario di Vigénère è stato per secoli considerato
inattaccabile, ma si tratta in verità di una cifra
piuttosto debole; consideriamo infatti l’esempio seguente:
TESTO CHIARO : arrivanoirinforzi
TESTO CIFRATO : vviuzvrfuvdrwavum
Le due R di ARRIVANO vengono cifrate la prima con una V la seconda
con una I come deve
essere in un cifrario polialfabetico. Ma le due A vengono invece
cifrate con la stessa lettera, la V.
Come mai? Il motivo è evidente: le due A si trovano a cinque
caratteri di distanza l’una dall’altra e
cinque è proprio la lunghezza del verme! Di fatto il codice di
Vigenere si riduce qui a cinque codici
di Cesare intercalati.
Il primo a rendersi conto di questa debolezza del codice di
Vigenere fu il colonnello
prussianoFriedrich Kasiski, che nel 1863 pubblicò un metodo di
decrittazione della tavola di
Vigenere.
L’attacco alla Kasiski si basa sull’osservazione che in un
crittogramma alla Vigenere si trovano
spesso sequenze identiche di caratteri a una certa distanza l’una
dell’altra; questo avviene
evidentemente per il motivo esposto sopra; se p.es. usando la
chiave VERME come sopra si scrive
due volte la preposizione DEL a 30 caratteri di distanza questa
sarà cifrata in modo identico
essendo 30 un multiplo della lunghezza del verme che è 5.
Se, allora, si individuano tutte le sequenze ripetute (e in un
testo lungo o in più testi se ne
troveranno molte), allora, è pressochè certo che il massimo comun
divisore tra le distanze tra
sequenze identiche è la lunghezza della chiave, o tutt’al più un
suo multiplo.
Una volta individuata la lunghezza n del verme, il messaggio si
riduce a n messaggi intercalati, tutti
cifrati con un codice di Cesare ed è allora molto facile
completarne la decrittazione.
Dopo Kasiski sono stati individuati altri metodi per forzare il
cifrario di Vigenere e in generale i
cifrari polialfabetici; ne presentiamo uno basato sul metodo dei
minimi quadrati.
La conclusione è che la cifra di Vigenere è affidabile solo quando
il verme è di lunghezza
comparabile a quella del testo e viene cambiato molto spesso, cosa
che comporta problemi pratici
non indifferenti (trasmissione e cambiamento della chiave
richiedono un canale di comunicazione
assolutamente sicuro).
Crittanalisi del cifrario di Vigenere con il metodo dei
minimi
quadrati
Un metodo di cifratura come il cifrario di Vigenere, per secoli
considerato sicuro e inattaccabile,
può oggi essere forzato in una frazione di secondo con l’aiuto del
computer!
Un buon esempio è il seguente metodo dei minimi quadrati.
L’algoritmo fa uso di una ricerca
esaustiva ma anche di una funzione di valutazione basata sul
classico metodo dei minimi quadrati di
Gauss: si tentano una dopo l’altra tutte le possibili lunghezze del
verme n = 2, 3, 4, 5 … fino a
trovare la lunghezza più probabile in base al confronto tra il
numero di presenze e quello previsto.
Una volta individuato il valore di n il messaggio cifrato viene
spezzato su n colonne che si possono
analizzare statisticamente; queste sono infatti cifrate con un
codice di Cesare, dunque ci sono solo
26 ipotesi possibili; (p.es. spostamento di 3 A->D, B->E …;
spostamento di 6 A->G, B->H …);
queste 26 ipotesi vengono analizzate una per una e per ognuna viene
calcolata la funzione di
valutazione: per ogni lettera si calcola la differenza tra la
frequenza relativa nel testo e quella
prevista, e la si eleva al quadrato; sommando tutte le differenze
quadratiche si ottiene una misura
della differenza tra l’ipotesi e la tabella delle frequenze; alla
fine si individua l’ipotesi per la quale
questa differenza è minima, e quindi la lettera del verme.
Questo lavoro viene ripetuto per ogni colonna e alla fine si
ottiene una ipotesi completa per il
verme; se il verme è una parola o frase riconoscibile della lingua
si è pressochè certi di aver forzato
il messaggio; dopodiché si prova comunque a decifrare il
messaggio.
Se il messaggio ha senso compiuto il gioco è fatto; se no si prova
con un altro valore di n.
Il metodo è pressoché infallibile se la lunghezza del verme
(chiave) è almeno venti volte inferiore a
quella del testo cifrato. Per rapporti tra dieci e venti alcune
lettere della chiave possono essere
sbagliate, ma se si tratta di una parola di senso compiuto non ci
vuole molto a completarla; persino
per valori [di poco] inferiori a 10 il metodo riesce ancora ad
azzeccare alcune lettere della chiave e
il crittanalista può ancora arrivare alla soluzione. Un fatto
curioso è che spesso questo metodo
fornisce la chiave corretta o in buona parte corretta anche usando
la tabella delle frequenze di una
lingua sbagliata; in effetti le lingue europee hanno distribuzioni
di frequenza non molto dissimili.
Come è intuibile, se il verme ha lunghezza paragonabile al testo e
le n colonne contengono solo 2 o
3 o 4 o 5 caratteri non è più possibile fare confronti
significativi con le tabelle di frequenza e il
metodo cade.
Se poi il verme è lungo come il testo, si tratta in effetti di un
Vernam, che è il cifrario sicuro e
inattaccabile per eccellenza. E anche questo metodo non può che
fallire in questo caso.
Il cifrario di Vernam
Il cifrario di Vigenere ha il suo tallone d’Achille nel fatto di
essere un insieme di cifrari di Cesare
intercalati a distanza fissa, cosa che ne rende possibile e anzi
molto facile la crittanalisi, tanto più se
la chiave è breve.
Ben diversa sarebbe però la situazione se la chiave avesse
lunghezza infinita o, che in fondo è lo
stesso, fosse lunga come il testo chiaro (o meglio come la somma di
tutti i testi chiari).
È questa l’idea proposta da G. S. Vernam nel 1926 per il cifrario
che porta il suo nome; viene
generata una chiave del tutto casuale, e dunque imprevedibile,
lunga come il testo; a questo punto il
chiaro e la chiave vengono “sommati” proprio come nel cifrario di
Vigenere. L’unica differenza è
che nel Vernam si sommano non tanto gli ordinali delle lettere da
cifrare ma i singoli bit che
codificano la lettera nei codici usati nelle telecomunicazioni
(allora il codice Baudot, oggi codice
ASCII) con l’operazione logica XOR. Questa è simile all’addizione,
ma ha il vantaggio di essere
reversibile, e quindi verrà usata anche per decifrare.
In tal modo la debolezza del Vigenere è superata e anzi Claude
Shannon, il padre della Teoria
dell’Informazione, ha dimostrato nel 1949 che ogni cifrario
“teoricamente sicuro” è un cifrario di
Vernam (e viceversa). Infatti se la chiave è totalmente casuale e
lunga come il testo allora il testo
cifrato non contiene alcuna informazione sul testo chiaro, ed è del
tutto al sicuro dagli attacchi della
crittanalisi statistica.
Per avere una sicurezza assoluta non si dovrebbe mai riutilizzare
la stessa chiave; se si utilizza più
volte la stessa chiave infatti questa torna ad essere più breve del
messaggio, o meglio della somma
di tutti i messaggi e il cifrario non è più perfetto. Per questo
motivo questo tipo di cifrario viene
dettoa blocco monouso o onetime pad.
Perché allora non usiamo tutti questo cifrario? Il problema è che
la chiave lunga come il testo deve
essere preventivamente comunicata al destinatario in modo sicuro e
… qui il gatto si morde la coda,
visto che non sempre è disponibile un canale sicuro di
comunicazione.
I due corrispondenti dovrebbero incontrarsi periodicamente in luogo
sicuro e generare una sequenza
casuale lunghissima, sufficiente per un gran numero di messaggi, da
utilizzare un po’ alla volta.
Una volta esaurita la chiave dovranno incontrarsi di nuovo,
rigenerare la chiave etc.etc.
Per semplificare le cose si potrebbe pensare di generare la chiave
in modo pseudo-casuale, secondo
una qualche regola nota e riproducibile dal destinatario; questa
idea diede luogo nel periodo tra le
due guerre mondiali a una generazione di macchine cifranti, tra le
quali la macchina Lorenz usata
dai tedeschi nella II guerra mondiale. Ma così il cifrario non è
più assolutamente sicuro, perché la
chiave non è più realmente lunga come il testo, la vera chiave è la
regola generatrice!. Tanto è vero
che la macchina Lorenz fu forzata dagli inglesi sin dal 1941.
Nonostante queste difficoltà il cifrario di Vernam sembra sia stato
usato effettivamente negli anni
della guerra fredda dai servizi segreti dell’Est e per il telefono
rosso tra Washington e Mosca. Un
cifrario di Vernam era anche quello trovato addosso al Che Guevara
dopo la sua uccisione nel 1967.
La macchina cifrante Enigma
La Macchina cifrante Enigma
Nel 1918 un giovane inventore tedesco Arthur Scherbius fondò,
insieme al suo amico Richard
Ritter, la Scherbius & Ritter, una società che era impegnata in
diversi campi. Qui Arthur, a capo del
settore ricerca e sviluppo, portò a compimento un progetto che
avrebbe messo fine al predominio
della carta e penna in crittografia: il risultato dei suoi sforzi
fu la macchina Enigma, che sarebbe
passata alla storia come uno dei più temibili sistemi crittografici
mai realizzati.
In cosa consisteva la macchina cifrante Enigma?
La versione base consisteva in tre componenti collegati da fili
elettrici:
una tastiera per immettere le lettere del testo in chiaro;
un’unità; scambiatrice che cifra le lettere trasformandole nei
corrispondenti elementi del
crittogramma;
un visore con lamapadine che, accendendosi, indicano le lettere da
inserire nel
crittogramma.
Per generare il crittogramma l’operatore preme il tasto
corrispondente alla lettera da cifrare;
l’impulso elettrico raggiunge l’unita scambiatrice, e dopo essere
stato eleborato va ad illuminare il
visore in modo corrispondente alla lettera crittata. Lo scambiatore
(o rotore) non è altro che uno
spesso disco di gomma attraversato da una complessa rete di fili
elettrici, che entrano nello
scambiatore in 26 punti e dopo un percorso con vari gominti escono
da altri 26 punti. Ma con
questo schema di base, lo scambiatore definisce una semplice
cifratura per sostituzione
monoalfabetica, che, come abbiamo visto, era già stata violata da
secoli. Ma è a questo punto che
entrò in gioco l’inventiva di Scherbius, egli, infatti, fece si che
lo scambiatore ruotasse
automaticamente di 1/26 di giro dopo la cifratura di ogni lettera,
ciò permetteva l’utilizzo di 26
alfabeti cifranti.
Questo sistema fece si che una lettera, nel medesimo crittogramma,
venisse cifrata sempre in
maniera diversa; l’Enigma operava, in questo modo, una cifratura
per sostituzione polialfabetica.
Tuttavia, così come era nel progetto iniziale, lo scambiatore aveva
un difetto di base, dopo 26
pressioni consecutive, ad esempio, della lettera A, il disco torna
alla posizione iniziale, e se si
continuasse a premere lo stesso tasto, lo schema di cifratura si
ripeterebbe tale e quale; e la
ripetitività è la bestia nera di ogni algoritmo di crittografia,
perché essa significa regolarità e
struttura del crittogramma.
Per aumentare il grado di sicurezza della sua creatura, Scherbius
introdusse altri due scambiatori,
che ruotavano così: il primo compiva un giro completo dopo la
pressione di 26 tasti, il secondo
dopo 26 giri completi del primo e il terzo dopo 26 giri completi
del secondo; il funzionamento è
quindi simile a quello di un contatore meccanico, salvo il fatto
che l’inizio del giro di ogni rotore è
segreto. Con l’introduzione degli altri due rotori, Scherbius fece
si che la sua macchina cifrante
potesse utilizzare 26 x 26 x 26 = 17.576 alfabeti cifranti, e
ridusse di molto la possibilità di
ripetizioni. Ma andò oltre, infatti, inserì un ulteriore elemento,
il riflessore. Esso, era simile al rotore
solo che non ruotava; inoltre i fili entravano e uscivano dal
medesimo lato. Quindi il segnale
elettrico attraversava i tre rotori, passava dal riflessore, e
riattraversava i tre rotori per un percorso
diverso per riemergere nel visore.
L’Enigma si svela
Il Pannello a prese multiple
Dopo aver discusso della struttura interna dell’Enigma, adesso è
giunto il momento di parlare di
come gli Alleati riuscirono a violare la sua cifra.
Prima di tutto, occorre analizzare come, gli addetti alla cifra
tedeschi erano soliti utilizzare Enigma
per cifrare i messaggi. Ciò è molto importante poiché proprio l’uso
inattento di questo dispositivo
contribuì a svelarne i segreti.
Supponiamo, quindi, che un operatore volesse inviare un messaggio
cifrato. Prima di tutto egli
doveva regolare i tre rotori in una delle 17.576 configurazioni
possibili. Infatti la macchina Enigma
può essere assimilata a un algoritmo crittografico. In tal caso,
l’assetto iniziale di Enigma forniva
ulteriori precisazioni necessarie alla cifratura, ossia equivaleva
all chiave. Di solito, la posizione
iniziale era contenuta in un cifrario, che forniva giorno per
giorno l’assetto corretto per l’Enigma.
Una volta che il messaggio era stato cifrato e trasmesso, tutto
quello che doveva fare il destinatario
era inserire il testo cifrato nell’Enigma perché si potesse leggere
il testo in chiaro. Questa semplicità
delle operazioni di cifratura/decifratura era dovuta al riflettore.
Infatti se si inseriva la lettera V ed
essa veniva cifrata con B, allora bastava inserire la lettera B
perché sul visore comparisse la lettera
Chiaramente si nota che la segretezza aveva due punti deboli, uno
era la segretezza dei cifrari,
l’altra era la macchina Enigma stessa, infatti qualora gli alleati
fossero venuti a conoscenza della
struttura interna dei rotori, l’unica cosa che rimaneva da fare era
provare tutte le 17.576
combinazioni possibili, per decifrare il testo; ammettendo che
fosse stato possibile analizzare un
assetto al minuto per tutto il giorno e la notte, sarebbero bastate
due settimane per violare Enigma.
Fu a causa di ciò che Scherbius introdusse alcune varianti al
progetto. Innanzitutto, rese i rotori
removobili e sostituibili. Per esempio il primo e il terzo potevano
scambiarsi i posti. Dati tre
elementi intercombiabili essi possono essere combinati in 6 modi
differenti; e questo quindi
aumentava di un fattore 6 il numero di chiavi disponibili. Un’altra
cambiamento che apportò fu
l’inserimento di un pannello a prese multiple tra la tastiera e il
primo rotore. Il pannello permetteva
al mittente di inserire alcuni cavi muniti di spinotti, che avevano
l’effetto di scambiare due lettere
prima della loro immissione nel rotore. L’operatore di Enigma
disponeva di sei cavi, che gli davano
la possibilità di scambiare sei coppie di lettere. Le altre
quattordici lettere restavano non collegate e
non scambiate.
Con questi uleriori accorgimenti il numero di possibili chiavi era
salito vertiginosamente. Con un
rapido calcolo:
26 x 26 x 26 (= 17.576 combinazioni dovute ai tre rotori
ruotanti)
17.576 x 6 (= 105.456 le combinazioni possibili cosiderando che 3
rotori potevano
esserescambiati di posto)
105.456 x 100.391.791.500 ( quest’ultimo fattore dovuto allo
scambiatore a prese multiple;
infatti i possibili abbinamenti di 12 (6 x 2) lettere su 26 sono
moltissimi.)
in totale quindi si ottiene esattamente 10.586.916.764.424.000 (più
di 10 milioni di miliardi) di
combinazioni.
Supponendo che un crittoanalista volesse far breccia in Enigma, con
un attacco brute force,
supponedo anche che egli potesse esaminare una chiave al minuto,
notte e giorno, impiegherebbe
un tempo superiore all’eta’ dell’universo per analizzare tutte le
possibili combinazioni. Nel
settembre 1932 l’ufficio cifra polacco chiamò tre matematici,
Marian Rejewski, Henryk
Zygalski e Jerzy Rozicki, con il compito di cercare di forzare la
macchina Enigma usata dai
tedeschi e da questi ultimi considerata inattaccabile.
Sorprendentemente l’inattaccabile Enigma fu
forzata nel giro di tre mesi, un po’ per merito dei tre matematici,
un po’ per l’incredibile leggerezza
delle procedure di cifra tedesche. Le procedure erano le seguenti:
ogni giorno la chiave
(disposizione e posizione iniziale dei rotori) doveva essere
cambiata in base a una serie di regole
segrete basate sulla data corrente. Inoltre ogni messaggio
conteneva una ulteriore chiave segreta
composta di tre caratteri; questa chiave veniva trasmessa
all’inizio del messaggio stesso e per
maggiore sicurezza veniva trasmessa due volte di seguito. Questa
idea di trasmettere due volte di
seguito i tre caratteri segreti si rivelò essere una cubitale
leggerezza che fornì un grosso appiglio al
crittanalista. Dal punto di vista matematico l’Enigma si riduce
infatti a un prodotto di permutazioni.
Ora il fatto che il primo e il quarto carattere di ogni messaggio
siano uguali rese possibile a
Rejewski di ricostruire la permutazione AD (quella tra il primo e
il quarto carattere del messaggio)
nel giro di pochi giorni avendo a disposizione ogni giorno molte
decine di messaggi cifrati con
l’Enigma. Se, ad esempio, abbiamo tre messaggi che iniziano con
queste sei lettere:
#1: SDF GHJ ...
#2: GHZ UJP ...
#3: UKJ QDO ...
siamo in grado di ricostruire un frammento della permutazione AD;
infatti in #1. S diventa G, in #2.
G diventa U, e in #3 U diventa Q. Dunque la sequenza SGUQ è parte
della permutazione AD.
Analogamente la permutazione BE (tra il secondo e il quinto
carattere) deve contenere la sequenza
KDHJ, e insomma con un centinaio di messaggi si possono ricostruire
completamente le tre
permutazioni AD BE CF.
Questa naturalmente non è ancora la soluzione del problema; le
permutazioni AD BE CF sono
legate alle permutazioni dei rotori da un sistema di equazioni con
5 incognite: le permutazioni R S
C D I ( indicando con R = riflettore, S = terzo rotore, C = il
secondo rotore, D = il primo rotore, I =
ingresso). Questo è un sistema ancora troppo complesso per essere
risolto in modo univoco;
considerando però che i rotori S, C e R girano raramente, li si può
considerare come un unico
blocco riflettore Q = CSRS^-1C^-1, riducento il numero di incognite
a 3. Con tre incognite il
problema non è ancora risolvibile in modo generale ma si è ormai
vicini alla meta.
Un aiuto decisivo venne nel dicembre 1932 quando l’ufficio cifra
francese venne in possesso della
struttura del disco iniziale I e la comunicò ai colleghi polacchi.
Con ormai solo due incognite
Rejewski fu in grado di ricostruire completamente la permutazione D
(rotore a destra) e grazie al
fatto che i tedeschi cambiavano periodicamente la disposizione dei
rotori, riuscì a ricostruire una
dopo l’altra tutte e tre le permutazioni dei tre rotori e quindi
l’intera struttura interna della macchina
Enigma.
Una volta ricostruita questa struttura usando ancora la teoria
delle permutazioni Rejewski progettò
un dispositivo elettro-meccanico ilciclometro che permetteva di
ricostruire velocemente la
posizione iniziale dei rotori; in seguito furono usati anche fogli
perforati e le bombe crittologiche;
in definitiva sin dal dicembre 1932 fu possibile decrittare un buon
numero di messaggi cifrati; nel
1937 fu stimata al 75% la percentuale di messaggi Enigma forzati
dall’ufficio cifra polacco.
Tra il 1938 e il 1939, i tedeschi cambiarono le regole di cifratura
e aumentarono il numero di rotori
da 3 a 5 così che il metodo dei polacchi perse buona parte della
sua efficacia. In quel periodo, la
decrittazione di messaggi Enigma da parte dell’ufficio cifra
polacco fu occasionale. Il lavoro dei
polacchi fu, peraltro, ripreso, durante la seconda guerra mondiale,
dall’ufficio cifra inglese, che
perfezionò e migliorò i metodi di decrittazione dell’Enigma. Il 25
luglio 1939, nell’imminenza
dell’attacco tedesco alla Polonia, si tenne, a Varsavia, una
riunione tra gli uffici cifra polacchi,
francesi e inglesi, nella quale i polacchi misero a disposizione
degli alleati i loro metodi per forzare
l’Enigma. Nello stesso anno gli inglesi avevano trasferito nel
villaggio di Bletchley Park, a metà
strada tra Oxford e Cambridge, la sede del loro servizio di
decrittazione, noto con il nome diUltra.
È singolare che Rejewski, nel frattempo fuggito in Francia, non sia
mai stato invitato a partecipare a
questo progetto.
Partecipava invece attivamente a Ultra il matematico inglese Alan
Turing(1912-1954), noto
soprattutto come padre dell’informatica teorica per la sua macchina
di Turing, che ideò nuove e
più efficienti bombe crittologiche così che l’Enigma fu nuovamente
e sistematicamente forzata. Nel
1942 si arrivò a decrittare più di 80000 messaggi cifrati tedeschi
al mese.
Questa impresa restò per molti anni coperta dal segreto militare e
solo a partire dagli anni ’70
cominciò ad emergere la vera storia dell’Enigma e della sua
decrittazione. Non è inverosimile che
non tutti i dettagli siano stati resi pubblici. In particolare il
ruolo dei polacchi fu riconosciuto
pubblicamente solo nel 1989 in un discorso a Danzica dell’allora
Presidente USA George Bush.
Contrariamente a quello che si legge su alcuni libri e siti web,
non hanno viceversa nulla a che fare
con la disfatta dell’Enigma i Colossi, vere e proprie macchine
calcolatrici programmabili che
furono progettati specificamente per forzare la ben più sofisticata
macchina di Lorenz usata dagli
alti comandi tedeschi. L’aver forzato, sin dall’inizio della
guerra, l’Enigma (nonchè altri cifrari
tedeschi e giapponesi) fu un fattore di grande importanza per la
vittoria degli anglo-americani nella
II guerra mondiale.
www.liceofoscarini.it (a cura di Paolo Bonavoglia)
KAHN, DAVID, The Codebreakers. The story of secret
writing,Scribner, New York (1996)
SINGH, SIMON, Codici & Segreti, Rizzoli, Milano (1999)
BEUTELSPACHER, ALBRECHT, BERARDI LUIGIA, Crittologia. Come
proteggere le
informazioni riservate, Franco Angeli, Milano (1996)