stringtranslate.com

Ataque deslizante

El ataque de deslizamiento es una forma de criptoanálisis diseñada para abordar la idea predominante de que incluso los cifrados débiles pueden volverse muy fuertes al aumentar el número de rondas , lo que puede evitar un ataque diferencial . El ataque de deslizamiento funciona de tal manera que hace que el número de rondas en un cifrado sea irrelevante. En lugar de observar los aspectos de aleatorización de datos del cifrado de bloque, el ataque de deslizamiento funciona analizando el programa de claves y explotando las debilidades en él para romper el cifrado. La más común es la repetición de claves de manera cíclica.

El ataque fue descrito por primera vez por David Wagner y Alex Biryukov . Bruce Schneier fue el primero en sugerirles el término ataque deslizante , y ellos lo usaron en su artículo de 1999 en el que describían el ataque.

Los únicos requisitos para que un ataque de deslizamiento funcione en un cifrado es que se pueda dividir en múltiples rondas de una función F idéntica . Esto probablemente significa que tiene un programa de clave cíclico. La función F debe ser vulnerable a un ataque de texto simple conocido . El ataque de deslizamiento está estrechamente relacionado con el ataque de clave relacionada .

La idea del ataque de deslizamiento tiene sus raíces en un artículo publicado por Edna Grossman y Bryant Tuckerman en un Informe Técnico de IBM en 1977. [1] Grossman y Tuckerman demostraron el ataque en un cifrado de bloque débil llamado New Data Seal (NDS). El ataque se basaba en el hecho de que el cifrado tiene subclaves idénticas en cada ronda, por lo que el cifrado tenía un programa de claves cíclico con un ciclo de una sola clave, lo que lo convierte en una versión temprana del ataque de deslizamiento. En Cipher Systems (Beker & Piper, 1982) se ofrece un resumen del informe, que incluye una descripción del cifrado de bloque NDS y del ataque.

El ataque real

En primer lugar, presentaremos algunas notaciones. En esta sección, supongamos que el cifrado toma bloques de n bits y tiene un esquema de claves que utiliza claves de cualquier longitud.

El ataque deslizante funciona dividiendo el cifrado en funciones de permutación idénticas, F . Esta función F puede constar de más de una ronda del cifrado; está definida por el programa de claves. Por ejemplo, si un cifrado utiliza un programa de claves alternado donde cambia entre a y para cada ronda, la función F constaría de dos rondas. Cada una de las aparecerá al menos una vez en F .

El siguiente paso es recolectar pares de texto simple y texto cifrado. Dependiendo de las características del cifrado, puede que sean suficientes menos, pero para el problema del cumpleaños no se necesitan más de los necesarios. Estos pares, que se denotan como , se utilizan para encontrar un par deslizado que se denota como . Un par deslizado tiene la propiedad de que y que . Una vez que se identifica un par deslizado, el cifrado se rompe debido a la vulnerabilidad a los ataques de texto simple conocidos. La clave se puede extraer fácilmente de este emparejamiento. Se puede pensar que el par deslizado es lo que le sucede a un mensaje después de una aplicación de la función F . Se "desliza" durante una ronda de cifrado y de ahí el nombre del ataque.

El proceso de búsqueda de un par de caracteres deslizados es algo diferente para cada cifrado, pero sigue el mismo esquema básico. Se aprovecha el hecho de que es relativamente fácil extraer la clave de una sola iteración de F. Se elige cualquier par de pares de texto simple-texto cifrado y se comprueba cuáles son las claves correspondientes a y . Si estas claves coinciden, se trata de un par deslizado; de lo contrario, se pasa al siguiente par.

En el caso de pares de texto simple y texto cifrado, se espera que haya un par de mensajes con un par de mensajes con un par de mensajes con un par de mensajes cifrados, junto con una pequeña cantidad de falsos positivos, según la estructura del cifrado. Los falsos positivos se pueden eliminar utilizando las claves en un par de mensajes con un texto cifrado diferente para comprobar si el cifrado es correcto. La probabilidad de que la clave incorrecta cifre correctamente dos o más mensajes es muy baja para un buen cifrado.

A veces, la estructura del cifrado reduce en gran medida la cantidad de pares de texto simple y texto cifrado necesarios y, por lo tanto, también una gran cantidad de trabajo. El ejemplo más claro de estos es el cifrado de Feistel , que utiliza una programación de claves cíclica. La razón de esto es que la búsqueda es para un . Esto reduce los posibles mensajes emparejados de hasta (ya que la mitad del mensaje es fijo) y, por lo tanto, se necesitan como máximo pares de texto simple y texto cifrado para encontrar un par deslizado.

Referencias

  1. ^ EK Grossman; B. Tuckerman (1977). Análisis de un cifrado tipo Feistel debilitado por no tener una clave rotatoria (informe técnico). IBM Thomas J. Watson Research Center. RC 6375.