CyberGlossary

Criptografía

Salsa20

Definición

Cifrado de flujo con clave de 256 bits diseñado por Daniel J. Bernstein en 2005, incluido en el portafolio eSTREAM y antecesor directo de ChaCha20.

Salsa20 es un cifrado de flujo publicado por Daniel J. Bernstein en 2005 y seleccionado para el portafolio final de software del concurso europeo eSTREAM. Genera un flujo de clave aplicando 20 rondas (Salsa20/20) —o las variantes reducidas Salsa20/12 y Salsa20/8— de una función cuarto-de-ronda basada en operaciones suma-rotación-XOR sobre un estado interno de 512 bits derivado de una clave de 256 bits, un nonce de 64 bits y un contador de bloque. Es rápido en software, de tiempo constante y ha resistido el criptoanálisis fuera de los ataques contra rondas reducidas. Ha sido en gran medida sustituido por ChaCha20, refinamiento con mejor difusión y nonce más largo, pero pervive en la variante XSalsa20 con nonce extendido, utilizada en la biblioteca NaCl/libsodium y, históricamente, en los servicios ocultos de Tor.

Ejemplos

  • El secretbox de NaCl/libsodium usa XSalsa20-Poly1305 como AEAD por defecto.
  • Salsa20/12 formó parte del portafolio final de eSTREAM.

Términos relacionados