[Steganography] Encrypting data in image information

Noise in an image is by definition randomly distributed. What if you imposed your own noise that actually contains information? Every pixel of an image has a certain value. What if we agreed that every “even” value was a ‘zero’ and every “uneven” value was a ‘one’. Then, we agree that a combination of zeros and ones make up numbers:
A= 1000001
B= 1000010
C= 1000011
etc..
Just like morse code.

You will never notice this in an image. Generally pixelvalues contain a value from 0 to 255 (8-bit).
Simple example. We have an original image we are going to encrypt. The first character we want is C – this is equal to [1000011], or, [uneven-even-even-even-even-uneven-uneven].
The first 7 pixel values of the image are for instance : [10 13 16 19 21 25 14].
Then we just convert these values to the sequence we want (uneven-even-even-..etc)
In this example the sequence would then be: [11 14 16 20 22 25 15].
The difference is minimal, you will not be able of seeing it by eye, and if you did, you would just see noise.
Only in a original perfect image that has one color, without noise, you are only able to see the encryption:

Try seeing the encryption

Original

Encrypted image

You can’t see it? I have amplified the noise for you:

encryption 'noise' amplified


Essentially, what you are looking at are just ones and zeros, which make up our information.
This information can be just text, other images, documents, whatever. And, even if you knew that there was encrypted information in this image, you would have to know how it is implemented. For instance, you can encrypt the information (text) before encrypting it in the image. No way you would ever be able of figuring this out.

Usage

Well of course no-one knows who uses this, as that would kind of defeat the purpose of pretending to send an image file but really sending something else inside of that file. You can imagine all kinds of organizations use this for their own causes.
Also, i have read a paper of someone proposing to use this to store copyright information inside of the image; this way his name would be in the ‘noise’ of the image, and only he would have the original. The person that thought of this probably had a bad day, since i could just strip the image of this information by making all the pixels ‘even’ and then imposing my own random noise, making it “my original”. How would you then ever know which was the original?

How do i encrypt my own stuff

I’ll not be helping you with that, ask your local terrorist organization.

Tim Zaman

MSc Biorobotics. Specialization in computer vision and deep learning. Works at NVIDIA.

You may also like...