[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

FR2734679A1 - Public key encryption based on discrete logarithms - Google Patents

Public key encryption based on discrete logarithms Download PDF

Info

Publication number
FR2734679A1
FR2734679A1 FR9506068A FR9506068A FR2734679A1 FR 2734679 A1 FR2734679 A1 FR 2734679A1 FR 9506068 A FR9506068 A FR 9506068A FR 9506068 A FR9506068 A FR 9506068A FR 2734679 A1 FR2734679 A1 FR 2734679A1
Authority
FR
France
Prior art keywords
exponent
sep
exponents
bits
entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9506068A
Other languages
French (fr)
Other versions
FR2734679B1 (en
Inventor
Raihi David M
David Naccache
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Priority to FR9506068A priority Critical patent/FR2734679B1/en
Publication of FR2734679A1 publication Critical patent/FR2734679A1/en
Application granted granted Critical
Publication of FR2734679B1 publication Critical patent/FR2734679B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • 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/3013Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

The public key cryptographic method generates a random exponent k of length N bits. The Hamming weights C of the exponent are computed and compared to a pre-set value h to determine whether the random value k produces Hamming weights greater than the pre-set value. If it does not the exponent k is rejected and a new random exponent is generated and tested. A value k that generates satisfactory Hamming weights is retained, and used to compute the expression y = g<x>(modp), where g is an integer base and p the modulus, and x is unknown. This expression is then used the exchanges of information with the other entity in the communication.

Description

PROCEDE DE CRYPTOGRAPHIE A CLE PUBLIQUE
BASE SUR LE LOGARITHME DISCRET
La présente invention a pour objet un procédé de cryptographie dite à clé publique basé sur le logarithme discret faisant intervenir le calcul d'une grandeur modulo p.
PUBLIC KEY CRYPTOGRAPHY PROCESS
BASED ON DISCREET LOGARITHM
The present invention relates to a so-called public key cryptography method based on the discrete logarithm involving the calculation of a modulo p quantity.

Elle trouve une application dans la génération de signatures numériques de messages, dans une cession d'authentification entre deux entités ou dans le chiffrement de données. It finds an application in the generation of digital signatures of messages, in a transfer of authentication between two entities or in the encryption of data.

Dans de telles procédures, la sécurité est fondée sur l'e'trême difficulté qu'il y a à inverser certaines fonctions et plus particulièrement le logarithme discret. In such procedures, security is based on the extreme difficulty there is in reversing certain functions and more particularly the discrete logarithm.

Ce problème consiste, étant donné la relation mathématique y = gXmodulop que l'on notera par la suite y = gXmodp (qui signifie y est le reste de la division de gX par p), à retrouver x lorsque l'on sonnait p, g et y. Ce problème est impossible à résoudre, en l'état actuel des connaissances, dès que la taille p atteint ou dépasse 512 bits et que celle de x atteint ou dépasse 128 bits. This problem consists, given the mathematical relation y = gXmodulop which we will subsequently denote by y = gXmodp (which means y is the remainder of the division of gX by p), to find x when we sound p, g and y. This problem is impossible to solve, in the current state of knowledge, as soon as the size p reaches or exceeds 512 bits and that of x reaches or exceeds 128 bits.

Dans de tels systèmes, il existe en général une autorité qui fournit le nombre p de grande taille, constituant le module. L'autorité choisit également un entier g, appelé base tel que l'ensemble engendré par g c'est-à-dire l'ensemble formé des nombres gXmodp, pour x appartenant à l'intervalle [0, p-i] soit un sousensemble de taille maximale, au moins 2128. In such systems, there is generally an authority which supplies the large number p constituting the module. The authority also chooses an integer g, called base such that the set generated by g that is to say the set formed of the numbers gXmodp, for x belonging to the interval [0, pi] is a subset of maximum size, at least 2128.

Les paramètres p et g sont dits "publics" c'est-àdire qu'ils sont fournis par l'autorité à tous les utilisateurs rattachés à cette autorité. The parameters p and g are said to be "public", that is to say that they are provided by the authority to all the users attached to this authority.

Selon certaines variantes, ces paramètres sont choisis individuellement par chaque utilisateur et font, dans ce cas, partie intégrante de sa clé publique. According to certain variants, these parameters are chosen individually by each user and, in this case, form an integral part of his public key.

Un inconvénient majeur à la mise en oeuvre de systèmes cryptographiques réside dans la nécessité d'avoir des moyens de calcul et de mémorisation relativement importants du fait des calculs complexes qui sont réalisés. A major drawback to the implementation of cryptographic systems lies in the need to have relatively large calculation and storage means due to the complex calculations which are carried out.

En effet, le calcul de la grandeur gkmodp consiste à réaliser des multiplications modulaires et cela est coûteux en temps de calcul et en place mémoire. Dans des dispositifs électroniques simples n'utilisant que des microprocesseurs standards, ce type d'opération n'est guère réalisable. Indeed, the calculation of the magnitude gkmodp consists in carrying out modular multiplications and this is costly in calculation time and in memory space. In simple electronic devices using only standard microprocessors, this type of operation is hardly possible.

Pour des dispositifs électroniques possédant un processeur spécialisé pour ce type de calcul, il est malgré tout souhaitable de limiter, le temps de calcul et la place mémoire nécessaire pour les résultats intermédiaires. For electronic devices having a specialized processor for this type of calculation, it is despite everything desirable to limit the calculation time and the memory space required for the intermediate results.

En effet, le calcul de la grandeur gkmodp est en général relativement coûteux par la méthode classique du "carré-multiplié" connue sous l'abréviation anglosaxonne SQM (Square-Multiply) puisqu'il équivaut en moyenne à 3/2 Log2(p) multiplications. Indeed, the calculation of the size gkmodp is in general relatively expensive by the classic method of the "square-multiplied" known by the English abbreviation SQM (Square-Multiply) since it is equivalent on average to 3/2 Log2 (p) multiplications.

Selon cette méthode on calcule toutes les puissances de g c'est à dire tous les carrés : go, gl, g2.. .gn, lorsque k est de longueur n bits, puis on réalise les multiplications requises entre ces puissances ( par exemple g17= g1.g16 ). According to this method, we calculate all the powers of g, i.e. all the squares: go, gl, g2 ... .gn, when k is of length n bits, then we carry out the required multiplications between these powers (for example g17 = g1.g16).

Selon la méthode du "carré multiplié" simple gk requiert n/2 multiplications et n carrés. According to the simple "multiplied square" method gk requires n / 2 multiplications and n squares.

Dans le cas ou N signatures sont à fournir en une seule fois, on produit Ngk, on réalise alors un calcul en parallele. In the case where N signatures are to be provided at once, one produces Ngk, one then carries out a parallel computation.

La méthode du "carré-multipli parallèle requiert
N x n/2 multiplications et n carres.
The "parallel square-multiply method requires
N xn / 2 multiplications and n squares.

Une méthode proposée par E. BRICKELL et al. A method proposed by E. BRICKELL et al.

dénommée par l'abréviation BGKW permet de réduire le nombre de multiplications dans le cas de la méthode du carré-multiplié mais introduit un besoin de stockage de nombreuses constantes précalculées et donc la nécessité de disposer d'une quantité de mémoires de stockage très pénalisante.denominated by the abbreviation BGKW makes it possible to reduce the number of multiplications in the case of the square-multiplied method but introduces a need to store many precomputed constants and therefore the need to have a very penalizing quantity of storage memories.

L'introduction d'un calcul en parallèle de N valeurs dans cette méthode implique l'utilisation de nombreux registres pour conserver les résultats intermédiaires. The introduction of a parallel calculation of N values in this method involves the use of many registers to keep the intermediate results.

Cette méthode devient donc plus contraignante dans le cas où l'on se trouve dans une situation où il s'agit de générer un grand nombre de signatures en un temps très bref puisque dans ce cas le calcul en parallèle est introduit. This method therefore becomes more restrictive in the case where one is in a situation where it is a question of generating a large number of signatures in a very short time since in this case parallel computation is introduced.

La présente invention a pour objet de remédier à tous ces inconvénients. Elle permet d'apporter une solution souple et peu onéreuse en temps de calcul et en place mémoire à la mise en oeuvre d'algorithmes cryptographiques pour tous systèmes de cryptographie et en particulier par des appareils portables du type carte à puce à microprocesseur. The object of the present invention is to remedy all these drawbacks. It makes it possible to provide a flexible and inexpensive solution in terms of computation time and memory space for the implementation of cryptographic algorithms for all cryptography systems and in particular by portable devices of the microprocessor chip card type.

Selon un premier objet de l'invention, le procédé de cryptographie proposé permet de réduire le nombre de multiplications modulaires de façon telle que l'on obtienne des gains en temps de calcul de 15 à 40% et plus selon les schémas de cryptographie utilisés (Schnorr ou El Gamal). According to a first object of the invention, the proposed cryptography method makes it possible to reduce the number of modular multiplications in such a way that one obtains computation time savings of 15 to 40% and more depending on the cryptography schemes used ( Schnorr or El Gamal).

Selon l'invention, deux solutions sont proposées afin de réduire le nombre de multiplications, l'une consistant à générer des exposants k "creux" avec peu de bits à 1, mais de longueur suffisante pour garder toute la sécurité au système, et l'autre consistant à réaliser les calculs des puissances de g en parallèle tout en combinant les exposants entre eux de manière à ne pas refaire deux fois le même calcul de puissance pour un exposant donne. According to the invention, two solutions are proposed in order to reduce the number of multiplications, one consisting in generating "hollow" exponents k with few bits at 1, but of sufficient length to keep the system completely secure, and l 'another consisting in carrying out the calculations of the powers of g in parallel while combining the exponents between them so as not to repeat the same power calculation twice for a given exponent.

L'invention a plus particulièrement pour objet un procédé de cryptographie à clé publique basé sur le logarithme discret faisant intervenir le calcul de la grandeur qkmodp où p est un nombre premier appelé module, k un nombre aléatoire habituellement de longueur n bits et g un entier appelé base, dans lequel une entité E réalise des opérations d'authentification et/ou de signature et/ou de chiffrement, comprenant des échanges de signaux avec une autre entité dans lesquels intervient cette grandeur, caractérisé en ce qu'il comporte les étapes suivantes pour l'entité
- générer un exposant k aléatoire de longueur N bits, N étant égal à n+b bits,
- calculer le poids de Hamming C de cet exposant et le comparer à une valeur h fixée au préalable,
- vérifier si la valeur aléatoire k remplit la condition C 2 h
- rejeter la valeur aléatoire k dans le cas ou le poids de Hamming est inférieur à h et recommencer la génération de nouveaux exposants jusqu'à l'obtention d'un exposant satisfaisant cette condition,
- ou conserver cette valeur dans le cas contraire,
- calculer l'expression gkmodp à partir de la valeur conservée,
- utiliser cette expression dans un échange de signaux électroniques avec l'autre entité.
The subject of the invention is more particularly a public key cryptography method based on the discrete logarithm involving the calculation of the quantity qkmodp where p is a prime number called modulus, k a random number usually of length n bits and g an integer. called base, in which an entity E performs authentication and / or signature and / or encryption operations, comprising exchanges of signals with another entity in which this quantity intervenes, characterized in that it comprises the following steps for the entity
- generate a random exponent k of length N bits, N being equal to n + b bits,
- calculate the Hamming weight C of this exponent and compare it to a value h fixed beforehand,
- check if the random value k fulfills the condition C 2 h
- reject the random value k in the case where the Hamming weight is less than h and start the generation of new exponents again until an exponent satisfying this condition is obtained,
- or keep this value otherwise,
- calculate the gkmodp expression from the stored value,
- use this expression in an exchange of electronic signals with the other entity.

L'invention a également pour objet un procédé de cryptographie à clé publique basé sur le logarithme discret faisant intervenir le calcul de la grandeur gkmodp où p est un nombre premier appelé module, k un nombre aléatoire habituellement de longueur n bits et g un entier appelé base, dans lequel une entité E réalise des opérations d'authentification et/ou de signature et/ou de chiffrement, comprenant des échanges de signaux avec une autre entité dans lesquels interviennent plusieurs grandeurs de ce type, caractérisé en ce qu'il comporte les étapes suivantes pour l'entité
- générer un ensemble d'exposants aléatoires kj de n bits de poids ai s'exprimant par l'expression k. Cai2
- calculer en parallèle les puissances de g2i tout en combinant les exposants de sorte que les puissances de g déjà calculées pour un exposant servent à d'autres exposants dans lesquels elles interviennent,
- pour chaque kj donné, calculer les puissances de g non encore calculées et regrouper toutes ces puissances pour obtenir l'expression gkj modp désirée,
- utiliser ces expressions dans un échange de signaux avec l'autre entité.
The subject of the invention is also a public key cryptography method based on the discrete logarithm involving the calculation of the quantity gkmodp where p is a prime number called modulus, k a random number usually of length n bits and g an integer called base, in which an entity E performs authentication and / or signature and / or encryption operations, comprising exchanges of signals with another entity in which several quantities of this type intervene, characterized in that it comprises the next steps for the entity
- generate a set of random exponents kj of n bits of weight ai expressed by the expression k. Cai2
- calculate in parallel the powers of g2i while combining the exponents so that the powers of g already calculated for an exponent are used for other exponents in which they occur,
- for each given kj, calculate the powers of g not yet calculated and combine all these powers to obtain the desired expression gkj modp,
- use these expressions in an exchange of signals with the other entity.

Selon un premier mode de réalisation les étapes de calcul en parallèle et de regroupement comportent les opérations suivantes
- combiner les exposants deux par deux pour obtenir des exposants k c reflet de leur parties communes et réitérer les combinaisons sur le résultat de combinaison obtenu,
- calculer des grandeurs Gkc pour chaque valeur de k c telle que
Gkc = gkcmodp
- combiner un exposant kj à l'exposant k c obtenu pour la combinaison à laquelle cet exposant appartient de manière à éliminer les parties communes et ne conserver que les parties différentes,
- définir des exposants k'. reflet des parties différentes entre un exposant kj donné et un exposant k c donné,
- calculer des grandeurs Gk,jtelles que
Gk,j = gkjmodp
- déterminer les expressions Gkjmodp en opérant des multiplications entre les grandeurs GkC obtenues à chaque itération.
According to a first embodiment, the steps of parallel computation and of grouping comprise the following operations
- combine the exponents two by two to obtain exponents kc reflection of their common parts and reiterate the combinations on the combination result obtained,
- calculate quantities Gkc for each value of kc such that
Gkc = gkcmodp
- combine an exponent kj with the exponent kc obtained for the combination to which this exponent belongs so as to eliminate the common parts and keep only the different parts,
- define exponents k '. reflection of the different parts between a given exponent kj and a given exponent kc,
- calculate quantities Gk, such that
Gk, j = gkjmodp
- determine the expressions Gkjmodp by operating multiplications between the quantities GkC obtained at each iteration.

Dans un deuxième mode de réalisation, les étapes de calcul en parallèle et de regroupement comportent les opérations suivantes
- combiner les exposants entre-eux de manière à former tous les sous-ensembles de combinaisons possibles d'exposants possédant des parties communes,
- définir des exposants k c reflet des parties communes, pour chaque sous-ensemble de combinaison tels que les bits non-nuls de poids donné correspondent aux bits non-nuls de même poids de la combinaison considérée,
- calculée des grandeurs GkC pour chaque valeur de k c telles que :: GkC= gkcmodp
- combiner chaque exposant kj avec tous les exposants k c obtenus pour chaque sous-ensemble de combinaison auquel cet exposant k. appartient de manière à éliminer les parties communes et ne conserver que les parties différentes,
- définir des exposants k'j reflet des parties différentes entre un exposant kj donné et un exposant k c donné,
- calculer des grandeurs Gk,j telles que Gk'j=gk'jmodp
- déterminer les expressions gkjmodp en opérant une multiplication entre les grandeurs GSkj et Gkc pour chaque kj.
In a second embodiment, the parallel calculation and grouping steps include the following operations
- combine the exhibitors together so as to form all the subsets of possible combinations of exhibitors having common parts,
- define exponents kc reflection of the common parts, for each combination subset such that the non-zero bits of a given weight correspond to the non-zero bits of the same weight of the combination considered,
- calculated quantities GkC for each value of kc such as :: GkC = gkcmodp
- combine each exponent kj with all the exponents kc obtained for each combination subset to which this exponent k. belongs in such a way as to eliminate the common parts and keep only the different parts,
- define exponents k'j reflecting the different parts between a given exponent kj and a given exponent kc,
- calculate quantities Gk, j such that Gk'j = gk'jmodp
- determine the expressions gkjmodp by operating a multiplication between the quantities GSkj and Gkc for each kj.

Selon un autre objet de l'invention, les combinaisons permettant d'obtenir les parties communes entre les exposants sont réalisés par des jonctions logiques "ET". According to another object of the invention, the combinations making it possible to obtain the common parts between the exponents are produced by logical “AND” junctions.

Selon un autre objet de l'invention, les combinaisons permettant d'obtenir les parties différentes sont réalisées par des fonctions logiques "OU-exclusif". According to another object of the invention, the combinations making it possible to obtain the different parts are carried out by "exclusive-OR" logic functions.

D'autres particularités et avantages de l'invention apparaîtront à la lecture de la description qui est faite et qui est donnée à titre d'exemple illustratif et non limitatif et en regard des dessins qui représentent
- la figure 1, un schéma de principe d'un système apte à mettre en oeuvre l'invention,
- la figure 2, un schéma fonctionnel représentant les étapes essentielles du procédé dans une première application,
- la figure 3, un schéma fonctionnel représentant les étapes essentielles du procédé dans une deuxième application selon un premier mode de réalisation,
- la figure 4, un schéma fonctionnel, représentant les étapes essentielles du procédé dans la deuxième application, selon un deuxième mode de réalisation,
On a représenté sur la figure 1, un schéma de principe d'un système de mise en oeuvre du procédé de cryptographie objet de l'invention.
Other features and advantages of the invention will become apparent on reading the description which is given and which is given by way of illustrative and non-limiting example and with reference to the drawings which represent
- Figure 1, a block diagram of a system capable of implementing the invention,
- Figure 2, a functional diagram representing the essential steps of the method in a first application,
FIG. 3, a functional diagram representing the essential steps of the method in a second application according to a first embodiment,
FIG. 4, a functional diagram, showing the essential steps of the method in the second application, according to a second embodiment,
FIG. 1 shows a block diagram of a system for implementing the cryptography method which is the subject of the invention.

Ce système est formée d'une entité El désirant effectuer des échanges de signaux électroniques avec au moins une autre entité E2. les deux entités sont munies respectivement d'une unité de traitement (CPU) 11, 30, d'une interface de communication, d'une mémoire vive (RAM) 13, 32 et/ou d'une mémoire non inscriptible (ROM) 14, 34 et/ou d'une mémoire non volatile inscriptible ou réinscriptible (EPROM ou EEPROM) 15, 33 et un bus d'adresses, de données, de contrôle 16, 35. This system is formed by an entity E1 wishing to exchange electronic signals with at least one other entity E2. the two entities are provided respectively with a processing unit (CPU) 11, 30, a communication interface, a random access memory (RAM) 13, 32 and / or a write-once memory (ROM) 14 , 34 and / or a writable or rewritable non-volatile memory (EPROM or EEPROM) 15, 33 and an address, data, control bus 16, 35.

L'unité de commande de traitement et/ou la ROM contiennent des programmes ou des ressources de calcul correspondant à l'exécution des étapes de calcul intervenant dans le procédé objet de l'invention, c'est-à-dire lors d'une session d'authentification ou lors de la génération d'une signature électronique ou lors du cryptage de signaux électroniques à transmettre à l'autre entité. The processing control unit and / or the ROM contain programs or calculation resources corresponding to the execution of the calculation steps involved in the method which is the subject of the invention, that is to say during a authentication session or during the generation of an electronic signature or during the encryption of electronic signals to be transmitted to the other entity.

L'unité de traitement ou la ROM possèdent les ressources nécessaires à des multiplications, additions et réductions modulaires. The processing unit or the ROM has the necessary resources for modular multiplications, additions and reductions.

De même que l'unité de traitement et/ou la ROM comportent les fonctions de cryptographies utilisées propres à chaque algorithme de cryptographie et les paramètres g et p. Les exposants kj pourront être chargés au préalable dans une mémoire réinscriptible par l'autorité ou, générés au fur et à mesure à partir d'un générateur aléatoire et d'une valeur aléatoire source ko secrète. L'entité El possède en outre la clé secrète x. Just as the processing unit and / or the ROM include the cryptography functions used specific to each cryptography algorithm and the parameters g and p. The exponents kj can be loaded beforehand into a memory that can be rewritable by the authority or, generated as they go from a random generator and a secret source random value ko. The entity El also has the secret key x.

L'invention s'applique tout particulièrement aux système à cryptographie mis en place dans le domaine bancaire où une grande sécurité est requise lors de transactions opérées sur les comptes. C'est aussi le cas où l'on désire authentifier l'envoi de messages transmis sous forme de signaux électroniques d'une autre entité. C'est aussi le cas où l'on a besoin de signer des messages lors d'échanges de signaux avec une autre entité. The invention applies most particularly to the cryptographic system implemented in the banking sector where great security is required during transactions carried out on accounts. This is also the case where it is desired to authenticate the sending of messages transmitted in the form of electronic signals from another entity. This is also the case where one needs to sign messages when exchanging signals with another entity.

En pratique, l'entité désireuse de réaliser une transaction pourra être, par exemple, une carte à circuit intégré telle qu'une carte à puce et l'entité destinatrice sera alors un terminal bancaire. In practice, the entity wishing to carry out a transaction could be, for example, an integrated circuit card such as a chip card and the recipient entity will then be a bank terminal.

La suite de la description va être faite dans le cadre de l'application du procédé à la signature de messages numériques, étant bien entendu que l'invention s'applique à tout système de cryptographie basé sur un algorithme discret. The remainder of the description will be given in the context of the application of the method to the signing of digital messages, it being understood that the invention applies to any cryptography system based on a discrete algorithm.

Le procédé selon l'invention propose une première solution pour diminuer considérablement le nombre de multiplications particulièrement adapté au cas où l'on a un environnement où la place mémoire est faible. The method according to the invention proposes a first solution for considerably reducing the number of multiplications, which is particularly suited to the case where there is an environment where the memory space is low.

Dans ce cas, le principe est de produire des exposants kj "creux" en ce sens que le poids de Hamming sera choisi le plus faible possible, tout en conservant bien entendu le caractère aléatoire à ces exposants. In this case, the principle is to produce "hollow" exponents kj in the sense that the Hamming weight will be chosen as low as possible, while of course preserving the randomness of these exponents.

Pour cela, le procédé consiste à générer des exposants kj soit au fur et à mesure du besoin soit au préalable à tout échange. Bien sûr dans ce cas, ils seront mémorisés. Les exposants générés n'ont pas une longueur de n bits mais une longueur supérieure n+b bits et remplissent une condition définie dans la suite. For this, the method consists in generating exponents kj either as and when required or before any exchange. Of course in this case they will be remembered. The generated exponents do not have a length of n bits but a length greater than n + b bits and fulfill a condition defined below.

Lorsqu'un exposant k de n+b bits est généré le procédé consiste ensuite à calculer le poids de Hamming
C de cet exposant puis à le comparer à une valeur h fixée au préalable.
When an exponent k of n + b bits is generated, the method then consists in calculating the Hamming weight
C of this exponent then to compare it with a value h fixed beforehand.

Si à l'issue de la comparaison Ch alors l'exposant est retenu et va être utilisé par l'entité qui va alors calculer l'expression gkmodp et utiliser cette expression dans l'envoi de signaux numériques dans lesquels cette expression sera utilisée comme signature par exemple. If at the end of the comparison Ch then the exponent is retained and will be used by the entity which will then calculate the expression gkmodp and use this expression in sending digital signals in which this expression will be used as a signature for example.

Dans le cas où le paramètre C ne remplit pas la condition requise, l'exposant k correspondant est rejeté, un nouvel exposant est généré, l'étape de vérification de la condition est recommencée jusqu'à obtention d'un exposant k remplissant cette condition. If the parameter C does not meet the required condition, the corresponding exponent k is rejected, a new exponent is generated, the condition checking step is restarted until an exponent k fulfilling this condition is obtained. .

Ainsi cette solution permet d'avoir à réaliser moins de multiplication tout en conservant le même niveau de sécurité que si l'on avait des exposants de taille plus réduite. Thus this solution makes it possible to have to carry out less multiplication while maintaining the same level of security as if one had exhibitors of smaller size.

Selon un exemple particulier, permettant de réduire au maximum le nombre de multiplications on choisira
C = h.
According to a particular example, making it possible to reduce the number of multiplications as much as possible, we will choose
C = h.

En pratique, pour un exposant de taille n + b bits (avec n = log2 P) dont le poids de Hamming est h, pour
avoir le même nombre de combinaisons que lorsque 1' exposant est de n bits, alors les relations suivantes doivent êtres vérifiées
2n < Ch
n+b
et( N + b)/2 + h S n (condition qui permet de réduire le nombre de calcul à effectuer).
In practice, for an exponent of size n + b bits (with n = log2 P) whose Hamming weight is h, for
have the same number of combinations as when the exponent is n bits, then the following relations must be verified
2n <Ch
n + b
and (N + b) / 2 + h S n (condition which makes it possible to reduce the number of calculations to be carried out).

c'est à dire 2n < (n+b) !/ (n + b - h)! h!
et
b+2h < n
Les nombres b et h que l'on se fixe sont obtenus en résolvant cette double inéquation pour un n donné (n=160 par exemple).
ie 2n <(n + b)! / (n + b - h)! h!
and
b + 2h <n
The numbers b and h that we fix are obtained by solving this double inequality for a given n (n = 160 for example).

A titre illustratif les résultats du procédé selon l'invention ont été comparés aux méthodes connues. By way of illustration, the results of the method according to the invention have been compared with known methods.

Dans le cas de l'algorithme de Shnorr où n = 160 bits, et dans le cas de l'algorithme de El Gamal où n = 512 bits. Ces résultats sont indiqués dans le tableau ci-dessous.

Figure img00110001
In the case of the Shnorr algorithm where n = 160 bits, and in the case of the El Gamal algorithm where n = 512 bits. These results are shown in the table below.
Figure img00110001

<tb><tb>

<SEP> variant <SEP> o <SEP> Schnorr <SEP> El <SEP> Gamal <SEP> El <SEP> Gamal
<tb> <SEP> Temps <SEP> de <SEP> Espace <SEP> de
<tb> effort <SEP> ss <SEP> calcul <SEP> mémoire
<tb> multiplications <SEP> 62 <SEP> (h) <SEP> 187 <SEP> (h) <SEP> 199 <SEP> (h) <SEP>
<tb> <SEP> CARRE <SEP> 87(b=15) <SEP> 279(b=52) <SEP> 273(b=35)
<tb> <SEP> EFFORT <SEP> 149 <SEP> 469 <SEP> 472
<tb> <SEP> GAIN <SEP> 6,8% <SEP> 9,4% <SEP> 7,8%
<tb>
La contrainte mise sur l'espace des signatures couvert par des exposants de n bits peut être réduite par un facteur a dépendant du niveau de sécurité que l'on désire obtenir.
<SEP> variant <SEP> o <SEP> Schnorr <SEP> El <SEP> Gamal <SEP> El <SEP> Gamal
<tb><SEP> Time <SEP> of <SEP> Space <SEP> of
<tb> effort <SEP> ss <SEP> calculation <SEP> memory
<tb> multiplications <SEP> 62 <SEP> (h) <SEP> 187 <SEP> (h) <SEP> 199 <SEP> (h) <SEP>
<tb><SEP> SQUARE <SEP> 87 (b = 15) <SEP> 279 (b = 52) <SEP> 273 (b = 35)
<tb><SEP> EFFORT <SEP> 149 <SEP> 469 <SEP> 472
<tb><SEP> GAIN <SEP> 6.8% <SEP> 9.4% <SEP> 7.8%
<tb>
The constraint placed on the signature space covered by exponents of n bits can be reduced by a factor a depending on the level of security that is desired.

Les paramètres n, h et b doivent alors remplir la condition (1)
(1) 2 n-a < (n+ b)!/(n+b-h)!h!
tout en conservant la possibilité de générer les mêmes signatures à partir de différents aléas de taille (n + b) bits.
The parameters n, h and b must then fulfill the condition (1)
(1) 2 na <(n + b)! / (N + bh)! H!
while retaining the possibility of generating the same signatures from different random bits of (n + b) bit size.

En pratique 280 est assez pour contrer les différentes attaques possibles et donc n-a = 100 est une valeur tout à fait acceptable.

Figure img00120001
In practice 280 is enough to counter the various possible attacks and therefore na = 100 is a very acceptable value.
Figure img00120001

<tb><tb>

variant <SEP> # <SEP> <SEP> Exposant <SEP> Expossant <SEP> carré
<tb> <SEP> creuse <SEP> creux <SEP> multiplié
<tb> <SEP> temps <SEP> place <SEP> simple
<tb> effort <SEP> ss <SEP> de <SEP> calcu <SEP> mémoire
<tb> multiplications <SEP> 37 <SEP> (h) <SEP> 49 <SEP> (h) <SEP> n/2
<tb> <SEP> carrés <SEP> n/2+7 <SEP> n/2+2 <SEP> n/2
<tb> <SEP> (b=14) <SEP> (b=4)
<tb> Total <SEP> n/2+44 <SEP> n/2+51 <SEP> n
<tb>
Cette variante d'exécution est d'autant plus interressante que le coût (en temps de calcul) d'un carré est souvent moindre que celui d'une multiplication modulaire.
variant <SEP>#<SEP><SEP> Exponent <SEP> Exponent <SEP> square
<tb><SEP> hollow <SEP> hollow <SEP> multiplied
<tb><SEP> time <SEP> place <SEP> simple
<tb> effort <SEP> ss <SEP> of <SEP> calculated <SEP> memory
<tb> multiplications <SEP> 37 <SEP> (h) <SEP> 49 <SEP> (h) <SEP> n / 2
<tb><SEP> squares <SEP> n / 2 + 7 <SEP> n / 2 + 2 <SEP> n / 2
<tb><SEP> (b = 14) <SEP> (b = 4)
<tb> Total <SEP> n / 2 + 44 <SEP> n / 2 + 51 <SEP> n
<tb>
This variant execution is all the more interesting as the cost (in computation time) of a square is often less than that of a modular multiplication.

En général on obtient
s/2 S m < s, s étant le nombre de carrés à calculer et m le nombre de multiplications, les deux cas extrèmes étant m = s et m = 2s.
In general we get
s / 2 S m <s, s being the number of squares to be calculated and m the number of multiplications, the two extreme cases being m = s and m = 2s.

On a représenté des résultats comparatifs pour ces deux cas extrèmes dans le tableau suivant

Figure img00120002
Comparative results for these two extreme cases have been shown in the following table.
Figure img00120002

<tb> <SEP> variant <SEP> exposant <SEP> exposant <SEP> carré <SEP> GAIN
<tb> <SEP> creux <SEP> creux <SEP> multiplié
<tb> effort <SEP> ss <SEP> temps <SEP> de <SEP> place <SEP> simple
<tb> <SEP> calcul <SEP> mémoire
<tb> <SEP> Schnorr <SEP> 124 <SEP> 131 <SEP> 160 <SEP> 22.5%
<tb> <SEP> (m=2s)
<tb> <SEP> El <SEP> Gamal <SEP> 300 <SEP> 307 <SEP> 512 <SEP> 41%
<tb> <SEP> (m=2s)
<tb> <SEP> Schnorr <SEP> 204 <SEP> 211 <SEP> 240 <SEP> 15%
<tb> <SEP> (m=s)
<tb>

Figure img00130001
<tb><SEP> variant <SEP> exponent <SEP> exponent <SEP> square <SEP> GAIN
<tb><SEP> hollow <SEP> hollow <SEP> multiplied
<tb> effort <SEP> ss <SEP> time <SEP> of <SEP> place <SEP> simple
<tb><SEP> calculation <SEP> memory
<tb><SEP> Schnorr <SEP> 124 <SEP> 131 <SEP> 160 <SEP> 22.5%
<tb><SEP> (m = 2s)
<tb><SEP> El <SEP> Gamal <SEP> 300 <SEP> 307 <SEP> 512 <SEP> 41%
<tb><SEP> (m = 2s)
<tb><SEP> Schnorr <SEP> 204 <SEP> 211 <SEP> 240 <SEP> 15%
<tb><SEP> (m = s)
<tb>
Figure img00130001

<tb> El <SEP> Gamal <SEP> 556 <SEP> 563 <SEP> 728 <SEP> 24%
<tb> <SEP> (m=s)
<tb>
On constate que le gain obtenu lorsque l'on applique le procédé aux schémas de Shnorr et El Gamal est très important par rapport à la méthode du carrémultiplié simple et même dans le cas où l'on considère que le coût d'un carré est le même que celui d'une multiplication.
<tb> El <SEP> Gamal <SEP> 556 <SEP> 563 <SEP> 728 <SEP> 24%
<tb><SEP> (m = s)
<tb>
It can be seen that the gain obtained when the method is applied to the Shnorr and El Gamal diagrams is very important compared to the simple multiplied square method and even in the case where we consider that the cost of a square is the same as that of a multiplication.

Selon un autre mode de réalisation, le procédé s'applique tout particulièrement à des systèmes n'ayant pas de contrainte particulière concernant la place mémoire. According to another embodiment, the method applies most particularly to systems not having any particular constraint concerning the memory space.

Dans ce mode de réalisation, on procède au calcul des différentes puissances de g en parallèle afin de ne calculer les carrés qu'une seule fois, tout en combinant les exposants afin de ne pas effectuer plusieurs fois le même calcul. In this embodiment, the various powers of g are calculated in parallel in order to calculate the squares only once, while combining the exponents so as not to carry out the same calculation several times.

Pour bien comprendre l'invention, on va décrire le cas où l'on a effectué le calcul de deux puissances. To fully understand the invention, we will describe the case where the calculation of two powers has been performed.

soit k. = ài2i, kj étant tiré aléatoirement (c'est-à-dire généré à partir d'un générateur aléatoire)
soit kk = Kj = bi2i
Selon le procédé on combine les exposants k. et kk de manière à définir un exposant k c tel que
k c = àibi2i reflète des parties communes entre k et kk. Les coefficients ai sont, soit 1 soit 0.
let k. = ài2i, kj being drawn randomly (i.e. generated from a random generator)
let kk = Kj = bi2i
According to the process, the exponents k are combined. and kk so as to define an exponent kc such that
kc = àibi2i reflects common parts between k and kk. The coefficients ai are either 1 or 0.

L'exposant kc correspond à la partie commune des exposants kj et kk c'est-à-dire si kj = 1 x 210 + ... + 0 + 1 x 20 et kk = 1 x 210 + 0 + 0 ... + 1 x 20
k c = i x 210 + 0 + ... + 1 x 20.
The exponent kc corresponds to the common part of the exponents kj and kk, i.e. if kj = 1 x 210 + ... + 0 + 1 x 20 and kk = 1 x 210 + 0 + 0 ... + 1 x 20
kc = ix 210 + 0 + ... + 1 x 20.

Selon le procédé on détermine donc ainsi l'exposant k noté kc au moyen d'une fonction logique ET. According to the method, the exponent k denoted kc is thus determined by means of a logic function AND.

On procéde ensuite à une deuxième combinaison consistant à déterminer les parties distinctes entre l'exposant kj et l'exposant kc On recherche également les parties distinctes entre l'exposant kk et l'exposant kc. A second combination is then carried out consisting in determining the distinct parts between the exponent kj and the exponent kc. The distinct parts between the exponent kk and the exponent kc are also sought.

On va noter kj $ k c et kk kc ces combinaisons 3 kk kc qui sont réalisées pour des OU-exclusifs. We will denote by kj $ k c and kk kc these combinations 3 kk kc which are carried out for exclusive-ORs.

On calcule en parallèle les grandeurs suivantes
Gkj = gkj d3 kcmodp
Gkk = gkk z kcmodp
Gkc = gkcmodp
Pour obtenir gkjmodp et Gkkmodp il suffit de réaliser les opérations
1) Gkj X Gkcmodp
2) Gkk x Gkcmodp
Lorsque l'on a, comme l'exemple qui vient d'être donné deux puissances, on effectue en moyenne environ 3n/4 multiplications au lieu de n multiplications. La gain est de 25%;
Le procédé selon l'invention peut être généralisé à un plus grand nombre de combinaisons d'exposants. Cette généralisation peut en outre être implantée selon deux modes de réalisation illustrés par les schémas fonctionnels donnés sur les figures 3 et 4.
The following quantities are calculated in parallel
Gkj = gkj d3 kcmodp
Gkk = gkk z kcmodp
Gkc = gkcmodp
To obtain gkjmodp and Gkkmodp all you have to do is perform the operations
1) Gkj X Gkcmodp
2) Gkk x Gkcmodp
When we have, like the example just given, two powers, we carry out on average about 3n / 4 multiplications instead of n multiplications. The gain is 25%;
The method according to the invention can be generalized to a larger number of combinations of exponents. This generalization can also be implemented according to two embodiments illustrated by the functional diagrams given in Figures 3 and 4.

