Nella prima metà del XX secolo cominciarono a diffondersi macchine cifranti a rotori, sul modello del cilindro di Jefferson reinventato da Beziers.
La più celebre di queste macchine è l'Enigma inventata nel 1918 dal tedesco Arthur Scherbius e adottata dall'esercito e dalla marina tedesca fino alla seconda guerra mondiale.
L'Enigma è una macchina simmetrica, nel senso che se la lettera A è cifrata con la G in una certa posizione del testo allora nella stessa posizione la G sarà cifrata con la A. La stessa macchina serve quindi per cifrare e decifrare; una grossa comodità operativa che è però anche una debolezza crittografica.
La macchina ha al suo interno un certo numero di rotori (nella prima versione erano 3) collegati elettricamente e liberi di ruotare (vedi la struttura matematica dell'Enigma); quando l'operatore preme un tasto p.es. la A un segnale elettrico passa da rotore a rotore fino al rotore finale detto il riflettore e quindi torna indietro fino a mostrare una lettera illuminata che è il carattere cifrato. Non esiste possibilità di stampa, dunque l'operatore deve copiare a mano, carattere per carattere il messaggio cifrato da trasmettere.
Un ulteriore complicazione sta nel fatto che i ventisei tasti sono collegati ai rotori tramite un pannello con 26 prese che permettono di permutare il collegamento tra i tasti e il primo rotore.
La chiave dell'Enigma è quindi la disposizione iniziale dei rotori oltre a quella dei cavi sul pannelo anteriore; questa chiave veniva cambiata ogni 24 ore secondo una regola prefissata; in definitiva la vera chiave segreta era questa regola. Anche i collegamenti interni dei rotori sono segreti.
Inoltre i tre (o più) rotori possono essere scambiati tra di loro, e quindi vi sono n! (3! = 6 nella Enigma originale) disposizioni possibili, cosa che aumenta il numero di posizioni iniziali possibili. Era anche consigliato di tenere una scorta di rotori con cablaggi diversi, in modo da poter aumentare ancora il numero di combinazioni possibili.
Secondo la NSA il numero teorico di combinazioni è 2 x 1045. Questo numero astronomico però si basa su un numero di rotori possibili di 26! valore enorme ma puramente teorico(*); nella realtà il numero di rotori effettivamente costruiti era ovviamente enormemente minore, un grosso vantaggio per il crittanalista che conoscesse i rotori effettivamente usati dal nemico.
Il funzionamento della Enigma originale (tre rotori) può essere simulato usando la nostra macchina Enigma virtuale realizzata in Javascript.
I tedeschi erano convinti che l'Enigma fosse inattaccabile, ma questa fiducia era assai mal riposta. Già nei primi anni '30 un gruppo di matematici polacchi guidato da Marian Rejewski era riuscito a ricostruire la struttura dei rotori e a decrittarne i messaggi.
E il servizio crittografico inglese al quale partecipava anche il famoso matematico Alan Turing riuscì a sua volta a forzare l'Enigma sin dall'inizio della guerra, sfruttando le debolezze intrinseche di questa macchina e alcune ingenuità dei cifratori tedeschi.