FR3140728A1 - Procédé de traitement cryptographique, dispositif électronique et programme d’ordinateur associés - Google Patents
Procédé de traitement cryptographique, dispositif électronique et programme d’ordinateur associés Download PDFInfo
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000004590 computer program Methods 0.000 title claims description 13
- 238000012795 verification Methods 0.000 claims abstract description 202
- 230000006870 function Effects 0.000 claims abstract description 68
- 230000005540 biological transmission Effects 0.000 claims abstract description 42
- 238000004364 calculation method Methods 0.000 claims abstract description 39
- 238000009795 derivation Methods 0.000 claims abstract description 29
- 239000004106 carminic acid Substances 0.000 claims abstract description 11
- 239000004255 Butylated hydroxyanisole Substances 0.000 claims abstract description 10
- 239000000600 sorbitol Substances 0.000 claims abstract description 10
- 239000004291 sulphur dioxide Substances 0.000 claims abstract description 10
- WSFSSNUMVMOOMR-UHFFFAOYSA-N formaldehyde Substances O=C WSFSSNUMVMOOMR-UHFFFAOYSA-N 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 149
- 238000012545 processing Methods 0.000 claims description 12
- 239000001339 acylated starch Substances 0.000 claims description 9
- 239000004235 Orange GGN Substances 0.000 claims description 4
- 239000004173 sunset yellow FCF Substances 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 26
- 230000002452 interceptive effect Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 11
- 230000000295 complement effect Effects 0.000 description 9
- 230000004069 differentiation Effects 0.000 description 7
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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.
Description
La présente invention concerne un procédé de traitement cryptographique, ainsi qu’un programme d’ordinateur et un dispositif électronique associés.
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.
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.
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.
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.
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é.
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.
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.
Le procédé peut également comprendre les caractéristiques optionnelles suivantes, prises seules ou en combinaison à chaque fois que cela est techniquement 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.
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.
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.
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.
- 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.
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.
- 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.
Le dispositif électronique reçoit du dispositif de configuration, tous les premiers scalaires secrets de l’ensemble formant la clé privée racine.
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.
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).
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.
La clé privée racine est formée d’un seul premier scalaire secret.
La clé privée racine est formée d’une pluralité de premiers scalaires secrets.
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.
- 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.
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.
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.
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.
La preuve à divulgation nulle de connaissance est une preuve non interactive.
La preuve à divulgation nulle de connaissance est une preuve interactive.
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.
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.
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.
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.
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.
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.
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.
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.
Sur les figures:
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é.
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.
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.
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.
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.
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.
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).
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.
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.
Le dispositif électronique 2 comporte également plusieurs modules non représentés.
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.
Ces modules peuvent en pratique être réalisés par une combinaison d’éléments matériels et d’éléments logiciels.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
Chaque figure parmi les figures 3 et 6, représente un procédé de traitement cryptographique conforme à l’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).
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.
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.
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.
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.
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.
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.
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.
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.
Selon une étape d’enregistrement E120, le processeur 4 enregistre dans une mémoire du dispositif électronique 2 une clé privée racine 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.
Cette phase d’initialisation est typiquement mise en œuvre par le module d’initialisation du dispositif électronique 2.
Ici la clé privée racine r est formée d’un seul premier scalaire secret r1.
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.
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.
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 .
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é.
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é.
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.
La phase d’initialisation (Phase P1) peut comprendre les étapes complémentaires suivantes (étapes E110, E112 et 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.
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.
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.
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).
Typiquement, le processeur 4 peut calculer la clé publique racine R comme suit : R = [r1]·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.
Ainsi, de façon avantageuse le dispositif de configuration peut certifier la clé publique racine 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.
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.
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).
On notera en outre que l’étape d’envoi à un dispositif de configuration (étape E114) de la clé publique racine R peut être omise.
Selon une autre possibilité, la phase d’initialisation (Phase P1) peut comprendre d’autres étapes complémentaires (étapes E111, E112 et E114 suivantes).
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.
Typiquement, le dispositif de configuration dispose d’un quatrième scalaire secret formant la clé privée maitre.
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.
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.
Ainsi, l’efficacité du procédé est augmentée en limitant les interactions entre le dispositif de configuration et le dispositif électronique.
Selon un exemple, le premier scalaire secret r1reçu du dispositif de configuration est la clé privée maitre.
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.
La clé publique racine R peut être calculée par le dispositif de configuration.
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.
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).
De façon avantageuse le dispositif de configuration peut certifier la clé publique racine 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.
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.
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).
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.
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.
Selon un premier exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k·r1mod n.
Selon un deuxième exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k + r1mod 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.
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 .
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 .
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).
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.
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.
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).
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.
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.
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.
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.
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).
Cette phase de transmission (phase P4) est typiquement mise en œuvre par le module de de transmission du dispositif électronique 2.
Selon une possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve non interactive.
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.
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).
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.
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.
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.
Autrement dit, c = Ha(S1|| S2||R||A), où c est le premier condensat et Ha est la fonction de hachage.
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.
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.
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.
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
Typiquement le dispositif de vérification peut calculer un troisième point intermédiaire S’1comme suit : S’1= [s1]·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 .
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.
Autrement dit, c’ = Ha(S’1|| S’2||R||A), où c’ est le deuxième condensat.
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.
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.
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).
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.
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.
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.
Autrement dit, c = Ha(S1|| S2||R||A), où c est le premier condensat et Ha est la fonction de hachage.
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.
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.
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.
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
Typiquement le dispositif de vérification peut calculer un troisième point intermédiaire S’1comme suit : S’1= [s1]·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) .
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.
Autrement dit, c’ = Ha(S’1|| S’2||R||A), où c’ est le deuxième condensat.
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.
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.
Selon une autre possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve interactive.
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.
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.
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).
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.
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.
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.
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.
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.
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).
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
Typiquement le dispositif de vérification peut calculer un troisième point intermédiaire S’1comme suit : S’1= S1+ [c]·R.
Le dispositif de vérification peut aussi calculer un quatrième point intermédiaire S’2comme suit : S’2= S2 +[c]·A .
Le dispositif de vérification peut calculer un cinquième point intermédiaire S’’1comme suit : S’’1= [s1]·G.
Le dispositif de vérification peut calculer un sixième point intermédiaire S’’2comme suit : S’’2= [s2]·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.
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.
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.
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).
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.
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.
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.
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.
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.
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).
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
Typiquement le dispositif de vérification peut calculer un troisième point intermédiaire S’1comme suit : S’1= S1+ [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) .
Le dispositif de vérification peut calculer un cinquième point intermédiaire S’’1comme suit : S’’1= [s1]·G.
Le dispositif de vérification peut calculer un sixième point intermédiaire S’’2comme suit : S’’2= [s2]·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.
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.
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.
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.
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é.
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.
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.
Selon une étape d’enregistrement E1120, le processeur 4 enregistre dans une mémoire du dispositif électronique 2 une clé privée racine 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.
Cette phase d’initialisation est typiquement mise en œuvre par le module d’initialisation du dispositif électronique 2.
Ici la clé privée racine r est formée de deux premiers scalaires secrets 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.
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.
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.
Selon une première possibilité, la phase d’initialisation (Phase P1) peut comprendre les étapes complémentaires suivantes (étapes E1110, E1112 et 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.
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.
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.
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).
Typiquement, le processeur 4 peut calculer la clé publique racine R comme suit : R = [r1]·G + [r2]·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.
Ainsi, de façon avantageuse le dispositif de configuration peut certifier la clé publique racine 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.
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.
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).
On notera en outre que l’étape d’envoi à un dispositif de configuration (étape E1114) de la clé publique racine R peut être omise.
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).
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.
Typiquement, le dispositif de configuration dispose d’un quatrième scalaire secret formant la clé privée maitre.
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.
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).
La clé publique racine R peut être calculée par le dispositif de configuration.
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.
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.
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).
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.
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é.
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.
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.
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.
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.
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.
Pour chacune de ces trois possibilités, le dispositif de configuration peut avantageusement certifier la clé publique racine 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.
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.
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).
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.
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.
Selon un premier exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k·r1mod n.
Selon un deuxième exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k + r1mod 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.
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 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.
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 .
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).
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.
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.
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).
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.
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.
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.
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.
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).
Cette phase de transmission (phase P4) est typiquement mise en œuvre par le module de de transmission du dispositif électronique 2.
Selon une possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve non interactive.
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.
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).
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.
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.
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.
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.
Autrement dit, c = Ha(S1|| S2|| S3|| R || A), où c est le premier condensat et Ha est la fonction de hachage.
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.
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.
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.
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
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.
Le dispositif de vérification peut aussi calculer un cinquième point intermédiaire S’2comme suit : S’2= [s3]·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.
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.
Autrement dit, c’ = Ha(S’1|| S’2|| S’3|| R || A), où c’ est le deuxième condensat.
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.
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.
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).
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.
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.
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.
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.
Autrement dit, c = Ha(S1|| S2|| S3|| R || A), où c est le premier condensat et Ha est la fonction de hachage.
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.
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.
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.
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
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.
Le dispositif de vérification peut aussi calculer un cinquième point intermédiaire S’2comme suit : S’2= [s3]·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).
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.
Autrement dit, c’ = Ha(S’1|| S’2|| S’3|| R || A), où c’ est le deuxième condensat.
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.
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.
Selon une autre possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve interactive.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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).
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
Typiquement le dispositif de vérification peut calculer un quatrième point intermédiaire S’1comme suit : S’1= S1+ [c]·R.
Le dispositif de vérification peut aussi calculer un cinquième point intermédiaire S’2comme suit : S’2= S2 +[c]·A .
Le dispositif de vérification peut aussi calculer un sixième point intermédiaire S’3comme suit : S’3= S3 +[c]·A .
Le dispositif de vérification peut calculer un septième point intermédiaire S’’1comme suit : S’’1= [s1]·G + [s2]·H.
Le dispositif de vérification peut calculer un huitième point intermédiaire S’’2comme suit : S’’2= [s3]·G.
Le dispositif de vérification peut calculer un neuvième point intermédiaire S’’3comme suit : S’’3= [s4]·R - [s5]·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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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).
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
Typiquement le dispositif de vérification peut calculer un quatrième point intermédiaire S’1comme suit : S’1= S1+ [c]·R.
Le dispositif de vérification peut aussi calculer un cinquième point intermédiaire S’2comme suit : S’2= S2 +[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) .
Le dispositif de vérification peut calculer un septième point intermédiaire S’’1comme suit : S’’1= [s1]·G + [s2]·H.
Le dispositif de vérification peut calculer un huitième point intermédiaire S’’2comme suit : S’’2= [s3]·G.
Le dispositif de vérification peut calculer un neuvième point intermédiaire S’’3comme suit : S’’3= [s4]·R - [s2]·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.
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.
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.
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.
Le procédé est ainsi simplifié.
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.
Ainsi, le procéder permet de sécuriser la clé privée maitre.
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.
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.
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é.
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.
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.
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.
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 .
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.
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.
Selon une étape d’enregistrement E2120, le processeur 4 enregistre dans une mémoire du dispositif électronique 2 une clé privée racine 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.
Cette phase d’initialisation est typiquement mise en œuvre par le module d’initialisation du dispositif électronique 2.
Ici la clé privée racine r est formée d’un seul premier scalaire secret r1.
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.
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.
Typiquement la clé publique racine R a une valeur définie comme suit : .
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é.
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é.
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.
La phase d’initialisation (Phase P1) peut comprendre les étapes complémentaires suivantes (étapes E2110, E2112 et 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.
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.
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.
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).
Typiquement, le processeur 4 peut calculer la clé publique racine R comme suit : .
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.
Ainsi, de façon avantageuse le dispositif de configuration peut certifier la clé publique racine 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.
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.
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).
On notera en outre que l’étape d’envoi à un dispositif de configuration (étape E2114) de la clé publique racine R peut être omise.
Selon une autre possibilité, la phase d’initialisation (Phase P1) peut comprendre d’autres étapes complémentaires (étapes E2111, E2112 et E2114 suivantes).
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.
Typiquement, le dispositif de configuration dispose d’un quatrième scalaire secret formant la clé privée maitre.
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.
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.
Ainsi, l’efficacité du procédé est augmentée en limitant les interactions entre le dispositif de configuration et le dispositif électronique.
Selon un exemple, le premier scalaire secret r1reçu du dispositif de configuration est la clé privée maitre.
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.
La clé publique racine R peut être calculée par le dispositif de configuration.
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.
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).
De façon avantageuse le dispositif de configuration peut certifier la clé publique racine 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.
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.
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).
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.
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.
Selon un exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k·r1mod 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.
Typiquement, le processeur 4 peut calculer la clé publique dérivée A comme suit : .
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 : .
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).
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.
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.
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).
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.
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.
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.
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.
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).
Cette phase de transmission (phase P4) est typiquement mise en œuvre par le module de de transmission du dispositif électronique 2.
Selon une possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve non interactive.
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.
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).
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.
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.
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.
Autrement dit, c = Ha(S1|| S2||R||A), où c est le premier condensat et Ha est la fonction de hachage.
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.
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.
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.
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
Typiquement le dispositif de vérification peut calculer un troisième élément intermédiaire S’1comme suit : .
Le dispositif de vérification peut aussi calculer un quatrième élément intermédiaire S’2comme suit : .
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.
Autrement dit, c’ = Ha(S’1|| S’2||R||A), où c’ est le deuxième condensat.
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.
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.
Selon une autre possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve interactive.
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.
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.
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).
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.
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.
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.
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.
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.
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).
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
Typiquement le dispositif de vérification peut calculer un troisième élément intermédiaire S’1comme suit : .
Le dispositif de vérification peut aussi calculer un quatrième élément intermédiaire S’2comme suit : .
Le dispositif de vérification peut calculer un cinquième élément intermédiaire S’’1comme suit : .
Le dispositif de vérification peut calculer un sixième élément intermédiaire S’’2comme suit : .
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.
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.
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.
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.
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é.
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.
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.
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.
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.
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.
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.
Selon une étape d’enregistrement E3120, le processeur 4 enregistre dans une mémoire du dispositif électronique 2 une clé privée racine 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.
Cette phase d’initialisation est typiquement mise en œuvre par le module d’initialisation du dispositif électronique 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.
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.
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.
Typiquement R a une valeur définie comme suit : .
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é.
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é.
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.
La phase d’initialisation (Phase P1) peut aussi comprendre les étapes complémentaires suivantes (étapes E3110, E3112 et 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.
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.
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.
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).
Typiquement, le processeur 4 peut calculer la clé publique racine R comme suit : .
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.
Ainsi, de façon avantageuse le dispositif de configuration peut certifier la clé publique racine 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.
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.
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).
On notera en outre que l’étape d’envoi à un dispositif de configuration (étape E3114) de la clé publique racine R peut être omise.
Selon une autre possibilité, la phase d’initialisation (Phase P1) peut comprendre d’autres étapes complémentaires (étapes E3111, E3112 et E3114 suivantes).
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).
Typiquement, le dispositif de configuration dispose d’un quatrième scalaire secret formant la clé privée maitre.
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.
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.
Ainsi, l’efficacité du procédé est augmentée en limitant les interactions entre le dispositif de configuration et le dispositif électronique.
Selon un exemple, le premier scalaire secret r1reçu du dispositif de configuration est la clé privée maitre.
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.
La clé publique racine R peut être calculée par le dispositif de configuration.
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.
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).
De façon avantageuse le dispositif de configuration peut certifier la clé publique racine 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.
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.
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).
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.
En outre, le deuxième scalaire secret a et le troisième scalaire secret sont des entiers appartenant à l’intervalle 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.
Selon un exemple, la fonction de dérivation f peut être définie comme suit : f(s, k) = k·r1.
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.
Typiquement, le processeur 4 peut calculer la clé publique dérivée A comme suit : .
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 : .
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).
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.
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.
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).
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.
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.
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.
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.
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).
Cette phase de transmission (phase P4) est typiquement mise en œuvre par le module de de transmission du dispositif électronique 2.
Selon une possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve non interactive.
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.
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).
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.
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).
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.
Autrement dit, c = Ha(S1|| S2||R||A), où c est le premier condensat et Ha est la fonction de hachage.
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).
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.
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.
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
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).
Le dispositif de vérification peut aussi calculer un troisième élément intermédiaire S’1comme suit : .
Le dispositif de vérification peut calculer un quatrième élément intermédiaire S’2comme suit : .
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.
Autrement dit, c’ = Ha(S’1|| S’2||R||A), où c’ est le deuxième condensat.
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.
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.
Selon une autre possibilité d’implémentation, la preuve à divulgation nulle de connaissance est une preuve interactive.
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.
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.
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).
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.
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).
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.
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.
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.
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).
Le dispositif de vérification peut vérifier la preuve à divulgation nulle de connaissance.
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).
Le dispositif de vérification peut aussi calculer un troisième élément intermédiaire S’1comme suit : .
Le dispositif de vérification peut calculer un quatrième élément intermédiaire S’2comme suit : .
Le dispositif de vérification peut calculer un cinquième élément intermédiaire S’’1comme suit : .
Le dispositif de vérification peut calculer un sixième élément intermédiaire S’’2comme suit : .
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.
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.
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.
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.
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é.
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.
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é.
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. - 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. - 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). - 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. - 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.
- 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).
- 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).
- 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. - 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.
- 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.
- 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. - 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).
- 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.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2210262A FR3140728A1 (fr) | 2022-10-06 | 2022-10-06 | Procédé de traitement cryptographique, dispositif électronique et programme d’ordinateur associés |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2210262 | 2022-10-06 | ||
FR2210262A FR3140728A1 (fr) | 2022-10-06 | 2022-10-06 | Procédé de traitement cryptographique, dispositif électronique et programme d’ordinateur associés |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3140728A1 true FR3140728A1 (fr) | 2024-04-12 |
Family
ID=85381052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2210262A Pending FR3140728A1 (fr) | 2022-10-06 | 2022-10-06 | Procédé de traitement cryptographique, dispositif électronique et programme d’ordinateur associés |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3140728A1 (fr) |
Citations (2)
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 (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
-
2022
- 2022-10-06 FR FR2210262A patent/FR3140728A1/fr active Pending
Patent Citations (2)
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 (zh) * | 2018-07-20 | 2018-10-16 | 陕西师范大学 | 安全的两方协作sm2签名方法 |
Non-Patent Citations (4)
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 (fr) | Procédé d'authentification d'une première entité électronique par une seconde entité électronique et entité électronique mettant en oeuvre un tel procédé | |
FR2759226A1 (fr) | Protocole de verification d'une signature numerique | |
EP1151576B1 (fr) | Procede cryptographique a cles publique et privee | |
CH634161A5 (fr) | Appareil de dechiffrage d'un message chiffre et son utilisation dans une installation de transmission. | |
FR2496303A1 (fr) | Systeme de chiffrage/dechiffrement de donnees a cle publique | |
EP2345202A2 (fr) | Procédé de signature numérique en deux étapes | |
EP2296086B1 (fr) | Protection d'une génération de nombres premiers contre des attaques par canaux cachés | |
FR2913154A1 (fr) | Chiffrement broadcast base sur identite | |
CA2895189C (fr) | Signature de groupe utilisant un pseudonyme | |
EP2795833B1 (fr) | Procede d'authentification entre un lecteur et une etiquette radio | |
EP0346180B1 (fr) | Dispositif de communication sécurisée de données | |
EP2371083B1 (fr) | Signature de groupe a vérification locale de révocation avec capacité de levée d'anonymat | |
FR2960728A1 (fr) | Procede de determination d'une representation d'un produit et procede d'evaluation d'une fonction | |
FR3083885A1 (fr) | Circuit de generation de facteurs de rotation pour processeur ntt | |
FR3140728A1 (fr) | Procédé de traitement cryptographique, dispositif électronique et programme d’ordinateur associés | |
EP0962069B1 (fr) | Systeme cryptographique comprenant un systeme de chiffrement et de dechiffrement et un systeme de sequestre de cles | |
WO2003036865A1 (fr) | Procede et dispositif de la verification de la detention d'une donnee confidentielle sans communication de celle-ci, selon un processus dit 'a divulgation nulle' | |
EP3008851B1 (fr) | Procédé et système de délégation d'un calcul d'une valeur de couplage bilinéaire à un serveur de calcul | |
EP4239944B1 (fr) | Procédé de signature cryptographique d'une donnée, dispositif électronique et programme d'ordinateur associés | |
WO2014125206A1 (fr) | Procédé cryptographique de génération d'une paire de clés utilisateur pour une entité possédant un identifiant public i, et système | |
FR3086417A1 (fr) | Procede cryptographique de comparaison securisee de deux donnees secretes x et y | |
EP1642413B1 (fr) | Procede de chiffrement/dechiffrement d un message et disposi tif associe | |
EP4024753B1 (fr) | Procédé et module électronique de calcul d'une quantité cryptographique avec multiplications sans retenue, procédé et dispositif électronique de traitement d'une donnée et programme d'ordinateur associés | |
WO2015132524A2 (fr) | Génération de message pour test de génération de clés cryptographiques | |
WO2023057649A1 (fr) | Procédé de génération d'un nombre pseudo-aléatoire et procédé de chiffrement symétrique d'un message |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20240412 |