CA2257907A1 - Procede de cryptographie a cle publique - Google Patents

Procede de cryptographie a cle publique Download PDF

Info

Publication number
CA2257907A1
CA2257907A1 CA002257907A CA2257907A CA2257907A1 CA 2257907 A1 CA2257907 A1 CA 2257907A1 CA 002257907 A CA002257907 A CA 002257907A CA 2257907 A CA2257907 A CA 2257907A CA 2257907 A1 CA2257907 A1 CA 2257907A1
Authority
CA
Canada
Prior art keywords
exponent
modp
exponents
bits
calculate
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.)
Abandoned
Application number
CA002257907A
Other languages
English (en)
Inventor
David M'raihi
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
Individual
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 Individual filed Critical Individual
Priority to CA002257907A priority Critical patent/CA2257907A1/fr
Publication of CA2257907A1 publication Critical patent/CA2257907A1/fr
Abandoned 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
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

L'invention concerne un procédé de cryptographie à clé publique basé sur le logarithme discret faisant intervenir le calcul de la grandeur Gkmodp. 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 donné. L'invention s'applique à la génération de signatures numériques, à l'authentification, au chiffrement.

Description

CA 022~7907 1998-12-04 W O 97/47110 PCTAFR96/00840.

PROCEDE DE CRYPTOG$i~PXIE A CLE PUBLIQUE

La presente invention a pour objet un procede de cryptographie dite à clé publique base sur le logarithme discret faisant intervenir le calcul d'une grandeur modulo p.
Elle trouve une application dans la generation de signatures numeriques de messages, dans une cession d'authentification entre deux entites ou dans le chiffrement de donnees.
Dans de telles procedures, la securite est ~ondee sur l'extrême difficulte qu'il ~ a à in~2rser certaines-fonctions et plus part culierement le logarithme discret.
Ce probleme consist~, etant do~ne la relation ~athematiq~c y - gXmoduiop ~e l'on notera par i~ suite y = gXmodp (qui signifie y est le reste de la divis on de gX par p), a retrouver x lo~sque l'on conna~t p, g et y. Ce probl~me est impossible a résoudre, en l'etat actuel des connaissances, des que la taille p atteint ou dep~ss~ 512 bits et que celle de x atteint ou
2~ depasse 128 bits.
Dans de tels systemes, il existe en general une autorite qui fournit le nombre p de grande taille, constituant le module. L'autorite choisit egalement un entier g, appele base tel que l'ensemble engendre par g c'est-a-dire l'ensemble forme des nombres gXmodp~ pour x appartenant a l'intervalle ~o, p-1~ soit un sous-ensemble de taille maximale, au moins 2128.
~es parametres p et g sont dits "publics" c'est-a-dire ~u'ils sont ~ournis par l'autorite a tous les utilisateurs rattaches a cette autorite.

CA 022~7907 1998-12-04 Selon certaines variantes, ces paramètres sont choisis individuellement par chaque utilisateur et font, dans ce cas, partie intégrante de sa clé
publique.
Un inconvénient majeur à la mise en oeuvre de systemes cryptographiques réside dans la nécessite d'avoir des moyens de calcul et de mémorisation relativement importants du fait des calculs complexes qui sont realisés.
En effet, le calcul de la grandeur gkmodp consiste à realiser des multiplications modulaires et cela est co~teux en temps de calcul et en place mémoire. Dans des dispositifs electroniques simples n'utilisant que des microprocesseurs standards, ce type d'operation n'est guère realisable.
Pour des dispositifs electroniques possedant un processeur specialise pour ce type de calcul, il est malgre tout souhaitable de limiter, le temps de calcul et la place memoire necessaire pour les resultats interm~diaires.
~ n e~fet, le calcul de la grandeur gkmodp est en general relativement coûteux par la methode classique du "carr~-multiplie" connue 50us 1' abréviation anglo-saxonne SQM (Square-Multiply) puisqu'il equivaut en moyenne a 3/2 Log2(p) multiplications.
Selon cette methode on calcule toutes les puissances de g c'est a dire tous les carres : go, gl, g2. ~gn/ lorsque k est de longueur n bits, puis on realise les multiplications requises entre ces puissances ( par exemple gl7= gl.gl6 ) Selon la methode du "carre multiplie" simple gk requiert n/2 multiplications et n carres.

