In StegoLab you can find articles and implementations of different techniques used in steganography, steganalysis and watermarking.
Steganography
Basic concepts:
- LSB steganography in images and audio.: Introductory article to LSB steganography. Includes Python examples for embedding messages in bitmap images, JPEG images, and WAV audio files.
Codes:
-
Binary Hamming codes: Description and implementation in Python of information hiding using matrix embedding techniques with binary Hamming codes.
-
Ternary Hamming codes: Description and implementation in Python of information hiding using matrix embedding techniques with ternary Hamming codes. Ternary codes allow a higher capacity than binary codes for the same level of media distortion.
-
Wet Paper Codes: A Python implementación of the steganography embedding technique presented in the paper “Writing on Wet Paper” by Jessica Fridrich, Miroslav Goljan and David Soukal
-
Syndrome Trellis Codes: A Python implementation of the steganography embedding technique presented in the paper “Minimizing embedding impact in steganography using trellis-coded quantization” by Tomáš Filler, Jan Judas and Jessica Fridrich.
Cost functions:
-
J-UNIWARD: A Python implementation of the cost function used in steganography for hidding information into JPEG images, proposed in the paper “Universal Distortion Function for Steganography in an Arbitrary Domain” by Vojtěch Holub, Jessica Fridrich and Tomáš Denemark.
-
HILL: A Python implementation of the cost function used in steganography for hiding information into bitmap images, proposed in the paper “A New Cost Function for Spatial Image Steganography” by Bin Li, Ming Wang, Jiwu Huang and Xiaolong Li.
Steganalisis
-
ATS attack: Python implementation of the ATS attack, an unsupervised steganalysis technique presented in the article Unsupervised steganalysis based on artificial training sets [arXiv] by Daniel Lerch-Hostalot and David Megías.
-
Calibration Attack: Implementation of the attack to F5 algorithm (JPEG steganography) proposed in the paper Steganalysis of JPEG Images: Breaking the F5 Algorithm by Jessica Fridrich, Miroslav Goljan and Dorin Hogea.
- pyEC: Python Interface to the Matlab version of Ensemble Classifiers for Steganalysis, presented in the paper “Ensemble Classifiers for Steganalysis of Digital Media” by Jan Kodovský, Jessica Fridrich and Vojtěch Holub.
Watermarking
-
Watermarking examples: Implementation of some watermarking schemes proposed in the book Digital Watermarking and Steganography by I. J. Cox, M. L. Miller, J. A. Bloom, J. Fridrich and T. Kalker.
-
System 1: E_BLIND/L_LC
Blind Embedding (E_BLIND) and Linear Correlation Detection (D_LC). E_BLIND simply adds a pattern to an image. -
System 2: E_FIXED_LC/L_LC
Fixed Linear Correlation Embedder (E_FIXED_LC) and Linear Correlation Detection (D_LC). E_FIXED_LC adjusts the strength of the watermark to ensure that the watermarked image has a specified linear correlation (informed embedding). -
System 3: E_BLK_BLIND/D_BLK_CC
Block-Based, Blind Embedding (E_BLK_BLIND) and Correlation Coefficient Detection (D_BLK_CC). E_BLK_BLIND adds a pattern by block averaging. -
System 4: E_SIMPLE_8/D_SIMPLE_8
8-Bit Blind Embedder (E_SIMPLE_8) and 8-Bit Detector (D_SIMPLE_8). E_SIMPLE_8 is a version of E_BLIND modified to embed 8-bits. -
System 5: E_TRELLIS_8/D_TRELLIS_8
Trellis-Coding Embedder (E_TRELLIS_8) and Viterbi Detector (D_TRELLIS_8). E_TRELLIS_8 embeds 8-bit messages using trellis-coded modulation.
-