it-swarm-es.com

Si alguien rompe el cifrado, ¿cómo saben que tienen éxito?

Digamos que tengo un archivo que contiene un montón aleatorio de bits y luego lo cifro usando algún algoritmo moderno (Blowfish, AES o lo que sea). Si alguien captura el archivo y monta un ataque de fuerza bruta sobre él, ¿cómo sabrán que lo han descifrado con éxito? Sería obvio si la entrada original fuera significativa, pero en este caso la entrada original era solo un conjunto de bytes aleatorios. ¿Cómo sabrían, si es que lo hacen, que este era el grupo CORRECTO de bytes aleatorios?

34
M. Evans

No lo harían. El problema que describió está bien abordado en el artículo de Wikipedia sobre Distancia de unicidad . Ese artículo también se vincula a no de Bruce Schneier que puede ser más accesible.

30
PulpSpy

En general, las personas no cifran basura aleatoria. Suponiendo que lo hicieran, un ataque de texto cifrado solamente sería imposible.

Sin embargo, considere que los esquemas criptográficos comunes agregan al mensaje datos no aleatorios, como datos de relleno y códigos de autenticación de mensajes . En algunos esquemas, estos pueden usarse para verificar si una clave adivinada es correcta.

12
Giacomo Verticale

En general, no pueden romper la encriptación (si encripta archivos aleatorios (por ejemplo, clave secreta) o incluso comprimir archivos) pero si el sniffer tiene otro acceso al sistema emisor o receptor, pueden hacer algún otro tipo de ataque y pueden romper cifrado aleatorio de archivos. lees más allí:

5
Am1rr3zA

Si el texto sin formato es aleatorio, no lo sabrán. Sin embargo, la mayoría de los tipos de archivos tienen algún tipo de estructura reconocible. Pasar el blob A a través del algoritmo B con la tecla C producirá algunos salida. Si esa salida tiene estructura, entonces tienes un ganador.

3
bahamat

Tu pregunta me parece doble. En primer lugar, un buen algoritmo de encriptación es indistinguible de la aleatoriedad. Por lo tanto, nadie distinguirá su texto cifrado de datos aleatorios. Además, un texto cifrado falsamente descifrado también se verá aleatorio. Por lo tanto, no podrá encontrar los datos aleatorios introducidos originalmente en el cifrado con una búsqueda exhaustiva de claves.

En segundo lugar, el punto es que las personas generalmente no introducen datos aleatorios en el cifrado. Los estándares de cifrado actuales no solo cubren el algoritmo sino también los datos utilizados. La gente suele preestablecer y sufijar sus datos siempre con un cierto relleno y ciertos metadatos (los esquemas de cifrado tienen una longitud fija. De alguna manera, debe especificar cuánto dura su texto). Conocer estos bits estándar obviamente facilitará la decisión entre la clave correcta y la incorrecta :) Si bien el relleno sirve principalmente para propósitos prácticos, también puede mejorar o incluso garantizar las características de seguridad (cf. ataque de texto sin formato elegido en el libro de texto RSA).

2
freddyb

Ellos no. TrueCrypt aprovecha este hecho para ofrecer una negación plausible a través de 'volúmenes ocultos': http://www.truecrypt.org/docs/?s=hidden-volume

2
Rushyo

Además del enfoque teóricamente ignorante de algunos "profesionales" en el campo, hay una respuesta bastante simple a su pregunta: comparando los "resultados de descifrado de fuerza bruta" con cosas obvias para propósitos de categorización.

Permítame darle ejemplos prácticos: los archivos de texto probablemente contengan "palabras de detención" ( http://en.wikipedia.org/wiki/Stop_words ). Encuentre más de una palabra de detención después del descifrado y probablemente haya decodificado un texto con éxito.

Los archivos multimedia como las imágenes y la mayoría de los otros tipos de archivos (audio, video, etc.) tienen encabezados específicos, lo que facilita la identificación del tipo de datos. ¿Crees que has descifrado un archivo JPEG porque has detectado un encabezado similar? Verifica el formato del archivo. Parece que es correcto? Entonces lo más probable es que haya descifrado con éxito un archivo multimedia JPEG.

Podría proporcionar libros de ejemplos ... pero ya sé a qué me refiero ahora, ¿no? ;)

El resto depende de una pequeña "verificación humana" para que sepa cuándo dejar de imponer lo que intenta descifrar.

¿Es práctico? No. Pero se puede hacer cuando se codifica correctamente y facilita el trabajo. Lo he visto en acción varias veces; no solo en un entorno corporativo.

0
user6373

Si el archivo es unicode/ansi/etc, puede hacer algún algoritmo para analizar algo como el primer 200 caracteres de un archivo y ver si hay más caracteres latinos que otros caracteres.

Recuerdo que estaba bastante molesto cuando intenté el XOR ataque de fuerza bruta en un simple ejercicio de proyecto euler, pero fue fácil y solo tuve que buscar palabras comunes en inglés.

Leí en alguna parte que en el software de cifrado, la implementación es muy importante, a veces más importante que los aloritmos. Cuando leo eso, todavía me pregunto si uno está hablando de temas obvios como generadores pseudoaleatorios, o detalles menos obvios como cómo ocultar el formato del archivo que encripta.

Por ejemplo, si encripta un archivo, si es un archivo PNG o un archivo GIF, asegúrese de eliminar el número/cadena mágica que contienen esos formatos de archivo, y si es un archivo de texto, no use un ASCII: use su propia tabla de caracteres, por ejemplo, simplemente ponga todos los caracteres latinos en 0, números en 245-255, y así sucesivamente. También podría permutación, o rot13, o de lo contrario.

Algoritmos como AES o Blowfish/TwoFish son "matemáticamente" seguros, porque se ha demostrado que no hay ataques. OTRO QUE BRUTEFORCE se ha probado como lo suficientemente eficiente: solo puede descifrar el texto encontrando la clave real.

Pero esos algoritmos son solo teóricamente eficientes, DEBE implementarlos teniendo en cuenta otros factores de práctica como el tamaño del archivo, el uso de compresión, la codificación de texto, etc.

Por ejemplo, sepa que sería simplemente estúpido almacenar el nombre del archivo en texto plano al lado de su archivo cifrado.

0
jokoon