Colossus y la criptografía

Page 1

Arquitectura de ordenadores: Aspectos humano-históricos de la computación:

Colosus y la criptografía

8 – Noviembre - 2006

2º Ing. Informática. José Antonio Esparza usj471@usj.es jaesparza@gmail.com


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

"Rendir al enemigo sin luchar es la cima de la perfección" Sun Tzu, El arte de la guerra

“… rama de la ingeniería que estudia el tratamiento de la información mediante el uso de máquinas automáticas “. Definición de informática, Wikipedia

2


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

Índice 1.- Introducción

4

2.- ¿Para que se necesitaba Colosus? Máquinas de cifrado.

5

3.- ¿Quién hizo posible Colosus? Newman, Flowers

8

4.- Como funcionaba Colossus

11

5.- Bibliografía. Recursos consultados en la red.

16

3


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

1.- Introducción. ¿Cuando se construyó el primer ordenador?, ¿desde cuando contamos con la ayuda de la informática? Son dos preguntas muy diferentes bajo un marco común, y de respuesta más bien difusa. Desde este trabajo comentaré el gran impulso que se dio a la informática durante la segunda guerra mundial, por qué en tiempos difíciles se hizo uso de ella y que repercusiones tuvo en el desarrollo de la misma. Cuando se habla de criptografía en la segunda guerra mundial siempre salen a relucir máquinas como enigma y matemáticos como Alan Turing, pero hay mas personajes además de Turing y mas ingenios además de enigma, como mas adelante comprobaremos. Los dispositivos a los que se hacen referencia en este trabajo constituyeron la tecnología punta y extremadamente secreta de los años 40. Seguramente cualquiera que lo leyese en esa época y fuese ajeno a los proyectos británicos iría, con suerte, directo a la cárcel. Muchos detalles que aquí comento fueron confidenciales hasta mediados de los años 70.

4


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

2.- ¿Para que se necesitaba Colosus? Máquinas de cifrado. El hecho de mantener en secreto cierta información ha sido una necesidad que ha existido desde los albores de la humanidad. Con el comienzo de la segunda guerra mundial la necesidad de poder mantener comunicaciones de manera segura saltó de nuevo al terreno de juego. Para estas fechas los matemáticos e ingenieros habían desarrollado ingenios bastante complejos que permitían a los alemanes encriptar mensajes con bastante eficiencia, pero que gracias a la colaboración entre franceses, polacos y británicos, pudieron ser descifrados y dar una ventaja asombrosa en batallas como la del atlántico, la de Inglaterra, o la que tenía lugar en las ardientes arenas del Sahara. Resulta curioso que la máquina de cifrado utilizada por parte de los ejércitos alemanes estuviese basada en un modelo civil al que se le realizaron algunas modificaciones. Esta máquina fue enigma, y la lucha contra ella sentó las bases para el descifrado de códigos y la automatización de estos procesos.

La máquina enigma se utilizaba para las comunicaciones entre unidades y sus mandos, y para poder establecer enlaces seguros con los submarinos destinados a mantener el bloqueo de Inglaterra durante los primeros años de guerra en la batalla del atlántico. Pero 5


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

además de esta máquina que pronto fue descifrada por los aliados los alemanes también utilizaban otra de mayor sofisticación. La principal función de ésta última era la de mantener comunicaciones rápidas y fiables entre Hitler y los generales de sus diferentes divisiones, es decir, a través de ésta se mandaba información muchísimo más sensible que la que se podía enviar con enigma. Este dispositivo se llamaba máquina de Lorenz y para los aliados recibió el nombre en clave de Tunny. El cifrado implementado por Tunny era extremadamente complejo y requirió la construcción de un computador como el Colosus para llevar a cabo las tareas de desencriptado de sus transmisiones en un tiempo aceptable.

La máquina de cifrado Lorenz era tecnológicamente mucho más avanzada que su predecesora enigma. El mensaje era introducido en un teclado qwerty y era transmitido directamente por teletipo a su destinatario. El operador en ningún momento tenía contacto con el texto cifrado y al no utilizar el código Morse en las transmisiones, ya que era una especie de teletipo, se incrementaba la dificultad en el reconocimiento de las señales. En el proceso de encriptado llevado a cabo por Tunny, al igual que en enigma, se partía de una serie de posiciones iniciales en los rotores para poder llevar a cabo la encriptación solo que, para esta máquina, las posiciones se tomaban

6


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

