Stéganographie

« Ensemble de techniques permettant de transmettre une information en la dissimulant au sein d’une autre information (photo, vidéo, texte, etc.) sans rapport avec la première et le plus souvent anodine, essentiellement à l’aide de logiciels spécialisés. »

Larousse

Exemple :

Dans l’histoire grecque, Hérodote nous rapporte une méthode de stéganographie dans son livre VII d’Historia. Démarate, roi de Sparte exilé en Perse, put avertir ses compatriotes de la future invasion des Perses, grâce à une idée ingénieuse :

« Il prit des tablettes doubles, en ratissa la cire, et écrivit ensuite sur le bois de ces tablettes les projets du roi. Après cela, il couvrit de cire les lettres, afin que ces tablettes n’étant point écrites, il ne pût arriver au porteur rien de fâcheux de la part de ceux qui gardaient les passages. L’envoyé de Démarate les ayant rendues aux Lacédémoniens, ils ne purent d’abord former aucune conjecture ; mais Gorgo, fille de Cléomène et femme de Léonidas, imagina, dit-on, ce que ce pouvait être, et leur apprit qu’en enlevant la cire ils trouveraient des caractères sur le bois. On suivit son conseil, et les caractères furent trouvés. Les Lacédémoniens lurent ces lettres, et les envoyèrent ensuite au reste des Grecs. »

remacle.org

 

À l’ère de l’informatique :

Actuellement, la stéganographie est principalement utilisée dans les images et dans les sons. Nous allons vous présenter comment mettre au point cette technique dans une image bitmap (format non compressé).

Fonctionnement d’un écran :

Tout d’abord, un écran est composé de nombreux pixels. La résolution nous donne le nombre de pixels dont cet écran est composé. Exemple, un écran d’une résolution de 1200 × 800 possède 960 000 pixels. Pour une même résolution, les pixels d’un smartphone seront beaucoup plus petits que ceux d’une télévision. Chacun des pixels est composé de 3 couleurs (3 diodes pour un écran à LED par exemple). Ces 3 couleurs sont rouge, vert et bleu (RVB).

Le format bitmap 32 bits :

Dans une image bitmap, chacune de ces couleurs est codée sur un octet. Ce qui permet d’avoir 28 = 256 nuances de cette même couleur. À partir de ces trois octets (il existe un quatrième octet qui sert à quantifier la transparence de chacun des pixels (alpha)), on peut donc former 256 × 256 × 256 ≈ 16,7 millions de couleurs différentes. Par comparaison l’œil humain voit 2 millions de couleurs différentes.

Le format bitmap stocke l’ensemble des pixels RVB composant l’image dans un fichier. Par exemple, une image de 1200 × 800 pixels correspond à 1200 × 800 × 4 = 3 840 000 octets ≈ 3,7 Mo.

Cacher une information :

Le principe est assez simple. L’œil humain ne captant que 2 millions de couleurs, il suffit d’utiliser un bit à chaque octet R, V, B et Alpha. On préfèrera changer le dernier bit de chaque octet car ne faisant que peu varier les couleurs des pixels (facteur 1/256). Ce bit est nommé : bit de poids faible.
Nous récupérons ce bit à chaque fois (donc 1/8ème de la taille de l’image ) et on l’utilise pour stocker nos données. Une image de 1200 × 800 pixels permet de stocker une information de 480 000 octets ≈ 469 Ko.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.