Image source (PNG ou JPEG)
Glisser une image ici
PNG · JPEG
Message secret
Format entrée
PNG · JPEG
Export toujours en PNG
Traitement
100% local
Aucune donnée envoyée
Technique
DCT AC[2][1]
Quantification QSTEP=8
Comprendre la transformée en cosinus, les coefficients AC/DC, la quantification JPEG et les variantes F5, Outguess et JSteg.
Comment ça fonctionne
Algorithme DCT
L'image est découpée en blocs de 8×8 pixels. Sur chaque bloc, la Transformée en Cosinus Discrète 2D (DCT-II) est calculée, produisant 64 coefficients fréquentiels. Le coefficient DC (F[0][0]) encode la luminosité moyenne — on ne le modifie pas. On cible le coefficient AC F[2][1], on le quantifie par QSTEP=8, et l'on remplace son bit de poids faible par un bit du message. L'IDCT reconstruit le bloc modifié. Chaque bloc de 64 pixels encode 1 bit, soit 1 caractère ASCII tous les 8 blocs.
DCT vs LSB
Le LSB modifie directement les pixels dans le domaine spatial, créant des anomalies statistiques détectables par chi-square attack ou RS analysis. La DCT opère dans le domaine fréquentiel : la modification d'un coefficient AC se répartit sur les 64 pixels du bloc, réduisant l'artefact local et les pics statistiques. En contrepartie, la capacité est moindre — 1 bit par bloc 8×8 contre 3 bits par pixel pour le LSB, soit environ 190 fois moins de données à dimensions égales.
Pourquoi exporter en PNG et pas en JPEG ?▾
Le JPEG applique sa propre quantification DCT lors de l'encodage du fichier. Re-sauvegarder en JPEG après notre DCT modifiée écraserait les coefficients que nous avons manipulés. Le PNG est sans perte : il stocke les valeurs de pixels exactement telles qu'elles ont été reconstituées par l'IDCT, préservant intégralement les données cachées.
Quelle est la capacité d'une image 512×512 ?▾
512/8 = 64 blocs en largeur × 64 en hauteur = 4 096 blocs. En réservant 32 bits pour l'en-tête de longueur, il reste (4 096 − 32) / 8 = 508 caractères. Une image 1024×768 donne 128×96 = 12 288 blocs, soit 1 532 caractères maximum.
La modification est-elle visible ?▾
Non. Le changement du LSB d'un coefficient AC quantifié (QSTEP=8) induit une variation maximale de ±QSTEP dans le domaine fréquentiel. Via l'IDCT sur 64 pixels, cela se traduit par une variation d'environ ±0,5 à ±2 niveaux par pixel — bien en dessous du seuil de discrimination de l'œil humain (≈4 niveaux sur 255).
Cet outil est-il compatible avec Steghide ou F5 ?▾
Non. Steghide, F5 et JSteg travaillent directement sur les coefficients DCT internes du fichier JPEG sans passer par les pixels. Cet outil implémente une DCT mathématique sur les valeurs de pixels (pixels → DCT → modification → IDCT → pixels), ce qui est différent. Les images encodées ici ne sont lisibles que par cet outil.