La Red de Conocimientos Pedagógicos - Currículum vitae - Principio del algoritmo AES

Principio del algoritmo AES

El proceso de cifrado AES opera en una matriz de 4 × 4 bytes, que también se denomina "estado", y su valor inicial es un bloque de texto sin formato (un elemento de la matriz tiene el tamaño de un bloque de texto sin formato de un byte). (El método de cifrado Rijndael admite bloques más grandes y el número de filas de la matriz se puede aumentar adecuadamente). Al cifrar,

Cada ronda del ciclo de cifrado AES (excepto la última ronda) contiene cuatro pasos:

Cada byte de la matriz es convertido por una S-box de 8 bits. Este paso proporciona las capacidades de transformación no lineal del método de cifrado. La caja s está relacionada con el elemento inverso multiplicativo en GF(28) y se sabe que tiene buenas propiedades no lineales. Para evitar ataques de propiedades algebraicas simples, las cajas S se construyen combinando elementos inversos multiplicativos y matrices de transformación afín reversibles. Además, al construir la caja S, se evitan deliberadamente los puntos fijos y los puntos antifijos, es decir, el resultado de reemplazar bytes con una caja S será equivalente al resultado de la desalineación. El cuadro S en el algoritmo AES se muestra en la Figura 2.2.

Por ejemplo, un byte es 0x19. Después de la transformación S-box, n(1,9) = 0xd4, use 0xd4 en su lugar.

ShiftRows describe las operaciones de fila de la matriz. En este paso, cada fila se mueve cíclicamente un desplazamiento hacia la izquierda. En AES (tamaño de bloque de 128 bits), la primera fila permanece sin cambios y cada byte de la segunda fila se gira un espacio hacia la izquierda. De manera similar, los desplazamientos de la tercera y cuarta filas de la izquierda son 2 y 3 respectivamente. Después de ShiftRows, cada columna vertical de la matriz se compone de elementos de cada columna distinta de la matriz de entrada.

En el paso MixColumns, los cuatro bytes de cada columna se combinan entre sí mediante una transformación lineal. Los cuatro elementos de cada columna se utilizan como coeficientes y se combinan en un polinomio en GF(28), y luego este polinomio se multiplica módulo por un polinomio fijo. Este paso también puede considerarse como una multiplicación de matrices en campos finitos de Rijndael. La función MixColumns acepta cuatro bytes de entrada y genera cuatro bytes. Cada byte de entrada afecta a cuatro bytes de salida. Por lo tanto, los dos pasos de cambiar filas y mezclar columnas proporcionan difusión a este criptosistema.

El algoritmo AES utiliza una clave de entrada externa K (el número de palabras en la cadena de claves es Nk) y obtiene una clave extendida de * * * 4 (Nr 1) palabras a través del programa de expansión de claves. Incluye los siguientes tres módulos:

(1) Palabra ROT: introduce una secuencia de 4 bytes. x aquí es (02), como rcon[1]=[01000000]; rcon[2]=[02000000]; Rcon[3]=[04000000]...

Generación de clave extendida: Las primeras Nk palabras de la clave extendida son la clave externa K; las siguientes palabras W[[i]] son ​​iguales a las palabras anteriores W[[i-1]] y las Nk palabras anteriores W[[i-Nk]]. OR exclusivo, es decir, w [[I]] = w [[I-1]] w [Pero si I es múltiplo de Nk, W [I] = W [I-NK] subpalabra (palabra podrida(W[ [I -1]])rcon[I/Nk]