Saltar al contenido
uencoder

Salsa20

Salsa20 es un cifrado de flujo diseñado por Daniel Bernstein, construido sobre operaciones ARX con 20 rondas; es un algoritmo recomendado por eSTREAM y el predecesor de ChaCha20.

Propósito

Proporciona cifrado de flujo rápido y seguro en tiempo constante, evitando la complejidad del relleno y de los modos de operación de los cifrados por bloques.

Mecanismo

El estado es una matriz de 4×4 (constante σ, clave, nonce, contador). Cada ronda aplica la operación de cuarto de ronda (suma-rotación-XOR) a todas las columnas y filas. Tras 20 rondas, el estado se suma al estado inicial para producir el flujo de clave.

Casos de uso

  • Algoritmo recomendado por eSTREAM
  • La biblioteca criptográfica NaCl
  • Investigación criptográfica
  • Ejemplos didácticos

Ejemplos

  • entrada
    key=256bit, nonce=64bit
    Output
    keystream

    ChaCha20 is its improved successor

Errores comunes

Using Salsa20 instead of the safer ChaCha20
Prefer ChaCha20-Poly1305

Términos relacionados

Herramientas relacionadas

References