Encriptação AES-256 explicada: o que significa para os seus dados

Encriptação AES-256 explicada: o que significa para os seus dados

AES-256 explicado: como a cifra funciona, por que o comprimento de 256 bits é importante, o que o modo GCM acrescenta e o que verificar quando uma aplicação afirma usar encriptação AES-256.


O que é o AES-256?

O AES-256 é uma cifra de bloco simétrica: o Advanced Encryption Standard usado com uma chave de 256 bits. A mesma chave encripta e desencripta. Processa os dados em blocos de 128 bits ao longo de 14 rondas, e o NIST normalizou-o como FIPS 197 em 2001.

O nome junta três factos. AES é o algoritmo, escolhido pelo NIST em 2001 a partir da proposta Rijndael. 256 é o comprimento da chave em bits, que define quantas chaves um atacante tem de testar por força bruta. Um modo como o GCM ou o CBC, normalmente escrito depois do nome, como em AES-256-GCM, decide como os blocos se encadeiam e se o texto cifrado é verificado contra adulterações. O nome AES-256 indica apenas a cifra e o tamanho da chave. Não indica o modo nem quem detém a chave.

AES-256 é o Advanced Encryption Standard com chave de 256 bits, normalizado pelo NIST como FIPS 197 em 2001. É um algoritmo de encriptação simétrica usado pelo governo dos EUA para informações classificadas, pelos bancos para transações financeiras e por aplicações de segurança para proteger dados em repouso e em trânsito. O AES-256 tem 2^256 chaves possíveis, um número maior do que o número estimado de átomos no universo observável. Nenhum ataque conhecido reduz computacionalmente este espaço de chaves.

Este guia explica o que o AES-256 realmente faz, por que o tamanho da chave é importante, o que significam os diferentes modos (ECB, CBC, GCM) e no que se concentrar quando uma aplicação afirma usar encriptação AES-256.

O que o AES realmente faz

O AES é uma cifra de bloco simétrica. “Simétrica” significa que a mesma chave encripta e desencripta. “Cifra de bloco” significa que processa dados em blocos de tamanho fixo de 128 bits (16 bytes).

O algoritmo pega nos seus dados (texto simples), combina-os com a chave e através de uma série de transformações matemáticas produz um resultado misturado (texto cifrado). Estas transformações, substituição, deslocamento, mistura e adição de chave, repetem-se por um número fixo de rondas. O AES-256 usa 14 rondas.

Cada ronda aplica quatro operações:

  1. SubBytes: Cada byte é substituído usando uma tabela de substituição fixa (S-box), introduzindo não-linearidade.
  2. ShiftRows: Os bytes em cada linha são deslocados por diferentes quantidades, espalhando os dados pelas posições.
  3. MixColumns: As colunas são misturadas através de multiplicação matricial num campo finito, difundindo alterações entre os bytes.
  4. AddRoundKey: A chave da ronda (derivada da chave principal) é aplicada com XOR aos dados.

Após 14 rondas, o texto simples está completamente misturado. Inverter estas operações com a chave correta restaura os dados originais. Sem a chave, o texto cifrado é indistinguível de ruído aleatório.

Por que 256 bits é importante

O número “256” no AES-256 refere-se ao comprimento da chave: 256 bits. Isso determina o número de chaves possíveis que um atacante teria de tentar para quebrar a encriptação por força bruta.

Tamanho da chave Chaves possíveis Tempo de quebra por força bruta (bilião de tentativas/s)
56 bits (DES) 7,2 × 10^16 aproximadamente 20 horas
128 bits (AES-128) 3,4 × 10^38 10^13 anos (10 biliões de anos)
256 bits (AES-256) 1,16 × 10^77 10^51 anos

Para contextualizar: o universo tem aproximadamente 1,38 × 10^10 anos. Quebrar o AES-256 por força bruta demoraria cerca de 10^41 vezes a idade do universo, mesmo a um bilião de tentativas por segundo.

O AES-128 já é computacionalmente inviável de quebrar por força bruta. O AES-256 fornece margem adicional contra avanços futuros na computação, incluindo computadores quânticos. O algoritmo de Grover (ataque quântico) reduz efetivamente o comprimento da chave a metade, tornando o AES-256 equivalente a AES-128 contra ataques quânticos, ainda inviável. O AES-128 seria reduzido a 64 bits de segurança efetiva, potencialmente vulnerável. Por isso as aplicações críticas para segurança preferem AES-256.

Modos AES: por que são importantes

O AES por si só encripta apenas um bloco de 128 bits de cada vez. Para dados reais (fotografias, documentos, vídeos) precisa de um “modo de operação” que lide com dados maiores que 16 bytes. O modo determina como os blocos são encadeados, com implicações de segurança significativas.

ECB (Electronic Codebook): não usar

