Cris’ Image Analysis Blog

theory, methods, algorithms, applications

Cryptography or steganography?

RSA and DES keys keep growing in length, to keep up with increasing computational power. Keys we were using 15 years ago are laughable now. And according to a nice graph in April’s IEEE Spectrum, ridiculous amounts of computing power are cheaper than ever. I wonder how long before people give up on encryption altogether.

Some applications really require cryptography. It’s difficult to hide the data traffic from an ATM machine, for example. But for many other applications it’s really easy to hide data inside the gigabytes of junk we download and upload on a daily basis. This is called steganography. Images are especially useful to hide other data in. It is so easy to delete the least significant bit of every pixel and use that space for something else. A normal, 3-color, 8-bit-per-channel photograph taken with a 5 megapixel camera has 15 million least-significant bits to play with, undetected. That’s almost 2 Mb. And if the least significant bits look like this, would you think much of it?

secret message

Of course, the JPEG compression completely wipes out those bits, so this is not very useful in practice. But there exist techniques to hide data in a JPEG file. You just need to use the least significant bits of the least significant components of the compressed data. Easy!

The image above I made while toying with some very simple encryption idea. I don’t really know if it counts as encryption, it doesn’t require a key to decode. Or rather, the key is included with the data. But it makes the message look like random values. See if you can find the secret message!