Dans ce cas, l'invention s'applique tout particulièrement aux cas où l'on a besoin de générer un grand nombre de signatures. In this case, the invention applies most particularly to cases where it is necessary to generate a large number of signatures.

Selon le premier mode de réalisation, on réalise des combinaisons d'exposants deux par deux suivant une arborescence telle que représentée par le tableau cidessous
k. al a2 a3 a4
kc bl = al.a2 b2 = a3.a4
cl = bl.b2
Ces combinaisons permettent tout comme l'exemple décrit précédemment, de fournir des exposants k c reflet des parties commune entre les exposants kj .
According to the first embodiment, combinations of exponents are made two by two following a tree structure as represented by the table below.
k. al a2 a3 a4
kc bl = al.a2 b2 = a3.a4
cl = bl.b2
These combinations make it possible, like the example described above, to provide exponents kc reflecting the common parts between the exponents kj.

Pour simplifier l'écriture, les exposants kj sont nommés a1, a2, a3, a4. To simplify the writing, the exponents kj are named a1, a2, a3, a4.

Les exposants k c sont nommés au niveau -1 de l'arbre, b1 et b2 et au niveau -2 de l'arbre par c1. The exponents k c are named at level -1 of the tree, b1 and b2 and at level -2 of the tree by c1.

Les combinaisons a1. a2, a3. a4 sont réalisées par une fonction logique ET. The combinations a1. a2, a3. a4 are performed by an AND logic function.

