CyberGlossary

Criptografía

ChaCha20

Definición

Cifrado de flujo moderno diseñado por Daniel J. Bernstein, con clave de 256 bits y nonce de 96 bits; ampliamente desplegado junto a Poly1305 en el AEAD ChaCha20-Poly1305.

ChaCha20 es un cifrado de flujo de 20 rondas diseñado por Daniel J. Bernstein en 2008 como evolución de Salsa20. Genera un flujo de clave a partir de una clave de 256 bits, un nonce de 96 bits y un contador de bloque de 32 bits, usando simples operaciones de suma, rotación y XOR sobre palabras de 32 bits, lo que lo hace rápido y de tiempo constante en CPU sin aceleración AES (móvil, embebido). Combinado con el MAC Poly1305 forma el esquema AEAD ChaCha20-Poly1305, estandarizado en RFC 8439, uno de los dos cifrados obligatorios en TLS 1.3 (junto a AES-GCM). Se usa en TLS, QUIC, WireGuard, OpenSSH, el protocolo Signal y la criptografía del kernel Linux. Tras más de una década de análisis, no hay ataques conocidos contra su versión completa de 20 rondas.

Ejemplos

  • TLS 1.3 y QUIC utilizan TLS_CHACHA20_POLY1305_SHA256 en dispositivos móviles.
  • WireGuard cifra todos sus paquetes de datos con ChaCha20-Poly1305.

Términos relacionados