• [^] # J'ai lu un certain nombre de bêtises dans les commentaires !!!

    Posté par . En réponse à la dépêche La stéganographie en question. Évalué à 10.

    Je réponds ici afin d'apporter qq corrections sur ce qui suit, où des personnes donnent leur avis sans savoir de quoi elles parlent. Sans vouloir jouer les préténtieux (ceux qui me connaissent savent que ce n'est pas mon genre), je travaille justement sur le sujet de la stéganographie...


    1. il n'est pas besoin de connaître l'algorithme utilisé pour le "casser" : voir les travaux de Pfitzman par exemple qui détecte les écarts par rapport aux modèles statistiques servant à décrire les images.
      Un autre exemple vient des fonctions de hachage où l'attaque du paradoxe des anniversaires est complètement indépendante de la fonction considérée et permet de construire des collisions (application contre les tests d'intégrité ou les schémas de signatures numériques par exemple)


    2. Comme le rappelle Lefinnois, le chiffrement du message n'est pas obligatoire ... mais fortement recommandé : en effet, si pour une raison ou pour une autre, le médium transportant le message est "découvert", il vat mieux éviter que le message soit lisible par tout le monde. Mais du point de vue de la stéganographie, le message est une suite binaire, et on se moque complètement de ce qu'elle représente (i.e. clair ou chiffré)


    3. on se tamponne du format du fichier : quand on cherche à introduire le message dans le médium, on ne se préoccupe pas du format du médium (mp3, jpeg ou autre). En revanche, si onveut ensuite faire transiter le message dans une image jpeg, on a intérêt à travailler sur le même espace (i.e. une transformée en cosinus discret - DCT), si on veut du jpeg2000, on se placera alors sur une base d'ondelettes, etc...

      Pourquoi ? Simplement parce qu'en effectuant l'insertion du message dans le médium déjà dans l'espace d'arrivée (le format du médium), on évite de perdre des données importantes.

      Par exemple, la DCT découpe l'image en blocs 8x8 puis, pour chaque bloc, effectue une transformation. Les derniers des 64 (8x8) coefficients contiennent que peu d'info (c'est eux qui sont virés par la compression jpeg) et si on met le message dans ces derniers coefficients, lorsque l'image sera sauvegardée en jpeg, ils sauteront et le message ne voudra plus rien dire.


    4. la clé d'un algorithme est le secret dont dépend la sécurité du système : qq'un décrit une méthode d'insertion dans du texte en appelant ceci "clé".


    5. remplacer le dernier bit d'un code de couleur N'est PAS efficace : ce mécanisme est particulièrement sensible à une détection statistique


    6. on peut faire de la stéganographie dans du texte : il y a le truc de musset dont tout le monde a entendu parlé ... mais il y a d'autres solutions (changer l'espacement normal avant un mot par exemple). La meilleure, pour moi, est celle présentée par Wayner qui propose d'utiliser des grammaires. En gros, l'idée est de décrire une grammaire et chaque règle correspond à un symbole à coder. Au résultat, ça génère un texte au contenu intéressant mais tout à fait cohérent.



    Pour terminer, une bibliographie :
    http://ise.gmu.edu/~njohnson/Steganography/bib/author.htm(...)

    Sur ce, je vais peut-être songer à faire un article précis là-dessus pour linuxmag ;)