CA2288767A1 - Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing - Google Patents
Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing Download PDFInfo
- Publication number
- CA2288767A1 CA2288767A1 CA002288767A CA2288767A CA2288767A1 CA 2288767 A1 CA2288767 A1 CA 2288767A1 CA 002288767 A CA002288767 A CA 002288767A CA 2288767 A CA2288767 A CA 2288767A CA 2288767 A1 CA2288767 A1 CA 2288767A1
- Authority
- CA
- Canada
- Prior art keywords
- secret
- signature
- random
- message
- key
- 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
Links
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/409—Device specific authentication in transaction processing
- G06Q20/4097—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
- G06Q20/40975—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
Abstract
Description
GENERATEnR PSEUDO-ALÉATOIRE HASE SûR UNE FONCTION DE HACHAGE
POUR SYSTEMES CRYPTOGRAPHIQUES NÉCESSITANT LE TIRAGE D'ALÉAS
La présente invention décrit un système permettant de générer des signatures numériques ou des cryptogrammes nécessitant le tirage d'aléas (typ:iquement DSA, E1-Gamal, Fiat-Shamir, Guillou-Quisquater pour les signatures, E1-Gamal et McEliece pour le chiffrement), par des dispositifs de signature ou de chiffrement (typiquement microprocesseurs) dépourvus de i0 ressources matérielles ou logicielles permettant le tirage d'alêas.
Elle fournit en outre une parade, ou défense, contre certaines menaces (typiquement le chiffrement de messages courts et les récentes attaques publiêes par Coppersmith et al.
à Eurocrypt ' 96 dans les articles ~ Low Exponent wi th Related Message » et ~ Finding a small root of a univariate modular equation ») par la génération à peu de frais, c'est à dire peu coûteuse, d'une séquence aléatoire permettant de compléter l'information à traiter.
Elle permet également la gênération de facteurs d'aveuglement, utilisés dans le cadre des mécanismes de signatures en blanc ou de maquillage aléatoire.
Elle peut enfin être utilisée dans les protocoles d'échange de clés de type Diffie-Hellman.
Malgré une diffusion généralisêe et une bonne acceptation du concept de la carte à puce de la part du public, la plupart des applications pratiques sont apparues seulement voici quelques années, principalement à cause des limitations de puissance de calcul des cartes. Les progrès en matière de 3o capacité de stockage non volatile des informations, la sécurité
et la technologie des circuits (par exemple l'EEPROM) encouragent l'émergence rapide de nouvelles générations de GENERATE PSEUDO-RANDOM HASE ON A CHOPPING FUNCTION
FOR CRYPTOGRAPHIC SYSTEMS REQUIRING HAZARD DRAWING
The present invention describes a system for generate digital signatures or cryptograms requiring the drawing of hazards (typ: only DSA, E1-Gamal, Fiat-Shamir, Guillou-Quisquater for the signatures, E1-Gamal and McEliece for encryption), by signature devices or encryption (typically microprocessors) without i0 hardware or software resources allowing the drawing of hazards.
It also provides a defense, or defense, against certain threats (typically message encryption short and the recent attacks published by Coppersmith et al.
to Eurocrypt '96 in the articles ~ Low Exponent wi th Related Message "and ~ Finding a small root of a univariate modular equation ”) by generating inexpensively, ie little expensive, of a random sequence allowing to complete the information to be processed.
It also allows the generation of factors of blindness, used as part of the mechanisms of blank signatures or random makeup.
It can finally be used in protocols to exchange Diffie-Hellman keys.
Despite widespread dissemination and good acceptance of the concept of the smart card on the part of the public, most practical applications only appeared here a few years, mainly due to the limitations of computing power of cards. Progress in 3o non-volatile information storage capacity, security and circuit technology (eg EEPROM) encourage the rapid emergence of new generations of
2 cartes et d'applications de plus en plus ambitieuses telles que le nouveau standard de signature numérique Américain (DSA).
Une grande limitation des cartes à puce comme support d'implémentation d'algorithmes à clé publique est la nécessité
(fréquemment rencontrée), d'avoir un dispositif générant des nombres aléatoires à bord de la carte. En effet, la mise au point d'un tel dispositif, appelé aussi générateur, s'avère complexe et souvent instable (sensibilité aux phénomènes extérieurs à la carte tels que la température ambiante ou la l0 tension appliquée à la carte). Dans le cas où de tels systèmes cryptographiques sont mis en oeuvre sur un ordinateur, d'autres phénomènes, dus à la nature même des générateurs aléatoires logiciels viennent perturber la qualité des aléas. Typiquement, une méthode de génération d'aléas très populaire consiste à
mesurer le temps écoulé entre deux touches du clavier appuyées par l'utilisateur. Des cas de fraude récents montrent que ce genre de générateurs peut être biaisé en simulant le clavier à
l'aide d'un dispositif frauduleux dont le temps écoulé entre les diverses touches est connu de l'attaquant.
La présente invention propose une solution de substitution permettant la mise en oeuvre de systèmes cryptographiques nécessitant le tirage d'un aléa d'une bonne qualité sur des plates-formes logicielles ou matérielles .
1. ne possédant pas de moyen de génération d'aléas, 2. ou générant des aléas de mauvaise qualité, 2 increasingly ambitious maps and applications such as the new American digital signature standard (DSA).
A big limitation of smart cards as support implementation of public key algorithms is the need (frequently encountered), to have a device generating random numbers on board. Indeed, the setting point of such a device, also called generator, turns out complex and often unstable (sensitivity to phenomena outside the map such as room temperature or l0 voltage applied to the card). In the event that such systems cryptographic are implemented on a computer, others phenomena, due to the very nature of random generators software disrupts the quality of hazards. Typically, a very popular hazard generation method is to measure the time between two keys on the keyboard by the user. Recent fraud cases show that this kind of generators can be biased by simulating the keyboard to using a fraudulent device whose time between the various keys is known to the attacker.
The present invention provides a substitution solution allowing the implementation of cryptographic systems requiring the drawing of a good quality hazard on software or hardware platforms.
1. having no means of generating hazards, 2. or generating poor quality hazards,
3. ou lorsque le concepteur du système suspecte que des éléments extérieurs pourraient compromettre la qualité des alêas par modification des conditions extérieures et intérieures de fonctionnement.
La présente invention s'applique à diverses familles d'algorithmes cryptographiques. Pour une meilleure compréhension- de l'invention et avant de reprendre le contenu des revendications dans la description, il est utile de rappeler les caractéristiques principales desdites familles d'alogorithmes cryptographiques auxquelles s'applique ~5 l'invention, celles-ci étant au nombre de six.
La première famille d'application concerne les schémas de signature de type E1-Gamal.
L'algorithme de signature d'El-Gamal décrit dans l'article intitulé « A public-key crypt;osystem and a signature scheme based on discrete logari.thms » et: publié dans la revue IEEE
Transactions on Information Theory, vol. IT-31, no. 4, 1985, pp. 469-472, a donnê naissance à plusieurs algorithmes de signatûre connus: Schnorr, breveté aux Etats-Unis sous la référence 4.995.082, ou GOST 34-10 - norme fédérale Russe de signature numérique ; DSA-Standart américain de signature numérique.
Une fois illustrée dans le cadre du DSA, l'application de la présente invention à d'autres algorithmes de la même famille pourra aisément être mis en oeuvre par l'homme de l'art.
2o Dans la suite, il est appelé L'algorithme DSA.
Le Standard de Signature Numérique (DSA, brevet américain no. 5.231.668 intitulée "Digital Signature Algorithm") a été
proposé par le US National Institute of Standards and Technology afin de fournir une base appropriée pour des applications requérant une signature numérique au lieu des signatures classiques. Une signature DSA est une paire de grands nombres représentés dans ur~ ordinateur par des chaînes de chiffres binaires. La signature numérique est calculée à
l'aide d'une série de règles de calcul (le DSA) et un ensemble de paramètres d'une façon permettant de certifier à la fois 3. or when the system designer suspects that external elements could compromise the quality of hazards by modification of external conditions and operating interior.
The present invention applies to various families cryptographic algorithms. For better understanding of the invention and before resuming the content of claims in the description it is useful to recall the main characteristics of said families of cryptographic algorithms to which applies ~ 5 The invention, these being six in number.
The first family of applications concerns the diagrams of E1-Gamal signature.
El-Gamal's signature algorithm described in the article entitled "A public-key crypt; osystem and a signature scheme based on discrete logari.thms ”and: published in the IEEE journal Transactions on Information Theory, vol. IT-31, no. 4, 1985, pp. 469-472, gave rise to several algorithms for known signature: Schnorr, patented in the United States under the reference 4.995.082, or GOST 34-10 - Russian federal standard of digital signature; Signature American DSA-Standart digital.
Once illustrated within the framework of the DSA, the application of the present invention to other algorithms of the same family could easily be implemented by those skilled in the art.
2o In the following, it is called The DSA algorithm.
The Digital Signature Standard (DSA, American patent no. 5.231.668 entitled "Digital Signature Algorithm") has been proposed by the US National Institute of Standards and Technology to provide an appropriate basis for applications requiring a digital signature instead of classic signatures. A DSA signature is a pair of large numbers represented in ur ~ computer by strings of binary digits. The digital signature is calculated at using a set of calculation rules (the DSA) and a set parameters in a way to certify both
4 l'identité du signataire et l'intégrité des données. Le DSA
permèt de générer et vérifier des signatures.
Le procédé de génération de signatures fait usage d'une clé privée (afin de produire une signature numérique). Le procédé de vérification utilise une clé publique qui correspond à la clé secrète sans toutefois lui être identique. Chaque utilisateur possède une paire de clés (publique , secrète). I1 est supposé que les clés publiques sont connues de tous alors que les clés secrètes ne sont jamais dévoilées. Toute personne 1o a la capacité de vérifier la signature d'un utilisateur en utilisant sa clé publique mais des signatures ne peuvent être génêrées autrement qu'en utilisant la clé secrète de l'utilisateur.
Les paramètres du DSA sont .
- O Un module premier p tel que 2L1<p<2L pour 512 <_ L <_ 1024 et L = 64 a pour un a quelconque.
OO Un module premier q tel que 2lss<q<2lso et p-1 est un multiple de q.
OO Un nombre g, d' ordre q modulo p tel que g - hop-1~ /q mod p, où h est un entier quelconque vérifiant 1 < h < p-1.
~ Un nombre x, généré aléatoirement ou pseudo aléatoirement.
D Un nombre y défini par la relation . y = g" mod p.
~ Un nombre k généré aléatoirement ou pseudo aléatoirement tel que 0 < k < q.
Les entiers p, q et g sont des paramêtres du système pouvant être publiés et/ou partagés par un groupe d'utilisateurs. Les clés, secrète et publique, d'un signataire sont respectivement x et y. Les paramëtres x et k sont utilisés pour la génération de la signature et doivent être gardés WO 98lS1038 PCT/FR98/00901 secrets. Le paramètre k doit être régénéré pour chaque signature.
Afin de signer un message m (valeur hachée d'un fichier initial M), le signeur calcule la signature (r, s) par .
k 4 the identity of the signatory and the integrity of the data. The DSA
allows to generate and verify signatures.
The signature generation method makes use of a private key (to produce a digital signature). The verification process uses a public key that matches to the secret key without however being identical to it. Each user has a key pair (public, secret). I1 is assumed that the public keys are known to all then that secret keys are never revealed. Every person 1o has the capacity to verify the signature of a user in using their public key but signatures cannot be generated other than by using the secret key of the user.
The DSA parameters are.
- O A first p module such as 2L1 <p <2L for 512 <_ L <_ 1024 and L = 64 a for any a.
OO A prime module q such that 2lss <q <2lso and p-1 is a multiple of q.
OO A number g, of order q modulo p such that g - hop-1 ~ / q mod p, where h is an integer satisfying 1 <h <p-1.
~ A number x, randomly generated or pseudo randomly.
D A number y defined by the relation. y = g "mod p.
~ A randomly generated or pseudo number k randomly such that 0 <k <q.
The integers p, q and g are parameters of the system can be published and / or shared by a group of users. The keys, secret and public, of a signatory are respectively x and y. The parameters x and k are used for signature generation and must be kept WO 98lS1038 PCT / FR98 / 00901 secrets. The parameter k must be regenerated for each signature.
In order to sign a message m (hashed value of a file initial M), the signer calculates the signature (r, s) by.
k
5 r = g mod p mod q et s = (m + x r) /k mod q, où la division par k s'entend modulo q (i.e. 1/k est le nombre k' tel que k k' - 1 mod q).
Par exemple, si q=5 et k=3 alors 1/k =2 car 3x2 - 6 ---1 mod 5.
lo Après avoir testé que r et s ~ 0, comme expliqué dans la description du DSA, la signature {r, s~ est envoyée au vérifieur qui calcule .
w = 1/s mod q ~ ul = m w mod q OO u2 = r w mod q ~ v = gul yua modp mod q ~ Et compare si v et r sont égaux afin d'accepter ou rejeter la signature.
La deuxième famille concerne également des schémas de signature ; il s'agit de schémas dérivés de protocoles à
divulgation nulle Une seconde famille d'algorithmes de signature à laquelle s'applique l'invention sont ceux dérivés des protocoles à
divulgation nulle (typiquement Fiat-Shamir ou .Guillou-Quisquater brevetës aux Etats-Unis respectivement sous les références 4.748.668 et 5.140.634). Aussi, il sera dêcrit . seulement un de ces protocoles. Une fois appliqué à
l'algorithme de Guillou et Quisquater, l'extension de - l'invention à d'autres algorithmes de cette famille s'avère évidente pour l'homme de l'art.
_ 6 Les paramètres de l'algorithme de _Guillou-Quisquater sont Deux nombres premiers secrets p et q de taille au moins.
égale à 256 bits ; ces nombres premiers sont générés d'une façon particulière dont le détail n'est pas indispensable à la compréhension de la présente invention mais peut être toutefois retrouvé dans l'ouvrage « Cryptographie Appliquée, Algorithmes, Protocoles et Codes Source », par Bruce Schneier (Traduction de Marc Vauclair), Éditions Thomson Publishing ;
i0 20 Un module public n = p q et une chaine ID représentant l'identité du signeur ;
O Un exposant public v et une clé secrète B telle que B"
ID = 1 mod n ; le paramètre B doit rester secret ;
~ Afin de signer le message m, l' expéditeur tire un aléa k, calcule le témoin initial T - k" mod n et génère la signature .
d = h (T, m) et D = k Bh~T'm) mod n ;
OO Le vérifieur s'assure de l'authenticité de la signature en vérifiant que .
d = h ( T' , m) avec T' = D" Idd .
La troisième famille d'application concerne les schémas de chiffrement à clé publique nécessitant un aléa.
Le premier algorithme de chiffrement nécessitant un aléa décrit dans la suite est celui d'El Gamal.
Les paramètres de cet algorithme sont:
O Un module premier p (d'au moins 512 bits) ;
O Un nombre g, d'ordre p-1 modulo p (i. e. tel que, pour tout nombre entier u, 0 < u < p-1, gu ~ 1 mod p ;
OO Un nombre x, 1 <_ x _< p-2, généré aléatoirement ou pseudo aléatoirement ;
Un nombre y défini par la relation . y = g" mod p ;
_ 7 ~ Un nombre k générê aléatoirement ou pseudo aléatoirement tel que 0 < k < q.
Les entiers p et g sont des paramètres système pouvant être publiés, et/ou partagés par un groupe d'utilisateurs. La . 5 clef publique de chiffrement est le nombre y, et la clef secrète de déchiffrement est le nombre x.
Le paramètre k sert à la génêration du cryptogramme, et ne doit pas être divulgué. De plus, il doit être regénéré à chaque chiffrement.
lo Le chiffré d'un message m, 0 <_ m 5 p-1, est la paire d'entiers (r,s), où:
r = gk mod p et s = m yk mod q.
Pour retrouver le message m, le receveur des cryptogrammes (qui possède x), calcule:
15 s/r" mod p, qui est justement m.
Un second algorithme de chiffrement nécessitant la génération d'un aléa est le schéma de McEliece, basé sur un problème de la théorie des codes, plus précisément utilisant 20 une classe de codes particulière connue sous le nom de codes de Coppa. L'idée générale est de déguiser un code de Coppa en code linéaire quelconque ; il existe en effet un algorithme efficace pour décoder un code de Coppa mais en revanche décoder un code linéaire gênéral est un problème difficile. Le récepteur 25 connaissant l'information ayant permis de déguiser le code, pourra donc déchiffrer le message en décodant le code de Coppa obtenu.
Les paramètres de l'algorithme de McEliece (toutes les . formules qui suivent sont entendues dans GF(2)) sont .
_ 8 Des nombres n, k et t, paramètres du système ; dans l'article originel décrivant son schéma de chiffrement, McEliece propose n =1024, t = 50 et k = 524 ;
OO Une clé secrète composée de .
~ Une matrice génératrice G d'un code de Goppa binaire de taille n et de dimension k corrigeant t erreurs et l'algorithme de décodage correspondant ;
Une matrice inversible aléatoire S de dimension k x k ;
~ Une matrice de permutation aléatoire P de taille n ;
OO Une clé publique correspondante composée de .
~ La matrice génératrice T - SGP d'un code équivalent à
G ;
~ Le taux de correction t ;
~ Le chiffrement par l'algorithme de McEliece d'un message m de k bits s'effectue en calculant .
c = mT + e où e est un vecteur d'erreur aléatoirement choisi de poids de Hamming égal â t.
Le déchiffrement de c s'effectue en calculant .
cP 1 - m TP 1 + eP 1 - mSG + eP 1.
Puisque e est de poids t, eP-1 est aussi de poids t. Le vecteur cP 1 est donc corrigible par le code G..Par décodage, le déchiffreur obtient mS, puis m car il connait S et S est inversible.
La quatrième famille concerne les schémas cryptographiques nécessitant un « padding » aléatoire.
I1 n'est pas rare que la donnée à chiffrer doive d'abord être « paddée », c'est-à-dire complétée pour obtenir une donnée d'une taille fixe. L'illustration de cet aspect peut être donné
par l'exemple du chiffrement RSA, publié en 1978 par R. Rivest, A. Shamir et L. Adleman puis breveté sous l'intitulé
Cryptographie Communications System and Method ~ et la référence US 4,405,829.
Un cryptogramme RSA est un grand nombre représenté dans un ordinateur par des chaînes de chiffres binaires ou hexadécimales. Le cryptogramme est calculé à l'aide d'une ressource de calcul logicielle (programme) et/ou matérielle (circuit électronique) mettant en oeuvre une série de règles de calcul (l'algorithme de chiffrement) devant être appliquées Iors du traitement d'un ensemble de paramètres accessible à
1o tous afin de cacher le contenu des données traitées. De façon analogue, le cryptogramme est déchiffré à l'aide d'une ressource de calcul logicielle ou matérielle mettant en oeuvre une série de règles de calcul (l'algorithme de déchiffrement) appliquées (par le récepteur du cryptogramme) sur un ensemble de paramètres secrets et le cryptogramme.
Le procédé de chiffrement fait usage d'une clé publique afin de produire le cryptogramme. Le procëdé de dêchiffrement utilise une clé privée qui correspond à la clé secrète sans toutefois lui être identique. Chaque utilisateur possède une paire de clés (publique, secrète) et l'on suppose que les clés publiques sont connues de tous alors que les clês secrètes ne sont jamais dévoilées. Toute personne a la capacité de chiffrer un message pour un utilisateur en utilisant la clé publique de ce dernier mais des cryptogrammes ne peuvent être déchiffrés autrement qu'en utilisant la clé secrète de l'utilisateur.
Les paramètres de l'algorithme RSA sont .
. ~O Deux nombres premiers secrets p et q de taille au moins égale à 256 bits. Ces nombres premiers sont gënérés d'une façon . particulière dont le détail n'est pas indispensable à la compréhension de la présente invention mais peut être toutefois retrouvé dans l'ouvrage « Cryptographie Appliquée, Algorithmes, Protocoles et Codes Source », par Bruce Schneier (Traduction de Marc Vauclair), Editions Thomson Publishing ;
OO Un module public n = p q ;
O Une paire d'exposants notée (e,d) tels que .
e d = 1 mod {p-1) (q-1).
L'exposant e, appelé « exposant de chiffrement », est accessible à tous alors que « l'exposant de déchiffrement » d doit rester secret.
Afin de chiffrer le message m, l'expéditeur calcule le 10 cryptogramme c - me mod n et le récepteur déchiffre c en calculant m = cd mod n.
La sécurité de l'algorithme, basée sur le problème de la factorisation, permet pour un choix de paramètres effectué dans les règles de l'art d'assurer dans le cas général du chiffrement de messages de la taille du module et ne possédant pas de relations particulières entre eux la confidentialité
entre l'émetteur et le récepteur de l'information chiffrée.
En revanche, de récentes attaques présentées par Coppersmith et al. à Eurocrypt '96 {notamment dans « Low Exponent with Related Message » et ~ Finding a srnall root of a univariate modular equation » publiés dans les actes de la conférence chez Springer-Verlag sous la référence LNCS 1070) montrent que l'existence de relations polynomiales entre des messages chiffrés avec un même exposant de petite taille, ce qui peut tout à fait se produire dans le cadre d'une application oû le dispositif chiffrant utilise en général pour chiffrer un exposant public e=3 pour des raisons de performances, permet des attaques efficaces révélant le texte clair.
Une parade possible est de « padder » le message avec une sêquence aléatoire (mais en prenant certaines précautions) ou de briser toute relation entre les messages, ce qui, suivant les applications, n'est pas toujours possible.
On introduira alors dans l'étape ~ la modification suivante .
Afin de chiffrer le message, l'expéditeur génère une sêquence sr comportant un certain degré d'aléatoirité et calcule le cryptogramme c = (m~sr)~ mod n, le signe ~ indiquant la concaténation; le récepteur déchiffre c en calculant cd mod n et retrouve m en retranchant le ;padding.
l0 Les méthodes exactes de padding des messages peuvent varier suivant les normes, les besoins applicatifs ou le niveau requis en matière de sécurité.
La cinquième famille concerne les facteurs d'aveuglement et signatures en blanc.
Une fonctionnalité de base, appelêe primitive par l'homme de l'art, utilisée dans de nombreux schémas et protocoles cryptographiques est le mécanisme de signature en blanc d'un message donné. Cette fonctionnalité découverte et brevetée par Chaum (brevet US n° 4,759,063 et européen n° 0139313) permet de 2o faire signer un message sans que le signeur puisse prendre connaissance du message. Elle nêcessite la génération d'un facteur d'aveuglement, permettant de dissimuler le message, connu du seul demandeur de la signature. Le mécanisme utilisé
s'applique aussi bien aux schémas de signature de type~El Gamal qu'au RSA.
Une fois illustrée dans le cadre du RSA, l'application de notre invention à d'autres algorithmes de signature s'avère évidente pour l'homme de l'art. I1 sera décrit ici seulement le mécanisme de signature en blanc basé sur le RSA.
_ 12 En reprenant la notation utilisée dans le cadre de la description de la quatrième famille d'application de l'invention, la signature RSA est ainsi définie .
s = md mod n ;
la vérification se faisant naturellement .
se mod n = (md} e mod n = m.
Les étapes de l'obtention d'une signature en blanc par l'expéditeur E d'un message m sont .
E génère un nombre aléatoire k, calcule le facteur d' aveuglement ke mod n et envoie m' = mke mod n au récepteur ou (signeur) ;
OO le récepteur calcule s' - m'd mod n et qui est la signature de m' et envoie s' à E ;
OO E calcule s' /k - (mke) d/k - mdked/k - md mod n, et obtient donc la signature s de m.
Cette technique de multiplication par un facteur d'aveuglement est également reprise dans le cadre du maquillage aléatoire (demande de brevet européen EP 91402958.2).
La méthode du maquillage aléatoire sert par exemple dans le cas où un dispositif A veut sous-traiter des opérations à un dispositif B tout en ne désirant pas lui révéler complètement les opérandes. Prenons par exemple une opération de réduction modulaire: A peut camoufler le nombre à réduire modulo n en le multipliant par un multiple aléatoire du module. Ainsi, si A
désire obtenir c - ab mod n, il peut générer un aléa k, calculer c' - ab + kn {kn masque le produit ab), et envoyer c' au dispositif B pour réduction.
Le dispositif B calcule c' mod n = ab + kn mod n = c.
Cette technique permet enfin de proposer une parade aux attaques de Kocher décrites à Crypto '96 (« Timing attacks on Implementation of Diffie-Hellman, RSA, DSS and Other Systems », actes de la confërence publiës chez Springer-Verlag sous la référence LNCS 1109) qui se basent sur la mesure du temps requis par des opêrations manipulant des grandeurs secrètes pour en deviner les valeurs.
En effet, une parade efficace est la multiplication, par un facteur d'aveuglement, des grandeurs secrètes manipulées afin de décorréler le temps de calcul et la grandeur. Dans le cas de la signature RSA par exemple (l'homme de l'art saura étendre ce résultat à l'ensemble des algorithmes concernés par l'attaque, notamment tous ceux entraînant le calcul d'une exponentielle modulaire avec un exposant secret), en reprenant la notation utilisée dans le cadre de la description de la quatrième famille d'application de l'invention, il suffit que .
le signeur génère un nombre aléatoire k et calcule .
d' - d + k (p-1) (q-1) , D il génère ensuite la signature de m en calculant ma- - ma+xcP-l ~e-1> - ma (mcP-n tq-1> ) x _ ma mod n.
La sixième famille concerne les schémas d'échange de clés basés sur la méthode de Diffie-Hel:lman.
L'algorithme d'échange de clefs de Diffie-Hellman est le premier algorithme â clef publique décrit dans ~ New Directions in Cryptography » paru dans IEEE Transactions on Information Theory, vol. IT-22, n°6 et breveté aux Etats-Unis sous la référence 4.200.770. La méthode met en oeuvre deux participants (ou appareils) désirant convenir d'une information secrète à
travers un canal non sûr.
Les paramètres du protocole Diffie-Hellman sont les suivants .
O Deux paramètres publics sur lesquels l'appareil expéditeur (A) et l'appareil (B) s'entendent . un nombre premier p d'au moins 512 bits et un entier g, racine primitive WO 98/51038 PCTlFR98/00901 modulo p. Ces deux paramètres peuvent être éventuellement communs à un groupe d'utilisateurs ;
le protocole se déroule comme suit .
Afin de partager une information secrète, les deux appareils rêalisent les opérations suivantes .
~ l'appareil A génère un nombre aléatoire x et calcule la grandeur X = g" mod p ;
~ l'appareil B génëre un nombre aléatoire y et calcule la grandeur Y = gy mod p ;
~ les deux appareils s'échangent les quantités X et Y
~ l'appareil A calcule clé = Y" mod p ;
~ l'appareil B calcule clé' - XY mod p.
Les deux appareils partagent ainsi à la fin du protocole lâ connaissance de la quantité clé' - clé = g"Y mod p.
Les deux appareils peuvent par la suite utiliser la quantité secrète « clé » pour s'échanger des messages par un canal sûr à l'aide d'un algorithme de chiffrement symétrique prenant pour paramètres la quantité « clé » et le message à
chiffrer.
Suite à la description des différentes familles d'application de l'invention, il est souhaitable de préciser les principaux avantages de l'invention.
Les contraintes économiques liées au marché de la carte à
puce, entraînent une recherche constante en vue d'améliorer les coûts de revient. Cet effort passe souvent par l'utilisation de produits les plus simples possible. Cet état de fait induit un intérêt sans cesse grandissant pour des solutions permettant d'implémenter des algorithmes à clef publique sur des micro contrôleurs peu chers de type 8 bits, à coeur de 80C51 ou 68HC05 par exemple.
WO 98/51038 pCT/FR9g~0pg01 Le principal avantage du procédé inventif en regard des propositions précédentes en matière de signatures numériques ou de chiffrement réside dans la capacité de calculer des signatures ou d'effectuer des opérations de chiffrement sans pour autant nécessiter un gênérateur d'aléas à bord du circuit signant ou chiffrant.
Pour la clarté de la description, il est nêcessaire de préciser que la génération des clefs et paramètres des divers systèmes présentés reste identique. On se référera donc aux brevets et ouvrages habituels afin de générer, dans les règles de l'art, les divers éléments nécessaires aux algorithmes de signature, authentification et chiffrement présentés dans l'invention. Un ouvrage de référence pratique pourra être « Cryptographie Appliquée, Algorithmes, Protocoles et Codes Source », par Bruce Schneier (Traduction de Marc Vauclair), Editions Thomson Publishing.
La. présente invention concerne un système cryptographique, nécessitant normalement le tirage d'un aléa k, l'aléa étant un entier; le système est caractérisé en ce qu'il est mis en oeuvre en remplaçant ledit alêa k par la quantitê h(m~secret) où h est une fonction de hachage, m est le message intervenant dans ledit systëme et « secret » est un secret inconnu du monde extérieur au système cryptographique.
De manière plus précise, le systême cryptographique de l'invention comprend au moins .
- un système de signature à clé publique ;
- un système de chiffrement à clê publique ;
- un systême de « padding » alêatoire ;
- un système de gênêration de facteurs d'aveuglement ;
- un protocole d'échange de clês.
_ 16 Dans le cas d'un système cryptographique qui comprend un système de signature à clé publique de type DSA, Schnorr, E1-Gamal, GOST 34.10 ou la norme IEEE de courbes elliptiques ECDSA, l'aléa (k) renouvelé par le signeur lors de chaque signature est remplacé par la quantité h(m~x), où x est la clef secrète du signeur.
Dans le cas d'un système cryptographique comprenant un système de signature à clé publique de type Fiat-Shamir ou Guillou-Quisquater, l'aléa renouvelé par le signeur lors de l0 chaque signature est remplaçé par la quantité h(m~B), B étant la clef secrète du signeur et m le message à signer.
Dans le cas d'un système cryptographique comprenant un système de chiffrement à clé publique de type El Gamal, l' aléa (k) renouvelé par le chiffreur lors de chaque envoi de message chiffré est remplacé par la quantité h(m).
Dans le cas d'un système cryptographique comprenant un système de chiffrement à clé publique dé type McEliece le vecteur d'erreur aléatoire e, renouvelé par le chiffreur à
chaque chiffrement est dérivé à partir de la quantité h(m), où
m est le message à chiffrer.
Dans le cas d'un système cryptographique comprenant un système de ~c padding » aléatoire intervenant dans un système de chiffrement à clé publique, le chifreur possède une clé a inconnue du déchiffreur et où le ~ padding »des messages est réalisé selon les étapes suivantes .
a. Générer autant de ki=h(m~a~i) que nécessaire pour que la longueur des ki concaténés soit au moins égale à 1/6 de la taille du module n (dans le cas du chiffrement RSA par exemple) ou bien générer k=h(m~a) et l'expanser ;
b. Composer mr tel que m= = taille (m) ~m~ {ki~ ;
c. Chiffrer mr à la place de m.
Dans le cas d'un système cryptographique comprenant un système de génération d'un facteur d'aveuglement dans le cadre d'une génération signature en blanc ou d'une opération de.
maquillage aléatoire l'aléa (k) renouvelé par l'expéditeur lors de chaque opération d'aveuglement ou de maquillage est remplacé
par la quantité h(m~a) Dans le cas d'un système cryptographique comprenant un protocole d'échange de clés de type Diffie-Hellman selon un appareil souhaitant envoyer un message m utilise, à la place lo d' un secret aléatoire, la quantité h (m ~ a) où a est une donnée secrète.
Dans ce même cas de ce système cryptographique ledit protocole comporte au moins les êtapes suivantes .
a. Un premier appareil, souhaitant envoyer le message m, calcule bl = ghcm'a) mod p ;
b. Un second appareil, récepteur, génère un alêa a et calcule bz = ga mod p ;
c. Les deux appareils êchangent bl et b2, et calculent clé
- ga h (m I a) mOd p i 2o d. Le premier appareil chiffre c - f (m, clé) où f est un mécanisme de chiffrement symétrique ;
le premier appareil envoie c au second appareil qui le dëchiffre et retrouve m.
D'une manière préférentielle, les appareils communiquants sont des cartes à puce, des cartes PCMCIA, des badges, des cartes sans contact ou tout autre appareil portable.
Préférentiellement, la communication entre lesdits appareils mettant en oeuvre l'invention est réalisée par le biais d'echanges de signaux électroniques, d~ondes radio ou de signaux infrarouges.
WO 98!51038 PCT/FR98/00901 Dans la suite, l'invention est présentée d'une façon plus détaillée en reprenant les notations utilisées dans la description des familles d'applications.
Comme dit précédemment, l'idée de générer un aléa par une opération de hachage h. Pour les deux premières familles d'application de l'invention, h prendra pour paramètre une donnée secrète, à savoir la clef secrète du signeur, et une donnée publique, le message à signer.
Pour la troisième famille, h prendra en paramètre l0 seulement le message à signer.
Enfin,~pour les autres familles, h prendra en paramètre une donnée publique et une donnée secrète (notée a dans la suite ) .
Plus précisément .
- pour la première famille concernant lesdits schémas de signature de type E1-Gamal, l'aléa k est généré de la façon suivante . k - h(m'x) où m est le haché du message M devant être signé et x, la clef secrète du signataire. Le reste de la génération de la signature (r, s) s'effectue de façon identique au procédé original. De même la vérification de la signature générée reste inchangée.
- pour la deuxième famille concernant lesdits schémas de signature dérivés des protocoles à divulgation nulle, k est généré de la façon suivante . k - h(m~B) avec m le haché du message M devant être signé et B, la clef secrète du signeur.
Le reste de la génération de la signature (d,D) s'effectue de façon identique au procédé original. De même la vérification de la signature générée reste inchangée.
- pour la troisième famille concernant lesdits schémas de chiffrement nécessitant un aléa, deux cas sont à considérer:
O Cas du chiffrement d'El Gamal .
_ 19 - l'aléa k est généré de la façon suivante . k = h(m) avec m le message devant être chiffré. On effectue ensuite l'algorithme d'El Gamal de la façon décrite précédemment. Le déchiffrement reste également inchangé.
O Cas du chiffrement de Mc Eliece .
- au lieu de dériver le vecteur d' erreur e â partir d' un aléa, il est génêré à partir de h(m), où m est le message à
chiffrer. Il est rappelé que e doit être de poids de Hamming exactement t. Une façon de dériver un vecteur de taille n (taille du code considéré) et de poids t à partir de h (m) est la suivante .
- supposons que l'on ait ordonné les vecteurs de taille n et de poids t. On peut alors choisir le vecteur de cette liste qui est en position h (m) (ou une position dérivée de h (m) , car IS ce nombre peut dépasser binomial.(t,n), suivant t,n, et la fonction de hachage utilisée) comme vecteur e.
On effectue ensuite l'algorit;hme de McEliece de la façon décrite prêcédemment. Le déchiffrement reste également inchangê.
En outre, ce procédé de génération de e permet de résoudre le problème du chiffrement d'un 'même message deux fois. En effet, dans le cas du McEliece générique, il est imprudent de chiffrer un même message deux fois (donc avec deux vecteurs d'erreur différents), car l'on peut deviner une partie du support des vecteurs d'erreurs, et par suite retrouver plus facilement le message clair.
Avec notre génération de e, un même message aura toujours le même chiffré.
L'invention s'applique de la manière suivante à la quatrième famille, qui concerne les schémas cryptographiques nécessitant un « padding » alêatoire .
- comme précisé, une mesure de sécurité recommandable est de ~ padder » les messages avec une séquence aléatoire. Mais là
encore, si la séquence varie pour plusieurs chiffrements d'un même message, une attaque est encore possible révélant le message clair.
L'utilisation de la méthode déterministe de génêration d'un aléa permet d'enrayer efficacement ce type de phénomëne.
En effet, en ajoutant au message m autant de fois que nécessaire (le padding doit être au moins long de 1/6 de la l0 taille de n, soit entre 86 et 171 bits pour des tailles de module classiques allant de 512 à 1024 bits) les valeurs ki =
h(m,a,i), a étant un secret d'au moins 128 bits, l'ensemble des attaques devient impossible car plus aucune relation n'existe entre les messages et de plus, un même message chiffré
plusieurs fois le sera toujours avec le même padding. Le chiffrement d'un message m s'effectue alors de la manière suivante par l'expéditeur .
O Générer autant de ki = h(m~a~i) que nécessaire pour que la longueur des ki concaténés soit au moins égale à 1/6 de la taille de n ; on pourra également préférer utiliser un seul k =
h(m~a) puis expanser k avant de le concaténer au message ;
O Composer mr tel que mr = taille (m) ~m~ tki~ ;
Calculer le cryptogramme c - mre mod n afin que le récepteur déchiffre c en calculant mr = cd mod n. Le récepteur extrait ensuite m simplement, connaissant sa taille et donc les bits significatifs de mr.
Pour la cinquième famille concernant les facteurs d'aveuglement et signatures en blanc, trois cas sont â
considérer .
0 Cas de la Signature en Blanc .
- k est généré de la façon suivante . k.= h(m~a) avec m le messâge devant être signé et a une: donnée secrète. Le reste de la génération de la signature en blanc s'effectue de façon identique au procédê original. De même l'extraction de la signature de m reste inchangée ;
D Cas du maquillage aléatoire .
- on génère k de la façon suivante . k - h ( a t b ~ a) avec a et b les opérandes à multiplier et a une donnée secrète. Le reste de l'opêration de maquillage aléatoire s'effectue de façon identique au procédé original. De même la réduction . modulaire de c' par le receveur reste inchangée ;
~ Cas des mécanismes de protection contre les attaques basées sur la mesure du temps d'un processus .
- dans le cas de la signature RSA par exemple, on génère le multiple aléatoire k de (p-1) (q-1) de la façon suivante . k - h (m ~ a) avec m le message à signer, et a une donnée secrète .
Le reste de l'opération de maquillage de l'exposant (d'=d+k(p 1)(q-1)) s'effectue de façon identique au procêdê original.
L'invention s'applique de la rnanière suivante à la sixième famille, qui concerne lesdits schÉ~mas d'échange de clés basés sur la methode de Diffie-Hellman.
Dans le système d'échange de clés de type Diffie-Hellman l'appareil, appelé aussi dispositif, qui souhaite envoyer un message m, utilise, à la place d'un aléa la quantitê h(m~a) où
a est une donnée secrète fixe. Un peut évidemment de façon naturelle étendre cette méthode à l'ensemble des participants au protocole. Ce dernier comporte, au moins, les étapes suivantes .
un premier dispositif, souhaitant envoyer le message m, cal cule X = gh ~'°' a~ mod p ;
~ un second dispositif, rêcepteur, génère un aléa y et calcule Y = gY mod p ;
~ les deux dispositifs échangent X et Y, et calculent clé
- gY.nc~ I 6> mod p ;
~ le premier dispositif chiffre c - f(m,clé) où f est un mécanisme de chiffrement symétrique ;
~ le premier dispositif envoie c au second dispositif qui le déchiffre et retrouve m.
L'invention sera plus facile à comprendre à l'aide des figures 1 à 4.
La figure 1 décrit l'organigramme d'un appareil de signature ou de déchiffrement mettant en oeuvre le système proposé par la présente invention.
La figure 2 décrit l'organigramme d'un appareil de vérification ou chiffrement mettant en oeuvre le système proposé par la présente invention.
La figure 3 représente les données échangées par le dispositif de signature et le dispositif de vérification.
La figure 4 représente les données échangées par le dispositif de chiffrement et le dispositif de déchiffrement.
Selon l'invention proposée, chaque appareil de signature/déchiffrement (typiquement une carte à puce) se compose d'une unité de traitement (CPU), d'une interface de communication, une mémoire vive (RAM) et/ou une mémoire non inscriptible (ROM) et/ou une mémoire inscriptible (généralement ré inscriptible) (EPROM ou EEPROM).
Le CPU et/ou la ROM de l'appareil de signature/déchiffrement contiennent des programmes ou des ressources de calcul correspondant aux êtapes de l'algorithme 3o de signature/déchiffrement (règles de calcul et d'utilisation de la fonction de hachage, multiplication, mise au carré, z3 addition, inverse modulaire et réduction modulaire). Certaines de ces opérations peuvent être regroupées . par exemple, la réduction modulaire peut-être directement intégrée dans la multiplication.
La RAM contient le message M sur lequel s'applique la fonction de hachage ou les règles de calcul pour la génération de signatures ou les règles de calcul pour la génëration de cryptogrammes. L'E(E)PROM contient au moins les paramètres m ,x et k gënérés et utilisés comme précisé dans la description qui lo suit .
Le CPU commande, via les bus d'adresses et de données, l'interface de communication, les opérations de lecture et d'écriture mémoire.
Chaque appareil de signature est protégé du monde extérieur par des protections physiques. Ces protections devraient être suffisantes pour empêcher toute entité non autorisée d'obtenir la clef secrète. Les techniques les plus utilisées de nos. jours en la matière sont l' intêgration de la puce dans un module de sécurité et l'équipement des puces de dispositifs capables de détecter des variations de température, de lumière ainsi que des tensions et des fréquences d'horloge anormales. Des techniques de conception particulières, telles que l'embrouillage de l'accès mémoire, sont également utilisées.
Selon l'invention proposée, l'appareil de vérification se compose au minimum d'une unité de traitement (CPU) et de ressources mémoires.
Le CPU commande, via les bus d'adresse et de donnêes, l'interface de communication, les opération de lecture et d'écriture mémoire.
Le CPU et/ou la ROM de l'autorité contiennent des programmes ou des ressources de calcul permettant d'implémenter le protocole de signature ou de chiffrement (règles de calcul.
et fonction de hachage, multiplication, exponentiation et réduction modulaire). Certaines de ces opérations peuvent être regroupées (par exemple, la réduction modulaire peut-être directement intégrée dans la multiplication). 5 r = g mod p mod q and s = (m + xr) / k mod q, where the division by k means modulo q (ie 1 / k is the number k 'such as kk' - 1 mod q).
For example, if q = 5 and k = 3 then 1 / k = 2 because 3x2 - 6 --- 1 mod 5.
lo After testing that r and s ~ 0, as explained in the description of the DSA, the signature {r, s ~ is sent to checker who calculates.
w = 1 / s mod q ~ ul = mw mod q OO u2 = rw mod q ~ v = gul yua modp mod q ~ And compare if v and r are equal in order to accept or reject signature.
The second family also relates to patterns of signature; these are diagrams derived from protocols to zero disclosure A second family of signature algorithms to which apply the invention are those derived from the protocols to zero disclosure (typically Fiat-Shamir or .Guillou-Quisquater patented in the United States respectively under references 4,748,668 and 5,140,634). Also, it will be described . only one of these protocols. Once applied to the Guillou and Quisquater algorithm, the extension of - the invention to other algorithms of this family turns out obvious to those skilled in the art.
_ 6 The parameters of the _Guillou-Quisquater algorithm are Two secret prime numbers p and q of size at least.
equal to 256 bits; these prime numbers are generated from a particular way in which detail is not essential to the understanding of the present invention but may however be found in the book "Applied Cryptography, Algorithms, Protocols and Source Codes ”, by Bruce Schneier (Translation of Marc Vauclair), Thomson Publishing Editions;
i0 20 A public module n = pq and an ID string representing the identity of the signer;
O A public exponent v and a secret key B such as B "
ID = 1 mod n; parameter B must remain secret;
~ In order to sign the message m, the sender draws a random k, calculates the initial witness T - k "mod n and generates the signature.
d = h (T, m) and D = k Bh ~ T'm) mod n;
OO The verifier verifies the authenticity of the signature by checking that.
d = h (T ', m) with T' = D "Idd.
The third family of applications concerns the diagrams of public key encryption requiring a hazard.
The first encryption algorithm requiring a random described below is that of El Gamal.
The parameters of this algorithm are:
O A first p module (at least 512 bits);
O A number g, of order p-1 modulo p (ie such that, for any integer u, 0 <u <p-1, gu ~ 1 mod p;
OO A number x, 1 <_ x _ <p-2, randomly generated or pseudo randomly;
A number y defined by the relation. y = g "mod p;
_ 7 ~ A number k randomly generated or pseudo randomly such that 0 <k <q.
The integers p and g are system parameters that can be published, and / or shared by a group of users. The . 5 public encryption key is the number y, and the key decryption secret is the number x.
The parameter k is used for the generation of the cryptogram, and does not must not be disclosed. In addition, it must be regenerated each time encryption.
lo The encryption of a message m, 0 <_ m 5 p-1, is the pair of integers (r, s), where:
r = gk mod p and s = m yk mod q.
To find the message m, the receiver of the cryptograms (which has x), calculates:
15 s / r "mod p, which is precisely mr.
A second encryption algorithm requiring the generation of a hazard is the McEliece scheme, based on a problem of code theory, specifically using 20 a particular class of codes known as Coppa. The general idea is to disguise a Coppa code as a code any linear; there is indeed an efficient algorithm to decode a Coppa code but on the other hand to decode a code general linear is a difficult problem. The receiver 25 knowing the information used to disguise the code, will therefore be able to decipher the message by decoding the Coppa code got.
The parameters of the McEliece algorithm (all . The following formulas are heard in GF (2)) are.
_ 8 Numbers n, k and t, parameters of the system; in the original article describing its encryption scheme, McEliece proposes n = 1024, t = 50 and k = 524;
OO A secret key composed of.
~ A generator matrix G of a binary Goppa code of size n and dimension k correcting t errors and the algorithm corresponding decoding;
A random invertible matrix S of dimension kxk;
~ A random permutation matrix P of size n;
OO A corresponding public key composed of.
~ The generator matrix T - SGP of a code equivalent to G;
~ The correction rate t;
~ Encryption by the McEliece algorithm of a message k of k bits is performed by calculating.
c = mT + e where e is a randomly chosen error vector of weight of Hamming equal to t.
The decryption of c is done by calculating.
cP 1 - m TP 1 + eP 1 - mSG + eP 1.
Since e is of weight t, eP-1 is also of weight t. The vector cP 1 is therefore correctable by code G..Decoding, the decipherer gets mS, then m because he knows S and S is reversible.
The fourth family concerns cryptographic schemes requiring random padding.
I1 is not uncommon that the data to be encrypted must first be "padded", that is to say completed to obtain a data of a fixed size. The illustration of this aspect can be given by the example of RSA encryption, published in 1978 by R. Rivest, A. Shamir and L. Adleman then patented under the title Cryptography Communications System and Method ~ and the reference US 4,405,829.
An RSA cryptogram is a large number represented in a computer by strings of binary digits or hexadecimal. The cryptogram is calculated using a software (program) and / or hardware calculation resource (electronic circuit) implementing a series of rules calculation (the encryption algorithm) to be applied When processing a set of parameters accessible to 1o all in order to hide the content of the data processed. In a way analog, the cryptogram is decrypted using a software or hardware computing resource implementing a series of calculation rules (the decryption algorithm) applied (by the cryptogram receiver) on a set secret parameters and the cryptogram.
The encryption process uses a public key in order to produce the cryptogram. The decryption process uses a private key that matches the secret key without however be identical to it. Each user has a key pair (public, secret) and we assume that the keys are known to everyone while secret keys are not are never revealed. Anyone has the ability to encrypt a message for a user using the public key of the latter but cryptograms cannot be decrypted other than using the user's secret key.
The parameters of the RSA algorithm are.
. ~ O Two secret prime numbers p and q of size at least equal to 256 bits. These prime numbers are generated in a way . particular whose detail is not essential to the understanding of the present invention but may however be found in the book "Applied Cryptography, Algorithms, Protocols and Source Codes ”, by Bruce Schneier (Translation of Marc Vauclair), Editions Thomson Publishing;
OO A public module n = pq;
O A pair of exponents noted (e, d) such as.
ed = 1 mod {p-1) (q-1).
The exponent e, called "encryption exponent", is accessible to all while "the deciphering exponent" d must remain secret.
In order to encrypt the message m, the sender calculates the 10 cryptogram c - me mod n and the receiver decrypts c in calculating m = cd mod n.
The security of the algorithm, based on the problem of factorization, allows for a choice of parameters made in the rules of the art to ensure in the general case of encryption of messages the size of the module and not having no special relationships between them confidentiality between the sender and the receiver of the encrypted information.
In contrast, recent attacks presented by Coppersmith et al. at Eurocrypt '96 {notably in "Low Exponent with Related Message "and ~ Finding a srnall root of a univariate modular equation ”published in the proceedings of the conference at Springer-Verlag under the reference LNCS 1070) show that the existence of polynomial relationships between messages encrypted with the same small exponent, this which can very well happen as part of a application where the encryption device generally uses to encrypt a public exhibitor e = 3 for reasons of performance, allows effective attacks revealing the text clear.
A possible parry is to pad the message with a random sequence (but taking certain precautions) or to break any relationship between the messages, which, next applications, is not always possible.
We will then introduce in step ~ the modification next .
In order to encrypt the message, the sender generates a sr sequence with a certain degree of randomness and calculates the cryptogram c = (m ~ sr) ~ mod n, the sign ~ indicating concatenation; the receiver decrypts c by calculating cd mod n and find m by subtracting the padding.
l0 Exact methods of message padding can vary according to standards, application needs or level required for security.
The fifth family concerns the factors of blindness and signatures in white.
Basic functionality, called primitive by man of art, used in many schemes and protocols cryptographic is the blank signing mechanism of a message given. This functionality discovered and patented by Chaum (US patent n ° 4,759,063 and European patent n ° 0139313) allows of 2o have a message signed without the signer being able to take knowledge of the message. It requires the generation of a blindness factor, to hide the message, known only to the person requesting the signature. The mechanism used also applies to signature patterns of the type ~ El Gamal than RSA.
Once illustrated in the context of the RSA, the application of our invention to other signature algorithms turns out obvious to those skilled in the art. I1 will be described here only the blank signing mechanism based on RSA.
_ 12 By using the notation used in the context of the description of the fourth application family of the invention, the RSA signature is thus defined.
s = md mod n;
verification is done naturally.
se mod n = (md} e mod n = m.
The steps to obtain a blank signature by the sender E of a message m are.
E generates a random number k, calculates the factor ke mod n and sends m '= mke mod n to the receiver or (signor);
OO the receiver calculates s' - m'd mod n and which is the signature of m 'and send s' to E;
OO E calculates s' / k - (mke) d / k - mdked / k - md mod n, and therefore obtains the signature s of m.
This factor multiplication technique blindness is also used in the context of make-up random (European patent application EP 91402958.2).
The random makeup method is used for example in the case where a device A wants to subcontract operations to a device B while not wishing to reveal it completely operands. Take for example a reduction operation modular: A can camouflage the number to be reduced modulo n by multiplying by a random multiple of the module. So if A
wishes to obtain c - ab mod n, it can generate a random k, calculate c '- ab + kn {kn mask the product ab), and send c' to device B for reduction.
Device B calculates c 'mod n = ab + kn mod n = c.
This technique finally makes it possible to offer a parade to Kocher's attacks described in Crypto '96 ("Timing attacks on Implementation of Diffie-Hellman, RSA, DSS and Other Systems ”, conference proceedings published at Springer-Verlag under the reference LNCS 1109) which are based on the measurement of time required by operations manipulating quantities secrets to guess the values.
Indeed, an effective display is multiplication, by a factor of blindness, secret magnitudes manipulated in order to decorrelate the calculation time and the magnitude. In the case of the RSA signature for example (the person skilled in the art will know extend this result to all the algorithms concerned by the attack, in particular all those involving the calculation of a modular exponential with a secret exponent), using the notation used in the description of the fourth family of application of the invention, it suffices that.
the signer generates a random number k and calculates.
d '- d + k (p-1) (q-1), D it then generates the signature of m by calculating ma- - ma + xcP-l ~ e-1> - ma (mcP-n tq-1>) x _ ma mod n.
The sixth family concerns key exchange schemes based on the Diffie-Hel: lman method.
Diffie-Hellman's key exchange algorithm is the first public key algorithm described in ~ New Directions in Cryptography ”published in IEEE Transactions on Information Theory, vol. IT-22, No. 6 and patented in the United States under the reference 4.200.770. The method implements two participants (or devices) wishing to agree on secret information to through an insecure channel.
The parameters of the Diffie-Hellman protocol are the following.
O Two public parameters on which the device sender (A) and the device (B) get along. a number first p of at least 512 bits and an integer g, primitive root WO 98/51038 PCTlFR98 / 00901 modulo p. These two parameters can be optionally common to a group of users;
the protocol is as follows.
In order to share secret information, the two devices perform the following operations.
~ device A generates a random number x and calculates the quantity X = g "mod p;
~ device B generates a random number y and calculates the quantity Y = gy mod p;
~ the two devices exchange the quantities X and Y
~ the device A calculates key = Y "mod p;
~ device B calculates key '- XY mod p.
The two devices thus share at the end of the protocol knowledge of the key quantity '- key = g "Y mod p.
Both devices can then use the secret “key” quantity for exchanging messages by a secure channel using symmetric encryption algorithm taking as parameters the quantity "key" and the message to encrypt.
Following the description of the different families application of the invention, it is desirable to specify the main advantages of the invention.
Economic constraints linked to the card market puce, lead to constant research with a view to improving production costs. This effort often involves the use of simplest possible products. This state of affairs induces a constantly growing interest in solutions allowing to implement public key algorithms on micro inexpensive 8-bit controllers, at the heart of 80C51 or 68HC05 for example.
WO 98/51038 pCT / FR9g ~ 0pg01 The main advantage of the inventive process compared to previous proposals for digital signatures or encryption lies in the ability to calculate signatures or perform encryption operations without however requiring a hazard generator on board the circuit signing or encrypting.
For the clarity of the description, it is necessary to specify that the generation of keys and parameters of the various systems presented remains identical. We will therefore refer to patents and usual works in order to generate, in the rules of art, the various elements necessary for the algorithms of signature, authentication and encryption presented in the invention. A practical reference book may be "Applied Cryptography, Algorithms, Protocols and Codes Source ”, by Bruce Schneier (Translation by Marc Vauclair), Editions Thomson Publishing.
The present invention relates to a cryptographic system, normally requiring the drawing of a hazard k, the hazard being a whole; the system is characterized in that it is implemented work by replacing said alea k by the quantity h (m ~ secret) where h is a hash function, m is the intervening message in said system and "secret" is a secret unknown to the world outside the cryptographic system.
More specifically, the cryptographic system of the invention includes at least.
- a public key signature system;
- a public key encryption system;
- a random padding system;
- a factor generation system blindness;
- a key exchange protocol.
_ 16 In the case of a cryptographic system that includes a DSA, Schnorr, E1- type public key signature system Gamal, GOST 34.10 or the IEEE standard for elliptical curves ECDSA, the hazard (k) renewed by the signer at each signature is replaced by quantity h (m ~ x), where x is the key signer's secret.
In the case of a cryptographic system comprising a Fiat-Shamir type public key signature system or Guillou-Quisquater, the hazard renewed by the signer during l0 each signature is replaced by the quantity h (m ~ B), B being the signer's secret key and m the message to sign.
In the case of a cryptographic system comprising a El Gamal type public key encryption system, the hazard (k) renewed by the encryptor each time a message is sent encrypted is replaced by the quantity h (m).
In the case of a cryptographic system comprising a McEliece type public key encryption system random error vector e, renewed by the encryptor at each cipher is derived from the quantity h (m), where m is the message to encrypt.
In the case of a cryptographic system comprising a random ~ c padding system involved in a system of public key encryption, the encryptor has a key unknown to the decryptor and where the messages 'padding' is carried out according to the following steps.
at. Generate as many ki = h (m ~ a ~ i) as necessary so that the length of the concatenated ki is at least equal to 1/6 of the module size n (in the case of RSA encryption for example) or else generate k = h (m ~ a) and expand it;
b. Compose mr such that m = = size (m) ~ m ~ {ki ~;
vs. Encrypt mr in place of m.
In the case of a cryptographic system comprising a system for generating a blindness factor within the framework a blank signature generation or an operation of.
random makeup the hazard (k) renewed by the sender during of each blindness or make-up operation is replaced by the quantity h (m ~ a) In the case of a cryptographic system comprising a Diffie-Hellman type key exchange protocol according to a device wishing to send a message uses it instead lo of a random secret, the quantity h (m ~ a) where a is a given secret.
In this same case of this cryptographic system said protocol includes at least the following steps.
at. A first device, wishing to send the message m, calculate bl = ghcm'a) mod p;
b. A second device, receiver, generates a hazard a and calculate bz = ga mod p;
vs. The two devices exchange bl and b2, and calculate key - ga h (m I a) mOd pi 2o d. The first device numbers c - f (m, key) where f is a symmetric encryption mechanism;
the first device sends c to the second device which sends it decrypts and finds mr.
Preferably, the communicating devices are smart cards, PCMCIA cards, badges, contactless cards or any other portable device.
Preferably, the communication between said apparatuses implementing the invention is realized by the through exchange of electronic signals, radio waves or infrared signals.
WO 98! 51038 PCT / FR98 / 00901 In the following, the invention is presented in a more detailed manner.
detailed by using the notations used in the description of the families of applications.
As said before, the idea of generating a hazard by a hash operation h. For the first two families application of the invention, h will take as a parameter a secret data, namely the signer's secret key, and a public data, the message to sign.
For the third family, h will take as a parameter l0 only the message to sign.
Finally, ~ for the other families, h will take as a parameter public data and secret data (noted a in the after ) .
More precisely .
- for the first family concerning said schemes of signature of type E1-Gamal, the hazard k is generated in the way next . k - h (m'x) where m is the hash of the message M in front be signed and x, the signer's secret key. The rest of the generation of the signature (r, s) is carried out identically to the original process. Likewise the verification of the signature generated remains unchanged.
- for the second family concerning said diagrams of signature derived from zero disclosure protocols, k is generated as follows. k - h (m ~ B) with m the hash of message M to be signed and B, the signer's secret key.
The rest of the generation of the signature (d, D) is carried out from identical to the original process. Likewise the verification of the signature generated remains unchanged.
- for the third family concerning said schemes of encryption requiring a hazard, two cases are to be considered:
O Case of El Gamal encryption.
_ 19 - the hazard k is generated as follows. k = h (m) with m the message to be encrypted. Then we do El Gamal's algorithm as described above. The decryption also remains unchanged.
O Case of Mc Eliece encryption.
- instead of deriving the error vector e from a ala, it is generated from h (m), where m is the message to encrypt. It is recalled that e must be of Hamming weight exactly t. One way to derive a vector of size n (size of the code considered) and of weight t from h (m) is the next one .
- suppose that we ordered the vectors of size n and of weight t. We can then choose the vector from this list which is in position h (m) (or a position derived from h (m), because IS this number can exceed binomial. (T, n), following t, n, and the hash function used) as a vector e.
We then perform the McEliece algorithm, hme as described above. Decryption also remains unchanged.
In addition, this method of generating e solves the problem of encrypting the same message twice. In indeed, in the case of generic McEliece, it is unwise to encrypt the same message twice (so with two vectors error), because we can guess part of the support for error vectors, and consequently find more easily the clear message.
With our generation of e, the same message will always have the same figure.
The invention applies as follows to the fourth family, which concerns cryptographic schemes requiring a random padding.
- as specified, a recommendable security measure is to “pad” messages with a random sequence. But the again, if the sequence varies for several ciphers of one same message, an attack is still possible revealing the clear message.
Use of the deterministic generation method of a hazard makes it possible to effectively curb this type of phenomenon.
Indeed, by adding to the message m as many times as necessary (the padding must be at least 1/6 of the l0 size of n, i.e. between 86 and 171 bits for sizes of conventional modules ranging from 512 to 1024 bits) the values ki =
h (m, a, i), a being a secret of at least 128 bits, the set of attacks becomes impossible because no more relationship exists between messages and moreover, the same encrypted message many times will always be with the same padding. The encryption of a message m is then carried out in the manner next by the sender.
O Generate as many ki = h (m ~ a ~ i) as necessary so that the length of the concatenated ki is at least equal to 1/6 of the size of n; we may also prefer to use a single k =
h (m ~ a) then expand k before concatenating it to the message;
O Compose mr such that mr = size (m) ~ m ~ tki ~;
Calculate the cryptogram c - mre mod n so that the receiver decrypts c by calculating mr = cd mod n. The receiver then simply extract m, knowing its size and therefore significant bits of mr.
For the fifth family concerning the factors of blindness and blank signatures, three cases are â
consider .
0 Signature case in white.
- k is generated as follows. k. = h (m ~ a) with m le message to be signed and has a: secret data. The rest of the blank signature is generated in a way identical to the original procedure. Likewise the extraction of the signature of m remains unchanged;
D Case of random makeup.
- we generate k in the following way. k - h (atb ~ a) with a and b the operands to be multiplied and has a secret datum. The rest of the random makeup operation is performed from identical to the original process. Similarly the reduction . modular c 'by the receiver remains unchanged;
~ Case of protection mechanisms against attacks based on measuring the time of a process.
- in the case of the RSA signature for example, we generate the random multiple k of (p-1) (q-1) as follows. k - h (m ~ a) with m the message to sign, and has a secret data.
The rest of the exhibitor's make-up operation (d '= d + k (p 1) (q-1)) is carried out in the same way as the original process.
The invention applies from the following to the sixth family, which relates to said key exchange schemes based on the Diffie-Hellman method.
In the Diffie-Hellman type key exchange system the device, also called a device, which wishes to send a message m, uses, instead of a hazard the quantity h (m ~ a) where a is fixed secret data. One can obviously so natural extend this method to all participants to the protocol. The latter includes, at least, the steps following.
a first device, wishing to send the message m, cal cule X = gh ~ '°' a ~ mod p;
~ a second device, receiver, generates a hazard y and calculate Y = gY mod p;
~ the two devices exchange X and Y, and calculate key - gY.nc ~ I 6> mod p;
~ the first device numbers c - f (m, key) where f is a symmetric encryption mechanism;
~ the first device sends c to the second device which decrypts it and finds mr.
The invention will be easier to understand using the Figures 1 to 4.
Figure 1 depicts the flow diagram of a signature or decryption implementing the system proposed by the present invention.
Figure 2 depicts the flow diagram of a verification or encryption implementing the system proposed by the present invention.
FIG. 3 represents the data exchanged by the signature device and verification device.
FIG. 4 represents the data exchanged by the encryption device and the decryption device.
According to the proposed invention, each signature / decryption (typically a smart card) is consists of a processing unit (CPU), an interface communication, a random access memory (RAM) and / or a memory writable (ROM) and / or writable memory (usually rewritable) (EPROM or EEPROM).
The device's CPU and / or ROM
signature / decryption contain programs or computing resources corresponding to the steps of the algorithm 3o signature / decryption (rules of calculation and use the hash, multiplication, squaring function, z3 addition, modular inverse and modular reduction). Some of these operations can be grouped together. for example, the modular reduction may be directly integrated into the multiplication.
The RAM contains the message M to which the hash function or calculation rules for generation of signatures or the calculation rules for the generation of cryptograms. The E (E) PROM contains at least the parameters m, x and k generated and used as specified in the description which lo follows.
The CPU controls, via the address and data buses, communication interface, read operations and memory writing.
Every signature device is protected from the world outside by physical protections. These protections should be sufficient to prevent any entity not authorized to obtain the secret key. The most used of our. days in the matter are the integration of the chip in a security module and the chip equipment devices capable of detecting temperature variations, of light as well as clock voltages and frequencies abnormal. Special design techniques, such as that scrambling memory access, are also used.
According to the proposed invention, the verification device is consists of at least one processing unit (CPU) and memory resources.
The CPU controls, via the address and data buses, the communication interface, the read operations and memory writing.
The authority's CPU and / or ROM contain compute programs or resources to implement the signature or encryption protocol (calculation rules.
and hash, multiplication, exponentiation and modular reduction). Some of these operations can be grouped (for example, modular reduction maybe directly integrated into the multiplication).
Claims (12)
- un système de signature à clé publique;
- un système de chiffrement à clé publique;
- un système de «padding» aléatoire;
- un système de génération de facteurs d'aveuglement;
- un protocole d'échange de clés. 2. Cryptographic system according to claim 1 characterized in that it comprises at least.
- a public key signature system;
- a public key encryption system;
- a random “padding” system;
- a factor generation system blindness;
- a key exchange protocol.
34.10 ou la norme IEEE de courbes elliptiques ECDSA, selon la revendication 2, caractérisé en ce que l'aléa (k) renouvelé par le signeur lors de chaque signature est remplacé par la quantité h(m~x), où x est la clef secrète du signeur. 3. Cryptographic system comprising a system of DSA, Schnorr, E1-Gamal, GOST type public key signature 34.10 or the IEEE Elliptic Curve ECDSA standard, depending on the claim 2, characterized in that the hazard (k) renewed by the signer during each signature is replaced by the quantity h(m~x), where x is the signer's secret key.
chiffrer. 6. Cryptographic system comprising a system of McEliece type public key encryption according to the claim 2, characterized in that the error vector random e, renewed by the encryptor at each encryption is derived from the quantity h(m), where m is the message to encrypt.
selon les étapes suivantes:
a. Générer autant de k i=h(m¦.sigma.¦i) que nécessaire pour que la longueur des k i concaténés soit au moins égale à 1/6 de la taille du module n (dans le cas du chiffrement RSA par exemple), ou bien générer k=h(m¦.sigma.) et l'expanser;
b. Composer m r tel que m r = taille(m)¦m¦{k i};
c. Chiffrer m r à la place de m. 7 Cryptographic system comprising a system of random “padding” intervening in a system of public key encryption, according to claim 2, characterized in that the encryptor has an unknown key a of the decryptor and in that the padding of the messages is carried out according to the following steps:
has. Generate as many ki=h(m¦.sigma.¦i) as necessary so that the length of the concatenated ki is at least equal to 1/6 of the modulus size n (in the case of RSA encryption by example), or generate k=h(m¦.sigma.) and expand it;
b. Compose mr such that mr = size(m)¦m¦{ki};
vs. Encrypt mr instead of m.
h(m¦.sigma.) 8. Cryptographic system comprising a system of generation of a blinding factor within the framework of a signature generation in white or a make-up operation random according to claim 2, characterized in that the hazard (k) renewed by the shipper during each operation of blinding or make-up is replaced by the quantity h(m¦.sigma.)
a. Un premier appareil, souhaitant envoyer le message m, calcule b1 = gh(m~.sigma.) mod p;
b. Un second appareil, récepteur, génère un aléa a et calcule b2 = ga mod p;
c. Les deux appareils échangent b1 et b2, et calculent clé
- ga h(m~.sigma.) mod p d. Le premier appareil chiffre c = f (m, clé) où f est un mécanisme de chiffrement symétrique;
- le premier appareil envoie c au second appareil qui le déchiffre et retrouve m. 10. Cryptographic system according to claim 9, characterized in that said protocol comprises at least the following steps.
has. A first device, wishing to send the message m, calculate b1 = gh(m~.sigma.) mod p;
b. A second device, receiver, generates a random a and calculate b2 = ga mod p;
vs. The two devices exchange b1 and b2, and calculate key - ga h(m~.sigma.) mod p d. The first device encrypts c = f (m, key) where f is a symmetric encryption mechanism;
- the first device sends c to the second device which decipher and find mr.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9706198A FR2763194B1 (en) | 1997-05-07 | 1997-05-07 | PSEUDO-RANDOM GENERATOR BASED ON A CHOPPING FUNCTION FOR CRYPTOGRAPHIC SYSTEMS REQUIRING THE PULLING OF ALEAS |
| FR97/06198 | 1997-05-07 | ||
| PCT/FR1998/000901 WO1998051038A1 (en) | 1997-05-07 | 1998-05-05 | Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CA2288767A1 true CA2288767A1 (en) | 1998-11-12 |
Family
ID=9507074
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CA002288767A Abandoned CA2288767A1 (en) | 1997-05-07 | 1998-05-05 | Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing |
Country Status (7)
| Country | Link |
|---|---|
| EP (1) | EP0980607A1 (en) |
| JP (1) | JP2001507479A (en) |
| CN (1) | CN1262830A (en) |
| AU (1) | AU7659598A (en) |
| CA (1) | CA2288767A1 (en) |
| FR (1) | FR2763194B1 (en) |
| WO (1) | WO1998051038A1 (en) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2788909B1 (en) | 1999-01-27 | 2004-02-20 | France Telecom | AUTHENTICATION OR SIGNATURE PROCESS WITH REDUCED NUMBER OF CALCULATIONS |
| FR2814577B1 (en) * | 2000-09-22 | 2003-09-12 | Laurent Francois Ernest Pele | MEMORY CARD READER HOUSING CONNECTABLE TO ANOTHER APPROVED HOUSING TO ENABLE DIALOGUE BETWEEN 2 CHIP CARDS |
| JP4550438B2 (en) * | 2004-01-21 | 2010-09-22 | 三菱電機株式会社 | Authentication device, authentication system, authentication method, and authentication integrated circuit |
| FR2917197B1 (en) * | 2007-06-07 | 2009-11-06 | Thales Sa | METHOD OF MASKING THE RESULT OF A MODULAR MULTIPLICATION OPERATION AND ASSOCIATED DEVICE |
| US9621525B2 (en) * | 2014-06-02 | 2017-04-11 | Qualcomm Incorporated | Semi-deterministic digital signature generation |
| US11120167B2 (en) * | 2019-03-25 | 2021-09-14 | Micron Technology, Inc. | Block chain based validation of memory commands |
| GB2598112A (en) * | 2020-08-18 | 2022-02-23 | Nchain Holdings Ltd | Threshold signatures |
| GB2598111A (en) * | 2020-08-18 | 2022-02-23 | Nchain Holdings Ltd | Digital signatures |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5299262A (en) * | 1992-08-13 | 1994-03-29 | The United States Of America As Represented By The United States Department Of Energy | Method for exponentiating in cryptographic systems |
| US5432852A (en) * | 1993-09-29 | 1995-07-11 | Leighton; Frank T. | Large provably fast and secure digital signature schemes based on secure hash functions |
-
1997
- 1997-05-07 FR FR9706198A patent/FR2763194B1/en not_active Expired - Fee Related
-
1998
- 1998-05-05 CA CA002288767A patent/CA2288767A1/en not_active Abandoned
- 1998-05-05 WO PCT/FR1998/000901 patent/WO1998051038A1/en not_active Ceased
- 1998-05-05 EP EP98924379A patent/EP0980607A1/en not_active Withdrawn
- 1998-05-05 AU AU76595/98A patent/AU7659598A/en not_active Abandoned
- 1998-05-05 JP JP54778798A patent/JP2001507479A/en not_active Abandoned
- 1998-05-05 CN CN 98806980 patent/CN1262830A/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| JP2001507479A (en) | 2001-06-05 |
| CN1262830A (en) | 2000-08-09 |
| WO1998051038A1 (en) | 1998-11-12 |
| EP0980607A1 (en) | 2000-02-23 |
| FR2763194B1 (en) | 2000-07-28 |
| FR2763194A1 (en) | 1998-11-13 |
| AU7659598A (en) | 1998-11-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2345202B1 (en) | Digital signature method in two steps | |
| EP2526505B1 (en) | Device and method for obtaining a cryptographic key | |
| RU2376651C2 (en) | Using isogenies to design cryptosystems | |
| US5799088A (en) | Non-deterministic public key encrypton system | |
| EP1710952B1 (en) | Cryptographic Applications of the Cartier Pairing | |
| EP1151576B1 (en) | Public and private key cryptographic method | |
| EP3010177A1 (en) | Method for authenticating a client device with a server using a secret element | |
| KR20000071078A (en) | Cyclotomic polynomial construction of discrete logarithm cryptosystems over finite fields | |
| CN109818752B (en) | Credit score generation method and device, computer equipment and storage medium | |
| US20030152218A1 (en) | Cryptography method on elliptic curves | |
| Koblitz et al. | Another look at security definitions | |
| US7912216B2 (en) | Elliptic curve cryptosystem optimization using two phase key generation | |
| CA2288767A1 (en) | Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing | |
| EP0666664B1 (en) | Method for digital signature and authentication of messages using a discrete logarithm with a reduced number of modular multiplications | |
| KR100971038B1 (en) | Encryption method for distributing load among multiple entities and their devices | |
| EP0962069B1 (en) | Cryptographic system comprising a ciphering and deciphering system and a key escrow system | |
| FR2842052A1 (en) | CRYPTOGRAPHIC METHOD AND DEVICES FOR REDUCING CALCULATION DURING TRANSACTIONS | |
| FR2818846A1 (en) | Method for protecting electronic component executing cryptographic algorithm against current measurement attack, comprises factorization of exponential in algorithm and permutation of the factors | |
| EP1325585A1 (en) | Method for accelerated transmission of electronic signature | |
| EP1829279A2 (en) | Method and device for executing a cryptographic calculation | |
| US20050123131A1 (en) | Cryptographic system comprising an encryption and decryption system and a key escrow system, and the associated equipment and devices | |
| WO2003044619A2 (en) | A method of sale auditing in private transaction of e-goods | |
| WO2003021864A2 (en) | Method of reducing the size of an rsa or rabin signature | |
| Song et al. | A distributed E-Business system based on conic curve | |
| Eslami et al. | Secret selling of secrets with elliptic curves |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EEER | Examination request | ||
| FZDE | Discontinued |