CA 022~7907 l998-l2-04 W O 97/47110 PCT~FR96/00840 .

Dans le cas ou N signatures sont à fournir en une seule fois, on produit Ngk, on réalise alors un calcul en parallele.
La m~thode du "carré-multiplié" parallèle requiert N x n/2 multiplications et n carrés.
Une méthode proposée par 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 methode 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.
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 intermediaires.
Cette methode devient donc plus contraignante dans le cas où l'on se trouve dans une situation ou il s'agit de generer un grand nombre de signatures en un temps tres bre~ puisque dans ce cas le calcul en parallele est introduit.

La présente invention a pour objet de remédier a tous ces inconvenients. Elle permet d'apporter une solution souple et peu onereuse en temps de calcul et en place memoire a la mise en oeuvre d'algorithmes cryptographiques pour tous systemes de cryptographie et en particulier par des appareils portables du type carte a puce a microprocesseur.
Selon un premier objet de l'invention, le procede de cryptographie propose permet de reduire le nombre de multiplications modulaires de façon telle que l'on obtienne des gains en temps de calcul de 15 a 40~ et CA 022~7907 l998-l2-04 W O 97/47110 PCT~FR96/00840 plus selon les schemas de cryptographie utilisés (Schnorr ou El Gamal).
Selon l'invention, deux solutions sont proposees afin de réduire le nombre de multiplications, l'une S consistant a génerer des exposants k "creux" avec peu de bits a 1, mais de longueur suffisante pour garder toute la sécurité au systeme, et l'autre consistant a réaliser les calculs des puissances de g en parallele tout en combinant les exposants entre eux de maniere à
- 10 ne pas refaire deux fois le meme calcul de puissance pour un exposant donné.
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 15 grandeur gkmodp où p est un nombre premier appelé
module, k un nombre aleatoire habituellement de longueur n bits et g un entier appele base, dans lequel une entite E réalise des opérations d'authentification et/ou de signature et/ou de chiffrement, comprenant des échanges de signaux avec une autre entite dans lesquels intervient cette grandeur, caracterisé 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, 2~ - calculer le poids de ~mm; ng C de cet exposant et le comparer à une valeur h fixée au préalable, - vérifier si la valeur aleatoire k remplit la condition C ~ h - rejeter la valeur aléatoire k dans le cas ou le poids de Hamming est inférieur à h et recommencer la genération de nouveaux exposants jusqu'a l'obtention d'un exposant satisfaisant cette condition, - ou conserver cette valeur dans le cas contraire, CA 022~7907 1998-12-04 W O 97/47110 PCT~R96/00840 s - calculer l'expression gkmodp à partir de la valeur conservée, ~ - utiliser cette expression dans un échange de signaux électroniques avec l'autre entite.

L'invention a egalement pour objet un procédé de cryptographie à cle publique basé sur le logarithme discret ~aisant 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 realise des opérations d'authentification et/ou de signature et/ou de chiffrement, comprenant des echanges de signaux avec une autre entite dans lesquels 1~ interviennent plusieurs grandeurs de ce type, caracterisé 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 :
kj = ~ai2i - calculer en parallele les puissances de g21 tout en combinant les exposants de sorte que les puissances de g déja calculees pour un exposant servent a d'autres exposants dans lesquels elles interviennent, - pour chaque kj donné, calculer les puissances de g non encore calculees et regrouper toutes ces puissances pour obtenir l'expression gkj modp désirée, - utiliser ces expressions dans un echange de signaux avec l'autre entité.
Selon un premier mode de réalisation les étapes de calcul en parallele et de regroupement comportent les opérations suivantes :

CA 022~7907 1998-12-04 W O 97/47110 PCT~R~6~ 0 - combiner les exposants deux par deux pour obtenir des exposants kc reflet de leur parties communes et réiterer les combinaisons sur le resultat de combinaison obtenu, s - calculer des grandeurs GkC pour chaque valeur de kc telle que :
GkC = gkCmodp - combiner un exposant kj à l'exposant kc obtenu pour la combinaison ~ laquelle cet exposant appartient de manière a eliminer les parties communes et ne conserver que les parties differentes, - definir des exposants k'j reflet des parties differentes entre un exposant kj donné et un exposant kc donne, - calculer des grandeurs Gk,j telles que :
Gk,; = gk jmodp - déterminer les expressions Gkjmodp en operant des multiplications entre les grandeurs GkC obtenues a chaque iteration.
~0 Dans un deuxieme mode de realisation, les etapes de calcul en parallele et de regroupement comportent les operations suivantes :
- combiner les exposants entre-eux de maniere a former tous les sous-ensembles de combinaisons possibles d'exposants possedant des parties communes, - définir des exposants kc 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éree, - calculee des grandeurs GkC pour chaque valeur de kc telleS que : GkC= gkcmOdp CA 022~7907 1998-12-04 W O 97147110 PCT~R9~ 10.

