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 PDF

Info

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
Application number
FR1860300A
Other languages
English (en)
Other versions
FR3088452B1 (fr
Inventor
Luk Bettale
Rina Zeitoun
Franck Rondepierre
Christophe Giraud
Clemence Vermeersch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia France SAS
Original Assignee
Idemia France SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Idemia France SAS filed Critical Idemia France SAS
Priority to FR1860300A priority Critical patent/FR3088452B1/fr
Priority to US16/674,880 priority patent/US11606195B2/en
Publication of FR3088452A1 publication Critical patent/FR3088452A1/fr
Application granted granted Critical
Publication of FR3088452B1 publication Critical patent/FR3088452B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/302Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

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)

  1. REVENDICATIONS
    1. 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. 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. 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. 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. 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. 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. 7. Entité électronique portable comprenant un dispositif selon la revendication 6.
FR1860300A 2018-11-08 2018-11-08 Procede de verification d'integrite d'une paire de cles cryptographiques et dispositif cryptographique Active FR3088452B1 (fr)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111756931B (zh) * 2020-06-24 2021-04-30 广西东信易通科技有限公司 基于中继线路的隐私号码自动化呼叫测试方法及其系统

Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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&#39;un dispositif électronique vis-à-vis d&#39;une attaque, et diispositif électronique mettant en oeuvre des contre-mesures
FR3015080A1 (fr) Verification d&#39;integrite de paire de cles cryptographiques
EP2663948B1 (fr) Calculs sécurisés dans des centres de données multi-occupants
EP2256987B1 (fr) Protection d&#39;une génération de nombres premiers pour algorithme RSA
EP2296086B1 (fr) Protection d&#39;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&#39;integrite d&#39;une paire de cles cryptographiques et dispositif cryptographique
EP2336931B1 (fr) Procédé de vérification de signature
FR3015079A1 (fr) Verification d&#39;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&#39;un algorithme de cryptographie permettant de trouver l&#39;exposant public
FR3069993A1 (fr) Dispositifs et procedes de masquage d&#39;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&#39;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&#39;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&#39;execution d&#39;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&#39;une alerte en cas de detection d&#39;une anomalie dans les messages recus d&#39;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