2009-08-01 17 views
21

¿Cómo puedo escribir información dentro de un archivo de foto como jpg o gif sin destruir la imagen? y, por supuesto, sin mostrarlo en la foto, ya que la idea es enviar información en el archivo de la foto sin ser detectada por nadie (para proporcionar seguridad/privacidad en cierta medida).¿Cómo se puede ocultar la información dentro de una foto jpg o gif?

+1

No etiquete palabras compuestas. "información" sola es una etiqueta completamente inútil para esta pregunta; y el término técnico para esto es "esteganografía". Por favor, no elimines eso. http://en.wikipedia.org/wiki/Steganography –

+1

Gracias por la pista, ¡no sabía eso antes! :) –

+1

Almacenar la información en los datos EXIF. – geoff

Respuesta

2

Puede almacenar cierta información en los metadatos de la imagen. De hecho, así es como las cámaras digitales de los hombres 'etiquetan' las fotos que hacen (modelo de cámara, fecha y hora, coordenadas GPS, etc.).

Este formato de datos se llama EXIF (formato de archivo de imagen intercambiable). Hay muchos ejemplos de cómo usarlo en lenguajes de programación. Here's el ejemplo en Java.

Si desea evitar que los usuarios lean estos datos, puede cifrarlos de alguna manera, pero siempre podrán eliminarlos de su imagen (abriendo en Photoshop y utilizando Guardar como, por ejemplo).

+0

Entonces, "Guardar como" en PhotoShop eliminaría cualquier metadato? ¿Conoces un software que permita editarlo? –

+1

Creo que Photoshop reescribirá esta información con sus propios datos. Creo que hay muchos editores EXIF, por ejemplo, encontré freeware Quick EXIF ​​Editor http://www.photo-freeware.net/quick-exif-editor.php – RaYell

+0

¡Genial! ¿Algo para Mac? –

40

Puede concatenar un archivo .gif y un archivo zip (la información que desea ocultar) en un archivo. Los archivos GIF se leen desde el inicio del archivo, mientras que las fotos se leen desde el final del archivo.

Para crear un archivo de este tipo en Linux:

$ cat file1.gif >> outfile.gif 
$ cat file2.zip >> outfile.gif 

El archivo resultante debe tener el tamaño de file1.gif y file2.zip juntos y debería ser capaz de abrirse por cualquier visor gif y manejador de archivo zip.

+0

Probablemente la forma más fácil de ocultar información :) ¿Pero cómo lo recuperas? – Burkhard

+2

como dije, puede abrir el archivo resultante (archivo de salida) con cualquier archivador estándar que pueda manejar archivos zip y extraer la información. – crazymaik

+0

Ups. Solo leí la primera parte. Probaré la parte de la cremallera más tarde. – Burkhard

25

Estoy seguro de que hay muchas maneras. Aquí hay uno:

En una fotografía, las variaciones menores en el color a menudo serían imperceptibles a simple vista, o incluso si se nota, podrían confundirse fácilmente con defectos en la calidad de la imagen.

Por ejemplo, supongamos que tiene una imagen GIF en escala de grises donde la paleta está ordenada en orden de blanco a negro con un rango uniforme de grises en el medio. No estoy seguro de lo mucho que sabe sobre los formatos de archivos gráficos, pero en GIF tiene un byte por píxel, con cada posible asignación de valor de bytes a un color específico. Entonces, en este caso podríamos decir paleta # 0 = RGB (0,0,0), paleta # 1 = RGB (1,1,1), ... paleta # 255 = RGB (255,255,255).

Luego toma una fotografía normal y corriente. Divide tu mensaje secreto en bits individuales. Establezca el último bit de cada número de índice de paleta en sucesivos bits de su mensaje.

Por ejemplo, supongamos que los primeros ocho píxeles de la foto original son, por ejemplo, 01 00 C9 FF FF C8 42 43. Su mensaje comienza con la letra "C", código ascii 0110 0111. Por lo tanto, cambia el último bit del primer byte a 0, cambiando el byte de 01 a 00. Cambia el último bit del segundo byte a 1, cambiando el byte de 00 a 01. Cambia el último bit del tercer byte a 1. Ya es 1 , entonces eso no hace diferencia. Etc. Usted termina con los 8 bytes codificados como 00 01 C9 FE FF C9 43 43.

Los cambios en los colores serían tan sutiles que es poco probable que cualquiera que mire la imagen lo note. Incluso si lo hubieran notado, a menos que tuvieran una razón para sospechar, probablemente concluirían que la imagen no era perfecta.

Por supuesto, nada dice que debe usar 1 bit por byte para el mensaje secreto. Dependiendo de la degradación de la calidad que creas que puedes salirte con la tuya, puedes usar 2 bits por byte, o simplemente cambiar 1 bit en cada byte, etc.

