CoderTools

Criptografia Salsa20

Cifra de fluxo de alta velocidade com variante de nonce estendido

Segurança do Lado do Cliente

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

Salsa20: Cifra de fluxo de 256 bits com nonce de 64 bits e 20 rodadas. Rápida e segura para a maioria das aplicações.

Valor inicial do contador de bloco (geralmente 0 para criptografia, mesmo valor para descriptografia)

Opções de Formato
🔒 100% Processamento localSeus arquivos são processados inteiramente no seu navegador. Nenhum dado é enviado para qualquer servidor.

Sobre o Salsa20

Salsa20 é uma cifra de fluxo projetada por Daniel J. Bernstein em 2005. Usa uma chave de 256 bits e nonce de 64 bits para gerar um fluxo de chaves que é XORado com o texto plano para produzir o texto cifrado. A cifra é projetada para alto desempenho em implementações de software.

Salsa20 foi submetido ao projeto eSTREAM e selecionado como finalista no perfil de software. Forma a base da família de cifras ChaCha.

Comparação de Algoritmos

Algoritmo Rodadas Comprimento do Nonce Velocidade Melhor Uso
Salsa20/20 20 64 bits (8 bytes) Padrão Criptografia geral, alta segurança
Salsa20/12 12 64 bits (8 bytes) Rápido Aplicações críticas de desempenho
Salsa20/8 8 64 bits (8 bytes) Mais rápido Cenários de velocidade máxima
XSalsa20 20 192 bits (24 bytes) Padrão Nonce aleatório, NaCl/libsodium

Como o Salsa20 Funciona

Salsa20 opera em uma matriz 4×4 de palavras de 32 bits (512 bits no total). O estado inicial consiste na chave (256 bits), nonce (64 bits), contador (64 bits) e quatro palavras constantes formando a string 'expand 32-byte k'.

A função principal aplica 20 rodadas da operação quarterround, que usa apenas operações de adição-rotação-XOR (ARX). Isso torna o Salsa20 eficiente em software e resistente a ataques de temporização.

XSalsa20 estende o nonce para 192 bits usando HSalsa20, uma variante que deriva uma subchave dos primeiros 128 bits do nonce, deixando 64 bits para o nonce real. Isso permite geração segura de nonce aleatório.

Variantes de Rodadas

  • Salsa20/20 (20 rodadas) - A variante padrão fornecendo margem de segurança completa. Recomendado para a maioria das aplicações.
  • Salsa20/12 (12 rodadas) - Seleção do portfólio eSTREAM. Fornece bom equilíbrio entre velocidade e segurança.
  • Salsa20/8 (8 rodadas) - Variante mais rápida. Sem ataques práticos conhecidos, mas margem de segurança reduzida.

Características Principais

  • Alto Desempenho: Otimizado para software, alcançando 3-4 ciclos por byte em CPUs modernos
  • Design Simples: Usa apenas operações ARX, fácil de implementar sem tabelas de pesquisa
  • Tempo Constante: Resistente a ataques de canal lateral de temporização de cache
  • Contador Grande: Contador de 64 bits permite criptografar até 2^70 bytes por par chave-nonce
  • Nonce Estendido: O nonce de 192 bits do XSalsa20 permite geração de nonce aleatório

Considerações de Segurança

  • Nunca reutilize um nonce com a mesma chave - isso quebra completamente a segurança
  • Salsa20 fornece apenas criptografia, não autenticação - combine com Poly1305 para AEAD
  • Para nonces aleatórios, use XSalsa20 para minimizar a probabilidade de colisão
  • Use KDF apropriado (HKDF, Argon2) para derivar chaves de senhas

Uso no Mundo Real

  • NaCl/libsodium: XSalsa20-Poly1305 é a construção AEAD padrão
  • Ferramentas de criptografia: Muitos utilitários de criptografia de arquivos usam variantes do Salsa20
  • Gerenciadores de senhas: Alguns usam Salsa20 para criptografar credenciais armazenadas
  • Engines de jogos: Usado para criptografia rápida em jogos em rede

Referências

Perguntas Frequentes

Qual é a diferença entre Salsa20 e ChaCha20?

ChaCha20 é uma modificação do Salsa20 com difusão melhorada por rodada. ChaCha20 alcança melhor segurança por rodada, por isso se tornou o padrão IETF. Para novos projetos, ChaCha20 é geralmente preferido.

Qual variante de rodadas devo usar?

Use Salsa20/20 para segurança máxima. Salsa20/12 é um bom equilíbrio entre velocidade e segurança. Use Salsa20/8 apenas quando o desempenho é absolutamente crítico e seu modelo de ameaça permite margem de segurança reduzida.

Quando devo usar XSalsa20?

Use XSalsa20 quando precisar gerar nonces aleatórios. Seu espaço de nonce de 192 bits torna colisões virtualmente impossíveis com geração aleatória. O nonce de 64 bits do Salsa20 padrão requer gerenciamento cuidadoso do contador.

Salsa20 é seguro sem autenticação?

Salsa20 sozinho fornece apenas confidencialidade, não integridade. Um atacante pode modificar o texto cifrado sem detecção. Sempre combine com Poly1305 ou outro MAC para criptografia autenticada.

Posso usar esta ferramenta em produção?

Esta ferramenta é para fins educacionais e de desenvolvimento. Embora a implementação siga a especificação, sistemas de produção devem usar bibliotecas criptográficas bem auditadas como libsodium, OpenSSL ou APIs fornecidas pela plataforma.