FR3140728A1 - Cryptographic processing method, electronic device and associated computer program - Google Patents

Cryptographic processing method, electronic device and associated computer program Download PDF

Info

Publication number
FR3140728A1
FR3140728A1 FR2210262A FR2210262A FR3140728A1 FR 3140728 A1 FR3140728 A1 FR 3140728A1 FR 2210262 A FR2210262 A FR 2210262A FR 2210262 A FR2210262 A FR 2210262A FR 3140728 A1 FR3140728 A1 FR 3140728A1
Authority
FR
France
Prior art keywords
scalar
root
private key
secret
proof
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
FR2210262A
Other languages
French (fr)
Inventor
Roch Lescuyer
Emmanuelle Dottax
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia France SAS
Original Assignee
Idemia France SAS
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 Idemia France SAS filed Critical Idemia France SAS
Priority to FR2210262A priority Critical patent/FR3140728A1/en
Publication of FR3140728A1 publication Critical patent/FR3140728A1/en
Pending legal-status Critical Current

Links

Classifications

    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Procédé de traitement cryptographique mis en œuvre par un dispositif électronique et comprenant :i) une phase d'initialisation (P1) comprenant:- l’enregistrement (E120) d’une clé privée racine dans une mémoire du dispositif électronique,ii) une phase de génération (P2) de clés comprenant:- le calcul (E220) d'une clé privée dérivée égale à f(s, k) où f est une fonction de dérivation, s est un sous-ensemble de la clé privée racine, et k est un scalaire secret,- le calcul (E240) d’une clé publique dérivée associée à la clé privée dérivée,iii) une phase de génération (P3) de preuve comprenant:- la génération (E320) d'une preuve à divulgation nulle de connaissance que la clef publique dérivée est associée à un scalaire égal à f(s, k), iv) une phase de transmission (P3) comprenant:- la transmission (E420) de la preuve à divulgation nulle de connaissance à un dispositif de vérification. Figure pour l’abrégé : fig. 3.Cryptographic processing method implemented by an electronic device and comprising:i) an initialization phase (P1) comprising:- recording (E120) of a root private key in a memory of the electronic device,ii) a phase generating (P2) keys comprising: - calculating (E220) a derived private key equal to f(s, k) where f is a derivation function, s is a subset of the root private key, and k is a secret scalar, - the calculation (E240) of a derived public key associated with the derived private key, iii) a proof generation phase (P3) comprising: - the generation (E320) of a proof for disclosure zero knowledge that the derived public key is associated with a scalar equal to f(s, k), iv) a transmission phase (P3) comprising: - transmission (E420) of the proof with zero knowledge disclosure to a device of verification. Figure for abstract: fig. 3.

Description

Procédé de traitement cryptographique, dispositif électronique et programme d’ordinateur associésCryptographic processing method, electronic device and associated computer program

La présente invention concerne un procédé de traitement cryptographique, ainsi qu’un programme d’ordinateur et un dispositif électronique associés.The present invention relates to a cryptographic processing method, as well as an associated computer program and electronic device.

En cryptographie asymétrique, la génération d’une clé publique et d’une clé secrète, aussi dénommée clé privée, est nécessaire préalablement à la signature ou au chiffrement de messages par un dispositif électronique.In asymmetric cryptography, the generation of a public key and a secret key, also called a private key, is necessary before signing or encrypting messages by an electronic device.

La clé publique et la clé privée peuvent être générées directement par le dispositif électronique, ou être chargées dans ledit dispositif électronique après avoir été générées par un autre dispositif.The public key and the private key may be generated directly by the electronic device, or be loaded into said electronic device after being generated by another device.

Il est souvent exigé que la génération de ces clés soit directement effectuée par le dispositif électronique, notamment pour s’assurer que la clé privée ne soit connue que de lui.It is often required that the generation of these keys be carried out directly by the electronic device, in particular to ensure that the private key is known only to it.

Cependant, malgré cette exigence, les clés sont parfois générées à l’extérieur du dispositif électronique puis chargées dans celui-ci sans que cela puisse être détecté pendant une utilisation ultérieure du dispositif électronique.However, despite this requirement, keys are sometimes generated externally to the electronic device and then loaded into it without this being able to be detected during subsequent use of the electronic device.

Un but de l’invention est d’améliorer la sécurité pour la génération de clés par un dispositif électronique et l’audit associé.An aim of the invention is to improve security for the generation of keys by an electronic device and the associated audit.

A cet effet, la présente invention propose un procédé de traitement cryptographique mis en œuvre par un dispositif électronique, le dispositif électronique coopérant avec un dispositif de vérification, et ledit procédé comprenant :
i) une phase d'initialisation d’un ensemble d'au moins un premier scalaire secret formant une clé privée racine associée à une clé publique racine, la phase d’initialisation comprenant l'étape suivante :
- enregistrement de la clé privée racine dans une mémoire du dispositif électronique,
et
ii) une phase de génération d'une clé privée dérivée et d'une clé publique dérivée, comprenant les étapes suivantes :
- calcul d'un deuxième scalaire secret formant la clé privée dérivée égal à f(s, k) où f est une fonction de dérivation, s est un sous-ensemble non vide de l‘ensemble d'au moins un premier scalaire secret, et k est un troisième scalaire secret,
- calcul de la clé publique dérivée associée au deuxième scalaire secret,
puis
iii) une phase de génération de preuve comprenant l'étape suivante :
- génération d'une preuve à divulgation nulle de connaissance que la clef publique dérivée est associée à un scalaire égal à f(u, l), u étant le sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine associée à la clef publique racine et l étant égal à k,
et
iv) une phase de transmission comprenant l'étape suivante :
- transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification.
To this end, the present invention proposes a cryptographic processing method implemented by an electronic device, the electronic device cooperating with a verification device, and said method comprising:
i) a phase of initialization of a set of at least one first secret scalar forming a root private key associated with a root public key, the initialization phase comprising the following step:
- recording of the root private key in a memory of the electronic device,
And
ii) a phase for generating a derived private key and a derived public key, comprising the following steps:
- calculation of a second secret scalar forming the derived private key equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar,
- calculation of the derived public key associated with the second secret scalar,
Then
iii) a proof generation phase comprising the following step:
- generation of a zero-disclosure proof of knowledge that the derived public key is associated with a scalar equal to f(u, l), u being the subset s of the set of at least one first secret scalar forming the root private key associated with the root public key and l being equal to k,
And
iv) a transmission phase comprising the following step:
- transmission of the zero-knowledge proof to the verification device.

Le procédé peut également comprendre les caractéristiques optionnelles suivantes, prises seules ou en combinaison à chaque fois que cela est techniquement possible.The method may also include the following optional features, taken alone or in combination whenever technically possible.

Le dispositif électronique coopère en outre avec un dispositif de configuration pendant la phase d’initialisation, et la clé publique racine est certifiée par le dispositif de configuration.The electronic device further cooperates with a configuration device during the initialization phase, and the root public key is certified by the configuration device.

La coopération entre le dispositif électronique et le dispositif de configuration est l’envoi par le dispositif électronique au dispositif de configuration, et/ou la réception en provenance du dispositif de configuration par le dispositif électronique, d’au moins un premier scalaire secret de la clé privée racine et/ou de la clé publique racine associée.The cooperation between the electronic device and the configuration device is the sending by the electronic device to the configuration device, and/or the reception from the configuration device by the electronic device, of at least a first secret scalar of the root private key and/or the associated root public key.

La certification de la clé publique racine consiste en l’inscription de la clé publique racine dans une liste d’au moins une clé publique de confiance, ou en la signature cryptographique de ladite clé publique racine, par exemple avec une clé privée de certification émise par une autorité de confiance.The certification of the root public key consists of the registration of the root public key in a list of at least one trusted public key, or in the cryptographic signature of said root public key, for example with an issued certification private key. by a trusted authority.

La phase d’initialisation comprend en outre les étapes suivantes :
- calcul, avant l’étape d’enregistrement, de tous les premiers scalaires secrets de l’ensemble formant la clé privée racine, au moins un premier scalaire secret de la clé privée racine étant calculé par tirage aléatoire ou par application d’une fonction physique non clonable , puis
- calcul de la clé publique racine à partir de la clé privée racine.
The initialization phase also includes the following steps:
- calculation, before the recording step, of all the first secret scalars of the set forming the root private key, at least one first secret scalar of the root private key being calculated by random drawing or by application of a function unclonable physics, then
- calculation of the root public key from the root private key.

Le dispositif de configuration dispose d’un quatrième scalaire secret formant une clé privée maitre associée à la clé publique racine, et la phase d’initialisation comprend en outre l’étape suivante avant l’étape d’enregistrement :
- réception, en provenance du dispositif de configuration, d’au moins un premier scalaire secret de la clé privée racine, ledit au moins un premier scalaire secret reçu du dispositif de configuration étant calculé à partir de la clé privée maitre.
The configuration device has a fourth secret scalar forming a master private key associated with the root public key, and the initialization phase further comprises the following step before the recording step:
- reception, from the configuration device, of at least one first secret scalar of the root private key, said at least one first secret scalar received from the configuration device being calculated from the master private key.

Le dispositif électronique reçoit du dispositif de configuration, tous les premiers scalaires secrets de l’ensemble formant la clé privée racine.The electronic device receives from the configuration device all the first secret scalars of the set forming the root private key.

Lorsque la clé privée racine est formée d’un seul premier scalaire secret, le premier scalaire secret reçu du dispositif de configuration est la clé privée maitre.When the root private key is formed from a single first secret scalar, the first secret scalar received from the configuration device is the master private key.

Lorsque le clé privée racine est formée de deux premiers scalaires secrets, le dispositif électronique reçoit du dispositif de configuration lesdits deux premiers scalaires secrets. Typiquement, un des deux premiers scalaires secrets est déterminé par le dispositif de configuration par calcul algébrique à partir du quatrième scalaire secret et de l’autre des deux premiers scalaires secrets, et ledit autre des deux premiers scalaires secrets est déterminé par le dispositif de configuration par tirage aléatoire ou par application d’une fonction physique non clonable (« PUF » ou « physical unclonable function » selon l’appellation anglo-saxonne couramment utilisée).When the root private key is formed of two first secret scalars, the electronic device receives said first two secret scalars from the configuration device. Typically, one of the first two secret scalars is determined by the configuration device by algebraic calculation from the fourth secret scalar and the other of the first two secret scalars, and said other of the first two secret scalars is determined by the configuration device by random selection or by application of a non-clonable physical function (“PUF” or “physical unclonable function” according to the commonly used Anglo-Saxon name).

Le dispositif de configuration dispose en outre d’un cinquième scalaire secret formant une clé privée supplémentaire associée une clé publique supplémentaire, et ledit au moins un premier scalaire secret reçu du dispositif de configuration est calculé à partir de la clé privée maitre et de la clé privée supplémentaire.The configuration device further has a fifth secret scalar forming an additional private key associated with an additional public key, and said at least one first secret scalar received from the configuration device is calculated from the master private key and the key additional private.

La clé privée racine est formée d’un seul premier scalaire secret.The root private key is formed from a single first secret scalar.

La clé privée racine est formée d’une pluralité de premiers scalaires secrets.The root private key is formed from a plurality of first secret scalars.

La phase d’initialisation comprend en outre les étapes suivantes avant l’étape d’enregistrement:
- détermination d’un premier scalaire secret de la clé privée racine, puis
- chiffrement de manière homomorphe du premier scalaire secret déterminé, puis
- transmission au dispositif de configuration du chiffré du premier scalaire secret déterminé,
et pendant l’étape de réception de la phase d’initialisation, le dispositif électronique :
- reçoit un autre premier scalaire secret de la clé privée racine, chiffré de la même manière homomorphe, le chiffré dudit autre premier scalaire secret ayant été déterminé à partir de la clé privée maitre et du chiffré transmis par le dispositif électronique au dispositif de configuration, et
- déchiffre le chiffré de l’autre premier scalaire secret pour obtenir ledit au moins un premier scalaire secret reçu du dispositif de configuration.
The initialization phase further includes the following steps before the registration step:
- determination of a first secret scalar of the root private key, then
- homomorphic encryption of the first determined secret scalar, then
- transmission to the cipher configuration device of the first determined secret scalar,
and during the reception step of the initialization phase, the electronic device:
- receives another first secret scalar of the root private key, encrypted in the same homomorphic manner, the cipher of said other first secret scalar having been determined from the master private key and the cipher transmitted by the electronic device to the configuration device, And
- decrypts the ciphertext of the other first secret scalar to obtain said at least one first secret scalar received from the configuration device.

La détermination d’un premier scalaire secret de la clé privée racine est par tirage aléatoire ou par application d’une fonction physique non clonable.The determination of a first secret scalar of the root private key is by random drawing or by application of a non-clonable physical function.

Le troisième scalaire secret k est déterminé par le dispositif électronique par tirage aléatoire ou par application d’une fonction physique non clonable.The third secret scalar k is determined by the electronic device by random selection or by application of a non-clonable physical function.

La phase d’initialisation est mise en œuvre au niveau d’un site d’initialisation, et la phase de génération d'une clé privée dérivée et d'une clé publique dérivée est mise en œuvre au niveau d’un autre site distinct du site d’initialisation.The initialization phase is implemented at an initialization site, and the phase for generating a derived private key and a derived public key is implemented at another site distinct from the initialization site.

La preuve à divulgation nulle de connaissance est une preuve non interactive.The zero-knowledge proof is a non-interactive proof.

La preuve à divulgation nulle de connaissance est une preuve interactive.The zero-knowledge proof is an interactive proof.

La génération de la preuve à divulgation nulle de connaissance, et la transmission de la preuve à divulgation nulle de connaissance à un dispositif de vérification, sont sous la forme d’un protocole défi-réponse.The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are in the form of a challenge-response protocol.

L’invention propose également un programme d’ordinateur comprenant des instructions exécutables par un processeur et adaptées pour la mise en œuvre d’un procédé de traitement cryptographique tel que défini précédemment, lorsque ces instructions sont exécutées par le processeur.The invention also proposes a computer program comprising instructions executable by a processor and adapted for the implementation of a cryptographic processing method as defined above, when these instructions are executed by the processor.

L’invention propose aussi un dispositif électronique comprenant des moyens adaptés pour la mise en œuvre d’un procédé de traitement cryptographique tel que défini précédemment.The invention also proposes an electronic device comprising means adapted for implementing a cryptographic processing method as defined above.

L’invention concerne en particulier un dispositif électronique de traitement cryptographique adapté pour coopérer avec un dispositif de vérification et comprenant :
i) un module d’initialisation configuré pour réaliser une phase d'initialisation d’un ensemble d'au moins un premier scalaire secret formant une clé privée racine associée à une clef publique racine, la phase d’initialisation comprenant l'étape suivante :
- enregistrement de la clé privée racine dans une mémoire du dispositif électronique,
ii) un module de génération de clés configuré pour réaliser une phase de génération d'une clé privée dérivée et d'une clé publique dérivée, comprenant les étapes suivantes :
- calcul d'un deuxième scalaire secret formant la clé privée dérivée égal à f(s, k) où f est une fonction de dérivation, s est un sous-ensemble non vide de l‘ensemble d'au moins un premier scalaire secret, et k est un troisième scalaire secret,
- calcul de la clé publique dérivée associée au deuxième scalaire secret,
iii) un module de génération de preuve configuré pour réaliser une phase de génération de preuve comprenant l'étape suivante :
- génération d'une preuve à divulgation nulle de connaissance que la clef publique dérivée est associée à un scalaire égal à f(u, l), u étant le sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine associée à la clef publique racine et l étant égal à k,
iv) un module de transmission configuré pour réaliser une phase de transmission comprenant l'étape suivante :
- transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification.
The invention relates in particular to an electronic cryptographic processing device adapted to cooperate with a verification device and comprising:
i) an initialization module configured to carry out an initialization phase of a set of at least one first secret scalar forming a root private key associated with a root public key, the initialization phase comprising the following step:
- recording of the root private key in a memory of the electronic device,
ii) a key generation module configured to carry out a generation phase of a derived private key and a derived public key, comprising the following steps:
- calculation of a second secret scalar forming the derived private key equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar,
- calculation of the derived public key associated with the second secret scalar,
iii) a proof generation module configured to carry out a proof generation phase comprising the following step:
- generation of a zero-disclosure proof of knowledge that the derived public key is associated with a scalar equal to f(u, l), u being the subset s of the set of at least one first secret scalar forming the root private key associated with the root public key and l being equal to k,
iv) a transmission module configured to carry out a transmission phase comprising the following step:
- transmission of the zero-knowledge proof to the verification device.

Ce dispositif électronique peut être configuré pour la mise en œuvre de chacune des possibilités de réalisation envisagées pour le procédé de traitement cryptographique tel que défini précédemment.This electronic device can be configured for the implementation of each of the possibilities of realization envisaged for the cryptographic processing method as defined previously.

Bien entendu, les différentes caractéristiques, variantes et formes de réalisation de l'invention peuvent être associées les unes avec les autres selon diverses combinaisons dans la mesure où elles ne sont pas incompatibles ou exclusives les unes des autres.Of course, the different characteristics, variants and embodiments of the invention can be associated with each other in various combinations as long as they are not incompatible or exclusive of each other.

D’autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux figures annexées qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif.Other characteristics and advantages of the present invention will emerge from the description given below, with reference to the appended figures which illustrate examples of embodiment devoid of any limiting character.

Sur les figures:In the figures:

représente schématiquement les éléments principaux d’un dispositif électronique au sein duquel est mise en œuvre l’invention, ainsi qu’un dispositif de vérification et un dispositif de configuration avec lesquels le dispositif électronique peut coopérer selon l’invention ; schematically represents the main elements of an electronic device within which the invention is implemented, as well as a verification device and a configuration device with which the electronic device can cooperate according to the invention;

représente un exemple de courbe elliptique et d’un groupe de points de la courbe elliptique ; represents an example of an elliptic curve and a group of points of the elliptic curve;

représente sous forme de logigramme les étapes principales d’un procédé de traitement cryptographique selon un premier mode d’implémentation de l’invention ; represents in flowchart form the main steps of a cryptographic processing method according to a first mode of implementation of the invention;

représente sous forme de logigramme les étapes principales d’un procédé de traitement cryptographique selon un deuxième mode d’implémentation de l’invention ; represents in flowchart form the main steps of a cryptographic processing method according to a second mode of implementation of the invention;

représente sous forme de logigramme les étapes principales d’un procédé de traitement cryptographique selon un troisième mode d’implémentation de l’invention ; represents in flowchart form the main steps of a cryptographic processing method according to a third mode of implementation of the invention;

représente sous forme de logigramme les étapes principales d’un procédé de traitement cryptographique selon un quatrième mode d’implémentation de l’invention. represents in flowchart form the main steps of a cryptographic processing method according to a fourth mode of implementation of the invention.

Sauf indications contraires, les éléments communs ou analogues à plusieurs figures portent les mêmes signes de référence et présentent des caractéristiques identiques ou analogues, de sorte que ces éléments communs ne sont généralement pas à nouveau décrits par souci de simplicité.Unless otherwise indicated, elements common or similar to several figures bear the same reference signs and have identical or similar characteristics, so that these common elements are generally not described again for the sake of simplicity.

Dans le cadre de la présente description, des qualificatifs « premier », « deuxième », « troisième », « quatrième », « cinquième » ou « sixième » ne sont qu’à titre indicatif pour distinguer des éléments qu’ils qualifient, mais n’impliquent pas d’ordre entre eux.In the context of this description, the qualifiers “first”, “second”, “third”, “fourth”, “fifth” or “sixth” are only for information purposes to distinguish the elements that they qualify, but do not imply order between them.

La représente schématiquement les éléments principaux d’un dispositif électronique au sein duquel est mise en œuvre l’invention, ainsi qu’un dispositif de vérification et un dispositif de configuration avec lesquels le dispositif électronique peut coopérer selon l’invention.There schematically represents the main elements of an electronic device within which the invention is implemented, as well as a verification device and a configuration device with which the electronic device can cooperate according to the invention.

La représente ainsi schématiquement un dispositif électronique 2 comprenant un processeur 4 (par exemple un microprocesseur), un bloc de mémorisation 6, une mémoire vive 8 et un bloc de communication 10.There thus schematically represents an electronic device 2 comprising a processor 4 (for example a microprocessor), a storage block 6, a RAM 8 and a communication block 10.

La mémoire vive 8 et le bloc de mémorisation 6 sont chacun liés au processeur 4 de sorte que le processeur 4 peut lire ou écrire des données dans le bloc de mémorisation 6 et/ou la mémoire vive 8.The RAM 8 and the storage block 6 are each linked to the processor 4 so that the processor 4 can read or write data in the storage block 6 and/or the RAM 8.

Le bloc de mémorisation 6 mémorise des instructions de programme d’ordinateur, dont certaines sont conçues pour mettre en œuvre un procédé de traitement cryptographique tel que l’un au moins de ceux décrits en référence aux figures 3 à 6 lorsque ces instructions sont exécutées par le processeur 4.The storage block 6 stores computer program instructions, some of which are designed to implement a cryptographic processing method such as at least one of those described with reference to Figures 3 to 6 when these instructions are executed by the processor 4.

Le bloc de mémorisation 6 est par exemple en pratique un disque dur ou une mémoire non-volatile, éventuellement réinscriptible, par exemple de type EEPROM (pour "Electrically Erasable and Programmable Read-Only Memory" selon l’appellation anglo-saxonne couramment utilisée).The storage block 6 is for example in practice a hard disk or a non-volatile memory, possibly rewritable, for example of the EEPROM type (for "Electrically Erasable and Programmable Read-Only Memory" according to the Anglo-Saxon name commonly used) .

En outre, le bloc de mémorisation 6 et/ou la mémoire vive 8 peut quant mémoriser certains au moins des éléments (notamment les scalaires et les points d’une courbe elliptique) manipulés lors des différents traitements effectués au cours d’au moins un des procédés décrits ci-après.In addition, the storage block 6 and/or the RAM 8 can memorize at least some of the elements (in particular the scalars and the points of an elliptical curve) manipulated during the different treatments carried out during at least one of the processes described below.

On appelle mémoire dans la suite de la description, l’un quelconque parmi le bloc de mémorisation 6 et la mémoire vive 8.Memory in the remainder of the description is any one of the storage block 6 and the RAM 8.

Le dispositif électronique 2 comporte également plusieurs modules non représentés.The electronic device 2 also includes several modules not shown.

Typiquement, le dispositif électronique 2 comporte un module d’initialisation, un module de génération de clés, un module de génération de preuve et un module de transmission.Typically, the electronic device 2 comprises an initialization module, a key generation module, a proof generation module and a transmission module.

Ces modules peuvent en pratique être réalisés par une combinaison d’éléments matériels et d’éléments logiciels.These modules can in practice be produced by a combination of hardware elements and software elements.

Chaque module est configuré pour réaliser les étapes d’une phase décrite dans les procédés conformes à l’invention et exposés ci-après, et possède donc une fonctionnalité décrite dans les procédés conformes à l’invention et exposés ci-après. Ainsi, pour chaque module, le dispositif électronique 2 mémorise par exemple des instructions de logiciel exécutables par le processeur 4 du dispositif électronique 2 afin d’utiliser un élément matériel (par exemple une interface de communication ou une mémoire) et de mettre ainsi en œuvre la fonctionnalité offerte par le module.Each module is configured to carry out the steps of a phase described in the methods conforming to the invention and explained below, and therefore has a functionality described in the methods conforming to the invention and explained below. Thus, for each module, the electronic device 2 memorizes for example software instructions executable by the processor 4 of the electronic device 2 in order to use a hardware element (for example a communication interface or a memory) and thus implement the functionality offered by the module.

Selon une possibilité de réalisation, les instructions de programme d’ordinateur mémorisées dans le bloc de mémorisation 6 ont par exemple été reçues (par exemple d’un ordinateur distant) lors d’une phase de fonctionnement du dispositif électronique 2 antérieure aux procédés décrits en référence aux figures 3 à 6.According to one possible embodiment, the computer program instructions stored in the storage block 6 have for example been received (for example from a remote computer) during an operating phase of the electronic device 2 prior to the methods described in reference to Figures 3 to 6.

Le bloc de communication 10 est relié au processeur 4 de manière à permettre au processeur 4 de recevoir des données en provenance d’un autre dispositif électronique et/ou d’émettre des données à destination d’un autre dispositif électronique (par exemple un dispositif de configuration 22 et/ou un dispositif de vérification 12 tel que décrit ci-après). Dans certains modes de réalisation, le processeur 4 peut ainsi recevoir une donnée m de l’autre dispositif électronique, par exemple un premier scalaire secret en provenance d’un dispositif de configuration, tel que décrit en référence aux figures 3 et 6, et /ou émettre d’autres données, typiquement une preuve à divulgation nulle de connaissance telle que décrite aussi en référence aux figures 3 et 6.The communication block 10 is connected to the processor 4 so as to allow the processor 4 to receive data from another electronic device and/or to transmit data to another electronic device (for example a device configuration 22 and/or a verification device 12 as described below). In certain embodiments, the processor 4 can thus receive data m from the other electronic device, for example a first secret scalar coming from a configuration device, as described with reference to Figures 3 and 6, and/ or emit other data, typically a zero-knowledge proof as also described with reference to Figures 3 and 6.

