Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberEP0980607 A1
Publication typeApplication
Application numberEP19980924379
PCT numberPCT/FR1998/000901
Publication dateFeb 23, 2000
Filing dateMay 5, 1998
Priority dateMay 7, 1997
Also published asCA2288767A1, CN1262830A, WO1998051038A1
Publication number1998924379, 98924379, 98924379.5, EP 0980607 A1, EP 0980607A1, EP-A1-0980607, EP0980607 A1, EP0980607A1, EP19980924379, EP98924379, PCT/1998/901, PCT/FR/1998/000901, PCT/FR/1998/00901, PCT/FR/98/000901, PCT/FR/98/00901, PCT/FR1998/000901, PCT/FR1998/00901, PCT/FR1998000901, PCT/FR199800901, PCT/FR98/000901, PCT/FR98/00901, PCT/FR98000901, PCT/FR9800901
InventorsFrançoise LEVY-DIT-VEHEL, Hi David M'ra, David Naccache
ApplicantGemplus S.C.A.
Export CitationBiBTeX, EndNote, RefMan
External Links: Espacenet, EP Register
Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
EP 0980607 A1 (text from WO1998051038A1) 
Abstract  
The invention concerns a cryptographic system, normally requiring the drawing of a random number k, which is a whole number. The system is characterised in that it is operated by replacing said random number k by the value h (m/secret) in which h is a hash coding function, m is the message intervening in said system and 'secret' is a secret unknown to the world outside the cryptographic system. The invention is particularly applicable to communicating media such as smart cards, PCMCIA cards, badges, contactless cards or any other portable medium.
Claims  translated from French  (OCR text may contain errors)
Revendications claims
1. Système cryptographique, nécessitant normalement le tirage d'un aléa k, l'aléa étant un entier, 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 . 1. Cryptographic system, normally requiring a draw for a k hazard, the hazard is an integer, wherein it is implemented by replacing said random k by the amount h (m | secret) where h is a hash function, m is the message in said speaker system and "secret" is an unknown secret from the outside world to the cryptographic system.
2. Système cryptographique selon la revendication 1 caractérisé en ce qu'il comprend au moins : 2. A cryptographic system according to claim 1 characterized in that it comprises at least:
- un système de signature à clé publique ; - A public key signature system;
- un système de chiffrement à clé publique ; - A public key encryption system;
- un système de « padding » aléatoire ; - A system of "padding" random;
- un système de génération de facteurs d'aveuglement ; - A generation system blinding factors;
- un protocole d'échange de clés. - A key exchange protocol.
3. Système cryptographique comprenant un système de signature à clé publique de type DSA, Schnorr, El-Gamal, GOST 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. A cryptographic system comprising a system of signing public key of DSA, Schnorr, El-Gamal, GOST 34.10 or IEEE ECDSA elliptic curves, according to claim 2, wherein the random (k) renewed the signer when each signature is replaced by the amount h (m | x), where x is the secret key of the signer.
4. Système cryptographique comprenant un système de signature à clé publique de type Fiat-Shamir ou Guillou- Quisquater, selon la revendication 2, caractérisé en ce que l'aléa renouvelé par le signeur lors de chaque signature est remplacé par la quantité h(m|B), B étant la clef secrète du signeur et m le message à signer. 4. cryptographic system comprising a public key signature system type Fiat-Shamir or Quisquater Guillou, according to claim 2, wherein the random renewed by the signer when each signature is replaced by the amount h (m | B), where B is the secret key of the signer and the message m to sign.
5. Système cryptographique comprenant un système de chiffrement à clé publique de type El Gamal , selon la revendication 2, caractérisé en ce que l'aléa (k) renouvelé par le chiffreur lors de chaque envoi de message chiffré est remplacé par la quantité h (m) . 5. cryptographic system comprising a public key encryption system type El Gamal, according to claim 2, wherein the random (k) renewed by the encryptor in each encrypted message sending is replaced by the amount h ( m).
6. Système cryptographique comprenant un système de chiffrement à clé publique de type McEliece selon la revendication 2, caractérisé en ce que 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. 6. A cryptographic system comprising a public key McEliece type of encryption system according to claim 2, characterized in that the random error vector e, renewed by the encryptor to each encryption is derived from the quantity h (m) , where m is the message to be encrypted.
7 Système cryptographique comprenant un système de « padding » aléatoire intervenant dans un système de chiffrement à clé publique, selon la revendication 2, caractérisé en ce que le chiffreur possède une clé σ inconnue du déchiffreur et en ce que le padding des messages est réalisé selon les étapes suivantes : a. 7 cryptographic system comprising a system of "padding" random speaker in a public key encryption system according to claim 2, characterized in that the encryptor has an unknown σ key decryptor and in that the padding of the messages is carried out according the following steps: a. Générer autant de k i =h(m|σ|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|σ) et l'expanser ; Generate as many k i = h (m | σ | i) needed for the length of the concatenated ki is at least equal to 1/6 of the size n of the module (in the case of the RSA encryption, for example), or generating k = h (m | σ) and expand; b. b. Composer m r tel que m r = taille (m) Composer m r as m r = height (m)
Figure imgf000028_0001
; ; c. c. Chiffrer m r à la place de m. Encrypt r m instead of m.
8. 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 selon la revendication 2, caractérisé en ce que 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|σ) 8. A cryptographic system comprising a system for generating a blinding factor in the context of a signature generation in white or a random makeup operation according to claim 2, characterized in that the random number (k) renewed by the sender when each blinding operation or make-up is replaced by the amount h (m | σ)
9. Système cryptographique comprenant un protocole d'échange de clés de type Diffie-Hellman selon la revendication 2, caractérisé en ce qu'un appareil souhaitant envoyer un message m utilise, à la place d'un secret aléatoire, la quantité h(m|σ) où σ est une donnée secrète. 9. cryptographic system including a key exchange protocol Diffie-Hellman method of claim 2, wherein a device wants to send a message m uses, instead of a random secret, the amount h (m | σ) where σ is a secret data.
10. Système cryptographique selon la revendication 9, caractérisé en ce que ledit protocole comporte au moins les étapes suivantes : a. 10. A cryptographic system according to claim 9, characterized in that said protocol comprises at least the following steps: a. Un premier appareil, souhaitant envoyer le message m, calcule b x = g m | σ) mod p ; A first device wants to send the message m, calculates x = b g m | σ) mod p; b. b. Un second appareil, récepteur, génère un aléa a et calcule b 2 = g a mod p ; A second camera, receiver, generates a random number and calculates a b 2 = g a mod p; c. c. Les deux appareils échangent b et b 2 , et calculent clé The two devices exchange b and b 2, and calculate key
Figure imgf000029_0001
d. d. Le premier appareil chiffre c = f (m, clé) où f est un mécanisme de chiffrement symétrique ; The first digit unit c = f (m, key) where f is a symmetric encryption mechanism;
- le premier appareil envoie c au second appareil qui le déchiffre et retrouve m. - The first device sends c to the second device decrypts and recovers m.
11. Système cryptographique selon l'une quelconque des revendication 1 à 10, caractérisé en ce que les appareils sont des appareils communiquants sont des cartes à puce, des cartes PCMCIA, des badges, des cartes sans contact ou tout autre appareil portable. 11. A cryptographic system according to any one of claims 1 to 10, characterized in that the devices are communicating devices are chip cards, PCMCIA cards, badges, contactless cards or any other portable device.
12. Système cryptographique selon l'une quelconque des revendication 1 à 11, caractérisé en ce que la communication entre lesdits appareils le mettant en oeuvre est réalisée par le biais d'échanges de signaux électroniques, d'ondes radio ou de signaux infrarouges. 12. A cryptographic system according to any one of claims 1 to 11, characterized in that the communication between said apparatus implementing it is performed through exchange of electronic signals, radio waves or infrared signals.
Description  translated from French  (OCR text may contain errors)

