Las máquinas Colossus fueron los primeros dispositivos calculadores electrónicos usados por los británicos para leer las comunicaciones cifradas alemanas durante la Segunda Guerra Mundial. Colossus fue uno de los primeros computadores digitales.

La máquina Colossus fue diseñada originalmente por Tommy Flowers en la Post Office Research Station (Estación de Investigación de la Oficina Postal). El prototipo, Colossus Mark I, entró en funcionamiento en Bletchley Park en febrero de 1944. Una versión mejorada, el Colossus Mark II, se instaló en junio de 1944, y se llegaron a construir unos diez Colossus hasta el final de la guerra.

Las máquinas Colossus se usaron para descifrar los mensajes cifrados que se interceptaban de las comunicaciones de la Alemania nazi, usando la máquina Lorenz SZ40/42. Colossus comparaba dos flujos de datos, contando cada coincidencia basada en una función programable booleana. El mensaje cifrado se leía a gran velocidad a través de una cinta de papel. El otro flujo de datos era generado internamente, y era una simulación electrónica de la máquina de Lorenz en varias combinaciones.

Parte de la operación Colossus era emular electrónicamente la máquina mecánica de Lorenz. Para cifrar un mensaje con la máquina de Lorenz, el texto plano se combinaba con un flujo de BITs clave, en grupos de cinco. El flujo clave se generaba usando doce ruedas: cinco fueron clasificadas (por los británicos) como ruedas («Χ»), otras cinco como («Ψ»), y las dos restantes como «ruedas motoras». Las ruedas rotaban regularmente con cada letra que se cifraba, mientras que las ruedas rotaban irregularmente, controladas por las ruedas motoras.

Propósito y orígenes miniatura|izquierda|vertical=1.5|Una máquina cifradora Lorenz SZ42 con sus cubiertas retiradas en el National Museum of Computing en Bletchley Park derecha|vertical=1.8|miniatura|Las máquinas Lorenz SZ tenían 12 ruedas, cada una con un número diferente de levas (o "pines"). Número de rueda123456789101112 Nombre de rueda en BP ψ1 ψ2 ψ3 ψ4 ψ5 μ37 μ61 χ1 χ2 χ3 χ4 χ5 Número de levas (pines)434751535937614131292623

Los ordenadores Colossus se utilizaron para ayudar a descifrar mensajes de teletipo de radio interceptados que habían sido cifrados usando la máquina Lorenz SZ 40/42. La información de inteligencia reveló que los alemanes llamaban a los sistemas de transmisión de teletipo inalámbricos "Sägefisch" (pez sierra). Esto llevó a los británicos a llamar al tráfico de teletipo alemán cifrado "Fish", y a la máquina desconocida y sus mensajes interceptados "Tunny" (atún).

Antes de que los alemanes aumentaran la seguridad de sus procedimientos operativos, los criptoanalistas británicos diagnosticaron cómo funcionaba la máquina no vista y construyeron una imitación de ella llamada "Tunny británico".

Se dedujo que la máquina tenía doce ruedas y usaba una técnica de cifrado Vernam en los caracteres de mensajes en el código de telegrafía estándar de 5 bits ITA2. Lo hacía combinando los caracteres de texto en claro con una corriente de caracteres de clave usando la función XOR Función booleana para producir el cifrado.

En agosto de 1941, un error de los operadores alemanes llevó a la transmisión de dos versiones del mismo mensaje con ajustes idénticos de la máquina. Estos fueron interceptados y trabajados en Bletchley Park. Primero, John Tiltman, un criptoanalista muy talentoso de GC&CS, derivó una corriente de clave de casi 4000 caracteres. Luego, Bill Tutte, un miembro recién llegado de la Sección de Investigación, utilizó esta corriente de claves para descubrir la estructura lógica de la máquina Lorenz. Dedujo que las doce ruedas consistían en dos grupos de cinco, a los que llamó ruedas χ (chi) y ψ (psi), las dos restantes las llamó μ (mu) o ruedas "motor". Las ruedas chi avanzaban regularmente con cada letra que se cifraba, mientras que las ruedas psi avanzaban de manera irregular, bajo el control de las ruedas motor.