La représente aussi schématiquement un dispositif de vérification 12 comprenant un processeur 14 (par exemple un microprocesseur), un bloc de mémorisation 16, une mémoire vive 18 et un bloc de communication 20.There also schematically represents a verification device 12 comprising a processor 14 (for example a microprocessor), a storage block 16, a RAM 18 and a communication block 20.

La mémoire vive 18 et le bloc de mémorisation 16 sont chacun liés au processeur 14 de sorte que le processeur 14 peut lire ou écrire des données dans le bloc de mémorisation 16 et/ou la mémoire vive 18.The RAM 18 and the storage block 16 are each linked to the processor 14 so that the processor 14 can read or write data in the storage block 16 and/or the RAM 18.

Le bloc de mémorisation 16 mémorise des instructions de programme d’ordinateur, dont certaines sont conçues pour coopérer avec le dispositif électronique 2 pendant un procédé de traitement cryptographique tel que l’un au moins de ceux décrits en référence aux figures 3 à 6 lorsque ces instructions sont exécutées par le processeur 14.The storage block 16 stores computer program instructions, some of which are designed to cooperate with the electronic device 2 during a cryptographic processing method such as at least one of those described with reference to Figures 3 to 6 when these instructions are executed by processor 14.

Le bloc de mémorisation 16 peut aussi mémoriser des instructions de programme d’ordinateur conçues pour coopérer avec un dispositif de configuration.The storage block 16 may also store computer program instructions designed to cooperate with a configuration device.

Le bloc de mémorisation 16 est par exemple en pratique un disque dur ou une mémoire non-volatile, éventuellement réinscriptible, par exemple de type EEPROM (pour "Electrically Erasable and Programmable Read-Only Memory" selon l’appellation anglo-saxonne couramment utilisée).The storage block 16 is for example in practice a hard disk or a non-volatile memory, possibly rewritable, for example of the EEPROM type (for "Electrically Erasable and Programmable Read-Only Memory" according to the Anglo-Saxon name commonly used). .

La mémoire vive 18 peut quant à elle mémoriser certains au moins des éléments (notamment des scalaires et des points d’une courbe elliptique) manipulés lors des différents traitements effectués pour coopérer avec le dispositif électronique 2 au cours d’au moins un des procédés décrits ci-après.The RAM 18 can memorize at least some of the elements (in particular scalars and points of an elliptical curve) manipulated during the different processing operations carried out to cooperate with the electronic device 2 during at least one of the methods described below.

Selon une possibilité de réalisation, les instructions de programme d’ordinateur mémorisées dans le bloc de mémorisation 16 ont par exemple été reçues (par exemple d’un ordinateur distant) lors d’une phase de fonctionnement du dispositif de vérification 12 antérieure aux procédés décrits en référence aux figures 3 à 6.According to one possible embodiment, the computer program instructions stored in the storage block 16 were for example received (for example from a remote computer) during an operating phase of the verification device 12 prior to the methods described with reference to Figures 3 to 6.

Le bloc de communication 20 est relié au processeur 14 de manière à permettre au processeur 14 de recevoir des données en provenance d’un autre dispositif électronique et/ou d’émettre des données à destination d’un autre dispositif électronique (par exemple un dispositif de configuration 22 tel que décrit ci-après /ou le dispositif électronique 2). Dans certains modes de réalisation, le processeur 14 peut ainsi recevoir une donnée de l’autre dispositif électronique, par exemple une preuve à divulgation nulle de connaissance en provenance du dispositif électronique 2, tel que décrit en référence aux figures 3 et 6, et/ou émettre d’autres données, typiquement un scalaire de challenge tel que décrit aussi en référence aux figures 3 et 6.The communication block 20 is connected to the processor 14 so as to allow the processor 14 to receive data from another electronic device and/or to transmit data to another electronic device (for example a device configuration 22 as described below / or the electronic device 2). In certain embodiments, the processor 14 can thus receive data from the other electronic device, for example a zero-disclosure proof of knowledge coming from the electronic device 2, as described with reference to Figures 3 and 6, and/ or transmit other data, typically a challenge scalar as also described with reference to Figures 3 and 6.

Un dispositif de configuration 22 est aussi représenté schématiquement dans la . Le dispositif de configuration 22 comprend un processeur 24 (par exemple un microprocesseur), un bloc de mémorisation 26, une mémoire vive 28 et un bloc de communication 30.A configuration device 22 is also represented schematically in the . The configuration device 22 comprises a processor 24 (for example a microprocessor), a storage block 26, a RAM 28 and a communication block 30.

La mémoire vive 28 et le bloc de mémorisation 26 sont chacun liés au processeur 24 de sorte que le processeur 24 peut lire ou écrire des données dans le bloc de mémorisation 26 et/ou la mémoire vive 28.The RAM 28 and the storage block 26 are each linked to the processor 24 so that the processor 24 can read or write data in the storage block 26 and/or the RAM 28.

Le bloc de mémorisation 26 mémorise des instructions de programme d’ordinateur, dont certaines sont conçues pour coopérer avec le dispositif électronique 2 pendant un procédé de traitement cryptographique tel que l’un au moins de ceux décrits en référence aux figures 3 à 6 lorsque ces instructions sont exécutées par le processeur 24.The storage block 26 stores computer program instructions, some of which are designed to cooperate with the electronic device 2 during a cryptographic processing method such as at least one of those described with reference to Figures 3 to 6 when these instructions are executed by processor 24.

Le bloc de mémorisation 26 peut aussi mémoriser des instructions de programme d’ordinateur conçues pour coopérer avec le dispositif de vérification 12.The storage block 26 can also store computer program instructions designed to cooperate with the verification device 12.

Le bloc de mémorisation 26 est par exemple en pratique un disque dur ou une mémoire non-volatile, éventuellement réinscriptible, par exemple de type EEPROM (pour "Electrically Erasable and Programmable Read-Only Memory" selon l’appellation anglo-saxonne couramment utilisée).The storage block 26 is for example in practice a hard disk or a non-volatile memory, possibly rewritable, for example of the EEPROM type (for "Electrically Erasable and Programmable Read-Only Memory" according to the Anglo-Saxon name commonly used). .

La mémoire vive 28 peut quant à elle mémoriser certains au moins des éléments (notamment des scalaires et des points d’une courbe elliptique) manipulés lors des différents traitements effectués pour coopérer avec le dispositif électronique 2 au cours d’au moins un des procédés décrits ci-après.The RAM 28 can memorize at least some of the elements (in particular scalars and points of an elliptical curve) manipulated during the different processing operations carried out to cooperate with the electronic device 2 during at least one of the methods described below.

Selon une possibilité de réalisation, les instructions de programme d’ordinateur mémorisées dans le bloc de mémorisation 26 ont par exemple été reçues (par exemple d’un ordinateur distant) lors d’une phase de fonctionnement du dispositif de configuration 22 antérieure aux procédés décrits en référence aux figures 3 à 6.According to one possible embodiment, the computer program instructions stored in the storage block 26 were for example received (for example from a remote computer) during an operating phase of the configuration device 22 prior to the methods described with reference to Figures 3 to 6.

Le bloc de communication 30 est relié au processeur 24 de manière à permettre au processeur 24 de recevoir des données en provenance d’un autre dispositif et/ou d’émettre des données à destination d’un autre dispositif électronique (par exemple le dispositif de vérification 12 et/ou le dispositif électronique 2). Dans certains modes de réalisation, le processeur 24 peut ainsi recevoir une donnée de l’autre dispositif électronique, par exemple un premier scalaire secret en provenance du dispositif électronique 2 ou une clé publique racine, tel que décrit en référence aux figures 3 et 6, et /ou émettre d’autres données, typiquement un premier scalaire secret tel que décrit aussi en référence aux figures 3 et 6.The communication block 30 is connected to the processor 24 so as to allow the processor 24 to receive data from another device and/or to transmit data to another electronic device (for example the monitoring device). verification 12 and/or the electronic device 2). In certain embodiments, the processor 24 can thus receive data from the other electronic device, for example a first secret scalar coming from the electronic device 2 or a root public key, as described with reference to Figures 3 and 6, and/or transmit other data, typically a first secret scalar as also described with reference to Figures 3 and 6.

Chaque figure parmi les figures 3 et 6, représente un procédé de traitement cryptographique conforme à l’invention.Each figure among Figures 3 and 6 represents a cryptographic processing method according to the invention.

Chacun de ces procédés est ici mis en œuvre par le dispositif électronique 2 (du fait de l’exécution des instructions de programme d’ordinateur mémorisées dans le bloc de mémorisation 6 comme indiqué ci-dessus).Each of these processes is implemented here by the electronic device 2 (due to the execution of the computer program instructions stored in the storage block 6 as indicated above).

Chacun des procédés décrits en référence aux figures 3 et 4, met en œuvre des opérations dans un groupe Gr fini d’ordre premier n, de points d’une courbe elliptique E. Ce groupe Gr est muni d’une opération d’addition, notée ci-après +, de deux points de la courbe elliptique E. Un produit scalaire notée [x]·Y, est la multiplication d’un point Y de la courbe elliptique par un scalaire x et correspond à l’itération x-1 fois de l’opération d’addition du groupe Gr sur ledit point Y : Y + … + Y. Ce produit scalaire peut reposer sur l’accumulation de multiples de ce point. On notera que dans le cas particulier d’un scalaire x valant 0, le résultat du produit scalaire est le point à l’infini du groupe Gr.Each of the methods described with reference to Figures 3 and 4, implements operations in a finite group Gr of first order n, of points of an elliptic curve E. This group Gr is provided with an addition operation, noted below +, of two points of the elliptic curve E. A scalar product denoted [x]·Y, is the multiplication of a point Y of the elliptic curve by a scalar x and corresponds to the iteration x-1 times of the addition operation of the group Gr on said point Y: Y + … + Y. This scalar product can be based on the accumulation of multiples of this point. Note that in the particular case of a scalar x worth 0, the result of the scalar product is the point at infinity of the group Gr.

La courbe elliptique E est définie par un ensemble de paramètres comprenant un point du groupe Gr appelé point générateur G, qui est public. Ce point générateur est donc prédéterminé et peut être en pratique mémorisé dans le dispositif électronique 2, par exemple dans son bloc de mémorisation 6.The elliptic curve E is defined by a set of parameters including a point of the group Gr called generator point G, which is public. This generating point is therefore predetermined and can in practice be stored in the electronic device 2, for example in its storage block 6.

Tout point du groupe Gr peut être associé de façon univoque à un ensemble de z coordonnées affines dans un repère d’un espace de dimension z.Any point in the group Gr can be uniquely associated with a set of z affine coordinates in a coordinate system of a z-dimensional space.

En outre, chacun des procédés décrits en référence aux figures 3 et 4, met en œuvre des calculs algébriques à l’aide d’opérations algébriques (addition, produit, soustraction) sur des scalaires.In addition, each of the methods described with reference to Figures 3 and 4 implements algebraic calculations using algebraic operations (addition, product, subtraction) on scalars.

La représente un exemple de courbe elliptique E dans un repère affine de dimension 2, et un exemple d’un groupe Gr de points de la courbe elliptique E définie sur un corps K.There represents an example of an elliptic curve E in an affine coordinate system of dimension 2, and an example of a group Gr of points of the elliptic curve E defined on a body K.

L’invention ne se limite pas à cet exemple de courbe elliptique et de groupe Gr. Selon d’autres exemples, la courbe elliptique E peut avoir une autre forme dans ce repère, ou la courbe elliptique E peut être définie dans un autre repère et/ou un autre espace, notamment de dimension supérieure à 2.The invention is not limited to this example of an elliptic curve and group Gr. According to other examples, the elliptic curve E can have another shape in this reference, or the elliptic curve E can be defined in another reference and /or another space, in particular of dimension greater than 2.

La représente sous forme de logigramme les étapes principales d’un procédé de traitement cryptographique selon un premier mode d’implémentation de l’invention.There represents in flowchart form the main steps of a cryptographic processing method according to a first mode of implementation of the invention.

Ce procédé est mis en œuvre par le dispositif électronique 2 en coopération avec un dispositif de vérification, typiquement le dispositif de vérification 12.This method is implemented by the electronic device 2 in cooperation with a verification device, typically the verification device 12.

Selon une étape d’enregistrement E120, le processeur 4 enregistre dans une mémoire du dispositif électronique 2 une clé privée racine r.According to a recording step E120, the processor 4 records in a memory of the electronic device 2 a root private key r.

Cette étape est dans une phase du procédé dite phase d’initialisation (Phase P1) d’un ensemble d’au moins un premier scalaire secret, formant la clé privée racine r, ladite clé privée racine r étant associée à une clé publique racine R.This step is in a phase of the process called the initialization phase (Phase P1) of a set of at least one first secret scalar, forming the root private key r, said root private key r being associated with a root public key R .

Cette phase d’initialisation est typiquement mise en œuvre par le module d’initialisation du dispositif électronique 2.This initialization phase is typically implemented by the initialization module of the electronic device 2.

Ici la clé privée racine r est formée d’un seul premier scalaire secret r1.Here the root private key r is formed from a single first secret scalar r 1 .

Autrement dit, l’ensemble d’au moins un premier scalaire secret, formant la clé privée racine r, possède un seul premier scalaire secret, r1.In other words, the set of at least one first secret scalar, forming the root private key r, has a single first secret scalar, r 1 .

Le procédé est ainsi simplifié. Le procédé permet l’utilisation d’une seule et unique clé privée racine r pour une clé publique racine R déterminée. Le procédé permet aussi l’utilisation d’une seule et unique clé publique racine R pour une clé privée racine r déterminée.The process is thus simplified. The method allows the use of a single and unique r-root private key for a determined R-root public key. The method also allows the use of a single and unique R root public key for a determined R root private key.

Typiquement, la clé publique racine R est égale au produit scalaire du point générateur G par le premier scalaire secret r1: R = [r1]·G .Typically, the root public key R is equal to the scalar product of the generating point G by the first secret scalar r 1 : R = [r 1 ]·G.

Selon un exemple, lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, le même premier scalaire secret et la même clé publique racine R sont utilisés pour chacun des dispositifs électroniques de ladite pluralité. Ainsi, la vérification est simplifiée car elle nécessite l’utilisation d’une seule et unique clé publique racine R, qui est commune à tous les dispositifs électroniques de ladite pluralité.According to one example, when the method is implemented by each electronic device of a plurality of electronic devices, the same first secret scalar and the same root public key R are used for each of the electronic devices of said plurality. Thus, verification is simplified because it requires the use of a single and unique root public key R, which is common to all electronic devices of said plurality.

Selon un autre exemple, lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, chacun des dispositifs électroniques de ladite pluralité utilise un premier scalaire secret et une clé publique racine R qui lui sont propres, ce qui rend le procédé plus sécurisé.According to another example, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality uses a first secret scalar and a root public key R which are specific to it, which makes the more secure process.

Au cours de cette étape d’enregistrement (étape E120), le processeur 4 enregistre donc dans une mémoire du dispositif électronique 2 le premier scalaire secret r1.During this recording step (step E120), the processor 4 therefore records the first secret scalar r 1 in a memory of the electronic device 2.

La phase d’initialisation (Phase P1) peut comprendre les étapes complémentaires suivantes (étapes E110, E112 et E114).The initialization phase (Phase P1) may include the following complementary steps (steps E110, E112 and E114).

Ainsi le procédé peut comprendre, avant l’étape d’enregistrement (étape E120), une étape de calcul, par le processeur 4, de tous les premiers scalaires secrets de l’ensemble formant la clé privée racine r (étape E110), c’est à dire ici du premier scalaire secret r1.Thus the method can comprise, before the recording step (step E120), a step of calculation, by the processor 4, of all the first secret scalars of the set forming the root private key r (step E110), c that is to say here of the first secret scalar r 1 .

Typiquement, au moins un premier scalaire secret de la clé privée racine, ici le premier scalaire secret r1 ,peut être calculé par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.Typically, at least a first secret scalar of the root private key, here the first secret scalar r 1 , can be calculated by random selection or by application of a non-clonable physical function, for example a function as described in the document ' A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 02/12/2019.

Le procédé est ainsi particulièrement sécurisé car le dispositif électronique peut assurer seul la confidentialité de la clé privée racine r. En outre le dispositif électronique dispose d’une clé privée racine r qui lui est propre.The method is thus particularly secure because the electronic device can alone ensure the confidentiality of the root private key r. In addition, the electronic device has its own private root r key.

Le procédé comprend alors une étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E112).The method then includes a step of calculating the root public key R from the root private key r (step E112).

Typiquement, le processeur 4 peut calculer la clé publique racine R comme suit : R = [r1]·G .Typically, the processor 4 can calculate the root public key R as follows: R = [r 1 ]·G.

Le procédé peut ensuite comprendre une étape d’envoi à un dispositif de configuration (étape E114), typiquement le dispositif de configuration 22, de la clé publique racine R calculée.The method can then include a step of sending to a configuration device (step E114), typically the configuration device 22, the calculated root public key R.

Ainsi, de façon avantageuse le dispositif de configuration peut certifier la clé publique racine R.Thus, advantageously the configuration device can certify the root public key R.

Le procédé permet ainsi à une autorité disposant du dispositif de configuration d’assurer que la phase d’initialisation du dispositif électronique a été réalisée sous son contrôle.The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.

La certification de la clé publique racine peut consister en l’inscription de la clé publique racine dans une liste d’au moins une clé publique de confiance, ou en la signature cryptographique de ladite clé publique racine, par exemple avec une clé privée de certification émise par une autorité de confiance.Certification of the root public key may consist of registering the root public key in a list of at least one trusted public key, or of cryptographic signing of said root public key, for example with a private certification key. issued by a trusted authority.

L’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E112) et l’étape d’envoi à un dispositif de configuration (étape E114) de la clé publique racine R sont ici exécutées avant l’étape d’enregistrement (E120) mais l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E112) et/ou l’étape d’envoi à un dispositif de configuration (étape E114) peut être exécutée après l’étape d’enregistrement (E120) du moment que l’étape d’envoi à un dispositif de configuration (étape E114) est exécutée après l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E112).The step of calculating the root public key R from the root private key r (step E112) and the step of sending the root public key R to a configuration device (step E114) are here executed before the recording step (E120) but the step of calculating the root public key R from the root private key r (step E112) and/or the step of sending to a configuration device (step E114) can be executed after the recording step (E120) as long as the step of sending to a configuration device (step E114) is executed after the step of calculating the root public key R from the key private root r (step E112).

On notera en outre que l’étape d’envoi à un dispositif de configuration (étape E114) de la clé publique racine R peut être omise.It should also be noted that the step of sending the root public key R to a configuration device (step E114) can be omitted.

Selon une autre possibilité, la phase d’initialisation (Phase P1) peut comprendre d’autres étapes complémentaires (étapes E111, E112 et E114 suivantes).According to another possibility, the initialization phase (Phase P1) may include other complementary steps (following steps E111, E112 and E114).

Ainsi le procédé peut comprendre, avant l’étape d’enregistrement (étape E120), une étape de réception (étape E111), en provenance du dispositif de configuration, d’au moins un premier scalaire secret de la clé privée racine r, c’est à dire ici du premier scalaire secret r1, ledit au moins un premier scalaire secret reçu du dispositif de configuration étant calculé à partir d’une clé privée maitre.Thus the method can comprise, before the recording step (step E120), a reception step (step E111), from the configuration device, of at least a first secret scalar of the root private key r, c that is to say here of the first secret scalar r 1 , said at least one first secret scalar received from the configuration device being calculated from a master private key.

Typiquement, le dispositif de configuration dispose d’un quatrième scalaire secret formant la clé privée maitre.Typically, the configuration device has a fourth secret scalar forming the master private key.

Le procédé est ainsi particulièrement sécurisé car la détermination de la clé privée racine nécessite une coopération du dispositif de configuration.The method is thus particularly secure because the determination of the root private key requires cooperation from the configuration device.

Ici la clé privée racine r est formée d’un seul premier scalaire secret r1, le dispositif électronique reçoit donc du dispositif de configuration, tous les premiers scalaires secrets de l’ensemble formant la clé privée racine.Here the root private key r is formed from a single first secret scalar r 1 , the electronic device therefore receives from the configuration device, all the first secret scalars of the set forming the root private key.

Ainsi, l’efficacité du procédé est augmentée en limitant les interactions entre le dispositif de configuration et le dispositif électronique.Thus, the efficiency of the process is increased by limiting the interactions between the configuration device and the electronic device.

Selon un exemple, le premier scalaire secret r1reçu du dispositif de configuration est la clé privée maitre.According to one example, the first secret scalar r 1 received from the configuration device is the master private key.

Selon un autre exemple, le premier scalaire secret r1reçu du dispositif de configuration, peut être dérivé par le dispositif de configuration à partir de la clé privée maitre en utilisant toute fonction de dérivation adaptée et bien connue de l’homme du métier.According to another example, the first secret scalar r 1 received from the configuration device can be derived by the configuration device from the master private key using any suitable derivation function well known to those skilled in the art.

La clé publique racine R peut être calculée par le dispositif de configuration.The root public key R can be calculated by the configuration device.

Selon une autre possibilité, le procédé peut aussi comprendre une étape de calcul par le dispositif électronique 2 de la clé publique racine R à partir de la clé privée racine r (étape E112) et une étape d’envoi au dispositif de configuration (étape E114) de la clé publique racine R calculée.According to another possibility, the method can also include a step of calculation by the electronic device 2 of the root public key R from the root private key r (step E112) and a step of sending to the configuration device (step E114 ) of the calculated root public key R.

L’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E112) et l’étape d’envoi à un dispositif de configuration (étape E114) de la clé publique racine R sont illustrées dans la avant l’étape d’enregistrement (E120), mais lorsqu’elles ne sont pas omises après l’étape de réception (étape E111), l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E112) et/ou l’étape d’envoi à un dispositif de configuration (étape E114) peut être exécutée après l’étape d’enregistrement (étape E120) du moment que l’étape d’envoi à un dispositif de configuration (étape E114) est exécutée après l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E112).The step of calculating the root public key R from the root private key r (step E112) and the step of sending the root public key R to a configuration device (step E114) are illustrated in the before the recording step (E120), but when they are not omitted after the reception step (step E111), the step of calculating the root public key R from the root private key r ( step E112) and/or the step of sending to a configuration device (step E114) can be executed after the recording step (step E120) as long as the step of sending to a configuration device ( step E114) is executed after the step of calculating the root public key R from the root private key r (step E112).

De façon avantageuse le dispositif de configuration peut certifier la clé publique racine R.Advantageously, the configuration device can certify the root public key R.

Le procédé permet ainsi à une autorité disposant du dispositif de configuration d’assurer que la phase d’initialisation du dispositif électronique a été réalisée sous son contrôle.The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.

La certification de la clé publique racine peut consister en l’inscription de la clé publique racine dans une liste d’au moins une clé publique de confiance, ou en la signature cryptographique de ladite clé publique racine, par exemple avec une clé privée de certification émise par une autorité de confiance.Certification of the root public key may consist of registering the root public key in a list of at least one trusted public key, or of cryptographic signing of said root public key, for example with a private certification key. issued by a trusted authority.

Après l’étape d’enregistrement (étape E120), le procédé comprend alors une étape (étape E220) de calcul d’un deuxième scalaire secret formant une clé privée dérivée a égal à f(s, k) où f est une fonction de dérivation, s est un sous-ensemble non vide de l‘ensemble d'au moins un premier scalaire secret, et k est un troisième scalaire secret : a = f(s, k).After the recording step (step E120), the method then comprises a step (step E220) of calculating a second secret scalar forming a derived private key a equal to f(s, k) where f is a function of derivation, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar: a = f(s, k).

Ici, l’ensemble d'au moins un premier scalaire secret possède un seul premier scalaire secret, le premier scalaire secret r1, et le sous-ensemble s possède donc un seul premier scalaire secret, le premier scalaire secret r1.Here, the set of at least one first secret scalar has a single first secret scalar, the first secret scalar r 1 , and the subset s therefore has a single first secret scalar, the first secret scalar r 1 .

Le troisième scalaire secret k peut être déterminé par le dispositif électronique par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.The third secret scalar k can be determined by the electronic device by random selection or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published 02/12/2019.

Selon un premier exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k·r1mod n.According to a first example, the differentiation function f can be defined as follows: f(s, k) = k·r 1 mod n.

Selon un deuxième exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k + r1mod n.According to a second example, the differentiation function f can be defined as follows: f(s, k) = k + r 1 mod n.

Le procédé comprend alors une étape de calcul d’une clé publique dérivée A associée au deuxième scalaire secret a (étape E240), c’est-à-dire à la clé privée dérivée a.The method then comprises a step of calculating a derived public key A associated with the second secret scalar a (step E240), that is to say with the derived private key a.

Typiquement, le processeur 4 peut calculer la clé publique dérivée A comme suit : A = [a]·G . Selon une première autre possibilité, quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E220) est définie selon le premier exemple décrit ci-avant, le processeur 4 peut calculer la clé publique dérivée A comme suit : A = [k]·R .Typically, the processor 4 can calculate the derived public key A as follows: A = [a]·G. According to a first other possibility, when the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the first example described above, the processor 4 can calculate the derived public key A as follows: A = [k] · R.

