Encriptando múltiples bloques con un esquema asimétrico

1

Tengo una pregunta general sobre cómo se implementan los esquemas asimétricos.

Normalmente, hay un parámetro en un esquema asimétrico que limita la longitud del mensaje. Por ejemplo, el módulo en RSA.

Sé que el cifrado asimétrico se suele utilizar para cifrar una clave simétrica y el mensaje real se cifra con este último.

¿Pero cómo se implementan generalmente los esquemas asimétricos? Solo permitir mensajes pequeños hasta el parámetro límite (teniendo en cuenta explícitamente claves simétricas), o permitir mensajes largos arbitrarios (que necesitarían algún modo de operación, etc.)

    
pregunta firefexx 19.04.2014 - 11:24
fuente

1 respuesta

0

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.
respondido por el Thomas Pornin 19.04.2014 - 17:28
fuente

Lea otras preguntas en las etiquetas