Máquina Enigma en LabVIEW

La máquina Enigma era utilizada durante la Segunda Guerra Mundial para enviar mensajes cifrados que podían ser descifrados por quien tuviera otra máquina Enigma y la clave de cifrado de ese mensaje, éste por lo regular era un miembro del mismo grupo militar.

Posteriormente, Alan Turing logró mejorar el diseño de la máquina Enigma con su prototipo llamado Máquina de Turing.

En este artículo se desarrollará un programa en LabVIEW que simule el funcionamiento básico de esas máquinas, bastante sencillo en comparación con lo que ofrece una Máquina de Turing, básicamente como versión de prueba para un programa más completo y avanzado.

masterhacks_panel_maquina_enigma

Imagen #1: Panel frontal del programa.

En la imagen 1 se tiene el panel frontal del programa, donde se observa un renglón con 20 campos, diseñado para ingresar el mensaje que se quiere codificar.

Debajo existe otro conjunto de campos similar, donde aparece el mensaje ya cifrado. Se observan también tres botones principales, Encriptar, que al pulsarlo encripta el mensaje ingresado con una clave determinada. Borrar clave, que borra la clave del campo de abajo como medida de seguridad. Detener, que lógicamente detiene la ejecución del programa.

Finalmente hay otros tres botones, uno para ir a la página principal de la empresa, otro para ir a la página de Facebook y otro que muestra información sobre el programador.

Los campos donde se ingresa el mensaje y se ve el mensaje encriptado son controles e indicadores de texto, insertados en Array de veinte elementos.

La clave se visualiza en un indicador de texto.

masterhacks_maquina_turing_funcionando

Imagen #2: Programa encriptando un mensaje.

En la imagen 2 se puede observar cómo se encriptó el mensaje escrito, alterando el orden de las letras. En el campo de clave se visualiza el orden de cada campo del mensaje.

Si se da clic nuevamente en Encriptar, se obtiene otra combinación, en este caso hay tres formas posibles de encriptar el mensaje, pero se pueden crear combinaciones casi infinitas.

Ahora, hablando del diagrama de bloques, todo el programa está dentro de un ciclo while, para que al ejecutar el programa, no se detenga hasta presionar el botón de detener programa.

Para el botón de encriptar, se utiliza una estructura Case, que tiene tres casos, uno para cada combinación de cifrado.

masterhacks_random_case_enigma

Imagen #3: Uso de random para generar combinación de clave.

Se utiliza un número aleatorio que genere un número entre 0 y 3, que corresponden a cada combinación.

masterhacks_array_mensaje_cifrado

Imagen #4: Selección del orden de los elementos del array.

Se utiliza la herramienta Index Array para obtener el valor de cada elemento, y se le asigna una constante numérica a cada uno, para poder re ordenarlos de forma diferente y volver a colocar todos los campos en el mensaje cifrado por medio de un Build Array, que muestra el resultado en el indicador de Mensaje Encriptado.

masterhacks_string_orden_elementos_enigma

Imagen #5: Uso de constante de texto para la clave.

Se utiliza una constante de texto para mostrar la clave, misma que puede ser borrada con el botón del panel frontal.

masterhacks_borrado_clave_compuerta_case

Imagen #6: Código para el borrado de la clave en el indicador de texto.

Se utiliza otra estructura case para la función de borrado de clave. Como son dos botones los que se utilizan para la misma acción, se puede hacer uso de una compuerta lógica OR para afirmar que ya sea con el botón de borrado o el de paro de programa, se borre la clave, esto último colocando una constante vacía en el indicador de texto.

masterhacks_boton_pagina_facebook_labview

Imagen #7: Código de botón para ir a página web externa.

En el caso del botón para ir a la página de Facebook, se utiliza una estructura case para la función booleana del botón, cuando éste se pulsa, se abre la página de Facebook en el navegador de Internet predeterminado, esto con la herramienta URL que se encuentra en el panel de diálogo e interfaz de usuario, en la sección de ayuda, con el nombre de “Open URL in default browser”.

Para abrir el sitio web, sólo se le agrega una constante de texto con la dirección del sitio.

Lo mismo ocurre con el botón de página principal.

Para cambiar el color de los botones en el panel frontal, sólo hay que hacer clic secundario sobre estos y abrir sus propiedades para poder cambiar el color, texto, entre otras opciones más.

masterhacks_mensaje_popup_enigma

Imagen #8: Uso de mensajes PopUp.

En el caso del botón de información del autor, se utiliza un elemento para mostrar un mensaje tipo Pop Up, este se vincula al botón y con una cadena de texto se escribe el mensaje que se desea mostrar.

Vídeo demostrativo:


Únete al grupo de WhatsApp de Masterhacks para compartir ayuda, tutoriales, apps y más!
https://chat.whatsapp.com/Ch45FZaJcbxDb7WeHAOtAQ

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *