WO2017025679A1 - Method of generating an identification code for an object, and security hardware module - Google Patents

Method of generating an identification code for an object, and security hardware module Download PDF

Info

Publication number
WO2017025679A1
WO2017025679A1 PCT/FR2016/051988 FR2016051988W WO2017025679A1 WO 2017025679 A1 WO2017025679 A1 WO 2017025679A1 FR 2016051988 W FR2016051988 W FR 2016051988W WO 2017025679 A1 WO2017025679 A1 WO 2017025679A1
Authority
WO
WIPO (PCT)
Prior art keywords
identification code
identifier
digital signature
code
production
Prior art date
Application number
PCT/FR2016/051988
Other languages
French (fr)
Inventor
David GRAS
Mbaye SANKHE
Fabien Panei
Original Assignee
Arjo Solutions
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arjo Solutions filed Critical Arjo Solutions
Publication of WO2017025679A1 publication Critical patent/WO2017025679A1/en

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Definitions

  • the invention relates to the field of the identification and marking of objects, such as for example manufactured objects, supports intended to be affixed to such objects (eg self-adhesive support, label, tax sticker, envelope safety sleeve for example heat-shrunk on a container such as a bottle of wine or spirits or a bottle of perfume, etc.) or even packaging of such objects, for example for their monitoring and / or their authentication.
  • objects such as for example manufactured objects, supports intended to be affixed to such objects (eg self-adhesive support, label, tax sticker, envelope safety sleeve for example heat-shrunk on a container such as a bottle of wine or spirits or a bottle of perfume, etc.) or even packaging of such objects, for example for their monitoring and / or their authentication.
  • Manufactured objects are understood to mean any type of manufactured objects, for example from a production line, and whose marking directly on the manufactured object or on a support or a packaging intended to be associated with this manufactured object, allows advantageously to ensure the monitoring and control to avoid in particular their counterfeiting.
  • each identification code may consist of an identifier specific to the object which is associated with a digital signature, generated for example by a code generator dedicated to the production line of the object, this digital signature can be controlled by a verification center.
  • EP 1 719 070 proposes a method of marking manufactured objects using such codes.
  • the code generator To generate the digital signature associated with the identifier of the object, the code generator relies in the current state of the art on a secret matrix (ie a table) containing a large number of random or pseudo-data items. precomputed random samples, and provided by a centralized system managing several separate production lines. These precalculated data are used by the code generator as secret encryption keys to generate the digital signatures of the manufactured objects from the production line.
  • a secret matrix ie a table
  • precomputed random samples and provided by a centralized system managing several separate production lines.
  • These precalculated data are used by the code generator as secret encryption keys to generate the digital signatures of the manufactured objects from the production line.
  • such a matrix can contain about 1500000 characters.
  • This matrix is preferentially unique, attributed to the production line, and transmitted by the centralized system to it in a secure manner. It is stored in encrypted form by the code generator.
  • the code generator uses it by generating a dynamic index that allows it to extract a secret encryption key from the matrix, which secret key is then used by the code generator to create the digital signature to be associated with the encryption key. identifier of the object.
  • This mode of operation although secure, is particularly expensive and complex, both in terms of storage of the matrix and time taken to generate each signature.
  • each matrix associated with a production line contains a large number of data (typically 1500000 characters).
  • its use by the code generator is complex and time-consuming: it requires the import of the matrix and its storage at the code generator, then its decryption, and finally the extraction of an encryption key of the matrix for each index generated by the code generator. This set of operations can easily take 10 seconds, which may be consistent depending on the applications envisaged.
  • the invention responds in particular to this need by proposing a method of generating an identification code of an object, this identification code uniquely identifying the object and being intended to be affixed to this object, this method being intended to be implemented in a code generation unit, said code generation unit being integrated into a security hardware module in which a secret encryption key is stored, which method comprises:
  • the invention also provides a security hardware module comprising: a storage module of a secret encryption key;
  • a code generation unit configured for:
  • object considered may be in particular a manufactured object or a support intended to be associated with a manufactured object such as for example a label, a tax sticker, a support self-adhesive, a security envelope, etc.
  • a hardware security module (or "Hardware Security Module” in English) is an electronic hardware device considered inviolable, equipped of one or more processors, and offering cryptographic functions such as in particular the storage and management of encryption keys (or cryptographic keys), the encryption / decryption of data, the cryptographic hashing of messages, etc. These cryptographic functions and / or the storage of the information they generate can be implemented in hardware to enhance the security of the security hardware module, or alternatively in software.
  • Such a hardware device is for example in the form of a PCI card (Peripheral Component Interconnect), pluggable on a computer or server, or in the form of an external box. It provides a very high level of security (as compared to a software equivalent reproducing the same functions), and meets international security standards.
  • PCI card Peripheral Component Interconnect
  • such a module is configured and used to generate an identification code uniquely identifying an object and intended to be affixed to this object.
  • This identification code is formed from a random digital signature, generated by the security hardware module from an identifier of the object determined from one or more production parameters of this object (otherwise said specific to the object and its manufacture), the digital signature being generated using a cryptographic hash function parameterized by an encryption key previously stored in the security hardware module.
  • This encryption key is preferably allocated uniquely to the production line, for example at each launch / activation thereof.
  • the digital signature generated by the hardware module according to the invention is similar to a random or pseudo-random noise, particularly because of the parameters from which it is generated and the use of the cryptographic hash function.
  • This cryptographic hash function is preferably implemented in hardware (i.e. "hardware") in the security hardware module.
  • the output of this function which makes it possible to generate the digital signature is also preferentially stored in hardware in the security module. In this way, the inviolability of the generated digital signature is increased.
  • the production parameters of the object used to form the identifier of the object are for example time data representative of a production date of the object and / or a time (hour) of production of the object. manufactured object at that date, and / or in combination with such a datum representative of a date of production of the object or of a moment of production of the object, a datum representative of a place of production and / or a destination of the object on that date or at that moment.
  • the temporal data associated with the object vary from one object to another, they give a random component to the identifier that is associated with the object. They thus make it possible to characterize in a univocal (ie unique) and unpredictable way the object to which these data relate.
  • other data making it possible to identify the object and preferably conferring a random or pseudo-random character on the identifier derived from these data may be used.
  • the invention thus overcomes the disadvantages of the state of the art by entrusting the generation of the identification code of the object to a hardware security module, supposed inviolable.
  • the solution proposed by the invention thus benefits from a very high level of security while being of reduced complexity and offering great flexibility.
  • the invention also makes it possible to dispense with the storage in encrypted form of a secret matrix shared with the verification center, and its decryption for the generation of a digital signature: on the contrary, thanks to the invention and the security inherent in the hardware security module, a single encryption key can be stored to generate the digital signature (and shared with the verification center), thus access to this key is greatly simplified. This results in a particularly efficient and fast method of generating an identification code that uniquely identifies the object under consideration.
  • the step of generating the digital signature comprises the use of a keyed-hashing message authentication code (HMAC) function executed in the security hardware module and using an MD5 hash function (Message Digest). 5) or a hash function belonging to the family of SHA-2 hash functions (Secure Hash Algorithm - 2), such as for example a hash function SHA-256 or SHA-512.
  • HMAC keyed-hashing message authentication code
  • HMAC and SHA-2 are known for their robustness to cryptographic attacks.
  • the use of such functions in combination with the hardware security module further facilitates the implementation of the invention.
  • SHA-256 and SHA-512 hashing functions rely on similar algorithms but operate on different word sizes (32-bit for SHA-256 and 64-bit for SHA-512, 256-suffix and 512 designating the size of the hash (or "digest” or "hash” in English) generated by these functions).
  • the generation method further comprises a step of obtaining beforehand by the code generation unit of a dimension of the digital signature to be generated from a dimension of the identifier of the object and a dimension of the identification code of the object.
  • the dimensions of the identifier of the object and the identification code may vary from one context to another.
  • an appropriate identification code dimension is 14 characters, while the object identifier is represented on 11 characters.
  • 3 characters out of the 14 allocated to the digital signature result. It should be noted that some characters of the object identification code may be allocated in part to the identifier of the object and for the other party to the digital signature.
  • the dimension of the digital signature is fixed and predetermined.
  • the step of generating the digital signature comprises truncating an output of the cryptographic hash function based on a parameter derived from the dimension of the digital signature.
  • This step ensures that the digital signature generated is of the correct size even if the cryptographic hash function provides a larger size output.
  • the generation step comprises: a step of concatenating the identifier of the object with the digital signature resulting in a signed identifier;
  • This combination step makes it possible to further improve the security level of the identification code generated for the object.
  • the various masking steps make it possible to scramble the data on which they are applied, reinforcing the robustness of the generated code and preventing its reproduction.
  • the secret encryption key is shared with a central server capable of verifying the identification code generated for the object.
  • the invention can thus be part of a more general mechanism for tracking the object and its authentication.
  • the invention also aims at a control system of a production line providing at least one object, this system comprising:
  • a security hardware module associated with the production line and capable of generating an identification code which uniquely identifies the object and intended to be affixed to this object, this identification code being generated using a secret encryption key assigned to the production line;
  • the invention also relates to a method of marking an object such as a manufactured object, a support intended to be affixed to such an object or a packaging intended to be associated with such an object, comprising: a step of generating an identification code uniquely identifying the object according to a generation method according to the invention; and
  • control system and the marking method according to the invention have the same advantages mentioned above as the generation method and the security hardware module according to the invention.
  • all or part of the different steps of the generation method are determined by instructions of computer programs or microprocessors.
  • the invention also relates to a computer program on an information medium, this program being capable of being implemented in a hardware security module, this program comprising instructions adapted to the implementation of the steps a generation method as described above.
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape.
  • the invention also relates to a computer-readable or microprocessor-readable information medium, comprising instructions of a program as mentioned above.
  • the information carrier may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a disk. hard.
  • the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention can be downloaded in particular on an Internet type network.
  • the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
  • the generation method, the marking method, the security hardware module, and the control system according to the invention present in combination all or part of the aforementioned characteristics.
  • Figure 1 shows schematically a control system of a production line according to the invention, in a particular embodiment
  • FIG. 2 schematically represents the hardware architecture on which a security hardware module according to the invention is based, in a particular embodiment
  • FIG. 3 illustrates, in the form of a flow chart, the main steps of a generation method according to the invention as they are implemented by a security hardware module according to the invention, in a particular mode of production ;
  • FIG. 4 illustrates a way of generating an identification code of a manufactured object from an identifier of this object and a digital signature generated in accordance with the method of FIG. 3;
  • FIG. 5 illustrates, in the form of a flow chart, the main steps of a marking method according to the invention using the identification code generated by the method of FIG. 3. Detailed description of the invention
  • FIG. 1 represents, in its environment and in a particular embodiment, a control system 1 according to the invention of a production line 2 implementing various manufacturing operations necessary for the production of manufactured objects. It is attached to the nature of the objects 3 produced by the production line 2. It can thus be all types of objects or articles such as electronic devices, perfumes, etc.
  • control system 1 comprises:
  • a security hardware module 4 associated with the production line 2 and able to generate, for each manufactured object 3 coming from the production line 2, an identification code C3 that uniquely identifies this object and intended to be affixed to the one by means of a marking device 5;
  • a central verification server 6 able to check the identification codes affixed to manufactured objects that can be manufactured by various production lines including the production line 2.
  • affixed to the object is meant here that the identification code C3 is affixed by the marking device 5 to the object 3 or on any type of accessory or attribute accompanying this object, as for example. example on its packaging.
  • 3b denotes the marked object on which the C3 code has been affixed.
  • the identification code C3 may be affixed to a support provided by the production line 2 and intended to be associated with a manufactured object such as for example a label, a tax sticker, a self-adhesive support, an envelope security, etc.
  • object in this description generally refers to the various elements on which the identification code C3 can be affixed.
  • security hardware module 4 is in the form of a plug-in PCI type electronic card in a computer or server 7 dedicated to the production line 2. This card has the hardware architecture of a computer, as shown in FIG. Figure 2.
  • It comprises in particular a processor 4A, a read-only memory 4B, a random access memory 4C, a non-volatile memory 4D, and a communication module 4E including here in particular a PCI connection bus making it possible to connect the security hardware module 4 to the computer 7.
  • the read-only memory 4B of the hardware security module 4 constitutes a recording medium in accordance with the invention, readable by the processor 4A and on which is recorded a computer program according to the invention comprising instructions for the execution of the steps of a method of generating a code uniquely identifying a manufactured object 3 according to the invention, the steps of which are described later with reference to FIG.
  • This computer program equivalently defines functional modules of the security module 4 and more particularly, a storage module 8 for a secret encryption key K shared with the central server 6 and a code generation unit 9, configured to access this key and generate the identification code C3 of the manufactured object 3, and able to use (ie to call or still to order) functions implemented in a hardware way (ie in "hardware") in the hardware module such as libraries and / or cryptographic algorithms.
  • a hardware way ie in "hardware"
  • FIG. 3 represents, in the form of a flow chart, the main steps implemented by the security hardware module 4 to generate the identification code C3 of the manufactured object 3, in a particular embodiment. These steps are those of a generation method according to the invention.
  • a secret encryption key K is automatically and uniquely assigned to the production line 2 at the beginning of each production of manufactured objects (i.e. activation or launch of the production line 2), for example by the central server 6 verification.
  • the way to generate such an encryption key is known per se and is not described in more detail here. It is for example 1024 bits in the example envisaged here.
  • This secret key K is provided in a secure manner to the security hardware module 4 (step E10).
  • the security hardware module 4 and the central server 6 are thus the only two entities to share the knowledge of this secret key K.
  • the secret key K may be allocated to the production line 2 by a third-party trusted entity and supplied to the central server 6 by this entity.
  • the security hardware module 4 stores, via its storage module 8, the secret key K obtained for example in its non-volatile memory 4D (step E20).
  • the code C3 here consists of a series of N_C3 alphanumeric characters (which can take for example as values the 26 letters of the alphabet except the letters I and 0, and the 10 digits 0-9, or 34 possibilities for each character), N_C3 denoting the dimension (or length) of the code C3, which is generally predetermined and fixed for a given application. It should be noted, however, that this dimension of the C3 code may vary from application to application. For example, for the pharmaceutical field, a dimension of 14 characters can be envisaged. As a variant, for other domains, smaller dimensions (eg 12 characters) will be preferred, or larger dimensions may be tolerated.
  • the identification code C3 is generated by the code generation unit 9 from an identifier ID3 of the manufactured object 3.
  • the identifier ID3 is formed by the unit 9 from one or more parameters. production of this object obtained from the production line 2 (step E30).
  • these production parameters comprise time data representative of the date (ie day) of production of the manufactured object 3, and of the instant (in the hour / minute / second format here) of production of this manufactured object on that date.
  • These temporal data are specific to each manufactured object 3 and form a number that varies according to it (in the sense that it depends on the actual production of the object 3). This number is therefore specific to the object 3 and can not be predicted outside the production line 2: it therefore identifies the object 3 in a random (or pseudo-random) and unique manner.
  • the unit 9 thus obtains, by concatenating these different temporal data, an identifier ID3 of the object 3 of dimension N_ID3 (step E40).
  • the dimension of the identifier ID3 can be set in particular to 11 characters.
  • other production parameters may be considered by the unit 9 to form the identifier ID3, in combination with or in replacement of some of the aforementioned parameters, such as, for example, a datum identifying the production location of the object 3 (eg datum identifying the production center in which the production line 2 is located), a datum identifying the production line 2 within this center, a datum representative of a destination of the object 3 (ex. market) at its date of production or at its time of production, etc., as well as other parameters varying preferentially from one manufactured object to another so as to identify the manufactured object in a unique manner.
  • a datum identifying the production location of the object 3 eg datum identifying the production center in which the production line 2 is located
  • a datum identifying the production line 2 within this center e. identifying the production line 2 within this center
  • a datum representative of a destination of the object 3 e. market
  • other parameters varying preferentially from one manufactured object to another so as to identify the manufactured object in a unique manner.
  • the unit 9 generates a digital signature GIS from the identifier ID3 using an iterative cryptographic hash function parameterized by the secret key K (step E50).
  • the N_SIG dimension of the digital signature is determined here by the unit 9 starting from the dimension N_ID3 of the identifier of the object 3 and the dimension N_C3 of the identification code C3 of the object. It corresponds to the number of characters remaining in the identification code C3 after deducting the characters dedicated to the identifier ID3.
  • a character of the identification code C3 may be allocated in part to the digital signature and partly to the ID3 of the object, that is, it may carry information relating to both the ID3 identifier and the GIS digital signature.
  • the unit 9 uses, for generating the digital signature GIS, a function of HMAC (keyed-Hashing Message Authentication Code) type applied on the identifier ID3, and using a SHA-256 or SHA hash function. -512 parameterized by the secret key K.
  • HMAC keyed-Hashing Message Authentication Code
  • This HMAC function advantageously relies here on libraries implemented in a hardware way in the security hardware module 4, and its result is stored in a hardware way in the security hardware module 4.
  • a hash function SHA-256 splits the input message into blocks of fixed size (or size or length) and iteratively applies to these blocks a compression function of so as to deliver output blocks of size 256 bits (respectively 512 bits).
  • the HMAC function is built from this hash function and is applied to a message resulting from a concatenation based on the secret key K (possibly complemented by zeros to reach the block size processed by the SHA hash function -256, respectively SHA-512), the identifier ID3 (previously converted in the form of a binary sequence) and parameters resulting from the repetition of predetermined bytes, for example the bytes 0x36 and 0x5c.
  • the size of the blocks at the output of the function is identical to that of the blocks at the output of the hash function.
  • the output of the HMAC function is stored in hardware in the hardware security module by the code generation unit 9.
  • SHA-512 (or any other hash function) and the secret key K is known to those skilled in the art and is not described in more detail here. It is mentioned in particular in the RFC2104 published by the IETF and entitled “HMAC: Keyed-Hashing for Message Authentication", 1997.
  • HMAC depends on the length and the quality (random or not) of the secret key K used.
  • One of the most common attacks used against the HMAC function is an attack by brute force, plus the length of the secret key K assigned by the central server 6 to the production line 2 is large, the more the digital signature is robust.
  • the code generation unit 9 truncates the binary output of the HMAC function as a function of a parameter derived from the dimension of the digital signature N_SIG.
  • This truncation can be carried out for example by applying to the binary sequence at the output of the HMAC function the known operation "modulo" parameterized by the size of the noise determined by the code generation unit 9 from the dimension of the signature. N_SIG (modulo 39304 in the example envisaged).
  • the truncated bit sequence thus obtained by the code generating unit 9 is then converted into an alphanumeric character string (taking the same character values as allowed for the ID3 identifier) to form the digital signature SIG.
  • the code generation unit 9 then combines the identifier ID3 and the digital signature SIG to form an identification code C3 for the manufactured object 3 (step E60).
  • step E61 concatenating the identifier ID3 and the digital signature GIS resulting in a signed identifier ID3-SIG (step E61);
  • ID3-SIG signed identifier
  • a masking or scrambling function known per se for example by adding to each character of the signed identifier a randomly generated sequence of characters, resulting in a masked signed identifier MAS (ID3-SIG) (step E62);
  • the generation unit 9 then obtains a combined identifier denoted IDSIG3 (step E63); and
  • step E64 masking of the combined identifier IDSIG3 using a masking / scrambling function, preferably different from the masking / scrambling function used in step E62 (step E64), resulting in the identification code C3 of the object 3.
  • the identification code C3 resulting from the step E60 uniquely identifies the object 3.
  • the identification code C3 resulting from the step E60 uniquely identifies the object 3.
  • other sequences of steps can be envisaged to construct an identification code C3 that uniquely identifies the object 3, notably involving other production parameters of the object 3 and other types of combination.
  • the identification code C3 thus generated by the code generation unit 9 of the security hardware module 4 (step F10) is then supplied to the marking device 5.
  • step F20 proceeds to mark the object 3 in which he affixes the identification code C3 on the object 3 or on its packaging.
  • a marking step can be performed by printing or etching, etc. It results in the manufactured object marked 3b.
  • the steps F10 and F20 form the main steps of a marking process according to the invention.
  • the identification code C3 thus affixed to the object 3 can be easily controlled by the central verification server 6 by supplying the central server 6 with the secret key K and the production parameters that enabled the generation of the identifier. ID3. Only the central server 6 and the security hardware module 4 know the secret key K so that the method for generating an identification code proposed by the invention is secure and particularly effective. It further requires only the secret key K to be shared between the security hardware module 4 and the central server 6, and avoids complex processing such as the manipulation and storage of a secret matrix of significant dimensions such as considered in the state of the art.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)

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).

