Criptografía
Se
puede definir la criptografía como el conjunto de disciplinas que estudian los
principios, métodos medios de ocultar la información de un mensaje.
Los
métodos criptográficos han ido evolucionando con el tiempo ya que la encriptación de
datos es algo que se conoce desde muy antiguo. Ya Julio Cesar, en el Imperio Romano, para
comunicarse con sus generales, codificaba sus mensajes mediante el sencillo método de
cambiar todas las letras por las equivalentes al sumar o restar posiciones en el alfabeto,
es decir, rotar posiciones. Julio César sumaba tres posiciones para codificar, así que
para descodificar habría que restar tres posiciones. Así el mensaje:
¿ Tu también, hijo mío ?
quedaría:
¿ Wx wdoelhp, klmr
olr ?
Pero
sistemas de este tipo no sirven absolutamente de nada en la actualidad ya que son muy
sencillos de descifrar. Éste y otros métodos más potentes basan su seguridad en la
ocultación del algoritmo para codificar, en este ejemplo: "Sumar tres
posiciones". Otro ejemplo de estos sistemas lo encontramos en el cuento de Edgar Alan
Poe, "El escarabajo de oro" donde el protagonista logra encontrar un
tesoro tras descifrar un texto en el que las letras han sido sustituidas por signos
extraños. Y lo consigue comparando la frecuencia con que se repiten los símbolos en el
escrito con la importancia que tiene cada carácter del alfabeto en el idioma inglés (por
ejemplo, la letra más común en esta lengua es la "e" y es muy usual
la secuencia "the").
Todos
estos métodos han dejado paso a los sistemas que utilizan funciones matemáticas
parametrizadas para codificar. Estos sistemas son seguros. En criptografía se califica
como seguros a aquellos sistemas que no pueden ser descifrados en un tiempo de
computación razonable y para los cuales no existe, o no se ha encontrado, una manera más
sencilla que permita reducir este esfuerzo de computación. El algoritmo de codificación
puede hacerse público, y lo que debe mantenerse en secreto serán los parámetros
aplicados a la función para codificar. Estos parámetros se usarán para la
descodificación.
Hasta
ahora el mayor problema con el que nos encontramos es cómo distribuir de forma segura las
claves para el descifrado. El problema se resuelve con el sistema de Clave pública, que
se basa en la utilización de dos claves independientes para encriptar los mensajes. Son
independientes porque a partir de una no se puede llegar a la otra. Una de ellas, la clave
pública, se distribuye libremente por la red. Cualquiera puede tener acceso a ella, y de
hecho, debe tener acceso a ella para codificar un mensaje que se desencriptará con la
otra clave del par, la clave privada. Una encripta, la otra desencripta. El tamaño de la
clave determina el nivel de seguridad.
Un
ejemplo gráfico para entender el funcionamiento de este sistema son los buzones: Hay un
grupo de buzones, uno para cada persona. Cada buzón está detrás de una puerta con llave
y por lo tanto hay una llave para cada puerta y una llave para cada buzón, es decir, un
par de llaves por buzón. Las llaves que abren las puertas son públicas, cualquiera las
puede coger, en cambio las que abren los buzones son privadas y sólo las tienen sus
dueños. Para dejar un mensaje a una persona, se abre la puerta que corresponde a esa
persona con la llave pública y se deja el mensaje en el buzón. Para leerlo, el
propietario del buzón podrá abrirlo (y será el único) con su llave privada, la que
abre realmente el buzón.
Se
suelen utilizar las "firmas digitales" para verificar la identidad de una
persona. La firma digital es una serie de datos que se obtiene al aplicar funciones
matemáticas al texto del mensaje. Si alguien lo manipula, la huella digital varía y por
lo tanto es posible saber que ha habido esa alteración. La firma digital se obtiene al
aplicar la clave privada del remitente a la huella digital, con lo que se puede saber con
seguridad si se ha manipulado la información y además la identidad del remitente.
La
necesidad real de algoritmos que puedan encriptar de un modo seguro los datos que queremos
transmitir a través de la red choca frontalmente con la legislación norteamericana que
impone grandes restricciones a la exportación de algoritmos de encriptación fuera de los
Estados Unidos y Canadá, alegando su posible utilización como arma por otros países
supuestamente enemigos.
RSA
El
RSA fue uno de los primeros sistemas de clave pública. Toma su nombre de sus creadores,
Ron Rivest, Adi Shamir y Len Adleman y se basa en la propiedad de que es muy sencillo
multiplicar entre sí dos números primos pero es más difícil descomponer en factores un
número compuesto. En este sistema la clave pública está formada por un número muy
grande N y por un entero r. Para enviar al dueño de
esta clave un mensaje, deberá transformarlo en un número entero de longitud N
y si es necesario dividirlo en bloques. El mensaje cifrado es el resto resultante de
elevar a r cada uno de los bloques y dividir el resultado por N.
La clave privada será un número s tal que al elevar a ese número el
mensaje, se descodifica. La única forma para calcular el número s es
conocer el número N y sus factores primos.
PGP
El
sistema PGP (Preety Good Privacy) fue desarrollado en 1991 por Phill Zimmermann. Es una
aplicación informática de criptografía de clave pública que proporciona de forma
sencilla y transparente para el usuario una integridad de la información y acreditación
del remitente. Está basado en el sistema RSA y es uno de los programas más utilizados ya
que realiza una completa gestión de las claves, genera Firmas digitales y además
encripta y comprime el mensaje de forma rápida y fiable. Se pueden generar claves; PGP
proporciona un par de claves y solicita un nombre para introducir la clave pública en su
registro. Encripta mensajes con sólo indicar el nombre del destinatario (si tiene
almacenada su clave pública) y, en general, facilita sobremanera el envío y recepción
de mensajes seguros.

Pantalla de ayuda del PGP
2.6.3.i
Recientemente,
el gobierno de los Estados Unidos ha permitido, a través de la empresa Entrust
Technologies la exportación de la tecnología criptográfica PKI (Public Key
Infraestructure) de 128 bits más allá de sus fronteras. La infraestructura de clave
pública (Public Key Infrastructure) de 128 bits establece los servicios y protocolos
necesarios para dar soporte a las aplicaciones de cifrado fuerte enmarcado en los sistemas
de clave pública. Las leyes de los Estados Unidos consideran las técnicas
criptográficas como armas y por ello tienen un férreo control sobre su exportación.
|