Tatouage robuste


Tatouage robuste : Textes, programmes

Textes

Cacher de l'information dans un texte est à la fois facile et difficile. Tout dépend ce que l'on entend par "texte ". S'il s'agit d'une image contenant un texte, c'est-à-dire d'un rendu graphique avec une mise en page, un choix particulier de police, ... alors on peut par exemple jouer sur ce rendu, et modifier légèrement les espaces entre les mots, le dessin des caractères. Ceci se rapproche d'ailleurs du cas de certaines images ressemblant plutôt à des dessins avec de nettes lignes de couleur (bande dessinée de type "ligne claire ", ou encore carte routière) : il est facile de modifier légèrement le tracé sans que cela ne gène l'utilisation du document.
D'un autre côté, si le texte est uniquement une suite brute de caractères ascii, alors c'est un peu plus délicat. On peut éventuellement rajouter des espaces à la fin des lignes, mais ce n'est pas très pratique. Une solution est alors de choisir certains mots, afin de donner une structure particulière au document (un profil statistique particulier, par exemple). C'est d'ailleurs un moyen utilisé depuis longtemps pour faire de la stéganographie dans un contexte militaire : certains mots ou certaines phrases ont une signification particulière, fournie par un dictionnaire (que les deux protagonistes possèdent, et qui sert de clé secrète).

Programmes

Très peu de personnes se sont penchés sur le tatouage de programmes. On peut néanmoins citer [5], qui propose une solution pour tatouer du code assembleur. Le programme peut avoir été écrit dans un autre langage (du C par exemple), mais le tatouage n'est appliqué que sur sa version en assembleur. L'idée est la suivante : l'information à cacher est une distribution de fréquence des instructions assembleur particulière (correspondant par exemple à l'auteur du programme). Le programme a été écrit sans tenir compte de ces distribution, mais l'insertion va consister en la substitution de certains bouts de codes par d'autres, au comportement équivalent, et qui vont façonner le code pour lui donner la distribution requise. Certes le code ainsi obtenu ne sera pas optimal, mais ce n'est pas l'objectif recherché ici. Ce tatouage est relativement robuste face à la réorganisation de code (qui ne modifie pas es statistiques), et son seul vrai ennemi est la décompilation-recompilation qui donnera un code aux propriétés différentes. Ce travail a inspiré les auteurs de [1,3,2]. On peut également citer un travail traitant du fingerprinting de logiciels [4] et une page web qui recense les publications sur ce sujet (http://www.cs.auckland.ac.nz/~jas/bibliography/software-watermarking.html).

References

[1] C. Collberg and C. Thomborson. Software watermarking: Models and dynamic embeddings. In Principles of Programming Languages 1999, POPL'99, pages 311-324, 1999.
[2] D. Curran, N. Hurley, and M. O'Cinnéide. Securing java through software watermarking. In PPPJ '03: Proceedings of the 2nd international conference on Principles and practice of programming in Java, pages 145-148. Computer Science Press, 2003.
[3] J. Nagra, C. Thomborson, and C. Collberg. A functional taxonomy for software watermarking. In CRPITS'02: Proceedings of the twenty-fifth Australasian conference on Computer science, pages 177-186. Australian Computer Society, 2002.
[4] J. Pieprzyk. Fingerprints for copyright software protection. In ISW '99: Proceedings of the Second International Workshop on Information Security, pages 178-190. Springer-Verlag, 1999.
[5] J. Stern, G. Hachez, F. Koeune, and Q. J.-J. Robust object watrmarking: application to code. In Information Hiding 1999, number 1768 in Lecture Notes in Computer Science, pages 368-378. Springer Verlag, 1999.

Informations sur le parcours

Titre :
Tatouage robuste
Profil(s) :
Enseignant & Lycéen, Ingénieur informatique, Enseignant-Chercheur, Etudiant
Thème :
Marquage d'image et stéganographie
Finalité :
Pédagogique
Difficulté :
niveau 2
Auteur(s) :
Caroline Fontaine
Mise à jour :
16/12/2005

Syndication

Il vous est possible de suivre la publication des parcours PICSI via le fil RSS des parcours.