izquierda|vertical=1.5|miniatura|Levas en las ruedas 9 y 10 mostrando sus posiciones elevadas (activas) y bajadas (inactivas). Una leva activa invertía el valor de un bit (0→1 y 1→0). Con una corriente de claves suficientemente aleatoria, un cifrado Vernam elimina la propiedad del lenguaje natural de un mensaje de texto en claro de tener una distribución de frecuencia desigual de los diferentes caracteres, para producir una distribución uniforme en el cifrado. La máquina Tunny lo hacía bien. Sin embargo, los criptoanalistas descubrieron que al examinar la distribución de frecuencia de los cambios de carácter a carácter en el cifrado, en lugar de los caracteres simples, había una desviación de la uniformidad que proporcionaba una forma de acceder al sistema. Esto se logró mediante el proceso de "diferenciación", en el cual cada bit o carácter se combinaba mediante XOR con su sucesor. Después de la rendición de Alemania, las fuerzas aliadas capturaron una máquina Tunny y descubrieron que era la máquina de cifrado electromecánica Lorenz SZ (Schlüsselzusatzgerät, dispositivo adicional de cifrado) en línea.

Colossus era operado en Newmanry, la sección de Bletchley Park responsable de los métodos mecánicos contra la máquina de Lorenz, liderada por el matemático Max Newman.

Colossus se desarrolló debido a un proyecto anterior que produjo una máquina comparadora opto-mecánica llamada «Heath Robinson». El mayor problema de la máquina Robinson era la sincronización de dos cintas perforadas, una perforada con el mensaje cifrado y la otra representando los patrones producidos por las ruedas de la máquina de Lorenz, pero cuando se tenía que leer a una velocidad de más de 1000 caracteres por segundo, resultaba en una infinidad de cálculos. Colossus solucionó el problema reproduciendo electrónicamente una de las cintas. La otra cinta se podía introducir en Colossus a mayor velocidad y podía ser contada con mucha mayor fiabilidad.

Destino incierto

Aparentemente se destruyeron ocho de las 10 máquinas Colossus de Bletchley Park en 1946, por orden directa de Winston Churchill. Una más sobrevivió hasta los años 1950, y la última fue desmantelada en 1960 cuando todos los diagramas de sus circuitos y sus planos fueron quemados. Se sabe que varios científicos norteamericanos vieron funcionar a Colossus en visitas secretas a Bletchley Park después de la guerra, pero el Gobierno británico vetó toda la información sobre la máquina durante 30 años. Las razones no fueron solo militares, sino también políticas, pues se sabe que hubo al menos un bombardeo alemán a una ciudad inglesa que pudo haberse evitado gracias a Colossus, pero que se dejó proceder (a costa de un sinnúmero de muertes) para proteger uno de los secretos mejor guardados durante la Segunda Guerra Mundial.

La construcción de Colossus miniaturadeimagen|Recreación de un Colossus Mk II Un equipo liderado por Tommy Flowers dedicó diez meses (desde principios de febrero hasta principios de diciembre de 1943) diseñando y construyendo la computadora Colossus en la Post Office Research Station, Dollis Hill, al noroeste de Londres. Después de una prueba funcional el 8 de diciembre de 1943, la máquina fue desmontada y enviada al norte de Bletchley Park. Después fue montada en el bloque F en las navidades de 1943. La Mark 1 tuvo éxito en su primera prueba con un mensaje real cifrado en enero de 1944. Fue seguido de nueve máquinas Colossus Mark 2, la primera de ellas se instaló en junio de 1944 mientras que la Mark 1 original fue convertida a Mark 2. La máquina Colossus número once se terminó justo al final de la guerra.

