Compartir tecnología

[Criptografía] Conceptos básicos de cifrados de flujo

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Antes de presentar los cifrados de flujo, primero comprendamos un requisito previo básico: la operación XOR de punto de conocimiento.

1. Operación OR exclusiva (XOR)

Reglas de operación: igual que 0, diferente que 1

Características: Un bit se realiza XOR dos veces y se puede restaurar al bit original.

Texto sin formato: 1100

Clave: 0101 (cifrada)

Texto cifrado: 1001

Clave: 0101 (descifrado)

Texto sin formato: 1100

ventaja:Esta reversibilidad permite utilizar la operación XOR para transformaciones de cifrado y descifrado.

defecto:Si un atacante puede adivinar o capturar la clave, puede descifrarla fácilmente mediante XOR.

La razón por la que la operación XOR se puede utilizar para cifrar y descifrar al mismo tiempo radica en su reversibilidad, pero esta también es su deficiencia. La seguridad depende completamente del ocultamiento de claves.

2. Algoritmo de teclado de un solo uso (OTP)

(1) Definición

One-Time Pad (OTP) es un algoritmo de cifrado de flujo, que en teoría se considera uno de los métodos de cifrado más seguros, siempre que su implementación siga estrictamente varios principios clave:

1.  La clave debe ser tan larga como el texto sin formato.: Esto significa que cada cifrado utiliza una clave que tiene exactamente la misma longitud que el mensaje que se cifra.

2.  La clave debe ser verdaderamente aleatoria.: Cada bit de la clave debe generarse aleatoriamente, sin ningún patrón ni previsibilidad.

3.  La clave debe usarse solo una vez: No se debe utilizar la misma clave para cifrar varios mensajes; de lo contrario, se puede utilizar la correlación entre los textos cifrados para inferir el contenido del mensaje.

4.  La clave debe mantenerse en secreto: La distribución y almacenamiento de claves debe ser extremadamente seguro para evitar el acceso de terceros.

(2) Ventajas y desventajas

ventaja:

  • La clave se genera aleatoriamente y se usa solo una vez.
  • Incondicionalmente seguro
  • El cifrado y descifrado son operaciones adicionales que son más eficientes.

defecto:

  • La longitud de la clave es al menos tan larga como la longitud del texto sin formato, lo que hace que compartir claves sea difícil y poco práctico.

3. Definición de cifrado de flujo

Cuando la gente estudia algoritmos de cifrado de pad de un solo uso, intenta resolver los problemas de gestión y longitud de claves. Si había una manera de generar todas las claves para cifrar texto sin formato proporcionando solo una pequeña sección de la clave, los cifrados de flujo se desarrollaron basándose en esta idea.

(1) Idea básica del cifrado de flujo

         En un cifrado de flujo, se utiliza una clave pequeña (a menudo llamada semilla o vector de inicialización) a través de un generador de números pseudoaleatorios (PRNG) para generar un flujo de claves pseudoaleatorio de la misma longitud que el texto sin formato. Luego, este flujo de claves se realiza mediante operación XOR con el texto sin formato para producir el texto cifrado. De manera similar, el proceso de descifrado consiste en XOR el texto cifrado con el mismo flujo de claves para recuperar el texto sin formato.

llave agenerar un flujo de claves ...y=z_0z_1z_2...Y utilice las siguientes reglas para comparar cadenas de texto sin formato x=x_0x_1x_2...Para cifrar:
y=y_0y_1y_2...=Ez_0(x_0)Ez_1(x_1)Ez_2(x_2)...

Generalmente se utiliza un registro de desplazamiento de retroalimentación lineal para generar claves pseudoaleatorias. El principio no se discutirá aquí.

(2) Proceso algorítmico

El proceso de cifrado y descifrado se puede describir de la siguiente manera:

  • Generación de flujo de claves: Tanto las partes de cifrado como las de descifrado utilizan la misma clave y vector de inicialización (IV) para inicializar un generador de números pseudoaleatorios (PRNG). PRNG genera una serie de bits pseudoaleatorios en función de su estado interno para formar un flujo de claves.
  • Proceso de cifrado: el remitente realiza una operación OR (XOR) exclusiva bit a bit en el flujo de claves generado y el texto sin formato para obtener el texto cifrado. Debido a la naturaleza de la operación XOR, la misma operación es reversible en diferentes bits.
  • Proceso de descifrado: el receptor reinicializa el PRNG con la misma clave y IV y genera el mismo flujo de claves que cuando estaba cifrado. Luego, el receptor realiza una operación XOR en el texto cifrado y el flujo de claves para recuperar el texto sin formato original.

(3) Principios de diseño de cifrado de flujo

Los principios de diseño de los cifrados de flujo realmente se centran en la creación de un generador de flujo de claves que pueda producir un flujo de claves con propiedades de seguridad específicas. La secuencia de flujo de claves debe tener las siguientes propiedades:

  1. gran ciclo : El período del flujo de claves debe ser lo suficientemente largo para evitar la reutilización del mismo segmento del flujo de claves, lo que expondría patrones en los datos cifrados y permitiría a los criptoanalistas llevar a cabo ataques comparando las similitudes y diferencias de diferentes mensajes. Teóricamente, para un espacio de claves de n bits, la duración del ciclo ideal debería ser 2n-1. En la práctica, periodos más largos significan que el flujo de claves se repite con menos frecuencia, aumentando así la seguridad del criptosistema.

  2. buenas propiedades estadísticas : El flujo de claves debe verse como una secuencia de bits verdaderamente aleatoria, lo que significa que debe satisfacer varias pruebas estadísticas, como la distribución equitativa de 0 y 1, la independencia entre dos o más bits consecutivos y la ausencia de patrones o periodicidades previstas. Las buenas propiedades estadísticas ayudan a garantizar la imprevisibilidad del flujo de claves, que es un componente importante de la seguridad del cifrado de flujo.

  3. Resistencia al análisis lineal : Un cifrado de flujo debe ser resistente al análisis lineal, donde el criptoanalista intenta recuperar la clave o el texto sin formato encontrando una correlación lineal entre el flujo de claves y el texto sin formato o texto cifrado. Esto generalmente requiere que la salida del generador de flujo de claves sea no lineal, o que al menos contenga suficientes componentes no lineales para evitar que los métodos simples de resolución de sistemas lineales infieran el flujo de claves o la clave misma.