La máquina Enigma era un dispositivo mecánico utilizado para codificar y decodificar mensajes secretos. Durante la Segunda Guerra Mundial, el ejército alemán utilizó la máquina Enigma para comunicarse con tropas en el campo, buques de guerra y submarinos. Los criptólogos aliados, que trabajaban bajo el nombre en clave ULTRA, descifraron con éxito la mayoría de los cifrados Enigma; esto dio a los Aliados una importante fuente de inteligencia para el esfuerzo bélico.
La propia máquina Enigma era mecánica y se parecía mucho a una máquina de escribir. Cada vez que se presionaba una tecla, la señal electrónica pasaba a través de una serie de ruedas de codificación giratorias, a través de un tablero de conexiones y luego retrocedía en una dirección diferente. Debido a que cada rueda se podía girar para alterar la ruta de la señal, era posible una gran variedad de teclas diferentes, y las ruedas simplemente se podían girar cada vez que se necesitaba una nueva llave. Las ruedas estaban dispuestas para girar cada vez que se pulsaba una tecla, lo que aseguraba a Enigma contra ataques de frecuencia de letras; También se cambiaron las posiciones iniciales de las ruedas, a menudo varias veces al día.
En teoría, se suponía que Enigma estaba seguro contra cualquier tipo de ataque de fuerza bruta, ya que había demasiadas posibilidades de cifrado para probarlas todas una por una. Las versiones posteriores de Enigma, como los modelos de cuatro rotores utilizados por los submarinos alemanes, aumentaron aún más el número de combinaciones. Aun así, los documentos de código capturados y los errores humanos a menudo les dieron a los criptógrafos la ventaja, y el ejército polaco estaba decodificando comunicaciones secretas alemanas ya en 1932. Su trabajo finalmente llegó a Gran Bretaña y Estados Unidos, y el descifrado de códigos continuó con mucho de éxito durante toda la guerra, a pesar de los intentos de los alemanes de hacer la máquina cada vez más compleja.
Romper con éxito el código Enigma requirió encontrar regularidades, o factores conocidos, para reducir la gran cantidad de cifrados posibles. Varios textos sencillos, como «Heil Hitler», aparecían con frecuencia en mensajes alemanes; esto dio pistas importantes a los criptoanalistas, que podían buscar a través de un mensaje cifrado y ver dónde podía aparecer esa frase. Los alemanes también transmitieron encabezados de seis letras simples y fáciles de analizar al comienzo de los mensajes, como “EINEIN”, para dar la ubicación de las ruedas de cifrado para el resto del mensaje. Cuando el espacio de posibles claves de código aún se hizo demasiado grande, se construyeron varias computadoras primitivas, para contar automáticamente a través de miles de posibilidades; esto se convirtió en uno de los primeros trabajos realizados en computación de propósito general.