thumb|Placa de marca de Enigma Enigma fue una máquina de rotores diseñada para cifrar y descifrar mensajes. Patentada en 1918 por la empresa alemana Scherbius y Ritter, y construida e inventada por Arthur Scherbius, quien luego compró un patente para un aparato similar del inventor neerlandés Hugo Koch, se puso a la venta en 1923 para un uso comercial. En 1926, la Armada alemana la adoptó para uso militar y poco después su uso se extendió a las demás fuerzas armadas alemanas, especialmente durante la Segunda Guerra Mundial.

Su facilidad de manejo y su aparente robustez criptográfica fueron las principales razones para su implantación. Los alemanes confiaban tanto en su encriptado con más de 150 billones de combinaciones posibles que garantizaban la seguridad en las comunicaciones que la consideraron segura, pensamiento que compartía el mismo Karl Dönitz.

Sin embargo, gracias a las investigaciones llevadas a cabo por los servicios de inteligencia polacos, quienes instruyeron a su vez a los servicios franceses e ingleses en el sistema de cifrado, este fue finalmente descubierto, lo que precipitó el desenlace de la Segunda Guerra Mundial en favor de los Aliados. Estos aprovecharon además los fallos en los procedimientos de uso por parte de los operadores alemanes, que permitieron la interceptación de las tablas de descifrado y la captura de algunos aparatos.

La máquina equivalente británica, el Bombe, y varias estadounidenses, como la SIGABA (o M-135-C en el ejército), eran similares a Enigma. La primera máquina moderna de cifrado rotatorio, de Edward Hebern, era considerablemente menos segura que Enigma.

Máquina thumb|Una máquina electromecánica de cifrado rotativo; la versión mostrada es posiblemente la militar, pero es similar a la comercial Enigma-D. Funcionamiento thumb|Máquina Enigma en el Museo Nacional de la Ciencia y la Tecnología Leonardo da Vinci, Milán La máquina Enigma fue un dispositivo electromecánico, lo que significa que usaba una combinación de partes mecánicas y eléctricas. El mecanismo estaba constituido fundamentalmente por un teclado similar al de las máquinas de escribir cuyas teclas eran interruptores eléctricos, un engranaje mecánico y un panel de luces con las letras del alfabeto.

La parte eléctrica consistía en una batería que encendía una lámpara de una serie de ellas, que representaban cada una de las diferentes letras del alfabeto. Se puede observar en la parte inferior de la imagen adjunta el teclado, y las lámparas son los circulitos que aparecen encima de aquel.

El corazón de la máquina Enigma era mecánico y constaba de varios rotores conectados entre sí. Cada rotor es un disco circular plano con 26 contactos eléctricos en cada cara, uno por cada letra del alfabeto. Cada contacto de una cara está conectado o cableado a un contacto diferente de la cara contraria. Por ejemplo, en un rotor en particular, el contacto número 1 de una cara puede estar conectado con el contacto número 14 en la otra cara y el contacto número 5 de una cara con el número 22 de la otra. Cada uno de los cinco rotores proporcionados con la máquina Enigma estaba cableado de una forma diferente y los rotores utilizados por el ejército alemán poseían un cableado distinto al de los modelos comerciales.

Dentro de la máquina había, en la mayoría de las versiones, tres ranuras para alojar los rotores. Cada uno de los rotores se encajaba en la ranura correspondiente de forma que sus contactos de salida se conectaban con los contactos de entrada del rotor siguiente. El tercer y último rotor se conectaba, en la mayoría de los casos, a un reflector que conectaba el contacto de salida del tercer rotor con otro contacto del mismo rotor para realizar el mismo proceso pero en sentido contrario y por una ruta diferente. La existencia del reflector diferencia la máquina Enigma de otras máquinas de cifrado de la época basadas en rotores. Este elemento, que no se incluía en las primeras versiones de la máquina, posibilitaba que la clave utilizada para el cifrado se pudiera emplear en el descifrado del mensaje. Se pueden observar en la parte superior de la imagen los tres rotores con sus correspondientes protuberancias dentadas que permitían girarlos a mano, colocándolos en una posición determinada. miniaturadeimagen|Cifrar y descifrar usando una máquina enigma. 2016 Cuando se pulsaba una tecla en el teclado, por ejemplo la correspondiente a la letra A, la corriente eléctrica procedente de la batería se dirigía hasta el contacto correspondiente a la letra A del primer rotor. La corriente atravesaba el cableado interno del primer rotor y se situaba, por ejemplo, en el contacto correspondiente a la letra J en el lado contrario. Supongamos que este contacto del primer rotor estaba alineado con el contacto correspondiente a la letra X del segundo rotor. La corriente llegaba al segundo rotor y seguía su camino a través del segundo y tercer rotor, el reflector y de nuevo a través de los tres rotores en el camino de vuelta. Al final del trayecto, la salida del primer rotor se conectaba a la lámpara correspondiente a una letra, distinta de la A, en el panel de luces. El mensaje de cifrado se obtenía por tanto sustituyendo las letras del texto original por las proporcionadas por la máquina.

