WO2006045660A2 - Procede de generation de signature a la volee avec preuve de securite - Google Patents

Procede de generation de signature a la volee avec preuve de securite Download PDF

Info

Publication number
WO2006045660A2
WO2006045660A2 PCT/EP2005/054308 EP2005054308W WO2006045660A2 WO 2006045660 A2 WO2006045660 A2 WO 2006045660A2 EP 2005054308 W EP2005054308 W EP 2005054308W WO 2006045660 A2 WO2006045660 A2 WO 2006045660A2
Authority
WO
WIPO (PCT)
Prior art keywords
signature
calculate
scheme
modulo
message
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.)
Ceased
Application number
PCT/EP2005/054308
Other languages
English (en)
Other versions
WO2006045660A3 (fr
Inventor
Benoit Chevallier-Mames
Jean-Sébastien CORON
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of WO2006045660A2 publication Critical patent/WO2006045660A2/fr
Publication of WO2006045660A3 publication Critical patent/WO2006045660A3/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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/3255Cryptographic 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 group based signatures, e.g. ring or threshold signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/68Special signature format, e.g. XML format

Definitions

  • the invention consists of two new proven security electronic signature schemes, the first scheme being based on the problem of discrete logarithm on elliptic curve, the second scheme being based on any method of identification without information disclosure.
  • the two schemes of the invention have in common to allow the rapid generation of an electronic signature once certain pre-calculations have been made. This makes the invention particularly useful in the context of portable objects with low computing resources such as a smart card.
  • An electronic signature of a message is one or more numbers depending both on a secret key known only to the person signing the message, as well as the content of the message to be signed.
  • An electronic signature must be verifiable: it must be possible for a third party to verify the validity of the signature, without the knowledge of the secret key of the person signing the message being required.
  • a signature scheme is described in the form of three elements (GEN_S, SIGN_S, VER_S):
  • GEN_S is a public and private key generation process
  • SIGN_S is a signature generation process
  • VER_S is a signature verification method. There are many methods of electronic signature. The most famous are:
  • the RSA schema is probably the most well known and used signature scheme. This method is described in
  • the secret key is then d, such that
  • the Rabin scheme is a signature scheme described in "Digital signatures and public-key functions as intractable as factorization", Rep. MIT / LCS / TR-212, MIT Laboratory for Computer Science, 1979.
  • the key generation method consists in generating 2 first p and q.
  • the signature process, for a message m then consists, with a function of "padding" P to return s, square root of P (m) modulo n, which is easy knowing the factorization of n.
  • the algorithms for making this calculation are known to those skilled in the art.
  • the Rabin signature is as sure as factoring.
  • Fiat and Shamir define the concept of identification method without information disclosure (in English "zero-knowledge protocol") , as well as a heuristic, called heuristic Fiat-Shamir, which makes it possible to transform a method of identification without disclosure of information in signature scheme.
  • An identification method without information disclosure comprises: a public key generation method and an identification protocol private, which can generally be described using three steps, a P prover and a V verifier; for that, we define 3 publicly known functions A, B and C; the protocol is then:
  • the identification protocol may also include verifying that the elements are in known sets.
  • a simple way to check the membership of these elements to these sets is to define the functions A, B, C only on these sets.
  • An example is given below by the diagram "Poupard Stern"
  • the Fiat-Shamir heuristic consists in suppressing the interactivity of the identification process without disclosure of information: for this, we use a hash function, called G.
  • G The signer is called S, while the verifier is called V.
  • the signature scheme then obtained is then characterized by a key generation method which is the key generation method of the method identification without information disclosure, and by a signature generation method which is:
  • a signature scheme is of the "on the fly” type when the generation of the signature can be decomposed into two distinct phases: a first so-called pre-calculation phase, during which which a value independent of the message to be signed is calculated, and the signature generation phase, during which a signature of a message m is calculated using the pre-calculated value, the latter phase having to be able to execute quickly.
  • "On-the-fly" signature schemes are therefore particularly useful in the context of portable objects with a low computing resource such as a smart card. Such schemes allow the rapid generation of the signature by the portable object, whereas this would not be possible for a conventional signature scheme requiring more computing resources.
  • the schemas based on the heuristics Fiat-Shamir are schemas of signatures
  • Girault-Poupard-Stern is described in "An identity-based identification scheme based on discrete logarithms modulo a composite number", Proceedings og EUROCRYPT 90.
  • Fiat-Shamir is described in "How to prove yourself: Practical Solutions to Identification and Signature Problems", Proceedings of Crypto 86.
  • Poupard-Stern is an identification process without disclosure of information, published in "On the fly signatures based on factoring", in ACM Conference on
  • Poupard-Stern can be transformed into a signature process, thanks to the heuristics Fiat-Shamir.
  • the key generation method consists in generating 2 first p and q.
  • the identification protocol is then: -
  • the prover P generates a random number r
  • V generates a random number g and sends it to P.
  • a “loose” proof uses an attacker and solves the difficult problem with a low probability compared to that of the attacker.
  • a "tight” proof solves the problem with a probability very close to that of the attacker.
  • a "tight” proof is a much better guarantee of security.
  • Fiat-Shamir have a proof of security. This proof is realized thanks to the article “Security proofs for signature schemes", Proceedings of EUROCRYPT 96, where Pointcheval and Stern introduce the bifurcation lemma
  • the random oracle model is an ideal model in which any hash function is considered perfectly random. As in practice, a hash function is not a perfectly random object, it is generally considered that a proof in the random oracle model is an indication that the schema is correctly constructed, but that this does not give a perfect guarantee of the safety of the diagram during its practical use.
  • a cryptographic scheme has a proof of security in the standard model when its security can be proved without assuming the perfectly random character of the hash functions.
  • Such proof of security is particularly useful because it allows to have a perfect confidence in the security of the scheme during its practical use.
  • the first scheme of the invention consists of a first on-the-fly signature scheme with "tight" security proof in the standard model and does not have the disadvantages mentioned above. Indeed, in this first method of the invention, the size of the public key and the signature are not increased, and the verification time of the signature is not changed.
  • the first method of the invention is based on the signature scheme invented by Boneh and Boyen ("Short signatures without random oracles", Proceedings of Eurocrypt 2004).
  • This signature scheme is based on the computation of the coupling in an elliptic curve, and has a "tight" security proof in the standard model.
  • this scheme does not have the property of being "on the fly”, that is to say that the generation of the signature is expensive in computing time and can not be broken down into two phases as defined above.
  • Gl and G2 are two generators of elliptic curves El and E2, respectively.
  • p is a prime number.
  • the public key is (U, V) and the private key is (x, y).
  • a random value r is generated between 0 and p-1, and the signature is then (s, r), such that:
  • H (m) is the hash of the message m.
  • Verification of the validity of a signature is carried out in the following way: one checks the following equality:
  • the first scheme of the invention consists in modifying the preceding signature scheme to make it of the type
  • the method of generating the public key and the private key is not modified with respect to the original schema.
  • the signature verification method is not modified either. Only the signature generation method is modified as follows according to two phases.
  • a randomness r ' is generated between 0 and p-1, and the point is calculated:
  • the signature is then equal to (s, r).
  • this first "tight" and “on the fly” proven security signature scheme for an electronic component is such that it uses the following methods: GEN_NOU is the process of generation of the public and private key according to the signature scheme of Boneh and Boyen,
  • SIGN_NOU is the method of generating a signature of a message m to be signed and consists of:
  • VER_N0U is the verification method according to the signature scheme of Boneh and Boyen.
  • the first method of the invention is therefore of the "on the fly" type.
  • the first one method of the invention defines a signature scheme having the same level of security as the original scheme, ie it has a "tight" security proof in the standard model.
  • the first method of the invention comprises a first variant intended to reduce the generation time of the signature.
  • the advantage of the first variant is that it replaces a modular division by a modular multiplication whose calculation is generally faster. Since the probability distribution of the generated signatures has not been modified, this variant has exactly the same level of security.
  • the first method of the invention comprises a second variant intended to further reduce the generation time of the signature.
  • the signer generates a random r 'of large size (for example of size 400 bits if the size of p is 160 bits).
  • the second variant runs faster.
  • the security level of the schema is not significantly changed if the size of r 'is large enough.
  • the second scheme of the invention consists of a signature scheme based on the Fiat-Shamir heuristic, but with the new advantage that the proof is "tight".
  • the invention thus uses any identification method without information disclosure. It also uses any signature scheme S, for which it is impossible for an attacker, given k messages, to forge on any of these messages. Finally, the invention uses two hash functions G and H.
  • the second scheme of the invention is a "tight" and “on the fly” proven security signature scheme for an electronic component, using two hashing functions G and H, an identification method without disclosure of ZK information, given as (GEN ZK, A, B, C) and a signature scheme
  • A, B, C are the functions defining the ZK identification protocol
  • VER_S S's signature verification process
  • GEN_INV is the process of public and private key generation, which consists in executing GEN_ZK and GEN_S
  • VER_INV is the process of verification of signature (z, y) of the message m, and consists of:
  • this diagram is "on the fly” because the first steps of the signature (specifically, up to the calculation of g not included) can be done without knowing the message. The final stages being very fast, the diagram is "on the fly". More specifically, these steps can be performed before the knowledge of the message m, because they are independent of it: by such a method, the time of the signature once the received message is greatly reduced.
  • a non-limiting example is where S is the RSA and where the identification method without information disclosure is Poupard-Stern.
  • such a combination allows us to obtain a signature scheme using the Poupard-Stern scheme as the identification method without information disclosure, and the RSA scheme as the signature scheme, schema of the invention as it uses the following methods:
  • GEN_INV is the method of generating public key and secret key and consists in: generating a parameter called base, 1 generate two first p and q, such that (p-1) and (q-1) are prime with a public exponent e, and
  • I * (q-1)) as a private key, the size of s in bit being known, and denoted II s II, as well as that of the hash function G, denoted by I IgI I, R denoting the maximum value of the number random in the signature generation method;
  • SIGN INV is the signature generation process, and consists in: o generating a random number r, between 0 and
  • VER_INV is the process of verification of signature (z, y) of the message m, and consists of:
  • This scheme allows to make a variant of the RSA, but with a character "on the fly”.
  • S is Rabin's signature and where the identification process without information disclosure is Poupard-Stern.
  • such a combination allows us to obtain a signature scheme that uses the Poupard-Stern scheme as the identification method without information disclosure, and the Rabin scheme as the signature scheme, such as the signature scheme uses the following methods:
  • GEN_INV is the method of generating public key and secret key and consists of: "generating a parameter called base;
  • this schema is "on the fly” because the first steps of the signature (specifically, up to the calculation of g not included) can be done without knowing the message, and therefore before receiving the message. ci, as a pre-calculation step. The final stages being very fast, the diagram is "on the fly”.
  • the first variant consists of a signature scheme that uses the Poupard-Stern scheme as the identification method without information disclosure, and the RSA scheme as the signature scheme, as this scheme according to the first variant uses the following processes
  • GEN_INV is the process of public and private key generation and consists in: "generating a parameter called base,
  • VER_INV is the process of verification of signature (z, y) of the message m, and consists of:
  • the second variant consists of a signature scheme that uses the Poupard-Stern scheme as the identification method without information disclosure, and the Rabin scheme as the schema. as in this scheme according to the second variant uses the following methods:
  • GEN_INV is the method of generating public key and secret key and consists of: "generating a parameter called base;
  • I IgI I R denoting the maximum value of the random number in the signature generation method
  • SIGN_INV is the process of signature generation, and consists in: o generating a random number r, between 0 and
  • the key can be compressed, ie stored in a form taking less space.
  • the key can be compressed, ie stored in a form taking less space.
  • the private key is generated in the form:
  • the private key is generated in the form:
  • d e A (-1) modulo PPCM (pl, q-1).
  • Paillier Public-key cryptosystems based on composite degree residuosity classes", Proceedings of EUROCRYPT 99.
  • El Gamal signature is described as "A public key cryptosystem and a signature scheme based on discrete logarithms,” IEEE Transactions on Information Theory, 1985.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention consiste en deux nouveaux schémas de signature électronique à sécurité prouvée, le premier schéma étant basé sur le problème du logarithme discret sur courbe elliptique, le second schéma étant basé sur un procédé quelconque d'identification sans divulgation d'information. Les deux schémas de l'invention ont en commun de permettre la génération rapide d'une signature électronique une fois que certains pré-calculs ont été réalisés.

