Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD OF GENERATING AN IDENTIFICATION CODE FOR AN OBJECT, AND SECURITY HARDWARE MODULE
Document Type and Number:
WIPO Patent Application WO/2017/025679
Kind Code:
A1
Abstract:
The invention proposes a method of generating an identification code (C3) for an object, this identification code identifying in a unique manner the object and being intended to be affixed to the latter, the method being implemented in a code generating unit integrated into a hardware security module in which is stored a secret encryption key, said method comprising: a step of obtaining (E40), by the code generating unit, an identifier (ID3) of the object determined on the basis of at least one production parameter for the object; a step of generating (E50), by the code generating unit, a digital signature (SIG) on the basis of said identifier by using a cryptographic hash function parametrized by the secret encryption key (K); and a step of generating (E60), by the code generating unit, the identification code for the object on the basis of the digital signature (SIG).

Inventors:
GRAS DAVID (FR)
SANKHE MBAYE (FR)
PANEI FABIEN (FR)
Application Number:
PCT/FR2016/051988
Publication Date:
February 16, 2017
Filing Date:
July 29, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ARJO SOLUTIONS (FR)
International Classes:
G09C1/00; G06Q30/00; H04L9/32
Domestic Patent References:
WO2002092351A22002-11-21
Foreign References:
EP1645992A12006-04-12
EP2472451A12012-07-04
Other References:
"Chapter 9: ED - Menezes A J; Van Oorschot P C; Vanstone S A", 1 October 1996 (1996-10-01), XP001525009, ISBN: 978-0-8493-8523-0, Retrieved from the Internet
Attorney, Agent or Firm:
FONTENELLE, Sandrine et al. (FR)
Download PDF:
Claims:
REVENDICATIONS

1. Procédé de génération d'un code d'identification (C3) d'un objet (3), ledit code d'identification identifiant de façon unique ledit objet et étant destiné à être apposé sur cet objet, ledit procédé étant destiné à être mis en œuvre dans une unité de génération de codes (9), ladite unité de génération de codes (9) étant intégrée dans un module matériel de sécurité (4) dans lequel est stockée une clé de chiffrement secrète (K), ledit procédé comprenant :

une étape d'obtention (E40) par l'unité de génération de codes d'un identifiant (ID3) de l'objet déterminé à partir d'au moins un paramètre de production de l'objet ;

- une étape de génération (E50) par l'unité de génération de codes d'une signature numérique (SIG) à partir dudit identifiant en utilisant une fonction de hachage cryptographique paramétrée par la clé de chiffrement secrète (K) ; et

une étape de génération (E60) par l'unité de génération de codes du code d'identification de l'objet à partir de la signature numérique (SIG).

2. Procédé de génération selon la revendication 1 dans lequel la fonction de hachage cryptographique est implémentée de façon matérielle dans le module matériel de sécurité.

3. Procédé de génération selon la revendication 1 ou 2 dans lequel ledit objet est un objet manufacturé ou un support destiné à être associé à un objet manufacturé tel que notamment une étiquette, un support auto-adhésif ou une enveloppe de sécurité.

4. Procédé de génération selon l'une quelconque des revendications 1 à 3 dans laquelle l'étape de génération (E60) comprend une combinaison par l'unité de génération de codes de la signature numérique et de l'identifiant de l'objet pour générer ledit code d'identification.

5. Procédé selon l'une quelconque des revendications 1 à 4 dans lequel l'étape de génération de la signature numérique comprend l'utilisation d'une fonction HMAC exécutée dans le module matériel de sécurité (keyed-Hashing Message Authentication Code) et utilisant une fonction de hachage MD5 ou une fonction de hachage appartenant à la famille de fonctions de hachage SHA-2 (Secure Hash Algorithm - 2).

6. Procédé selon l'une quelconque des revendications 1 à 5 dans lequel ladite fonction de hachage est une fonction de hachage SHA-256 ou SHA-512.

7. Procédé selon l'une quelconque des revendications 1 à 6 dans lequel ledit au moins un paramètre de production comprend :

une donnée représentative d'une date de production dudit objet manufacturé ; et/ou une donnée représentative d'un instant de production dudit objet manufacturé à ladite date ; et/ou

en combinaison avec une donnée représentative d'une date de production dudit objet et/ou une donnée représentative d'un instant de production dudit objet, une donnée représentative d'un lieu de production et/ou d'une destination dudit objet à ladite date ou audit instant.

8. Procédé selon l'une quelconque des revendications 1 à 7 dans lequel ladite clé de chiffrement secrète (K) est partagée avec un serveur central (6) apte à vérifier le code généré dudit objet.

9. Procédé selon l'une quelconque des revendications 1 à 8 comprenant en outre une étape d'obtention préalable par l'unité de génération de codes d'une dimension de la signature numérique à partir d'une dimension de l'identifiant de l'objet (ID3) et d'une dimension du code d'identification de l'objet.

