La macchina Enigma era un dispositivo meccanico utilizzato per codificare e decodificare i messaggi segreti. Durante la seconda guerra mondiale, la macchina Enigma fu utilizzata dall’esercito tedesco per comunicare con truppe sul campo, navi da guerra e sottomarini. I crittografi alleati, lavorando sotto il nome in codice ULTRA, hanno decifrato con successo la maggior parte dei codici Enigma; questo diede agli Alleati un’importante fonte di informazioni per lo sforzo bellico.
La stessa macchina Enigma era meccanica e assomigliava molto a una macchina da scrivere. Ogni volta che si premeva un tasto, il segnale elettronico passava attraverso una serie di ruote rimescolanti girevoli, attraverso un pannello di collegamento, per poi tornare indietro in una direzione diversa. Poiché ogni ruota poteva essere ruotata per alterare il percorso del segnale, era possibile un’enorme varietà di tasti diversi e le ruote potevano essere semplicemente ruotate ogni volta che era necessaria una nuova chiave. Le ruote erano predisposte per ruotare ogni volta che veniva premuto un tasto, rendendo Enigma sicuro contro gli attacchi a frequenza di lettere; furono cambiate anche le posizioni di partenza delle ruote, spesso più volte al giorno.
In teoria, Enigma doveva essere sicuro contro qualsiasi tipo di attacco di forza bruta, poiché c’erano troppe possibilità di cifratura per provarle tutte una per una. Le versioni successive di Enigma, come i modelli a quattro rotori utilizzati dagli U-Boot tedeschi, aumentarono ulteriormente il numero di combinazioni. Anche così, i documenti in codice catturati e l’errore umano spesso davano ai crittografi il sopravvento, e l’esercito polacco stava decodificando le comunicazioni tedesche segrete già nel 1932. Il loro lavoro alla fine è arrivato in Gran Bretagna e in America, e la decrittazione del codice è continuata con molto di successo durante tutta la guerra, nonostante i tentativi dei tedeschi di rendere la macchina sempre più complessa.
Rompere con successo il codice Enigma richiedeva la ricerca di regolarità, o fattori noti, per ridurre l’enorme numero di possibili cifre. Diversi testi semplici, come “Heil Hitler”, apparivano frequentemente nei messaggi tedeschi; questo ha fornito importanti indizi ai crittoanalisti, che potrebbero cercare in un messaggio crittografato e vedere dove potrebbe apparire una frase del genere. I tedeschi trasmettevano anche intestazioni di sei lettere semplici e facili da analizzare all’inizio dei messaggi, come “EINEIN”, per fornire la posizione delle ruote di cifratura per il resto del messaggio. Quando lo spazio delle possibili chiavi di codice diventava ancora troppo grande, furono costruiti diversi computer primitivi, per contare automaticamente le migliaia di possibilità; questo è diventato uno dei primi lavori svolti nell’informatica di uso generale.