ChaCha20-Poly1305 Criptografar
Ferramenta gratuita de ChaCha20-Poly1305 Criptografar online. Processamento 100% local — seus dados nunca saem do seu dispositivo.
O resultado será exibido aqui...
Entrada → Criptografar
Usage Guide
Sobre ChaCha20-Poly1305
ChaCha20-Poly1305 é um cifrador de criptografia autenticada com dados associados (AEAD), combinando o cifrador de fluxo ChaCha20 com o código de autenticação de mensagens Poly1305. Projetado por Daniel J. Bernstein, é padronizado no RFC 8439 e adotado no TLS 1.3, SSH e WireGuard como suite de ciframento principal. Fornece tanto confidencialidade (criptografia) quanto integridade (autenticação) em uma única operação, prevenindo espionagem e adulteração de texto cifrado. O ChaCha20-Poly1305 foi desenvolvido como uma alternativa amigável ao software AES-GCM para plataformas sem aceleração de hardware AES.
Etapas de uso
Esta ferramenta suporta criptografia e descriptografia. A chave é obrigatória; o nonce é gerado automaticamente se deixado em branco:
Formato de chave e nonce
ChaCha20-Poly1305 usa parâmetros de tamanho fixo:
ChaCha20-Poly1305 vs AES-GCM
Ambos são cifras AEAD no TLS 1.3. Veja quando escolher cada um:
FAQ
Q: Por que a saída é mais longa que a entrada?
A: A saída criptografada é codificada em base64 e inclui: 12 bytes de nonce + comprimento do texto plano + 16 bytes de etiqueta de autenticação Poly1305. Portanto, o overhead binário é de 28 bytes (12 nonce + 16 etiqueta), e a codificação base64 adiciona aproximadamente 33% de comprimento adicional.
Q: O que acontece se eu adulterar o texto cifrado?
A: ChaCha20-Poly1305 se recusará a descriptografar o texto cifrado adulterado. A etiqueta Poly1305 é um código de autenticação de mensagens calculado sobre todo o texto cifrado. Qualquer modificação — mesmo um único bit — faz com que a verificação da etiqueta falhe, e a função de descriptografia retorna um erro em vez de produzir texto plano corrompido.
Q: Como ChaCha20-Poly1305 difere do ChaCha20 simples?
A: ChaCha20 simples fornece apenas confidencialidade — ele criptografa dados mas não detecta adulteração. ChaCha20-Poly1305 combina criptografia ChaCha20 com uma etiqueta de autenticação Poly1305, fornecendo tanto confidencialidade quanto integridade. Sempre prefira ChaCha20-Poly1305 ao ChaCha20 básico para qualquer uso prático.
Q: Posso usar a mesma chave para múltiplas mensagens?
A: Sim, mas cada mensagem deve usar um nonce único. O par (chave, nonce) nunca deve ser reutilizado. Com nonces de 12 bytes, a geração aleatória de nonces fornece uma probabilidade de colisão aniversário de aproximadamente 1 em 296 — seguro para bilhões de mensagens.
Q: ChaCha20-Poly1305 é resistente a computadores quânticos?
A: Como todas as cifras simétricas, ChaCha20-Poly1305 é afetado pelo algoritmo de Grover, reduzindo a segurança de 256 bits para um equivalente de 128 bits. A segurança pós-quântica de 128 bits é considerada suficiente para a maioria das aplicações. Portanto, ChaCha20-Poly1305 com sua chave de 256 bits é considerado resistente a quânticos no nível de segurança de 128 bits, assim como AES-256-GCM.
Q: Por que a descriptografia falha com 'chave, nonce ou texto cifrado inválidos'?
A: Este erro significa que a verificação da etiqueta de autenticação falhou. Causas comuns:
Chave errada: A chave não corresponde à usada para criptografia.
Texto cifrado corrompido: A string base64 foi modificada, truncada ou colada incorretamente.
Descriptografando dados não-ChaCha20-Poly1305: A entrada foi criptografada com um algoritmo ou ferramenta diferente.
Use Cases
Recomendado: Criptografia simétrica de arquivos e mensagens
ChaCha20-Poly1305 é uma excelente escolha de criptografia simétrica de uso geral. É usado no WireGuard VPN para todo o tráfego de túnel e é uma das duas suites de ciframento principais no TLS 1.3. Sempre gere um novo nonce aleatório por mensagem (esta ferramenta o antecede automaticamente).
- ✅ ChaCha20-Poly1305 (recomendado para móvel, multiplataforma, somente software)
- ✅ AES-256-GCM (recomendado quando o hardware AES-NI estiver disponível)
- ✅ XChaCha20-Poly1305 (nonce estendido de 24 bytes, para mensagens de grande volume)
- ❌ Não use cifras não autenticadas (AES-CBC, ChaCha20 simples) para novos projetos
Recomendado: Criptografia móvel e IoT
Em plataformas sem aceleração de hardware AES, ChaCha20-Poly1305 supera AES-GCM. Como ChaCha20 é amigável ao software, ele é executado em tempo constante em todas as plataformas sem riscos de canais laterais de temporização. O Google escolheu ChaCha20-Poly1305 como cifra preferida para tráfego TLS Android.
- ✅ ChaCha20-Poly1305 (melhor desempenho sem hardware AES)
- ✅ AES-256-GCM (aceitável em dispositivos com hardware AES)
- 💡 TLS 1.3 negocia automaticamente — ambas as suites de ciframento são obrigatórias
- ❌ Não use AES-CBC em dispositivos com restrições (sem autenticação, mais lento)
Aceitável: Armazenamento local criptografado
ChaCha20-Poly1305 pode proteger dados sensíveis armazenados localmente. Derive a chave de uma senha de usuário usando Argon2id em vez de usar a senha diretamente.
- ✅ ChaCha20-Poly1305 + derivação de chave Argon2id (criptografia baseada em senha)
- ✅ AES-256-GCM + PBKDF2 (ambientes compatíveis com FIPS)
- 💡 Armazenar: parâmetros Argon2id + sal + nonce ChaCha20 + texto cifrado
- ❌ Não use modo ECB ou cifras não autenticadas para armazenamento local
Não recomendado: Criptografia de arquivos grandes
ChaCha20-Poly1305 padrão armazena em buffer todo o texto cifrado antes de autenticar, o que é intensivo em memória para arquivos grandes. Para arquivos com mais de alguns megabytes, use uma ferramenta ou biblioteca dedicada que lide com criptografia fragmentada (ex.: libsodium secretstream, age).
- 💡 Use AEAD fragmentado para arquivos maiores que alguns MB
- ✅ libsodium secretstream (ChaCha20-Poly1305 em streaming)
- ✅ ferramenta de criptografia age (orientada a arquivos, usa ChaCha20-Poly1305 internamente)
- ✅ AES-256-GCM em modo streaming (para ambientes com aceleração de hardware)
Não recomendado: Troca de chaves ou autenticação
ChaCha20-Poly1305 é uma cifra simétrica — ambas as partes já devem compartilhar a mesma chave secreta. Não resolve o problema de distribuição de chaves. Para troca segura de chaves, use um protocolo assimétrico ou um protocolo completo como TLS 1.3. Para autenticação sem segredos compartilhados, use assinaturas digitais RSA ou ECDSA.
- ❌ ChaCha20-Poly1305 não resolve a distribuição de chaves
- ✅ TLS 1.3 (lida com troca de chaves + criptografia de dados ChaCha20-Poly1305)
- ✅ X25519 + ChaCha20-Poly1305 (padrão de protocolo Noise)
- ✅ RSA / ECDSA para assinaturas digitais e verificação de identidade
Não recomendado: Hash de senhas
Resumo das melhores práticas
- Use ChaCha20-Poly1305 para criptografia simétrica onde a aceleração de hardware AES não está disponível — móvel, IoT e software multiplataforma.
- Use sempre um nonce aleatório único para cada criptografia. A ferramenta gera um automaticamente se você deixar o campo nonce vazio.
- A saída do texto cifrado incorpora o nonce de 12 bytes e a etiqueta de autenticação de 16 bytes — você só precisa armazenar a única string base64 para descriptografia.
- Nunca reutilize um par (chave, nonce). A reutilização do nonce compromete completamente a segurança do ChaCha20-Poly1305.
- Para criptografia baseada em senha, derive a chave com Argon2id primeiro — nunca use uma senha diretamente como chave ChaCha20-Poly1305.