GENERATEUR PSEUDO-ALEATOIRE BASE SUR UNE FONCTION DE HACHAGE POUR SYSTEMES CRYPTOGRAPHIQUES NECESSITANT LE TIRAGE D'ALEAS PSEUDO RANDOM GENERATOR BASED ON HASH FUNCTION FOR CRYPTOGRAPHIC SYSTEMS REQUIRING THE DRAW ALEAS

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 (typiquement DSA, El-Gamal, Fiat- Shamir, Guillou-Quisquater pour les signatures, El-Gamal et McEliece pour le chiffrement) , par des dispositifs de signature ou de chiffrement (typiquement microprocesseurs) dépourvus de ressources matérielles ou logicielles permettant le tirage d' aléas . The present invention describes a system for generating digital signatures or cryptograms requiring the vagaries draw (typically DSA, El-Gamal, Fiat- Shamir, Guillou-Quisquater for signatures, El-Gamal and McEliece for encryption) by signature or encryption devices (typically microprocessors) free of hardware or software resources to the draw of hazards.

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 odular équation ») 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 . It also provides a parade, or defense against certain threats (typically encryption of short messages and the recent attacks published by Coppersmith et al. Eurocrypt in '96 in the articles "Low Exponent wi th Related Message" and "Finding a small root of a univariate odular equation ") by the generation at low cost, that is inexpensive, a random sequence to complete the information to be processed. 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. It also allows the generation of blindness factors used in signature mechanisms white or random makeup.

Elle peut enfin être utilisée dans les protocoles d'échange de clés de type Diffie-Hellman. Finally, it can be used in key exchange protocols 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. Despite widespread dissemination and good acceptance of the concept of the smart card from the public, most practical applications have emerged only a few years ago, mainly because of power limitations of calculating cards. Les progrès en matière de 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 cartes et d'applications de plus en plus ambitieuses telles que le nouveau standard de signature numérique Américain (DSA) . Advances in non-volatile storage of information, security and circuit technology (eg EEPROM) encourage rapid new generations of cards and emergence of more and more ambitious applications such as the new American standard of digital signature (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. A big limitation of smart cards as support for implementation of public-key algorithms is the need (often encountered), to have a device that generates random numbers on board the card. 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 tension appliquée à la carte) . Indeed, the development of such a device, also called generator, is complex and often unstable (sensitivity to external phenomena to the card such as ambient temperature or the voltage applied to the card). 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. In case of such cryptographic systems are implemented on a computer, other phenomena, due to the random nature of software generators disrupt the quality of hazards. 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. Typically, a method of popular vagaries generation is to measure the time between two keys pressed by the user. 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. Recent fraud cases show that this kind of generators may be biased by simulating the keyboard using a fraudulent device the time elapsed between the various keys is known to the attacker. 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 : The present invention provides an alternative to implementation of cryptographic systems requiring the drawing of a hazard of a good quality of software or hardware platforms:

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é, 1. having no means of generating hazards, or 2. 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. 3. or when the designer of the suspect system that external elements could compromise the quality of hazards by changing external and internal conditions. La présente invention s'applique à diverses familles d'algorithmes cryptographiques. The present invention is applicable to various families of cryptographic algorithms. 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 l'invention, celles-ci étant au nombre de six. For a better understanding of the invention and before resuming the content of the claims in the description, it is useful to recall the main characteristics of these families of cryptographic alogorithmes which the invention is applied, these being six in number .

La première famille d'application concerne les schémas de signature de type El-Gamal. The first family of application relates to the type of signature schemes El-Gamal.

L'algorithme de signature d' El-Gamal décrit dans l'article intitulé « A public-key cryptosystem and a signature sche e based on discrète logari thms » et publié dans la revue IEEE Transactions on Information Theory, vol. The signature algorithm El-Gamal described in the article "public-key cryptosystem and a signature A sche e based on discrete logari THMs" published in IEEE Transactions on Information Theory, vol. IT-31, no. IT-31, no. 4, 1985, pp. 4, 1985, pp. 469-472, a donné naissance à plusieurs algorithmes de signature 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 ; 469-472, has given birth to several signature algorithms known: Schnorr, patented in the USA under the reference 4995082 or GOST 34-10 - federal standard digital signature of Russian; DSA-Standart américain de signature numérique . DSA-American Standart digital signature.

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. Once illustrated in the DSA, the application of the present invention to other algorithms of the same family can be easily implemented by those skilled in the art. Dans la suite, il est appelé l'algorithme DSA. In the following, it is called the DSA algorithm.

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 Insti tute 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. The Digital Signature Standard (DSA, US patent no. 5,231,668 entitled "Digital Signature Algorithm") was proposed by the US National Insti tute of Standards and Technology to provide an appropriate basis for applications requiring a digital signature instead conventional signatures. Une signature DSA est une paire de grands nombres représentés dans un ordinateur par des chaînes de chiffres binaires. A DSA signature is a pair of large numbers represented in a computer by strings of binary digits. 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 l'identité du signataire et l'intégrité des données. The digital signature is calculated using a series of calculation rules (DSA) and a set of parameters in a way to certify both the identity of the signatory and integrity of data. Le DSA permet de générer et vérifier des signatures. The DSA can generate and verify signatures.

Le procédé de génération de signatures fait usage d'une clé privée (afin de produire une signature numérique) . The signature generation method uses a private key (to produce a digital signature). Le procédé de vérification utilise une clé publique qui correspond à la clé secrète sans toutefois lui être identique. The verification method using a public key corresponding to the secret key without being identical to it. Chaque utilisateur possède une paire de clés (publique , secrète) . Each user has a key pair (public, secret). Il est supposé que les clés publiques sont connues de tous alors que les clés secrètes ne sont jamais dévoilées. It is assumed that the public keys are known by all while the secret keys are never disclosed. Toute personne 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 1 'utilisateur. Everyone has the ability to verify the signature of a user using the public key signatures but can not be generated otherwise than by using the secret key of one user.

Les paramètres du DSA sont : © Un module premier p tel que 2 L~1 <p<2 L pour 512 < L < 1024 et L = 64 α pour un α quelconque. The DSA parameters are: © The first module p such that 2 L ~ 1 <p <2 L 512 <L <L = 1024 and 64 α for any α.

© Un module premier q tel que 2 <q<2 et p-1 est un multiple de q. © A first modulus q as 2 <q <2 and p-1 is a multiple of q.

© Un nombre g, d'ordre q modulo p tel que g = h p_1 q mod p, où h est un entier quelconque vérifiant 1 < h < p-1. © A number g of order q modulo p such that g = h p_1 q mod p, where h is any integer satisfying 1 <h <p-1.

® Un nombre x, généré aléatoirement ou pseudo aléatoirement . ® A number x randomly generated or pseudo random.

© Un nombre y défini par la relation : y = g x mod p. © A number is defined by the equation: y = g x mod p. © Un nombre k généré aléatoirement ou pseudo aléatoirement tel que 0 < k < q. © A number k generated randomly or pseudo randomly such that 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. The integers p, q and g are system settings that can be published and / or shared by a user group. Les clés, secrète et publique, d'un signataire sont respectivement x et y. The key, secret and public, a signatory are respectively x and y. Les paramètres x et k sont utilisés pour la génération de la signature et doivent être gardés secrets. The parameters x and k are used for signature generation and must be kept secret. Le paramètre k doit être régénéré pour chaque signature . Parameter k must be regenerated for each signature.

Afin de signer un message m (valeur hachée d'un fichier initial M) , le signeur calcule la signature (r, s) par : r = g mod p mod q et s = (m + xr) /k mod q, où la division par k s'entend modulo q (ie 1/k est le nombre k' tel que kk' s 1 mod q) . To sign a message m (hash value of an initial file M), the signer computes the signature (r, s) with r = g mod p and mod q s = (m + xr) / k mod q, where division by k means modulo q (ie 1 / k is the number k 'as kk' s 1 mod q).

Par exemple, si q=5 et k=3 alors 1/k =2 car 3x2 = 6 ≡l mod 5. 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 © U ! = mw mod q © u 2 = rw mod q For example, if q = 5 and k = 3 then 1/2 for k = 3x2 = 6 ≡l mod 5. After testing that r and s ≠ 0, as explained in the description of the DSA, the signature {r, s } is sent to the verifier calculates: © w = 1 / s mod q © U = mw © mod q u 2 = rw mod q!

® v = g u y 1 modp mod q ® v = g u y 1 mod p mod q

© Et compare si v et r sont égaux afin d'accepter ou rejeter la signature. © And if compare v and r are to accept or reject the signature.

La deuxième famille concerne également des schémas de signature ; The second family also provides signature schemes; il s'agit de schémas dérivés de protocoles à divulgation nulle it is derived diagrams of zero-knowledge protocols

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). A second family of signing algorithms to which the invention applies are those derived from zero disclosure protocols (typically Fiat-Shamir or Guillou Quisquater patented in the USA under the reference 4748668 and 5140634 respectively) . Aussi, il sera décrit seulement un de ces protocoles. Also, it will be described only one of these protocols. 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. Once applied to the Guillou algorithm and Quisquater, the extension of the invention to other algorithms of this family appears obvious to those skilled in the art. Les paramètres de l'algorithme de Guillou-Quisquater sont : The parameters of the Guillou-Quisquater algorithm are:

© Deux nombres premiers secrets p et q de taille au moins égale à 256 bits ; © First two secret numbers p and q of size at least equal to 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, Algori thmes, Protocoles et Codes Source », par Bruce Schneier (Traduction de Marc Vauclair) , Editions Thomson Publishing ; these prime numbers are generated in a particular way the details are not essential to the understanding of the present invention but can however be found in the book "Applied Cryptography, Algori themes, Protocols and Codes Source" by Bruce Schneier (Translation Marc Vauclair) Editions Thomson Publishing; © Un module public n = pq et une chaine ID représentant l'identité du signeur ; © A public module n = pq and a string ID representing the identity of the signer;

© Un exposant public v et une clé secrète B telle que B v ID = 1 mod n ; © A public exponent v and a secret key B as B v ID = 1 mod n; le paramètre B doit rester secret ; parameter B must remain secret;

© Afin de signer le message m, l'expéditeur tire un aléa k, calcule le témoin initial T = k v mod n et génère la signature : d = h(T,m) et D = k B h(τ ' m) mod n ; © m To sign the message, the sender sends a random k, calculates the initial witness T = k v mod n and generates signature: d = h (t, m) and D = k B h (τ 'm) mod n;

© Le vérifieur s'assure de l'authenticité de la signature en vérifiant que : d = h(T',m) avec T'= D v Id d . © The verifier verifies the authenticity of the signature verifying that: d = h (T, m) with T = D v d Id.

La troisième famille d'application concerne les schémas de chiffrement à clé publique nécessitant un aléa. The third family of application relates to public key encryption schemes requiring hazard.

Le premier algorithme de chiffrement nécessitant un aléa décrit dans la suite est celui d'El Gamal . The first encryption algorithm requiring hazard described below is El Gamal. Les paramètres de cet algorithme sont : The parameters of this algorithm are:

Φ Un module premier p (d'au moins 512 bits) ; Φ A first p module (at least 512 bits); © Un nombre g, d'ordre p-1 odulo p (ie tel que, pour tout nombre entier u, 0 < u < p-1, g u ≠ 1 mod p ; © A number g, p-1 p odulo order (ie such that for every integer u, 0 <u <p-1, g u ≠ 1 mod p;

© Un nombre x, 1 < x < p-2, généré aléatoirement ou pseudo aléatoirement ; © A number x 1 <x <p-2, generated randomly or pseudo randomly;

© Un nombre y défini par la relation : y = g x mod p ; © A number is defined by the equation: y = g x mod p; © Un nombre k généré aléatoirement ou pseudo aléatoirement tel que 0 < k < q. © A number k generated randomly or pseudo randomly such that 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. The integers p and g are system settings that can be published and / or shared by a user group. La clef publique de chiffrement est le nombre y, et la clef secrète de déchiffrement est le nombre x. Public key encryption is the number there, and the secret decryption key is the number x.

Le paramètre k sert à la génération du cryptogramme, et ne doit pas être divulgué. The parameter k is used for the generation of the cryptogram, and should not be disclosed. De plus, il doit être regénéré à chaque chiffrement . Moreover, it must be regenerated at each encryption. Le chiffré d'un message m, 0 ≤ m < p-1, est la paire d'entiers (r,s), où: The encrypted message m, 0 ≤ m <p-1, is the pair of integers (r, s) where:

Figure imgf000009_0001
Pour retrouver le message m, le receveur des cryptogrammes (qui possède x) , calcule: s/r x mod p, qui est justement m. To retrieve the message m, catcher cryptograms (which has x), calculates: s / r x mod p, which is precisely 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 une classe de codes particulière connue sous le nom de codes de Goppa. A second encryption algorithm requires the generation of a random pattern is the McEliece, based on a problem of coding theory, specifically using a particular class of codes known as Goppa code name. L'idée générale est de déguiser un code de Goppa en code linéaire quelconque ; The general idea is to disguise a Goppa code in any linear code; il existe en effet un algorithme efficace pour décoder un code de Goppa mais en revanche décoder un code linéaire général est un problème difficile. there is indeed an efficient algorithm for decoding a code Goppa but instead decode a general linear code is a difficult problem. Le récepteur connaissant l'information ayant permis de déguiser le code, pourra donc déchiffrer le message en décodant le code de Goppa obtenu. The receiver knowing the information that allowed to disguise the code, will thus decrypt the message by decoding the Goppa code obtained.

Les paramètres de l'algorithme de McEliece (toutes les formules qui suivent sont entendues dans GF(2)) sont : Φ Des nombres n, k et t, paramètres du système ; The parameters of the algorithm McEliece (all formulas below are heard in GF (2)) are: Φ Numbers n, k and t, the system parameters; dans l'article originel décrivant son schéma de chiffrement, McEliece propose n =1024, t = 50 et k = 524 ; in the original article describing its encryption scheme, McEliece offers n = 1024, t = 50 and k = 524;

© 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 ; © A secret key comprised of: • A generator matrix G of a binary code Goppa size n and dimension k t correcting errors and the corresponding decoding algorithm;

• Une matrice inversible aléatoire S de dimension kxk ; • A random invertible matrix S of size k × k;

• Une matrice de permutation aléatoire P de taille n ; • A random permutation matrix P of size n; © Une clé publique correspondante composée de : © A public key consists of:

• La matrice génératrice T = SGP d'un code équivalent à G ; • The generator matrix T = SGP equivalent code G;

• Le taux de correction t ; • Correction t rate;

© Le chiffrement par l'algorithme de McEliece d'un message m de k bits s'effectue en calculant : c = T + e où e est un vecteur d'erreur aléatoirement choisi de poids de Hamming égal à t . © The encryption algorithm by the McEliece m a k-bit message is performed by calculating: c = T + e where e is an error vector randomly chosen Hamming weight equal to t.

Le déchiffrement de c s'effectue en calculant : cP "1 = m TP "1 + eP '1 = mSG + eP "1 . The decryption is done by calculating c: cP "= 1 m TP" 1 + eP '1 = msg + eP "1.

Puisque e est de poids t, eP " est aussi de poids t. Le vecteur cP ~ 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. Since e is weight t eP "is weight t. The vector ~ cP is correctable by the code G. For decoding, deciphering gets mS, then m because he knows S and S is reversible. The fourth family concerns the cryptographic schemes require a "padding" random.

Il 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. It is not uncommon to encrypt the data first must be "paddée", that is to say, completed for a given fixed size. L'illustration de cet aspect peut être donné par l'exemple du chiffrement RSA, publié en 1978 par R. Rivest, The illustration of this aspect can be given by the example of RSA encryption, published in 1978 by 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. A. Shamir and L. Adleman and patented under "Cryptography Communications System and Method" and the reference 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. RSA is a cryptogram many represented in a computer by strings of binary or hexadecimal digits. 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 lors du traitement d'un ensemble de paramètres accessible à tous afin de cacher le contenu des données traitées. The cryptogram is calculated using a software resource calculation (program) and / or hardware (electronic circuit) to implement a series of design rules (encryption algorithm) to be applied in the processing of a set of parameters accessible to all in order to hide the content of processed data. 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. Similarly, the ciphertext is decrypted using a software computational resource or hardware implementing a series of calculation rules (the decryption algorithm) applied (by the receiver of the ciphertext) on a set of parameters secrets and security code.

Le procédé de chiffrement fait usage d'une clé publique afin de produire le cryptogramme. The encryption method is use of a public key to produce the ciphertext. Le procédé de déchiffrement utilise une clé privée qui correspond à la clé secrète sans toutefois lui être identique. The decryption method uses a private key corresponding but not identical to it with the secret key. 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. Each user has a key pair (public, secret) and it is assumed that the public keys are known to all as the secret keys are never revealed. 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. Everyone has the ability to encrypt a message to a user using the public key of the latter but cryptograms can not be deciphered except by using the secret key of the user. Les paramètres de l'algorithme RSA sont : The parameters of the RSA algorithm are:

© Deux nombres premiers secrets p et q de taille au moins égale à 256 bits. © First two secret numbers p and q of size at least 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, Algori thmes, Protocoles et Codes Source » , par Bruce Schneier (Traduction de Marc Vauclair) , Editions Thomson Publishing ; These initial numbers are generated in a particular way the details are not essential to the understanding of the present invention but can however be found in the book "Applied Cryptography, Algori themes, Protocols and Codes Source" by Bruce Schneier (Translation Marc Vauclair) Editions Thomson Publishing;

© Un module public n = pq ; © A public module n = pq;

© Une paire d'exposants notée (e,d) tels que : ed = 1 mod (p-1) (q-1) . © A pair of exhibitors denoted (e, d) as: ed = 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 . The exponent e, called "encryption setting" is available to all as "the decryption exponent" of must remain secret.

Afin de chiffrer le message m, l'expéditeur calcule le cryptogramme c = m e mod n et le récepteur déchiffre c en calculant m = c mod n. To encrypt the message m, the sender calculates the cryptogram c = m e mod n and the receiver decrypts c by calculating m = c 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. The security of the algorithm, based on the problem of factoring allows for a choice of parameters made in the rules of art to ensure the general case of the module the size of messages encryption and having no special relations between them confidentiality between the sender and the receiver of the encrypted information.

En revanche, de récentes attaques présentées par However, recent attacks made by

Coppersmith et al. Coppersmith et al. à Eurocrypt Λ 96 (notamment dans « Low Exponent wi th Related Message » et « Finding a small root of a univariate modular équation » 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. Eurocrypt Λ to 96 (including "Low Exponent wi th Related Message" and "Finding a small root of a univariate modular equation" published in the conference proceedings by Springer-Verlag LNCS under reference 1070) show that the existence of polynomial relations messages encrypted with the same exponent small, which may well occur in the context of an application where the device encrypting generally used to encrypt a public exponent e = 3 for performance reasons, enables efficient revealing the plaintext attacks. 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. A possible answer is "padder" message with a random sequence (but taking certain precautions) or break any relationship between messages, which, according to the applications, it is not always possible.

On introduira alors dans l'étape © la modification suivante : Afin de chiffrer le message, l'expéditeur génère une séquence s r comportant un certain degré d' aléatoirité et calcule le cryptogramme c = (m|s r ) e mod n, le signe | Then be introduced in step © the following amendment: To encrypt the message, the sender generates a sequence s r with a certain degree of randomness and calculates the ciphertext c = (m | s r) e mod n, the sign | indiquant la concaténation; indicating the concatenation; le récepteur déchiffre c en calculant c d mod n et retrouve m en retranchant le padding. receiver decrypts by calculating c c d mod n and m found by subtracting the padding. 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é. The exact methods of padding messages can vary according to the standards, application requirements or the required level of safety.

La cinquième famille concerne les facteurs d'aveuglement et signatures en blanc. The fifth family concerns blindness factors signatures and white. 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é. A basic feature, called primitive man of the art, used in many cryptographic schemes and protocols is blank signature mechanism of a given message. Cette fonctionnalité découverte et brevetée par Chaum (brevet US n° 4,759,063 et européen n° 0139313) permet de faire signer un message sans que le signeur puisse prendre connaissance du message. This discovery functionality and patented by Chaum (US Patent No. 4,759,063 and European No. 0,139,313) is used to sign a message without the signer can be aware of the 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. It requires the generation of a blinding factor, to conceal the message, known only to the applicant for signature. Le mécanisme utilisé s'applique aussi bien aux schémas de signature de type El Gamal qu'au RSA. The mechanism applies to both types of signature schemes El Gamal at 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. Once illustrated in the context of RSA, the application of our invention to other signature algorithms appears obvious to those skilled in the art. Il sera décrit ici seulement le mécanisme de signature en blanc basé sur le RSA. It will be described here only in the white signature mechanism based on RSA. 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 = m mod n ; Returning to the notation used in the context of the description of the fourth family of application of the invention, the RSA signature is defined as follows: s = m mod n; la vérification se faisant naturellement : s e mod n = (m ) e mod n = m. verification is doing naturally: s e mod n = (m) e mod n = m. Les étapes de l'obtention d'une signature en blanc par l'expéditeur E d'un message m sont : The steps of obtaining a signature in blank by the sender E of a message m are:

Φ E génère un nombre aléatoire k, calcule le facteur d'aveuglement k e mod n et envoie m' = mk e mod n au récepteur ou (signeur) ; Φ E generates a random number k, calculates the blinding factor k e mod n and sends m = mk e mod n to the receiver or (signer);

© le récepteur calcule s' = m' mod n et qui est la signature de m' et envoie s' à E ; © receiver computes s' = m mod n, which is the signature of m 'and sends s' E;

© E calcule s'/k = (mk e ) /k = mk e /k = m mod n, et obtient donc la signature s de m. © E calculates s' / k = (mk e) / mk k = e / k = m mod n, and thus obtain the signature s 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). This technique of multiplication by a factor of blindness is also included within the random makeup (European patent application 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. Random makeup of the method used, for example if a device A wants to outsource operations to a device B while not wishing to completely reveal the operands. 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. Consider a modular reduction operation: A number can camouflage reduce modulo n multiplying by a random multiple of the 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. Thus, if A wants to obtain c = ab mod n, it can generate a random k, compute c = ab + kn (kn mask the product ab), and send it 'to the device B for reduction.

Le dispositif B calcule c' mod n = ab + kn mod n = c. The device B computes c mod n = ab mod n = kn + 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. This technique can finally offer a defense against attacks Kocher described Crypto '96 ( "Timing attacks on Implementation of Diffie-Hellman, RSA, DSS and Other Systems" conference proceedings published by Springer-Verlag LNCS under reference 1109 ) that are based on measuring the time required for operations handling secret sizes to guess values. 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. Indeed, an effective parade is multiplication by a factor of blindness, secret quantities manipulated to decorrelate computing time and 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 : In the case of the RSA signature example (the man in the art will extend this result to all the algorithms involved in the attack, including those involving the calculation of a modular exponential with a secret exponent) resuming the notation used in the context of the description of the fourth family of application of the invention, it suffices that:

© le signeur génère un nombre aléatoire k et calcule : d' = d + k(pl) (q-1) , © the signer generates a random number k, and calculates: d '= d + k (pl) (q-1),

© il génère ensuite la signature de m en calculant : md' = md+k(pl) (q-1) = md(,m(p-1) (ql ; = md m mod, „n. La sixième famille concerne les schémas d'échange de clés basés sur la méthode de Diffie-Hellman. 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 œuvre deux participants (ou appareils) désirant convenir d'une information secrète à travers un canal non sûr. © it then generates the signature of m by calculating:. M = m + k (pl) (q-1) = m (, m (p-1) (ql; = md mod m "n The sixth family concerns the key exchange schemes based on the Diffie-Hellman method. the key exchange algorithm Diffie-Hellman is the first public key algorithm described in "New Directions in Cryptography" published in IEEE Transactions on Information Theory , vol. IT-22, No. 6, patented in the USA under the reference 4200770. the method involves two participants (or devices) wishing to arrange a secret information through an insecure channel.

Les paramètres du protocole Diffie-Hellman sont les suivants : Diffie-Hellman protocol parameters are:

Φ 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 modulo p. Two public Φ parameters on which the sender unit (A) and the camera (B) means: a prime p of 512 bits and an integer g, primitive root modulo p. Ces deux paramètres peuvent être éventuellement communs à un groupe d'utilisateurs ; These two parameters can optionally be common to a group of users; le protocole se déroule comme suit : The protocol is as follows:

Afin de partager une information secrète, les deux appareils réalisent les opérations suivantes : To share secret information, the two devices perform the following:

• l'appareil A génère un nombre aléatoire x et calcule la grandeur X = g x mod p ; • A device generates a random number x and calculates the quantity X = g x mod p;

• l'appareil B génère un nombre aléatoire y et calcule la grandeur Y = g y mod p ; • the device B generates a random number y and computes the size Y = g y mod p; • les deux appareils s'échangent les quantités X et Y • the two devices exchange the quantities X and Y

• l'appareil A calcule clé = Y x mod p ; • A device calculates key = Y x mod p;

• l'appareil B calcule clé' = X y mod p. • The device calculates key B '= X mod p y.

Les deux appareils partagent ainsi à la fin du protocole la connaissance de la quantité clé' = clé = g xy mod p. Both devices share as at the end of protocol knowledge of the key quantity = key = g xy 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. Both devices can then use the secret quantity "key" to exchange messages through a secure channel using a symmetric encryption algorithm parameters for taking the "key" amount and the message to be encrypted. Suite à la description des différentes familles d'application de l'invention, il est souhaitable de préciser les principaux avantages de l'invention. Following the description of the various families of application of the invention, it is desirable to specify the main advantages of the 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. Economic constraints related to market the smart card, cause constant search to improve production costs. Cet effort passe souvent par l'utilisation de produits les plus simples possible. This effort often involves the use of products as simple as 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. This fact leads to a constantly growing interest in solutions allowing to implement public key algorithms on cheap micro controller type 8-bit to heart 68HC05 or 80C51 for example. 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. The main advantage of the inventive method over previous proposals for digital signatures and encryption is the ability to calculate signatures or perform cryptographic operations without requiring a hazard on board generator circuit or signing encrypting.

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. For clarity of description, it is necessary to clarify that the generation of keys and parameters of the various systems shown remains the same. 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. Therefore reference is made to patents and traditional works to generate, within the rules of the art, the various elements needed for signature algorithms, encryption and authentication presented herein. Un ouvrage de référence pratique pourra être « Cryptographie Appliquée, Algori thmes, Protocoles et Codes Source » , par Bruce Schneier (Traduction de Marc Vauclair) , Editions Thomson Publishing. A practical reference book will be "Applied Cryptography, Algori themes, Protocols and Codes Source" by Bruce Schneier (Translation 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; The present invention concerns a cryptographic system normally requires drawing a k hazard, the hazard being an integer; 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 . the system is characterized in that it is implemented by replacing said random k by the amount h (m | secret) where h is a hash function, m is the message in said speaker system and "secret" secret unknown to the world outside the cryptographic system.

De manière plus précise, le système cryptographique de l'invention comprend au moins : Specifically, the cryptographic system of the invention includes at least:

- un système de signature à clé publique ; - A public key signature system;

- un système de chiffrement à clé publique ; - A public key encryption system;

- un système de « padding » aléatoire ; - A system of "padding" random;

- un système de génération de facteurs d'aveuglement ; - A generation system blinding factors;

- un protocole d'échange de clés. - A key exchange protocol. Dans le cas d'un système cryptographique qui comprend un système de signature à clé publique de type DSA, Schnorr, El- 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. In the case of a cryptographic system that includes a signature system public key of DSA, Schnorr, El-Gamal, GOST 34.10 or IEEE ECDSA elliptic curves, random (k) renewed by the signer at each signature is replaced by the amount h (m | x), where x is the secret key of the signer.

Dans le cas d'un système cryptographique comprenant un système de signature à clé publique de type Fiat-Shamir ou In the case of a cryptographic system comprising a public key signature system Fiat-Shamir type or

Guillou-Quisquater, l'aléa renouvelé par le signeur lors de chaque signature est remplacé par la quantité h(m|B), B étant la clef secrète du signeur et m le message à signer. Guillou-Quisquater, random renewed by the signer when each signature is replaced by the amount h (m | B), where B is the secret key of the signer and the message m to sign.

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) . In the case of a cryptographic system comprising a public key encryption system type El Gamal, random (k) renewed by the encryptor in each encrypted message sending is replaced by the amount h (m).

Dans le cas d'un système cryptographique comprenant un système de chiffrement à clé publique de 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. In the case of a cryptographic system comprising a McEliece like public key encryption system the e random error vector, renewed by each encryptor encryption is derived from the quantity h (m), where m is the message to be encrypted.

Dans le cas d'un système cryptographique comprenant un système de « padding » aléatoire intervenant dans un système de chiffrement à clé publique, le chifreur possède une clé σ inconnue du déchiffreur et où le « padding »des messages est réalisé selon les étapes suivantes : a. In the case of a cryptographic system comprising a system of "padding" random speaker in a public key encryption system, the chifreur has an unknown σ key decryptor and where the "padding" messages is carried out according to the following steps: at. Générer autant de k i =h(m|σ|i) que nécessaire pour que la longueur des k A 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|σ) et l'expanser ; Generate as many k i = h (m | σ | i) needed for the length of the concatenated k A is at least equal to 1/6 of the size n of the module (in the case of the RSA encryption, for example) or generating k = h (m | σ) and expand; b. b. Composer m r tel que m r = taille (m) |m|{ i} ; Composer m r as m r = height (m) | m | {i}; c. c. Chiffrer m r à la place de m. Encrypt r m instead of 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|σ) In the case of a cryptographic system comprising a system for generating a blinding factor in the context of a signature generation in white or a random makeup operation random (k) renewed by the sender when each of blindness operation or make-up is replaced by the amount h (m | σ)

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 d'un secret aléatoire, la quantité h(m|σ) où σ est une donnée secrète . In the case of a cryptographic system including a key exchange protocol Diffie-Hellman as a device wants to send a message m uses, instead of a random secret, the amount h (m | σ) where σ is a secret data.

Dans ce même cas de ce système cryptographique ledit protocole comporte au moins les étapes suivantes : a. In the same case of this cryptosystem said protocol comprises at least the following steps: a. Un premier appareil, souhaitant envoyer le message m, calcule = g h(m | σ mod p ; b. Un second appareil, récepteur, génère un aléa a et calcule b 2 = g a mod p ; c. Les deux appareils échangent b x et b 2 et calculent clé A first device wants to send the message m, calculated = g h (m | σ mod p b a second device, receiver, generates a random number a and calculates b 2 = g a mod p c The two devices exchange. B. x and b 2 and calculate key

Figure imgf000019_0001
d. d. Le premier appareil chiffre c = f (m, clé) où f est un mécanisme de chiffrement symétrique ; The first digit unit c = f (m, key) where f is a symmetric encryption mechanism; le premier appareil envoie c au second appareil qui le déchiffre et retrouve m. the first device sends c to the second device decrypts and recovers 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. As a preference, the communicating devices are smart cards, PCMCIA cards, badges, contactless cards or any other portable device.

Préférentiellement , la communication entre lesdits appareils mettant en oeuvre l'invention est réalisée par le biais d'échanges de signaux électroniques, d'ondes radio ou de signaux infrarouges. Preferably, the communication between said apparatus embodying the invention is made by means of the exchange of electronic signals, radio waves or infrared signals. 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. In the following, the invention is presented in more detail in the notations used in the description of the families of applications.

Comme dit précédemment, l'idée de générer un aléa par une opération de hachage h. As said earlier, the idea of generating a random number h by a hash operation. 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. For the first two families of application of the invention, h parameter to take secret data, namely the secret key of the signer, and public data, the message to be signed.

Pour la troisième famille, h prendra en paramètre seulement le message à signer. In the third family, h will take just setting the message to be signed.

Enfin, pour les autres familles, h prendra en paramètre une donnée publique et une donnée secrète (notée σ dans la suite) . Finally, for other families, h will take a public setting and given secret data (denoted σ in the following).

Plus précisément : - pour la première famille concernant lesdits schémas de signature de type El-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. More specifically: - for the first family concerning such type of signature schemes El-Gamal, random k is generated as follows: k = h (m | x) where m is the hash of the message M to be signed and x, the secret key of the signer. Le reste de la génération de la signature (r,s) s'effectue de façon identique au procédé original . The remainder of the generation of the signature (r, s) is carried out identically to the original process. De même la vérification de la signature générée reste inchangée . Similarly, the verification of the signature generated remains unchanged.

- 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. - For the second family concerning such signature schemes derived from zero-knowledge protocols, k is generated as follows: k = h (m | B) with m ground the message M to be signed and B, the secret key of signer. Le reste de la génération de la signature (d,D) s'effectue de façon identique au procédé original. The remainder of the generation of the signature (d, D) is carried out identically to the original process. De même la vérification de la signature générée reste inchangée. Similarly, the verification of the signature generated remains unchanged.

- pour la troisième famille concernant lesdits schémas de chiffrement nécessitant un aléa, deux cas sont à considérer: - For the third family concerning said encryption schemes requiring hazard, two cases must be considered:

© Cas du chiffrement d'El Gamal : - l'aléa k est généré de la façon suivante : k = h (m) avec m le message devant être chiffré. © Cas El Gamal encryption - the random k is generated as follows: k = h (m) m with the message to be encrypted. On effectue ensuite l'algorithme d'El Gamal de la façon décrite précédemment. then performs the algorithm El Gamal, as described previously. Le déchiffrement reste également inchangé. Decryption also remains unchanged. © Cas du chiffrement de Me Eliece : © Case encryption Me 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. - Instead of deriving the error vector e from a hazard, it is generated from h (m), where m is the message to be encrypted. Il est rappelé que e doit être de poids de Hamming exactement t. It is recalled that e must be exactly Hamming weight 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 : One way to derive a vector of size n (code size considered) and weight t from h (m) is as follows:

- supposons que l'on ait ordonné les vecteurs de taille n et de poids t. - Suppose we had ordered the size and weight vectors n 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 ce nombre peut dépasser binomial (t ,n) , suivant t,n, et la fonction de hachage utilisée) comme vecteur e. We can then choose the vector of this list is in position h (m) (or a derivative position of h (m), because that number can exceed binomial (t, n), according t, n, and the hash function used) as a vector e.

On effectue ensuite l'algorithme de McEliece de la façon décrite précédemment. then carried out McEliece algorithm as described previously. Le déchiffrement reste également inchangé . Decryption also remains unchanged. 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. In addition, this e generation method solves the problem of the encryption of the same message twice. 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. Indeed, in the case of generic McEliece, it is unwise to encrypt same message twice (therefore with two different error vectors) because we can guess part of the support of the error vector, and consequently easier to find a clear message.

Avec notre génération de e, un même message aura toujours le même chiffré. With our e generation, the same message will always be the same encrypted.

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. The invention applies as follows to the fourth family, regarding cryptographic schemes require a "padding" random: - as specified, a recommended security measure is "padder" messages with a random sequence. 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. But then again, if the sequence varies for several encryptions of the same message, an attack can still revealing the clear message.

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. Using the deterministic method of generation of a hazard can effectively curb this phenomenon. 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 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,σ,i), σ é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. In effect, adding to the message m as many times as necessary (the padding must be at least along 1/6 of the size of n, be between 86 and 171 bits for conventional module sizes ranging from 512 to 1024 bits) ki = h values (m, σ, i), σ being a secret at least 128 bits, all attacks is impossible because no further relationship exists between posts and more, the same message encrypted multiple both will always be with the same padding. Le chiffrement d'un message m s'effectue alors de la manière suivante par 1 ' expéditeur : Encrypting a message m is then performed as follows by one sender:

Φ Générer autant de k.j_ = h(m|σ|i) que nécessaire pour que la longueur des k. j _ concaténés soit au moins égale à 1/6 de la taille de n ; Φ Generate many k.j_ = h (m | σ | i) needed for the length of the k j _ concatenated is at least equal to 1/6 of the size of n. on pourra également préférer utiliser un seul k = h(m|σ) puis expanser k avant de le concaténer au message ; one k = h we can also prefer to use (m | σ) then expand k before the concatenate the message; © Composer m r tel que m r = taille (m) |m|{ki} ; © Composer m r as m r = height (m) | m | {ki}; © Calculer le cryptogramme c = m r e mod n afin que le récepteur déchiffre c en calculant m r = c mod n. © Calculate cryptogram c = m r e mod n so that the receiver decrypts by calculating m c r = c mod n. Le récepteur extrait ensuite m simplement, connaissant sa taille et donc les bits significatifs de m r . The receiver then simply extract m, knowing its size and thus the significant bits of m r.

Pour la cinquième famille concernant les facteurs d'aveuglement et signatures en blanc, trois cas sont à considérer : O Cas de la Signature en Blanc : - k est généré de la façon suivante : k = h(m|σ) avec m le message devant être signé et σ une donnée secrète. For the fifth family about blindness factors and blank signatures, three cases to consider: Case of O Signature White: - k is generated as follows: k = h (m | σ) with the message m to be signed and σ secret data. Le reste de la génération de la signature en blanc s'effectue de façon identique au procédé original. The remainder of the blank signature generation is performed identically to the original process. De même l'extraction de la signature de m reste inchangée ; Also extraction of signing m remains unchanged;

© Cas du maquillage aléatoire : © random makeup of the case:

- on génère k de la façon suivante : k = h(a|b|σ) avec a et b les opérandes à multiplier et σ une donnée secrète. - K is generated as follows: k = h (a | b | σ) with a and b the operands to be multiplied and σ secret data. Le reste de l'opération de maquillage aléatoire s'effectue de façon identique au procédé original. The rest of the random up operation is carried out identically to the original process. De même la réduction modulaire de c' par le receveur reste inchangée ; Also the modular reduction of c 'by the receiver remains unchanged; θ Cas des mécanismes de protection contre les attaques basées sur la mesure du temps d'un processus : θ Cas mechanisms of protection against attacks based on measuring the time of a process:

- 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 - In the case of RSA signature, for example, the random generating multiple of k (p-1) (q-1) as follows: k

= h(m|σ) avec m le message à signer, et σ une donnée secrète. = H (m | σ) m with the message to be signed, and σ a secret data. 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. The rest of the exponent up operation (d '= d + k (p-1) (q-1)) is carried out identically to the original process.

L'invention s'applique de la manière suivante à la sixième famille, qui concerne lesdits schémas d'échange de clés basés sur la méthode de Diffie-Hellman. The invention is as follows in sixth family, with respect to such key exchange schemes based on the Diffie-Hellman method.

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|σ) où σ est une donnée secrète fixe. In type key exchange Diffie-Hellman system device, also called device that wants to send a message m, uses, instead of a random quantity h (m | σ) where σ is a given fixed secret. On peut évidemment de façon naturelle étendre cette méthode à l'ensemble des participants au protocole. Obviously we can naturally extend this method to all participants in the protocol. Ce dernier comporte, au moins, les étapes suivantes : The latter comprises at least the following steps:

• un premier dispositif, souhaitant envoyer le message m, calcule X = g h(m | σ) mo dp ; • a first device wants to send the message m, computes X = g h (m | σ) mo dp; • un second dispositif, récepteur, génère un aléa y et calcule Y = g y mod p ; • a second device, receiver, generates a random number y and computes Y = g y mod p;

• les deux dispositifs échangent X et Y, et calculent clé • Both devices exchange X and Y, and calculate key

Figure imgf000024_0001
• le premier dispositif chiffre c = f(m,clé) où f est un mécanisme de chiffrement symétrique ; • the first device number c = f (m, key) where f is a symmetric encryption mechanism;

• le premier dispositif envoie c au second dispositif qui le déchiffre et retrouve m. • the first device sends c to the second device decrypts and recovers m.

L'invention sera plus facile à comprendre à l'aide des figures 1 à 4. The invention will be more easily understood with the help of Figures 1 to 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. Figure 1 depicts the flowchart of a signature or decryption apparatus using the system proposed by the present 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. Figure 2 shows the flowchart of a verification or encryption device implementing the system proposed by the present invention.

La figure 3 représente les données échangées par le dispositif de signature et le dispositif de vérification. 3 shows the data exchanged by the signature device and the verification device.

La figure 4 représente les données échangées par le dispositif de chiffrement et le dispositif de déchiffrement. 4 shows the data exchanged by the encryption device and the decryption device.

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) . According to the proposed invention, each signing / decryption device (typically a smart card) consists of a processing unit (CPU), a communication interface, a random access memory (RAM) and / or a memory not writable (ROM) and / or a writable memory (usually re writable) (EPROM or EEPROM).

Le CPU et/ou la ROM de 1 ' appareil de signature/déchiffrement contiennent des programmes ou des ressources de calcul correspondant aux étapes de l'algorithme de signature/déchiffrement (règles de calcul et d'utilisation de la fonction de hachage, multiplication, mise au carré, addition, inverse modulaire et réduction modulaire) . The CPU and / or the ROM 1 '/ decryption signature device contain programs or computing resources corresponding to the steps of signing / decryption algorithm (calculation rules and using the hash function, multiplication, squaring, addition, modular inverse and modular reduction). Certaines de ces opérations peuvent être regroupées : par exemple, la réduction modulaire peut-être directement intégrée dans la multiplication. Some of these operations can be grouped together: for example, the modular reduction can be integrated directly into 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. The RAM contains the message M which applies the hash function or calculation rules for signature generation or calculation rules for the generation of cryptograms. 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 suit. The E (E) PROM contains at least the parameters m, k x and generated and used as specified in the following description.

Le CPU commande, via les bus d'adresses et de données, 1 ' interface de communication, les opérations de lecture et d'écriture mémoire. The CPU control via the address and data bus, 1 communication interface, the read and write operations memory.

Chaque appareil de signature est protégé du monde extérieur par des protections physiques. Each signature device is protected from the outside world by physical protections. Ces protections devraient être suffisantes pour empêcher toute entité non autorisée d'obtenir la clef secrète. These protections should be sufficient to prevent any unauthorized entity to obtain the secret key. 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 1 ' é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. The most widely used techniques nowadays in this field are the integration of the chip in a security module and one equipment chip devices capable of detecting changes in temperature, light and voltages and frequencies abnormal clock. Des techniques de conception particulières, telles que 1 ' embrouillage de l'accès mémoire, sont également utilisées . Special design techniques, such as one scrambling for memory access, are also used. 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. According to the proposed invention, the verification apparatus comprises at least one processing unit (CPU) and memory resources.

Le CPU commande, via les bus d'adresse et de données, 1 ' interface de communication, les opération de lecture et d'écriture mémoire. The CPU control via the address and data bus, 1 communication interface, the read operation and write memory. 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) . The CPU and / or the ROM of authority contain programs or computation resources allowing to implement the signature or encryption protocol (rules of calculation and hash function, multiplication, exponentiation and modular reduction). Certaines de ces opérations peuvent être regroupées (par exemple, la réduction modulaire peut-être directement intégrée dans la multiplication) . Some of these operations can be grouped (for example, the modular reduction can be integrated directly into the multiplication).

Non-Patent Citations
Reference
1 *See references of WO9851038A1
Classifications
International ClassificationG07F7/10, G09C1/00, H04L9/32
Cooperative ClassificationG06Q20/40975, G07F7/1008, G06Q20/341, H04L9/3252, H04L9/0841, H04L2209/80, H04L2209/20
European ClassificationG06Q20/40975, G06Q20/341, H04L9/32S, G07F7/10D
Legal Events
DateCodeEventDescription
Feb 23, 200017PRequest for examination filed
Effective date: 19991207
Feb 23, 2000AKDesignated contracting states:
Kind code of ref document: A1
Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE
May 8, 200217QFirst examination report
Effective date: 20020322
Jun 9, 200418DDeemed to be withdrawn
Effective date: 20031210