On réitère les combinaisons à chaque niveau de l'arbre ainsi constitué. le nombre de multiplications diminue au fur et à mesure que l'on s'enfonce dans l'arbre du fait de la simple répartition statistique des bits. L'effort de calcul à réaliser est minoré par n/3 multiplications. The combinations are reiterated at each level of the tree thus constituted. the number of multiplications decreases as one goes deeper into the tree due to the simple statistical distribution of the bits. The computational effort to be made is reduced by n / 3 multiplications.

Comme cela a été décrit précédemment, on détermine des grandeurs Gkc à chaque niveau. As that was described previously, one determines sizes Gkc at each level.

Ainsi on obtiendra
G al = gal # blmodp
Ga2 = ga2 $ blmodp
Gbl = gbîmodp
Gbl = gbl # clmodp soit Gbl = Gbl Cl modp
Gb2 = gb2 &commat; cimodp soit Gb2 #Gb1 modp
Gc1 = gcl modp
Gal modp= Ga1 x Gb1 modp = Ga1xGb1 x G c1 modp
En pratique, galmodp sera obtenu par le produit Ga1 x Gb1 modp et ga2 modp sera obtenu par le produit Ga2 x Gblx Gc1 modp.
So we will get
G al = gal # blmodp
Ga2 = ga2 $ blmodp
Gbl = gbîmodp
Gbl = gbl # clmodp or Gbl = Gbl Cl modp
Gb2 = gb2 &commat; cimodp or Gb2 # Gb1 modp
Gc1 = gcl modp
Gal modp = Ga1 x Gb1 modp = Ga1xGb1 x G c1 modp
In practice, galmodp will be obtained by the product Ga1 x Gb1 modp and ga2 modp will be obtained by the product Ga2 x Gblx Gc1 modp.