- combiner chaque exposant kj avec tous les exposants kc obtenus pour chaque sous-ensemble de combinaison auquel cet exposant kj appartient de manière à éliminer les parties communes et ne conserver S que les parties différentes, - definir des exposants k'j reflet des parties différentes entre un exposant kj donné et un exposant kc donné, - calculer des grandeurs Gk,j telles que :
G~,j=gk jmodp - déterminer les expressions gkimodp en operant une multiplication entre les grandeurs G'kj et GkC pour chaque 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".
Selon un autre objet de l'invention, les combinaisons permettant d'obtenir les parties dif~érentes sont réalisées par des fonctions logiques "OU-exclusif".
D'autres particularités et avantages de l'invention apparaitront a 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 systeme apte a mettre en oeuvre l'invention, - la figure 2, un schéma fonctionnel représentant les étapes essentielles du procédé dans une premiere application, - la figure 3, un schéma fonctionnel representant les étapes essentielles du procédé dans une deuxieme application selon un premier mode de realisation, CA 022~7907 1998-12-04 WO 97/47110 PCT~FR96/00840 - la figure 4, un schéma fonctionnel, representant 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 schema de principe d'un systeme de mise en oeuvre du procede de cryptographie objet de l'invention.
Ce systeme est formee d'une entite E1 desirant effectuer des echanges de signaux electroniques avec au moins une autre entite E2. les deux entites sont munies respectivement d'une unite de traitement (CPU) 11, 30, d'une interface de communication, d'une memoire vive ~RAM) 13, 32 et/ou d'une memoire non inscriptible (ROM) 14, 34 et/ou d'une mémoire non volatile inscriptible ou reinscriptible (EPROM ou EEPROM) 15, 33 et un bus d'adresses, de donnees, de contrôle 16, 35.
L'unite de commande de traitement et/ou la ROM
contiennent des programmes ou des ressources de calcul correspondant a l'exécution des etapes de calcul intervenant dans le procede objet de l'invention, c'est-à-dire lors d'une session d'authentification ou lors de la generation d'une signature electronique ou lors du cryptage de signaux electroniques à transmettre à l'autre entite.
L'unite de traitement ou la ROM possedent les ressources necessaires a des multiplications, additions et reductions modulaires.
De meme que l'unité de traitement et/ou la ROM
comportent les fonctions de cryptographies utilisees propres a chaque algorithme de cryptographie et les parametres g et p. Les exposants kj pourront etre charges au prealable dans une memoire reinscriptible par l'autorite ou, generés au fur et a mesure a partir d'un générateur aléatoire et d'une valeur aléatoire CA 022~7907 1998-12-04 W O 97147110 PCT~R96/00840 source ko secrete. L'entité E1 possede en outre la clé
secrete x.
L'invention s'applique tout particulierement aux systeme a cryptographie mis en place dans le domaine S 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é.
En pratique, l'entité desireuse de réaliser une transaction pourra être, par exemple, une carte a circuit intégré telle qu'une carte a puce et l'entité
destinatrice sera alors un terminal bancaire.
La suite de la description va être faite dans le cadre de l'application du procédé a la signature de messages numériques, étant bien entendu que l'invention s'applique a tout systeme de cryptographie basé sur un algorithme discret.

