Categories
Security Steganography

Stéganalyse de la méthode LSB (avec un ensemble de nombres décrit par crible d’Eratosthenes) avec Jennifer Morrison

Tout d’abord afin se rafraîchir l’esprit, on pourra lire l’ancien billet Stéganalyse de la méthode LSB. Il s’agissait d’usiter la méthode dite Least Significant Beat puis de comparer la stéganalyse du fichier original et du fichier avec un message caché. La conclusion était que grâce à la stéganalyse par parité il était aisé de détecter une image altérée par la méthode LSB classique.

Aujourd’hui nous allons en plus caché le message avec la nouvelle technique. Qui consiste à utiliser un ensemble de nombres pour sélectionner les pixels où seront cachés les données. Pour cette exemple nous allons utiliser le crible d’Eratosthenes.

J’avais promis qu’après Elisha Cuthbert nous passerions à Jennifer Morrison.

Ensuite il suffit d’exécuter les commandes:

# Cache le contenu de secret.txt dans Jennifer_Morrison-original.png en utilisant l'ensemble des nombres décrit par le crible d'Eratosthenes
$ slsb-set --hide -i ./Jennifer_Morrison-original.png -o ./Jennifer_Morrison-enc-gen.png --generator eratosthenes -f ./secret.txt
# Stéganalyse du fichier résultant 
$ steganalysis-parity -i ./Jennifer_Morrison-enc-gen.png -o ./Jennifer_Morrison-en-gen-steg.png

# Cache le contenu de secret.txt dans Jennifer_Morrison-original.png via la méthode LSB classique
$ slsb --hide -i ./Jennifer_Morrison-original.png -o ./Jennifer_Morrison-enc.png  -f ./secret.txt 
# Stéganalyse du fichier résultant
$ steganalysis-parity -i ./Jennifer_Morrison-enc.png -o ./Jennifer_Morrison-en-steg.png 

# Stéganalyse du fichier original
$ steganalysis-parity -i ./Jennifer_Morrison-original.png -o ./Jennifer_Morrison-steg.png

Vous obtiendrez en résultat ces fichiers (survollez avec la souris les images afin de comprendre de quoi il s’agit):

Fichier original Stéganalyse du fichier original

Texte caché (LSB)

Texte caché (LSB + Eratosthenes) Stéganalyse de l'image avec un texte caché (LSB + Eratosthenes)

Les 3 sublimes images de la première colonne paraissent identiques.
On peut observer une étrange régularité au début du fichier résultant de la stéganlyse de l’image dans laquelle un texte a été caché via la méthode LSB classique.
Par contre il est plus difficile de détecter une anomalie similaire sur le fichier résultant de la stéganalyse de l’image dans laquelle un texte a été caché via la méthode LSB tout en utilisant un ensemble de points (ici obtenu avec le crible d’Eratosthenes).

Si vous ne me faites pas confiance:

$ wget http://blog.cedricbonhomme.org/wp-content/uploads/2011/12/Jennifer_Morrison-enc.png
$ wget http://blog.cedricbonhomme.org/wp-content/uploads/2011/12/Jennifer_Morrison-enc-gen.png

$ slsb-set --reveal --generator eratosthenes -i ./Jennifer_Morrison-enc-gen.png  -b text-dec-gen.txt
$ slsb --reveal  -i ./Jennifer_Morrison-enc.png  -b text-dec.txt
$ cmp text-dec.txt text-dec-gen.txt 
$ cat text-dec.txt 
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.

$ slsb-set --reveal --generator fermat -i ./Jennifer_Morrison-enc-gen.png  -b text-dec-gen.txt
Impossible to detect message.

La conclusion évidente est donc qu’il est préférable de ne pas utiliser des pixels se suivants mais un ensemble de pixels bien réparti que l’on pourra retrouver afin de récupérer le message caché. Ici l’idée était donc de générer des ensembles via des générateurs de nombres entiers. La qualité de la répartition va donc dépendre de la suite choisie. On aurait très bien pu utiliser la suite de Fibonacci par exemple.

Vous trouverez plus de détails ainsi qu’un meilleur exemple à cette page.

La prochaine fois on se fait Jessica Alba ou Sarah Michelle Gellar.

1 reply on “Stéganalyse de la méthode LSB (avec un ensemble de nombres décrit par crible d’Eratosthenes) avec Jennifer Morrison”

Comments are closed.