ScholarGate
Asistente

Cifrados de Flujo

Los cifrados de flujo encriptan datos generando una secuencia de claves pseudoaleatoria a partir de una clave secreta y combinándola con el texto plano, generalmente un bit o byte a la vez, emulando la almohadilla de un solo uso perfectamente segura con una clave corta.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Un cifrado de flujo es un esquema de cifrado simétrico que produce una secuencia de claves pseudoaleatoria larga a partir de una clave secreta (y generalmente un nonce) y encripta combinando la secuencia de claves con el texto plano, más comúnmente mediante XOR bit a bit.

Scope

Este tema abarca el diseño y análisis de los cifrados de flujo: generadores de secuencia de claves construidos a partir de registros de desplazamiento con retroalimentación lineal, construcciones combinadoras y de filtro, y diseños modernos orientados al software como ChaCha20 y el portafolio eSTREAM. Aborda la relación con la almohadilla de un solo uso, el requisito crítico de nunca reutilizar una secuencia de claves, y los ataques que surgen de la reutilización de la secuencia de claves o de generadores débiles. Excluye los cifrados de bloque, aunque un cifrado de bloque en modo contador funciona eficazmente como un cifrado de flujo.

Core questions

  • ¿Cómo se puede extender una clave corta en una secuencia de claves larga e impredecible que imite una almohadilla de un solo uso?
  • ¿Por qué es catastrófica la reutilización de una secuencia de claves y cómo la evitan los nonces?
  • ¿Qué hace que un generador de secuencia de claves sea criptográficamente fuerte en lugar de meramente estadísticamente aleatorio?
  • ¿Cómo logran los cifrados de flujo modernos como ChaCha20 la velocidad sin hardware dedicado?
  • ¿Qué ataques clásicos (correlación, algebraicos) rompen los diseños débiles basados en LFSR?

Key concepts

  • secuencia de claves
  • almohadilla de un solo uso
  • registro de desplazamiento con retroalimentación lineal
  • nonce y vector de inicialización
  • reutilización de la secuencia de claves (almohadilla de dos usos)
  • ChaCha20 y Salsa20
  • ataques de correlación
  • cifrados síncronos vs. auto-sincronizados

Key theories

Almohadilla de un solo uso y seguridad perfecta
Encriptar mediante XOR con una clave verdaderamente aleatoria tan larga como el mensaje logra la seguridad perfecta de Shannon; los cifrados de flujo aproximan esto sustituyendo una secuencia de claves pseudoaleatoria por la almohadilla verdaderamente aleatoria, que es poco práctica.
Generación de secuencia de claves y pseudoaleatoriedad criptográfica
Un cifrado de flujo seguro es un generador pseudoaleatorio: su secuencia de claves debe ser computacionalmente indistinguible de la aleatoria, de modo que ningún adversario eficiente pueda predecir futuros bits de la secuencia de claves incluso después de observar muchos.

Mechanisms

Un cifrado de flujo síncrono inicializa un estado interno a partir de la clave y el nonce, luego actualiza repetidamente el estado y emite la salida de la secuencia de claves independientemente del texto plano. La secuencia de claves se combina con XOR con el texto plano para encriptar y con el texto cifrado para desencriptar. Los diseños basados en registros de desplazamiento con retroalimentación lineal son rápidos en hardware, pero requieren combinadores no lineales para resistir ataques algebraicos; los cifrados de software como ChaCha20 utilizan operaciones de adición-rotación-XOR (ARX) en un estado grande para velocidad y seguridad.

Clinical relevance

ChaCha20 (con el autenticador Poly1305) se implementa ampliamente en TLS 1.3, OpenSSH, WireGuard y mensajería móvil, donde se prefiere a AES en dispositivos que carecen de aceleración de hardware AES. Los cifrados de flujo son adecuados para medios de transmisión y enlaces de baja latencia. Históricamente, el cifrado de flujo RC4 protegió los primeros SSL/TLS y WEP Wi-Fi hasta que sus sesgos llevaron a su desaprobación.

Evidence & guidelines

ChaCha20-Poly1305 está estandarizado en RFC 8439 y aprobado para TLS. RC4 está prohibido en TLS por RFC 7465 debido a sesgos en la secuencia de claves. El proyecto eSTREAM (2004-2008) produjo un portafolio verificado de cifrados de flujo. La regla cardinal en todos los estándares es que un par (clave, nonce) nunca debe ser reutilizado.

History

Los cifrados de flujo descienden del cifrado de Vernam (1917) y de la almohadilla de un solo uso. Los sistemas militares de la Guerra Fría utilizaban generadores de secuencia de claves basados en registros de desplazamiento. RC4, diseñado por Ron Rivest en 1987, se generalizó enormemente, pero finalmente fue descifrado en sus usos de protocolo. La competencia eSTREAM y la familia Salsa20/ChaCha20 de Daniel Bernstein (2008) definieron la generación moderna, amigable con el software, ahora preferida en los protocolos de internet.

Key figures

  • Claude Shannon
  • Daniel J. Bernstein
  • Ronald Rivest
  • Adi Shamir

Related topics

Seminal works

  • shannon1949
  • katz2020
  • menezes1996

Frequently asked questions

¿Qué sucede si se reutiliza una secuencia de claves de cifrado de flujo?
La operación XOR de dos textos cifrados encriptados con la misma secuencia de claves cancela la secuencia de claves, dejando el XOR de los dos textos planos, lo que a menudo revela ambos mensajes. Por esta razón, cada cifrado debe usar un nonce nuevo para que la secuencia de claves nunca se repita bajo una clave fija.
¿Son los cifrados de flujo menos seguros que los cifrados de bloque?
No inherentemente. Los cifrados de flujo modernos como ChaCha20 se consideran tan seguros como AES y a veces son más rápidos en software. La inseguridad surge del uso indebido (reutilización de la secuencia de claves) o de diseños heredados débiles como RC4, no del concepto de cifrado de flujo en sí.

Methods for this concept

Related concepts