Cada bloco é encriptado independentemente com a mesma chave. Blocos de texto simples idênticos produzem blocos de texto cifrado idênticos. Isso vaza padrões nos dados. O exemplo clássico: encriptar uma imagem bitmap com ECB preserva a estrutura da imagem no texto cifrado, tornando o conteúdo ainda reconhecível. O ECB está incluído no padrão mas nunca deve ser usado para dados com estrutura ou padrões repetidos.

CBC (Cipher Block Chaining): padrão mais antigo

Cada bloco é aplicado com XOR ao texto cifrado anterior antes de encriptar. Isso elimina a fuga de padrões do ECB. O CBC foi o modo padrão durante décadas mas foi substituído pelo GCM para a maioria das aplicações. O CBC requer um vetor de inicialização aleatório (IV) e não fornece autenticação incorporada.

GCM (Galois/Counter Mode): padrão atual

O GCM combina encriptação em modo contador com autenticação do campo de Galois. Fornece encriptação autenticada: encripta os dados E cria uma etiqueta de autenticação que deteta qualquer modificação do texto cifrado. Se um único bit for alterado, a desencriptação falha em vez de produzir texto simples corrompido.

O NIST normalizou o GCM no SP 800-38D (2007). É o modo recomendado para novas implementações.

AES-256-GCM é o AES com chave de 256 bits no modo Galois/Counter. É o que as aplicações críticas para segurança devem usar e o que o Vaultaire usa para encriptar conteúdo de fotografias e ficheiros.

Modo Fuga de padrões Autenticação Recomendação atual
ECB Sim (grave) Não Não usar
CBC Não Não (requer MAC separado) Legado; aceitável com HMAC
GCM Não Sim (incorporada) Recomendado para novas implementações

O que AES-256 significa para armazenamento de fotografias

Quando uma aplicação cofre de fotografias afirma “encriptação AES-256”, três coisas devem ser verdadeiras:

  1. O conteúdo do ficheiro é encriptado com AES-256. Os dados brutos da fotografia (pixels, metadados, miniatura) são transformados em texto cifrado usando uma chave de 256 bits.

  2. Cada ficheiro usa um vetor de inicialização único (IV). Se duas fotografias idênticas forem encriptadas com a mesma chave, o texto cifrado deve ser diferente. Isso requer um IV único por ficheiro. Sem isso, a análise estatística pode revelar padrões.

  3. O modo fornece autenticação (GCM ou equivalente). Sem autenticação, um atacante poderia modificar o texto cifrado sem detecção. O resultado desencriptado seriam dados corrompidos, não um erro.

O que “AES-256” numa página de marketing não diz

O AES-256 é necessário mas não suficiente. Vários fatores críticos determinam se a encriptação realmente protege os seus dados:

A derivação de chaves é importante. Como a chave de 256 bits é gerada? Se for derivada de um PIN de 4 dígitos usando um KDF fraco, a segurança efetiva será de 4 dígitos (10.000 combinações), e não de 256 bits. Uma implementação forte usa PBKDF2 com uma contagem alta de iterações ou Argon2 com parâmetros de memória e tempo apropriados. Vaultaire usa PBKDF2 com HMAC-SHA512 e 600.000 iterações para derivar uma chave de cofre local do padrão 5x5 escolhido e um sal de dispositivo. PBKDF2 torna cada palpite mais caro; não aumenta a entropia do padrão para 256 bits.

O armazenamento de chaves é importante. Onde fica a chave? Se a chave estiver guardada em texto simples na sandbox da aplicação, um malware com acesso a ficheiros consegue lê-la. O Secure Enclave da Apple suporta operações específicas com chaves não exportáveis, e não chaves AES arbitrárias fornecidas pela aplicação. Os designs com chave simétrica podem apoiar-se antes no Keychain e na Proteção de Dados, pelo que a documentação deve indicar a API exata e a classe de proteção, em vez de dizer apenas "suportado por hardware".

O que está encriptado é importante. Algumas aplicações encriptam o conteúdo dos ficheiros mas deixam nomes de ficheiros, miniaturas e metadados não encriptados. Um perito forense pode não ver a sua fotografia, mas vê “ferias-praia-2025.jpg” na listagem de ficheiros. A encriptação abrangente cobre os metadados separadamente.

O ciclo de vida da chave é importante. Durante quanto tempo o material da chave desencriptada fica disponível? O Vaultaire descarta o cofre ativo e o estado da chave mestra quando é bloqueado ou fechado e exige um novo desbloqueio. Os bytes da chave simétrica existem necessariamente na memória da aplicação enquanto um cofre está aberto, e o Swift e o iOS não permitem que uma aplicação prove que todas as cópias temporárias foram substituídas.

AES-256 na prática: quem o usa

Entidade Caso de uso Modo
Governo dos EUA (NSA) Informações classificadas GCM (ou CTR com autenticação separada)
Apple (iCloud ADP) Encriptação ponta a ponta iCloud GCM
Signal Encriptação de mensagens CBC (com HMAC para autenticação)
Bancos Encriptação de transações financeiras GCM
1Password Cofre de palavras-passe GCM
Vaultaire Cofre de fotografias e ficheiros GCM
VeraCrypt Encriptação de disco XTS (optimizado para blocos de disco)