Description

Procédé de génération de signature à la volée avec preuve de sécurité
L'invention consiste en deux nouveaux schémas de signature électronique à sécurité prouvée, le premier schéma étant basé sur le problème du logarithme discret sur courbe elliptique, le second schéma étant basé sur un procédé quelconque d'identification sans divulgation d'information. Les deux schémas de l'invention ont en commun de permettre la génération rapide d'une signature électronique une fois que certains pré-calculs ont été réalisés. Cela rend l'invention particulièrement utile dans le cadre d'objets portables à faible ressource de calcul tels qu'une carte à puce.
Une signature électronique d'un message est un ou plusieurs nombres dépendant à la fois d'une clé secrète connue seulement de la personne signant le message, ainsi que du contenu du message à signer. Une signature électronique doit être vérifiable: il doit être possible pour une tierce personne de vérifier la validité de la signature, sans que la connaissance de la clé secrète de la personne signant le message ne soit requise.
Un schéma de signature est décrit sous la forme de trois éléments (GEN_S, SIGN_S, VER_S) :
GEN_S est un procédé de génération de clé publique et privée
SIGN_S est un procédé de génération de signature
VER_S est un procédé de vérification de signature. II existe de nombreux procédés de signature électronique. Les plus connus sont:
- Schéma de signature RSA: c'est le schéma de signature électronique le plus largement utilisé. Sa sécurité est basée sur la difficulté de la factorisation de grands nombres .
- Schéma de signature Rabin. Sa sécurité est aussi basée sur la difficulté de la factorisation de grands nombres.
- Schéma de signature de type El-Gamal. Sa sécurité est basée sur la difficulté du problème du logarithme discret. Le problème du logarithme discret consiste à déterminer, s'il existe, un entier x tel que y=gx avec y et g deux éléments d'un ensemble E possédant une structure de groupe.
- Schéma de signature Schnorr. Il s'agit d'une variante du schéma de signature de type El-Gamal.
Le schéma RSA est sans doute le schéma de signature le plus connu et utilisé. Cette méthode est décrite dans
"A method for obtaining digital signatures and public-key cryptosystems" (Communications of the ACM, 1978) par
Rivest, Shamir et Adleman.
Le procédé de génération de clé consiste à générer 2 premiers p et q, tels que (p-1) et (q-1) soient premiers avec un exposant public e (choisi par l'utilisateur, ou initialisé à une valeur standard, par exemple e=2A16+l) . La clé secrète est alors d, tel que
ed=l modulo (p-l)*(q-l),
que l'on note d=eA(-l) modulo (p-l)*(q-l), et la clé publique est formée de n=p*q et e.
Le procédé de signature, pour un message m, consiste alors, avec une fonction dite de « padding » P (le mot anglais « padding » pourrait se traduire par « de remplissage », mais nous préférerons, pour plus de clarté, le mot anglais dans la suite) , à retourner
s=P (m) Ad modulo n
Le procédé de vérification d'une signature s d'un message m se résume ainsi à vérifier que sAe modulo n = P (m) .
Le schéma Rabin est un schéma de signature décrit dans « Digital signatures and public-key functions as intractable as factorization", Tech. Rep. MIT/LCS/TR-212, MIT Laboratory for Computer Science, 1979.
C'est un procédé assez proche de RSA, qui repose sur la factorisation.
Le procédé de génération de clé consiste à générer 2 premiers p et q. La clé secrète est alors (p,q) et la clé publique est n=p*q. Le procédé de signature, pour un message m, consiste alors, avec une fonction de « padding » P à retourner s, racine carrée de P (m) modulo n, ce qui est facile connaissant la factorisation de n. Les algorithmes permettant de faire ce calcul sont connus de l'homme de l'art.
Le procédé de vérification d'une signature s d'un message m se résume ainsi à vérifier que sA2 modulo n = P (m) .
La signature Rabin est aussi sure que la factorisation.
Dans l'article « How to prove yourself: Practical solutions to identification and signature problems", Proceedings of Crypto 86, Fiat et Shamir définissent la notion de procédé d'identification sans divulgation d'information (en anglais « zero-knowledge protocol») , ainsi qu'une heuristique, dite heuristique de Fiat- Shamir, qui permet de transformer un procédé d'identification sans divulgation d'information en schéma de signature.
Un procédé d'identification sans divulgation d' information comprend : un procédé de génération de clé publique et privée un protocole d'identification, qui peut généralement se décrire à l'aide de trois étapes, en un prouveur P et un vérifieur V ; pour cela, on définit 3 fonctions publiquement connus A, B et C ; le protocole est alors :
étape 1 : P génère un nombre aléatoire r, calcule x=A(r) et envoie x à V étape 2 : V génère un nombre aléatoire g et l'envoie à P étape 3 : P calcule, à l'aide de son secret s, le nombre y=B(s,g,r), et l'envoie à V. V peut alors vérifier si x=C(y,g), auquel cas l'identification est acceptée.
Le protocole d'identification peut également comporter la vérification que les éléments sont dans des ensembles connus. Un moyen simple de vérifier l'appartenance de ces éléments à ces ensembles est de ne définir les fonctions A, B, C que sur ces ensembles . Un exemple est donné ci- dessous par le schéma « Poupard Stern »
L'heuristique Fiat-Shamir consiste à supprimer l'interactivité du procédé d'identification sans divulgation d'information: pour cela, on utilise une fonction de hachage (« hash », en anglais), appelée G. Le signataire est appelé S, tandis que le vérifieur est appelé V.
Le schéma de signature alors obtenu est alors caractérisé par un procédé de génération de clé qui est le procédé de génération de clé du procédé d'identification sans divulgation d'information, et par un procédé de génération de signature qui est:
générer un nombre aléatoire r et calculer x=A(r) ; calculer g=G(m,x), où m est le message à signer ; calculer y=B(s,g,r) ; la signature alors obtenue est (x,y) .
Enfin, le procédé de vérification de la signature (x,y) du message m consiste à calculer g=G(m,x), puis a vérifier que x=C(y,g) .
On dit qu'un schéma de signature est de type « à la volée » (« on the fly », en anglais) lorsque la génération de la signature peut se décomposer en deux phases distinctes : une première phase dite de pré¬ calcul, durant laquelle une valeur indépendante du message à signer est calculée, et la phase de génération de signature, durant laquelle une signature d'un message m est calculée en utilisant la valeur pré-calculée, cette dernière phase devant pouvoir s'exécuter rapidement. Les schémas de signature « à la volée » sont donc particulièrement utiles dans le cadre d'objets portables à faible ressource de calcul tels qu'une carte à puce. De tels schémas permettent la génération rapide de la signature par l'objet portable, alors que cela ne serait pas possible pour un schéma de signature classique demandant plus de ressources de calculs. On voit ainsi aisément que les schémas basés sur l'heuristique Fiat-Shamir sont des schémas de signatures
« à la volée » dès lors que l'évaluation de la fonction G
(la fonction de hachage) et de la fonction B (pour le calcul de y) est rapide, ce qui est le cas pour les procédé d'identification sans divulgation d'information classiques (Fiat-Shamir, Girault-Poupard-Stern, Poupard-
Stern) . En effet, l'étape consistant à générer un nombre aléatoire r et à calculer x=A(r) est indépendante du message, et peut donc se faire sans la connaissance de celui ci, lors d'un pré-calcul.
Girault-Poupard-Stern est décrit dans "An identity- based identification scheme based on discrète logarithms modulo a composite number", Proceedings og EUROCRYPT 90.
Fiat-Shamir est décrit dans « How to prove yourself: Practical solutions to identification and signature problems", Proceedings of Crypto 86.
Poupard-Stern est détaillé ci-après .
Malheureusement, RSA et Rabin ne disposent pas de cette propriété très intéressante de signature « à la volée ». Une variante de RSA et de Rabin proposant cet avantage est l'œuvre de cette invention.
Poupard-Stern est un procédé d'identification sans divulgation d'information, publiée dans « On the fly signatures based on factoring », dans ACM Conférence on
Computer and Communications Security 1999, par Poupard et Stern. Poupard-Stern peut être transformé en procédé de signature, grâce à l'heuristique Fiat-Shamir.
Le procédé de génération de clé consiste à générer 2 premiers p et q. La clé publique comprend alors un module n=p*q, dont la factorisation est gardée secrète, et une base a. La clé secrète est s=n-(p-l) (q-1) .
Le protocole d'identification est alors: - Le prouveur P génère un nombre aléatoire r
P calcule x=aAr modulo n et l'envoie au vérifieur V
V génère un nombre aléatoire g et l'envoie à P. P calcule y=r+s*g et l'envoie à V
Le vérifieur V peut alors vérifier que aAy=x *aA (n*g) modulo n.
De plus, il est vérifié que y est dans le bon intervalle de valeur. Plus précisément, le nombre r étant généré entre 0 et R, le nombre g étant de taille I IgI I bits, et le nombre s étant de taille I |s| | bits, il est vérifié que : 0 < y < R+2Λ ( | | s | | + | | k| | ) . Cet intervalle, ainsi que les tailles des paramètres, sont décrits plus précisément dans l'article de Poupard et Stern.
On dit qu'un schéma de signature est à sécurité prouvée si on peut, par une preuve mathématique, utiliser un éventuel attaquant contre ce schéma de signature (plus précisément, les signatures forgées, c'est à dire contrefaites par cet attaquant) pour résoudre un problème difficile, comme le logarithme discret ou la factorisation.
Les preuves peuvent être non strictement réductibles (« loose » en anglais) ou strictement réductibles (« tight » en anglais) . Les termes anglais seront préférés dans la suite.
Une preuve « loose » utilise un attaquant et résoud le problème difficile avec une probabilité faible comparée à celle de l'attaquant. Au contraire, une preuve « tight » résout le problème avec une probabilité très proche de celle de l'attaquant. Ainsi, une preuve « tight » est un bien meilleur gage de sécurité.
Les schémas de signature basés sur l'heuristique
Fiat-Shamir possèdent une preuve de sécurité. Cette preuve est réalisée grâce à l'article « Security proofs for signature schemes" , Proceedings of EUROCRYPT 96, où Pointcheval et Stern introduisent le lemme de bifurcation
("forking lemma", en anglais), qui permet de prouver la sécurité de schémas basés sur l'heuristique Fiat-Shamir, dans le modèle de l'oracle aléatoire.
Malheureusement, les preuves dues au « forking lemma » n'assurent qu'une sécurité « loose ». Il n'existe pas de moyen connu de prouver un schéma basé sur l'heuristique Fiat-Shamir avec une preuve « tight ». Ainsi, la preuve de sécurité de Poupard-Stern, reposant sur le lemma de bifurcation, n'est que « loose ». Le modèle de l'oracle aléatoire est un modèle idéal dans lequel toute fonction de hachage est considérée comme parfaitement aléatoire. Comme dans la pratique, une fonction de hachage n'est pas un objet parfaitement aléatoire, on considère généralement qu'une preuve dans le modèle de l'oracle aléatoire est une indication que le schéma est correctement construit, mais que cela ne donne pas une garantie parfaite de la sécurité du schéma lors de son utilisation pratique.
Au contraire, on dit qu'un schéma cryptographique possède une preuve de sécurité dans le modèle standard lorsque sa sécurité peut être prouvée sans faire l'hypothèse du caractère parfaitement aléatoire des fonctions de hachage. Une telle preuve de sécurité est particulièrement utile car elle permet d'avoir une confiance parfaite dans la sécurité du schéma lors de son utilisation pratique.
Dans la publication "Improved online/offune signature schemes" par Shamir et Tauman (Proceedings of Crypto 01) , les auteurs décrivent un moyen de conversion générique permettant d'obtenir un schéma de signature « à la volée » à partir d'un schéma de signature quelconque. L'avantage de cette conversion est qu'elle préserve la sécurité du schéma de signature : si le schéma initial possède une preuve de sécurité dans le modèle standard, alors le schéma de signature « à la volée » obtenue possède aussi une preuve de sécurité dans le modèle standard. L'inconvénient de cette méthode est qu'elle double la taille de la clef publique ainsi que la taille de la signature, et qu'elle augmente aussi le temps de vérification de la signature. Le temps total de génération de la signature (pré-calcul+génération) est lui-même augmenté.
Le premier schéma de l'invention consiste en un premier schéma de signature à la volée avec une preuve « tight » de sécurité dans le modèle standard et ne présentant pas les inconvénients cités précédemment. En effet, dans ce premier procédé de l'invention, la taille de la clef publique et de la signature ne sont pas augmentées, et le temps de vérification de la signature n'est pas modifié.
Le premier procédé de l'invention est basé sur le schéma de signature inventé par Boneh and Boyen ("Short signatures without random oracles", Proceedings of Eurocrypt 2004) . Ce schéma de signature est basé sur le calcul du couplage dans une courbe elliptique, et possède une preuve de sécurité « tight » dans le modèle standard. En revanche, ce schéma ne possède pas la propriété d'être « à la volée », c'est à dire que la génération de la signature est coûteuse en temps de calcul et ne peut pas se décomposer en deux phases telles que définies précédemment.
Le calcul du couplage de deux points définis sur une courbe elliptique est un procédé permettant la mise en oeuvre de protocoles possédant des propriétés intéressantes sur le plan cryptographique. A titre d'exemple, on peut citer un protocole de chiffrement basé sur l'identité (Boneh et Franklin, « Identity-based encryption from the Weil pairing », Proceedings of Crypto 2001) ainsi qu'un protocole d'échange de clef entre trois parties (A. Joux, "A one-round protocol for tripartite Diffie-Hellman, " Algorithm Number Theory Symposium — ANTS-IV, lecture Notes on Computer Science, volume 1838, Springer-Verlag (2000), pp. 385-394) .
Une courbe elliptique est un ensemble de points ayant des caractéristiques communes. Etant donné deux points A et B appartenant à une courbe elliptique, il est possible d'additionner ces deux points pour en obtenir un troisième C=A+B. De plus, étant donné un point A et un entier k, il est possible de calculer k.P=P+P+...+P (l'opération étant répétée k fois) . Cette opération s'appelle multiplication scalaire par un entier k. Etant donné deux points A et B appartenant à une courbe elliptique, il est possible de calculer le couplage entre les points A et B, noté <A,B>. Pour plus de détails sur les courbes elliptiques, on pourra se reporter notamment à la publication FR 2 828 779. La mise en oeuvre classique d'une opération de couplage de type C = <A, B> est détaillée notamment dans le document "Identity based encryption from the Weil pairing" D. Boneh et M. Franklin, Proceedings of Crypto 2001, disponible à 1'adresse :http: //crypto. Stanford.edu/~dabo/abstracts/ibe .html) . Les points A, B que l'on cherche à coupler sont par exemple une clé, publique ou privée, et un message, à chiffrer ou à déchiffrer, dans le cadre d'un protocole de cryptographie à clés asymétriques . Le schéma de signature inventé par Boneh et Boyen sur lequel est basé le premier procédé de l'invention, est défini de la façon suivante :
Gl et G2 sont deux générateurs de courbes elliptiques El et E2, respectivement. Une réalisation possible du schéma consiste à prendre El=E2 et G1=G2. On suppose que ces deux générateurs sont d'ordre p, où p est un nombre premier. Les courbes elliptiques El et E2, les points Gl et G2, ainsi que p, sont des paramètres du système, x et y sont deux entiers définis modulo p, et U est tel que U=x.G2 et V tel que V=y.G2. La clef publique est (U,V) et la clef privée est (x,y) .
Pour générer une signature, on génère un aléa r compris entre 0 et p-1, et la signature est alors (s,r), tel que :
s=l/ (x+H(m)+y*r) .Gl
dans laquelle H (m) est le haché du message m.
La vérification de la validité d'une signature s'effectue de la manière suivante : on vérifie l'égalité suivante :
<s,U+H(m) .G2+r.V>=<Gl,G2>
On voit d'après la description précédente du schéma de signature de Boneh et Boyen que ce schéma n'est pas du type « à la volée ». En effet, pour calculer la signature (s,r), il est nécessaire de connaître le message m, et la multiplication scalaire ainsi définie (ie, s=l/ (x+H (m) +y*r) .Gl) ne peut pas être pré-calculée.
Le premier schéma de l'invention consiste à modifier le schéma de signature précédent pour le rendre du type
« à la volée ». Le procédé de génération de la clef publique et de la clef privée n'est pas modifié par rapport au schéma original. Le procédé de vérification de la signature n'est pas modifié non plus. Seul le procédé de génération de signature est modifié de la façon suivante selon deux phases .
Dans une première phase, dite phase de pré-calcul, on génère un aléa r' compris entre 0 et p-1, et on calcule le point :
s=l/ (x+y*rf ) .Gl
Dans une deuxième phase, étant donné le message m, on calcule l'entier:
r=r'-H(m)/y modulo p
La signature est alors égale à (s,r) .
Plus précisément, ce premier schéma de signature à sécurité prouvé « tight » et « à la volée » destiné à un composant électronique est tel qu'il utilise les procédés suivants : GEN_NOU est le procédé de génération de la clé publique et privée selon le schéma de signature de Boneh et Boyen,
SIGN_NOU est le procédé de génération de signature d'un message m à signer et consiste à :
1) générer un aléa r' compris entre 0 et p-1, l'entier p étant un paramètre du schéma ;
2) pré-calculer le point s=l/ (x+y*r' ) .Gl, le point Gl étant un générateur de la courbe elliptique El, le point Gl et la courbe elliptique Gl étant deux paramètres du schéma, les entiers x et y formant la clef privée du schéma ; 3) calculer, une fois le message m connu, l'entier r=r'-H(m)/y modulo p ; 4) renvoyer la signature (s,r) ;
VER_N0U est le procédé de vérification selon le schéma de signature de Boneh et Boyen.
On voit que dans le schéma décrit précédemment, le point s est indépendant du message m et peut dont être pré-calculé. Ensuite, lors de la deuxième phase, lorsque le signataire reçoit le message m, il peut calculer l'entier r=r'-H(m)/y modulo p. Comme cette opération ne requiert qu'une division et une soustraction, elle peut s'effectuer très rapidement. Le premier procédé de l'invention est donc du type « à la volée »
De plus, comme la distribution de probabilité des signatures générées n'a pas été modifié, le premier procédé de l'invention définit un schéma de signature possédant le même niveau de sécurité que le schéma original, c'est à dire qu'il possède une preuve de sécurité « tight » dans le modèle standard.
Le premier procédé de l'invention comprend une première variante destinée à réduire le temps de génération de la signature. Dans cette première variante, on suppose que le signataire possède en mémoire l'entier y'=-l/y modulo p. Dans ce cas, la génération de la signature s'effectue en calculant r=r'+H (m) *y' modulo p. L'avantage de la première variante est qu'elle remplace une division modulaire par une multiplication modulaire dont le calcul est généralement plus rapide. Comme la distribution de probabilité des signatures générées n'a pas été modifiée, cette variant possède exactement le même niveau de sécurité.
Le premier procédé de l'invention comprend une deuxième variante destinée à réduire encore le temps de génération de la signature. Dans cette deuxième variante, le signataire génère un aléa r' de grande taille (par exemple de taille 400 bits si la taille de p est de 160 bits) . Dans cette deuxième variante, le signataire calcule r=r'+H(m)*y, le calcul s'effectuant sur les entiers et non modulo p. Comme le calcul d'une addition et d'une multiplication sur les entiers est plus rapide qu'une addition et une multiplication modulo p, la deuxième variant s'exécute plus rapidement. De plus, on peut montrer que le niveau de sécurité du schéma n'est pas modifié de façon significative si la taille de r' est suffisamment grande.
Le deuxième schéma de l'invention consiste en un schéma de signature basé sur l'heuristique Fiat-Shamir, mais avec le nouvel avantage que la preuve est « tight ».
Le schéma gardera toutefois la bonne propriété d'être « à la volée ».
L'invention utilise ainsi n'importe quel procédé d'identification sans divulgation d'information. Elle utilise aussi n'importe quel schéma de signature S, pour lequel il soit impossible pour un attaquant, étant donné k messages, de procéder à une forge sur l'un quelconque de ces messages. Enfin, l'invention utilise deux fonctions de hachage G et H.
Plus précisément, le deuxième schéma de l'invention est un schéma de signature à sécurité prouvé « tight » et « à la volée » destiné à un composant électronique, utilisant deux fonctions de hachage G et H, un procédé d'identification sans divulgation d'information ZK, donné sous la forme (GEN ZK, A, B, C) et un schéma de signature
S, donné sous la forme (GEN_S, SIGN_S, VER_S) , où • GEN_ZK est le procédé de génération de clé publique et privée de ZK ;
• A, B, C sont les fonctions définissant le protocole d'identification de ZK ;
• GEN_S est le procédé de génération de clé publique et privée de S ; • SIGN_S est le procédé de génération de signature de S ;
• VER_S est le procédé de vérification de signature de S ; ledit schéma de signature de l'invention est tel qu'il utilise les procédés suivants :
• GEN_INV est le procédé de génération de clé publique et privée, qui consiste à exécuter GEN_ZK et GEN_S • SIGN INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r et calculer x=A(r) ; o pré-calculer h=H(x) ; o pré-calculer la signature de h : z=SIGN_S (h) ; o calculer g=G(m, z) , où m est le message à signer, une fois celui-ci connu; o calculer y=B(s,g,r), et ainsi à obtenir la signature (z,y)
• VER_INV est le procédé de vérification de signature (z,y) du message m, et consiste à :
' calculer g=G(m, z) ; " calculer x=C(y,g) ;
' calculer h=H(x) ;
" vérifier que z est une signature valide de h à l'aide de VER_S.
Comme on peut le voir aisément, ce schéma est « à la volée », car les étapes premières de la signature (précisément, jusqu'au calcul de g non inclus) peuvent être faites sans connaître le message. Les étapes finales étant très rapides, le schéma est « à la volée ». Plus précisément, ces étapes peuvent être réalisées avant la connaissance du message m, car elles sont indépendantes de celui ci : par un tel procédé, le temps de la signature une fois le message reçu est grandement diminué.
On peut alors prouver que ce schéma possède une preuve de sécurité « tight », permettant de résoudre, en utilisant un attaquant du schéma, soit le problème sur lequel repose le procédé d'identification sans divulgation d'information, soit le problème sur lequel repose le schéma de signature S.
Un exemple non limitatif est celui où S est le RSA et où le procédé d'identification sans divulgation d'information est Poupard-Stern.
Plus précisément, une telle combinaison nous permet d'obtenir un schéma de signature utilisant le schéma Poupard-Stern comme étant le procédé d'identification sans divulgation d'information, et le schéma RSA, comme étant le schéma de signature, schéma de l'invention tel qu'il utilise les procédés suivants :
• GEN_INV est le procédé de génération de clé publique et clé secrète et consiste à : ' générer un paramètre a appelé base, 1 générer deux premiers p et q, tel que (p-1) et (q-1) soient premiers avec un exposant public e, et
1 retourner (n=p*q,e) comme clé publique, et (d=eA(-l) modulo (p-1) * (q-1) , s=n- (p-
I)* (q-1)) comme clé privée , la taille de s en bit étant connue, et notée I I s I I , ainsi que celle de la fonction de hachage G, notée I IgI I, R désignant la valeur maximale du nombre aléatoire dans le procédé de génération de signature ;
• SIGN INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r, entre 0 et
R, et calculer x=aAr modulo n ; o pré-calculer h=H(x) ; o pré-calculer la signature de h : z=hAd modulo n ; o calculer g=G(m, z) , où m est le message à signer, une fois celui-ci connu ; o calculer y=r+s*g et ainsi obtenir la signature (z,y) ;
• VER_INV est le procédé de vérification de signature (z,y) du message m, et consiste à :
1 calculer g=G(m, z) ;
' calculer x=aAy * aA (-n*g) modulo n ;
' calculer h=H(x) ; " vérifier que zAe = h modulo n et que y est dans le bon intervalle [0,R+2Λ(| |s| |+| |g| I)] .
Comme on peut le voir aisément, ce schéma est « à la volée », car les étapes premières de la signature
(précisément, jusqu'au calcul de g non inclus) peuvent être faites sans connaître le message, et donc avant la réception de celui ci, comme une étape de pré calcul. Les étapes finales étant très rapides, le schéma est « à la volée ».
La sécurité de ce schéma repose sur la difficulté de trouver une racine e-ieme modulo n. La preuve est « tight ».
Ce schéma permet donc de faire une variante du RSA, mais avec un caractère « à la volée ».
L'avantage en terme de vitesse est grand : le calcul en ligne (c'est à dire une fois reçu le message m) n'est qu'un calcul de haché et une multiplication. Au contraire, le RSA nécessite le calcul d'une exponentiation d'au moins 1024 bits. Ainsi, notre système est environ 1024 fois plus rapide que le RSA classique, tout en gardant la même sécurité « tight ».
Enfin, on remarquera qu'il est possible, comme dans le RSA, de définir d non pas modulo (p-1) (q-1) , mais modulo PPCM(p-1,q-1) , où PPCM est le plus petit commun multiple. Alors, ed=l modulo PPCM (p-1, q-1) . Le reste est inchangé.
Un autre exemple est celui où S est la signature de Rabin et où le procédé d'identification sans divulgation d'information est Poupard-Stern.
Plus précisément, une telle combinaison nous permet d'obtenir un schéma de signature qui utilise le schéma Poupard-Stern, comme étant le procédé d'identification sans divulgation d'information, et le schéma Rabin, comme étant le schéma de signature, tel que le schéma de signature utilise les procédés suivants :
• GEN_INV est le procédé de génération de clé publique et clé secrète et consiste à : " générer un paramètre a appelé base ;
1 générer deux premiers p et q ; 1 retourner n=p*q comme clé publique, et (p, q, s=n- (p-1) * (q-1) ) comme clé privée, la taille de s en bit étant connue, et notée | | s | | , ainsi que celle de la fonction de hachage G, notée I IgI I , R désignant la valeur maximale du nombre aléatoire dans le procédé de génération de signature ; • SIGN_INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r, entre 0 et
R, et calculer x=aAr modulo n o pré-calculer h=H(x) o pré-calculer, à l'aide de p et q, la signature z comme étant une racine carrée de h modulo n o calculer g=G(m, z) , où m est le message à signer, une fois celui-ci connu ; o calculer y=r+s*g et ainsi à obtenir la signature (z,y) • VER INV est le procédé de vérification de signature (z,y) du message m, et consiste à :
1 calculer g=G(m, z) ;
1 calculer x=aAy * aA (-n*g) modulo n ; 1 calculer h=H(x) ;
1 vérifier que zA2 = h modulo n et que y est dans le bon intervalle
[0,R+2Λ(| |s| |+| |g| I)] .
Comme on peut le voir aisément, ce schéma est « à la volée », car les étapes premières de la signature (précisément, jusqu'au calcul de g non inclus) peuvent être faites sans connaître le message, et donc avant la réception de celui ci, comme une étape de pré calcul. Les étapes finales étant très rapides, le schéma est « à la volée ».
La sécurité de ce schéma repose sur la difficulté de factoriser un grand nombre. La preuve est « tight ».
Ce schéma permet donc de faire une variante du RSA, mais avec un caractère « à la volée ». De même que pour l'exemple précédent, l'avantage en terme de vitesse est grand : le calcul en ligne n'est qu'un calcul de haché et une multiplication. Au contraire, le Rabin nécessite le long calcul d'une racine carré. Ainsi, notre système est environ 1024 fois plus rapide que le Rabin classique, tout en gardant la même sécurité « tight ».
Certaines variantes habituelles peuvent être appliquées à notre deuxième partie de l'invention.
Notamment, dans les procédés de vérification de nos deux exemples, la quantité alpha=aA (-n) modulo n peut être pré calculée, rendant ainsi le calcul de x plus rapide.
Cela nous donne les deux variantes suivantes :
La première variante consiste en un schéma de signature qui utilise le schéma Poupard-Stern comme étant le procédé d'identification sans divulgation d'information, et le schéma RSA comme étant le schéma de signature, tel que ce schéma selon la première variante utilise les procédés suivants
• GEN_INV est le procédé de génération de clé publique et privée et consiste à : " générer un paramètre a appelé base,
1 générer deux premiers p et q, tel que (p-1) et (q-1) soient premiers avec un exposant public e, et
1 retourner (n=p*q,e,alpha=aA (-n) modulo n) comme clé publique, et (d=eA(-l) modulo (p-1) * (q-1) , s=n- (p-1) * (q-1) ) comme clé privée, la taille de s en bit étant connue, et notée | | s | | , ainsi que celle de la fonction de hachage G, notée I IgI I, R désignant une valeur maximale du nombre aléatoire dans le procédé de génération de signature ;
• SIGN_INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r, entre 0 et R, et calculer x=aAr modulo n ; o pré-calculer h=H(x) ; o pré-calculer la signature de h : z=hAd modulo n ; o calculer g=G(m, z) , où m est le message à signer, une fois celui-ci connu; o calculer y=r+s*g, et ainsi à obtenir la signature (z,y) ;
• VER_INV est le procédé de vérification de signature (z,y) du message m, et consiste à :
1 calculer g=G(m, z) ;
1 calculer x=aAy * alphaAg modulo n ;
' calculer h=H(x) ;
1 vérifier que zAe = h modulo n et que y est dans le bon intervalle
[0,R+2A(| |s| |+| |g| I)] .
La seconde variante consiste en un schéma de signature qui utilise le schéma Poupard-Stern comme étant le procédé d'identification sans divulgation d'information, et le schéma Rabin, comme étant le schéma de signature, tel que ce schéma selon la seconde variante utilise les procédés suivants :
• GEN_INV est le procédé de génération de clé publique et clé secrète et consiste à : " générer un paramètre a appelé base ;
1 générer deux premiers p et q ; ' retourner (n=p*q,alpha=aA (-n) modulo n) comme clé publique, et (p,q, s=n- (p- l)*(q-l)) comme clé privée, la taille de s en bit étant connue, et notée
I I s I I , ainsi que celle de la fonction de hachage G, notée I IgI I, R désignant la valeur maximale du nombre aléatoire dans le procédé de génération de signature ;
• SIGN_INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r, entre 0 et
R, et calculer x=aAr modulo n o pré-calculer h=H(x) o pré-calculer, à l'aide de p et q, la signature z comme étant une racine carrée de h modulo n o calculer g=G(m, z) , où m est le message à signer, une fois celui-ci connu ; o calculer y=r+s*g et ainsi à obtenir la signature (z,y)
• VER_INV est le procédé de vérification de signature (z,y) du message m, et consiste : " calculer g=G(m, z) ;
1 calculer x=aAy * alphaAg modulo n ; 1 calculer h=H(x), et enfin " vérifier que zA2 = h modulo n et que y est dans le bon intervalle [0,R+2Λ(| |s| |+| |g| I)] .
De plus, la clé peut être compressée, c'est à dire stockée sous une forme prenant moins de place. Ainsi, on voit aisément dans l'exemple avec Rabin que s peut ne pas être stocké, mais directement recalculé à chaque utilisation par une simple soustraction.
De manière préférentielle, dans l'exemple avec le RSA, la clé privée est générée sous la forme :
(d=eΛ(-l) modulo (p-l)*(q-l), k=(e*d-l) / ( (p-1) * (q-1) ) ) , et dans lequel, au moment de la signature, s est recalculé par la formule s=n- (ed-1) /k.
k étant petit (car 0<=k<=e et e petit) , le stockage sous cette forme de la clé privée est d'autant moins coûteux en mémoire.
D'une autre manière préférentielle, dans l'exemple avec le Rabin, la clé privée est générée sous la forme :
(P,q) et dans lequel, au moment de la signature, s est recalculé par la formule s=p*q- (p-1) * (q-1) .
Il est à noter que dans le RSA, de manière préférentielle, d est défini comme : d=eA(-l) modulo PPCM(p-l,q-1) . Dans le RSA, d'une autre manière préférentielle, d est défini commme : d=eA(-l) modulo u*PPCM(p-1,q-1) , où u est un nombre entier positif non nul.
Etant parfaitement généralistes, toutes les variantes de cette deuxième partie de l'invention ne peuvent être décrites en détail. On citera notamment l'utilisation possible des signatures RSA, Rabin, Paillier, El Gamal, Goh-Jarecki comme signature S ; parallèlement, on citera l'utilisation possible des procédés d'identification sans divulgation d'information Fiat-Shamir, Poupard-Stern, Girault-Poupard-Stern.
La signature de Paillier est décrite « Public-key cryptosystems based on composite degree residuosity classes », Proceedings of EUROCRYPT 99.
La signature El Gamal est décrite « A public key cryptosystem and a signature scheme based on discrète logarithms", IEEE Transactions on Information Theory}, 1985.
De plus, la signature de Goh-Jarecki est décrite dans « A signature scheme as secure as the Diffie-Hellman problem », Proceedings of EUROCRYPT 03.
En outre, les deux schémas à sécurité prouvé « tight » et « à la volée » destiné à un composant électronique de cette invention sont mis en oeuvre un composant électronique portable du type carte à puce. Enfin, le calcul de ces deux schémas s'effectue sur un module TPM pour « Trusted Platform Module » installé dans un PC non sécurisé.

Claims

REVENDICATIONS
1. Schéma de signature à sécurité prouvé « tight » et « à la volée » destiné à un composant électronique caractérisé en ce que le schéma de signature utilise les procédés suivants :
GEN_NOU est le procédé de génération de la clé publique et privée selon le schéma de signature de Boneh et Boyen,
SIGN_NOU est le procédé de génération de signature d'un message m à signer et consiste à :
1) générer un aléa r' compris entre 0 et p-1, l'entier p étant un paramètre du schéma ;
2) pré-calculer le point s=l/ (x+y*r' ) .Gl, le point Gl étant un générateur de la courbe elliptique El, le point Gl et la courbe elliptique Gl étant deux paramètres du schéma, les entiers x et y formant la clef privée du schéma ; 3) calculer, une fois le message m connu, l'entier r=r'-H(m)/y modulo p ; 4) renvoyer la signature (s,r) ;
VER_NOU est le procédé de vérification selon le schéma de signature de Boneh et Boyen.
2. Schéma de signature selon la revendication 1, caractérisé en ce que le signataire possède en mémoire l'entier y'=-l/y modulo p, dans lequel l'étape 3) de la génération de la signature selon la revendication 1 est remplacée par l'étape suivante : 3') calculer une fois le message m connu l'entier r=r'+H (m) *y modulo p.
3. Schéma de signature selon la revendication 1, caractérisé en ce que l'étape 1) de la génération de la signature est remplacée par l'étape :
l'') générer un aléa compris entre 0 et B, l'entier B étant un paramètre du système choisi très supérieur à p,
et tel que l'étape 3) de la génération de la signature est remplacée par l'étape suivante :
3'') calcule une fois le message m connu l'entier r=r'+H(m) *y
4. Schéma de signature à sécurité prouvé « tight » et « à la volée » destiné à un composant électronique, utilisant deux fonctions de hachage G et H, un procédé d'identification sans divulgation d'information ZK, donné sous la forme (GEN_ZK, A, B, C) et un schéma de signature S, donné sous la forme (GEN_S, SIGN_S, VER_S) , où
• GEN_ZK est le procédé de génération de clé publique et privée de ZK,
• A, B, C sont les fonctions définissant le protocole d'identification de ZK
• GEN_S est le procédé de génération de clé publique et privée de S • SIGN_S est le procédé de génération de signature de S • VER_S est le procédé de vérification de signature de S caractérisé en ce que le schéma de signature utilise les procédés suivants : • GEN INV est le procédé de génération de clé publique et privée, qui consiste à exécuter GEN_ZK et GEN_S
• SIGN INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r et calculer x=A(r) ; o pré-calculer h=H(x) ; o pré-calculer la signature de h : z=SIGN_S (h) ; o calculer g=G(m, z), où m est le message à signer, une fois celui-ci connu; o calculer y=B(s,g,r), et ainsi à obtenir la signature (z,y)
• VER_INV est le procédé de vérification de signature (z,y) du message m, et consiste à :
' calculer g=G(m, z) ;
1 calculer x=C(y,g) ;
1 calculer h=H(x) ;
" vérifier que z est une signature valide de h à l'aide de VER_S.
5. Schéma de signature, selon la revendication 4, caractérisé en ce qu'il utilise le schéma Poupard-Stern comme étant le procédé d'identification sans divulgation d'information, et le schéma RSA, comme étant le schéma de signature tel qu'il utilise les procédés suivants : • GEN INV est le procédé de génération de clé publique et clé secrète et consiste à :
1 générer un paramètre a appelé base, 1 générer deux premiers p et q, tel que (p-1) et (q-1) soient premiers avec un exposant public e, et
' retourner (n=p*q,e) comme clé publique, et (d=eΛ(-l) modulo (p-1) * (q-1) , s=n- (p- I)* (q-1)) comme clé privée , la taille de s en bit étant connue, et notée
I I s I I , ainsi que celle de la fonction de hachage G, notée I IgI I, R désignant la valeur maximale du nombre aléatoire dans le procédé de génération de signature ; • SIGN INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r, entre 0 et
R, et calculer x=aAr modulo n ; o pré-calculer h=H(x) ; o pré-calculer la signature de h : z=hAd modulo n ; o calculer g=G(m, z), où m est le message à signer, une fois celui-ci connu ; o calculer y=r+s*g et ainsi obtenir la signature (z,y) ;
• VER_INV est le procédé de vérification de signature (z,y) du message m, et consiste à :
' calculer g=G(m, z) ;
1 calculer x=aAy * aA (-n*g) modulo n ; " calculer h=H(x) ; " vérifier que zAe = h modulo n et que y est dans le bon intervalle [0,R+2Λ(| |s| |+| |g| I)] .
6. Schéma de signature selon la revendication 4, caractérisé en ce qu'il utilise le schéma Poupard-Stern comme étant le procédé d'identification sans divulgation d'information, et le schéma RSA comme étant le schéma de signature, tel qu'il utilise les procédés suivants • GEN INV est le procédé de génération de clé publique et privée et consiste à :
1 générer un paramètre a appelé base, 1 générer deux premiers p et q, tel que (p-1) et (q-1) soient premiers avec un exposant public e, et
' retourner (n=p*q,e,alpha=aA (-n) modulo n) comme clé publique, et (d=eA(-l) modulo (p-1) * (q-1) , s=n- (p-1) * (q-1) ) comme clé privée, la taille de s en bit étant connue, et notée | | s | | , ainsi que celle de la fonction de hachage G, notée I |g| I, R désignant une valeur maximale du nombre aléatoire dans le procédé de génération de signature ; • SIGN_INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r, entre 0 et
R, et calculer x=aAr modulo n ; o pré-calculer h=H(x) ; o pré-calculer la signature de h : z=hAd modulo n ; o calculer g=G(m, z), où m est le message à signer, une fois celui-ci connu; o calculer y=r+s*g, et ainsi à obtenir la signature (z,y) ; • VER_INV est le procédé de vérification de signature (z,y) du message m, et consiste à : 1 calculer g=G(m, z) ;
1 calculer x=aAy * alphaAg modulo n ; ' calculer h=H(x) ; " vérifier que zAe = h modulo n et que y est dans le bon intervalle [0,R+2Λ(| |s| |+| |g| I)] .
7. Schéma de signature selon la revendication 4, caractérisé en ce qu'il utilise le schéma Poupard-Stern, comme étant le procédé d'identification sans divulgation d'information, et le schéma Rabin, comme étant le schéma de signature, tel qu'il utilise les procédés suivants :
• GEN_INV est le procédé de génération de clé publique et clé secrète et consiste à :
' générer un paramètre a appelé base ;
1 générer deux premiers p et q ;
1 retourner n=p*q comme clé publique, et (p,q, s=n- (p-1) * (q-1) ) comme clé privée, la taille de s en bit étant connue, et notée I I s I I , ainsi que celle de la fonction de hachage G, notée I IgI I , R désignant la valeur maximale du nombre aléatoire dans le procédé de génération de signature ;
• SIGN_INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r, entre 0 et
R, et calculer x=aAr modulo n o pré-calculer h=H(x) o pré-calculer, à l'aide de p et q, la signature z comme étant une racine carrée de h modulo n o calculer g=G(m, z), où m est le message à signer, une fois celui-ci connu ; o calculer y=r+s*g et ainsi à obtenir la signature (z,y)
• VER_INV est le procédé de vérification de signature (z,y) du message m, et consiste à : 1 calculer g=G(m, z) ;
1 calculer x=aAy * aA (-n*g) modulo n ; " calculer h=H(x) ;
1 vérifier que zA2 = h modulo n et que y est dans le bon intervalle [0,R+2A(| |s| |+| |g| I)] .
8. Schéma de signature selon la revendication 4 caractérisé en ce qu'il utilise le schéma Poupard-Stern comme étant le procédé d'identification sans divulgation d'information, et le schéma Rabin, comme étant le schéma de signature, tel qu'il utilise les procédés suivants : • GEN_INV est le procédé de génération de clé publique et clé secrète et consiste à : ' générer un paramètre a appelé base ; ' générer deux premiers p et q ; 1 retourner (n=p*q,alpha=aA (-n) modulo n) comme clé publique, et (p,q, s=n- (p- l)*(q-l)) comme clé privée, la taille de s en bit étant connue, et notée | | s | | , ainsi que celle de la fonction de hachage G, notée I IgI I, R désignant la valeur maximale du nombre aléatoire dans le procédé de génération de signature ; • SIGN_INV est le procédé de génération de signature, et consiste à : o générer un nombre aléatoire r, entre 0 et
R, et calculer x=aAr modulo n o pré-calculer h=H(x) o pré-calculer, à l'aide de p et q, la signature z comme étant une racine carrée de h modulo n o calculer g=G(m, z), où m est le message à signer, une fois celui-ci connu ; o calculer y=r+s*g et ainsi à obtenir la signature (z,y) • VER INV est le procédé de vérification de signature (z,y) du message m, et consiste :
1 calculer g=G(m, z) ; " calculer x=aAy * alphaAg modulo n ;
1 calculer h=H(x), et enfin
1 vérifier que zA2 = h modulo n et que y est dans le bon intervalle [0,R+2A(| |s| |+| |g| I)] .
9. Schéma de signature selon la revendication 5 ou 6, caractérisé en ce que la clé privée est générée sous la forme :
(d=eA(-l) modulo (p-l)*(q-l), k=(e*d-l) / ( (p-1) * (q-1) ) ) , et dans lequel, au moment de la signature, s est recalculé par la formule s=n- (ed-1) /k.
10. Schéma de signature selon la revendication 7 ou 8, caractérisé en ce que la clé privée est générée sous la forme : (p,q) et dans lequel, au moment de la signature, s est recalculé par la formule s=p*q- (p-1) * (q-1) .
11. Schéma de signature selon la revendication 4, caractérisé en ce que le procédé d'identification sans divulgation d' information est un des procédés suivants : Fiat-Shamir, Poupard-Stern, Girault-Poupard-Stern, et en ce que le schéma de signature est un des schémas de signature suivants : RSA, Rabin, Paillier, El Gamal, Goh- Jarecki.
12. Schéma de signature selon l'une des revendications revendication 5 ou 6, dans lequel d est défini comme : d=eA(-l) modulo PPCM(p-1,q-1) .
13. Schéma de signature selon l'une des revendications revendication 5 ou 6, dans lequel d est défini commme : d=eA(-l) modulo u*PPCM(p-1,q-1) , où u est un nombre entier positif non nul.
14. Schéma de signature à sécurité prouvé « tight » et « à la volée » destiné à un composant électronique selon l'une quelconque des revendications précédentes caractérisé en ce que le schéma de signature s'effectue sur un composant électronique portable.
15. Schéma de signature selon la revendication 14 caractérisé en ce que le composant électronique portable est une carte à puce.
16. Schéma de signature l'une quelconque des revendications 1 à 3, caractérisé en ce que le calcul s'effectue sur un module TPM pour « Trusted Platform Module » installé dans un PC non sécurisé.
PCT/EP2005/054308 2004-09-01 2005-09-01 Procede de generation de signature a la volee avec preuve de securite Ceased WO2006045660A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR04/51953 2004-09-01
FR0451953A FR2874770B1 (fr) 2004-09-01 2004-09-01 Procede de generation de signature a la volee avec preuve de securite

