Arqueología Informática: La Criptografía Clásica Con Scratch

Arqueología Informática: La Criptografía Clásica con Scratch

Le Danny Yang

Sección creada por Le Danny Yang. Realizaremos un viaje histórico comenzando desde la antigua Grecia con la denominada Escítala espartana (siglo V a. C.) hasta la actualidad pasando por el cifrado de Polibio (siglo II a. C.), el conocido cifrado del emperador Julio César (siglo I a. C) y finalizando con León Battista Alberti , creador del disco de Alberti (1466-1467). El objetivo de este trabajo tiene como finalidad que los usuarios puedan aprender el funcionamiento de estos cifrados. Posteriormente, añadiremos un pequeño programa donde se simula un ataque mediante fuerza bruta, una técnica del criptoanálisis muy usado actualmente.

Los cifrados han sido implementados a través del lenguaje de programación Scratch. Anteriormente, se ha cursado la asignatura de Criptografía para poder llevar a cabo la creación de los programas. Dentro de la comunidad de Scratch, cualquier usuario puede empezar a compartir sus proyectos con otros mediante las diversas funcionalidades que nos ofrece.

Escítala espartana

Historia

Los primeros mensajes encriptados datan del siglo V a. C, con procedencia espartana. La escítala espartana fue mencionado por primera vez por un poeta griego, Archilochus, quien vivió en el siglo 7 a. C. El método de cifrado consistía en escoger una vara o escítala, de ahí su nombre, y se enrollaba una cinta a lo largo de la vara. El emisor escribía horizontalmente sobre la vara y al desenrollar la cinta se creaba un mensaje oculto. La clave para descifrar el mensaje es escoger una vara con el mismo diámetro para que una vez enrollada la cinta por parte del emisor se pudiera leer el mensaje. En caso contrario, el texto continuaría ilegible.

Objetivo

Este programa tiene como fin que el usuario adquiera un conocimiento básico sobre el funcionamiento de la escítala espartana. A continuación se muestra el cifrado en Scratch.

Instrucciones

  1. Presionar la bandera verde para comenzar a cifrar y el botón rojo para terminar.
  2. Pulsar “Comenzar”, a continuación se puede elegir el tamaño de la vara (se modificará el número de columnas).
    1. Pulsar “Cifrar” para escribir el texto que se quiera encriptar.
    2. Pulsar “Descifrar” si se desea desencriptar un mensaje encriptado.
    3. (Opcional) Rotar la vara mediante los botones que están situados al lado de la escítala.
  3. Pulsar “Instrucciones” para saber el funcionamiento del programa.
  4. Pulsar “Historia” para conocer la historia de la escítala espartana.

Para acceder a la página en la web de Scratch pinche el siguiente enlace –> Escítala espartana

Cifrado de Polibio

Historia

Este cifrado fue creado por el historiador griego, Polibio, en el siglo II antes de Cristo. Polibio ideó este sistema para poder transmitir mensajes ocultos a larga distancia mediantes señales
ópticas y acústicas. Por ello, el emisor y receptor tendrán que haber acordado una clave que en este caso será una matriz 5×5 omitiendo un carácter del alfabeto. Un caso práctico de este cifrado se dió en el siglo XIX-XX por los nihilistas rusos encerrados en las prisiones rusas.

Se trata de un cifrado trivial donde cada carácter se corresponde a una fila y columna de la matriz. Es un caso particular de un sistema de transposición mono-alfabética por lo que un análisis de frecuencias sería más que suficiente para desvelar el mensaje oculto.

Objetivo

La meta principal de este programa es que el usuario conozca de primera mano el funcionamiento del cifrado, también conocido como tablero de Polibio.

Instrucciones

  1. Presionar la bandera verde para comenzar a cifrar y el botón rojo para terminar.
  2. Pulsar “Comenzar”, a continuación seleccione qué desea hacer: cifrar o descifrar.
    1. Presionar sobre el botón “Comenzar” de la nueva pantalla para cifrar o descifrar (según el modo escogido).
  3. Pulsar “Instrucciones” para ver las instrucciones del cifrado.
  4. Pulsar “Historia” para conocer la historia.

Para acceder a la página en la web de Scratch pinche el siguiente enlace –> Cifrado de Polibio

Cifrado de César

Historia

En el siglo I a. C. los romanos idearon su propio sistema de cifrado que consistía en desplazar los carácteres del alfabeto tres posiciones a la derecha (para desencriptar bastará con realizar el proceso inverso). Por otra parte, para mejorar el sistema de los romanos, el desplazamiento se podría cambiar por un número aleatorio, lo que se conoce como la clave del cifrado.

