Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

la storia

Crittografia, così la macchina Enigma ha anticipato la moderna sicurezza informatica

La macchina Enigma ha anticipato in tanti aspetti le caratteristiche sia dei computer di oggi che della sicurezza informatica. Una panoramica sul suo funzionamento e sulla storia della decrittazione

08 Nov 2019

Andrea Razzini

Cyber Security Specialist


Nel maggio 2019 è ricorso il novantesimo anniversario della morte dell’ingegnere tedesco Arthur Scherbius, inventore della macchina Enigma.

Il suo brevetto, del 1918, che riprende l’invenzione del disco cifrante di Leon Battista Alberti del 1465, farà nascere una serie di modelli simili a quello iniziale, venduto perlopiù a banche ed aziende, fino a quello portatile, che verrà adottato dall’esercito nel 1924 e che avrà un grande successo durante tutta la seconda guerra mondiale rappresentando la prima vera versione di una macchina elettromeccanica di tipo cifrante in Europa.

Questa invenzione non solo rappresenta di per sé una grande conquista intellettuale, ma stimola gli Alleati a mettere in campo una grande organizzazione in Inghilterra, a Bletchley Park, con il reclutamento delle migliori menti matematiche e non, dell’epoca fra cui Alan Turing. Dalla sua altrettanto famosa “bomba”, ovvero un congegno inventato per automatizzare la ricerca delle possibili combinazioni della macchina Enigma a partire dai messaggi cifrati ricevuti, prende vita, grazie ad un ingegnere inglese dell’ufficio postale, Tommy Flowers, quello che per molti storici è considerato il primo vero calcolatore della storia informatica, realizzato a valvole termoioniche, noto come il “Colossus”.

Ripercorrendo i momenti salienti di questa avventura, all’ombra della Seconda Guerra Mondiale, cercheremo di mettere in luce tutti gli aspetti che la macchina Enigma ha anticipato e che ancora ritroviamo come elementi alla base della moderna sicurezza informatica.

Nella figura seguente si riporta il disegno originale del brevetto di A.Scherbius.

Il funzionamento di base della macchina Enigma

La macchina Enigma aveva l’aspetto di una macchina per scrivere: possedeva una tastiera inferiore e una parte nella quale delle lampadine si accendevano ogniqualvolta veniva premuto un tasto sulla prima tastiera: la sequenza delle lettere che si illuminavano dava il messaggio cifrato (oppure quello in chiaro, se si batteva il testo cifrato, usando la stessa configurazione del mittente).

Nello schema seguente è riassunta la composizione fondamentale della macchina Enigma:

– abbiamo innanzitutto i rotori, cioè i dischi riportanti le 26 lettere dell’alfabeto, con fili incrociati all’interno, cosi che le lettere su una faccia risultino scambiate sull’altra. La loro posizione reciproca era segreta e costituiva una vera e propria chiave di cifratura. L’elenco delle chiavi di decriptazione ovvero le posizioni di partenza dei rotori, che doveva cambiare ogni giorno, era contenuto in volumi distribuiti mensilmente a tutte le unità coinvolte;

– la batteria di 4.5v;

– il pannello delle lampadine;

– il plugboard, ovvero il pannello a spine multiple al quale venivano collegati cavi che permettevano di incrociare alcune lettere (fino ad un massimo di 13), aumentando quindi il numero di combinazioni da analizzare da parte di un eventuale crittanalista nemico.

Nella figura seguente riportiamo uno schema di massima di un modello semplice (a 3 rotori) della macchina Enigma.

Nella versione originale della macchina Enigma ci sono nell’ordine da destra a sinistra: un rotore di ingresso E con ventisei contatti elettrici corrispondenti alle 26 lettere dell’alfabeto ordinate in un ordine prefissato, tre rotori N, M, L forniti di 26 contatti elettrici su ogni faccia che in modo segreto connettono ogni contatto sulla faccia destra con un contatto sulla faccia sinistra; all’estrema sinistra, un riflettore R con 26 contatti elettrici solo sulla faccia destra, accoppiati a due a due secondo un altro schema segreto. Quando l’operatore preme un tasto, un segnale elettrico parte dal rotore E e passa successivamente per i rotori N, M, L fino al riflettore e quindi ritorna indietro passando di nuovo per i tre rotori fino a illuminare una lettera che è il carattere cifrato da trasmettere.

