robot de la enciclopedia para niños

Cifrado de flujo para niños

Enciclopedia para niños

Un cifrado de flujo es una forma de cifrado que usa una clave secreta para proteger la información. Imagina que quieres enviar un mensaje secreto. Un cifrado de flujo toma tu mensaje original (llamado "texto plano") y lo mezcla, dígito por dígito, con una secuencia de números aleatorios generados por computadora. Esta secuencia se llama "flujo de claves".

Cada parte de tu mensaje se cifra una a la vez. El resultado es un mensaje codificado (llamado "texto cifrado"). Como el cifrado de cada parte depende de cómo va el proceso, también se le conoce como cifrado de estado. Generalmente, cada "dígito" es un bit (la unidad más pequeña de información en computadoras). La mezcla se hace con una operación matemática llamada XOR.

El flujo de claves se crea usando un valor inicial secreto, como una "semilla". Esta semilla es la clave criptográfica que se usa para descifrar el mensaje. Los cifrados de flujo son diferentes de los cifrados de bloque. Los cifrados de bloque trabajan con grandes pedazos de información a la vez. Los cifrados de flujo suelen ser más rápidos y necesitan menos equipo. Sin embargo, si no se usan correctamente, pueden tener problemas de seguridad. Por ejemplo, nunca se debe usar la misma semilla dos veces.

Cifrado de Flujo: ¿Cómo Protegemos Nuestros Mensajes?

¿Qué es un Cifrado de Flujo?

Un cifrado de flujo es como un sistema de codificación que protege tus mensajes. Funciona mezclando tu mensaje original con una secuencia de números secretos. Esta secuencia se genera de forma especial para que parezca aleatoria.

¿Cómo Funciona un Cifrado de Flujo?

Imagina que tienes un mensaje letra por letra. El cifrado de flujo toma la primera letra de tu mensaje y la mezcla con el primer número secreto. Luego, toma la segunda letra y la mezcla con el segundo número secreto, y así sucesivamente. Esto crea un mensaje codificado que solo puede leerse con la clave correcta.

La Clave Secreta y el Flujo de Claves

El "flujo de claves" es la secuencia de números secretos que se usa para mezclar tu mensaje. Esta secuencia se crea a partir de una "clave" mucho más pequeña. Piensa en la clave como una contraseña secreta. Con esa contraseña, la computadora genera una secuencia muy larga de números que parecen aleatorios. Esta secuencia es el flujo de claves.

Diferencia con los Cifrados de Bloque

Los cifrados de flujo son diferentes de los "cifrados de bloque". Los cifrados de bloque toman tu mensaje y lo dividen en pedazos grandes, como si fueran "bloques" de información. Luego, cifran cada bloque completo. Los cifrados de flujo, en cambio, cifran la información poco a poco, casi como si fuera un chorro continuo de datos. Esto los hace útiles para cosas como las llamadas telefónicas seguras.

Inspiración en la Libreta de un Solo Uso

Los cifrados de flujo se inspiraron en un método de cifrado muy seguro llamado "libreta de un solo uso". Este método usa una secuencia de números completamente aleatorios para cifrar un mensaje. Es tan seguro que nadie puede romperlo si se usa correctamente. Sin embargo, la secuencia de números debe ser tan larga como el mensaje y nunca se puede usar dos veces. Esto lo hace difícil de usar en la vida diaria.

Los cifrados de flujo intentan imitar esa seguridad. Usan una clave más pequeña (por ejemplo, 128 bits) para generar una secuencia de números que parece aleatoria. Aunque no es "verdaderamente" aleatoria, está diseñada para ser muy difícil de predecir.

Tipos de Cifrados de Flujo

Existen dos tipos principales de cifrados de flujo, según cómo actualizan su estado interno (la información que usan para generar el siguiente número secreto).

Cifrados de Flujo Sincrónicos

Archivo:Lorenz Cipher Machine
Máquina de cifrado Lorenz SZ utilizada por el ejército alemán durante la Segunda Guerra Mundial

En un cifrado de flujo sincrónico, la secuencia de números secretos se genera de forma independiente. No importa si el mensaje original o el mensaje cifrado cambian. El remitente y el receptor deben estar perfectamente "sincronizados". Si se pierde un dígito del mensaje durante el envío, la sincronización se rompe. Esto significa que el resto del mensaje se descifrará incorrectamente.