Selon un deuxième mode de réalisation on combine les exposants de manière à former tous les sousensembles de combinaison possibles soit par exemple si l'on a comme exposant kj : a, b, c, on formera les combinaisons ab, ac, bc, abc. According to a second embodiment, the exponents are combined so as to form all the possible combination subsets, for example if we have as exponent kj: a, b, c, we will form the combinations ab, ac, bc, abc.

On réalise donc des combinaisons permettant de définir les parties communes relatives à ces sousensembles en opérant une fonction logique ET entre a et b, a et c, b et c et a, b, c. On définit ainsi un exposant kc pour chaque sous-ensemble obtenu. Combinations are therefore made making it possible to define the common parts relating to these subsets by operating a logic function AND between a and b, a and c, b and c and a, b, c. We thus define an exponent kc for each subset obtained.

On peut calculer en parallèle toutes les grandeurs
Gkc = g kcmodp pour lesquelles kc ont peu de bits à 1 par rapport aux k initiaux et donc pour lesquelles le calcul modulaire est rapide.
We can calculate in parallel all the quantities
Gkc = g kcmodp for which kc have few bits at 1 compared to the initial k and therefore for which the modular calculation is fast.

Puis on effectue un autre type de combinaison consistant à éliminer les parties communes entre un exposant et les combinaisons précédentes. Then another type of combination is carried out, consisting in eliminating the common parts between an exponent and the preceding combinations.

