FR2986883A1 - Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants - Google Patents

Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants Download PDF

Info

Publication number
FR2986883A1
FR2986883A1 FR1251371A FR1251371A FR2986883A1 FR 2986883 A1 FR2986883 A1 FR 2986883A1 FR 1251371 A FR1251371 A FR 1251371A FR 1251371 A FR1251371 A FR 1251371A FR 2986883 A1 FR2986883 A1 FR 2986883A1
Authority
FR
France
Prior art keywords
prime
secure generation
generation method
random number
secure
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
FR1251371A
Other languages
English (en)
Inventor
Rina Zeitoun
Emmanuel Prouff
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 FR1251371A priority Critical patent/FR2986883A1/fr
Priority to FR1351288A priority patent/FR2986884B1/fr
Publication of FR2986883A1 publication Critical patent/FR2986883A1/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
    • 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
    • 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/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/3033Public 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 details relating to pseudo-prime or prime number generation, e.g. primality test
    • 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/7204Prime number generation or prime number testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

Il est proposé un procédé de génération sécurisé d'un nombre premier p, mis en oeuvre par un composant électronique, comprenant au moins une étape d'incrémentation par un pas alpha d'un nombre v qualifié de composite. Le procédé de génération sécurisé est remarquable en ce qu'il comprend une étape de détermination d'un autre pas alpha' en fonction dudit pas alpha et d'un nombre aléatoire delta, et en ce que ladite étape d'incrémentation utilise ledit autre pas alpha' déterminé.

Description

