Para generar una transmisión segura de datos, debemos contar con un canal que sea seguro, esto es debemos emplear técnicas de forma que los datos que se envían de una computadora a otra estén garantizados en cuanto a que el receptor lo comprenda y sea idéntico al enviado por el emisor y que obviamente este codificado para evitar que sea interpretado por personas ajenas a la comunicación.
Este proceso es totalmente transparente para el usuario, no incrementa el tamaño de los paquetes y solo puede ser desencriptado por quien tenga la clave para hacerlo. Con esto nos estaremos asegurando:
- Autenticidad de los usuarios.
- Confidencialidad.
- Integridad.
- No repudio.
- Los métodos de encriptación pueden dividirse en dos grandes grupos:
- Clave secreta (simétrica).
- Clave pública (asimétrica).
Los modernos algoritmos de encriptación simétricos mezclan la trasposición y la permutación, mientras que los de clave pública se basan más en complejas operaciones matemáticas.
Cualquier sistema de transferencia segura basado en criptografía debería abarcar los cuatro puntos antes mencionados, pero no suelen hacerlo en su totalidad. Así, los sistemas de clave simétrica ofrecen confidencialidad, pero ninguno de los otros factores, mientras que los sistemas de clave pública ofrecen autenticidad, integridad, confidencialidad en el envío y no repudio si van asociados a una firma digital.
Clave secreta (simétrica)
Utiliza una clave para la encriptación y desencriptación del mensaje. Esta clave se debe intercambiar entre los equipos por medio de un canal seguro. Ambos extremos deben tener la misma clave para cumplir con le proceso (Figura 15).
Figura 15
Para que un algoritmo de este tipo sea considerado fiable debe cumplir algunos requisitos básicos:
Conocido el criptograma (texto cifrado) no se pueden obtener de él ni el texto en claro ni la clave.
Conocidos el texto en claro y el texto cifrado debe resultar más caro en tiempo o dinero descifrar la clave que el valor posible de la información obtenida por terceros.
Todos los sistemas criptográficos clásicos se pueden considerar simétricos, y los principales algoritmos simétricos actuales son DES, IDEA y RC5.
Las principales desventajas de los métodos simétricos son la distribución de las claves, el peligro de que muchas personas deban conocer una misma clave y la dificultad de almacenar y proteger muchas claves diferentes.
DES
El Algoritmo de encriptación DES trabaja con claves simétrica, fue desarrollado en 1977 por la empresa IBM, se basa en un sistema monoalfabético, con un algoritmo de cifrado consistente en la aplicación sucesiva de varias permutaciones y sustituciones. Inicialmente el texto a cifrar se somete a una permutación, con bloque de entrada de 64 bits (o múltiplo de 64), para posteriormente ser sometido a la acción de dos funciones principales, una función de permutación con entrada de 8 bits y otra de sustitución con entrada de 5 bits, en un proceso que consta de 16 etapas de cifrado.
En general, DES utiliza una clave simétrica de 64 bits, de los cuales 56 son usados para la encriptación, mientras que los 8 restantes son de paridad, y se usan para la detección de errores en el proceso.
DES ya no es estándar y fue crackeado en Enero de 1999 con un poder de cómputo que efectuaba aproximadamente 250 mil millones de ensayos en un segundo.
Actualmente se utiliza el Triple DES con una clave de 128 bits y que es compatible con el DES visto anteriormente. Este nuevo algoritmo toma una clave de 128 bits y la divide en dos de 64 bits cada una, de la siguiente forma:
Se le aplica al documento a cifrar un primer cifrado mediante la primera clave, C1.
Al resultado (denominado ANTIDES) se le aplica un segundo cifrado con la segunda clave, C2.
Y al resultado se le vuelve a aplicar un tercer cifrado con la primera clave, C1.
RC5
Este sistema es el sucesor de RC4, que consistía en hacer un XOR al mensaje con un vector que se supone aleatorio y que se desprende de la clave, mientras que RC5 usa otra operación, llamada dependencia de datos, que aplica sifths a los datos para obtener así el mensaje cifrado.
IDEA
Trabaja con bloques de texto de 64 bits, operando siempre con números de 16 bits usando operaciones como XOR y suma y multiplicación de enteros.
El algoritmo de desencriptación es muy parecido al de encriptación, por lo que resulta muy fácil y rápido de programar, y hasta ahora no ha sido roto nunca, aportando su longitud de clave una seguridad fuerte ante los ataques por fuerza bruta (prueba y ensayo o diccionarios).
Este algoritmo es de libre difusión y no está sometido a ningún tipo de restricciones o permisos nacionales, por lo que se ha difundido ampliamente, utilizándose en sistemas como UNIX y en programas de cifrado de correo como PGP.
Clave pública (asimétrica)
También llamada asimétrica, se basa en el uso de dos claves diferentes, claves que poseen una propiedad fundamental: una clave puede desencriptar lo que la otra ha encriptado.
Una de las claves de la pareja, llamada clave privada, es usada por el propietario para encriptar los mensajes, mientras que la otra, llamada clave pública, es usada para desencriptar el mensaje (Figura 16).
Figura 16
Las claves pública y privada tienen características matemáticas especiales, de tal forma que se generan siempre a la vez, por parejas, estando cada una de ellas ligada intrínsecamente a la otra.
Mientras que la clave privada debe mantenerla en secreto su propietario, ya que es la base de la seguridad del sistema, la clave pública es difundida, para que esté al alcance del mayor número posible de personas, existiendo servidores que guardan, administran y difunden dichas claves.
Para que un algoritmo de clave pública sea considerado seguro debe cumplir con los siguientes puntos:
Conocido el texto cifrado no debe ser posible encontrar el texto en claro ni la clave privada.
Conocido el texto cifrado (criptograma) y el texto en claro debe resultar más caro en tiempo o dinero descifrar la clave que el valor posible de la información obtenida por terceros.
Conocida la clave pública y el texto en claro no se puede generar un criptograma correcto encriptado con la clave privada.
Dado un texto encriptado con una clave privada sólo existe una pública capaz de desencriptarlo, y viceversa.
El primer sistema de clave pública que apareció fue el de Diffie-Hellman, en 1976, y fue la base para el desarrollo de los que después aparecieron, entre los que cabe destacar el RSA (el más utilizado en la actualidad).
Diffie-Hellman
Este algoritmo de encriptación de Whitfield Diffie y Martin Hellman fue el punto de partida para los sistema asimétricos, basados en claves pública y la privada.
Su importancia se debe sobre todo al hecho de ser el inicio de los sistemas asimétricos, ya que en la práctica sólo es válido para el intercambio de claves simétricas, y con esta funcionalidad es muy usado en los diferentes sistemas seguros implementados en Internet, como SSL (Secure Socket Layer) y VPN (Virtual Private Network).
Matemáticamente se basa en las potencias de los números y en la función mod (módulo discreto). Uniendo estos dos conceptos se define la potencia discreta de un número como Y = Xa mod q. Si bien el cálculo de potencias discretas es fácil, la obtención de su función inversa, el logaritmo discreto, no tiene una solución analítica para números grandes.
RSA
RSA es el más conocido y usado de los sistemas de clave pública, y también el más rápido de ellos. Presenta todas las ventajas de los sistemas asimétricos, incluyendo la firma digital, aunque resulta más útil a la hora de implementar la confidencialidad el uso de sistemas simétricos, por ser más rápidos. Se suele usar también en los sistemas mixtos para encriptar y enviar la clave simétrica que se usará posteriormente en la comunicación cifrada.
El sistema RSA se basa en el hecho matemático de la dificultad de factorizar números muy grandes. Para factorizar un número el sistema más lógico consiste en empezar a dividir sucesivamente éste entre 2, entre 3, entre 4,..., y así sucesivamente, buscando que el resultado de la división sea exacto, es decir, de resto 0, con lo que ya tendremos un divisor del número.
El cálculo de estas claves se realiza en secreto en la máquina en la que se va a guardar la clave privada, y una vez generada ésta conviene protegerla mediante un algoritmo criptográfico simétrico.