Articles

Estándar de cifrado avanzado

Anuncios

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

Se necesitaba un reemplazo para el DES ya que su tamaño de clave era demasiado pequeño. Con el aumento de la potencia de cálculo, se consideraba vulnerable frente a un ataque de búsqueda exhaustiva de claves. El triple DES se diseñó para superar este inconveniente, pero se descubrió que era lento.

Las características de AES son las siguientes –

  • Clave simétrica cifrado en bloque
  • Datos de 128 bits, claves de 128/192/256 bits
  • Más fuerte y rápido que el Triple-DES
  • Proporciona una especificación completa y detalles de diseño
  • Software implementable en C y Java

Funcionamiento de AES

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

Interesantemente, 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 plano como 16 bytes. Estos 16 bytes se organizan en cuatro columnas y cuatro filas para ser procesados 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 utiliza 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 –

Estructura de AES

Proceso de cifrado

Aquí nos limitamos a describir una ronda típica de cifrado AES. Cada ronda consta de cuatro subprocesos. El proceso de la primera ronda se representa a continuación –

Proceso de la primera ronda

Sustitución de bytes (SubBytes)

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

Desplazamiento

Cada una de las cuatro filas de la matriz se desplaza hacia la izquierda. Las entradas que se ‘caen’ se vuelven a insertar en el lado derecho de la fila. El desplazamiento 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 a la izquierda.

  • El resultado es una nueva matriz formada por los mismos 16 bytes pero desplazados entre sí.

    • MixColumns

      Cada columna de cuatro bytes se transforma ahora utilizando una función matemática especial. Esta función toma como entrada los cuatro bytes de una columna y emite cuatro bytes completamente nuevos, que sustituyen a la columna original. El resultado es otra nueva matriz formada por 16 nuevos bytes. Hay que tener en cuenta que este paso no se realiza en la última ronda.

      Addroundkey

      Los 16 bytes de la matriz se consideran ahora como 128 bits y se XOR con los 128 bits de la clave de la ronda. Si esta es la última ronda entonces la salida es el texto cifrado. En caso 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 el orden inverso. Cada ronda consiste en los cuatro procesos llevados a cabo en el orden inverso –

      • Añadir clave de ronda
      • Mezclar columnas
      • Desplazar filas
      • Sustitución de bytes
        • Dado que los subprocesos de cada ronda son de manera inversa, a diferencia de un Cifrado Feistel, los algoritmos de cifrado y descifrado necesitan ser implementados por separado, aunque están muy relacionados.

          Análisis de AES

          En la criptografía actual, AES está ampliamente adoptado y soportado tanto en hardware como en software. Hasta la fecha, no se ha descubierto ningún ataque criptoanalítico práctico contra AES. Además, AES tiene incorporada la flexibilidad de la longitud de la clave, lo que permite cierto grado de «protección futura» contra el progreso en la capacidad de realizar búsquedas exhaustivas de claves.

          Sin embargo, al igual que en el caso de DES, la seguridad de AES está garantizada sólo si se implementa correctamente y se emplea una buena gestión de claves.

          Anuncios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *