El cifrado asimétrico se usa generalmente como parte del cifrado híbrido : una clave simétrica aleatoria K es generado por el remitente; K se cifra con la clave pública del destinatario, y la mayor parte de los datos se cifra con un algoritmo de cifrado simétrico usando K como clave. Básicamente, se utiliza el cifrado asimétrico como un algoritmo de intercambio de claves.
De hecho, esto no es generalmente hecho de esa manera; es siempre hecho de esa manera. Hay varias buenas razones para eso, a saber:
-
Realmente no sabemos cómo hacer un cifrado asimétrico "puro" de forma segura. Para el cifrado simétrico tenemos mucha teoría y práctica en los modos de operación ; pero para algo como RSA todavía estamos en la oscuridad a ese respecto.
-
El cifrado asimétrico incurre en expansión de tamaño; el texto cifrado es necesariamente más grande que el mensaje de origen ("necesariamente" debido a la aleatorización, que se necesita para anular la búsqueda exhaustiva en los datos de texto simple). Si se utiliza el cifrado asimétrico en toda su extensión, la sobrecarga de tamaño para un mensaje grande no se puede descuidar. A contrario , con cifrado híbrido, la sobrecarga se soluciona incluso si se cifran gigabytes de datos.
-
El cifrado y descifrado asimétricos es computacionalmente más costoso que el cifrado simétrico.
Estas razones se alimentan mutuamente: por ejemplo, los modos de operación para el cifrado asimétrico no se estudian porque de todos modos sería caro, sin una ganancia clara.
Una consecuencia es que una implementación RSA normal aceptará cifrar los mensajes solo hasta el límite de tamaño inherente del algoritmo, y no intentará "dividir" el mensaje en bloques cifrados individualmente ni nada de eso.
Los únicos casos en los que se utiliza el cifrado asimétrico sin el cifrado híbrido son:
- Casos especializados donde los datos a cifrar siempre son cortos.
- Protocolos avanzados en los que el remitente debe poder demostrar alguna propiedad algebraica sobre lo que está cifrado y / o cifrado homomórfico (esto es típico de los protocolos de voto electrónico). En estos casos, los mensajes a cifrar no son cualquier secuencia de bits; tienen mucha estructura matemática y, de nuevo, serán cortas.