10. Procédé selon la revendication 9 dans lequel l'étape de génération de la signature numérique (SIG) comprend une troncature d'une sortie de la fonction de hachage cryptographique en fonction d'un paramètre dérivé de la dimension de la signature numérique. 11. Procédé selon l'une quelconque des revendications 1 à 10 dans lequel l'étape de génération (E60) comprend :

une étape de concaténation (E61) de l'identifiant de l'objet avec la signature numérique résultant en un identifiant signé ;

une première étape de masquage (E62) de l'identifiant signé, résultant en un identifiant signé masqué ;

une étape de combinaison (E63) de l'identifiant signé masqué avec au moins un paramètre de production de l'objet, résultant en un identifiant signé masqué combiné ; et

une seconde étape de masquage (E64) de l'identifiant signé masqué combiné résultant en le code d'identification de l'objet.

12. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de génération selon l'une quelconque des revendications 1 à 11 lorsque ledit programme est exécuté par un processeur d'un module matériel de sécurité. 13. Support d'enregistrement lisible par un processeur d'un module matériel de sécurité sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé de génération selon l'une quelconque des revendications 1 à 11.

14. Procédé de marquage d'un objet comprenant :

une étape de génération d'un code d'identification identifiant de manière unique l'objet conformément à un procédé de génération selon l'une quelconque des revendications 1 à 11 ; et

une étape de marquage de l'objet avec ce code d'identification.

15. Module matériel de sécurité (4) comprenant :

un module de stockage (8) d'une clé de chiffrement secrète (K) ;

une unité de génération (9) de codes configurée pour :

o obtenir un identifiant d'un objet déterminé à partir d'au moins un paramètre de production de l'objet ;

o générer une signature numérique à partir de cet identifiant en utilisant une fonction de hachage cryptographique paramétrée par la clé de chiffrement secrète ; et

o générer, à partir de la signature numérique, un code d'identification de l'objet, ledit code d'identification identifiant de manière unique ledit objet et étant destiné à être apposé sur cet objet.

16. Système de contrôle (1) d'une ligne de production (2) fournissant au moins un objet, ce système comprenant :

un module matériel de sécurité (4) selon la revendication 15 associé à la ligne de production et apte à générer un code d'identification identifiant de manière unique l'objet et destiné à être apposé sur cet objet, ledit code d'identification étant généré en utilisant une clé secrète de chiffrement (K) attribuée à la ligne de production ; et

un serveur central (6) de vérification du code d'identification partageant ladite clé secrète de chiffrement avec le module matériel de sécurité.

Description:
Procédé de génération d'un code d'identification d'un objet, et module matériel de sécurité

Arrière-plan de l'invention

L'invention se rapporte au domaine de l'identification et du marquage d'objets, tels que par exemple des objets manufacturés, des supports destinés à être apposés sur de tels objets (ex. support auto-adhésif, étiquette, vignette fiscale, enveloppe/manchon de sécurité par exemple thermorétracté sur un récipient tel qu'une bouteille de vin ou spiritueux ou un flacon de parfum, etc.) ou encore des emballages de tels objets, en vue par exemple de leur suivi et/ou de leur authentification.

Par objets manufacturés, on entend ici tout type d'objets fabriqués, issus par exemple d'une ligne de production, et dont le marquage directement sur l'objet manufacturé ou sur un support ou un emballage destiné à être associé à cet objet manufacturé, permet avantageusement d'assurer le suivi et le contrôle pour éviter notamment leur contrefaçon.

A cet effet, il est connu d'apposer sur ces objets des codes les identifiant (désignés dans la suite par codes d'identification), tels que par exemple des numéros de série ou des codes de production. Pour empêcher la reproduction illicite de ces codes, chaque code d'identification peut être constitué d'un identifiant propre à l'objet auquel on associe une signature numérique, générée par exemple par un générateur de codes dédié à la ligne de production de l'objet, cette signature numérique pouvant être contrôlée par un centre de vérification. Le document EP 1 719 070 propose un procédé de marquage d'objets manufacturés ayant recours à de tels codes.

Pour générer la signature numérique associée à l'identifiant de l'objet, le générateur de codes s'appuie dans l'état actuel de la technique sur une matrice (i.e. un tableau) secrète, contenant un nombre important de données aléatoires ou pseudo-aléatoires précalculées, et fournie par un système centralisé gérant plusieurs lignes de production distinctes. Ces données précalculées sont utilisées par le générateur de codes comme clés secrètes de chiffrement pour générer les signatures numériques des objets manufacturés issus de la ligne de production. En pratique, une telle matrice peut contenir environ 1500000 caractères.

Cette matrice est préférentiel lement unique, attribuée à la ligne de production, et transmise par le système centralisé à celle-ci de façon sécurisée. Elle est stockée sous forme chiffrée par le générateur de codes. Le générateur de codes l'utilise en générant un indice dynamique qui lui permet d'extraire de la matrice une clé secrète de chiffrement, cette clé secrète étant ensuite utilisée par le générateur de codes pour créer la signature numérique destinée à être associée à l'identifiant de l'objet.

