Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
stegano:lsb [2016/04/14 11:25] arkinar créée |
stegano:lsb [2016/04/18 10:09] yorin Ortho |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
Les données sont insérées à la place des bits les moins importants. | Les données sont insérées à la place des bits les moins importants. | ||
- | Pour chaque composante RGB nous faisons varier uniquement le bit de poids faible. Ainsi, la transformation est la suivante: | + | Pour chaque composante RGB nous faisons varier uniquement le bit de poids faible. |
- | <code>(R, G, B) = (00000000, 00000001, 00000000) -> (R, G, B) = (00000001, 00000000, 00000001)</code> | + | Ainsi, la transformation est la suivante pour un pixel blanc : |
+ | |||
+ | <code>(R, G, B) = (11111111, 11111111, 11111111) | ||
+ | Ce qui nous donne la couleur blanche | ||
+ | </code> | ||
+ | |||
+ | Prenons la lettre 'a' en ascii qui vaut en binaire = 0110 0001 | ||
+ | |||
+ | Nous allons la découper en deux fois 4 bits soit : | ||
+ | |||
+ | - un premier pack : 0110 | ||
+ | |||
+ | - un second pack : 0001 | ||
+ | |||
+ | Maintenant nous allons l'inserer dans notre pixel dans les couleurs Rouge et Bleu. | ||
+ | |||
+ | <code> | ||
+ | Rouge qui était : 11111111 | ||
+ | Devient : 11110110 | ||
+ | Le vert ne change pas | ||
+ | Le bleu qui était : 11111111 | ||
+ | Devient : 11110001 | ||
+ | |||
+ | Notre pixel est maintenant (R, G, B) = (11110110, 11111111, 11110001) | ||
+ | |||
+ | Ce qui nous donne une couleur claire proche du blanc. | ||
+ | </code> | ||
- | Pour coder un caractère ASCII, nous aurons besoin de deux pixels et deux composantes. | ||
La modification du bit de poids faible a peu d'impact sur la valeur d'une composante. | La modification du bit de poids faible a peu d'impact sur la valeur d'une composante. | ||
+ | |||
+ | Plus la modification sera mineure plus elle passera inaperçue. | ||
+ | |||
+ | Nous avons fait passer une lettre sur un pixel mais il est possible de faire passer une lettre sur 4 pixels en modifiant uniquement le dernier bit de deux des trois couleurs. | ||
+ | |||
+ | __Outil__ | ||
LSB-Steganography est un outil python permettant de gérer le LSB dans une image. | LSB-Steganography est un outil python permettant de gérer le LSB dans une image. | ||
Ligne 38: | Ligne 69: | ||
</code> | </code> | ||
- | En sortie vous obtenez une image nommé res.png qui contient votre message caché. | + | En sortie vous obtenez une image nommée res.png qui contient votre message caché. |