Selon une deuxième autre possibilité, quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E220) est définie selon le deuxième exemple décrit ci-avant, le processeur 4 peut calculer la clé publique dérivée A comme suit : A = R + [k]·G .According to a second other possibility, when the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the second example described above, the processor 4 can calculate the derived public key A as follows: A = R + [k]·G.

L’étape de calcul d’un deuxième scalaire secret (étape E220) et l’étape de calcul d’une clé publique dérivée A (étape E240) sont dans une phase du procédé dite phase de génération d’une clé privée dérivée et d’une clé publique dérivée (phase P2).The step of calculating a second secret scalar (step E220) and the step of calculating a derived public key A (step E240) are in a phase of the method called the phase of generating a derived private key and 'a derived public key (phase P2).

Cette phase de génération d’une clé privée dérivée et d’une clé publique dérivée (phase P2) est typiquement mise en œuvre par le module de génération de clés du dispositif électronique 2.This phase of generating a derived private key and a derived public key (phase P2) is typically implemented by the key generation module of the electronic device 2.

Le procédé comprend alors une étape de génération d’une preuve à divulgation nulle de connaissance (étape E320) que la clef publique dérivée A est associée à un scalaire égal à f(u, l), u étant le sous-ensemble s de l’ensemble d'au moins un premier scalaire secret, formant la clé privée racine r associée à la clef publique racine R et l étant égal à k.The method then comprises a step of generating a proof with zero disclosure of knowledge (step E320) that the derived public key A is associated with a scalar equal to f(u, l), u being the subset s of l set of at least one first secret scalar, forming the root private key r associated with the root public key R and l being equal to k.

L’étape de génération d’une preuve à divulgation nulle de connaissance (étape E320) est dans une phase du procédé dite phase de génération de preuve (phase P3).The step of generating a proof with zero knowledge disclosure (step E320) is in a phase of the method called the proof generation phase (phase P3).

Cette phase de génération de preuve (phase P3) est typiquement mise en œuvre par le module de génération de preuve du dispositif électronique 2.This proof generation phase (phase P3) is typically implemented by the proof generation module of the electronic device 2.

Le procédé comprend alors une étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E420), pendant laquelle le dispositif électronique 2 transmet au dispositif de vérification, typiquement en utilisant son bloc de communication 10, la preuve à divulgation nulle de connaissance.The method then comprises a step of transmitting the zero knowledge disclosure proof to the verification device (step E420), during which the electronic device 2 transmits to the verification device, typically using its communication block 10, the disclosure proof zero knowledge.

Le procédé permet ainsi au dispositif de vérification de vérifier que la clé privée dérivée a dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The method thus allows the verification device to verify that the derived private key a derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

En outre, le procédé permet cette vérification sans divulguer, typiquement au dispositif de vérification, la clé privée racine r, ni le sous-ensemble s, ni la clé privée dérivée a, ni le troisième scalaire secret k.Furthermore, the method allows this verification without disclosing, typically to the verification device, the root private key r, nor the subset s, nor the derived private key a, nor the third secret scalar k.

L’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E420) est dans une phase du procédé dite phase de transmission (phase P4).The step of transmitting the proof with zero knowledge disclosure to the verification device (step E420) is in a phase of the method called the transmission phase (phase P4).

Cette phase de transmission (phase P4) est typiquement mise en œuvre par le module de de transmission du dispositif électronique 2.This transmission phase (phase P4) is typically implemented by the transmission module of the electronic device 2.

Selon une possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve non interactive.According to one implementation possibility, the proof with zero knowledge disclosure is a non-interactive proof.

La mise en œuvre de la phase de génération de preuve et de la phase de transmission est ainsi simplifiée, notamment en limitant les échanges entre le dispositif électronique et le dispositif de vérification qui peuvent être unidirectionnels et asynchrones.The implementation of the proof generation phase and the transmission phase is thus simplified, in particular by limiting the exchanges between the electronic device and the verification device which can be unidirectional and asynchronous.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E220) est définie selon le premier exemple décrit ci-avant pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance non interactive au cours de l’étape associée (étape E320).When the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the first example described above for this step, the processor 4 can perform the following calculations to generate the proof to zero disclosure of non-interactive knowledge during the associated step (step E320).

Le processeur 4 calcule un premier point intermédiaire comme suit : S1= [t1]·G où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée.The processor 4 calculates a first intermediate point as follows: S 1 = [t 1 ]·G where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a data.

Le processeur 4 calcule aussi un deuxième point intermédiaire comme suit : S2= [t2]·R où t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate point as follows: S 2 = [t 2 ]·R where t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another datum.

Le processeur 4 calcule ensuite un premier condensat d’une donnée intermédiaire par une fonction de hachage, par exemple SHA256 ou SHA3, telles que spécifiées dans le document FIPS PUB 180-4 intitulé ‘Secure Hash Standard’ et publié en aout 2015 par le NIST, la donnée intermédiaire étant la concaténation du premier point intermédiaire S1, du deuxième point intermédiaire S2, de la clé publique racine R et de la clé publique dérivée A.The processor 4 then calculates a first condensate of intermediate data by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by NIST , the intermediate data being the concatenation of the first intermediate point S 1 , the second intermediate point S 2 , the root public key R and the derived public key A.

Autrement dit, c = Ha(S1|| S2||R||A), où c est le premier condensat et Ha est la fonction de hachage.That is, c = Ha(S 1 || S 2 ||R||A), where c is the first condensate and Ha is the hash function.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1et un deuxième scalaire de preuve s2comme suit : s1= t1+ c·r1mod n et s2= t2+ c·k mod n.Then the processor 4 respectively calculates a first proof scalar s 1 and a second proof scalar s 2 as follows: s 1 = t 1 + c·r 1 mod n and s 2 = t 2 + c·k mod n.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier condensat c, du premier scalaire de preuve s1et du deuxième scalaire de preuve s2.The proof with zero knowledge disclosure is thus made up of the first condensate c, the first proof scalar s 1 and the second proof scalar s 2 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier condensat c, le premier scalaire de preuve s1et le deuxième scalaire de preuve s2.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar s 1 and the second scalar of proof s 2 .

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un troisième point intermédiaire S’1comme suit : S’1= [s1]·G - [c]·R.Typically the verification device can calculate a third intermediate point S' 1 as follows: S' 1 = [s 1 ]·G - [c]·R.

Le dispositif de vérification peut aussi calculer un quatrième point intermédiaire S’2comme suit : S’2= [s2]·R - [c]·A .The verification device can also calculate a fourth intermediate point S' 2 as follows: S' 2 = [s 2 ]·R - [c]·A.

Le dispositif de vérification peut ensuite calculer un deuxième condensat d’une autre donnée intermédiaire par la fonction de hachage, l’autre donnée intermédiaire étant la concaténation du troisième point intermédiaire S’1, du quatrième point intermédiaire S’2, de la clé publique racine R et de la clé publique dérivée A.The verification device can then calculate a second condensate of another intermediate data by the hash function, the other intermediate data being the concatenation of the third intermediate point S' 1 , of the fourth intermediate point S' 2 , of the public key root R and the derived public key A.

Autrement dit, c’ = Ha(S’1|| S’2||R||A), où c’ est le deuxième condensat.In other words, c' = Ha(S' 1 || S' 2 ||R||A), where it is the second condensate.

Le dispositif de vérification peut alors comparer le deuxième condensat c’ avec le premier condensat c. Si le deuxième condensat c’ est égal au premier condensat c, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The verification device can then compare the second condensate c’ with the first condensate c. If the second condensate c' is equal to the first condensate c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

La clé publique dérivée A et la clé publique racine R sont des clés publiques et peuvent donc être reçues par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration 22 et/ou du dispositif électronique 2.The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device 22 and/or from the electronic device 2.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E220) est définie selon le deuxième exemple décrit ci-avant pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance non interactive au cours de l’étape associée (étape E320).When the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the second example described above for this step, the processor 4 can perform the following calculations to generate the proof to zero disclosure of non-interactive knowledge during the associated step (step E320).

Le processeur 4 calcule un premier point intermédiaire comme suit : S1= [t1]·G où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée.The processor 4 calculates a first intermediate point as follows: S 1 = [t 1 ]·G where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a data.

Le processeur 4 calcule aussi un deuxième point intermédiaire comme suit : S2= [t2]·G où t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate point as follows: S 2 = [t 2 ]·G where t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another datum.

Le processeur 4 calcule ensuite un premier condensat d’une donnée intermédiaire par une fonction de hachage, par exemple SHA256 ou SHA3, telles que spécifiées dans le document FIPS PUB 180-4 intitulé ‘Secure Hash Standard’ et publié en aout 2015 par le NIST, la donnée intermédiaire étant la concaténation du premier point intermédiaire S1, du deuxième point intermédiaire S2, de la clé publique racine R et de la clé publique dérivée A.The processor 4 then calculates a first condensate of intermediate data by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by NIST , the intermediate data being the concatenation of the first intermediate point S 1 , the second intermediate point S 2 , the root public key R and the derived public key A.

Autrement dit, c = Ha(S1|| S2||R||A), où c est le premier condensat et Ha est la fonction de hachage.That is, c = Ha(S 1 || S 2 ||R||A), where c is the first condensate and Ha is the hash function.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1et un deuxième scalaire de preuve s2comme suit : s1= t1+ c·r1mod n et s2= t2+ c·k mod n.Then the processor 4 respectively calculates a first proof scalar s 1 and a second proof scalar s 2 as follows: s 1 = t 1 + c·r 1 mod n and s 2 = t 2 + c·k mod n.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier condensat c, du premier scalaire de preuve s1et du deuxième scalaire de preuve s2.The proof with zero knowledge disclosure is thus made up of the first condensate c, the first proof scalar s 1 and the second proof scalar s 2 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier condensat c, le premier scalaire de preuve s1et le deuxième scalaire de preuve s2.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar s 1 and the second scalar of proof s 2 .

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un troisième point intermédiaire S’1comme suit : S’1= [s1]·G - [c]·R.Typically the verification device can calculate a third intermediate point S' 1 as follows: S' 1 = [s 1 ]·G - [c]·R.

Le dispositif de vérification peut aussi calculer un quatrième point intermédiaire S’2comme suit : S’2= [s2]·G - [c]·(A-R) .The verification device can also calculate a fourth intermediate point S' 2 as follows: S' 2 = [s 2 ] · G - [c] · (AR).

Le dispositif de vérification peut ensuite calculer un deuxième condensat d’une autre donnée intermédiaire par la fonction de hachage, l’autre donnée intermédiaire étant la concaténation du troisième point intermédiaire S’1, du quatrième point intermédiaire S’2, de la clé publique racine R et de la clé publique dérivée A.The verification device can then calculate a second condensate of another intermediate data by the hash function, the other intermediate data being the concatenation of the third intermediate point S' 1 , of the fourth intermediate point S' 2 , of the public key root R and the derived public key A.

Autrement dit, c’ = Ha(S’1|| S’2||R||A), où c’ est le deuxième condensat.In other words, c' = Ha(S' 1 || S' 2 ||R||A), where it is the second condensate.

Le dispositif de vérification peut alors comparer le deuxième condensat c’ avec le premier condensat c. Si le deuxième condensat c’ est égal au premier condensat c, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The verification device can then compare the second condensate c’ with the first condensate c. If the second condensate c' is equal to the first condensate c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

La clé publique dérivée A et la clé publique racine R sont des clés publiques et peuvent donc être reçues par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique.The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device.

Selon une autre possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve interactive.According to another implementation possibility, the proof with zero knowledge disclosure is an interactive proof.

La génération de la preuve à divulgation nulle de connaissance, et la transmission de la preuve à divulgation nulle de connaissance à un dispositif de vérification, sont par exemple sous la forme d’un protocole défi-réponse.The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are for example in the form of a challenge-response protocol.

Le procédé permet ainsi au dispositif de vérification de vérifier que le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k, c’est-à-dire que le dispositif électronique peut réaliser au moins un traitement impliquant tous les premiers scalaires secrets de l’ensemble formant la clé privée racine et au moins un traitement impliquant le troisième scalaire secret k.The method thus allows the verification device to verify that the electronic device has the root private key r and the third secret scalar k, that is to say that the electronic device can carry out at least one processing involving all the first scalars secrets of the set forming the root private key and at least one processing involving the third secret scalar k.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E220) est définie selon le premier exemple décrit plus haut pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance interactive au cours de l’étape associée (étape E320).When the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the first example described above for this step, the processor 4 can perform the following calculations to generate the proof for disclosure zero interactive knowledge during the associated step (step E320).

Le processeur 4 calcule un premier point intermédiaire comme suit : S1= [t1]·G où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée.The processor 4 calculates a first intermediate point as follows: S 1 = [t 1 ]·G where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a data.

Le processeur 4 calcule aussi un deuxième point intermédiaire comme suit : S2= [t2]·R où t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate point as follows: S 2 = [t 2 ]·R where t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another datum.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1et un deuxième scalaire de preuve s2comme suit : s1= t1+ c·r1mod n et s2= t2+ c·k mod n, où c est un scalaire de challenge préalablement reçu par le dispositif électronique 2 en provenance du dispositif de vérification.Then the processor 4 respectively calculates a first proof scalar s 1 and a second proof scalar s 2 as follows: s 1 = t 1 + c r 1 mod n and s 2 = t 2 + c k mod n, where it is a challenge scalar previously received by the electronic device 2 from the verification device.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier point intermédiaire S1, du deuxième point intermédiaire S2, du premier scalaire de preuve s1et du deuxième scalaire de preuve s2.The proof with zero knowledge disclosure is thus made up of the first intermediate point S 1 , the second intermediate point S 2 , the first proof scalar s 1 and the second proof scalar s 2 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier point intermédiaire S1, le deuxième point intermédiaire S2, le premier scalaire de preuve s1et le deuxième scalaire de preuve s2.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E420), the electronic device 2 can then transmit to the verification device the first intermediate point S 1 , the second intermediate point S 2 , the first proof scalar s 1 and the second proof scalar s 2 .

De préférence, pour améliorer la sécurité, le scalaire de challenge c est reçu par le dispositif électronique 2 en provenance du dispositif de vérification, préalablement au calcul du premier scalaire de preuve s1et du deuxième scalaire de preuve s2, mais après l’envoi par le dispositif électronique 2 au dispositif de vérification, du premier point intermédiaire S1et du deuxième point intermédiaire S2. L’étape de génération d'une preuve à divulgation nulle de connaissance (étape E320) et l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E420), respectivement la phase de génération de preuve et la phase de transmission, sont alors réalisées de façon concomitante (non représentée dans la figure).Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar s 1 and the second proof scalar s 2 , but after the sending by the electronic device 2 to the verification device, of the first intermediate point S 1 and the second intermediate point S 2 . The step of generating a proof with zero knowledge disclosure (step E320) and the step of transmitting the proof with zero knowledge disclosure to the verification device (step E420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un troisième point intermédiaire S’1comme suit : S’1= S1+ [c]·R.Typically the verification device can calculate a third intermediate point S' 1 as follows: S' 1 = S 1 + [c]·R.

Le dispositif de vérification peut aussi calculer un quatrième point intermédiaire S’2comme suit : S’2= S2 +[c]·A .The verification device can also calculate a fourth intermediate point S' 2 as follows: S' 2 = S 2 + [c]·A.

Le dispositif de vérification peut calculer un cinquième point intermédiaire S’’1comme suit : S’’1= [s1]·G.The verification device can calculate a fifth intermediate point S'' 1 as follows: S'' 1 = [s 1 ]·G.

Le dispositif de vérification peut calculer un sixième point intermédiaire S’’2comme suit : S’’2= [s2]·R .The verification device can calculate a sixth intermediate point S'' 2 as follows: S'' 2 = [s 2 ] · R .

Le dispositif de vérification peut alors comparer respectivement le troisième point intermédiaire S’1avec le cinquième point intermédiaire S’’1,et le quatrième point intermédiaire S’2avec le sixième point intermédiaire S’’2.The verification device can then respectively compare the third intermediate point S'1 with the fifth intermediate point S''1 , and the fourth intermediate point S'2 with the sixth intermediate point S''2 .

Si le troisième point intermédiaire S’1est égal au cinquième point intermédiaire S’’1,et si le quatrième point intermédiaire S’2est égal au sixième point intermédiaire S’’2, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R, et le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k.If the third intermediate point S' 1 is equal to the fifth intermediate point S'' 1, and if the fourth intermediate point S' 2 is equal to the sixth intermediate point S'' 2 , the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.

La clé publique dérivée A et la clé publique racine R sont des clés publiques et peuvent donc être reçues par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique 2.The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device 2.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E220) est définie selon le deuxième exemple décrit plus haut pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance interactive au cours de l’étape associée (étape E320).When the derivation function f used during the step of calculating a second secret scalar (step E220) is defined according to the second example described above for this step, the processor 4 can perform the following calculations to generate the proof for disclosure zero interactive knowledge during the associated step (step E320).

Le processeur 4 calcule un premier point intermédiaire comme suit : S1= [t1]·G où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée.The processor 4 calculates a first intermediate point as follows: S 1 = [t 1 ]·G where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a data.

Le processeur 4 calcule aussi un deuxième point intermédiaire comme suit : S2= [t2]·G où t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate point as follows: S 2 = [t 2 ]·G where t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another datum.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1et un deuxième scalaire de preuve s2comme suit : s1= t1+ c·r1mod n et s2= t2+ c·k mod n, où c est un scalaire de challenge préalablement reçu par le dispositif électronique en provenance du dispositif de vérification.Then the processor 4 respectively calculates a first proof scalar s 1 and a second proof scalar s 2 as follows: s 1 = t 1 + c r 1 mod n and s 2 = t 2 + c k mod n, where it is a challenge scalar previously received by the electronic device from the verification device.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier point intermédiaire S1, du deuxième point intermédiaire S2, du premier scalaire de preuve s1et du deuxième scalaire de preuve s2.The proof with zero knowledge disclosure is thus made up of the first intermediate point S 1 , the second intermediate point S 2 , the first proof scalar s 1 and the second proof scalar s 2 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier point intermédiaire S1, le deuxième point intermédiaire S2, le premier scalaire de preuve s1et le deuxième scalaire de preuve s2.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E420), the electronic device 2 can then transmit to the verification device the first intermediate point S 1 , the second intermediate point S 2 , the first proof scalar s 1 and the second proof scalar s 2 .

De préférence, pour améliorer la sécurité, le scalaire de challenge c est reçu par le dispositif électronique 2 en provenance du dispositif de vérification, préalablement au calcul du premier scalaire de preuve s1et du deuxième scalaire de preuve s2, mais après l’envoi par le dispositif électronique 2 au dispositif de vérification, du premier point intermédiaire S1et du deuxième point intermédiaire S2. L’étape de génération d'une preuve à divulgation nulle de connaissance (étape E320) et l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E420), respectivement la phase de génération de preuve et la phase de transmission, sont alors réalisées de façon concomitante (non représentée dans la figure).Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar s 1 and the second proof scalar s 2 , but after the sending by the electronic device 2 to the verification device, of the first intermediate point S 1 and the second intermediate point S 2 . The step of generating a proof with zero knowledge disclosure (step E320) and the step of transmitting the proof with zero knowledge disclosure to the verification device (step E420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un troisième point intermédiaire S’1comme suit : S’1= S1+ [c]·R.Typically the verification device can calculate a third intermediate point S' 1 as follows: S' 1 = S 1 + [c]·R.

Le dispositif de vérification peut aussi calculer un quatrième point intermédiaire S’2comme suit : S’2= S2 +[c]·(A-R) .The verification device can also calculate a fourth intermediate point S' 2 as follows: S' 2 = S 2 + [c]·(AR).

Le dispositif de vérification peut calculer un cinquième point intermédiaire S’’1comme suit : S’’1= [s1]·G.The verification device can calculate a fifth intermediate point S'' 1 as follows: S'' 1 = [s 1 ]·G.

Le dispositif de vérification peut calculer un sixième point intermédiaire S’’2comme suit : S’’2= [s2]·G .The verification device can calculate a sixth intermediate point S'' 2 as follows: S'' 2 = [s 2 ] · G .

Le dispositif de vérification peut alors comparer respectivement le troisième point intermédiaire S’1avec le cinquième point intermédiaire S’’1,et le quatrième point intermédiaire S’2avec le sixième point intermédiaire S’’2.The verification device can then respectively compare the third intermediate point S'1 with the fifth intermediate point S''1 , and the fourth intermediate point S'2 with the sixth intermediate point S''2 .

Si le troisième point intermédiaire S’1est égal au cinquième point intermédiaire S’’1,et si le quatrième point intermédiaire S’2est égal au sixième point intermédiaire S’’2, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R, et le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k.If the third intermediate point S' 1 is equal to the fifth intermediate point S'' 1, and if the fourth intermediate point S' 2 is equal to the sixth intermediate point S'' 2 , the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.

La clé publique dérivée A et la clé publique racine R sont des clés publiques et peuvent donc être reçues par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique.The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device.

Un homme du métier comprendra que le procédé décrit en référence à la avec une clé privée racine r formée d’un seul premier scalaire secret r1, peut être adapté pour une clé privée racine r formée d’une pluralité de premiers scalaires secrets.A person skilled in the art will understand that the process described with reference to the with a root private key r formed by a single first secret scalar r 1 , can be adapted for a root private key r formed by a plurality of first secret scalars.

Ainsi, lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, chacun des dispositifs électroniques de ladite pluralité peut utiliser une clé privée racine r qui lui est propre et une même clé publique racine R. L’utilisation d’une clé privée racine r propre à chaque dispositif électronique de la pluralité rend le procédé plus sécurisé vis-à-vis d’attaques par canaux auxiliaires visant à obtenir une clé privée racine r. En outre, la vérification est simplifiée car elle nécessite l’utilisation d’une seule et unique clé publique racine R, qui est commune à tous les dispositifs électroniques de ladite pluralité.Thus, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality can use a private root key r which is specific to it and the same public root key R. The use of a root r private key specific to each electronic device of the plurality makes the method more secure with respect to side channel attacks aimed at obtaining a root r private key. In addition, verification is simplified because it requires the use of a single and unique root public key R, which is common to all electronic devices of said plurality.

La représente sous forme de logigramme les étapes principales d’un procédé de traitement cryptographique selon un deuxième mode d’implémentation de l’invention.There represents in flowchart form the main steps of a cryptographic processing method according to a second mode of implementation of the invention.

Ce procédé est mis en œuvre par le dispositif électronique 2 en coopération avec un dispositif de vérification, typiquement le dispositif de vérification 12.This method is implemented by the electronic device 2 in cooperation with a verification device, typically the verification device 12.

Selon une étape d’enregistrement E1120, le processeur 4 enregistre dans une mémoire du dispositif électronique 2 une clé privée racine r.According to a recording step E1120, the processor 4 records in a memory of the electronic device 2 a root private key r.

Cette étape est dans une phase du procédé dite phase d’initialisation (Phase P1) d’un ensemble d’au moins un premier scalaire secret, formant la clé privée racine r, ladite clé privée racine r étant associée à une clé publique racine R.This step is in a phase of the process called the initialization phase (Phase P1) of a set of at least one first secret scalar, forming the root private key r, said root private key r being associated with a root public key R .

Cette phase d’initialisation est typiquement mise en œuvre par le module d’initialisation du dispositif électronique 2.This initialization phase is typically implemented by the initialization module of the electronic device 2.

Ici la clé privée racine r est formée de deux premiers scalaires secrets r1, r2.Here the root private key r is formed from two first secret scalars r1, r2.

Autrement dit, l’ensemble d’au moins un premier scalaire secret, formant la clé privée racine r, possède deux premiers scalaires secrets : r1et r2.In other words, the set of at least one first secret scalar, forming the root private key r, has two first secret scalars: r1And r2.

Typiquement, la clé publique racine R a une valeur définie comme suit : R = [r1]·G + [r2]·H avec H un point public supplémentaire de la courbe elliptique E, le point public supplémentaire H étant associé à un scalaire supplémentaire h tel que H = [h]·G.Typically, the root public key R has a value defined as follows: R = [r 1 ] · G + [r 2 ] · H with H an additional public point of the elliptic curve E, the additional public point H being associated with a supplementary scalar h such that H = [h]·G.

Au cours de cette étape d’enregistrement (étape E1120), le processeur 4 enregistre donc dans une mémoire du dispositif électronique 2 les deux premiers scalaires secrets r1et r2.During this recording step (step E1120), the processor 4 therefore records in a memory of the electronic device 2 the first two secret scalars r 1 and r 2 .

Selon une première possibilité, la phase d’initialisation (Phase P1) peut comprendre les étapes complémentaires suivantes (étapes E1110, E1112 et E1114).According to a first possibility, the initialization phase (Phase P1) may include the following complementary steps (steps E1110, E1112 and E1114).

Ainsi le procédé peut comprendre, avant l’étape d’enregistrement (étape E1120), une étape de calcul, par le processeur 4, de tous les premiers scalaires secrets de l’ensemble formant la clé privée racine r (étape E1110), c’est à dire ici du premier scalaire secret r1et du premier scalaire secret r2.Thus the method can comprise, before the recording step (step E1120), a step of calculation, by the processor 4, of all the first secret scalars of the set forming the root private key r (step E1110), c that is to say here of the first secret scalar r 1 and the first secret scalar r 2 .

