What is the most used Algorithm/Technique in Steganography? I made some research about the algorithm/technique and I think Least Significat Bit(LSB) is the most used algorithm, is there any more efficient algorithm/technique that can be use for Steganography aside from LSB?
2 Answers
I'm assuming you're referring only to static image manipulation, as that's the common fear these days (terrorists are hiding data in eBay images!) But it's a mistake to think that images are the only potential carriers of hidden data. Data can hide wherever information moves, including audio files, DNS requests, TCP port knocking, error codes, URLs, Unicode, spam, anywhere.
LSB is often used in stego demonstrations because it's a simple and understandable example of the idea, but it has a lot of weaknesses that make it less than perfect for real world use. For one thing, it works directly on bitmaps, but not compressed images. If the message is short and modifies only the first half of the picture, the top of the image will have a "static" appearance that magically cleans up in the bottom half. Also, BMPs may themselves be suspicious, as most people use compressed formats such as JPG or PNG.
Using LSB on an ordinary GIF would give you crazy incorrect colors, but you could use a modified palette with 128 duplicated colors to hide the data invisibly.
Both of these are easy experiments to perform and demonstrate to an audience. You can show them a before and after picture. You can show them a photo of a clear blue sky over the ocean, then mar the top third with an LSB stego message. Then show them how a photo of a forest of autumn leaves or a field of wheat makes the effects of LSB stego almost invisible. Show them how LSB messes with GIF images, then show them a reduced palette image followed by the same image with an LSB stego message.
Messing with JPEG and TIFF formats is technically much more difficult, but in the real world would probably do a better job of remaining hidden. But they're still detectable to someone looking for them. Each camera and image manipulation software package uses a custom "quantization table" that says how a block of pixels will be encoded. Canon's are distinct from Nikon's. Both are distinct from Adobe's, GIMP's, ImageMagick's, etc. If your image has some quantized blocks that match those from Canon, but others that aren't recognizable, an eavesdropper might determine it was tampered with. For a start to more information, see http://www.imagemagick.org/Usage/quantize/
A long time ago, the program OutGuess did a good job at spotting steganographically altered images encoded in many different image formats, but as far as I know the author never released the source.
- 3,778
- 16
- 29
Your question is really too general - and perhaps off-topic, as steganography is quite a different field to cryptography.
That being said, the answer to your question really depends on many things. Steganography is the art of hiding information in plain-sight. This information could be hidden in either; analogue or digital media, on the internet or in a newspaper, text or photos (or many other file-types like audio or video files, to name a few).
Information can be encoded into the pixels of an image, hidden in the metadata of a file, published in the classified-announcements section of a newspaper, etc.
You're asking about efficient techniques, but efficiency is relative to requirements. What are you trying to achieve? How much data are you trying to hide? In what medium? Might the people you're hiding information from know your protocols?
Encoding information in the least significant bit of pixel data is a common approach, yes, but keep in mind that Steganography works because it's esoteric. It provides (perceived) security because the information being hidden is not apparent to the majority of people who see it. Using the most common techniques might result in the easy discovery of your protocol. Unlike cryptography, you don't really have to play by the rules when using steganography, so you should get creative and experiment with your own protocols.
One alternative to LSB is to encode a hex encoded message into the alpha channel of a PNG image. Assuming the alpha value of all pixels in a png file is 255 (fully opaque), offsetting this constant value by a value between 0 and 16 (possible values in hex encoding) would not be perceivable by the human eye, but is a clean and deterministic approach to hiding data.
- 4,051
- 6
- 29
- 42