Como funciona o algoritmo de criptografia Rijndael?
Também conhecido pela sigla AES
Transmitir informações estritamente confidenciais com segurança, sem que pessoas não autorizadas tenham acesso, sempre foi um desafio. As primeiras “linguagens secretas” – como simples substituições de letras – são trivialmente quebradas com o poder de processamento moderno. Hoje, protegemos dados com métodos criptográficos, definidos com precisão matemática e cuja segurança foi avaliada publicamente.
Esses métodos utilizam uma chave, conhecida apenas pelo remetente e pelo destinatário. A criptografia e a descriptografia seguem um algoritmo de criptografia – um procedimento matemático claramente definido.
Password Depot criptografa seus dados confidenciais com o algoritmo Rijndael, padronizado como AES (Advanced Encryption Standard).
A seguir, explicamos o algoritmo e o contextualizamos tecnicamente.
Advanced Encryption Standard (AES) – a variante padronizada do Rijndael
O National Bureau of Standards dos EUA (hoje NIST) padronizou em 1977 o DES; esse padrão foi descontinuado, em 2005, porque já não era suficientemente seguro (comunicado do NIST). Em 2001, como sucessor, o NIST selecionou Rijndael e a partir dele padronizou o Advanced Encryption Standard (AES) (FIPS 197).
Importante: AES é um subconjunto da família Rijndael. O AES fixa o tamanho do bloco em 128 bits e permite chaves de 128, 192 ou 256 bits (Observação do NIST, FIPS 197 (PDF)).
O AES é aprovado para a proteção de informações de órgãos do governo dos EUA até o nível TOP SECRET (consulte a Fact Sheet CNSSP‑15 e a atual FAQ CNSA‑2.0 da NSA).
Como o Rijndael/AES funciona (visão geral resumida)
Rijndael é uma cifra de rede de substituição-permutação. As ideias centrais são substituições em nível de byte, transformações lineares e XOR.
Fluxo no nível do bloco ("state" de 128 bits)
- Expansão de chave (Key Schedule): A partir da chave, são derivadas Nr + 1 chaves de rodada (por exemplo, 11 no AES-128, 13 no AES-192, 15 no AES-256). Fonte: FIPS 197.
- Rodada inicial: AddRoundKey – o bloco de texto simples (como uma matriz 4×4 de bytes) é combinado via XOR com a primeira chave de rodada.
- Rodadas 1 … Nr:
- SubBytes: cada byte é substituído por meio de uma S-Box (inverso multiplicativo em GF(28) mais transformação afim com constante
0x63). Fonte: FIPS 197. - ShiftRows: as linhas da matriz de estado são deslocadas ciclicamente.
- MixColumns: as colunas são combinadas por multiplicação de matrizes em GF(28).
- AddRoundKey: XOR com a respectiva chave de rodada.
- SubBytes: cada byte é substituído por meio de uma S-Box (inverso multiplicativo em GF(28) mais transformação afim com constante
Observação: Na última rodada MixColumns é omitido. O número de rodadas é 10/12/14 para chaves com 128/192/256 Bit (FIPS 197).
AES pode ser implementado em software, firmware ou hardware (FIPS 197). Para uso prático, Modos de operação usados, por exemplo, CBC, CTR ou GCM (criptografia autenticada). As recomendações podem ser encontradas em NIST SP 800–38A e NIST SP 800–38D (GCM/GMAC).
Importante para contextualizar: O AES é uma cifra simétrica para criptografia de dados. A troca de chaves normalmente é realizada com métodos assimétricos ((EC)DH/RSA). No entanto, o AES pode empacotar chaves com segurança ("Key Wrap") – cf. NIST SP 800–38F.
Especificação oficial
A referência pode ser encontrada aqui: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf
Ataques de força bruta
Força bruta significa que um invasor todos os possíveis chaves. Métodos clássicos como DES com chaves de apenas 56 bits podem, hoje, ser quebrados na prática – por isso, o NIST retirou oficialmente (NIST).
Métodos modernos como AES com chaves de 128/192/256 bits, por outro lado, têm um espaço de chaves astronomicamente grande. Na prática, é menos o algoritmo em si que importa do que a derivação de chaves a partir de senhas e a qualidade da senha mestra.
Password Depot dificulta ainda mais ataques de força bruta por meio de uma função de atraso: após uma inserção incorreta da senha mestra, o programa permanece bloqueado por alguns segundos.
Conclusão: Com implementação correta, modos de operação adequados (por exemplo, GCM) e comprimento de chave suficiente, o AES é considerado, na visão atual, seguro a muito longo prazo.
Mais sobre ataques de força bruta.
Fontes complementares
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (especificação original)
- NIST: AES é um subconjunto do Rijndael (tamanho de bloco de 128 bits)
- NIST SP 800–38A – Modos de operação (ECB/CBC/CFB/OFB/CTR)
- NIST SP 800–38D – GCM/GMAC (criptografia autenticada)
- NIST SP 800–38F – AES Key Wrap
- Ficha informativa CNSSP–15 – Uso de AES para informações secretas/ultrassecretas
- NSA: FAQ do CNSA 2.0 – requisitos atuais
- NIST: Retirada do DES (contexto)
Entenda os ataques de força bruta
Saiba por que o comprimento da senha é decisivo e como se proteger.
Mais sobre ataques de força bruta