Tema 7

7. Modos de operación: ECB, CBC, CFB, OFB, CTR y por qué algunos modos son inseguros

Un cifrado por bloques, por sí solo, solo sabe transformar bloques de tamaño fijo. Para cifrar mensajes reales hace falta una estrategia adicional: el modo de operación. Esa elección es crítica, porque el mismo algoritmo puede ser seguro o desastroso según cómo se encadenen los bloques y cómo se manejen parámetros como IV y nonces.

Objetivo Entender cómo se usan los cifrados por bloques en mensajes reales
Enfoque Práctico, comparativo y orientado a errores reales
Resultado Saber cuándo un modo es apropiado o inseguro

7.1 Introducción

Cuando estudiamos AES o DES, vimos algoritmos que operan sobre bloques de tamaño fijo. Pero los datos reales no suelen venir ya acomodados en bloques independientes y aislados. Un archivo, una imagen, una base de datos o una transmisión de red contiene secuencias largas donde importa cómo se relacionan entre sí los distintos bloques.

El modo de operación define precisamente esa relación. Indica cómo se procesa un mensaje completo, cómo intervienen IV o nonces, cómo se propagan errores y qué patrones podrían filtrarse. En la práctica, elegir mal el modo puede arruinar por completo un algoritmo fuerte.

7.2 Por qué un cifrado por bloques necesita un modo de operación

Un cifrado por bloques transforma una entrada de tamaño fijo en una salida del mismo tamaño. Si queremos proteger mensajes largos, necesitamos una regla que diga cómo dividir el mensaje, cómo combinar bloques entre sí y cómo tratar el inicio de la secuencia.

Sin esa regla, solo tendríamos una transformación aislada de bloques. El modo de operación es lo que convierte al cifrado base en una herramienta usable sobre datos reales.

7.3 Qué problemas resuelve un modo de operación

Un buen modo de operación intenta resolver varios problemas al mismo tiempo:

  • Evitar que bloques iguales produzcan salidas iguales de manera visible.
  • Permitir cifrar mensajes de múltiples bloques.
  • Definir cómo se propagan los errores.
  • Facilitar o limitar el paralelismo.
  • Establecer el rol de IV o nonces.
  • Reducir ciertos patrones estructurales del mensaje.

Algunos modos resuelven mejor unos aspectos que otros. Ninguno debe evaluarse solo por tradición o familiaridad.

7.4 Rol del IV y del nonce

Muchos modos necesitan un valor inicial adicional, como un vector de inicialización o un nonce. Este valor no siempre es secreto, pero sí debe cumplir propiedades específicas según el modo: aleatoriedad, unicidad o ambas.

Su función principal es evitar que dos mensajes iguales bajo la misma clave produzcan patrones repetidos y, en algunos casos, impedir ataques por reutilización de estado. Si el IV o nonce se maneja mal, el modo puede perder gran parte de su seguridad.

En criptografía, un parámetro público mal reutilizado puede ser tan peligroso como una clave mal protegida.

7.5 ECB: Electronic Codebook

ECB es el modo más simple. Cada bloque del mensaje se cifra de forma independiente con la misma clave. No hay encadenamiento entre bloques ni dependencia de un IV.

Su simplicidad puede hacer que parezca atractivo, pero es precisamente esa independencia la que lo vuelve peligroso. Si dos bloques de texto plano son iguales, producirán exactamente el mismo bloque cifrado. Esto filtra patrones visibles.

7.6 Por qué ECB es inseguro

ECB no oculta la estructura repetitiva del mensaje. En datos con patrones visuales, como imágenes o ciertos formatos de archivo, la forma general puede seguir siendo reconocible incluso después del cifrado. El atacante puede no leer el contenido completo, pero sí inferir regularidades, repeticiones y disposición estructural.

El problema no es teórico ni menor: ECB rompe una expectativa central del cifrado moderno, que es evitar que bloques iguales revelen equivalencia visible bajo la misma clave.