Le procédé selon l'invention propose une premiere solution pour diminuer considérablement le nombre de multiplications particulierement adapté au cas o~ l'on a un environnement ou la place mémoire est faible.
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 caractere aléatoire a ces exposants.
3~ Pour cela, le procédé consiste a générer des exposants kj soit au fur et a mesure du besoin soit au prealable a tout echange. 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 CA 022~7907 1998-12-04 W 097147110 PCT~R~'00810 bits et remplissent une condition definie dans la suite.
Lorsqu'un exposant k de n+b bits est genere le procede consiste ensuite à calculer le poids de ~A~i ng C de cet exposant puis a le comparer à une valeur h fixee au préalable.
Si à l'issue de la comparaison C2h 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 utilisee comme signature par exemple.
Dans le cas o~ le paramètre C ne remplit pas la condition requise, l'exposant k correspondant est rejeté, un nouvel exposant est genere, l'etape de vérification de la condition est recommencee jusqu'à
obtention d'un exposant k remplissant cette condition.
Ainsi cette solution permet d'avoir à realiser moins de multiplication tout en conservant le même niveau de sécurite que si l'on avait des exposants de taille plus réduite.
Selon un exemple particulier, permettant de réduire au maximum le nombre de multiplications on choisira 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érifiees :
2n ~ ch n+b et( N + b)/2 + h < n ~condition qui permet de réduire le nombre de calcul a effectuer).
c'est a dire 2n < (n+b) !/ (n + b - h)! h!
et CA 022~7907 1998-12-04 W O 97147110 PCTrFR96/00840 .

.

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).
A titre illustratif les résultats du procédé selon l'invention ont ete comparés aux methodes connues.
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 10 tableau ci-dessous.

