lunes, junio 28, 2010

Criptografía clásica. Cifrados por transposición

Cifrados por transposición

    Los cifrados por transposición reordenan el texto de acuerdo con algún esquema. Este reordenamiento se hacía clásicamente con la ayuda de algún tipo de figura geométrica.

Primero el texto a cifrar se escribía en la figura de una forma determinada y después se extraía de la figura de una forma diferente, quedando cifrado. La llave (clave) consiste púes en la forma de introducir y sacar el texto de la figura.

La figura escogida la mayoría de las veces era una matriz bidimensional. Como ejemplos podemos distinguir:

  • Cifrado por transposición columnar
  • Cifrado por transposición

Cifrado por transposición columnar

Descripción
Dado un texto a cifrar, se escribe por filas en una matriz de una anchura predeterminada y se obtiene el texto cifrado leyendo las columnas en algún orden. Por ejemplo, para cifrar el texto "El cristal roto empezaba a crecer de nuevo", con una anchura de bloque de 6 caracteres hacemos:
E L C R I S
T A L R O T
O E M P E Z
A B A A C R
E C E R D E
N U E V O  

Ahora lo que se hace es leer el texto por columnas en cualquier orden. Por ejemplo, en el orden 2-4-6-1-3-5 tenemos:
LAEBCU RRPARV STZRE ETOAEN CLMAEE IOECDO

La llave (clave) de este cifrado es la permutación que se ha usado y las dimensiones de la tabla.

Criptoanálisis

Como se ha explicado anteriormente lo único que hace este método es considerar el texto escrito por filas en una matriz y volver a escribir este texto cogiendo las columnas de dicha matriz. Debemos tener en cuenta que la llave (clave) en este cifrado es la permutación que se ha utilizado, es decir, la forma de elegir las columnas, y las dimensiones de la matriz donde se escribe el texto.
Teniendo en cuenta lo expuesto en el párrafo anterior, y que al escribir el texto cifrado hay espacios en blanco entre los "trozos" de texto que se corresponden con las columnas, entonces, una forma de realizar el criptoanálisis al texto anteriormente cifrado puede ser la siguiente:

  • Coger el texto cifrado y volverlo a poner en una matriz como la explicada anteriormente.
  • Intercambiar las columnas de dicha matriz hasta obtener un texto con sentido.

Para facilitar la labor debemos tener en cuenta que la columna de menor longitud será la última columna de la matriz original. Entonces, partiendo de la tabla:


L R E C I S
A R T L O T
E P O M E Z
B A A A C R
C R E E D E
U V N E O  

Realizando distintas permutaciones entre las columnas de la misma podemos volver a obtener la matriz original:
E L C R I S
T A L R O T
O E M P E Z
A B A A C R
E C E R D E
N U E V O  

Y, por tanto, podemos descifrar el mensaje:

El cristal roto empezaba a crecer de nuevo


Cifrado por transposición

Descripción

Dado un texto a cifrar, se escribe por filas en una matriz de una anchura predeterminada y luego se cambian las columnas de sitio. Por ejemplo, para cifrar el texto "A quien madruga Dios le ayuda", con una anchura de bloque de 5 caracteres hacemos:


A Q U I E
N M A D R
U G A D I
O S L E A
Y U D A H

Metemos cualquier carácter de relleno al final, para que la matriz quede completamente rellena y cambiamos las filas de sitio, por ejemplo, las ponemos en el orden 3-5-2-1-4 y obtenemos:

U E Q A I
A R M N D
A I G U D
L A S O E
D H U Y A

Con lo que el texto cifrado queda:

UEQAI ARMND AIGUD LASOE DHUYA

Más formalmente, lo que se hace es dividir el texto en bloques de una longitud fija y aplicar a cada bloque una permutación p. En el ejemplo anterior, se dividiría el texto en bloques de 5 caracteres:

AQUIE NMADR UGADI OSLEA YUDAH

