CoderTools

Cifrado Salsa20

Cifrado de flujo de alta velocidad con variante de nonce extendido

Seguridad del lado del cliente

Todas las operaciones de cifrado y descifrado se realizan localmente en su navegador. Ningún dato se envía jamás a ningún servidor.

Salsa20: Cifrado de flujo de 256 bits con nonce de 64 bits y 20 rondas. Rápido y seguro para la mayoría de las aplicaciones.

Valor inicial del contador de bloque (normalmente 0 para cifrado, mismo valor para descifrado)

Opciones de formato
🔒 100% Procesamiento localLos datos que introduce se procesan completamente en su navegador. No se envían a ningún servidor.

Acerca de Salsa20

Salsa20 es un cifrado de flujo diseñado por Daniel J. Bernstein en 2005. Utiliza una clave de 256 bits y un nonce de 64 bits para generar un flujo de claves que se XOR con el texto plano para producir el texto cifrado. El cifrado está diseñado para alto rendimiento en implementaciones de software.

Salsa20 fue presentado al proyecto eSTREAM y seleccionado como finalista en el perfil de software. Forma la base de la familia de cifrados ChaCha.

Comparación de algoritmos

Algoritmo Rondas Longitud de Nonce Velocidad Mejor uso
Salsa20/20 20 64 bits (8 bytes) Estándar Cifrado general, alta seguridad
Salsa20/12 12 64 bits (8 bytes) Rápido Aplicaciones críticas de rendimiento
Salsa20/8 8 64 bits (8 bytes) Más rápido Escenarios de máxima velocidad
XSalsa20 20 192 bits (24 bytes) Estándar Nonce aleatorio, NaCl/libsodium

Cómo funciona Salsa20

Salsa20 opera en una matriz 4×4 de palabras de 32 bits (512 bits en total). El estado inicial consiste en la clave (256 bits), nonce (64 bits), contador (64 bits) y cuatro palabras constantes que forman la cadena 'expand 32-byte k'.

La función principal aplica 20 rondas de la operación quarterround, que utiliza solo operaciones de suma-rotación-XOR (ARX). Esto hace que Salsa20 sea eficiente en software y resistente a ataques de tiempo.

XSalsa20 extiende el nonce a 192 bits usando HSalsa20, una variante que deriva una subclave de los primeros 128 bits del nonce, dejando 64 bits para el nonce real. Esto permite la generación segura de nonce aleatorio.

Variantes de rondas

  • Salsa20/20 (20 rondas) - La variante estándar que proporciona margen de seguridad completo. Recomendado para la mayoría de las aplicaciones.
  • Salsa20/12 (12 rondas) - Selección del portafolio eSTREAM. Proporciona buen equilibrio entre velocidad y seguridad.
  • Salsa20/8 (8 rondas) - Variante más rápida. Sin ataques prácticos conocidos, pero margen de seguridad reducido.

Características principales

  • Alto rendimiento: Optimizado para software, logrando 3-4 ciclos por byte en CPUs modernos
  • Diseño simple: Solo usa operaciones ARX, fácil de implementar sin tablas de búsqueda
  • Tiempo constante: Resistente a ataques de canal lateral de tiempo de caché
  • Contador grande: El contador de 64 bits permite cifrar hasta 2^70 bytes por par clave-nonce
  • Nonce extendido: El nonce de 192 bits de XSalsa20 permite generación de nonce aleatorio

Consideraciones de seguridad

  • Nunca reutilice un nonce con la misma clave - esto rompe completamente la seguridad
  • Salsa20 proporciona solo cifrado, no autenticación - combine con Poly1305 para AEAD
  • Para nonces aleatorios, use XSalsa20 para minimizar la probabilidad de colisión
  • Use un KDF apropiado (HKDF, Argon2) para derivar claves de contraseñas

Uso en el mundo real

  • NaCl/libsodium: XSalsa20-Poly1305 es la construcción AEAD predeterminada
  • Herramientas de cifrado: Muchas utilidades de cifrado de archivos usan variantes de Salsa20
  • Administradores de contraseñas: Algunos usan Salsa20 para cifrar credenciales almacenadas
  • Motores de juegos: Usado para cifrado rápido en juegos en red

Referencias

Menú Rápido

Sin herramientas recientes