CoderTools

Criptografia ChaCha20

Cifra de fluxo moderna com autenticação opcional

Segurança do lado do cliente

Todas as operações de criptografia/descriptografia são realizadas localmente no seu navegador. Nenhum dado é enviado para qualquer servidor.

ChaCha20: Cifra de fluxo de 256 bits com nonce de 96 bits. Rápido e seguro, sem autenticação.

Valor inicial do contador (padrão: 0)

Opções de formato
🔒 100% Processamento localOs dados inseridos são processados inteiramente em seu navegador. Nenhum dado é enviado para qualquer servidor.

Sobre o ChaCha20

ChaCha20 é uma cifra de fluxo moderna projetada por Daniel J. Bernstein em 2008, derivada da cifra Salsa20. Usa uma chave de 256 bits e opera em blocos de 512 bits, gerando um fluxo de chaves que é XORado com o texto plano para criptografia. A cifra é conhecida por sua velocidade, segurança e resistência a ataques de temporização.

Esta cifra é conhecida por sua velocidade, segurança e resistência a ataques de temporização, tornando-a uma excelente escolha para implementações de software.

Comparação de Algoritmos

Algoritmo Autenticação Comprimento da chave Tamanho do Nonce Caso de Uso
ChaCha20 Cifra de fluxo 256 bits 96 bits (12 bytes) Criptografia bruta, protocolos personalizados
ChaCha20-Poly1305 AEAD 256 bits 96 bits (12 bytes) TLS 1.3, QUIC, mensagens seguras
XChaCha20 Cifra de fluxo 256 bits 192 bits (24 bytes) Cenários de nonce aleatório
XChaCha20-Poly1305 AEAD 256 bits 192 bits (24 bytes) Maioria das aplicações (recomendado)

Como o ChaCha20 Funciona

ChaCha20 opera em 20 rodadas, aplicando funções de quarto de rodada a uma matriz 4×4 de palavras de 32 bits. O estado inicial consiste em:

Cada rodada permuta o estado usando adições, XORs e rotações, fornecendo excelente difusão enquanto permanece rápido em software.

AEAD: Criptografia Autenticada

ChaCha20-Poly1305 é uma construção AEAD padronizada na RFC 8439. Combina ChaCha20 para criptografia com o MAC Poly1305 para autenticação. Isso garante confidencialidade e integridade - qualquer adulteração no texto cifrado ou AAD será detectada durante a descriptografia. A tag de autenticação de 128 bits é anexada ao texto cifrado.

Isso garante tanto confidencialidade quanto integridade - qualquer adulteração do texto cifrado ou AAD será detectada durante a descriptografia. O tag de autenticação de 128 bits é calculado sobre o texto cifrado e AAD.

Características Principais

  • Alto Desempenho: Otimizado para implementações de software, 3× mais rápido que AES sem aceleração de hardware
  • Tempo Constante: Resistente a ataques de temporização de cache, diferente de implementações AES baseadas em tabelas
  • Design Simples: Usa apenas operações ARX (adição, rotação, XOR), fácil de implementar corretamente
  • Ampla Adoção: Usado em TLS 1.3, OpenSSH, WireGuard, Signal Protocol e mais
  • Nonce Estendido: Variante XChaCha20 permite geração segura de nonce aleatório sem risco de colisão

Considerações de Segurança

  • Nunca reutilize um nonce com a mesma chave - isso compromete completamente a segurança
  • Use variantes AEAD (Poly1305) para a maioria das aplicações para detectar adulteração
  • Para nonces aleatórios, use XChaCha20 (192 bits) para minimizar a probabilidade de colisão
  • Use um KDF apropriado (HKDF, Argon2) para derivar chaves de senhas

Uso no Mundo Real

  • TLS 1.3: Suite de cifra padrão (TLS_CHACHA20_POLY1305_SHA256)
  • WireGuard VPN: Protocolo de criptografia principal
  • Signal Protocol: Mensagens criptografadas de ponta a ponta
  • Cloudflare: Preferido sobre AES-GCM para clientes móveis
  • Kernel Linux: CSPRNG (/dev/urandom)

Referências

Menu Rápido

Nenhuma ferramenta recente