ChaCha20-Poly1305 Criptografar

Ferramenta gratuita de ChaCha20-Poly1305 Criptografar online. Processamento 100% local — seus dados nunca saem do seu dispositivo.

National Standards
Legacy
Saída

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.

Padrão TLS moderno: ChaCha20-Poly1305 é uma das duas suites de ciframento obrigatórias no TLS 1.3 (junto com AES-256-GCM). É a escolha preferida em dispositivos móveis e IoT, e é comparável em segurança ao AES-256-GCM em todas as plataformas.

Etapas de uso

Esta ferramenta suporta criptografia e descriptografia. A chave é obrigatória; o nonce é gerado automaticamente se deixado em branco:

1. Gerar ou inserir chaveClique no botão aleatório ao lado de 'Secret Key' para gerar uma chave aleatória de 32 bytes (256 bits), ou insira sua própria string de 32 caracteres
2. Nonce (opcional)Deixe em branco para gerar automaticamente um nonce aleatório de 12 bytes para cada criptografia. Para descriptografia, o nonce está incorporado no texto cifrado — deixe este campo vazio
3. CriptografarInsira o texto plano na caixa de entrada, selecione 'Criptografar' e clique em 'Criptografar'. A saída é uma string base64 contendo o nonce de 12 bytes precedendo o texto cifrado+etiqueta
4. DescriptografarCole o texto cifrado base64 na caixa de entrada, selecione 'Descriptografar', insira a mesma chave usada para criptografia e clique em 'Descriptografar'
Proteção de privacidade: Todas as operações ChaCha20-Poly1305 são executadas completamente em seu navegador usando WebAssembly. Nenhum dado é enviado a um servidor — processamento completamente offline.

Formato de chave e nonce

ChaCha20-Poly1305 usa parâmetros de tamanho fixo:

Chave32 bytes (256 bits) — inserir como string de 32 caracteres, ou usar o gerador aleatório
Nonce12 bytes (96 bits) — inserir como string de 12 caracteres, ou deixar em branco para geração automática. Nunca reutilize o mesmo nonce com a mesma chave
Formato do texto cifradobase64(nonce[12 bytes] + texto cifrado + etiqueta de autenticação[16 bytes]). O nonce é precedido para que a descriptografia seja autônoma
Etiqueta16 bytes (128 bits) de etiqueta de autenticação Poly1305, adicionada automaticamente durante a criptografia e verificada automaticamente durante a descriptografia
Nunca reutilize nonces: Reutilizar o mesmo par (chave, nonce) compromete completamente a segurança do ChaCha20-Poly1305 — permite que um atacante recupere o fluxo de chaves e descriptografe todas as mensagens. Use sempre um nonce único para cada criptografia, ou deixe esta ferramenta gerar um automaticamente.

ChaCha20-Poly1305 vs AES-GCM

Ambos são cifras AEAD no TLS 1.3. Veja quando escolher cada um:

ChaCha20-Poly1305Preferido em dispositivos móveis, ARM e IoT sem hardware AES. Tempo constante em software, resistente a ataques de temporização. Nenhum acelerador de hardware necessário
AES-GCMPreferido quando instruções de hardware AES-NI estão disponíveis (a maioria das CPUs x86/x64 modernas). Significativamente mais rápido com aceleração de hardware
Equivalência de segurançaAmbos fornecem força de chave de 256 bits e etiquetas de autenticação de 128 bits. Nenhum é considerado mais forte que o outro do ponto de vista de segurança
Estratégia TLS 1.3Implementações TLS 1.3 negociam: AES-GCM em servidores/desktops com AES-NI; ChaCha20-Poly1305 em clientes móveis sem hardware AES

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).

Recommended Configuration:
  • ✅ 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.

Recommended Configuration:
  • ✅ 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.

Recommended Configuration:
  • ✅ 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).

Recommended Configuration:
  • 💡 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.

Recommended Configuration:
  • ❌ 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

ChaCha20-Poly1305 é um algoritmo de criptografia, não uma função hash de senhas. A criptografia é reversível — qualquer pessoa com a chave pode descriptografar a senha. Use Argon2id (preferido) ou bcrypt para armazenamento de senhas.

Recommended Configuration:
  • ❌ Não use ChaCha20-Poly1305 para armazenamento de senhas (é reversível)
  • Argon2id (algoritmo de hash de senhas preferido)
  • bcrypt (amplamente suportado, sistemas existentes)
  • ✅ scrypt / PBKDF2 (KDFs de senhas alternativos)

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.

Discussão e Feedback

0 comentários
Eu