Ad ogni nuovo carattere il rotore N ruota di una posizione; ad ogni giro completo di N, il rotore M ruota a sua volta di una posizione, e infine ad ogni giro di M, ruota di una posizione il rotore L; il funzionamento è quindi simile a quello dei moderni contachilometri ma l’inizio del giro di ogni rotore è segreto. Si tratta quindi di un codice a sostituzione polialfabetica.

Ad esempio la lettera A viene codificata nella D, e un’altra lettera A successiva, grazie al movimento dei rotori, verrà codificata in una lettera differente. Il rotore ultimo, il riflettore, è quello che permetterà di usare la macchina Enigma sia per cifrare un messaggio sia per decifrarlo. Infatti, utilizzando la macchina Enigma con lo stesso “setting” di quella usata per cifrare, la lettera D verrà decodificata nella lettera A di partenza, così tutto il messaggio potrà essere decriptato.

Dal punto di vista matematico tutto questo equivale a un sistema di permutazioni; ogni rotore effettua una permutazione delle 26 lettere, e così pure il riflettore e il dispositivo di ingresso.

Le disposizioni operative per le unità dotate della macchina Enigma prescrivevano che ogni giorno, per motivi di sicurezza, venisse modificato l’assetto della macchina, disponendo collegamenti differenti per gli spinotti del pannello, posizionamenti reciproci diversi per i tre rotori, assetto iniziale diverso, cioé la lettera da cui partire per la prima codifica, di ciascuno di essi. Come detto in precedenza, le informazioni relative erano contenute in un cifrario distribuito mensilmente ad ogni unità militare dotata di macchina Enigma.

Breve storia della decifrazione

I primi ad intuire i principi di funzionamento della macchina Enigma furono 3 matematici polacchi, che applicando la teoria delle permutazioni, riuscirono a decifrare i messaggi.

Tra il 1938 e il 1939 i Tedeschi cambiarono però le regole di cifratura e aumentarono il numero di rotori da 3 a 5 così che il metodo dei matematici polacchi perse buona parte della sua efficacia. In quel periodo la decrittazione dei messaggi Enigma da parte dell’ufficio cifra polacco fu occasionale. Il lavoro dei matematici polacchi fu quindi ripreso durante la seconda guerra mondiale dall’ufficio cifra inglese che perfezionò e migliorò i metodi di decrittazione di Enigma.

Essi riuscirono a sfruttare tecniche di spionaggio tradizionale, grazie infatti a un emissario tedesco fu possibile avere le foto dei manuali originali, e altri fattori che via via scoprirono spesso a prezzo di vite umane. Insieme a qualche “piccolo” errore di progettazione (una lettera non poteva mai essere codificata su sé stessa), alla pigrizia degli operatori tedeschi che spesso partivano con i rotori sempre nella stessa posizione (es, QQQ), corrispondenti ad iniziali di fidanzate o altre parole di uso comune dei soldati, cioè i cosiddetti cillies, e alla capacità di trovare i famosi cribs ovvero parole comuni a tutti i messaggi ricevuti (per fare un esempio, molti messaggi finivano spesso con il ben noto saluto “Heil Hitler!”), i crittanalisti riuscirono nell’impresa di decifrare gran parte dei messaggi quasi in tempo reale. Fu grazie alla vittoria della collaborazione delle menti di Bletchley Park che la Guerra dei Codici fu vinta dagli Alleati e ridusse sia la durata del conflitto mondiale che il numero totale delle vittime.

Matematica delle combinazioni

I rotori potevano essere estratti ed inseriti nella macchina secondo un ben preciso ordinamento. Con 3 rotori abbiamo 3*2 possibilità di muoverli nei 3 diversi alloggiamenti, ma con 5 rotori ne avremo ben 5*4*3=60, di fatto aggiungendo un primo ostacolo alla interpretazione corretta dei messaggi.

Il plugboard che poteva fornire fino a 13 scambi di lettere grazie a 13 cavi, contribuiva per un totale di 26!/(26-p)!*p!*2^p combinazioni dove p corrisponde al numero di cavi effettivamente usato. Con 6 cavi si totalizzavano già 100 miliardi di combinazioni possibili.

