Steganography is a technique used to hide secret messages inside inconspicuous cover media. A common approach is to choose a cover and insert the message by making small, ideally undetectable changes. Modern methods choose positions for these changes based on the cover content. This is typically carried out in two phases: (1) estimating a distortion, i.e., the cost of change at each position, and (2) choosing the best positions. One of the state-of-the-art distortion estimation methods for image steganography is MiPOD (Minimizing the Power of Optimal Detector), introduced in 2014; a prototype in Matlab is provided by the DDE Lab. The security of a steganographic method can be evaluated through an empirical detector, which is often based on machine learning.
The goal of this thesis is to implement the MiPOD steganographic embedding and reproduce the detectability comparisons described in the original research paper. A preferred framework is Python and NumPy, which should be used in a way to keep the embedding performance close to compiled code; DDE Lab’s Matlab implementation should be used as a reference. In this project, the student will develop an understanding of steganography and deepen their experience in image processing and machine learning.