sábado, 16 de febrero de 2008

Esteganografia en Imagenes (LSB)

Este es un un trabajo que presente en la universidad el 2004 para el curso de Algebra Universal, y quiero postearlo por aqui para que no se pierda en el olvido.

Es una aplicacion de esteganografia que permite ocultar un texto ascii o inclusive un archivo binario cualquiera dentro de una imagen BMP de 24 bits.

Esteganos: Oculto, Grafia: Escrito
La esteganografía tiene como objeto de estudio las técnicas que permitan ocultar información detrás de otros datos; de tal forma que al ser "mezclados" sean visibles solo los datos de soporte y nuestra información confidencial pase desapercibida ante los ojos de cualquier observador.

Ej.
Otro ejemplo.

La iglesia mas antigua, puso el rumor ultimo.

...si extraemos la primera letra de cada palabra obtenermos:
La iglesia mas antiguaa, puso el rumor ultimo. = Lima peru.

Este es un ejemplo muy sencillo en texto, ya se les podra ocurrir miles de ideas distintas para ocultar sobre texto, pero... como ocultar sobre una imagen?

La primera alternativa para ocultar un mensaje (bits) sobre un BMP de 24 bits es aprovechar su estructura simar al siguiente grafico. solo debemos ocultar nuestros datos justo despues de los metadatos (primeros 54 bytes) y modificar el campo offset (campo que guarda la distancia entre los metadatos y los pixeles) de tal manera que podamos hacer espacio para todo lo que queremos esconder.
Esta alternativa si bien es cierto es muy sencilla de implementar tiene el defecto de que la imagen obtenida sera considerablemente grande, seria extranho tener una imagen de un icono (10x10) que nos ocupe 10 Mb no?

Otra alternativa -desde mi parecer mucho mejor- es esconder lo que queremos esconder en los LSB de cada componente de un pixel.

En espanhol:

Cada pixel, en un archivo BMP (de 24 bits), esta representado por 3 bytes conteniendo la intensidad de color para ROJO, VERDE y AZUL (RGB: red, green, blue). Entonces combinando valores en esas posiciones podemos obtener los = (16777216) colores que puede mostrar un pixel, habitualmente se dice 16 millones de colores, pero son un poquito mas.

Bueno entonces... cada byte contiene un valor entre 0 y 255 (en binario 00000000 y 11111111), estos bytes igual que en el sistema decimal conforme sus cifras esten mas a la izquierda tendran mas valor (peso) por citar un ejemplo:

5768, si cambiamos la primera cifra (la mas significativa) a 3 nos queda 3768, la diferencia es notable. Pero si cambiamos la ultima cifra (la menos significativa) por ejemplo a un 2 nos queda 5762, la diferencia es relativamente minima.

Con esto quiero decir que podemos modificar los LSB (less significant bits, o cifras menos significativas) sin producir mayor alteracion.

Un caso:

Si observamos estos dos pixels, tan solo se le ha cambiado una unidad a cada componente R, G, B, y la variacion de color ha sido minima. Al ojo humano son practicamente el mismo color.


Con esto hemos logrado sembrar 3 bits que originalmente eran 101 ahora hemos sembrado 010, eso significa que por cada pixel podemos almacenar 3 bit sin producir un cambio aparente en el pixel.

Si repetimos este paso, recorriendo los pixels de la imagen, podemos ir sembrando (ocultando) los bits que querramos dentro de nuetra imagen. En cada pixel podremos poner 3 bits es decir necesitaremos masomenos 8 pixels para poner 3 bytes (un byte tiene 8 bits :P).



Como se puede ver no es muy dificil


Esta es una imagen que contiene un mensaje, si logran recuperarlo lo comentan :P



La imagen de bart con el mensaje la pueden descargar aqui.
La aplicacion ejecutable la pueden descargar aqui.
El codigo fuente para vb 6, lo pueden descargar aqui.
Un instalador de la aplicacion lo pueden descargar de aqui.


y si no tienen el winrar lo pueden descargar de aqui


Saludos.


32 comentarios:

Renato G. dijo...