Ce mode de fonctionnement, bien que sécurisé, est particulièrement coûteux et complexe, que ce soit en termes de stockage de la matrice et de temps mis pour générer chaque signature.

En effet, comme mentionné précédemment, chaque matrice associée à une ligne de production contient un nombre important de données (typiquement 1500000 caractères). En outre, son utilisation par le générateur de codes est complexe et chronophage : elle requiert en effet l'importation de la matrice et son stockage au niveau du générateur de codes, puis son déchiffrement, et enfin l'extraction d'une clé de chiffrement de la matrice pour chaque indice généré par le générateur de codes. Cet ensemble d'opérations peut prendre aisément 10 secondes, ce qui peut s'avérer conséquent selon les applications envisagées.

Il existe donc un besoin d'un mécanisme efficace et sécurisé de génération d'un code d'identification d'un objet manufacturé ne présentant pas ces inconvénients.

Objet et résumé de l'invention

L'invention répond notamment à ce besoin en proposant un procédé de génération d'un code d'identification d'un objet, ce code d'identification identifiant de façon unique l'objet et étant destiné à être apposé sur cet objet, ce procédé étant destiné à être mis en œuvre dans une unité de génération de codes, ladite unité de génération de codes étant intégrée dans un module matériel de sécurité dans lequel est stockée une clé de chiffrement secrète, ce procédé comprenant :

une étape d'obtention par l'unité de génération de codes d'un identifiant de l'objet déterminé à partir d'au moins un paramètre de production de l'objet ;

une étape de génération par l'unité de génération de codes d'une signature numérique à partir dudit identifiant en utilisant une fonction de hachage cryptographique paramétrée par la clé de chiffrement secrète ; et

une étape de génération par l'unité de génération de codes du code d'identification de l'objet à partir de la signature numérique.

Corrélativement, l'invention vise aussi un module matériel de sécurité comprenant : un module de stockage d'une clé de chiffrement secrète ;

- une unité de génération de codes configurée pour :

o obtenir un identifiant d'un objet déterminé à partir d'au moins un paramètre de production de l'objet ;

o générer une signature numérique à partir de cet identifiant en utilisant une fonction de hachage cryptographique paramétrée par la clé de chiffrement secrète ; et

o générer, à partir de la signature numérique, un code d'identification de l'objet, ce code d'identification identifiant de manière unique l'objet et étant destiné à être apposé sur cet objet.

Aucune limitation n'est attachée au type d'objet considéré, il peut s'agir notamment d'un objet manufacturé ou d'un support destiné à être associé à un objet manufacturé tel que par exemple une étiquette, une vignette fiscale, un support auto-adhésif, une enveloppe de sécurité, etc.

De façon connue en soi, un module matériel de sécurité (ou « Hardware Security Module » en anglais) est un dispositif matériel électronique considéré comme inviolable, équipé d'un ou de plusieurs processeurs, et offrant des fonctions cryptographiques telles que notamment le stockage et la gestion de clés de chiffrement (ou clés cryptographiques), le chiffrement/déchiffrement de données, le hachage cryptographique de messages, etc. Ces fonctions cryptographiques et/ou le stockage des informations qu'elles génèrent peuvent être implémentés de façon matérielle pour renforcer la sécurité du module matériel de sécurité, ou en variante de façon logicielle. Un tel dispositif matériel se présente par exemple sous la forme d'une carte électronique de type PCI (Peripheral Component Interconnect), enfichable sur un ordinateur ou un serveur, ou encore sous la forme d'un boîtier externe. Il procure un très haut niveau de sécurité (par rapport notamment à un équivalent logiciel reproduisant les mêmes fonctions), et répond à des standards de sécurité internationaux.

Conformément à l'invention, un tel module est configuré et utilisé pour générer un code d'identification identifiant de manière unique un objet et destiné à être apposé sur cet objet. Ce code d'identification est formé à partir d'une signature numérique aléatoire, générée par le module matériel de sécurité à partir d'un identifiant de l'objet déterminé à partir d'un ou de plusieurs paramètres de production de cet objet (autrement dit propres à l'objet et à sa fabrication), la signature numérique étant générée en utilisant une fonction de hachage cryptographique paramétrée par une clé de chiffrement préalablement stockée dans le module matériel de sécurité. Cette clé de chiffrement est attribuée préférentiellement de manière unique à la ligne de production, par exemple à chaque lancement/activation de celle-ci.