Sin embargo, si solo un dígito se daña (no se pierde ni se añade), solo esa parte del mensaje se verá afectada. El resto del mensaje se descifrará bien. Esto puede ser útil si la conexión es mala. Pero también significa que un atacante podría cambiar un dígito en el mensaje cifrado y saber cómo afectará al mensaje original.

Cifrados de Flujo de Sincronización Automática

Estos cifrados son más inteligentes. Usan algunos de los dígitos del mensaje cifrado anterior para generar el siguiente número secreto. Esto significa que el receptor se "sincroniza" automáticamente con el remitente después de recibir unos pocos dígitos. Si se pierde o se añade un dígito, el sistema se recupera solo. Los errores en un solo dígito solo afectan a unas pocas partes del mensaje.

Un ejemplo de esto es un cifrado de bloque usado en un modo especial llamado "retroalimentación de cifrado" (CFB).

¿Cómo se Construyen los Cifrados de Flujo?

Los cifrados de flujo binarios (los que trabajan con bits) a menudo se construyen usando algo llamado "registros de desplazamiento de retroalimentación lineal" (LFSR). Son fáciles de hacer con equipos electrónicos y se pueden estudiar matemáticamente. Pero los LFSR por sí solos no son lo suficientemente seguros. Por eso, se usan diferentes técnicas para hacerlos más fuertes.

Registros de Desplazamiento de Retroalimentación Lineal (LFSR)

Los LFSR son circuitos electrónicos que generan secuencias de bits. Son como una fila de casillas donde los bits se mueven de una a otra. Algunos bits se "retroalimentan" al principio de la fila para crear el siguiente bit.

Combinando LFSRs de Forma Segura

Archivo:Nonlinear-combo-generator
Una forma de hacer más seguros los cifrados de flujo es combinar las salidas de varios LFSR usando una función especial.

Para hacer los LFSR más seguros, se pueden combinar las salidas de varios LFSR usando una "función booleana" no lineal. Esto significa que la combinación no es una simple suma, sino una operación más compleja que hace que la secuencia sea más difícil de predecir.

Otra forma es hacer que los LFSR se muevan de forma irregular, controlados por la salida de otro LFSR. Esto se llama "generadores controlados por reloj".

¿Por qué son Importantes los Cifrados de Flujo?

Los cifrados de flujo se usan mucho porque son rápidos y fáciles de implementar en equipos electrónicos. Son perfectos para situaciones donde la información llega en cantidades desconocidas, como en una conexión inalámbrica segura. Si se usara un cifrado de bloque, se tendría que esperar a tener un bloque completo de datos, lo que podría retrasar la comunicación. Los cifrados de flujo pueden cifrar la información a medida que llega.

También son útiles en la criptografía militar. El generador de la clave secreta puede estar en un lugar muy seguro. Luego, el flujo de claves se envía a otros dispositivos, como una radio, que solo tienen que hacer la mezcla final. Esto permite que la radio se use en lugares menos seguros.

Algunos cifrados de flujo populares incluyen ChaCha (muy usado en software), RC4, A5/1 (usado en teléfonos móviles antiguos) y Salsa20.

Seguridad en los Cifrados de Flujo

Para que un cifrado de flujo sea seguro, su flujo de claves debe ser muy largo y no debe ser posible adivinar la clave secreta. Los expertos en criptografía también quieren que el flujo de claves no tenga ningún patrón que permita a los atacantes distinguirlo de un ruido verdaderamente aleatorio.

Es muy importante que nunca se use el mismo flujo de claves dos veces. Esto significa que cada vez que se cifra un mensaje, se debe usar una clave o un valor inicial diferente. Además, la mayoría de los cifrados de flujo solo ofrecen "privacidad" (que nadie lea tu mensaje), pero no "autenticidad" (que nadie lo haya cambiado en el camino).

Algunos cifrados de flujo, como RC4, han tenido problemas de seguridad si no se usan correctamente. Por eso, es importante que las aplicaciones nuevas eviten RC4 o se aseguren de usar claves únicas y descartar los primeros bytes del flujo de claves.

Los cifrados de flujo suelen ser más sencillos de entender que los cifrados de bloque. Esto puede ayudar a encontrar y corregir posibles debilidades.

Galería de imágenes

Véase también

kids search engine
Cifrado de flujo para Niños. Enciclopedia Kiddle.