Definição (cartão de glossário): ChaCha20-Poly1305 é uma construção de criptografia autenticada com dados associados (AEAD) que combina a cifra de fluxo ChaCha20 com o código de autenticação de mensagens Poly1305. Ela criptografa o tráfego com uma chave de 256 bits e anexa uma etiqueta de autenticação de 128 bits para que os destinatários possam detectar adulterações na mesma operação criptográfica.

Quando um aplicativo de VPN lista “ChaCha20-Poly1305” ao lado de WireGuard ou de um conjunto de cifras TLS, está nomeando o algoritmo que de fato protege os payloads dos pacotes após o handshake. Entender esse nome importa mais do que memorizar slogans de marketing: ChaCha20-Poly1305 não é um protocolo de VPN por si só e não é um substituto mais fraco do AES. É uma cifra AEAD moderna padronizada para protocolos IETF e amplamente implantada no WireGuard, TLS, SSH e IPsec.
De onde vem o nome
Daniel J. Bernstein projetou o Poly1305 (2005) e o ChaCha (2008) como primitivas de software de alta velocidade. A IETF posteriormente padronizou uma combinação AEAD específica em RFC 8439 (obsoletando o RFC 7539): O ChaCha20 produz um fluxo de chave que é combinado por XOR com o texto em claro, e o Poly1305 autentica o texto cifrado mais quaisquer dados associados. A construção aumenta o texto cifrado em uma tag fixa de 16 bytes.
De acordo com a visão geral da Wikipédia sobre ChaCha20-Poly1305, o algoritmo usa uma chave de 256 bits e um nonce de 96 bits, espelha a estrutura encrypt-then-MAC familiar do AES-GCM e é usado em IPsec, SSH, TLS 1.2/1.3, DTLS e WireGuard. Essa amplitude é a razão pela qual o mesmo nome de cifra aparece em clientes VPN de consumo e em gateways empresariais.
Como o ChaCha20 criptografa

O ChaCha20 é uma cifra de fluxo. Não divide os dados nos blocos de 128 bits que o AES usa. Em vez disso, expande uma chave, um nonce e um contador de blocos em blocos de fluxo de chave de 64 bytes usando apenas adição, XOR e rotação de bits ao longo de 20 rodadas. O fluxo de chave é combinado por XOR com o texto em claro para produzir o texto cifrado. A descriptografia é o mesmo XOR com o mesmo fluxo de chave.
Explicação da Proton sobre o ChaCha20 resume o ponto prático para os usuários de VPN: o ChaCha20 foi projetado para se manter rápido em software comum, o que ajuda celulares, CPUs mais antigas e dispositivos sem aceleração de hardware AES. O AES costuma vencer quando AES-NI ou extensões criptográficas ARM estão presentes; o ChaCha20 costuma vencer quando a criptografia precisa rodar em software puro com propriedades de temporização consistentes.
O que o Poly1305 acrescenta

