¿Cuáles son algunos ejemplos de la versatilidad de un cifrado de bloque sobre un cifrado de flujo?

0

Entiendo que se puede hacer que un cifrado de bloque actúe como un cifrado de flujo a costa de "perder versatilidad" del cifrado de bloque por el bien del rendimiento. No entiendo lo que estaría perdiendo.

Por ejemplo, el modo AES GCM es un cifrado de bloque que actúa como un cifrado de flujo, sin embargo, obtengo

  • Integridad (el mensaje no se puede modificar sin que yo sepa)
  • Transmisión (el objeto completo no tiene que cargarse en la RAM para el cifrado / descifrado)
  • otras características ...

Pregunta

  1. ¿Qué estaría perdiendo cuando AES esté en modo "bloque" vs modo "stream"? ... (esta pregunta no se supone que sea específica de AES, pero es con lo que estoy familiarizado)

  2. ¿Cuáles son algunos ejemplos del mundo real de un cifrado de bloque que se usa cuando un cifrado de flujo no es ideal?

pregunta random65537 28.03.2014 - 20:50
fuente

2 respuestas

3

Un cifrado de bloques es una permutación pseudoaleatoria indexada por clave en el espacio de bloques: para una clave dada < em> K , AES asigna bloques de 128 bits a bloques de 128 bits, de manera que no se asignan dos valores de bloque de entrada distintos al mismo valor de bloque de salida. El conocimiento de K también permite un cálculo eficiente de la permutación inversa.

Un cifrado de bloque puede usarse como elemento de construcción para varios procesos, incluyendo (pero no limitado a):

Un cifrado de flujo es un algoritmo especializado que cubre solo el "cifrado simétrico de arbitrariamente Mensajes largos "caso de uso. La esperanza es que al restringirnos a ese uso único, podamos diseñar un algoritmo más eficiente. La competencia eSTREAM dio como resultado una cartera de cifrados de flujo aparentemente seguros que de hecho son más rápidos que el cifrado basado en AES en un número de arquitecturas (por ejemplo, en una CPU Core2 x86 de 2,4 GHz, puedo hacer AES a 160 MBytes / s, mientras que el cifrado de flujo de Sosemanuk alcanza los 700 MBytes / s en el mismo hardware).

Tenga en cuenta, sin embargo, que el "cifrado simétrico solamente" es restrictivo: en muchas situaciones donde el cifrado simétrico es deseable, también debe agregar controles de integridad, es decir, algún tipo de MAC. Los cifrados de flujo no hacen MAC, mientras que hay modos de cifrado autenticados que permiten convertir un cifrado de bloque en cifrado y MAC, con relativamente poca sobrecarga en comparación con el cifrado sin formato (por cierto, hay una competencia en curso para la nueva AE Modos, que recibieron no menos de 57 presentaciones, por lo que deberíamos tener en el futuro algunos modos AE incluso mejores).

También se ha señalado que hay contextos de cifrado donde el acceso aleatorio es deseable (por ejemplo, cifrado del disco duro), y se obtiene con un cifrado de bloque en modo CTR, pero no necesariamente con un cifrado de flujo dedicado.

Para resumir , debe considerar el uso de un cifrado de flujo en un nuevo protocolo solo si tiene un problema de rendimiento que resolver, y el problema actual está dentro del alcance limitado de los cifrados de flujo. . Esto no sucede a menudo. Un ejemplo es cuando necesita gigabytes de bytes pseudoaleatorios (básicamente, cuando necesito bytes aleatorios en grandes cantidades, uso Sosemanuk inicializado con una clave y IV de /dev/urandom ).

    
respondido por el Tom Leek 28.03.2014 - 21:44
fuente
0

La mayoría de los cifrados de flujo son cifrados de bloques con algún tipo de modo de operación que se utiliza para modificar el cifrado del "siguiente" bloque.

Con frecuencia, los datos del bloque anterior se usan para alterar la salida del bloque "siguiente", lo que para su segunda pregunta hará imposible descifrar el siguiente bloque si pierde el anterior. Por ejemplo, en una transmisión de red es muy posible que pierda un paquete.

    
respondido por el Shawn C 28.03.2014 - 22:10
fuente

Lea otras preguntas en las etiquetas