Algorithme de stéganographie JPEG développé par Andreas Westfeld. Utilise un shuffling de la matrice et l'encodage matriciel (matrix encoding) pour distribuer le payload de façon optimale dans les coefficients DCT, minimisant les modifications et résistant à la stéganalyse chi-carré.
- 01
Introduit l'encodage matriciel (matrix encoding) : cache n bits en modifiant au maximum 1 coefficient sur 2^n - 1, réduisant drastiquement le nombre de modifications.
- 02
Utilise un shuffling pseudo-aléatoire (permutation) des coefficients DCT pour distribuer le payload uniformément — indétectable par analyse de localisation.
- 03
Résistant à l'attaque chi-carré classique mais détectable par l'analyse ETA (Enhanced Threshold Analysis) et l'attaque "de calibration" de Fridrich.
- 04
Toujours une référence académique, surpassé en pratique par les méthodes adaptatives modernes comme UED et J-UNIWARD.
ALGORITHME F5 — VUE SIMPLIFIÉE ────────────────────────────────────────────────────────── ÉTAPE 1 : SHUFFLING ┌──────────────────────────────────────────────────────┐ │ Coefficients DCT non nuls : [42, 5, -3, 7, -1, 6…] │ │ + Clé secrète → Permutation pseudo-aléatoire │ │ Résultat : ordre aléatoire des coefficients ciblés │ └──────────────────────────────────────────────────────┘ ÉTAPE 2 : MATRIX ENCODING ┌──────────────────────────────────────────────────────┐ │ Pour cacher k bits : modifier 1 coeff. parmi 2^k-1 │ │ k=1 → 1 modif. / 1 coeff. (classique) │ │ k=2 → 1 modif. / 3 coeffs. (33% moins de modifs) │ │ k=3 → 1 modif. / 7 coeffs. (86% moins de modifs) │ └──────────────────────────────────────────────────────┘ ÉTAPE 3 : SHRINKAGE ┌──────────────────────────────────────────────────────┐ │ Si coeff. = ±1 et doit être décrémenté → devient 0 │ │ Ce "shrinkage" crée une anomalie détectable │ │ → Faiblesse connue de F5 │ └──────────────────────────────────────────────────────┘