Image source (PNG)
Glisser une image ici
PNG uniquement
Message secret
Format
PNG uniquement
Sans compression avec perte
Traitement
100% local
Aucune donnée envoyée
Technique
LSB 1-bit
1 bit par canal R, G, B
Comprendre le fonctionnement, PNG vs JPEG, capacité par résolution, variantes LSB et méthodes de détection.
Comment ça fonctionne
Algorithme LSB
Chaque pixel PNG contient 3 canaux de couleur (Rouge, Vert, Bleu) codés sur 8 bits chacun. L'encodeur LSB remplace le bit de poids faible (bit 0) de chaque canal par un bit du message. Modifier un bit sur 8 représente une variation de ±1/255 en intensité — imperceptible à l'œil nu. Un pixel encode donc 3 bits. Pour un message de N caractères (N×8 + 8 bits avec le terminateur null), l'outil modifie ⌈(N×8+8)/3⌉ pixels consécutifs depuis le coin supérieur gauche.
Capacité & limites
Capacité maximale = (largeur × hauteur × 3) / 8 − 1 caractères. Une image 1920×1080 peut stocker jusqu'à ~777 000 caractères ; une image 400×300 environ 45 000. Limitation principale : format PNG uniquement — le JPEG étant avec perte, la recompression écrase les LSB modifiés. Détection possible par chi-square attack, RS analysis ou StegExpose sur les images encodées avec de longues séquences de bits.
Pourquoi PNG et pas JPEG ?▾
Le JPEG utilise une compression avec perte (DCT + quantification) qui arrondit les valeurs de pixels et écrase les bits LSB. Une image JPEG ré-encodée après un encodage LSB perdrait le message. Le PNG est sans perte : les pixels sont stockés exactement tels qu'ils ont été écrits.
L'image change-t-elle visuellement ?▾
Non. Modifier le bit 0 sur 8 bits représente une variation de ±1 sur une échelle de 0 à 255 (±0,4%). En dessous du seuil de discrimination de l'œil humain (≈1-2%). Même à fort grossissement numérique, les différences sont indiscernables.
Comment détecter un encodage LSB ?▾
Les outils de stéganalyse (StegExpose, zsteg, stegdetect) utilisent le chi-square test ou la RS analysis. Ces méthodes comparent la distribution statistique des LSB à celle d'une image non modifiée : un message long crée une distribution aléatoire uniforme, statistiquement suspecte.
Quelle capacité pour une image 800×600 ?▾
800 × 600 × 3 / 8 − 1 = 180 000 caractères environ. En pratique, l'outil utilise uniquement les pixels nécessaires au message : un message de 100 chars ne modifiera que 267 pixels sur 480 000, ce qui réduit la surface détectable.