vuoi
o PayPal
tutte le volte che vuoi
La storia della macchina crittografica Enigma ed il suo funzionamento, con approfondimenti su Alan Turing e contestualizzazione storica
Materie trattate: Matematica, Storia
Enigma
Il codice segreto della Wehrmacht
Antonello Gerbi
Liceo Scientifico Statale Elio Vittorini, Milano
2007
1 La macchina Enigma
1.1 Che cos'è Enigma?
Enigma era il nome della macchina utilizzata dall'esercito tedesco, prima e durante il
secondo conflitto mondiale, per cifrare-decifrare (come si vedrà la macchina funzionava in
entrambi i “versi”) le comunicazioni interne. Questa macchina era per il tempo
estremamente avanzata, come dimostrano le innumerevoli fatiche compiute dagli scienziati
e dai crittoanalisti Alleati nel cercare un sistema in grado di capirne il segreto.
1.1.1 L'invenzione originaria e la sua adozione da parte della Wehrmacht
Il primo prototipo di Enigma fu brevettato nel 1919 da Arthur Scherbius, ingegnere
elettrotecnico di Francoforte; nel 1923 cominciò a vendere la versione commerciale della La macchina Enigma
sua invenzione, dopo aver fondato una società a tale scopo. I nazisti, essendosi resi conto
delle enormi potenzialità di Enigma, la acquisirono nel 1929 per la propria milizia (e
successivamente per l'esercito), e da quel momento in poi praticamente ogni comunicazione
tedesca venne trasmessa solo dopo essere stata cifrata (si pensi che neanche i bollettini meteorologici venivano
trasmessi in chiaro). La macchina era perfetta per l'esercito, in quanto relativamente piccola e leggera, e quindi
trasportabile direttamente al fronte.
Nel 1939, inoltre, il progetto venne modificato dai tedeschi, poichè la versione “commerciale” era ampiamente diffusa
e quindi più facilmente decrittabile, con l'aggiunta di alcuni meccanismi che avrebbero dovuto aumentare la sicurezza
del sistema.
1.2 La macchina
Per analizzare il funzionamento di Enigma, bisogna risalire ad alcuni sistemi di crittografia conosciuti da molti secoli;
difatti la genialità della macchina stava proprio nella combinazione di diversi sistemi di cifratura.
1.2.1 Nozioni base di crittografia e crittoanalisi
Il primo di questi sistemi risale addirittura ad almeno 2000 anni fa: ne parla Svetonio, ed
è comunemente conosciuto come “cifrario di Cesare”. Questo sistema semplicissimo (ma
per l'epoca praticamente impossibile da violare) consiste nella sostituzione lineare di un
alfabeto ad un altro traslato di n posizioni. Così ad esempio in una traslazione n=2:
A B C D E F G H diventa
C D E F G H I L
Questo tipo di sostituzione viene chiamato “sostituzione monoalfabetica”. La banalità del
cifrario di Cesare appare evidente, anche perchè il numero di chiavi diverse utilizzabili è Il cifrario di Cesare
25 (il numero totale di traslazioni possibili), ma si dovrà aspettare all'incirca l'anno 1000
perché gli arabi trovino un modo per violarlo.
Un passo in avanti fu compiuto da Thomas Jefferson (presidente degli USA dal 1801 al 1809), il quale ideò un nuovo
cifrario, il “cilindro di Jefferson”.
Il nome deriva dal suo aspetto: era infatti un cilindro composto da 36
(numero variabile in base alla lunghezza del testo da criptare) piccoli
dischi. Ogni disco concettualmente funziona come un cifrario di Cesare, con
una sostituzione monoalfabetica di ciascuna lettera, tuttavia la serie di
lettere dei dischi non era necessariamente lineare, poteva anzi essere
praticamente casuale; la chiave del testo è data dalla posizione dei dischi, e
da un numero (compreso tra 1 e 25) che rappresenta la riga in cui appare il
testo cifrato. Questo tipo di sostituzione viene chiamato “sostituzione
polialfabetica”.
Dal punto di vista della sicurezza, questo sistema rappresentava un enorme
passo in avanti: difatti il numero di chiavi è dato da 25 (il numero delle
righe su cui leggere il cifrato), e da 25! (il numero di combinazioni possibili
Il cilindro di Jefferson su una singola ruota) e dal numero N totale di cilindri. Le combinazioni
24xN
possibili (o chiavi) sono così all'incirca 4x10 ; questo è un numero incredibilmente elevato, soprattutto se
confrontato al 25 del cifrario di Cesare. Ciononostante l'invenzione di Jefferson fu pressoché dimenticata per almeno
un secolo, quando venne riscoperta ed utilizzata dall'esercito statunitense.
1.2.2 Il funzionamento
Dopo queste necessarie premesse, è possibile descrivere il funzionamento di Enigma. A prima vista, può sembrare solo
una macchina da scrivere un po' strana; in realtà sotto alla sua scocca si nasconde un complesso sistema di rotori,
cavi e lampadine. Una macchina Enigma aperta
Si possono distinguere 5 diversi elementi fondamentali:
1) La tastiera, dove veniva immesso il testo da cifrare (da notare la disposizione dei tasti, tedesca, denominata
QWERTZU, a differenza di quella americana, ed anche italiana, QWERTY);
2) Un pannello di commutazione frontale che permetteva di scambiare all'origine alcune lettere a coppie;
3) Tre rotori (quattro in una versione successiva), il vero cuore della macchina, che attuano il processo di
cifratura sul segnale in ingresso dalla tastiera, con alcune lettere eventualmente commutate;
4) Un riflettore, che rispedisce il segnale in direzione opposta facendolo passare nuovamente per i rotori;
5) Una seconda tastiera, fatta di lampadine, su cui la lettera cifrata corrispondente a quella in chiaro si illumina.
Per capire meglio come queste sezioni funzionino insieme, possiamo
immaginare il percorso compiuto dal segnale elettrico corrispondente ad una
certa lettera, e quale lettera cifrata ci venga restituita dalla macchina.
Nel momento in qui viene premuto un tasto, ad esempio la S, il segnale passa
per il pannello di commutazione, che scambia (se i cavi sono stati posizionati)
la S con un'altra lettera, ad esempio una N. A questo punto entrano in gioco i
rotori.
Ciascun rotore non fa altro che trasformare la lettera in un'altra (secondo
collegamenti prestabiliti), e passarla al rotore successivo. Bisogna notare che
ad ogni lettera premuta, il rotore di destra si sposta di
una “tacca”; ad un giro completo di quest'ultimo il rotore
centrale si muoverà di una tacca, e allo stesso modo
Il pannello di commutazione anche quello di sinistra. Questo permette di avere una
chiave, per quanto riguarda i rotori, che cambia alla
pressione di ogni tasto (un singolo movimento cambia
completamente il risultato finale); ciò significa che per riavere la posizione originale, e quindi una
ripetizione della chiave, andrebbero premuti 26x26x26 tasti, ovvero 17.576. Una volta uscita dal
rotore di sinistra, la lettera viene scambiata un'altra volta dal riflettore (che scambiava per
l'ennesima volta la lettera secondo un suo schema di fabbricazione) per essere in seguito
rispedita, in senso inverso, nei rotori (la codifica in questo caso è diversa da quella di “andata”, in
quanto la lettera è stata cambiata dal riflettore).
Prima di apparire sotto forma di lampadina illuminata sulla macchina, la lettera viene scambiata
un'ultima volta, ancora dal pannello di commutazione,
sempre che la lettera corrispondente fosse collegata.
Per ricollegarci a quanto detto sopra, si può definire la Un rotore
codifica di Enigma come polialfabetica, in quanto la chiave è
diversa per ogni lettera, ma dipendente da uno schema
generale.
Il procedimento appare immediatamente come estremamente complesso, ma
soprattutto dipendente da un'enormità di variabili; proviamo a calcolare il numero
di possibilità di impostazioni messe a disposizione da Enigma.
1.2.3 Calcolo combinatorio applicato alle chiavi possibili della macchina
Con un certo grado di approssimazione, dovuto principalmente ad errori umani, si
può associare il numero totale di chiavi possibili di un sistema di crittografia alla
Il riflettore sua sicurezza. Nel cifrario di Cesare questo numero era molto basso, 25, mentre
24xN
.
già nel cilindro di Jefferson esso è piuttosto alto, 4x10 Si può a questo
punto calcolare il numero di chiavi possibili di Enigma, che corrisponde al numero totale di variabili.
La prima variabile dipende dal pannello di commutazione. Il numero di combinazioni è collegato direttamente al
numero di cavi utilizzati, che varia da 0 a 13 (al massimo un cavo ogni 2 lettere); in totale vanno sommate tutte le
14
combinazioni possibili per ciascun numero di cavi, con un risultato pari a 532.985.208.200.576 (~5,3x10 ).
Il secondo dato da calcolare è la natura stessa dei rotori (il modo in cui ciascuno di essi trasformava una lettera): ne
erano stati prodotti solo 5 tipi diversi, ma gli Alleati inizialmente non potevano saperlo, e quindi in linea teorica ne
potevano essere usati un numero equivalente a 26! x (26!-1) x (26!-2), ovvero
65.592.937.459.144.468.297.405.473.480.371.753.615.896.841.298.988.710.328.553.805.190.043.271.168.000.00
79
0 (~6,6x10 ).
Il terzo punto riguarda la posizione iniziale dei rotori (ogni singolo rotore poteva assumere all'inizio 26 diverse
3
,
posizioni, e questa disposizione era la chiave fondamentale del sistema); in totale esse possono essere 26 ovvero
4
17.576 (~1,8x10 ).
Come quarto ed ultimo livello, bisogna considerare il riflettore; anche in questo caso il numero di riflettori realmente
12
prodotti era piuttosto basso, tuttavia il loro ipotetico numero totale è 7.905.853.580.625 (~7,9x10 ).
L'ultimo passo da compiere è la moltiplicazione di tutti questi fattori:
14 79 4 12
(5,3x10 )x(6,6x10 )x(1,8x10 )x(7,9x10 )
che con buona approssimazione possiamo considerare come:
111
5x10
Per avere un metro di paragone, basta immaginare che il numero totale di atomi nell'universo visibile è stimato essere
80
circa 10 , inferiore quindi di ben 31 ordini di grandezza! E' comprensibile che i tedeschi riponessero grande fiducia nel
loro sistema...
1.3 Decrittazione della macchina
Se anche oggi un tale livello di sicurezza è incredibile, si può ben comprendere la grande difficoltà riscontrata del
decrittare Enigma da parte degli Alleati, e in particolar modo dalla GC&CS (Government Code and Cypher School),
l'agenzia governativa britannica che lavorava nel settore delle comunicazioni
nell'ambito dello spionaggio e controspionaggio.
Il codice di Enigma fu in realtà per la prima volta penetrato da un gruppo di
crittoanalisti polacchi, tra i quali spiccava Marian Rejewski, che avevano cominciato
a lavorare su di essa prima degli anni '30 (studiando principalmente la versione
commerciale), riuscendo a decrittare i primi messaggi nel 1932. Per raggiungere
questi risultati, seppur parziali, Rejewski sfrutto alcune debolezze intrinseche alla
macchina, come il fatto che premendo una lettera in nessun caso sarebbe potuta
apparire la stessa lettera come risultato; oppure, il fatto che se in una data
impostazione la lettera A fosse stata restituita come B, doveva valere anche l'esatto
opposto (difatti Enigma funzionava anche per decrittare i messaggi). Inoltre, con
strumenti matematici piuttosto avanzati, Rejewsi riuscì a trovare uno schema
ricorrente dei messaggi codificati. In particolare, raccogliendo un certo numero di
messaggi crittati da una stessa chiave, diventava possibile risalire alla chiave
stessa, dopo un gran numero di calcoli eseguiti da macchine costruite ad hoc.
1.3.1 “Bomba” e “Colossus”
La prima di queste macchine, da alcuni considerata la precorritrice dei moderni Marian Rejewski
computer, venne denominata “Bomba”. In realtà era formata da 30 “simulatori” di
Enigma collegati in serie, per un totale di 90 rotori, che provavano giorno e notte a
scovare il codice tramite un sistema chiamato “forza bruta”
(per forza bruta si intende un tipo di attacco basato sul
ripetuto e continuo susseguirsi di tentativi di chiavi
diverse).
Una macchina simile, ma più avanzata e basata su un
diverso funzionamento, fu costruita dagli Inglesi a conflitto
iniziato, e venne chiamata “Colossus”.
Purtroppo, però, verso l'inizio della seconda guerra
mondiale i Tedeschi modificarono sensibilmente le loro
tecniche crittografiche, soprattutto riguardo alla
trasmissione dei messaggi codificati; ed è in questo
contesto che entrò in scena una delle menti più brillanti, ma
anche eccentriche, della storia della crittoanalisi: Alan
Turing.
Un particolare di “Bomba”
2 Alan Turing ed Enigma
2.1 Breve Biografia