Skip to content

Latest commit

Β 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Watermarking Project β€” M1 EUR Security

This project aims to implement a robust watermarking algorithm for 1D audio signals and 2D color images, using spread spectrum techniques. The main goal is to study the tradeoff between robustness and transparency in the watermarking process. The second part of the project complements the initial watermarking implementation by introducing quality-aware and perceptual control mechanisms. It focuses on evaluating and guiding watermarking using quality metrics such as PSNR, SSIM, and Just-Noticeable Difference (JND) models.

Objectives

  • Embed a secret signature (e.g., user ID) into a cover signal using a private key.
  • Detect the watermark using a decoding process.
  • Analyze robustness against attacks (low-pass/high-pass filters, image compression, etc.)
  • Extend the watermarking to images using the YCrCb color space.
  • Analyze the impact of Gaussian noise and filtering on image quality.
  • Evaluate the quality using objective metrics like PSNR and SSIM.
  • Use JND models to control the watermarking strength at the pixel level.
  • Propose dynamic watermarking strategies based on these metrics.

Methodology

1. Watermarking by Spread Spectrum (1D)

  • Convert a character to a signature of 8 bits in {βˆ’1, +1}.
  • Upsample the signature by a factor cr.
  • Generate a pseudo-random Gaussian modulation sequence p using a private key.
  • Modulate the signature using w[k] = Ξ± Β· b[k] Β· p[k].
  • Embed the watermark in the signal: s_m[n] = s[n] + w[n].

2. Decoding Process

  • Demodulate the watermarked signal with p[k] and reconstruct the signature using:

    sd[n] = (1/cr) βˆ‘ p[k] Β· sm[k]
    sign(sd[n]) β‰ˆ a[n]
    

3. Robustness Evaluation

  • Analyze performance against:
    • Low-pass filtering (e.g., fc = 0.3, 0.1)
    • High-pass filtering (e.g., fc = 0.2, 0.4)

4. Watermarking Color Images (2D)

  • Convert image to YCrCb space.
  • Choose a component (Y, Cr, or Cb) to apply the watermark.
  • Use a 4x4 signature matrix (from two characters).
  • Apply 2D spread spectrum watermarking with upsampling and modulation.

Technologies Used

  • Python 3
  • NumPy
  • Matplotlib
  • SciPy
  • OpenCV (for image processing)
  • FFT (for spectral analysis)
  • WAV files for audio processing
  • skimage.metrics.structural_similarity for SSIM
  • Custom JND map generator

πŸ‘©β€πŸ’» Author

Project realized as part of the Security M1 EUR program by Imane ELACERI.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages