1- Introduction 

          Ceci est une lettre envoyée par George Sand à Alfred de Musset :


    "Je suis très émue de vous dire que j'ai
    bien compris, l'autre jour, que vous avez
    toujours une envie folle de me faire
    danser. Je garde un souvenir de votre
    baiser et je voudrais que ce soit
    là une preuve que je puisse être aimée
    par vous. Je suis prête à vous montrer mon
    Affection toute désintéressée et sans cal-
    cul. Si vous voulez me voir ainsi
    dévoiler, sans aucun artifice mon âme
    toute nue, daignez donc me faire une visite
    Et nous causerons en amis et en chemin.
    Je vous prouverai que je suis la femme
    sincère capable de vous offrir l'affection
    la plus profonde et la plus étroite
    Amitié, en un mot, la meilleure amie
    que vous puissiez rêver. Puisque votre
    âme est libre, alors que l'abandon où je
    vis est bien long, bien dur et bien souvent
    pénible, ami très cher, j'ai le coeur
    gros, accourez vite et venez me le
    fait oublier. À l'amour, je veux me sou-
    mettre.
    "


                  Maintenant relisez  à partir de la permière ligne en sautant à
chaque fois une  ligne.  Vous obtenez le vrai message. Epatant non?
Ce procédé se nomme Steganographie.



     
          La stéganographie est, selon Wikipédia, l’art de faire passer inaperçu un message dans un autre message.  Dans l'exemple ci-dessus nous avons un
message dissimulé dans un un autre message anodin. Seul le destinatiare qui
 sait comment lire le message aura la bonne information.

    De meme à l'ère des technologies de l'information, on peut dissimuler
une information dans une autre, un texte dans une image ou une video,
une image dans une autre image, etc.


2- Procédé

           Prenons le cas de la dissimulation d'un texte dans une image.


                     



   Nous savons qu'une image est en faite une matrice de pixels.
 
      Le pixel : 


         C'est l'unité elementaire d'une image, il représente un point unique, et une 
seule couleur. Selon le syteme utilise, RVB ou CMJN ou TLS , chaque couleur 
est represente sur un certain nombre de bits.
        Dans le cas du RVB(Rouge, Vert ,Bleu) un pixel est constitué de 3 octets : un octet pour la composante rouge, un octet pour la composante verte et un octet pour la composante bleue. A partir de ces trois octets, on peut donc avoir 256*256*256 = 16777216 couleurs différentes, ce qui est largement plus que ne peut distinguer l'oeil humain. 



   L'image : 


         L'image n'est ni plus ni moins que le stockage dans un fichier de
tous les
    pixels RVB composant l'image finale. Par exemple, une image 150x200 pixels   est une matrice 150x200 de couleurs et correspond à 
150x200x3 = 90000 octets.

    La methode consiste  à utiliser  un bit à chaque octet RVB qui compose chaque pixel de l'image. En effet, en retirant 1 bit, on dégrade l'image, mais ce n'est pas visible à l'oeil nu...


    Ainsi, on peut récupérer ce bit à chaque fois et l'utiliser pour stocker les données que l'on souhaite. Nous récupérons donc 1/8e de la taille de l'image pour cacher une information ou un document. Dans notre exemple, une image 150x200 pixels permet de stocker une information de 11250 octets. Cela peut être, par exemple, pour stocker un document texte a l'intérieur de l'image. 

Plus l'image est volumineuse, plus la taille de ce qu'on peut stocker grandit.

     Ce procédé peut ètre repris pour d'autres types de fichiers, videos, audio,

flash, etc. Il suffit juste de savoir comment le fichier est structuré.


3- Cas Pratique

            Dans le cas qui nous intéresse, nous allons voir comment, sous Ubuntu, cacher un texte dans une photo de type jpg. Nous allons avoir besoin d'un
programme de steanographie Steghide. Il en existe d'autres, mais je préfère
celui là.

       - Installation
               On execute la commande suivante dans le terminal.
          $ sudo apt-get install steghide

         Supposons que vous avez un fichier ultrasecret.txt, un fichier texte
et une image image.jpg, dans le dossier /home/user/doc

                    $cd  /home/user/doc


      Pour dsisimuler, utilisez la commande:
          $ steghide embed -cf image.jpg -ef ultrasecret.txt
         Steghide vous demandera de taper deux fois un mot de passe.
    Prenez un mot de  passe aussi compliqué que possible.


     Maintenant pour extraire le fichier contenu dans l'image.
          $ steghide extract -sf image.jpg
    Et après avoir tapé le mot de passe correspondant, un fichier texte sera
 créé dans le repertoire courant, contenant le message.


 4- Applications

         La steganographie ne se limite pas à cacher des secrets, elle peut aussi
 servir à autentifier des documents avec un copyright par exemple.  Un editeur
 peut imprimer son empreinte sur une de ses oeuvres, juste au cas quelqu'un
 s'en approprierait une copie illégalement, sans en avoir eu l'autorisation.
     Ce procédé se nomme Watermarking.


5- Les limites de la stéganographie
           
          La dissimulation d'informations dans un document porteur est fortement dépendant de la nature de ce document porteur. Par exemple, une information dissimulée dans une image BMP est détruite si l'image est convertie en JPG. En effet, le JPG comporte son propre algorithme de compression qui dégrade volontairement l'image afin d'obtenir un compactage maximum. Les précieux bits de l'information cachée sont donc fortement altérés par le compactage.


      6- Contre-Mesures
          

           La recherche d'informartions dissimulées par la steganographie
 se nomme  la steganalysis.
    Pour détecter la stéganographie, il faut  comprendre la façon dont l'information est cachée. Et encore il faut etre sur qu'une information a vraiment été cachée. Bref, c'est aussi simple que de déchiffrer un message quand on ne connait pas l'algorithme de chiffrement qui a été utilisé, sans avoir l'assurance

que c'est vraiment un message chiffré .
            Aussi la principale source de détection est la recherche d'algorithmes déjà connus. Dans certains cas, une analyse mathématique et/ou statistique peut venir compléter la détection.