Categories
Python Security Steganography

Stéganalyse de la méthode LSB

Comme expliqué dans le billet précédent la technique LSB (Least Significant Bit) est aisément attaquable. En effet si pour l’oeil modifier le bit de poids faible est invisible il n’en est pas de même pour un script Python. Nous allons donc utiliser une technique qui consiste tout simplement à remplacer les composantes pairs des pixels par 0 et les composantes impairs par 255. Ce qui veut dire que le pixel (132, 247, 123) deviendrait (0, 255, 255).

Voyons ce que cela nous donne avec l’image originale.

Image originale

Stéganalyse de l'image originale

On voit que la répartition n’est localement pas très uniforme (cliquez sur les images pour voir plus près).

Maintenant nous utilisons l’algorithme LSB afin de cacher un message. Ensuite nous réalisons une stéganalyse sur l’image modifiée.

Image avec un texte caché

Stéganalyse de l'image avec un texte caché

Ici on s’aperçoit nettement que la zone où se trouve dissimulé le message est plus uniforme (une des raisons de chiffrer le texte avant de le cacher). En introduisant un message dans l’image nous avons modifié le bit de poids faible (donc la parité) des composantes des pixels. Il faut aussi savoir que dans le système RGB un pixel par exemple blanc sera toujours codé (255, 255, 255) avec les appareils saturants les couleurs (les valeus sont quasi exactes).

J’ai une autre petite idée derrière la tête. Donc avec de la chance nous verrons bientôt une autre méthode utilisant l’entropie pour détecter un message caché dans une image, peut être même le trouver. Si mes résultats seront concluents… Nous pourrons aussi comparer les deux techniques de stéganalyse.