felicitaciones x tu trabajo!
a pesar de su relativa complejidad, esta muy bien explicado, lo q lo hace muy facil de entender!!
Por cierto, con este trabajo, quedaste 2do puesto en el ITLA de hace un par de años, cierto?
Felicitaciones nuevamente!
y, una pregunta: como haces para saber cuando acaba de leer el mensaje "encriptado"? en caso de q el mensaje sea corto y no necesites usar todos los pixels de la misma imagen...
gracias.
Saludos :)

Nils Murrugarra Llerena dijo...

Hola Carlos, interesante tu trabajo y también contarte que tu trabajo me sirvio como base para realizar un mejor método de esteganografía, seguro te va a parecer interesante, lo puedes ver en: http://seccperu.org/?q=node/362

Anónimo dijo...

sta bien el prog
si c tarda bastant pero es entendible dado el proceso ke tiene ke realizar
lo malo es ke agranda demaciado el archivo lo kual lo puede acer bastante sospechoso
espero ke lo mejores
felicidades

Anónimo dijo...

generic xanax is xanax good for opiate withdrawal - xanax bars quotes

Anónimo dijo...

buy tramadol online buy tramadol online echeck - tramadol overdose hallucinations

Anónimo dijo...

xanax online safe place buy xanax online - drug interactions xanax diflucan

Anónimo dijo...

buy tramadol online buy cheap tramadol online - can buy tramadol online legally

Anónimo dijo...

buy tramadol online the tramadol high - buy tramadol in europe

Anónimo dijo...

tramadol 100mg buy tramadol online cod no prescription - tramadol withdrawal medicine

Anónimo dijo...

buy tramadol online tramadol hcl and zoloft - strong tramadol 50mg tablets

Anónimo dijo...

buy carisoprodol online no prescription vicodin online no prescription overnight - soma carisoprodol schedule

Anónimo dijo...

buy tramadol online tramadol 50 mg canine - tramadol 50 mg normal dosage

Anónimo dijo...

generic cialis no prescription generic cialis in usa - cialis price compared to viagra

Anónimo dijo...

xanax online xanax withdrawal erowid - xanax bars vs xanax

Anónimo dijo...

buy cialis professional buy cialis brand online - cialis daily dose cost

Anónimo dijo...

buy tramadol buy tramadol online fedex delivery - order tramadol usa

Anónimo dijo...

http://landvoicelearning.com/#44827 long does 50mg tramadol take work - que es tramadol 50mg

Anónimo dijo...

learn how to buy tramdadol tramadol hcl 93 58 - took 3 50mg tramadol

Anónimo dijo...

http://landvoicelearning.com/#23561 tramadol for dogs and side effects - tramadol hcl 50mg buy

Anónimo dijo...

learn how to buy tramdadol tramadol 50 mg many get high - tramadol for cheap

Anónimo dijo...

buy tramadol ultram er vs tramadol - tramadol withdrawal rls

Anónimo dijo...

buy tramadol buy tramadol online safe - tramadol 200mg er high

Anónimo dijo...

buy tramadol buy tramadol ultram ultracet online - tramadol no prescription mastercard

Anónimo dijo...

buy ativan online where to buy lorazepam online - buy cheap ativan no prescription

Anónimo dijo...

ativan pharmacy ativan and alcohol overdose - ativan overdose with alcohol

Anónimo dijo...

http://reidmoody.com/#37982 ativan side effects diarrhea - lorazepam 1 mg tablet myl

Anónimo dijo...

How can i create a blog without needing blogger or any of those
websites?

Here is my website http://Paginasamarillas-atl.Com/

Anónimo dijo...

buy tramadol cheap online pharmacy tramadol overnight - tramadol overdose symptoms dogs

Anónimo dijo...

Hello every one, here every person is sharing such know-how,
therefore it's nice to read this web site, and I used to go to see this website all the time.

my blog; cheap dental implants

Anónimo dijo...

cytotec 0.2 mg - where to buy cytotec quiapo - buy mifepristone and misoprostol online

Anónimo dijo...

can you buy tramadol onlinelegally best buy tramadol - buy tramadol online

Anónimo dijo...

levitra oral jelly duration [url=http://flavors.me/rge48ha9/#pharmacy-Ceclor-online-in-MS-Mc-Carley]buy online prescription Ceclor 250 mg without[/url] buy cheap discount clomid in australia buy clomid tablets buy cheapest viagra capsules online http://flavors.me/uukv289z/#Trecator-SC-wholesale generic viagra professional europe