La signature numérique générée par le module matériel conformément à l'invention s'apparente à un bruit aléatoire ou pseudo-aléatoire, en raison notamment des paramètres à partir desquels elle est générée et de l'utilisation de la fonction de hachage cryptographique. Cette fonction de hachage cryptographique est implémentée préférentiellement de façon matérielle (i.e. en « hardware ») dans le module matériel de sécurité. De même, la sortie de cette fonction qui permet de générer la signature numérique est également préférentiellement stockée en hardware dans le module de sécurité. De cette sorte, on accroît l'inviolabilité de la signature numérique générée.

Les paramètres de production de l'objet utilisés pour former l'identifiant de l'objet sont par exemple des données temporelles représentatives d'une date de production de l'objet et/ou d'un instant (heure) de production de l'objet manufacturé à cette date, et/ou en combinaison avec une telle donnée représentative d'une date de production de l'objet ou d'un instant de production de l'objet, une donnée représentative d'un lieu de production et/ou d'une destination de l'objet à cette date ou à cet instant. Les données temporelles associées à l'objet variant d'un objet à l'autre, elles confèrent une composante aléatoire à l'identifiant qui est associé à l'objet. Elles permettent ainsi de caractériser de manière univoque (i.e. unique) et non prévisible l'objet auquel ces données se rapportent. En variante , d'autres données permettant d'identifier l'objet et conférant préférentiellement un caractère aléatoire ou pseudo-aléatoire à l'identifiant dérivé à partir de ces données peuvent être utilisées.

L'invention pallie donc les inconvénients de l'état de la technique en confiant la génération du code d'identification de l'objet à un module matériel de sécurité, supposé inviolable. La solution proposée par l'invention bénéficie ainsi d'un très haut niveau de sécurité tout en étant de complexité réduite et offrant une grande flexibilité.

L'invention permet en outre de s'affranchir du stockage sous forme chiffrée d'une matrice secrète partagée avec le centre de vérification, et de son déchiffrement pour la génération d'une signature numérique : au contraire grâce à l'invention et à la sécurité inhérente au module matériel de sécurité, une seule clé de chiffrement peut être stockée pour générer la signature numérique (et partagée avec le centre de vérification), l'accès à cette clé étant ainsi grandement simplifié. Il en résulte un procédé de génération particulièrement efficace et rapide d'un code d'identification identifiant de manière unique l'objet considéré.

Dans un mode particulier de réalisation, l'étape de génération de la signature numérique comprend l'utilisation d'une fonction HMAC (keyed-Hashing Message Authentication Code) exécutée dans le module matériel de sécurité et utilisant une fonction de hachage MD5 (Message Digest 5) ou une fonction de hachage appartenant à la famille de fonctions de hachage SHA-2 (Secure Hash Algorithm - 2), telle que par exemple une fonction de hachage SHA-256 ou SHA-512.

Ces fonctions HMAC et SHA-2 sont connues pour leur robustesse aux attaques cryptographiques. L'utilisation de telles fonctions en combinaison avec le module matériel de sécurité permet en outre de faciliter l'implémentation de l'invention.

Il convient de noter que les fonctions de hachage SHA-256 et SHA-512 s'appuient sur des algorithmes similaires mais opèrent sur des tailles de mots différentes (32 bits pour SHA-256 et 64 bits pour SHA-512, les suffixes 256 et 512 désignant la taille du haché (ou « digest » ou encore « hash » en anglais) généré par ces fonctions).

Dans un mode particulier de réalisation, le procédé de génération comprend en outre une étape d'obtention préalable par l'unité de génération de codes d'une dimension de la signature numérique à générer à partir d'une dimension de l'identifiant de l'objet et d'une dimension du code d'identification de l'objet.

Ce mode de réalisation permet avantageusement de s'adapter à différents contextes d'application, les dimensions de l'identifiant de l'objet et du code d'identification pouvant varier d'un contexte à l'autre. Par exemple, dans le domaine pharmaceutique, une dimension de code d'identification appropriée est 14 caractères, tandis que l'identifiant de l'objet est représenté sur 11 caractères. Pour un code d'identification formé par concaténation de l'identifiant de l'objet et de la signature numérique, il résulte 3 caractères parmi les 14 alloués à la signature numérique. Il convient de noter que certains caractères du code d'identification de l'objet peuvent être alloués en partie à l'identifiant de l'objet et pour l'autre partie à la signature numérique.

Dans un autre mode de réalisation, la dimension de la signature numérique est fixe et prédéterminée.

Dans un mode de réalisation, l'étape de génération de la signature numérique comprend une troncature d'une sortie de la fonction de hachage cryptographique en fonction d'un paramètre dérivé de la dimension de la signature numérique.

Cette étape permet de s'assurer que la signature numérique générée est de la bonne dimension même si la fonction de hachage cryptographique fournit une sortie de dimension plus importante.

Dans un autre mode de réalisation de l'invention, l'étape de génération comprend : une étape de concaténation de l'identifiant de l'objet avec la signature numérique résultant en un identifiant signé ;

une première étape de masquage de l'identifiant signé, résultant en un identifiant signé masqué ;