Ces combinaisons sont réalisées au moyen de fonctions logiques OU-exclusif. Ainsi, on obtient suivant l'exemple donné
ka = a xor abc xor ac xor ab
kb = b xor abc xor ab xor bc
kc = c xor abc xor ac xor bc
On peut ensuite calculer des grandeurs G krj = gkj modp pour lesquelles les k'j ont encore moins de bits à 1 que les k c initiaux et pour lesquelles les modifications modulaires sont encore plus rapides.
These combinations are achieved by means of logical exclusive-OR functions. Thus, following the example given, we obtain
ka = a xor abc xor ac xor ab
kb = b xor abc xor ab xor bc
kc = c xor abc xor ac xor bc
We can then calculate quantities G krj = gkj modp for which the k'j have even fewer bits at 1 than the initial kc and for which the modular modifications are even faster.

Pour finir les expressions gkjmodp sont obtenues par kj. Finally, the gkjmodp expressions are obtained by kj.

Dans le cas de la génération de N signatures obtenues par ce deuxième mode de réalisation, l'effort de calcul tendra vers
n/N carrés + n(2N-1)/N2N + (2N-1-l) multiplications.
In the case of the generation of N signatures obtained by this second embodiment, the computational effort will tend towards
n / N squares + n (2N-1) / N2N + (2N-1-l) multiplications.

