Anteriormente habíamos mencionado las capaz de cifrado que utiliza la criptografía AES, pero no habíamos explorado a fondo sus principales características tanto de Cifrado como de Descifrado, por lo cual lo veremos en este articulo muy corto y sencillo a la vez.
CIFRADO. . .
Existe una tabla de sustitución fija, llamada S-Box que aplica estas operaciones y permite realizar la operación SubBytes mediante un simple vistazo.
Entonces si necesitamos realizar la operación SubBytes al número {19}, no tenemos más que mirar la tabla, fijandonos en la fila 1x y la columna x9, obteniendo así que la transformación de {19} es {D4}.
ShiftRows: La operación ShiftRows consiste, según (NIS01), en una rotación cíclica hacía la izquierda de las filas de la notación matricial del Estado, de manera que la primera fila permanece igual, la segunda fila se rota hacía la izquierda una posición, la tercer fila se rota hacía la izquierda dos posiciones y, por último, la cuarta fila se rota hacía la izquierda tres posiciones.
A continuación mostraremos con claridad la función de esta operación.
MixColumns: En la operación MixColumns, los cuatro bytes de cada columna de la notación matricial del Estado se combina utilizando una transformación lineal invertible, como lo establece (NIS01).
Cada columna se trata como un Polinomio y luego se multiplica el módulo x^4+1 con un polinomio fijo a(x)={03}x^3+{01}x^2+{01}x+{02}. Es más sencillo verlo como una multiplicación matricial, donde el Estado siempre se multiplica a la derecha de la misma matriz.
Multiplicando de esta manera, siempre teniendo en cuenta los aspectos matemáticos que hemos comentado, obtendremos el resultado de la operación MixColumns. Dentro de AES este es, sin duda, uno de los procesos más costosos en cuanto a cantidad de operaciones realizadas.
AddRoundKey: La operación AddRoundKey consiste, según (NIS01), en la combinación de subclaves de ronda correspondiente con el Estado. Esta combinación se realiza a través de XOR.
En la imagen que corresponde al proceso de cifrado se observa que en la ronda inicial (Ronda 0) se realiza esta operación. En el caso que estamos estudiando, longitud de clave de 128 bits, la subclave de ronda 0 es la propia clave de cifrado. Es importante mencionar que, en el caso de tener claves de 192 y 256 bits, su correspondiente subclave de ronda 0 no es, lógicamente, la clave original, sino que sera un fragmento de 128 bits de está, en concreto sus 128 bits más significativos.
DESCIFRADO. . .
InvSubBytes: Según (NIS01), la operación InvSubBytes es, al igual que la operación SubBytes, una sustitución no lineal de bytes. Dicha sustitución se realiza utilizando la formula:
De nuevo, existe una tabla de sustitución fija a la que hemos llamado InvS-box, la cual permite realizar la operación InvSubBytes de manera análoga a la operación SubBytes.
Esta tabla es inversa a la anterior que presentamos como S-box. Recordemos el ejercicio que se propuso anteriormente, en el que el byte {19}, a través de la operación SubBytes se transformo en el byte {D4}. Si ahora queremos aplicar la operación InvSubBytes al byte {D4}, miramos en la tabla la fila Dx y la columna x4, obteniendo así el byte {19}.
InvShiftRows: La operación InvShiftRows consiste, según (NIS01), es una rotación cíclica hacía la derecha de las filas de la notación matricial del Estado, de manera que la primera fila permanece igual, la segunda fila se rota hacía la derecha una posición, la tercera fila se rota hacía la derecha dos posiciones y, por último, la cuarta fila se rota hacía la derecha tres posiciones.
Consiste por tanto, en una rotación en dirección opuesta a la que se propuso en la operación ShiftRows.
InvMixColumns: Según (NIS01), es la operación inversa a MixColumns. En ella cada columna se trata como un polinomio y luego se multiplica el módulo x^4 con un polinomio fijo a^-1(x)={0B}x^3+{0D}x^2+{09}x+{0E}. De nuevo es más intuitivo verlo como una multiplicación del Estado de la derecha de una matriz fija.
AddRoundKey: en la operación AddRoundKey, se utilizan diferentes subclaves, todas derivadas de la clave original.
La clave expandida, una sucesión de todas las subclaves, puede verse como una matriz de 4 filas por [4 × (Nr + 1)] columnas. Es decir, que la longitud de la clave expandida var´ıa dependiendo de Nr, que a su vez varía dependiendo de la longitud de clave. Por ejemplo, la clave expandida para una longitud de clave de 128 bits se representa como una matriz de 4 filas por (4 × 11), es decir, 44 columnas. Análogamente, para una longitud de clave de 192 bits (la cual se representa en la clave expandida como una matriz de 4 × 6), la clave expandida es una matriz de 4 filas por (4 × 13), o lo que es lo mismo, 52 columnas. Todas las subclaves utilizadas, para cualquier longitud de clave, son de 128 bits, o lo que es lo mismo, 4 columnas. Esa es la razón por la que a más longitud de clave, más número de rondas. Es importante señalar que el cálculo de subclaves es idéntico para longitudes de clave de 128 y 192 bits, mientras que para 256 bits varía en ciertos detalles. Un dato del AES, necesario para el cálculo de subclaves para claves de cualquier longitud, es la matriz Rcon. Dicha matriz, según [NIS01] es de la siguiente forma:
Las columnas de la matriz de clave ampliada se calculan en diez grupo (uno por cada columna de la matriz Rcon) de Nk columnas cada uno.
Buen dia,recomienden un libro sobre este tema,gracias
ResponderEliminarEn el momento no te podría decir que libro seria bueno sobre cifrado con AES, pero te recomendare uno que a lo mejor te de una idea y te guié un poco."Cifrado de las comunicaciones de la cifra clásica al algoritmo RSA". Espero te sirva.
Eliminar