ChaCha20-Poly1305
O que é ChaCha20-Poly1305?
ChaCha20-Poly1305Construcao AEAD que combina a cifra de fluxo ChaCha20 com o autenticador de uso unico Poly1305, padronizada na RFC 8439 para TLS 1.3 e WireGuard.
ChaCha20-Poly1305 e o AEAD especificado na RFC 8439 (que tornou obsoleta a RFC 7539). ChaCha20 e uma cifra de fluxo ARX de chave 256 bits projetada por Daniel J. Bernstein, com nonce de 96 bits e contador de 32 bits que produz um bloco de 512 bits de keystream por invocacao; Poly1305 e um MAC de uso unico de 128 bits sobre o texto cifrado e dados associados, com chave derivada do primeiro bloco do keystream. Por ser de tempo constante e muito rapido em software puro sem AES-NI, a Google o implantou no Chrome e no Android em 2014 (impulsionado por Adam Langley) para proteger clientes moveis sem hardware AES, onde evita as fugas por temporizacao de cache do AES baseado em tabelas.
Hoje esta em toda parte: suites de TLS 1.2 (RFC 7905), uma suite obrigatoria de TLS 1.3 (RFC 8446), QUIC (RFC 9001), chacha20-poly1305@openssh.com no OpenSSH desde 6.5, OpenVPN e cada frame de dados do WireGuard. A variante de nonce estendido XChaCha20-Poly1305 (nonce de 192 bits, popularizada pelo libsodium) permite escolher nonces de forma aleatoria sem preocupacao com o limite de aniversario.
Como o AES-GCM, falha catastroficamente na reutilizacao de nonce: repetir um nonce sob a mesma chave vaza o XOR de dois textos em claro e expoe a chave de Poly1305, permitindo falsificar mensagens. Por isso as implementacoes usam contadores deterministas e renovam a chave antes que o contador estoure.
flowchart LR K[Chave de 256 bits] --> CC[ChaCha20] N[Nonce de 96 bits] --> CC CC -->|bloco 0| PK[Chave unica Poly1305] CC -->|blocos 1..n| KS[Keystream] P[Texto em claro] --> X((XOR)) KS --> X X --> CT[Texto cifrado] AD[Dados associados] --> PM[MAC Poly1305] CT --> PM PK --> PM PM --> TAG[Tag de 128 bits] CT --> OUT[Texto cifrado + tag] TAG --> OUT
● Exemplos
- 01
Suite TLS 1.3 TLS_CHACHA20_POLY1305_SHA256.
- 02
Os frames de dados do WireGuard sao cifrados com ChaCha20-Poly1305.
● Perguntas frequentes
O que é ChaCha20-Poly1305?
Construcao AEAD que combina a cifra de fluxo ChaCha20 com o autenticador de uso unico Poly1305, padronizada na RFC 8439 para TLS 1.3 e WireGuard. Pertence à categoria Criptografia da cibersegurança.
O que significa ChaCha20-Poly1305?
Construcao AEAD que combina a cifra de fluxo ChaCha20 com o autenticador de uso unico Poly1305, padronizada na RFC 8439 para TLS 1.3 e WireGuard.
Como se defender contra ChaCha20-Poly1305?
As defesas contra ChaCha20-Poly1305 costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para ChaCha20-Poly1305?
Nomes alternativos comuns: ChaCha20/Poly1305, RFC 8439, ChaPoly.