Description

Procédé de génération d'un code d'identification d'un objet, et module matériel de sécurité  Method for generating an identification code of an object, and hardware security module
Arrière-plan de l'invention Background of the 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.  The invention relates to the field of the identification and marking of objects, such as for example manufactured objects, supports intended to be affixed to such objects (eg self-adhesive support, label, tax sticker, envelope safety sleeve for example heat-shrunk on a container such as a bottle of wine or spirits or a bottle of perfume, etc.) or even packaging of such objects, for example for their monitoring and / or their authentication.
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.  Manufactured objects are understood to mean any type of manufactured objects, for example from a production line, and whose marking directly on the manufactured object or on a support or a packaging intended to be associated with this manufactured object, allows advantageously to ensure the monitoring and control to avoid in particular their counterfeiting.
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.  For this purpose, it is known to affix on these objects codes identifying them (hereinafter referred to as identification codes), such as, for example, serial numbers or production codes. To prevent the illegal reproduction of these codes, each identification code may consist of an identifier specific to the object which is associated with a digital signature, generated for example by a code generator dedicated to the production line of the object, this digital signature can be controlled by a verification center. EP 1 719 070 proposes a method of marking manufactured objects using such 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.  To generate the digital signature associated with the identifier of the object, the code generator relies in the current state of the art on a secret matrix (ie a table) containing a large number of random or pseudo-data items. precomputed random samples, and provided by a centralized system managing several separate production lines. These precalculated data are used by the code generator as secret encryption keys to generate the digital signatures of the manufactured objects from the production line. In practice, such a matrix can contain about 1500000 characters.
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.  This matrix is preferentially unique, attributed to the production line, and transmitted by the centralized system to it in a secure manner. It is stored in encrypted form by the code generator. The code generator uses it by generating a dynamic index that allows it to extract a secret encryption key from the matrix, which secret key is then used by the code generator to create the digital signature to be associated with the encryption key. identifier of the object.
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.  This mode of operation, although secure, is particularly expensive and complex, both in terms of storage of the matrix and time taken to generate each 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. Indeed, as mentioned above, each matrix associated with a production line contains a large number of data (typically 1500000 characters). In addition, its use by the code generator is complex and time-consuming: it requires the import of the matrix and its storage at the code generator, then its decryption, and finally the extraction of an encryption key of the matrix for each index generated by the code generator. This set of operations can easily take 10 seconds, which may be consistent depending on the applications envisaged.
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.  There is therefore a need for an efficient and secure mechanism for generating an identification code of a manufactured object that does not have these disadvantages.
Objet et résumé de l'invention Object and summary of the 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 :  The invention responds in particular to this need by proposing a method of generating an identification code of an object, this identification code uniquely identifying the object and being intended to be affixed to this object, this method being intended to be implemented in a code generation unit, said code generation unit being integrated into a security hardware module in which a secret encryption key is stored, which method comprises:
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 ;  a step of obtaining by the code generation unit an identifier of the object determined from at least one production parameter of the object;
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  a step of generating by the code generation unit a digital signature from said identifier using a cryptographic hash function parameterized by the secret encryption key; and
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.  a generation step by the code generation unit of the identification code of the object from the digital signature.
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 ;  Correlatively, the invention also provides a security hardware module comprising: a storage module of a secret encryption key;
- une unité de génération de codes configurée pour :  a code generation unit configured for:
o obtenir un identifiant d'un objet déterminé à partir d'au moins un paramètre de production de l'objet ;  o obtain an identifier of a given object from at least one production parameter of the object;
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 generate a digital signature from this identifier using a cryptographic hash function parameterized by the secret encryption key; and
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.  o generating, from the digital signature, an identification code of the object, this identification code uniquely identifying the object and being intended to be affixed to this object.
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.  No limitation is attached to the type of object considered, it may be in particular a manufactured object or a support intended to be associated with a manufactured object such as for example a label, a tax sticker, a support self-adhesive, a security envelope, 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. In a manner known per se, a hardware security module (or "Hardware Security Module" in English) is an electronic hardware device considered inviolable, equipped of one or more processors, and offering cryptographic functions such as in particular the storage and management of encryption keys (or cryptographic keys), the encryption / decryption of data, the cryptographic hashing of messages, etc. These cryptographic functions and / or the storage of the information they generate can be implemented in hardware to enhance the security of the security hardware module, or alternatively in software. Such a hardware device is for example in the form of a PCI card (Peripheral Component Interconnect), pluggable on a computer or server, or in the form of an external box. It provides a very high level of security (as compared to a software equivalent reproducing the same functions), and meets international security standards.
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.  According to the invention, such a module is configured and used to generate an identification code uniquely identifying an object and intended to be affixed to this object. This identification code is formed from a random digital signature, generated by the security hardware module from an identifier of the object determined from one or more production parameters of this object (otherwise said specific to the object and its manufacture), the digital signature being generated using a cryptographic hash function parameterized by an encryption key previously stored in the security hardware module. This encryption key is preferably allocated uniquely to the production line, for example at each launch / activation thereof.
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.  The digital signature generated by the hardware module according to the invention is similar to a random or pseudo-random noise, particularly because of the parameters from which it is generated and the use of the cryptographic hash function. This cryptographic hash function is preferably implemented in hardware (i.e. "hardware") in the security hardware module. Similarly, the output of this function which makes it possible to generate the digital signature is also preferentially stored in hardware in the security module. In this way, the inviolability of the generated digital signature is increased.
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. The production parameters of the object used to form the identifier of the object are for example time data representative of a production date of the object and / or a time (hour) of production of the object. manufactured object at that date, and / or in combination with such a datum representative of a date of production of the object or of a moment of production of the object, a datum representative of a place of production and / or a destination of the object on that date or at that moment. The temporal data associated with the object vary from one object to another, they give a random component to the identifier that is associated with the object. They thus make it possible to characterize in a univocal (ie unique) and unpredictable way the object to which these data relate. As a variant, other data making it possible to identify the object and preferably conferring a random or pseudo-random character on the identifier derived from these data may be used.
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é.  The invention thus overcomes the disadvantages of the state of the art by entrusting the generation of the identification code of the object to a hardware security module, supposed inviolable. The solution proposed by the invention thus benefits from a very high level of security while being of reduced complexity and offering great flexibility.
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é.  The invention also makes it possible to dispense with the storage in encrypted form of a secret matrix shared with the verification center, and its decryption for the generation of a digital signature: on the contrary, thanks to the invention and the security inherent in the hardware security module, a single encryption key can be stored to generate the digital signature (and shared with the verification center), thus access to this key is greatly simplified. This results in a particularly efficient and fast method of generating an identification code that uniquely identifies the object under consideration.
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.  In a particular embodiment, the step of generating the digital signature comprises the use of a keyed-hashing message authentication code (HMAC) function executed in the security hardware module and using an MD5 hash function (Message Digest). 5) or a hash function belonging to the family of SHA-2 hash functions (Secure Hash Algorithm - 2), such as for example a hash function SHA-256 or 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.  These functions HMAC and SHA-2 are known for their robustness to cryptographic attacks. The use of such functions in combination with the hardware security module further facilitates the implementation of the 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).  It should be noted that SHA-256 and SHA-512 hashing functions rely on similar algorithms but operate on different word sizes (32-bit for SHA-256 and 64-bit for SHA-512, 256-suffix and 512 designating the size of the hash (or "digest" or "hash" in English) generated by these functions).
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.  In a particular embodiment, the generation method further comprises a step of obtaining beforehand by the code generation unit of a dimension of the digital signature to be generated from a dimension of the identifier of the object and a dimension of the identification code of the object.
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. This embodiment advantageously makes it possible to adapt to different contexts of application, the dimensions of the identifier of the object and the identification code may vary from one context to another. For example, in the pharmaceutical field, an appropriate identification code dimension is 14 characters, while the object identifier is represented on 11 characters. For an identification code formed by concatenation of the identifier of the object and the digital signature, 3 characters out of the 14 allocated to the digital signature result. It should be noted that some characters of the object identification code may be allocated in part to the identifier of the object and for the other party to the digital signature.
Dans un autre mode de réalisation, la dimension de la signature numérique est fixe et prédéterminée.  In another embodiment, the dimension of the digital signature is fixed and predetermined.
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.  In one embodiment, the step of generating the digital signature comprises truncating an output of the cryptographic hash function based on a parameter derived from the dimension of the digital signature.
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.  This step ensures that the digital signature generated is of the correct size even if the cryptographic hash function provides a larger size output.
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é ;  In another embodiment of the invention, the generation step comprises: a step of concatenating the identifier of the object with the digital signature resulting in a signed identifier;
une première étape de masquage de l'identifiant signé, résultant en un identifiant signé masqué ;  a first step of masking the signed identifier, resulting in a masked signed identifier;
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  a step of combining the masked signed identifier with at least one production parameter of the object, resulting in a combined masked signed identifier; and
une seconde étape de masquage de l'identifiant signé masqué combiné résultant en le code d'identification de l'objet.  a second step of masking the combined masked signed identifier resulting in the identification code of the object.
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.  This combination step makes it possible to further improve the security level of the identification code generated for the object. The various masking steps make it possible to scramble the data on which they are applied, reinforcing the robustness of the generated code and preventing its 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.  In another particular embodiment, the secret encryption key is shared with a central server capable of verifying the identification code generated for the object.
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.  The invention can thus be part of a more general mechanism for tracking the object and its authentication.
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 :  Thus, according to another aspect, the invention also aims at a control system of a production line providing at least one object, this system comprising:
- 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  a security hardware module according to the invention associated with the production line and capable of generating an identification code which uniquely identifies the object and intended to be affixed to this object, this identification code being generated using a secret encryption key assigned to the production line; and
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é.  a central identification code verification server sharing said secret encryption key with the security hardware module.
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 According to another aspect, the invention also relates to a method of marking an object such as a manufactured object, a support intended to be affixed to such an object or a packaging intended to be associated with such an object, comprising: a step of generating an identification code uniquely identifying the object according to a generation method according to the invention; and
une étape de marquage de l'objet avec ce code d'identification.  a step of marking the object with this identification code.
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.  The control system and the marking method according to the invention have the same advantages mentioned above as the generation method and the security hardware module according to the 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.  In a particular embodiment, all or part of the different steps of the generation method are determined by instructions of computer programs or microprocessors.
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.  Consequently, the invention also relates to a computer program on an information medium, this program being capable of being implemented in a hardware security module, this program comprising instructions adapted to the implementation of the steps a generation method as described above.
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.  This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape.
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.  The invention also relates to a computer-readable or microprocessor-readable information medium, comprising instructions of a program as mentioned above.
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.  The information carrier may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a disk. hard.
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.  On the other hand, the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention can be downloaded in particular on an Internet type network.
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.  Alternatively, the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in 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.  It can also be envisaged, in other embodiments, that the generation method, the marking method, the security hardware module, and the control system according to the invention present in combination all or part of the aforementioned characteristics.
Brève description des dessins Brief description of the drawings
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 ; Other features and advantages of the present invention will emerge from the description given below, with reference to the accompanying drawings which illustrate an embodiment having no limiting character. In the figures: Figure 1 shows schematically a control system of a production line according to the invention, in a particular embodiment;
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 ;  FIG. 2 schematically represents the hardware architecture on which a security hardware module according to the invention is based, in a particular embodiment; FIG. 3 illustrates, in the form of a flow chart, the main steps of a generation method according to the invention as they are implemented by a security hardware module according to the invention, in a particular mode of production ;
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 ;  FIG. 4 illustrates a way of generating an identification code of a manufactured object from an identifier of this object and a digital signature generated in accordance with the method of FIG. 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  FIG. 5 illustrates, in the form of a flow chart, the main steps of a marking method according to the invention using the identification code generated by the method of FIG. 3. Detailed description of the 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.  FIG. 1 represents, in its environment and in a particular embodiment, a control system 1 according to the invention of a production line 2 implementing various manufacturing operations necessary for the production of manufactured objects. It is attached to the nature of the objects 3 produced by the production line 2. It can thus be all types of objects or articles such as electronic devices, perfumes, etc.
Conformément à l'invention, le système de contrôle 1 comprend :  According to the invention, the control system 1 comprises:
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  a security hardware module 4 associated with the production line 2 and able to generate, for each manufactured object 3 coming from the production line 2, an identification code C3 that uniquely identifies this object and intended to be affixed to the one by means of a marking device 5; and
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.  a central verification server 6, able to check the identification codes affixed to manufactured objects that can be manufactured by various production lines including the production line 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é.  By "affixed to the object" is meant here that the identification code C3 is affixed by the marking device 5 to the object 3 or on any type of accessory or attribute accompanying this object, as for example. example on its packaging. In the rest of the description, 3b denotes the marked object on which the C3 code has been affixed.
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. Alternatively, the identification code C3 may be affixed to a support provided by the production line 2 and intended to be associated with a manufactured object such as for example a label, a tax sticker, a self-adhesive support, an envelope security, etc. The term "object" in this description generally refers to the various elements on which the identification code C3 can be affixed. In the example envisaged in FIG. security hardware module 4 is in the form of a plug-in PCI type electronic card in a computer or server 7 dedicated to the production line 2. This card has the hardware architecture of a computer, as shown in FIG. 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.  It comprises in particular a processor 4A, a read-only memory 4B, a random access memory 4C, a non-volatile memory 4D, and a communication module 4E including here in particular a PCI connection bus making it possible to connect the security hardware module 4 to the computer 7.
En variante d'autres moyens de connexion du module matériel de sécurité 4 à l'ordinateur 7 peuvent être envisagés.  As a variant, other means of connection of the security hardware module 4 to the computer 7 can be envisaged.
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.  The read-only memory 4B of the hardware security module 4 constitutes a recording medium in accordance with the invention, readable by the processor 4A and on which is recorded a computer program according to the invention comprising instructions for the execution of the steps of a method of generating a code uniquely identifying a manufactured object 3 according to the invention, the steps of which are described later with reference to FIG.
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.  This computer program equivalently defines functional modules of the security module 4 and more particularly, a storage module 8 for a secret encryption key K shared with the central server 6 and a code generation unit 9, configured to access this key and generate the identification code C3 of the manufactured object 3, and able to use (ie to call or still to order) functions implemented in a hardware way (ie in "hardware") in the hardware module such as libraries and / or cryptographic algorithms. The functions implemented by these modules are described in more detail with reference to the steps of the generation method illustrated in Figure 3 described now.
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.  FIG. 3 represents, in the form of a flow chart, the main steps implemented by the security hardware module 4 to generate the identification code C3 of the manufactured object 3, in a particular embodiment. These steps are those of a generation method according to the 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.  In the embodiment described here, it is assumed that a secret encryption key K is automatically and uniquely assigned to the production line 2 at the beginning of each production of manufactured objects (i.e. activation or launch of the production line 2), for example by the central server 6 verification. The way to generate such an encryption key is known per se and is not described in more detail here. It is for example 1024 bits in the example envisaged here.
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.  This secret key K is provided in a secure manner to the security hardware module 4 (step E10). The security hardware module 4 and the central server 6 are thus the only two entities to share the knowledge of this secret key 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). As a variant, the secret key K may be allocated to the production line 2 by a third-party trusted entity and supplied to the central server 6 by this entity. The security hardware module 4 stores, via its storage module 8, the secret key K obtained for example in its non-volatile memory 4D (step 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.  Then, for each manufactured object 3 produced by the production line 2, it generates with the aid of this secret key K, through its code generation unit 9, an identification code C3. The code C3 here consists of a series of N_C3 alphanumeric characters (which can take for example as values the 26 letters of the alphabet except the letters I and 0, and the 10 digits 0-9, or 34 possibilities for each character), N_C3 denoting the dimension (or length) of the code C3, which is generally predetermined and fixed for a given application. It should be noted, however, that this dimension of the C3 code may vary from application to application. For example, for the pharmaceutical field, a dimension of 14 characters can be envisaged. As a variant, for other domains, smaller dimensions (eg 12 characters) will be preferred, or larger dimensions may be tolerated.
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).  The identification code C3 is generated by the code generation unit 9 from an identifier ID3 of the manufactured object 3. The identifier ID3 is formed by the unit 9 from one or more parameters. production of this object obtained from the production line 2 (step 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.  In the embodiment described here, these production parameters comprise time data representative of the date (ie day) of production of the manufactured object 3, and of the instant (in the hour / minute / second format here) of production of this manufactured object on that date. These temporal data are specific to each manufactured object 3 and form a number that varies according to it (in the sense that it depends on the actual production of the object 3). This number is therefore specific to the object 3 and can not be predicted outside the production line 2: it therefore identifies the object 3 in a random (or pseudo-random) and unique manner. The unit 9 thus obtains, by concatenating these different temporal data, an identifier ID3 of the object 3 of dimension N_ID3 (step E40). In the example of the previously contemplated pharmaceutical field in which the identification code C3 comprises N_C3 = 14 characters, the dimension of the identifier ID3 can be set in particular to 11 characters.
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.  As a variant, other production parameters may be considered by the unit 9 to form the identifier ID3, in combination with or in replacement of some of the aforementioned parameters, such as, for example, a datum identifying the production location of the object 3 (eg datum identifying the production center in which the production line 2 is located), a datum identifying the production line 2 within this center, a datum representative of a destination of the object 3 (ex. market) at its date of production or at its time of production, etc., as well as other parameters varying preferentially from one manufactured object to another so as to identify the manufactured object in a unique manner.
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. Then the unit 9 generates a digital signature GIS from the identifier ID3 using an iterative cryptographic hash function parameterized by the secret key K (step E50). The N_SIG dimension of the digital signature is determined here by the unit 9 starting from the dimension N_ID3 of the identifier of the object 3 and the dimension N_C3 of the identification code C3 of the object. It corresponds to the number of characters remaining in the identification code C3 after deducting the characters dedicated to the identifier ID3. In the example envisaged above, the dimension of the digital signature N_SIG is here 14-11 = 3 characters.
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.  It should be noted that depending on the intended field of application, a character of the identification code C3 may be allocated in part to the digital signature and partly to the ID3 of the object, that is, it may carry information relating to both the ID3 identifier and the GIS digital signature.
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.  In addition, depending on the needs of the domain, it is possible to consider decreasing the size of the identifier ID3 when, in particular, the volumes of objects produced are not important. Equal identification code size, this increases the size allocated to the signature and thus enhance the security of the identification code generated. In the embodiment described here, the unit 9 uses, for generating the digital signature GIS, a function of HMAC (keyed-Hashing Message Authentication Code) type applied on the identifier ID3, and using a SHA-256 or SHA hash function. -512 parameterized by the secret key K. This HMAC function advantageously relies here on libraries implemented in a hardware way in the security hardware module 4, and its result is stored in a hardware way in the security hardware module 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.  In a known manner, a hash function SHA-256 (respectively SHA-512) splits the input message into blocks of fixed size (or size or length) and iteratively applies to these blocks a compression function of so as to deliver output blocks of size 256 bits (respectively 512 bits). The HMAC function is built from this hash function and is applied to a message resulting from a concatenation based on the secret key K (possibly complemented by zeros to reach the block size processed by the SHA hash function -256, respectively SHA-512), the identifier ID3 (previously converted in the form of a binary sequence) and parameters resulting from the repetition of predetermined bytes, for example the bytes 0x36 and 0x5c. The size of the blocks at the output of the function is identical to that of the blocks at the output of the hash function. The output of the HMAC function is stored in hardware in the hardware security module by the code generation unit 9.
La construction de la fonction HMAC à partir de la fonction de hachage SHA-256 ou Building the HMAC function from the hash function SHA-256 or
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. SHA-512 (or any other hash function) and the secret key K is known to those skilled in the art and is not described in more detail here. It is mentioned in particular in the RFC2104 published by the IETF and entitled "HMAC: Keyed-Hashing for Message Authentication", 1997.
II convient de noter que la qualité cryptographique et la robustesse de la fonction It should be noted that the cryptographic quality and robustness of the function
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. HMAC depends on the length and the quality (random or not) of the secret key K used. One of the most common attacks used against the HMAC function is an attack by brute force, plus the length of the secret key K assigned by the central server 6 to the production line 2 is large, the more the digital signature is robust.
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.  Alternatively, other algorithms and / or other hash functions (eg MD5) may be envisioned to generate the digital signature.
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 à 343=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é). In the embodiment described here, to obtain a digital signature of appropriate N_SIG dimension, the code generation unit 9 truncates the binary output of the HMAC function as a function of a parameter derived from the dimension of the digital signature N_SIG. This parameter is called here the size of the noise. It corresponds to the number of possible combinations of characters that can constitute the digital signature SIC In the previously envisaged example of a digital signature of dimension 3 characters, the size of the noise is equal to 34 3 = 39304. This truncation can be carried out for example by applying to the binary sequence at the output of the HMAC function the known operation "modulo" parameterized by the size of the noise determined by the code generation unit 9 from the dimension of the signature. N_SIG (modulo 39304 in the example envisaged).
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.  The truncated bit sequence thus obtained by the code generating unit 9 is then converted into an alphanumeric character string (taking the same character values as allowed for the ID3 identifier) to form the digital signature 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).  The code generation unit 9 then combines the identifier ID3 and the digital signature SIG to form an identification code C3 for the manufactured object 3 (step E60).
Dans le mode de réalisation décrit ici, cette combinaison est réalisée en plusieurs temps, comme illustré à la figure 4 :  In the embodiment described here, this combination is performed in several stages, as illustrated in FIG.
concaténation de l'identifiant ID3 et de la signature numérique SIG résultant en un identifiant signé ID3-SIG (étape E61) ;  concatenating the identifier ID3 and the digital signature GIS resulting in a signed identifier ID3-SIG (step 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) ;  masking of the ID3-SIG signed identifier, using a masking or scrambling function known per se (for example by adding to each character of the signed identifier a randomly generated sequence of characters), resulting in a masked signed identifier MAS (ID3-SIG) (step 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  combination (via a concatenation here) of the masked signed identifier with one or more production parameters of the object provided by the production line 2, such as for example a data item identifying the production line 2 and / or the center of production. production in which the production line 2 is located, etc. The generation unit 9 then obtains a combined identifier denoted IDSIG3 (step E63); and
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.  masking of the combined identifier IDSIG3 using a masking / scrambling function, preferably different from the masking / scrambling function used in step E62 (step E64), resulting in the identification code C3 of the object 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. By construction and by definition of the identifier ID3 and the digital signature GIS, the identification code C3 resulting from the step E60 uniquely identifies the object 3. Of course, other sequences of steps can be envisaged to construct an identification code C3 that uniquely identifies the object 3, notably involving other production parameters of the object 3 and other types of combination.
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.  With reference to FIG. 5, the identification code C3 thus generated by the code generation unit 9 of the security hardware module 4 (step F10) is then supplied to the marking device 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.  The latter then proceeds to mark the object 3 in which he affixes the identification code C3 on the object 3 or on its packaging (step F20). Such a marking step can be performed by printing or etching, etc. It results in the manufactured object marked 3b.
Les étapes F10 et F20 forment les principales étapes d'un procédé de marquage selon l'invention.  The steps F10 and F20 form the main steps of a marking process according to the 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.  The identification code C3 thus affixed to the object 3 can be easily controlled by the central verification server 6 by supplying the central server 6 with the secret key K and the production parameters that enabled the generation of the identifier. ID3. Only the central server 6 and the security hardware module 4 know the secret key K so that the method for generating an identification code proposed by the invention is secure and particularly effective. It further requires only the secret key K to be shared between the security hardware module 4 and the central server 6, and avoids complex processing such as the manipulation and storage of a secret matrix of significant dimensions such as considered in the state of the art.

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 : A method of generating an identification code (C3) of an object (3), said identification code uniquely identifying said object and being intended to be affixed to said object, said method being intended to be implemented in a code generation unit (9), said code generation unit (9) being integrated into a security hardware module (4) in which a secret encryption key (K) is stored, said method comprising :
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 ;  a step of obtaining (E40) by the code generation unit an identifier (ID3) of the object determined from at least one production parameter of the object;
- 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  a step of generating (E50) by the code generation unit of a digital signature (SIG) from said identifier by using a cryptographic hash function parameterized by the secret encryption key (K); and
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).  a generation step (E60) by the code generation unit of the object identification code from the digital signature (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é. 2. Generation method according to claim 1 wherein the cryptographic hash function is implemented in hardware in the security hardware module.
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é. 3. Generation method according to claim 1 or 2 wherein said object is a manufactured object or a support intended to be associated with a manufactured object such as in particular a label, a self-adhesive support or a security envelope.
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. The generation method according to any one of claims 1 to 3 wherein the generating step (E60) comprises a combination by the code generation unit of the digital signature and the object identifier for generate said identification code.
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). The method of any of claims 1 to 4 wherein the step of generating the digital signature comprises using an HMAC function executed in the keyed-Hashing Message Authentication Code and using an MD5 hash function or a hash function belonging to the SHA-2 hash function family (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. The method of any one of claims 1 to 5 wherein said hash function is a SHA-256 or SHA-512 hash function.
7. Procédé selon l'une quelconque des revendications 1 à 6 dans lequel ledit au moins un paramètre de production comprend : The method of any one of claims 1 to 6 wherein said at least one production parameter comprises:
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 a datum representative of a date of production of said manufactured object; and or a datum representative of a moment of production of said manufactured object at said date; and or
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.  in combination with a datum representative of a date of production of said object and / or a datum representative of a moment of production of said object, a datum representative of a production location and / or a destination of said object at said date or 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. 8. Method according to any one of claims 1 to 7 wherein said secret encryption key (K) is shared with a central server (6) able to check the generated code of said object.
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. The method of any one of claims 1 to 8, further comprising a step of first obtaining by the code generation unit a dimension of the digital signature from a dimension of the identifier of the object (ID3) and a dimension of the identification code of the object.
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. The method of claim 9 wherein the step of generating the digital signature (GIS) comprises truncating an output of the cryptographic hash function based on a parameter derived from the dimension of the digital signature.
11. Procédé selon l'une quelconque des revendications 1 à 10 dans lequel l'étape de génération (E60) comprend : The method of any one of claims 1 to 10 wherein the generating step (E60) comprises:
une étape de concaténation (E61) de l'identifiant de l'objet avec la signature numérique résultant en un identifiant signé ;  a concatenation step (E61) of the identifier of the object with the digital signature resulting in a signed identifier;
une première étape de masquage (E62) de l'identifiant signé, résultant en un identifiant signé masqué ;  a first step of masking (E62) the signed identifier, resulting in a masked signed identifier;
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  a step of combining (E63) the masked signed identifier with at least one production parameter of the object, resulting in a combined masked signed identifier; and
une seconde étape de masquage (E64) de l'identifiant signé masqué combiné résultant en le code d'identification de l'objet.  a second masking step (E64) of the combined masked signed identifier resulting in the identification code of the object.
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é. A computer program comprising instructions for executing the steps of the generation method according to any one of claims 1 to 11 when said program is executed by a processor of a security hardware module.
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. A processor-readable recording medium of a security hardware module on which a computer program is recorded including instructions for executing the steps of the generation method according to any one of claims 1 to 11.
14. Procédé de marquage d'un objet comprenant : 14. A method of marking an object comprising:
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  a step of generating an identification code uniquely identifying the object according to a generation method according to any one of claims 1 to 11; and
une étape de marquage de l'objet avec ce code d'identification.  a step of marking the object with this identification code.
15. Module matériel de sécurité (4) comprenant : 15. Security hardware module (4) comprising:
un module de stockage (8) d'une clé de chiffrement secrète (K) ;  a storage module (8) of a secret encryption key (K);
une unité de génération (9) de codes configurée pour :  a generation unit (9) of codes configured for:
o obtenir un identifiant d'un objet déterminé à partir d'au moins un paramètre de production de l'objet ;  o obtain an identifier of a given object from at least one production parameter of the object;
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 generate a digital signature from this identifier using a cryptographic hash function parameterized by the secret encryption key; and
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.  o generating, from the digital signature, an identification code of the object, said identification code uniquely identifying said object and being intended to be affixed to this object.
16. Système de contrôle (1) d'une ligne de production (2) fournissant au moins un objet, ce système comprenant : 16. A control system (1) for a production line (2) providing at least one object, the system comprising:
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  a security hardware module (4) according to claim 15 associated with the production line and able to generate an identification code uniquely identifying the object and intended to be affixed to this object, said identification code being generated using a secret encryption key (K) assigned to the production line; and
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é.  a central identification code verification server (6) sharing said secret encryption key with the security hardware module.
PCT/FR2016/051988 2015-08-07 2016-07-29 Method of generating an identification code for an object, and security hardware module WO2017025679A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1557608 2015-08-07
FR1557608A FR3039911B1 (en) 2015-08-07 2015-08-07 METHOD FOR GENERATING AN IDENTIFICATION CODE OF AN OBJECT, AND SECURITY EQUIPMENT MODULE

Publications (1)

Publication Number Publication Date
WO2017025679A1 true WO2017025679A1 (en) 2017-02-16

Family

ID=54366362

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2016/051988 WO2017025679A1 (en) 2015-08-07 2016-07-29 Method of generating an identification code for an object, and security hardware module

Country Status (2)

Country Link
FR (1) FR3039911B1 (en)
WO (1) WO2017025679A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726550A (en) * 2022-05-25 2022-07-08 北京奇虎科技有限公司 Identification code generation method, device, equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002092351A2 (en) * 2001-05-11 2002-11-21 Neopost Inc. Method and system for providing stamps by kiosk
EP1645992A1 (en) * 2004-10-08 2006-04-12 Philip Morris Products S.A. Methods and systems for marking, tracking and authentication of products
EP2472451A1 (en) * 2010-12-30 2012-07-04 Philip Morris Products S.A. Method and apparatus for marking manufactured items

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002092351A2 (en) * 2001-05-11 2002-11-21 Neopost Inc. Method and system for providing stamps by kiosk
EP1645992A1 (en) * 2004-10-08 2006-04-12 Philip Morris Products S.A. Methods and systems for marking, tracking and authentication of products
EP2472451A1 (en) * 2010-12-30 2012-07-04 Philip Morris Products S.A. Method and apparatus for marking manufactured items

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"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 <URL:http://www.cacr.math.uwaterloo.ca/hac/> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726550A (en) * 2022-05-25 2022-07-08 北京奇虎科技有限公司 Identification code generation method, device, equipment and storage medium

Also Published As

Publication number Publication date
FR3039911B1 (en) 2017-08-04
FR3039911A1 (en) 2017-02-10

Similar Documents

Publication Publication Date Title
EP2949070B1 (en) Verification process of the integrity of numerical data bloc
FR2625013A1 (en) RELIABLE DOCUMENT AUTHENTICATION SYSTEM AND METHOD
EP2819052A1 (en) Method and server for processing a request for a terminal to access a computer resource
EP1617586A1 (en) Stream ciphering of the content of a memory which is external to a processor
FR3082023A1 (en) A SOFTWARE APPLICATION AND A COMPUTER SERVER TO AUTHENTICATE THE IDENTITY OF A DIGITAL CONTENT CREATOR AND THE INTEGRITY OF THE PUBLIC CREATOR CONTENT
FR3112626A1 (en) Method and system for collecting electronic contract evidence based on transaction mode
EP2166696A1 (en) Protection of encrypted data integrity using an intermediate cipher state to generate a signature
WO2017025679A1 (en) Method of generating an identification code for an object, and security hardware module
EP1355446A1 (en) Encryption of the content of a memory which is external to a processor
EP3166252B1 (en) Method for secure storing of data, corresponding device and program
WO2021099744A1 (en) Secure method for data exchange between a terminal and a server
WO2003023725A1 (en) Authentication protocol with memory integrity verification
FR3107416A1 (en) EFFECTIVE RANDOM TOKENIZATION IN A DEMATERIALIZED ENVIRONMENT
WO2015197930A1 (en) Method of sharing digital files between several computers, and computer, data storage assembly and digital file sharing system associated therewith
FR3050044B1 (en) METHOD FOR AUTOMATICALLY CHECKING A TARGET COMPUTING FILE RELATIVE TO A REFERENCE COMPUTING FILE
FR3073111A1 (en) METHOD AND DEVICE FOR STORING AND SHARING INTEGRATED DATA
FR3020888A1 (en) ENCRYPTION OF A SECRET PROTECTION KEY PROTECTING AT LEAST ONE SENSITIVE ELEMENT OF AN APPLICATION
FR2898423A1 (en) Certified electronic signature generating device e.g. chip card, configuring method for e.g. computer, involves updating certificate to user upon reception of denomination and number by certificate producer so as to be used with device
EP3284209B1 (en) Methods of generating and verifying a security key of a virtual monetary unit
FR3112624A1 (en) Method and system for collecting electronic contract evidence based on the smart contract
FR3112643A1 (en) Apparatus, method and program for secure communication between white boxes
EP3706020A1 (en) Calculation of signature and verification of integrity of digital data
EP4128700A1 (en) Method and device for authenticating a user with an application
FR2854706A1 (en) Information protecting process, involves signing identifiers of protected information parts with private key and transferring protected information and each identifier of part on information medium
WO2017098189A1 (en) Method for customising a secure document

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16757313

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16757313

Country of ref document: EP

Kind code of ref document: A1