Criptografía simétrica.
Los sistemas de cifrado simétrico son aquellos que utilizan la misma clave para cifrar y descifrar un documento. El principal problema de seguridad reside en el intercambio de claves entre el emisor y el receptor ya que ambos deben usar la misma clave. Por lo tanto se tiene que buscar también un canal de comunicación que sea seguro para el intercambio de la clave. Es importante que dicha clave sea muy difícil de adivinar ya que hoy en día los ordenadores pueden adivinar claves muy rápidamente. Debemos tener en cuenta que los algoritmos criptográficos son públicos, por lo que su fortaleza debe depender de su complejidad interna y de la longitud de la clave empleada para evitar los ataques de fuerza bruta.
Por ejemplo el algoritmo de cifrado DES usa una clave de 56 bits, lo que significa que hay 72 mil billones de claves posibles. Actualmente ya existen ordenadores especializados que son capaces de probar todas ellas en cuestión de horas. Hoy por hoy se están utilizando ya claves de 128 bits que aumentan el “espectro” de claves posibles (2 elevado a 128) de forma que aunque se uniesen todos los ordenadores existentes en estos momentos no lo conseguirían en miles de millones de años.
El funcionamiento de la criptografía simétrica es el siguiente: el emisor quiere hacer llegar un documento al receptor. Toma ese documento y le aplica el algoritmo simétrico, usando la clave única que también conoce el receptor. El resultado es un documento cifrado que se puede ya enviar tranquilamente. Cuando el receptor recibe este documento cifrado, le aplica el mismo algoritmo con la misma clave, pero ahora en función de descifrar. Si el documento cifrado no ha sido alterado por el camino y la clave es la misma, se obtendrá el documento original.
Criptografía asimétrica.
También son llamados sistemas de cifrado de clave pública. Este sistema de cifrado usa dos claves diferentes. Una es la clave pública y se puede enviar a cualquier persona y otra que se llama clave privada, que debe guardarse para que nadie tenga acceso a ella. Para enviar un mensaje, el remitente usa la clave pública del destinatario para cifrar el mensaje. Una vez que lo ha cifrado, solamente con la clave privada del destinatario se puede descifrar, ni siquiera el que ha cifrado el mensaje puede volver a descifrarlo. Por ello, se puede dar a conocer perfectamente la clave pública para que todo aquel que se quiera comunicar con el destinatario lo pueda hacer.
Cuando el emisor quiere hacer llegar un documento al receptor, primero consigue la clave pública del receptor. Con esa clave y el documento original, aplica el algoritmo simétrico. El resultado es un documento cifrado que puede enviar al receptor por cualquier canal. Cuando el mensaje cifrado llega al receptor, éste recupera el documento original aplicando el algoritmo asimétrico con su clave privada.
Si el receptor quiere enviar al emisor una respuesta cifrada, deberá conocer la clave pública del emisor y hacer el procedimiento inverso.
Un sistema de cifrado de clave pública basado en la factorización de números primos se basa en que la clave pública contiene un número compuesto de dos números primos muy grandes. Para cifrar un mensaje, el algoritmo de cifrado usa ese compuesto para cifrar el mensaje. Para descifrar el mensaje, el algoritmo de descifrado requiere conocer los factores primos, y la clave privada tiene uno de esos factores, con lo que puede fácilmente descifrar el mensaje.
Es fácil, con los ordenadores de hoy en día, multiplicar dos números grandes para conseguir un número compuesto, pero es muy difícil la operación inversa: Dado ese número compuesto, factorizarlo para conocer cada uno de los dos números. Mientras que 128 bits se considera suficiente en las claves de cifrado simétrico, y dado que la tecnología de hoy en día se encuentra muy avanzada, se recomienda en este caso que la clave pública tenga un mínimo de 1024 bits. Para un ataque de fuerza bruta, por ejemplo, sobre una clave publica de 512 bits, se debe factorizar un número compuesto de hasta 155 cifras decimales.
La criptografía asimétrica resuelve las dos desventajas principales de la simétrica:
a) No se necesita canales seguros para mandar la clave. La distribución de claves es más fácil y segura ya que la clave que se distribuye es la pública manteniéndose la privada para el uso exclusivo del propietario.
b) No hay desbordamiento en el tratamiento de claves y canales.
Pero este tipo de algoritmos también tiene desventajas:
a) Son poco eficientes. Las claves deben de ser largas y se tarda bastante tiempo en aplicarlas.
b) Utilizar las claves privadas repetidamente puede hacer que reciban ataques criptográficos que se basan en analizar paquetes cifrados.
c) Hay que proteger la clase privada. Las claves privadas se guardan todas juntas en un archivo llamado keyring, que a su vez está protegido con cifrado simétrico, lo que quiere decir que para usar la clave privada, hay que introducir una clave que descifra el archivo keyring y permita leerla. Esto hace que se necesite una copia de seguridad del llavero keyring.
d) Hay que transportar la clave privada. Por eso hay que transportar el llavero con el riesgo que esto supone. Lo mejor para proteger y transportar la clave privada es la tarjeta inteligente. Una tarjeta inteligente (smart card), es cualquier tarjeta de plástico del tamaño de un bolsillo con circuitos integrados que permiten la ejecución de cierta lógica programada.