WO2006005685A1 - Storage of keys of a public key algorithm in an integrated environment - Google Patents

Storage of keys of a public key algorithm in an integrated environment Download PDF

Info

Publication number
WO2006005685A1
WO2006005685A1 PCT/EP2005/053084 EP2005053084W WO2006005685A1 WO 2006005685 A1 WO2006005685 A1 WO 2006005685A1 EP 2005053084 W EP2005053084 W EP 2005053084W WO 2006005685 A1 WO2006005685 A1 WO 2006005685A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
public key
public
private key
elements
Prior art date
Application number
PCT/EP2005/053084
Other languages
French (fr)
Inventor
Charles Coulier
Olwehn Morvan
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 WO2006005685A1 publication Critical patent/WO2006005685A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

The invention concerns a method for storing a key of a public key algorithm in a portable apparatus provided with a programme interpreter written in an object-oriented language, said method comprising the following steps: creating in the apparatus at least one container object (5), storing the elements of a private key (54, 72) and at least one element (53, 73) of an associated public key; creating in the apparatus at least one key object (3) not containing any element of the private key or of the associated public key; associating the key object with at least one method for accessing the stored elements in the container object. The invention enables the space occupied by the elements of the keys to be reduced.

Description

STOCKAGE DE CLES D'UN ALGORITHME A CLE PUBLIQUE DANS KEY STORAGE OF A PUBLIC KEY ALGORITHM IN
UN ENVIRONNEMENT EMBARQUEAN ENVIRONMENT ON BOARD
L'invention concerne le stockage de clés pour des algorithmes à clé publique et en particulier le stockage de clés dans des environnements embarqués, par exemple dans des cartes à puce.The invention relates to the storage of keys for public key algorithms and in particular the storage of keys in embedded environments, for example in smart cards.
Les algorithmes à clé publique nécessitent la mise en œuvre d'une clé publique et d'une clé privée. Ces clés sont mathématiquement liées pour former une paire. Alors que la clé publique est destinée à être diffusée sans aucune restriction, la clé privée doit rester confidentielle pour assurer la sécurité de l'algorithme. Ces clés sont donc en général cloisonnées de façon assez stricte.Public key algorithms require the implementation of a public key and a private key. These keys are mathematically linked to form a pair. While the public key is intended to be released without any restriction, the private key must remain confidential to ensure the security of the algorithm. These keys are therefore generally compartmentalized quite strictly.
Certaines cartes à puce ou appareils portatifs embarquent une machine virtuelle par exemple de type JavaCard (marque déposée), ainsi que des applications faisant appel à des algorithmes à clé publique, tels le RSA (cryptage, signature électronique). Pour ce type de machine virtuelle, il est imposé un accès exclusif très strict respectivement entre la clé publique et la clé privée. Un objet clé publique contient par exemple les éléments n et e (module et exposant public). Les méthodes associées à cet objet clé permettent la lecture de ses éléments par l'utilisateur. Un objet clé privée contient soit les éléments d et n si la clé est stockée au format standard (d étant l'exposant privé et n le module), soit les éléments p, q, dp, dq et iq si la clé est stockée au format CRT. En outre, une classe appelée KeyPair en prenant l'exemple JavaCard est prévue dans le but d'associer une clé publique et une clé privée et de générer ainsi des paires de clés mathématiquement liées.Some smart cards or portable devices embark a virtual machine for example JavaCard type (registered trademark), as well as applications using public key algorithms, such as RSA (encryption, electronic signature). For this type of virtual machine, it is imposed very strict exclusive access respectively between the public key and the private key. For example, a public key object contains elements n and e (module and public exponent). The methods associated with this key object allow the user to read its elements. A private key object contains either the elements d and n if the key is stored in the standard format (where d is the private exponent and n the module), or the elements p, q, dp, dq and iq if the key is stored at CRT format. In addition, a class called KeyPair taking the JavaCard example is intended to associate a public key and a private key and thus generate mathematically related pairs of keys.
Le stockage et l'utilisation de telles clés posent problème dans les appareils embarqués et en particulier dans les cartes à puce.The storage and use of such keys are problematic in embedded devices and in particular in smart cards.
Les clés mémorisées occupent un espace important dans la mémoire de l'appareil, au détriment d'autres applications. Cet espace occupé peut représenter une proportion relativement importante de la mémoire disponible. En outre, pour répondre à la contrainte de l'indépendance stricte entre les clés publiques et les clés privées, le module est dupliqué dans chacune de ces clés. A titre d'exemple, le module d'une clé RSA 2048 occupe au moins 256 octets.The stored keys occupy a large space in the memory of the device, to the detriment of other applications. This occupied space can represent a relatively large proportion of the available memory. In addition, to meet the constraint of strict independence between public keys and private keys, the module is duplicated in each of these keys. By way of example, the module of an RSA key 2048 occupies at least 256 bytes.
Certaines méthodes d'attaque consistent à forcer la carte à puce à générer des signatures erronées, en la soumettant par exemple à des perturbations de l'alimentation électrique. Une exploitation mathématique d'une signature erronée permet de déterminer des éléments privés. Certaines cartes mettent en œuvre des algorithmes de vérification de la signature électronique générée. En principe, la vérification de la signature devrait être effectuée au moyen de l'exposant public. Cependant, du fait de l'indépendance stricte entre les clés publique et privée, ni l'exposant public ni les autres éléments publics ne sont mémorisés dans l'objet clé privée. Le niveau de sécurité de la vérification des signatures générées n'est alors pas optimal.Some methods of attack consist in forcing the smart card to generate erroneous signatures, for example by subjecting it to disturbances in the power supply. A mathematical exploitation of an erroneous signature allows determine private elements. Some cards implement verification algorithms of the generated electronic signature. In principle, verification of the signature should be done by means of the public exhibitor. However, because of the strict independence between the public and private keys, neither the public exhibitor nor the other public elements are stored in the private key object. The security level of the verification of the generated signatures is then not optimal.
Il existe donc un besoin pour un procédé de stockage d'une clé d'un algorithme à clé publique dans un appareil portatif muni d'un interpréteur de programme écrit dans un langage orienté objet, comprenant les étapes consistant à : - créer dans l'appareil au moins un objet conteneur (5), mémorisant au moins un élément d'une clé privée (54, 72) et au moins un élément (53, 73) d'une clé publique associée ;There is therefore a need for a method of storing a key of a public key algorithm in a portable apparatus provided with a program interpreter written in an object-oriented language, comprising the steps of: - creating in the apparatus at least one container object (5) storing at least one element of a private key (54, 72) and at least one element (53, 73) of an associated public key;
- créer dans l'appareil au moins un objet clé (3) ne contenant aucun élément de la clé privée et de la clé publique associée ; - associer l'objet clé à au moins une méthode d'accès aux éléments mémorisés dans l'objet conteneur.- Create in the device at least one key object (3) containing no element of the private key and the associated public key; associating the key object with at least one access method for the elements stored in the container object.
Selon une variante, l'étape d'association de l'objet clé à une méthode d'accès consiste à associer à l'objet, dit objet clé publique, une méthode d'accès aux seuls éléments de la clé publique mémorisés dans l'objet conteneur. Selon une autre variante, l'étape d'association de l'objet clé à une méthode d'accès consiste à associer à l'objet, dit objet clé privée, une méthode d'accès aux seuls éléments de la clé privée mémorisés dans l'objet conteneur.According to one variant, the step of associating the key object with an access method consists in associating with the object, called the public key object, a method of access to only the elements of the public key stored in the object. container object. According to another variant, the step of associating the key object with an access method consists in associating with the object, called the private key object, a method of access to only those elements of the private key stored in the access object. container object.
On peut alors prévoir que le procédé comprenne en outre les étapes consistant à:It can then be provided that the method further comprises the steps of:
- créer dans l'appareil au moins un autre objet clé (3) ne contenant aucun élément de la clé privée ou de la clé publique associée ;- Create in the device at least one other key object (3) containing no element of the private key or the associated public key;
- associer l'autre objet clé, dit objet clé publique, à au moins une méthode d'accès aux seuls éléments de la clé publique mémorisés dans l'objet conteneur.associating the other key object, called the public key object, with at least one access method for only the elements of the public key stored in the container object.
Selon encore une variante :According to another variant:
- la clé privée et la clé publique sont associées à un algorithme de cryptage RSA en mode standard ;the private key and the public key are associated with an RSA encryption algorithm in standard mode;
- l'objet conteneur mémorise les éléments n, e et d, n étant le module RSA, e étant l'exposant public, et d étant l'exposant privé ; - la méthode d'accès associée à l'objet clé privée fournit en outre un accès à n et d ;the container object stores the elements n, e and d, n being the RSA module, e being the public exponent, and d being the private exponent; the access method associated with the private key object further provides access to n and d;
- la méthode d'accès associée à l'objet clé publique fournit un accès uniquement aux éléments n et e. Selon encore une autre variante :the access method associated with the public key object provides access only to the elements n and e. According to yet another variant:
- la clé privée et la clé publique sont associées à un algorithme de cryptage RSA en mode CRT ;the private key and the public key are associated with an RSA encryption algorithm in CRT mode;
- l'objet conteneur mémorise les éléments n, e, p, q, dp, dq et iq, tels que dp= d modulo (p-1), dq= d modulo (q-1) et iq = q"1 modulo p, n étant le module RSA, p et q étant les nombres premiers distincts, n étant le module RSA et e étant l'exposant public ;the container object stores the elements n, e, p, q, dp, dq and iq, such that dp = d modulo (p-1), dq = d modulo (q-1) and iq = q "1 modulo p, n being the RSA module, p and q being the distinct prime numbers, n being the RSA module and e being the public exponent;
- la méthode d'accès associée à l'objet clé privée fournit en outre un accès à p, q, dp, dq et iq ;the access method associated with the private key object further provides access to p, q, dp, dq and iq;
- la méthode d'accès associée à l'objet clé publique fournit un accès uniquement aux éléments n et e.the access method associated with the public key object provides access only to the elements n and e.
On peut encore prévoir que l'appareil portatif soit contrôlé par un interpréteur du type Java ou Javacard.We can also predict that the portable device is controlled by an interpreter of the Java or Javacard type.
L'invention porte également sur un procédé de signature dans lequel la clé privée et la clé publique sont associées à un algorithme de cryptage RSA, ce procédé comprenant les étapes des procédés de stockage ci-dessus et les étapes suivantes :The invention also relates to a signature method in which the private key and the public key are associated with an RSA encryption algorithm, this method comprising the steps of the above storage methods and the following steps:
- générer une signature électronique associée à la clé privée ;generate an electronic signature associated with the private key;
- lire l'exposant public e par une méthode associée à l'objet conteneur;- read the public exponent e by a method associated with the container object;
- vérifier la signature électronique générée au moyen de l'exposant public e;- check the electronic signature generated by means of the public exhibitor e;
- fournir la signature électronique vérifiée sur une sortie de l'appareil électronique.- provide the verified electronic signature on an output of the electronic device.
L'invention porte encore sur un appareil électronique portatif présentant une mémoire mémorisant une application mettant en œuvre un algorithme à clé publique, une clé privée stockée dans la mémoire par l'un quelconque des procédés ci-dessus, et un organe de calcul susceptible d'exécuter ladite application. Selon une variante, l'appareil électronique portatif est une carte à puce. çThe invention also relates to a portable electronic device having a memory storing an application implementing a public key algorithm, a private key stored in the memory by any of the methods above, and a computing device capable of execute said application. According to one variant, the portable electronic device is a smart card. vs
D'autres caractéristiques et avantages de l'invention ressortiront clairement de la description qui en est feite ci-après, à titre indicatif et nullement limitatif, en référence aux dessins annexés, dans lesquels :Other features and advantages of the invention will emerge clearly from the description which is given below, by way of indication and in no way limitative, with reference to the appended drawings, in which:
-la figure 1 illustre des objets mémorisés dans une carte à puce selon une première variante de l'invention ;FIG. 1 illustrates objects stored in a smart card according to a first variant of the invention;
-la figure 2 illustre des objets mémorisés dans une carte à puce selon une seconde variante de l'invention.FIG. 2 illustrates objects stored in a smart card according to a second variant of the invention.
L'invention propose de créer un objet associé à une clé d'un algorithme à clé publique. Cet objet ne contient aucun élément de la clé publique ou de la clé privée. Un objet conteneur est créé pour mémoriser les éléments de la clé privée et certains éléments de la clé publique. Une méthode d'accès est associée à l'objet clé pour accéder aux éléments mémorisés dans l'objet conteneur.The invention proposes to create an object associated with a key of a public key algorithm. This object does not contain any element of the public key or the private key. A container object is created to store the elements of the private key and certain elements of the public key. An access method is associated with the key object to access the items stored in the container object.
Le stockage des différents éléments dans un même objet conteneur permet notamment de réduire l'espace mémoire occupé par ces éléments, du fait de la mise en commun de certains d'entre eux (par exemple le module).The storage of the different elements in the same container object makes it possible in particular to reduce the memory space occupied by these elements, because of the pooling of some of them (for example the module).
L'invention s'applique à un appareil numérique portatif (non représenté), qui embarque au moins une application utilisant un algorithme à clé publique. Cet appareil embarque également un interpréteur de programme écrit en langage orienté objet, tel que Java ou JavaCard (marque déposée). L'interpréteur et l'application sont par exemple mémorisés dans une mémoire non volatile incluse dans l'appareil portatif numérique, telle qu'une EEPROM. L'appareil est également muni de moyens d'exécution de l'application à clé publique. La figure 1 illustre une première variante de l'invention. Selon cette variante, on crée dans un premier temps un objet « couple de clés » 1 dans la mémoire non volatile de l'appareil. Cet objet 1 présente un entête 11 et est associé à au moins une méthode de génération d'un couple de clés par le champ 14. Cette méthode est appelée et génère de façon connue en soi un couple de clés liées mathématiquement, comprenant une clé publique et une clé privée. On peut également envisager que les clés soient créées au préalable et mémorisées lors d'un chargement dans l'appareil.The invention applies to a portable digital device (not shown), which embeds at least one application using a public key algorithm. This device also embeds a program interpreter written in object-oriented language, such as Java or JavaCard (registered trademark). The interpreter and the application are for example stored in a non-volatile memory included in the portable digital device, such as an EEPROM. The apparatus is also provided with means for executing the public key application. Figure 1 illustrates a first variant of the invention. According to this variant, a "key pair" object 1 is first created in the non-volatile memory of the device. This object 1 has a header 11 and is associated with at least one method of generating a key pair by the field 14. This method is called and generates in a known manner a pair of keys mathematically related, including a public key and a private key. It is also conceivable that the keys are created beforehand and stored during loading into the device.
Un objet 2 est créé pour la clé publique et un objet 3 est créé pour la clé privée. L'objet 1 présente des champs 12 et 13 comprenant chacun une référence vers respectivement l'objet clé publique 2 et vers l'objet clé privée 3. Les objets 2 et 3 présentent respectivement les entêtes 21 et 31. Les objets de type clé 2 et 3 sont mémorisés dans une mémoire non volatile de l'appareil. On notera que ces objets 2 et 3 ne contiennent aucun élément du couple de clés créé. La méthode de génération du couple de clés comprend également la création d'un objet conteneur 5, commun à la clé publique et à la clé privée. Les objets 2 et 3 présentent respectivement des champs 22 et 32 contenant des références à l'objet conteneur 5. Au sein des méthodes de chaque objet clé, on peut accéder à des éléments prédéfinis de l'objet conteneur 5. Cet objet conteneur 5 comprend un entête 51 et l'ensemble des éléments répartis dans plusieurs champs 52 à 54. L'objet conteneur 5 est également mémorisé dans une mémoire non volatile de l'appareil. Les éléments du couple de clés ne sont pas stockés dans les objets clés mais dans l'objet conteneur 5. Ainsi, les accès à un élément dans l'objet conteneur 5 peuvent être gérés simplement en fonction des méthodes associées aux objets clés 2 et 3. Le cloisonnement entre l'objet clé publique et l'objet clé privée est ainsi réalisé par les méthodes d'accès respectives des objets 2 et 3 aux éléments de l'objet conteneur 5.An object 2 is created for the public key and an object 3 is created for the private key. Object 1 has fields 12 and 13 each including a reference to respectively the public key object 2 and to the private key object 3. The objects 2 and 3 respectively have the headers 21 and 31. The key type objects 2 and 3 are stored in a nonvolatile memory of the device. Note that these objects 2 and 3 do not contain any element of the key pair created. The method of generating the key pair also includes the creation of a container object 5, common to the public key and the private key. The objects 2 and 3 respectively have fields 22 and 32 containing references to the container object 5. Within the methods of each key object, it is possible to access predefined elements of the container object 5. This container object 5 comprises a header 51 and all the elements distributed in several fields 52 to 54. The container object 5 is also stored in a non-volatile memory of the device. The elements of the key pair are not stored in the key objects but in the container object 5. Thus, access to an element in the container object 5 can be managed simply according to the methods associated with the key objects 2 and 3 The partitioning between the public key object and the private key object is thus achieved by the respective access methods of the objects 2 and 3 to the elements of the container object 5.
Dans l'exemple de la figure 1, les éléments mémorisés dans l'objet conteneur 5 sont associés à un algorithme RSA standard. L'objet clé publique 2 est associé à une méthode d'accès aux éléments publics de l'objet conteneur 5. Ces éléments sont en l'occurrence n (le module) et e (l'exposant public) et sont stockés respectivement dans les champs 52 et 53. L'objet clé publique 2 est également associé à une méthode d'accès aux éléments publics de l'objet conteneur 5. L'objet clé publique 2 n'est en revanche pas associé à une méthode d'accès à un élément privé de l'objet conteneur 5. Ainsi, aucune méthode associée à l'objet clé publique 2 ne permet d'accéder aux éléments de la clé privée.In the example of FIG. 1, the elements stored in the container object 5 are associated with a standard RSA algorithm. The public key object 2 is associated with a method for accessing the public elements of the container object 5. These elements are in this case n (the module) and e (the public exponent) and are stored respectively in the fields 52 and 53. The public key object 2 is also associated with a method for accessing the public elements of the container object 5. The public key object 2 is, however, not associated with a method of accessing the public object 2. a private element of the container object 5. Thus, no method associated with the public key object 2 provides access to the elements of the private key.
L'objet clé privée 3 est associé à une méthode d'accès uniquement aux éléments privés de l'objet conteneur 5. Le champ 54 contient les éléments privés (en l'occurrence d correspondant à l'exposant privé). Aucune méthode d'accès associée à l'objet clé privée ne permet de récupérer des éléments de la clé publique.The private key object 3 is associated with a method of access only to the private elements of the container object 5. The field 54 contains the private elements (in this case d corresponding to the private exponent). No access method associated with the private key object can retrieve elements of the public key.
Selon la variante illustrée à la figure 2, l'appareil mémorise seulement un objet de clé privée 6 et pas d'objet de clé publique. L'objet 6 présente un entête 61 et un champ 62 contenant une référence à l'objet conteneur 7. L'objet 6 est associé à une méthode d'accès uniquement aux éléments privés (p, q, dp, dq et iq).According to the variant illustrated in FIG. 2, the apparatus stores only a private key object 6 and no public key object. Object 6 has a header 61 and a field 62 containing a reference to the container object 7. The object 6 is associated with a method of access only to the private elements (p, q, dp, dq and iq).
L'objet conteneur 7 comprend un entête 71 et des champs d'éléments 72 et 73. Le champ 72 comprend les éléments privés p, q, dp, dq et iq (éléments pour un cryptage RSA en mode CRT, avec dp = d modulo (p-1), dq = d modulo (q-1) et iq = q'1 modulo p) et le champ 73 comprend l'élément public e.The container object 7 comprises a header 71 and element fields 72 and 73. The field 72 comprises the private elements p, q, dp, dq and iq (elements for RSA encryption in CRT mode, with dp = d modulo (p-1), dq = d modulo (q-1) and iq = q '1 modulo p) and the field 73 includes the public element e.
Dans ces deux exemples, l'objet conteneur 5 ou 7 peut stocker une méthode de récupération d'éléments publics et en particulier de l'exposant public e. Cette méthode est rendue utilisable uniquement par une fonction de vérification qui utilise l'exposant public e pour tester la validité de signatures générées à partir des éléments privés. Une signature non valide ne sera pas appliquée sur la sortie de l'appareil électronique. Une attaque par injection de faute lors de la génération de la signature sera donc inopérante.In these two examples, the container object 5 or 7 can store a method of retrieving public elements and in particular the public exponent e. This method is made usable only by a verification function that uses the public exponent e to test the validity of signatures generated from private elements. An invalid signature will not be applied to the output of the electronic device. An attack by fault injection during the generation of the signature will therefore be inoperative.
Cette fonction de vérification cryptographique peut être incluse sans accroître excessivement l'espace occupé dans la mémoire non volatile de l'appareil numérique. En effet, un unique exemplaire de l'exposant e est accessible par une méthode d'accès de l'objet clé publique et est utilisable par la fonction de vérification. This cryptographic verification function can be included without unduly increasing the space occupied in the non-volatile memory of the digital apparatus. Indeed, a single copy of the exponent e is accessible by an access method of the public key object and is usable by the verification function.

Claims

REVENDICATIONS
1. Procédé de stockage d'une clé d'un algorithme à clé publique dans un appareil portatif muni d'un interpréteur de programme écrit dans un langage orienté objet, caractérisé en ce qu'il comprend les étapes consistant à :1. A method of storing a key of a public key algorithm in a portable device provided with a program interpreter written in an object-oriented language, characterized in that it comprises the steps of:
- créer dans l'appareil au moins un objet conteneur (5), mémorisant au moins un élément d'une clé privée (54, 72) et au moins un élément (53, 73) d'une clé publique associée ;- Create in the device at least one container object (5), storing at least one element of a private key (54, 72) and at least one element (53, 73) of an associated public key;
- créer dans l'appareil au moins un objet clé (3), dit objet clé privée, ne contenant aucun élément de la clé privée et de la clé publique associée ;- Create in the device at least one key object (3), said private key object, containing no element of the private key and the associated public key;
- associer l'objet clé privée à au moins une méthode d'accès aux seuls éléments de la clé privée mémorisés dans l'objet conteneur ;associating the private key object with at least one access method to only those elements of the private key stored in the container object;
- créer dans l'appareil au moins un autre objet clé (3), dit objet clé publique, ne contenant aucun élément de la clé privée ou de la clé publique associée ; - associer l'objet clé publique, à au moins une méthode d'accès aux seuls éléments de la clé publique mémorisés dans l'objet conteneur.- Create in the device at least one other key object (3), called public key object, containing no element of the private key or the associated public key; associating the public key object with at least one method of access to only the elements of the public key stored in the container object.
2. Procédé de stockage selon la revendication 1, caractérisé en ce que :Storage method according to claim 1, characterized in that:
- la clé privée et la clé publique sont associées à un algorithme de cryptage RSA en mode standard ;the private key and the public key are associated with an RSA encryption algorithm in standard mode;
- l'objet conteneur mémorise les éléments n, e et d, n étant le module RSA, e étant l'exposant public, et d étant l'exposant privé ;the container object stores the elements n, e and d, n being the RSA module, e being the public exponent, and d being the private exponent;
- la méthode d'accès associée à l'objet clé privée fournit en outre un accès à n et d ; - la méthode d'accès associée à l'objet clé publique fournit un accès uniquement aux éléments n et e.the access method associated with the private key object further provides access to n and d; the access method associated with the public key object provides access only to the elements n and e.
3. Procédé de stockage selon la revendication 1, caractérisé en ce que :3. Storage method according to claim 1, characterized in that:
- la clé privée et la clé publique sont associées à un algorithme de cryptage RSA en mode CRT ;the private key and the public key are associated with an RSA encryption algorithm in CRT mode;
- l'objet conteneur mémorise les éléments n, e, p, q, dp, dq et iq, tels que dp≈ d modulo (p-1), dq= d modulo (q-1) et iq = q"1 modulo p, n étant le module RSA, p et q étant les nombres premiers distincts, n étant le module RSA et e étant l'exposant public ;the container object stores the elements n, e, p, q, dp, dq and iq, such that dp≈ d modulo (p-1), dq = d modulo (q-1) and iq = q "1 modulo p, n being the RSA module, p and q being the distinct prime numbers, n being the RSA module and e being the public exponent;
- la méthode d'accès associée à l'objet clé privée fournit en outre un accès à p, q, dp, dq et iq ; - la méthode d'accès associée à l'objet clé publique fournit un accès uniquement aux éléments n et e.the access method associated with the private key object further provides access to p, q, dp, dq and iq; the access method associated with the public key object provides access only to the elements n and e.
4. Procédé de stockage selon l'une quelconque des revendications précédentes, caractérisé en ce que l'appareil portatif est contrôlé par un interpréteur du type Java ou Javacard.4. Storage method according to any one of the preceding claims, characterized in that the portable device is controlled by an interpreter of Java or Javacard type.
5. Procédé de signature dans lequel la clé privée et la clé publique sont associées à un algorithme de cryptage RSA, ce procédé comprenant les étapes du procédé de stockage selon l'une quelconque des revendications précédentes et les étapes suivantes :5. Signature method in which the private key and the public key are associated with an RSA encryption algorithm, this method comprising the steps of the storage method according to any one of the preceding claims and the following steps:
- générer une signature électronique associée à la clé privée ;generate an electronic signature associated with the private key;
- lire l'exposant public e par une méthode associée à l'objet conteneur;- read the public exponent e by a method associated with the container object;
- vérifier la signature électronique générée au moyen de l'exposant public e;- check the electronic signature generated by means of the public exhibitor e;
- fournir la signature électronique vérifiée sur une sortie de l'appareil électronique.- provide the verified electronic signature on an output of the electronic device.
6. Appareil électronique portatif, caractérisé en ce qu'il présente une mémoire mémorisant une application mettant en œuvre un algorithme à clé publique, une clé privée stockée dans la mémoire par le procédé selon l'une quelconque des revendications 1 à 5 et un organe de calcul susceptible d'exécuter ladite application.6. Portable electronic device, characterized in that it has a memory storing an application implementing a public key algorithm, a private key stored in the memory by the method according to any one of claims 1 to 5 and an organ calculation capable of executing said application.
7. Appareil électronique portatif selon la revendication 6, caractérisé en ce qu'il s'agit d'une carte à puce. 7. Portable electronic device according to claim 6, characterized in that it is a smart card.
PCT/EP2005/053084 2004-07-12 2005-06-29 Storage of keys of a public key algorithm in an integrated environment WO2006005685A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0407761A FR2872936B1 (en) 2004-07-12 2004-07-12 KEY STORAGE OF A PUBLIC KEY ALGORITHM IN AN ONBOARD ENVIRONMENT
FR0407761 2004-07-12

Publications (1)

Publication Number Publication Date
WO2006005685A1 true WO2006005685A1 (en) 2006-01-19

Family

ID=34947691

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/053084 WO2006005685A1 (en) 2004-07-12 2005-06-29 Storage of keys of a public key algorithm in an integrated environment

Country Status (2)

Country Link
FR (1) FR2872936B1 (en)
WO (1) WO2006005685A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120842A1 (en) * 2000-11-29 2002-08-29 Helge Bragstad Method, apparatus and computer program product for interoperable cryptographic material

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120842A1 (en) * 2000-11-29 2002-08-29 Helge Bragstad Method, apparatus and computer program product for interoperable cryptographic material

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BURTON S. KALISKI, MATTHEW J.B. ROBSHAW: "Comments on Some New Attacks on Cryptographic Devices", RSA LABORATORIES BULLETIN, no. 5, 1997, XP002321070, Retrieved from the Internet <URL:http://www.comms.scitech.susx.ac.uk/fft/crypto/RSAbulletin/bulletn5.pdf> [retrieved on 20050304] *
JAVA CRYPTOGRAPHY ARCHITECTURE, 4 August 2002 (2002-08-04), API SPECIFICATION AND REFERENCE, XP002321071, Retrieved from the Internet <URL:http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html#KeystoreLocation> [retrieved on 20050310] *
SCHEIBELHOFER K.: "Using Opencard in combination with the java cryptographic architecture for digital signing"", PROCEEDINGS OF GEMPLUS DEVELOPER CONFERENCE GDC'200, 20 June 2000 (2000-06-20), MONTPELLIER, XP002321069, Retrieved from the Internet <URL:http://www.iaik.tu-graz.ac.at/research/publications/2000/gdc2000.pdf> [retrieved on 20050310] *

Also Published As

Publication number Publication date
FR2872936A1 (en) 2006-01-13
FR2872936B1 (en) 2007-02-16

Similar Documents

Publication Publication Date Title
EP3033857B1 (en) Binary code authentication
FR3015080A1 (en) INTEGRITY VERIFICATION OF PAIR OF CRYPTOGRAPHIC KEYS
WO2000042734A1 (en) Public and private key cryptographic method
EP2296086A1 (en) Protection of prime number generation against side-channel attacks
EP1904921A1 (en) Cryptographic method for securely implementing an exponentiation and related component
WO2005022820A1 (en) Method for the secure application of a cryptographic algorithm of the rsa type and corresponding component
EP2772869B1 (en) Method and system for cryptographic processing using sensitive data
EP2572470A1 (en) Method of obtaining encryption keys, corresponding terminal, server, and computer program products.
US20090175441A1 (en) Method for protecting data against differntial fault analysis involved in rivest, shamir, and adleman cryptography using the chinese remainder theorem
EP1449067B1 (en) Method and system for making secure a pseudo-random generator
FR2828608A1 (en) Integrated circuit card fraud resistant encryption algorithm having exponential operation U=VW modulo X where U,V and X are whole numbers and W random/masked and fractional number formed.
WO2006005685A1 (en) Storage of keys of a public key algorithm in an integrated environment
RU2471300C2 (en) Method and device to generate compressed rsa module
EP3166013B1 (en) Modular exponentiation using randomized addition chains
EP3198540A1 (en) Method of auto-detection of attempted piracy of an electronic payment card, corresponding card, terminal and programme
FR3069993A1 (en) DEVICES AND METHODS FOR MASKING RSA ENCRYPTION OPERATIONS
EP1523823A2 (en) Method of generating electronic keys for a public-key cryptography method and a secure portable object using said method
FR3107416A1 (en) EFFECTIVE RANDOM TOKENIZATION IN A DEMATERIALIZED ENVIRONMENT
EP3482524B1 (en) Method for generating parameters characterizing a cryptographic protocol
FR3004042A1 (en) METHODS OF GENERATING AND USING PRIVATE CRYPTOGRAPHIC KEYS FOR RSA-CRT OR RSA-CRT VARIANTS
FR3088452A1 (en) METHOD FOR VERIFYING INTEGRITY OF A PAIR OF CRYPTOGRAPHIC KEYS AND CRYPTOGRAPHIC DEVICE
FR3103922A3 (en) SECURE TOKEN STORAGE
WO1998037662A1 (en) Cryptographic system comprising a ciphering and deciphering system and a key escrow system and associated appliances and devices
WO2015132524A2 (en) Message generation for a cryptographic keys generation test
WO2003069841A1 (en) Method for detection of attacks on cryptographic algorithms by trial and error

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 BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA 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 HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase