Nel 2012, centenario della nascita di Alan Turing (23 giugno 1912), in tutto il mondo si sono svolti convegni, mostre, seminari per ricordare il matematico e logico britannico. Per rendersi conto di quanto importante, sia stata la sua attività scientifica si pensi che alla conferenza The Alan Turing Centenary Conference all’Università di Manchester è intervenuto Sir Roger Penrose. Nell’ormai lontano 1972, infatti, Penrose, non ancora divenuto Sir per meriti scientifici, seguiva la tesi di uno studente di dottorato, Andrew Hodges, che verrà poi allargata e pubblicata in un volume dal titolo Alan Turing: Storia di un Enigma (pubblicato anche in Italia da Bollati Boringhieri nel 1991). Hodges ha aperto l’altro grande convegno che si è svolto a Cambridge nel centenario: How the World Compute.
Turing, un genio messo in sordina
È giustificato tutto questo grande interesse nel mondo per Alan Turing? Della vita di Turing sino agli anni Settanta del secolo scorso si sapeva poco; la sua attività durante la Seconda Guerra Mondiale era considerata di massima segretezza; e inoltre la “scandalosa” omosessualità aveva fatto dimenticare la sua figura, tranne che ai matematici, ai logici, agli informatici. “Sono molto riconoscente e orgoglioso che grazie allo sforzo congiunto di scienziati, storici e attivisti LGBT (lesbian, gay, bisexual and transgender) abbiamo la possibilità quest’anno di celebrare un valoroso combattente britannico contro l’oscurità della dittatura: la figura di colui che decifrò il codice, Alan Turing. Era un brillante matematico, famoso per aver contribuito a decifrare il codice di trasmissioni nazista Enigma. Fu realmente uno di coloro grazie al cui contributo fu cambiato il corso della guerra. Il debito di gratitudine che gli dobbiamo rende ancora più orribile il fatto che sia stato trattato in modo così inumano. Nel 1952 Turing aveva commesso una colpa inconcepibile all’epoca, essere gay. Fu condannato alla castrazione chimica tramite una serie di iniezioni di ormoni femminili. Si uccise due anni dopo la condanna. Migliaia di persone hanno chiesto giustizia per Turing. Anche se Turing fu condannato per le leggi in vigore allora, e non possiamo mettere l’orologio della giustizia indietro, il trattamento che ebbe fu assolutamente ingiusto e sono onorato di avere l’opportunità di affermare quanto sono profondamente dispiaciuto e quanto tutti lo siamo per il trattamento a lui riservato. A nome del governo britannico, e di tutti coloro che vivono liberi grazie anche al lavoro di Alan, sono molto orgoglioso di dire: Sono molto dispiaciuto. Avresti meritato di più” (Gordon Brown, primo ministro inglese, 10 settembre 2009).
L’idea della macchina automatica
Nel 1900 al convegno mondiale di matematica, a Parigi, vi è un’aria di ottimismo. Vi sono certo molti problemi insoluti nella matematica ma vi è anche la convinzione che siano tutti problemi risolvibili. La sua verità è assoluta, del tutto indipendente dalla realtà fisica. Il famoso matematico David Hilbert illustrò i 23 problemi che i matematici avrebbero dovuto risolvere negli anni successivi. Tra questi alcune questioni che riguardavano i fondamenti della matematica. In particolare la seguente: la matematica è decidibile? Hilbert intendeva chiedere se esisteva un metodo definito capace, in linea di principio, di essere applicato a qualsiasi asserto e che garantisse la possibilità di una decisione corretta sulla verità di quell’asserto.
Della questione si occupò Alan Turing che immaginò un quadro mentale di una macchina che fosse capace di decidere la dimostrabilità di qualsiasi proposizione matematica che le venisse proposta. Avendo chiaro che “soltanto il profano più sprovveduto può immaginare che i matematici pervengano alle loro scoperte girando la manovella di qualche macchina meravigliosa”.
L’idea di Turing era quella di una “macchina automatica” capace di leggere una serie di proposizioni matematiche e di scrivere il verdetto sulla loro dimostrabilità. L’essenziale era che avrebbe dovuto fare tutto questo senza interferenze di giudizio o di intelligenza umana. Per far questo la macchina doveva ricevere le istruzioni tramite simboli da inserire in caselle in modo tale che la “tavola di comportamento” fosse la macchina. Turing aveva trasformato il vago concetto di “metodo definito” o di “processo meccanico” in qualche cosa di molto preciso, che era la “tavola di comportamento”. E adesso poteva porre la domanda altrettanto precisa: c’era o non c’era una di queste macchine, una di queste tavole, che fosse capace di produrre la decisione richiesta da Hilbert?
Turing ebbe l’idea dei “numeri computabili”: un qualsiasi numero reale che sia definito da una qualche regola deve poter essere calcolato da una macchina di questo genere. Era anche possibile però generare un numero non computabile, un esempio quindi di problema non risolubile. Turing aveva dimostrato che non esiste nessuna “macchina meravigliosa” capace di risolvere tutti i problemi matematici. Ma così facendo aveva scoperto l’idea di una macchina universale capace di assumersi il lavoro di qualsiasi macchina. Aveva mostrato come tutto ciò che può essere eseguito da un calcolatore umano potrebbe essere fatto da una macchina. Una macchina di Turing. L’ente di spionaggio britannico aveva il controllo, alla scoppio della seconda guerra mondiale, della GCCS (Government Code and Cypher School). Nel 1937 il GCCS aveva un grosso problema: una macchina chiamata Enigma. Il sistema di criptazione dei messaggi tedeschi, l’Enigma restava una macchina inviolata e appariva probabile che continuasse a esserlo.
Andrew Hodges dedica una parte del libro Storia di un Enigma: Alan Turing (Bollati Boringhieri, 1991) al ruolo di Turing nei servizi segreti britannici. Nel 1939 Turing presentava domanda alla Royal Society per ottenere il finanziamento per la costruzione di una macchina che doveva servire per uno specifico problema matematico: il calcolo degli zeri della funzione zeta. Gli ingranaggi di bronzo della macchina vennero realizzati, ma la macchina non avrebbe mai funzionato.
La sfida di Enigma
Data la sua esperienza sulle “macchine” e il suo interesse per i cifrari e i codici, il 4 settembre 1939 Turing si presentava a Bletchley Park dove era stata fissata la sede del GCCS. Insieme ad altri matematici e fisici doveva contribuire a decifrare l’Enigma tedesco. Turing si era già interessato a quale fosse la forma più generale possibile di un codice o di un cifrario. Inoltre ogni forma di cifrario poteva essere considerata come un complicato processo meccanico, che conteneva non soltanto le regole dell’addizione e della sostituzione ma anche quelle atte a trovare, applicare e comunicare la metodologia stessa della crittazione. Rientrava cioè nello schema della macchina di Turing.
L’Enigma tedesco usava circuiti elettrici per eseguire automaticamente una serie di sostituzioni alfabetiche. La macchina non aveva un suo stato fisso; dopo aver messo in cifra la prima lettera del messaggio, un sistema di rotori girava generando un nuovo circuito di connessioni tra entrata e uscita. Per una macchina di 26 lettere a tre rotori, come era l’Enigma degli inizi, vi erano 263=17.576 stati possibili. Inoltre i rotori potevano essere smontati e rimontati in posizione diversa. Si avevano quindi sei possibili posizioni ed in totale 6 × 17.576=105.456 diverse sostituzioni. E in più ogni rotore aveva un anello con le 26 lettere alfabetiche che permetteva ulteriori variazioni.
Infine vi era un pannello, un quadro di commutazioni alfabetiche a spine elettriche. Era proprio questo dettaglio che distingueva l’Enigma militare dagli altri. Era possibile in ogni momento eseguire un ulteriore scambio di lettere. Il numero degli stati per una macchina Enigma a tre rotori era di 1.305.093.289.500. Se si aggiunge che i tedeschi durante la guerra costruirono Enigma con sino a 8 rotori, aggiungendo inoltre un quadro di controllo anche in uscita, si capisce come per tutta la durata del conflitto furono sempre convinti che nessuno avesse mai decodificato il loro sistema. Il principio fondamentale della macchina Enigma era che i rotori, gli anelli e il quadro di commutazione alfabetica venivano predisposti in un certo modo, dopo di che il messaggio veniva messo in cifra dai rotori, che giravano automaticamente.
Perché tutto questo potesse servire in un sistema pratico di comunicazioni, lo stato iniziale della macchina doveva essere noto anche al ricevente. Era compito dell’operatore scegliere le tre posizioni iniziali dei rotori. Quindi il primo messaggio in codice riguardava lo stato in cui dovevano essere messi i rotori per ricevere il messaggio vero e proprio; quindi veniva inviato il messaggio,che veniva ricevuto con i rotori nella posizione indicata dal primo messaggio. Il primo messaggio, le tre lettere per le indicazioni sulla posizione dei rotori, veniva ripetuto due volte.
Il punto debole del sistema era che per un giorno intero tutti gli operatori della rete usavano esattamente lo stesso stato della macchina per le prime sei lettere dei loro messaggi.
All’inizio del 1940 Turing si propose di tradurre in progetto la sua idea: contraddizione e coerenza come condizioni nelle quali poter sorprendere il quadro alfabetico dell’Enigma erano concetti che avevano a che fare soltanto con un problema pratico e decisamente finito, ma era pur sempre impressionante l’analogia con la concezione formalistica della matematica, in cui alle implicazioni logiche fa seguito il lavoro meccanico.
La Bomba contro Enigma
La nuova macchina, che come tutte le altre veniva chiamata “Bomba”, venne realizzata in tempi molto brevi. Il 22 maggio 1940 il GCCS era in grado di decifrare il sistema usato dalla Luftwaffe. Il 23 febbraio 1941 si ebbe la prima cattura programmata di un naviglio tedesco al largo delle coste norvegesi. Il 7 maggio 1941 fu catturata una macchina Enigma con le istruzioni e per la prima volta si ebbe la possibilità di avere i dati quasi in tempi reali, utili cioè per intervenire. Nell’agosto 1941 gli inglesi erano ormai in grado di decifrare qualsiasi messaggio in meno di 36 ore.
Uno dei problemi che aveva il GCCS era convincere gli stati maggiori che le loro informazioni erano del tutto attendibili. Fu così che il 21 ottobre 1941 Turing ed altri tre membri del GCCS scrissero direttamente a Churchill. Il primo ministro rispose impartendo disposizioni affinché le esigenze del servizio avessero priorità assoluta. Con l’entrata in guerra degli americani, l’analogo servizio segreto oltre Atlantico si mise a costruire le sue “macchine” in gran quantità. A Turing venne affidato il compito di tenere il coordinamento tra i due gruppi. Alla fine del 1943 gli U-Boot erano visibili a grande distanza; neppure il loro stesso comando ne conosceva la posizione con la precisione degli inglesi.
Colossus e l’idea di computer
Nel dicembre 1943 entrava in funzione il Colossus, la prima macchina completamente elettronica. Turing si era già defilato dal lavoro centrale e si veniva interessando ai problemi legati alla questione dell’immagazzinamento dei dati che una macchina elaborava, “la memoria”. Turing aveva iniziato a parlare della necessità di dimostrare che una macchina era in grado di imparare. Scriverà nel 1948: «Non è necessario avere un’infinità di macchine diverse per svolgere lavori diversi. Sarà sufficiente averne una sola. I problemi di ingegneria che sorgono quando si debbono produrre varie macchine per compiti differenti si trasformeranno in un lavoro a tavolino, quello che consiste nel “programmare” la macchina universale a svolgere questi compiti». Nel 1945 Turing aveva concepito l’idea del “computer”, ovvero del calcolatore automatico elettronico con memoria interna di programma. Era un sogno che si realizzava.
“Egli vedendo che osservavo attentamente una macchina che occupava la maggior parte della lunghezza e della larghezza della stanza, disse che forse mi meravigliavo di vederlo lavorare al progresso delle scienze speculative con l’ausilio di operazioni pratiche e meccaniche. Ma il mondo si sarebbe ben presto accorto dell’utilità di quel meccanismo, ed egli si lusingava che mai pensiero più nobile ed elevato fosse zampillato da mente umana. Ognuno sa infatti quanto laboriosi siano i comuni metodi per iniziarsi alle arti e alle scienze; con quell’invenzione, invece, l’uomo più ignorante con una spesa modesta e un po’ di fatica fisica poteva scrivere libri di filosofia, poesia, politica, diritto, matematica e teologia senza bisogno di essere minimamente aiutato dall’ingegno o dallo studio”. Chi così descrive la macchina in questione è Gulliver durante la visita, avvenuta nel corso del terzo dei suoi viaggi, della grande Accademia di Lagado, capitale del regno di Balnibarbi, parte dell’Isola Volante (J. Swift, Viaggi di Gulliver in vari paesi lontani del mondo, con le illustrazioni di Grandville, BUR, 1990). “Mi condusse poi alla macchina“, va avanti Gulliver […] La superficie risultava di vari pezzetti di legno, della grossezza di un dado da giuoco, alcuni più grandi degli altri; sottili fili di ferro li legavano insieme. Su ogni lato di questi cubetti v’era incollato un quadratino di carta, e su questi quadratini erano scritte tutte le parole del loro linguaggio nei vari modi, tempi e declinazioni, ma senza alcun ordine. L’accademico mi pregò allora di star bene attento perché avrebbe fatto funzionare il suo meccanismo. A un suo cenno, gli allievi afferrarono ciascuno una manovella di ferro e la fecero rapidamente girare; tutta la disposizione delle parole cambiò a un tratto. Egli comandò allora a 36 dei suoi ragazzi di leggere piano le varie righe così come apparivano sulla macchina; e quando essi trovavano tre o quattro parole in fila che potevano far parte di una frase, le dettavano ai quattro rimanenti discepoli, che fungevano da scrivani. La macchina era fatta in modo che, a ogni girata di manovella, le parole cambiavano di posto col rovesciarsi dei cubetti“.
Il libro di Swift venne pubblicato nel 1726. Se la immaginaria macchina descritta da Swift era una macchina “linguistica”, molto più ambiziosa era la macchina a cui aveva pensato il matematico inglese Charles Babbage (1792-1871). Nel 1822 il primo esemplare di macchina per il calcolo differenziale era effettivamente costruito. “Io pensavo – scriveva Babbage – che una macchina capace di eseguire isolatamente semplici operazioni matematiche non sarebbe stata di grande utilità, a meno che non si riuscisse a impostarla facilmente a svolgere il lavoro, sia a farglielo svolgere non solo con accuratezza, ma anche con rapidità”. Ancora più ambizioso il progetto, a cui lavorò per trent’anni, di una “macchina analitica” a cui fosse possibile “insegnare” il processo mentale del “prevedere”. La macchina restò solo a livello di progetto e non venne mai realizzata. Come scrive Bottazzini: “I sogni di Babbage dovevano aspettare circa un secolo prima di materializzarsi nei moderni computer”.
Aveva ragione Gordon Brown: Turing avrebbe meritato di meglio.
Credit immagine a Jon Callas / Flickr
Chapeau. Un Genio al quale l’umanità deve moltissimo. Compresi tutti quelli che adoperano un pc o uno smartphone.