une étape de combinaison de l'identifiant signé masqué avec au moins un paramètre de production de l'objet, résultant en un identifiant signé masqué combiné ; et

une seconde étape de masquage de l'identifiant signé masqué combiné résultant en le code d'identification de l'objet.

Cette étape de combinaison permet d'améliorer encore davantage le niveau de sécurité du code d'identification généré pour l'objet. Les diverses étapes de masquage permettent de brouiller les données sur lesquelles elles sont appliquées renforçant la robustesse du code généré et empêchant sa reproduction.

Dans un autre mode particulier de réalisation, la clé de chiffrement secrète est partagée avec un serveur central apte à vérifier le code d'identification généré pour l'objet.

L'invention peut ainsi s'inscrire dans un mécanisme plus général permettant d'assurer le suivi de l'objet et son authentification.

Ainsi, selon un autre aspect, l'invention vise aussi un système de contrôle d'une ligne de production fournissant au moins un objet, ce système comprenant :

- un module matériel de sécurité selon l'invention associé à la ligne de production et apte à générer un code d'identification identifiant de manière unique l'objet et destiné à être apposé sur cet objet, ce code d'identification étant généré en utilisant une clé secrète de chiffrement attribuée à la ligne de production ; et

un serveur central de vérification du code d'identification partageant ladite clé secrète de chiffrement avec le module matériel de sécurité.

Selon un autre aspect encore, l'invention vise aussi un procédé de marquage d'un objet tel un objet manufacturé, un support destiné à être apposé sur un tel objet ou encore un emballage destiné à être associé à un tel objet, comprenant : une étape de génération d'un code d'identification identifiant de manière unique l'objet conformément à un procédé de génération selon l'invention ; et

une étape de marquage de l'objet avec ce code d'identification.

Le système de contrôle et le procédé de marquage selon l'invention bénéficient des mêmes avantages cités précédemment que le procédé de génération et le module matériel de sécurité selon l'invention.

Dans un mode particulier de réalisation, tout ou partie des différentes étapes du procédé de génération sont déterminées par des instructions de programmes d'ordinateurs ou de microprocesseurs.

En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre dans un module matériel de sécurité, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de génération tel que décrit ci-dessus.

Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.

L'invention vise aussi un support d'informations lisible par un ordinateur ou un microprocesseur, et comportant des instructions d'un programme tel que mentionné ci-dessus.

Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.

D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.

Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.

On peut également envisager, dans d'autres modes de réalisation, que le procédé de génération, le procédé de marquage, le module matériel de sécurité, et le système de contrôle selon l'invention présentent en combinaison tout ou partie des caractéristiques précitées.

Brève description des dessins

D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : la figure 1 représente, de façon schématique, un système de contrôle d'une ligne de production conforme à l'invention, dans un mode particulier de réalisation ;

la figure 2 représente de façon schématique l'architecture matérielle sur laquelle s'appuie un module matériel de sécurité conforme à l'invention, dans un mode particulier de réalisation ; - la figure 3 illustre, sous forme d'ordinogramme, les principales étapes d'un procédé de génération selon l'invention telles qu'elles sont mises en œuvre par un module matériel de sécurité conforme à l'invention, dans un mode particulier de réalisation ;

la figure 4 illustre une façon de générer un code d'identification d'un objet manufacturé à partir d'un identifiant de cet objet et d'une signature numérique générée conformément au procédé de la figure 3 ;

la figure 5 illustre, sous forme d'ordinogramme, les principales étapes d'un procédé de marquage selon l'invention en utilisant le code d'identification généré par le procédé de la figure 3. Description détaillée de l'invention

La figure 1 représente dans son environnement et dans un mode particulier de réalisation, un système de contrôle 1 conforme à l'invention d'une ligne de production 2 implémentant diverses opérations de fabrication nécessaires à la réalisation d'objets manufacturés 3. Aucune limitation n'est attachée à la nature des objets 3 fabriqués par la ligne de production 2. II peut s'agir ainsi de tous types d'objets ou d'articles comme par exemple des appareils électroniques, des parfums, etc.

Conformément à l'invention, le système de contrôle 1 comprend :

un module matériel de sécurité 4 associé à la ligne de production 2 et apte à générer, pour chaque objet manufacturé 3 issu de la ligne de production 2, un code d'identification C3 identifiant de manière unique cet objet et destiné à être apposé sur celui-ci par l'intermédiaire d'un dispositif de marquage 5 ; et

un serveur central 6 de vérification, apte à vérifier les codes d'identification apposés sur des objets manufacturés susceptibles d'être fabriqués par diverses lignes de production dont notamment la ligne de production 2.

Par « apposé sur l'objet », on entend ici que le code d'identification C3 est apposé par le dispositif de marquage 5 à même l'objet 3 ou sur tout type d'accessoire ou d'attribut accompagnant cet objet, comme par exemple sur son emballage. Dans la suite de la description, on désigne par 3b l'objet marqué sur lequel le code C3 a été apposé.

