Advanced Encryption Standard

Na Galipedia, a Wikipedia en galego.


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 nombre "Rijndael".

Descrición do cifrado[editar | editar a fonte]

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).
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.
No paso MixColumns, cada columna do state é multiplicada por un polinomio constante c(x).
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 ronda da aplicación do algoritmo AES (excepto a última) consiste en catro pasos:

  1. SubBytes — neste paso realizase unha substitución non lineal onde cada byte é substituído por outro seguindo unha táboa lookup table.
  2. ShiftRows — neste paso realizase unha transposición onde cada fila do state é rotado de maneira cíclica un número determinado de veces.
  3. MixColumns — operación de mesturado que opera nas columnas do «state», combinando os catro bytes en cada columna usando unha transformación lineal.
  4. AddRoundKey — cada byte do «state» é combinado ca clave «round»; cada clave «round» deriva da clave de cifrado usando unha key schedule.

A ronda final omite a fase MixColumns.