de libros de códigos mas sofisticados y se basaban en números de 12 dígitos que sólo se utilizaban durante una transmisión. Los criptógrafos de Bletchly Park sólo vieron una máquina Tunny al final de la guerra, cuando la capturaron en territorio ocupado. Esto constituyó una dificultad adicional que no estuvo presente durante el descifrado de enigma, de la que ya contaban con ejemplares capturados al enemigo, lo que les posibilitó el poder aplicarle ingeniería inversa. Pero si la seguridad de la máquina era tan alta, ¿como pudo entonces comprometerse su sistema de cifrado? El sistema de cifrado cayó cuando un operador perezoso repitió un mensaje 2 veces con la misma combinación inicial, y cambiando algunas palabras por sus abreviaturas, lo cual, permitió cotejar ambos mensajes y llegar a entender cual era el sistema de permutaciones que se aplicaba sobre el mensaje de partida. Pero recordemos que después de esto “sólo” se conocía como se llevaba a cabo el cifrado de los mensajes, pero no que combinaciones iniciales se aplicaban a los rotores en cada momento. Esto seguía haciendo necesario el uso de una herramienta potente que ayudase a los criptógrafos a analizar los mensajes en busca de posibles coincidencias con otros grupos de letras de los que partían y esta fue la línea de actuación que marcó el funcionamiento de Colosus. En apartados posteriores veremos como se pudo llegar a implementar este procedimiento y que limitaciones se encontró a su paso.

7


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

3.- ¿Quién hizo posible Colosus? Alan Turing, Newman, Flowers … Siempre que se habla de Bletchly Park y de la decodificación de mensajes alemanes durante la segunda guerra mundial, a quien más mérito se le atribuye es a Alan Turing. Como veremos en esta sección, si bien Turing contribuyó notablemente, hubo más gente dedicada a este propósito. Alan Turing era una personal bastante excéntrica, lo cual no le ayudó a simpatizar con sus superiores que eran, a menudo, militares bastante preocupados por el curso de la guerra como para tener que ver a genios encadenando su taza de té al radiador para que no se la quitase nadie (costumbre bastante arraigada en Turing). Todas sus peculiaridades eran toleradas y aceptadas por sus jefes, porque Turing era un genio de la criptografía, y bastante hábil en el desarrollo de ingenios mecánicos para automatizar tareas repetitivas en el descifrado de los códigos. Esta automatización no solo evitaba un esfuerzo humano, si no que además permitía obtener los mensajes desencriptados en un tiempo inferior al que se habría utilizado si se hubiese hecho a mano, lo cual constituía, en tiempos de guerra, una ventaja a tener en cuenta. A él se le atribuyen, no solo algoritmos para la desencriptación de enigma (alguno de ellos hasta lleva su nombre; Turingery), si no máquinas para implementarlos. Las más relevantes fueron las llamadas “bombas”.

Bomba desarrollada por Turing para descifrar mensajes Enigma

8


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

En estas máquinas se introducía un orden de procesamiento cambiando una serie de rotores y clavijas, y se esperaba el resultado en sus indicadores mecánicos. Como hemos visto hasta ahora, Turing fue pieza clave para la desencriptación de enigma y de posteriores modificaciones que se le efectuaron, como el código shark, pero en lo que a la máquina Lorenz se refiere el principal mérito se le tiene que atribuir a Thomas H. Flowers y a Max H.A. Newman. Flowers era un ingeniero electrónico que trabajó en la implementación de centralitas telefónicas utilizando válvulas y componentes electrónicos, para así poder sustituir las viejas centrales controladas por relés y operadoras. Llevó a cabo proyectos realmente ambiciosos donde, ya en los años 30, utilizaba del orden de 3000 a 4000 válvulas para controlar la telefonía mediante tonos de frecuencia audible (que hasta que se empezaron a utilizar pulsos hace relativamente poco, era el sistema que utilizaban los teléfonos que tenemos por casa). Flowers se incorporó a Blechtley Park para ayudar a Turing en la decodificación de enigma, pero pronto pasó a dedicarse a Tunny por completo. Newman era un matemático que procedía de un mundo más académico. Sus campos de estudio principalmente eran la topología y la resolución de problemas mediante computadores. Se formó en Cambridge, donde supervisó la Tesis de Turing titulada: “On computable numbers, with an application to de entscheidungsproblem” expuesta en 1936. En agosto de 1942 se dedicó por completo a la lucha contra Tunny, estableciéndose en Bletchley Park y poniéndose al frente de la sección de investigación, que terminó conociéndose como Newmanry. En este punto hay que destacar que no participaron por igual en el proyecto Colossus. Newman se mostraba muy muy escéptico con el ingenio electrónico que principalmente Flowers proponía, ya que se centraba en mejorar un aparato de su propia cosecha (el Heat Robinsson) que había diseñado para el mismo fin (descifrar Tunny). No obstante el funcionamiento de Colossus, se podría equiparar al del Heat Robinsson, solo que en vez de ser electromecánico era electrónico. En el apartado correspondiente al funcionamiento detallaré mas las diferencias en las implementaciones y que mejoras se introdujeron con la utilización de la electrónica. Dejando protagonismos aparte, estos dos últimos personajes fueron los principales artífices de Colosus, unos auténticos héroes de la electrónica de la vieja escuela (a base de válvulas o tubos de vacío) y de la informática en sus inicios. 9


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

Como vemos, desde un principio, los profesionales que siempre han guardado mayor relación con el campo de la informática han sido los ingenieros electrónicos y los matemáticos, que han tenido que aprender los unos de los otros y poner en común sus habilidades para desarrollar la tecnología que hoy tenemos entre manos.

10


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

4.- ¿Cómo funcionaba Colossus? Bloques implementación. El proceso de desencriptado

