Cerca nel web

Visualizzazione post con etichetta Alan Turing. Mostra tutti i post
Visualizzazione post con etichetta Alan Turing. Mostra tutti i post

venerdì 9 maggio 2025

#AlmanaccoQuotidiano, a cura di #MarioBattacchi


 Buongiorno, oggi è il 9 maggio.

Il 9 maggio 1941 la Royal Navy riesce a catturare un sommergile tedesco e al suo interno viene trovato un modello della macchina Enigma. Ciò consentirà agli Alleati di decodificare i messaggi in codice inviati dalle forze tedesche, e ciò probabilmente contribuirà in modo schiacciante alla vittoria finale nella seconda guerra mondiale.

Nel maggio 1929 morì l’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, venduti 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 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.

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 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.

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.

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.

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

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.

mercoledì 23 giugno 2021

#Almanaccoquotidiano, a cura di #MarioBattacchi

Buongiorno, oggi è il 23 giugno.
Il 23 giugno 1912 nacque Alan Turing, passato alla storia come uno dei pionieri dello studio della logica dei computer e come uno dei primo ad interessarsi all'argomento dell'intelligenza artificiale. Nato il 23 giugno 1912 a Londra ha ispirato i termini ormai d'uso comune nel campo dell'informatica come quelli di "Macchina di Turing" e di "Test di Turing".
Più nello specifico, si può dire che come matematico ha applicato il concetto di algoritmo ai computer digitali e la sua ricerca nelle relazioni tra macchine e natura ha creato il campo dell'intelligenza artificiale.
Interessato soltanto alla matematica e alla scienza iniziò la sua carriera come matematico al King's College alla Cambridge University nel 1931.
A scuola non aveva un gran successo, data la sua tendenza ad approfondire esclusivamente cose che lo interessassero sul serio. Solo la grandissima amicizia con Christopher Morcom, apparentemente molto più promettente di lui e molto più sistematico gli permise di iniziare la sua carriera universitaria: l'amico, però, morì purtroppo di tubercolosi due anni dopo il loro incontro. Ma il segno che lasciò sull'animo dell'amico fu profondo e significativo, inducendo Turing a trovare dentro di sé la determinazione necessaria per continuare gli studi e la ricerca.
Dobbiamo quindi a Morcom moltissimo, se consideriamo che grazie al suo sostegno morale e al suo incitamento, indusse una grande mente come Turing a sviluppare le sue immense potenzialità. Tanto per fare un esempio, Turing arriverà a scoprire, cinque anni prima di Gödel, che gli assiomi della matematica non potevano essere completi, un'intuizione che mise in crisi la convinzione che la matematica, in quanto scienza perfettamente razionale, fosse aliena da qualsiasi tipo di critica.
Si presentava comunque per Turing un compito veramente arduo: riuscire a provare se ci fosse o meno un modo per determinare se un certo teorema fosse esatto oppure no. Se questo fosse stato possibile, allora tutta la matematica si sarebbe potuta ridurre al semplice calcolo. Turing, secondo le sue abitudini, affrontò questo problema in mondo tutt'altro che convenzionale, riducendo le operazioni matematiche ai loro costituenti fondamentali. Operazioni tanto facili che potevano essere di fatto svolte da una macchina.
Trasferitosi alla Princeton University, dunque, il grande matematico iniziò ad esplorare quella che poi verrà definita come la "Macchina di Turing" la quale, in altri termini, non rappresenta altro che un primitivo e primordiale "prototipo" del moderno computer. L'intuizione geniale di Turing fu quella di "spezzare" l'istruzione da fornire alla macchina in una serie di altre semplici istruzioni, nella convinzione che si potesse sviluppare un algoritmo per ogni problema: un processo non dissimile da quello affrontato dai programmatori odierni.
Durante la seconda guerra mondiale Turing mise le sue capacità matematiche al servizio del "Department of Communications" inglese per decifrare i codici usati nelle comunicazioni tedesche, un compito particolarmente difficile in quanto i tedeschi avevano sviluppato un tipo di computer denominato "Enigma" che era capace di generare un codice che mutava costantemente. Durante questo periodo al "Department of Communications", Turing ed i suoi compagni lavorarono con uno strumento chiamato "Colossus" che decifrava in modo veloce ed efficiente i codici tedeschi creati con "Enigma". Si trattava, essenzialmente, di un insieme di servomotori e metallo, ma era il primo passo verso il computer digitale.
Dopo questo contributo fondamentale allo sforzo bellico, finita la guerra continuò a lavorare per il "National Physical Laboratory" (NPL), continuando la ricerca nel campo dei computer digitali. Lavorò nello sviluppo all'"Automatic Computing Engine" (ACE), uno dei primi tentativi nel creare un vero computer digitale. Fu in questo periodo che iniziò ad esplorare la relazione tra i computer e la natura. Scrisse un articolo dal titolo "Intelligent Machinery", pubblicato poi nel 1969. Fu questa una delle prime volte in cui sia stato presentato il concetto di "intelligenza artificiale". Turing, infatti, era dell'idea che si potessero creare macchine che fossero capaci di simulare i processi del cervello umano, sorretto dalla convinzione che non ci sia nulla, in teoria, che un cervello artificiale non possa fare, esattamente come quello umano (in questo aiutato anche dai progressi che si andavano ottenendo nella riproduzione di "simulacri" umanoidi, con la telecamera o il magnetofono, rispettivamente "protesi" di rinforzo per l'occhio e la voce).
Turing, insomma, era dell'idea che si potesse raggiungere la chimera di un'intelligenza davvero artificiale seguendo gli schemi del cervello umano. A questo proposito, scrisse nel 1950 un articolo in cui descriveva quello che attualmente è conosciuto come il "Test di Turing". Questo test, una sorta di esperimento mentale (dato che nel periodo in cui Turing scriveva non vi erano ancora i mezzi per attuarlo), prevede che una persona, chiusa in una stanza e senza avere alcuna conoscenza dell'interlocutore con cui sta parlando, dialoghi sia con un altro essere umano che con una macchina intelligente. Se il soggetto in questione non riuscisse a distinguere l'uno dall'altra, allora si potrebbe dire che la macchina, in qualche modo, è intelligente.
Turing lasciò il National Physical Laboratory prima del completamento dell'"Automatic Computing Engine" e si trasferì alla University of Manchester dove lavorò alla realizzazione del Manchester Automatic Digital Machine (MADAM), con il sogno non tanto segreto di poter vedere, a lungo termine, la chimera dell'intelligenza artificiale finalmente realizzata.
Personalità fortemente tormentata (anche a causa di una omosessualità vissuta con estremo disagio), dalle mille contraddizioni e capace di stranezze e bizzarrie inverosimili, Turing morì suicida, appena quarantenne, il 7 giugno 1954.
Dopo tanti anni dal suicidio di Turing, ampiamente spiegabile con il trattamento persecutorio a lui riservato per la sua omosessualità, solamente il 10 settembre 2009 vi è stata una dichiarazione di scuse ufficiali da parte del governo del Regno Unito, formulata dal primo ministro Gordon Brown, e solo dopo una petizione e una campagna Internet. Brown ha riconosciuto che Alan Turing fu oggetto di un trattamento omofobico.
Nel 2012, centenario della nascita di Turing, la Royal Mail ha dedicato un francobollo alla sua memoria; è, però, solo leggendone l'iscrizione ("Alan Turing 1912-1954 Mathematician and WWII code breaker") che si può risalire all'identità del commemorato, dato che il francobollo non ne ritrae il volto bensì mostra la macchina Bomba britannica di cui Turing sviluppò il progetto.

Cerca nel blog

Archivio blog