Outils pour utilisateurs

Outils du site


stegano:lsb

LSB : Least Significant Bit

Le but du LSB est de cacher des informations dans une image.

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 un pixel blanc :

(R, G, B) = (11111111, 11111111, 11111111)
Ce qui nous donne la couleur blanche

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.

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.

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.

Vous pouvez le récupérer ici : LSB-Steganography

L'outil utilisant la librairie opencv, il faudra l'installer avec la commande suivante :

 apt-get install python-opencv 

1.Cacher un message dans une image

Voici un petit exemple de code python pour cacher un message avec la technique du LSB dans une image :

Il vous faut une image et un message à cacher.

from LSBSteg import LSBSteg
import cv2.cv as cv

str = "Message cache de wikisecu.fr" #Message a cacher
carrier = cv.LoadImage("image.jpg") #Image dans laquel on va cacher le message
steg = LSBSteg(carrier)
steg.hideText(str)
steg.saveImage("res.png") #Image qui contient le message

En sortie vous obtenez une image nommée res.png qui contient votre message caché.

2.Retrouver un message dans une image

Voici un petit exemple de code python pour retrouver un message avec la technique du LSB dans une image :

from LSBSteg import LSBSteg
import cv2.cv as cv

im = cv.LoadImage("res.png") #image contenant le message cache
steg = LSBSteg(im)
print "Text value:",steg.unhideText()

En sortie vous obtenez le message caché.

stegano/lsb.txt · Dernière modification: 2016/07/04 08:38 (modification externe)