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

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

Info

Publication number
WO2003010921A1
WO2003010921A1 PCT/FR2002/002450 FR0202450W WO03010921A1 WO 2003010921 A1 WO2003010921 A1 WO 2003010921A1 FR 0202450 W FR0202450 W FR 0202450W WO 03010921 A1 WO03010921 A1 WO 03010921A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
key cryptography
public key
algorithm
parameter
Prior art date
Application number
PCT/FR2002/002450
Other languages
English (en)
Inventor
Christophe Clavier
Nathalie Feyt
Original Assignee
Gemplus
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 filed Critical Gemplus
Publication of WO2003010921A1 publication Critical patent/WO2003010921A1/fr

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

Definitions

  • the invention relates to a method for generating electronic keys at low cost in computation time and in memory space. It also relates to cryptographic algorithms using the proposed key generation method.
  • these products can be devices such as in particular smart cards.
  • these products can be devices such as in particular smart cards.
  • smart cards In order to simplify the subject, we will speak in the following of a smart card, it being understood that the invention applies to any product capable of carrying out encryption decryption operations.
  • the invention is particularly applicable to the production of smart cards delivered or used for the purpose of demonstrations in a public place (for example at an exhibition) or at a customer's (for a commercial demonstration) and likely to carry out cryptographic operations.
  • the “demonstration” smart card should ideally provide all the standard functions offered by a public key or secret key cryptography protocol.
  • a public key cryptography protocol allows information encryption and / or authentication between two entities and / or the electronic signature of messages.
  • public key cryptography protocols such as the RSA protocol (Rivest Shamir and Adelman), El Gamal, Schnorr, Fiat Shamir.
  • the invention aims to remedy this problem.
  • the invention proposes the production of encryption products, in particular smart cards, capable of implementing all the functions of a public key or private key algorithm using the required key lengths, but in which the keys used can be found by an authority to which we put the process that allowed to generate them. In this case of course the keys do not have the security level which is usually sought after under standard operating conditions.
  • the sample presenting such means will be functional and will provide a faithful reflection of the product.
  • the invention proposes a method for generating electronic keys for the implementation of a cryptographic algorithm, mainly characterized in that it consists in providing at least one key of size 1 sufficient to ensure the required security (1 > kbits), said key comprising a part corresponding to a value v taken from a defined number of values and a part f corresponding to a fixed value.
  • the part corresponding to a value v has a size r short compared to the size 1 of the key, this value being generated randomly.
  • the generated key constitutes at least one parameter p or q of the algorithm.
  • two keys are generated and constitute respectively the parameters p and q of the algorithm, each parameter comprising a distinct random value respectively vl, v2.
  • one of the parameters p. of the algorithm corresponds to the generated key and includes a part corresponding to a random value v
  • the other parameter includes a part with a value c.v, multiple of the random value v, a being a positive integer.
  • e ⁇ d_1 mod d
  • the value -1 / ⁇ mod d * 3 * v is calculated and stored.
  • the parameter e comprises a prefix a function of v, a word y fixed, a word z fixed, this prefix can then be 'pre-calculated for each value of v and stored, the words y and z also being stored.
  • the invention also relates to a private key cryptography method using the generation of keys according to the invention, the generated key being the private key of the algorithm, the value v being generated randomly.
  • the fixed part only includes zeros.
  • FIG. 1b represents a preferred mode for the shape of the key
  • FIGS. 2 to 5 represent the different parameters in the case of the application of the generation of key according to the invention to the DSA algorithm
  • FIG. 6 represents a key in the case of the application of the key generation according to the invention to the secret key algorithm DES.
  • FIG. 7 illustrates the schematic diagram of a micromodule implemented in a smart card capable of implementing a cryptography method using the generation of keys according to the invention.
  • n p * q.
  • the invention therefore relates to a method of generating electronic keys for the implementation of a cryptographic algorithm making it possible to provide a functional key of size k bits, said key can be easily found by a third party to which this method of generating keys has been provided.
  • the key generated constitutes at least one of the two prime numbers p and q of the module N of the RSA.
  • the generated key is generated from a random value r of size k.
  • the key or keys generated remain functional for encryption or signature operations.
  • the keys generated are generated so as to be cryptographically weak, that is to say easily found by a third party.
  • the process applies to any encryption product, software or not, containing long keys (greater than 128 bits) potentially subject to restrictions of use, by the law of the country where this product would be developed or sold.
  • the method is applicable to microprocessor cards or smart cards.
  • the method has the advantage of considerably reducing the generation time of the keys. It optimizes resources - memories, processor mathematical - necessary for generating keys.
  • Figure la shows a key generated according to the invention.
  • This key comprises a part comprising a value taken from a determined set of possible values.
  • the key also includes a fixed value f so that the length of the value v and of the fixed value f correspond to a length 1 of kbits commonly used in a cryptography algorithm. For example in the case of a public key algorithm, this key length will preferably be greater than or equal to 512 bits.
  • the key will have a length 1 of 64 bits, for example. This is the case with the DES algorithm.
  • the part v of the key has a short length r with respect to the total length 1 of the key. This makes it possible to define all the possible values that this part v can take.
  • FIG. 1b illustrates a preferred embodiment for the key generated according to the method.
  • the part v is generated by a generator of random values, while the fixed part f will preferably consist mainly of zero.
  • this part f will consist of zero, i then being at 0.
  • a public key algorithm such as for example the RSA algorithm.
  • the parameters p and q are considered, these parameters being those which will be generated according to the invention.
  • the parameter p is a key of the form of that which is illustrated by figure lb
  • the parameter q is a key which also has this form.
  • v2 is not a random value in this case, however v remains a random value.
  • the size v2 of the parameter q is no longer equal to r, but to r + ⁇ . ⁇ is equal to 1 or 2 depending on the value of v.
  • the parameter n which is the public module is determined.
  • the parameter n is equal to the product of the prime numbers p and q. Consequently, depending on whether ⁇ is equal to 1 or 2, the parameter n can be represented as illustrated in FIGS. 3 and.
  • n includes a part corresponding to 3v 2 , a part comprising only zeros, a part corresponding to the product 5v and a part comprising only zeros with the least significant bit equal to 1 if, well of course the preferred embodiment illustrated in FIG. 2 is kept for the choice of parameters p and q.
  • the part 3v 2 has a size equal to 2r + l.
  • the method then consists in fixing the value of the private exponent d, contrary to what is usually done in the implementation of a conventional RSA cryptographic algorithm.
  • the cryptography method in this case only comprises a step of verifying the usual conditions for this private exponent, that is to say that d must be prime with the parameters p and q and less than these parameters, d must be prime with 2,3 and v in the present case.
  • the parameter dp is equal to d
  • d of course is smaller than p
  • the parameter dq is also equal to d if d is less than q.
  • d l / e modulo (p-l) (q-1) and we seek to calculate e which is therefore equal to 1 / d modulo (p-l) (q-1).
  • a first method consists in saying that, as d is a prime number -1 / ⁇ modulo d is equal to
  • An exponentiation calculation can be easily performed within the smart card, as soon as it has a cryptoprocessor.
  • a second solution can be implemented if a very small value of d is chosen, for example a value of d coded on 8 bits, d will then be less than or equal to 257. We will then be able to calculate the value of -1 / ⁇ modulo d.
  • is equal to 3v * 2k_r .
  • numerator is calculated by multiplications and an offset, the division by d being easily done with a cryptoprocessor because of the choice of the value of d.
  • Solution number 3 consists in precalculating an element of the numerator, namely the element: -1 / ⁇ modulo d * 3 * v
  • the element -1 / ⁇ modulo d * 3 * v
  • the size of this element will be 8 bits + r + ⁇ bits.
  • the result will be less than or equal to 40 bits divided by the value of d. This result can therefore be easily stored on the chip card after precalculation.
  • Numerator / denominator (an 8-bit quantity multiplied by a 32-bit quantity multiplied by a quantity 2 k_r +1) / 2 a + l.
  • the result has the form as shown in FIG. 5, that is to say a prefix x depending on the value v, a part y which is of the form t multiplied by a sequence comprising a word comprising only 1 followed by a word comprising 0s, of size each, the whole being followed by a quantity z comprising a word of size a comprising only 1s and a word of size a comprising only 0s, except the least significant bit which is equal to 1.
  • the prefix x (v) has a size equal to r-a.
  • the solution then consists in calculating all the prefixes corresponding to the different values of v selected to generate and store these prefixes, the values y and z being fixed values which can be stored only once.
  • Ip 4.
  • the values of Ip can be stored, hard coded in the cryptography algorithm for the different values of v selected or generated.
  • the key generated will be the secret key of the algorithm and will have the form illustrated in FIG. 6, that is to say that it will include a short generated part v of size r and a fixed part f of size kr for a key length equal to kbits.
  • k is equal to 64 bits and r can be equal to 8 bits.
  • the value of v can be generated randomly using an 8-bit generator. The range of variations of this value r will therefore be 256 possible values.
  • the secret key algorithm can therefore be executed in a conventional manner by means of the key generated according to the method.
  • FIG. 7 shows the simplified diagram of a smart card comprising a micromodule capable of implementing the invention.
  • the micromodule comprises a main processing unit 1 comprising a microcontroller, at least one bus for connecting the unit 1 to associated memories composed of at least one program memory M1 (non-volatile ROM type) and at least one memory M2 work (RAM type), at least one program memory, electrically programmable M3 (EEPROM type).
  • the microcircuit can also comprise a calculation unit 2 (cryptoprocessor) for implementing modular exponential calculations as is the case for example in the case of the execution of the cryptographic algorithm with public key RSA (Rivest Shamir Adelman).
  • the micromodule shown diagrammatically in this FIG. 7 further comprises a generator of random values 3.

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 l suffisante pour assurer la sécurité requise (l ≥ 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

PROCEDE DE GENERATION DE CLES ELECTRONIQUES POUR LA
MISE EN CEUVRE D'UN ALGORITHME CRYPTOGRAPHIQUE, CARTE A
PUCE METTANT EN (EϋVRE 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 œuvre 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 1' 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.
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 nombreuse's 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 utili- sé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 œuvre 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 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 œuvre d'un algorithme cryptographique, principalement caractérisé en ce qu'elle consiste à fournir au moins une clé de taille 1 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 1 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ù α=l, p et q s'expriment par les relations suivantes : p = v * 2k-r +1 q = 3 * v * 2k~r_1+l Dans le cas où α=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 * 2k~r~2+l 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+l Selon une autre caractéristique, 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.
Lorsque les valeurs de d et de λ sont connues, la valeur de e peut alors être calculée par la relation : e = [-1/λ 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 : e = λd_1 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 calcule -1/λ 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 α=l, Ip c'est à dire 1/p (modq) =3, cette valeur peut être stockée et lorsque α=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 : - 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 œuvre un procédé de cryptographie 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.
1) L'exposant public e :
Il est commun à tous les utilisateurs et est donné. Cet exposant est indépendant de la clé secrè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-1)] ; (l/e= e"1 )
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-l) dq avec dq = d mod(q-l)
Ip avec Ip ≈ P"1 modq.
L' invention concerne donc un procédé de génération de clés électroniques pour la mise en œuvre 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 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 1 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 1 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 1 de la clé. Ceci permet de définir toutes les valeurs possibles que peut prendre cette partie v.
La figure lb 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.
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 œuvre 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+α. α 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 α sera égal à 1 ou à 2, le paramètre n pourra être représenté tel que l'illustre les figures 3 et .
Dans le cas où =l, n comprend une partie correspondant à 3v2, 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.
Dans le cas de la figure 4, c'est-à-dire pour α=2 on retrouve la même première partie qui est le produit 3v2 de taille 2r+l. 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 œuvre, pour le cas où α=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 œuvre 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-l) (q-1) et on cherche à calculer e qui est donc égal à 1/d modulo(p-l) (q-1) .
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 œuvre 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 λ(p*q) qui est encore égal à :
(-1/λ modulo 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 -1/λ modulo d est égal à
λd_1 modulo 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 œuvre 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/λ modulo d.
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/λ modulo 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+l, 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 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+l .
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é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 =l, alors Ip=3.
Dans le cas où α=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 œuvre 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 EEPROM) . Le microcircuit peut comporter en outre une unité de calcul 2 (cryptoprocesseur) pour mettre en œuvre 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 œuvre 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