Publications (2)

Publication Number Publication Date
WO2006045660A2 true WO2006045660A2 (fr) 2006-05-04
WO2006045660A3 WO2006045660A3 (fr) 2006-08-24

Family

ID=34950482

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/054308 Ceased WO2006045660A2 (fr) 2004-09-01 2005-09-01 Procede de generation de signature a la volee avec preuve de securite

Country Status (2)

Country Link
FR (1) FR2874770B1 (fr)
WO (1) WO2006045660A2 (fr)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BONEH D; BOYEN X: "Short signatures without random oracles" ADVANCES IN CRYPTOLOGY - EUROCRYPT 2004. SPRINGER VERLAG (LECTURE NOTES IN COMPUT. SCI.), vol. 3027, 6 mai 2004 (2004-05-06), pages 56-73, XP002322454 INTERLAKEN, SWITZERLAND ISBN: 3-540-21935-8 cité dans la demande *
CHEVALLIER-MAMES, BENOÎT: "An Efficient CDH-based Signature Scheme with a Tight Security Reduction" CRYPTOLOGY EPRINT ARCHIVE, REPORT 2005/035, [Online] 15 février 2005 (2005-02-15), pages 1-19, XP002322453 Extrait de l'Internet: URL:http://eprint.iacr.org/2005/035> [extrait le 2005-03-24] *
POUPARD G ET AL: "ON THE FLY SIGNATURES BASED ON FACTORING" 6TH. ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY. SINGAPORE, NOV. 2 - 4, 1999, ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, NEW YORK, NY : ACM, US, 2 novembre 1999 (1999-11-02), pages 37-45, XP001054520 ISBN: 1-58113-148-8 cité dans la demande *
SHAMIR A , TAUMAN Y: "IMPROVED ONLINE/OFFLINE SIGNATURE SCHEMES" ADVANCES IN CRYPTOLOGY. CRYPTO 2001. 21ST ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE, SANTA BARBARA, CA, AUG. 19 - 23, 2001. PROCEEDINGS, LECTURE NOTES IN COMPUTER SCIENCE ; VOL. 2139, BERLIN : SPRINGER, DE, 19 août 2001 (2001-08-19), pages 355-367, XP000988709 ISBN: 3-540-42456-3 cité dans la demande *

