I'm really curious about that because nowadays every channel could modify or compress images some way which could be considered as a attack on steganography.
We can divide steganography to two basic types, first operates on spatial domain of image and second operates on some kind of transform domain.
The following types of attacks are of my interest because it is everywhere around us (if you want to save image on facebook or if you want to create a thumbnail of image or if you are going to save the image on mobile platform, etc.):
- Compression or recompression of image - mainly for JPEG images or PNG images with alpha premultiplication.
- Resizing or scaling images and geometric manipulation - I mean the transformation of image other than compressing it, e.g. rotation of image, changing the scale etc.
I would like to ask:
- What is the best way according you people to protect embedded message in image from compression like in JPEG? What about "infinte" recompression of image after embedding message with steganographic mechanism? Would it be still the message readable?
- Where is the threshold for embedded messages in connection with the resizing of images if there is any? In my opinion steganography is much more sensitive to resizing of image then compression or rotation or adding a noise to images. What is the best way for steganography resistant to resizing of image by you? I mean there is always an edge where we can't go without losing the message but there should be some threshold.
- What about the combination of image manipulation through first and second point?
I was reading many papers regarding compression resistant image steganography and basically they are always using error-correcting codes and Hamming distance to get the threshold of what we are able to hide without lossing information (or how to get the information in lossy channel). Then the first step is to hide redundantly our message to spatial domain using Hamming distance. With RGB image we are going to choose for example one triple as a one bit carrier and modifies our triple of colours is a way that the Hamming distance would be "in a center" of edges. We could do this as a repetition error-correcting code or any other (best practice is the Hamming codes like in the F5).
The idea behind this is that our error-correcting code with computed Hamming distances on JPEG compressed images would ensure that embedded information would be still there after many applications of JPEG compression. Of course all of this is at the expense of capacity of image while we are using redundancy through error correcting codes.
Example link on that method is here: http://www.cs.unibo.it/babaoglu/courses/security/resources/documents/Steganography.pdf
I don't know much about watermarking techniques on digital image but probably we could find there a guidance on that topic because the aim of watermarking is almost the same as of steganography. We are trying to retain copyright information in digital images or we are trying to protect our hidden message in image in various situations like above.
I would like to discuss and ask you about today mechanisms of protect information in digital images through steganography. We can share our ideas or sample codes to make world better.