Criptografía: Cifrado por sustitución II

Seguimos con la criptografía, y más concretamente con más algoritmos de cifrado por sustitución.

Cifrado de Vigènere

Se escoge una clave que usaremos para que al cifrar el mensaje cada letra tenga un diferente cifrado, así evitamos la repetición de carácteres en el criptograma.

Así, se usa una clave que en realidad es un trozo de texto, puede ser cualquier palabra o conjuntos de letras desordenado, por ejemplo GATO, siempre es mejor coger una clave más corta que el mensaje a cifrar.

Y se realiza el siguiente método:

Mensaje: AUTOESCUELA
Clave: GATO

Se van asignando los carácteres uno a uno del mensaje a la clave formando pares de carácter del mensaje y carácter de la clave, si llegamos al final de la clave se empieza de nuevo por el primer carácter de ésta o se puede usar el mensaje (lo explicaré más detalladamente después), de modo que tendríamos:

(A, G) (U, A), (T, T), (O, O), (E, G), (S, A), ….

Ahora vamos a usar una tabla, llamada la tabla de Vigenère (¿a qué no os lo esperabáis?), al igual que se hacía en el cifrado Polybios, para cifrar cada par de carácteres anterior. De modo que tenemos:

(A, G) = G
(U, A) = U
(T, T) = M
(O, O) = C
….

Y el mensaje cifrado es: GUMCKSVJKLT

Como decía anteriormente, se puede usar una versión un tanto diferente de este cifrado que se basa en un método llamado autoclave, este método consiste en que si alguna vez llegamos al fin de la clave no pasaríamos al principio de ésta, en su lugar usaríamos el mensaje que tengamos como clave. Así con el ejemplo anterior, tendríamos:

(A, G) (U, A), (T, T), (O, O), En lugar de comenzar la clave de nuevo usaríamos el mensaje. (E, A), (S, U), ….

Corregido gracias a Papá Oso

Para descifrar, se haría completamente al revés, cogiendo carácter a carácter del mensaje cifrado y con la clave buscando la posición que ocupe en la tabla dicho par.

(Más información en Wikipedia en inglés)

Cifrado Playfair

Cifrado de poligramas (bloques de carácteres) que se cifran como un único carácter. Para ello se construye una matriz y se siguen unas reglas:

  • Para los carácteres en la misma fila/columna se cogen los siguientes hacía la derecha/abajo.

  • Para los carácteres en distintia fila/columna se cogen los unidos por la diagonal opuesta a la formada por los primeros.

  • Si hay dos carácteres iguales seguidos, se mete entre medios un carácter de relleno. Normalmente, uno poco usado, como Ñ, X, Y.

Aunque ahora mismo no entendáis las reglas no pasa nada, ahora os pasaré a explicar todo detalladamente.

Lo primero como siempre es saber la clave a usar , en este caso vuelve a ser una matriz de 5×5 que se creará a partir de una palabra o conjuntos de caracteres que queramos. La matriz se crea poniendo la clave en la primera fila y rellando el resto con el orden del alfabeto que usemos quitando los carácteres usados en la clave.

Por ejemplo, tomamos como clave: TRES

La matriz sería:

T R E S A
B C D F G
H I J K L
M N O P U
V W X Y Z

Ahora tenemos que tener un mensaje, por ejemplo: LA PIZARRA

Y ahora tomamos pares de carácteres del mensaje, llamados poligramas, como “LA”, “PI”, “ZA”, “RR” como son iguales añadimos uno de relleno (3a regla) “RX”, “RA”. Y pasamos a cifrar usando las reglas, para cifrar buscamos los pares de carácteres en la matriz y una vez localizados aplicamos la regla que toque.

Por ejemplo: Para “LA” tendríamos que la “L” y la “A” están en la misma columna (1a regla), por lo que cogemos los carácteres de debajo, para la “L” la “U” y para la “A” la “G”. Ahora “PI”, están en diferentes columna y fila (2a regla), por lo que cogemos los carácteres de la diagonal contraria a la formada por ellos, para la “P” la “N” y para la “I” la “K”.

