Brevet FR2936336A1 — publié le 20100326

PROCEDE ET DISPOSITIF D'AUTENTIFICATION DE CODES GEOMETRIQUES 5 10 La présente invention concerne un procédé et un dispositif d'authentification de codes géométriques. Elle d'applique, en particulier, aux codes à barres en une dimension (dits � 1 D �), en deux dimensions (dits � 2D �), voire en trois dimension (� 3D �) et au Data Matrix (marque déposée). Le code Data Matrix est une symbologie de code à barres bidimensionnelle à 15 haute densité, permettant de représenter une quantité importante d'informations sur une surface réduite, jusqu'à 2 335 caractères alphanumériques ou 3 116 caractères numériques, sur environ 1 cm2. Le code Data Matrix est dans le domaine public. Le Data Matrix se présente sous la forme d'une matrice constituée de points ou de carrés juxtaposés. Le code Data Matrix répond à la norme ISO 1E016022. Selon cette norme, le 20 symbole Data Matrix peut contenir des niveaux de robustesse, connus sous le nom de vérification et correction d'erreur ou � ECC � (acronyme de Error Check Correction), différents qui lui permettent d'être lu même en étant partiellement dégradé ou occulté. Il existe plusieurs variantes du Data Matrix admises par la norme : du E00000 qui n'offre aucune robustesse si le symbole est dégradé, à l'instar des codes à barres 1D (EAN 13...) 25 au ECC200 qui offre le niveau de sécurité maximal (lecture possible d'un symbole occulté jusqu'à environ 20%). Le domaine principal d'application du Data Matrix est le marquage de très petites pièces mécaniques ou électroniques. Il est utilisé, entre autres, par la NASA (acronyme de National Agency for Space and Aeronautics ou agence nationale pour l'aéronautique et 30 l'espace), pour le marquage de chacune des pièces composant les navettes spatiales. Dans les applications courantes, il est utilisé pour l'affranchissement du courrier dans certains pays, comme la Suisse, et plus récemment pour certaines applications de téléphonie mobile, il est alors souvent surnommé � Tag � (ou étiquette). Flashcode (marque déposée) est une implémentation commerciale propriétaire utilisant la norme Data Matrix. 35 Le Data Matrix ECC200 fait partie des standards adopté par GS1 et un avis récent de l'AFSSAPS indique que, d'ici Janvier 2011, tous les médicaments soumis à l'AMM (acronyme de Autorisation de Mise sur le Marché) devront comporter, en plus des mentions légales actuelles, un code 2D Data Matrix contenant un certain nombre d'informations prédéfinies. Le Data Matrix a été conçu pour maximiser la quantité de données stockables sous forme d'image, de façon à ce que le décodage par machines, ou lecteurs, de ces données (sur la base d'une capture d'image) soit rapide et fiable. II n'a cependant pas été conçu pour sécuriser les données stockées, alors que cette problématique se pose de plus en plus. Ainsi, le décodage du Data Matrix se fait selon un standard ouvert, et n'incorpore pas de clé cryptographique pour chiffrer et/ou appliquer une signature numérique aux données. Cependant, ceci n'est pas véritablement un problème, car les données du message stocké peuvent être chiffrées ou signées numériquement avant d'être modulées par le Data Matrix. Ainsi, on peut garantir la source et l'intégrité d'un message, sans qu'il ne soit possible à quiconque de falsifier un message légitime (modifier son contenu) ou de se faire passer pour l'auteur d'un message légitime. Cependant, les techniques cryptographiques n'offrent pas de protection contre la reproduction exacte, ou clonage, des données d'un Data Matrix. Or dans de nombreuses applications d'anti-contrefaçon, il est essentiel de pouvoir se protéger contre ces attaques par clonage, car le contrefacteur peut sans difficulté faire une copie parfaite d'un document, emballage, ou autre objet comportant un Data Matrix, s'il ne contient pas d'éléments anti- copie. Certaines applications de traçabilité (en anglais : � track and trace �) permettent de tracer, à tous les niveaux de la chaîne de distribution, les produits par le code identifiant contenu dans le Data Matrix : elles peuvent ainsi déterminer la présence de duplicatas si un code identifiant est retrouvé plus d'une fois, ou encore déterminer des anomalies dans la distribution si le code identifiant pointe vers un produit qui devrait se trouver à un autre endroit de la chaîne de distribution. Il est certain qu'une traçabilité unitaire � parfaite � à tous les niveaux de la chaîne de distribution est une aide contre la contrefaçon, même si ultimement, elle ne permet pas de déterminer lequel de deux produits apparemment identiques est l'original. Cependant, dans la majorité des cas, un tel système de traçabilité est trop coûteux, voire tout simplement impossible à mettre en place du fait qu'elle doit être centralisée pour que deux produits portant le même Data Matrix trouvés en deux endroits différents puissent être identifiés comme tels. C'est pourquoi les détenteurs de droit qui utilisent des Data Matrix, utilisent souvent d'autres moyens pour s'assurer de l'authenticité d'un document ou produit. Par exemple, plusieurs solutions sont basées sur des labels sécurisés, qui combinent un authentifiant tel qu'un hologramme ou un OVD (acronyme de � Optically Variable Device � pour dispositif optiquement variable) placé à proximité du Data Matrix. Malheureusement, les moyens utilisés sont généralement coûteux et peu efficaces. Coûteux, parce que plusieurs des technologies d'authentification utilisent des technologies avancées pour la construction d'effets optiques. Peu efficaces, car de plus en plus, les effets optiques peuvent être imités avec suffisamment de précision à peu de frais. De plus, ces effets ne protègent pas intrinsèquement le code d'identification. Par exemple, si un ensemble de documents contenant le moyen d'authentification est volé, des codes Data Matrix arbitraires peuvent lui être appliqués. Le Data Matrix peut être � sécurisé � contre la copie en le marquant, par exemple, avec des encres spéciales. Cependant, les contrefacteurs parviennent à se procurer des encres spéciales de plus en plus facilement, et cette solution n'est pas véritablement sécuritaire, tout en étant coûteuse. Aussi, pour de nombreuses applications les Data Matrix sont marqués par ablation laser, et dans ce cas il n'est évidemment pas question d'utiliser une encre spéciale. Cependant, cette dernière solution est coûteuse. La présente invention vise à remédier à ces inconvénients. A cet effet, selon un premier aspect, la présente invention vise un procédé d'authentification d'un code à zones géométriques de formes et/ou couleurs variables en fonction d'un message, caractérisé en ce qu'il comporte : - une étape de génération dudit code en fonction d'un message pour fournir des zones géométriques, - une étape de génération d'un code numérique authentifiant pour fournir des valeurs numériques et - une étape de génération d'une image dudit code comportant, dans au moins une partie de ses zones géométriques, une caractéristique de marquage variable en fonction dudit code numérique authentifiant. Ainsi, la présente invention permet d'authentifier directement un code barre 2D, sur la base d'une image de celui-ci, par des moyens purement numériques. On rappelle ici que les codes numériques authentifiants, aussi appelés par la suite � CNA �, sont des images numériques qui, une fois marquées sur un support, par exemple par impression ou modification locale du support, présentent des propriétés, en général mesurables automatiquement à partir d'une image captée, qui sont modifiées lors de leur copie. Les codes numériques authentifiants se basent généralement sur la dégradation d'un ou plusieurs signaux sensibles à la copie, un tel signal étant porté par des éléments d'image aux caractéristiques mesurables sensibles à la copie. Certains types de codes numériques authentifiants peuvent également contenir de l'information permettant d'identifier ou tracer le document qui le contient. Les CNA sont extrêmement avantageux pour la détection de copie. En effet, ils sont extrêmement peu coûteux à produire, très faciles à intégrer, et peuvent être lus par machine avec la plupart des moyens de capture d'image, tout en pouvant offrir une grande sécurité contre la copie. Grâce à la mise en oeuvre de la présente invention, un code, par exemple à barres, est indissociablement lié à un CNA. On observe que la présente invention présente des avantages par rapport à la simple juxtaposition d'un code et d'un CNA. D'une part, cette dernière approche impliquerait l'impression de deux codes à des moments différents sur le document, ce qui consommerait de l'espace et rendrait le procédé de production des documents sécurisés plus complexe. D'autre part, l'authentification demanderait la capture de deux images, l'une du CNA et l'autre du Data Matrix), ce qui rendrait la procédure de lecture moins pratique. Finalement, un contrefacteur parvenant à se procurer un certain nombres de documents munis du CNA avant impression du Data Matrix, ou parvenant à se procurer la plaque d'impression ou un fichier contenant le CNA d'origine, serait en mesure de générer des document � authentiques �, en clonant des Data Matrix authentiques associé au CNA. Selon un deuxième aspect, la présente invention vise un dispositif d'authentification d'un code à zones géométriques de formes et/ou couleurs variables en fonction d'un message, caractérisé en ce qu'il comporte : - un moyen de génération dudit code en fonction d'un message pour fournir des zones géométriques, - un moyen de génération d'un code numérique authentifiant pour fournir des valeurs numériques et - un moyen de génération d'une image dudit code comportant, dans au moins une partie de ses zones géométriques, une caractéristique de marquage variable en fonction dudit code numérique authentifiant. Selon un troisième aspect, la présente invention vise un procédé d'authentification d'un code à zones géométriques de formes et/ou couleurs représenté par une image captée, caractérisé en ce qu'il comporte : - une étape de lecture d'un message porté par les formes et couleurs moyennes des zones géométriques, - une étape de mesure de dégradation d'un code numérique authentifiant représenté dans au moins une partie des zones géométriques dudit code, par une caractéristique de marquage variable et - une étape de détermination de l'authenticité du dit code en fonction d'au moins ladite dégradation. Selon un quatrième aspect, la présente invention vise un dispositif d'authentification d'un code à zones géométriques de formes et/ou couleurs représenté par une image captée, caractérisé en ce qu'il comporte : - un moyen de lecture d'un message porté par les formes et couleurs moyennes des zones géométriques, - un moyen de mesure de dégradation d'un code numérique authentifiant représenté dans au moins une partie des zones géométriques dudit code, par une caractéristique de marquage variable et - un moyen de détermination de l'authenticité du dit code en fonction d'au moins ladite dégradation. Selon un cinquième aspect, la présente invention vise un code à zones géométriques de formes et/ou couleurs variables en fonction d'un message, caractérisé en ce qu'il représente : - un message par l'intermédiaire des zones géométriques et - un code numérique authentifiant, dans au moins une partie de ses zones géométriques, par une caractéristique de marquage variable en fonction dudit code numérique authentifiant. Les avantages, buts et caractéristiques particulières de ces dispositifs, de ce procédé et de ce code objets de la présente invention étant similaires à ceux du procédé d'authentification objet du premier aspect de la présente invention, tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques particulières de la présente invention ressortiront de la description qui va suivre faite, dans un but explicatif et nullement limitatif en regard des dessins annexés, dans lesquels : la figure 1A représente un Data Matrix connu dans l'art antérieur, la figure 1B représente un agrandissement du Data Matrix illustré en figure 1A, les figures 2A et 3A représentent des modes de réalisation particuliers des codes objets de la présente invention, des agrandissements de ces codes étant donnés en figures 2B et 3B, respectivement, les figures 4 à 7 représentent, sous forme de logigrammes, des étapes mises en oeuvre dans des modes de réalisation particuliers des procédés objets de la présente invention et - la figure 8 représente, schématiquement, un mode de réalisation particulier du dispositif objet de la présente invention. Bien que la description qui suit soit faite pour le cas de codes à barres en deux dimensions, la présente invention ne se limite pas à ce type de marquage et impression sur des objets mais s'étend, bien au contraire à tous les types de marquages et d'impression de codes à zones géométriques de formes et/ou couleurs variables en fonction d'un message, notamment les codes à barres en une, deux ou trois dimension(s) formés en surface des objets et les marquages sous la surface des objets. Dans le cas des codes à barres à une dimension, les zones géométriques du code sont des barres verticales rectangulaires alternativement blanches et noires dont les largeurs varient en fonction du message portée par le code. Dans le cas des codes à barres à deux dimensions, les zones géométriques du code sont des carrés formant une grille régulière, dont la couleur varie en fonction du message portée par le code. Dans la suite de la description, on appelle � cellules � ces zones géométriques. On décrit, ci-dessous, en particulier, des méthodes et dispositifs pour authentifier directement des codes barre 2D (aussi appelés Data Matrix) et, notamment, pour authentifier des codes à barres 2D imprimés par intégration d'un code numérique authentifiant (� CNA �), marqués par laser à intensité modulable, et par laser à intensité fixe. En ce qui concerne l'intégration d'un CNA dans un code barre 2D, une méthode pour générer un Data Matrix comportant un CNA intégré est décrite ci-dessous en regard de la figure 4. On note que les paramètres de génération recommandés du CNA, notamment la résolution en pixels par pouces et le type de cellule utilisé (c'est-à-dire la forme d'un point élémentaire du CNA, par exemple carré, rectangulaire, évidé ou non, ..., ont été calculés auparavant pour le procédé d'impression (papier, encre, machine d'impression, document), par exemple en utilisant une méthode connue. Au cours d'une étape 105, on reçoit un ou plusieurs messages, une ou plusieurs clés, une taille physique de Data Matrix et une résolution d'impression. Au cours d'une étape optionnelle 110, on détermine, à partir des clés et messages, le ou les messages codés qui seront insérés dans le CNA. En particulier, les messages du CNA peuvent être corrélés, l'un étant (en partie) fonction de l'autre, afin de renforcer l'authentification. Au cours d'une étape 115, on génère un Data Matrix à partir d'au moins un des messages reçus au cours de l'étape 105. Au cours d'une étape 120, on détermine le nombre de cellules noires du Data Matrix, y compris les motifs de repérage (connus sous le nom de � finder pattern �) pouvant ou non être inclus dans le Data Matrix. Au cours d'une étape 125, en fonction du nombre de cellules noires, de la résolution d'impression et de la taille physique, on détermine le nombre d'éléments du CNA. Au cours d'une étape 130, en fonction du nombre d'éléments, des clés et des messages, on détermine, en utilisant un algorithme de génération de CNA, les valeurs prises par chacun des éléments du CNA. On note ici que les algorithmes de génération de CNA comportent souvent des étapes de cryptage, d'encodage, de répétition, et de brouillage (� scrambling �) (par exemple avec permutation et/ou substitution). Au cours d'une étape 135, on crée l'image numérique du Data Matrix, en inscrivant les valeurs du CNA selon un ordre prédéterminé (par exemple de gauche à droite puis de haut en bas) dans les pixels correspondant au nombre de cellules noires. Au cours d'une étape 140, on imprime ou on marque un objet pour y former l'image numérique du Data Matrix incorporant le CNA. On donne, ci-dessous, un exemple dans lequel on a généré le Data Matrix 150 illustré en Figure 1 selon un algorithme standard, à partir d'un message. Le Data Matrix 150 fait la taille de 26x26 cellules en incluant les motifs de repérage, et compte 344 cellules noires toujours en incluant les motifs de repérage. Nous souhaitons l'imprimer avec un moyen d'impression permettant une résolution 600 pixels par pouce (� ppi �), et qu'il occupe une surface de 1 cm x 1 cm approximativement. La taille en pixels de l'image équivalente à 1 cm est de 236x236 pixels, soit 236 pixels/26 cellules = 9.07 pixels/cellule (en largeur). En arrondissant à 9 pixels en largeur par cellule pour une taille en pixels de 234 x 234, on dispose de 9 x 9 = 81 pixels par cellule. Comme nous avons 344 cellules noires, un CNA généré sur l'ensemble des cellules noires peut compter 81 x 344 = 27.864 pixels. On peut donc générer un CNA qui compte un bit par pixel, donc le CNA comptera 27.864 bits. On génère le CNA à partir des clés et messages selon un des algorithmes connus, et on insère les valeurs du CNA dans les cellules noires. La Figure 2 montre un Data Matrix 160 objet de la présente invention généré à partir du Data Matrix 150, dans lequel un CNA est réparti sur l'ensemble des cellules noires. Selon le moyen d'impression, l'encre ou le papier ou autre support, il se peut que le Data Matrix n'ait pas la qualité requise, par exemple parce qu'il comporte des � trous � au niveau des cellules. Pour remédier à cela, en variante, on sélectionne un sous-ensemble des pixels parmi les cellules noires pour porter les valeurs du CNA. Par exemple, on prend un pixel sur deux, les pixels non-sélectionnés restant noirs. On a ainsi un CNA de 27.864 / 2 = 13.932 bits. La Figure 3 montre un tel Data Matrix 170. On peut également sélectionner un sous-ensemble des pixels des cellules noires à partir d'une clé cryptographique. On donne, ci-dessous, en regard de la figure 5, un exemple d'algorithme pour authentifier un Data Matrix muni d'un CNA qui est imprimé. Au cours d'une étape 205, on reçoit une image provenant d'une capture d'image, par exemple avec un scanner, cette image contenant le Data Matrix. On reçoit, parallèlement, des clés de déchiffrement, et les paramètres de lecture du CNA (par exemple, la taille en pixel de chaque cellule), ainsi qu'un seuil de décision. Au cours d'une étape 210, on décode le message du Data Matrix porté par les formes et couleurs moyennes des cellules carrées. Au cours d'une étape 215, on détermine si le message du Data Matrix est correctement lu, par exemple en fonction de ECC intégrés. Sinon, on considère que le Data Matrix n'est pas authentique et on affiche, à l'utilisateur � Code non authentique �. Si le message est correctement lu, au cours d'une étape 220, on crée une image du Data Matrix d'origine. Puis, au cours d'une étape 225, on détermine le nombre de cellules noires, et en fonction des paramètres de lecture du CNA, on détermine le nombre d'élément du CNA. Au cours d'une étape 230, on détermine la position (en termes de pixels) dans l'image, de chacun des éléments du CNA. Au cours d'une étape 235, on extrait de l'image, une valeur associée à la valeur de chaque élément du CNA, par exemple le niveau de gris du pixel. On obtient ainsi un vecteur de données qui est, en fait, un message crypté qui permet l'analyse de la valeur. Au cours d'une étape 240, en utilisant les clés cryptographiques, on décode le ou les messages du CNA. Au cours d'une étape 245, on détermine son score lié à la dégradation du CNA. Le score est, par exemple, le pourcentage de bits non correctement déterminés, et/ou une valeur décroissante avec un taux de corrélation. En option, si, au cours de leurs créations, les messages du CNA et du Data Matrix sont corrélés, on vérifie cette corrélation au cours d'une étape 250 et on affiche à l'utilisateur � Data Matrix non authentifié � s'ils ne le sont pas. Enfin, au cours d'une étape 255, on compare le score mesuré à une valeur limite prédéterminée ou � seuil de décision �. S'il est supérieur, par exemple du fait d'un taux d'erreur important ou d'un taux de corrélation faible, on affiche à l'utilisateur � Data Matrix authentifié �. Sinon, on affiche � Data Matrix non authentifié �. En option, on affiche chaque message lu. En variantes : on met en oeuvre d'autres techniques pour générer des CNA, - on utilise une résolution différente pour se conformer à la méthode de recherche de la résolution d'impression optimale, - on réserve des bits du CNA pour la synchronisation, on utilise les cellules claires également pour supporter le CNA. Dans ce cas, pour préserver l'aspect plus clair des cellules, on utilise un petit pourcentage des pixels, par exemple entre 10 et 20%, pour insérer une partie du CNA. Les points peuvent être de taille variable, - on utilise une couleur pour des cellules claires tout en préservant le contraste nécessaire entre des cellules noires et des cellules claires, afin d'insérer une partie du CNA. Les points peuvent être de taille variable. On note que le même Data Matrix peut être imprimé ou marqué plusieurs fois en impression statique (offset, flexographie, etc.), ou varier à chaque impression en impression numérique. Dans un deuxième mode de réalisation, on met en oeuvre un système de marquage laser et micro percussion pour l'intégration d'un CNA. Certains systèmes de marquage, notamment de laser ou de micro percussion, d'un Data Matrix, ne peuvent pas utiliser des images de grande taille comme vu précédemment. Par exemple, marquer une image de taille 236x236 pixels comme dans l'exemple précédent prendrait un temps beaucoup trop important, ce qui ralentirait beaucoup trop la cadence de la ligne de production, ou générerait des Data Matrix de grande taille. Le mode de réalisation particulier décrit ci-dessous vise à éviter ces inconvénients. On note que plusieurs méthodes de réalisation d'un Data Matnx sont possibles en mettant en oeuvre un laser : un impact laser peut créer chaque cellule, plusieurs impacts laser juxtaposés peuvent créer chaque cellule, ou - une cellule ou des amas des cellules peuvent être vectorisées et gravées par un tir laser en continu. De plus, on note que, sur plusieurs systèmes de marquage laser, il est possible de faire varier localement les caractéristiques de différentiation suivantes : l'intensité du laser, la polarisation du laser, - la focalisation du laser sur la surface à marquer, le micro-positionnement, la direction, ou l'ordre dans lequel des points sont marqués par le laser et la forme du front d'onde. Aussi, plusieurs méthodes de réalisation d'un Data Matrix sont possibles en micro percussion : un impact de micro pointe peut créer chaque cellule individuelle ou plusieurs impacts de micro pointe juxtaposés peuvent créer chaque cellule. De même, on peut utiliser la capacité de plusieurs systèmes de marquage par micro pointe à faire varier localement les caractéristiques de différentiation suivantes : - la force de l'impact, le micro-positionnement, l'orientation de la micro pointe et/ou la forme de la micro pointe. Afin d'optimiser le temps d'exécution d'un Data Matrix composé des cellules différenciées (selon les paramètres contrôlables du laser), on divise les cellules en sous- ensembles, ou � classes �. Chaque sous-ensemble de cellules dont les caractéristiques de différentiation sont identiques est réalisé durant un seul passage de l'outil. Ceci permet de modifier le paramètre qui différencie l'effet de marquage une seule fois pour chaque sous-ensemble des cellules, au lieu de le faire pour chaque cellule individuellement. Chaque paramètre qui peut être modifié localement, et dont la variation a un impact mesurable sur le Data Matrix généré, peut être utilisé pour stocker de l'information. Par exemple, si l'intensité du laser admet deux niveaux, on peut stocker un bit d'information en modulant l'intensité ou un autre paramètre de modulation du marquage. On peut aussi, en variante, cumuler des variations sur différents paramètres localement variables. En variante, un paramètre peut varier localement de manière quasi-continue, et on peut alors déterminer un nombre arbitraire de niveaux pour stocker de l'information. Cependant, dans des exemples de mise en oeuvre, il est avantageux de n'utiliser que deux niveaux. Dans ce cas, on peut un rapport optimal du ratio signal sur bruit, de 0,56, pour maximiser la détection de copie. Dans le cas de deux niveaux d'énergie, on examinera la distribution statistique des tailles d'impact, pour déterminer deux niveaux d'énergie suffisamment proches pour qu'il y ait une superposition partielle des distributions, en visant le rapport idéal de signal sur bruit mentionné ci-dessus. Concrètement, si pour une énergie de laser donnant des tailles d'impact de 0,10 mm2, on a un écart-type de 0,01 mm2, on prendra des niveaux d'énergie donnant des tailles d'impact moyennes proches de 0,1075 mm2 et 0,925 mm2. En effet, on obtient alors un rapport signal sur bruit de 0,00752 / 0,012 = 0,5625, tout près de l'optimum théorique. Ainsi, dans le cas d'un Data Matrix de taille 26 x 26 cellules, on a 344 tirs de laser. On génère un CNA de la même manière que vu précédemment, et on module le CNA par des points de taille 0,1075 mm2 et 0,925 mm2. On discute, ci-après le cas d'un CNA provenant du bruit résiduel de marquage d'un code-barre 2D. En effet, il n'est pas toujours possible d'appliquer les techniques décrites précédemment. Dans certains cas, il n'est pas possible de moduler une information supplémentaire : par exemple, le moyen d'impression ou de marquage ne permet que de marquer ou non une cellule (marquage unitaire binaire). Il y a également des cas où l'information supplémentaire qui est marquée n'offre pas une sécurité élevée contre la copie. Par exemple, un moyen de marquage permettant des niveaux prédéfinis de marquage qui restent distincts des autres et clairement identifiables dans l'image marquée permet d'insérer une information supplémentaire, mais celle-ci reste en principe copiable à l'identique. Dans ce cas, on peut utiliser le bruit résiduel d'impression ou de marquage, et l'exploiter en tant que CNA. En effet, quel que soit le type d'impression, à une certaine échelle ou résolution, certains � défauts � apparaissent. Par exemple, si un impact laser laisse, en principe, un point d'impact de forme circulaire ou ellipsoïdale, on observe généralement, à une résolution suffisamment élevée, que le point d'impact n'a pas une forme parfaitement régulière. Il en va de même si un système d'impression à jet d'encre est utilisé. A une résolution encore plus élevée, on observe des irrégularités dans la profondeur du point d'impact, et ainsi de suite. Les irrégularités du marquage peuvent être captées, mesurées, et servir à constituer un CNA. On peut alors stocker le CNA dans une base de données, ou le stocker lui-même sous forme de code-barre 2D. Cette dernière approche est cependant peu avantageuse, car marquer un second code est coûteux et consomme de l'espace sur le document, ce qui est ce que l'on cherche à éviter en général. Par contre, on peut stocker le CNA en l'associant au message du Data Matrix qui, s'il est unique (ce qui est préférentiellement le cas), permet, lors de l'étape d'authentification, de faire une simple � vérification � par comparaison de la mesure des défauts de marquage avec le CNA. De nombreuses mesures des défauts sont possibles, par exemple on peut mesurer la couleur ou le niveau de gris moyen de chaque cellule du Data Matrix, on peut déterminer le contour d'une cellule, mesurer la distance entre le centre de gravité et le contour extérieur pour différents angles, etc. Les points d'impacts peuvent se superposer, auquel cas on peut fixer une valeur limite de distance au contour extérieur. On peut modéliser, pour le canal d'impression concerné, le résultat � moyen � du marquage d'un certain code barre 2D, sur la base de la taille moyenne des points d'impact, et, éventuellement, en tenant compte des interactions possibles lorsque des points d'impact sont adjacents. On peut soustraire l'image estimée par la modélisation de l'image captée, et le résultat comporte moins de redondance, ce qui augmente le rapport signal sur bruit et, par la même, la performance de détection. On donne, ci-dessous, en regard de la figure 6, un exemple d'algorithme permettant l'enregistrement des défauts de marquage d'un code barre : Au cours d'une étape 305, on reçoit une image captée contenant un code barre. Au cours d'une étape 310, on décode le message du code-barre porté par les formes et couleurs moyennes des cellules carrées. Au cours d'une étape 315, on calcule un identifiant à partir du message. Au cours d'une étape 320, on mesure les caractéristiques des défauts de marquage du code-barre. Au cours d'une étape optionnelle 325, on soustrait la moyenne des caractéristiques pour un ensemble de Data Matrix, des caractéristiques mesurées pour le Data Matrix considéré. Au cours d'une étape 330, on quantifie les caractéristiques, éventuellement on les compresse, et on détermine un vecteur de données représentatif des défauts. Au cours d'une étape 335, on stocke ce vecteur de caractéristique dans une base de données, associé à l'identifiant du message. On donne, ci-dessous, en regard de la figure 7, un algorithme permettant l'authentification d'un code à barres 2D à partir de la mesure des défauts d'impression du marquage : Au cours d'une étape 405, on reçoit une image captée contenant un code à barres. Au cours d'une étape 410, on décode le message contenu dans le code à barres et porté par les formes et couleurs moyennes des cellules carrées. Si on ne parvient pas à le décoder, on affiche � Code-barre illisible � à l'utilisateur. Sinon, au cours d'une étape 415, on calcule un identifiant à partir du message. Au cours d'une étape 420, on obtient, d'une base de données, le vecteur de données correspondant à cet identifiant, ainsi qu'un seuil de décision associé à ce vecteur de caractéristiques. Si la base de données ne contient pas cet identifiant, on affiche à l'utilisateur � Code barre non-authentifié �. Sinon, au cours d'une étape 425, on mesure les caractéristiques des défauts de marquage du code-barre. Au cours d'une étape optionnelle 430, on soustrait la moyenne des caractéristiques pour plusieurs codes à barres, des caractéristiques mesurées pour le code à barres considéré. Au cours d'une étape 435, on quantifie les caractéristiques, éventuellement on les compresse, et on détermine un vecteur de données représentatif des défauts. Au cours d'une étape 440, on compare le vecteur de données extrait avec le vecteur de données obtenu de la base de données, et on mesure un indice de similarité, appelé � score �. Au cours d'une étape 445, on compare le score mesuré au seuil de décision. S'il est supérieur, on affiche à l'utilisateur � Data Matrix authentifié �. Sinon, on affiche à l'utilisateur � Data Matrix non authentifié �. En option, on affiche à l'utilisateur chaque message lu. On observe, en figure 8, un terminal local 505 muni d'une imprimante 510, d'un moyen de capture d'image 535, deux capteurs 540 et 545 et d'un moyen d'accès 515 à un réseau 520 auquel est relié un serveur 525. Le serveur 525 est muni d'une base de données 530. Le terminal local 505 est, par exemple, de type ordinateur à usage général. Il est installé sur une chaîne 550 de fabrication ou de transformation d'objets, par exemple d'emballages. La chaîne 550 comporte, par exemple, un dépileur d'objets plans (non représenté) et un convoyeur (non représenté) mettant en mouvement les objets à traiter, l'un derrière l'autre. Le capteur 540 est positionné sur la chaîne de fabrication 550, en amont du champ optique du capteur d'image 535 et est adapté à détecter l'arrivée d'un objet à traiter. Par exemple, le capteur 540 est une cellule optique comportant un émetteur et un récepteur de rayons lumineux. Le capteur 545 est placé sur la chaîne 550 et détermine la vitesse des objets sur cette chaîne. Par exemple, le capteur 545 est relié à un automate (non représenté) régissant le fonctionnement de la chaîne 550 ou est relié à un support de déplacement des objets, par exemple une bande de convoyeur. Le terminal local 505 commande l'impression des objets par l'imprimante 510, de manière connue en soi, par exemple par jet d'encre ou par marquage laser. Le moyen d'accès 515 au réseau 520 est, par exemple, un modem de type connu, pour accès au réseau 520, par exemple le réseau Internet. Le moyen de capture d'image 535 est, par exemple, un appareil photo numérique, un capteur linéaire ou une caméra industrielle. Le serveur 525 est de type connu. La base de données 530 conserve, au moins, une liste d'identifiants d'objets et de vecteurs de données de défauts liés à ces objets, déterminées conformément au procédé objet de la présente invention. Préférentiellement, cette base de données 530 conserve, en relation avec chaque identifiant d'un objet, un identifiant de type d'objet et de position de zone de positionnement du code géométrique objet de la présente invention pour ce type d'objet, une identifiant du prestataire effectuant la fabrication ou la transformation. Le terminal 505 conserve un logiciel qui, lors de son exécution, implémente des étapes d'un procédé objet de la présente invention. Le serveur 525 conserve un logiciel qui, lors de son exécution, implémente des étapes d'un procédé de stockage et de restitution de vecteurs de données de défauts. En variante, le terminal 505 ne conserve pas de logiciel spécifique mais met en oeuvre un navigateur de la toile et un service de la toile (en anglais, � web service �) hébergé par le serveur 525. REVENDICATIONS1. Procédé d'authentification d'un code à zones géométriques de formes et/ou couleurs variables en fonction d'un message, caractérisé en ce qu'il comporte : - une étape (115) de génération dudit code en fonction d'un message pour fournir des zones géométriques, - une étape (120 à 130) de génération d'un code numérique authentifiant pour fournir des valeurs numériques et - une étape (135) de génération d'une image dudit code comportant, dans au moins une partie de ses zones géométriques, une caractéristique de marquage variable en fonction dudit code numérique authentifiant. 2. Dispositif d'authentification d'un code à zones géométriques (160, 170) de formes et/ou couleurs variables en fonction d'un message, caractérisé en ce qu'il comporte : - un moyen de génération dudit code en fonction d'un message pour fournir des zones géométriques, - un moyen de génération d'un code numérique authentifiant pour fournir des valeurs numériques et - un moyen de génération d'une image dudit code comportant, dans au moins une partie de ses zones géométriques, une caractéristique de marquage variable en fonction dudit code numérique authentifiant.