FR2834155A1 - Procede de generation de cles electroniques cryptographiques et composant correspondant - Google Patents
Procede de generation de cles electroniques cryptographiques et composant correspondant Download PDFInfo
- Publication number
- FR2834155A1 FR2834155A1 FR0116764A FR0116764A FR2834155A1 FR 2834155 A1 FR2834155 A1 FR 2834155A1 FR 0116764 A FR0116764 A FR 0116764A FR 0116764 A FR0116764 A FR 0116764A FR 2834155 A1 FR2834155 A1 FR 2834155A1
- Authority
- FR
- France
- Prior art keywords
- key
- function
- generating
- electronic component
- random number
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3013—Public 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 discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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
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 un procédé de génération d'une ou plusieurs clés électroniques cryptographiques à partir d'un nombre secret S, au moyen d'un composant électronique. Il comporte les étapes consistant pour chaque clé à :lire ledit nombre secret S de longueur prédéterminée,choisir un identifiant ID,générer au moyen d'une fonction déterministe F, un nombre pseudo-aléatoire R à partir de S et de ID,générer ladite clé à partir de R.
Description
<Desc/Clms Page number 1>
PROCÉDÉ DE GÉNÉRATION DE CLÉS ÉLECTRONIQUES CRYPTOGRAPHIQUES ET COMPOSANT CORRESPONDANT
L'invention concerne un procédé de génération d'une ou plusieurs clés électroniques cryptographiques à partir d'un nombre secret.
L'invention concerne un procédé de génération d'une ou plusieurs clés électroniques cryptographiques à partir d'un nombre secret.
L'invention s'applique tout particulièrement à des algorithmes de cryptographie à clé publique utilisés dans certaines applications pour le cryptage d'informations et/ou l'authentification entre deux entités et/ou la signature électronique de messages. Ce sont notamment des applications d'accès à certaines banques de données, des applications bancaires, des applications de télé-péage par exemple pour la télévision ou le passage de péages d'autoroutes.
Elle s'applique en particulier à des algorithmes à clé publique tels que les algorithmes RSA du nom de ses auteurs (Rivest, Shamir et Adleman), El Gamal, Schnorr, ou Fiat Shamir.
Ces algorithmes sont mis en oeuvre dans des composants électroniques comportant un microprocesseur et des mémoires, dont une mémoire programme par exemple de type ROM, une mémoire de travail par exemple de type RAM et une mémoire de données par exemple de type EEPROM qui contient la ou les clés cryptographiques.
Ces composants électroniques sont notamment utilisés dans les cartes à puce.
De telles clés occupent beaucoup d'emplacement mémoire du fait de leur taille.
<Desc/Clms Page number 2>
Dans le cas par exemple de l'algorithme à clé publique RSA, utilisant un module de 1024 bits, il faut plus de 2000 bits pour mémoriser une clé RSA.
De plus, le nombre de clés est multiplié par le nombre d'applications mises en oeuvre par le composant, voire par le nombre d'interlocuteurs d'une même application, ce qui augmente d'autant l'emplacement mémoire utilisé pour mémoriser ces clés.
Par ailleurs, les organismes de normalisation envisagent de recommander de doubler la taille des clés RSA ce qui entraînerait un doublement de la taille des clés des algorithmes dérivés du RSA ou plus généralement des algorithmes à clé publique.
Le but de la présente invention est donc d'éviter que ces clés occupent tant d'emplacement mémoire.
L'invention a pour objet un procédé de génération d'une ou plusieurs clés électroniques cryptographiques à partir d'un nombre secret S, au moyen d'un composant électronique, principalement caractérisé en ce qu'il comporte les étapes consistant pour chaque clé à : a) lire ledit nombre secret S de longueur prédéterminée, b) choisir un identifiant ID, c) générer au moyen d'une fonction déterministe F, un nombre pseudo-aléatoire R à partir de S et de ID, d) générer ladite clé à partir de R.
Selon une caractéristique de l'invention, il comporte en outre préalablement à l'étape c) une étape consistant à déterminer un compteur et en ce que l'étape c) consiste à générer au moyen d'une fonction
<Desc/Clms Page number 3>
déterministe F, un nombre aléatoire R à partir de S, ID et dudit compteur.
La fonction F est de préférence sans collision et éventuellement à sens unique.
La fonction F est avantageusement une fonction de génération de masque MGF.
Selon une caractéristique de l'invention, la clé est une clé d'un algorithme cryptographique à clé publique.
La clé peut être générée à la demande ou en différé.
L'invention concerne également un procédé de génération de clés cryptographiques RSA, El Gamal, Schnorr ou Fiat Shamir, caractérisé en ce qu'il met en oeuvre le procédé tel qu'il vient d'être défini plus haut.
L'invention concerne aussi un composant électronique comprenant au moins une unité centrale, une mémoire de programme, une mémoire de travail et une mémoire de données, caractérisé en ce qu'il met en oeuvre le procédé objet de l'invention.
L'invention peut avoir pour objet une carte à puce comprenant un tel composant électronique.
D'autres particularités et avantages de l'invention apparaîtront clairement à la lecture de la description faite à titre d'exemple non limitatif et en regard de la figure 1 annexée qui représente le schéma de principe d'un composant électronique mettant en oeuvre l'invention.
<Desc/Clms Page number 4>
Le procédé selon l'invention consiste à lire un seul nombre secret S et à générer les clés à partir de ce secret S, en tant que de besoin.
En dehors du secret S, toutes les données utilisées pour générer les clés ainsi que les clés elles-mêmes sont mémorisées pendant la durée nécessaire à l'exécution de l'algorithme de cryptographie ; mais elles peuvent être ensuite effacées lorsqu'il est nécessaire de libérer de l'emplacement mémoire puisqu'elles peuvent être regénérées.
Le secret S est typiquement un nombre de 128 bits, voire 64 bits : il occupe donc peu d'emplacement mémoire.
Avant de rentrer dans le détail du procédé de génération de clés selon l'invention, on rappelle les différentes étapes de l'algorithme RSA.
L'étape de génération des clés privée et publique consiste à : - choisir deux grands nombres premiers p et q de tailles sensiblement équivalentes ; - définir n=p. q et (D (n) = (p-1). (q-1), (D (n) étant la fonction totient ; - choisir un nombre aléatoire e tel que l < e < C (n) et tel que le plus grand commun diviseur (PGCD) entre e et (D (n) soit 1 ; - choisir un nombre d tel que l < d < C (n) et tel que e. d=l mod (D (n).
La clé publique est (n, e) et la clé privée est d.
<Desc/Clms Page number 5>
L'étape de cryptage RSA d'un message m (0 < m < n-l) consiste à calculer c=me mod n, c étant le message chiffré de m.
L'étape de décryptage RSA du message chiffré c consiste à calculer m=cd mod n.
Le nombre premier p est obtenu selon la méthode qui consiste par exemple à : - choisir un nombre aléatoire impair R ; - si ce nombre n'est pas premier, on ajoute 2 ; - ainsi de suite jusqu'à ce que le nombre obtenu soit premier.
De même pour obtenir le nombre premier q.
Selon l'invention, le nombre aléatoire R utilisé pour obtenir les nombres premiers p et q, est généré à partir du secret S et d'un identifiant ID.
Cet identifiant ID est unique pour chaque application ou, pour chaque interlocuteur d'une même application. Il peut comporter des informations relatives au nom et/ou à l'adresse et/ou à l'adresse Internet, ou..., ou comporter un nombre associé à ces informations ; ce nombre peut être public ou déterminé par l'algorithme de génération de clé.
Lorsque la même entité utilise plusieurs clés, un compteur ou toute autre valeur distinctive peut être utilisé en plus de l'identifiant.
Le nombre R est généré à partir du secret S, de l'identifiant ID et éventuellement du compteur au moyen d'une fonction déterministe (c'est-à-dire non aléatoire) de préférence sans collision (c'est-à-dire
<Desc/Clms Page number 6>
qu'il est difficile de trouver xl et x2 tels que h (xl) =h (x2) ) et éventuellement à sens unique.
On rappelle qu'une fonction est à sens unique si, étant donné x, il est facile de calculer f (x) mais qu'étant donné f (x), il est difficile de retrouver x.
On utilise de préférence comme fonction sans collision et à sens unique, une fonction de génération de masque, appelée MGF (comme"Mask Generating Function"en anglais) telle que celle décrite par Mihir Bellare et Phillip Rogaway dans la publication"The exact security of digital signatures-How to sign with RSA and Rabin" (Advances in Cryptology, EUROCRYPT'96, Lecture Notes in Computer Science, volume 1070, pages 399-416, Springer-Verlag, 1996), Annexe A.
Une fonction MGF a en entrée un nombre déterminé k de bits, et en sortie une chaîne de bits, de taille quelconque.
Dans le cas présent, on obtient :
R = MGF (S, ID, compteur)
On a par exemple, h (x) étant une fonction de hachage :
MGF (x) = h (xlll) IIh (xI12) llh (xI13) 11...
avec
x = SllIDllcompteur
le symbole 1 1 signifiant concaténé.
R = MGF (S, ID, compteur)
On a par exemple, h (x) étant une fonction de hachage :
MGF (x) = h (xlll) IIh (xI12) llh (xI13) 11...
avec
x = SllIDllcompteur
le symbole 1 1 signifiant concaténé.
On rappelle qu'une fonction cryptographique de hachage est une fonction déterministe (non aléatoire) à sens unique et sans collision ; elle a en entrée une
<Desc/Clms Page number 7>
chaîne de bits, de taille quelconque et produit en sortie un nombre de k bits.
On peut prendre comme fonction h de hachage, la
fonction SHA-1 ("Standard Hash Algorithmen anglais) avec k=160 ou la fonction MD5 ("Message Digest 5"en anglais) avec k=128.
fonction SHA-1 ("Standard Hash Algorithmen anglais) avec k=160 ou la fonction MD5 ("Message Digest 5"en anglais) avec k=128.
Le procédé selon l'invention permet ainsi de réduire considérablement l'emplacement mémoire nécessaire pour stocker habituellement les clés d'algorithmes à clé publique.
Il peut être mis en oeuvre à la demande lorsque nécessaire ou en différé en prévision d'une future demande.
On a représenté sur la figure 1 le schéma fonctionnel d'un composant électronique susceptible de mettre en oeuvre le procédé selon l'invention.
Le composant C comporte notamment une unité centrale de traitement 1, une mémoire de programme 2, une mémoire de travail 3 et une mémoire de données 4 associées à l'unité 1. Le nombre secret S est mémorisé dans la mémoire de données 4.
Un tel composant peut bien sûr être inclus dans une carte à puce.
Claims (10)
1. Procédé de génération d'une ou plusieurs clés électroniques cryptographiques à partir d'un nombre secret S, au moyen d'un composant électronique, caractérisé en ce qu'il comporte les étapes consistant pour chaque clé à : a) lire ledit nombre secret S de longueur prédéterminée, b) choisir un identifiant ID, c) générer au moyen d'une fonction déterministe F, un nombre pseudo-aléatoire R à partir de S et de ID, d) générer ladite clé à partir de R.
2. Procédé selon la revendication précédente, caractérisé en ce qu'il comporte en outre préalablement à l'étape c) une étape consistant à déterminer un compteur et en ce que l'étape c) consiste à générer au moyen d'une fonction déterministe F, un nombre aléatoire R à partir de S, ID et dudit compteur.
3. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la fonction F est une fonction sans collision.
4. Procédé selon la revendication précédente, caractérisé en ce que la fonction F est à sens unique.
<Desc/Clms Page number 9>
5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la fonction F est une fonction de génération de masque MGF.
6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la clé est une clé d'un algorithme à clé publique.
7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la clé est générée à la demande ou en différé.
8. Procédé de génération de clés cryptographiques RSA, El Gamal, Schnorr ou Fiat Shamir, caractérisé en ce qu'il met en oeuvre le procédé selon l'une quelconque des revendications précédentes.
9. Composant électronique (C) comprenant au moins une unité centrale (1), une mémoire de programme (2), une mémoire de travail (3) et une mémoire de données (4), caractérisé en ce qu'il met en oeuvre le procédé selon l'une quelconque des revendications précédentes.
10. Carte à puce comprenant un composant électronique (C) selon la revendication précédente.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0116764A FR2834155B1 (fr) | 2001-12-21 | 2001-12-21 | Procede de generation de cles electroniques cryptographiques et composant correspondant |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0116764A FR2834155B1 (fr) | 2001-12-21 | 2001-12-21 | Procede de generation de cles electroniques cryptographiques et composant correspondant |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2834155A1 true FR2834155A1 (fr) | 2003-06-27 |
FR2834155B1 FR2834155B1 (fr) | 2005-02-18 |
Family
ID=8870914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0116764A Expired - Fee Related FR2834155B1 (fr) | 2001-12-21 | 2001-12-21 | Procede de generation de cles electroniques cryptographiques et composant correspondant |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2834155B1 (fr) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0482233A1 (fr) * | 1990-10-24 | 1992-04-29 | Omnisec Ag | Système cryptographique permettant une communication chiffrée entre utilisateurs avec une clé de chiffrage mutuellement sécurisée déterminée sans interaction d'un utilisateur |
US5602915A (en) * | 1993-02-25 | 1997-02-11 | France Telecom Establissement Autonome De Droit Public | Process for the control of secret keys between two smart cards |
EP0874299A2 (fr) * | 1997-04-23 | 1998-10-28 | Sony Corporation | Transmission, réception, chiffrage, déchiffrage et enregistrement |
GB2337908A (en) * | 1998-03-13 | 1999-12-01 | Nec Corp | Accessing a network host computer from outside the network with improved security |
DE19837405A1 (de) * | 1998-08-18 | 2000-02-24 | Siemens Ag | Verfahren und Anordnung zur Bildung eines geheimen Kommunikationsschlüssels zu einem zuvor ermittelten asymmetrischen kryptographischen Schlüsselpaar |
US6195433B1 (en) * | 1998-05-08 | 2001-02-27 | Certicom Corp. | Private key validity and validation |
-
2001
- 2001-12-21 FR FR0116764A patent/FR2834155B1/fr not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0482233A1 (fr) * | 1990-10-24 | 1992-04-29 | Omnisec Ag | Système cryptographique permettant une communication chiffrée entre utilisateurs avec une clé de chiffrage mutuellement sécurisée déterminée sans interaction d'un utilisateur |
US5602915A (en) * | 1993-02-25 | 1997-02-11 | France Telecom Establissement Autonome De Droit Public | Process for the control of secret keys between two smart cards |
EP0874299A2 (fr) * | 1997-04-23 | 1998-10-28 | Sony Corporation | Transmission, réception, chiffrage, déchiffrage et enregistrement |
GB2337908A (en) * | 1998-03-13 | 1999-12-01 | Nec Corp | Accessing a network host computer from outside the network with improved security |
US6195433B1 (en) * | 1998-05-08 | 2001-02-27 | Certicom Corp. | Private key validity and validation |
DE19837405A1 (de) * | 1998-08-18 | 2000-02-24 | Siemens Ag | Verfahren und Anordnung zur Bildung eines geheimen Kommunikationsschlüssels zu einem zuvor ermittelten asymmetrischen kryptographischen Schlüsselpaar |
Non-Patent Citations (1)
Title |
---|
OKAMOTO T: "A SINGLE PUBLIC-KEY AUTHENTICATION SCHEME FOR MULTIPLE USERS", SYSTEMS & COMPUTERS IN JAPAN, SCRIPTA TECHNICA JOURNALS. NEW YORK, US, vol. 18, no. 10, 1 October 1987 (1987-10-01), pages 14 - 24, XP000004597, ISSN: 0882-1666 * |
Also Published As
Publication number | Publication date |
---|---|
FR2834155B1 (fr) | 2005-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2345202B1 (fr) | Procédé de signature numérique en deux étapes | |
WO2003056750A2 (fr) | Systeme cryptographique de signature de groupe | |
EP2296086B1 (fr) | Protection d'une génération de nombres premiers contre des attaques par canaux cachés | |
FR2759226A1 (fr) | Protocole de verification d'une signature numerique | |
EP1151576B1 (fr) | Procede cryptographique a cles publique et privee | |
FR2536928A1 (fr) | Systeme pour chiffrer et dechiffrer des informations, du type utilisant un systeme de dechiffrement a cle publique | |
FR2881900A1 (fr) | Procede de cryptographie de messages a cle privee, et application a une installation | |
EP2415199B1 (fr) | Procede pour effectuer une tache cryptographique dans un composant electronique | |
EP0346180B1 (fr) | Dispositif de communication sécurisée de données | |
FR2807898A1 (fr) | Procede de cryptographie sur courbes elliptiques | |
EP2707989A1 (fr) | Dispositif et procede de generation de cles a securite renforcee pour algorithme de chiffrement pleinement homomorphique | |
CA2216607C (fr) | Procede de communication cryptographique asymetrique, et objet portatif associe | |
FR2828780A1 (fr) | Procede de realisation d'une unite cryptographique pour un systeme de cryptographie asymetrique utilisant une fonction logarithme discret | |
EP0795241A1 (fr) | Procede de cryptographie a cle publique base sur le logarithme discret | |
EP0909495B1 (fr) | Procede de cryptographie a cle publique | |
FR2788909A1 (fr) | Procede d'authentification ou de signature a nombre de calculs reduit | |
EP1829279A2 (fr) | Procede et dispositif d'execution d'un calcul cryptographique | |
FR2752122A1 (fr) | Procede d'authentification a nombre reduit de bits transmis | |
FR2834155A1 (fr) | Procede de generation de cles electroniques cryptographiques et composant correspondant | |
FR2826531A1 (fr) | Procede cryptographique pour la protection d'une puce electronique contre la fraude | |
EP0980607A1 (fr) | Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d'aleas | |
EP3840282A1 (fr) | Procédé de traitement cryptographique, dispositif électronique et programme d'ordinateur associés | |
FR2842052A1 (fr) | Procede et dispositifs cryptographiques permettant d'alleger les calculs au cours de transactions | |
FR2818846A1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie | |
WO1998037662A1 (fr) | Systeme cryptographique comprenant un systeme de chiffrement et de dechiffrement et un systeme de sequestre de cles, et les appareils et dispositifs associes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20090831 |