FR3088452A1 - Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique - Google Patents
Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique Download PDFInfo
- Publication number
- FR3088452A1 FR3088452A1 FR1860300A FR1860300A FR3088452A1 FR 3088452 A1 FR3088452 A1 FR 3088452A1 FR 1860300 A FR1860300 A FR 1860300A FR 1860300 A FR1860300 A FR 1860300A FR 3088452 A1 FR3088452 A1 FR 3088452A1
- Authority
- FR
- France
- Prior art keywords
- public
- private
- exponent
- modulo
- key
- 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.)
- Granted
Links
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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé de vérification d'intégrité d'une paire de clés cryptographiques publique et privée dans le groupe additif des entiers modulo N, avec N étant le produit de deux nombres premiers p et q, le procédé comportant : - une étape de calcul d'un exposant privé candidat d' correspondant à un exposant privé d de ladite clé privée, - une étape d'exécution d'un test d'intégrité, ledit procédé étant caractérisé en ce que le test d'intégrité comprend une étape de vérification (108) de la cohérence de l'exposant privé candidat d' par rapport à un exposant public e de ladite clé publique et aux nombres p et q, ladite étape de vérification faisant intervenir un premier multiple modulo (p-1) de l'exposant public e de la clé publique et un deuxième multiple modulo (q-1) de l'exposant public e de la clé publique.
Description
DOMAINE DE L’INVENTION
L’invention est dans le domaine de la sécurité informatique. Elle concerne, en particulier, la sécurisation des procédés cryptographiques mettant en œuvre des paires de clés publiques et privées.
CONTEXTE DE L’INVENTION
Certains systèmes cryptographiques mettant en œuvre des procédés comme par exemple la signature numérique d’un message ou son chiffrement, nécessitent la génération de paires de clés cryptographiques. La clé publique est partagée en clair par le système cryptographique avec les systèmes destinataires du message traité alors que la clé privée est gardée secrète.
La génération des paires de clés publiques et privées étant une opération sensible, des mécanismes de test sont usuellement prévus pour vérifier leur intégrité.
Par exemple, la norme américaine FIPS 140-2 publiée par le NIST (sigle de « National Institute of Standards and Technology ») prévoit un tel test (intitulé « pair-wise consistency test »).
Dans le cas de procédés cryptographiques de type RSA (sigle de « Rivest Shamir Adelman »), la paire de clés est obtenue de la manière suivante.
Pour obtenir p et q, deux grands nombres premiers, on répète les deux étapes suivantes :
- obtention de deux nombres p et q candidats à partir de nombres tirés au hasard dans l’ensemble Zn du groupe additif des entiers modulo N, et
- test de la primalité des p et q candidats (par exemple selon un test de primalité probabilistique de type Miller-Rabin), par exemple conformément à la norme FIPS 1402, jusqu’à obtenir un nombre premier.
Le produit des nombres p et q forme ainsi un nombre N (N=p.q).
Ensuite, le nombre Φ(Ν) = (p-1).(q-1) est calculé (Φ étant la fonction indicatrice d’Euler, ou « totient » en terminologie anglo-saxonne).
La clé publique est ensuite formée par les nombres N et e, avec e, « l’exposant public », étant un entier tel que :
< e < Φ(Ν), où e et Φ (N) sont premiers entre eux (gcd(e, Φ(Ν))=1, « gcd » étant le sigle de « greatest common divisor» en terminologie anglo-saxonne, c’est-à-dire le plus grand commun diviseur).
La clé privée est quant à elle formée par les nombres N et d, avec d, « l’exposant privé », étant un entier tel que :
d.e = 1 mod λ(Ν), où λ(Ν) est le plus petit commun multiple entre p-1 et q-1 (À(N)=lcm(p-1, q-1), « Icm » étant le sigle de « least common multiplier» en terminologie anglo-saxonne, c’est-àdire plus petit commun multiple).
Le plus petit commun multiple λ(Ν) vérifie donc la formule suivante :
gcd(p - 1, q - 1)
Lorsque le procédé cryptographique est un chiffrement d’un message m (m appartenant à Zn), le test d’intégrité prévu par la norme FIPS 140-2 peut se résumer comme suit :
1) le message m est chiffré avec la clé publique en sorte à obtenir un message chiffré c = me mod N,
2) le message chiffré c est déchiffré avec la clé privée en sorte à obtenir un message déchiffré m’ = cd mod N, et
3) il est vérifié que le message initial m et le message déchiffré sont les mêmes (m’ = m).
Lorsque le procédé cryptographique est une signature d’un message m (m appartenant à Zn), le test d’intégrité prévu par la norme FIPS 140-2 peut se résumer comme suit :
1) le message m est signé avec la clé privée en sorte à obtenir une signature s = (m)d mod N, (ou éventuellement s = (H(m))d, H étant une fonction de hachage),
2) une valeur h’ est calculée comme h’ = se mod N, et
3) il est vérifié que la valeur h’ ainsi calculée et le message m sont les mêmes (ou éventuellement que la valeur h’ et le condensât du message par la fonction de hachage sont les mêmes (h’ = H(m))).
Cependant, les tests d’intégrité actuellement utilisés ne permettent pas de détecter certaines erreurs de génération de paires de clés.
En effet, certaines paires de clés non intègres peuvent passer avec succès les tests d’intégrités comme par exemple celui décrit en référence à la figure 1 de la demande FR 3015080 ou d’autres tests de l’art antérieur.
Par exemple, si, au lieu de générer l’exposant privé d, il est généré un nombre d’ tel que :
- d’.e = 1 mod (λ(Ν)/α),
- 1 < α,
- a divise λ(Ν), alors il peut arriver que pour certains messages, la paire de clés avec les nombres d’et e passe le test avec succès alors qu’une erreur s’est produite sur l’exposant privé d.
En plus d’être une source d’erreurs pour un système cryptographique utilisant les clés, cela peut être une source d’attaques par des tiers malveillants.
Par exemple, le nombre d’peut être généré par erreur si le calcul du plus petit commun multiple de p-1 et q-1 (qui doit normalement donner λ(Ν)) est entaché d’une erreur.
En provoquant la détermination du nombre d’au lieu du nombre d, un attaquant peut ainsi retrouver l’un des facteurs secrets (p et q) du nombre N tel que N = p.q.
Un attaquant peut ainsi perturber la génération de clés et demander la signature de messages aléatoires.
Ainsi, les tests d’intégrité actuellement utilisés peuvent ne pas détecter certaines erreurs de génération de paires de clés, notamment lors d’attaques telles qu’évoquées cidessus.
De plus, un attaquant peut provoquer des erreurs dans le calcul de l’exposant privé d par observation par canal auxiliaire du fonctionnement du dispositif mettant en œuvre la génération de clé puis par attaque physique du dispositif pour perturber ce fonctionnement. L’attaquant peut par exemple utiliser des lasers pour perturber le dispositif ou encore perturber l’alimentation électrique de celui-ci.
Le brevet FR 1362833 propose une solution à ces problèmes, consistant notamment à réitérer le test d’intégrité prévu par la norme FIPS 140-2 un certain nombre de fois sur des messages différents. Pour atteindre un taux de détection d’au moins 99%, le test doit être réitéré au moins 14 fois, ce qui représente au moins 21 532 multiplications modulaires.
D’après ce qui précède, il existe donc un besoin d’améliorer la fiabilité des procédés de vérification d’intégrité de génération de paires de clés dans les systèmes cryptographiques tout en optimisant le coût en calcul de ces procédés.
RESUME DE L’INVENTION
La présente invention a ainsi pour objet d’améliorer la fiabilité des procédés de vérification d’intégrité de génération de paires de clés dans les systèmes cryptographiques.
Dans ce contexte, un premier aspect de l’invention concerne un procédé de vérification d’intégrité d’une paire de clés cryptographiques publique et privée dans le groupe additif des entiers modulo N, avec N étant le produit de deux nombres premiers p et q, le procédé comportant :
une étape de calcul d’un exposant privé candidat d’correspondant à un exposant privé d de ladite clé privée une étape d’exécution d’un test d’intégrité, ledit procédé étant caractérisé en ce que le test d’intégrité comprend une étape de vérification de la cohérence de l’exposant privé candidat d’par rapport à un exposant public e de ladite clé publique et aux nombres p et q, ladite étape de vérification faisant intervenir un premier multiple modulo (p-1) de l’exposant public e de la clé publique et un deuxième multiple modulo (q-1) de l’exposant public e de la clé publique.
Ainsi, le procédé proposé permet d’approcher un taux de détection bien meilleur qu’avec le test d’intégrité de la norme Fl PS 140-2.
En effet, l’étape de vérification particulière de ce procédé permet de détecter la plupart des situations dans lesquelles un mauvais exposant privé d’aurait été calculé à la place de l’exposant privé d car dans ce cas au moins l’un des multiples de l’exposant public e évalués durant l’étape de vérification n’aurait pas la valeur attendue.
Avantageusement, cette nouvelle étape de vérification ne requiert que deux multiplications modulaires supplémentaires par rapport aux multiplications modulaires mises en œuvre lors d’un test d’intégrité conforme à la norme FIPS 140-2.
Le présent procédé offre donc une meilleure efficacité et un meilleur rendement que les procédés de vérification de clé de l’art antérieur consistant à mettre en œuvre ce test d’intégrité un grand nombre de fois.
Selon un premier mode de réalisation, l’étape de vérification consiste à vérifier :
- d’une part que le produit modulo (p-1) de l’exposant privé candidat d’par l’exposant public e de la clé publique est égal à 1, et
- d’autre part que le produit modulo (q-1) de l’exposant privé candidat d’par l’exposant public e de la clé publique est égal à 1.
Selon un second mode de réalisation, l’étape de calcul de l’exposant privé candidat d’comprend le calcul :
- d’une première valeur dp faisant intervenir l’exposant public e de la clé publique modulo p et
- d’une seconde valeur dq faisant intervenir l’exposant public e de la clé publique modulo q, et dans lequel ladite étape de vérification (208) consiste à vérifier :
- que l’exposant privé candidat d’modulo (p-1) est congru à la première valeur dp,
- que l’exposant privé candidat d’modulo (q-1) est congru à la seconde valeur dq,
- que le produit modulo (p-1) de la première valeur dp par l’exposant public e de la clé publique est égal à 1 ; et
- que le produit modulo (q-1) de la seconde valeur dq par l’exposant public e de la clé publique est égal à 1.
Ce second mode de réalisation permet de tester la cohérence entre la première valeur dp (respectivement la seconde valeur dq) avec l’exposant public e immédiatement après les avoir généré, permettant ainsi la suppression de la valeur de l’exposant public e de la mémoire avant de générer les valeurs N et l’exposant privé candidat d’. L’usage de la mémoire est donc optimisé.
Un second aspect de l’invention concerne un procédé de test de sécurité d’un dispositif électronique vis-à-vis d’une attaque, ledit dispositif mettant en œuvre une génération d’une clé cryptographique publique e et une clé cryptographique privée d dans le groupe additif des entiers modulo N, telles que :
- N = p.q, avec p et q étant des nombres premiers,
- 1 < e < Φ(Ν), avec e et Φ (N) étant premiers entre eux et Φ(Ν) = (p-1 ).(q-1 ), et
- d.e = 1 mod λ(Ν), λ(Ν) étant le plus petit commun multiple entre p-1 et q-1, le procédé comprenant une étape de perturbation du calcul de la valeur λ(Ν), en sorte à obtenir, en lieu et place de la valeur λ(Ν), une valeur λ’(Ν) = λ(Ν)/α, avec a divisant λ(Ν), ladite perturbation amenant à calculer une clé privée d’, en lieu et place de la clé privée d telle que d’.e = 1 mod λ(Ν)/α, ledit procédé étant caractérisé en ce qu’il comprend en outre les étapes d’un procédé de vérification selon le premier aspect susmentionné.
Un procédé selon le second aspect permet de tester des dispositifs électroniques mettant en œuvre une génération de paires de clés, en vérifiant leur réaction vis-à-vis de la perturbation du calcul du plus petit commun multiple λ.
Par exemple, un procédé selon le second aspect peut être mis en œuvre dans le processus industriel de test des dispositifs électroniques mettant en œuvre une génération de clé cryptographiques, par exemple en laboratoire de test. L’étape de perturbation peut ainsi permettre de mettre à jour une vulnérabilité dans la résistance à un calcul erroné de la valeur λ (N).
Un troisième aspect de l’invention concerne un dispositif cryptographique comportant une unité de traitement configurée pour mettre en œuvre l’un des procédés selon le premier ou le second aspect.
Un quatrième aspect de l’invention concerne une entité électronique portable comprenant un dispositif selon le troisième aspect.
Les avantages, buts et caractéristiques particulières du dispositif et de l’entité électronique portable sont similaires à ceux des procédés précités qu’ils mettent en œuvre.
Dans un mode particulier de réalisation, les différentes étapes des procédés précités sont déterminées par des instructions de programmes d'ordinateur.
En conséquence, l'invention vise aussi des programmes d'ordinateur sur des supports d'information, ces programmes étant susceptibles d'être mis en œuvre par des microprocesseurs, et comprenant des instructions adaptées à la mise en œuvre des étapes des procédés tels que mentionnés ci-dessus.
Ces programmes peuvent utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.
L'invention vise aussi des supports d'information lisibles par un microprocesseur, et comprenant des instructions de programmes d'ordinateur tels que mentionnés ci-dessus.
Les supports d'information peuvent être n'importe quelle entité ou dispositif capable de stocker les programmes. Par exemple, les supports peuvent comprendre un moyen de stockage, tel qu'une ROM, par exemple une ROM de microcircuit, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur, ou encore une mémoire flash.
D'autre part, les supports d'information peuvent être des supports transmissibles tels que des signaux électriques ou optiques, qui peuvent être acheminés via un câble électrique ou optique, par radio ou par d'autres moyens. Les programmes selon l'invention peuvent être en particulier téléchargés sur une plateforme de stockage d’un réseau de type Internet.
Alternativement, les supports d'information peuvent être des circuits intégrés dans lesquels les programmes sont incorporés, les circuits étant adaptés pour exécuter ou pour être utilisés dans l'exécution des procédés en question.
Les supports d'information et les programme d'ordinateur précités présentent des caractéristiques et avantages analogues aux procédés qu'ils mettent en œuvre.
BREVE DESCRIPTION DES FIGURES
D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les figures ci-jointes qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. Sur les figures :
- la figure 1 illustre un procédé de vérification d’intégrité de clés selon un premier mode de réalisation de l’invention;
- la figure 2 illustre un procédé de vérification d’intégrité de clés selon un second mode de réalisation de l’invention; et
- la figure 3 illustre schématiquement un dispositif conforme à des modes de réalisation de l’invention.
DESCRIPTION DETAILLEE DE L’INVENTION
La figure 1 illustre un procédé de vérification d’intégrité de clés selon un premier mode de réalisation de l’invention.
Dans cet exemple, une clé cryptographique publique (e, N) et une clé cryptographique privée (d, N) sont générées telles que :
N=p.q, avec p et q étant des nombres premiers, < e < Φ(Ν) et e et Φ (N) sont premiers entre eux (gcd(e, Φ(Ν))=1), avec Φ(Ν) = (p-1).(q-1) (Φ étant la fonction indicatrice d’Euler, ou « totient » en terminologie anglo-saxonne), et dp = e-1 mod p et dq = e-1 mod q ; et d = CRT(dp, dq), où CRT est le résultat de l’application du théorème des restes chinois (Chinese Remainder Theorem en terminologie anglo-saxonne).
Au cours d’une première étape 100, un message m (m appartenant à Zn, le groupe additif des entiers modulo N), est chiffré avec l’exposant public e en sorte à obtenir un premier message chiffré c = me mod N.
Ensuite, lors d’une étape 102, le message chiffré c est déchiffré avec l’exposant privé d en sorte à obtenir un message déchiffré m’ = cd mod n.
Il est ensuite vérifié, lors d’une étape 103, si le message initial m et le message déchiffré sont les mêmes (m’ = m).
Si ce n’est pas le cas (NOK), il est déterminé lors de l’étape 104 que la paire de clés générée n’est pas intègre.
Si par contre le message initial m et le message déchiffré sont les mêmes (OK), le message déchiffré m’ est chiffré, lors d’une étape 105, avec l’exposant public e en sorte à obtenir un deuxième message chiffré c’ = (m’)e mod n.
Il est ensuite vérifié, lors d’une étape 106, si le premier message chiffré c et le deuxième message chiffré c’ sont les mêmes (c’ = c).
Si ce n’est pas le cas (NOK), il est déterminé, lors de l’étape 107, que la paire de clés générée n’est pas intègre.
Si par contre le premier message chiffré c et le deuxième message chiffré c’ sont les mêmes (OK), deux autres tests sont mis en œuvre (étape 108), afin de contrôler que l’exposant privé d et l’exposant public e vérifient les relations suivantes :
d.e mod (p-1) = 1, et
d.e mod (q-1) = 1.
D’après le théorème bien connu des restes chinois (Chinese Remainder Theorem en terminologie anglo-saxonne), la relation d.e = 1 mod λ(Ν) est équivalente au système d’équations testées à l’étape 108, à condition que les valeurs p-1 et q-1 soient intègres, ce qui est le cas à ce stade du procédé car la corruption de ces valeurs aurait été détectée au cours des étapes précédentes 100 à 107.
Ce système d’équations permet de détecter une situation dans laquelle un mauvais exposant privé d’ = e-1 mod (λ(Ν)/α) aurait été calculé à la place de l’exposant privé d = e-1 mod λ(Ν). En effet, comme la valeur a divise λ(Ν), le produit de la valeur a par le plus grand commun diviseur entre p-1 et q-1 ne divise pas à la fois p-1 et q-1. Ainsi, au moins l’une des relations de l’étape 108 n’est pas vérifiée lorsque d’est calculé à la place de d. Il est fait remarquer que l’ordre des tests effectués au cours de l’étape 108 n’a pas d’importance.
Si ces deux relations sont vérifiées (OK), il est déterminé lors de l’étape 109 que le test d’intégrité est réussi.
Sinon (NOK), il est déterminé lors de l’étape 110 que la paire de clés générée n’est pas intègre.
Ce premier mode de réalisation permet d’approcher un taux de détection de 100% au moyen de seulement deux multiplications modulaires supplémentaires par rapport aux multiplications modulaires mises en œuvre lors d’un test d’intégrité conforme à la norme FIPS 140-2. Ainsi, le rendement de cette solution est 10 000 fois meilleur que celui de la solution décrite dans le brevet FR 1362833 où le test d’intégrité de la norme FIPS 140-2 est répété plusieurs fois, et qui nécessite donc beaucoup plus de multiplications modulaires pour atteindre un taux de détection satisfaisant.
La figure 2 illustre un procédé de vérification d’intégrité de clés selon un second mode de réalisation de l’invention.
Les étapes 100 à 107 sont identiques aux étapes du premier mode de réalisation.
Si le test 106 révèle que le premier message chiffré c et le deuxième message chiffré c’ sont les mêmes (c’ = c), alors le procédé se poursuit avec une étape 208 au cours de laquelle quatre tests sont mis en œuvre, afin de vérifier la valeur de que l’exposant privé d et l’exposant public e vérifient l'ensemble des relations suivantes :
d mod (p-1) = dp d mod (q-1) = dq dp .e mod (p-1) = 1, et dq .e mod (q-1) = 1.
Il est fait remarquer que l’ordre des tests effectués au cours de l’étape 208 n’a pas d’importance.
Si ces relations sont vérifiées (OK), il est déterminé lors de l’étape 209 que le test d’intégrité est réussi.
Sinon (NOK), il est déterminé lors de l’étape 210 que la paire de clés générée n’est pas intègre.
Ce second mode de réalisation permet de tester la cohérence entre dp (respectivement dq) avec e immédiatement après les avoir générés, permettant ainsi la suppression de la valeur de e de la mémoire avant de générer les valeurs N et d. L’usage de la mémoire est donc optimisé.
De plus, tout comme le premier mode de réalisation, ce second mode de réalisation permet d’approcher un taux de détection de 100% au moyen de seulement deux multiplications modulaires supplémentaires par rapport aux multiplications modulaires mises en œuvre lors d’un test d’intégrité conforme à la norme FIPS 140-2. Ainsi, le rendement de cette solution est 10 000 fois meilleur que celui de la solution décrite dans le brevet FR 1362833 où le test d’intégrité de la norme FIPS 140-2 est répété plusieurs fois et nécessite donc beaucoup plus de multiplications modulaires pour atteindre un taux de détection satisfaisant.
La figure 3 illustre schématiquement un dispositif selon des modes de réalisation.
Le dispositif 30 de la figure 3 comporte une unité de mémoire 31 (MEM). Cette unité de mémoire comporte une mémoire vive pour stocker de manière non durable des données de calcul utilisées lors de la mise en œuvre d'un procédé conforme à l'invention, selon divers modes de réalisation. L’unité de mémoire comporte par ailleurs une mémoire non volatile (par exemple du type EEPROM) pour stocker par exemple un programme d’ordinateur, selon un mode de réalisation, pour son exécution par un processeur (non représenté) d’une unité de traitement 32 (PROC) du dispositif.
Le dispositif comporte par ailleurs une unité de communication 33 (COM), par exemple pour échanger des données avec un autre dispositif conformément à des modes de réalisation. Les échanges de données entre dispositifs peuvent se faire selon le protocole APDU, sigle de «Application Protocol Data Unit» en terminologie anglo-saxonne, tels que définis dans la norme ISO 7816 partie 4.
L’unité de communication peut ainsi comporter une interface entrée/sortie apte à échanger selon ce protocole. Les données échangées peuvent se faire par des commandes APDU et des réponses à ce type de commandes.
Un dispositif selon des modes de réalisation peut être conforme à la norme ISO7816. Il peut par exemple s’agir d’une carte à puce ou d’un élément sécurisé.
Un dispositif selon des modes de réalisation est par exemple un circuit intégré.
La présente invention a été décrite et illustrée dans la présente description détaillée en référence aux figures jointes. Toutefois la présente invention ne se limite pas aux formes de réalisation présentées. D’autres variantes, modes de réalisation et combinaisons de caractéristiques peuvent être déduits et mis en œuvre par la personne du métier à la lecture de la présente description et des figures annexées.
Dans les revendications, le terme “comporter” n’exclut pas d’autres éléments ou d’autres étapes. L’article indéfini « un » n’exclut pas le pluriel. Un seul processeur ou plusieurs autres unités peuvent être utilisés pour mettre en œuvre l’invention. Les différentes caractéristiques présentées et/ou revendiquées peuvent être avantageusement combinées. Leur présence dans la description ou dans des revendications dépendantes différentes, n’exclut pas en effet la possibilité de les combiner. Les signes de référence ne sauraient être compris comme limitant la portée de l’invention.
Claims (7)
- REVENDICATIONS1. Procédé de vérification d’intégrité d’une paire de clés cryptographiques publique et privée dans le groupe additif des entiers modulo N, avec N étant le produit de deux nombres premiers p et q, le procédé comportant :- une étape de calcul d’un exposant privé candidat d’correspondant à un exposant privé d de ladite clé privée,- une étape d’exécution d’un test d’intégrité, ledit procédé étant caractérisé en ce que le test d’intégrité comprend une étape de vérification (108, 208) de la cohérence de l’exposant privé candidat d’par rapport à un exposant public e de ladite clé publique et aux nombres p et q, ladite étape de vérification faisant intervenir un premier multiple modulo (p-1) de l’exposant public e de la clé publique et un deuxième multiple modulo (q-1) de l’exposant public e de la clé publique.
- 2. Procédé de vérification selon la revendication 1, dans lequel ladite étape de vérification (108) consiste à vérifier :- d’une part que le produit modulo (p-1) de l’exposant privé candidat d’par l’exposant public e de la clé publique est égal à 1, et- d’autre part que le produit modulo (q-1) de l’exposant privé candidat d’par l’exposant public e de la clé publique est égal à 1.
- 3. Procédé de vérification selon la revendication 1, dans lequel ladite étape de calcul de l’exposant privé candidat d’comprend le calcul :- d’une première valeur dp faisant intervenir l’exposant public e de la clé publique modulo p et- d’une seconde valeur dq faisant intervenir l’exposant public e de la clé publique modulo q, et dans lequel ladite étape de vérification (208) consiste à vérifier :- que l’exposant privé candidat d’modulo (p-1) est congru à la première valeur dp,- que l’exposant privé candidat d’modulo (q-1) est congru à la seconde valeur dq,- que le produit modulo (p-1) de la première valeur dp par l’exposant public e de la clé publique est égal à 1 ; et- que le produit modulo (q-1) de la seconde valeur dq par l’exposant public e de la clé publique est égal à 1.
- 4. Procédé de test de sécurité d’un dispositif électronique vis-à-vis d’une attaque, ledit dispositif mettant en œuvre une génération d’une clé cryptographique publique e et une clé cryptographique privée d dans le groupe additif des entiers modulo N, telles que :- N = p.q, avec p et q étant des nombres premiers,- 1 < e < Φ(Ν), avec e et Φ (N) étant premiers entre eux et Φ(Ν) = (p-1 ).(q-1 ), et- d.e = 1 mod λ(Ν), λ(Ν) étant le plus petit commun multiple entre p-1 et q-1, le procédé comprenant une étape de perturbation du calcul de la valeur λ(Ν), en sorte à obtenir, en lieu et place de la valeur λ(Ν), une valeur λ’(Ν) = λ(Ν)/α, avec a divisant λ(Ν), ladite perturbation amenant à calculer une clé privée d’, en lieu et place de la clé privée d telle que d’.e = 1 mod λ(Ν)/α, ledit procédé étant caractérisé en ce qu’il comprend en outre les étapes d’un procédé de vérification selon l’une quelconque des revendications 1 à 3.
- 5. Programme d’ordinateur comportant des instructions pour la mise en œuvre d’un procédé selon l’une quelconque des revendications 1 à 4 lorsqu’il est chargé et exécuté par un processeur d’un dispositif de cryptographie.
- 6. Dispositif cryptographique comportant une unité de traitement configurée pour mettre en œuvre un procédé selon l’une des revendications 1 à 4.
- 7. Entité électronique portable comprenant un dispositif selon la revendication 6.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1860300A FR3088452B1 (fr) | 2018-11-08 | 2018-11-08 | Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique |
US16/674,880 US11606195B2 (en) | 2018-11-08 | 2019-11-05 | Method of verifying integrity of a pair of cryptographic keys and cryptographic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1860300A FR3088452B1 (fr) | 2018-11-08 | 2018-11-08 | Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3088452A1 true FR3088452A1 (fr) | 2020-05-15 |
FR3088452B1 FR3088452B1 (fr) | 2023-01-06 |
Family
ID=65763581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1860300A Active FR3088452B1 (fr) | 2018-11-08 | 2018-11-08 | Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique |
Country Status (2)
Country | Link |
---|---|
US (1) | US11606195B2 (fr) |
FR (1) | FR3088452B1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111756931B (zh) * | 2020-06-24 | 2021-04-30 | 广西东信易通科技有限公司 | 基于中继线路的隐私号码自动化呼叫测试方法及其系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1362833A (fr) | 1963-06-27 | 1964-06-05 | Shell Int Research | Appareil pour guider des éléments d'équipement entre une base opérationnelle située au-dessus de l'eau et une installation sous-marine |
FR3015080A1 (fr) | 2013-12-17 | 2015-06-19 | Oberthur Technologies | Verification d'integrite de paire de cles cryptographiques |
FR3015079A1 (fr) * | 2013-12-17 | 2015-06-19 | Oberthur Technologies | Verification d'integrite de paire de cles cryptographiques |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848159A (en) * | 1996-12-09 | 1998-12-08 | Tandem Computers, Incorporated | Public key cryptographic apparatus and method |
US20020039420A1 (en) * | 2000-06-12 | 2002-04-04 | Hovav Shacham | Method and apparatus for batched network security protection server performance |
US6959091B1 (en) * | 2000-07-28 | 2005-10-25 | Atmel Corporation | Cryptography private key storage and recovery method and apparatus |
DE10061697A1 (de) * | 2000-12-12 | 2002-06-27 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Ermitteln eines Schlüsselpaars und zum Erzeugen von RSA-Schlüsseln |
FR2830146B1 (fr) * | 2001-09-24 | 2003-10-31 | Gemplus Card Int | Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant |
WO2003034268A2 (fr) * | 2001-10-17 | 2003-04-24 | Infineon Technologies Ag | Procede et dispositif pour garantir un calcul d'exponentiation au moyen du theoreme des restes chinois (trc) |
US7907724B2 (en) * | 2007-10-25 | 2011-03-15 | Infineon Technologies Ag | Method and apparatus for protecting an RSA calculation on an output by means of the chinese remainder theorem |
EP2996033A1 (fr) * | 2014-09-10 | 2016-03-16 | Gemalto Sa | Système et procédé d'exponentiation du théorème des restes chinois à usage unique pour des algorithmes cryptographiques |
-
2018
- 2018-11-08 FR FR1860300A patent/FR3088452B1/fr active Active
-
2019
- 2019-11-05 US US16/674,880 patent/US11606195B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1362833A (fr) | 1963-06-27 | 1964-06-05 | Shell Int Research | Appareil pour guider des éléments d'équipement entre une base opérationnelle située au-dessus de l'eau et une installation sous-marine |
FR3015080A1 (fr) | 2013-12-17 | 2015-06-19 | Oberthur Technologies | Verification d'integrite de paire de cles cryptographiques |
FR3015079A1 (fr) * | 2013-12-17 | 2015-06-19 | Oberthur Technologies | Verification d'integrite de paire de cles cryptographiques |
Non-Patent Citations (4)
Title |
---|
"pair-wise consistency test", NIST (SIGLE DE « NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY » |
"Recent Advances in RSA Cryptography", 1 January 2001, SPRINGER SCIENCE+BUSINESS MEDIA, LLC, ISBN: 978-1-4613-5550-2, article STEFAN KATZENBEISSER: "Chapter 5: properties of the RSA cryptosystem", pages: 63 - 67, XP055599531 * |
FGRIEU: "RSA private key integrity check", 12 January 2017 (2017-01-12), XP055599521, Retrieved from the Internet <URL:https://crypto.stackexchange.com/questions/42890/rsa-private-key-integrity-check> [retrieved on 20190625] * |
SIMON BURT: "Calculate primes p and q from private exponent (d), public exponent (e) and the modulus (n)", 26 February 2012 (2012-02-26), XP055599527, Retrieved from the Internet <URL:https://stackoverflow.com/questions/2921406/calculate-primes-p-and-q-from-private-exponent-d-public-exponent-e-and-the> [retrieved on 20190625] * |
Also Published As
Publication number | Publication date |
---|---|
US11606195B2 (en) | 2023-03-14 |
FR3088452B1 (fr) | 2023-01-06 |
US20200153617A1 (en) | 2020-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2706455B1 (fr) | Procédé de test de la sécurité d'un dispositif électronique vis-à-vis d'une attaque, et diispositif électronique mettant en oeuvre des contre-mesures | |
FR3015080A1 (fr) | Verification d'integrite de paire de cles cryptographiques | |
EP2663948B1 (fr) | Calculs sécurisés dans des centres de données multi-occupants | |
EP2256987B1 (fr) | Protection d'une génération de nombres premiers pour algorithme RSA | |
EP2296086B1 (fr) | Protection d'une génération de nombres premiers contre des attaques par canaux cachés | |
US20130208886A1 (en) | Method of preventing fault-injection attacks on chinese remainder theorem-rivest shamir adleman cryptographic operations and recording medium for storing program implementing the same | |
EP2248009A2 (fr) | Procede et dispositifs de contre-mesure pour cryptographie asymetrique | |
EP2772869A1 (fr) | Procédé et système de traitement cryptographique utilisant une donnée sensible | |
FR3088452A1 (fr) | Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique | |
EP2336931B1 (fr) | Procédé de vérification de signature | |
FR3015079A1 (fr) | Verification d'integrite de paire de cles cryptographiques | |
FR3015076A1 (fr) | Generation de cles cryptographiques | |
EP4096144A1 (fr) | Contremesures par infection améliorées | |
EP1433282B1 (fr) | Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie permettant de trouver l'exposant public | |
FR3069993A1 (fr) | Dispositifs et procedes de masquage d'operations de chiffrement rsa | |
EP3100403B1 (fr) | Échelle de montgomery déséquilibrée résistante aux attaques par canaux auxiliaires | |
EP1520370B1 (fr) | Procédé et dispositifs cryptographiques permettant d'alleger les calculs au cours de transactions | |
EP3482524B1 (fr) | Procédé de génération des paramètres caractérisant un protocole cryptographique | |
WO2015132524A2 (fr) | Génération de message pour test de génération de clés cryptographiques | |
FR3087022A1 (fr) | Systèmes et procédés cryptographiques résistant à des attaques par défaut | |
FR3004043A1 (fr) | Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt | |
FR2818846A1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie | |
FR2819663A1 (fr) | Dispositif et procede d'execution d'un algorithme cryptographique | |
FR3143243A1 (fr) | Signature et dechiffrement de message securises par double rsa-crt | |
FR2938361A1 (fr) | Entite electronique portable comportant des moyens de generation d'une alerte en cas de detection d'une anomalie dans les messages recus d'une entite externe |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20200515 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
PLFP | Fee payment |
Year of fee payment: 5 |
|
PLFP | Fee payment |
Year of fee payment: 6 |