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

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

En criptografía, un cifrador por bloques opera en bloques de tamaño fijo, a menudo de 64 o 128 bits. Para cifrar mensajes de mayor tamaño se usan diferentes modos de operación. 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.

Modo ECB (Electronic codebook)

El método más simple de modo de cifrado es el llamado ECB (electronic codebook), en el cual el mensaje es troceado en bloques, cada uno de los cuales es cifrado de manera separada. La desventaja de este método es que bloques idénticos de mensaje sin cifrar producirán idénticos textos cifrados. Por esto, no proporciona una auténtica confidencialidad y no es recomendado para protocolos criptopgráficos.

Ecb encryption.png

Ecb decryption.png

Un claro ejemplo de cómo el método ECB puede revelar patrones del texto. Una versión de mapa de bits de la imagen de la izquierda ha sido cifrada con ECB para crear la imagen del centro:

Tux.png Tux ecb.jpg Tux secure.jpg
Original Cifrado usando modo ECB Cifrado usando otros modos

La imagen de la derecha es cómo podría aparecer la misma imagen cifrada con CBC, CTR o cualquiera de los otros métodos seguros, esto es, indistinguible de ruido aleatorio. Hay que notar que la apariencia aleatoria de la imagen de la derecha dice muy poco sobre si la imagen ha sido cifrada de manera segura. Muchos métodos no seguros de cifrado producen, a priori, un resultado aparentemente aleatorio.

El modo ECB puede hacer que protocolos sin protección de integridad sean aún más susceptibles a ataques de repetición, dado que cada bloque es descifrado de la misma manera. Por ejemplo, el videojuego online Phantasy Star Online: Blue Burst usa Blowfish en modo ECB. Antes de que el método de intercambio de claves fuese craqueado, algunos jugadores enviaban repetidamente el bloque cifrado de Monstruo matado, cifrado cada uno con Blowfish, para ganar ilegítimamente puntos de experiencia.

Modo CBC (Cipher-block chaining)

En el modo CBC (cipher-block chaining), antes de ser cifrado, a cada bloque de texto se le aplica una operación XOR con el previo bloque ya cifrado. De este modo, cada bloque es dependiente de todos los bloques de texto planos hasta ese punto. Además, para hacer cada mensaje único se puede usar un vector de inicialización.

Cbc encryption.png

Cbc decryption.png

Si el primer bloque tiene índice 1, la fórmula matemática para el cifrado CBC es:

C_i = E_K(P_i \oplus C_{i-1}), C_0 = IV

mientras que la fórmula del descifrado es:

P_i = D_K(C_i) \oplus C_{i-1}, C_0 = IV

CBC es el modo usado más a menudo. Su principal contrapartida es que es secuencial y no puede funcionar en paralelo.

Modo PCBC (Propagating cipher-block chaining)

El modo propagating cipher-block chaining fue diseñado para que pequeños cambios en el texto cifrado se propagasen más que en el modo CBC. Las rutinas de cifrado y descifrado se definen como sigue:

C_i = E_K(P_i \oplus P_{i-1} \oplus C_{i-1}), P_0 = IV, C_0 = 0

P_i = D_K(C_i) \oplus P_{i-1} \oplus C_{i-1}, P_0 = IV, C_0 = 0

PCBC es usado por Kerberos y Waste, aunque además de en éstos, su uso es bastante infrecuente.


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Cifrado por bloques — Cifrado por bloques. En Criptografía, una unidad de cifrado por bloques (block cipher en inglés) es una unidad de cifrado de clave simétrica que opera en grupos de bits de longitud fija, llamados bloques, aplicándoles una transformación… …   Wikipedia Español

  • Jazz — Para otros términos similares, véase Jazz (desambiguación). Jazz Orígenes musicales Blues, música africana, música clásica, minstrel Orígenes culturales Mediados del Siglo XIX en Estado …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”