En variante, le code d'identification C3 peut être apposé sur un support fourni par la ligne de production 2 et destiné à être associé à un objet manufacturé tel que par exemple une étiquette, une vignette fiscale, un support auto-adhésif, une enveloppe de sécurité, etc. On désigne de manière générale par « objet » dans cette description les différents éléments sur lesquels le code d'identification C3 peut être apposé. Dans l'exemple envisagé à la figure 1, le module matériel de sécurité 4 se présente sous la forme d'une carte électronique de type PCI enfichable dans un ordinateur ou un serveur 7 dédié à la ligne de production 2. Cette carte a l'architecture matérielle d'un ordinateur, tel que représenté à la figure 2.

Elle comprend notamment un processeur 4A, une mémoire morte 4B, une mémoire vive 4C, une mémoire non volatile 4D, et un module de communication 4E comprenant notamment ici un bus de connexion PCI permettant de relier le module matériel de sécurité 4 à l'ordinateur 7.

En variante d'autres moyens de connexion du module matériel de sécurité 4 à l'ordinateur 7 peuvent être envisagés.

La mémoire morte 4B du module de sécurité matériel 4 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 4A et sur lequel est enregistré un programme d'ordinateur conforme à l'invention comportant des instructions pour l'exécution des étapes d'un procédé de génération d'un code identifiant de manière unique un objet manufacturé 3 selon l'invention, dont les étapes sont décrites ultérieurement en référence à la figure 3.

Ce programme d'ordinateur définit de façon équivalente des modules fonctionnels du module de sécurité 4 et plus particulièrement, un module 8 de stockage d'une clé de chiffrement secrète K partagée avec le serveur central 6 et une unité de génération de codes 9, configurée pour accéder à cette clé et générer le code d'identification C3 de l'objet manufacturé 3, et apte à utiliser (i.e. à appeler ou encore à commander) des fonctions implémentées de façon matérielle (i.e. en « hardware ») dans le module matériel de sécurité comme par exemple des librairies et/ou des algorithmes cryptographiques. Les fonctions mises en uvre par ces modules sont décrites plus en détail en référence aux étapes du procédé de génération illustrées à la figure 3 décrite maintenant.

La figure 3 représente, sous forme d'ordinogramme, les principales étapes mises en œuvre par le module matériel de sécurité 4 pour générer le code d'identification C3 de l'objet manufacturé 3, dans un mode particulier de réalisation. Ces étapes sont celles d'un procédé de génération selon l'invention.

