Para que un ataque de fuerza bruta tenga éxito (incluso de manera teórica), el atacante debe saber "algo" sobre el texto sin formato, para saber si encontró la clave correcta o no. Dice lo contrario: si todo lo que sabe el atacante sobre el texto sin formato es que es un conjunto de bytes aleatorios, entonces, para cada clave probada, eso es exactamente lo que obtendrá: un conjunto de bytes de aspecto aleatorio.
Por otra parte, si el atacante consideró que valía la pena atacar el sistema (debido a que una búsqueda exhaustiva 2 56 es, aunque es factible, bastante costosa), debe tener un conocimiento a priori de lo que encontrará. Esto puede ser como un formato estándar (por ejemplo, los datos son XML, comienzan con un encabezado XML; o los datos se comprimen con gzip
y, por lo tanto, comienzan con un encabezado gzip
) o incluso alguna información básica como "el texto en claro es un texto que 'tiene sentido' ".
El texto en inglés con codificación ASCII utilizará solo algunos valores de byte, es decir, valores de byte de 32 a 126 (inclusive), y posiblemente también 9 (tabulación horizontal), 10 y 13 (LF y CR, respectivamente, para fines de líneas), 12 (tabulación vertical) y posiblemente 26 (fin de archivo en sistemas DOS / Windows). Así que eso es 100 de los 255 valores de byte posibles. Un descifrado de un solo bloque DES (8 bytes) con una clave incorrecta tiene una probabilidad de que (100/255) 8 consiste únicamente en este conjunto de "caracteres plausibles". Como el atacante tiene 2 claves 56 para intentar, debe descifrar los bloques n para que la probabilidad de aceptar una clave incorrecta no sea mayor que 2 -56 . Esto se logra tan pronto como n = 6 (porque (100/255) 8 * 6 & leq; 2 -56 ). Esto conduce a un ataque de búsqueda exhaustiva en el que el atacante descifra los bloques 6 por clave potencial, filtrando las claves incorrectas al mirar los caracteres obtenidos.
Ahora, seamos sinceros, "8g.; = 7Zf" no es exactamente "texto que tenga sentido". Así que el atacante realmente sabe mucho más que "el texto plano consiste solo en caracteres ASCII imprimibles". Podría filtrar el descifrado incorrecto que solo da caracteres imprimibles pero no extractos de texto plausibles. También podría obtener, digamos, mil "claves posibles" (cada una produciendo algo que, desde el punto de vista de una computadora, es un texto con sentido) y terminar el trabajo a mano (el cerebro humano es muy bueno en la detección de texto real entre una lista de personajes de aspecto galimatías). Así que un atacante podría usar, por ejemplo, dos o tres bloques y aun así hacer las cosas.
Es muy difícil cuantificar cuán eficiente será el atacante para filtrar el descifrado incorrecto, porque depende de lo que el atacante "adivine", algo que está en el ámbito de la psicología, no de la computadora. ciencia. Por lo tanto, los académicos utilizan la "convención segura" de considerar que el atacante tiene un bloque de texto simple conocido: conoce con un 100% de certeza un texto simple de 8 bytes para el que también tiene el texto cifrado correspondiente. Es posible que esto no sea cierto en una situación de ataque real, pero realmente no se puede preverlo.