FR3004042A1 - Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt - Google Patents

Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt Download PDF

Info

Publication number
FR3004042A1
FR3004042A1 FR1362483A FR1362483A FR3004042A1 FR 3004042 A1 FR3004042 A1 FR 3004042A1 FR 1362483 A FR1362483 A FR 1362483A FR 1362483 A FR1362483 A FR 1362483A FR 3004042 A1 FR3004042 A1 FR 3004042A1
Authority
FR
France
Prior art keywords
private key
mod
component
rsa
cryptographic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1362483A
Other languages
English (en)
Inventor
Christophe Giraud
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
Oberthur Technologies SA
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 Oberthur Technologies SA filed Critical Oberthur Technologies SA
Priority to FR1362483A priority Critical patent/FR3004042A1/fr
Publication of FR3004042A1 publication Critical patent/FR3004042A1/fr
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Abstract

Il est proposé un procédé de génération, mis en œuvre par un dispositif électronique, d'une clé privée destinée à être utilisée dans un procédé cryptographique du type RSA-CRT, à partir d'un exposant public e correspondant à un nombre entier strictement positif, ladite clé privée comprenant une pluralité de composantes stockées dans une mémoire dudit dispositif électronique. Un tel procédé de génération est remarquable en ce qu'il comprend une étape d'instanciation d'une première composante de ladite clé privée audit exposant public e, et en ce que chaque représentation binaire des autres composantes de ladite pluralité de composantes est sans bloc de données prédéterminées de t-bits successifs, avec t>2 bits.

Description