REVENDICATIONS
1. Procédé de génération de clés électroniques pour la mise en œuvre d'un algorithme cryptographique, lequel procédé consiste à fournir au moins une clé de taille 1 suffisante pour assurer la sécurité requise
(1 > kbits, 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, caractérisé en ce qu'il est mis en œuvre pour un algorithme de cryptographie à clé publique (du type RSA) dans lequel la clé générée constitue au moins un paramètre p ou q de l'algorithme, et en ce que 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, c étant un entier positif.
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 1 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, 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.
4. Procédé de génération de clés électroniques selon l'une quelconque des revendications 1 à 3, caractérisé en ce que dans le cas où α=l, p et q s'expriment par les relations suivantes : p = v * 2k_r +1 q = 3 * v * 2k_r_1+l
5. Procédé de génération de clés électroniques selon l'une quelconque des revendications 1 à 3, caractérisé en ce que dans le cas où =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 * 2k_r_2+l
6. Procédé de cryptographie à clé publique utilisant des paramètres p et q utilisant la génération de clés selon l'une quelconque des revendications 1 à 5, 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.
7. Procédé de cryptographie à clé publique selon l'une quelconque des revendications 1 à 6, caractérisé en ce que 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.
8. Procédé de cryptographie à clé publique selon la revendication 7, caractérisé en ce que la valeur de d est choisie de manière à s'exprimer par la relation suivante : d = 2a+l
9. Procédé de cryptographie à clé publique selon la revendication 6, 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.
10. Procédé de cryptographie à clé publique selon l'une quelconque des revendications 1 à 9, 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.
11. Procédé de cryptographie à clé publique selon la revendication 9, caractérisé en ce que les valeurs de d et de λ sont connues et en ce que e peut alors être calculée par la relation : e = [-1/λ mod d * λ+l]/d
12. Procédé de cryptographie à clé publique selon la revendication 11, 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 = λd_1 mod d, et stocké.
13. Procédé de cryptographie à clé publique selon la revendication 11, 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é.
14. Procédé de cryptographie à clé publique selon la revendication 12, caractérisé en ce que l'on calcule la valeur -1/λ mod d *3 * v et on la stocke.
15. Procédé de cryptographie à clé publique selon les revendications 1 ou 2 et 12, 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.
16. Procédé de cryptographie à clé publique selon les revendications 11 et 12, 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.
17. Procédé de cryptographie à clé publique selon la revendication 5, caractérisé en ce que lorsque α=l, le paramètre Ip= l/p(modq) est égal à 3, et cette valeur est stockée.
18. Procédé de cryptographie à clé publique selon la revendication 6, caractérisé en ce que lorsque α=2, le paramètre Ip= l/p(modq) est égal à 5, et cette valeur est stockée.
19. 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.
20. 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.
PCT/FR2002/002450 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 WO2003010921A1 (fr)

Applications Claiming Priority (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
FR01/09817 2001-07-23

Publications (1)

Publication Number Publication Date
WO2003010921A1 true WO2003010921A1 (fr) 2003-02-06

Family

ID=8865812

Family Applications (1)

Application Number Title Priority Date Filing Date
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

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
FR2827722A1 (fr) 2003-01-24
FR2827722B1 (fr) 2004-08-20

Similar Documents

Publication Publication Date Title
EP2256987B1 (fr) Protection d&#39;une génération de nombres premiers pour algorithme RSA
EP1441313B1 (fr) Procédé cryptographique à clé publique pour la protection d&#39; une puce électronique contre la fraude
EP2215768B1 (fr) Procede et dispositifs de protection d&#39;un microcircuit contre des attaques visant a decouvrir une donnee secrete
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
EP2415199B1 (fr) Procede pour effectuer une tache cryptographique dans un composant electronique
EP0795241B1 (fr) Procede de cryptographie a cle publique base sur le logarithme discret
EP1895404B1 (fr) Brouillage d&#39;un calcul effectué selon un algorithme RSA-CRT
WO2005022820A1 (fr) Procede pour la mise en oeuvre securisee d&#39;un algorithme de cryptographie de type rsa et composant correspondant
EP1159797B1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
WO2007006810A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
FR2926652A1 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
WO2006070092A1 (fr) Procede de traitement de donnees et dispositif associe
FR2782431A1 (fr) Procede et dispositif d&#39;authentification a algorithme symetrique
EP1804161A1 (fr) Détection de perturbation dans un calcul cryptographique
CA2257907A1 (fr) Procede de cryptographie a cle publique
EP1721246B1 (fr) Procede et dispositif pour accomplir une operation cryptographique
EP1273127A1 (fr) Dispositif et procede de generation de cles electroniques a partir de nombres premiers entre eux
EP1523823A2 (fr) Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede
WO2003010921A1 (fr) Procede de generation de cles electroniques pour la mise en oeuvre d&#39;un algorithme cryptographique, carte a puce mettant en oeuvre le 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

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BY BZ CA CH CN CO CR CU CZ DE DM DZ EC EE ES FI GB GD GE GH HR HU ID IL IN IS JP KE KG KP KR LC LK LR LS LT LU LV MA MD MG MN MW MX MZ NO NZ OM PH PL PT RU SD SE SG SI SK SL TJ TM TN TR TZ UA UG US UZ VN YU ZA ZM

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZM ZW AM AZ BY KG KZ RU TJ TM AT BE BG CH CY CZ DK EE ES FI FR GB GR IE IT LU MC PT SE SK TR BF BJ CF CG CI GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP