It’s no secret that image files have quite a bit of redundancy and wasted space — it’s part of the reason why I love the app JPEGMini which helps reduce unneeded information to decrease file size. What you might or might not be aware of is that you can hide information, even large files inside of your images. In this episode of Computerphile, Dr. Mike Pound explains two techniques of burying info in your pictures and the application for photographers. Warning, supremely geeky content ahead.
As noted in the video, cryptography is the act of disguising a message’s meaning by encrypting, encoding, or otherwise scrambling while steganography is the act of hiding a message in its entirety.
The first, rather rudimentary method described is changing the lowest bits of a bitmap image. By doing this you can hide a message or file without noticeably changing the image file itself. If an image is 8-bit you can change the last one or two leaving 6 bits of image data and two of hidden message. Using this method, Dr. Pound in the video was able to hide the complete works of Shakespeare (a family small, 2ish MB file) in his image.
The second, slightly more sophisticated method makes use of the JPG discrete cosine transform, DCT. This method randomizes the placement of hidden file information and distributes stenographic noise over the 8x8 block. The algorithm used is called JSTEG. Again, the difference is almost imperceptible.
Of course the application for photographers here is digital watermarking, by hiding your information in the image itself (not in the metadata where it can be striped or altered) it makes it very, very easy to prove that someone stole your image and that it rightfully belongs to you.
[Via Computerphile on YouTube]