Steganographic Algorithms

This webpage was created by DDE Lab at Binghamton University, NY, in December 2012 with the intention of providing the steganography research community with Matlab, MEX and C++ implementations of steganographic algorithms for spatial domain, JPEG and Side Informed JPEG. MEX implementation usually runs faster.

DDE Lab keeps the copyright, however, the codes can be freely used for research and non-profit purposes. The full copyright notice is included in the header of all sourcecodes.

For suggestions and feedback, please use the contact information below.

Thank you.

Contact

  • Vojtech Holub - vojtech_holub (at) yahoo (dot) com
  • Vahid Sedighi - vsedigh1 (at) binghamton (dot) edu
  • Tomas Denemark - tdenema1 (at) binghamton (dot) edu
  • Jessica Fridrich - fridrich (at) binghamton (dot) edu

Spatial Domain

Name Matlab / MEX C++ Win C++ Linux Proposed
S-UNIWARD * S-UNIWARD.m S-UNIWARD.zip S-UNIWARD.tar.gz [1]
WOW * WOW.m WOW.zip WOW.tar.gz [2]
HUGO bounding dist. HUGO_bounding.m HUGO_bounding.zip HUGO_bounding.tar.gz [3]
MG MG.zip - - [7]
Pentary MVG MVG.zip - - [8]
MiPOD MiPOD.zip - - [10]
Synch Synch.zip - - [9]

JPEG

Name Matlab / MEX C++ Win C++ Linux Proposed
Note: Some JPEG domain steganographic algorithms implemented in Matlab require Phil Sallee's MATLAB Jpeg Toolbox (jpeg_read routine). Update: the website is no longer active. With the author's permission, we provide the copy of relevant files (including a few pre-compiled verions) here.
J-UNIWARD * J-UNIWARD.m J-UNIWARD.zip J-UNIWARD.tar.gz [1]
nsF5 nsF5_matlab.m - - [4] Details

ORIGINAL F5 ALGORITHM AS PROPOSED IN [6]

Original Java implementation of the JPEG-domain algorithm F5 is available here: f5_original.zip.

Any questions regarding the code should be directed to the author: Andreas Westfeld (andreas [dot] westfeld [at] htw-dresden [dot] de), http://www2.htw-dresden.de/~westfeld/.


side-informed

Name Matlab / MEX C++ Win C++ Linux Proposed
Note: Some JPEG domain steganographic algorithms implemented in Matlab require Phil Sallee's MATLAB Jpeg Toolbox (jpeg_read routine). Update: the website is no longer active. With the author's permission, we provide the copy of relevant files (including a few pre-compiled verions) here.
SI-UNIWARD * SI-UNIWARD.m SI-UNIWARD.zip SI-UNIWARD.tar.gz [1]
Perturbed Quantization PQ_matlab.m - - [5] Details
SI with Additive Distortion SI_additive.zip - - [11]
SI-MiPOD si_mipod.zip - - [12]
J2-UNIWARD J2_UNIWARD.m - - [13]
NS in JPEG NS_JPEG.zip - - [14]
Clustered-SI (nmSI) nmSI_SUNI.m - - [15]
PQ-UNIWARD PQ-UNIWARD_matlab.zip - - [16]

Footnotes

∗ -  MEX and C++ implementations may contain memory leak. To avoid the problem, use 'clear mex' Matlab command after every MEX function call. If using command line, embed in smaller image batches.

References

[1]  V. Holub, J. Fridrich, T. Denemark, Universal Distortion Function for Steganography in an Arbitrary Domain, EURASIP Journal on Information Security, (Section:SI: Revised Selected Papers of ACM IH and MMS 2013), 2014(1). [pdf]

[2]  V. Holub, J. Fridrich, Designing Steganographic Distortion Using Directional Filters, IEEE Workshop on Information Forensic and Security, Tenerife, Canary Islands, December 2–5, 2012. [pdf] [poster]

[3]  T. Filler, J. Fridrich, Gibbs Construction in Steganography, IEEE Transactions on Information Forensics and Security, December 2010. [pdf]

[4]  J. Fridrich, T. Pevný, and J. Kodovský, Statistically undetectable JPEG steganography: Dead ends, challenges, and opportunities. In J. Dittmann and J. Fridrich, editors, Proceedings of the 9th ACM Multimedia & Security Workshop, pages 3–14, Dallas, TX, September 20–21, 2007. [pdf]

[5]  J. Fridrich, M. Goljan, and D. Soukal, Perturbed quantization steganography. ACM Multimedia System Journal, 11(2):98–107, 2005. [pdf]

[6]  A. Westfeld, High capacity despite better steganalysis (F5 – a steganographic algorithm). In I. S. Moskowitz, editor, Information Hiding, 4th International Workshop, volume 2137 of Lecture Notes in Computer Science, pages 289–302, Pittsburgh, PA, April 25–27, 2001. Springer-Verlag, New York.

[7]  V. Sedighi, J. Fridrich and R. Cogranne, Content-Adaptive Pentary Steganography Using the Multivariate Generalized Gaussian Cover Model. Proc. SPIE, Electronic Imaging, Media Watermarking, Security, and Forensics 2015, vol. 9409, San Francisco, CA, February 8–12, 2015. [pdf]

[8]  J. Fridrich and J. Kodovsky, Multivariate Gaussian model for designing additive distortion for steganography. Proc. IEEE, ICASSP, Vancouver, Canada, May 26-31, 2013. [pdf]

[9]  T. Denemark and J. Fridrich, Improving Steganographic Security by Synchronizing the Selection Channel. , 3rd IH&MMSec. Workshop, Portland, Oregon, June 17-19, 2015.

[10]  V. Sedighi, R. Cogranne and J. Fridrich, Content-Adaptive Steganography by Minimizing Statistical Detectability. , IEEE Transactions on Information Forensics and Security.

[11]  T. Denemark, J. Fridrich, Side-Informed Steganography with Additive Distortion. , IEEE Workshop on Information Forensic and Security, Rome, IT, November 16–19, 2015.

[12]  T. Denemark, J. Fridrich, Model Based Steganography with Precover. , Proc. IS&T, Electronic Imaging, Media Watermarking, Security, and Forensics 2017, San Francisco, CA, January 29–February 2, 2017.

[13]  T. Denemark, J. Fridrich, Steganography with Multiple JPEG Images of the Same Scene.,IEEE TIFS, vol. 12, no. 10, pp. 2308-2319, October 2017.

[14]  T. Denemark, P. Bas, J. Fridrich, Natural Steganography in JPEG Compressed Images. , Proc. IS&T, Electronic Imaging, Media Watermarking, Security, and Forensics 2018, Burlingame, CA, 2018.

[15]  Mehdi Boroumand and Jessica Fridrich, Synchronizing Embedding Changes in Side-Informed Steganography. , IS&T, Electronic Imaging, Media Watermarking, Security, and Forensics, Burlingame, CA, 2020.

[16]  Jan Butora and Jessica Fridrich, Revisiting Perturbed Quantization, 9th IH&MMSec. Workshop, Brussels, Belgium, June 22-25, 2021. [pdf]

Last update: November 2015