Criptografia AES Explicada: Como Funciona, Desempenho e Segurança
O Advanced Encryption Standard (AES) é atualmente o algoritmo de criptografia simétrica mais popular e amplamente adotado. Foi desenvolvido por dois criptógrafos belgas, Vincent Rijmen e Joan Daemen. Se implementado corretamente, o algoritmo é inquebrável no momento.
O Que é Criptografia?
Criptografia é a forma mais comum de proteger dados sensíveis. Funciona convertendo dados em uma forma na qual o significado original é mascarado e apenas usuários autorizados podem decifrá-lo.
Isso é feito embaralhando os dados com funções matemáticas baseadas em um número chamado chave. Para desembaralhar (descriptografar) os dados, o processo é revertido usando a mesma ou uma chave diferente.
O processo é chamado simétrico se a mesma chave é usada para criptografia e descriptografia. O processo é assimétrico se chaves diferentes são usadas.
O Advanced Encryption Standard (AES) é atualmente o algoritmo de criptografia simétrica mais popular e amplamente adotado. Foi estabelecido pelo Instituto Nacional de Padrões e Tecnologia (NIST) dos EUA em 2001.
Em 2002, o AES tornou-se efetivo como padrão do governo federal. Atualmente, é o único cifrão publicamente acessível aprovado pela NSA (Agência de Segurança Nacional) para projetos ultrassecretos.
Quem Desenvolveu o AES e Por Quê?
Em meados dos anos 1990, o governo dos Estados Unidos planejou um projeto para analisar diferentes tipos de técnicas de criptografia. Na verdade, eles buscavam um padrão que fosse seguro e eficiente de implementar.
O NIST analisou centenas de algoritmos submetidos por várias equipes de pesquisa e organizações. Finalmente, fizeram sua seleção no final de 2001. Escolheram "Rijndael" como o novo algoritmo Advanced Encryption Standard.
Foi submetido por dois criptógrafos belgas, Vincent Rijmen e Joan Daemen.
O Rijndael foi rigorosamente testado em ANSI, Java e linguagens C para eficiência e confiabilidade no processo de criptografia/descriptografia. Garantiram que o novo algoritmo é resistente a ataques principais tanto em sistemas centrados em software quanto em hardware.
Por que buscavam novo método de criptografia?
Em 1976, o National Bureau of Standards (NBS) dos EUA adotou o Data Encryption Standard (DES) para criptografar dados sensíveis do governo. Era um algoritmo de chave simétrica construído pela IBM.
O algoritmo serviu bem seu propósito por 20 anos, mas com a chegada de processadores mais poderosos, algumas preocupações de segurança começaram a surgir.
Na verdade, alguns pesquisadores conseguiram desenvolver técnicas que poderiam quebrar o DES em 48 horas, usando o método de força bruta. Embora tais ataques fossem muito caros e extremamente difíceis de montar, foram suficientes para provar que o DES logo se tornaria não confiável.
Como resultado, o NIST anunciou a necessidade de um algoritmo sucessor para o DES e iniciou o desenvolvimento do AES em 1997, que se destinava a estar disponível royalty-free mundialmente.
Como Funciona a Criptografia AES?
Diferente do DES (que usa um tamanho de chave relativamente curto de 56 bits), o AES usa tamanhos de chave de 128, 192 ou 256 bits para criptografar/descriptografar dados.
O AES é um cifrão iterativo baseado em uma rede de substituição-permutação. Envolve uma série de operações vinculadas, como substituir entrada por certas saídas (substituição) ou embaralhar bits (permutação).
A primeira coisa que o algoritmo faz é dividir o texto plano (dados de entrada) em blocos de 128 bits. Como todos os cálculos são realizados em bytes (128 bits = 16 bytes), ele converte cada tamanho de bloco em uma matriz 4x4 para processamento adicional.
Existem cinco etapas principais envolvidas no algoritmo AES:
- Add Round Key (Adicionar Chave de Rodada): A chave inicial (derivada de um processo estruturado quando a criptografia é realmente aplicada) é adicionada ao bloco do texto plano. Isso é feito aplicando um algoritmo de criptografia aditivo chamado Exclusive Or (XOR).
- Substitute Bytes (Substituir Bytes): Os bytes de entrada são substituídos consultando uma tabela predeterminada.
- Shift Rows (Deslocar Linhas): A 2ª linha da matriz é deslocada uma posição (byte) para a esquerda, a 3ª linha duas posições para a esquerda, e a 4ª linha três posições para a esquerda. A matriz resultante contém os mesmos 16 bytes, mas deslocados em relação uns aos outros.
- Mix Columns (Misturar Colunas): O algoritmo usa uma função matemática especial para transformar cada coluna da matriz. A função substitui as colunas originais por bytes completamente novos.
- Add Round Key (Adicionar Chave de Rodada): A matriz agora é considerada como 128 bits e XORada com a chave de rodada de 128 bits.
Se você achou que era isso, não poderia estar mais enganado. Os dados voltam para a etapa 2, 3, 4 e 5. Em outras palavras, a etapa 2 a 5 é executada em um loop.
Mas quantas vezes o loop roda? Isso depende do tamanho da chave do cifrão AES: Quando uma chave de 128 bits é usada, o loop roda 9 vezes; quando uma chave de 192 bits é usada, o loop roda 11 vezes; e quando uma chave de 256 bits é usada, roda 13 vezes.
Cada rodada adicionada torna o algoritmo mais forte. Após o fim do loop, uma rodada adicional é realizada, que envolve substituição de byte, deslocamento de linha e rodadas de adição de chave.
A etapa de mistura de colunas é excluída porque, neste ponto, não mudaria os dados e consumiria desnecessariamente recursos computacionais, tornando a criptografia menos eficiente.
Etapas envolvidas na criptografia e descriptografia AES
Descriptografia de Dados
O processo de descriptografia é relativamente simples. Todas as operações são realizadas em ordem inversa. O processo começa com a chave de rodada inversa, deslocamento de linhas inverso e substituição de byte inversa.
E então, para cada rodada, quatro processos são realizados em ordem inversa:
- Chave de rodada inversa
- Mistura de coluna inversa
- Deslocamento de linhas inverso
- Substituição de byte inversa
Finalmente, a chave de rodada inversa (etapa 1 da criptografia) é realizada. Após a conclusão deste processo, você obtém sua mensagem original.
Desempenho
Como o AES é significativamente mais rápido e exponencialmente mais forte que seu predecessor DES, é ideal para várias aplicações, hardware e firmware que exigem alta taxa de transferência ou baixa latência.
O algoritmo pode performar excepcionalmente bem em uma ampla gama de hardware, de computadores de alto desempenho a smart cards de 8 bits.
A maioria dos fabricantes de CPU, incluindo AMD e Intel, integram o conjunto de instruções AES em seus processadores. Isso melhora o desempenho do AES em muitos dispositivos e melhora sua resistência a ataques de canal lateral.
Em CPUs AMD Ryzen e Intel Core i7/i5/i3, a criptografia AES pode render uma taxa de transferência de mais de 10 GB/s. Em processadores antigos, como Pentium M, a taxa de transferência é de aproximadamente 60 Mbit/s.
Quão Seguro é o Algoritmo AES?
Criptógrafos têm analisado o AES em busca de fraquezas desde que o padrão foi finalizado em 2000. Até agora, publicaram ataques teóricos e de canal lateral contra AES-128.
Em 2009, um grupo de pesquisadores mirou uma versão de 8 rodadas de chave do AES-128. Foi um ataque de chave conhecida para descobrir a estrutura interna da criptografia. Mas como foi apenas contra uma versão de 8 rodadas do AES-128, em vez da versão padrão de 10 rodadas, é considerado uma ameaça relativamente menor.
Houve também uma série de ataques de chave relacionada no mesmo ano, onde pesquisadores tentaram quebrar um cifrão analisando como ele funciona sob chaves diferentes. No entanto, esses ataques provaram ser uma ameaça apenas a protocolos que não foram implementados corretamente.
Risco principal: Ataques de canal lateral
Ataques de canal lateral são baseados em dados obtidos da implementação de um sistema, em vez de fraqueza no algoritmo implementado em si. Por exemplo, consumo de energia, informação de tempo, ou até vazamentos eletromagnéticos podem fornecer uma fonte adicional de dados, que pode ser explorada.
Em um caso, pesquisadores deduziram com sucesso chaves AES-128 monitorando cuidadosamente o estado do cache de memória do processador. No entanto, tais casos podem ser reduzidos prevenindo possíveis vazamentos de dados ou garantindo que a informação vazada não esteja associada a processos algorítmicos.
Apesar de potenciais ataques de canal lateral e ataques teóricos atuais, todas as versões do AES permanecem altamente seguras. O algoritmo AES implementado corretamente é inquebrável no momento.
Na verdade, o computador mais poderoso do mundo levaria mais de 800 quatrilhões de anos para forçar uma chave AES de 128 bits. O número de cálculos necessários para forçar um cifrão de 256 bits é 3,31 x 1056, aproximadamente igual ao número de átomos no universo.
Aplicações
O AES está incluído em programas que usamos o tempo todo. Por exemplo, WinZip, RAR e UltraISO usam o Algoritmo Rijndael para criptografar seus dados.
BitLocker, CipherShed, DiskCyptor, VeraCrypt e FileVault criam imagens de disco criptografadas com AES. IEEE 802.11i, um padrão IEEE que especifica mecanismos de segurança para redes sem fio, usa AES-128 no modo CCM.
Alguns dos aplicativos de mensagens mais populares como Facebook Messenger, Signal, WhatsApp e Google Allo usam AES para criptografar mensagens entre remetentes e destinatários.
Tecnologia industrial
- Descubra Sua Chave de Segurança de Rede: Passos Fáceis para Encontrar e Proteger Seu Wi‑Fi
- Entendendo a Impressão 3D: Princípios, Tipos e Principais Aplicações
- Soldagem a Arco Plasma (PAW): Visão Geral do Processo, Componentes e Funcionamento
- Usinagem por Feixe de Laser Explicada: Tipos, Processo e Aplicações
- Prototipagem Rápida Explicada: Tipos, Processos e Benefícios
- Manufatura Aditiva Explicada: Tipos, Processos e Aplicações
- Broca Explicada: Processo, Mecanismo e Principais Tipos
- Máquinas Plainas de Modelar (Shaper) Explicadas: Definição, Componentes e Operação
- Usinagem por Arco de Plasma Explicada: Componentes, Operação e Aplicações
- Usinagem por Feixe de Íons (IBM): Princípios, Processo e Aplicações Industriais