¿Qué es la encriptación AES y cómo funciona?
En un mundo donde hackers malintencionados buscan oportunidades para robar o destruir datos, la encriptación se ha convertido en una parte esencial del mundo digital. La encriptación es una manera de proteger los datos al cifrarlos de tal manera que solo las personas autorizadas con la clave secreta pueden descifrarlos y leerlos. AES es un algoritmo de encriptación que utilizan ampliamente los proveedores de servicios VPN y las agencias gubernamentales para proteger los datos. Este artículo se centra en la encriptación AES y cómo funciona.
¿Qué es la encriptación AES?
Hay dos tipos principales de encriptación: Simétrica y Asimétrica. La encriptación asimétrica implica el uso de dos claves distintas (privada y pública) para cifrar y descifrar los datos, mientras que la encriptación simétrica utiliza una única clave para el cifrado y descifrado. El Estándar de Encriptación Avanzada (AES, por sus siglas en inglés) pertenece a la categoría simétrica de encriptación. Es un subconjunto de la familia de cifrados de bloque simétricos Rijndael desarrollados por Vincent Rijmen y Joan Dae en 1998, de ahí el nombre de “Rijndael.”
AES es un cifrado iterativo basado en el algoritmo de red de permutación de sustitución (SPN). El algoritmo SPN es una clase de cifrados de bloque que implica rondas de una serie repetida de operaciones matemáticas. Es gracias a estas rondas de encriptación que AES es un cifrado de encriptación formidable. AES tiene tres diferentes tipos basados en la longitud de las claves de encriptación. Estos incluyen AES-128, AES-192, y AES-256.
La longitud de la clave de cada uno de estos tipos de AES determina su fortaleza; cuanto mayor es la longitud, más fuerte es la encriptación. Los cifrados de encriptación AES de 128 bits y 192 bits tienen 3.4 x 1038 y 6.2 x 1057 posibles combinaciones de claves, respectivamente. AES-256 es el cifrado de encriptación más fuerte y tiene 1.1 x 1077 posibles combinaciones de claves. A pesar de la variación en la longitud de la clave, el tamaño del bloque de AES siempre permanece igual: 128 bits.
¿Por qué se desarrolló AES?
Los cifrados de encriptación antiguos eran más sencillos, y con la cantidad correcta de tiempo y herramientas, cualquiera podría descifrarlos. A medida que la tecnología avanzaba, los hackers dispusieron de mejores herramientas para luchar contra los cifrados de encriptación. Era evidente que los cifrados de encriptación necesitaban ser más sofisticados que los existentes en ese momento, que eran el Estándar de Encriptación de Datos (DES).
Al igual que el AES, el DES también es un algoritmo de clave simétrica. IBM desarrolló el DES en los años 70, y la Oficina Nacional de Normas de Estados Unidos (NBS por sus siglas en inglés) lo adoptó como cifrado de encriptación estándar para encriptar información gubernamental sensible. Debido a su adopción por la NBS y el gobierno estadounidense, diferentes sectores aceptaron el DES. También despertó el interés de la comunidad académica, lo que impulsó el estudio de la criptografía. Durante décadas, el DES demostró ser formidable hasta que en junio de 1997 el grupo DESCHALL lo descifró públicamente.
El descifrador DES de la Electronic Frontier Foundation (EFF) realizó la misma hazaña en 56 horas al año siguiente. En 1999, se tardó menos de 24 horas en romper una clave DES. Estos eventos significativos demostraron que con el aumento del poder de cálculo y el avance en la tecnología, sólo sería cuestión de tiempo antes de que descifrar el DES se convirtiera en una tarea fácil. Además, la longitud de la clave DES no superaba los 56 bits en comparación con el todopoderoso AES de 256 bits.
En 2001, el Instituto Nacional de Normas y Tecnología (NIST) anunció su adopción del cifrado de encriptación AES debido a sus capacidades completas. Es mejor que el DES en términos de rendimiento, fácil de implementar y extremadamente difícil de romper.
¿Cómo funciona la encriptación AES para proteger tus datos?
Entender el algoritmo de encriptación AES puede ser un desafío si no tienes una formación matemática adecuada. Sin embargo, intentaremos simplificar el proceso para que tengas una comprensión básica de cómo funciona. El algoritmo de encriptación AES cifra y descifra datos en bloques de 128 bits. A pesar de la variación en la longitud de la clave, el tamaño del bloque no cambia.
El algoritmo de cifrado AES combina una clave secreta (clave de 128, 192 o 256 bits) con texto plano (datos sensibles que deseas cifrar) para crear un cifrado. El cifrado AES utiliza una serie de transformaciones matemáticas (sustitución-permutación) utilizando la clave secreta y el texto plano. Antes de que ocurra cualquier operación, los datos de texto plano se separan en una matriz de 4 x 4 de dieciséis bytes o 128 bits (un byte equivale a 8 bits) ya que AES cifra los datos en bloques de bits.
El algoritmo AES utiliza la sustitución-permutación con varias rondas para convertir los datos de texto plano en un texto cifrado final. El tamaño de la clave determina el número de rondas. Un tamaño de clave de 128 bits tiene diez rondas, un tamaño de clave de 192 bits tiene doce rondas, y un tamaño de clave de 256 bits tiene catorce rondas. Ahora, echemos un vistazo a las operaciones involucradas en el proceso de conversión de datos de texto plano a texto cifrado.
1. Expansión de la clave y AddRoundKey
En esta operación, AES utiliza el Rijndael Key Schedule para producir nuevas claves de ronda de 128 bits (subclave) a partir de la clave secreta primaria. Es decir, implica el uso de la clave secreta inicial para crear una serie de claves para cada ronda de la operación de cifrado. En la operación AddRoundKey, cada byte del estado de datos actual se mezcla con un byte de la clave de ronda actual utilizando una operación XOR a nivel de bit.
2. SubBytes (sustituir bytes)
En esta operación, el bloque de 16 bytes se ejecuta a través de la caja de sustitución Rijndael (S-Box) para dar un valor alternativo para cada byte. Cada byte se sustituye de acuerdo con las reglas prescritas por las S-Boxes Rijndael predefinidas. La S-box toma un valor y lo reemplaza con otro valor. El proceso es mucho más complicado, pero hace que romper el cifrado AES sea casi imposible con los recursos informáticos en el mundo.
3. ShiftRows
La operación ShiftRows desplaza todas las filas en un bloque de 16 bytes, a excepción de la primera. Es más fácil de entender en comparación con la operación SubBytes. La primera fila no cambia y permanece igual. La segunda fila se desplaza hacia la izquierda en un byte, la tercera fila se desplaza hacia la izquierda en dos bytes y la cuarta fila se desplaza hacia la izquierda en tres bytes.
4. MixColumns
Esta operación transforma linealmente cada columna en el bloque de 16 bytes. Debido a lo complicado que puede ser esta operación, no nos detendremos demasiado en ella. Utilizando multiplicación de matrices y adición XOR a nivel de bits, esta operación multiplica cada columna con una matriz predefinida de 4 x 4, resultando en una nueva columna y bloque.
Orden de Operaciones
Todos los datos que el AES encripta deben pasar por cada una de las operaciones mencionadas. Estas operaciones se repiten varias veces dependiendo de la cantidad de rondas necesarias. Una clave de 128 bits requiere diez rondas, una clave de 192 bits requiere doce rondas y una clave de 256 bits requiere catorce rondas. A continuación, examinaremos el orden en el que se ejecutan estas operaciones para encriptar los datos.
1. Expansión de Clave
2. Agregar Ronda
3. Las siguientes operaciones se realizarán durante 9, 11, o 13 rounds en el orden a continuación:
SubBytes
ShiftRows
MixColumns
AddRound
4. Las siguientes operaciones tienen lugar en la última ronda (10ª, 12ª o 14ª dependiendo de la longitud de la clave secreta):
SubBytes
ShiftRows
AddRound
Descifrando la encriptación AES
Hemos visto cómo AES encripta datos, ¿pero cómo los descifra? El proceso de descifrado es sencillo. Al revertir todos los pasos involucrados en el proceso de encriptación, se descifrará la información. Veamos cómo sería este proceso si estuviésemos descifrándola.
1. Las siguientes operaciones tienen lugar en la última ronda (10ª, 12ª o 14ª, dependiendo de la longitud de la clave secreta):
Inverse AddRound
Inverse ShiftRows
Inverse SubBytes
2. Las siguientes operaciones se realizarán durante 9, 11 o 13 rondas en el orden siguiente:
Inverse AddRound
Inverse MixColumns
Inverse ShiftRows
Inverse SubBytes
Inverse AddRound
¿Tiene problemas de seguridad la encriptación AES?
Aunque no se han registrado ataques exitosos a la encriptación AES, una implementación incorrecta puede llevar a que los hackers descubran una vulnerabilidad y la exploten. Dado que los criptógrafos siempre buscan vulnerabilidades en AES, ha habido algunos ataques teóricos y de canal lateral exitosos. Veamos algunos de ellos.
1. Ataque de distinción con clave conocida
En 2009, se logró con éxito un intento de romper la versión de 8 rondas de AES-128 utilizando un ataque de distinción con clave conocida. Dado que AES-128 tiene diez rondas de cifrado, sigue siendo impenetrable. Además, un atacante debe conocer la clave de cifrado antes de que pueda funcionar, lo cual es altamente improbable.
2. Ataques de canal lateral
Los ataques de canal lateral solo funcionarán si alguien no implementa correctamente el cifrado AES, ya que dependen de que un sistema filtre información. El atacante presta atención a las fugas de datos, como información electromagnética, consumo de energía, información de tiempo, etc., para recopilar información del algoritmo. AES no está completamente inmune a este tipo de ataque.
3. Otros ataques
Otros ataques que los criptógrafos han intentado usar para romper el cifrado AES incluyen ataques de recuperación de clave y ataques de clave relacionada. En ambos casos, el atacante se enfoca en la clave de cifrado. En un ataque de recuperación de clave, el atacante necesita tener al menos un par de mensajes cifrados y descifrados. En un ataque de clave relacionada, el atacante necesita conocer la relación entre dos claves diferentes. Estos ataques solo funcionan en sistemas que implementan incorrectamente AES y no son amenazas significativas.
Conclusión
La principal razón por la que las agencias de seguridad y los mejores servicios de VPN utilizan la encriptación AES es debido a su inmunidad a los ataques. Aparte de ser prácticamente imposible de romper, el Estándar de Encriptación Avanzada es rápido, versátil y fácil de implementar. En comparación con otros tipos de encriptación como DES, también utiliza menos memoria. Además, se puede combinar con otros protocolos de seguridad para garantizar un alto nivel de seguridad.