Le tableau qui suit permet de donner des résultats de comparaisons avec les méthodes connues telles que le carré-multiplié, le carré mutliplié en parallèle et l'invention.

Figure img00170001
The following table makes it possible to give results of comparisons with known methods such as the square-multiplied, the square multiplied in parallel and the invention.
Figure img00170001

<tb><tb>

<SEP> Méthodes
<tb> <SEP> Carré <SEP> Carré <SEP> Combinaison
<tb> <SEP> Temps <SEP> de <SEP> muliplié <SEP> d'exposant
<tb> <SEP> effort <SEP> multiplié <SEP> parallèle <SEP> arbre
<tb> <SEP> binaire
<tb> <SEP> Carrés <SEP> N(n-l) <SEP> n-l <SEP> n-l
<tb> <SEP> Multiplication <SEP> N(n/2-1) <SEP> N(n/2-1) <SEP> Nn/3
<tb> <SEP> TOTAL <SEP> N(3n/2-2) <SEP> N(n/2-l)+n-1 <SEP> Nn/3+n-l
<tb> Effort <SEP> pour <SEP> N > > n <SEP> 100% <SEP> 33t <SEP> <SEP> 22%
<tb>
Le premier mode de réalisation donné (regroupement arborescent) dans le cas de l'application à la génération de N signatures est peu coûteuse en place mémoire.
<SEP> Methods
<tb><SEP> Square <SEP> Square <SEP> Combination
<tb><SEP> Time <SEP> of <SEP> multiplied <SEP> of exponent
<tb><SEP> effort <SEP> multiplied <SEP> parallel <SEP> shaft
binary <tb><SEP>
<tb><SEP> Squares <SEP> N (nl) <SEP> nl <SEP> nl
<tb><SEP> Multiplication <SEP> N (n / 2-1) <SEP> N (n / 2-1) <SEP> Nn / 3
<tb><SEP> TOTAL <SEP> N (3n / 2-2) <SEP> N (n / 2-l) + n-1 <SEP> Nn / 3 + nl
<tb> Force <SEP> for <SEP>N>> n <SEP> 100% <SEP> 33t <SEP><SEP> 22%
<tb>
The first given embodiment (tree grouping) in the case of the application to the generation of N signatures is inexpensive in terms of memory space.

