domingo, 17 de enero de 2016

Un repaso por la historia de la criptografía (I de II)

La criptografía deriva de la necesidad de realizar comunicaciones por escrito (en su origen) preservando la privacidad de la información que se transmite, y garantizando que ninguna persona que no esté autorizada, pueda leer el contenido del mensaje. 

Imagen 1 : Un repaso por la historia de la criptografía (I de II) ('The Imitation Game')

Durante toda la historía han existido multitud de ejemplos de formas diferentes pata encriptar mensajes. Por ejemplo el cifrado César (de los romanos) o los métodos que utilizaban los espartanos que datan desde hace más de 2.500 años. También podríamos mencionar el cifrado de Polybios (inventado por los griegos) y sin olvidarnos porsupuesto quizás de la máquina de encriptación más famosa de la historia: la máquina Enigma.


Escítala espartana (siglo V a. C.)


Los primeros mensajes cifrados que se conocen, datan aproximádamente del siglo V antes de Cristo, son de procedencia espartana y era un método muy sencillo y rudimentario, consistía en coger una vara (escítala), donde se enroscaba una cinta de cuero o papiro y posteriormente se escribía de forma longitudinal. 

Imagen 2 : Escítala espartana (siglo V a. C.)

En último lugar sólo habría que desenrollar la cinta, y lo que nos quedaría sería un puñado de letras sin sentido. En principio solo se podía descifrar la información con una vara del mismo diámetro que la original sobre la que se escribió (obviamente no era un cifrado tan seguro como pudiera parecer en la época, pero por aquel entonces eran muy pocos los que sabían leer o escribir).

La clave de este método radicaba principalmente en el diámetro que poseía la escítala (o simplemente cada cuantos caracteres empezaba una nueva vuelta).

En este ejemplo proporcionado por Genbeta cifraremos el siguiente texto:

Remember Hacking - Historia de la criptografía - Método usado por los espartanos

Como clave o diámetro de la escítala (n) escojeremos el número 7, es decir, en cada vuelta de la cinta enroscada en el la vara pondremos 7 caracteres. El resultado sería el siguiente:

Rkri opeiipM amnatépreg ototm dgorab-erd ne aolorHlf os iaíusHs as atc aecor-ds

Aquí tenéis el código que utilizamos en el ejemplo:

Imagen 3 : código JavaScript - Método usado por los espartanos

 

Cifrado de Polybios (siglo II a. C.)


Este sistema es el primer cifrado de la historia que funciona por sustitución de caracteres. La invención se le atribuye al antiguo historiador griego Polybios, y este sistema consiste en reemplazar un carácter por el número o letra de una columna o fila (como si estuviéramos jugando al mítico juego de hundir la flota).

Imagen 4 : Cifrado de Polybios (siglo II a. C.)

En el siguiente ejemplo utilizaremos el siguiente texto para probar este método:

Remember Hacking Historia de la criptografia Metodo usado por los griegos

Lo primero que hay que tener en cuenta es que en este método se sustituye la letra "J" por la "I". El resultado de cifrar con la tabla de la imagen (la teóricamente real) sería el siguiente: 

DBAECBAECBABAEDB BCAAACBEBDCCBB BCBDDCDDCDDBBDAA ADAE CAAA ACDBBDCEDDCDBBDBAABABDAA CBAEDDCDADCD DEDCAAADCD CECDDB CACDDC BBDBBDAEBBCDDC

Aquí tenéis el código y podéis probarlo directamente desde el siguiente enlace:
http://lab.xitrus.es/criptografia/griegos.php

Imagen 5 : Código Javascript - Cifrado de Polybios (siglo II a. C.)


Cifrado de Polybios (siglo II a. C.)



Hace más de 2100 años los romanos idearon su propio sistema de encriptación (a la altura de los anteriores) que consistía en reemplazar cada letra por otra, que es el resultado de desplazar tres posiciones hacia la derecha desde el carácter de origen en el abecedario (en la imagen de abajo se entiende a la perfección). 

Imagen 6 : El cifrador del César (siglo I a. C.)

La técnica se puede mejorar cambiando el abecedario "desplazado" por uno aleatorio por ejemplo, pero el método en principio es desplazando tres caracteres a la derecha (y para descifrarlo hacerlo al contrario, a la izquierda). Este método también podría admitir los espacios, que se añadirían como un carácter más, o de no usarse se omitirían. 

Como ya hemos hecho antes cifraremos el siguiente texto (contaremos con los espacios):

Remember Hacking Historia de la criptografia Metodo usado por los romanos

Nos devolvería el resultado siguiente:

cuhphpehuckdfnlqjcklvwruldcghcodcfulswrjudildcphwrgrcxvdgrcsrucorvcurpdqrv

En último lugar y para terminar aquí tenéis este otro ejemplo funcional con el sistema de cifrado del César, que admite distinto número de desplazamiento (n), ya sea positivo o negativo (si lo encriptamos con n=3 debemos de desencriptarlo con n=-3)

Imagen 7 : Código Javascript - El cifrador del César (siglo I a. C.)

Esta función nos sirve para cifrar y descifrar (solo tenemos que restar el desplazamiento) y necesita los siguientes argumentos: cesar([Texto],[Entero: desplazamiento],[Booleano: con o sin espacios]).

Esto ha sido solo una pequeña introducción a la criptografía y su gran historia, en la próxima parte veremos los tipos de cifrado modernos que se utilizan hoy en día y sus principales características.




Fuente: www.genbetadev.com

No hay comentarios:

Publicar un comentario