lógicos

y

su

El proceso de desencriptado se basaba en la comparación directa de ciertos patrones iniciales almacenados en una cinta rotatoria con el mensaje codificado. Mientras se realizaban las comparaciones se iban contando el número de coincidencias que se iban produciendo durante el proceso y, una vez terminadas las comparaciones con una batería de secuencias, se tomaba por válido el patrón que presentaba el mayor número de coincidencias. Para este proceso, como fácilmente se puede adivinar, necesitaremos realizar comparaciones para detectar igualdades, es decir, aplicar XOR’s a la entrada, y contar en binario las coincidencias (en binario por que el Colossus trabajaba en base 2). La implementación de este tipo de bloques lógicos, hoy en día, nos puede resultar trivial, pero en aquella época era bastante dificultosa, ya que se partía de componentes electrónicos básicos bastante voluminosos y exigentes en cuanto a la potencia necesaria para su funcionamiento, como las válvulas de vacío. En la imagen inferior, aparecen las distintas válvulas que se utilizaban en el colossus. La que aparece en el extremo derecho de la imagen era la que se utilizaba para el reconocimiento óptico de los datos contenidos en la cinta rotatoria.

11


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

Algunos de los circuitos que actualmente manejamos con cierta trivialidad, dada las escalas de integración que han ido surgiendo, se implementaban en este computador de la siguiente forma:

Circuito de suma lógica

Registro de desplazamiento

12


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

Una vez estudiado de una manera muy superficial las interioridades de colossus, podemos describirlo de una manera mas “macroscópica” o haciendo uso de un mayor nivel de abstracción. Prestando atención a los bloques principales, estos eran: Entrada de datos En la cinta rotatoria se almacenaban los patrones con los que se iban a llevar a cabo las comparaciones con el mensaje codificado. El paso de una muesca en un trozo de papel a un BIT almacenado en un registro electrónico se llevaba a cabo gracias a componentes que permitían reconocer si un haz de luz incidente sobre la cinta la atravesaba o no. Hoy en día los optoacopladores son del tamaño de una uña e incluyen hasta un diodo infrarrojo para crear el haz de luz, pero en el colossus se utilizó la válvula que aparece en la fotografía inicial de esta sección.

Ajuste de opciones e introducción del mensaje codificado

Mediante esta matriz de conectores se ajustaban parámetros relativos al proceso de desencriptado, secuencias concretas de inicio, posiciones de rotores, etc…

Con esta “maquina de escribir” se introducían los mensajes que se querían desencriptar. Además, al ser electrónica, y controlada mediante señales por el colossus, servía de interfaz de salida.

13


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

Lógica del computador Esta parte del computador permitía contar el número de coincidencias entre el mensaje a desencriptar y los patrones almacenados en la cinta rotatoria. Al ser válvulas de vacío exigían tensiones y corrientes muy elevadas para mantener su punto de trabajo, que eran suministradas por transformadores como los que aparecen en la parte inferior.

En estos otros bloques del circuito, se llevaban a cabo las comparaciones, mediante arrays de XOR’s y el almacenamiento temporal en registros de desplazamiento como el que aparece en el esquema en la parte anterior de este capítulo

En esta imagen también se puede apreciar que los transformadores eran una constante en los distintos módulos del computador colossus. Al igual que en la parte anterior, también están dispuestos en la sección inferior del bloque.

14


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

Todas las secciones del colossus que han ido apareciendo las he obtenido de esta vista global del computador:

Sobre algunas decisiones de diseño: •

La decisión de utilizar registros electrónicos para almacenar el mensaje a decodificar vino a raíz de que en la máquina precursora del Colossus, el Heat Robinson, se utilizaba una cinta para este propósito, además de para almacenar los patrones con los que llevar a cabo la comparación, y esto originaba un gran problema: la sincronización de ambas a las altas velocidades a las que tenían que estar girando.

Uno de los inconvenientes de utilizar válvulas, residía en que el tiempo desde que se encendían hasta que comenzaban a estar plenamente operativas era alto. Esto se veía compensado con el tiempo de transición de un estado a otro, que era superior al de un componente electromecánico.

15


Arquitectura de ordenadores: Aspectos humano-históricos de la computación J. A. Esparza Colosus y la criptografía usj471@usj.es __________________________________________________________________________

5.- Bibliografía y recursos consultados en la red •

“Colosus: Its Origins and Originators” B. Jack Copeland, University of Canterbury IEEE Annals of history of the History of Computing IEEE Computer Society

A history of computing in the twentieth century: The Colossus B. Randell

“Tube and transistor handbook” Radio Bulletin 1955

“Distributed system breaks World war II German code” Computer. May 2006 IEEE Computer Society

“Secretos de la segunda guerra mundial: El código Enigma” Documental de la BBC

“Héroes de la segunda guerra mundial: los hombre que descifraron enigma” Documental de la BBC

“Colosus” Wikipedia: http://es.wikipedia.org/wiki/Colossus

“Lorenz cipher machine” Wikipedia: http://en.wikipedia.org/wiki/Tunny

16


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.