Abstract

The invention relates to a method of generating electronic keys (d) for a public-key cryptography method using an electronic device. The inventive method comprises two separate calculation steps, namely: step A consisting in (i) calculating pairs of prime numbers (p, q), said calculation being independent of knowledge of the pair (e, l) in which e is the public exponent and l is the length of the key of the cryptography method, and (ii) storing the pairs thus obtained; and step B which is very quick and can be executed in real time by the device, consisting in calculating a key d from the results of step A and knowledge of the pair (e, l).

1) L'exposant public e : Il est propre à une application et est fourni par cette application. 1) The public exponent e: It is specific to an application and is provided by this application.De ce fait, il est commun à tous les utilisateurs de cette même application. Therefore, it is common to all users of the same application.

3) N est le module public et est calculé à partir de la relation suivante : 3) N is the public modulus and is calculated from the following relationship:

N = p*q N = p * q

La clé de l'algorithme est dite de longueur i , lorsque le module public N est de longueur i . The key of the algorithm is called i length, when the public modulus N is of length i.Cette longueur est fixée par l'application (ou fournisseur de service) . This length is determined by the application (or service provider).

Lorsque plusieurs applications sont prévues, chaque fournisseur de service fournit son exposant public e et la longueur du module public N, de manière à ce que puisse être générée la clé privée d correspondante . When multiple applications are planned, each service provider provides its public exponent e and the length of the public modulus N, so that can be generated for the corresponding private key.

Selon une première manière, le calcul d'une clé RSA est effectué sur un serveur pour profiter d'une puissance de calcul importante. In a first way, the calculation of an RSA key is performed on a server to enjoy a significant computational power.On requiert alors pour plus de sécurité, un certificat que l'on télécharge avec la clé au sein de l'objet sécurisé lors de sa phase de personnalisation. It then calls for more security, a certificate that is downloaded with the key in the secure object at its personalization stage.

Cette solution présente deux inconvénients. This solution has two drawbacks.: - d'une part malgré le cadre relativement sécurisé de la personnalisation, il peut y avoir vol ou duplication de la clé du fait de son transfert du serveur vers l'objet sécurisé, et - d'autre part, chaque clé est chargée dans l'objet dans une phase initiale de personnalisation, ce qui nécessite de prévoir un maximum de clés dans chaque objet pour pouvoir anticiper les futurs besoins. : - firstly despite the relatively secure part of customizing, there may be theft or key duplication due to his transfer from the server to the secured object, and - secondly, each key is loaded into the object in an initial phase of customization, which requires providing a maximum of keys in each subject in order to anticipate future needs.

Dans la pratique, on stocke dans l'objet portable des ensembles de clés et de certificats correspondant à chaque application susceptible d'être utilisée, sans savoir si ces clés seront réellement utiles ultérieurement . In practice, stored in the portable object of sets of keys and certificates for each application that can be used, without knowing whether these keys will be really useful later.Un emplacement mémoire important est utilisé inutilement. An important memory location is used unnecessarily.Par exemple 0,3 Koctets sont nécessaires pour une clé de RSA de module de 1024bits, alors que les cartes actuelles ont au plus 32Koctets de mémoire programmable. For example 0.3 Kbytes are required for key RSA 1024bits module, while the current cards have no 32KBytes programmable memory.En outre, un nombre important de certificats est acheté à l'entité de confiance ce qui est coûteux. In addition, a significant number of certificates is purchased trusted entity which is expensive.L'inconvénient ultime mais tout aussi important est qu'il n'est pas possible d'ajouter de nouvelles clés au fur et à mesure que de nouvelles applications pourraient être envisagées. The ultimate downside but equally important is that it is not possible to add new keys as and as new applications could be considered.

Selon une deuxième solution, le calcul peut être effectué au sein de l'objet sécurisé. According to a second solution, the calculation can be performed within the secure object.Cela résout le premier inconvénient de la solution précédente mais crée une lourdeur de traitement au niveau de l'objet sécurisé qui possède une faible capacité de calcul. This solves the first drawback of the above solution but creates a processing burden at the secured object which has low computing capacity.

Du fait d'un besoin en ressources de calcul important, les clés sont toujours crées durant la phase de personnalisation à partir des exposants publics e fournis par les différentes entités fournisseur de service. Due to a need for significant computing resources, the keys are always created during the customization phase from the public exponents e provided by different service provider entities.Cette étape de calcul ne peut pas être mise en œuvre ultérieurement car elle paralyserait le fonctionnement de l'objet. This calculation step can not be subsequently implemented because it would paralyze the functioning of the object.

De façon pratique ce calcul n'est pas mis en œuvre par la carte. In practice this calculation is not implemented by the card.En effet, ce calcul est long et il pourrait ralentir la phase de personnalisation, de plus sa durée est variable et elle pourrait se révéler incompatible avec les procédés de personnalisation des cartes à puce. Indeed, this calculation is long and it could slow the personalization phase, over its duration is variable and may be incompatible with the methods of personalization of smart cards.

D'autre part, cette solution présente toujours le second inconvénient de la solution précédente à savoir la nécessité de ressource mémoire. Moreover, this solution still has the second disadvantage of the above solution is the need of memory resource.

La présente invention a pour but de résoudre ces problèmes . The present invention aims to solve these problems.

