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.
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 transacçõ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:
- SubBytes: Cada byte é substituído usando uma tabela de substituição fixa (S-box), introduzindo não-linearidade.
- ShiftRows: Os bytes em cada linha são deslocados por diferentes quantidades, espalhando os dados pelas posições.
- MixColumns: As colunas são misturadas através de multiplicação matricial num campo finito, difundindo alterações entre os bytes.
- 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 correcta 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 efectivamente 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 efectiva, 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 vector de inicialização aleatório (IV) e não fornece autenticação incorporada.
GCM (Galois/Counter Mode): padrão actual
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 detecta 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 actual |
|---|---|---|---|
| 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:
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.
Cada ficheiro usa um vector 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.
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 factores críticos determinam se a encriptação realmente protege os seus dados:
A derivação de chaves é importante. Como é gerada a chave de 256 bits? Se for derivada de um PIN de 4 dígitos com um KDF fraco, a segurança efectiva são 4 dígitos (10 000 combinações), não 256 bits. Uma implementação forte usa PBKDF2 com número elevado de iterações ou Argon2 com parâmetros adequados de memória/tempo. O Vaultaire usa PBKDF2 com HMAC-SHA512 e deriva a chave a partir de um padrão numa grelha 5×5 com milhares de milhões de entradas possíveis.
O armazenamento da chave é importante. Onde vive a chave? Se a chave está armazenada em texto simples na sandbox da aplicação, qualquer malware com acesso a ficheiros pode lê-la. O armazenamento adequado de chaves usa mecanismos suportados por hardware como o Apple Secure Enclave, onde as chaves existem num co-processador dedicado com a sua própria memória encriptada.
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. A chave é apagada da memória quando a aplicação fecha? Se a chave persistir na memória, um dump de memória poderia extraí-la. O Vaultaire apaga as chaves da memória sempre que a aplicação fecha e requer nova introdução do padrão em cada abertura.
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 transacçõ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 actual.
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 é efectivamente 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 correctas minimizam esta janela e apagam rapidamente os dados desencriptados.
Perguntas mais frequentes
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 permanece inquebrável.
O AES-256 é resistente a computadores quânticos?
Essencialmente sim. O algoritmo quântico de Grover reduz o comprimento efectivo 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 efectiva, potencialmente vulnerável. O NIST recomenda o AES-256 para segurança a longo prazo contra avanços em computação quântica.
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 actuais. 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?
De forma perceptível, não. Os iPhones modernos incluem aceleração de hardware AES dedicada no Secure Enclave e no processador. Encriptar ou desencriptar uma fotografia demora milissegundos. O AES foi especificamente concebido para eficiência de implementação em hardware.
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: algoritmo e modo específicos (AES-256-GCM, não apenas “AES” ou “256 bits”), método de derivação de chave (PBKDF2, Argon2), mecanismo de armazenamento de chave (Secure Enclave, suportado por hardware) e se os metadados também estão encriptados. As aplicações de código aberto permitem verificação independente.
Conclusão
O AES-256 é o padrão de ouro da encriptação simétrica, normalizado pelo NIST, usado por governos e instituições financeiras, e resistente a todos os ataques conhecidos incluindo computadores quânticos. 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 encriptação de ficheiros, PBKDF2 com HMAC-SHA512 para derivação de chave, ChaCha20 para encriptação de metadados e Apple Secure Enclave para gestão de chaves. A encriptação não é linguagem de marketing. É matemática.