Typiquement, le premier scalaire secret r1, et/ou le premier scalaire secret r2, peut être calculé par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.Typically, the first secret scalar r1, and or the first secret scalar r2, can be calculated by random sampling or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published 02/12/2019.

Le procédé est ainsi particulièrement sécurisé car le dispositif électronique peut assurer seul la confidentialité de la clé privée racine r. En outre le dispositif électronique dispose d’une clé privé racine r qui lui est propre.The method is thus particularly secure because the electronic device can alone ensure the confidentiality of the root private key r. In addition, the electronic device has its own private root r key.

Le procédé comprend alors une étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E1112).The method then includes a step of calculating the root public key R from the root private key r (step E1112).

Typiquement, le processeur 4 peut calculer la clé publique racine R comme suit : R = [r1]·G + [r2]·H.Typically, the processor 4 can calculate the root public key R as follows: R = [r 1 ] · G + [r 2 ] · H.

Le procédé peut ensuite comprendre une étape d’envoi à un dispositif de configuration (étape E1114), typiquement le dispositif de configuration 22, de la clé publique racine R calculée.The method can then include a step of sending to a configuration device (step E1114), typically the configuration device 22, the calculated root public key R.

Ainsi, de façon avantageuse le dispositif de configuration peut certifier la clé publique racine R.Thus, advantageously the configuration device can certify the root public key R.

Le procédé permet ainsi à une autorité disposant du dispositif de configuration d’assurer que la phase d’initialisation du dispositif électronique a été réalisée sous son contrôle.The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.

La certification de la clé publique racine peut consister en l’inscription de la clé publique racine dans une liste d’au moins une clé publique de confiance, ou en la signature cryptographique de ladite clé publique racine, par exemple avec une clé privée de certification émise par une autorité de confiance.Certification of the root public key may consist of registering the root public key in a list of at least one trusted public key, or of cryptographic signing of said root public key, for example with a private certification key. issued by a trusted authority.

L’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E1112) et l’étape d’envoi à un dispositif de configuration (étape E1114) de la clé publique racine R sont ici exécutées avant l’étape d’enregistrement (E1120) mais l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E1112) et/ou l’étape d’envoi à un dispositif de configuration (étape E1114) peut être exécutée après l’étape d’enregistrement (E1120) du moment que l’étape d’envoi à un dispositif de configuration (étape E1114) est exécutée après l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E1112).The step of calculating the root public key R from the root private key r (step E1112) and the step of sending the root public key R to a configuration device (step E1114) are here executed before the recording step (E1120) but the step of calculating the root public key R from the root private key r (step E1112) and/or the step of sending to a configuration device (step E1114) can be executed after the recording step (E1120) as long as the step of sending to a configuration device (step E1114) is executed after the step of calculating the root public key R from the key private root r (step E1112).

On notera en outre que l’étape d’envoi à un dispositif de configuration (étape E1114) de la clé publique racine R peut être omise.It should also be noted that the step of sending the root public key R to a configuration device (step E1114) can be omitted.

Selon une deuxième possibilité, la phase d’initialisation (Phase P1) peut comprendre une autre étape complémentaire (étape E1111 décrite ci-après).According to a second possibility, the initialization phase (Phase P1) may include another complementary step (step E1111 described below).

Ainsi le procédé peut comprendre, avant l’étape d’enregistrement (étape E1120), une étape de réception (étape E1111), en provenance du dispositif de configuration, d’au moins un premier scalaire secret de la clé privée racine (r), par exemple le premier scalaire secret r2, ledit au moins un premier scalaire secret reçu du dispositif de configuration étant calculé à partir d’une clé privée maitre.Thus the method can comprise, before the recording step (step E1120), a reception step (step E1111), from the configuration device, of at least a first secret scalar of the root private key (r) , for example the first secret scalar r 2 , said at least one first secret scalar received from the configuration device being calculated from a master private key.

Typiquement, le dispositif de configuration dispose d’un quatrième scalaire secret formant la clé privée maitre.Typically, the configuration device has a fourth secret scalar forming the master private key.

Le procédé est ainsi particulièrement sécurisé car la détermination de la clé privée racine nécessite une coopération du dispositif de configuration.The method is thus particularly secure because the determination of the root private key requires cooperation from the configuration device.

Typiquement, la clé privée maitre est un quatrième scalaire secret m tel que R = [m]·G et le dispositif de configuration peut calculer le premier scalaire secret r2comme suit : r2= h-1·(m - r1).Typically, the master private key is a fourth secret scalar m such that R = [m] · G and the configuration device can calculate the first secret scalar r2as following : r2= h-1·(m - r1).

La clé publique racine R peut être calculée par le dispositif de configuration.The root public key R can be calculated by the configuration device.

Selon une implémentation, le dispositif de configuration peut avoir préalablement calculé le premier scalaire secret r1,par exemple par tirage aléatoire. Dans cette implémentation, au cours de l’étape de réception (étape E1111), le dispositif électronique reçoit en outre, en provenance du dispositif de configuration, le premier scalaire secret r1.According to one implementation, the configuration device may have previously calculated the first secret scalar r 1, for example by random selection. In this implementation, during the reception step (step E1111), the electronic device also receives, from the configuration device, the first secret scalar r 1 .

Selon une autre implémentation, le dispositif de configuration peut avoir préalablement reçu le premier scalaire secret r1en provenance du dispositif électronique, ledit dispositif électronique ayant préalablement calculé le premier scalaire secret r1,par exemple par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.According to another implementation, the configuration device may have previously received the first secret scalar r 1 from the electronic device, said electronic device having previously calculated the first secret scalar r 1, for example by random drawing or by application of a function unclonable physics, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 02/12/2019.

Selon une troisième possibilité, la phase d’initialisation (Phase P1) peut comprendre les étapes complémentaires différentes suivantes (étapes E1116, E1117, E1118 et E1119), avant l’étape d’enregistrement (étape E1120).According to a third possibility, the initialization phase (Phase P1) can comprise the following different complementary steps (steps E1116, E1117, E1118 and E1119), before the recording step (step E1120).

Ainsi le procédé peut comprendre une étape de détermination d’un premier scalaire secret de la clé privée racine (r) (étape E1116), par exemple le premier scalaire secret r1, typiquement par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.Thus the method can include a step of determining a first secret scalar of the root private key (r) (step E1116), for example the first secret scalar r 1 , typically by random drawing or by application of a non-physical function. clonable, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published on 02/12/2019.

Lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, le procédé assure ainsi que chacun des dispositifs électroniques de ladite pluralité utilise une clé privée racine r qui lui est propre. Ainsi, le procédé est plus sécurisé.When the method is implemented by each electronic device of a plurality of electronic devices, the method thus ensures that each of the electronic devices of said plurality uses a root private key r which is specific to it. This makes the process more secure.

Le procédé comprend alors une étape de chiffrement de manière homomorphe (étape E1117) du premier scalaire secret déterminé, c’est-à-dire du premier scalaire secret r1. Le chiffrement de manière homomorphe est par exemple un chiffrement de Paillier.The method then comprises a step of homomorphically encrypting (step E1117) the first determined secret scalar, that is to say the first secret scalar r 1 . Homomorphic encryption is for example a Paillier encryption.

Puis le procédé comprend une étape de transmission au dispositif de configuration du chiffré du premier scalaire secret déterminé (étape E1118), c’est-à-dire du chiffrée du premier scalaire secret r1.Then the method comprises a step of transmitting to the device for configuring the cipher of the first determined secret scalar (step E1118), that is to say the cipher of the first secret scalar r 1 .

Le procédé comprend alors une étape de réception (étape E1119), en provenance du dispositif de configuration, d’un autre premier scalaire secret de la clé privée racine (r). Pendant cette étape, le dispositif électronique 2 reçoit l’autre premier scalaire secret de la clé privée racine (r) chiffré de la même manière homomorphe, le chiffré dudit autre premier scalaire secret ayant été déterminé à partir de la clé privée maitre et du chiffré transmis par le dispositif électronique au dispositif de configuration, et le dispositif électronique 2 déchiffre le chiffré de l’autre premier scalaire secret.The method then includes a step of receiving (step E1119), from the configuration device, another first secret scalar of the root private key (r). During this step, the electronic device 2 receives the other first secret scalar of the root private key (r) encrypted in the same homomorphic manner, the cipher of said other first secret scalar having been determined from the master private key and the cipher transmitted by the electronic device to the configuration device, and the electronic device 2 decrypts the cipher of the other first secret scalar.

Le procédé est particulièrement sécurisé car la détermination de la clé privée racine nécessite une coopération du dispositif de configuration. La sécurisation du procédé est en outre augmentée via la mise en œuvre par le dispositif électronique de la détermination d’un premier scalaire secret de la clé privée racine r, et la non divulgation par le dispositif électronique du premier scalaire secret déterminé par ledit dispositif électronique.The method is particularly secure because the determination of the root private key requires cooperation from the configuration device. The security of the method is further increased via the implementation by the electronic device of the determination of a first secret scalar of the root private key r, and the non-disclosure by the electronic device of the first secret scalar determined by said electronic device .

Typiquement, la clé privée maitre est un quatrième scalaire secret m tel que R = [m]·G et le dispositif de configuration peut déterminer l’autre premier scalaire secret de la clé privée racine (r), chiffré de la même manière homomorphe, comme suit : hom(r2) = h-1·( hom(m)- hom(r1)) avec hom la fonction de chiffrement homomorphe et hom(r1) le chiffré de manière homomorphe du premier scalaire secret déterminé par le dispositif électronique.Typically, the master private key is a fourth secret scalar m such that R = [m]·G and the configuration device can determine the other first secret scalar of the root private key (r), encrypted in the same homomorphic manner, as following : hom(r2) = h-1·( hom(m)- hom(r1)) with hom the homomorphic encryption function and hom(r1) the homomorphically encrypted first secret scalar determined by the electronic device.

Pour chacune de ces trois possibilités, le dispositif de configuration peut avantageusement certifier la clé publique racine R.For each of these three possibilities, the configuration device can advantageously certify the root public key R.

Le procédé permet ainsi à une autorité disposant du dispositif de configuration d’assurer que la phase d’initialisation du dispositif électronique a été réalisée sous son contrôle.The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.

La certification de la clé publique racine peut consister en l’inscription de la clé publique racine dans une liste d’au moins une clé publique de confiance, ou en la signature cryptographique de ladite clé publique racine, par exemple avec une clé privée de certification émise par une autorité de confiance.Certification of the root public key may consist of registering the root public key in a list of at least one trusted public key, or of cryptographic signing of said root public key, for example with a private certification key. issued by a trusted authority.

Après l’étape d’enregistrement (étape E1120), le procédé comprend alors une étape (étape E1220) de calcul d’un deuxième scalaire secret formant une clé privée dérivée a égal à f(s, k) où f est une fonction de dérivation, s est un sous-ensemble non vide de l‘ensemble d'au moins un premier scalaire secret, et k est un troisième scalaire secret : a = f(s, k).After the recording step (step E1120), the method then comprises a step (step E1220) of calculating a second secret scalar forming a derived private key a equal to f(s, k) where f is a function of derivation, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar: a = f(s, k).

Ici, l’ensemble d'au moins un premier scalaire secret possède deux premiers scalaires secrets r1,r2, et le sous-ensemble s possède un seul premier scalaire secret, le premier scalaire secret r1.Here, the set of at least one first secret scalar has two first secret scalars r 1 , r 2 , and the subset s has only one first secret scalar, the first secret scalar r 1 .

Le troisième scalaire secret k peut être déterminé par le dispositif électronique par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.The third secret scalar k can be determined by the electronic device by random selection or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published 02/12/2019.

Selon un premier exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k·r1mod n.According to a first example, the differentiation function f can be defined as follows: f(s, k) = k·r 1 mod n.

Selon un deuxième exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k + r1mod n.According to a second example, the differentiation function f can be defined as follows: f(s, k) = k + r 1 mod n.

Le procédé comprend alors une étape de calcul d’une clé publique dérivée A associée au deuxième scalaire secret a (étape E1240), c’est-à-dire à la clé privée dérivée a.The method then includes a step of calculating a derived public key A associated with the second secret scalar a (step E1240), that is to say with the derived private key a.

Typiquement, le processeur 4 peut calculer la clé publique dérivée A comme suit : A = [a]·G .Typically, the processor 4 can calculate the derived public key A as follows: A = [a]·G.

Selon une première autre possibilité, quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E1220) est définie selon le premier exemple décrit ci-avant, le processeur 4 peut calculer la clé publique dérivée A comme suit : A = [k]·R – [k.r2].H.According to a first other possibility, when the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the first example described above, the processor 4 can calculate the derived public key A as follows: A = [k] · R – [kr 2 ].H.

Selon une deuxième autre possibilité, quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E1220) est définie selon le deuxième exemple décrit ci-avant, le processeur 4 peut calculer la clé publique dérivée A comme suit : A = R + [k]·G – [r2].H .According to a second other possibility, when the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the second example described above, the processor 4 can calculate the derived public key A as follows: A = R + [k]·G – [r 2 ].H.

L’étape de calcul d’un deuxième scalaire secret (étape E1220) et l’étape de calcul d’une clé publique dérivée A (étape E1240) sont dans une phase du procédé dite phase de génération d’une clé privée dérivée et d’une clé publique dérivée (phase P2).The step of calculating a second secret scalar (step E1220) and the step of calculating a derived public key A (step E1240) are in a phase of the method called the phase of generating a derived private key and 'a derived public key (phase P2).

Cette phase de génération d’une clé privée dérivée et d’une clé publique dérivée (phase P2) est typiquement mise en œuvre par le module de génération de clés du dispositif électronique 2.This phase of generating a derived private key and a derived public key (phase P2) is typically implemented by the key generation module of the electronic device 2.

Le procédé comprend alors une étape de génération d’une preuve à divulgation nulle de connaissance (étape E1320) que la clef publique dérivée A est associée à un scalaire égal à f(u, l), u étant le sous-ensemble s de l’ensemble d'au moins un premier scalaire secret, formant la clé privée racine r associée à la clef publique racine R et l étant égal à k.The method then comprises a step of generating a proof with zero disclosure of knowledge (step E1320) that the derived public key A is associated with a scalar equal to f(u, l), u being the subset s of l set of at least one first secret scalar, forming the root private key r associated with the root public key R and l being equal to k.

L’étape de génération d’une preuve à divulgation nulle de connaissance (étape E1320) est dans une phase du procédé dite phase de génération de preuve (phase P3).The step of generating a proof with zero knowledge disclosure (step E1320) is in a phase of the method called the proof generation phase (phase P3).

Cette phase de génération de preuve (phase P3) est typiquement mise en œuvre par le module de génération de preuve du dispositif électronique 2.This proof generation phase (phase P3) is typically implemented by the proof generation module of the electronic device 2.

Le procédé comprend alors une étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E1420), pendant laquelle le dispositif électronique 2 transmet au dispositif de vérification, typiquement en utilisant son bloc de communication 10, la preuve à divulgation nulle de connaissance.The method then comprises a step of transmitting the zero knowledge disclosure proof to the verification device (step E1420), during which the electronic device 2 transmits to the verification device, typically using its communication block 10, the disclosure proof zero knowledge.

Le procédé permet ainsi au dispositif de vérification de vérifier que la clé privée dérivée a dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The method thus allows the verification device to verify that the derived private key a derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

En outre, le procédé permet cette vérification sans divulguer, typiquement au dispositif de vérification, la clé privée racine r, ni le sous-ensemble s, ni la clé privée dérivée a, ni le troisième scalaire secret k.Furthermore, the method allows this verification without disclosing, typically to the verification device, the root private key r, nor the subset s, nor the derived private key a, nor the third secret scalar k.

L’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E1420) est dans une phase du procédé dite phase de transmission (phase P4).The step of transmitting the proof with zero knowledge disclosure to the verification device (step E1420) is in a phase of the method called the transmission phase (phase P4).

Cette phase de transmission (phase P4) est typiquement mise en œuvre par le module de de transmission du dispositif électronique 2.This transmission phase (phase P4) is typically implemented by the transmission module of the electronic device 2.

Selon une possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve non interactive.According to one implementation possibility, the proof with zero knowledge disclosure is a non-interactive proof.

La mise en œuvre de la phase de génération de preuve et de la phase de transmission est ainsi simplifiée, notamment en limitant les échanges entre le dispositif électronique et le dispositif de vérification qui peuvent être unidirectionnels et asynchrones.The implementation of the proof generation phase and the transmission phase is thus simplified, in particular by limiting the exchanges between the electronic device and the verification device which can be unidirectional and asynchronous.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E1220) est définie selon le premier exemple décrit ci-avant pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance non interactive au cours de l’étape associée (étape E1320).When the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the first example described above for this step, the processor 4 can perform the following calculations to generate the proof to zero disclosure of non-interactive knowledge during the associated step (step E1320).

Le processeur 4 calcule un premier point intermédiaire comme suit : S1= [t1]·G + [t2]·H où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée, et t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée.The processor 4 calculates a first intermediate point as follows: S 1 = [t 1 ] · G + [t 2 ] · H where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random selection or by application of a pseudo-random algorithm to a piece of data, and t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data.

Le processeur 4 calcule aussi un deuxième point intermédiaire comme suit : S2= [t3]·G où t3est un troisième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate point as follows: S 2 = [t 3 ]·G where t 3 is a third intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another datum.

Le processeur 4 calcule aussi un troisième point intermédiaire comme suit : S3= [t4]·R - [t5]·H où t4est un quatrième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée, et t5est un cinquième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a third intermediate point as follows: S 3 = [t 4 ] · R - [t 5 ] · H where t 4 is a fourth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data, and t 5 is a fifth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.

Le processeur 4 calcule ensuite un premier condensat d’une donnée intermédiaire par une fonction de hachage, par exemple SHA256 ou SHA3, telles que spécifiées dans le document FIPS PUB 180-4 intitulé ‘Secure Hash Standard’ et publié en aout 2015 par le NIST, la donnée intermédiaire étant la concaténation du premier point intermédiaire S1, du deuxième point intermédiaire S2, du troisième point intermédiaire S3, de la clé publique racine R et de la clé publique dérivée A.The processor 4 then calculates a first condensate of intermediate data by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by NIST , the intermediate data being the concatenation of the first intermediate point S1, from the second intermediate point S2, from the third intermediate point S3, of the root public key R and the derived public key A.

Autrement dit, c = Ha(S1|| S2|| S3|| R || A), où c est le premier condensat et Ha est la fonction de hachage.That is, c = Ha(S 1 || S 2 || S 3 || R || A), where c is the first condensate and Ha is the hash function.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1, un deuxième scalaire de preuve s2, un troisième scalaire de preuve s3, un quatrième scalaire de preuve s4et un cinquième scalaire de preuve s5comme suit : s1= t1+ c·r1mod n, s2= t2+ c· r2mod n, s3= t3+ c·r1·k mod n, s4= t4+ c·k mod n et s5= t5+ c· r2·k mod n.Then the processor 4 respectively calculates a first proof scalar s 1 , a second proof scalar s 2 , a third proof scalar s 3 , a fourth proof scalar s 4 and a fifth proof scalar s 5 as follows: s 1 = t 1 + c r 1 mod n, s 2 = t 2 + c r 2 mod n, s 3 = t 3 + c r 1 k mod n, s 4 = t 4 + c k mod n and s 5 = t 5 + c r 2 k mod n.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier condensat c, du premier scalaire de preuve s1, du deuxième scalaire de preuve s2, du troisième scalaire de preuve s3, du quatrième scalaire de preuve s4et du cinquième scalaire de preuve s5.The proof with zero knowledge disclosure is thus made up of the first condensate c, the first proof scalar s 1 , the second proof scalar s 2 , the third proof scalar s 3 , the fourth proof scalar s 4 and the fifth scalar of proof s 5 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E1420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier condensat c, le premier scalaire de preuve s1, le deuxième scalaire de preuve s2, le troisième scalaire de preuve s3, le quatrième scalaire de preuve s4et le cinquième scalaire de preuve s5. During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E1420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar s 1 , the second scalar of proof s 2 , the third scalar of proof s 3 , the fourth scalar of proof s 4 and the fifth scalar of proof s 5.

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un quatrième point intermédiaire S’1comme suit : S’1= [s1]·G + [s2]·H - [c]·R.Typically the verification device can calculate a fourth intermediate point S' 1 as follows: S' 1 = [s 1 ] · G + [s 2 ] · H - [c] · R.

Le dispositif de vérification peut aussi calculer un cinquième point intermédiaire S’2comme suit : S’2= [s3]·G - [c]·A .The verification device can also calculate a fifth intermediate point S' 2 as follows: S' 2 = [s 3 ]·G - [c]·A.

Le dispositif de vérification peut aussi calculer un sixième point intermédiaire S’3comme suit : S’3= [s4]·R - [s5]·H - [c]·A.The verification device can also calculate a sixth intermediate point S' 3 as follows: S' 3 = [s 4 ]·R - [s 5 ]·H - [c]·A.

Le dispositif de vérification peut ensuite calculer un deuxième condensat d’une autre donnée intermédiaire par la fonction de hachage, l’autre donnée intermédiaire étant la concaténation du quatrième point intermédiaire S’1, du cinquième point intermédiaire S’2, du sixième point intermédiaire S’3, de la clé publique racine R et de la clé publique dérivée A.The verification device can then calculate a second condensate of another intermediate data by the hash function, the other intermediate data being the concatenation of the fourth intermediate point S' 1 , of the fifth intermediate point S' 2 , of the sixth intermediate point S' 3 , of the root public key R and the derived public key A.

Autrement dit, c’ = Ha(S’1|| S’2|| S’3|| R || A), où c’ est le deuxième condensat.In other words, c' = Ha(S' 1 || S' 2 || S' 3 || R || A), where it is the second condensate.

Le dispositif de vérification peut alors comparer le deuxième condensat c’ avec le premier condensat c. Si le deuxième condensat c’ est égal au premier condensat c, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The verification device can then compare the second condensate c’ with the first condensate c. If the second condensate c' is equal to the first condensate c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

La clé publique dérivée A, le point public supplémentaire H et la clé publique racine R sont publics et peuvent donc être reçus par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique 2.The derived public key A, the additional public point H and the root public key R are public and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device 2.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E1220) est définie selon le deuxième exemple décrit plus haut pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance interactive au cours de l’étape associée (étape E1320).When the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the second example described above for this step, the processor 4 can perform the following calculations to generate the proof for disclosure zero interactive knowledge during the associated step (step E1320).

Le processeur 4 calcule un premier point intermédiaire comme suit : S1= [t1]·G + [t2]·H ·où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée, et t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 calculates a first intermediate point as follows: S 1 = [t 1 ] · G + [t 2 ] · H · where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data, and t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.

Le processeur 4 calcule aussi un deuxième point intermédiaire comme suit : S2= [t3]·G où t3est un troisième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate point as follows: S 2 = [t 3 ]·G where t 3 is a third intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another datum.

Le processeur 4 calcule aussi un troisième point intermédiaire comme suit : S3= [t4]·G - [t2]·H où t4est un quatrième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a third intermediate point as follows: S 3 = [t 4 ] · G - [t 2 ] · H where t 4 is a fourth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.

Le processeur 4 calcule ensuite un premier condensat d’une donnée intermédiaire par une fonction de hachage, par exemple SHA256 ou SHA3, telles que spécifiées dans le document FIPS PUB 180-4 intitulé ‘Secure Hash Standard’ et publié en aout 2015 par le NIST, la donnée intermédiaire étant la concaténation du premier point intermédiaire S1, du deuxième point intermédiaire S2, du troisième point intermédiaire S3, de la clé publique racine R et de la clé publique dérivée A.The processor 4 then calculates a first condensate of intermediate data by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by NIST , the intermediate data being the concatenation of the first intermediate point S1, from the second intermediate point S2, from the third intermediate point S3, of the root public key R and the derived public key A.

Autrement dit, c = Ha(S1|| S2|| S3|| R || A), où c est le premier condensat et Ha est la fonction de hachage.That is, c = Ha(S 1 || S 2 || S 3 || R || A), where c is the first condensate and Ha is the hash function.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1, un deuxième scalaire de preuve s2, un troisième scalaire de preuve s3et un quatrième scalaire de preuve s4comme suit : s1= t1+ c·r1mod n, s2= t2+ c· r2mod n, s3= t3+ c·(r1+k) mod n et s4= t4+ c·k mod n.Then the processor 4 respectively calculates a first proof scalar s 1 , a second proof scalar s 2 , a third proof scalar s 3 and a fourth proof scalar s 4 as follows: s 1 = t 1 + c · r 1 mod n, s 2 = t 2 + c·r 2 mod n, s 3 = t 3 + c·(r 1 +k) mod n and s 4 = t 4 + c·k mod n.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier condensat c, du premier scalaire de preuve s1, du deuxième scalaire de preuve s2, du troisième scalaire de preuve s3et du quatrième scalaire de preuve s4. The proof with zero knowledge disclosure is thus made up of the first condensate c, the first proof scalar s 1 , the second proof scalar s 2 , the third proof scalar s 3 and the fourth proof scalar s 4.

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E1420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier condensat c, le premier scalaire de preuve s1, le deuxième scalaire de preuve s2, le troisième scalaire de preuve s3et le quatrième scalaire de preuve s4. During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E1420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar s 1 , the second scalar of proof s 2 , the third scalar of proof s 3 and the fourth scalar of proof s 4.

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un quatrième point intermédiaire S’1comme suit : S’1= [s1]·G + [s2]·H - [c]·R.Typically the verification device can calculate a fourth intermediate point S' 1 as follows: S' 1 = [s 1 ] · G + [s 2 ] · H - [c] · R.

