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 successivamente modificata e migliorata fino al 1925; l'esercito e la marina tedesca la adottarono per le comunicazioni segrete dal 1925 fino alla seconda guerra mondiale.
La macchina ha al suo interno un certo numero di rotori intercambiabili con 26 posizioni a scatto prefissate, indicate con le 26 lettere dell'alfabeto su alcuni modelli, su altri invece con 26 numeri da 01 a 26; le 26 posizioni anteriori sono collegate elettricamente in modo disordinato con quelle posteriori; i tre (o più) rotori sono liberi di ruotare secondo un meccanismo tipo contatore(*), ogni 26 scatti del primo rotore si ha uno scatto del secondo e così via(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. Se i rotori fossero fissi si tratterebbe di una cifra monoalfabetica, ma poiché ad ogni pressione di tasto i rotori avanzano di un passo, cambiando di fatto la tabella di sostituzione letterale; si tratta di una cifra polialfabetica.
I primi modelli avevano in dotazione tre rotori che potevano essere posizionati in tre posizioni all'interno della macchina (3*2*1 = 6 disposizioni possibili); in seguito l'esercito tedesco aumentò a cinque il numero di rotori disponibili portando a 60 (5*4*3) le disposizioni possibili dei rotori. I militari tedeschi per aumentare la sicurezza aggiunsero sul frontale della macchina un pannello con 26 prese elettriche che usando un massimo di 13 cavetti permettevano di scambiare tra di loro alcune lettere aumentando di molto la sicurezza della macchina rispetto alla versione commerciale.
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.
Non esiste possibilità di stampa, dunque l'operatore deve copiare a mano, carattere per carattere il messaggio cifrato da trasmettere.
La chiave dell'Enigma è quindi la disposizione iniziale dei rotori oltre a quella dei cavi sul pannelo anteriore; questa chiave veniva cambiata dalla marina tedesca ogni 24 ore secondo tabelle prefissate; in definitiva la vera chiave segreta era questa tabella. Anche i collegamenti interni dei rotori sono segreti.
Inoltre si possono disporre in modi diversi tre rotori da una dotazione di n rotori con cablaggi diversi, e quindi vi sono nP3 = n(n-1)(n-2) disposizioni possibili. La posizione iniziale dei rotori è una tra 26^3 e ancor più elevato è il numero di possibili cablaggi sul pannello anteriore.
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, e quello dei rotori in dotazione a una macchina era come detto limitato a tre rotori o poco più.
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.