Dans le mode de réalisation décrit ici, on suppose qu'une clé secrète de chiffrement K est attribuée automatiquement et de façon unique à la ligne de production 2 au début de chaque production d'objets manufacturés (c'est-à-dire à chaque activation ou lancement de la ligne de production 2), par exemple par le serveur central 6 de vérification. La façon de générer une telle clé de chiffrement est connue en soi et n'est pas décrite plus en détail ici. Elle est par exemple de dimension 1024 bits dans l'exemple envisagé ici.

Cette clé secrète K est fournie de manière sécurisée au module matériel de sécurité 4 (étape E10). Le module matériel de sécurité 4 et le serveur central 6 sont ainsi les deux seules entités à partager la connaissance de cette clé secrète K.

En variante, la clé secrète K peut être attribuée à la ligne de production 2 par une entité de confiance tierce et fournie au serveur central 6 par cette entité. Le module matériel de sécurité 4 mémorise, par l'intermédiaire de son module de stockage 8, la clé secrète K obtenue par exemple dans sa mémoire non volatile 4D (étape E20).

Puis, pour chaque objet manufacturé 3 produit par la ligne de production 2, il génère à l'aide de cette clé secrète K, par l'intermédiaire de son unité 9 de génération de codes, un code d'identification C3. Le code C3 est ici constitué d'une série de N_C3 caractères alphanumériques (pouvant prendre par exemple comme valeurs les 26 lettres de l'alphabet à l'exception des lettres I et 0, et les 10 chiffres 0-9, soit 34 possibilités pour chaque caractère), N_C3 désignant la dimension (ou longueur) du code C3, qui est généralement prédéterminée et fixe pour une application donnée. Il convient toutefois de noter que cette dimension du code C3 peut varier d'une application à l'autre. Par exemple, pour le domaine pharmaceutique, une dimension de 14 caractères peut être envisagée. En variante, pour d'autres domaines, on préférera des dimensions plus faibles (ex. 12 caractères) ou au contraire on pourra tolérer des dimensions plus grandes.

Le code d'identification C3 est généré par l'unité 9 de génération de codes à partir d'un identifiant ID3 de l'objet manufacturé 3. L'identifiant ID3 est formé par l'unité 9 à partir d'un ou plusieurs paramètres de production de cet objet obtenu(s) de la ligne de production 2 (étape E30).

Dans le mode de réalisation décrit ici, ces paramètres de production comprennent des données temporelles représentatives de la date (i.e. jour) de production de l'objet manufacturé 3, et de l'instant (sous le format heure/minute/seconde ici) de production de cet objet manufacturé à cette date. Ces données temporelles sont propres à chaque objet manufacturé 3 et forment un nombre qui varie en fonction de celui-ci (dans le sens où il dépend de la production à proprement parler de l'objet 3). Ce nombre est donc propre à l'objet 3 et non prédictible en dehors de la ligne de production 2 : il identifie donc l'objet 3 de façon aléatoire (ou pseudo-aléatoire) et unique. L'unité 9 obtient donc en concaténant ces différentes données temporelles un identifiant ID3 de l'objet 3 de dimension N_ID3 (étape E40). Dans l'exemple du domaine pharmaceutique précédemment envisagé dans lequel le code d'identification C3 comprend N_C3=14 caractères, la dimension de l'identifiant ID3 peut être fixée notamment à 11 caractères.

En variante, d'autres paramètres de production peuvent être considérés par l'unité 9 pour former l'identifiant ID3, en combinaison avec ou en remplacement de certains des paramètres précités, comme par exemple une donnée identifiant le lieu de production de l'objet 3 (ex. donnée identifiant le centre de production dans lequel se trouve la ligne de production 2), une donnée identifiant la ligne de production 2 au sein de ce centre, une donnée représentative d'une destination de l'objet 3 (ex. marché) à sa date de production ou à son instant de production, etc., ainsi que d'autres paramètres variant préférentiellement d'un objet manufacturé à l'autre de sorte à identifier l'objet manufacturé de manière unique.

Puis l'unité 9 génère une signature numérique SIG à partir de l'identifiant ID3 en utilisant une fonction de hachage cryptographique itérative paramétrée par la clé secrète K (étape E50). La dimension N_SIG de la signature numérique est déterminée ici par l'unité 9 à partir de la dimension N_ID3 de l'identifiant de l'objet 3 et de la dimension N_C3 du code d'identification C3 de l'objet. Elle correspond au nombre de caractères restant dans le code d'identification C3 après avoir déduit les caractères dédiés à l'identifiant ID3. Dans l'exemple envisagé précédemment, la dimension de la signature numérique N_SIG est ici de 14-11=3 caractères.

Il convient de noter que selon le domaine d'application envisagé, un caractère du code d'identification C3 peut être alloué en partie à la signature numérique et en partie à l'identifiant ID3 de l'objet, autrement dit, il peut porter des informations relatives à la fois à l'identifiant ID3 et à la signature numérique SIG.

Par ailleurs, selon les besoins du domaine, on peut envisager de diminuer la dimension de l'identifiant ID3 lorsque notamment les volumes d'objets produits ne sont pas importants. A dimension du code d'identification égale, cela permet d'augmenter la dimension allouée à la signature et de renforcer ainsi la sécurité du code d'identification généré. Dans le mode de réalisation décrit ici, l'unité 9 utilise pour générer la signature numérique SIG une fonction de type HMAC (keyed-Hashing Message Authentication Code) appliquée sur l'identifiant ID3, et utilisant une fonction de hachage SHA-256 ou SHA-512 paramétrée par la clé secrète K. Cette fonction HMAC s'appuie avantageusement ici sur des librairies implémentées de façon matérielle dans le module matériel de sécurité 4, et son résultat est stocké de façon matérielle dans le module matériel de sécurité 4.

De façon connue, une fonction de hachage SHA-256 (respectivement SHA-512) découpe le message qui lui est fourni en entrée en blocs de taille (ou dimension ou longueur) fixe et applique de façon itérative sur ces blocs une fonction de compression de sorte à délivrer des blocs de sortie de taille 256 bits (respectivement 512 bits). La fonction HMAC est construite à partir de cette fonction de hachage et est appliquée sur un message résultant d'une concaténation s'appuyant sur la clé secrète K (éventuellement complétée par des zéros pour atteindre la dimension des blocs traitée par la fonction de hachage SHA-256, respectivement SHA-512), l'identifiant ID3 (préalablement converti sous forme d'une séquence binaire) et de paramètres résultant de la répétition d'octets prédéterminés comme par exemple les octets 0x36 et 0x5c. La dimension des blocs en sortie de la fonction est identique à celle des blocs en sortie de la fonction de hachage. La sortie de la fonction HMAC est stockée en hardware dans le module matériel de sécurité par l'unité 9 de génération de codes.

La construction de la fonction HMAC à partir de la fonction de hachage SHA-256 ou

SHA-512 (ou encore de toute autre fonction de hachage) et de la clé secrète K est connue de l'homme du métier et n'est pas décrite plus en détail ici. Elle est mentionnée notamment dans le document RFC2104 édité par l'IETF et intitulé « HMAC : Keyed-Hashing for Message Authentication », 1997.

II convient de noter que la qualité cryptographique et la robustesse de la fonction

HMAC dépend de la longueur et de la qualité (aléatoire ou non) de la clé secrète K utilisée. L'une des attaques les plus courantes utilisées contre la fonction HMAC consistant en une attaque par force brute, plus la longueur de la clé secrète K attribuée par le serveur central 6 à la ligne de production 2 est grande, plus la signature numérique est robuste.

En variante, d'autres algorithmes et/ou d'autres fonctions de hachage (ex. MD5) peuvent être envisagées pour générer la signature numérique.

Dans le mode de réalisation décrit ici, pour obtenir une signature numérique de dimension N_SIG appropriée, l'unité 9 de génération de codes tronque la sortie binaire de la fonction HMAC en fonction d'un paramètre dérivé de la dimension de la signature numérique N_SIG. Ce paramètre est appelé ici la taille du bruit. Il correspond au nombre de combinaisons possibles de caractères pouvant constituer la signature numérique SIC Dans l'exemple envisagé précédemment d'une signature numérique de dimension 3 caractères, la taille du bruit est égale à 34 3 =39304. Cette troncature peut être réalisée par exemple en appliquant sur la séquence binaire en sortie de la fonction HMAC l'opération connue « modulo » paramétrée par la taille du bruit déterminée par l'unité de génération de code 9 à partir de la dimension de la signature N_SIG (modulo 39304 dans l'exemple envisagé).

La séquence binaire tronquée ainsi obtenue par l'unité de génération de code 9 est ensuite convertie en une chaîne de caractères alphanumériques (prenant les mêmes valeurs de caractères que celles permises pour l'identifiant ID3) pour former la signature numérique SIG.

L'unité 9 de génération de codes combine alors l'identifiant ID3 et la signature numérique SIG pour former un code d'identification C3 pour l'objet manufacturé 3 (étape E60).

Dans le mode de réalisation décrit ici, cette combinaison est réalisée en plusieurs temps, comme illustré à la figure 4 :

concaténation de l'identifiant ID3 et de la signature numérique SIG résultant en un identifiant signé ID3-SIG (étape E61) ;

masquage de l'identifiant signé ID3-SIG, à l'aide d'une fonction de masquage ou de brouillage connue en soi (par exemple en ajoutant à chaque caractère de l'identifiant signé une séquence de caractères générée aléatoirement), résultant en un identifiant signé masqué MAS (ID3-SIG) (étape E62) ;