variant ~ Schnorr El Gamal El Gamal Temps de Espace de effort ~ calcul mémoire multiplications 62(h) 187(h) 199(h~
CARRE 87(b=15) 279(b=52) 273(b=35) GAIN 6,8% 9,4% 7,8%

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 securite que l'on désire obtenir.
Les paramètres n, h et b doivent alors remplir la 25 condition (1) (1) 2 n-a < (n+ b)!/(n+b-h)!h!
tout en conservant la possibilité de genérer les mêmes signatures à partir de différents aléas de taille (n + b) bits.
En pratique 280 est assez pour contrer les différentes attaques possibles et donc n-a = 100 est une valeur tout à fait acceptable.

CA 022~7907 l998-l2-04 W O97147110 12 PCT~FR96/00840 variant ~ Exposant Expossant carre-creuse creux multiplie temps place simple effort ~ de calcul memoire multiplications 37(h) 49(h) n/2 carres n/2+7 n/2+2 n/2 (b=14) (b=4) Total n/2+44 n/2+51 n Cette variante d'execution est d'autant plus interressante que le coût (en temps de calcul) d'un carre est souvent moindre que celui d'une multiplication modulaire.
En géneral on obtient :
s/2 < m < s, s etant le nombre de carrés à calculer et m le nombre de multiplications, les deux cas extremes etant m = s et m = 2s.
On a represente des resultats comparatifs pour ces deux cas extremes dans le tableau suivant :

variant~> exposant exposant carre GAIN
creux creux multiplie effort ~ temps de place simple calcul memoire Schnorr 124 131 160 22.5 (m=2s ) El Gamal 300 307 512 41 (m=2~) Schnorr 204 211 240 15%
(m=s) W O 97/47110 13 ~CT~96/0084Q

.

El Gamal 556 563 728 24 (m=~) On constate que le gain obtenu lorsque l'on applique le procede aux schemas de Shnorr et El Gamal est tres important par rapport a la methode du carre-multiplie simple et même dans le cas où l'on considère ~ue le co~t d'un carre est le meme que celui d'une multiplication.

Selon un autre mode de realisation, le procede s'applique tout particulierement a des systemes n'ayan~
pas de contrainte particuliere concernant la place memoire.
Dans ce mode de realisation, on procade au calcul des differentes puissances de g en parallele afin de ne calculer les carres qu'une seule fois, tout en combinant les exposants afin de ne pas effectuer plusieurs fois le même calcul.
Pour bien comprendre l'invention, on va decrire le cas o~ l'on a effectue le calcul de deux puissances.
soit kj = ~ai2i~ kj etant tire aleatoirement (c'est-a-dire generé a partir d'un generateur aléatoire~
soit kk = Kj = ~bi2i Selon le procede on combine les exposants kj et kk de manière a definir un exposant kc tel que :
kc = ~aibi2i reflete des parties communes entre k et kk. Les coefficients ai sont, soit 1 soit 0.
L'exposant kc correspond a la partie commune des exposants kj et kk c'est-a-dire si kj = 1 x 21~ + ... +
0 + 1 x 2~ et kk = 1 x 21~ + 0 + 0 ... + 1 x 2~
kc = 1 x 21~ + 0 + ... + 1 x 2~.

CA 022~7907 1998-12-04 W O97/47110 PCT~FR96/00840 .

Selon le proc~dé on détermine donc ainsi l'exposant k noté kc. au moyen d'une fonction logique ET.
On procéde ensuite a une deuxième combinaison consistant a déterminer les parties distinctes entre S l'exposant kj et l'exposant kc. On recherche également les parties distinctes entre l'exposant kk et l'exposant kc.
On va noter kj ~ kc et kk ~ kc ces combinaisons qui sont réalisées pour des OU-exclusifs.
On calcule en parallele les grandeurs suivantes :
Gk j = gk j ~ kCmodp Gkk = gkk ~ kCmodp GkC = gkCmodp Pour obtenir gkimodp et Gkkmodp il suffit de réaliser les opérations :
1 ) Gk j 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 etre généralisé ~
un plus grand nombre de combinaisons d'exposants. Cette géneralisation peut en outre etre implantee selon deux modes de réalisation illustrés par les schemas fonctionnels donnes sur les figures 3 et 4.
Dans ce cas, l'invention s'applique tout particulierement aux cas o~ l'on a besoin de generer un grand nombre de signatures.
Selon le premier mode de realisation, on realise des combinaisons d'exposants deux par deux suivant une arborescence telle que representee par le tableau ci-dessous :
kj al a2 a3 a4 CA 022~7907 1998-12-04 W O 97/47110 PCT~R96/00840.

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 kc reflet des parties commune entre les exposants kj~.
Pour simplifier l'écriture, les exposants kj sont nommés al, a2, a3, a4-Les exposants kc sont nommes au niveau -1 de l'arbre, b1 et b2 et au niveau -2 de l'arbre par cl.
Les combinaisons a1.a2, a3. a4 sont realisees par une fonction logique ET.
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.
Comme cela a éte decrit precédemment, on determine des grandeurs GkC à chaque niveau.
Ainsi on obtiendra :
Gal = gal ~3 blmodp Ga2 = ga2 ~ blmodp Gbl = gblmodp G gbl ~ Clmodp soit Gbl = Gbl Cl P
G gb2 ~ Clmodp soit Gb2 = Gb2 Cl P
GCl = gcl modp Gal modp= Gal x Gbl modp = GalXGbl x G clm~dP

En pratique, galmodp sera obtenu par le produit Ga1 x Gbl modp et ga2 modp sera obtenu par le produit Ga2 x blx GC1 modp-CA 022~7907 1998-12-04 W O 97147110 PCTn~R96/00840 Selon un deuxième mode de réalisation on combine les exposants de manière a former tous les sous-ensembles de combinaison possibles soit par exemple si l'on a comme exposant kj : a, b, c, on formera les combinaisons ab, ac, bc, abc.
On r~alise donc des combinaisons permettant de definir les parties communes relatives a ces sous-ensembles en opérant une fonction logique ET entre a et b, a et c, b et c et a, b, c. On definit ainsi un lo exposant kc pour chaque sous-ensemble obtenu.
On peut calculer en parallele toutes les grandeurs GkC = g kCmodp pour lesquelles kc ont peu de bits a 1 par rapport aux k initiaux et donc pour lesquelles le calcul modulaire est rapide.
Puis on effectue un autre type de combinaison consistant à eliminer les parties communes entre un exposant et les combinaisons précédentes.
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 k~j = gkj modp pour lesquelles les k'j ont encore moins de bits à
1 que les kc initiaux et pour lesquelles les modifications modulaires sont encore plus rapides.
Pour finir les expressions gkimodp sont obtenues par kj.
Dans le cas de la génération de N signatures obtenues par ce deuxieme mode de realisation, l'effort de calcul tendra vers n/N carres + n(2N-1)/N2N + (2N-1-1) multiplications.

CA 022~7907 1998-12-04 W O 97/47110 PCT~R96/0084Q

.

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.
S
Méthodes Carré Carré Combinaison Temps de muliplie d'exposant effort multiplie parallèle arbre n binaire Carrés N(n-l) n-1 n-l Multiplication N(n/2-1) N(n/2-1) Nn/3 TOTAL N(3n/2-2) N(n/2-l)+n-1 Nn/3+n-1 Effort pour N>>n 100% 33% 22%
1~
Le premier mode de réalisation donne (regroupement arborescent) dans le cas de l'application à la genération de N signatures est peu coûteuse en place mémoire.
Pour un arbre binaire a 4 exposant on aura besoin de 8 registres de log2(p) bits pour les calculs.
Le deuxieme mode de realisation donne (N
regroupements) est très peu coûteux en temps de calcul car elle est optimale en nombre de multiplication. Pour 2~ 3 exposants on aura besoin de 8 registres de log2(p) bits pour les calculs.

Claims (5)

REVENDICATIONS
1. Procédé de cryptographie à clé publique basé sur le logarithme discret faisant intervenir le calcul de la grandeur g k modp ou p est un nombre premier appelé
module, k un nombre aléatoire habituellement de longueur n bits et q 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 ~ h - rejeter la valeur aléatoire k dans le cas ou le poids de Hamming est inférieur de h et recommancer la génération de nouveaux exposants jusqu'à obtention d'un exposant satisfaisant cette condition, - ou conserver cette valeur dans le cas contraire, - calculer l'expression g k modp à partir de la valeur conservée, - utiliser cette expression dans les échanges de signaux avec l'autre entité.
2. Procédé selon la revendication 1, caractérisé en ce que la condition à remplir est c = h.
3. Procédé de cryptographie à clé publique basé cur le logarithme discret faisant intervenir le calcul de la grandeur g k modp 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 :
- générer un ensemble d'exposants aléatoires k j de n bits de poids ai s'exprimant par l'expression k j =~a i 2i - calculer en parallèle les puissance de g2i tout en combinant les exposants de sorte que les puissances de g calculées pour un exposant servent à d'autres exposants dans lesquels elles interviennent, - pour chaque k j donne, calculer les puissances de g non encore calculées et regrouper toutes ces puissances pour obtenir l'expression gk j modp désirée, - utiliser ces expressions dans un échange de signaux avec l'autre entité.
4. 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 :
- 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 les grandeurs G kc pour chaque valeur de k c telle que :
G kc = g kc modp - combiner un exposant k j a l'exposant k c obtenu pour la combinaison à laquelle cet exposant appartient de manière a é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 k j donné et un exposant k c donné, - calculer des grandeurs G k,j telles que :
G k,j = gmodp - déterminer les expressions G kj modp en opérant des multiplications entre les grandeurs G kc obtenues à
chaque itération.
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 :
- 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 G kc pour chaque valeur de k c telles que : G kc= g kc modp - combiner chaque exposant k j avec tous les exposants k c obtenus pour chaque sous-ensemble de combinaison auquel cet exposant k j 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 k j donné et un exposant k c donné, - calculer des grandeurs G k,j telles que :
G k,j=g k'j modp - déterminer les expressions gkj modp en opérant une multiplication entre les grandeurs G'kj et Gkc pour chaque kj.
CA002257907A 1996-06-05 1996-06-05 Procede de cryptographie a cle publique Abandoned CA2257907A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA002257907A CA2257907A1 (fr) 1996-06-05 1996-06-05 Procede de cryptographie a cle publique

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002257907A CA2257907A1 (fr) 1996-06-05 1996-06-05 Procede de cryptographie a cle publique
PCT/FR1996/000840 WO1997047110A1 (fr) 1996-06-05 1996-06-05 Procede de cryptographie a cle publique

Publications (1)

Publication Number Publication Date
CA2257907A1 true CA2257907A1 (fr) 1997-12-11

Family

ID=9488451

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002257907A Abandoned CA2257907A1 (fr) 1996-06-05 1996-06-05 Procede de cryptographie a cle publique

Country Status (7)

Country Link
US (1) US6459791B1 (fr)
EP (1) EP0909495B1 (fr)
JP (1) JP2000511649A (fr)
CA (1) CA2257907A1 (fr)
DE (1) DE69633253T2 (fr)
ES (1) ES2227595T3 (fr)
WO (1) WO1997047110A1 (fr)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6337909B1 (en) * 1996-10-10 2002-01-08 Certicom Corp. Generation of session keys for El Gamal-like protocols from low hamming weight integers
DE19963408A1 (de) 1999-12-28 2001-08-30 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Schlüsselteilung
CA2329590C (fr) * 2000-12-27 2012-06-26 Certicom Corp. Methode de generation de cle publique
JP2002247025A (ja) * 2001-02-22 2002-08-30 Hitachi Ltd 情報処理装置
FR2823327B1 (fr) * 2001-04-09 2003-08-08 Gemplus Card Int Dispositif destine a realiser des calculs d'exponentiation securisee et utilisation d'un tel dispositif
WO2003024104A1 (fr) * 2001-09-13 2003-03-20 Nds Limited Systeme destine a prevenir le piratage
US7184551B2 (en) * 2002-09-30 2007-02-27 Micron Technology, Inc. Public key cryptography using matrices
US7366302B2 (en) * 2003-08-25 2008-04-29 Sony Corporation Apparatus and method for an iterative cryptographic block
US7370202B2 (en) * 2004-11-02 2008-05-06 Voltage Security, Inc. Security device for cryptographic communications
WO2006103851A1 (fr) * 2005-03-28 2006-10-05 Matsushita Electric Industrial Co., Ltd. Dispositif de generation d'une valeur de puissance
US8656177B2 (en) * 2008-06-23 2014-02-18 Voltage Security, Inc. Identity-based-encryption system
CN114448611A (zh) * 2020-11-02 2022-05-06 中兴通讯股份有限公司 密钥生成方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204901A (en) * 1991-08-01 1993-04-20 General Electric Company Public key cryptographic mechanism
FR2700430B1 (fr) * 1992-12-30 1995-02-10 Jacques Stern Procédé d'authentification d'au moins un dispositif d'identification par un dispositif de vérification et dispositif pour sa mise en Óoeuvre.

Also Published As

Publication number Publication date
DE69633253D1 (de) 2004-09-30
JP2000511649A (ja) 2000-09-05
DE69633253T2 (de) 2005-09-15
US6459791B1 (en) 2002-10-01
EP0909495A1 (fr) 1999-04-21
ES2227595T3 (es) 2005-04-01
EP0909495B1 (fr) 2004-08-25
WO1997047110A1 (fr) 1997-12-11

Similar Documents

Publication Publication Date Title
EP1441313B1 (fr) Procédé cryptographique à clé publique pour la protection d&#39; une puce électronique contre la fraude
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
WO1996033567A1 (fr) Procede de generation de signatures electroniques notamment pour cartes a puces
CA2712178A1 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique
EP0795241B1 (fr) Procede de cryptographie a cle publique base sur le logarithme discret
CA2257907A1 (fr) Procede de cryptographie a cle publique
FR2807898A1 (fr) Procede de cryptographie sur courbes elliptiques
EP1904921A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
EP1224765B1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
EP1829279A2 (fr) Procede et dispositif d&#39;execution d&#39;un calcul cryptographique
WO2003055134A9 (fr) Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
FR2734679A1 (fr) Procede de cryptographie a cle publique base sur le logarithme discret
EP0980607A1 (fr) Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d&#39;aleas
FR2842052A1 (fr) Procede et dispositifs cryptographiques permettant d&#39;alleger les calculs au cours de transactions
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
EP1639450A1 (fr) Procede de contre-mesure dans un composant electronique
WO2002050658A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en ouvre un algorithme de cryptographie a cle publique de type rsa
WO2001010078A1 (fr) Schemas de signature a base de logarithme discret avec reconstitution partielle ou totale du message
FR2792789A1 (fr) Procede de verification de signature ou d&#39;authentification
WO2003010921A1 (fr) Procede de generation de cles electroniques pour la mise en oeuvre d&#39;un algorithme cryptographique, carte a puce mettant en oeuvre le procede
FR2713420A1 (fr) Procédé de génération de signatures DSA avec des appareils portables à bas coûts.
FR2842968A1 (fr) Procede d&#39;obtention d&#39;une signature electronique possedant une garantie sur sa securite
WO2008001009A1 (fr) Systeme et procede cryptographique a cle publique pour l&#39;authentification d&#39;une premiere entite par une seconde entite
WO2003023606A1 (fr) Procede pour le calcul d&#39;une exponentiation dans un groupe et son application a l&#39;authentification d&#39;un utilisateur
FR3013476A1 (fr) Securisation de procede de cryptographie sur courbes elliptiques

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued