Brevet FR2775812A1 — publié le 19990910

La présente invention concerne un procédé permettant de cacher une information numérique dans un document numérique multimedia, (par exemple le logo d'une société dans une image en niveaux de gris émise par la société), puis de retrouver à partir du document modifié, I'information préalablement dissimulée. L'invention concerne également l'utilisation de ce procédé dans diverses applications pouvant tirer avantage du procédé de dissimulation d'information dans une image numérique. ETAT DE LA TECHNIQUE Il existe déjà une pluralité de techniques consistant à cacher une information numérique dans une image, et ce pour des applications principalement de type watermarking en terminologie anglosaxonne, consistant à marquer des documents numériques pour pouvoir prouver leur originalité. Il existe par ailleurs des techniques d'encryptage. Cependant les techniques d'encryptage ont le plus souvent pour objectif et pour résultat que le document encrypté est totalement illisible, ce qui écarte ce type de technique du champ de la présente invention, dans laquelle on cherche dans certaines applications à sécuriser un document tout en préservant sa bonne lisibilité. De façon générale, toutes les techniques de dissimulation d'information dans une image connues à ce jour comportent un ou plusieurs inconvénients, parmi les suivants: - elles dégradent l'image visuellement et de manière mal contrôlée; - elles manquent de robustesse vis à vis de transformations de base de l'image, ce qui empêche l'extraction fiable de l'information qu'on a voulu y cacher; - certaines techniques nécessitent le recours à l'image originale pour pouvoir extraire l'information, donc l'image modifiée par dissimulation d'informations ne s'autosuffit pas pour retrouver l'information cachée. BUTS DE L'INVENTION: L'invention a pour but de proposer un procédé de dissimulation d'une information numérique dans un document, permettant de résoudre la plupart des inconvénients des procédés connus. Plus spécifiquement, l'invention a pour but de proposer un procédé de dissimulation permettant de cacher de l'information dans une image fixe en niveaux de gris, en couleurs ou une image dans une vidéo, ou de façon tout à fait générale dans un document multimédia, sans dégrader le document de façon perceptible (ou audible, dans le cas de document multimédia audio). En particulier, dans le cas de dissimulation d'information dans des images, il est important de ne pas dégrader les images visuellement, ou du moins de contrôler à priori la perturbation entre des bornes prédéfinies. Le but visant à éviter des dégradations perceptibles du document nécessite de résoudre un paradoxe apparent car en général, plus on essaie de rajouter de l'information à une image pré-existante, plus on aura tendance à la dégrader, au sens de sa modification. Un autre but de l'invention est de proposer un processus d'insertion de l'information à cacher qui soit robuste, c'est-à-dire en particulier tel que même après un grand nombre de perturbations plausibles et non destructives du document, il soit possible de retrouver l'information cachée, sans l'aide des documents originaux. Un autre but de l'invention est de proposer un procédé de dissimulation d'information qui soit évolutif, c'est-à-dire qu'il puisse être aisément corrigé pour rester robuste vis-à-vis de perturbations du document nouvelles ou non prises en compte précédemment. Dans la suite de la decription, on s'attachera pour simplifier à décrire la problématique de la dissimulation d'information dans des images numériques, étant entendu que le problème et sa solution sont étendus, selon l'invention, à tout type de document multimédia (image, son, vidéo, ...). En outre, dans le domaine de la dissimulation d'informations dans des images, la sécurisation d'image, dite watermarking , est l'utilisation la plus répandue, mais il doit être bien compris que le problème résolu par la présente invention n'est pas limité à une telle utilisation, puisqu'il consiste à dissimuler une information numérique de type quelconque (non exclusivement sécuritaire) dans un document multimédia. En fait, comme cela apparaitra dans la suite, l'utilisation particulière du principe de l'invention sera déterminée principalement par des caractéristiques de l'information à dissimuler elle-même. Afin d'atteindre les buts fixés, l'invention propose un procédé pour dissimuler une information numérique primaire (Ijnf,) dans un document numérique initial, notamment un document multimedia initial (Iorig) caractérisé en ce qu'il comporte des étapes consistant à: - décomposer à priori le document initial (Iorig) , en déterminant un document numérique de référence (Iref) fonction du document numérique initial (long), et une information numérique secondaire (Iinf2) fonction de l'information numérique primaire à cacher, tels que la somme du document numérique de référence (irez) et de ladite information numérique secondaire (Iinf2) soit un document modifié (I'orig) sensiblement égal au document numérique initial (Iorig); - insérer l'information numérique secondaire (Iinf2) ainsi déterminée dans ledit document initial, en calculant une image modifiée (I'orig) constituée par la somme dudit document numérique de référence (Iref) et de ladite information numérique secondaire (Iinf2), de façon à obtenir un document numérique modifié (1,g) proche du document initial (long) mais intégrant de façon sensiblement indiscernable l'information numérique primaire (Iinf1) à dissimuler. Selon d'autres caractéristiques du procédé de l'invention: - plus précisément, la valeur de chaque pixel du document modifié (I'orig) est comprise entre (ou égale à, ou comprise entre, ou plus généralement repérée par rapport à) sa valeur calculée dans le document numérique de référence (Iref) et sa valeur donnée dans le document initial (Iorig); -Pour déterminer le document numérique de référence (Iref) à partir du document initial (lg), on utilise la méthode des fractales, consistant à: - découper le document initial (long) en un ensemble de primitives RANGE(i) couvrant la totalité du document initial; - extraire du document initial (lorig) un ensemble de primitives DOMAIN(i), de façon à constituer un dictionnaire de primitives DOMAIN(i) de base (Dbase); - à partir du dictionnaire de primitives DOMAIN de base, déterminer un dictionnaire (Dfinal) de primitives DOMAIN supplémentaires, en appliquant aux primitives de base, un ensemble de transformations géométriques et/ou photométriques locales; - apparier chacune des primitives de base RANGE(i) avec une primitive DOMAIN(i) du dictionnaire de primitives (Dbase), de telle manière que chaque primitive RANGE(i) soit égale à la transformée d'une primitive DOMAIN(i) par une transformation élémentaire wi, plus une erreur (E), ladite erreur permettant de dissimuler l'information numérique à cacher (Iinf1), l'image composée de l'ensemble des primitives RANGE calculées à partir d'une primitive DOMAIN du dictionnaire (Dfinal) étant notée WIorjg (ou A dans les circonstances expliquées plus loin); - de préférence, pour déterminer l'information numérique secondaire à cacher (Iinf2) à partir de l'information numérique primaire à cacher (Ijnfl), on calcule la différence GAP = Iorig - WIorig (ou A pour un code contractif) entre le document initial (loris) et l'attracteur (A) défini à partir du code fractal W associé à l'image initiale Iorig, , et pour chaque point (x,y) du document initial, on détermine l'information numérique secondaire à cacher (Iinf2), à partir de ladite différence GAP entre le document initial Iorig (donnée) et le document de référence 1ref (calculé) . - pour déterminer l'information numérique secondaire à cacher (Iinf2), on établit un lien binaire par convention entre GAP et l'information numérique à cacher Iinf1. Ainsi, s'il y a correspondance d'après le critère utilisé pour un point donné (x,y) du document, on aura Iinf2 = = GAP pour ce pixel; dans le cas contraire, on ne tient pas compte de l'information à cacher pour ce pixel. - dans un exemple de réalisation, le lien binaire est établi selon la règle suivante: Si GAP (x,y) 0 et Iinf1(x,y) = 1 alors Iinf2 (x,y) = GAP (x,y) sinon Iinf2 (x,y) = O - pour extraire d'un document numérique (I'orig) présumé porteur d'une information numérique dissimulée selon le procédé ci-dessus, le procédé comporte des étapes consistant à - calculer un code d'autosimilarité W' associé à l'image modifiée I'orig en utilisant le même contexte que celui utilisé lors de l'opération d'insertion; - récupérer l'information I'inf2 inf2 pour chaque pixel à partir de 1,orlg et de W' en calculant I'inf2 = I'orig - A'. - tester l'information I'inf2 récupérée et si I'jnf2 est positive, en déduire que l'information dissimulée est égale à 1, dans le cas contraire, en déduire que l'information dissimulée est égale à 0 pour le pixel considérer, de sorte qu'on extrait l'information numérique dissimulée à partir du document numérique modifié (I'orig). L'invention sera mieux comprise à la lecture de la description suivante en référence aux dessins ci-annexés, dans lesquels: - la figure 1 représente une vue schématique des principales étapes de la phase d'insertion d'information dans un document; - la figure 2 représente une vue schématique des principales étapes du procédé d'extraction d'information à partir d'un document où elle a été préalablement insérée; - la figure 3 représente sur un exemple d'image les étapes d'une transformation locale établissant la correspondance entre une zone DOMAIN de l'image en une zone RANGE de l'image; Principe de l'invention: Comme cela va être décrit de manière plus détaillée plus loin, le principe de l'invention repose sur l'utilisation d'autosimilarités (issues de la théorie des fractales) pour introduire dans l'image une information binaire sans s'exposer aux inconvénients des procédés connus de dissimulation d'image. Alors que la notion d'auto-similarité est essentiellement utilisée en traitement d'images à des fins de compression (par exemple en codage fractal), on décrit ici comment cette notion peut être utilisée pour calculer de manière adéquate une image de référence (Iref) pour la phase d'insertion d'une information binaire (par exemple visuelle) dans un document numérique, par exemple une image en niveaux de gris et pour calculer une image de référence (I'ref) pour la phase d'extraction de l'information préalablement cachée dans le document numérique. Plus précisément, il est indiqué comment l'insertion d'une part et l'extraction de cette information additionnelle d'autre part peuvent être réalisées. Il est également précisé dans quelle mesure cette information sera préservée dans le cas d'une manipulation non destructive de l'image. L'invention n'est pas limitée au domaine des informations binaires dans une image en niveaux de gris, mais sera retenue dans la description détaillée par voie d'exemple. L'extension de cette approche pour dissimuler des informations autres que binaires d'une part, et sur des supports autres que des images fixes en niveaux de gris d'autre part, est également évoquée plus loin. L'autosimilarité implique de décrire une image non plus en termes de pixels associés à un niveau de gris mais sous la forme : telle zone est similaire à telle autre modulo une transformation donnée. Nous appellerons dans la suite de ce document contexte le choix d'un certain nombre de primitives de découpage de l'image, la manière de les disposer, le critère d'appariement (c'est-à-dire la distance entre l'image de référence 'ref et l'image initiale Iorig)' ainsi que l'ensemble des transformations autorisées entre primitives. L'image initiale à traiter, que nous appellerons Iorig, est découpée en un ensemble de primitives, que l'on appellera range ou Cible, qui doivent couvrir la totalité de l'image (avec éventuellement un recouvrement). D'autre part, un dictionnaire de base Dbase, constitué de primitives domain ou Source, est construit. Les éléments de ce dictionnaire sont également (par défaut) extraits de l'image elle-même, mais n'ont pas besoin de couvrir toute l'image à traiter. Il n'y a pas de contrainte particulière sur la répartition des primitives domain . Le dictionnaire ainsi construit, est ensuite enrichi en utilisant des transformations géométriques et photométriques pour former un dictionnaire final Dfinal de transformations autorisées. A noter que des éléments peuvent être ajoutés dans le dictionnaire Dfinal, tenus secrets vis-à-vis d'utilisateurs externes, et connus uniquement du logiciel d'insertion/extraction d'information. Typiquement on utilisera des transformations de type affine pour créer de nouvelles primitives (mais d'autres transformations plus complexes peuvent également être utilisées). Les transformations peuvent inclure des opérations géométriques (telles qu'une isométrie (i.e. symétries, rotations, réflexions), ou des transformations photométriques, par exemple sur les valeurs de luminance. En particulier, le contexte permettra de définir si des codes contractifs (définis plus loins) sont utilisés. Il est à noter que pour la mise en oeuvre du procédé par l'intermédiaire d'un logiciel, le contexte défini est déclaré au logiciel chargé d'excécuter les calculs relatifs à l'insertion/extraction d'information dissimulée. I1 s'agit ensuite d'apparier chacune des primitives range avec une primitive domain du dictionnaire (voir illustration ci-dessous) selon un critère de distance, par exemple la distance minimum. A l'inverse, on peut avoir intérêt dans certains cas à éloigner l'image de référence 1oef de l'image initiale Iorig, afin de cacher (potentiellement) plus d'information dans la distance entre les deux images, pixel à pixel. On utilisera usuellement la distance euclidienne, mais d'autres distances peuvent être utilisées. En indexant par i les primitives range , nous noterons w la transformation qui lui est associée (i.e : la transformation qui définit un élément du dictionnaire de base, plus une transformation). Nous appellerons W, l'union des transformations locales wi, WI l'image composée de l'ensemble des primitives range représentées approximativement à partir d'un élément de Dfinal, et A l'attracteur associé à W s'il existe. On rappelle à cet égard que si le code choisi est contractif, il est possible, en utilisant le théorème du collage, de considérer l'attracteur A (c'est-à-dire l'image obtenue en itérant n fois la transformation W à partir de n'importe quelle image initiale Iinit : A = Wn(Iinit) ), à la place de la transformation WI, qui est la réunion des blocs range approximés à partir de Iorig; WI est la transformée de o Iorig par la transformation W appliquée une fois: WI = W(lorjg). Il est rappelé qu'une transformation W donnée définit son attracteur A, puisque la transformation W appliquée n fois à une image quelconque donne l'image A. Illustration: dans un exemple de mise en oeuvre de l'invention, le contexte (tel que défini plus haut) est ici celui classiquement utilisé en compression d'image: les primitives sont des blocs carrés : de taille 8 x 8 pixels pour les range , et 16 x 16 pixels pour les domain . Les transformations autorisées des domaines sont: le sous-échantillonnage par 2; la rotation à 0 (c'est-à-dire l'identité), 90 , 1800, 2700 ; les symétries en ce qui concerne les transformations géométriques; et un décalage et mise à l'échelle sur les valeurs de luminance. En d'autres termes, chaque transformation locale wi peut s'écrire sous la forme: où ai, b. ci, di représentent la transformation géométrique (sous/sur-échantillonnage, plus rotation/réflexion, ... ) ; (x,y) représentent les coordonnées du point de l'image et z le niveaux de gris associé ; (u1,v1) représente le déplacement nécessaire pour mettre en correspondance la position de la primitive domain avec la primitive range concernée; si et oi représentent respectivement la mise à l'échelle et le décalage sur les valeurs de luminance. Visibilité: afin d'assurer l'invisibilité de l'information rajoutée dans l'image originale et de ne pas dégrader l'image support elle-même (nous l'appellerons dans la suite de ce document Ig), l'invention prévoit de ne pas exposer le problème sous sa forme classique, à savoir: comment ajouter une information sans quelle soit visible, mais plutôt d'exprimer le problème sous un angle nouveau, à savoir: comment décomposer l'image originale Iorig en une somme de deux images: une première image (Iref) calculée et essentiellement liée à l'image originale, notée Ioeig; et une seconde image, notée Inf2, essentiellement liée à l'information à dissimuler, notée Iinf1. Nous noterons la première image Iref = Wlorjg (ou A, si W est contractif, ce qui sera l'hypothèse retenue pour la suite) et la seconde Iinf2. L'objectif étant que la somme des images A + Iinf2 (soit l'image modifiée I'orig) soit aussi proche que possible de l'image initiale Iorig. Plus précisément, par la proximité de 1,orig par rapport à Iorig on exprime le fait que l'image 1'orig modifié e par insertion d'une information numérique sera comprise, pixel à pixel, dans un intervalle borné d'une part par l'image initiale Iorig, qui est donnée, et d'autre part par l'image de référence Iref, qui est calculée, le mode de calcul étant défini à partir du contexte (défini plus haut) La luminance de chaque pixel de 1,orig sera donc comprise entre (ou égale à, ou reprérée par) sa valeur dans 1ref et sa valeur dans Iorjg. Description de l'insertion d'une information dans une image: On se réfère à la figure 1, dans laquelle les blocs à coins carrés indiquent des données, et les blocs à coins arrondis indiquent des opérations effectuées sur les données. On constate que l'image modifiée I'orig est obtenue par addition d'une part du document de référence Iref, ou, en cas d'utilisation des fractales, I'attracteur A, et d'autre part, de Ijnf2, ellemême obtenue à partir de l'information à dissimuler Iinf1, et de la différence point à point (notée GAP), entre le document original Iorjg, et le document de référence (Iref, A). On va maintenant décrire la détermination de l'image de référence 1rcf (soit A dans le cas d'un code contractif utilisant les autosimilarités de l'image à partir de l'image d'origine Iorig, et, d'autre part, la détermination de l'information Iinf2 à partir de l'information à cacher Iinfl, ces déterminations étant telles que A + Iinf2 = 1,orig' suffisamment proche de l'image d'origine Iorig pour que le document d'origine ne soit pas dégradé visuellement: 1,orig doit apparaître comme Iorjg. Détermination de Iref (A) à partir de Iorig: On se réfère aux figures 1 et 3. Pour déterminer le document numérique de référence (Iref) à partir du document initial (Iorjg), on utilise la méthode des fractales, consistant à: - découper le document initial (Ion') en un ensemble de primitives RANGE(i) couvrant la totalité du document initial; - extraire du document initial (lori) un ensemble de primitives DOMAIN(i), de façon à constituer un dictionnaire de primitives DOMAIN(i) de base (Dbase); à å partir du dictionnaire de primitives DOMAIN de base, déterminer un dictionnaire (Dfinal) de primitives DOMAIN supplémentaires, en appliquant aux primitives de base, un ensemble de transformations géométriques et/ou photométriques locales wi; de plus, il est envisageable d'inclure dans Dfinal des éléments secrets pour renforcer la sécurité. - apparier chacune des primitives de base RANGE(i) avec une primitive DOMAIN(i) des dictionnaires de primitives (Dfinal), de telle manière que chaque primitive RANGE(i) soit égale à la transformée d'une primitive DOMAIN(i) par une transformation locale wi, plus une erreur (si) permettant de dissimuler l'information numérique à cacher (Iinf1), l'image composée de l'ensemble des primitives RANGE remplacées par un élément du dictionnaire (Dfinal) étant l'image de référence, notée A. On se fixe un contexte, tel que défini plus haut. Le contexte doit etre choisi en fonction des critères suivants: - la robustesse recherchée: les transformations géométriques autorisées entre blocs domain et range permettront ensuite de sauvegarder l'information ajoutée si l'on opère ces mêmes transformations (bien ou malveillantes) sur l'image modifiée. La contrainte principale réside dans le fait qu'il sera indispensable d'utiliser le même contexte cohérent lors de l'extraction de l'information ajoutée, que celui utilisé pour la procédure d'insertion. - ltéloignement (et positionnement) entre Iorig et A recherché : plus A sera numériquement éloigné, c'est-à-dire différent de Iorig, plus la place pour cacher une information supplémentaire sera importante, mais les risques de visibilité de l'insertion d'information dans l'image d'origine augmenteront. - la stabilité du code (en l'absence de manipulations parasites): c'est à dire assurer que A' sera proche de A, puisque les deux images Iorjg et 1,orig sont similaires . Détermination de Ijn2 à partir de l'information à dissimuler Ijnn Soit Iinf0 l'information binaire initiale que l'on souhaite ajouter dans l'image originale; le contenu de Iinf0 dépendra pour beaucoup de l'utilisation visée par ce procédé d'insertion/extraction. Si Iinf0 et Iorig ne sont pas de la même taille, alors Iinf0 doit être transformée en une image 1Infl de taille identique à Iorjg. On considérera donc que l'information réelle à dissimuler dans l'image Iorig est Isnf. Le passage de l'information à dissimuler Iinf0 à une information à dissimuler Iinf1 mise en forme est représentée dans la figure 1 par une étape notée (0). On définit alors une grandeur Iinf2, qui est en réalité l'image de l'information Iinf1 modulée en fonction de la valeur du GAP entre l'image d'origine Iorig et l'image de référence calculée Irez. Iinf2 sera défini à partir de Iinfl de la manière suivante: A l'étape notée (1), on calcule la différence des images Iorig et Iref = A, notée GAP: GAP = Iorig - Iref, soit Iorig - A pour un code contractif; - on choisit un critère de correspondance entre GAP et l'information à cacher Iinf1. A titre d'exemple, on retiendra comme critère la solution suivante, qui n'est nullement limitative: si(GAP(x,y) Ijnn(x,y) = 0) Ou (GAP(x,y) > O et Iinf1(X,Y) = 1) alors Iinf2(x,y) = GAP(x,y) sinon Iinf2(X,Y) = 0 Ce critère de correspondance entre GAP et Ijnfl permet d'établir un lien binaire entre GAP qui est codé par son signe (positif ou négatif), et l'information numérique à cacher au pixel considéré, qui vaut 1 ou O. On peut introduire différentes variantes sur cette façon de moduler I*nf2 entre 0 et la valeur du GAP, en prenant d'autres valeurs de bornes, par exemple 1 et 1,2 fois la valeur de GAP, au lieu de 0 et une fois la valeur de GAP. Remarque: du fait de cette convention, il est à noter qu'en moyenne, seul un point sur deux (au moins) de l'information à ajouter Isnfl sera réellement pris en compte. I1 est possible de le garantir en inversant si besoin est l'information binaire à insérer. I1 faut néanmoins relativiser cette première remarque d'un point sur deux. En effet, nous pouvons considérer une image intermédiaire Imid où chaque point serait la valeur moyenne de Iorig et Iref; puis modifier le critère de correspondance afin de construire Iinf2 comme suit: Iinf2(X,Y) = +GAP/2 si (GAP(x,y) O) ou (GAP(x,y) > O et Iinf1(X,Y) = 1) ou, -GAP/2 sinon. Ainsi chaque point de 1,on'g sera porteur d'une information de Ijnfl. Cependant, en contrepartie, la force d'insertion sera divisée par un facteur 2 par rapport à la convention précédemment proposée. Enfin, il sera évidemment nécessaire de modifier en conséquence les conventions utilisées lors de la phase d'extraction. Notons également que le critère de construction de Iinf2 peut être facilement modifié pour faire en sorte que l'image 1,orIg soit la plus proche possible de Iori.. Néanmoins, il y a là un compromis à faire entre visibilité de l'insertion et nombre de points de l'information binaire à insérer, réellement pris en compte (et dans quelle proportion). Ce compromis est à définir en fonction de l'utilisation visée par le procédé de dissimulation. On peut par exemple, décider de forcer à GAP tous points associé à une différence (GAP) supérieure à un certain seuil en valeur absolue, ou bien encore fixer en fonction d'un bon équilibre local que des points de I'orig soient affectés (même si le critère de correspondance n'est pas vérifié) à la valeur de Iorjg, de façon à éviter les concentrations de zones en moyenne trop proches de Irez; mais dans ce cas, ces même points ne pourront plus être porteurs d'information dissimulée. La visibilité du procédé d'insertion sera fonction de (Iorig - I'orig): la visibilité sera d'autant plus grande que la différence entre l'image d'origine et l'image modifiée par insertion sera élevée. On va maintenant décrire le procédé d'extraction de l'information cachée I'inf2 à partir d'une image modifiée I'orig. Pour cela, on se réfère à la figure 2. De manière duale à l'insertion, l'extraction sera réalisée de la manière suivante, tel que schématisé en figure 2. - Calcul du code d'auto-similarité W' associé à 110rig en utilisant le même contexte que celui utilisé lors de l'opération d'insertion; ceci donne dans l'étape indiquée (1'), un document de référence, noté I'ref dans le cas général, ou A' en cas de calcul de I'ref par méthode fractale. - Récupération de I'inf2 inf2 à partir de 1,orig et de A', de la manière suivante: I'n2 = 1,orig - A' Il est à noter que A' est à I'orjg ce qu'était A à Iorig dans la phase d'insertion d'information dans Iorjg. Donc on essaie de reconstruire une image de référence A' à partir de l'image modifiée 'ong. Notons que d'une part, les codes IFS associés aux images Iong et A sont identiques (le premier par construction, et le second par définition d'un attracteur), et d'autre part, chaque point-image de I'orig est inclus dans l'intervalle défini par sa valeur dans Iorig et dans A. Détermination de l'information cachée ',infi' à partir de I'inf2: I'inf1 inf1 peut se calculer à partir de I'inf2 de la manière suivante: de manière duale par rapport à l'opération d'insertion, le test utilisé est le suivant: si I'inf2(x,y) > seuil prédéterminé, alors I'inf 1 (x,y) = 1 sinon si I'inf2(x,y) seuil alors 1'jnfl ( précédemment autorisées lors de la recherche des similarités entre primitives range et domain (i.e. incluses dans le contexte). En d'autres termes, il sera possible de dissimuler une information dans une image, puis de faire subir des transformations autorisées (faisant partie du dictionnaire Dfinal) à l'image modifiée, tout en restant capable d'extraire à nouveau l'information dissimulée à partir de l'image transformée. Il est important de considérer que pour augmenter la robustesse du procédé selon l'information, il suffit de définir un plus grand nombre de transformations autorisées dans le contexte. Des exemples de transformations classiques de l'image sont citées ci-dessous. Transformations photométriques. Si l'image I'orig est modifiée en une image I"orig, telle que pour chaque primitive domain l'on ait I"orjg = &alpha;I'orig + ss alors J"inf2 = I' I'inf2, signifiant que l'insertion d'information résiste à des transformations photométrique affines. Transformations géométriques. Si l'on utilise le contexte décrit précédemment, en cas de rotation à 0 , 90 , 1800, 270 degrés I inn subira la même modification R que l'image I' elle-même (i.e :I@inf2 = R(I'inf2) En cas de changement d'échelle H, nous aurons: I"inf2 inf2 = H(I'inf2). En cas de décalage (i.e.: translation),... les parties de l'image éventuellement supprimées entraîneront la suppression de I'inf2 pour les mêmes zones, mais le reste de l'information dissimulée demeurera dans son ensemble. Plus généralement, il suffit que: signe {Tf(I"inf2(x,y)} = signe (I'inf2(x,y)) pour garantir que I"inf1(x,y) = où signe (X) = O si X=O; +1 si X > O et -1 si X I"orig = Tf{I'orig} La prise en compte du signe de l'information rajoutée pendant une transformation plutôt que la valeur exacte du GAP entraine plus de robustesse, puisqu'on a enfoui dans l'image une information plus importante que celle dont on a réellement besoin pour l'extraction de I;nfl EXTENSIONS DE L'INVENTION L'invention telle que décrite plus haut en termes généraux peut aisément être étendue et appliquée à des situations spécifiques, comme indiqué dans les exemples ci-dessous. Par exemple, le principe de l'invention peut être adapté aux Images en couleurs. Selon le système de couleurs utilisé, il sera éventuellement nécessaire d'opérer un changement de repère pour passer dans un repère de type Luminance/chrominance (ou également sous la forme: luminance, teinte, saturation). Cette opération est inversible ; dans le cas d'images RVB (Rouge Vert Bleu), il faudra donc passer en Luminance/Chrominance, puis réaliser l'opération d'insertion, et enfin réaliser l'opération inverse pour revenir en RVB. Une fois la composante de luminance isolée, les opérations d'insertion et d'extraction peuvent se réaliser exactement comme décrit précédemment dans le cas des images en niveaux de gris. Notons, que l'information ajoutée restera présente lors d'une conversion d'une image couleur I'orig en une image I"ong en niveaux de gris. Egalement, le principe de l'invention peut être adapté aux images Vidéo. Deux possibilités existent: soit opérer image par image, et ce en insérant l'information additionnelle de la manière décrite précédemment pour les images fixes, soit étendre l'approche utilisée pour estimer le code IFS en utilisant une primitive spatio-temporelle au lieu d'une primitive spatiale (typiquement, des cubes plutôt que des blocs carrés). Notons qu'une vidéo comporte bien évidemment potentiellement beaucoup plus de place pour d'une part, dissimuler plus d'informations et d'autre part, la dissimuler de manière plus robuste en augmentant la redondance. En outre, le principe de l'invention peut être adapté à l'insertion d'une information autre que binaire. Il est par ailleurs envisageable d'insérer une information autre que binaire à l'aide de la technique des plans de bits : I'information en niveaux de gris sera classiquement décomposée comme une somme pondérée (par puissance de 2) d'images binaires. Dans le cas, d'une information Iinf 0 sur 255 niveaux de gris de taille k x k, I'information binaire à insérer sera donc de taille 8k x 8k. Si la place réservée à l'information à cacher est suffisante, le principe peut également être étendu à des informations couleurs. Enfin, I'invention peut être adaptée à la dissimulation de signaux audio numérisés, dans un document, ou inversément. APPLICATIONS INDUSTRIELLES DE L'INVENTION: De nombreuses utilisations de ce procédé sont d'ores et déjà envisageables : la signature, I'intégrité, la non-répudiation, la traçabilité, voire la correction d'erreurs, et lesz points de contrôle de réseau. Selon l'utilisation visée, le procédé présenté peut être utilisé tel quel, modulo la définition d'un contexte adéquat; de définir le type d'information à dissimuler (i.e. : le design de la marque), ainsi que le paramétrage des opérateurs d'insertion et extraction. Des exemples d'application sont donnés ci-dessous à titre indicatif. Signature. I1 s'agit pour un auteur, une société ou autre de protéger un document tel qu'une image. Cela peut se faire en insérant comme information binaire le logo de la société ou bien par exemple le visage de l'auteur. Intégrité. Il s'agit ici de pouvoir identifier si une image a été sensiblement modifiée ou non. Pour cela, I'information à dissimuler sera liée aux caractéristiques de l'image ellemême: histogramme des niveaux de gris (sous forme d'image binaire), carte des contours (en superposition de l'image), ou encore un motif spécifique... Notons néanmoins la difficulté suivante : les caractéristiques d'une image seront modifiés par le fait même de dissimuler dans l'image elle-même ses caractéristiques. Non-répudiation. I1 s'agit ici d'insérer automatiquement une trace de l'auteur lorsque celui-ci envoie une image vers une tierce personne : un logo identifiant la personne (empreinte digitale, signature numérique,... ) et/ou, la machine à partir de laquelle celui-ci transmet l'image (fax, PC, terminal mobile Multimédia,... ). Traçabilité. L'utilisation peut être étendue ou automatisée de telle sorte que l'on sache par exemple à l'aide d'une trace si telle ou telle image a été ou non précédemment photocopiée, imprimée,... Point de contrôle de réseau:: l'invention pourra être utilisée pour éviter que des images interdites transitent sur des réseaux (comme Internet) en profitant de transformations simples effectuées juste avant des points de contrôle automatiques implantés sur le réseau, et effectuées en sens inverse juste après D'autres utilisations comme la correction d'erreurs peuvent également être envisagées. Le principe consisterait à insérer dans les zones d'images considérées comme peu importantes, des informations sur la ou les zones considérées elles comme très importantes. En cas de perte partielle/totale des zones importantes, une récupération partielle de celles-ci serait alors possible à partir de l'information dissimulée dans les zones initialement considérées comme peu importantes. REVENDICATIONS 1. Procédé pour dissimuler une information numérique primaire (Iinf1) dans un document numérique initial, notamment un document multimedia initial (Iorig), caractérisé en ce qu'il comporte des étapes consistant à: - décomposer le document initial CT (Iorig) à priori, en déterminant un document numérique de référence (Iref) fonction du document numérique initial (Iorig), et une information numérique secondaire (Iint2) fonction de l'information numérique primaire à cacher (linfi), tels que la somme du document numérique de référence (Iref) et de ladite information numérique secondaire (Ijnn) soit un document modifié (I'orig) sensiblement égale au document numérique initial (long); - insérer l'information numérique secondaire (Iinf2) ainsi déterminée dans ledit document intial, en calculant une image modifiée (I'orig) constituée par la somme dudit document numérique de référence (Iref) et de ladite information numérique secondaire (Iinf2), de façon à obtenir un document numérique modifié (I'orig) proche du document initial (Iorig) mais intégrant de façon sensiblement indiscernable l'information numérique primaire (Iinf1) à dissimuler. 2. Procédé selon la revendication 1, caractérisé en ce que la valeur de chaque pixel du document modifié (I'orig) est comprise entre sa valeur dans le document numérique de référence (Iref) et sa valeur dans le document initial (Iorig); 3. Procédé selon la revendication 1 ou la revendication 2, caractérisé en ce que pour déterminer le document numérique de référence (Iref) à partir du document initial fr (Iorig), , on utilise la méthode des fractales, consistant à: - découper le document initial (Iorig) en un ensemble de primitives RANGE(i) couvrant la totalité du document initial; - extraire du document initial (Iorig) un ensemble de primitives DOMAIN(i), de façon à constituer un dictionnaire de primitives DOMAIN(i) de base (Dbase); - à partir du dictionnaire de primitives DOMAIN de base, déterminer un dictionnaire (Dfinal) de primitives DOMAIN supplémentaires, en appliquant aux primitives de base, un ensemble de transformations géométriques et/ou photométriques locales Wi; - apparier chacune des primitives de base RANGE(i) avec un élément du dictionnaire (Dfinal), de telle manière que chaque primitive RANGE(i) soit égale à la transformée d'une primitive DOMAIN(j) par une transformation locale wj, plus une erreur (#i) permettant de dissimuler l'information numérique à cacher (Iinf1), I'image composée de l'ensemble des primitives RANGE approximées à partir d'une primitive DOMAIN constituant l'image de référence, notée Iref 4. Procédé selon la revendication 1 ,2 ou 3, caractérisé en ce que pour déterminer l'information numérique secondaire à cacher (Iinf2) à partir de l'information numérique primaire à cacher (Iinf1), on calcule la différence GAP = Iorig - A entre le document initial (Iong) et l'attracteur (A) défini à partir du code fractal (W) associé au document initial (Iorig), et pour chaque point (x,y) du document initial, on détermine l'information numérique secondaire à cacher (Iinf2) à partir de ladite différence GAP et de l'information primaire à cacher; - pour déterminer l'information numérique secondaire à cacher (Ijnn), on établit un critère de lien binaire par convention entre GAP et l'information numérique à cacher Ijnfl, et s'il y a correspondance d'après le critère utilisé pour un point donné (x,y) du document, on aura Iinf2 = GAP pour ce pixel; dans le cas contraire, on ne tient pas compte de l'information à cacher pour ce pixel. 5. Procédé selon la revendication 4, caractérisé en ce que le lien binaire est établi selon la règle suivante: Si GAP (x,y) (x,y) = O ou GAP (x,y) > 0 et Iinf1(x,y) = 1 alors Iinf2 (x,y) = GAP (x,y) sinon Iina (x,y) = O 6. Procédé pour extraire d'un document numérique 1,orig présumé porteur d'une information numérique dissimulée selon le procédé de la revendication 1, caractérisé en ce que l'extraction de l'information dissimulée I' inf1 comporte des étapes consistant à: - calculer un code d'autosimilarité W' associé à I'orig en utilisant le même contexte que celui utilisé lors de l'opération d'insertion; - récupérer l'information dissimulée 1,inf2 à partir de 1,orlg et de A' en calculant I'inf2 = I'orig-A'; - tester l'information I'inf2 récupérée, et si elle est positive, en déduire que l'information dissimulée est supérieure ou égale à 1, dans le cas contraire, en déduire que l'information dissimulée I'inf1 est égale à 0 pour le pixel considéré, de sorte qu'on extrait l'information numérique dissimulée à partir du document numérique modifié I'orig. 7. Procédé selon la revendication 6, caractérisé en ce que pour tester l'information I,inf2. - à partir de l'information I'inf2 récupérée, calculer l'information initialement dissimulée I'infl, en appliquant la règle suivante: si l'information récupérée I'inf2(x,y) est supérieur à un seuil prédéterminé S, alors l'information dissimulée I'inf1(x,y) = 1 sinon si l'information récupérée I'inf2(x,y) est inférieure au seuil (-S), alors I'inf1 (x,y) = O sinon, en déduire que l'information récupérée I'inf2 au point (x,y) ne porte pas d'information dissimulée.