Plus précisément l'invention a pour objectif de résoudre le problème de lourdeur du calcul lié à la gestion de génération de clés ainsi que le problème de manque de flexibilité dû au stockage initial et définitif d'un nombre important de clés et de certificats en phase de personnalisation. More specifically, the invention aims to solve the calculation cumbersome problem with key generation and management inflexibility problem due to the initial and final disposal of a large number of keys and certificates in phase customization.A cette fin, un objet de la présente invention concerne un procédé de génération de clés électroniques d pour procédé de cryptographie à clé publique au moyen d'un dispositif électronique, principalement caractérisé en ce qu'il comprend deux étapes de calcul dissociées : To this end, an object of the present invention relates to an electronic key generating method of for public key cryptography method using an electronic device, mainly characterized in that it comprises two calculating steps dissociated:

D'autres particularités et avantages de l'invention apparaîtront clairement à la lecture de la description qui est donnée ci-après à titre d'exemple non limitatif et en regard de la figure unique représentant un schéma d'un système de mise en œuvre du procédé. Other features and advantages of the invention will become apparent from reading the description given below by way of example and by reference to the single figure showing a diagram of an implementation system process.

La suite de la description est faite dans le cadre de l'application de l'invention à un objet portatif de type carte à puce et pour simplifier l'expression on parlera de carte à puce. The following description is made in connection with the application of the invention to a portable object of type smartcard and to simplify the expression we speak of smart card.

Selon le procédé proposé la génération de clés se fait en deux étapes dissociées. According to the method proposed key generation is performed in two steps separated.La première Etape A comporte un calcul de couples de nombres premiers (p,q) ou de valeurs représentatives de couples de nombres premiers appelée image. The first step comprises a calculation primes of pairs (p, q) or values ​​representative of primes couples called a frame.

- On peut procéder alors au calcul de la clé d à partir du couple (p f q) obtenu à l'issue de cette vérification. - We can then proceed to calculate the key d from the pair (p f q) obtained at the end of this audit.

La première étape qui correspond à un calcul relativement lourd par rapport à la deuxième étape, peut être exécutée par un autre organe que la carte à puce par exemple par un serveur. The first step which corresponds to a relatively heavy computation with respect to the second step, may be performed by another member that the smart card for example by a server.Dans ce cas, les résultats du calcul de cette première étape pourront être chargés sur une carte à puce au moment de la personnalisation. In this case, the calculation results of this first stage will be loaded onto a smart card at the time of personalization.Le calcul de l'étape A peut également être fait par la carte elle-même à un instant quelconque qui ne gêne pas l'utilisateur de cette carte. The calculation of step A can also be done by the card itself at any time that does not distract the user of this card.Par exemple, ce calcul peut être fait lors de la personnalisation de la carte ou plus tard: De façon pratique, lors de l'utilisation de la carte, .pour obtenir un service, si une clé privée est nécessaire, alors la clé publique est fournie par le fournisseur de service (éventuellement à distance si elle n'est pas déjà stockée dans la carte) afin de générer la clé privée. For example, this calculation can be done during the card personalization or later: In practice, when using the card, .to get service if a private key is required, then the public key is provided by the service provider (possibly remotely if it is not already stored in the card) to generate the private key.Cette étape de génération (étape B de calcul) est effectuée de manière rapide par la carte . This generation step (step B calculation) is quickly performed by the card.

On voit également qu'il n'y a pas besoin d'associer un certificat aux couples (p,q) car ils ne sont pas associés à une clé privée. We also see that there is no need to associate a certificate to the pairs (p, q) because they are not associated with a private key.

La deuxième phase consiste ensuite à partir de ce nombre k à construire le premier candidat q qui satisfait la condition d'être copremier avec π . The second phase is then from that number k to construct the first candidate q which satisfies the condition of being co-Prime with π.

On va présenter dans la suite les différentes étapes de l'algorithme de génération d'un nombre premier entrant dans le calcul d'une clé RSA selon l'invention. We will present in the following the different steps of the algorithm for generating a prime number used in calculating an RSA key according to the invention.L'algorithme proposé fonctionne quelle que soit la longueur lo donnée pour le nombre premier q qui doit être généré . The proposed algorithm works regardless of the length lo given to the prime number q to be generated.

La génération du nombre premier p est identique, il suffit de remplacer q par p dans les étapes qui vont être développées et de remplacer lo par l-lo. The generation of the prime p is the same, just replace q with p in the steps that will be developed and replaced by lo-lo.

Afin que la condition i) énoncée au début de la description soit remplie, il faut choisir a tel que a=l (mod e) et forcer k( 0 ) de manière à ce qu'il soit différent de 1 (mod e) . So that the condition i) stated at the beginning of the description be met is to choose a such that a = l (mod e) and force k (0) so that it is different from 1 (mod e).

Method and integrated system for making secure the pre- initialization phase of a silicon chip integrated system, such as a smart card, uses symmetric secret key and asymmetric public key and associated algorithms

User`s eligibility identifying method for telecommunication applications, involves sending response confirming or invalidating authenticity of barcode based on presence or absence of barcode in database and displaying response on terminal

Method for secure transaction of goods and services over a mobile telephone using a cellular network, uses network operator as trusted third party, and separate paths to client and vendor to authenticate each