domingo, 21 de septiembre de 2008

Criptografía (I)

Lo prometido es deuda, y como dije que hablaría sobre criptografía cuántica, pues aquí tenéis la primera parte. Como es un tema muy interesante, al menos a mi me lo parece, empezaré desde el principio con un resumen de la historia de la criptografía, desde la Grecia y Roma antigua hasta nuestros días. Os aseguro que si es un tema que desconocéis os gustará. Empecemos pues.

Criptografía: palabra proveniente del griego Kripto (oculto) y graphos (escribir) y a grandes rasgos es la ciencia y arte de escribir un mensaje de manera segura para que sólo pueda ser leído por la persona a quien va dirigido.

Desde siempre (bueno desde que existe la escritura) se ha intentado buscar la manera de que nadie excepto el destinatario pudiera leer el mensaje enviado.
Y esto en algunos casos es más importante de lo que parece, como ejemplo tenemos a la reina María Estuardo de Escocia que todavía tendría la cabeza pegada al cuerpo si hubiera utilizado una cifra más segura para codificar sus mensajes de traición a la reina Isabel.
Pero retrocedamos unos siglos.

Los primeros datos sobre algún tipo de criptografía los podemos encontrar allá por el siglo V a.c. en las guerras entre Griegos y Persas. El ejército Persa pretendía atacar por sorpresa a los griegos, pero un griego exiliado que pululaba por Persia fue capaz de avisar a sus compatriotas con antelación grabando sobre una tablilla de madera una inscripción, posteriormente la cubrió con cera y simplemente la llevó consigo de viaje hasta Grecia. Si algún guarda veía la tablilla no se daría cuenta de nada. Así los griegos fueron avisados y pudieron estar preparados para la llegada de los Persas. Ganaron los griegos por si a alguien le interesa.

Otra referencia nos dice que se afeitaba la cabeza del mensajero, se escribía el mensaje y luego se dejaba crecer el pelo para que tapara el mensaje. Una vez en su destino sólo había que volver a rapar al pobre chaval para leerlo. En aquella época no se estresaban mucho y las cosas funcionaban mucho más despacio que ahora.

Este tipo de criptografía basada en la ocultación del mensaje se denomina esteganografía y a más de un lector/a de este blog le habrá llegado alguna vez alguna carta o mensaje mío esteganografiado, otra cosa es que lo haya descubierto (de momento no tengo indicios).
En china se usaba una pequeña tela de seda escrita, la cual se aplastaba hasta formar una pelotita pequeña, se recubría con cera y luego se tragaba. No voy a comentar la forma de recuperar la bolita.

También mezclando alumbre y vinagre se consigue una tinta con la cual se puede escribir en la cáscara de un huevo cocido, esta penetra en el huevo y el mensaje queda impreso en la clara del huevo. Sólo hay que pelarlo para leer el mensaje. El zumo de limón sobre un papel también produce un efecto invisible que puede luego leerse si se chamusca un poco el papel pasándolo por una llama.

El problema de la esteganografía es que si por alguna razón el mensaje es descubierto no existe ningún problema para ser leído. Y es aquí donde entra el cifrado, con el cual aunque el mensaje sea interceptado, se tendrán serias dificultades para leerlo.

La esteganografía y la codificación pueden ser usadas al mismo tiempo, como en la segunda guerra mundial, donde los alemanes reducían fotográficamente una página de un texto a un tamaño de menos de 1mm y luego ese punto formaba parte de un punto final de cualquier frase de un texto inocente. Si los aliados encontraban el punto, aun les quedaba descodificar el mensaje, pues estaba a su vez cifrado.

Así entramos ya en la criptografía pura y dura, la cual puede dividirse en dos ramas: transposición y sustitución.
En la trasposición las letras del mensaje cambian su posición y en la sustitución las letra cambian su valor.

