Como funciona o algoritmo de cifragem Rijndael?
Também conhecido pela sigla AES
Transmitir informações altamente confidenciais de forma segura, sem que pessoas não autorizadas obtenham acesso, sempre foi um desafio. As primeiras “linguagens secretas” – como simples substituições de letras – podem ser quebradas de forma trivial com a capacidade de cálculo atual. Hoje, protegemos dados com métodos criptográficos, definidos com precisão matemática e cuja segurança foi avaliada publicamente.
Tais métodos utilizam uma chave, conhecida apenas pelo emissor e pelo destinatário. A cifragem e a decifragem seguem um algoritmo de cifragem – um procedimento matemático claramente especificado.
Password Depot cifra os seus dados confidenciais com o algoritmo Rijndael, estandardizado como AES (Advanced Encryption Standard).
No que se segue, explicamos o algoritmo e enquadramos tecnicamente a sua utilização.
Advanced Encryption Standard (AES) – a variante estandardizada de Rijndael
O National Bureau of Standards dos EUA (atualmente NIST) estandardizou em 1977 o DES; este standard foi revogado em 2005 por já não ser suficientemente seguro (comunicado do NIST). Como sucessor, o NIST escolheu em 2001 o Rijndael e, com base nele, definiu o Advanced Encryption Standard (AES) (FIPS 197).
Importante: AES é um subconjunto da família Rijndael. AES fixa o tamanho de bloco em 128 bits e permite chaves de 128, 192 ou 256 bits (nota do NIST, FIPS 197 (PDF)).
AES está aprovado para proteger informação de organismos federais dos EUA até ao nível TOP SECRET (ver folha informativa CNSSP-15 e o atual CNSA-2.0 FAQ da NSA).
Como funciona Rijndael/AES (visão geral curta)
Rijndael é uma cifra do tipo substitution-permutation network (SPN). As ideias centrais são substituições ao nível de byte, transformações lineares e operações de XOR.
Processamento ao nível de bloco ("State" de 128 bits)
- Expansão de chave (Key Schedule): A partir da chave são derivadas Nr + 1 sub-chaves de ronda (por exemplo, 11 no AES-128, 13 no AES-192, 15 no AES-256). Fonte: FIPS 197.
- Ronda inicial: AddRoundKey – o bloco de texto em claro (representado como uma matriz 4×4 bytes) é combinado por XOR com a primeira sub-chave de ronda.
- Rondas 1 … Nr:
- SubBytes: Cada byte é substituído através de uma S-Box (inverso multiplicativo em GF(28) seguido de transformação afim com a constante
0x63). Fonte: FIPS 197. - ShiftRows: As linhas da matriz de estado são deslocadas ciclicamente.
- MixColumns: As colunas são misturadas através de multiplicação matricial em GF(28).
- AddRoundKey: operação XOR com a respetiva sub-chave de ronda.
Nota: Na última ronda a etapa MixColumns é omitida. O número de rondas é 10/12/14 para chaves de 128/192/256 bits (FIPS 197). - SubBytes: Cada byte é substituído através de uma S-Box (inverso multiplicativo em GF(28) seguido de transformação afim com a constante
AES pode ser implementado em software, firmware ou hardware (FIPS 197). Para utilização prática são usados diferentes modos de operação, por exemplo CBC, CTR ou GCM (cifragem autenticada). Recomendações encontram-se em NIST SP 800-38A e NIST SP 800-38D (GCM/GMAC).
Importante para o enquadramento: AES é uma cifra simétrica para cifragem de dados. A troca de chaves é normalmente realizada com algoritmos assimétricos ((EC)DH/RSA). No entanto, AES pode encapsular chaves de forma segura (“Key Wrap”) – ver NIST SP 800-38F.
Especificação oficial
A referência encontra-se aqui: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf
Ataques de força bruta
Brute-force significa que um atacante tenta todas as chaves possíveis. Algoritmos clássicos como o DES, com chaves de apenas 56 bits, podem hoje ser quebrados dessa forma na prática – por isso o NIST revogou oficialmente o DES em 2005 (NIST).
Já os algoritmos modernos como AES, com chaves de 128/192/256 bits, dispõem de um espaço de chaves astronomicamente grande. Na prática, o fator decisivo não é tanto o algoritmo, mas sim a derivação de chave a partir de palavras-passe e a qualidade da palavra-passe mestra.
Password Depot torna os ataques de força bruta ainda mais difíceis através de uma função de atraso: após uma introdução incorreta da palavra-passe mestra, a aplicação permanece bloqueada durante alguns segundos.
Conclusão: Com uma implementação correta, modos de operação adequados (por exemplo, GCM) e comprimento de chave suficiente, o AES é atualmente considerado muito seguro a longo prazo.
Mais informações sobre ataques de força bruta.
Fontes adicionais
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (especificação original)
- NIST: AES é um subconjunto de 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 (cifragem autenticada)
- NIST SP 800-38F – AES Key Wrap
- CNSSP-15 Fact Sheet – utilização de AES para informação confidencial/muito confidencial
- NSA: CNSA 2.0 FAQ – requisitos atuais
- NIST: retirada do DES (contexto)