A criptografia sozinha não impede que um atacante inverta bits em trânsito. O Poly1305 é um código de autenticação de mensagens de uso único que produz uma tag de 16 bytes sobre o texto cifrado (e os dados associados). Na construção AEAD do RFC 8439, o primeiro bloco ChaCha20 gera uma chave Poly1305 de uso único; os blocos seguintes criptografam a carga útil. Se a tag falhar na verificação, o pacote deve ser descartado sem liberar o texto em claro.
Esse modelo de “criptografar e depois autenticar em uma só API” é o que AEAD significa. O AES-GCM faz o mesmo trabalho com mecanismos internos diferentes. Os analistas de segurança consideram que o ChaCha20-Poly1305 e o AES-256-GCM corretamente implementados oferecem confidencialidade e integridade equivalentes sob pressupostos padrão — desde que os nonces nunca se repitam para uma determinada chave.
Por que o WireGuard e as stacks móveis se importam
A criptografia publicada do WireGuard fixa o cipher de transporte em ChaCha20-Poly1305. Não há um seletor do usuário para AES no WireGuard clássico. Essa escolha mantém o protocolo pequeno e auditável: um AEAD, uma família de troca de chaves, superfície de configuração mínima. OpenVPN e IKEv2/IPsec podem negociar vários ciphers, incluindo ChaCha20-Poly1305 onde bibliotecas e peers o suportam, razão pela qual o nome do algoritmo também aparece fora do WireGuard.
Em redes móveis e dispositivos com restrição de bateria, ciphers amigáveis ao software importam. Medições históricas de TLS citadas no apêndice de desempenho do RFC 8439 mostraram que o ChaCha20-Poly1305 superava o AES-GCM em telefones sem aceleração AES, enquanto o AES-GCM liderava em servidores com AES-NI. Em 2026, muitos telefones têm extensões criptográficas, mas o design amigável ao software ainda reduz o risco de implementação e mantém o throughput previsível em frotas mistas.
ChaCha20 vs AES: os trade-offs que importam
- Tipo de cipher: O ChaCha20 é um cipher de fluxo; o AES é um cipher de bloco geralmente executado em modo GCM para AEAD.
- Hardware: O AES geralmente vence em CPUs com AES-NI / extensões criptográficas; o ChaCha20 geralmente vence em software puro.
- Canais laterais de timing: O design add-rotate-XOR do ChaCha20 é amplamente considerado mais fácil de implementar sem armadilhas de cache-timing do que alguns caminhos de software do AES baseados em tabelas.
- Disciplina de nonce: Tanto o GCM quanto o ChaCha20-Poly1305 falham de forma catastrófica se um par (key, nonce) for reutilizado. Os protocolos devem garantir unicidade—o WireGuard usa contadores de pacotes; o TLS deriva chaves e nonces novos por record.
- Familiaridade com conformidade: As listas de verificação empresariais ainda citam AES-256 com mais frequência; isso é hábito institucional, não evidência de que ChaCha20-Poly1305 seja mais fraco quando padronizado e usado corretamente.
O que ChaCha20-Poly1305 não é
Não é um protocolo VPN. Não substitui WireGuard, OpenVPN ou IKEv2. Não oculta que você está usando uma VPN, não escolhe países de saída nem aplica uma política de no-logs. Esses são problemas de transporte, roteamento e confiança no operador. ChaCha20-Poly1305 só responde: depois que os pares compartilham uma chave de sessão, como os pacotes são selados para que interceptadores não possam lê-los nem alterá-los em silêncio?
Também não é “à prova quântica”. Como AES-256-GCM, é uma cifra simétrica; a preocupação habitual de colher agora e descriptografar depois nas VPNs concentra-se na troca de chaves do handshake (ECDH hoje, com implantações híbridas ML-KEM emergentes), não em aposentar de súbito o próprio ChaCha20. Trate as alegações de VPN pós-quântica como afirmações sobre handshakes e autenticação, não sobre trocar ChaCha20 por outra cifra em massa.
Lista prática de verificação para leitores
- Se o seu cliente mostrar WireGuard, espere ChaCha20-Poly1305 no canal de dados por design.
- Se o seu cliente mostrar OpenVPN ou IKEv2, confirme a cifra negociada nos logs ou nas configurações avançadas; ChaCha20-Poly1305 pode estar disponível juntamente com AES-GCM.
- Não persiga adjetivos “grau militar”. Prefira suítes AEAD documentadas em RFCs atuais e clientes mantidos.
- Lembre-se de que um AEAD forte não corrige uma senha reutilizada, uma página de phishing nem um vazamento de DNS fora do túnel.
Em resumo: ChaCha20-Poly1305 é o AEAD que sustenta grande parte do tráfego VPN e HTTPS de hoje. Aprenda a definição, conheça a regra do nonce e trate a escolha do protocolo e a política do operador como questões separadas do nome da cifra em massa na tela de configurações.