(Criptografía)(Seguridad de la información) ¿Por qué la función de multiplicación en el algoritmo AES puede implementar un desplazamiento circular hacia la izquierda?
El Instituto Nacional de Estándares y Tecnología (NIST) formuló la nueva especificación del Estándar de cifrado avanzado (AES) el 26 de mayo de 2002. En este artículo, proporcionaré una implementación funcional de AES escrita en C# y explicaré en detalle qué es AES y cómo funciona la codificación. Le mostraré cómo cifrar datos usando AES y extenderé el código proporcionado en este artículo para desarrollar una clase AES de calidad comercial. También explicaré cómo integrar AES en su sistema de software, por qué y cómo probar el software basado en AES.
Tenga en cuenta que el código proporcionado en este artículo, y cualquier otra implementación basada en este artículo, está dentro del alcance del Control de exportación del módulo criptográfico federal (consulte Control de exportación comercial de criptografía para obtener más detalles).
AES es un nuevo algoritmo de cifrado que se puede utilizar para proteger datos electrónicos. Específicamente, AES es un cifrado de bloque de claves simétrico iterativo que puede cifrar y descifrar datos con 128 bits (16 bytes) utilizando claves de 128, 192 y 256 bits. A diferencia del cifrado de clave pública, que utiliza un par de claves, el cifrado de clave simétrica utiliza la misma clave para cifrar y descifrar datos. El cifrado de bloque devuelve la misma cantidad de datos cifrados que los datos de entrada. El cifrado iterativo utiliza una estructura de bucle donde se repiten las permutaciones y sustituciones de los datos de entrada. La Figura 1 muestra AES usando una clave de 192 bits para cifrar y descifrar un bloque de datos de 16 bytes.
Parte de los datos de la Figura 1
Descripción general del algoritmo AES
El algoritmo AES se basa en la sustitución y el reemplazo. El reemplazo es la reordenación de datos, mientras que la sustitución es el reemplazo de una unidad de datos por otra. AES utiliza varias técnicas diferentes para implementar el desplazamiento y el reemplazo. Para ilustrar estas técnicas, analicemos un ejemplo de cifrado AES específico utilizando los datos que se muestran en la Figura 1. Aquí están los valores de 128 bits que desea cifrar y sus matrices de índice correspondientes:
00 11 22 33 44 55 66 77 88 99 aa bb cc DD ee ff 0 1 2 3 4 5 6 7 8 9 10 1 1 12 13 14 15
El valor de la clave de 192 bits es:
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 1 12 13 14 15 16 17 0 17 0 1 2 3 4 5 6 7 8 9 10
Figura 2 Sbox (Sbox)
Cuando se llama al constructor de AES, dos cifrados Los métodos se inicializarán en la superficie. La primera tabla se llama S-box en lugar de box. es una matriz de 16×16. Las primeras 5 filas y las primeras 5 columnas de S-box se muestran en la Figura 2. Detrás de escena, la rutina de cifrado toma la matriz de claves y la utiliza para generar una tabla de claves denominada w[], como se muestra en la Figura 3.
También puedes entrar aquí para consultar el enlace web.