Durante los últimos años, se ha hablado mucho sobre la seguridad en
Internet y los peligros que tiene enviar tus datos. La solución que nos
ofrecen: encriptar. Las páginas de los bancos, o de comercio
electrónico, vienen encriptadas (lo distinguiréis porque en la barra de
la dirección, en vez del típico http, veréis https). Pero ¿Sabemos
realmente qué es la encriptación?¿En qué consiste?
Teoría clásica de la comunicación y encriptación
Una visita a la wikipedia ya nos deja una definición bastante exacta: "Criptografía (del griego κρύπτω krypto, «oculto», y γράφως graphos, «escribir», literalmente «escritura oculta») tradicionalmente se ha definido como la parte de la criptología que se ocupa de las técnicas, bien sea aplicadas al arte o la ciencia, que alteran las representaciones lingüísticas de mensajes, mediante técnicas de cifrado y/o codificado, para hacerlos ininteligibles a intrusos (lectores no autorizados) que intercepten esos mensajes."
Para entender bien la definición, primero hay que entender como se produce la comunicación de un mensaje:
Como vemos, en todo mensaje hay un emisor (emite el mensaje), un
receptor (quien lo recibe), un canal por el que se envía el mensaje y un
código. El código es el sistema común que hace que el receptor entienda
el mensaje. Un ejemplo clásico es el propio idioma, que es comprensible
por aquellos que lo hablan. En el código es donde entra en marcha la
criptografía. De hecho, cuando alguien habla en un idioma que
desconocemos, en cierta manera están hablando de forma "cifrada" para
nosotros. Este no es un hecho menor, dados casos como el del ejercito
norteamericano, que usaron Indios Navajos como
operadores de radio, para que los Japoneses no se enteraran de las
conversaciones. Pero el objetivo de la criptografía es obtener un método
genérico de encriptado, independiente del idioma. Hoy en día, este
sistema no tendría mucho éxito, dada la cantidad de buenos traductores
que hay por Internet.
Imaginemos un Capitán que quiera enviar información a un General que se
encuentre lejos, y teme que al mensajero le atrapen las tropas enemigas.
Si leyeran ese mensaje, sería fatal para ellos, pues podrían enterarse
de sus planes. Así que lo mejor es escribirlo cifrado.
Los principios: el cifrado de "El Cesar"
Ya los antiguos y belicosos romanos se dieron cuenta, como bien decíamos
antes, de lo importante que era que el enemigo no pudiera interceptar
sus comunicaciones. Pero como ésto era inevitable, crearon el primer
sistema de cifrado, conocido como el cifrado de "El Cesar", por ser las
tropas del ejercito romano en usarlo. Aunque el nombre técnico sería el
de "Cifrado por Trasposición".
Este sistema de cifrado seguía una lógica muy simple: elegías un coeficiente de trasposición
(vamos, eliges un número), por ejemplo el 2. Así que lo añadías a las
letras del abecedario. De tal manera que sustituías las letras
originales, por la letra que se encontraba dos posiciones más adelante.
Por ejemplo, sustituías la A por la C, la B por la D, etc... Para ver un ejemplo, supongamos el siguiente mensaje: "Saludos a todos". Le aplicamos un coeficiente de trasposición 2, con lo que quedaría: "Tcnwfqt c vqfqt". Algo totalmente ilegible e incongruente para alguien que no conozca dicho coeficiente.
Vulnerabilidades
Este sistema de cifrado se mostró altamente eficiente para textos
cortos, pero daba problemas con textos largos. Entonces era más fácil
descifrarlos. Esto se debía a que realmente seguía manteniendo la
estructura propia del lenguaje. Es decir, la palabra "Saludos" siempre
se escribiría "Tcnwfqt " con un coeficiente de trasposición = 2. De tal
manera que, si el texto estuviera en español, sabremos que la letra que
aparece en mayor número de ocasiones es la 'A' (ver Wikipedia: Frecuencia de aparición de letras). Entonces
si vemos que en un texto la letra que más aparece es la 'C', podemos
deducir el coeficiente de trasposición. A este método se le llama "Criptoanálisis Estadístico".
Mediante este método, cuanto más largo es un texto, más fácil es obtener
una estadística fiable, que con un texto corto. Aún así, conociendo el
método, solo es cuestión de paciencia.
Métodos con Claves: Critografía Simétrica y Asimétrica
Dada la importancia de controlar el tráfico de datos, el cifrado ha ido
cogiendo gran importancia hasta nuestros días. De esta manera, se ha
buscado formas de encriptar que, aunque sean públicos y conocidos, no
permitan hacer un simple criptoanálisis estadístico para obtener el mensaje deseado.
La idea inicial del cifrado es el uso de una palabra clave conocida
solamente por el emisor y el receptor (deseado, claro. El que reciba el
mensaje va a ser un receptor, pero éste sólo será informativo si es
capaz de decodificar la información que el mensaje contiene). De esta
manera la palabra clave serviría para encriptar y desencriptar la
información.
Una forma sencilla usada en el siglo XVII, fué una variante del método
de trasposición. Asignemos un número a cada letra del abecedario, de tal
manera que la A = 001, la B = 002, etc... Ahora cojamos el texto:
"Saludos". Y elegimos como palabra clave ABETO. Si en vez de escribirlo
con palabras, lo pasamos a números, el texto quedaría:
'022001013024005018022' y la palabra clave sería '001002006023018'.
Ahora cogemos ambos códigos numéricos y los ponemos uno encima del otro,
en grupos de tres, sumando el primer código de la primera letra del
texto a la primera letra de la clave, y así, sucesivamente. En caso de
que la clave no llegue a cubrir la longitud del texto, la repetimos,
hasta donde haga falta...
022 001 013 024 005 018 022
+
001 002 006 023 018 001 002
======================
023 003 019 047 023 019 024
Como vemos la suma de la letra U, sumada a la letra T, se escapa del
alcance del abecedario. Que tiene un total de 29 letras (Ver Método DIMQV,
que se está tomando como base en este ejemplo, aunque pudiera no ser
del todo exacto). En este caso, lo más sencillo es restarle 29 a 47, que
daría 18. De tal manera que el texto cifrado quedaria: "TCPOTPU".
Cuando se recepcionara el texto, solo tendríamos que hacer la operación
inversa para obtener la clave final. Este ejemplo es muy sencillo, dado
que hemos asignado simplemente números a las diferenes letras y hemos
hecho una simple suma. Los sistemas actuales usan complejas ecuaciones
para que el cifrado sea más efectivo.
Este sería un ejemplo de lo que se conoce como Criptografía Simétrica, o de una sola clave. La mayor parte de los sistemas de encriptación actuales están basados en sistemas de Criptografía Asímetrica,
de llave pública y llave privada, en la que el programa crea una clave
privada (de forma autónoma) que no es conocida más que por él (mediante
sistemas matemáticos de cálculo) y el usuario introduce una clave
alfanumérica (es decir, formada por números y letras, así como
caracteres especiales, como la @ o la #) que puede dar a otras personas
(llave pública).
En todos los programas informáticos que se usan actualmente (en webs o
en Windows), las contraseñas van encriptadas con Criptografía Simétrica,
en ficheros, que después son leídos para hacer la comparación
pertinente. En sistemas Unix usan sistemas que llaman de "one way
encription", encriptación de una sola vía, que se trata de sistemas de
encriptación que no se pueden desencriptar.
Fuente: