Modos de operación ECB, CBC, CFB, OFB y CTR. Ventajas y desventajas



Existen diferentes modos de operación que garantizan diversos grados de confidencialidad e integridad en los datos manejados.


  • Electronic Code-Block (ECB): el más sencillo es el modo electronic codebook (ECB), en el cual los mensajes se dividen en bloques y cada uno de ellos es cifrado por separado utilizando la misma clave K. La desventaja de este método es que a bloques de texto plano o claro idénticos les corresponden bloques idénticos de texto cifrado, de manera que se pueden reconocer estos patrones como guía para descubrir el texto en claro a partir del texto cifrado. De ahí que no sea recomendable para protocolos cifrados. Es útil pues, para cifrado de información muy reducida, sin regularidades estructurales (ej. claves)

  • Cipher-block chaining (CBC): en este modo, a cada bloque de texto plano se le aplica la operación XOR con el bloque cifrado anterior antes de ser cifrado. De esta forma, cada bloque de texto cifrado depende de todo el texto en claro procesado hasta este punto. Para hacer cada mensaje único se utiliza asimismo un vector de inicialización. Es útil para transmisiones orientadas a bloques. Por tanto, no es posible realizar operaciones de cifrado en paralelo sobre varios bloques de plaintext simultáneamente cuando se trabaja en modo CBC ya que en este modo de operación, como hemos visto, cada bloque depende de una operación con el bloque anterior. Por lo que un  bloque será dependiente de todos los bloques que le preceden.

  • Cipher feedback (CFB) y output feedback (OFB): los modos cipher feedback (CFB) y output feedback (OFB) hacen que el cifrado en bloque opere como una unidad de flujo de cifrado: se generan bloques de flujo de claves, que son operados con XOR y el texto en claro para obtener el texto cifrado. CFB es útil para transmisiones de flujos continuos mientras que OFB es útil para las transmisiones de flujos continuos en medios ruidosos.

  • Counter (CTR): al igual que OFB, el modo contador convierte una unidad de cifrado por bloques en una unidad de flujo de cifrado. Genera el siguiente bloque en el flujo de claves cifrando valores sucesivos de un contador. El contador puede ser cualquier función sencilla que produzca una secuencia de números donde los resultados se repiten con muy baja frecuencia. Si bien la operación más usada es un contador, el modo CTR tiene características similares al OFB, pero permite también usar una propiedad de acceso aleatorio para el descifrado.


A continuación se muestra una tabla resumen de los modos de operación anteriormente expuestos