Padrão de criptografia avançado

O algoritmo de criptografia simétrica mais popular e amplamente adotado que provavelmente será encontrado hoje em dia é o Advanced Encryption Standard (AES). É encontrado pelo menos seis vezes mais rápido que o DES triplo.

Foi necessário substituir o DES porque o tamanho da chave era muito pequeno. Com o aumento do poder de computação, ele foi considerado vulnerável contra ataques exaustivos de busca por chave. O DES triplo foi projetado para superar essa desvantagem, mas foi considerado lento.

As características do AES são as seguintes -

  • Cifra de bloco simétrico de chave simétrica
  • Dados de 128 bits, chaves de 128/192/256 bits
  • Mais forte e mais rápido do que Triple-DES
  • Fornece especificações completas e detalhes de design
  • Software implementável em C e Java

Operação de AES

AES é uma cifra iterativa em vez de Feistel. É baseado na 'rede de substituição-permutação'. É composto por uma série de operações vinculadas, 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).

Curiosamente, o AES executa todos os seus cálculos em bytes, em vez de bits. Portanto, o AES trata os 128 bits de um bloco de texto simples como 16 bytes. Esses 16 bytes são organizados em quatro colunas e quatro linhas para processamento como uma matriz -

Ao contrário do DES, o número de rodadas no AES é variável e depende do comprimento da chave. O AES usa 10 rodadas para chaves de 128 bits, 12 rodadas para chaves de 192 bits e 14 rodadas para chaves de 256 bits. Cada uma dessas rodadas usa uma chave redonda diferente de 128 bits, que é calculada a partir da chave AES original.

O esquema da estrutura AES é dado na ilustração a seguir -

Processo de criptografia

Aqui, nos restringimos à descrição de uma rodada típica de criptografia AES. Cada rodada é composta por quatro subprocessos. O processo da primeira rodada é descrito abaixo -

Substituição de Byte (SubBytes)

Os 16 bytes de entrada são substituídos olhando-se uma tabela fixa (S-box) fornecida no design. O resultado é uma matriz de quatro linhas e quatro colunas.

Shiftrows

Cada uma das quatro linhas da matriz é deslocada para a esquerda. Quaisquer entradas que 'caiam' são reinseridas no lado direito da linha. A mudança é realizada da seguinte forma -

  • A primeira linha não é deslocada.

  • A segunda linha é deslocada um (byte) posição para a esquerda.

  • A terceira linha é deslocada duas posições para a esquerda.

  • A quarta linha é deslocada três posições para a esquerda.

  • O resultado é uma nova matriz consistindo nos mesmos 16 bytes, mas deslocados em relação um ao outro.

MixColumns

Cada coluna de quatro bytes agora é transformada usando uma função matemática especial. Esta função recebe como entrada os quatro bytes de uma coluna e produz quatro bytes completamente novos, que substituem a coluna original. O resultado é outra nova matriz composta por 16 novos bytes. Ressalta-se que esta etapa não é realizada na última rodada.

Addroundkey

Os 16 bytes da matriz são agora considerados como 128 bits e são XORed para os 128 bits da chave redonda. Se esta for a última rodada, a saída será o texto cifrado. Caso contrário, os 128 bits resultantes são interpretados como 16 bytes e começamos outra rodada semelhante.

Processo de descriptografia

O processo de descriptografia de um texto cifrado AES é semelhante ao processo de criptografia na ordem inversa. Cada rodada consiste em quatro processos conduzidos na ordem inversa -

  • Adicionar chave redonda
  • Colunas de mistura
  • Mudar de linha
  • Substituição de byte

Como os subprocessos em cada rodada ocorrem de maneira reversa, ao contrário de uma codificação Feistel, os algoritmos de criptografia e descriptografia precisam ser implementados separadamente, embora estejam intimamente relacionados.

Análise AES

Na criptografia atual, o AES é amplamente adotado e suportado tanto em hardware quanto em software. Até o momento, nenhum ataque criptanalítico prático foi descoberto contra AES. Além disso, o AES possui flexibilidade integrada de comprimento de chave, o que permite um certo grau de 'proteção futura' contra o progresso na capacidade de realizar pesquisas de chave exaustivas.

No entanto, assim como para o DES, a segurança do AES é garantida apenas se for corretamente implementado e um bom gerenciamento de chaves for empregado.