combinaison (via une concaténation ici) de l'identifiant signé masqué avec un ou plusieurs paramètres de production de l'objet fournis par la ligne de production 2, tels que par exemple une donnée identifiant la ligne de production 2 et/ou le centre de production dans lequel se trouve la ligne de production 2, etc. L'unité de génération 9 obtient alors un identifiant combiné noté IDSIG3 (étape E63) ; et

masquage de l'identifiant combiné IDSIG3 à l'aide d'une fonction de masquage/brouillage, préférentiellement différente de la fonction de masquage/brouillage utilisée à l'étape E62 (étape E64), résultant en le code d'identification C3 de l'objet 3.

Par construction et par définition de l'identifiant ID3 et de la signature numérique SIG, le code d'identification C3 résultant de l'étape E60 identifie de façon unique l'objet 3. Bien entendu d'autres enchaînements d'étapes peuvent être envisagés pour construire un code d'identification C3 identifiant de façon unique l'objet 3, impliquant notamment d'autres paramètres de production de l'objet 3 et d'autres types de combinaison.

En référence à la figure 5, le code d'identification C3 ainsi généré par l'unité 9 de génération de codes du module matériel de sécurité 4 (étape F10) est ensuite fourni au dispositif de marquage 5.

Celui-ci procède alors au marquage de l'objet 3 au cours duquel il appose le code d'identification C3 sur l'objet 3 ou sur son emballage (étape F20). Une telle étape de marquage peut être réalisée par impression ou par gravure, etc. Elle résulte en l'objet manufacturé marqué 3b.

Les étapes F10 et F20 forment les principales étapes d'un procédé de marquage selon l'invention.

Le code d'identification C3 ainsi apposé sur l'objet 3 peut être aisément contrôlé par le serveur central 6 de vérification moyennant la fourniture à ce serveur central 6 de la clé secrète K et des paramètres de production ayant permis la génération de l'identifiant ID3. Seuls le serveur central 6 et le module matériel de sécurité 4 connaissent la clé secrète K de sorte que le procédé de génération d'un code d'identification proposé par l'invention est sécurisé et particulièrement efficace. Il ne requiert en outre que le partage de la clé secrète K entre le module matériel de sécurité 4 et le serveur central 6, et s'affranchit de traitements complexes comme la manipulation et le stockage d'une matrice secrète de dimensions importantes tels qu'envisagés dans l'état de la technique.