logo

Estándar de cifrado avanzado (AES)

Advanced Encryption Standard (AES) es una especificación para el cifrado de datos electrónicos establecida por el Instituto Nacional de Estándares y Tecnología (NIST) de EE. UU. en 2001. AES se usa ampliamente hoy en día porque es mucho más fuerte que DES y triple DES a pesar de ser más duro. para implementar.

Puntos para recordar

  • AES es un cifrado de bloque.
  • El tamaño de la clave puede ser de 128/192/256 bits.
  • Cifra datos en bloques de 128 bits cada uno.

Eso significa que toma 128 bits como entrada y genera 128 bits de texto cifrado cifrado como salida. AES se basa en el principio de red de sustitución-permutación, lo que significa que se realiza mediante una serie de operaciones vinculadas que implican reemplazar y mezclar los datos de entrada.



cadena a objeto json

Funcionamiento del cifrado:
AES realiza operaciones en bytes de datos en lugar de bits. Dado que el tamaño del bloque es de 128 bits, el cifrado procesa 128 bits (o 16 bytes) de datos de entrada a la vez.

El número de rondas depende de la longitud de la clave de la siguiente manera:

  • Clave de 128 bits – 10 rondas
  • Clave de 192 bits – 12 rondas
  • Clave de 256 bits – 14 rondas

Creación de claves redondas:
Se utiliza un algoritmo de programación de claves para calcular todas las claves redondas a partir de la clave. Entonces, la clave inicial se usa para crear muchas claves redondas diferentes que se usarán en la ronda correspondiente de cifrado.

Cifrado:
AES considera cada bloque como una cuadrícula de 16 bytes (4 bytes x 4 bytes = 128) en una disposición principal de columnas.

 [ b0 | b4 | b8 | b12 | | b1 | b5 | b9 | b13 | | b2 | b6 | b10| b14 | | b3 | b7 | b11| b15 ]>

Cada ronda consta de 4 pasos:

  • Subbytes
  • ShiftFilas
  • MezclarColumnas
  • Agregar clave redonda

La última ronda no tiene la ronda MixColumns.

SubBytes realiza la sustitución y ShiftRows y MixColumns realizan la permutación en el algoritmo.

Subbytes:
Este paso implementa la sustitución.

En este paso cada byte se sustituye por otro byte. Se realiza mediante una tabla de búsqueda también llamada S-box. Esta sustitución se realiza de manera que un byte nunca se sustituye por sí mismo ni tampoco por otro byte que sea un complemento del byte actual. El resultado de este paso es una matriz de 16 bytes (4 x 4) como antes.

Los siguientes dos pasos implementan la permutación.

ShiftFilas:
Este paso es tal como suena. Cada fila se desplaza un número determinado de veces.

  • La primera fila no se desplaza.
  • La segunda fila se desplaza una vez hacia la izquierda.
  • La tercera fila se desplaza dos veces hacia la izquierda.
  • La cuarta fila se desplaza tres veces hacia la izquierda.

(Se realiza un desplazamiento circular hacia la izquierda).

nueva línea pitón
 [ b0 | b1 | b2 | b3 ] [ b0 | b1 | b2 | b3 ] | b4 | b5 | b6 | b7 | ->| b5 | b6 | b7 | b4 | | b8 | b9 | b10 | b11 | | b10 | b11 | b8 | b9 | [ b12 | b13 | b14 | b15 ] [ b15 | b12 | b13 | b14 ]>

Mezclar columnas:
Este paso es básicamente una multiplicación de matrices. Cada columna se multiplica por una matriz específica y, por lo tanto, la posición de cada byte en la columna cambia como resultado.

Este paso se omite en la última ronda.

 [ c0 ] [ 2 3 1 1 ] [ b0 ] | c1 | = | 1 2 3 1 | | b1 | | c2 | | 1 1 2 3 | | b2 | [ c3 ] [ 3 1 1 2 ] [ b3 ]>