Le dispositif de vérification peut aussi calculer un cinquième point intermédiaire S’2comme suit : S’2= [s3]·G - [c]·A .The verification device can also calculate a fifth intermediate point S' 2 as follows: S' 2 = [s 3 ]·G - [c]·A.

Le dispositif de vérification peut aussi calculer un sixième point intermédiaire S’3comme suit : S’3= [s4]·R - [s2]·H - [c]·(A-R).The verification device can also calculate a sixth intermediate point S' 3 as follows: S' 3 = [s 4 ] · R - [s 2 ] · H - [c] · (AR).

Le dispositif de vérification peut ensuite calculer un deuxième condensat d’une autre donnée intermédiaire par la fonction de hachage, l’autre donnée intermédiaire étant la concaténation du quatrième point intermédiaire S’1, du cinquième point intermédiaire S’2, du sixième point intermédiaire S’2, de la clé publique racine R et de la clé publique dérivée A.The verification device can then calculate a second condensate of another intermediate data by the hash function, the other intermediate data being the concatenation of the fourth intermediate point S' 1 , of the fifth intermediate point S' 2 , of the sixth intermediate point S' 2 , of the root public key R and the derived public key A.

Autrement dit, c’ = Ha(S’1|| S’2|| S’3|| R || A), où c’ est le deuxième condensat.In other words, c' = Ha(S' 1 || S' 2 || S' 3 || R || A), where it is the second condensate.

Le dispositif de vérification peut alors comparer le deuxième condensat c’ avec le premier condensat c. Si le deuxième condensat c’ est égal au premier condensat c, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The verification device can then compare the second condensate c’ with the first condensate c. If the second condensate c' is equal to the first condensate c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

La clé publique dérivée A, le point public supplémentaire H et la clé publique racine R sont publics et peuvent donc être reçues par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique 2.The derived public key A, the additional public point H and the root public key R are public and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device 2.

Selon une autre possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve interactive.According to another implementation possibility, the proof with zero knowledge disclosure is an interactive proof.

La génération de la preuve à divulgation nulle de connaissance, et la transmission de la preuve à divulgation nulle de connaissance à un dispositif de vérification, sont par exemple sous la forme d’un protocole défi-réponse.The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are for example in the form of a challenge-response protocol.

Le procédé permet ainsi au dispositif de vérification de vérifier que le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k, c’est-à-dire que le dispositif électronique peut réaliser au moins un traitement impliquant tous les premiers scalaires secrets de l’ensemble formant la clé privée racine et au moins un traitement impliquant le troisième scalaire secret k.The method thus allows the verification device to verify that the electronic device has the root private key r and the third secret scalar k, that is to say that the electronic device can carry out at least one processing involving all the first scalars secrets of the set forming the root private key and at least one processing involving the third secret scalar k.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E1220) est définie selon le premier exemple décrit plus haut pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance interactive au cours de l’étape associée (étape E1320).When the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the first example described above for this step, the processor 4 can perform the following calculations to generate the proof for disclosure zero interactive knowledge during the associated step (step E1320).

Le processeur 4 calcule un premier point intermédiaire comme suit : S1= [t1]·G + [t2]·H ·où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée, et t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 calculates a first intermediate point as follows: S 1 = [t 1 ] · G + [t 2 ] · H · where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data, and t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.

Le processeur 4 calcule aussi un deuxième point intermédiaire comme suit : S2= [t3]·G où t3est un troisième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate point as follows: S 2 = [t 3 ]·G where t 3 is a third intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another datum.

Le processeur 4 calcule aussi un troisième point intermédiaire comme suit : S3= [t4]·R - [t5]·H où t4est un quatrième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée, et t5est un cinquième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a third intermediate point as follows: S 3 = [t 4 ] · R - [t 5 ] · H where t 4 is a fourth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data, and t 5 is a fifth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1, un deuxième scalaire de preuve s2, un troisième scalaire de preuve s3, un quatrième scalaire de preuve s4et un cinquième scalaire de preuve s5comme suit : s1= t1+ c·r1mod n, s2= t2+ c· r2mod n, s3= t3+ c·r1·k mod n, s4= t4+ c·k mod n, s5= t5+ c· r2·k mod n où c est un scalaire de challenge préalablement reçu par le dispositif électronique 2 en provenance du dispositif de vérification.Then the processor 4 respectively calculates a first proof scalar s 1 , a second proof scalar s 2 , a third proof scalar s 3 , a fourth proof scalar s 4 and a fifth proof scalar s 5 as follows: s 1 = t 1 + c r 1 mod n, s 2 = t 2 + c r 2 mod n, s 3 = t 3 + c r 1 k mod n, s 4 = t 4 + c k mod n , s 5 = t 5 + c · r 2 · k mod n where c is a challenge scalar previously received by the electronic device 2 from the verification device.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier point intermédiaire S1, du deuxième point intermédiaire S2, du troisième point intermédiaire S3, du premier scalaire de preuve s1, du deuxième scalaire de preuve s2, du troisième scalaire de preuve s3, du quatrième scalaire de preuve s4et du cinquième scalaire de preuve s5.The zero knowledge disclosure proof thus consists of the first intermediate point S 1 , the second intermediate point S 2 , the third intermediate point S 3 , the first proof scalar s 1 , the second proof scalar s 2 , the third scalar of proof s 3 , of the fourth scalar of proof s 4 and of the fifth scalar of proof s 5 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E1420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier point intermédiaire S1, le deuxième point intermédiaire S2, le troisième point intermédiaire S3, le premier scalaire de preuve s1, le deuxième scalaire de preuve s2, le troisième scalaire de preuve s3, le quatrième scalaire de preuve s4et le cinquième scalaire de preuve s5.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E1420), the electronic device 2 can then transmit to the verification device the first intermediate point S 1 , the second intermediate point S 2 , the third intermediate point S 3 , the first proof scalar s 1 , the second proof scalar s 2 , the third proof scalar s 3 , the fourth proof scalar s 4 and the fifth proof scalar s 5 .

De préférence, pour améliorer la sécurité, le scalaire de challenge c est reçu par le dispositif électronique 2 en provenance du dispositif de vérification, préalablement au calcul du premier scalaire de preuve s1, du deuxième scalaire de preuve s2, du troisième scalaire de preuve s3, du quatrième scalaire de preuve s4et du cinquième scalaire de preuve s5, mais après l’envoi par le dispositif électronique 2 au dispositif de vérification, du premier point intermédiaire S1, du deuxième point intermédiaire S2et du troisième point intermédiaire S3. L’étape de génération d'une preuve à divulgation nulle de connaissance (étape E1320) et l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E1420), respectivement la phase de génération de preuve et la phase de transmission, sont alors réalisées de façon concomitante (non représentée dans la figure).Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to calculating the first proof scalar s 1 , the second proof scalar s 2 , the third proof scalar s 2, proof s 3 , the fourth proof scalar s 4 and the fifth proof scalar s 5 , but after sending by the electronic device 2 to the verification device, the first intermediate point S 1 , the second intermediate point S 2 and the third intermediate point S 3 . The step of generating a proof with zero knowledge disclosure (step E1320) and the step of transmitting the proof with zero knowledge disclosure to the verification device (step E1420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un quatrième point intermédiaire S’1comme suit : S’1= S1+ [c]·R.Typically the verification device can calculate a fourth intermediate point S' 1 as follows: S' 1 = S 1 + [c]·R.

Le dispositif de vérification peut aussi calculer un cinquième point intermédiaire S’2comme suit : S’2= S2 +[c]·A .The verification device can also calculate a fifth intermediate point S' 2 as follows: S' 2 = S 2 + [c]·A.

Le dispositif de vérification peut aussi calculer un sixième point intermédiaire S’3comme suit : S’3= S3 +[c]·A .The verification device can also calculate a sixth intermediate point S' 3 as follows: S' 3 = S 3 + [c]·A.

Le dispositif de vérification peut calculer un septième point intermédiaire S’’1comme suit : S’’1= [s1]·G + [s2]·H.The verification device can calculate a seventh intermediate point S'' 1 as follows: S'' 1 = [s 1 ]·G + [s 2 ]·H.

Le dispositif de vérification peut calculer un huitième point intermédiaire S’’2comme suit : S’’2= [s3]·G.The verification device can calculate an eighth intermediate point S'' 2 as follows: S'' 2 = [s 3 ]·G.

Le dispositif de vérification peut calculer un neuvième point intermédiaire S’’3comme suit : S’’3= [s4]·R - [s5]·H.The verification device can calculate a ninth intermediate point S'' 3 as follows: S'' 3 = [s 4 ]·R - [s 5 ]·H.

Le dispositif de vérification peut alors comparer respectivement le quatrième point intermédiaire S’1avec le septième point intermédiaire S’’1,le cinquième point intermédiaire S’2avec le huitième point intermédiaire S’’2, et le sixième point intermédiaire S’3avec le neuvième point intermédiaire S’’3.The verification device can then compare respectively the fourth intermediate point S'1 with the seventh intermediate point S''1 , the fifth intermediate point S'2 with the eighth intermediate point S''2 , and the sixth intermediate point S'3 with the ninth intermediate point S'' 3 .

Si le quatrième point intermédiaire S’1est égal au septième point intermédiaire S’’1, si le cinquième point intermédiaire S’2est égal au huitième point intermédiaire S’’2, et si le sixième point intermédiaire S’3est égal au neuvième point intermédiaire S’’3, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R, et le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k.If the fourth intermediate point S’1is equal to the seventh intermediate point S’’1, if the fifth intermediate point S’2is equal to the eighth intermediate point S’’2, and if the sixth intermediate point S’3is equal to the ninth intermediate point S’’3, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.

La clé publique dérivée A, le point public supplémentaire H et la clé publique racine R sont publics et peuvent donc être reçus par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique 2.The derived public key A, the additional public point H and the root public key R are public and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device 2.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E1220) est définie selon le deuxième exemple décrit plus haut pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance interactive au cours de l’étape associée (étape E1320).When the derivation function f used during the step of calculating a second secret scalar (step E1220) is defined according to the second example described above for this step, the processor 4 can perform the following calculations to generate the proof for disclosure zero interactive knowledge during the associated step (step E1320).

Le processeur 4 calcule un premier point intermédiaire comme suit : S1= [t1]·G + [t2]·H ·où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée, et t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 calculates a first intermediate point as follows: S 1 = [t 1 ] · G + [t 2 ] · H · where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to a piece of data, and t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.

Le processeur 4 calcule aussi un deuxième point intermédiaire comme suit : S2= [t3]·G où t3est un troisième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate point as follows: S 2 = [t 3 ]·G where t 3 is a third intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another datum.

Le processeur 4 calcule aussi un troisième point intermédiaire comme suit : S3= [t4]·R - [t2]·H où t4est un quatrième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a third intermediate point as follows: S 3 = [t 4 ] · R - [t 2 ] · H where t 4 is a fourth intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1, un deuxième scalaire de preuve s2, un troisième scalaire de preuve s3et un quatrième scalaire de preuve s4comme suit : s1= t1+ c·r1mod n, s2= t2+ c· r2mod n, s3= t3+ c·(r1+k) mod n et s4= t4+ c·k mod n où c est un scalaire de challenge préalablement reçu par le dispositif électronique 2 en provenance du dispositif de vérification.Then the processor 4 respectively calculates a first proof scalar s 1 , a second proof scalar s 2 , a third proof scalar s 3 and a fourth proof scalar s 4 as follows: s 1 = t 1 + c · r 1 mod n, s 2 = t 2 + c·r 2 mod n, s 3 = t 3 + c·(r 1 +k) mod n and s 4 = t 4 + c·k mod n where c is a scalar of challenge previously received by the electronic device 2 from the verification device.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier point intermédiaire S1, du deuxième point intermédiaire S2, du troisième point intermédiaire S3, du premier scalaire de preuve s1, du deuxième scalaire de preuve s2, du troisième scalaire de preuve s3et du quatrième scalaire de preuve s4.The zero knowledge disclosure proof thus consists of the first intermediate point S 1 , the second intermediate point S 2 , the third intermediate point S 3 , the first proof scalar s 1 , the second proof scalar s 2 , the third scalar of proof s 3 and of the fourth scalar of proof s 4 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E1420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier point intermédiaire S1, le deuxième point intermédiaire S2, le troisième point intermédiaire S3, le premier scalaire de preuve s1, le deuxième scalaire de preuve s2, le troisième scalaire de preuve s3et le quatrième scalaire de preuve s4.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E1420), the electronic device 2 can then transmit to the verification device the first intermediate point S 1 , the second intermediate point S 2 , the third intermediate point S 3 , the first proof scalar s 1 , the second proof scalar s 2 , the third proof scalar s 3 and the fourth proof scalar s 4 .

De préférence, pour améliorer la sécurité, le scalaire de challenge c est reçu par le dispositif électronique 2 en provenance du dispositif de vérification, préalablement au calcul du premier scalaire de preuve s1, du deuxième scalaire de preuve s2, du troisième scalaire de preuve s3et du quatrième scalaire de preuve s4, mais après l’envoi par le dispositif électronique 2 au dispositif de vérification, du premier point intermédiaire S1, du deuxième point intermédiaire S2et du troisième point intermédiaire S3. L’étape de génération d'une preuve à divulgation nulle de connaissance (étape E1320) et l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E1420), respectivement la phase de génération de preuve et la phase de transmission, sont alors réalisées de façon concomitante (non représentée dans la figure).Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to calculating the first proof scalar s 1 , the second proof scalar s 2 , the third proof scalar s 2, proof s 3 and the fourth proof scalar s 4 , but after sending by the electronic device 2 to the verification device, the first intermediate point S 1 , the second intermediate point S 2 and the third intermediate point S 3 . The step of generating a proof with zero knowledge disclosure (step E1320) and the step of transmitting the proof with zero knowledge disclosure to the verification device (step E1420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un quatrième point intermédiaire S’1comme suit : S’1= S1+ [c]·R.Typically the verification device can calculate a fourth intermediate point S' 1 as follows: S' 1 = S 1 + [c]·R.

Le dispositif de vérification peut aussi calculer un cinquième point intermédiaire S’2comme suit : S’2= S2 +[c]·A .The verification device can also calculate a fifth intermediate point S' 2 as follows: S' 2 = S 2 + [c]·A.

Le dispositif de vérification peut aussi calculer un sixième point intermédiaire S’3comme suit : S’3= S3 +[c]·(A-R) .The verification device can also calculate a sixth intermediate point S' 3 as follows: S' 3 = S 3 + [c]·(AR).

Le dispositif de vérification peut calculer un septième point intermédiaire S’’1comme suit : S’’1= [s1]·G + [s2]·H.The verification device can calculate a seventh intermediate point S'' 1 as follows: S'' 1 = [s 1 ]·G + [s 2 ]·H.

Le dispositif de vérification peut calculer un huitième point intermédiaire S’’2comme suit : S’’2= [s3]·G.The verification device can calculate an eighth intermediate point S'' 2 as follows: S'' 2 = [s 3 ]·G.

Le dispositif de vérification peut calculer un neuvième point intermédiaire S’’3comme suit : S’’3= [s4]·R - [s2]·H.The verification device can calculate a ninth intermediate point S'' 3 as follows: S'' 3 = [s 4 ]·R - [s 2 ]·H.

Le dispositif de vérification peut alors comparer respectivement le quatrième point intermédiaire S’1avec le septième point intermédiaire S’’1,le cinquième point intermédiaire S’2avec le huitième point intermédiaire S’’2, et le sixième point intermédiaire S’3avec le neuvième point intermédiaire S’’3.The verification device can then compare respectively the fourth intermediate point S'1 with the seventh intermediate point S''1 , the fifth intermediate point S'2 with the eighth intermediate point S''2 , and the sixth intermediate point S'3 with the ninth intermediate point S'' 3 .

Si le quatrième point intermédiaire S’1est égal au septième point intermédiaire S’’1, si le cinquième point intermédiaire S’2est égal au huitième point intermédiaire S’’2, et si le sixième point intermédiaire S’3est égal au neuvième point intermédiaire S’’3, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R, et le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k.If the fourth intermediate point S’1is equal to the seventh intermediate point S’’1, if the fifth intermediate point S’2is equal to the eighth intermediate point S’’2, and if the sixth intermediate point S’3is equal to the ninth intermediate point S’’3, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.

La clé publique dérivée A, le point public supplémentaire H et la clé publique racine R sont publics et peuvent donc être reçus par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique2.The derived public key A, the additional public point H and the root public key R are public and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device2.

Dans une implémentation du procédé décrit en référence à la , le point public supplémentaire H peut être le point générateur G, le scalaire supplémentaire h ayant pour valeur 1.In an implementation of the method described with reference to the , the additional public point H can be the generating point G, the additional scalar h having the value 1.

Le procédé est ainsi simplifié.The process is thus simplified.

Dans une autre implémentation du procédé décrit en référence à la , le scalaire supplémentaire h est un cinquième scalaire secret formant une clé privée supplémentaire et le point public supplémentaire H est une clé publique supplémentaire associée. Ainsi, le dispositif de configuration dispose d’un cinquième scalaire secret formant une clé privée supplémentaire h associée une clé publique supplémentaire H, et au moins un premier scalaire secret reçu du dispositif de configuration est calculé à partir de la clé privée maitre et de la clé privée supplémentaire.In another implementation of the method described with reference to the , the additional scalar h is a fifth secret scalar forming an additional private key and the additional public point H is an associated additional public key. Thus, the configuration device has a fifth secret scalar forming an additional private key h associated with an additional public key H, and at least a first secret scalar received from the configuration device is calculated from the master private key and the additional private key.

Ainsi, le procéder permet de sécuriser la clé privée maitre.Thus, this procedure makes it possible to secure the master private key.

Le point public supplémentaire H peut être enregistré dans une mémoire du dispositif électronique 2, typiquement pendant la phase d’initialisation, par exemple après l’avoir reçu du dispositif de configuration.The additional public point H can be recorded in a memory of the electronic device 2, typically during the initialization phase, for example after having received it from the configuration device.

Un homme du métier comprendra que le procédé décrit en référence à la avec une clé privée racine r formée de deux premiers scalaires secrets r1, r2, peut être adapté pour une clé privée racine r formée de trois, ou plus, premiers scalaires secrets. En outre l’homme du métier peut adapter le procédé décrit en référence à la pour utiliser un sous-semble s, de l‘ensemble d'au moins un premier scalaire secret, comprenant une pluralité de premier scalaire secret.A person skilled in the art will understand that the process described with reference to the with a root private key r formed by two first secret scalars r1, r2, can be adapted for a root private key r formed by three, or more, first secret scalars. In addition, those skilled in the art can adapt the process described with reference to the to use a sub-set s, of the set of at least one first secret scalar, comprising a plurality of first secret scalars.

Lorsque le procédé décrit en référence à la , est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, chacun des dispositifs électroniques de ladite pluralité peut utiliser une clé privée racine r qui lui est propre et une même clé publique racine R. L’utilisation d’une clé privée racine r propre à chaque dispositif électronique de la pluralité rend le procédé plus sécurisé vis-à-vis d’attaques par canaux auxiliaires visant à obtenir une clé privée racine r. En outre, la vérification est simplifiée car elle nécessite l’utilisation d’une seule et unique clé publique racine R, qui est commune à tous les dispositifs électroniques de ladite pluralité.When the process described with reference to the , is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality can use a private root key r which is specific to it and the same public root key R. The use of a key private root r specific to each electronic device of the plurality makes the method more secure with respect to attacks by side channels aimed at obtaining a private key root r. In addition, verification is simplified because it requires the use of a single and unique public root key R, which is common to all electronic devices of said plurality.

Chacun des modes d’implémentation décrits ci-avant en référence aux figures 3 et 4, met en œuvre des opérations dans un groupe Gr fini d’ordre premier n, de points d’une courbe elliptique E.Each of the implementation modes described above with reference to Figures 3 and 4, implements operations in a finite group Gr of prime order n, of points of an elliptic curve E.

Chacun de ces modes d’implémentation peut être adapté pour mettre en œuvre des opérations dans un sous-groupe multiplicatif d’ordre q du groupe multiplicatif d’un anneau Fp, Fp étant un anneau des entiers modulo p, p étant un nombre premier, et q étant un facteur premier de p-1 . Fp est donc un corps fini.Each of these implementation modes can be adapted to implement operations in a multiplicative subgroup of order q of the multiplicative group of a ring Fp, Fp being a ring of integers modulo p, p being a prime number, and q being a prime factor of p-1. Fp is therefore a finite field.

Le corps fini et le sous-groupe multiplicatif d’ordre q sont définis par un ensemble de paramètres comprenant un générateur G qui est un entier public du sous-groupe multiplicatif d’ordre q. Ce générateur G est là aussi prédéterminé et peut être en pratique mémorisé dans le dispositif électronique 2, par exemple dans son bloc de mémorisation 6.The finite field and the multiplicative subgroup of order q are defined by a set of parameters including a generator G which is a public integer of the multiplicative subgroup of order q. This generator G is here also predetermined and can in practice be stored in the electronic device 2, for example in its storage block 6.

La représente sous forme de logigramme les étapes principales d’un procédé de traitement cryptographique selon un troisième mode d’implémentation de l’invention, qui est une possibilité d’une telle adaptation du mode d’implémentation décrit en référence à la .There represents in flowchart form the main steps of a cryptographic processing method according to a third mode of implementation of the invention, which is a possibility of such an adaptation of the mode of implementation described with reference to the .

En outre, comme chacun des modes d’implémentation décrits ci-avant en référence aux figures 3 et 4, le mode d’implémentation décrit en référence à la , met en œuvre des calculs algébriques à l’aide d’opérations algébriques (addition, produit, soustraction) sur des scalaires.Furthermore, like each of the implementation modes described above with reference to Figures 3 and 4, the implementation mode described with reference to , implements algebraic calculations using algebraic operations (addition, product, subtraction) on scalars.

Le procédé selon ce troisième mode d’implémentation est mis en œuvre par le dispositif électronique 2 en coopération avec un dispositif de vérification, typiquement le dispositif de vérification 12.The method according to this third mode of implementation is implemented by the electronic device 2 in cooperation with a verification device, typically the verification device 12.

Selon une étape d’enregistrement E2120, le processeur 4 enregistre dans une mémoire du dispositif électronique 2 une clé privée racine r.According to a recording step E2120, the processor 4 records in a memory of the electronic device 2 a root private key r.

Cette étape est dans une phase du procédé dite phase d’initialisation (Phase P1) d’un ensemble d’au moins un premier scalaire secret, formant la clé privée racine r, ladite clé privée racine r étant associée à une clé publique racine R.This step is in a phase of the process called the initialization phase (Phase P1) of a set of at least one first secret scalar, forming the root private key r, said root private key r being associated with a root public key R .

Cette phase d’initialisation est typiquement mise en œuvre par le module d’initialisation du dispositif électronique 2.This initialization phase is typically implemented by the initialization module of the electronic device 2.

Ici la clé privée racine r est formée d’un seul premier scalaire secret r1.Here the root private key r is formed from a single first secret scalar r 1 .

Autrement dit, l’ensemble d’au moins un premier scalaire secret, formant la clé privée racine r, possède un seul premier scalaire secret, r1.In other words, the set of at least one first secret scalar, forming the root private key r, has a single first secret scalar, r 1 .

Le procédé est ainsi simplifié. Le procédé permet l’utilisation d’une seule et unique clé privée racine r pour une clé publique racine R déterminée. Le procédé permet aussi l’utilisation d’une seule et unique clé publique racine R pour une clé privée racine r déterminée.The process is thus simplified. The method allows the use of a single and unique r-root private key for a determined R-root public key. The method also allows the use of a single and unique R root public key for a determined R root private key.

Typiquement la clé publique racine R a une valeur définie comme suit : .Typically the root public key R has a value defined as follows : .

Selon un exemple, lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, le même premier scalaire secret et la même clé publique racine R sont utilisés pour chacun des dispositifs électroniques de ladite pluralité. Ainsi, la vérification est simplifiée car elle nécessite l’utilisation d’une seule et unique clé publique racine R, qui est commune à tous les dispositifs électroniques de ladite pluralité.According to one example, when the method is implemented by each electronic device of a plurality of electronic devices, the same first secret scalar and the same root public key R are used for each of the electronic devices of said plurality. Thus, verification is simplified because it requires the use of a single and unique root public key R, which is common to all electronic devices of said plurality.

Selon un autre exemple, lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, chacun des dispositifs électroniques de ladite pluralité utilise un premier scalaire secret et une clé publique racine R qui lui sont propres, ce qui rend le procédé plus sécurisé.According to another example, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality uses a first secret scalar and a root public key R which are specific to it, which makes the more secure process.

Au cours de cette étape d’enregistrement (étape E2120), le processeur 4 enregistre donc dans une mémoire du dispositif électronique 2 le premier scalaire secret r1.During this recording step (step E2120), the processor 4 therefore records in a memory of the electronic device 2 the first secret scalar r 1 .

La phase d’initialisation (Phase P1) peut comprendre les étapes complémentaires suivantes (étapes E2110, E2112 et E2114).The initialization phase (Phase P1) may include the following complementary steps (steps E2110, E2112 and E2114).