Por eso ECB se considera inadecuado para casi cualquier uso serio sobre datos estructurados.

7.7 CBC: Cipher Block Chaining

CBC mejora sobre ECB encadenando cada bloque con el bloque cifrado anterior. Antes de cifrar un bloque de texto plano, se combina con el resultado del bloque previo. El primer bloque se combina con un IV.

Esto hace que dos bloques iguales no necesariamente produzcan la misma salida, porque su contexto depende del encadenamiento anterior. De este modo se reduce de manera importante la filtración de patrones.

7.8 Propiedades prácticas de CBC

CBC fue muy usado durante años porque ofrece una mejora sustancial frente a ECB y es conceptualmente razonable. Sin embargo, tiene características prácticas que deben entenderse bien:

  • El cifrado no es tan fácil de paralelizar, porque cada bloque depende del anterior.
  • El descifrado sí puede paralelizarse mejor en ciertos contextos.
  • Un error o alteración en un bloque afecta el descifrado de más de un bloque.
  • Necesita un IV correctamente manejado.

7.9 Riesgos típicos de CBC

El principal error conceptual es pensar que CBC por sí solo resuelve todo. No lo hace. Sigue siendo un modo de confidencialidad, no de autenticación. También puede quedar expuesto a ataques si se combina con padding sin validaciones correctas o si se procesa de forma insegura en protocolos complejos.

Además, reutilizar IV o tratarlos de forma predecible puede debilitar la seguridad. CBC requiere disciplina operativa, no solo una implementación básica.

7.10 CFB: Cipher Feedback

CFB transforma al cifrado por bloques en una especie de modo orientado a flujo. En vez de cifrar directamente el bloque de texto plano, cifra un estado interno y usa la salida para combinarla con el mensaje.

Esto permite procesar datos de forma más flexible y, en algunas variantes, incluso manejar unidades menores que el tamaño del bloque completo. CFB fue útil en escenarios de transmisión secuencial, aunque hoy suele aparecer menos que otros modos modernos.

7.11 Propagación de errores en CFB

En CFB, un error en un segmento cifrado afecta el descifrado inmediato y también puede impactar parte de la secuencia posterior, según la variante usada. Esto puede ser útil o problemático dependiendo del contexto, pero siempre debe ser conocido por quien diseña el sistema.

7.12 OFB: Output Feedback

OFB también convierte el cifrado por bloques en un generador de flujo, pero de un modo diferente. En lugar de realimentar el texto cifrado, realimenta la salida interna del algoritmo. El resultado es una secuencia pseudoaleatoria independiente del mensaje, que luego se combina con el texto plano.

Una ventaja es que los errores de transmisión no se propagan en cadena como en otros modos. Sin embargo, esto no lo vuelve automáticamente superior: reutilizar el mismo estado inicial con la misma clave puede resultar muy peligroso.

7.13 CTR: Counter Mode

CTR es uno de los modos más importantes y prácticos en la actualidad. En lugar de encadenar bloques entre sí, cifra valores derivados de un contador y usa esas salidas como flujo para combinar con el texto plano.

Eso tiene ventajas muy relevantes:

  • Permite paralelizar cifrado y descifrado.
  • No requiere padding de la misma forma que otros modos.
  • Es eficiente en software moderno.
  • Sirve como base para construcciones autenticadas muy usadas.

7.14 El riesgo crítico de reutilizar nonce en CTR

CTR es potente, pero también exige una regla absoluta: no reutilizar el mismo nonce y contador inicial con la misma clave. Si eso ocurre, se reutiliza el mismo flujo pseudoaleatorio y pueden aparecer relaciones peligrosas entre mensajes cifrados distintos.

Este es uno de los casos más claros donde un modo moderno y eficiente puede volverse inseguro por un error operativo aparentemente pequeño.

7.15 Comparación general de modos clásicos

Modo Ventaja principal Debilidad principal Situación general
ECB Muy simple Filtra patrones No recomendado
CBC Oculta repeticiones mejor que ECB Requiere cuidado con IV y padding Útil pero desplazado por opciones más modernas
CFB Comportamiento similar a flujo Menor simplicidad operativa que CTR Uso más específico
OFB No propaga errores del mismo modo Reutilizar estado inicial es grave Menos frecuente hoy
CTR Rápido, paralelizable y flexible Nonce repetido rompe seguridad Muy usado y moderno

7.16 Padding y tamaño de mensaje

Algunos modos, especialmente cuando trabajan bloque a bloque de forma estricta, necesitan padding para completar el último bloque si el mensaje no tiene longitud múltiplo del tamaño de bloque. Ese relleno debe ser definido y validado correctamente.

Los errores en el manejo del padding no son detalles menores. En ciertos contextos pueden abrir la puerta a ataques muy serios, como los ataques de tipo padding oracle.

7.17 Propagación de errores entre modos

Los distintos modos difieren en cómo reacciona el sistema ante errores o alteraciones en bloques cifrados:

  • En ECB, el daño suele quedar contenido al bloque afectado.
  • En CBC, un bloque alterado afecta también parte del siguiente en el descifrado.
  • En modos de tipo flujo como OFB y CTR, la alteración impacta posiciones específicas según la combinación utilizada.

Este comportamiento importa tanto para confiabilidad como para seguridad, porque define qué puede lograr un atacante al modificar datos cifrados.

7.18 Confidencialidad no es autenticación

Todos los modos clásicos vistos hasta aquí se centran principalmente en confidencialidad. Ninguno garantiza por sí solo que el mensaje no haya sido modificado maliciosamente. Un sistema puede cifrar muy bien y aun así ser vulnerable a manipulación activa.

Por eso la práctica moderna favorece el cifrado autenticado, donde confidencialidad e integridad se tratan juntas. Esto lo veremos más adelante al estudiar MAC, HMAC y aplicaciones reales de protocolos seguros.

7.19 Qué modo conviene usar hoy

La respuesta depende del contexto, pero la tendencia moderna es evitar ECB y preferir modos más robustos y compatibles con autenticación. CTR es muy valioso por rendimiento y flexibilidad, siempre que el manejo de nonce sea impecable. CBC aún aparece en sistemas heredados, pero exige más cuidado operativo.

En muchos sistemas actuales, directamente se prefiere usar modos autenticados como GCM o ChaCha20-Poly1305 en lugar de separar manualmente cifrado y verificación de integridad.

7.20 Errores frecuentes de implementación

  • Usar ECB por simplicidad o desconocimiento.
  • Reutilizar IV o nonce con la misma clave.
  • No entender si el IV debe ser aleatorio, único o ambas cosas.
  • Confiar en confidencialidad sin agregar autenticación.
  • Manejar padding de forma insegura.
  • Elegir un modo sin considerar si el sistema necesita paralelismo, streaming o tolerancia a errores.

7.21 Qué debes recordar de este tema

  • Un cifrado por bloques necesita un modo de operación para proteger mensajes reales.
  • ECB es conceptualmente simple, pero inseguro porque filtra patrones.
  • CBC mejora sobre ECB, pero requiere cuidado con IV, padding y autenticación.
  • CFB y OFB acercan el comportamiento al de un flujo cifrado.
  • CTR es moderno, eficiente y paralelizable, pero no tolera reutilización de nonce con la misma clave.
  • Ninguno de estos modos clásicos garantiza por sí solo integridad o autenticidad.

7.22 Conclusión

Los modos de operación son una parte esencial de la criptografía aplicada. No son un detalle secundario del algoritmo, sino el mecanismo que determina cómo se comporta el cifrado sobre mensajes reales y qué riesgos aparecen en la práctica.

En el próximo tema estudiaremos los cifrados de flujo y veremos en qué se diferencian conceptualmente de los cifrados por bloques y cuándo resultan más apropiados.