Se le añaden letras al final para terminar de llenar un bloque y se aplica la permutación (1, 3, 2, 5,4), con lo que se llega el resultado UEQAI ARMND AIGUD LASOE DHUYA, que coincide con el obtenido anteriormente.

Criptoanálisis

Para realizar el criptoanálisis de un texto que ha sido cifrado con este método debemos seguir los pasos considéranos en el apartado de cifrado por transposición columnar.

Además de lo expuesto anteriormente hay que tener en cuenta que ahora los huecos son rellenados con caracteres. Entonces, dado un texto cifrado con este método y sin espacios en blanco para delimitar las columnas, podríamos obtener el número de columnas de la matriz sin más que conocer la longitud del texto cifrado, pues el número de columnas debe ser un divisor de este.

Como ejemplo de lo expuesto en el párrafo anterior consideremos el texto cifrado del anterior ejemplo:

UEQAIARMNDAIGUDLASOEDHUYA

Como la longitud de este texto es de 25 caracteres, y como:

25 = 5 * 5

Entonces, sabemos que la matriz debe contener 5 columnas. Con esta información podemos dividir el texto anterior y obtener la matriz del texto cifrado, con la que realizando distintas permutaciones entre sus columnas podríamos obtener la matriz del texto llano correspondiente a dicho texto cifrado, y con lo cual descifraríamos el mensaje oculto en el texto cifrado.

miércoles, junio 23, 2010

Criptografía clásica. Cifrados de basura en medio

    Sir Francis Bacon ya propuso en su día que el texto cifrado no debería ser sospechoso, que debería tener una apariencia inocente. Este método hace uso de este consejo y para cifrar un mensaje le introduce una serie de caracteres basura que son irrelevantes y que no hacen más que esconder el verdadero mensaje y despistar a un posible interceptor del mismo. Las letras que se introducen no son aleatorias, se trata de obtener un mensaje inocente y que parezca que no está cifrado.

Richelieu usaba una hoja de cartón con agujeros. Sólo las letras del mensaje visibles al cubrirlo con esta plantilla eran las que formaban el mensaje original. Una plantilla era algo parecido a lo siguiente:


Con esta plantilla, que debían poseer el emisor y el receptor para entender el mensaje correctamente, se podía enviar un mensaje tan amoroso como el siguiente:


Que una vez interpretado correctamente no era tan amoroso como se imaginaba en un principio:


Como podemos observar usando la plantilla, el mensaje que aparece es la terrible orden MATALO MAÑANA, que de amorosa tiene más bien poco.

martes, junio 22, 2010

Criptografía clásica. Datos Estadísticos

Datos Estadísticos

    Datos estadísticos son tan solo los datos obtenidos de un recuento o de un estudio. En nuestro caso son los datos obtenidos del estudio de las letras y palabras del castellano, concretamente de su frecuencia de aparición. El conocimiento de estos datos nos será de utilidad, entre otras cosas, para el estudio y análisis de textos cifrados.

Frecuencias de aparición de las letras en castellano

Para obtener las frecuencias reales para las letras del alfabeto lo ideal sería contabilizar la ocurrencia de cada letra en cada expresión posible es Castellano, pero esto es imposible. Se ha estudiado una muestra de texto plano suficientemente grande (más de 5 Mb) como para obtener unas frecuencias que no deben diferir en mucho de las reales.

A continuación se muestra una gráfica con los resultados obtenidos:



Para mayor facilidad de consulta se han ordenado las letras alfabéticamente y por frecuencias:

a) Ordenadas alfabéticamente

A continuación se muestra una tabla con las frecuencias de las letras que han dado lugar a la tabla anterior ordenadas por orden alfabético.

a 0.088
b 0.010
c 0.034
d 0.040
e 0.094
f 0.006
g 0.010
h 0.005
i 0.051
j 0.003
k 0.000
l 0.041
m 0.020
n 0.051
ñ 0.001
o 0.062
p 0.020
q 0.006
r 0.048
s 0.055
t 0.033
u 0.027
v 0.007
w 0.000
x 0.002
y 0.007
z 0.003
espacio 0.164