Procédé de génération sécurisé d'un nombre premier, produit programme d'ordinateur et composant électronique correspondants 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui de la cryptographie.
Plus précisément, l'invention concerne une technique de sécurisation d'un procédé de génération d'un nombre premier contre des attaques par canaux cachés. L'invention a de nombreuses applications, telles que par exemple dans le domaine des cartes à puces qui sont particulièrement sensibles à de telles attaques. Plus généralement, elle peut s'appliquer dans tous les cas où un attaquant cherche à obtenir des informations sur un nombre premier lors de la mise en oeuvre d'un procédé de génération d'un nombre premier. 2. ARRIÈRE-PLAN TECHNOLOGIQUE Dans le domaine de la cryptographie, les nombres premiers constituent une brique de base nécessaire à l'élaboration de la plupart des cryptosystèmes à clé publique.
Notamment, les cryptosystèmes asymétriques basés sur la difficulté du problème de la factorisation (par exemple le cryptosystème RSA (pour « Rivest Shamir et Adleman »), le cryptosystème de Rabin, le cryptosystème de Paillier, etc...) nécessitent l'utilisation d'au moins deux nombres premiers qui ne sont connus que du composant électronique dans lequel ils ont été générés.
Pour générer de tels nombres, on connaît dans l'état de la technique, différents procédés de génération de nombres premiers. Il convient de noter que la plupart des procédés de génération de nombres premiers comprennent une étape de génération d'un nombre aléatoire vo, et une étape dite de criblage consistant à effectuer une division du nombre aléatoire à tester vo, par de petits nombres premiers appartenant à une liste L préétablie. Le but d'une telle étape de criblage est d'écarter des nombres composites avant d'effectuer des tests de primalités nécessitants des ressources en calculs importantes par un composant électronique (remarquons que si le nombre à tester vo est détecté comme étant un nombre composite, on incrémente ledit nombre d'un pas fixe avant de réitérer l'exécution de l'étape de criblage sur le nombre vo incrémenté. Ainsi, on utilise toujours la même valeur de pas pour réaliser une telle incrémentation). En effet, les tests de primalités qui sont probabilistes tels le test de Rabin Miller, de Solovay-Strassen, ou de Lucas-Lehmer, ainsi que les tests de primalité déterministes comme le test AKS (pour « Agrawal-Kayal-Saxena ») nécessitent de mettre en oeuvre de nombreuses opérations qui sont relativement complexes, induisant une augmentation du temps d'obtention d'un nombre premier (cf. chapitre V « Primality Testing: An Overview » du document Dl correspondant au livre: « Number Theory : An Introduction via the Distribution of Primes », de B. Fine et al.). Cependant lorsque de tels procédés sont mis en oeuvre dans des composants électroniques, il s'avère que la collecte et le traitement de données physiques liés à l'exécution d'opérations réalisées par le composant électronique peuvent entraîner la divulgation d'informations, relatives au nombre premier généré, hors du composant électronique. Plus précisément, les attaques par canaux cachés, et notamment les attaques du type SPA (acronyme anglais de « Simple Power Analysis ») sont particulièrement efficaces vis-à-vis d'une implémentation de l'étape de criblage susmentionnée. En effet, le document D2 correspondant à l'article : « A new Bide channel attack on RSA prime generation », de T. Finke et al., publié dans les annales de la conférence CHES 2009, décrit une attaque permettant à un attaquant d'obtenir un nombre premier généré sur un composant électronique, en exploitant les informations relative au résultat des divisions réalisées au cours de l'étape de criblage susmentionnée.
Le document D2 décrit cependant différentes contre-mesures permettant d'éviter la réalisation d'une telle attaque (cf. §6 du document D2). Une première contre-mesure consiste à réaliser, lors de l'étape de criblage, une division du nombre à tester vo par tous les éléments de la liste L, même si un tel nombre est détecté comme étant un nombre composite au cours du parcours de la liste.
Une deuxième contre-mesure consiste à ne pas incrémenter le nombre vo, en cas de détection du fait que le nombre candidat vo est composite suite à l'exécution de l'étape de criblage, mais à en générer un nouveau nombre vo avant chaque exécution de ladite étape de criblage. Une troisième contre-mesure consiste à modifier le nombre vo à tester, au bout d'un certain nombre d'exécutions infructueuses de l'étape de criblage, en modifiant un certain nombre de bits du nombre vo choisis de manière aléatoire, via une opération de ou exclusif avec un aléa. Une quatrième contre-mesure consiste à établir, lors de la première exécution de l'étape de criblage pour un nombre à tester vo, une table comprenant les restes des divisions par les éléments de la liste L, et à mettre à jour cette table lors d'une étape de criblage réalisée ultérieurement. Un inconvénient de la première contre-mesure est que celle-ci dégrade de manière non-négligable le temps d'exécution de l'étape de criblage, et de facto celui du procédé de génération d'un nombre premier.
Un inconvénient de la deuxième contre-mesure est que celle-ci dégrade aussi de manière non-négligable le temps d'exécution du procédé de génération d'un nombre premier. Un inconvénient de la troisième contre-mesure est que celle-ci laisse à un attaquant la possibilité d'obtenir quelques bits d'informations sur le nombre premier généré. Un inconvénient de la quatrième contre-mesure est que l'utilisation d'une telle table nécessite des ressources mémoires qui ne sont pas toujours disponibles dans des composants électroniques de faibles capacités. Enfin, un autre inconvénient relatif à l'ensemble de ces contre-mesures est que celles-ci ne permettent pas de garantir une sécurisation d'un procédé de génération de nombres premiers forts comme spécifié, par exemple, dans la norme ANSI X9.31. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique.
Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique ayant pour effet de modifier les signaux électriques (ou magnétiques) produits lors de la réalisation d'un procédé de génération d'un nombre premier, afin d'empêcher la mise en oeuvre d'une attaque par canaux cachés. Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui ne nécessite pas l'utilisation et la mise à jour d'une table stockée dans une mémoire d'un composant électronique.
Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui ne divulgue pas, ou tend à réduire la divulgation de bits d'informations sur le nombre premier généré. Un objectif complémentaire d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui ne dégrade pas les performances d'exécution (d'un point de vue temporel) du procédé de génération d'un nombre premier. Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une technique permettant de générer de manière sécurisée des nombres premiers forts. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de génération sécurisé d'un nombre premier p, mis en oeuvre par un composant électronique, comprenant au moins une étape d'incrémentation par un pas a d'un nombre vo qualifié de composite. Un tel procédé de génération sécurisé est remarquable en ce qu'il comprend une étape de détermination d'un autre pas a' en fonction dudit pas a et d'un nombre aléatoire 6, et en ce que ladite étape d'incrémentation utilise ledit autre pas a' déterminé. Le principe général de l'invention consiste donc à modifier l'étape d'incrémentation mise en oeuvre dans un procédé de génération d'un nombre premier en déterminant un autre pas en fonction du pas qui était utilisé dans le procédé non sécurisé, et d'un nombre aléatoire. Un tel nombre aléatoire peut être soit généré à chaque exécution du procédé sécurisé, soit généré uniquement après un certain nombre d'exécution dudit procédé sécurisé. Ainsi, selon un mode de réalisation de l'invention, on incrémente le nombre vo qualifié de composite non plus d'un pas fixe a mais d'un pas a' fonction dudit pas a et d'un nombre aléatoire 6 .
Selon un aspect particulier de l'invention, ledit procédé de génération sécurisé comprend une étape de détermination qui délivre ledit autre pas suivant : a'= 6 .a . Ainsi, dans un mode de réalisation particulier de l'invention, l'étape de détermination délivre ledit autre pas a' en procédant à une multiplication du nombre aléatoire 6 et du pas a.
Selon un aspect particulier de l'invention, ledit procédé de génération sécurisé est remarquable en ce que ledit autre pas a' est premier avec ledit nombre vo à incrémenter. Ainsi, on évite de procéder à la réalisation d'une incrémentation dont le résultat, à savoir le nombre vo , serait un nombre composite. Selon un aspect particulier de l'invention, ledit procédé de génération sécurisé est remarquable en ce que ledit nombre premier p est un nombre premier fort, et en ce que, ledit pas a est un produit de deux nombres premiers pi, p2 respectivement d'une taille de kl bits et de k2 bits avec ki,k2 101.
Selon un aspect particulier de l'invention, ledit procédé de génération sécurisé est remarquable en ce qu'il comprend au moins une autre étape d'incrémentation pour laquelle un autre pas déterminé est utilisé. Selon un aspect particulier de l'invention, ledit procédé de génération sécurisé est remarquable en ce que chaque étape d'incrémentation utilise un autre pas déterminé.
Selon un aspect particulier de l'invention, ledit procédé de génération sécurisé est remarquable en ce que ledit nombre aléatoire 6 correspond à 2a où a est un nombre aléatoire non nul. Selon un aspect particulier de l'invention, ledit procédé de génération sécurisé est remarquable en ce que ledit nombre aléatoire a comprend 4 bits ou 2 bits d'entropie.
Selon un aspect particulier de l'invention, un tel procédé de génération sécurisé est remarquable en ce que chaque étape de criblage comprend une liste L distincte des autres listes. Selon un aspect particulier de l'invention, un tel procédé de génération sécurisé est remarquable en ce qu'il comprend une étape de détermination d'un élément Rp = [(p2-1 mod /9, ).p2 - (19,-1 mod p2).p,1 mod pipe Ainsi, la mise en oeuvre d'une telle étape de détermination par un composant électronique permet de renforcer la sécurité du procédé de génération car on ne procède plus à une étape de comparaison entre la valeur de Rp et la valeur zéro, stockées dans des registres du composant électronique, pouvant entraîner l'obtention, par un attaquant, d'un bit d'information.
Selon un aspect particulier de l'invention, un tel procédé de génération sécurisé comprend une étape de réalisation d'un test de primalité de Lucas-Lehmer ne procédant 9 pas au calcul du symbole de Jacobi - 12 0.) Selon une caractéristique particulière, un tel procédé de génération sécurisé comprend une étape de détermination du plus grand commun diviseur entre un nombre à tester et un exposant public e, effectuée après la réalisation d'au moins un test de Rabin-Miller et/ou de Lucas-Lehmer. Selon une caractéristique particulière, un tel procédé de génération sécurisé est remarquable en ce que les nombres ki et k2 sont choisis de sorte que k1 E [[101;121Jj et k2 e [[101;121Jj 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'à 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. 5. 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 procédé de génération d'un nombre premier selon l'état de la technique; - la figure 2 présente un procédé de génération d'un nombre premier fort selon l'état de la technique; - la figure 3 présente un procédé de génération sécurisé d'un nombre premier, selon un mode de réalisation de l'invention. - la figure 4 présente un procédé de génération sécurisé d'un nombre premier fort, selon un mode de réalisation de l'invention ; - La figure 5(a) représente, schématiquement, un dispositif de traitement de données dans lequel la présente invention est mise en oeuvre ; - La figure 5(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 5(a). 6. 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 procédé de génération d'un nombre premier selon l'état de la technique. Un tel procédé 100 nécessite d'instancier trois paramètres, k, L et a qui sont utilisés au cours de certaines étapes du procédé. Ces paramètres correspondent respectivement à la taille, en nombre de bits, du nombre premier à générer, à une liste comprenant des nombres premiers inférieur à une borne B définie au préalable (i.e L = a2,...,aN} où les nombres premiers a, vérifient la propriété suivante a, B pour i E [[1;Nil ), ainsi qu'à un pas selon lequel est incrémenté un nombre qualifié de composite. Plus précisément, le procédé de génération d'un nombre premier 100, mis en oeuvre dans un composant électronique, comprend une première étape 101 dans laquelle un nombre aléatoire vo, d'une taille de k-bits, est généré de sorte qu'il soit premier avec le pas a. L'objet de l'étape suivante 102 consiste à déterminer si le nombre vo résultant de l'exécution de cette première étape 101 est divisible par au moins un des éléments de la liste L. Ainsi, il suffit que la valeur du reste de la division euclidienne du nombre vo par un des éléments de la liste L, soit égal à zéro, pour que le nombre vo soit qualifié de composite. De manière classique, l'étape 102 comprend un traitement consistant à calculer de manière itérative le reste de la division euclidienne du nombre vo par un des éléments de la liste L choisi de manière séquentielle, dans l'ordre établi, et à arrêter le traitement itératif dès qu'un des restes obtenus est nul.
Lorsque le nombre vo est détecté comme étant un nombre composite, on incrémente, au cours d'une étape 103, la valeur de vo du pas déterminé a . Dès lors, la nouvelle valeur du nombre vo est la suivante : vo := vo + a . Puis on réitère l'exécution de l'étape 102. Lorsque que le nombre vo est premier avec chacun des éléments de la liste L, on exécute alors l'étape 104 qui comprend l'utilisation d'une pluralité de tests de primalité (par exemple en réalisant t itération d'un test de Rabin-Miller, où t est un nombre supérieur à 7). Dès que le composant électronique détecte qu'un des tests de Rabin Miller est négatif (au sens où, le nombre vo est détecté comme étant un nombre composite), alors on exécute l'étape 103 puis on réitère l'exécution de l'étape 102.
Si tous les tests de primalités exécutés sont positifs (au sens où, le nombre vo est détecté comme n'étant pas un nombre composite, avec une forte probabilité, dans le cas où l'on utilise uniquement des tests de primalité probabilistes), alors le composant électronique peut stocker ou transmettre le nombre premier vo ainsi généré à une entité de confiance. Il convient de remarquer qu'un tel procédé de génération est sensible aux attaques par canaux cachés comme cela est décrit dans le document D2. Notamment, l'étape 102 nécessite d'être protégée car, lorsque le composant électronique réalise une telle étape, il est possible d'exploiter les signaux électriques (ou magnétiques) résultant de l'exécution d'opérations comprise dans une telle étape. La figure 2 présente un procédé de génération d'un nombre premier fort selon l'état de la technique. Afin d'empêcher que l'algorithme de Pollard ou l'algorithme de Williams ne puissent être utilisés pour factoriser un modulus RSA N = p.q, il est recommandé de générer des nombres premiers p et q qui soient des nombres premiers forts. Il existe notamment un procédé de génération d'un nombre premier fort qui est décrit dans la norme ANSI X9.31. Un tel procédé nécessite d'instancier quatre paramètres, k, L, a et e qui sont utilisés au cours de certaines étapes du procédé. Ces paramètres correspondent respectivement à la taille, en nombre de bits, du nombre premier fort à générer, à une liste comprenant des nombres premiers inférieurs à une borne B définie au préalable (i.e L = a2,...,aN} où les nombres premiers a, vérifient la propriété suivante a, pour i E {1; NJ ), à un pas a selon lequel est incrémenté un nombre qualifié de composite, à un exposant public, utilisé dans le cadre du RSA (par exemple, une valeur de e = 216 +1 est habituellement usitée). Plus précisément, un tel procédé 200 nécessite de générer deux nombres premiers, pl et 192, chacun ayant une taille de 101 bits, en utilisant à chaque fois le procédé 100 décrit en relation avec la figure 1. Une étape 201 de détermination d'un nombre de base vo d'une taille de k-bits, en fonction des nombres premiers pl et 192 est alors exécuté à la suite de l'exécution de des deux étapes 100.
Plus précisément, l'étape 201 comprend : une étape de génération d'un nombre aléatoire Xp de k bits ; une étape de détermination d'un nombre Rp vérifiant l'égalité suivante : Rp = (p21mod p1). p2 - (pi-lmodp2).pi ; si Rp < 0 , alors on modifie la valeur de Rp de sorte que Rp = Rp PPP2 ; une étape de détermination d'un nombre de base vo défini par la relation suivante : vo = Xp + (Rp- Xp modpi.p2) ; si vo < XF, , alors on modifie la valeur de vo de sorte que vo = vo + pi.p2 Une fois le nombre de base vo d'une taille de k-bits obtenu, le composant électronique exécute une étape de criblage correspondant à l'étape 102. Cependant, le traitement de l'information au sortir de cette étape 102 est différent dans le contexte d'application du procédé 200. En effet, si le nombre vo s'avère être un nombre composite suite à la réalisation de l'étape 102, on incrémente, au cours d'une étape 204, la valeur de vo d'un pas a particulier égal à pi.p2. Dès lors, la nouvelle valeur du nombre vo est la suivante : vo := vo + pi.p2. Puis on réitère l'exécution de l'étape 102 dans le cadre de l'exécution du procédé 200. En revanche, lorsque le nombre vo n'est divisible par aucun élément de la liste L, on réalise alors une étape 203 qui consiste à déterminer si les nombres vo -1 et e sont premiers entre eux (il convient de remarquer que cette étape 203 n'est réalisée que dans le cadre du RSA). Si les nombres vo -1 et e ne sont pas premiers entre eux, on incrémente, au cours d'une étape 204, la valeur de vo d'un pas égal à pi.p2. Dès lors, la nouvelle valeur du nombre vo est la suivante : vo := vo + pi.p2. Puis on réitère l'exécution de l'étape 102 dans le cadre de l'exécution du procédé 200. En revanche, si les nombres vo -1 et e sont premiers entre eux, une étape 205 comprenant une pluralité de tests de primalité est alors exécutée à la suite de l'exécution de l'étape 203. Plus précisément, l'étape 205 comprend l'utilisation d'une pluralité de tests de Rabin-Miller et d'un test de Lucas-Lehmer. Dès que l'un de ces tests détecte que le nombre vo n'est pas premier, on incrémente, au cours d'une étape 204, la valeur de vo d'un pas égal à pi.p2. Dès lors, la nouvelle valeur du nombre vo est la suivante : vo := vo + pi.p2. Puis on réitère l'exécution de l'étape 102 dans le cadre de l'exécution du procédé 200. Si tous les tests de primalité ont été réalisés sans que le nombre vo ait été déterminé comme étant un nombre composite, alors le nombre vo ainsi obtenu est un nombre premier fort.
La figure 3 présente un procédé de génération sécurisé d'un nombre premier, selon un mode de réalisation de l'invention. Ainsi, la sécurisation du procédé de génération d'un nombre premier tel que décrit en relation avec la figure 1 consiste à modifier l'étape de génération 101 en une étape de génération modifiée 301 dans laquelle le nombre aléatoire vo généré est aussi premier avec le nombre 2, et à modifier l'étape d'incrémentation 103 en une étape d'incrémentation sécurisée dans laquelle on utilise un autre pas a' déterminé en fonction d'un nombre aléatoire 6 = 2al où ai est un nombre aléatoire non nul, et du pas a . Ainsi, dans ce mode de réalisation, le pas modifié a' correspond à ri.a (dans un mode de réalisation préférentiel, le nombre aléatoire ai comprend 4 bits (i.e il possède une entropie de 4 bits)). De par le fait que, lors de l'étape 301, le nombre vo a été choisi de sorte qu'il soit premier avec le pas a ainsi qu'avec le nombre 2, on a nécessairement gcd( a' ,v0) = 1 (il convient de remarquer que, dans un autre mode de réalisation où l'on utilise un nombre aléatoire n'étant pas une puissance de 2, il est nécessaire de réaliser la détermination du plus grand commun diviseur entre le nombre vo et le nombre aléatoire Ô avant de réaliser l'incrémentation du nombre vo). Il convient de noter que, en fonction de l'entropie du nombre aléatoire ai , ledit nombre aléatoire doit être modifié plus ou moins fréquemment lors de l'itération de l'étape 303 au sein du procédé 300. En effet, plus l'entropie du nombre aléatoire ai est petite, et plus il est nécessaire de modifier fréquemment le nombre aléatoire ai lors de l'itération des étapes 102 et 303. A contrario, lorsque l'entropie du nombre aléatoire ai est grande, il n'est pas nécessaire de modifier le nombre aléatoire ai à chaque itération des étapes 102 et 303. La modification ne peut intervenir qu'au bout d'un certain nombre d'itération de ces étapes au sein du procédé 300.
Ensuite, on procède à l'incrémentation du nombre vo par cet autre pas déterminé au cours d'une étape d'incrémentation 303. Ces étapes de détermination d'un autre pas, et d'incrémentation du nombre vo sont aussi réalisées en cas de détection, par un test de primalité, du fait que le nombre vo est un nombre composite.
La figure 4 présente un procédé de génération sécurisé d'un nombre premier fort, selon un mode de réalisation de l'invention. Un tel procédé nécessite d'instancier huit paramètres k, k,, L1, , k2, L2, a2, L3, et e, qui seront utilisés au cours de certaines étapes du procédé.
Les listes L1, L2 et L3 correspondent à des listes de nombres premiers utilisés lors des étapes de criblage utilisées au cours de la réalisation du procédé de génération sécurisé d'un nombre premier fort 400, et les pas al et a2 correspondent à des pas utilisés dans les étapes 100 ou 300 dudit procédé 400. Le paramètre e correspond à un exposant public pour le cryptosystème RSA, et les paramètre k, k, et k2 correspondent respectivement aux tailles en nombre de bits du nombre premier fort p, et aux nombres premiers pi et 2 à générer. Dans ce mode de réalisation particulier de l'invention, les nombres premiers pi et 2 n'ont pas une taille fixe (à savoir 101 bits comme dans le procédé 200), mais ils peuvent être choisis en fonction de critère de sécurité particuliers. Dans un mode de réalisation particulier de l'invention, la sécurisation du procédé de génération d'un premier fort tel que décrit en relation avec la figure 2 consiste à mettre en oeuvre le procédé 300 pour l'une des deux (voire pour les deux) étapes de génération d'un nombre premier pl ou 2 , à modifier l'étape de détermination d'un nombre Rp au sein de l'étape de détermination d'un nombre de base vo en la remplaçant par une autre étape de détermination du nombre Rp vérifiant Rp =[(p2-1 mod mod p2 ).p,1 mod p,p2 (on obtient alors une nouvelle étape de détermination d'un nombre de base vo 401 permettant d'empêcher la fuite, par un composant électronique mettant en oeuvre le procédé 400, d'un bit d'information secrète), et à modifier l'étape d'incrémentation 204 en une l'étape d'incrémentation sécurisée 404 dans laquelle on utilise un autre pas a' déterminé en fonction d'un nombre aléatoire 6 = 2a2 où 62 est un nombre aléatoire non nul, et d'un pas a = PiP2 Dans ce mode de réalisation, on détermine cet autre pas a' en multipliant le nombre aléatoire et ledit pas. Ainsi, on obtient a' =2(52 P1 P . 2 - Il convient de noter que, en fonction de l'entropie du nombre aléatoire 62 , ledit nombre aléatoire doit être modifié plus ou moins fréquemment lors de l'itération de l'étape 404 au sein du procédé 400. En effet, plus l'entropie du nombre aléatoire 62 est petite, et plus il est nécessaire de modifier fréquemment le nombre aléatoire 62 lors de l'itération des étapes 202 et 404. A contrario, lorsque l'entropie du nombre aléatoire 62 est grande, il n'est pas nécessaire de modifier le nombre aléatoire 62 à chaque itération des étapes 202 et 404. La modification ne peut intervenir qu'au bout d'un certain nombre d'itération de ces étapes au sein du procédé 400. Il convient aussi de noter que, dans l'étape 401, l'étape de détermination d'un nombre vo comprend en outre, un test de parité dudit nombre vo déterminé. Si le nombre vo est pair, alors, on incrémente ledit nombre vo d'un pas a = P1P2. Dans un mode de réalisation particulier, le nombre aléatoire 62 non nul comprend 2 bits choisis de manières aléatoires. Ainsi, le nombre aléatoire 62 possède une entropie de deux bits. Par conséquent, dans ce mode de réalisation, il est préférable d'obtenir un nouveau nombre aléatoire 62 à chaque itération de l'étape 404. Dans un mode de réalisation particulier de l'invention (non présenté dans les figures), l'étape 203 est réalisée après l'étape 405 et non avant l'étape 405. Ce mode de réalisation est particulièrement avantageux lorsque l'exposant public e = 216 + 1. Dans un mode de réalisation particulier les listes L1, L2 et L3 n'ont pas des tailles identiques, et ne comprennent pas, dès lors les mêmes nombres premiers. Dans un autre mode de réalisation, dans l'étape 405, dans laquelle une pluralité de tests de primalité (à savoir t tests de Rabin Miller et un test de Lucas-Lehmer) est réalisée, le procédé ne détermine pas la valeur du symbole de Jacobi -9 puisqu'on ne 9 0 peut pas avoir = -1. De plus, le fait d'éluder de cette manière, la réalisation du calcul du symbole de Jacobi -9 permet d'empêcher qu'un éventuel attaquant ne aux fins obtenir des informations aux fins de la mise en oeuvre d'une attaque par canaux cachés.
La figure 5(a) représente, schématiquement, un dispositif de traitement de données 540 dans lequel la présente invention est mise en oeuvre. Ce dispositif 540 comprend un microprocesseur 510, auquel est associée d'une part une mémoire vive 560, par exemple au moyen d'un bus 570, et d'autre part une mémoire non volatile 520 (par exemple du type EEPROM), par exemple à travers un bus 550.
Le dispositif de traitement de données 540, et précisément le microprocesseur 510 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 530. On a schématiquement représenté sur la figure 5(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 530 au microprocesseur 510. De manière similaire, on a représenté la transmission d'une donnée de sortie Y du microprocesseur 510 vers l'interface de communication 530 à destination d'un dispositif extérieur. Cette donnée de sortie Y est issue d'un traitement de données par le microprocesseur 510, généralement sur la donnée d'entrée X à l'aide d'une donnée secrète 580 interne au système, par exemple une clé privée, ou un nombre aléatoire. Les données d'entrée X sont par exemple des commandes APDU, et les données de sortie des réponses APDU. 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 510 et l'interface 530 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 510 est apte à exécuter un logiciel (ou programme d'ordinateur) qui permet au dispositif de traitement de données 540 d'exécuter un procédé conforme à l'invention dont des exemples sont donnés en regard des figures 3 et 4. Ce procédé est par exemple exécuté par 540 sur réception des données d'entrée X. Les données du procédé selon l'invention (à savoir par exemple la valeur d'une taille k, ou la valeur d'un exposant public e, ou une commande spécifiant la génération d'un nombre premier) peuvent être obtenus à partir des données d'entrée ou, pour certains paramètres comme une liste de nombre premiers à partir de la mémoire non volatile 520. Les données de sorties sont par exemple obtenues à partir du résultat du procédé selon l'invention. Une telle donnée de sortie peut être soit une information relative à la réussite de la génération d'un nombre premier, ou la transmission du nombre premier généré lui-même, dans le cas de figure où le dispositif extérieur est considéré comme sûr. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 10 qui sont par exemple stockées dans la mémoire 20.
Dans une variante, l'ensemble microprocesseur 510 - mémoire non-volatile 520 mémoire vive 560 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 5(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 5(a). L'interface de communication 530 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 510, une mémoire vive 560 et une mémoire non volatile 520 comme cela est représenté sur la figure 5(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) 520 et la mémoire vive 560.
Les données d'entrée X sont par exemple des commandes APDU, et les données de sortie des réponses APDU. Dans une variante, le dispositif de traitement de données peut être une clef 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 , « side channel attacks »). En particulier, le dispositif est conforme à la norme FIPS ou aux critères communs.30

Claims (15)

  1. REVENDICATIONS1. Procédé de génération sécurisé d'un nombre premier p, mis en oeuvre par un composant électronique, comprenant au moins une étape d'incrémentation par un pas a d'un nombre vo qualifié de composite, ledit procédé de génération sécurisé étant caractérisé en ce qu'il comprend une étape de détermination d'un autre pas a' en fonction dudit pas a et d'un nombre aléatoire Ô , et en ce que ladite étape d'incrémentation utilise ledit autre pas a' déterminé.
  2. 2. Procédé de génération sécurisé selon la revendication 1, caractérisé en ce que ladite étape de détermination délivre ledit autre pas suivant : a' = 6 .a .
  3. 3. Procédé de génération sécurisé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ledit autre pas a' est premier avec ledit nombre vo à incrémenter.
  4. 4. Procédé de génération sécurisé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit nombre premier p est un nombre premier fort, et en ce que, ledit pas a est un produit de deux nombres premiers pi, p2 respectivement d'une taille de kl bits et de k2 bits avec kp k2 101.
  5. 5. Procédé de génération sécurisé selon la revendication 4, caractérisé en ce qu'il comprend au moins une autre étape d'incrémentation pour laquelle un autre pas déterminé est utilisé.
  6. 6. Procédé de génération sécurisé selon la revendication 4 caractérisé en ce que chaque étape d'incrémentation utilise un autre pas déterminé.
  7. 7. Procédé de génération sécurisé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ledit nombre aléatoire 6 correspond à 2a où a est un nombre aléatoire non nul.
  8. 8. Procédé de génération sécurisé selon la revendication 7 caractérisé en ce que ledit nombre aléatoire o comprend 4 bits ou 2 bits d'entropie.
  9. 9 . Procédé de génération sécurisé selon l'une quelconque des revendications 1 à 8 caractérisé en ce que chaque étape de criblage comprend une liste L distincte des autres listes.
  10. 10. Procédé de génération sécurisé selon la revendication 4, caractérisé en ce qu'il comprend une étape de détermination d'un élément Rp =[(P2-1 mod 191).P 2 - (191-1 mod P2).Pilmod PiP 2 -
  11. 11. Procédé de génération sécurisé selon l'une quelconque des revendications 1 à 10, caractérisé en ce qu'il comprend une étape de réalisation d'un test de primalité de Lucas-Lehmer ne procédant pas au calcul du symbole de Jacobi 9 0 , ,
  12. 12. Procédé de génération sécurisé selon la revendication 4 caracterise en ce qu'il comprend une étape de détermination du plus grand commun diviseur entre un nombre à tester et un exposant public e, effectuée après la réalisation d'au moins un test de Rabin- Miller et/ou de Lucas-Lehmer.
  13. 13. Procédé de génération sécurisé selon la revendication 4 caractérisé en ce que les nombres kl et k2 soient choisis de sorte que k1 E [[101;12 q et k2 E [[101;12 .
  14. 14. Produit programme d'ordinateur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé selon au moins une des revendications 1 à 13 lorsque ledit programme est exécuté sur un ordinateur.
  15. 15. Composant électronique comportant des moyens adaptés à la mise en oeuvre du procédé conforme à l'une quelconque des revendications 1 à 13.20
FR1251371A 2012-02-14 2012-02-14 Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants Pending FR2986883A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1251371A FR2986883A1 (fr) 2012-02-14 2012-02-14 Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants
FR1351288A FR2986884B1 (fr) 2012-02-14 2013-02-14 Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1251371A FR2986883A1 (fr) 2012-02-14 2012-02-14 Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants

Publications (1)

Publication Number Publication Date
FR2986883A1 true FR2986883A1 (fr) 2013-08-16

Family

ID=48856726

Family Applications (2)

Application Number Title Priority Date Filing Date
FR1251371A Pending FR2986883A1 (fr) 2012-02-14 2012-02-14 Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants
FR1351288A Active FR2986884B1 (fr) 2012-02-14 2013-02-14 Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants

Family Applications After (1)

Application Number Title Priority Date Filing Date
FR1351288A Active FR2986884B1 (fr) 2012-02-14 2013-02-14 Procede de generation securise d'un nombre premier, produit programme d'ordinateur et composant electronique correspondants

Country Status (1)

Country Link
FR (2) FR2986883A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2946207A1 (fr) * 2009-05-28 2010-12-03 Proton World Internat Nv Protection d'une generation de nombres premiers pour algorithme rsa

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2946207A1 (fr) * 2009-05-28 2010-12-03 Proton World Internat Nv Protection d'une generation de nombres premiers pour algorithme rsa

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MANINDRA AGRAWAL ED - SOMA CHAUDHURI ET AL: "Primality Tests Based on Fermat's Little Theorem", 1 January 2007, DISTRIBUTED COMPUTING AND NETWORKING LECTURE NOTES IN COMPUTER SCIENCE;;LNCS, SPRINGER, BERLIN, DE, PAGE(S) 288 - 293, ISBN: 978-3-540-68139-7, XP019052755 *
PIERRE-ALAIN FOUQUE ET AL: "Close to Uniform Prime Number Generation With Fewer Random Bits", INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH,, vol. 20110908:103322, 6 September 2011 (2011-09-06), pages 1 - 12, XP061005241 *
SONG Y YAN ET AL: "Testing Mersenne Primes with Elliptic Curves", 1 January 2006, COMPUTER ALGEBRA IN SCIENTIFIC COMPUTING LECTURE NOTES IN COMPUTER SCIENCE;;LNCS, SPRINGER, BERLIN, DE, PAGE(S) 303 - 312, ISBN: 978-3-540-45182-2, XP019049632 *

Also Published As

Publication number Publication date
FR2986884B1 (fr) 2022-05-27
FR2986884A1 (fr) 2013-08-16

Similar Documents

Publication Publication Date Title
EP2791783B1 (fr) Procédé de génération de nombres premiers prouvés adapté aux cartes a puce
EP2296086B1 (fr) Protection d&#39;une génération de nombres premiers contre des attaques par canaux cachés
EP3117555B1 (fr) Procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie sur une courbe elliptique
FR3015080A1 (fr) Verification d&#39;integrite de paire de cles cryptographiques
EP1804161B1 (fr) Détection de perturbation dans un calcul cryptographique
EP1832974A1 (fr) Protection EMA d&#39;un calcul par un circuit électronique
CA2732444A1 (fr) Circuit integre protege contre une analyse par canal auxiliaire horizontale
WO2007006810A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
FR2838210A1 (fr) Procede cryptographique protege contre les attaques de type a canal cache
EP3435585B1 (fr) Protection d&#39;un calcul itératif contre des attaques horizontales
FR2986883A1 (fr) Procede de generation securise d&#39;un nombre premier, produit programme d&#39;ordinateur et composant electronique correspondants
FR3004042A1 (fr) Procedes de generation et d&#39;utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt
FR3047327A1 (fr) Procede d&#39;execution de calcul cryptographique et application a la classification par machines a vecteurs de support
EP3482524B1 (fr) Procédé de génération des paramètres caractérisant un protocole cryptographique
FR3015076A1 (fr) Generation de cles cryptographiques
FR3015079A1 (fr) Verification d&#39;integrite de paire de cles cryptographiques
FR2985337A1 (fr) Procede de calcul cryptographique resilient aux attaques par injection de fautes, produit programme d&#39;ordinateur et composant electronique correspondant.
FR2994608A1 (fr) Procede de traitement cryptographique comprenant un acces securise a une pluralite de tables de substitution, dispositifs et produit programme d&#39;ordinateur correspondants.
WO2015132524A2 (fr) Génération de message pour test de génération de clés cryptographiques
FR2985128A1 (fr) Procede de determination de la valeur de u = 2^r mod n, avec 2^r &gt; r ou r est une constante de montgomery.
EP2544398B1 (fr) Procédé de calcul de fonctions d&#39;encodage dans une coubre elliptique et coprocesseur cryptographique correspondant
FR2998692A1 (fr) Procede de traitement cryptographique comprenant des operations booleennes sur des donnees masquees de maniere arithmetique, dispositifs et produit programme d&#39;ordinateur correspondants
FR2984551A1 (fr) Procede de generation de nombres premiers prouves adapte aux cartes a puce
EP3614617A1 (fr) Procédé et dispositif de génération de paramètre(s) d&#39;un protocole cryptographique asymétrique à partir d&#39;une blockchain, procédé et appareil de cryptage ou de décryptage et programme d&#39;ordinateur associés
FR2984548A1 (fr) Procede de generation de nombres premiers prouves adapte aux cartes a puce