Advanced Encryption Standard

Advanced Encryption Standard (AES), tamén coñecido como Rijndael, é un esquema de cifrado por bloque adoptado como un estándar de encriptación polo goberno estadounidense, e esperase que sexa usado en todo o mundo, como tamén analizado exhaustivamente, como foi o caso do seu predecesor, o DES. Foi adoptado polo Instituto Nacional de Estándares e Tecnoloxía (NIST) como un FIPS (PUB 197) en novembro do 2001 despois de 5 anos do proceso de estandarización.

O cifrado foi desenvolvido por dous criptologos Belgas, Joan Daemen e Vincent Rijmen, e enviado ó proceso de selección AES baixo o nome "Rijndael".

 Descrición do cifrado 
 dereita|320px|miniatura|Na fase de SubBytes, cada byte no state é substituído ca súa entrada nunha táboa de busca fixa de 8 bits, S; bij = S(aij). dereita|320px|miniatura|No paso ShiftRows, os bytes en cada fila do state son rotados de maneira cíclica de cara a esquerda. O número de lugares que cada byte é rotado difire para cada fila. dereita|320px|miniatura|No paso MixColumns, cada columna do state é multiplicada por un polinomio constante c(x). dereita|320px|miniatura|No pasoAddRoundKey, cada byte do state combinase cun byte da subclave usando a operación XOR (⊕).
Estritamente falando, AES non é precisamente Rijndael (aínda que na práctica chamaselle de maneira indistinta) xa que Rijndael permite un maior rango de tamaño de bloque e clave; AES ten un tamaño de bloque fixo de 128 bits e tamaños de chave de 128, 192 ó 256 bits, mentres que Rijndael pode ser especificado por unha clave que sexa múltiplo de 32 bits, cun mínimo de 128 bits e un máximo de 256 bits.

A maioría dos cálculos do algoritmo AES fanse nun campo finito determinado.

AES opera nun arranxo de 4×4 bytes, chamado state (algunhas versións de Rijndael cun tamaño de bloque maior teñen columnas adicionais no state). Para o cifrado, cada rolda da aplicación do algoritmo AES (excepto a última) consiste en catro pasos:
 SubBytes — neste paso realizase unha substitución non lineal onde cada byte é substituído por outro seguindo unha táboa lookup table.
 ShiftRows — neste paso realizase unha transposición onde cada fila do state é rotado de maneira cíclica un número determinado de veces. 
 MixColumns — operación de mesturado que opera nas columnas do «state», combinando os catro bytes en cada columna usando unha transformación lineal.
 AddRoundKey — cada byte do «state» é combinado coa clave «round»; cada clave «round» deriva da clave de cifrado usando unha key schedule.
A rolda final omite a fase MixColumns.

Categoría:Criptografía