Em 1997 O governo americano, através do NIST (
National Institute of Standards and Technology) lançou
um processo de seleção para definir um novo algoritmo de chave
simétrica para proteger as informações do governo federal. Tratou-se de
uma medida com o objetivo de substituir o DES (
Data Encryption Standard), que havia sido quebrado pela máquina DES
Cracker.
As condições necessárias para a candidatura de algoritmos: divulgação
pública, direitos autorais livres, e os algoritmos deveriam ser de chave
privada (simétricos) e suportar blocos de 128 bits e chaves de 128, 192
e 256 bits. Em 1998, a Primeira Conferência dos Candidatos ao AES,
foram apresentados 15 candidatos:
Cast-256,
Crypton,
Deal,
DFC,
E2,
Frog,
HPC,
LOKI97,
Magenta,
MARS,
RC6,
Rijndael,
Safer+,
Serpent e
Twofish. Em 1999, na Segunda Conferência dos Canditatos AES, foram escolhidos 5 finalistas:
MARS,
RC6,
Rijndael,
Serpent e
Twofish. O
Rijndael (fusão de Vincent Rijmen e Joan Daemen) foi o escolhido, três
anos e meio após Segunda Conferência, ele combina as características de
segurança, desempenho, facilidade de implementação e flexibilidade. O
Rijndael apresenta alta resistência a ataques como "power attack" e
"timing attack" e exige pouca memória, o que o torna adequado para
operar em ambientes restritos como "smart cards", PDAs e telefones
celulares.
O AES tem um tamanho de bloco fixo em 128 bits e uma
chave com tamanho de 128, 192 ou 256 bits. O AES opera sobre um
arranjo
bidimensional de bytes com 4x4 posições, denominado de estado. Para criptografar, cada turno do AES (exceto o último)
consiste em quatro estágios:
1.
AddRoundKey- cada byte do estado é combinado com a subchave
própria do turno (RoundKey); cada subchave é derivada da chave
principal usando o algoritmo de escalonamento de chaves.
2.
SubBytes- é uma etapa de substituição não linear onde cada byte é substituído por outro de acordo com uma tabela de referência.
3.
ShiftRows- é uma etapa de transposição onde cada fileira do estado é deslocada de um determinado número de posições.
4.
MixColumns- é uma operação de mescla que opera nas colunas
do estado e combina os quatro bytes de cada coluna usando uma
transformação linear.
O turno final substitui o estágio de MixColumns por um novo estágio de AddRoundKey.
Fonte:
http://pt.wikipedia.org/wiki/Advanced_Encryption_Standard
http://www.gta.ufrj.br/grad/05_2/aes/
0 comentários:
Postar um comentário