lunes, 26 de octubre de 2015

Criptografía

Cifrados clásicos

El cifrado de Alberti es el método de cifrado descrito por Leon Battista Alberti en su tratado 'De Cifris' en 1466. Constituye el primero cifrado por sustituciónpolialfabético conocido. El modo en el que se cambiaba de alfabeto no era periódico (a diferencia de otros cifrados posteriores como el de Vigenère. Para facilitar el proceso de cifrado/descifrado propone unos artilugios conocidos como 'discos de Alberti'.

Discos de Alberti

Figura 1:Disco de Alberti
Los discos de Alberti son artilugios que sirven de herramienta para realizar el cifrado de Alberti. Estos discos consisten en un armazón fijo en el que está grabado un alfabeto latín convencional ordenado y al final están las cifras 1, 2, 3 y 4. Unido a él por una pieza circular concéntrica y móvil con otro alfabeto grabado de forma que este círculo podía moverse con respecto al otro. De esta forma el usuario puede, mediante un giro del anillo móvil, emparejar el alfabeto del círculo de arriba con tantos alfabetos del círculo de abajo como giros distintos del anillo dé, hasta un máximo igual a los caracteres del alfabeto empleado.
El anillo fijo tiene 24 celdas iguales y en cada una de ellas hay grabada un símbolo del alfabeto latino en letras mayúsculas en el orden habitual. A continuación están los número 1, 2, 3, 4 por este orden. Este alfabeto se usará para el texto en claro
El anillo móvil tiene 24 celdas iguales y en cada una de ellas hay grabada un símbolo del alfabeto latino en minúscula o los símbolos '&', 'y', 'k' y 'y'. El orden de las celdas puede ser cualquiera. Este alfabeto se usará para el texto cifrado.
Por tanto la el número de alfabeto distintos usables para un disco de Alberti determinado es de 24.

Código de recifrado y caracteres nulos

En el anillo fijo (el del alfabeto del texto en claro) aparecen las cifras del 1 al 4. Alberti aprovecha todas las combinaciones de de 2, 3 y 4 cifras de estos números (336=4^2+4^3+4^4 grupos) para poder establecer un código y así aumentar la seguridad del sistema. A este código se le llama código de recifrado (y en ingléssuperencipherment). Para aprovechar esta potencialidad tanto el receptor como el emisor deben compartir un libro de códigos que indique el significado del cada código usado. En este libro de códigos estarían aquellas palabras o frases de especial trascendencia en el ámbito de uso del cifrado, y por tanto a las que hay que dar mayor seguridad. Por ejemplo el libro de códigos podría atribuir al código '21' el significado 'Lanzar ataque' y al código '23' asignar el significado 'Replegarse'.
Por otro lado las cifras son introducidas para despistar y serán descartados cuando el receptor realice el descifrado. Por eso se dice que son caracteres nulos.

Algoritmo de cifrado/descifrado

La clave del sistema viene definida por el orden de los símbolos en el anillo móvil y por la situación inicial relativa de los dos anillos. Para descifrar el receptor tiene que realizar operaciones inversas a las que realiza el que cifra. Para ello los giros que hay que ir realizando en el anillo móvil se indican en el texto cifrado siguiendo cierto convenio que el que descifra tiene que ir siguiendo. Hay 2 algoritmos para cifrar. Para explicarlos veamos un ejemplo de aplicación de ambos.

Ejemplo

Texto plano

Texto plano original: “La guerra si farà ...”

Preprocesado

Para adaptar el texto plano a las posibilidades de nuestro cifrador es necesario realizar un proceso de preprocesado. En este proceso convertimos al alfabeto del texto plano, aplicamos el código de recifrado (en este caso vamos a suponer que el libro de códigos no es aplicable) y si es necesario usamos caracteres nulos.
En un primer paso pasamos obtenemos el texto plano: 'LAGVERRASIFARA' Vemos que la R doble puede producir problemas y entonces podemos considerar dos estrategias: eliminarla o introducir un carácter nulo. Con la primera estrategia obtendremos 'LAGVERASIFARA' y con la segunda 'LAGVER2RASIFARA'.

Cifrado

Vamos a usar uno de los dos textos obtenido en el preprocesado para cifrar en cada uno de los algoritmos de cifrado.
Primer método de cifrado
Texto a cifrar : 'LAGVER2RASIFARA'.
Clave:
El orden del disco móvil es 'gklnprtuz&xysomqihfdbace'
Se elige una letra del disco móvil como índice, únicamente conocido por el emisor y el receptor. Supongamos que es la 'g'.
Se hace coincidir la 'g' con la letra del disco móvil que queramos, por ejemplo la 'A'. Por tanto los discos quedan así:
ABCDEFGILMNOPQRSTVXZ1234 Anillo fijo
gklnprtuz&xysomqihfdbace Anillo móvil
El mensaje cifrado comenzará con la letra 'A' elegida para indicar como están los discos y se continúa sustituyendo hasta que se decide girar el disco. En ese momento se vuelve a poner la letra que coincide con la 'g' y vuelta a empezar. Por tanto si ciframos con la posición anterior de los discos hasta que pasamos a cifrar la letra 'S' y ahí cambiamos giramos y ponemos la 'g' en la 'Q' obtenemos el texto cifrado:
_LAGVER2RA_SIFARA texto a cifrar
AzgthpmamgQlfiyky texto cifrado
Observar que cuando realizó el giro los discos quedan en la posición relativa:
QRSTVXZ1234ABCDEFGILMNOP Anillo fijo
gklnprtuz&xysomqihfdbace Anillo móvil
Segundo método de cifrado
Texto a cifrar : 'LAGVERASIFARA'.
Clave:
El orden del disco móvil es gklnprtuz&xysomqihfdbace
Se elige una letra del disco fijo como índice, únicamente conocido por el emisor y el receptor. Supongamos que es la letra 'A'
Se hace coincidir la 'A' con la letra del disco móvil que queramos, por ejemplo la 'm'. Por tanto los discos quedan así:
ABCDEFGILMNOPQRSTVXZ1234 Anillo fijo
mqihfdbacegklnprtuz&xyso Anillo móvil
El mensaje cifrado comenzará con la letra 'm' elegida para indicar como están los discos y se continúa sustituyendo hasta que se decide girar el disco. En ese momento se cifra el número '3' que indicará al receptor que hay que mover el anillo. El anillo se moverá de tal forma que el resultado de cifrar el '3' sea alineado con nuestra clave.
Por tanto si queremos móvil el anillo móvil en la letra 'S' lo que tenemos que cifrar es 'LAGVERA3SIFARA'. Por tanto el mensaje cifrado quedará:
_LAGVERA3SIFARA texto a cifrar
mcmbufpmsndhsls texto cifrado
Observar que cuando realizó el giro los discos quedan en la posición relativa:
ABCDEFGILMNOPQRSTVXZ1234 Anillo fijo
somqihfdbacegklnprtuz&xy Anillo móvil




















El cifrado de Playfair es un ejemplo de sustitución digrámica, donde un par de letras de un texto en claro (mensaje sin codificar) se convierten en otro par distinto, para de esta forma codificar información que no deseamos sea leída.

Creación de la matriz de cifrado

En esta sustitución digrámica, la clave viene dada por una matriz de cifrado de 5x5 caracteres (sin las letras J ni Ñ). Para empezar, colocamos en la primera fila de la matriz la palabra clave sin letras repetidas.
Ejemplo:
Clave: NORIA
Matriz de cifrado resultante:
                             N O R I A
                             B C D E F
                             G H K L M
                             P Q S T U
                             V W X Y Z

Cifrado de un texto

Reglas para cifrar 2 caracteres m1 m2:
  1. Si m1 y m2 se encuentran en la misma fila, escoger c1 y c2 situados a su derecha (circularmente)
  2. Si m1 y m2 se encuentran en la misma columna, escoger c1 y c2 situados debajo (circularmente)
  3. Si m1 y m2 se encuentran en distintas filas y columnas, escoger c1 y c2 situados en la diagonal opuesta
  4. Si m1 = m2, insertar carácter sin significado entre m1 y m2 para evitar su repetición, y después aplicar las reglas 1-3
  5. Si el número de letras es impar, añadir una sin significado al final del texto
Por ejemplo, en este texto en claro: AT AQ UE CE RO HO RA SX pondremos X al final, porque al tener el texto un número de letras impar, se requiere una letra sin significado, de relleno, para volver a la paridad. También podrían ponerse letras sin significado al final de cada palabra para evitar confusiones o hacer más claro el texto resultante.
Criptograma resultante: IU OU TF DF IR QC IN XR
En la película La Búsqueda 2, protagonizada por Nicolas Cage, se observa un ejemplo de la utilización de este código.

Cifrado de Playfair

El cifrado de Playfair fue inventado por el físico Charles Wheatstone y difundido por su amigo Lord Playfair que acabó dándole el nombre. Es un cifrado poligráfico que a cada par de letras del texto claro hace corresponder otras dos letras en el texto cifrado.
Se usa con un alfabeto de 25 letras que se disponen sobre un cuadro de cinco filas y cinco columnas como en la tabla de Polibio. La disposición de las letras en el cuadro es la clave del cifrado. Por ejemplo:
MQSUV
WXYZP
ITECA
NROBD
FGHKL
Para efectuar el cifrado se siguen las siguientes reglas:
  1. Si el par de letras a cifrar están situadas en filas y columnas diferentes, se forma el rectángulo que tiene como vértices opuestos las dos letras. Las letras de los otros dos vértices forman el texto cifrado, ordenadas por filas de la misma forma que en el texto claro. Es decir que se pone antes en el texto cifrado la letra que se encuentra en la misma fila que la primera letra del texto claro. Por ejemplo, con la tabla anterior al par li le corresponde FA y al par zo le corresponde YB.
  2. Si ambas letras se encuentran en la misma fila, se sustituyen por las que se encuentran en la misma fila a su derecha. Si alguna de ellas está en la última columna se sustituye por la letra de la misma fila en la primera columna. Por ejemplo ic se cifraría como TA y od como BN.
  3. Iguamente, si están en la misma columna, se cifran mediante las letras que se encuentran justamente debajo de ellas. Si alguna está en la quinta fila, por la de la primera. Con la tabla anterior, so se cifra como YH, y pl comoAV.
No se pueden cifrar pares compuestos por letras iguales. La solución es procurar que no suceda esto por ejemplo introduciendo una letra con valor nulo entre las dos iguales. Si el número de letras a cifrar es impar, se le añade un nulo al final.

No hay comentarios:

Publicar un comentario