Criptografia > Tipos de criptografia > Criptografia AES
O que é criptografia AES?
O AES em criptografia refere-se ao Advanced Encryption Standard, um algoritmo de criptografia rápido, eficiente e seguro, certificado pelo Instituto Nacional de Padrões e Tecnologia dos EUA (NIST). Trata-se de uma cifra de chave simétrica que usa a mesma chave tanto para criptografar quanto para descriptografar dados. Isso é relativamente rápido, o que o torna ideal para criptografar grandes volumes de dados em repouso.
Devido à sua força e confiabilidade, o AES é um dos tipos mais populares e comuns de criptografia usados em segurança de rede wireless, criptografia de dados e criptografia de disco, sistemas de pagamento on-line, armazenamento em nuvem, gerenciamento de senhas e até mesmo em aplicativos governamentais e militares. O governo dos EUA usa a criptografia AES para proteger suas informações confidenciais, o que contribuiu para sua popularidade.

O algoritmo AES é seguro?
Sim. Em 2000, após um processo de seleção bastante minucioso(nova janela) e aberto, o NIST anunciou que o AES (conhecido até então como algoritmo Rijndael, criado por Vincent Rijmen e Joan Daemen) substituiria o DES como seu algoritmo de criptografia recomendado(nova janela) "não confidencial e divulgado publicamente, capaz de proteger informações governamentais confidenciais até o próximo século".
De acordo com o NIST, todos os comprimentos de chave do algoritmo AES são considerados "suficientes" para proteger informações confidenciais até o nível "Secreto". Para informações "Ultrassecretas", é necessário usar o AES-192 ou o AES-256.

Ataques de força bruta
A forma mais básica de ataque possível contra qualquer cifra de criptografia é um ataque de força bruta, que envolve tentar cada combinação de chave possível até encontrar a correta.
O Frontier(nova janela) é o supercomputador publicamente conhecido mais potente do mundo. Se ele dedicasse toda a sua capacidade de processamento para quebrar o AES-128 por força bruta, ainda seriam necessários cerca de 10 a 12 trilhões de anos para esgotar todas as combinações possíveis para o AES-128. Isso é muito mais tempo do que a idade do universo. Portanto, mesmo em seus tamanhos de bits menores, o AES é altamente resistente a ataques de força bruta de computadores convencionais.
O AES-256 é 340 bilhões de bilhões de bilhões de bilhões (2¹²⁸) de vezes mais difícil de quebrar por força bruta do que o AES-128.
Embora o algoritmo de Grover(nova janela) teoricamente reduza a segurança das chaves simétricas pela metade contra ameaças quânticas, elas ainda são relativamente resistentes à computação quântica, especialmente ao usar uma chave de 256 bits.
Ataques a chaves
Ao longo dos anos, criptógrafos publicaram vários ataques teóricos às chaves AES, mas todos eles são impraticáveis na prática ou só são eficazes em implementações de AES que usam um número reduzido de rodadas (veja abaixo).
A tentativa mais bem-sucedida foi o teórico ataque biclique(nova janela), publicado em 2011, que pode reduzir em quatro vezes o tempo necessário para quebrar o AES por força bruta. No entanto, ainda seriam necessários bilhões de anos para quebrar o AES por força bruta em qualquer hardware de computador atual ou previsível.
Nenhum ataque de chave conhecido é prático contra AES-128 ou superior quando implementado corretamente.
Ataques de canal lateral
Um ataque de canal lateral tenta reduzir o número de combinações necessárias para realizar um ataque de força bruta bem-sucedido procurando indícios no computador que executa os cálculos de criptografia. Os indícios podem ser obtidos examinando:
- Tempo — quanto tempo um computador leva para realizar uma operação
- Vazamentos eletromagnéticos
- Pistas de áudio
- Pistas visuais (captadas com uma câmera de alta resolução).
Ataques de temporização de cache, em particular, provaram ser bastante eficazes para quebrar o AES com sucesso. No exemplo mais notável, pesquisadores em 2016 conseguiram recuperar(nova janela) uma chave AES-128 usando “apenas cerca de 6 a 7 blocos de texto simples ou texto cifrado (teoricamente, até mesmo um único bloco seria suficiente)”.
No entanto, várias coisas podem ser feitas para mitigar a ameaça de ataques de canal lateral:
- O AES implementado corretamente pode impedir formas de vazamento de dados.
- O hardware que integra o conjunto de instruções AES reduz ainda mais a superfície de ataque de canal lateral do AES.
- Técnicas de aleatorização podem ser usadas para interromper a relação entre os dados protegidos pelo AES e quaisquer dados vazados que possam ser coletados usando um ataque de canal lateral.
Em muitos casos, ataques de canal lateral exigem que o invasor esteja próximo ou tenha acesso físico ao dispositivo enquanto ele descriptografa dados, embora ataques remotos sejam possíveis se um software malicioso for instalado em um dispositivo, principalmente no caso de ataques de temporização.
Como o AES funciona
AES é uma cifra de bloco que criptografa e descriptografa dados em blocos de 128 bits usando chaves de 128 bits, 192 bits ou 256 bits. Como observado anteriormente, a mesma chave é usada para criptografar e descriptografar dados. O AES que usa uma chave de 128 bits costuma ser chamado de AES-128, e o mesmo vale para AES-192 e AES-256.

