Es una creencia común que los sistemas criptográficos híbridos son mejores que los asimétricos solamente. ¿Siempre es así?
¿Cuál es la ventaja de usar el cifrado asimétrico y asimétrico para pequeños bloques de datos (< 100 bytes)?
Es una creencia común que los sistemas criptográficos híbridos son mejores que los asimétricos solamente. ¿Siempre es así?
¿Cuál es la ventaja de usar el cifrado asimétrico y asimétrico para pequeños bloques de datos (< 100 bytes)?
Si tiene mensajes para enviar y usa un algoritmo encriptado asimétrico, y ese algoritmo puede procesar cada mensaje al por mayor porque los mensajes son lo suficientemente pequeños, entonces usted puede diseñar el protocolo sin tener que recurrir a un cifrado simétrico adicional.
Sin embargo esto puede perder cierta flexibilidad y tener un costo de rendimiento no trivial. La flexibilidad trata sobre la posibilidad de reemplazar, en una versión posterior del protocolo, el algoritmo de cifrado asimétrico (por ejemplo, RSA) con otro algoritmo que solo puede realizar intercambio de claves (por ejemplo, Diffie-Hellman); en este último caso, es absolutamente necesario unirlo con un cifrado simétrico.
Para el rendimiento , un punto crítico es si prevé que dos partes se envíen varios mensajes en poco tiempo. Con "RSA puro" y una clave RSA de 4096 bits, cada mensaje cifrado necesitará 512 bytes. Con un sistema híbrido, los mensajes sucesivos pueden reutilizar una clave de sesión ya negociada y, por lo tanto, solo necesitan unos 120 bytes (si los mensajes de texto sin formato tienen una longitud de aproximadamente 100 bytes). Por supuesto, también existe el problema del costo de la CPU (el descifrado RSA-4096 no es exactamente gratuito), pero los problemas de ancho de banda de la red suelen ser más importantes.
Tenga en cuenta que si se envían varios mensajes y cada uno de ellos se cifra por separado, es su responsabilidad incluir en los mensajes algo que permita al destinatario detectar si algunos mensajes se eliminaron, duplicaron o salieron de -orden. También es posible que desee agregar algunas contramedidas específicas para detectar alteraciones de mensajes y mensajes completamente falsos.
Más generalmente, con el cifrado RSA, la clave pública es pública, por lo tanto, todos pueden usar la clave para cifrar mensajes. Si tiene una noción de "flujo de mensajes", necesitará algo más de cifrado para evitar la inserción externa de mensajes adicionales. Esto está vinculado con nociones de autenticación. Una vez más, los sistemas que se basan en el cifrado híbrido pueden reutilizar un procedimiento de intercambio inicial y, por lo tanto, garantizar que todos los mensajes protegidos (mediante cifrado simétrico y MAC) con una clave de sesión determinada provienen de la misma fuente.
Para resumir: debe usar TLS o DTLS . Diseñar su propio protocolo es un camino lleno de peligros.
Si decide utilizar criptografía asimétrica solo, debe incluir cierta aleatoriedad en cada mensaje. Si no lo haces:
Supongamos que un intruso capta una comunicación militar y sabe que el mensaje será una de dos cosas:
Aunque no puede descifrar el mensaje, conoce la clave pública, por lo que puede intentar a su vez cifrar cada mensaje posible y ver si coincide con el texto cifrado.
Debido a sutilezas como esta, la gente siempre dice "no hagas rodar tu propia criptografía".
Lea otras preguntas en las etiquetas public-key-infrastructure encryption asymmetric