Yakman
2009-11-17 18:45:43
Can you tell the difference between these images?




The first one is the original, and the rest have files hidden inside them by flipping bits.
The second uses the last bit of every pixel, the third image uses the last 2 bits and the last image uses the last 4 bits. It is distorted noticeably but the rest are almost undetectable to the naked eye.
http://en.wikipedia.org/wiki/Steganography
"Steganography is the art and science of writing hidden messages in such a way that no one, apart from the sender and intended recipient, suspects the existence of the message, a form of security through obscurity."
And now, my dear SRL, I present to you my own implementation, written in c. Attached to this post.
The files I hid in the pictures of the car are almost random, I got them from my swap disk and split it until it almost filled the image to capacity. Its a worst cast scenario.
If you want to extract from those images, here are the md5sums in case you want to check.
My code uses the LodePNG library for processing png images. It includes a makefile.
Here is another example.
original

hidden file n last 4 bits

to use it, download and extract the zip file.
run
to extract from image picture.png and save to new file message.txt, run
to hide file message.txt into the image picture.png using the last 2 bits of every byte, run.
before you hide, you may want to learn the maximum file size your image can hold. run
example output




The first one is the original, and the rest have files hidden inside them by flipping bits.
The second uses the last bit of every pixel, the third image uses the last 2 bits and the last image uses the last 4 bits. It is distorted noticeably but the rest are almost undetectable to the naked eye.
http://en.wikipedia.org/wiki/Steganography
"Steganography is the art and science of writing hidden messages in such a way that no one, apart from the sender and intended recipient, suspects the existence of the message, a form of security through obscurity."
And now, my dear SRL, I present to you my own implementation, written in c. Attached to this post.
The files I hid in the pictures of the car are almost random, I got them from my swap disk and split it until it almost filled the image to capacity. Its a worst cast scenario.
If you want to extract from those images, here are the md5sums in case you want to check.
md5sums for the files hidden in output1.png 2.png and 4.png
a126ce1e7342edc51fd6ae21dc9ca15f message.txt
d863a0408f2cd9151d4c609a83cf12d5 message.txt
ea0f8d5cbedd61c2edc17ae6762ec5f0 message.txt
My code uses the LodePNG library for processing png images. It includes a makefile.
Here is another example.
original

hidden file n last 4 bits

to use it, download and extract the zip file.
run
make
to buildto extract from image picture.png and save to new file message.txt, run
png e picture.png message.txt
to hide file message.txt into the image picture.png using the last 2 bits of every byte, run.
png h2 picture.png message.txt
before you hide, you may want to learn the maximum file size your image can hold. run
png c picture.png
example output
$ ./png c input1.png
capacity of input1.png:
BitPerByte Capacity / bytes
1 239967
2 479983
4 959991
Be in awe of the Russian dolls! 3 pics in 1.