Ainsi le procédé peut comprendre, avant l’étape d’enregistrement (étape E2120), une étape de calcul, par le processeur 4, de tous les premiers scalaires secrets de l’ensemble formant la clé privée racine r (étape E2110), c’est à dire ici du premier scalaire secret r1.Thus the method can comprise, before the recording step (step E2120), a step of calculation, by the processor 4, of all the first secret scalars of the set forming the root private key r (step E2110), c that is to say here of the first secret scalar r 1 .

Typiquement, le premier scalaire secret r1peut être calculé par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.Typically, the first secret scalar r 1 can be calculated by random drawing or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published 02/12/2019.

Le procédé est ainsi particulièrement sécurisé car le dispositif électronique peut assurer seul la confidentialité de la clé privée racine r. En outre le dispositif électronique dispose d’une clé privée racine r qui lui est propre.The method is thus particularly secure because the electronic device can alone ensure the confidentiality of the root private key r. In addition, the electronic device has its own private root r key.

Le procédé comprend alors une étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E2112).The method then includes a step of calculating the root public key R from the root private key r (step E2112).

Typiquement, le processeur 4 peut calculer la clé publique racine R comme suit : .Typically, processor 4 can calculate the root public key R as follows: .

Le procédé peut ensuite comprendre une étape d’envoi à un dispositif de configuration (étape E2114), typiquement le dispositif de configuration 22, de la clé publique racine R calculée.The method can then include a step of sending to a configuration device (step E2114), typically the configuration device 22, the calculated root public key R.

Ainsi, de façon avantageuse le dispositif de configuration peut certifier la clé publique racine R.Thus, advantageously the configuration device can certify the root public key R.

Le procédé permet ainsi à une autorité disposant du dispositif de configuration d’assurer que la phase d’initialisation du dispositif électronique a été réalisée sous son contrôle.The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.

La certification de la clé publique racine peut consister en l’inscription de la clé publique racine dans une liste d’au moins une clé publique de confiance, ou en la signature cryptographique de ladite clé publique racine, par exemple avec une clé privée de certification émise par une autorité de confiance.Certification of the root public key may consist of registering the root public key in a list of at least one trusted public key, or of cryptographic signing of said root public key, for example with a private certification key. issued by a trusted authority.

L’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E2112) et l’étape d’envoi à un dispositif de configuration (étape E2114) de la clé publique racine R sont ici exécutées avant l’étape d’enregistrement (E2120) mais l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E2112) et/ou l’étape d’envoi à un dispositif de configuration (étape E2114) peut être exécutée après l’étape d’enregistrement (E2120) du moment que l’étape d’envoi à un dispositif de configuration (étape E2114) est exécutée après l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E2112).The step of calculating the root public key R from the root private key r (step E2112) and the step of sending the root public key R to a configuration device (step E2114) are here executed before the recording step (E2120) but the step of calculating the root public key R from the root private key r (step E2112) and/or the step of sending to a configuration device (step E2114) can be executed after the recording step (E2120) as long as the step of sending to a configuration device (step E2114) is executed after the step of calculating the root public key R from the key private root r (step E2112).

On notera en outre que l’étape d’envoi à un dispositif de configuration (étape E2114) de la clé publique racine R peut être omise.It should also be noted that the step of sending the root public key R to a configuration device (step E2114) can be omitted.

Selon une autre possibilité, la phase d’initialisation (Phase P1) peut comprendre d’autres étapes complémentaires (étapes E2111, E2112 et E2114 suivantes).According to another possibility, the initialization phase (Phase P1) may include other complementary steps (following steps E2111, E2112 and E2114).

Ainsi le procédé peut comprendre, avant l’étape d’enregistrement (étape E2120), une étape de réception (étape E2111), en provenance du dispositif de configuration, d’au moins un premier scalaire secret de la clé privée racine (r), c’est à dire ici du premier scalaire secret r1, ledit au moins un premier scalaire secret reçu du dispositif de configuration étant calculé à partir d’une clé privée maitre.Thus the method can comprise, before the recording step (step E2120), a reception step (step E2111), from the configuration device, of at least a first secret scalar of the root private key (r) , that is to say here of the first secret scalar r 1 , said at least one first secret scalar received from the configuration device being calculated from a master private key.

Typiquement, le dispositif de configuration dispose d’un quatrième scalaire secret formant la clé privée maitre.Typically, the configuration device has a fourth secret scalar forming the master private key.

Le procédé est ainsi particulièrement sécurisé car la détermination de la clé privée racine nécessite une coopération du dispositif de configuration.The method is thus particularly secure because the determination of the root private key requires cooperation from the configuration device.

Ici la clé privée racine r est formée d’un seul premier scalaire secret r1, le dispositif électronique reçoit donc du dispositif de configuration, tous les premiers scalaires secrets de l’ensemble formant la clé privée racine.Here the root private key r is formed from a single first secret scalar r 1 , the electronic device therefore receives from the configuration device, all the first secret scalars of the set forming the root private key.

Ainsi, l’efficacité du procédé est augmentée en limitant les interactions entre le dispositif de configuration et le dispositif électronique.Thus, the efficiency of the process is increased by limiting the interactions between the configuration device and the electronic device.

Selon un exemple, le premier scalaire secret r1reçu du dispositif de configuration est la clé privée maitre.According to one example, the first secret scalar r 1 received from the configuration device is the master private key.

Selon un autre exemple, le premier scalaire secret r1reçu du dispositif de configuration peut être dérivé par le dispositif de configuration à partir de la clé privée maitre en utilisant toute fonction de dérivation adaptée et bien connue de l’homme du métier.According to another example, the first secret scalar r 1 received from the configuration device can be derived by the configuration device from the master private key using any suitable derivation function well known to those skilled in the art.

La clé publique racine R peut être calculée par le dispositif de configuration.The root public key R can be calculated by the configuration device.

Selon une autre possibilité, le procédé peut aussi comprendre une étape de calcul par le dispositif électronique 2 de la clé publique racine R à partir de la clé privée racine r (étape E2112) et une étape d’envoi au dispositif de configuration (étape E2114) de la clé publique racine R calculée.According to another possibility, the method can also include a step of calculation by the electronic device 2 of the root public key R from the root private key r (step E2112) and a step of sending to the configuration device (step E2114 ) of the calculated root public key R.

L’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E2112) et l’étape d’envoi à un dispositif de configuration (étape E2114) de la clé publique racine R sont illustrées dans la avant l’étape d’enregistrement (E2120) mais lorsqu’elles ne sont pas omises après l’étape de réception (étape E2111), l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E2112) et/ou l’étape d’envoi à un dispositif de configuration (étape E2114) peut être exécutée après l’étape d’enregistrement (E2120) du moment que l’étape d’envoi à un dispositif de configuration (étape E2114) est exécutée après l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E2112).The step of calculating the root public key R from the root private key r (step E2112) and the step of sending the root public key R to a configuration device (step E2114) are illustrated in the before the recording step (E2120) but when they are not omitted after the reception step (step E2111), the step of calculating the root public key R from the root private key r (step E2112) and/or the step of sending to a configuration device (step E2114) can be executed after the recording step (E2120) as long as the step of sending to a configuration device (step E2114 ) is executed after the step of calculating the root public key R from the root private key r (step E2112).

De façon avantageuse le dispositif de configuration peut certifier la clé publique racine R.Advantageously, the configuration device can certify the root public key R.

Le procédé permet ainsi à une autorité disposant du dispositif de configuration d’assurer que la phase d’initialisation du dispositif électronique a été réalisée sous son contrôle.The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.

La certification de la clé publique racine peut consister en l’inscription de la clé publique racine dans une liste d’au moins une clé publique de confiance, ou en la signature cryptographique de ladite clé publique racine, par exemple avec une clé privée de certification émise par une autorité de confiance.Certification of the root public key may consist of registering the root public key in a list of at least one trusted public key, or of cryptographic signing of said root public key, for example with a private certification key. issued by a trusted authority.

Après l’étape d’enregistrement (étape E2120), le procédé comprend alors une étape (étape E2220) de calcul d’un deuxième scalaire secret formant une clé privée dérivée a égal à f(s, k) où f est une fonction de dérivation, s est un sous-ensemble non vide de l‘ensemble d'au moins un premier scalaire secret, et k est un troisième scalaire secret : a = f(s, k).After the recording step (step E2120), the method then comprises a step (step E2220) of calculating a second secret scalar forming a derived private key a equal to f(s, k) where f is a function of derivation, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar: a = f(s, k).

Ici, l’ensemble d'au moins un premier scalaire secret possède un seul premier scalaire secret, le premier scalaire secret r1, et le sous-ensemble s possède donc un seul premier scalaire secret, le premier scalaire secret r1.Here, the set of at least one first secret scalar has a single first secret scalar, the first secret scalar r 1 , and the subset s therefore has a single first secret scalar, the first secret scalar r 1 .

Le troisième scalaire secret k peut être déterminé par le dispositif électronique par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.The third secret scalar k can be determined by the electronic device by random selection or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published 02/12/2019.

Selon un exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k·r1mod q.According to an example, the differentiation function f can be defined as follows: f(s, k) = k·r 1 mod q.

Le procédé comprend alors une étape de calcul d’une clé publique dérivée A associée au deuxième scalaire secret a (étape E2240), c’est-à-dire à la clé privée dérivée a.The method then comprises a step of calculating a derived public key A associated with the second secret scalar a (step E2240), that is to say with the derived private key a.

Typiquement, le processeur 4 peut calculer la clé publique dérivée A comme suit : .Typically, the processor 4 can calculate the derived public key A as follows: .

Selon une autre possibilité, quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E2220) est définie selon l’exemple décrit ci-avant, le processeur 4 peut calculer la clé publique dérivée A comme suit : .According to another possibility, when the derivation function f used during the step of calculating a second secret scalar (step E2220) is defined according to the example described above, the processor 4 can calculate the derived public key A as follows: .

L’étape de calcul d’un deuxième scalaire secret (étape E2220) et l’étape de calcul d’une clé publique dérivée A (étape E2240) sont dans une phase du procédé dite phase de génération d’une clé privée dérivée et d’une clé publique dérivée (phase P2).The step of calculating a second secret scalar (step E2220) and the step of calculating a derived public key A (step E2240) are in a phase of the method called the phase of generating a derived private key and 'a derived public key (phase P2).

Cette phase de génération d’une clé privée dérivée et d’une clé publique dérivée (phase P2) est typiquement mise en œuvre par le module de génération de clés du dispositif électronique 2.This phase of generating a derived private key and a derived public key (phase P2) is typically implemented by the key generation module of the electronic device 2.

Le procédé comprend alors une étape de génération d’une preuve à divulgation nulle de connaissance (étape E2320) que la clef publique dérivée A est associée à un scalaire égal à f(u, l), u étant le sous-ensemble s de l’ensemble d'au moins un premier scalaire secret, formant la clé privée racine r associée à la clef publique racine R et l étant égal à k.The method then comprises a step of generating a proof with zero disclosure of knowledge (step E2320) that the derived public key A is associated with a scalar equal to f(u, l), u being the subset s of l set of at least one first secret scalar, forming the root private key r associated with the root public key R and l being equal to k.

L’étape de génération d’une preuve à divulgation nulle de connaissance (étape E2320) est dans une phase du procédé dite phase de génération de preuve (phase P3).The step of generating a proof with zero knowledge disclosure (step E2320) is in a phase of the method called the proof generation phase (phase P3).

Cette phase de génération de preuve (phase P3) est typiquement mise en œuvre par le module de génération de preuve du dispositif électronique 2.This proof generation phase (phase P3) is typically implemented by the proof generation module of the electronic device 2.

Le procédé comprend alors une étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E2420), pendant laquelle le dispositif électronique 2 transmet au dispositif de vérification, typiquement en utilisant son bloc de communication 10, la preuve à divulgation nulle de connaissance.The method then comprises a step of transmitting the zero knowledge disclosure proof to the verification device (step E2420), during which the electronic device 2 transmits to the verification device, typically using its communication block 10, the disclosure proof zero knowledge.

Le procédé permet ainsi au dispositif de vérification de vérifier que la clé privée dérivée a dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The method thus allows the verification device to verify that the derived private key a derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

En outre, le procédé permet cette vérification sans divulguer, typiquement au dispositif de vérification, la clé privée racine r, ni le sous-ensemble s, ni la clé privée dérivée a, ni le troisième scalaire secret k.Furthermore, the method allows this verification without disclosing, typically to the verification device, the root private key r, nor the subset s, nor the derived private key a, nor the third secret scalar k.

L’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E2420) est dans une phase du procédé dite phase de transmission (phase P4).The step of transmitting the proof with zero knowledge disclosure to the verification device (step E2420) is in a phase of the method called the transmission phase (phase P4).

Cette phase de transmission (phase P4) est typiquement mise en œuvre par le module de de transmission du dispositif électronique 2.This transmission phase (phase P4) is typically implemented by the transmission module of the electronic device 2.

Selon une possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve non interactive.According to one implementation possibility, the proof with zero knowledge disclosure is a non-interactive proof.

La mise en œuvre de la phase de génération de preuve et de la phase de transmission est ainsi simplifiée, notamment en limitant les échanges entre le dispositif électronique et le dispositif de vérification qui peuvent être unidirectionnels et asynchrones.The implementation of the proof generation phase and the transmission phase is thus simplified, in particular by limiting the exchanges between the electronic device and the verification device which can be unidirectional and asynchronous.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E2220) est définie selon l’exemple décrit ci-avant pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance non interactive au cours de l’étape associée (étape E2320).When the derivation function f used during the step of calculating a second secret scalar (step E2220) is defined according to the example described above for this step, the processor 4 can perform the following calculations to generate the proof to zero disclosure of non-interactive knowledge during the associated step (step E2320).

Le processeur 4 calcule un premier élément intermédiaire comme suit : où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée.The processor 4 calculates a first intermediate element as follows: where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to data.

Le processeur 4 calcule aussi un deuxième élément intermédiaire comme suit : où t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate element as follows: where t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.

Le processeur 4 calcule ensuite un premier condensat d’une donnée intermédiaire par une fonction de hachage, par exemple SHA256 ou SHA3, telles que spécifiées dans le document FIPS PUB 180-4 intitulé ‘Secure Hash Standard’ et publié en aout 2015 par le NIST, la donnée intermédiaire étant la concaténation du premier élément intermédiaire S1, du deuxième élément intermédiaire S2, de la clé publique racine R et de la clé publique dérivée A.The processor 4 then calculates a first condensate of intermediate data by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by NIST , the intermediate data being the concatenation of the first intermediate element S 1 , the second intermediate element S 2 , the root public key R and the derived public key A.

Autrement dit, c = Ha(S1|| S2||R||A), où c est le premier condensat et Ha est la fonction de hachage.That is, c = Ha(S 1 || S 2 ||R||A), where c is the first condensate and Ha is the hash function.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1et un deuxième scalaire de preuve s2comme suit : s1= t1+ c·r1mod q et s2= t2+ c·k mod q.Then the processor 4 respectively calculates a first proof scalar s 1 and a second proof scalar s 2 as follows: s 1 = t 1 + c r 1 mod q and s 2 = t 2 + c k mod q.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier condensat c, du premier scalaire de preuve s1et du deuxième scalaire de preuve s2.The proof with zero knowledge disclosure is thus made up of the first condensate c, the first proof scalar s 1 and the second proof scalar s 2 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E2420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier condensat c, le premier scalaire de preuve s1et le deuxième scalaire de preuve s2.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E2420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar s 1 and the second scalar of proof s 2 .

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un troisième élément intermédiaire S’1comme suit : .Typically the verification device can calculate a third intermediate element S' 1 as follows: .

Le dispositif de vérification peut aussi calculer un quatrième élément intermédiaire S’2comme suit : .The verification device can also calculate a fourth intermediate element S' 2 as follows: .

Le dispositif de vérification peut ensuite calculer un deuxième condensat d’une autre donnée intermédiaire par la fonction de hachage, l’autre donnée intermédiaire étant la concaténation du troisième élément intermédiaire S’1, du quatrième élément intermédiaire S’2, de la clé publique racine R et de la clé publique dérivée A.The verification device can then calculate a second condensate of another intermediate data by the hash function, the other intermediate data being the concatenation of the third intermediate element S' 1 , of the fourth intermediate element S' 2 , of the public key root R and the derived public key A.

Autrement dit, c’ = Ha(S’1|| S’2||R||A), où c’ est le deuxième condensat.In other words, c' = Ha(S' 1 || S' 2 ||R||A), where it is the second condensate.

Le dispositif de vérification peut alors comparer le deuxième condensat c’ avec le premier condensat c. Si le deuxième condensat c’ est égal au premier condensat c, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The verification device can then compare the second condensate c’ with the first condensate c. If the second condensate c' is equal to the first condensate c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

La clé publique dérivée A et la clé publique racine R sont des clés publiques et peuvent donc être reçues par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique 2.The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device 2.

Selon une autre possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve interactive.According to another implementation possibility, the proof with zero knowledge disclosure is an interactive proof.

La génération de la preuve à divulgation nulle de connaissance, et la transmission de la preuve à divulgation nulle de connaissance à un dispositif de vérification, sont par exemple sous la forme d’un protocole défi-réponse.The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are for example in the form of a challenge-response protocol.

Le procédé permet ainsi au dispositif de vérification de vérifier que le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k, c’est-à-dire que le dispositif électronique peut réaliser au moins un traitement impliquant tous les premiers scalaires secrets de l’ensemble formant la clé privée racine et au moins un traitement impliquant le troisième scalaire secret k.The method thus allows the verification device to verify that the electronic device has the root private key r and the third secret scalar k, that is to say that the electronic device can carry out at least one processing involving all the first scalars secrets of the set forming the root private key and at least one processing involving the third secret scalar k.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E2220) est définie selon l’exemple décrit plus haut pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance interactive au cours de l’étape associée (étape E2320).When the derivation function f used during the step of calculating a second secret scalar (step E2220) is defined according to the example described above for this step, the processor 4 can perform the following calculations to generate the proof for disclosure zero interactive knowledge during the associated step (step E2320).

Le processeur 4 calcule un premier élément intermédiaire comme suit : où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée.The processor 4 calculates a first intermediate element as follows: where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to data.

Le processeur 4 calcule aussi un deuxième élément intermédiaire comme suit : où t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée.The processor 4 also calculates a second intermediate element as follows: where t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1et un deuxième scalaire de preuve s2comme suit : s1= t1+ c·r1mod q et s2= t2+ c·k mod q, où c est un scalaire de challenge préalablement reçu par le dispositif électronique en provenance du dispositif de vérification.Then the processor 4 respectively calculates a first proof scalar s 1 and a second proof scalar s 2 as follows: s 1 = t 1 + c r 1 mod q and s 2 = t 2 + c k mod q, where it is a challenge scalar previously received by the electronic device from the verification device.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier élément intermédiaire S1, du deuxième élément intermédiaire S2, du premier scalaire de preuve s1et du deuxième scalaire de preuve s2.The proof with zero knowledge disclosure is thus made up of the first intermediate element S 1 , the second intermediate element S 2 , the first proof scalar s 1 and the second proof scalar s 2 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E2420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier élément intermédiaire S1, le deuxième élément intermédiaire S2, le premier scalaire de preuve s1et le deuxième scalaire de preuve s2.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E2420), the electronic device 2 can then transmit to the verification device the first intermediate element S 1 , the second intermediate element S 2 , the first proof scalar s 1 and the second proof scalar s 2 .

De préférence, pour améliorer la sécurité, le scalaire de challenge c est reçu par le dispositif électronique 2 en provenance du dispositif de vérification, préalablement au calcul du premier scalaire de preuve s1et du deuxième scalaire de preuve s2, mais après l’envoi par le dispositif électronique 2 au dispositif de vérification, du premier élément intermédiaire S1et du deuxième élément intermédiaire S2. L’étape de génération d'une preuve à divulgation nulle de connaissance (étape E2320) et l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E2420), respectivement la phase de génération de preuve et la phase de transmission, sont alors réalisées de façon concomitante (non représentée dans la figure).Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar s 1 and the second proof scalar s 2 , but after the sending by the electronic device 2 to the verification device, of the first intermediate element S 1 and the second intermediate element S 2 . The step of generating a proof with zero knowledge disclosure (step E2320) and the step of transmitting the proof with zero knowledge disclosure to the verification device (step E2420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut calculer un troisième élément intermédiaire S’1comme suit : .Typically the verification device can calculate a third intermediate element S' 1 as follows: .

Le dispositif de vérification peut aussi calculer un quatrième élément intermédiaire S’2comme suit : .The verification device can also calculate a fourth intermediate element S' 2 as follows: .

Le dispositif de vérification peut calculer un cinquième élément intermédiaire S’’1comme suit : .The verification device can calculate a fifth intermediate element S'' 1 as follows: .

Le dispositif de vérification peut calculer un sixième élément intermédiaire S’’2comme suit : .The verification device can calculate a sixth intermediate element S'' 2 as follows: .

Le dispositif de vérification peut alors comparer respectivement le troisième élément intermédiaire S’1avec le cinquième élément intermédiaire S’’1,et le quatrième élément intermédiaire S’2avec le sixième élément intermédiaire S’’2.The verification device can then respectively compare the third intermediate element S'1 with the fifth intermediate element S''1 , and the fourth intermediate element S'2 with the sixth intermediate element S''2 .

Si le troisième élément intermédiaire S’1est égal au cinquième élément intermédiaire S’’1,et si le quatrième élément intermédiaire S’2est égal au sixième élément intermédiaire S’’2, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R, et le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k.If the third intermediate element S' 1 is equal to the fifth intermediate element S'' 1, and if the fourth intermediate element S' 2 is equal to the sixth intermediate element S'' 2 , the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.

La clé publique dérivée A et la clé publique racine R sont des clés publiques et peuvent donc être reçues par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique 2.The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device 2.

Un homme du métier comprendra que le procédé décrit en référence à la avec une clé privée racine r formée d’un seul premier scalaire secret r1, peut être adapté pour une clé privée racine r formée d’une pluralité de premiers scalaires secrets.A person skilled in the art will understand that the process described with reference to the with a root private key r formed by a single first secret scalar r 1 , can be adapted for a root private key r formed by a plurality of first secret scalars.

Ainsi, lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, chacun des dispositifs électroniques de ladite pluralité peut utiliser une clé privée racine r qui lui est propre et une même clé publique racine R. L’utilisation d’une clé privée racine r propre à chaque dispositif électronique de la pluralité rend le procédé plus sécurisé vis-à-vis d’attaques par canaux auxiliaires visant à obtenir une clé privée racine r. En outre, la vérification est simplifiée car elle nécessite l’utilisation d’une seule et unique clé publique racine R, qui est commune à tous les dispositifs électroniques de ladite pluralité.Thus, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality can use a private root key r which is specific to it and the same public root key R. The use of a root r private key specific to each electronic device of the plurality makes the method more secure with respect to side channel attacks aimed at obtaining a root r private key. In addition, verification is simplified because it requires the use of a single and unique root public key R, which is common to all electronic devices of said plurality.

La représente sous forme de logigramme les étapes principales un procédé de traitement cryptographique selon un quatrième mode d’implémentation de l’invention.There represents in flowchart form the main steps of a cryptographic processing method according to a fourth mode of implementation of the invention.

Dans ce quatrième mode d’implémentation, le procédé met en œuvre des opérations dans un groupe d’ordre inconnu p’·q’ avec p’ et q’ deux nombres premiers tels que p = 2·p’+1 et q=2·q’+1 sont aussi deux nombres premiers. Les opérations sont faites dans un anneau des entiers modulo N où N = p·q. N est donc un module de type RSA.In this fourth implementation mode, the method implements operations in a group of unknown order p'·q' with p' and q' two prime numbers such that p = 2·p'+1 and q=2 ·q'+1 are also two prime numbers. The operations are done in a ring of integers modulo N where N = p·q. N is therefore an RSA type module.

Un générateur G est là aussi utilisé. Ce générateur G est un élément d’ordre p’·q’ appartenant à un groupe QR(N) défini comme étant le groupe des résidus quadratiques modulo N. QR(N) est un sous-groupe des entiers modulo N et privé de zéro.A G generator is also used here. This generator G is an element of order p'·q' belonging to a group QR(N) defined as being the group of quadratic residues modulo N. QR(N) is a subgroup of integers modulo N and deprived of zero .

Ce générateur G est là aussi prédéterminé et peut être en pratique mémorisé dans le dispositif électronique 2, par exemple dans son bloc de mémorisation 6.This generator G is here also predetermined and can in practice be stored in the electronic device 2, for example in its storage block 6.

En outre, comme chacun des procédés décrits ci-avant en référence aux figures 3 à 5, le procédé décrit en référence à la , met en œuvre des calculs algébriques à l’aide d’opérations algébriques (addition, produit, soustraction) sur des scalaires.In addition, like each of the processes described above with reference to Figures 3 to 5, the process described with reference to the , implements algebraic calculations using algebraic operations (addition, product, subtraction) on scalars.

Ce procédé est mis en œuvre par le dispositif électronique 2 en coopération avec un dispositif de vérification, typiquement le dispositif de vérification 12.This method is implemented by the electronic device 2 in cooperation with a verification device, typically the verification device 12.

