FR2827722A1 - Procede de generation de cles electroniques pour la mise en oeuvre d'un algorithme crytographique,carte a puce mettant en oeuvre le procede - Google Patents

Procede de generation de cles electroniques pour la mise en oeuvre d'un algorithme crytographique,carte a puce mettant en oeuvre le procede Download PDF

Info

Publication number
FR2827722A1
FR2827722A1 FR0109817A FR0109817A FR2827722A1 FR 2827722 A1 FR2827722 A1 FR 2827722A1 FR 0109817 A FR0109817 A FR 0109817A FR 0109817 A FR0109817 A FR 0109817A FR 2827722 A1 FR2827722 A1 FR 2827722A1
Authority
FR
France
Prior art keywords
value
key cryptography
public key
algorithm
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0109817A
Other languages
English (en)
Other versions
FR2827722B1 (fr
Inventor
Christophe Clavier
Nathalie Feyt
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.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus 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 Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Priority to FR0109817A priority Critical patent/FR2827722B1/fr
Priority to PCT/FR2002/002450 priority patent/WO2003010921A1/fr
Publication of FR2827722A1 publication Critical patent/FR2827722A1/fr
Application granted granted Critical
Publication of FR2827722B1 publication Critical patent/FR2827722B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne la génération de clés électroniques pour la mise en oeuvre d'un algorithme cryptographique. Selon l'invention, la génération consiste à fournir au moins une clé de taille 1 suffisante pour assurer la sécurité requise (1 >= kbits, k = 64 bits ou 512 bits selon que l'algorithme est un algorithme à clé privée ou publique), ladite clé comprenant une partie correspondant à une valeur v prise parmi un nombre défini de valeurs générées par un générateur aléatoire et une partie f correspondant à une valeur fixe. Application à la cryptographie.

Description

<Desc/Clms Page number 1>
PROCEDE DE GENERATION DE CLES ELECTRONIQUES POUR LA MISE EN OEUVRE D'UN ALGORITHME CRYPTOGRAPHIQUE, CARTE A
PUCE METTANT EN OEUVRE LE PROCEDE.
L'invention concerne un procédé de génération de clés électroniques bas coût en temps de calcul et en espace mémoire. Elle concerne également les algorithmes cryptographiques utilisant le procédé de génération de clés proposé.
Elle concerne également les produits de chiffrement pour la mise en oeuvre du procédé, ces produits peuvent être des dispositifs tels que notamment les cartes à puce.
Afin de simplifier le propos on parlera dans la suite de carte à puce étant bien entendu que l'invention s'applique à tout produit apte à effectuer des opérations de chiffrement déchiffrement.
L'invention s'applique tout particulièrement à la réalisation de cartes à puces livrées ou utilisées à des fins de démonstrations sur un lieu public (sur un salon par exemple) ou chez un client (pour une démonstration commerciale) et susceptibles d'effectuer des opérations de cryptographie.
La carte à puce démonstration doit dans l'idéal fournir toutes les fonctions standards offertes par un protocole de cryptographie à clé publique ou à clé secrète.
On rappelle qu'un protocole de cryptographie à clé publique permet le chiffrement d'informations et/ou l'authentification entre deux entités et/ou la signature électronique de messages. On peut citer à titre d'exemple des protocoles de cryptographie à clé publique tels que le protocole RSA (Rivest Shamir et Adelman), El Gamal, Schnorr, Fiat Shamir.
<Desc/Clms Page number 2>
On rappelle également qu'un protocole de cryptographie à clé privée permet des opérations d'authentification et ou de chiffrement. On peut citer à titre d'exemple l'algorithme DES (Data Encryption Standard).
De nombreuses législations et en particulier la loi française a introduit des restrictions quant aux exportations des produits de chiffrement en imposant qu'une déclaration d'exportation d'un algorithme cryptographique soit faite dès lors que la taille des clés utilisées est supérieure à 40 bits et inférieure ou égale à 128 bits. La loi impose outre, que dans le cas où la taille des clés est supérieure à 128 bits, une demande de licence d'exploitation soit faite également.
La loi s'applique à tous produits permettant de réaliser des opérations cryptographiques y compris à des produits livrés à des fins de démonstration ou d'essai, à des produits échantillons qui vont permettre à un client potentiel de tester le produit dans toutes ses fonctionnalités.
Or toutes ces démarches sont longues et très contraignantes étant donné le contexte qui vient d'être présenté. Afin d'éviter ces démarches administratives, la solution offerte aujourd'hui pour la réalisation de ces cartes de démonstration est de limiter les fonctionnalités cryptographiques et de fournir un échantillon qui malheureusement n'est pas le reflet du produit dont disposera le client.
L'invention a pour but de remédier à ce problème.
L'invention propose la réalisation de produits de chiffrement notamment de cartes à puce, susceptibles de mettre en oeuvre toutes les fonctions d'un algorithme à clé publique ou à clé privée utilisant les longueurs de clés requises, mais dans lequel les clés utilisées peuvent être retrouvées par une autorité à la quelle on remet le procédé qui a permis de les générer. Dans ce
<Desc/Clms Page number 3>
cas bien sûr les clés n'ont pas le niveau de sécurité qui est habituellement recherché dans les conditions de fonctionnement standard. Par contre, l'échantillon présentant de tels moyens sera fonctionnel et fournira un reflet fidèle du produit.
A cette fin l'invention propose un procédé de génération de clés électroniques pour la mise en oeuvre d'un algorithme cryptographique, principalement caractérisé en ce qu'elle consiste à fournir au moins une clé de taille l suffisante pour assurer la sécurité requise (1 > : kbits), ladite clé comprenant une partie correspondant à une valeur v prise parmi un nombre défini de valeurs et une partie f correspondant à une valeur fixe.
Selon une caractéristique de l'invention, la partie correspondant à une valeur v, a une taille r courte par rapport à la taille l de la clé, cette valeur étant générée de façon aléatoire.
Lorsque le procédé de génération de clés électroniques est utilisé pour algorithme de cryptographie à clé publique (du type RSA), la clé générée constitue au moins un paramètre p ou q de l'algorithme.
Selon une autre caractéristique, deux clés sont générées et constituent respectivement les paramètres p et q de l'algorithme, chaque paramètre comprenant une valeur aléatoire distincte respectivement vl, v2.
Selon une autre caractéristique, un des paramètres p de l'algorithme correspond à la clé générée et comprend une partie correspondant à une valeur aléatoire v, l'autre paramètre comprend une partie avec une valeur c. v, multiple de la valeur aléatoire v, a étant un entier positif.
Dans le cas où oye=1, p et q s'expriment par les re-
Figure img00030001

lations suivantes : p = v * 2k-r + 1
<Desc/Clms Page number 4>
q = 3 * v * 2k-r-l+ 1
Dans le cas où a=2, on inverse le rôle de p et q dans l'algorithme de cryptographie, ceux-ci s'exprimant alors par les relations suivantes : q = v * 2k-r p = 3 * v * 2 k-r-2+ 1
L'invention concerne également un procédé de cryptographie à clé publique utilisant des paramètres p et q générés comme cela vient d'être décrit, principalement caractérisé en ce qu'il consiste : à calculer le module public n par la relation : n = p * q, à choisir la valeur de l'exposant privé d et à calculer l'exposant public e.
Avantageusement, la valeur de l'exposant privé est choisie de manière à être inférieure aux paramètres p et q et de manière à être premier avec 2,3 et v.
Selon une autre caractéristique, la valeur de d est choisie de manière à pouvoir s'exprimer selon la relation suivante : d = 2a+ 1
Selon une autre caractéristique, l'exposant public e est défini par la relation suivante : e = 1/d mod (p-l) (q-l) qui peut s'exprimer également sous la forme : e = A/d mod A (p*q), correspondant à une opération d'inverse modulaire susceptible d'être précalculée.
Figure img00040001
Lorsque les valeurs de d et de A sont connues, la valeur de e peut alors être calculée par la relation : e = [-liA mod d * À+l]/d
Dans ce cas, le paramètre public e est calculé alors par une opération d'exponentiation définie par la relation suivante :
<Desc/Clms Page number 5>
e = À mod d, et stocké.
Avantageusement, on choisit une valeur pour la clé privée d petite, 8 kbits maximum, mod d étant également faible, et on calculez mod d par une suite de multiplications avec c. v, le résultat étant stocké.
Selon une un mode de réalisation on calcule la valeur-1/À mod d *3 * v et on la stocke.
Pour les valeurs de v pour lesquelles - 1/Ì\. mod d = 1, et le paramètre d est un nombre premier de valeur faible inférieure à 257, la valeur de e peut alors être calculée par la relation : e = (À+l)/d.
Avantageusement avec des clés définies précédemment, le paramètre e comporte un préfixe a fonction de v, un mot y fixe, un mot z fixe, ce préfixe peut alors être pré-calculé pour chaque valeur de v et stocké, les mots y et z étant également stockés.
Cette opération est largement simplifiée puisque lorsque a=l, Ip c'est à dire 1/p (modq) =3, cette valeur peut être stockée et lorsque a=2, Ip=5, cette valeur est stockée.
L'invention concerne également un procédé de cryptographie à clé privée utilisant la génération de clés selon l'invention, la clé générée étant la clé privée de l'algorithme, la valeur v étant générée aléatoirement.
Avantageusement, la partie fixe ne comprend que des zéros.
D'autres particularités et avantages de l'invention apparaîtront clairement à la lecture de la description qui est faite ci-après et qui est donnée à titre d'exemple non limitatif et en regard des dessins annexés sur lesquels :
<Desc/Clms Page number 6>
la figure la, représente une clé électronique générée conformément au procédé de l'invention, la figure lb, représente un mode préféré pour la forme de la clé, les figures 2 à 5, représentent les différents paramètres dans le cas de l'application de la génération de clé selon l'invention à l'algorithme DSA,
La figure 6, représente une clé dans le cas de l'application de la génération de clé selon l'invention à l'algorithme à clé secrète DES.
La figure 7, illustre le schéma de principe d'un micromodule implémenté dans une carte à puce apte à mettre en oeuvre un procédé de cryptogra- phie utilisant la génération de clés selon l'invention.
On va rappeler dans ce qui suit le procédé de génération de clés selon l'état de la technique dans le cas d'un algorithme à clé publique et plus particulièrement dans le cas de l'algorithme RSA. l) L'exposant public e :
Il est commun à tous les utilisateurs et est don- né. Cet exposant est indépendant de la clé se- crète.
2) Les paramètres p et q :
Ils sont générés, ont la même longueur (même taille) pour optimiser la sécurité qui est de k bits soit en général 512 bits.
3) n est le module public et est calculé : n = p*q.
4) les paramètres e et n forment la clé publique.
5) la clé privée d est calculée : d = l/e [mod (p-l) (q-l)] ; (l/e= e)
<Desc/Clms Page number 7>
6) forme normale de la clé privée : (d, n)
6) forme CRT de la clé privée : dans cas la clé privée comporte 5 paramètres :
P, q dp avec dp = d mod (p-1) dq avec dq = d mod (q-1)
Ip avec Ip = P'modq.
L'invention concerne donc un procédé de génération de clés électroniques pour la mise en oeuvre d'un algorithme cryptographique permettant de fournir une clé fonctionnelle de taille k bits, ladite clé peut être retrouvée facilement par un organisme tiers auquel ce procédé de génération de clés a été fourni.
Dans le cas ou il s'agit d'un algorithme asymétrique de type RSA, la clé générée constitue au moins un des deux nombres premiers p et q du module N du RSA.
Dans ce cas la clé générée est générée à partir d'une valeur aléatoire r de taille k.
La ou les clés générées restent fonctionnelles pour des opérations de chiffrement ou de signature.
Les clés générées sont générées de manière à être à être cryptographiquement faibles, c'est à dire facilement retrouvées par un tiers.
Le procédé s'applique à tout produit de chiffrement, logiciel ou non, comportant des clés de taille longue (supérieures à 128 bits) potentiellement soumises à des restrictions d'utilisation, de par la loi du pays où ce produit serait développé ou vendu.
Le procédé s'applique à des cartes à microprocesseurs ou cartes à puce.
Le procédé a l'avantage de réduire considérablement le temps de génération des clés. Il permet
<Desc/Clms Page number 8>
d'optimiser les ressources-mémoires, processeur mathématique-nécessaires à la génération des clés.
Comme on va le voir de manière détaillée dans la suite, selon l'invention on génère p et q, on fixe la clé privée d et on calcule l'exposant public e (au lieu de fixer e et calculer d comme dans le cas qui vient d'être rappelé).
La figure la représente une clé générée conformément à l'invention. Cette clé comporte une partie comprenant une valeur prise parmi un ensemble déterminé de valeurs possibles. La clé comporte également une valeur fixe f de manière à ce que la longueur de la valeur v et de la valeur fixe f correspondent à une longueur l de kbits couramment utilisée dans un algorithme de cryptographie.
Par exemple dans le cas d'un algorithme à clé publique, cette longueur de clé sera de préférence supérieure ou égale à 512 bits.
Dans le cas d'un algorithme à clé secrète la clé aura une longueur l de 64 bits, par exemple. C'est le cas de l'algorithme DES. La partie v de la clé a une longueur r courte par rapport à la longueur totale l de la clé. Ceci permet de définir toutes les valeurs possibles que peut prendre cette partie v.
La figure 1b illustre un mode de réalisation préférée pour la clé générée selon le procédé. La partie v est générée par un générateur de valeurs aléatoires, tandis que la partie fixe f sera constituée de préférence majoritairement de zéro.
Dans le cas d'un algorithme à clé publique tous les bits de la partie fixe seront à 0 sauf le bit du poids le plus faible qui prendra une valeur i=l.
<Desc/Clms Page number 9>
Dans le cas, comme on le verra dans la fin de la description, d'un algorithme à clé privée, cette partie f sera constituée de zéro, i étant alors à 0.
On va s'intéresser dans la suite pour illustrer la génération de clés selon l'invention, à son application à un algorithme à clé publique, comme par exemple l'algorithme RSA.
Dans la mise en oeuvre de cet algorithme on considère les paramètres p et q, ces paramètres étant ceux qui vont être générés selon l'invention. Ainsi le paramètre p est une clé de la forme de celle qui est illustrée par la figure lb et le paramètre q est une clé qui a également cette forme. Cependant selon un mode préféré de réalisation, la valeur v2 est choisie égale à c*v, c=3. On peut dire que cette valeur v2 n'est pas une valeur aléatoire dans ce cas, cependant v reste une valeur aléatoire. La taille v2 du paramètre q n'est plus égale à r, mais à r+a. a est égal à 1 ou à 2 selon la valeur de v.
Dans un procédé cryptographique à clé publique on détermine le paramètre n qui est le module public. Le paramètre n est égal au produit des nombres premiers p et q. Par conséquent, selon que a sera égal à 1 ou à 2, le paramètre n pourra être représenté tel que l'illustre les figures 3 et 4.
Dans le cas où a=l, n comprend une partie corres-
Figure img00090001

2 pondant à 3v, une partie comprenant que des zéros, une partie correspondant au produit 5v et une partie comprenant que des zéros avec le bit de poids le plus faible égal à 1 si, bien sûr on conserve le mode préféré de réalisation illustré par la figure 2 pour le choix des paramètres p et q.
La partie 3V2 a une taille égale à 2r+l.
<Desc/Clms Page number 10>
Dans le cas de la figure 4, c'est-à-dire pour a=2 on retrouve la même première partie qui est le produit 3V2 de taille 2r+1. La différence vient de la partie non nulle qui est égale à 7v au lieu de 5v pour la figure 3.
Dans l'algorithme de cryptographie mis en oeuvre, pour le cas où a=2, on va inverser le rôle de p et q, de manière à simplifier les calculs du paramètre Ip comme détaillé dans la suite.
Le procédé consiste ensuite à fixer la valeur de l'exposant privé d, contrairement à ce qui se fait habituellement dans la mise en oeuvre d'un algorithme cryptographique RSA classique. Le procédé de cryptographie comprend dans ce cas uniquement une étape de vérification des conditions habituelles pour cet exposant privé, c'est-à-dire que d doit être premier avec les paramètres p et q et inférieur à ces paramètres. d doit être premier avec 2,3 et v dans le cas présent.
Selon un exemple préféré on va choisir une valeur d pouvant s'exprimer par une puissance de 2, c'est-àdire d=2a +1 afin de simplifier les calculs comme on va le voir dans la suite, et en particulier le calcul de l'exposant public e. En effet, dans l'algorithme de cryptographie qui découle de la présente invention, l'exposant public e est calculé.
Dans le cas, comme on vient de le voir, où d est une puissance de 2, le paramètre dp est égal à d, d bien sûr est plus petit que p, et le paramètre dq est également égal à d si d est inférieur à q.
On rappelle que d est défini par la relation suivante : d=l/e modulo (p-1) (q-1) et on cherche à calculer e qui est donc égal à 1/d modulo (p-1) (q-l).
<Desc/Clms Page number 11>
Dans les deux cas de figures on a une opération de calcul d'inverse modulaire. On peut bien entendu calculer cette valeur e en mettant en oeuvre l'algorithme d'Euclide étendu si on dispose de moyens de calcul puissants ce qui peut être le cas si cette valeur est précalculée en dehors d'une carte à puce par exemple.
Une autre méthode est proposée dans ce qui suit, cette méthode utilise la formule d'Arazi, cette formule permettant de calculer une fonction 1/b modulo c, dans la mesure où on sait calculer 1/c modulo b.
En effet, en appliquant la formule d'Arazi on peut exprimer e de la manière suivante : e = 1/d modulo A (p*q) qui est encore égal à : (-1/À module d*À+l)/d.
À (p*q) est égal à (p-l) * (q-l) sur le plus grand commun de diviseur de p-1, q-1.
Ayant exprimé la valeur de e de cette manière, plusieurs solutions sont possibles maintenant pour la déterminer, c'est-à-dire pour calculer cette valeur de e. Une première méthode consiste à dire que, comme d est un nombre premier module d est égal à
<Desc/Clms Page number 12>
À module d. On se retrouve ainsi avec un calcul d'exponentiation et non d'inverse modulaire.
Un calcul d'exponentiation peut être aisément réalisé au sein même de la carte à puce, dès lors qu'elle dispose d'un cryptoprocesseur.
Une deuxième solution peut être mise en oeuvre si on choisit une valeur de d très petite, par exemple une valeur de d codée sur 8 bits, d sera alors inférieure ou égale à 257. On va alors pouvoir calculer la valeur de-1/À module d.
Figure img00120001
Par exemple dans le cas où on a pris v2=3v, À est égal à 3v*2k-r. On constate que le numérateur se calcule par des multiplications et un décalage, la division par d se faisant facilement avec un cryptoprocesseur du fait du choix de la valeur de d.
La solution numéro 3 consiste à précalculer un élément du numérateur, à savoir l'élément : - 1/À module d*3*v
Dans la solution précédente, c'est uniquement la première partie qui peut être précalculée et stockée.
Dans celle-ci on aura le produit résultat. La taille de cet élément sera de 8 bits +r+À bits.
Si on choisit une taille r+À inférieure à 32 bits, le résultat sera inférieur ou égal à 40 bits divisé par la valeur de d. Ce résultat peut donc être aisément stocké sur la carte à puce à l'issue d'un précalcul.
La division par d, si on a pris un d multiple d'une puissance de 2, c'est-à-dire : d=2a+1, est aisément réalisable.
La solution 4 permet également de réaliser aisément la division par d. Si on a choisi une valeur de d petite, par exemple 257, et bien sûr à condition que l'on respecte les contraintes sur v et d, v et d devant être premiers entre eux, on peut effectuer un précalcul
<Desc/Clms Page number 13>
de la quantité-1/À modulo d pour chacune des valeurs de v possibles et stocker cette quantité.
Pour simplifier encore, au lieu de conserver ou de sélectionner toutes les valeurs de v, on peut ne retenir que celle pour laquelle la quantité-1/À modulo d est égale à 1. Lorsque d vaut 257 le calcul est faisable au moyen d'un cryptoprocesseur.
Si on veut simplifier encore ces calculs on choisira par exemple une valeur de d égale à 5 ou à 17, c'est-à-dire une valeur plus petite que 257. Le calcul sera alors simplifié puisque l'on calculera À+l/d.
Enfin une cinquième solution est proposée. Cette solution part du constat que e est de la forme : Numérateur/dénominateur= (une quantité sur 8 bits multipliée par une quantité sur 32 bits multipliée par une quantité 2k-r+1)/2a+1.
Le résultat a la forme telle que représentée sur la figure 5, c'est-à-dire un préfixe x fonction de la valeur v, une partie y qui est de la forme t multiplié par une séquence comprenant un mot ne comprenant que des 1 suivi d'un mot ne comprenant des 0, de taille a chacun, l'ensemble étant suivi d'une quantité z comprenant un mot de la taille a ne comprenant que des 1 et un mot de taille a ne comprenant que des 0, sauf le bit de poids le plus faible qui est égal à 1.
Le préfixe x (v) a une taille égale à r-a. La solution consiste alors à calculer tous les préfixes correspondant aux différentes valeurs de v sélectionnées pour générer et stocker ces préfixes, les valeurs y et z étant des valeurs fixes qui peuvent être stockées qu'une seule fois.
Bien entendu le calcul de la formule pourra être fait au préalable par des moyens puissants de calcul en dehors de la carte à puce, il s'agira alors d'un pré-
<Desc/Clms Page number 14>
calcul qui va permettre ensuite de stocker les différents préfixes dans la produit de chiffrement.
Le calcul du paramètre Ip.
Dans le cas où v conduit à une taille pour laquelle a=l, alors Ip=3.
Dans le cas où a=2, Ip=4. Les valeurs de Ip pourront être stockées, codées en dur dans l'algorithme de cryptographie pour les différentes valeurs de v sélectionnées ou générées.
Dans le cas d'un algorithme à clé privée comme on l'a vu au début de la description, la clé générée sera la clé secrète de l'algorithme et aura la forme illustrée par la figure 6, c'est-à-dire qu'elle comprendra une partie générée v courte de taille r et partie fixe f de taille k-r pour une longueur de clé égale à kbits.
Typiquement dans le cas d'un algorithme DES k est égal à 64 bits et r pourra être égal à 8 bits. La valeur de v pourra être générée de façon aléatoire au moyen d'un générateur 8 bits.
Le domaine de variations de cette valeur r sera donc de 256 valeurs possibles. L'algorithme à clé secrète pourra donc être exécuté de manière classique au moyen de la clé générée selon le procédé.
Sur la figure 7 on a représenté le schéma simplifié d'une carte à puce comprenant un micromodule susceptible de mettre en oeuvre l'invention.
Le micromodule comporte une unité principale de traitement 1 comprenant un microcontrôleur, au moins un bus pour relier l'unité 1 à des mémoires associées composées d'au moins une mémoire de programmes Ml (non volatile de type ROM) et au moins une mémoire de travail M2 (de type RAM), au moins une mémoire de programme, programmable électriquement M3 (de type
<Desc/Clms Page number 15>
EEPROM). Le microcircuit peut comporter en outre une unité de calcul 2 (cryptoprocesseur) pour mettre en oeuvre des calculs d'exponentiations modulaires comme c'est le cas par exemple dans le cas de l'exécution de l'algorithme cryptographique à clé publique RSA (Rivest Shamir Adelman).
Pour la mise en oeuvre du procédé selon l'invention, le micromodule schématisé sur cette figure 7 comporte en outre un générateur de valeurs aléatoires 3.

Claims (22)

REVENDICATIONS
1. Procédé de génération de clés électroniques pour la mise en oeuvre d'un algorithme cryptographique, caractérisé en ce qu'elle consiste à fournir au moins une clé de taille l suffisante pour assurer la sécurité requise (1 2 obits, k= 64 bits ou 512 bits), ladite clé comprenant une partie correspondant à une valeur v prise parmi un nombre défini de valeurs générées par un générateur aléatoire et une partie f correspondant à une valeur fixe.
2. Procédé de génération de clés électroniques, caractérisé en ce que la partie correspondant à une valeur v, a une taille r courte par rapport à la taille l de la clé, cette valeur étant générée de façon aléatoire.
3. Procédé de génération de clés électroniques selon la revendication 1 ou 2, pour algorithme de cryptographie à clé publique (du type RSA), caractérisé en ce que la clé générée constitue au moins un paramètre p ou q de l'algorithme.
4. Procédé de génération de clés électroniques selon la revendication 3, caractérisé en ce que deux clés sont générées et constituent respectivement les paramètres p et q de l'algorithme, chaque paramètre comprenant une valeur aléatoire distincte respectivement vl, v2.
5. Procédé de génération de clés électroniques selon la revendication 3, caractérisé en ce que un des
<Desc/Clms Page number 17>
paramètres p de l'algorithme correspond à la clé générée et comprend une partie correspondant à une valeur aléatoire v, l'autre paramètre comprend une partie avec une valeur c. v, multiple de la valeur aléatoire v, a étant un entier positif.
6. Procédé de génération de clés électroniques selon la revendication 5, caractérisé en ce que dans le cas où a=l, p et q s'expriment par les relations suivantes :
Figure img00170001
p = v * 2k-r +1 q = 3 * v * 2k-r-l+1
7. Procédé de génération de clés électroniques selon la revendication 5, caractérisé en ce que dans le cas où a=2, on inverse le rôle de p et q dans
Figure img00170002
l'algorithme de cryptographie, ceux-ci s'exprimant alors par les relations suivantes : q = v * 2k-r p = 3 * v * 2"'+1
8. Procédé de cryptographie à clé publique utili- sant des paramètres p et q utilisant la génération de clés selon les revendications 5 ou 7, caractérisé en ce qu'il consiste : à calculer le module public n par la relation n = p * q, à choisir la valeur de l'exposant privé d et à calculer l'exposant public e.
9. Procédé de cryptographie à clé publique selon les revendications 5 et 8, caractérisé en ce que la valeur de l'exposant privé est choisie de manière à être
<Desc/Clms Page number 18>
inférieure aux paramètres p et q et de manière à être premier avec 2,3 et v.
10. Procédé de cryptographie à clé publique selon la revendication 9, caractérisé en ce que la valeur de d est choisie de manière à s'exprimer par la relation suivante : d = 2a+ 1
11. Procédé de cryptographie à clé publique selon la revendication 8, caractérisé en ce que l'exposant public e est défini par la relation suivante : e = 1/d mod (p-1) (q-1) qui peut s'exprimer également sous la forme : e = A/d mod Ä (p*q), correspondant à une opération d'inverse modulaire susceptible d'être précalculée.
12. Procédé de cryptographie à clé publique selon l'une quelconque des revendications 1 à 12, caractérisé en ce que la partie f des paramètres p et q est composée de zéros sauf le bit de poids le plus faible.
13. Procédé de cryptographie à clé publique selon la revendication 11, caractérisé en ce que les valeurs de d et de À sont connues et en ce que e peut alors
Figure img00180001
être calculée par la relation : e = [-1/À mod d * À+l]/d
14. Procédé de cryptographie à clé publique selon la revendication 13, caractérisé en ce que le paramètre public e est calculé alors par une opération d'exponentiation définie par la relation suivante : e = mod d, et stocké.
<Desc/Clms Page number 19>
15. Procédé de cryptographie à clé publique selon la revendication 13, caractérisé en ce que l'on choisit une valeur pour la clé privée d petite, 8 kbits maximum, mod d étant également faible, et en ce que l'on calcule-1/À mod d par une suite de multiplications avec c. v, le résultat étant stocké.
16. Procédé de cryptographie à clé publique selon la revendication 14, caractérisé en ce que l'on calcule la valeur-1/À mod d *3 * v et on la stocke.
17. Procédé de cryptographie à clé publique selon les revendications 1 ou 2 et 14, caractérisé en ce que les valeurs de v pour lesquelles-1/À mod d = 1, et le paramètre d un nombre premier de valeur faible inférieure à 257, la valeur de e peut alors être calculée par la relation : e = (À+1)/d.
18. Procédé de cryptographie à clé publique selon les revendications 13 et 14, caractérisé en ce que le paramètre e comporte un préfixe a fonction de v, un mot y fixe, un mot z fixe, et en ce que le préfixe est précalculé pour chaque valeur de v et stocké, les mots y et z étant également stockés.
19. Procédé de cryptographie à clé publique selon
Figure img00190001
la revendication 7, caractérisé en ce que lorsque oye=1, le paramètre Ip= l/p (modq) est égal à 3, et cette va- leur est stockée.
20. Procédé de cryptographie à clé publique selon la revendication 8, caractérisé en ce que lorsque a=2,
<Desc/Clms Page number 20>
le paramètre Ip= l/p (modq) est égal à 5, et cette valeur est stockée.
21. Procédé de cryptographie à clé privée selon les revendications 1 ou 2, caractérisé en ce que la clé générée est la clé privée de l'algorithme, la valeur v étant générée aléatoirement.
22. Procédé de cryptographie à clé privée selon l'une des revendications 1 ou 2 ou 21, caractérisé en ce que la partie fixe ne comprend que des zéros.
FR0109817A 2001-07-23 2001-07-23 Procede de generation de cles electroniques pour la mise en oeuvre d'un algorithme crytographique,carte a puce mettant en oeuvre le procede Expired - Fee Related FR2827722B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0109817A FR2827722B1 (fr) 2001-07-23 2001-07-23 Procede de generation de cles electroniques pour la mise en oeuvre d'un algorithme crytographique,carte a puce mettant en oeuvre le procede
PCT/FR2002/002450 WO2003010921A1 (fr) 2001-07-23 2002-07-11 Procede de generation de cles electroniques pour la mise en oeuvre d'un algorithme cryptographique, carte a puce mettant en oeuvre le procede

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0109817A FR2827722B1 (fr) 2001-07-23 2001-07-23 Procede de generation de cles electroniques pour la mise en oeuvre d'un algorithme crytographique,carte a puce mettant en oeuvre le procede

Publications (2)

Publication Number Publication Date
FR2827722A1 true FR2827722A1 (fr) 2003-01-24
FR2827722B1 FR2827722B1 (fr) 2004-08-20

Family

ID=8865812

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0109817A Expired - Fee Related FR2827722B1 (fr) 2001-07-23 2001-07-23 Procede de generation de cles electroniques pour la mise en oeuvre d'un algorithme crytographique,carte a puce mettant en oeuvre le procede

Country Status (2)

Country Link
FR (1) FR2827722B1 (fr)
WO (1) WO2003010921A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0592808A2 (fr) * 1992-10-16 1994-04-20 International Business Machines Corporation Masquage de données commerciales
WO1999052241A2 (fr) * 1998-04-08 1999-10-14 Citibank, N.A. Generation de modules rsa comprenant une partie predeterminee

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0592808A2 (fr) * 1992-10-16 1994-04-20 International Business Machines Corporation Masquage de données commerciales
WO1999052241A2 (fr) * 1998-04-08 1999-10-14 Citibank, N.A. Generation de modules rsa comprenant une partie predeterminee

Also Published As

Publication number Publication date
FR2827722B1 (fr) 2004-08-20
WO2003010921A1 (fr) 2003-02-06

Similar Documents

Publication Publication Date Title
EP1441313B1 (fr) Procédé cryptographique à clé publique pour la protection d&#39; une puce électronique contre la fraude
EP2256987B1 (fr) Protection d&#39;une génération de nombres premiers pour algorithme RSA
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
EP2296086B1 (fr) Protection d&#39;une génération de nombres premiers contre des attaques par canaux cachés
FR2895609A1 (fr) Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee
EP2791784A1 (fr) Procede de generation de nombres premiers prouves adapte aux cartes a puce
EP2415199B1 (fr) Procede pour effectuer une tache cryptographique dans un composant electronique
EP1895404B1 (fr) Brouillage d&#39;un calcul effectué selon un algorithme RSA-CRT
EP0795241B1 (fr) Procede de cryptographie a cle publique base sur le logarithme discret
WO2005022820A1 (fr) Procede pour la mise en oeuvre securisee d&#39;un algorithme de cryptographie de type rsa et composant correspondant
EP1904921A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
WO2006070092A1 (fr) Procede de traitement de donnees et dispositif associe
CA2257907A1 (fr) Procede de cryptographie a cle publique
WO2001074006A1 (fr) Dispositif et procede de generation de cles electroniques a partir de nombres premiers entre eux
EP3809627B1 (fr) Procédé de génération d&#39;une clé publique et entité électronique associée
EP1523823A2 (fr) Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede
FR2827722A1 (fr) Procede de generation de cles electroniques pour la mise en oeuvre d&#39;un algorithme crytographique,carte a puce mettant en oeuvre le procede
EP1456998A1 (fr) Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
EP3882895A1 (fr) Détection de fautes par un circuit électronique
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
FR3004042A1 (fr) Procedes de generation et d&#39;utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt
EP1520370A1 (fr) Procede et dispositifs cryptographiques permettant d alleger les calculs au cours de transactions
EP1891769B1 (fr) Protection d&#39;un calcul d&#39;exponentiation modulaire effectue par un circuit integre
FR2837335A1 (fr) Procede et systeme cryptographiques
EP2527970B1 (fr) Procédé d&#39;encodage cryptographique sur une courbe elliptique

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20100331