Also Published As

Publication number Publication date
FR2874770B1 (fr) 2006-11-03
FR2874770A1 (fr) 2006-03-03
WO2006045660A3 (fr) 2006-08-24

Similar Documents

Publication Publication Date Title
FR2759226A1 (fr) Protocole de verification d&#39;une signature numerique
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
Lepoint Design and implementation of lattice-based cryptography
EP0818094A1 (fr) Procede de communication cryptographique asymetrique, et objet portatif associe
WO2010081980A1 (fr) Codage de points d&#39;une courbe elliptique
JP2004516506A (ja) 鍵ペア決定およびrsa鍵生成のための方法並びに装置
EP1145483B1 (fr) Procede d&#39;authentification ou de signature a nombre de calculs reduit
US7912216B2 (en) Elliptic curve cryptosystem optimization using two phase key generation
EP0801480B1 (fr) Procédé d&#39;identification et/ou de signature
EP0963638B1 (fr) Procede de signature numerique
FR2793366A1 (fr) Protocole de signature numerique a largeur de bande reduite
FR2752122A1 (fr) Procede d&#39;authentification a nombre reduit de bits transmis
EP0666664B1 (fr) Procédé de signature numérique et d&#39;authentification de messages utilisant un logarithme discret avec un nombre réduit de multiplications modulaires
EP0909495A1 (fr) Procede de cryptographie a cle publique
EP0980607A1 (fr) Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d&#39;aleas
WO2006045660A2 (fr) Procede de generation de signature a la volee avec preuve de securite
EP2587716A1 (fr) Procédé de signature cryptographique de messages, procédé de vérification de signature et dispositifs de signature et de vérification correspondants
WO2007065468A1 (fr) Procédé de génération de signature avec preuve de sécurité &#39;tight&#39;, procédé de vérification et schéma de signature associés basés sur le modèle de diffie-hellman
FR2827723A1 (fr) Procede pour effectuer une tache cryptographique au moyen d&#39;une cle publique
FR2797127A1 (fr) Schemas de signature a base de logarithme discret avec reconstitution partielle ou totale du message
Frolov Effective Oblivious Transfer Using a Probabilistic Encryption
FR2842968A1 (fr) Procede d&#39;obtention d&#39;une signature electronique possedant une garantie sur sa securite
WO2007042419A1 (fr) Procede cryptographique mettant en oeuvre un systeme de chiffrement base sur l&#39;identite
FR3070517A1 (fr) Systeme et procede d&#39;authentification et de signature numerique
Song et al. A distributed E-Business system based on conic curve

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BW BY BZ CA CH CN CO CR CU CZ DK DM DZ EC EE EG ES FI GB GD GE GM HR HU ID IL IN IS JP KE KG KM KR KZ LC LK LR LS LT LU LV MA MG MK MN MW MX MZ NA NG NI NZ OM PG PH PL PT RO RU SC SD SE SK SL SM SY TJ TM TN TR TT TZ UA US UZ VC VN YU ZA ZM

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SZ TZ UG ZM ZW AM AZ BY KG MD RU TJ TM AT BE BG CH CY DE DK EE ES FI FR GB GR HU IE IS IT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW MR NE SN TD TG

NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase