Turing's Bomb Emulator en Raspberry Pi y Arduino

" Enigma ": una serie de máquinas de cifrado de rotor electromecánico alemanas, que se han utilizado desde los años veinte del siglo pasado. Incluyendo el tiempo de transmisión activa de mensajes cifrados en Enigma cae durante la Segunda Guerra Mundial. En este sentido, ha aparecido un enorme valor práctico para romper el cifrado de Enigma.

Para hackear códigos de Enigma, la Oficina de cifrado de Polonia desarrolló una bomba criptológica, que se utilizó para hackear mensajes. En total, se crearon seis máquinas para seis combinaciones de rotores, que tenían un alcance limitado debido a la especificidad de las condiciones para un mensaje cifrado. Las máquinas rápidamente perdieron su significado con la introducción de nuevos rotores, y el lado polaco no tenía los recursos para crear 54 "bombas" más. Después de eso tuve que volver a los métodos manuales.hojas de Zygalsky . Basado en los desarrollos polacos , se creó un Bombe más avanzado , una máquina electromecánica, que a menudo se asocia con la personalidad de Alan Turing. En total, se construyeron alrededor de un millón y medio de "bombas" británicas. Después del final de la Segunda Guerra Mundial, casi todas las bombas fueron destruidas por razones de secreto.

Aunque hay documentación sobre el dispositivo en libre circulación, los intentos exitosos de recrear la bomba se pueden contar con los dedos de una mano. Esto, por ejemplo, es una reconstrucción viable del Proyecto de reconstrucción de Bombe de un equipo de aficionados dirigido por John Harper. La réplica tardó 13 años en crearse. Ayer en la red publicó su proyecto mucho más modestoaficionado de Nueva Zelanda. Este es un emulador de tres rotores. En la verdadera "Bomba" había 26 triples interconectados.

Enigma usó un cifrado polialfabético , el ejemplo más famoso de los cuales es el cifrado Viginer . Podemos describir brevemente el principio de operación del cifrado como el cifrado dinámico de César, en el que la profundidad del cambio cambia de acuerdo con cierto algoritmo. Los corazones del Enigma son tres rotores, aunque más tarde se crearon cuatro copias. En cada uno de los rotores en ambos lados hay 26 contactos correspondientes a las letras del alfabeto. Las conexiones eléctricas de las pistas entre los contactos no van en línea recta, difieren de un rotor a otro. Los rotores se pueden quitar, cambiar su ubicación o insertar otros rotores del conjunto. Desde enero de 1939, en las fuerzas terrestres y la aviación, el conjunto constaba de 5 rotores, que daban 60 combinaciones, y en la flota - 8 (336 combinaciones).



Una medida adicional es el uso de un panel de conexiones. Las conexiones eléctricas con cables en el panel frontal de la máquina le permiten cambiar las letras en pares: A puede convertirse en R, y R en este caso se convertirá en A. Para leer el mensaje, debe conocer la posición de los rotores en el eje, qué rotores y reflectores del conjunto se usaron, el código de cifrado (3 caracteres latinos alfabeto) y la posición de los cables en el panel de conexiones. En algunas versiones, se introdujeron otras medidas: el reflector también giraba, se usaba un mayor número de rotores, y así sucesivamente.



Después de presionar la tecla, la corriente pasó a través de los caminos eléctricos desde la tecla, a través de los contactos en el panel de conexión, a través de tres rotores con diferentes posiciones de las pistas, regresó a través del reflector y nuevamente a través de tres rotores. Luego se encendió una luz en el panel con la letra correspondiente del cifrado. Al menos un rotor hizo un movimiento, cambiando la combinación para cifrar la siguiente letra. Los rotores giraron como un segundo, minuto y en el sentido de las agujas del reloj en un reloj mecánico: un rotor derecho rápido hizo una revolución completa, y luego una revolución de 1/26 hizo una media. Después de una vuelta completa del medio, la vuelta de 1/26 giró a la izquierda más lenta.

La bomba ayudó a establecer las posibles configuraciones de Enigm en las fuerzas alemanas. Ella no dio mensajes confeccionados. Para completar el trabajo se requería todo el mismo trabajo manual. Las "bombas" ayudaron a reducir el número de posibles soluciones a un proceso aceptable y asequible.

Para descifrar los mensajes, se requerían las llamadas "sugerencias". Se llevó a cabo un conocido ataque de texto sin formato: se verificó el texto cifrado para ver si existía la posibilidad de contener palabras y frases conocidas. Encontrar "pistas" requería conocimiento de la jerga militar alemana y el estilo de comunicación de los operadores de telecomunicaciones. El diseño del reflector desempeñaba un papel importante: la letra nunca podría cifrarse en sí misma. Después de elegir una pista, se compiló el llamado "menú", un programa para encontrar posibles soluciones. La ejecución del "menú" fue interrumpida por paradas con soluciones candidatas, que luego fueron verificadas. Por lo general, hubo muchas paradas con las decisiones equivocadas antes de encontrar la correcta.

Un aficionado de Nueva Zelanda recreó la bomba. Sería más exacto decir que recreó el emulador de uno de los 26 bloques de la máquina de descifrado. El dispositivo creado es compacto, se puede poner sobre la mesa. Los cálculos se realizan en la Raspberry Pi 2. El dispositivo ni siquiera lo oculta: el resultado se muestra hasta el final del movimiento de los rotores. Tres tambores del mismo color (en el original tenían colores especiales para la tarea a realizar) rotan puramente para lograr un efecto cosmético. Pero lo hacen de manera muy convincente y a la misma velocidad que el original. El proceso es agradable de ver.


El video comienza el mismo "menú" con un informe sobre el clima, que se utilizó para demostrar la verdadera "Bomba". Es fácil entender por qué: está claro.

El proyecto fue asistido por el líder del equipo para crear una réplica completa de John Harper y varios otros expertos. Antes de esto, el aficionado creó un reloj bomba , una versión completamente funcional de la máquina de pirateo Enigma, que se puede usar en la muñeca.



Dentro de la bomba de escritorio, hay una placa Raspeberry Pi 2, Arduino, una batería de plomo-ácido de 12 voltios y un voltímetro. El emulador consume mucha energía y extrae fácilmente 1.5-2 amperios cada uno. Inicialmente, el software para el trabajo fue escrito en Basic, pero luego fue portado a C ++. El Raspberry Pi 2 se conecta al Arduino y controla tres motores paso a paso. Arduino le dice a Raspeberry Pi 2 la posición de los motores como una serie de pulsos para que puedan detenerse en el momento adecuado. En el lateral hay una pantalla de cristal líquido, que desempeña el papel de un indicador mecánico de la "Bomba" original. Los botones de inicio e interrupción se encuentran en la parte frontal como una muestra real.



La caja está hecha de acero con un grosor de 0,8 mm y los tambores a escala 3/4, de latas comunes. Todas las partes del dispositivo están hechas a mano. El peso es de unos 10 kilogramos. Los archivos del "menú" se cargan desde una unidad flash, que se puede insertar abriendo la tapa en la parte posterior. También en el lateral hay un puerto de red para monitorear el emulador, está cerrado por una tapa. En funcionamiento, el dispositivo hace ruido con los motores, incluso si el volumen no se puede comparar con el ruido de una verdadera "bomba" .

El autor se compromete a publicar el código fuente del programa del dispositivo, aunque sin el hardware que existe en una sola copia, no hay nada para ejecutarlo. Queda por desear que el autor no traiga su creación a la escuela y, más aún, que no explique en el arresto de qué se trata.

Página del proyecto con fotos
Simulador de bombas en línea de Turing

Source: https://habr.com/ru/post/es384917/


All Articles