Para descifrar realizamos las reglas a la inversa con el mensaje cifrado y la matriz.

Para mis queridos frikis de la criptografía, quería decir que este algoritmo fue el usado por los británicos en la primera guerra mundial y por los australianos en la segunda.

(Más informació en Wikipedia en inglés)
(Cifrar mediante Playfair en JavaScript)

Cifrado Hill

Y como este blog es matemático, no podía faltar un cifrado que se base en algo matemático. Este es un cifrado poligráfico que usa como clave una matriz cuadrado y su inversa para descifrar.

Además se tiene la posibilidad de usar dos cifrados diferentes, el cifrado Hill con clave por la derecha:

Ci = mi · K
mi = Ci · K-1

(Donde mi es el carácter “i” del mensaje, Ci es el carácter “i” del mensaje cifrado y K es la clave)

Cifrado Hill con clave por la izquierda:

Ci = K · mi
mi = K-1 · Ci

Para realizar este cifrado, primero debemos transformar el mensaje en un vector de números, y que mejor manera que usando las posiciones que ocupan en el alfabeto como resultado, también se pueden usar otras equivalencias dando mayor seguridad a este algoritmo.

Por ejemplo: HOY = [7 15 25]

Después se pasaría a cifrar, con una matriz de unos y ceros que sería la clave, y obviamente esta matriz tiene que ser reversible.

Un cifrado muy sencillito y matemático.

Post anterior: Cifrado por sustitución I

Share

Sin comentarios

  1. Lek | 3 de noviembre de 2006 | 14:32

    Vótalo Thumb up 0

    Playfair… supongo que cifrado de “fair play” (juego limpio) xDDD

  2. Enric | 3 de noviembre de 2006 | 18:05

    Vótalo Thumb up 0

    (T, T) = M, no?
    y…
    (O, O) = C, no?

  3. neok | 3 de noviembre de 2006 | 18:11

    Vótalo Thumb up 0

    Enric correcto.

  4. Papá Oso | 4 de noviembre de 2006 | 13:21

    Vótalo Thumb up 0

    Alarma, alarma!!!!

    En el cifrado por autoclave no se usa el mensaje cifrada como clave, se usa el mensaje sin cifrar como clave. Lo que vas a enviar es el mensaje cifrado y si lo usas como clave a partir de (pongamos) la cuarta letra un criptoanalista paciente podría leer todo el texto a partir de esa (pongamos) cuarta letra!

    Por el contrario si usas la palabra sin cifrar el criptoanalista nunca debería saber que clave estás usando.

  5. neok | 4 de noviembre de 2006 | 14:38

    Vótalo Thumb up 0

    Papá Oso tienes razón, creo que la cagué.

  6. Trackback | 23 nov, 2006

    Gaussianos » Criptografía: Otros cifrados

  7. patrulla antifrikidad | 7 de enero de 2007 | 18:11

    Vótalo Thumb up 0

    como se puede llegar a ser tan frikiiiiiiiiii!!!!!k alguien me lo explike!

  8. Yrekthelas | 29 de enero de 2007 | 14:09

    Vótalo Thumb up 0

    Solo un comentario sobre la tabla de Vigènere.
    Aunque es muy comodo tirar de tabla a la hora de encriptar, de hecho se puede hacer sin tabla.

    Siendo A el 0, numeras las letras, y para A,G haces A+G (mod26)

    Bueno, 26 o el numero de letras que tenga tu alfabeto.
    Podeis comprovar que la tabla se crea asi, pero esto además os permite crear tablas para qualquier otro alfabeto.
    Además, es facil realizar el cifrado sin tener tabla alguna, de hecho solo tienes que sumar.

Escribe un comentario

Puedes utilizar código LaTeX para insertar fórmulas en los comentarios. Sólo tienes que escribir
[latex]código-latex-que-quieras-insertar[/latex]
o
$latex código-latex-que-quieras-insertar$.

Si tienes alguna duda sobre cómo escribir algún símbolo puede ayudarte la Wikipedia. Utiliza la Vista Previa antes de publicar tu comentario para asegurarte de que las fórmulas están correctamente escritas.