views:

52

answers:

2

I want to start a little pet project that will allow a user to pic an image and then hide that image within another image. Meaning that if you open the dummy-image that's all you'll see. But if you open the dummy-image with my software you'll see the actual image.

I've never done something like this so I'm pretty excited about getting away from the typical CRUD applications.

  1. What is this called? (I'm sure it exists, right?)
  2. Where can I find some nice theory behind it so I can make it robust.

Thanks so much for helping me yet again! :)

Edit:

So just to be clear on what my first step should be, I need to grab an image and convert it to a matrix of int[n,n] and process each cell individually finding the least binary value?

+3  A: 
  1. It is called steganography.
  2. The Wikipedia page I linked to above includes lots of information about various techniques. You should be aware though that this is a form of "security by obscurity". If by "robust" you mean unbreakable then you are out of luck. It is not a substitute for proper encryption.
Mark Byers
A: 

You want to create some sort of Steganography application. By applying the technique described in this blog post, it won't be hard at all:

  1. Prepare or create an image (let's call it visible.jpg)
  2. Prepare or create your would-be hidden image (hidden.jpg)
  3. Create an application which will create a password protected rar from hidden.jpg, using Process.start().
  4. Use Process.start again to issue the command copy /b visible.jpg + hidden.rar visible.jpg

Your hidden.jpg now resides inside visible.jpg

To get your hidden.jpg back, rename visible.jpg to visible.rar and extract the hidden image.

Edit:

According to a lifehacker article, a gif image and / or a zip file will do as well.

Anax
That's great but it requires Winrar. I was looking for a more programming approach.
Sergio Tapia
For a "pure" method, check this SO question: http://stackoverflow.com/questions/3018086/simple-basic-steganography-algorithms-and-methods
Anax