| 4. El proceso del
encriptamiento. |
|
Desde sus comienzos, encriptar o codificar la información, con el
fin de evitar que sea leída por personas no autorizadas, ha sido el
principal uso de la criptografía. En la antigüedad, por ejemplo,
Julio César empleó un código alfabético para comunicarse con sus
comandantes en el campo de batalla.
Para que el encriptamiento funcione adecuadamente, el emisor y el
receptor tienen que conocer el conjunto de reglas (llamado
"código") utilizado para transformar la información
original a su forma codificada (a menudo llamado "texto
codificado"). Un código simple podría consistir en agregar un
número arbitrario de números, por ejemplo 13, a todos los caracteres
en un mensaje1.
Siempre y cuando la parte receptora conozca qué hizo el emisor al
mensaje, la parte receptora puede invertir el proceso (por ejemplo,
restar 13 caracteres a cada carácter en el mensaje recibido) para
obtener el texto original.
Un código es un conjunto de reglas para codificar datos.
El encriptamiento se basa en dos componentes: un algoritmo y una
llave/llave. Un algoritmo criptográfico es una función matemática
que combina texto simple u otra información inteligible con una
cadena de dígitos, llamada llave, para producir texto codificado
ininteligible. La llave y el algoritmo usados son cruciales para el
encriptamiento.
El encriptamiento básico requiere un algoritmo y una
llave.
Aunque sí existen algunos algoritmos de encriptamiento especiales
que no usan una llave, los algoritmos que usan llaves son
particularmente importantes. Apoyar el encriptamiento en un sistema
basado en llave ofrece dos ventajas importantes. Primera, los
algoritmos de encriptamiento son difíciles de diseñar (usted no
querrá emplear un nuevo algoritmo cada vez que se comunique de
manera privada con un nuevo receptor). Al emplear una llave, puede
usar el mismo algoritmo para comunicarse con muchas personas; todo
lo que tiene que hacer es usar una llave diferente con cada
receptor. Segunda, si alguien puede descifrar los mensajes
encriptados, sólo tendrá que cambiar a una nueva llave para volver a
encriptar mensajes, sin necesidad de cambiar a un nuevo algoritmo (a
menos que el algoritmo, y no la llave, se sospeche sea inseguro,
cosa que puede suceder, aunque es poco probable).
Un algoritmo es difícil de diseñar, pero puede usarse con
varias llaves.
El número de posibles llaves que cada algoritmo puede soportar
depende del número de bits en la llave. Por ejemplo, una llave de 8
bits sólo permite 256 posibles combinaciones numéricas, cada una de
las cuales también es llamada llave (28). Entre mayor sea el número
de posibles llaves, más difícil será descifrar un mensaje
encriptado. El nivel de dificultad depende, por lo tanto, de la
longitud de la llave. Una computadora no necesita mucho tiempo para
probar secuencialmente cada una de las 256 llaves posibles (menos de
un milisegundo) y desencriptar el mensaje para ver si éste cobra
sentido.2 Sin embargo, si se usara una llave de 100 bits (que
equivale a examinar 2100 llaves), una computadora que pruebe un
millón de llaves cada segundo podría tardar muchos siglos en
descubrir la llave correcta.
El número de bits en una llave determina el número de posibles
configuraciones de la llave; es decir, tener más configuraciones
posibles se traduce en una mayor dificultad para descifrar el
mensaje.
La seguridad de un algoritmo de encriptamiento está relacionada
con la longitud de su llave. ¿Por qué? Porque saber que una llave
mide "n" bits, da una idea de cuánto tiempo se necesitará
para violar el código. Si la seguridad dependiera de cosas como la
confidencialidad del algoritmo, o la inaccesibilidad al texto
codificado o simple, personas no autorizadas podrían obtener dicha
información a partir de publicaciones, análisis de patrones de
mensajes, o conseguirla de otras maneras (mediante monitoreo de
tráfico, por ejemplo). Una vez que la información estuvo a su
alcance, la o las personas no autorizadas podrían usarla para
desencriptar las comunicaciones.
Las llaves de encriptamiento largas son más seguras.
La forma más antigua de criptografía basada en llave se denomina
"llave secreta" o "encriptamiento simétrico". En
este esquema, el emisor y el receptor poseen la misma llave, lo que
significa que ambas partes pueden encriptar y desencriptar datos con
la llave. El encriptamiento simétrico presenta algunas desventajas:
por ejemplo, ambas partes deben ponerse de acuerdo en usar una llave
secreta compartida. Si usted tiene "n" receptores,
entonces debe dar seguimiento a "n" llaves secretas, una
para cada uno de sus receptores. Si usted usa la misma llave para
más de un receptor, significa que dichos receptores podrán leer
entre sí sus respectivos mensajes de correo.
Al usar encriptamiento simétrico, ambas partes tienen la misma
llave secreta, pero usted necesita una llave separada para cada
receptor.
Los esquemas de encriptamiento simétrico también presentan un
problema con la autenticidad, ya que la identidad de un originador
de mensaje o un receptor no se puede probar. Si dos personas poseen
la misma llave, cada una puede crear y encriptar un mensaje y decir
que la otra persona lo envió. Esta ambigüedad inherente acerca de
quién es el autor de un mensaje hace que la no repudiación sea
imposible con las llaves secretas. La forma para resolver el asunto
de la no repudiación consiste en usar lo que se denomina
"criptografía de llave pública", que emplea algoritmos de
encriptamiento asimétricos.