Un criptosistema híbrido (o combinado) es un sistema de cifrado que combina las ventajas de un criptosistema de clave pública con el rendimiento de los criptosistemas simétricos . El cifrado simétrico tiene una alta velocidad y claves cortas, pero requiere la transferencia de una clave en forma protegida, el cifrado asimétrico le permite transferir una clave fuerte abiertamente, pero tiene un bajo rendimiento. En un sistema híbrido, se utiliza una clave simétrica para cifrar los datos y una clave asimétrica para cifrar la clave simétrica en sí; de lo contrario, se denomina empaquetado numérico [1] .
Los sistemas criptográficos aprovechan dos criptosistemas principales: criptografía simétrica y asimétrica . Protocolos como PGP y TLS se basan en este principio .
La principal desventaja de la criptografía asimétrica es la baja velocidad debido a los cálculos complejos que requieren sus algoritmos, mientras que la criptografía simétrica tradicionalmente muestra una alta velocidad. Sin embargo, los criptosistemas simétricos tienen un inconveniente importante: su uso requiere un canal seguro para la transmisión de claves. Para superar esta carencia, recurren a criptosistemas asimétricos que utilizan un par de claves: pública y privada [2] .
Etapa de envío:
Etapa de recepción:
La mayoría de los sistemas híbridos funcionan de la siguiente manera. Para un algoritmo simétrico ( 3DES , IDEA , AES o lo que sea), se genera una clave de sesión aleatoria. Dicha clave suele tener un tamaño de 128 a 512 bits (según el algoritmo) [3] . A continuación, se utiliza un algoritmo simétrico para cifrar el mensaje. En el caso del cifrado por bloques , deberá utilizar un modo de cifrado (por ejemplo, CBC), que le permitirá cifrar un mensaje con una longitud superior a la longitud del bloque. En cuanto a la clave aleatoria en sí, debe cifrarse con la clave pública del destinatario del mensaje, y es en esta etapa que se aplica el criptosistema de clave pública ( algoritmo RSA o Diffie-Hellman ). Dado que la clave de sesión es corta, lleva un poco de tiempo cifrarla. Cifrar un conjunto de mensajes usando un algoritmo asimétrico es una tarea computacionalmente más compleja, por lo que aquí es preferible el cifrado simétrico. Entonces basta con enviar un mensaje encriptado con un algoritmo simétrico, así como la clave correspondiente en forma encriptada. El destinatario primero descifra la clave usando su clave privada y luego, usando la clave recibida, recibe el mensaje completo [3] .