Pad varias veces en datos de imagen, ¿cómo proceder?

3

Tengo datos de imagen sin procesar que están encriptados con XOR con un teclado único de tamaño fijo que se repite a lo largo de la imagen. Sé cuál es el formato del contenedor de datos de imagen para poder recuperar con éxito los primeros 6 bytes de la clave.

Pero eso es todo, no tengo idea de cómo proceder. ¿Hay relaciones entre píxeles adyacentes? ¿Se ha realizado alguna investigación sobre el tema, y si la hay, cómo? He buscado durante horas en vano.

EDIT

El archivo es una imagen BMP de Windows ( BM número mágico) con un BITMAPINFOHEADER . Es por eso que puedo adivinar correctamente los primeros 6 bytes y unos cuantos más entre ellos.

La clave es un flujo de 337 bytes generado por un PRNG, más específicamente, Mersenne Twister. Por lo tanto, la clave podría ser considerada aleatoria por ahora.

En este momento, todo lo que me queda es, bueno, la diferencia XOR entre dos líneas en la imagen. Hay un patrón, simplemente no sé qué hacer exactamente.

    
pregunta Khaled Nassar 09.03.2013 - 20:56
fuente

2 respuestas

4

Tiene una clave de 337 bytes que se repite hasta la saciedad y luego se selecciona con XOR con todos los bits de un archivo de imagen.

Probablemente puedas explotar algún factor del BMP, como la forma en que tiene (al final de cada fila del píxel los datos, por lo que cada fila es un múltiplo de 4 bytes y, por lo general, serían cero. Por lo tanto, puede adivinar la altura / anchura de la imagen, encontrar dónde estaría el relleno y luego establecer los bits de la clave en esos lugares.

Puede que haya otras propiedades de la imagen que puedas explotar; por ejemplo, la escasez bajo una transformada sparisfying (similar a la detección comprimida), y puede ajustar cada bit para ver si conduce a una mejor imagen.

    
respondido por el dr jimbob 10.03.2013 - 10:04
fuente
3

El criptoanálisis clásico del teclado muchas veces (también conocido como el cifrado de Vigenère) trata sobre el cifrado de un texto ; el ataque luego utiliza la frecuencia de las letras y los pares de letras y completa palabras parciales, cada vez que propaga los resultados (cuando conoce un byte de texto simple, conoce el byte clave correspondiente y, por lo tanto, puede descifrar todos los bytes donde se utilizó ese byte clave) , que son fáciles de localizar modulo una hipótesis sobre la longitud de la clave). Consulte, por ejemplo, este motor de descifrado automático .

Con una imagen, tendrá que trabajar a su manera dependiendo del nivel de redundancia estructural en el formato de archivo. Así que depende mucho del formato exacto del archivo: ¿es eso un BMP, PNG, JPEG? La mayoría de los formatos comprimidos pueden causarle problemas, ya que la compresión trata exactamente de rastrear y eliminar redundancias (para reducir el tamaño del archivo). No estoy afirmando que la compresión haga que muchas veces el pad sea seguro , solo que requerirá más esfuerzo por parte del atacante.

Si ya conoce los primeros 6 bytes de la clave y supone que la clave es corta (digamos 10 bytes o menos), puede realizar una búsqueda exhaustiva de los bytes faltantes. Si la clave es una cadena de caracteres, podría ser "significativa": por ejemplo, si comienza con platyp , es probable que los siguientes dos bytes clave sean us .

    
respondido por el Thomas Pornin 09.03.2013 - 23:50
fuente

Lea otras preguntas en las etiquetas