Como funciona o algoritmo de encriptação Rijndael?
Também conhecido pela sigla AES
A transmissão segura de informações estritamente confidenciais, sem que pessoas não autorizadas obtenham acesso, sempre foi um desafio. As primeiras “linguagens secretas” – como simples deslocamentos de letras – são triviais de quebrar com o poder de computação moderno. Hoje, protegemos os 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 encriptação e a desencriptação seguem um algoritmo de encriptação – um método matemático claramente definido.
Password Depot encripta os seus dados confidenciais com o algoritmo Rijndael, padronizado como AES (Advanced Encryption Standard).
A seguir, explicamos o algoritmo e contextualizamo-lo do ponto de vista técnico.
Advanced Encryption Standard (AES) – a variante padronizada de Rijndael
O U.S. National Bureau of Standards (atualmente NIST) padronizou em 1977 o DES; esta norma foi retirada, em 2005, por já não ser suficientemente segura (comunicado do NIST). Como sucessor, o NIST selecionou em 2001 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 (Nota do NIST, FIPS 197 (PDF)).
O AES está autorizado para a proteção de informações de órgãos governamentais dos EUA até ao nível TOP SECRET (ver CNSSP‑15 Fact Sheet bem como a atual CNSA‑2.0‑FAQ da NSA).
Como funciona o Rijndael/AES (breve visão geral)
Rijndael é uma cifra de rede de substituição-permutação. As ideias centrais são substituições ao nível do byte, transformações lineares e XOR.
Sequência ao nível do bloco ("state" de 128 bits)
- Expansão da chave (Key Schedule): A partir da chave, são derivadas Nr + 1 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 simples (como matriz 4×4 de bytes) é combinado por XOR com a primeira chave de ronda.
- Rondas 1 … Nr:
- SubBytes: Cada byte é substituído através 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 matricial sobre GF(28) misturadas.
- AddRoundKey: XOR com a respetiva chave de ronda.
- SubBytes: Cada byte é substituído através de uma S-Box (inverso multiplicativo em GF(28) mais transformação afim com constante
Nota: Na última ronda é omitido MixColumns. O número de rondas é de 10/12/14 para chaves com 128/192/256 Bit (FIPS 197).
AES pode ser implementado em software, firmware ou hardware (FIPS 197). Para a utilização prática, são Modos de funcionamento utilizados, por exemplo, CBC, CTR ou GCM (encriptação autenticada). As recomendações podem ser consultadas em NIST SP 800–38A e NIST SP 800–38D (GCM/GMAC).
Importante para contextualizar: AES é uma cifra simétrica para encriptação de dados. A troca de chaves é normalmente efetuada com métodos assimétricos ((EC)DH/RSA). No entanto, o AES pode encapsular chaves de forma segura (“Key Wrap”) – cf. NIST SP 800–38F.
Especificação oficial
Pode consultar a referência 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 atacante todas as chaves possíveis. Métodos clássicos como DES com chaves de apenas 56 bits podem, hoje, ser praticamente quebrados desta forma – por isso, o NIST retirou o DES oficialmente em 2005retirou oficialmente (NIST).
Em contrapartida, métodos modernos como AES com chaves de 128/192/256 bits têm um espaço de chaves astronomicamente grande. Na prática, o fator decisivo é menos o algoritmo do que a derivação de chaves a partir de palavras-passe e a qualidade da palavra-passe mestra.
Password Depot dificulta ainda mais os ataques de brute force através de uma função de atraso: após uma introdução incorreta da palavra-passe mestra, o programa permanece bloqueado durante alguns segundos.
Conclusão: Com uma implementação correta, modos de operação adequados (por exemplo, GCM) e um comprimento de chave suficiente, o AES é atualmente considerado seguro a muito longo prazo.
Mais sobre ataques de brute force.
Fontes adicionais
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (especificação original)
- NIST: AES é um subconjunto de Rijndael (tamanho do bloco de 128 bits)
- NIST SP 800–38A – Modos de operação (ECB/CBC/CFB/OFB/CTR)
- NIST SP 800–38D – GCM/GMAC (encriptação autenticada)
- NIST SP 800–38F – AES Key Wrap
- Ficha informativa CNSSP–15 – Utilização de AES para informações secretas/ultrassecretas
- NSA: CNSA 2.0 FAQ – requisitos atuais
- NIST: Retirada do DES (contexto)
Compreender os ataques de força bruta
Saiba por que o comprimento da palavra-passe é decisivo e como se pode proteger.
Mais sobre ataques de força bruta