Selon une étape d’enregistrement E3120, le processeur 4 enregistre dans une mémoire du dispositif électronique 2 une clé privée racine r.According to a recording step E3120, the processor 4 records in a memory of the electronic device 2 a root private key r.

Cette étape est dans une phase du procédé dite phase d’initialisation (Phase P1) d’un ensemble d’au moins un premier scalaire secret, formant la clé privée racine r, ladite clé privée racine r étant associée à une clé publique racine R.This step is in a phase of the process called the initialization phase (Phase P1) of a set of at least one first secret scalar, forming the root private key r, said root private key r being associated with a root public key R .

Cette phase d’initialisation est typiquement mise en œuvre par le module d’initialisation du dispositif électronique 2.This initialization phase is typically implemented by the initialization module of the electronic device 2.

Ici la clé privée racine r est formée d’un seul premier scalaire secret r1. Le premier scalaire secret r1est un entier appartenant à un intervalle S(v,m) définit comme suit : S(v,m) = [2v- 2m+ 1, 2v+ 2m- 1], avec v et m des entiers positifs, c’est-à-dire supérieurs ou égaux à 0.Here the root private key r is formed from a single first secret scalar r 1 . The first secret scalar r 1 is an integer belonging to an interval S(v,m) defined as follows: S(v,m) = [2 v - 2 m + 1, 2 v + 2 m - 1], with v and m positive integers, that is to say greater than or equal to 0.

Autrement dit, l’ensemble d’au moins un premier scalaire secret, formant la clé privée racine r, possède un seul premier scalaire secret, r1.In other words, the set of at least one first secret scalar, forming the root private key r, has a single first secret scalar, r 1 .

Le procédé est ainsi simplifié. Le procédé permet l’utilisation d’une seule et unique clé privée racine r pour une clé publique racine R déterminée. Le procédé permet aussi l’utilisation d’une seule et unique clé publique racine R pour une clé privée racine r déterminée.The process is thus simplified. The method allows the use of a single and unique r-root private key for a determined R-root public key. The method also allows the use of a single and unique R root public key for a determined R root private key.

Typiquement R a une valeur définie comme suit : .Typically R has a value defined as follows : .

Selon un exemple, lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, le même premier scalaire secret et la même clé publique racine R sont utilisés pour chacun des dispositifs électroniques de ladite pluralité. Ainsi, la vérification est simplifiée car elle nécessite l’utilisation d’une seule et unique clé publique racine R, qui est commune à tous les dispositifs électroniques de ladite pluralité.According to one example, when the method is implemented by each electronic device of a plurality of electronic devices, the same first secret scalar and the same root public key R are used for each of the electronic devices of said plurality. Thus, verification is simplified because it requires the use of a single and unique root public key R, which is common to all electronic devices of said plurality.

Selon un autre exemple, lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, chacun des dispositifs électroniques de ladite pluralité utilise un premier scalaire secret et une clé publique racine R qui lui sont propres, ce qui rend le procédé plus sécurisé.According to another example, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality uses a first secret scalar and a root public key R which are specific to it, which makes the more secure process.

Au cours de cette étape d’enregistrement (étape E3120), le processeur 4 enregistre donc dans une mémoire du dispositif électronique 2 le premier scalaire secret r1.During this recording step (step E3120), the processor 4 therefore records in a memory of the electronic device 2 the first secret scalar r 1 .

La phase d’initialisation (Phase P1) peut aussi comprendre les étapes complémentaires suivantes (étapes E3110, E3112 et E3114).The initialization phase (Phase P1) can also include the following complementary steps (steps E3110, E3112 and E3114).

Ainsi le procédé peut comprendre, avant l’étape d’enregistrement (étape E3120), une étape de calcul, par le processeur 4, de tous les premiers scalaires secrets de l’ensemble formant la clé privée racine r (étape E3110), c’est à dire ici du premier scalaire secret r1.Thus the method can comprise, before the recording step (step E3120), a step of calculation, by the processor 4, of all the first secret scalars of the set forming the root private key r (step E3110), c that is to say here of the first secret scalar r 1 .

Typiquement, le premier scalaire secret r1peut être calculé par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.Typically, the first secret scalar r 1 can be calculated by random drawing or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published 02/12/2019.

Le procédé est ainsi particulièrement sécurisé car le dispositif électronique peut assurer seul la confidentialité de la clé privée racine r. En outre le dispositif électronique dispose d’une clé privée racine r qui lui est propre.The method is thus particularly secure because the electronic device can alone ensure the confidentiality of the root private key r. In addition, the electronic device has its own private root r key.

Le procédé comprend alors une étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E3112).The method then includes a step of calculating the root public key R from the root private key r (step E3112).

Typiquement, le processeur 4 peut calculer la clé publique racine R comme suit : .Typically, processor 4 can calculate the root public key R as follows: .

Le procédé peut ensuite comprendre une étape d’envoi à un dispositif de configuration (étape E3114), typiquement le dispositif de configuration 22, de la clé publique racine R calculée.The method can then include a step of sending the calculated root public key R to a configuration device (step E3114), typically the configuration device 22.

Ainsi, de façon avantageuse le dispositif de configuration peut certifier la clé publique racine R.Thus, advantageously the configuration device can certify the root public key R.

Le procédé permet ainsi à une autorité disposant du dispositif de configuration d’assurer que la phase d’initialisation du dispositif électronique a été réalisée sous son contrôle.The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.

La certification de la clé publique racine peut consister en l’inscription de la clé publique racine dans une liste d’au moins une clé publique de confiance, ou en la signature cryptographique de ladite clé publique racine, par exemple avec une clé privée de certification émise par une autorité de confiance.Certification of the root public key may consist of registering the root public key in a list of at least one trusted public key, or of cryptographic signing of said root public key, for example with a private certification key. issued by a trusted authority.

L’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E3112) et l’étape d’envoi à un dispositif de configuration (étape E3114) de la clé publique racine R sont ici exécutées avant l’étape d’enregistrement (E3120) mais l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E3112) et/ou l’étape d’envoi à un dispositif de configuration (étape E3114) peut être exécutée après l’étape d’enregistrement (E3120) du moment que l’étape d’envoi à un dispositif de configuration (étape E3114) est exécutée après l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E3112).The step of calculating the root public key R from the root private key r (step E3112) and the step of sending the root public key R to a configuration device (step E3114) are here executed before the recording step (E3120) but the step of calculating the root public key R from the root private key r (step E3112) and/or the step of sending to a configuration device (step E3114) can be executed after the recording step (E3120) as long as the step of sending to a configuration device (step E3114) is executed after the step of calculating the root public key R from the key private root r (step E3112).

On notera en outre que l’étape d’envoi à un dispositif de configuration (étape E3114) de la clé publique racine R peut être omise.It should also be noted that the step of sending the root public key R to a configuration device (step E3114) can be omitted.

Selon une autre possibilité, la phase d’initialisation (Phase P1) peut comprendre d’autres étapes complémentaires (étapes E3111, E3112 et E3114 suivantes).According to another possibility, the initialization phase (Phase P1) may include other complementary steps (following steps E3111, E3112 and E3114).

Ainsi le procédé peut comprendre, avant l’étape d’enregistrement (étape E3120), une étape de réception (étape E3111), en provenance du dispositif de configuration, d’au moins un premier scalaire secret de la clé privée racine (r), c’est à dire ici du premier scalaire secret r1, ledit au moins un premier scalaire secret reçu du dispositif de configuration étant calculé à partir d’une clé privée maitre. La clé privée maitre est un entier appartenant à l’intervalle S(v,m).Thus the method can comprise, before the recording step (step E3120), a reception step (step E3111), from the configuration device, of at least a first secret scalar of the root private key (r) , that is to say here of the first secret scalar r 1 , said at least one first secret scalar received from the configuration device being calculated from a master private key. The master private key is an integer belonging to the interval S(v,m).

Typiquement, le dispositif de configuration dispose d’un quatrième scalaire secret formant la clé privée maitre.Typically, the configuration device has a fourth secret scalar forming the master private key.

Le procédé est ainsi particulièrement sécurisé car la détermination de la clé privée racine nécessite une coopération du dispositif de configuration.The method is thus particularly secure because the determination of the root private key requires cooperation from the configuration device.

Ici la clé privée racine r est formée d’un seul premier scalaire secret r1, le dispositif électronique reçoit donc du dispositif de configuration, tous les premiers scalaires secrets de l’ensemble formant la clé privée racine.Here the root private key r is formed from a single first secret scalar r 1 , the electronic device therefore receives from the configuration device, all the first secret scalars of the set forming the root private key.

Ainsi, l’efficacité du procédé est augmentée en limitant les interactions entre le dispositif de configuration et le dispositif électronique.Thus, the efficiency of the process is increased by limiting the interactions between the configuration device and the electronic device.

Selon un exemple, le premier scalaire secret r1reçu du dispositif de configuration est la clé privée maitre.According to one example, the first secret scalar r 1 received from the configuration device is the master private key.

Selon un autre exemple, le premier scalaire secret r1reçu du dispositif de configuration peut être dérivé par le dispositif de configuration à partir de la clé privée maitre en utilisant toute fonction de dérivation adaptée et bien connue de l’homme du métier.According to another example, the first secret scalar r 1 received from the configuration device can be derived by the configuration device from the master private key using any suitable derivation function well known to those skilled in the art.

La clé publique racine R peut être calculée par le dispositif de configuration.The root public key R can be calculated by the configuration device.

Selon une autre possibilité, le procédé peut aussi comprendre une étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E3112) et une étape d’envoi au dispositif de configuration (étape E3114) de la clé publique racine R calculée.According to another possibility, the method can also include a step of calculating the root public key R from the root private key r (step E3112) and a step of sending the public key to the configuration device (step E3114). root R calculated.

L’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E3112) et l’étape d’envoi à un dispositif de configuration (étape E3114) de la clé publique racine R sont illustrées dans la avant l’étape d’enregistrement (E3120) mais lorsqu’elles ne sont pas omises après l’étape de réception (étape E3111), l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E3112) et/ou l’étape d’envoi à un dispositif de configuration (étape E3114) peut être exécutée après l’étape d’enregistrement (E3120) du moment que l’étape d’envoi à un dispositif de configuration (étape E3114) est exécutée après l’étape de calcul de la clé publique racine R à partir de la clé privée racine r (étape E3112).The step of calculating the root public key R from the root private key r (step E3112) and the step of sending the root public key R to a configuration device (step E3114) are illustrated in the before the recording step (E3120) but when they are not omitted after the reception step (step E3111), the step of calculating the root public key R from the root private key r (step E3112) and/or the step of sending to a configuration device (step E3114) can be executed after the recording step (E3120) as long as the step of sending to a configuration device (step E3114 ) is executed after the step of calculating the root public key R from the root private key r (step E3112).

De façon avantageuse le dispositif de configuration peut certifier la clé publique racine R.Advantageously, the configuration device can certify the root public key R.

Le procédé permet ainsi à une autorité disposant du dispositif de configuration d’assurer que la phase d’initialisation du dispositif électronique a été réalisée sous son contrôle.The method thus allows an authority having the configuration device to ensure that the initialization phase of the electronic device has been carried out under its control.

La certification de la clé publique racine peut consister en l’inscription de la clé publique racine dans une liste d’au moins une clé publique de confiance, ou en la signature cryptographique de ladite clé publique racine, par exemple avec une clé privée de certification émise par une autorité de confiance.Certification of the root public key may consist of registering the root public key in a list of at least one trusted public key, or of cryptographic signing of said root public key, for example with a private certification key. issued by a trusted authority.

Après l’étape d’enregistrement (étape E3120), le procédé comprend alors une étape (étape E3220) de calcul d’un deuxième scalaire secret formant une clé privée dérivée a égal f(s, k) où f est une fonction de dérivation, s est un sous-ensemble non vide de l‘ensemble d'au moins un premier scalaire secret, et k est un troisième scalaire secret : a = f(s, k).After the recording step (step E3120), the method then comprises a step (step E3220) of calculating a second secret scalar forming a derived private key equal to f(s, k) where f is a differentiation function , s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar: a = f(s, k).

Ici, l’ensemble d'au moins un premier scalaire secret possède un seul premier scalaire secret, le premier scalaire secret r1, et le sous-ensemble s possède donc un seul premier scalaire secret, le premier scalaire secret r1.Here, the set of at least one first secret scalar has a single first secret scalar, the first secret scalar r 1 , and the subset s therefore has a single first secret scalar, the first secret scalar r 1 .

En outre, le deuxième scalaire secret a et le troisième scalaire secret sont des entiers appartenant à l’intervalle S(v,m).Furthermore, the second secret scalar a and the third secret scalar are integers belonging to the interval S(v,m).

Le troisième scalaire secret k peut être déterminé par le dispositif électronique par tirage aléatoire ou par application d’une fonction physique non clonable, par exemple une fonction telle que décrite dans le document ‘A PUF taxonomy’ par Thomas McGrath , Ibrahim E. Bagci , Zhiming M. Wang , Utz Roedig , Robert J. Young, publié le 12/02/2019.The third secret scalar k can be determined by the electronic device by random selection or by application of a non-clonable physical function, for example a function as described in the document 'A PUF taxonomy' by Thomas McGrath, Ibrahim E. Bagci, Zhiming M. Wang, Utz Roedig, Robert J. Young, published 02/12/2019.

Selon un exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k·r1.According to an example, the differentiation function f can be defined as follows: f(s, k) = k·r 1 .

Le procédé comprend alors une étape de calcul d’une clé publique dérivée A associée au deuxième scalaire secret a (étape E3240), c’est-à-dire à la clé privée dérivée a.The method then comprises a step of calculating a derived public key A associated with the second secret scalar a (step E3240), that is to say with the derived private key a.

Typiquement, le processeur 4 peut calculer la clé publique dérivée A comme suit : .Typically, the processor 4 can calculate the derived public key A as follows: .

Selon une autre possibilité, quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E3220) est définie selon l’ exemple décrit ci-avant, le processeur 4 peut calculer la clé publique dérivée A comme suit : .According to another possibility, when the derivation function f used during the step of calculating a second secret scalar (step E3220) is defined according to the example described above, the processor 4 can calculate the derived public key A as follows: .

L’étape de calcul d’un deuxième scalaire secret (étape E3220) et l’étape de calcul d’une clé publique dérivée A (étape E3240) sont dans une phase du procédé dite phase de génération d’une clé privée dérivée et d’une clé publique dérivée (phase P2).The step of calculating a second secret scalar (step E3220) and the step of calculating a derived public key A (step E3240) are in a phase of the method called the phase of generating a derived private key and 'a derived public key (phase P2).

Cette phase de génération d’une clé privée dérivée et d’une clé publique dérivée (phase P2) est typiquement mise en œuvre par le module de génération de clés du dispositif électronique 2.This phase of generating a derived private key and a derived public key (phase P2) is typically implemented by the key generation module of the electronic device 2.

Le procédé comprend alors une étape de génération d’une preuve à divulgation nulle de connaissance (étape E3320) que la clef publique dérivée A est associée à un scalaire égal à f(u, l), u étant le sous-ensemble s de l’ensemble d'au moins un premier scalaire secret, formant la clé privée racine r associée à la clef publique racine R et l étant égal à k.The method then comprises a step of generating a proof with zero disclosure of knowledge (step E3320) that the derived public key A is associated with a scalar equal to f(u, l), u being the subset s of l set of at least one first secret scalar, forming the root private key r associated with the root public key R and l being equal to k.

L’étape de génération d’une preuve à divulgation nulle de connaissance (étape E3320) est dans une phase du procédé dite phase de génération de preuve (phase P3).The step of generating a proof with zero knowledge disclosure (step E3320) is in a phase of the method called the proof generation phase (phase P3).

Cette phase de génération de preuve (phase P3) est typiquement mise en œuvre par le module de génération de preuve du dispositif électronique 2.This proof generation phase (phase P3) is typically implemented by the proof generation module of the electronic device 2.

Le procédé comprend alors une étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E3420), pendant laquelle le dispositif électronique 2 transmet au dispositif de vérification, typiquement en utilisant son bloc de communication 10, la preuve à divulgation nulle de connaissance.The method then comprises a step of transmitting the zero knowledge disclosure proof to the verification device (step E3420), during which the electronic device 2 transmits to the verification device, typically using its communication block 10, the disclosure proof zero knowledge.

Le procédé permet ainsi au dispositif de vérification de vérifier que la clé privée dérivée a dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The method thus allows the verification device to verify that the derived private key a derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

En outre, le procédé permet cette vérification sans divulguer, typiquement au dispositif de vérification, la clé privée racine r, ni le sous-ensemble s, ni la clé privée dérivée a, ni le troisième scalaire secret k.Furthermore, the method allows this verification without disclosing, typically to the verification device, the root private key r, nor the subset s, nor the derived private key a, nor the third secret scalar k.

L’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E3420) est dans une phase du procédé dite phase de transmission (phase P4).The step of transmitting the proof with zero knowledge disclosure to the verification device (step E3420) is in a phase of the method called the transmission phase (phase P4).

Cette phase de transmission (phase P4) est typiquement mise en œuvre par le module de de transmission du dispositif électronique 2.This transmission phase (phase P4) is typically implemented by the transmission module of the electronic device 2.

Selon une possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve non interactive.According to one implementation possibility, the proof with zero knowledge disclosure is a non-interactive proof.

La mise en œuvre de la phase de génération de preuve et de la phase de transmission est ainsi simplifiée, notamment en limitant les échanges entre le dispositif électronique et le dispositif de vérification qui peuvent être unidirectionnels et asynchrones.The implementation of the proof generation phase and the transmission phase is thus simplified, in particular by limiting the exchanges between the electronic device and the verification device which can be unidirectional and asynchronous.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E3220) est définie selon l’exemple décrit ci-avant pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance non interactive au cours de l’étape associée (étape E3320).When the derivation function f used during the step of calculating a second secret scalar (step E3220) is defined according to the example described above for this step, the processor 4 can perform the following calculations to generate the proof to zero disclosure of non-interactive knowledge during the associated step (step E3320).

Le processeur 4 calcule un premier élément intermédiaire comme suit : où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée, et appartenant à un intervalle S(v,e·(m+k’)+2) définit comme suit : S(v,e·(m+k’)+2) = [2v– 2e ·(m+k )+2+ 1, 2v+ 2e ·(m+k )+2- 1] avec e et k’ des paramètres prédéterminés tels que e est un entier dont la valeur est strictement supérieure à un et k’ est un entier naturel.The processor 4 calculates a first intermediate element as follows: where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random selection or by application of a pseudo-random algorithm to a piece of data, and belonging to an interval S(v,e·(m+k') +2) defines as follows: S(v,e·(m+k')+2) = [2 v – 2 e ·(m+k ' )+2 + 1, 2 v + 2 e ·(m+ k ' )+2 - 1] with e and k' predetermined parameters such that e is an integer whose value is strictly greater than one and k' is a natural number.