Il numero totale di combinazioni date dai 3 rotori era 26*26*26=17576, dato che ciascuno di essi aveva appunto 26 lettere che si incrociavano con altrettante sui rotori successivi.

La posizione di partenza dei rotori introduceva altre combinazioni possibili, ad esempio dati 3 rotori solo i primi 2 avevano effetto uno sull’altro, cioè il primo sul secondo ed il secondo sul terzo, quindi si devono calcolare 26*26 ulteriori combinazioni (626).

Le possibili combinazioni interne del rotore finale (riflettore) potevano aggiungere infine ulteriori possibilità di codifica diversa, fino ad arrivare a 8000 miliardi di combinazioni possibili.

Moltiplicando tutti i numeri tra di loro ne nascono 3*10^114 combinazioni, più o meno equivalenti a 2^77.

Se si considera la versione di Enigma con 5 rotori, quella usata nella Marina, il numero di combinazioni aumenta vertiginosamente ed una decodifica manuale sarebbe stata inconcepibile. Fu quindi necessario tutto il genio di Alan Turing per concepire prima e costruire dopo una macchina elettromeccanica in grado di riprodurre un numero elevatissimo di combinazioni alla ricerca di quella giusta per poter decifrare il messaggio segreto ricevuto.

Come i moderni algoritmi di crittografia, il segreto principale risiedeva nella chiave usata (ovvero la configurazione completa della macchina) che ogni operatore doveva in teoria cambiare alla mezzanotte di ogni giorno seguendo il manuale mensile di configurazione. Anche se gli alleati riuscirono a procurarsi esemplari di macchine Enigma, la decifrazione dei messaggi richiedeva la conoscenza della chiave usata per quel giorno. Ma proprio la fiducia totale riposta nella certezza di inviolabilità del codice Enigma, grazie al numero enorme di combinazioni possibili, si rivelerà il tallone d’Achille dell’Intelligence tedesca.

Conclusioni

Riassumiamo dunque le principali caratteristiche della macchina Enigma, in termini moderni:

In particolare:

  • L’algoritmo di cifratura era uguale all’algoritmo di decifratura e l’algoritmo alla base del DES (Data Encryption Standard) del 1976, il primo degno di nota nella storia informatica aveva ad esempio questa stessa caratteristica.
  • La cifratura usata era una sostituzione polialfabetica come quella inventata nel 1465 da Leon battista Alberti. Si basava su sostituzione e permutazione delle lettere, come suggerito dai principi di “confusione” e “diffusione” definiti in un articolo di C.Shannon (matematico ed ingegnere statunitense, considerato il padre della teoria dell’informazione) nel 1949.
  • La matematica ci fornisce un calcolo della equivalente lunghezza della chiave dei moderni algoritmi di cifratura simmetrica, vale a dire di circa 77 bit; l’algoritmo DES ne usa una da 56 bit, mentre il nuovo standard AES (Advanced Encryption Standard), oggi universalmente utilizzato in vari ambiti, parte da 128.
  • La tastiera della macchina Enigma presentava la sequenza QWERTZU in prima fila, molto simile all’attuale sequenza QWERTY delle comuni tastiere di computer.
  • Era una macchina portatile con alimentazione di 4.5v, un peso di circa 9kg.
  • Presentava un manuale di configurazione abbastanza semplice.
  • Poteva essere programmata in vari modelli, uno per la Marina, uno per l’esercito, uno per l’aviazione, tutti differenti ma conservando la compatibilità tra di loro.
  • Era facile da riparare.
  • Aveva anche l’opzione per stampare i messaggi in modo “remoto”, tramite una piccola stampante che poteva imprimere i messaggi su un piccolo nastro di carta. Ciò rendeva inutile la presenza di un secondo operatore che leggesse le lampadine e ne scrivesse le lettere. La stampante si collocava sulla parte alta della macchina Enigma ed era connessa al pannello di lampadine; per installarla il coperchio e tutte le lampadine dovevano essere rimosse.

La macchina Enigma ha anticipato, come si può notare, in tanti aspetti, le caratteristiche sia dei computer di oggi che della parte di codice, potremmo dire sia lato hardware che software, riferiti ovviamente alla crittografia.

@RIPRODUZIONE RISERVATA

Articolo 1 di 4