2 de Abril 2003
INTRODUCCIÓN A LA CRIPTOGRAFÍA
La palabra "Criptografía" viene del griego "Kryptos",
escondido, y "Graphos", escritura. Es decir, cuando hablamos
de Criptografía estamos hablando de "Escritura escondida".
Se trata de escribir algo de manera que otra persona que quiera
leer lo que hemos escrito no pueda entenderlo a no ser que conozca
cómo se ha escondido.
Los sistemas criptográficos están teniendo un gran
auge últimamente ante el miedo de que una transmisión
en Internet pueda ser interceptada y algún desaprensivo pueda
enterarse de alguna información que no debería. Y
no estamos hablando de un correo electrónico en el que organizamos
las vacaciones con los amigos, nos referimos a, por ejemplo, una
transacción comercial de cientos de miles de euros o una
información sobre determinados temas empresariales que podría
hacer las delicias de un competidor.
Desde la Antigüedad todas las civilizaciones han desarrollado
sistemas de criptografía para que las comunicaciones no fueran
públicas. Incluso hoy en día muchas personas utilizan
lenguajes específicos para que solamente los iniciados en
ellos puedan comprender la conversación como, por ejemplo,
las jergas utilizadas en ambientes carcelarios. A veces los informáticos
también parece que hablemos en clave...
Hay muchos sistemas para "camuflar" lo que escribimos.
Quizá el más fácil sea la "trasposición"
del texto. Consiste en cambiar cada letra del texto por otra distinta.
Por ejemplo, si escribo "boujwjsvt", solamente las personas
que supieran que he puesto la letra siguiente del alfabeto para
escribir la palabra "antivirus" podrían entender
la palabra.
Evidentemente los sistemas criptográficos actuales van mucho
más allá de un sistema como el de transposición,
fácil de descubrir en unos cuantos intentos. Incluso si en
lugar de trasponer un determinado número de espacios elegimos
aleatoriamente las letras a sustituir, también bastaría
con un ordenador que tuviera un simple corrector ortográfico
para, en unos cuantos intentos, descubrir el significado de un mensaje.
La importancia de los números primos
Una de las tareas que más tiempo ocupa a los grandes sistemas
de ordenadores es el cálculo de números primos cada
vez mayores. Su objetivo es poder obtener un número que sirva
para cifrar mensajes y que luego sea muy complicado descifrarlos.
Vamos a ver cómo se podría cifrar un mensaje en función
de un número primo. Cada letra en un mensaje tiene un número
asociado que nunca varía. El número está establecido
por el código denominado "American Standard Code for
Information Interchange" (ASCII). El conjunto de caracteres
ASCII define cada carácter con un número que va desde
el 0 al 255. Por ejemplo, la letra "A" mayúscula
tiene el código 65, la "z" minúscula tiene
el código 122, etc. Cualquier texto escrito en un ordenador
se puede trasladar a notación ASCII. Por ejemplo, en código
ASCII la palabra "antivirus" es:
97 110 116 105 118 105 114 117 115
Así tenemos una cadena de números (que es como realmente
se transmite la información digitalmente) que podríamos
multiplicar por un número que sea la multiplicación
de dos números primos. Si elegimos, por ejemplo, 14 (multiplicando
2 y 7), la cadena de números nos quedaría así:
1358 1540 1624 1470 1652 1470 1596 1638 1610
La persona que quiera leer lo que pone primero deberá averiguar
cuál es el número que hemos utilizado para cifrar
la información. Y para ello deberá adivinar cuáles
son los dos factores que hemos utilizado para cifrar la información.
Evidentemente, en este ejemplo es muy fácil, 14 es 7 por
2, no hace falta ninguna titulación en Matemáticas
más allá de la obtenida cuando estábamos en
primaria.
Sin embargo, si utilizamos números muy grandes, el problema
se complica. Por ejemplo, si utilizamos el número 2.591.372.723,
su descomposición en dos factores primos ya no es tan inmediata.
A pesar de eso, en muy poco tiempo veríamos que es el producto
de 97.453 y 26.591.
La longitud de estos números (lo que se llama el "tamaño
de la clave") es primordial para que un cifrado sea más
o menos efectivo. En el primer ejemplo, si pasamos a notación
binaria el número 14 veríamos que se escribe 1110,
un número de 4 bits. El segundo ejemplo, 2.591.372.723, se
escribe en binario como 10011010011101010011010110110011, 32 bits.
Y en los sistemas de cifrado actuales una clave de menos de 400
ó 500 bits se considera ridícula. Lo más normal
es utilizar, como poco, ¡¡¡1.024 bits de longitud
de clave!!!
Ventajas y problemas del cifrado
Mandar un correo electrónico cifrado aporta indudables ventajas
tanto al emisor como al receptor del mensaje. La confidencialidad
está prácticamente asegurada, nadie que no conozca
las claves con las que se ha enviado el correo electrónico
podrá enterarse de qué es lo que hay en el correo.
Así podremos mandar todo tipo de información con la
tranquilidad de que estará a salvo de teóricas intercepciones
de la comunicación.
Pero... ¿qué es una intercepción de la comunicación?
En principio todos pensamos que es un hacker, o un espía
de la competencia, o cualquier otro elemento de esa calaña
que quiere inmiscuirse en las conversaciones ajenas. Entre todos
los que quieren echar un vistazo hay uno que lo hace con muy buena
fe y grandes dosis de ganas de defendernos... ¡el antivirus!
Un antivirus siempre va a intentar inmiscuirse en la comunicación
por correo electrónico. Tiene que abrir el mensaje y mirar
qué es lo que hay dentro, no con afán de espionaje
sobre el contenido del mensaje, sino en busca de un virus. Si el
mensaje lo hemos cifrado, la misión del antivirus puede fracasar.
En la estructura empresarial actual se tiende a instalar antivirus
en los puntos de conexión de las redes a Internet: firewalls,
proxys, etc. Es el sitio más lógico, ya que por allí
van a entrar casi el 90% de los virus. Pero si el virus viene en
un mensaje de correo electrónico cifrado, ese maravilloso
antivirus que está en el firewall va a fracasar en su misión:
al estar el contenido del mensaje cifrado, no va a poder detectar
el virus que pueda contener el mensaje.
De otra manera, los usuarios que recibieran correos cifrados podrían
verse envueltos, inconscientemente en una infección. Si el
emisor ha cifrado el mensaje, también ha cifrado el virus.
Nadie, ni siquiera el antivirus más potente podría
descifrar el mensaje para su análisis. Simplemente buscaría
un virus en un montón de caracteres y símbolos que
al ser incomprensibles ocultarían al virus de una manera
tan eficaz como ocultan el texto. Por ello, la protección
en las estaciones de trabajo debe ser tan fuerte como la perimetral,
ya que es en la estación de trabajo donde el mensaje se descifrará
y aparecerá el virus.
En definitiva, nadie duda de que los sistemas de cifrado son una
herramienta que aumenta la seguridad de las comunicaciones, pero
tienen su reverso tenebroso: ocultan virus a los antivirus perimetrales
que no estén preparados. La única solución
para evitar que los virus cifrados entren en la empresa, debe ser
una protección perimétrica efectiva que bloquee los
elementos cifrados no autorizados antes de que puedan alcanzar los
servidores y las estaciones de trabajo de la empresa.
Fernando de la Cuadra
Editor Técnico Internacional
Panda Software (http://www.pandasoftware.com)
|