Pour un arbre binaire à 4 exposant on aura besoin de 8 registres de log2(p) bits pour les calculs. For a binary tree with 4 exponents, 8 registers of log2 (p) bits will be needed for the calculations.

Le deuxième mode de réalisation donné (N regroupements) est très peu coûteux en temps de calcul car elle est optimale en nombre de multiplication. Pour 3 exposants on aura besoin de 8 registres de log2(p) bits pour les calculs. The second given embodiment (N groupings) is very inexpensive in computing time because it is optimal in terms of number of multiplication. For 3 exponents, 8 registers of log2 (p) bits will be needed for the calculations.

Claims (5)

REVENDICATIONS 1. Procédé de cryptographie à clé publique basé sur le logarithme discret faisant intervenir le calcul de la grandeur gkmodp ou p est un nombre premier appelé module, k un nombre aléatoire habituellement de longueur n bits et g un entier appelé base, dans lequel une entité E réalise des opérations d'authentification et/ou de signature et/ou de chiffrement, comprenant des échanges de signaux avec une autre entité dans lesquels intervient cette grandeur, caractérisé en ce qu'il comporte les étapes suivantes pour l'entité: 1. A method of public key cryptography based on the discrete logarithm involving the calculation of the quantity gkmodp where p is a prime number called modulus, k a random number usually of length n bits and g an integer called base, in which an entity E performs authentication and / or signature and / or encryption operations, comprising exchanges of signals with another entity in which this quantity occurs, characterized in that it comprises the following steps for the entity: - générer un exposant k aléatoire de longueur N bits, N étant égal à n+b bits, - generate a random exponent k of length N bits, N being equal to n + b bits, - calculer le poids de Hamming C de cet exposant et le comparer à une valeur h fixée au préalable, - calculate the Hamming weight C of this exponent and compare it to a value h fixed beforehand, - vérifier si la valeur aléatoire k remplit la condition:C 2 h - check if the random value k fulfills the condition: C 2 h - rejeter la valeur aléatoire k dans le cas ou le poids de Hamming est inférieur de h et recommander la génération de nouveaux exposants jusqu'à obtention d'un exposant satisfaisant cette condition, - reject the random value k in the case where the Hamming weight is less than h and recommend the generation of new exponents until an exponent satisfying this condition is obtained, - ou conserver cette valeur dans le cas contraire, - or keep this value otherwise, - calculer l'expression gkmodp à partir de la valeur conservée, - calculate the gkmodp expression from the stored value, - utiliser cette expression dans les échanges de signaux avec l'autre entité. - use this expression in the exchange of signals with the other entity. 2. Procédé selon la revendication 1, caractérisé en ce que la condition à remplir est c = h. 2. Method according to claim 1, characterized in that the condition to be fulfilled is c = h. 3. Procédé de cryptographie à clé publique basé sur le logarithme discret faisant intervenir le calcul de la grandeur gkmodp ou p est un nombre premier appelé module, k un nombre aléatoire habituellement de longueur n bits et g un entier appelé base, dans lequel une entité E réalise des opérations d'authentification et/ou de signature et/ou de chiffrement, comprenant des échanges de signaux avec une autre entité dans lesquels intervient cette grandeur, caractérisé en ce qu'il comporte les étapes suivantes 3. Public key cryptography method based on the discrete logarithm involving the calculation of the quantity gkmodp where p is a prime number called modulus, k a random number usually of length n bits and g an integer called base, in which an entity E performs authentication and / or signature and / or encryption operations, comprising exchanges of signals with another entity in which this quantity intervenes, characterized in that it comprises the following steps - générer un ensemble d'exposants aléatoires kj de n bits de poids ai s'exprimant par l'expression kj =ai2i - generate a set of random exponents kj of n bits of weight ai expressed by the expression kj = ai2i - calculer en parallèle les puissance de g21tout en combinant les exposants de sorte que les puissances de g calculées pour un exposant servent à d'autres exposants dans lesquels elles interviennent, - calculate in parallel the powers of g21 while combining the exponents so that the powers of g calculated for an exponent are used for other exponents in which they occur, - pour chaque k. donné, calculer les puissances de g non encore calculées et regrouper toutes ces puissances pour obtenir l'expression gkjmodp désirée, - for each k. given, calculate the powers of g not yet calculated and combine all these powers to obtain the desired expression gkjmodp, - utiliser ces expressions dans un échange de signaux avec l'autre entité. - use these expressions in an exchange of signals with the other entity. 4. Procédé selon la revendication 3, caractérisé en ce que 4. Method according to claim 3, characterized in that - les étapes de calcul en parallèle et de regroupement comportent les opérations suivantes - the parallel calculation and grouping steps include the following operations - combiner les exposants deux par deux pour obtenir des exposants k c reflet de leur parties communes et réitérer les combinaisons sur le résultat de combinaison obtenu, - combine the exponents two by two to obtain exponents k c reflection of their common parts and reiterate the combinations on the combination result obtained, - calculer les grandeurs Gkc pour chaque valeur de k c telle que - calculate the quantities Gkc for each value of k c such that Gkc = gkcmodp Gkc = gkcmodp - combiner un exposant k. à l'exposant k c obtenu pour la combinaison à laquelle cet exposant appartient de manière à éliminer les parties communes et ne conserver que les parties différentes, - combine an exponent k. to the exponent k c obtained for the combination to which this exponent belongs so as to eliminate the common parts and keep only the different parts, - définir des exposants k,j reflet des parties différentes entre un exposant kj donné et un exposant k c donné, - define exponents k, j reflecting the different parts between a given exponent kj and a given exponent k c, - calculer des grandeurs Gk,j telles que Gk,j = gmodp - calculate quantities Gk, j such that Gk, j = gmodp - déterminer les expressions Gkjmodp en opérant des multiplications entre les grandeurs GkC obtenues à chaque itération. - determine the expressions Gkjmodp by operating multiplications between the quantities GkC obtained at each iteration. 5. Procédé selon la revendication 3, caractérisé en ce que les étapes de calcul en parallèle et de regroupement comportent les opérations suivantes 5. Method according to claim 3, characterized in that the steps of parallel calculation and grouping comprise the following operations - combiner les exposants entre-eux de manière à former tous les sous-ensembles de combinaisons possibles d'exposants possédant des parties communes, - combine the exhibitors together so as to form all the subsets of possible combinations of exhibitors having common parts, - définir des exposants k c reflet des parties communes, pour chaque sous-ensemble de combinaison tels que les bits non-nuls de poids donné correspondent aux bits non-nuls de même poids de la combinaison considérée, - define exponents k c reflection of the common parts, for each combination subset such that the non-zero bits of a given weight correspond to the non-zero bits of the same weight of the combination considered, - calculée des grandeurs Gkc pour chaque valeur de k c telles que : : GkC= gkcmodp - calculated quantities Gkc for each value of k c such as:: GkC = gkcmodp - combiner chaque exposant kj avec tous les exposants k c obtenus pour chaque sous-ensemble de combinaison auquel cet exposant k. appartient de manière à éliminer les parties communes et ne conserver que les parties différentes, - combine each exponent kj with all the exponents k c obtained for each combination subset to which this exponent k. belongs in such a way as to eliminate the common parts and keep only the different parts, - définir des exposants k'. reflet des parties différentes entre un exposant k. donné et un exposant k c donné, - define exponents k '. reflection of the different parts between an exponent k. given and a given exponent k c, - calculer des grandeurs Gk,j telles que Gk,j=gk imodp - calculate quantities Gk, j such that Gk, j = gk imodp - déterminer les expressions gkjmodp en opérant une multiplication entre les grandeurs G'kj et GkC pour chaque kj. - determine the expressions gkjmodp by operating a multiplication between the quantities G'kj and GkC for each kj.
FR9506068A 1995-05-22 1995-05-22 PROCESS FOR PUBLIC KEY CRYPTOGRAPHY BASED ON DISCRETE LOGARITHM Expired - Fee Related FR2734679B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9506068A FR2734679B1 (en) 1995-05-22 1995-05-22 PROCESS FOR PUBLIC KEY CRYPTOGRAPHY BASED ON DISCRETE LOGARITHM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9506068A FR2734679B1 (en) 1995-05-22 1995-05-22 PROCESS FOR PUBLIC KEY CRYPTOGRAPHY BASED ON DISCRETE LOGARITHM

Publications (2)

Publication Number Publication Date
FR2734679A1 true FR2734679A1 (en) 1996-11-29
FR2734679B1 FR2734679B1 (en) 1997-06-20

Family

ID=9479246

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9506068A Expired - Fee Related FR2734679B1 (en) 1995-05-22 1995-05-22 PROCESS FOR PUBLIC KEY CRYPTOGRAPHY BASED ON DISCRETE LOGARITHM

Country Status (1)

Country Link
FR (1) FR2734679B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0854603A2 (en) * 1996-10-10 1998-07-22 Certicom Corp. Generation of session parameters for el gamal-like protocols
US6337909B1 (en) 1996-10-10 2002-01-08 Certicom Corp. Generation of session keys for El Gamal-like protocols from low hamming weight integers
SG95612A1 (en) * 1999-12-24 2003-04-23 Kent Ridge Digital Labs Remote authentication based on exchanging signals representing biometrics information

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JEDWAB J ET AL: "Minimum weight modified signed-digit representations and fast exponentiation", ELECTRONICS LETTERS, 17 AUG. 1989, STEVENAGE UK, vol. 25, no. 17, ISSN 0013-5194, pages 1171 - 1172 *
ROSATI T: "A high speed data encryption processor for public key cryptography", PROCEEDINGS OF THE IEEE 1989 CUSTOM INTEGRATED CIRCUITS CONFERENCE (CAT. NO.89CH2671-6), SAN DIEGO, CA, USA, 15-18 MAY 1989, 1989, NEW YORK, NY, USA, IEEE, USA, pages 12.3/1 - 5 *
SUNG-MING YEN ET AL: "The fast cascade exponentiation algorithm and its applications on cryptography", ADVANCES IN CRYPTOLOGY - AUSCRYPT '92. WORKSHOP ON THE THEORY AND APPLICATION OF CRYPTOGRAPHIC TECHNIQUES PROCEEDINGS, GOLD COAST, QLD., AUSTRALIA, 13-16 DEC. 1992, ISBN 3-540-57220-1, 1993, BERLIN, GERMANY, SPRINGER-VERLAG, GERMANY, pages 447 - 456 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0854603A2 (en) * 1996-10-10 1998-07-22 Certicom Corp. Generation of session parameters for el gamal-like protocols
EP0854603A3 (en) * 1996-10-10 2000-07-05 Certicom Corp. Generation of session parameters for el gamal-like protocols
US6337909B1 (en) 1996-10-10 2002-01-08 Certicom Corp. Generation of session keys for El Gamal-like protocols from low hamming weight integers
SG95612A1 (en) * 1999-12-24 2003-04-23 Kent Ridge Digital Labs Remote authentication based on exchanging signals representing biometrics information
US6910129B1 (en) 1999-12-24 2005-06-21 Kent Ridge Digital Labs Remote authentication based on exchanging signals representing biometrics information

Also Published As

Publication number Publication date
FR2734679B1 (en) 1997-06-20

Similar Documents

Publication Publication Date Title
EP1441313B1 (en) Public key cryptographical method for protecting an electronic chip against fraud
FR2733379A1 (en) PROCESS FOR GENERATING ELECTRONIC SIGNATURES, ESPECIALLY FOR SMART CARDS
FR2760583A1 (en) DATA CARD VERIFICATION SYSTEM
EP1151576B1 (en) Public and private key cryptographic method
CH634161A5 (en) APPARATUS FOR DECIPHERING A NUMBERED MESSAGE AND ITS USE IN A TRANSMISSION INSTALLATION.
FR2759226A1 (en) PROTOCOL FOR VERIFYING A DIGITAL SIGNATURE
EP0795241B1 (en) Public key cryptography process based on the discrete logarithm
EP0909495B1 (en) Public key cryptography method
CN111325535A (en) Block chain private key management method, system and storage medium based on elliptic curve migration
EP1277307A1 (en) Cryptography method on elliptic curves
WO2000062477A1 (en) Authentication and signature method for messages using reduced size of binary units of information content and corresponding systems
EP1291763A1 (en) Method of scrambling a calculation with a secret number
FR2748877A1 (en) REDUCED BANDWIDTH DIGITAL SIGNATURE PROTOCOL
FR2877453A1 (en) SECURE DELEGATION METHOD OF CALCULATING A BILINE APPLICATION
FR2734679A1 (en) Public key encryption based on discrete logarithms
WO2003055134A1 (en) Cryptographic method for distributing load among several entities and devices therefor
FR2739994A1 (en) CRYPTOGRAPHIC METHOD OF PROTECTION AGAINST FRAUD
WO1998051038A1 (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
FR2842052A1 (en) CRYPTOGRAPHIC METHOD AND DEVICES FOR REDUCING CALCULATION DURING TRANSACTIONS
EP1639450A1 (en) Method for countermeasuring in an electronic component
EP1820297A1 (en) Method of generating a signature with proof of tight security, associated verification method and associated signature scheme that are based on the diffie-hellman model
WO2002050658A1 (en) Countermeasure methods in an electronic component using an rsa-type public key encryption algorithm
WO2008001009A1 (en) Public-key cryptographic system and method for the authentication of a first entity by a second entity
WO2003023606A1 (en) Method of calculating the exponentiation in a group and the application thereof for user authentication
CA2494769A1 (en) Method for accelerating calculations in modular arithmetic

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20100129