Le processeur 4 calcule aussi un deuxième élément intermédiaire comme suit : où t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée, et appartenant à l’intervalle S(v,e·(m+k’)+2).The processor 4 also calculates a second intermediate element as follows: where t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data, and belonging to the interval S(v,e·(m+k ')+2).

Le processeur 4 calcule ensuite un premier condensat d’une donnée intermédiaire par une fonction de hachage, par exemple SHA256 ou SHA3, telles que spécifiées dans le document FIPS PUB 180-4 intitulé ‘Secure Hash Standard’ et publié en aout 2015 par le NIST, la donnée intermédiaire étant la concaténation du premier élément intermédiaire S1, du deuxième élément intermédiaire S2, de la clé publique racine R et de la clé publique dérivée A.The processor 4 then calculates a first condensate of intermediate data by a hash function, for example SHA256 or SHA3, as specified in the FIPS PUB 180-4 document entitled 'Secure Hash Standard' and published in August 2015 by NIST , the intermediate data being the concatenation of the first intermediate element S 1 , the second intermediate element S 2 , the root public key R and the derived public key A.

Autrement dit, c = Ha(S1|| S2||R||A), où c est le premier condensat et Ha est la fonction de hachage.That is, c = Ha(S 1 || S 2 ||R||A), where c is the first condensate and Ha is the hash function.

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1et un deuxième scalaire de preuve s2comme suit : s1= t1- c·(r1- 2v) et s2= t2- c·(k - 2v).Then the processor 4 respectively calculates a first proof scalar s 1 and a second proof scalar s 2 as follows: s 1 = t 1 - c · (r 1 - 2 v ) and s 2 = t 2 - c · (k - 2v ).

La preuve à divulgation nulle de connaissance est ainsi constituée du premier condensat c, du premier scalaire de preuve s1et du deuxième scalaire de preuve s2.The proof with zero knowledge disclosure is thus made up of the first condensate c, the first proof scalar s 1 and the second proof scalar s 2 .

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E3420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier condensat c, le premier scalaire de preuve s1et le deuxième scalaire de preuve s2.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E3420), the electronic device 2 can then transmit to the verification device the first condensate c, the first proof scalar s 1 and the second scalar of proof s 2 .

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut vérifier que le premier scalaire de preuve s1et le deuxième scalaire de preuve s2reçus appartiennent à l’intervalle S(v,e·(m+k’)+2).Typically the verification device can verify that the first proof scalar s 1 and the second proof scalar s 2 received belong to the interval S(v,e·(m+k')+2).

Le dispositif de vérification peut aussi calculer un troisième élément intermédiaire S’1comme suit : .The verification device can also calculate a third intermediate element S' 1 as follows: .

Le dispositif de vérification peut calculer un quatrième élément intermédiaire S’2comme suit : .The verification device can calculate a fourth intermediate element S' 2 as follows: .

Le dispositif de vérification peut ensuite calculer un deuxième condensat d’une autre donnée intermédiaire par la fonction de hachage, l’autre donnée intermédiaire étant la concaténation du troisième élément intermédiaire S’1, du quatrième élément intermédiaire S’2, de la clé publique racine R et de la clé publique dérivée A.The verification device can then calculate a second condensate of another intermediate data by the hash function, the other intermediate data being the concatenation of the third intermediate element S' 1 , of the fourth intermediate element S' 2 , of the public key root R and the derived public key A.

Autrement dit, c’ = Ha(S’1|| S’2||R||A), où c’ est le deuxième condensat.In other words, c' = Ha(S' 1 || S' 2 ||R||A), where it is the second condensate.

Le dispositif de vérification peut alors comparer le deuxième condensat c’ avec le premier condensat c. Si le deuxième condensat c’ est égal au premier condensat c, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R.The verification device can then compare the second condensate c’ with the first condensate c. If the second condensate c' is equal to the first condensate c, the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R.

La clé publique dérivée A et la clé publique racine R sont des clés publiques et peuvent donc être reçues par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique 2.The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device 2.

Selon une autre possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve interactive.According to another implementation possibility, the proof with zero knowledge disclosure is an interactive proof.

La génération de la preuve à divulgation nulle de connaissance, et la transmission de la preuve à divulgation nulle de connaissance à un dispositif de vérification, sont par exemple sous la forme d’un protocole défi-réponse.The generation of the zero-knowledge proof, and the transmission of the zero-knowledge proof to a verification device, are for example in the form of a challenge-response protocol.

Le procédé permet ainsi au dispositif de vérification de vérifier que le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k, c’est-à-dire que le dispositif électronique peut réaliser au moins un traitement impliquant tous les premiers scalaires secrets de l’ensemble formant la clé privée racine et au moins un traitement impliquant le troisième scalaire secret k.The method thus allows the verification device to verify that the electronic device has the root private key r and the third secret scalar k, that is to say that the electronic device can carry out at least one processing involving all the first scalars secrets of the set forming the root private key and at least one processing involving the third secret scalar k.

Quand la fonction de dérivation f utilisée pendant l’étape de calcul d’un deuxième scalaire secret (étape E3220) est définie selon l’exemple décrit plus haut pour cette étape, le processeur 4 peut effectuer les calculs suivants pour générer la preuve à divulgation nulle de connaissance interactive au cours de l’étape associée (étape E3320).When the derivation function f used during the step of calculating a second secret scalar (step E3220) is defined according to the example described above for this step, the processor 4 can perform the following calculations to generate the proof for disclosure zero interactive knowledge during the associated step (step E3320).

Le processeur 4 calcule un premier élément intermédiaire comme suit : où t1est un premier scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une donnée, appartenant à un intervalle S(v,e·(m+k’)+2) définit comme suit : S(v,e·(m+k’)+2) = [2v– 2e ·(m+k )+2+ 1, 2v+ 2e ·(m+k )+2- 1] avec e et k’ des paramètres prédéterminés tels que e est un entier dont la valeur est strictement supérieure à un et k’ est un entier naturel.The processor 4 calculates a first intermediate element as follows: where t 1 is a first intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to data, belonging to an interval S(v,e·(m+k')+ 2) defines as follows: S(v,e·(m+k')+2) = [2 v – 2 e ·(m+k ' )+2 + 1, 2 v + 2 e ·(m+k ' )+2 - 1] with e and k' predetermined parameters such that e is an integer whose value is strictly greater than one and k' is a natural number.

Le processeur 4 calcule aussi un deuxième élément intermédiaire comme suit : où t2est un deuxième scalaire intermédiaire déterminé par le dispositif électronique 2, par exemple par tirage aléatoire ou par application d’un algorithme pseudo aléatoire à une autre donnée, appartenant à l’intervalle S(v,e·(m+k’)+2).The processor 4 also calculates a second intermediate element as follows: where t 2 is a second intermediate scalar determined by the electronic device 2, for example by random drawing or by application of a pseudo-random algorithm to another piece of data, belonging to the interval S(v,e·(m+k' )+2).

Puis le processeur 4 calcule respectivement un premier scalaire de preuve s1et un deuxième scalaire de preuve s2comme suit : s1= t1- c·(r1- 2v) et s2= t1- c·(k - 2v), où c est un scalaire de challenge préalablement reçu par le dispositif électronique en provenance du dispositif de vérification.Then the processor 4 respectively calculates a first proof scalar s 1 and a second proof scalar s 2 as follows: s 1 = t 1 - c · (r 1 - 2 v ) and s 2 = t 1 - c · (k - 2 v ), where c is a challenge scalar previously received by the electronic device from the verification device.

La preuve à divulgation nulle de connaissance est ainsi constituée du premier élément intermédiaire S1, du deuxième élément intermédiaire S2, du premier scalaire de preuve s1 et du deuxième scalaire de preuve s2.The proof with zero knowledge disclosure is thus made up of the first intermediate element S1, the second intermediate element S2, the first proof scalar s1 and the second proof scalar s2.

Pendant l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E3420), le dispositif électronique 2 peut alors transmettre au dispositif de vérification le premier élément intermédiaire S1, le deuxième élément intermédiaire S2, le premier scalaire de preuve s1 et le deuxième scalaire de preuve s2.During the step of transmitting the proof with zero knowledge disclosure to the verification device (step E3420), the electronic device 2 can then transmit to the verification device the first intermediate element S1, the second intermediate element S2, the first scalar of proof s1 and the second proof scalar s2.

De préférence, pour améliorer la sécurité, le scalaire de challenge c est reçu par le dispositif électronique 2 en provenance du dispositif de vérification, préalablement au calcul du premier scalaire de preuve s1et du deuxième scalaire de preuve s2, mais après l’envoi par le dispositif électronique 2 au dispositif de vérification, du premier élément intermédiaire S1et du deuxième élément intermédiaire S2. L’étape de génération d'une preuve à divulgation nulle de connaissance (étape E3320) et l’étape de transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification (étape E3420), respectivement la phase de génération de preuve et la phase de transmission, sont alors réalisées de façon concomitante (non représentée dans la figure).Preferably, to improve security, the challenge scalar c is received by the electronic device 2 from the verification device, prior to the calculation of the first proof scalar s 1 and the second proof scalar s 2 , but after the sending by the electronic device 2 to the verification device, of the first intermediate element S 1 and the second intermediate element S 2 . The step of generating a proof with zero knowledge disclosure (step E3320) and the step of transmitting the proof with zero knowledge disclosure to the verification device (step E3420), respectively the proof generation phase and the transmission phase, are then carried out concomitantly (not shown in the figure).

Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.The verification device can verify the zero-knowledge proof.

Typiquement le dispositif de vérification peut vérifier que le premier scalaire de preuve s1et le deuxième scalaire de preuve s2reçus appartiennent à l’intervalle S(v,e·(m+k’)+2).Typically the verification device can verify that the first proof scalar s 1 and the second proof scalar s 2 received belong to the interval S(v,e·(m+k')+2).

Le dispositif de vérification peut aussi calculer un troisième élément intermédiaire S’1comme suit : .The verification device can also calculate a third intermediate element S' 1 as follows: .

Le dispositif de vérification peut calculer un quatrième élément intermédiaire S’2comme suit : .The verification device can calculate a fourth intermediate element S' 2 as follows: .

Le dispositif de vérification peut calculer un cinquième élément intermédiaire S’’1comme suit : .The verification device can calculate a fifth intermediate element S'' 1 as follows: .

Le dispositif de vérification peut calculer un sixième élément intermédiaire S’’2comme suit : .The verification device can calculate a sixth intermediate element S'' 2 as follows: .

Le dispositif de vérification peut alors comparer respectivement le troisième élément intermédiaire S’1avec le cinquième élément intermédiaire S’’1,et le quatrième élément intermédiaire S’2avec le sixième élément intermédiaire S’’2.The verification device can then respectively compare the third intermediate element S'1 with the fifth intermediate element S''1 , and the fourth intermediate element S'2 with the sixth intermediate element S''2 .

Si le troisième élément intermédiaire S’1est égal au cinquième élément intermédiaire S’’1,et si le quatrième élément intermédiaire S’2est égal au sixième élément intermédiaire S’’2, la clé privée dérivée a associée à la clé publique dérivée A, dérive du sous-ensemble s de l’ensemble d'au moins un premier scalaire secret formant la clé privée racine r enregistrée dans le dispositif électronique, ladite clé privée racine r étant associée à la clef publique racine R, et le dispositif électronique dispose de la clé privée racine r et du troisième scalaire secret k.If the third intermediate element S' 1 is equal to the fifth intermediate element S'' 1, and if the fourth intermediate element S' 2 is equal to the sixth intermediate element S'' 2 , the derived private key a associated with the derived public key A, derives from the subset s of the set of at least one first secret scalar forming the root private key r recorded in the electronic device, said root private key r being associated with the root public key R, and the electronic device has the root private key r and the third secret scalar k.

La clé publique dérivée A et la clé publique racine R sont des clés publiques et peuvent donc être reçues par le dispositif de vérification de tout autres dispositifs, par exemple du dispositif de configuration et/ou du dispositif électronique.The derived public key A and the root public key R are public keys and can therefore be received by the verification device from any other devices, for example from the configuration device and/or the electronic device.

Un homme du métier comprendra que le procédé décrit en référence à la avec une clé privée racine r formée d’un seul premier scalaire secret r1, peut être adapté pour une clé privée racine r formée d’une pluralité de premiers scalaires secrets.A person skilled in the art will understand that the process described with reference to the with a root private key r formed by a single first secret scalar r 1 , can be adapted for a root private key r formed by a plurality of first secret scalars.

Ainsi, lorsque le procédé est mis en œuvre par chaque dispositif électronique d’une pluralité de dispositifs électroniques, chacun des dispositifs électroniques de ladite pluralité peut utiliser une clé privée racine r qui lui est propre et une même clé publique racine R. L’utilisation d’une clé privée racine r propre à chaque dispositif électronique de la pluralité rend le procédé plus sécurisé vis-à-vis d’attaques par canaux auxiliaires visant à obtenir une clé privée racine r. En outre, la vérification est simplifiée car elle nécessite l’utilisation d’une seule et unique clé publique racine R, qui est commune à tous les dispositifs électroniques de ladite pluralité.Thus, when the method is implemented by each electronic device of a plurality of electronic devices, each of the electronic devices of said plurality can use a private root key r which is specific to it and the same public root key R. The use of a root r private key specific to each electronic device of the plurality makes the method more secure with respect to side channel attacks aimed at obtaining a root r private key. In addition, verification is simplified because it requires the use of a single and unique root public key R, which is common to all electronic devices of said plurality.

De façon avantageuse, quel que soit le mode d’implémentation du procédé de traitement cryptographique selon l’invention, la phase d’initialisation (phase P1) peut être mise en œuvre au niveau d’un site d’initialisation, et la phase de génération d'une clé privée dérivée a et d'une clé publique dérivée A (phase P2) est mise en œuvre au niveau d’un autre site distinct du site d’initialisation.Advantageously, whatever the mode of implementation of the cryptographic processing method according to the invention, the initialization phase (phase P1) can be implemented at an initialization site, and the phase of generation of a derived private key a and a derived public key A (phase P2) is implemented at another site distinct from the initialization site.

La mise en œuvre de la phase d’initialisation et de la phase de génération sur des sites distincts améliore la sécurité du procédé.Implementing the initialization phase and the generation phase on separate sites improves the safety of the process.

Claims (13)

Procédé de traitement cryptographique mis en œuvre par un dispositif électronique, le dispositif électronique coopérant avec un dispositif de vérification, et ledit procédé comprenant :
i) une phase d'initialisation (P1) d’un ensemble d'au moins un premier scalaire secret (r1 ; r2) formant une clé privée racine (r) associée à une clé publique racine (R), la phase d’initialisation comprenant l'étape suivante :
- enregistrement (E120 ; E1120 ; E2120 ; E3120) de la clé privée racine (r) dans une mémoire du dispositif électronique,
et
ii) une phase de génération (P2) d'une clé privée dérivée (a) et d'une clé publique dérivée (A), comprenant les étapes suivantes :
- calcul (E220 ; E1220 ; E2220 ; E3220) d'un deuxième scalaire secret formant la clé privée dérivée (a) égal à f(s, k) où f est une fonction de dérivation, s est un sous-ensemble non vide de l‘ensemble d'au moins un premier scalaire secret, et k est un troisième scalaire secret,
- calcul (E240 ; E1240 ; E2240 ; E3240) de la clé publique dérivée (A) associée au deuxième scalaire secret (a),
puis
iii) une phase de génération de preuve (P3) comprenant l'étape suivante :
- génération (E320 ; E1320 ; E2320 ; E3320) d'une preuve à divulgation nulle de connaissance que la clef publique dérivée (A) est associée à un scalaire égal à f(u, l), u étant le sous-ensemble s de l’ensemble d'au moins un premier scalaire secret (r1 ;r2) formant la clé privée racine (r) associée à la clef publique racine (R) et l étant égal à k,
et
iv) une phase de transmission (P4) comprenant l'étape suivante :
- transmission (E420 ; E1420 ; E2420 ; E3420) de la preuve à divulgation nulle de connaissance au dispositif de vérification.
Cryptographic processing method implemented by an electronic device, the electronic device cooperating with a verification device, and said method comprising:
i) an initialization phase (P1) of a set of at least one first secret scalar (r1; r2) forming a root private key (r) associated with a root public key (R), the initialization phase including the following step:
- recording (E120; E1120; E2120; E3120) of the root private key (r) in a memory of the electronic device,
And
ii) a generation phase (P2) of a derived private key (a) and a derived public key (A), comprising the following steps:
- calculation (E220; E1220; E2220; E3220) of a second secret scalar forming the derived private key (a) equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar,
- calculation (E240; E1240; E2240; E3240) of the derived public key (A) associated with the second secret scalar (a),
Then
iii) a proof generation phase (P3) comprising the following step:
- generation (E320; E1320; E2320; E3320) of a zero-disclosure proof of knowledge that the derived public key (A) is associated with a scalar equal to f(u, l), u being the subset s of the set of at least one first secret scalar (r 1 ; r 2 ) forming the root private key (r) associated with the root public key (R) and l being equal to k,
And
iv) a transmission phase (P4) comprising the following step:
- transmission (E420; E1420; E2420; E3420) of the proof with zero knowledge disclosure to the verification device.
Procédé de traitement cryptographique selon la revendication précédente dans lequel
- le dispositif électronique coopère en outre avec un dispositif de configuration pendant la phase d’initialisation, et
- la clé publique racine (R) est certifiée par le dispositif de configuration.
Cryptographic processing method according to the preceding claim in which
- the electronic device further cooperates with a configuration device during the initialization phase, and
- the root public key (R) is certified by the configuration device.
Procédé de traitement cryptographique selon l’une quelconque des revendications précédentes dans lequel la phase d’initialisation comprend en outre les étapes suivantes :
- calcul (E110 ; E1110 ; E2110 ; E3110), avant l’étape d’enregistrement, de tous les premiers scalaires secrets de l’ensemble formant la clé privée racine (r), au moins un premier scalaire secret de la clé privée racine (r) étant calculé par tirage aléatoire ou par application d’une fonction physique non clonable, puis
- calcul (E112 ; E1112 ; E2112 ; E3112) de la clé publique racine (R) à partir de la clé privée racine (r).
Cryptographic processing method according to any one of the preceding claims in which the initialization phase further comprises the following steps:
- calculation (E110; E1110; E2110; E3110), before the recording step, of all the first secret scalars of the set forming the root private key (r), at least one first secret scalar of the root private key (r) being calculated by random selection or by application of a non-clonable physical function, then
- calculation (E112; E1112; E2112; E3112) of the root public key (R) from the root private key (r).
Procédé de traitement cryptographique selon la revendication 2 dans lequel le dispositif de configuration dispose d’un quatrième scalaire secret formant une clé privée maitre associée à la clé publique racine (R), et dans lequel la phase d’initialisation comprend en outre l’étape suivante avant l’étape d’enregistrement :
- réception (E111 ; E1111 ; E1119 ; E2111 ; E3111), en provenance du dispositif de configuration, d’au moins un premier scalaire secret de la clé privée racine (r), ledit au moins un premier scalaire secret reçu du dispositif de configuration étant calculé à partir de la clé privée maitre.
Cryptographic processing method according to claim 2 in which the configuration device has a fourth secret scalar forming a master private key associated with the root public key (R), and in which the initialization phase further comprises the step following before the recording step:
- reception (E111; E1111; E1119; E2111; E3111), from the configuration device, of at least one first secret scalar of the root private key (r), said at least one first secret scalar received from the configuration device being calculated from the master private key.
Procédé de traitement cryptographique selon la revendication 4 dans lequel le dispositif de configuration dispose en outre d’un cinquième scalaire secret formant une clé privée supplémentaire (h) associée une clé publique supplémentaire (H), et dans lequel ledit au moins un premier scalaire secret reçu du dispositif de configuration est calculé à partir de la clé privée maitre et de la clé privée supplémentaire.Cryptographic processing method according to claim 4 in which the configuration device further has a fifth secret scalar forming an additional private key (h) associated with an additional public key (H), and in which said at least one first secret scalar received from the configuration device is calculated from the master private key and the additional private key. Procédé de traitement cryptographique selon l’une quelconque des revendications 1 à 4 dans lequel la clé privée racine (r) est formée d’un seul premier scalaire secret (r1).Cryptographic processing method according to any one of claims 1 to 4 in which the root private key (r) is formed from a single first secret scalar (r 1 ). Procédé de traitement cryptographique selon l’une quelconque des revendications 1 à 5 dans lequel la clé privée racine (r) est formée d’une pluralité de premiers scalaires secrets (r1 ;r2).Cryptographic processing method according to any one of claims 1 to 5 in which the root private key (r) is formed of a plurality of first secret scalars (r 1 ; r 2 ). Procédé de traitement cryptographique selon la revendication 7 lorsqu’elle dépend de la revendication 4, dans lequel la phase d’initialisation comprend en outre les étapes suivantes avant l’étape d’enregistrement:
- détermination (E1116) d’un premier scalaire secret de la clé privée racine (r), puis
- chiffrement (E1117) de manière homomorphe du premier scalaire secret déterminé, puis
- transmission (E1118) au dispositif de configuration du chiffré du premier scalaire secret déterminé,
et dans lequel pendant l’étape de réception (E1119) de la phase d’initialisation, le dispositif électronique :
- reçoit un autre premier scalaire secret de la clé privée racine (r), chiffré de la même manière homomorphe, le chiffré dudit autre premier scalaire secret ayant été déterminé à partir de la clé privée maitre et du chiffré transmis par le dispositif électronique au dispositif de configuration, et
- déchiffre le chiffré de l’autre premier scalaire secret pour obtenir ledit au moins un premier scalaire secret reçu du dispositif de configuration.
Cryptographic processing method according to claim 7 when dependent on claim 4, in which the initialization phase further comprises the following steps before the recording step:
- determination (E1116) of a first secret scalar of the root private key (r), then
- encryption (E1117) in a homomorphic manner of the first determined secret scalar, then
- transmission (E1118) to the cipher configuration device of the first determined secret scalar,
and in which during the reception step (E1119) of the initialization phase, the electronic device:
- receives another first secret scalar of the root private key (r), encrypted in the same homomorphic manner, the cipher of said other first secret scalar having been determined from the master private key and the cipher transmitted by the electronic device to the device configuration, and
- decrypts the ciphertext of the other first secret scalar to obtain said at least one first secret scalar received from the configuration device.
Procédé de traitement cryptographique selon la revendication 8 dans lequel la détermination (E1116) d’un premier scalaire secret de la clé privée racine (r) est par tirage aléatoire ou par application d’une fonction physique non clonable.Cryptographic processing method according to claim 8 in which the determination (E1116) of a first secret scalar of the root private key (r) is by random drawing or by application of a non-clonable physical function. Procédé de traitement cryptographique selon l’une quelconque des revendications précédentes dans lequel le troisième scalaire secret k est déterminé par le dispositif électronique par tirage aléatoire ou par application d’une fonction physique non clonable.Cryptographic processing method according to any one of the preceding claims in which the third secret scalar k is determined by the electronic device by random drawing or by application of a non-clonable physical function. Procédé de traitement cryptographique selon l’une quelconque des revendications précédentes dans lequel
- la phase d’initialisation est mise en œuvre au niveau d’un site d’initialisation, et
- la phase de génération d'une clé privée dérivée (a) et d'une clé publique dérivée (A) est mise en œuvre au niveau d’un autre site distinct du site d’initialisation.
Cryptographic processing method according to any one of the preceding claims in which
- the initialization phase is implemented at an initialization site, and
- the phase of generating a derived private key (a) and a derived public key (A) is implemented at another site distinct from the initialization site.
Programme d’ordinateur comprenant des instructions exécutables par un processeur (4) et adaptées à mettre en œuvre un procédé selon l’une quelconque des revendications 1 à 11 lorsque ces instructions sont exécutées par le processeur (4).Computer program comprising instructions executable by a processor (4) and adapted to implement a method according to any one of claims 1 to 11 when these instructions are executed by the processor (4). Dispositif électronique de traitement cryptographique adapté pour coopérer avec un dispositif de vérification et comprenant :
i) un module d’initialisation configuré pour réaliser une phase d'initialisation d’un ensemble d'au moins un premier scalaire secret (r1 ; r2) formant une clé privée racine (r) associée à une clef publique racine (R), la phase d’initialisation comprenant l'étape suivante :
- enregistrement de la clé privée racine (r) dans une mémoire du dispositif électronique,
ii) un module de génération de clés configuré pour réaliser une phase de génération d'une clé privée dérivée (a) et d'une clé publique dérivée (A), comprenant les étapes suivantes :
- calcul d'un deuxième scalaire secret formant la clé privée dérivée (a) égal à f(s, k) où f est une fonction de dérivation, s est un sous-ensemble non vide de l‘ensemble d'au moins un premier scalaire secret, et k est un troisième scalaire secret,
- calcul de la clé publique dérivée (A) associée au deuxième scalaire secret (a),
iii) un module de génération de preuve configuré pour réaliser une phase de génération de preuve comprenant l'étape suivante :
- génération d'une preuve à divulgation nulle de connaissance que la clef publique dérivée (A) est associée à un scalaire égal à f(u, l), u étant le sous-ensemble s de l’ensemble d'au moins un premier scalaire secret (r1 ;r2) formant la clé privée racine (r) associée à la clef publique racine (R) et l étant égal à k,
iv) un module de transmission configuré pour réaliser une phase de transmission comprenant l'étape suivante :
- transmission de la preuve à divulgation nulle de connaissance au dispositif de vérification.
Electronic cryptographic processing device adapted to cooperate with a verification device and comprising:
i) an initialization module configured to carry out an initialization phase of a set of at least one first secret scalar (r1 ; r2) forming a root private key (r) associated with a root public key (R), the initialization phase comprising the following step:
- recording of the root private key (r) in a memory of the electronic device,
ii) a key generation module configured to carry out a generation phase of a derived private key (a) and a derived public key (A), comprising the following steps:
- calculation of a second secret scalar forming the derived private key (a) equal to f(s, k) where f is a derivation function, s is a non-empty subset of the set of at least one first secret scalar, and k is a third secret scalar,
- calculation of the derived public key (A) associated with the second secret scalar (a),
iii) a proof generation module configured to carry out a proof generation phase comprising the following step:
- generation of a zero-knowledge proof that the derived public key (A) is associated with a scalar equal to f(u, l), u being the subset s of the set of at least one first secret scalar (r1 ;r2) forming the root private key (r) associated with the root public key (R) and l being equal to k,
iv) a transmission module configured to carry out a transmission phase comprising the following step:
- transmission of the zero-knowledge proof to the verification device.
FR2210262A 2022-10-06 2022-10-06 Cryptographic processing method, electronic device and associated computer program Pending FR3140728A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2210262A FR3140728A1 (en) 2022-10-06 2022-10-06 Cryptographic processing method, electronic device and associated computer program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2210262 2022-10-06
FR2210262A FR3140728A1 (en) 2022-10-06 2022-10-06 Cryptographic processing method, electronic device and associated computer program

Publications (1)

Publication Number Publication Date
FR3140728A1 true FR3140728A1 (en) 2024-04-12

Family

ID=85381052

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2210262A Pending FR3140728A1 (en) 2022-10-06 2022-10-06 Cryptographic processing method, electronic device and associated computer program

Country Status (1)

Country Link
FR (1) FR3140728A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180270065A1 (en) * 2017-03-15 2018-09-20 NuID, Inc. Methods and systems for universal storage and access to user-owned credentials for trans-institutional digital authentication
CN108667626A (en) * 2018-07-20 2018-10-16 陕西师范大学 The two sides cooperation SM2 endorsement methods of safety

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180270065A1 (en) * 2017-03-15 2018-09-20 NuID, Inc. Methods and systems for universal storage and access to user-owned credentials for trans-institutional digital authentication
CN108667626A (en) * 2018-07-20 2018-10-16 陕西师范大学 The two sides cooperation SM2 endorsement methods of safety

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Secure Hash Standard", DOCUMENT FIPS PUB 180-4, August 2015 (2015-08-01)
DEHKORDI MASSOUD HADIAN ET AL: "Zero-knowledge identification scheme based on Weil pairing", LOBACHEVSKII JOURNAL OF MATHEMATICS, vol. 30, no. 3, 1 July 2009 (2009-07-01), Boston, pages 203 - 207, XP093049060, ISSN: 1995-0802, Retrieved from the Internet <URL:http://link.springer.com/article/10.1134/S1995080209030020/fulltext.html> [retrieved on 20230524], DOI: 10.1134/S1995080209030020 *
TEDESCHI PIETRO ET AL: "When Blockchain Makes Ephemeral Keys Authentic: A Novel Key Agreement Mechanism in the IoT World", 2018 IEEE GLOBECOM WORKSHOPS (GC WKSHPS), IEEE, 9 December 2018 (2018-12-09), pages 1 - 6, XP033519289, DOI: 10.1109/GLOCOMW.2018.8644494 *
THOMAS MCGRATHIBRAHIM E. BAGCIZHIMING M. WANGUTZ ROEDIGROBERT J. YOUNG, A PUF TAXONOMY, 2 December 2019 (2019-12-02)

Similar Documents

Publication Publication Date Title
EP3152860B1 (en) Method for the authentication of a first electronic entity by a second electronic entity, and electronic entity implementing such a method
FR2759226A1 (en) PROTOCOL FOR VERIFYING A DIGITAL SIGNATURE
EP1151576B1 (en) Public and private key cryptographic method
CH634161A5 (en) APPARATUS FOR DECIPHERING A NUMBERED MESSAGE AND ITS USE IN A TRANSMISSION INSTALLATION.
EP2345202A2 (en) Digital signature method in two steps
EP2296086B1 (en) Protection of prime number generation against side-channel attacks
EP2127197A2 (en) Identity based broadcast encryption
CA2895189C (en) Group signature using a pseudonym
EP2795833B1 (en) Authentication method between a reader and a radio tag
EP0346180B1 (en) Apparatus for protected data communication
EP2371083B1 (en) Group signature with local revocation verification with capacity for lifting anonymity
FR2960728A1 (en) METHOD FOR DETERMINING A REPRESENTATION OF A PRODUCT AND METHOD FOR EVALUATING A FUNCTION
FR3083885A1 (en) CIRCUIT FOR GENERATING ROTATION FACTORS FOR NTT PROCESSOR
FR3140728A1 (en) Cryptographic processing method, electronic device and associated computer program
EP0962069B1 (en) Cryptographic system comprising a ciphering and deciphering system and a key escrow system
WO2003036865A1 (en) Method and device for verifying possession of a confidential information without communicating same, based on a so-called zero knowledge process
EP3008851B1 (en) System and method for delegating bilinear pairing computations to a server
EP4239944B1 (en) Method for cryptographic signing of a data item, associated electronic device and computer program
WO2014125206A1 (en) Cryptographic method for generating a pair of user keys for an entity having a public identifier i, and system
EP1642413B1 (en) Method for encoding/decoding a message and associated device
EP4024753B1 (en) Method and electronic module for calculating a cryptographic quantity with carry-less multiplications, related method and electronic device for processing data, and computer program
WO2015132524A2 (en) Message generation for a cryptographic keys generation test
WO2023057649A1 (en) Method for generating a pseudorandom number and method for symmetrically encrypting a message
FR3070565A1 (en) METHOD AND ELECTRONIC DEVICE FOR TRANSMITTING A PLURALITY OF DATA FILES TO MULTIPLE RECIPIENTS, COMPUTER PROGRAM, METHOD AND ELECTRONIC RECEIVING DEVICE
FR2911025A1 (en) List e.g. electoral list, signaturing method for e.g. electronic voting field, involves providing data by member, where data is function of secret key and independent of identifier, and implementing secret keys without revealing keys

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240412