b) Ordenadas por frecuencias

A continuación se muestra una tabla con las frecuencias de las letras que han dado lugar a la tabla anterior ordenadas por frecuencia de aparición.

espacio 0.164
e 0.094
a 0.088
o 0.062
s 0.055
i 0.051
n 0.051
r 0.048
l 0.041
d 0.040
c 0.034
t 0.033
u 0.027
m 0.020
p 0.020
b 0.010
g 0.010
v 0.007
y 0.007
f 0.006
q 0.006
h 0.005
j 0.003
z 0.003
x 0.002
ñ 0.001
k 0.000
w 0.000

Palabras más frecuentes

A partir del estudio de un gran fichero de texto se ha llegado a la conclusión de que las palabras más usadas del Castellano son las siguientes:

palabra frecuencia
de    0.0659
la    0.0351
a     0.0319
el    0.0270
en    0.0259
y     0.0258
que   0.0238
los   0.0157
del   0.0133
se    0.0111
las   0.0103
por   0.0098
con   0.0075
un    0.0073
su    0.0064
una   0.0063
no    0.0058
para  0.0057
al    0.0055
es    0.0053
lo    0.0042
pero  0.0017
ya    0.0012
hasta 0.0011

Próximamente...
    Cifrados de Basura en Medio

lunes, junio 21, 2010

Criptografía clásica. Introducción

Introducción

    Desde que el mundo existe, existen los secretos. Siempre ha habido información que no se podía hacer pública, ya fuera para mantener a salvo un país, un negocio o los intereses personales de alguien. Cuando había que comunicar esta información a un aliado, colaborador o amigo, había que cerciorarse de que sólo obtuviera la información el receptor al que iba dirigida y nadie más, para que la información permaneciera en secreto.

Una de las formas de transmitir información secreta es haciendo uso de la criptografía. La palabra criptografía proviene del griego kryptos, que significa oculto y graphein, que significa escribir. El significado previsible a partir de esta etimología sería "escritura oculta". La criptografía es pues el arte y la ciencia de hacer las comunicaciones ininteligibles para todos excepto para el receptor autorizado, que poseerá la llave para desencriptar el mensaje.

El proceso de transformar un texto llano en texto cifrado o criptograma se llama encriptar o cifrar. Para este proceso se usa una llave que sólo conocen el emisor y el receptor. Cuando el receptor recoge el criptograma, lo puede desencriptar o descifrar con ayuda de la llave fácilmente. Sin embargo, si el mensaje es interceptado en el camino por un extraño, no es inteligible, y sin la llave, dependiendo de lo robusto que sea el método que se haya usado para encriptarlo, no podrá averiguar su contenido.

Los orígenes de la criptografía se remontan a la época de los egipcios, en la que ya se encriptaban mensajes haciendo uso de jeroglíficos. Desde entonces hasta ahora, las técnicas han evolucionado bastante.

El criptoanálisis es la ciencia que investiga como romper criptogramas, o sea, cómo poder averiguar el contenido de un texto cifrado sin conocer la llave que se usó para cifrarlo. Todos los métodos que se exponen en estos artículos han sido criptoanalizados, así que pensando un poco en algunos métodos y bastante en otros, y con ayuda de algunas técnicas que se explican en estos documentos se puede llegar a romper casi cualquier criptograma que se haya cifrado con los métodos que se presentan en estas páginas.

A lo largo de este tutorial se dará un repaso a distintas técnicas, desde la antigua Grecia, donde el historiador griego Polybios ya tenía un método para encriptar mensajes, hasta la segunda guerra mundial y las máquinas de rotores, que son consideradas como la última etapa de la criptografía clásica.

Próximamente...
    Datos estadísticos: Frecuencia de aparición de las letras y palabras más frecuentes.