En criptografía , un ataque distintivo es cualquier forma de criptoanálisis de datos cifrados mediante un cifrado que permite a un atacante distinguir los datos cifrados de los datos aleatorios. [1] Los cifrados de clave simétrica modernos están diseñados específicamente para ser inmunes a este tipo de ataques. [2] En otras palabras, los esquemas de cifrado modernos son permutaciones pseudoaleatorias y están diseñados para que el texto cifrado sea indistinguible . Si se encuentra un algoritmo que puede distinguir la salida de la aleatoria más rápido que una búsqueda de fuerza bruta , entonces eso se considera una ruptura del cifrado.
Un concepto similar es el ataque de distinción de clave conocida , mediante el cual un atacante conoce la clave y puede encontrar una propiedad estructural en el cifrado, donde la transformación de texto sin formato a texto cifrado no es aleatoria. [3]
Descripción general
Para demostrar que una función criptográfica es segura, a menudo se compara con un oráculo aleatorio . Si una función fuera un oráculo aleatorio, entonces un atacante no puede predecir ninguno de los resultados de la función. Si una función se distingue de un oráculo aleatorio, tiene propiedades no aleatorias. Es decir, existe una relación entre diferentes salidas, o entre entrada y salida, que un atacante puede utilizar, por ejemplo, para encontrar (una parte de) la entrada.
Ejemplo Sea T una secuencia de bits aleatorios, generada por un oráculo aleatorio y S una secuencia generada por un generador de bits pseudoaleatorios . Dos partes utilizan un sistema de cifrado para cifrar un mensaje M de longitud n como el XOR bit a bit de M y los siguientes n bits de T o S respectivamente. La salida del cifrado usando T es verdaderamente aleatoria. Ahora bien, si la secuencia S no se puede distinguir de T, la salida del cifrado con S también aparecerá aleatoria. Si la secuencia S es distinguible, entonces el cifrado de M con S puede revelar información de M.
Se dice que dos sistemas S y T son indistinguibles si no existe un algoritmo D, conectado a S o T, capaz de decidir si está conectado a S o T.
Un ataque distintivo lo da dicho algoritmo D. En general, es un ataque en el que al atacante se le da una caja negra que contiene una instancia del sistema bajo ataque con una clave desconocida, o un objeto aleatorio en el dominio al que apunta el sistema. emular, entonces si el algoritmo es capaz de decir si el sistema o el objeto aleatorio está en la caja negra, uno tiene un ataque. Por ejemplo, un ataque distintivo en un cifrado de flujo como RC4 podría ser uno que determine si un flujo de bytes dado es aleatorio o generado por RC4 con una clave desconocida.
Ejemplos de
Itsik Mantin y Adi Shamir, quienes demostraron que el segundo byte de salida de RC4 estaba fuertemente sesgado hacia cero, fueron ejemplos clásicos de ataque distintivo en un cifrado de flujo popular . [4] En otro ejemplo, Souradyuti Paul y Bart Preneel de COSIC han demostrado que el valor XOR de las salidas 1ª y 2ª de RC4 tampoco es uniforme. Significativamente, ambos sesgos teóricos anteriores pueden demostrarse mediante simulación por computadora. [5]
Ver también
Referencias
- ^ Meier, Willi; Kunzli, Simon (2005). "Distinguiendo el ataque a MAG" (PDF) . Proyecto de cifrado de secuencia ENCRYPT . eSTREAM . Consultado el 8 de febrero de 2013 .
- ^ Leonid Reyzin (2004). "Criptografía simétrica" (PDF) . Notas de la conferencia para la Universidad de Boston CAS CS 538: Fundamentos de la criptografía .
- ^ Elena Andreeva; Andrey Bogdanov; Bart Mennink (8 de julio de 2014). Hacia la comprensión de la seguridad de clave conocida de los cifrados en bloque . FSE 2014.
- ^ Itsik Mantin y Adi Shamir , Un ataque práctico en la transmisión RC4. FSE 2001, pp152 - 164 (PS) Archivado el 12 de junio de 2011 en Wayback Machine .
- ^ Souradyuti Paul y Bart Preneel , Análisis de estados predictivos no fortuitos del generador de flujo de claves RC4. INDOCRYPT 2003, págs. 52 - 67 (PDF) .