Cada vez que se introducía una letra del mensaje original, pulsando la tecla correspondiente en el teclado, la posición de los rotores variaba. Debido a esta variación, a dos letras idénticas en el mensaje original, por ejemplo AA, les correspondían dos letras diferentes en el mensaje cifrado, por ejemplo QL. En la mayoría de las versiones de la máquina, el primer rotor avanzaba una posición con cada letra. Cuando se habían introducido 26 letras y por tanto el primer rotor había completado una vuelta completa, se avanzaba en una muesca la posición del segundo rotor, y cuando este terminaba su vuelta, se variaba la posición del tercer rotor. El número de pasos que provocaba el avance de cada uno de los rotores era un parámetro configurable por el operario.

Debido a que el cableado de cada rotor era diferente, la secuencia exacta de los alfabetos de sustitución variaba en función de qué rotores estaban instalados en las ranuras (cada máquina disponía de cinco), su orden de instalación y la posición inicial de cada uno. A estos datos se les conocía con el nombre de configuración inicial, y eran distribuidos, mensualmente al principio y con mayor frecuencia a medida que avanzaba la guerra, en libros a los usuarios de las máquinas.

El funcionamiento de las versiones más comunes de la máquina Enigma era simétrico en el sentido de que el proceso de descifrado era análogo al proceso de cifrado. Para obtener el mensaje original solo había que introducir las letras del mensaje cifrado en la máquina, y esta devolvía una a una las letras del mensaje original, siempre y cuando la configuración inicial de la máquina fuera idéntica a la utilizada al cifrar la información.

Criptoanálisis básico

Los cifrados, por supuesto, pueden ser descifrados, y la forma más efectiva de enfocarlo depende del método de cifrado. Al principio de la Primera Guerra Mundial, los departamentos de descifrado eran lo bastante avanzados como para poder descubrir la mayoría de los cifrados, si se dedicaban suficientes esfuerzos. Sin embargo, la mayoría de estas técnicas se basaban en conseguir cantidades suficientes de texto cifrado con una clave particular. A partir de estos textos, con suficiente análisis estadístico, se podían reconocer patrones y deducir la clave.

thumb|left|Máquina Enigma a bordo de un Sd.KFz 251 de Heinz Guderian

Los analistas buscan normalmente algunas letras y combinaciones frecuentes. Por ejemplo, en inglés, E, T, A, O, I, N y S son generalmente fáciles de identificar, por ser muy frecuentes (véase ETAOIN SHRDLU y EAOSR NIDLC en análisis de frecuencias); también NG, ST y otras combinaciones, muy frecuentes en inglés. Una vez que se identifican algunos (o todos) de estos elementos, el mensaje se descifra parcialmente, revelando más información sobre otras sustituciones probables. El análisis de frecuencia simple confía en que una letra es sustituida siempre por otra letra del texto original en el texto cifrado; si este no es el caso, la situación es más difícil.

Durante mucho tiempo, los criptógrafos procuraron ocultar las frecuencias usando varias sustituciones diferentes para las letras comunes, pero esto no puede ocultar completamente los patrones en las sustituciones para las letras del texto original. Tales códigos fueron utilizados extensamente hacia el año 1500.

Una técnica para hacer más difícil el análisis de frecuencia es utilizar una sustitución diferente para cada letra, no sólo las comunes. Este proceso sería normalmente muy costoso en tiempo y requería que ambas partes intercambiaran sus patrones de sustitución antes de enviar mensajes cifrados. A mitad del , una nueva técnica fue inventada por Alberti, ahora conocida generalmente como cifrado polialfabético, que proporcionó una técnica simple para crear una multiplicidad de patrones de sustitución. Las dos partes intercambiarían una cantidad de información pequeña (referida como la clave) y seguirían una técnica simple que produce muchos alfabetos de sustitución, y muchas sustituciones diferentes para cada letra del texto original. La idea es sencilla y eficaz, pero resultó ser más difícil de lo esperado. Muchos cifrados fueron implantaciones parciales del concepto, y eran más fáciles de romperse que los anteriores (p. ej. el cifrado de Vigenère).

Costó centenares de años hallar métodos fiables para romper los cifrados polialfabéticos. Las nuevas técnicas confiaron en estadística (p. ej. análisis de frecuencias) para descubrir información sobre la clave usada para un mensaje. Estas técnicas buscan la repetición de los patrones en el texto cifrado, que proporcionarían pistas sobre la longitud de la clave. Una vez que se sabe esto, el mensaje, esencialmente, se convierte en una serie de mensajes, cada uno con la longitud de la clave, a los cuales se puede aplicar el análisis de frecuencia normal. Charles Babbage, Friedrich Kasiski y William F. Friedman están entre los que aportaron la mayor parte del trabajo para desarrollar estas técnicas.

Se recomendó a los usuarios de los cifrados emplear no sólo una sustitución diferente para cada letra, sino también una clave muy larga, de manera que las nuevas técnicas de descifrado fallaran (o que por lo menos fueran mucho más complicadas). Sin embargo, esto es muy difícil de lograr; llevar a las partes que intercambian mensajes una clave larga requiere más tiempo, y los errores son más probables. El cifrado ideal de esta clase sería uno en el que una clave tan larga se pudiese generar de un patrón simple, produciendo un cifrado en que hay tantos alfabetos de substitución que la cuenta de ocurrencias y los ataques estadísticos fueran imposibles.