JCrypTool

Aunque la criptografía no es un tema del que solemos tocar, hoy queremos hablar sobre una herramienta de criptografía que conocimos hace poco y que consideramos muy didáctica, JCrypTool (JCT).  Es una herramienta muy completa que sirve para aprender el funcionamiento de los JCrypTooldistintos algoritmos de cifrado.

Como ellos mismos se consideran en su página web, son una plataforma de e-learning criptográfico. Con esta aplicación se pretende que los complejos conceptos matemáticos de la criptografía se vean de una manera más sencilla y visual, de forma que entendamos como se calculan los cifrados que utilizamos diariamente en nuestras comunicaciones, de forma que entendamos su complejidas y robustez. JCT tiene una comunidad encargada de desarrollar nuevos algoritmos de manera que la herramienta sea cada vez más completa y pueda servir con más métodos de cifrado.

La aplicación te permite elegir entre realizar una ejecución gráfica en la que puedes ir viendo paso a paso que funciones matemáticas se están ejecutando y cuáles son los resultados obtenidos, o realizar una ejecución directa en la que se tiene el resultado final.

En nuestro caso,  vamos a introducir la herramienta con un caso de resolución directo. Para ello en primer lugar vamos a realizar la instalación en nuestro equipo habitual, una vez bajado el fichero DMZ de la página oficial. JCrypTool está disponible también para Linux y Windows.

welcome_page_english
La instalación de la aplicación es muy sencilla, lo único que necesita es que tengamos Java Runtime Environment (JRE) actualizado para evitar problemas a la hora de cargar las librerías que utiliza la aplicación.

Una vez instalado, tendremos unas ventanas de presentación de la herramienta.

En nuestro caso, para ver como funciona la herramienta, vamos a hacer un par de ejemplos de prueba, el primero va a ser cifrar un documento con el algoritmo de cifrado César (Caesar en la aplicación) Pero como podemos ver en la siguiente captura, nos permite un gran número de algoritmos, entre los que se encuentran AES, SHA1 y RSA.

Captura de pantalla 2015-01-20 a la(s) 19.53.31
El caso de prueba que vamos a hacer hoy es en modo directo con César. Para ello, hay que crear el fichero dónde se incluirá el texto que queremos crifrar. Podemos elegir un fichero de nuestro equipo, o podemos crearlo directamente en el editor de JCrypTools, a partir de la opción Entryfile in textEeditor.

Captura de pantalla 2015-01-20 a la(s) 20.20.29

En el documento de texto que aparece en el medio de la captura de pantalla, introducimos nuestro texto, lo guardamos con un nombre que lo identifique, respetando la extensión .txt. Si utilizásemos un formato de texto enriquecido, los resultados no serían los esperados. En este caso a nuestro fichero lo hemos nombrado input_wh0s.txt y contiene nuestro texto plano.

Una vez guardado el texto, vamos a la opción algoritmos, vamos a clásicos y seleccionamos Caesar.

Aquí seleccionamos nuestra clave, que en nuestro ejemplo es w, elegimos nuestro alfabeto,Printable ASCII, y activamos las opciones “Filter non‐alphabet carácter from…” y “Apply alphabet‐fitting text transfomration first”. Le damos a siguiente, y desactivamos las opciones que vienen por defecto.

Con esto, ya tendríamos nuestro algoritmo configurado, por lo que en el momento en el que le demos a Finish,  obtenemos el fichero resultado out.txt, con el texto siguiente:

5^x`bhY]_cxTQcx_cx`bUcU^dQbU]_cxQx^eUcdb_x^eUf_x\_W_üxJUb_üxUc`UbU]_cxaeUx_cxWecdU

Para comprobar que texto hemos introducido, tenéis que seguir los mismos pasos con el texto de nuestro fichero out.txt. En primer lugar seleccionamos el algoritmo César, damos a la opción Decrypt, escogemos ASCII como nuestro alfabeto y ponemos w como nuestra palabra clave.  Al hacer este proceso obtendréis un nuevo fichero con nuestro mensaje en claro.

El método de cifrado César es muy sencillo, por lo que con él no se saca todo el partido a la JCryptTool, pero nos permite hacernos una idea de como funciona y dar una primicia de manera secreta 🙂

En un próximo post, explicaremos como funciona RSA y nos apoyaremos en el modo visual de JCrypTool para poder ir viendo paso a paso que se calcula y cómo se calcula.

Deja un comentario

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