Estándar de cifrado avanzado

El algoritmo de cifrado simétrico más popular y ampliamente adoptado que se puede encontrar hoy en día es el Estándar de cifrado avanzado (AES). Se encuentra al menos seis veces más rápido que el triple DES.

Se necesitaba un reemplazo para DES ya que el tamaño de la clave era demasiado pequeño. Con el aumento de la potencia informática, se consideró vulnerable contra un ataque de búsqueda de claves exhaustivo. Triple DES fue diseñado para superar este inconveniente, pero se consideró lento.

Las características de AES son las siguientes:

  • Cifrado de bloque simétrico de clave simétrica
  • Datos de 128 bits, claves de 128/192/256 bits
  • Más fuerte y más rápido que Triple-DES
  • Proporcionar especificaciones completas y detalles de diseño.
  • Software implementable en C y Java

Operación de AES

AES es un cifrado iterativo en lugar de Feistel. Se basa en una "red de sustitución-permutación". Se compone de una serie de operaciones vinculadas, algunas de las cuales implican reemplazar entradas por salidas específicas (sustituciones) y otras implican mezclar bits (permutaciones).

Curiosamente, AES realiza todos sus cálculos en bytes en lugar de bits. Por lo tanto, AES trata los 128 bits de un bloque de texto sin formato como 16 bytes. Estos 16 bytes están organizados en cuatro columnas y cuatro filas para procesarlos como una matriz:

A diferencia de DES, el número de rondas en AES es variable y depende de la longitud de la clave. AES usa 10 rondas para claves de 128 bits, 12 rondas para claves de 192 bits y 14 rondas para claves de 256 bits. Cada una de estas rondas utiliza una clave de ronda de 128 bits diferente, que se calcula a partir de la clave AES original.

El esquema de la estructura de AES se muestra en la siguiente ilustración:

Proceso de cifrado

Aquí, nos restringimos a la descripción de una ronda típica de cifrado AES. Cada ronda se compone de cuatro subprocesos. El proceso de la primera ronda se describe a continuación:

Sustitución de bytes (subbytes)

Los 16 bytes de entrada se sustituyen buscando una tabla fija (caja S) dada en el diseño. El resultado está en una matriz de cuatro filas y cuatro columnas.

Shiftrows

Cada una de las cuatro filas de la matriz se desplaza hacia la izquierda. Cualquier entrada que se "caiga" se vuelve a insertar en el lado derecho de la fila. El cambio se realiza de la siguiente manera:

  • La primera fila no se desplaza.

  • La segunda fila se desplaza una posición (byte) a la izquierda.

  • La tercera fila se desplaza dos posiciones a la izquierda.

  • La cuarta fila se desplaza tres posiciones hacia la izquierda.

  • El resultado es una nueva matriz que consta de los mismos 16 bytes pero desplazados entre sí.

MixColumns

Cada columna de cuatro bytes ahora se transforma utilizando una función matemática especial. Esta función toma como entrada los cuatro bytes de una columna y genera cuatro bytes completamente nuevos, que reemplazan la columna original. El resultado es otra matriz nueva que consta de 16 bytes nuevos. Cabe señalar que este paso no se realiza en la última ronda.

Agregar clave redonda

Los 16 bytes de la matriz ahora se consideran 128 bits y se aplican XOR a los 128 bits de la clave redonda. Si esta es la última ronda, la salida es el texto cifrado. De lo contrario, los 128 bits resultantes se interpretan como 16 bytes y comenzamos otra ronda similar.

Proceso de descifrado

El proceso de descifrado de un texto cifrado AES es similar al proceso de cifrado en orden inverso. Cada ronda consta de los cuatro procesos realizados en orden inverso:

  • Agregar clave redonda
  • Mezclar columnas
  • Cambiar filas
  • Sustitución de bytes

Dado que los subprocesos en cada ronda son de manera inversa, a diferencia de un cifrado Feistel, los algoritmos de cifrado y descifrado deben implementarse por separado, aunque están muy relacionados.

Análisis AES

En la criptografía actual, AES es ampliamente adoptado y soportado tanto en hardware como en software. Hasta la fecha, no se han descubierto ataques criptoanalíticos prácticos contra AES. Además, AES tiene una flexibilidad incorporada en la longitud de la clave, lo que permite cierto grado de "prueba de futuro" frente al progreso en la capacidad de realizar búsquedas exhaustivas de claves.

Sin embargo, al igual que para DES, la seguridad de AES está garantizada solo si se implementa correctamente y se emplea una buena gestión de claves.