Procédés de génération et d'utilisation de clés cryptographiques privées pour le RSA-CRT ou les variantes du RSA-CRT 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui de la cryptographie.
Plus précisément, l'invention concerne une technique applicable à des protocoles cryptographiques utilisant le procédé cryptographique RSA (pour « Rivest Shamir Adleman »), ou toute généralisation de celui-ci, et qui est basé sur le théorème des restes chinois (communément appelé RSA-CRT, pour « RSA Chinese Remainder Theorem » en anglais).
L'invention a de nombreuses applications, telles que par exemple dans des dispositifs électroniques, où les contraintes en termes de taille mémoire utilisée et temps d'exécution de procédés cryptographiques sont particulièrement importantes, qui mettent en oeuvre un tel procédé cryptographique pour sécuriser des communication et/ou des échanges de données (signature, etc.). 2. ARRIÈRE-PLAN TECHNOLOGIQUE On s'attache plus particulièrement dans la suite de ce document à décrire la problématique existant vis-à-vis de l'utilisation du procédé cryptographique RSA-CRT, à laquelle a été confronté l'inventeur de la présente demande de brevet. L'invention ne se limite bien sûr pas à ce domaine particulier d'application, mais présente un intérêt pour toute variante du procédé cryptographique RSA-CRT (comme présenté par exemple dans le document « Fast Variants of RSA » de D. Boneh et al.). Le procédé cryptographique RSA est un procédé cryptographique asymétrique bien connu de l'Homme du métier, qui peut être utilisé dans de multiples applications (signature de données numériques, chiffrement de données numériques, dans le cadre d'une authentification, etc.). Par exemple, le document "Handbook of Applied Cryptography" de A. Menezes et al., publié par l'éditeur CRC Press, divulgue, au chapitre 8 (intitulé « Public-Key Encryption ») et au chapitre 11 (intitulé « Digital Signatures ») de telles applications du procédé cryptographique RSA. Afin d'accélérer le temps d'exécution du procédé cryptographique RSA, il est bien connu d'utiliser le théorème des restes chinois (ou « Chinese Remainder Theorem») pour parvenir à cette fin (on utilise alors la terminologie de procédé cryptographique RSA-CRT). Ainsi, le temps d'exécution du procédé cryptographique RSA-CRT est quatre fois plus rapide que le procédé cryptographique RSA. Plus précisément, au chapitre 14 (intitulé « Efficient Implementation ») du document cité précédemment, il est présenté l'algorithme de Garner qui détaille une manière de réaliser une étape de recombinaison applicable au RSA-CRT. L'Homme du métier peut aussi, au lieu d'utiliser l'algorithme de Garner, utiliser l'algorithme de Gauss, présenté par exemple au chapitre 2 (intitulé « Mathematical Background», cf. l'algorithme référencé 2.121) du document mentionné précédemment. Des implémentations matérielles du procédé cryptographique RSA-CRT, telle que proposée dans le document : « The Chinese Remainder Theorem and its Application in a High-Speed RSA Crypto Chip » de Johann GroRschâdl, permettent d'accroître la vitesse d'exécution d'un tel procédé. Il convient de noter que, afin d'utiliser le procédé cryptographique RSA-CRT (via une implémentation matérielle ou via l'exécution sur un matériel d'un produit programme d'ordinateur), un dispositif électronique doit obtenir les éléments confidentiels (i.e. non publics) suivants : - un nombre premier p; - un nombre premier q; - un nombre cil, = d mod p-1 où d correspond à un exposant privé (i.e. secret) dans le procédé cryptographique RSA (avec d = e-1 mod (p-1)(q-1)) où e est exposant public) ; - un nombre dq = d mod q-1; et - un nombre i q = (il mod p. Ainsi, dans l'état de la technique, une clé cryptographique privée (i.e. secrète) pour un procédé cryptographique RSA-CRT correspond aux 5 éléments suivants : (p,q, clp, dq iq). On retrouve ce formalisme dans plusieurs normes dont la norme Javacard 2.2.2 (cf. la définition de l'interface « RSAPrivateCrtKey »). A contrario, une clé cryptographique privée pour un procédé cryptographique RSA classique est définie par les 2 éléments suivants : (N, d) avec le nombre N qui correspond aux produits des nombres premiers p et q. La clé cryptographique publique (que cela soit pour le procédé cryptographique RSA classique ou pour le procédé cryptographique RSA-CRT) est définie par les 2 éléments suivants : (N, e). Ainsi, un dispositif électronique qui comprend des moyens permettant de générer des clés cryptographiques en vue d'une utilisation d'un procédé cryptographique RSA-CRT, doivent permettre d'obtenir le quintet suivant (p,q, dp,dpip). L'étape de recherche de nombres premiers (i.e. les nombres p et q) correspond à l'étape nécessitant le plus d'opérations couteuses (d'un point de vue du temps d'exécution) dans une étape de génération d'une clé cryptographique privée en vu d'une utilisation d'un procédé cryptographique RSA-CRT. Cependant, les étapes de détermination des nombres dp, dp, et ip constituent elles aussi des étapes qui nécessitent de nombreuses ressources (en mémoire et en temps de calcul), de par la réalisation d'une opération d'inversion modulaire. Un inconvénient lié à la définition d'une telle clé cryptographique privée en vue d'une utilisation d'un procédé cryptographique RSA-CRT réside dans le fait que la taille (en nombre de bits) de ce quintet est relativement grand, et donc, le dispositif doit comprendre une mémoire relativement grande (dans le cas de figure où une grande quantité de clés cryptographiques privées en vue d'une utilisation d'un procédé cryptographique RSA-CRT sont stockées), ce qui n'est envisageable lorsqu'on utilise des dispositifs électroniques possédant peu de ressources mémoires.
Un autre inconvénient réside dans le fait que la génération d'une telle clé cryptographique privée en vue d'une utilisation d'un procédé cryptographique RSA-CRT est relativement long. En outre, dans le cas de figure où, via un canal sécurisé (ou lors d'une étape de personnalisation), une clé cryptographique privée en vue d'une utilisation d'un procédé cryptographique RSA-CRT est transmise à un dispositif électronique, de par la taille en nombre de bits d'une telle clé, une telle étape de réception d'une clé peut être relativement long. De plus, il convient de noter que, lorsqu'un dispositif électronique exécute un procédé cryptographique RSA-CRT, des attaques par injection de fautes peuvent être réalisée par un attaquant sur un tel dispositif. Par conséquent, puisque l'exposant public e n'est pas toujours connu par le dispositif (notamment dans le cadre des applications JavaCard), il est nécessaire d'incorporer à l'implémentation d'un procédé cryptographique RSA-CRT de nombreuses contremesures qui ralentissent de facto l'exécution du procédé cryptographique RSA-CRT. Plusieurs contremesures existent dans l'état de la technique comme celle consistant par exemple à recalculer à partir des éléments d'une clé cryptographique privée en vue d'une utilisation d'un procédé cryptographique RSA-CRT, l'exposant public e correspondant (cf. le document « Fouit Resistant RSA Signatures: Chinese Remaindering in Both Directions)> de A. Boscher et al., publié sur le site de l'IACR, et plus précisément l'algorithme 2 intitulé « Compute the RSA public exponent from a CRT RSA priyate key »).
La présente technique correspond à une technique de génération de clés cryptographiques privées en vue d'une utilisation d'un procédé cryptographique RSACRT, qui soit plus rapide que les techniques de l'art antérieur, et qui ne nécessite que peu de modifications pour être utilisé dans un dispositif électronique. En outre la présente technique permet de sécuriser un procédé cryptographique RSA-CRT contre des attaques par injection de fautes de manière efficace, et moins coûteuse que les techniques de l'art antérieur connues. 3. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de génération, mis en oeuvre par un dispositif électronique, d'une clé privée destinée à être utilisée dans un procédé cryptographique du type RSA-CRT, à partir d'un exposant public e correspondant à un nombre entier strictement positif, ladite clé privée comprenant une pluralité de composantes stockées dans une mémoire dudit dispositif électronique. Un tel procédé de génération est remarquable en ce qu'il comprend une étape d'instanciation d'une première composante de ladite clé privée audit exposant public e. Selon une caractéristique particulière, chaque représentation binaire des autres composantes de ladite pluralité de composantes est sans bloc de données prédéterminées de t-bits successifs, avec t>2 bits. Il convient de noter que cette approche, consistant à introduire l'exposant public dans une clé privée est tout à fait inventive, car cela à l'encontre des préjugés de l'Homme du métier, puisque comme sa terminologie l'explicite, l'exposant est public, et que l'Homme du métier n'est pas incité à l'introduire ainsi dans une clé privée. Ainsi, de cette manière, l'exposant public e étant toujours présent / référencé dans une telle clé privée générée, il n'est pas nécessaire de réaliser des opérations complexes à mettre en oeuvre pour l'utiliser dans un procédé de traitement cryptographique.
En outre, une telle technique de génération d'une clé privée ne diminue pas la sécurité de la clé obtenue, car chaque représentation binaire des autres composantes de la pluralité de composantes de la clé privée est sans bloc de données prédéterminées de t-bits successifs, avec t>2 bits (contrairement aux techniques de génération de clés comprenant des portions ou blocs de données prédéterminées comme cela est décrit par exemple dans le document US 6,496,929). Selon une première variante, un tel procédé de génération est remarquable en ce qu'il comprend en outre : - une étape d'instanciation d'une deuxième composante de ladite clé privée à un premier nombre premier p; - une étape d'instanciation d'une troisième composante de ladite clé privée à un deuxième nombre premier q; - une étape d'instanciation d'une quatrième composante de ladite clé privée à un premier exposant privé di, = d mod p-1 = e--1 mod p-1 où d correspond à un exposant privé dans un procédé cryptographique RSA vérifiant une équation d = e--1 mod (p-1)(q- 1), où e est ledit exposant public ; et - une étape d'instanciation d'une cinquième composante de ladite clé privée à un deuxième exposant privé dg = d mod q-1 = e--1 mod q-1. Ainsi, selon un tel mode de réalisation, une telle clé privée comprend le quintuplet suivant : (e, p, q, dg, dg).
Selon une deuxième variante, un tel procédé de génération comprend en outre: - une étape d'instanciation d'une deuxième composante de ladite clé privée à un premier nombre premier p; - une étape d'instanciation d'une troisième composante de ladite clé privée à un deuxième nombre premier q; - une étape d'instanciation d'une quatrième composante de ladite clé privée à un exposant privé d vérifiant une équation d = e--1 mod (p-1)(q-1), où e est ledit exposant public. Ainsi, selon un tel mode de réalisation, une telle clé privée comprend le triplet suivant : (e, p, q, d). Ainsi, pour retrouver les éléments c/p et dq, il sera nécessaire de réaliser des opérations de réduction modulaire. Selon une troisième variante, un tel procédé de génération comprend en outre : - une étape d'instanciation d'une deuxième composante de ladite clé privée à un premier nombre premier p; - une étape d'instanciation d'une troisième composante de ladite clé privée à un modulus étant un produit dudit premier nombre premier p avec un autre nombre premier q; - une étape d'instanciation d'une quatrième composante de ladite clé privée à un exposant privé d vérifiant une équation d = e--1 mod (p-1)(q-1), où e est ledit exposant public. Ainsi, une telle clé privée comprend le triplet suivant : (e, p, N, d). Il est alors possible d'obtenir l'autre nombre premier q en réalisant une division du modulus public N par le nombre premier p. Une fois un tel nombre premier q déterminé, il est possible de retrouver les éléments c/p et dq, en réalisant des opérations de réduction modulaire via chacun des nombres premiers p et q. Selon une caractéristique particulière, le procédé de génération est remarquable en ce que ladite clé privée comprend uniquement les composantes mentionnées.
Ainsi, lorsque la clé privée correspond exactement au quintuplet suivant : (e, p, q, dp, dq), /a présente technique consiste donc à remplacer le nombre ip = g-1 mod p (ou le nombre ip = p-1 mod q selon les standards) dans une clé privée « standard » par l'exposant public e correspondant, en vu d'une utilisation d'un procédé cryptographique RSA-CRT. Ainsi, l'absence du nombre ip = g-1 mod p ne constitue pas un frein à une implémentation du procédé cryptographique RSA-CRT. Comme décrit ultérieurement il n'est pas nécessaire de déterminer explicitement un tel nombre lors de l'exécution du procédé cryptographique RSA-CRT, contrairement au techniques de l'art antérieur (voir par exemple le document US 6,959,091, le document EP 2466783, le document US 2012/0263296 et le document US 7,340,606 dans lesquels, il est toujours nécessaire de déterminer explicitement le nombre ip = g-1 mod p (ou le nombre ip = p-1 mod q). En outre dans les techniques de l'art antérieur identifiées, l'exposant public e n'est pas considéré comme faisant partie intégrante de la clé privée. Ainsi, il se peut qu'un tel exposant ne soit pas toujours au sein d'un dispositif électronique. Ainsi, les clés privées générées selon la présente technique en vue d'une utilisation d'un procédé cryptographique RSA-CRT ont un format permettant de conserver le nombre de paramètres dans les interfaces d'appel (dans des produits programme d'ordinateurs) d'une fonction correspondant au procédé cryptographique RSA-CRT, conformément aux différentes normes existantes (comme la norme JavaCard 2.2.2 par exemple). Cependant, du fait que l'exposant public e, qui se substitue au nombre ip = (il mod p a une taille (en nombre de bits) généralement très inférieure à celle du nombre ip, le dispositif électronique a besoin de moins de ressources mémoire pour stocker une telle clé. En outre, la transmission et/ou la réception par un dispositif électronique de telles clés privées se fait de manière plus rapide, car il y a moins de bits à transmettre ou émettre.
Selon une caractéristique particulière, un tel procédé de génération est remarquable en ce qu'il comprend en outre une étape de détermination d'au moins un desdits nombres premiers. Dans un autre mode de réalisation de l'invention, il est proposé un procédé de traitement cryptographique du type RSA-CRT, mis en oeuvre par un dispositif électronique, et appliqué à un message m. Un tel procédé est remarquable en ce qu'il comprend : - une étape d'obtention d'une clé privée comprenant une composante correspondant à un exposant public e; - une étape de détermination d'au moins deux nombres v1 et v2 qui sont définis par les équations suivantes : v1 = (qe.m)1(dp-1).m.e2 mod p et v2 = (pe.m)1(dq 1).m.pe-2 mod q, où les nombres q et p sont des nombres premiers obtenus à partir d'au moins une composante de ladite clé privée, et - une étape de combinaison desdits au moins deux nombres v1 et v2 délivrant un résultat conforme à un traitement cryptographique du type RSA-CRT.
Ainsi, la présente technique permet de s'affranchir de la détermination explicite d'au moins un nombre ip = (il mod p (ou d'au moins un nombre ip =p-1 mod q) lors de la réalisation d'un procédé de traitement cryptographique du type RSA-CRT, ou d'une variante du RSA-CRT. En effet, en remarquant que les relations suivantes sont vérifiées: v/ = (qe.m)1(dp-1).m.e2 mod p = mA(dp).q-1 mod p et y2 = (Pe.rn)1(dp 1).m.pe-2 mod q = mA(dq).p-lmod p, il est possible, en partant de la recombinaison de Gauss par exemple d'obtenir le résultat escompté, et ce, sans avoir eu à déterminer explicitement d'au moins un nombre ip = (il mod p (ou d'au moins un nombre ip = p-1 mod q). Seuls les paramètres (e, p, q, dp, dq) sont nécessaires pour y parvenir. Ainsi, toute clé privée permettant d'aboutir à la détermination de ces paramètres peut être utilisée lors de l'exécution d'un procédé de traitement cryptographique du type RSA-CRT, ou une variante du RSA-CRT. Selon une caractéristique particulière, un tel procédé de traitement cryptographique est remarquable en ce que ladite étape de combinaison desdits au moins deux nombres v1 et v2 comprend une étape de détermination d'un nombre S = pvi+ qv2mod N, où N correspond au produit desdits deux nombres premiers p et q. Selon une caractéristique particulière, un tel procédé de traitement cryptographique est remarquable en ce qu'il comprend une étape de détection d'une attaque par injection de fautes en fonction d'une combinaison dudit résultat, dudit exposant public e et dudit message m.
Selon une caractéristique particulière, un tel procédé de traitement cryptographique est remarquable en ce que ladite étape de détection comprend : - une étape de détermination d'une exponentiation modulaire dudit résultat à une puissance égale audit exposant public, ladite étape de détermination délivrant un nombre m' ; - une étape de comparaison dudit nombre m' et dudit message m, ladite étape de comparaison délivrant une information significative de la détection d'une attaque par injection de fautes en cas de différence entre ledit nombre m' et ledit message m. Selon une caractéristique particulière, un tel procédé de traitement cryptographique est remarquable en ce que ladite clé privée comprenant une composante correspondant à un exposant public e est générée selon le procédé de génération précédemment mentionné. Selon une caractéristique particulière, ledit nombre premier p et ledit nombre premier q sont respectivement remplacés, préalablement aux étapes d'exponentiation, par un nombre p' et un nombre q' tels que : q' = q.r mod p ; p' = p.r mod q ; et r est différent de 0 mod p et r est différent de 0 mod q. Selon l'innvention, ledit procédé comprend en outre' postérieurement à ladite étape de combinaison desdits au moins deux nombres v1 et v2, une étape de multiplication dudit résultat conforme à un traitement cryptographique du type RSACRT par ledit nombre r, délivrant une signature dudit message m. Dans un autre mode de réalisation de l'invention, il est proposé un produit programme d'ordinateur qui comprend des instructions de code de programme pour la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation de l'invention, il est proposé un produit programme d'ordinateur qui comprend des instructions de code de programme pour la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation de l'invention, il est proposé un composant électronique comportant des moyens adaptés à la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation). Plus précisément, selon une implémentation préférée, les différentes étapes du procédé selon l'invention sont mises en oeuvre par un logiciel ou programme d'ordinateur, ce logiciel comprenant des instructions logicielles destinées à être exécutées par un processeur de données d'un module relais selon l'invention et étant conçu pour commander l'exécution des différentes étapes de ce procédé. En conséquence, l'invention vise aussi un programme, susceptible d'être exécuté par un ordinateur ou par un processeur de données, ce programme comportant des instructions pour commander l'exécution des étapes d'un procédé tel que mentionné ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un processeur de données, et comportant des instructions d'un programme tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
Selon un mode de réalisation, l'invention est mise en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme "module" peut correspondre dans ce document aussi bien à un composant logiciel, qu'a un composant matériel ou à un ensemble de composants matériels et logiciels. Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Un tel composant logiciel est exécuté par un processeur de données d'une entité physique (terminal, serveur, etc) et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc). De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré, une carte à puce, une carte à mémoire, une carte électronique pour l'exécution d'un micrologiciel (firmware), un élément de sécurité (ou « secure element » en anglais) utilisé dans le contexte de communication en champ proche (pour « Near Field Communication » en anglais), etc. Dans un autre mode de réalisation de l'invention, il est proposé un médium de stockage lisible par ordinateur et non transitoire, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé précité (dans l'un quelconque de ses différents modes de réalisation). Dans une variante de l'invention, il est proposé un dispositif électronique permettant de générer une clé privée destinée à être utilisée dans un procédé cryptographique du type RSA-CRT, à partir d'un exposant public e correspondant à un nombre entier strictement positif, ladite clé privée comprenant une pluralité de composantes stockées dans une mémoire dudit dispositif électronique. Un tel dispositif étant remarquable en ce qu'il comprend des moyens d'instanciation d'une première composante de ladite clé privée audit exposant public e.
Selon une caractéristique particulière, un tel dispositif permet de générer une clé privée pour laquelle chaque représentation binaire des autres composantes de ladite pluralité de composantes est sans bloc de données prédéterminées de t-bits successifs, avec t>2 bits. Dans une autre variante de l'invention, il est proposé un dispositif électronique apte à réaliser un traitement cryptographique du type RSA-CRT, appliqué à un message m. Un tel dispositif électronique est remarquable en ce qu'il comprend : - des moyens d'obtention d'une clé privée comprenant une composante correspondant à un exposant public e; - des moyens de détermination d'au moins deux nombres y/ et v2 qui sont définis par les équations suivantes : y1 = (qe.m)1(dp-1).m. qe-2 mod p et y2= (pe.m)^(dq 1).m.pe-2 mod q, où les nombres q et p sont des nombres premiers obtenus à partir d'au moins une composante de ladite clé privée, et - des moyens de combinaison desdits au moins deux nombres y/ et v2 délivrant un résultat conforme à un traitement cryptographique du type RSA-CRT. 4. LISTE DES FIGURES D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : - la figure 1 présente un organigramme d'un mode de réalisation particulier d'un procédé de génération selon l'invention, mis en oeuvre par un dispositif électronique; - la figure 2 présente un organigramme d'un mode de réalisation particulier d'un procédé de signature via un traitement cryptographique du type RSA-CRT selon l'invention, mis en oeuvre par un dispositif électronique ; - la figure 3(a) représente, schématiquement, un dispositif électronique permettant de réaliser un traitement de données dans lequel la présente invention est mise en oeuvre ; - la figure 3(b) représente une carte à microcircuit qui constitue un exemple de dispositif électronique permettant de réaliser un traitement de données conforme à l'invention tel que représenté à la figure 3(a). 5. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments et étapes identiques sont désignés par une même référence numérique. La figure 1 présente un organigramme d'un mode de réalisation particulier d'un procédé de génération selon l'invention, mis en oeuvre par un dispositif électronique.
Plus précisément, un tel procédé de génération d'une clé privée selon l'invention permet à dispositif électronique, suite à l'obtention d'un exposant public e (paramètre qui est soit lui-même généré, soit imposé comme c'est le cas dans de nombreuses normes (comme par exemple la norme EMV (acronyme de « Europay, MasterCard and Visa ») qui stipule que l'exposant public e doit être égal à l'une des valeurs suivantes : 3, 17 ou 216+1)), au cours d'une étape d'obtention référencée 101, de générer les autres composantes de la clé privée selon l'invention. Il convient de noter que, selon la présente invention, l'exposant public e fait partie intégrante de la clé privée générée (i.e. l'exposant public e est une composante de la clé privée générée). Comme mentionné précédemment, cette approche est en soit nouvelle et inventive. En outre, l'étape d'obtention 101 comprend une étape d'instanciation d'une première composante d'une clé privée audit exposant public e. Une telle étape d'instanciation consiste à écrire, dans une zone mémoire du dispositif électronique, la va leur de l'exposant public e. Ainsi, cette zone mémoire stocke une première composante de la clé privée en cours de génération. Par la suite, et de manière générique, une étape d'instanciation consiste à écrire, dans une zone mémoire du dispositif électronique, une valeur d'intérêt à stocker. Ainsi, suite à l'exécution de l'étape d'obtention 101, le dispositif électronique obtient un premier nombre premier p (soit via une étape de génération réalisée par le dispositif lui-même, soit via une lecture d'un tel paramètre dans une zone mémoire particulière déjà référencée) au cours d'une étape référencée 102. La taille d'un tel nombre premier p est déterminée en fonction de la valeur d'un paramètre de configuration stocké sur le dispositif électronique. En outre, l'étape d'obtention 102 comprend une étape d'instanciation d'une deuxième composante de la clé privée à la valeur du nombre premier p. De même, le dispositif électronique obtient un deuxième nombre premier q (soit via une étape de génération réalisée par le dispositif lui-même, soit via une lecture d'un tel paramètre dans une zone mémoire particulière déjà référencée) au cours d'une étape référencée 103. En outre, l'étape d'obtention 103 comprend une étape d'instanciation d'une troisième composante de la clé privée à la valeur du nombre premier q.
Puis, le dispositif électronique, au cours d'une étape référencée 104, obtient un premier exposant privé dp: - soit en déterminant la valeur suivante : d mod p-1 où d correspond à un exposant privé dans un procédé cryptographique RSA déterminé via la détermination de e-1 mod (p-1)(q-1), où e est ledit exposant public (ou via la lecture du paramètre d dans une zone mémoire particulière déjà référencée); - soit en déterminant la valeur de e-1 mod p-1 (ou via la lecture du paramètre dp dans une zone mémoire particulière déjà référencée). En outre, l'étape 104 comprend une étape d'instanciation d'une quatrième composante de la clé privée à la valeur du premier exposant privé dp. Puis, le dispositif électronique, au cours d'une étape référencée 105, obtient un deuxième exposant privé dg : - soit en déterminant la valeur suivante : d mod q-1 où d correspond à un exposant privé dans un procédé cryptographique RSA déterminé via la détermination de e-1 mod (p-1)(q-1), où e est ledit exposant public (ou via la lecture du paramètre d dans une zone mémoire particulière déjà référencée); - soit en déterminant la valeur de e-1 mod q-1 (ou via la lecture du paramètre dg dans une zone mémoire particulière déjà référencée). En outre, l'étape 105 comprend une étape d'instanciation d'une cinquième composante de la clé privée à la valeur du deuxième exposant privé dg . Ainsi, après l'exécution des étapes 101 à 105, le dispositif électronique, selon un mode de réalisation de l'invention stocke la clé privée générée qui comprend les 5 éléments suivants : (e, p, q, dp, dg). Ainsi, la clé privée générée a été instanciée et est prête à être utilisée lors de la réalisation d'un traitement cryptographique, ou pour une manipulation d'une telle clé (transfert, etc.) au sein du dispositif électronique. Ainsi, selon un mode de réalisation de l'invention, le procédé de génération selon la présente invention peut consister à convertir une clé privée comprenant les composantes suivantes (p,q, dp,dg ig) ou (p,q, dp,dg ip) en la clé privée suivante : (e, p, q, dp, dg) qui possède une taille (en nombre de bits) plus petite que celle des clés privées non-converties. Le procédé de génération permet donc de faciliter la gestion de la mémoire du dispositif électronique (les clés privées étant plus petites). La figure 2 présente un organigramme d'un mode de réalisation particulier d'un procédé de signature via un traitement cryptographique du type RSA-CRT selon l'invention, mis en oeuvre par un dispositif électronique. Dans une étape référencée 201, le dispositif électronique réalise une étape d'obtention d'un message m à signer et d'une clé cryptographique privée pour le RSACRT ou les variantes du RSA-CRT ayant été générée par exemple, via le procédé de génération décrit en lien avec la figure 1.
Ainsi, dans un mode de réalisation de l'invention, le dispositif électronique lit dans une zone mémoire les composantes d'une clé cryptographique privée comprenant les 5 éléments suivants : (e, p, q, dp, dq). Selon une variante, les composantes d'une clé cryptographique privée correspondent aux 4 éléments suivants : (e, p, q, d). Selon une autre variante, les composantes d'une clé cryptographique privée correspondent aux 4 éléments suivants : (e, N, q, d) ou (e, N, p, d) avec N qui correspond au nombre p.q. La structure des clés cryptographiques privées selon les variantes évoquées, permet cependant de déterminer les autres composantes manquantes par rapport à la structure d'une clé cryptographique privée comprenant les 5 éléments suivants : (e, p, q, dp, dq).
Puis afin d'obtenir une signature du message m via un traitement cryptographique du type RSA-CRT selon l'invention, le dispositif électronique exécute une première étape d'exponentiation référencée 202 et une deuxième étape d'exponentiation référencée 203. Plus précisément, la première étape d'exponentiation 202 comprend : - une première étape de détermination d'un nombre dl = m. qe-2 mod p ; - une deuxième étape de détermination d'un nombre q2 = QI. q2 mod p ; - une étape d'exponentiation via l'utilisation du premier exposant privé consistant à déterminer le nombre suivant v1 = q2^(dp-1).q1 mod p. Il convient de noter que la relation suivante est alors vérifiée v1 = (qe.m)1(dp-1).m.e2 mod p = (m)^(dp).q-1 mod p, et ce, sans avoir eu à déterminer explicitement la valeur de q-1 mod p. De manière générale, la première étape d'exponentiation 202 vise à déterminer la valeur de v1 = (qe.m)1(dp-1).m.e2 mod p. Ainsi, il est possible d'envisager un mode de réalisation dans lequel on détermine un nombre c1 = (qe.rn)^(dp-/), puis on détermine ensuite le nombre c1 . rn.qe-2 mod P, qui est égal au nombre y1. De manière analogue, la deuxième étape d'exponentiation 203 comprend : - une première étape de détermination d'un nombre pi = m. pe-2 mod q; - une deuxième étape de détermination d'un nombre 132 = pi. p2 mod q; - une étape d'exponentiation via l'utilisation du premier exposant privé consistant à déterminer le nombre suivant v2 = (p2)^(dq-1).pi mod q. Il convient de noter que la relation suivante est alors vérifiée v2 = (pe.m)1(dq-1).m.pe-2 mod q = (m)^(dq).p-1 mod q, et ce, sans avoir eu à déterminer explicitement la valeur de p-1 mod q. De manière générale, la deuxième étape d'exponentiation 203 vise à déterminer la valeur de v2 = (pe.m)1(dq-1).m.pe-2 mod q, et ce quel que soit l'ordonnancement des opérations modulaires que l'on choisit pour atteindre un tel objectif. Ainsi, suite à l'exécution des étapes 202 et 203, le dispositif électronique dispose, dans une zone mémoire, des deux nombres v1 et v2. Afin d'obtenir la signature du message, il convient de réaliser alors une étape de recombinaison référencée 204. Plus précisément, l'étape de recombinaison 204 comprend une étape de détermination du nombre S = p.vi + q.v2 mod N, où N correspond au produit desdits deux nombres premiers p et q. Le nombre S ainsi obtenu est identique (si aucune attaque par injection de fautes n'a été réalisée) au résultant provenant d'un traitement cryptographique du type RSA-CRT « classique ». Ainsi, le nombre S correspond à la signature du message m. Cette méthode propose plusieurs avantages par rapport à la méthode classique : - on propose une nouvelle implémentation de RSA-CRT qui prend en entrée (p; q; dp;dq; e) au lieu de (p; q; dp; dq; iq); - la génération de la clé est plus rapide que celle résultant de l'exécution des algorithmes traditionnels : en effet, dans la méthode proposée il n'est pas nécessaire de réaliser l'opération iq = (il mod p. De plus, comme l'exposant public est toujours fourni comme paramètre d'entrée de la génération de clé, on ne met pas en oeuvre de calcul supplémentaire pour obtenir cette cinquième valeur d'entrée ; - la clé RSA-CRT obtenu par l'application de la méthode de l'invention est en règle générale plus courte que la clé obtenue avec les méthodes traditionnelles puisqu'il est uniquement nécessaire d'enregistrer e à la place de ig. Dans 2048 bits, on gagne 253 octets lorsque e =216+1; - l'adaptation des architectures matérielles (notamment JavaCard) est relativement simple ; Par ailleurs, du fait que l'exposant public e est une composante de la clé cryptographique privée obtenue lors de l'étape 201, il est alors possible de vérifier si une attaque par injection de fautes n'a pas été réalisée lors des étapes 202 à 204. Pour ce faire, le dispositif électronique met en oeuvre, au cours d'une étape de détection d'une attaque par injection de fautes référencée 205, qui comprend : - une étape d'exponentiation comprenant la détermination du nombre m' suivant : m' = re mod N; et une étape de comparaison du nombre m' avec le message m, qui délivre une information significative de la détection d'une attaque par injection de fautes en cas de différence entre ledit nombre m' et ledit message m. L'exécution de l'étape 205 peut être facultative si d'autres contremesures contre les attaques par injection de fautes sont déjà mises en oeuvre par le dispositif électronique. La figure 3(a) représente, schématiquement, un dispositif électronique permettant de réaliser un traitement de données dans lequel la présente invention est mise en oeuvre. Ce dispositif 340 comprend un microprocesseur 310, auquel est associée d'une part une mémoire vive 360, par exemple au moyen d'un bus 370, et d'autre part une mémoire non volatile 320 (par exemple du type EEPROM), par exemple à travers un bus 350.
Le dispositif de traitement de données 340, et précisément le microprocesseur 310 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 330. On a schématiquement représenté sur la figure 3(a) la transmission d'une donnée d'entrée X reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 330 au microprocesseur 310. De manière similaire, on a représenté la transmission d'une donnée de sortie Y du microprocesseur 310 vers l'interface de communication 330 à destination d'un dispositif extérieur. Cette donnée de sortie Y est issue d'un traitement de données par le microprocesseur 310, généralement sur la donnée ou une partie de la donnée d'entrée X à l'aide d'une donnée secrète 380 interne au système. Le traitement de données ainsi réalisé peut comprendre une exécution du procédé de comparaison selon la présente invention. Les données d'entrée X sont par exemple des commandes APDU, et les données de sortie Y peuvent être des réponses APDU, pouvant comprendre une donnée chiffrée, une signature, un nombre aléatoire, etc issue du traitement de données susmentionné. Bien que, pour l'illustration, les données d'entrée et les données de sortie figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 310 et l'interface 330 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 310 est apte à exécuter un logiciel (ou programme d'ordinateur) qui permet au dispositif électronique d'exécuter un procédé conforme à l'invention au regard des figures 1 et 2. Ce procédé est par exemple exécuté par le dispositif électronique sur réception des données d'entrée X. Les données du procédé selon l'invention peuvent être obtenus à partir des données d'entrée. Les données de sorties sont par exemple obtenues à partir du résultat du procédé selon l'invention (par exemple transmission de la validation du domaine de paramètres reçu (compris dans les données d'entrée X). Le logiciel est composé d'une série d'instructions de commande du microprocesseur 310 qui sont par exemple stockées dans la mémoire 320.
Dans une variante, l'ensemble microprocesseur 310 - mémoire non-volatile 320 - mémoire vive 360 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en oeuvre des différentes étapes du procédé de traitement de données. Plus généralement, le dispositif de traitement est un circuit intégré. La figure 3(b) représente une carte à microcircuit qui constitue un exemple de dispositif de traitement de données conforme à l'invention tel que représenté à la figure 3(a). L'interface de communication 330 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit ou bien d'une antenne logée dans le corps de carte.
La carte à microcircuit incorpore un microprocesseur 310, une mémoire vive 360 et une mémoire non volatile 320 comme cela est représenté sur la figure 3(a). Cette carte à microcircuit est par exemple conforme à la norme ISO 7816 et munie d'un microcontrôleur sécurisé qui regroupe le microprocesseur (ou CPU) 320 et la mémoire vive 360.
Les données d'entrée X sont par exemple des commandes APDU, et les données de sortie Y des réponses APDU. Dans une variante, le dispositif de traitement de données peut être une clé USB, un document ou un support d'informations papier comportant dans l'une de ses feuilles un microcircuit associé à des moyens de communication sans contact. Il s'agit de manière préférée d'une entité électronique portable ou de poche. Le dispositif est par exemple sécurisé. Par exemple, le dispositif comporte des moyens aptes à le protéger contre des attaques visant à obtenir frauduleusement les données secrètes qu'il mémorise (par exemple, une clé cryptographique) telle que les attaques par fautes et/ou par analyse de canaux cachés (en anglais , « sicle channel attacks »). En particulier, le dispositif est conforme à la norme FIPS ou aux critères communs. Par ailleurs, le principe de la méthode proposée peut également être mis en oeuvre pour réaliser un masquage de message. En effet, la methode préalablement présentée est base sur la relation suivante : / mu( (2) -1 La signature S = md mod N d'un message m peut être obtenue en utilisant une recombinaison gaussienne telle que : Sq q iq S mod N (3) Dans 111(.." 1 il. 1. 1110(1 laquelle : /i,r Lac., -1 an( q LL.Loi On peut noter que l'expression précédente (3) est équivalente à l'expression suivante : À partir des expressions (2) et (4) précédentes, (4) on peut également calculer S en S LacK1 , in 41( (1 utilisant la relation suivante : S = .`" q 111(3(1 :\ (5) Dans laquelle : Comme l'homme du métier peut immédiatement le constater, Si et Sig sont respectivement les mêmes valeurs que vl et v2 préalablement décrites. Il est également possible d'utiliser l'expression (2) précédente pour réaliser un masquage de message. On note en effet que lorsque l'on remplace la valeur q par la valeur q.r mod p, où r est différent de 0 mod p et r est différent de 0 mod q, on obtient : mdp g-1 Laud (6).
En utilisant la même modification pour calculer Srq, (i.e. remplacer p par la valeur p.r mod q) on obtient une signature aléatoire (avec l'expression (5)) qui est égale à : = r - mo(1 .1 (7) Le démasquage du message est fait simplement en multipliant S' par r mod N. Plus particulièrement, le dispositif électronique exécute une première étape d'exponentiation référencée 202 et une deuxième étape d'exponentiation référencée 203 puis une étape de recombinaison 204 telles que décrites préalablement. Cependant, plutot que de travailler, à partir des nombres premiers p et q, les étapes d'exponentiation sont précédées du calcul des valeurs q'=q.r mod p et p'=p.r mod q. Les valeurs ql et q2, de la première étape d'exponentiation sont calculées à partir de q' plutôt que de q et les valeurs pl et p2, de la deuxième étape d'exponentiation sont calculées à partir de p' plutôt que de p. Selon un mode de réalisation particulier, la taille de la valeur aléatoire r est comprise entre Log(N)/2 et Log(N).
Cette technique de masquage présente des avantages. En effet, comparativement aux méthodes de masquage arithmétiques traditionnelles (i.e. m m + klp, 1(1 étant un nombre aléatoire de 32 bit, par exemple), Il n'est pas nécessaire de développer le module p k2p, k2 étant un nombre aléatoire de 32 bit, par exemple). Les exponentiations seront donc plus rapides car on travaille avec une longueur d'opérande petit. Une telle amélioration pourrait être très significative dans certains cas, en particulier avec coprocesseur ayant un adressage de 128 bits. Dans certains cas, cette méthode peut être deux fois plus rapide. Comparé à d'autres méthodes de masquages multiplicatifs, il n'est pas nécessaire de calculer l'inverse du masque multiplicatif r car un tel calcul est effectué « gratuitement » pendant les exponentiations.

Claims (8)

  1. REVENDICATIONS1. Procédé de génération, mis en oeuvre par un dispositif électronique, d'une clé privée destinée à être utilisée dans un procédé cryptographique du type RSA-CRT, à partir d'un exposant public e correspondant à un nombre entier strictement positif, ladite clé privée comprenant une pluralité de composantes stockées dans une mémoire dudit dispositif électronique, ledit procédé de génération étant caractérisé en ce qu'il comprend une étape d'instanciation d'une première composante de ladite clé privée audit exposant public e, et en ce que chaque représentation binaire des autres composantes de ladite pluralité de composantes est sans bloc de données prédéterminées de t-bits successifs, avec t>2 bits.
  2. 2. Procédé de génération selon la revendication 1, caractérisé en ce que le procédé de génération comprend en outre : - une étape d'instanciation d'une deuxième composante de ladite clé privée à un premier nombre premier p; - une étape d'instanciation d'une troisième composante de ladite clé privée à un deuxième nombre premier q; - une étape d'instanciation d'une quatrième composante de ladite clé privée à un premier exposant privé dg = d mod p-1 = e--1 mod p-1 où d correspond à un exposant privé dans un procédé cryptographique RSA vérifiant une équation d = e--1 mod (p- 1)(q-1), où e est ledit exposant public ; et - une étape d'instanciation d'une cinquième composante de ladite clé privée à un deuxième exposant privé dg = d mod q-1 = e--1 mod q-1.
  3. 3. Procédé de génération selon la revendication 1, caractérisé en ce que le procédé de génération comprend en outre : - une étape d'instanciation d'une deuxième composante de ladite clé privée à un premier nombre premier p; - une étape d'instanciation d'une troisième composante de ladite clé privée à un deuxième nombre premier q; - une étape d'instanciation d'une quatrième composante de ladite clé privée à un exposant privé d vérifiant une équation d = e--1 mod (p-1)(q-1), où e est ledit exposant public.
  4. 4. Procédé de génération selon la revendication 1, caractérisé en ce que le procédé de génération comprend en outre : une étape d'instanciation d'une deuxième composante de ladite clé privée à un premier nombre premier p; une étape d'instanciation d'une troisième composante de ladite clé privée à un modulus étant un produit dudit premier nombre premier p avec un autre nombre premier q; une étape d'instanciation d'une quatrième composante de ladite clé privée à un exposant privé d vérifiant une équation d = e--1 mod (p-1)(q-1), où e est ledit exposant public.
  5. 5. Procédé de génération selon l'une quelconque des revendications 2 à 4, caractérisé en ce que ladite clé privée comprend uniquement les composantes mentionnées.
  6. 6. Procédé de génération selon l'une quelconque des revendications 2 à 5, caractérisé en ce qu'il comprend en outre une étape de détermination d'au moins un desdits nombres premiers.
  7. 7. Procédé de traitement cryptographique du type RSA-CRT, mis en oeuvre par un dispositif électronique, et appliqué à un message m, ledit procédé étant caractérisé en ce qu'il comprend : une étape d'obtention d'une clé privée comprenant une composante correspondant à un exposant public e; une étape de détermination d'au moins deux nombres y1 et v2 qui sont définis par les équations suivantes : v/ = (qe.m)1(dp-1).m.qe-2 mod p et y2 = (pe.m)^(dq-1).m. Pe-2 mod q, où les nombres q et p sont des nombres premiers obtenus à partir d'au moins une composante de ladite clé privée, et - une étape de combinaison desdits au moins deux nombres y1 et v2 délivrant un résultat conforme à un traitement cryptographique du type RSA-CRT.
  8. 8. Procédé de traitement cryptographique selon la revendication 7, caractérisé en ce que, ladite étape de combinaison desdits au moins deux nombres y1 et v2 comprend une étape de détermination d'un nombre S = pvi + qv2 mod N, où N correspond au produit desdits deux nombres premiers p et q.9. 10. - 11. 12. 13. 14. Procédé de traitement cryptographique selon l'une quelconque des revendications 7 et 8, caractérisé en ce qu'il comprend une étape de détection d'une attaque par injection de fautes en fonction d'une combinaison dudit résultat, dudit exposant public e et dudit message m. Procédé de traitement cryptographique selon la revendication 9, caractérisé en ce que ladite étape de détection comprend : une étape de détermination d'une exponentiation modulaire dudit résultat à une puissance égale audit exposant public, ladite étape de détermination délivrant un nombre m' ; une étape de comparaison dudit nombre m' et dudit message m, ladite étape de comparaison délivrant une information significative de la détection d'une attaque par injection de fautes en cas de différence entre ledit nombre m' et ledit message m. Procédé de traitement cryptographique selon l'une quelconque des revendications 7 à 10, caractérisé en ce que ladite clé privée comprenant une composante correspondant à un exposant public e est générée selon un procédé de génération selon l'une quelconque des revendications 1 à 6. Procédé de traitement cryptographique selon l'une quelconque des revendications 7 à 11, caractérisé en ce que ledit nombre premier p et ledit nombre premier q sont respectivement remplacés, préalablement aux étapes d'exponentiation, par un nombre p' et un nombre q' tels que : q' = q.r mod p ; p' = p.r mod q ; et r est différent de 0 mod p et r est différent de 0 mod q. Procédé de traitement cryptographique selon la revendication 12, caractérisé en ce qu'il comprend, postérieurement à ladite étape de combinaison desdits au moins deux nombres v1 et v2, une étape de multiplication dudit résultat conforme à un traitement cryptographique du type RSA-CRT par ledit nombre r, délivrant une signature dudit message m. Produit programme d'ordinateur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé selon au moins une desrevendications 1 à 6 et/ou le procédé selon au moins une des revendications 7 à 13, lorsque ledit programme est exécuté sur un ordinateur. 15. Médium de stockage lisible par ordinateur et non transitoire, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur ou un processeur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 6 et/ou le procédé selon au moins une des revendications 7 à 13. 16. Dispositif électronique permettant de générer une clé privée destinée à être utilisée dans un procédé cryptographique du type RSA-CRT, à partir d'un exposant public e correspondant à un nombre entier strictement positif, ladite clé privée comprenant une pluralité de composantes stockées dans une mémoire dudit dispositif électronique, ledit dispositif étant caractérisé en ce qu'il comprend des moyens d'instanciation d'une première composante de ladite clé privée audit exposant public e, et en ce que chaque représentation binaire des autres composantes de ladite pluralité de composantes est sans bloc de données prédéterminées de t-bits successifs, avec t>2 bits. 17. Dispositif électronique apte à réaliser un traitement cryptographique du type RSACRT, appliqué à un message m, ledit dispositif électronique étant caractérisé en ce qu'il comprend : des moyens d'obtention d'une clé privée comprenant une composante correspondant à un exposant public e; des moyens de détermination d'au moins deux nombres y/ et y2 qui sont définis par les équations suivantes : y1 = (qe.m)1(dp-1).m.qe-2 mod p et y2 = (Pe . r n )A (CI q-1). m. p2 mod q, où les nombres q et p sont des nombres premiers obtenus à partir d'au moins une composante de ladite clé privée, et - des moyens de combinaison desdits au moins deux nombres y/ et y2 délivrant un résultat conforme à un traitement cryptographique du type RSA-CRT.
FR1362483A 2013-03-29 2013-12-12 Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt Pending FR3004042A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1362483A FR3004042A1 (fr) 2013-03-29 2013-12-12 Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1352948A FR3004043B1 (fr) 2013-03-29 2013-03-29 Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt
FR1362483A FR3004042A1 (fr) 2013-03-29 2013-12-12 Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt

Publications (1)

Publication Number Publication Date
FR3004042A1 true FR3004042A1 (fr) 2014-10-03

Family

ID=49111313

Family Applications (2)

Application Number Title Priority Date Filing Date
FR1352948A Active FR3004043B1 (fr) 2013-03-29 2013-03-29 Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt
FR1362483A Pending FR3004042A1 (fr) 2013-03-29 2013-12-12 Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt

Family Applications Before (1)

Application Number Title Priority Date Filing Date
FR1352948A Active FR3004043B1 (fr) 2013-03-29 2013-03-29 Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt

Country Status (1)

Country Link
FR (2) FR3004043B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108055128A (zh) * 2017-12-18 2018-05-18 数安时代科技股份有限公司 Rsa密钥的生成方法、装置、存储介质及计算机设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3112003B1 (fr) * 2020-06-26 2023-03-03 Idemia France Procede de traitement cryptographique, dispositif electronique et programme d'ordinateur associes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARC JOYE: "Protecting RSA against Fault Attacks: The Embedding Method", FAULT DIAGNOSIS AND TOLERANCE IN CRYPTOGRAPHY (FDTC), 2009 WORKSHOP ON, IEEE, PISCATAWAY, NJ, USA, 6 September 2009 (2009-09-06), pages 41 - 45, XP031627635, ISBN: 978-1-4244-4972-9 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108055128A (zh) * 2017-12-18 2018-05-18 数安时代科技股份有限公司 Rsa密钥的生成方法、装置、存储介质及计算机设备

Also Published As

Publication number Publication date
FR3004043A1 (fr) 2014-10-03
FR3004043B1 (fr) 2018-06-01

Similar Documents

Publication Publication Date Title
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
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
EP1166494A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
FR3015080A1 (fr) Verification d'integrite de paire de cles cryptographiques
WO2005022820A1 (fr) Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
WO2007006810A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe
EP1895404B1 (fr) Brouillage d'un calcul effectué selon un algorithme RSA-CRT
WO2006070092A1 (fr) Procede de traitement de donnees et dispositif associe
WO2011144554A1 (fr) Procédé d'obtention de clés de chiffrement, terminal, serveur, et produits programmes d'ordinateurs corresupondants.
FR2949886A1 (fr) Procede de traitement cryptographique de donnees
EP2800299A1 (fr) Procédé de validation d'un paramètre cryptographique et dispositif correspondant
FR3004042A1 (fr) Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt
WO2003014916A1 (fr) Procede securise de realisation d'une operation d'exponentiation modulaire
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
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
EP2738974A1 (fr) Procédé de dérivation de clés cryptographiques multiples à partir d'une clé maitresse dans un microprocesseur de sécurité
EP2544398B1 (fr) Procédé de calcul de fonctions d'encodage dans une coubre elliptique et coprocesseur cryptographique correspondant
FR2986883A1 (fr) Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants
FR2994608A1 (fr) Procede de traitement cryptographique comprenant un acces securise a une pluralite de tables de substitution, dispositifs et produit programme d'ordinateur correspondants.
EP3579491A1 (fr) Procédé de détermination d'inverse modulaire et dispositif de traitement cryptographique associé
FR3010562A1 (fr) Procede de traitement de donnees et dispositif associe
FR3045253A1 (fr) Procede et dispositif de traitement cryptographique
FR3014582A1 (fr) Procede de test de la condition mov et dispositif associe

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20181009

PLFP Fee payment

Year of fee payment: 7

CA Change of address

Effective date: 20200826

CJ Change in legal form

Effective date: 20200826

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11