Os dados são criptografados usando várias rodadas, cada uma das quais consiste em uma série de operações matemáticas.
O processo começa usando o algoritmo de escalonamento de chaves de Rijndael para derivar uma série de novas chaves de rodada a partir da chave secreta original. Isso é conhecido como expansão de chave.
Cada rodada consiste em uma ou mais (ou em uma combinação) das seguintes operações:
1. Add Round Key: Uma operação XOR(nova janela) é realizada para combinar os dados a serem criptografados (o texto cifrado) com cada chave de rodada.

2. Sub Bytes: uma tabela de substituição é usada para embaralhar ainda mais os dados. Pense, em princípio, nas cifras de substituição simples que você usava quando criança, em que substituía cada letra de uma mensagem por outra algumas posições adiante no alfabeto.

3. Shift Rows: cada bloco de dados de 128 bits consiste em um bloco 4x4 de 16 bits. Essa operação desloca cada byte em uma linha do bloco por um determinado deslocamento para a esquerda.

4. Mix Columns: Uma transformação linear invertível adicional é realizada em cada coluna do bloco.

Essa série de transformações constitui uma rodada, que então é repetida nos dados por um número específico de rodadas, dependendo do tamanho da chave:
- AES-128 — 10 rodadas
- AES-192 — 12 rodadas
- AES 256 — 14 rodadas
Para descriptografar dados, todas as etapas usadas para criptografá-los são simplesmente realizadas na ordem inversa. Isso exige a chave secreta original para reverter o processo usando cada chave de rodada inversa.
Por que o AES-256 é preferido ao AES-192 ou AES-128?
Levaria mais tempo do que a idade do universo para quebrar o AES-128 por força bruta, considerando a tecnologia atual e previsível. O lendário criptógrafo Bruce Schneier chegou a argumentar(nova janela) que o AES-128 pode ser mais forte do que o AES-256 graças ao fato de ter um escalonamento de chaves mais robusto — o algoritmo que calcula todas as chaves de rodada a partir da chave secreta original.
No entanto, o AES-256 tornou-se o padrão ouro de fato para a criptografia de chave simétrica. Ele é frequentemente (embora com certa controvérsia) visto como a escolha mais forte porque seu tamanho de chave maior indica uma margem de segurança adicional, de modo que os dados criptografados permaneçam seguros mesmo se houver alguma forma de enfraquecer drasticamente o algoritmo. Esse argumento tornou-se mais forte à medida que a necessidade de resistência pós-quântica se torna mais urgente.
AES-CBC vs. AES-GCM
Até pouco tempo atrás, o AES geralmente era usado no modo cipher block chaining (CBC), em que cada bloco de texto simples é submetido a XOR com o bloco anterior de texto cifrado antes de ser criptografado. Quando usado no modo CBC, é necessário um algoritmo de hash HMAC(nova janela), como o HMAC-SHA256, para verificar os dados.
No entanto, é cada vez mais comum que o AES seja usado no modo Galois/counter (GCM), que usa o modo contador(nova janela) de criptografia. A principal vantagem é que ele usa o campo de Galois(nova janela) para verificar os dados sem a necessidade de um algoritmo externo. Portanto, ele é mais eficiente do que usar um algoritmo de autenticação separado, que pode ter uma alta sobrecarga computacional.
Embora o AES-CBC com autenticação HMAC seja geralmente considerado seguro, o CBC é potencialmente vulnerável a ataques de padding(nova janela), como o POODLE(nova janela). O GCM não é.
AES com aceleração por hardware
A maioria das CPUs modernas inclui as Advanced Encryption Standard New Instructions (AES-NI(nova janela)), um conjunto de instruções de hardware que executa operações AES diretamente no processador. Isso torna o AES muito mais rápido e também ajuda a evitar ataques de canal lateral baseados em tempo, pois as operações ocorrem dentro das unidades de execução segura do processador, de modo que há menos variações de tempo observáveis para um invasor explorar.
Proton e AES
Usamos amplamente o AES para proteger produtos Proton:
Eventos e contatos são protegidos usando AES-256 combinado com ECC para a troca de chaves, a fim de garantir sua privacidade por meio de criptografia de ponta a ponta.
O Proton VPN se concentra principalmente no protocolo VPN WireGuard® rápido e eficiente (que usa ChaCha20), mas as conexões OpenVPN usam AES-256.
O Proton Pass armazena senhas, notas, identidades e outros itens dentro do seu cofre seguro usando AES-256.
O Proton Drive criptografa todos os arquivos enviados de ponta a ponta com AES-256 usando ECC para a troca de chaves. O Proton Docs e o Proton Sheets também usam AES-256 com troca de chaves baseada em ECC, embora a implementação de criptografia deles seja diferente do esquema geral de criptografia de arquivos do Proton Drive.
O Proton Mail armazena e-mails e anexos usando AES-256 por meio do padrão OpenPGP. Até mesmo sua chave privada, que desbloqueia seus e-mails, é criptografada com AES-256 antes de ser armazenada no servidor.
O Proton Meet usa Messaging Layer Security (MLS) para criptografar áudio, vídeo e mensagens de chat, garantindo sigilo de encaminhamento (PFS) e segurança pós-comprometimento (PCS) para todas as comunicações. Todos os dados da reunião são criptografados de ponta a ponta usando AES-256-GCM.
Mitigação de ataques à criptografia AES
A segurança é tão forte quanto seu elo mais fraco, que geralmente é a sua senha. Isso significa que esquemas de engenharia social, ataques de phishing e keyloggers(nova janela) também são uma ameaça aos dados criptografados com AES. Portanto, mesmo quando o AES for usado, você deve tomar as seguintes precauções:
- Use um gerenciador de senhas criptografado
- Use chaves de segurança de hardware (como o YubiKey) para obter uma camada extra de proteção
- Se você faz parte de uma organização, realize treinamentos regulares de segurança para a equipe para evitar ataques de phishing
Assuma o controle dos seus dados
A Proton foi criada para proteger os seus dados desde o início. Com criptografia de ponta a ponta, aplicativos de código aberto e auditorias independentes, as suas informações continuam sendo suas.
Perguntas frequentes sobre criptografia AES
- O que é melhor: AES vs. DES?
- O que é melhor: AES vs. RSA?
- Quão forte é a segurança do AES?