Por supuesto, la misma técnica se puede utilizar con fotografías en color: cambiar el último bit en cada uno de los componentes RGB para codificar 3 bits por píxel, etc.

2

Si desea ocultar datos (texto, otra imagen , lo que sea) en un archivo jpeg, simplemente puede agregarlo al final del archivo. Cuando se ve la imagen, solo verá la imagen original y se ignorarán sus datos agregados.

Si bien no es una forma estupenda de ocultar datos, esta es una buena forma de ocultar otro jpeg, como si alguien abre el archivo en el bloc de notas o un editor hexadecimal, probablemente no notarán que hay dos jpegs y no uno porque el final de la segunda imagen se verá como el primero de todos modos.

9

Oye ese método se llama Steganography. Con eso podemos ocultar mensajes no solo en imágenes sino también en audio, vedeo y otros formatos.

Aquí hay un software de esteganografía opensouce llamado steganotool Este proyecto es una herramienta de esteganografía de código abierto que se puede utilizar para ocultar y extraer texto a/de imágenes de mapa de bits.

Acerca de esteganografía Medios

esteganografía en imágenes

Este tipo de esteganografía es muy eficaz contra el descubrimiento y puede servir para una variedad de propósitos. Estos propósitos pueden incluir la autenticación, el ocultamiento de mensajes y la transmisión de claves de cifrado. El método más efectivo para este tipo de esteganografía es normalmente el método de bit menos significativo. Esto simplemente significa que el mensaje oculto alterará el último bit de un byte en una imagen. Al alterar ese último bit, no habrá relativamente cambio en el color de ese píxel dentro de la imagen del portador. Esto evita que el mensaje se detecte fácilmente. El mejor tipo de archivo de imagen para ocultar información es un mapa de bits de 24 bits. Esto se debe al gran tamaño de archivo y alta calidad.

esteganografía en audio

En los archivos de audio, el método más prominente para ocultar información es el método de codificación de bits baja. El método de codificación de bit bajo es similar al método de bit menos significativo utilizado en los archivos de imagen. La información secreta se adjunta al final del archivo. Uno de los problemas con la codificación de bit bajo es que puede ser notable para el oído humano. Si alguien está tratando de ocultar información, esto podría ser riesgoso, ya que es tan fácilmente detectable. El método de espectro ensanchado es otro método que se ha utilizado en la ocultación de información en archivos de audio. Lo que hace este método es agregar ruido aleatorio a la transmisión de audio. Este método permite que la información se distribuya a través del espectro de frecuencia y permanezca oculta bajo el ruido aleatorio. El último método que se ve en la esteganografía de audio es la ocultación de datos. Este método busca ocultar información mediante el uso de ecos que se producen naturalmente en los archivos de sonido. Luego, se puede agregar sonido adicional a estos ecos, el sonido adicional es el mensaje oculto. Esta es una manera suficiente de ocultar información, especialmente ya que incluso mejora el sonido del archivo de audio original en algunos casos.

esteganografía En video

esteganografía en los vídeos es, básicamente, ocultamiento de información en cada cuadro de video. Solo se esconde una pequeña cantidad de información dentro del video, por lo general no se nota en absoluto, sin embargo, mientras más información esté oculta, más evidente será. Este método también es efectivo, pero debe hacerse correctamente o revelar más información en lugar de ocultarse.

esteganografía En Documentos

Esto es básicamente añadir espacio blanco y pestañas para los extremos de las líneas de un documento. Este tipo de esteganografía es extremadamente eficaz, ya que el uso de espacios en blanco y pestañas no es visible para el ojo humano en la mayoría de los editores de texto/documentos.

También puede hacer referencia a esta open source project

Este article puede ser muy útil.

1

en las ventanas se pueden utilizar comandos sencilla para ocultar archivo de la imagen: copy/b + cat.jpg cat_new.jpg Documents.rar. Y luego use por ejemplo winrar para extraer datos desde la imagen desde el archivo.
Pero la mejor manera es utilizar Steganography.
programa sencillo para él para Linux y Windows: http://linux01.gwdg.de/~alatham/stego.html
uso de este programa que va a utilizar frase de paso, sin que nadie se sabrá, que hided algunos datos en la imagen))

1

datos comprimidos en archivos GIF es en trozos de tamaño variable. cada fragmento comienza con un byte de longitud. Normalmente estos trozos son 255 bytes de datos (y el byte de longitud dice 255) excepto los dos últimos trozos (el último es 0)

Pero podría volver a codificar el gif con trozos cuyo tamaño deletrea el mensaje por ejemplo, el uso de caracteres para el texto ASCII o bytes 1234 representa 00011011 datos binarios,

análisis byte-frecuencia en el gif revelaría menos de esperados de 255 bytes. y el tamaño sería mayor que el original, pero la imagen se vería exactamente igual.

Cuestiones relacionadas