Stream Cipher
Un cifrador de flujo cifra byte a byte o bit a bit, aplicando XOR entre un flujo de claves y el texto claro; no necesita relleno y se adapta a datos en tiempo real y en streaming.
Propósito
Proporciona cifrado eficiente sin alineación de bloque, adecuado para flujos de red y datos continuos.
Mecanismo
El cifrado es C_i = P_i ⊕ S_i, donde S es el flujo de claves generado desde la clave y el nonce/contador mediante un PRG; el descifrado es idéntico (XOR es autoinverso). La seguridad depende del pseudoaleatoriedad del flujo y de la unicidad del nonce. Construcciones comunes: basadas en ARX (ChaCha), en LFSR y el modo AES-CTR.
Casos de uso
- TLS 1.3 (ChaCha20-Poly1305)
- Cifrado de audio/vídeo en tiempo real
- VPN WireGuard
- Cifrado en sistemas empotrados de bajos recursos
Ejemplos
- entrada
key + nonce → keystreamOutputC = P ⊕ SThe nonce must never repeat
Errores comunes
- Encrypting two messages with the same key+nonce (a two-time pad)
- Use a unique nonce or counter per message
Términos relacionados
Block Cipher
Un cifrador por bloques es un cifrado simétrico que cifra y descifra bloques de longitud fija (p. ej., 128 bits) y necesita un modo de operación para procesar datos de longitud arbitraria. GLOSARIO
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. GLOSARIO
RC4
RC4 es un cifrado en flujo diseñado por Ron Rivest en 1987 — simple y rápido, pero con sesgos graves; ha sido prohibido en TLS y otros protocolos. GLOSARIO
Nonce
Un nonce (number used once) es un valor empleado una sola vez en el cifrado; similar a un IV, pero enfatiza la unicidad sobre la aleatoriedad, común en cifrados de flujo y AEAD. GLOSARIO