Saltar al contenido
uencoder

ChaCha20

ChaCha20 es un cifrador de flujo diseñado por Daniel Bernstein, construido sobre operaciones ARX (suma-rotación-XOR), que suele emparejarse con Poly1305 como AEAD — una alternativa de alto rendimiento a AES-GCM.

Propósito

Proporciona cifrado rápido y seguro en tiempo constante en plataformas sin aceleración hardware de AES, evitando los canales laterales de temporización de AES.

Mecanismo

Mejora de Salsa20, ejecuta 20 rondas de operaciones quarter-round. El estado es una matriz 4×4 (constantes, clave, contador, nonce). Cada ronda aplica suma-rotación-XOR a columnas y diagonales; el flujo de clave resultante se combina por XOR con el texto plano.

Casos de uso

  • Una de las suites de cifrado por defecto de TLS 1.3
  • VPN WireGuard
  • Cifrado de servidores de Google
  • Cifrado móvil

Ejemplos

  • entrada
    key=256bit, nonce=96bit, counter
    Output
    keystream

    Combined with Poly1305 as AEAD

Errores comunes

Nonce reuse replays the keystream
Use a unique nonce per message (e.g., a counter)

Términos relacionados

Herramientas relacionadas

References