Estándar de cifrado avanzado
Estándar de cifrado avanzado (AES)
Los siguientes dos pasos implementan la permutación.
Estándar de cifrado avanzado (AES)
Morris J. Dworkin, Elaine B. Barker, James R. Nechvatal, James Foti, Lawrence E. Bassham, E. Roback, James F. Jr de Dray.
Abstracto
El estándar de cifrado avanzado (AES) especifica un algoritmo criptográfico aprobado por FIPS que puede usarse para proteger los datos electrónicos. El algoritmo AES es un cifrado de bloque simétrico que puede cifrar (encifrador) y descifrar (descifrar) información. El cifrado convierte los datos en una forma ininteligible llamada Ciphertext; Descifrar el texto cifrado convierte los datos nuevamente en su formulario original, llamado Entreño de texto. El algoritmo AES es capaz de usar claves criptográficas de 128, 192 y 256 bits para cifrar y descifrar datos en bloques de 128 bits.
Estándar de cifrado avanzado (AES)
El estándar de cifrado avanzado (AES) es una especificación para el cifrado de datos electrónicos establecidos por la U.S Instituto Nacional de Normas y Tecnología (NIST) en 2001. AES se usa ampliamente hoy, ya que es mucho más fuerte que DES y Triple DES a pesar de ser más difícil de implementar.
Puntos para recordar
- AES es un cifrado de bloque.
- El tamaño de la clave puede ser 128/192/256 bits.
- Cifra datos en bloques de 128 bits cada uno.
Eso significa que se necesitan 128 bits como entrada y sale 128 bits de texto cifrado de cifrado como salida. AES se basa en el principio de red de sustitución-permutación, lo que significa que se realiza utilizando una serie de operaciones vinculadas que implica reemplazar y barajar los datos de entrada.
Trabajo del cifrado:
AES realiza operaciones en bytes de datos en lugar de en bits. Dado que el tamaño del bloque es de 128 bits, el cifrado procesa 128 bits (o 16 bytes) de los 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 clave para calcular todas las claves redondas desde la llave. Entonces, la clave inicial se usa para crear muchas teclas redondas diferentes que se utilizarán en la ronda correspondiente del cifrado.
Cifrado:
AES considera cada bloque como una cuadrícula de 16 bytes (4 bytes x 4 bytes = 128) en una columna de disposición principal.
[B0 | B4 | B8 | B12 | | B1 | B5 | B9 | B13 | | B2 | B6 | B10 | B14 | | B3 | B7 | B11 | B15]
Cada ronda consta de 4 pasos:
- Subbytes
- Balsas
- MIXCOLUMNS
- Agregar llave redonda
La última ronda no tiene la ronda de mixcolumns.
El subbytes realiza la sustitución y los cambios y mixcolumns realiza la permutación en el algoritmo.
Subbytes:
Este paso implementa la sustitución.
En este paso, cada byte es sustituido por otro byte. Se realizó usando una tabla de búsqueda también llamada s-box. Esta sustitución se realiza de manera que un byte nunca se sustituya por sí mismo y tampoco se sustituye por otro byte que es un cumplido 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.
Shiftrows:
Este paso es tal como suena. Cada fila se desplaza un número particular de veces.
- La primera fila no se desplaza
- La segunda fila se desplaza una vez a 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 cambio circular izquierdo.)
[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]
MixColumns:
Este paso es básicamente una multiplicación de matriz. Cada columna se multiplica con una matriz específica y, por lo tanto, la posición de cada byte en la columna se 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 teclas redondas:
Ahora la salida resultante de la etapa anterior es Xor-ed con la clave redonda correspondiente. Aquí, los 16 bytes no se consideran una cuadrícula, sino como 128 bits de datos.
Después de todas estas rondas, se devuelven 128 bits de datos encriptados como salida. Este proceso se repite hasta que todos los datos se encripten sufre este proceso.
Descifrado:
Las etapas en 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 las 10,12 o 14 rondas dependiendo del tamaño de la clave.
Las etapas de cada ronda en descifrado son las siguientes:
- Agregar llave redonda
- Mezumnas inversas
- Balsas
- Subbyte inverso
El proceso de descifrado es el proceso de cifrado realizado en reversa, por lo que explicaré los pasos con diferencias notables.
MIXCOLUMNES ANTERNAS:
Este paso es similar al paso de MIXCOLUMNS en el cifrado, pero difiere en la matriz utilizada para llevar a cabo 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 caja S inversa se usa como una tabla de búsqueda y utilizando el cual los bytes se sustituyen durante el descifrado.
Aplicaciones:
AES se usa ampliamente en muchas aplicaciones que requieren almacenamiento y transmisión de datos seguros. Algunos casos de uso común incluyen:
- Seguridad inalámbrica: AES se utiliza para asegurar las redes inalámbricas, como las redes Wi-Fi, para garantizar la confidencialidad de los datos y evitar el acceso no autorizado.
- Cifrado de la base de datos: AES se puede aplicar a los datos confusos en cifrado 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 usa ampliamente en protocolos como las comunicaciones de Internet, el correo electrónico, la mensajería instantánea y las llamadas de voz/video.Asegura que los datos sigan siendo confidenciales.
- Almacenamiento de datos: AES se utiliza para cifrar datos confidenciales almacenados en discos duros, unidades USB y otros medios de almacenamiento, protegiéndolo 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. Asegura que los datos enviados y recibidos a través de la VPN permanezcan privados y no puedan ser descifrados por Eavesdroppers.
- 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 de texto sin formato, 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 archivo y disco: AES se usa para cifrar archivos y carpetas en computadoras, dispositivos de almacenamiento externos y almacenamiento en la nube. Protege datos confidenciales almacenados en dispositivos o durante la transferencia de datos para evitar el acceso no autorizado.
Resumen :
El conjunto de instrucciones de AES ahora está integrado en la CPU (ofrece rendimiento de varios GB/s) para mejorar la velocidad y la seguridad de las aplicaciones que usan AES para el cifrado y el 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 permanece en la implementación del algoritmo.
Última actualización: 22 de mayo de 2023
Como artículo