Advanced Encryption Standard
br>
O algoritmo de encriptação simétrica mais popular e mais amplamente adoptado, susceptível de ser encontrado hoje em dia, é o Advanced Encryption Standard (AES). É encontrado pelo menos seis vezes mais rápido do que o triplo DES.
Era necessário um substituto para DES, uma vez que o seu tamanho de chave era demasiado pequeno. Com o aumento do poder computacional, era considerado vulnerável contra um ataque exaustivo de busca de chaves. O DES triplo foi concebido para superar este inconveniente, mas foi encontrado lentamente.
As características do AES são as seguintes –
- Cifra de bloco simétrico de chave simétrica
- 128 bits de dados, 128/192/256-bit keys
- Escrita mais forte e mais rápida do que Triple-DES
li>Fornecer especificação completa e detalhes de designli>Software implementável em C e Java
Operação de AES
AES é uma cifra iterativa em vez de Feistel. Baseia-se na ‘rede de substituição-permutação’. Compreende uma série de operações ligadas, algumas das quais envolvem a substituição de entradas por saídas específicas (substituições) e outras envolvem a troca de bits (permutações).
Interessantemente, a AES executa todos os seus cálculos em bytes em vez de bits. Assim, a AES trata os 128 bits de um bloco de texto em placas como 16 bytes. Estes 16 bytes estão dispostos em quatro colunas e quatro filas para processamento como uma matriz –
Desemelhante a DES, o número de rondas no AES é variável e depende do comprimento da chave. A AES usa 10 rondas para chaves de 128 bits, 12 rondas para chaves de 192 bits e 14 rondas para chaves de 256 bits. Cada uma destas rondas usa uma chave redonda diferente de 128-bit, que é calculada a partir da chave AES original.
O esquema da estrutura AES é dado na seguinte ilustração –
Processo de encriptação
Aqui, restringimo-nos à descrição de uma ronda típica de encriptação AES. Cada ronda é composta por quatro subprocessos. O primeiro processo redondo é descrito abaixo –
Substituição por bytes (SubBytes)
Os 16 bytes de entrada são substituídos pela procura de uma tabela fixa (S-box) dada no desenho. O resultado está numa matriz de quatro filas e quatro colunas.
Shiftrows
Cada uma das quatro filas da matriz é deslocada para a esquerda. Quaisquer entradas que ‘caem’ são reinseridas no lado direito da fila. O deslocamento é efectuado da seguinte forma –
- p>A primeira fila não é deslocada.
- p>A segunda fila é deslocada uma posição (byte) para a esquerda.
- p>A terceira fila é deslocada duas posições para a esquerda.
- p>>p>A quarta fila é deslocada três posições para a esquerda.
- p> O resultado é uma nova matriz constituída pelos mesmos 16 bytes mas deslocados um em relação ao outro.
MixColunas
Cada coluna de quatro bytes é agora transformada utilizando uma função matemática especial. Esta função toma como entrada os quatro bytes de uma coluna e produz quatro bytes completamente novos, que substituem a coluna original. O resultado é outra nova matriz que consiste em 16 novos bytes. Note-se que este passo não é executado na última ronda.
Addroundkey
Os 16 bytes da matriz são agora considerados como 128 bits e são XORADOS para os 128 bits da chave redonda. Se esta for a última ronda, então a saída é o texto cifrado. Caso contrário, os 128 bits resultantes são interpretados como 16 bytes e iniciamos outra ronda semelhante.
Processo de descodificação
O processo de descodificação de um texto cifrado AES é semelhante ao processo de encriptação na ordem inversa. Cada ronda consiste nos quatro processos conduzidos na ordem inversa –
- Adicionar chave redonda
- Mix colunas
- Li>Selecção de linhas
- Substituição de bytes
Sub-processos em cada ronda são de modo inverso, ao contrário de uma cifra de Feistel, os algoritmos de encriptação e desencriptação precisam de ser implementados separadamente, embora estejam muito intimamente relacionados.
AES Analysis
Na actual criptografia, o AES é amplamente adoptado e suportado tanto em hardware como em software. Até à data, não foram descobertos ataques criptográficos práticos contra a AES. Além disso, o AES tem incorporado uma flexibilidade de comprimento de chave, o que permite um grau de ‘prova de futuro’ contra o progresso na capacidade de realizar pesquisas exaustivas de chaves.
No entanto, tal como para o DES, a segurança AES só é assegurada se for correctamente implementada e se for empregada uma boa gestão de chaves.