Agregar claves redondas:
Ahora la salida resultante de la etapa anterior se aplica mediante XOR con la clave redonda correspondiente. Aquí, los 16 bytes no se consideran una cuadrícula sino simplemente 128 bits de datos.

Después de todas estas rondas, se devuelven como salida 128 bits de datos cifrados. Este proceso se repite hasta que todos los datos a cifrar pasen por este proceso.

Descifrado:
Las etapas de las rondas se pueden deshacer fácilmente ya que estas etapas tienen un opuesto que, cuando se realiza, revierte los cambios. Cada 128 bloques pasa por 10, 12 o 14 rondas dependiendo del tamaño de la clave.

Las etapas de cada ronda de descifrado son las siguientes:

  • Agregar clave redonda
  • Columnas de mezcla inversa
  • ShiftFilas
  • Subbyte inverso

El proceso de descifrado es el proceso de cifrado que se realiza a la inversa, por lo que explicaré los pasos con diferencias notables.

Columnas de mezcla inversa:
Este paso es similar al paso MixColumns en cifrado, pero difiere en la matriz utilizada para realizar la operación.

 [ b0 ] [ 14 11 13 9 ] [ c0 ] | b1 | = | 9 14 11 13 | | c1 | | b2 | | 13 9 14 11 | | c2 | [ b3 ] [ 11 13 9 14 ] [ c3 ]>

Subbytes inversos:
La S-box inversa se utiliza como tabla de búsqueda y mediante la cual se sustituyen los bytes durante el descifrado.

Aplicaciones:

AES se utiliza ampliamente en muchas aplicaciones que requieren almacenamiento y transmisión de datos seguros. Algunos casos de uso comunes incluyen:

    Seguridad inalámbrica: AES se utiliza para proteger redes inalámbricas, como redes Wi-Fi, para garantizar la confidencialidad de los datos y evitar el acceso no autorizado. Cifrado de bases de datos: AES se puede aplicar para cifrar datos confidenciales almacenados en bases de datos. Esto ayuda a proteger la información personal, los registros financieros y otros datos confidenciales del acceso no autorizado en caso de una violación de datos. Comunicaciones seguras: AES se utiliza ampliamente en protocolos como comunicaciones por Internet, correo electrónico, mensajería instantánea y llamadas de voz/video. Garantiza que los datos permanezcan confidenciales. Almacenamiento de datos: AES se utiliza para cifrar datos confidenciales almacenados en discos duros, unidades USB y otros medios de almacenamiento, protegiéndolos del acceso no autorizado en caso de pérdida o robo. Redes privadas virtuales (VPN): AES se usa comúnmente en protocolos VPN para asegurar la comunicación entre el dispositivo de un usuario y un servidor remoto. Garantiza que los datos enviados y recibidos a través de la VPN permanezcan privados y no puedan ser descifrados por espías. Almacenamiento seguro de contraseñas: el cifrado AES se emplea comúnmente para almacenar contraseñas de forma segura. En lugar de almacenar contraseñas en texto plano, se almacena la versión cifrada. Esto agrega una capa adicional de seguridad y protege las credenciales del usuario en caso de acceso no autorizado al almacenamiento. Cifrado de archivos y discos: AES se utiliza para cifrar archivos y carpetas en computadoras, dispositivos de almacenamiento externos y almacenamiento en la nube. Protege los datos confidenciales almacenados en los dispositivos o durante la transferencia de datos para evitar el acceso no autorizado.

Resumen :
El conjunto de instrucciones AES ahora está integrado en la CPU (ofrece un rendimiento de varios GB/s) para mejorar la velocidad y la seguridad de las aplicaciones que utilizan AES para cifrado y descifrado. Aunque han pasado 20 años desde su introducción, no hemos logrado romper el algoritmo AES, ya que es inviable incluso con la tecnología actual. Hasta la fecha, la única vulnerabilidad sigue siendo la implementación del algoritmo.