Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what's the best practice for image steganography resistant to various attacks? [closed]

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.):

  1. Compression or recompression of image - mainly for JPEG images or PNG images with alpha premultiplication.
  2. 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:

  1. 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?
  2. 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.
  3. 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.

like image 897
user1563721 Avatar asked Nov 24 '22 22:11

user1563721


1 Answers

  1. Your 1st question pertains to lossy methods removing the 'noise' (which are of course, the hidden bits) in your image. You may have to scatter it with redundancy. The LSB may not work as well as the position of the bits has to be distributed. Which means, the bits may have to be at various parts of the bits repetitively, so that, you can recover the message even when the other copies are corrupted. You may like to add a hash to ensure that the message is not corrupted (though the probability of the hash itself may). But redundancy and wider distribution may give you a good chance to survive the bits.

  2. An idea may be to use proven cryptographic methods like AES or ECC (key management would be another topic). This will make your data bits "noise like". The position indices may also be determined via similar way. The principle is to create uniform distributions to deter predictability or pastern correlation for both data and location of the bits.

I hope this may give some guides to your steganographic design considerations.

like image 165
Moirisa Dikaiosýni Avatar answered Dec 10 '22 11:12

Moirisa Dikaiosýni