En dicha época, el emperador Cayo Julio César usaba este cifrado para dar órdenes a sus generales en el campo de batalla.

Objetivo

Presentar y enseñar a los usuarios uno de los cifrados más conocidos de la historia, el cifrado de César.

Instrucciones

  1. Presionar la bandera verde para comenzar a cifrar y el botón rojo para terminar.
  2. Pulsar “Cifrar” para encriptar un mensaje (longitud máxima 20 carácteres).
  3. Pulsar “Descifrar” para desencriptar un criptograma (longitud máxima 20 carácteres).
  4. Pulsar “Instrucciones” para ver el funcionamiento del programa y una breve explicación del cifrado.
  5. Pulsar “Historia” para conocer una pequeña parte de la historia de la criptografía.

Para acceder a la página en la web de Scratch pinche el siguiente enlace –> Cifrado de César

Disco de Alberti

Historia

León Battista Alberti fue un artista, arquitecto, poeta, lingüista, filósofo y criptógrafo italiano nacido en Génova, Italia. En el año 1466 es cuando realizaría su primera aportación
a la historia de la criptografía, el disco de Alberti.

El disco de Alberti (cipher wheel en inglés) es considerado como el primer sistema polialfabético de la historia, es decir, un sistema polialfabético significa que un mismo carácter se sustituye
cada vez por otro carácter distinto siguiendo un cierto criterio de codificación. Esto lo que provoca, es que sea inmune a los ataques mediante análisis de frecuencias ya que si por ejemplo realizamos el conteo de cuántas veces aparece el carácter ‘a’ en el criptograma, dicho carácter del mensaje original podría ser perfectamente cualquiera de los otros carácteres del alfabeto.

Objetivo

El cometido de este programa es para que el usuario se familiarice con otros tipos de cifrado como es el caso de un sistema polialfabético.

Instrucciones

  1. Presionar la bandera verde para comenzar el cifrado y el botón rojo para terminar.
  2. Pulsar “Comenzar”, a continuación podra cifrar y descifrar un mensaje, para ello:
    1. Escoja el modo que desee: cifrado o descifrado.
    2. Pulse el botón “Comenzar” de la nueva pantalla.
    3. Introduzca el mensaje a encriptar
    4. Introduzca el periodo del cifrado
    5. Introduzca el incremento del cifrado
    6. Rote el disco mediante las teclas direccionales para establecer una configuración inicial y pulse “Espacio” para finalizar.
  3. Pulsar “Instrucciones” para ver las instrucciones del cifrado
  4. Pulsar “Historia” para conocer la historia de dicho cifrado

Para acceder a la página en la web de Scratch pinche el siguiente enlace –> Disco de Alberti

Ataque por fuerza bruta

¿Qué es un ataque mediante fuerza bruta?

Se trata de una de las muchas técnica del criptoanálisis, la criptoanálisis se dedica al estudio de los sistemas criptográficos con el fin de hallar debilidades en los cifrados y de esta manera
descifrar el mensaje sin el conocimiento previo de la clave del cifrado. La criptoanálisis ha ido cambiando a lo largo de los años y adaptándose a cualquier complejidad comenzando por
cifrados simple como puede ser el cifrado de César y pasando por la máquina Enigma, usada por los nazis en la Segunda Guerra Mundial hasta la actualidad con el algoritmo AES (Advanced Encryption Standard).

Dicha técnica consiste en probar todas las combinaciones posibles hasta hallar el mensaje cifrado.

En el siguiente programa se podrá ver cuánto tiempo se tarda en romper una contraseña de 8 dígitos.

Objetivo

El usuario deberá introducir diferentes contraseñas en el programa y comparar los tiempos que se tarda en romper cada contraseña. Tiene como fin que el usuario se de cuenta de la
facilidad que hay para “hackear” contraseñas con una longitud escasa.

Instrucciones

  1. Presionar la bandera verde para comenzar y el botón rojo para terminar.
  2. Pulsar “Comenzar” , a continuación:
    1. Pulse el botón “Empezar”
    2. Introduzca ocho carácteres numéricos (es posible empezar por el cero)
    3. Espere a que el programa procese la información
  3. Pulsar “Instrucciones” para ver las instrucciones
  4. Pulsar “¿Qué es?” para ver una breve explicación de la técnica criptográfica

Para acceder a la página en la web de Scratch pinche el siguiente enlace –> Ataque por fuerza bruta

Notas

Todos los cifrados han sido creados desde cero con Scratch.

Creador: Le Danny Yang

Tutor: Xavier Molero Prieto