La trasposición en mensaje cortos no es demasiado segura pues una palabra con las letras cambiadas de lugar es relativamente fácil de localizar, pero una frase de sólo 35 letras tiene 50.000.000.000.000.000.000.000.000.000.000 posibles combinaciones, todo el mundo probando una combinación por segundo día y noche tardarían miles de millones de años en probarlas todas Si aciertas a la primera vale, pero como tardes mucho se ha acabado la guerra y no te has enterado.
El problema es que si la mezcla es al azar para que el nivel de seguridad sea muy alto, el receptor del mensaje tampoco puede descifrarlo, hace falta un sistema sencillo acordado entre el emisor y el receptor. Por ejemplo una frase como "quien vigila a los vigilantes" podría ser codificada siguiendo el sistema de separar las letras impares de las pares y luego colocarlas unas detrás de otras. el mensaje quedaría tal que así: qiniialsiiatsuevglaovglne.
El receptor invierte el proceso y ya tiene listo el mensaje.

La alternativa a la trasposición es la sustitución y una de las primeras descripciones de esta técnica aparece en el Kamasutra, donde una de las artes que debían de estudiar las mujeres era el arte de la escritura secreta para poder ocultar los detalles de sus relaciones amorosas. Una de las técnicas era emparejar al azar cada letra del alfabeto con otra diferente y luego sustituir cada letra del mensaje por su pareja. Si emparejamos la a con la V, la r con la X, la t con la B, la u con la G, y la o con la J. Mi nombre (Arturo) pasaría a ser "VXBGXJ" y ya pueden trasponer las letras que no sacarán nada en claro.

César usaba esta técnica para enviar mensajes a sus tropas por todo el imperio usando una sustitución de tres posiciones, es decir la letra "a" era codificada como la letra que estaba 3 posiciones más adelante en el alfabeto. a-D, b-E, c-F... Esta tipo de cifra (cifra es la sustitución criptográfica en la que cada letra es reemplazada por otra letra o símbolo) es llamada la cifra del Cesar.

Si ciframos con una combinación cualquiera del alfabeto a nuestra elección se pueden generar un total de 400.000.000.000.000.000.000.000.000 combinaciones posibles.
(A partir de ahora el texto llano (original) estará escrito con letras minúsculas mientras que su equivalente texto cifrado estará en mayúsculas.)

La codificación, o sea el método de cifrado es conocido como el algoritmo y la forma exacta para descodificarlo es la clave. En el caso anterior el algoritmo sería la sustitución monoalfabética y la clave sería la sustitución por la letra colocada 3 posiciones delante en el alfabeto.
La clave es lo más importante en la criptografía, se puede conocer el algoritmo, pero sin la clave nos quedamos igual.

Para mantener la calve a salvo esta debe tener una amplia gama de claves potenciales. El cambio del Cesar solo tiene 25 posibles combinaciones, en cambio si el algoritmo puede ser cualquier emparejamiento de letras las posibilidades de claves diferentes aumentan hasta esos miles de millones que he dicho antes. La ventaja de esta cifra, que es fácil de poner en práctica y a su vez tiene un ato nivel de seguridad. El receptor y el emisor sólo necesitan un pequeño papel donde anotar las 25 combinaciones de letras, o memorizar simplemente.

Si utilizamos una palabra clave para comenzar el cifrado todavía se vuelve más fácil memorizar la secuencia. Elegimos la palabra clave Criptografia, eliminamos la letras repetidas: criptogaf y la utilizamos para codificar el alfabeto, siguiendo una vez hemos acabado con la palabra el orden del mismo.
Sólo hay que memorizar la palabra Criptografía

Esta combinación de simplicidad y fortaleza hizo que este sistema de sustitución monoalfabética fuera utilizado durante siglos, pero al final una combinación de lingüística, estadística y religión dio al traste con la seguridad de este tipo de cifrado.
Apareció el criptoanálisis.

¿Alguna pregunta?

1 comentario:

cerdito dijo...

tu figura de aon te traus estes coses