La máquina Colossus Mark 1 tenía 1500 válvulas electrónicas. La Colossus Mark 2, con 2400 válvulas, era cinco veces más rápida y más fácil de operar que la Mark 1: ambas características aumentaron considerablemente el proceso de decodificación. La Mark 2 se diseñaba mientras la Mark 1 era construida. En comparación, la ENIAC de 1946 usaba 17 468 válvulas y la Manchester Mark I de 1949 usó alrededor de 4200.

Colossus contaba con la segunda cinta diseñada para la máquina Robinson que generaba los patrones electrónicamente y procesaba 5000 caracteres por segundo con la cinta de papel circulando a 12 metros por segundo. Los circuitos eran sincronizados por una señal de reloj, generada por las perforaciones de la cinta. La velocidad de cálculo estaba limitada por los mecanismos del lector de la cinta. El diseñador Tommy Flowers testeó el lector de cinta hasta los 9700 caracteres por segundo antes de que la cinta se desintegrase. Él configuró 5000 caracteres por segundo como la velocidad más deseable para un funcionamiento óptimo. Algunas veces, dos o más Colossus probaron diferentes combinaciones de trabajo simultáneo, lo que ahora se denomina computación paralela, aumentando notablemente el proceso de decodificación.

Colossus incorporaba por primera vez el uso de registros lineales y arrays sistólicas, permitiendo cinco tests simultáneos, implicando más de 100 cálculos booleanos, en cada uno de los cinco canales de la cinta perforada (no obstante, en funcionamiento normal, solo uno o dos canales eran examinados en cada ejecución).

Inicialmente Colossus se usaba solamente para determinar las posiciones iniciales de las ruedas para un mensaje concreto (denominado posición de rueda). El Mark 2 incluía mecanismos para ayudar a determinar los patrones de los dientes de las ruedas (rotura de rueda). Ambos modelos eran programables usando interruptores y paneles acoplados que la máquina Robinson no tenía.

Diseño y operado Colossus usaba unos tubos de vacío (válvulas termoiónicas), tiratrones y fotomultiplicadores para leer de forma óptica una cinta de papel y después aplicar una función lógica programable a cada carácter, contando cuántas veces la función devolvía «verdadero». Aunque se sabía que las máquinas con muchas válvulas eran propensas a altas tasas de averías, también se reconocía que las averías de las válvulas solían ocurrir al encender la máquina, de tal forma que las máquinas Colossus, una vez encendidas, nunca se apagaban a no ser que comenzasen a funcionar de forma incorrecta...

Colossus fue la primera de las máquinas digitales en incorporar una limitada programabilidad. No obstante no era una computadora de propósito general, no siendo Turing completa, aunque las Colossus se basaban en la definición de Alan Turing y este trabajó en Bletchley Park, donde las Colossus fueron operadas. En aquella época no era tan importante que las máquinas fuesen Turing-completas; la mayoría del resto de las primeras máquinas computacionales tampoco lo eran, como por ejemplo la Computadora de Atanasoff-Berry, Harvard Mark I, la primera máquina electromecánica, las máquinas de relés de los Laboratorios Bell (de George Stibitz et alt), los primeros diseños de Konrad Zuse y demás. La noción de una computadora como una máquina de propósito general, y no como una gran calculadora dedicada a resolver problemas difíciles pero singulares, no se destacó hasta unos años después.

Colossus fue precedido por una serie de computadoras, la mayor parte de ellas las primeras de su categoría. Zuse Z3 fue la primera computadora completamente programable funcional, y estaba basada en relés electromecánicos, igual que (las menos avanzadas) máquinas de Bell Labs a finales de la década de 1930 (George Stibitz, et al). El ABC Computer era electrónico y binario (digital), pero no programable. Las computadoras indicadas eran semiprogramables; algunas fueron construidas mucho antes de la década de los años 30 del (eg, Vannevar Bush). Anterior a estas, está la máquina analítica de Babbage (en la mitad del ), que era digital y programable, pero nunca fue construida totalmente y nunca funcionó realmente. Colossus fue la primera máquina que combinaba su funcionamiento digital, parcialmente programable y electrónico.

Conceptos erróneos acerca de Colossus