Modos de operación de una unidad de cifrado por bloques

En criptografía, un modo de operación es un algoritmo que utiliza un cifrador por bloques para proveer seguridad a la información, como confidencialidad y autenticidad. Un cifrador por bloques en si mismo sólo es adecuado para la transformación criptográfica segura (cifrado y descifrado) de un grupo de bits de longitud fija llamado bloque (a menudo de 64 a 128 bits). Un modo de operación describe cómo aplicar repetidamente una operación de cifrado en un bloque simple para la transformación segura de cantidades de datos mayores que un bloque.
La mayoría de los modos requieren de una única secuencia binaria, usualmente llamada vector de inicialización (IV) para cada operación de encriptación. El IV no tiene que repetirse y para algunos modos es aleatorio. El vector de inicialización es utilizado para asegurar que se generen textos cifrados distintos cuando el mismo texto claro es encriptado varias veces con la misma clave. Los cifradores por bloques pueden manejar tamaños de bloque diferentes, pero durante la transformación el tamaño se mantiene siempre fijo. Los modos de cifrado por bloques operan con bloques completos, por lo que es necesario que la última parte del bloque sea rellenada si su tamaño es menor que del actual. Sin embargo, hay modos que no necesitan el rellenado porque usan un cifrador por bloques como cifrador en flujo de forma muy efectiva.
Los primeros modos descritos, como ECB, CBC, OFB y CFB, aseguraban la confidencialidad, pero no aseguraban la integridad del mensaje. Otros modos han sido diseñados para asegurar la confidencialidad y la integridad del mensaje, como modo CCM, modo EAX y modo OCB.

Vector de Inicialización

Un vector de inicialización (IV) o variable de inicialización (SV) es un bloque de bits que es utilizado por varios modos de operación para hacer aleatorio el proceso de encriptación y por lo tanto generar distintos textos cifrados incluso cuando el mismo texto claro es encriptado varias veces, sin la necesidad de regenerar la clave, ya que es un proceso lento.
El vector de inicialización tiene requerimientos de seguridad diferentes a los de la clave, por lo que el IV no necesita mantenerse secreto. Sin embargo, en la mayoría de los casos, es importante que el vector de inicialización no sea reutilizado con la misma clave. En los modos CBC y CFB, volver a usar el IV permite conocer la información contenida en el primer bloque del texto claro, y también prefijos comunes compartidos por dos mensajes. Para los modos OFB y CTR, la reutilización del vector de inicialización pone en riesgo la seguridad, dado que ambos crean un flujo de bits al que se le aplica una función XOR con el texto claro, que es totalmente dependiente del IV y de la clave ocupada. Reutilizar el flujo de bits también expone la seguridad. En el modo CBC, el vector de inicialización además debe ser impredecible al momento de realizar la encriptación; particularmente, una práctica muy común de encriptación ocupaba el último bloque de texto cifrado de un mensaje como vector de inicialización para el cifrado del próximo mensaje (éste método fue usado por el protocolo SSL 2.0). Si un atacante logra conocer el IV (o el bloque de texto cifrado previo) antes de obtener el próximo TLS CBC IV attack).

Other Languages