AES-CTR
O que é AES-CTR?
AES-CTRModo de cifragem em fluxo que transforma AES num gerador de keystream, cifrando um contador crescente e fazendo XOR com o texto claro.
AES-CTR (modo contador) e um modo apenas de confidencialidade padronizado em NIST SP 800-38A. A cifra encripta blocos consecutivos do contador (tipicamente um nonce de 96 bits concatenado com um contador de bloco de 32 bits) e faz XOR do keystream resultante com o texto claro. Como cada bloco depende apenas do contador, e nao do bloco anterior, o CTR permite cifragem/decifragem totalmente paralelas e acesso aleatorio ao texto cifrado, propriedades que o tornam o cavalo de batalha da cifragem de disco, do IPsec ESP (RFC 3686) e da protecao de registos TLS quando envolvido num modo autenticado.
A fraqueza que define o CTR e que ele nao fornece integridade e e maleavel: um atacante que inverte um bit do texto cifrado inverte exatamente o mesmo bit do texto claro, sem qualquer detecao. Deve sempre ser combinado com um MAC ou usado como motor dentro de um AEAD como GCM, EAX ou CCM. A segunda armadilha, mais perigosa, e a reutilizacao de nonce/contador: cifrar duas mensagens com a mesma chave e o mesmo contador inicial produz keystreams sobrepostos, de modo que o XOR dos dois textos cifrados cancela o keystream e produz o XOR dos textos claros, um classico "pad de dois tempos" que ja quebrou sistemas reais. O keystream e identico independentemente dos dados, por isso um contador repetido e catastrofico mesmo entre ficheiros diferentes.
Na pratica, nunca implemente AES-CTR puro para dados armazenados ou transmitidos: escolha AES-GCM ou ChaCha20-Poly1305, que constroem a autenticacao sobre o mesmo nucleo de modo contador, deixando como unica exigencia operacional a garantia de nonces unicos.
flowchart LR
subgraph Geracao de keystream
N[Nonce + Contador 0] --> E0[Cifragem AES] --> KS0[Bloco de keystream 0]
N1[Nonce + Contador 1] --> E1[Cifragem AES] --> KS1[Bloco de keystream 1]
N2[Nonce + Contador 2] --> E2[Cifragem AES] --> KS2[Bloco de keystream 2]
end
P0[Texto claro 0] --> X0((XOR))
KS0 --> X0 --> C0[Texto cifrado 0]
P1[Texto claro 1] --> X1((XOR))
KS1 --> X1 --> C1[Texto cifrado 1]
P2[Texto claro 2] --> X2((XOR))
KS2 --> X2 --> C2[Texto cifrado 2]
C0 --> MAC[Adicionar MAC / usar GCM<br/>para integridade]● Exemplos
- 01
AES-CTR e a camada de cifragem em AES-GCM e AES-CCM.
- 02
Linux dm-crypt usa variantes de AES-CTR para cifragem de disco.
● Perguntas frequentes
O que é AES-CTR?
Modo de cifragem em fluxo que transforma AES num gerador de keystream, cifrando um contador crescente e fazendo XOR com o texto claro. Pertence à categoria Criptografia da cibersegurança.
O que significa AES-CTR?
Modo de cifragem em fluxo que transforma AES num gerador de keystream, cifrando um contador crescente e fazendo XOR com o texto claro.
Como se defender contra AES-CTR?
As defesas contra AES-CTR costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para AES-CTR?
Nomes alternativos comuns: Modo contador, AES-128-CTR, AES-256-CTR.