Al usar el modo de encadenamiento de CFB con AES, vea las instrucciones de que la "longitud del texto sin formato (en bytes) debe ser un múltiplo de segment_size / 8" (también se menciona here ). ¿Qué significa eso?
Al usar el modo de encadenamiento de CFB con AES, vea las instrucciones de que la "longitud del texto sin formato (en bytes) debe ser un múltiplo de segment_size / 8" (también se menciona here ). ¿Qué significa eso?
El tamaño del segmento se refiere a la cantidad de texto sin formato cifrada por la salida de la operación de cifrado AES.
AES tiene entrada y salida en bloques de 128 bits, y el modo CFB convierte el cifrado del bloque en un cifrado de flujo usando un IV, que genera 128 bits de flujo a la vez.
En los modos segmentados, solo se utiliza una parte de ese flujo. Para un tamaño de segmento de 8 bits, solo los primeros 8 bits de flujo se utilizan para cifrar 8 bits de texto plano. Los 120 bits restantes no se utilizan. Esos 8 bits de texto cifrado se convierten en los últimos bits del bloque de entrada.
La forma en que se generan los 120 bits restantes del bloque de entrada depende de la implementación. Incluso pueden estar sin cambios desde el IV original. La alternativa común es desplazar a la izquierda el bloque de entrada anterior por el tamaño del segmento, este es el método descrito en Wikipedia para el cifrado segmentado CFB.
El cifrado segmentado obviamente no es tan eficiente como usar todo el bloque de salida. Hacer esto permite que se produzca la sincronización cuando se pierden datos de cierto tamaño.
El siguiente diagrama se extrae de Publicación especial del NIST 800-38a que describe la operación de cifrado segmentado:
Lea otras preguntas en las etiquetas encryption aes