Equívocos comuns

“Encriptação de grau militar” não especifica nada concreto. As páginas de marketing usam esta expressão porque soa impressionante. O AES-256 é usado por forças armadas. Também o AES-128. A expressão não lhe diz nada sobre o modo, derivação de chave, armazenamento de chave ou o que realmente está a ser encriptado.

“Encriptação de 256 bits” não significa necessariamente AES-256. Outras cifras também usam chaves de 256 bits (ChaCha20, Twofish, Serpent). Verifique qual o algoritmo especificado. AES-256-GCM é o padrão atual.

O AES-256 não protege contra palavras-passe fracas. Se a sua palavra-passe for “1234” e a derivação de chave for fraca, a encriptação é efetivamente de 4 dígitos independentemente da força da cifra. A corrente parte-se no elo mais fraco.

O AES-256 não protege os dados em uso. Quando vê uma fotografia, esta tem de ser desencriptada na memória. Nesse momento existe em texto simples na RAM. As implementações corretas minimizam esta janela e apagam rapidamente os dados desencriptados.

Perguntas frequentes

O que significa AES-256?

Advanced Encryption Standard, usado com uma chave de 256 bits. O AES é a cifra que o NIST normalizou como FIPS 197 em 2001, depois de escolher o desenho Rijndael. O 256 é o comprimento da chave em bits. Um sufixo como em AES-256-GCM acrescenta o modo de operação, que é uma escolha separada da cifra e do tamanho da chave.

O AES-256 pode ser quebrado?

Nenhum ataque conhecido quebra o AES-256 reduzindo todo o espaço de chaves. O ataque mais conhecido (ataque biclique de Bogdanov, Khovratovich e Rechberger, 2011) reduz o AES-256 de 2^256 operações para 2^254,4, uma melhoria teórica que é computacionalmente insignificante na prática. O AES-256 continua por quebrar.

O AES-256 é resistente a computadores quânticos?

Essencialmente sim. O algoritmo quântico de Grover reduz o comprimento efetivo da chave a metade: o AES-256 torna-se equivalente a 128 bits de segurança contra ataques quânticos. O AES-128 seria reduzido a 64 bits de segurança efetiva, potencialmente vulnerável. Uma pesquisa de Grover contra o AES-256 continuaria a exigir cerca de 2^128 operações, o que não é praticável.

Qual é a diferença entre AES-128 e AES-256?

O AES-128 usa uma chave de 128 bits (10 rondas). O AES-256 usa uma chave de 256 bits (14 rondas). Ambos são considerados seguros contra ataques atuais. O AES-256 fornece maior margem contra avanços futuros, especialmente computadores quânticos. O AES-256 é aproximadamente 40% mais lento que o AES-128 devido às rondas adicionais, mas a aceleração por hardware torna isso negligenciável em dispositivos modernos.

A encriptação AES-256 atrasa o meu telemóvel?

Não é percetível em uso normal. Os processadores modernos da Apple fornecem aceleração de hardware para AES através das bibliotecas criptográficas do sistema. Isso não significa que a operação AES de uma aplicação seja executada dentro do Secure Enclave. O tempo continua a depender do tamanho do ficheiro, do dispositivo, do armazenamento e da implementação, pelo que uma afirmação de desempenho deve basear-se em medições, e não num número universal de milissegundos.

Como posso saber se uma aplicação realmente usa AES-256?

Verifique a documentação de segurança da aplicação, não apenas a página de marketing. Procure o algoritmo e o modo específicos, a hierarquia de chaves, os parâmetros de derivação, o uso exato do Keychain ou do Secure Enclave, o tratamento do nonce, o caminho de recuperação e se os metadados também são encriptados. O código-fonte aberto e as auditorias independentes tornam estas afirmações mais fáceis de verificar.

Conclusão

O AES-256 é uma cifra simétrica amplamente utilizada, normalizada pelo NIST, sem nenhum ataque prático conhecido; um computador quântico com o algoritmo de Grover continuaria a enfrentar cerca de 2^128 operações. Ao avaliar aplicações que afirmam usar encriptação AES-256, olhe além da cifra: verifique o modo (GCM), a derivação de chave (PBKDF2/Argon2 com número elevado de iterações), o armazenamento de chave (suportado por hardware) e quais dados estão realmente encriptados (conteúdo e metadados).

O Vaultaire usa AES-256-GCM para o conteúdo dos ficheiros, cabeçalhos, metadados, índices e miniaturas. O PBKDF2 com HMAC-SHA512 deriva uma chave local do cofre a partir do padrão e de um sal do Keychain comum a todo o dispositivo; essa chave desembrulha uma chave mestra aleatória usada para a encriptação dos ficheiros. As operações simétricas são executadas no processo da aplicação através do CryptoKit, enquanto o Keychain do iOS e a Proteção de Dados protegem o estado de recuperação quando o dispositivo está bloqueado. A hierarquia completa está documentada no modelo de segurança.

Referências