Mașina Enigma era un dispozitiv mecanic folosit pentru codificarea și decodarea mesajelor secrete. În timpul celui de-al Doilea Război Mondial, mașina Enigma a fost folosită de armata germană pentru a comunica cu trupele de pe teren, navele de război și submarinele. Criptologii aliați, care lucrează sub numele de cod ULTRA, au spart cu succes majoritatea cifrurilor Enigma; aceasta le-a oferit Aliaților o importantă sursă de informații pentru efortul de război.
Mașina Enigma în sine era mecanică și semăna mult cu o mașină de scris. De fiecare dată când era apăsată o tastă, semnalul electronic trecea printr-o serie de roți rotative de amestecare, printr-o placă de conectare și apoi ieșea înapoi într-o direcție diferită. Deoarece fiecare roată putea fi rotită pentru a modifica traseul semnalului, era posibilă o mare varietate de taste diferite, iar roțile puteau pur și simplu să fie rotite de fiecare dată când era nevoie de o nouă cheie. Roțile au fost aranjate să se rotească de fiecare dată când o tastă a fost apăsată, făcând Enigma sigură împotriva atacurilor cu frecvența literelor; s-au schimbat și pozițiile de pornire ale roților, adesea de câteva ori pe zi.
În teorie, Enigma trebuia să fie sigură împotriva oricărui tip de atac cu forță brută, deoarece existau mult prea multe posibilități de cifrare pentru a le încerca pe toate unul câte unul. Versiunile ulterioare ale Enigma, cum ar fi modelele cu patru rotoare utilizate de submarinele germane, au crescut și mai mult numărul de combinații. Chiar și așa, documentele de cod capturate și eroarea umană le-au dat deseori criptografilor avantaj, iar armata poloneză a decodificat comunicațiile germane secrete încă din 1932. Munca lor a ajuns în cele din urmă în Marea Britanie și America, iar ruperea codurilor a continuat cu mult. de succes pe tot parcursul războiului, în ciuda încercărilor germanilor de a face mașina din ce în ce mai complexă.
Încărcarea cu succes a codului Enigma a necesitat găsirea de regularități sau factori cunoscuți pentru a reduce numărul imens de cifruri posibile. Mai multe texte simple, cum ar fi „Heil Hitler”, au apărut frecvent în mesajele germane; acest lucru a oferit indicii importante criptoanalistilor, care puteau căuta printr-un mesaj criptat și să vadă unde ar putea apărea o astfel de expresie. Nemții au transmis, de asemenea, anteturi simple, ușor de analizat, cu șase litere la începutul mesajelor, cum ar fi „EINEIN”, pentru a indica locația roților de cifrare pentru restul mesajului. Când spațiul posibilelor chei de cod a devenit încă prea mare, au fost construite mai multe calculatoare primitive, pentru a număra automat miile de posibilități; aceasta a devenit unele dintre primele lucrări realizate în calculul de uz general.