WO2007057610A1 - Systeme et procede cryptographique d'authentification ou de signature - Google Patents

Systeme et procede cryptographique d'authentification ou de signature Download PDF

Info

Publication number
WO2007057610A1
WO2007057610A1 PCT/FR2006/051183 FR2006051183W WO2007057610A1 WO 2007057610 A1 WO2007057610 A1 WO 2007057610A1 FR 2006051183 W FR2006051183 W FR 2006051183W WO 2007057610 A1 WO2007057610 A1 WO 2007057610A1
Authority
WO
WIPO (PCT)
Prior art keywords
equations
entity
tuple
sub
secret
Prior art date
Application number
PCT/FR2006/051183
Other languages
English (en)
Inventor
Marc Girault
Aline Gouget
Jacques Patarin
Original Assignee
France Telecom
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 France Telecom filed Critical France Telecom
Publication of WO2007057610A1 publication Critical patent/WO2007057610A1/fr

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Definitions

  • the invention relates to the field of public key multivariable cryptography between two entities. More specifically, the invention relates to the use of a cryptographic scheme for, on the one hand, the authentication of a prover or a message to a verifier and, on the other hand, the signature of a message by a signatory that is verifiable by any other entity.
  • an entity that wishes to authenticate or sign a message has a secret key and an associated public key.
  • Protocol security is usually based on the difficulty of factoring large integers or the difficulty of calculating a discrete logarithm in a finite field. Both of these problems are commonly accepted as difficult problems.
  • multivariate public key cryptography is a serious alternative to factorization-based or discrete logarithmic systems.
  • the security of multivariable cryptographic schemes is based on the difficulty of solving a system of polynomial equations.
  • the problem of solving on a finite field K of a system of polynomial equations of degree d is a mathematically difficult problem as soon as d ⁇ 2.
  • the problem is to find a solution xeK "of a system of equations of form:
  • Diagram C * and the basic "oil and vinegar" scheme are not safe if used as is.
  • one or more disturbances to the basic schema are applied.
  • V-disturbance involves a modification that involves introducing new variables called vinegar variables into the system of public equations so that there is no two-degree term corresponding to the product of two. vinegar variables.
  • This perturbation is described in European patent EP1049289 and is applied to the basic “oil and vinegar” schemes to construct the "unbalanced oil and vinegar” scheme (Unbalanced OH and Vinegar) and to the HFE scheme to construct a scheme called HFE-V. .
  • the major disadvantage of this disturbance is increasing the number of variables that implies an increase in the amount of data to be stored.
  • a validation step enabling authentication of said second entity or said message or verification of said signature as soon as said input m-tuple Y and output tuple X satisfy at least a predetermined number ⁇ d; equations belonging to said public system, with ⁇ strictly less than said number m.
  • the computation of said output tuple X corresponding to said input m-tuple Y comprises the following steps: modification of a predetermined number ⁇ of data of said input m-tuple forming a modified input m-tuple Y ', said predetermined number ⁇ being strictly between 0 and n,
  • the value of at least one input m-tuplet Y is changed randomly.
  • it reduces the leakage of information related to the secret key.
  • each of the perturbation polynomials gi (x lr ... x n ) presents a probability greater than its value is null than non-zero when the values of its variables (x lf ... x n ) are chosen randomly.
  • the polynomials ⁇ and hj of said initial and public secret systems of equations are quadratic and each of the perturbation polynomials gj (xi, ... x n ) comprises a sum of terms of the form L ⁇ x x , ..., x n ) .L; ⁇ x x , ..., x n ) where Z, 0,, ..., X n ) and Z, '(x,, ..., x n ) are linear forms.
  • the polynomials have fewer coefficients, which reduces the amount of data to be stored and the calculation time.
  • the public system of m equations can be partitioned into h public subsystems of mi equations, where l ⁇ h ⁇ m and
  • ⁇ m, m, such that for any integer / between 1 and h we have at least ⁇ , equations of / 77, equations that are satisfied by said input m-tuple Y and output tuple X, with ⁇ , strictly less than m,.
  • the invention also relates to a cryptographic system comprising a first entity and a second entity in which said first entity authenticates said second entity or a message sent by said second entity, or verifies the electronic signature of a message sent by said second entity, said first entity comprising a storage means comprising a public key corresponding to a public system of m polynomial equations with n unknown to the form:
  • said secret key comprises said initial secret system of equations, said inversion flap and said system disturbance secret.
  • the second entity is a signer signing a message by an electronic signature and the first entity is a verifier verifying the validity of said electronic signature.
  • the second entity is a prover and the first entity is a verifier verifying the authenticity of the prover or message.
  • the invention also relates to a computer program comprising code instructions for the implementation of a cryptographic method as briefly described above.
  • the invention provides a data storage means comprising computer program code instructions for executing the steps of a cryptographic method as briefly described above.
  • FIG 1 is a schematic view of a system cryptographic device comprising a first entity and a second entity, according to the invention
  • FIGS. 2 and 3 are examples of applications of FIG. and FIG. 4 is a flowchart illustrating steps for calculating an output tuple according to the invention.
  • FIG. 1 illustrates an example of a cryptographic system 1 comprising a first entity 3 and a second entity 5.
  • the first entity 3 comprises a first storage means 7 and a verifier means 9 and the second entity 5 comprises a second storage means 11 and a processing means 13.
  • the first storage means 7 comprises a public key 15 and the second storage means 11 comprises a secret key
  • This cryptographic system 1 allows the first entity 3 to authenticate the second entity 5 or a message sent by the second entity 5, or verifies the electronic signature of a message sent by the second entity 5.
  • the input m-tuple Y may represent information originating from the first entity or a message received by the first entity 3 from the second entity 5 or a message whose signature is to be verified received by the first entity 3 from the second entity 5.
  • the verifier means 9 of the first entity 3 is able to validate the authentication of the second entity or the message or the verification of the signature of the message, since the input m-tuple Y and n-tuple output X satisfy the predetermined number a of equations belonging to the public system, with ⁇ strictly less than the number m of equations.
  • the second entity 5 is a signatory signing a message by an electronic signature and the first entity 3 is a verifier verifying the validity of this signature. Indeed, FIG.
  • the second entity 5 or signer sends the input m-tuple Y and the output tuple X to the first entity 3 or verifier.
  • the input m-tuple Y (e ⁇ , ..., e m ) represents the message to be signed, or more precisely the
  • the output tuple X (s ⁇ , ..., s n ) constitutes the authentication value of the message allowing the first entity 3 to authenticate the message received, that is to say from verify that it comes from the second entity 5, and verify the integrity, that is to say, to verify that the message has not been changed during transmission.
  • the second entity 5 is a prover and the first entity 3 is a verifier verifying the authenticity of the prover. Indeed, FIG.
  • the first entity 3 is a verifier which can be any entity having a public key.
  • the first entity 3 may be a computer or a smart card connected to the first entity 5 via a card reader.
  • the second entity 5 may be a computer or any equipment with a public key and associated secret key.
  • each of the first and second entities may comprise for example in its storage means a computer program comprising code instructions for implementing the cryptographic method according to the invention.
  • an authentication or a signature is considered valid when all the equations of a public system of equations are verified.
  • the method used to construct the public key or public system of equations A may advantageously consist in constructing a secret system of equations B such that it is possible to construct a trap
  • the polynomials g ⁇ (xi, ... x n ) are functions which, (at least for certain values of / and in general for most or all the values of /) have outputs that take more often the value 0 than the average when the values (x lr .. x n ) are drawn randomly.
  • the output value "0" is more likely than the other output values.
  • the output value "0" is more likely than the output value "1".
  • the public system of m equations can be partitioned into h public subsystems of m equations. That is, for a fixed integer h such that 1 ⁇ h ⁇ m, the equations of the public system A are partitioned into h sets of equations A 1 , A 2 , ..., Ah.
  • FIG. 4 is a flowchart illustrating the calculation steps performed by the processing means 13 for calculating the output tuple X corresponding to the input m-tuple Y.
  • step E0 the second entity 5 has an input m-tuple Y sent by the first entity 3 (the verifier), or corresponding to a message to be authenticated or to a message to be signed (or to the digest of the message to sign).
  • step E1 the processing means 13 of the second entity 5 (prover) modifies a predetermined number ⁇ of data of the input m-tuple to form a modified input m-tuple Y '.
  • the predetermined number ⁇ is a positive integer fixed strictly between 1 and n.
  • the modification or the choice of the positions of the modified data of said input m-tuplet Y may be performed randomly.
  • the cryptographic system is designed so that if the input m-tuple is input twice, then the same output tuple X is obtained twice; for example, the same hazards will be generated each time during the calculations.
  • step E2 the processing means 13 of the second entity 5 calculates by means of the secret key an intermediate output tuple X 'corresponding to the modified input m-tuple Y' satisfying the initial secret system B equations.
  • the processing means 13 computes an intermediate output tuple X' such that, for any integer / between 1 and m,
  • step E3 is a test that checks whether the intermediate output tuple X 'satisfies at least ⁇ equations of the public system of equations. If this is the case, then we go to step E5 where the intermediate output tuple X 'is chosen as the output tuple X which is then transmitted to the first entity 3.
  • step E3 determines whether the outcome of the test of step E3 is negative, then it loops back to step E1 to start again with another change of ⁇ positions.
  • the output tuple X can be obtained very quickly if the sufficiently small value ⁇ is chosen.
  • can be zero but it is advantageous to choose for ⁇ a non-zero value in order to avoid that the initial secret system B can be deduced from public system A and various couples (X, Y) obtained during the operation of the signature or authentication process.
  • the test in step E4 is checked for each value of ⁇ .
  • the method according to the invention can be considered as a probabilistic method since the choice of the equations which are disturbed during the calculations made from the secret key is independent of the secret key. Indeed, it is not necessary to use a deterministic algorithm to choose the perturbed equations as long as the following condition is true: if the prover has to answer a challenge that he has previously answered, then he must send the same answer only the first time. However, in practice we will use a deterministic pseudo-random algorithm ⁇ Le, non predictable) that depends on the message to be signed or the challenge.
  • the verifier When the authentication is successful (or the valid signature), the verifier knows that the equations that are not verified were involved in the perturbation that was applied during the calculation phase performed with the secret key. On the other hand, for each verified equation, it must not be easy to decide whether or not this equation is involved in the perturbation.
  • /: (/,, ..., / ",), and Test the trapdoor to invert system B.
  • x n contains a sum of terms of the form Z, (* ,, ..., * ") • Z, 'O 1 , ... , * ")
  • Z I , ..., Z m , Z, ', ..., Z m ' are 2m linear forms in the variables
  • the secret system B can be defined from the following way.
  • K GF (2) and ⁇ an isomorphism between K_ and the vector space of dimension n denoted K ".
  • the ⁇ positions can be chosen from a deterministic pseudo-random algorithm that depends solely on K.
  • the verification by the first entity 3 (the verifier) of the authentication value (respectively, the signature) X (s ⁇ , ..., s n ) consists in verifying that there are at least one equations among the m equations of the public key A that are verified.
  • the disruption "-" consists of not making public some of the equations that were initially part of the public key.
  • the system B is a set of m equations chosen from among the n equations of a set of equations B 'associated with the function: x ⁇ UoFo s ( ⁇ ).
  • the functions S ⁇ 1 and CT 1 are computable since 5 and U are two affine functions.
  • the hatch T consists of the two functions affine 5 and U.
  • the generation from a m-tuple Y (e ] , ..., e m ), of an authentication value or of a signature
  • X (s x , ..., S n ) is identical to the previous example. Likewise for checking this authentication or signature value.
  • the set B is a quadratic equation with coefficients in K containing no quadratic term of the form ⁇ t ⁇ ⁇ where i ⁇ j.
  • the processing means 13 randomly chooses the values of the variables b x , ...., b n / ; these values are chosen
  • the processing means 13 calculates the values ⁇ ,, ...., ⁇ n /
  • the processing means 13 If no solution is found, the processing means 13 generates new values for the variables b x , ...., b n ,.
  • Y (e x , ..., e m ), the verification by the first entity 3 (the verifier) of the authentication value (respectively, the signature)
  • X (s x , ..., s n ) it consists in verifying that there are at least one equations among the m equations of the public key A that are verified.

Landscapes

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

Abstract

L'invention concerne un système et un procédé cryptographique dans lequel une première entité (3) authentifie une seconde entité (5) ou un message expédié par ladite première entité, ou vérifie la signature électronique d'un message expédié par ladite première entité, le procédé comportant les étapes suivantes : - utilisation d'une clé publique correspondant à un système public de m équations polynomiales à n inconnues de la forme : Yi = hi,(X1,...Xn) pour 1≤ i ≤ m, où x1 ,...,xn ,y1,...,ym sont des variables dans un corps fini K1 et où les hi, sont des polynômes de degré supérieur ou égal à deux, à coefficients dans le corps fini K, - utilisation d'une clé secrète permettant pour tout m-uplet d'entrée Y formé de données d'entrée (y1 = e1,...,ym = em) représentatif d'une information émanant de ladite première entité ou représentatif du message à authentifier ou à signer de calculer un n-uplet de sortie X formé de données de sortie (x1 = s1 ,...,xn = sn) correspondant audit m-uplet Y en vertu desdites équations polynomiales, et - une étape de validation permettant l'authentification de ladite seconde entité ou dudit message ou la vérification de ladite signature dès lors que lesdits m-uplet d'entrée Y et n-uplet de sortie X satisfont à au moins un nombre prédéterminé α d'équations appartenant audit système public, avec α strictement inférieur audit nombre m.

Description

Titre de l'invention
Système et procédé cryptographique d'authentification ou de signature.
Domaine technique de l'invention
L'invention se rapporte au domaine de la cryptographie multivariable à clé publique entre deux entités. Plus précisément, l'invention concerne l'utilisation d'un schéma cryptographique permettant, d'une part, Pauthentification d'un prouveur ou d'un message auprès d'un vérifieur et, d'autre part, la signature d'un message par un signataire qui est vérifiable par n'importe quelle autre entité. Dans de tels procédés, une entité qui souhaite s'authentifier ou signer un message possède une clé secrète et une clé publique associée.
Arrière-plan de l'invention
La sécurité des protocoles cryptographiques à clé publique repose sur la difficulté de résoudre certaines classes de problèmes. La sécurité des protocoles reposent généralement sur la difficulté de factoriser de grands entiers ou sur la difficulté de calculer un logarithme discret dans un corps fini. Ces deux problèmes sont couramment admis comme étant des problèmes difficiles.
Les techniques de cryptanalyse pour factoriser le produit de deux grands entiers ou retrouver un logarithme discret dans un corps fini sont de plus en plus efficaces. Les tailles des paramètres utilisés dans les schémas cryptographiques évoluent à mesure que les techniques de cryptanalyse s'améliorent. En conséquence, les quantités de données à stocker augmentent considérablement et il n'est plus possible d'utiliser les systèmes usuels dans un contexte applicatif où les ressources sont très limitées. De plus, l'évolution des techniques de cryptanalyse montre qu'il devient de plus en plus important de considérer de nouveaux problèmes difficiles.
Actuellement, la cryptographie à clé publique multivariable est une alternative sérieuse aux systèmes basés sur la factorisation ou sur le calcul de logarithme discret. La sécurité des schémas cryptographiques multivariables repose sur la difficulté de résoudre un système d'équations polynomiales. Le problème de la résolution sur un corps fini K d'un système d'équations polynomiales de degré d est un problème mathématiquement difficile dès que d ≥ 2 . Le problème consiste à trouver une solution xeK" d'un système d'équations de la forme :
Figure imgf000004_0001
Où, pourl ≤ i ≤ m, pi est de degré d, et y=(yi,...ym) ^K"1 est fixé.
Pour utiliser un système d'équations polynomiales dans un schéma à clé publique, il est nécessaire d'introduire une "trappe" (outil d'inversion). En effet, étant donné un système d'équations quadratiques, il doit être possible d'inverser ce système à partir de la connaissance d'un secret, c'est-à-dire, de la connaissance de la trappe. En revanche, sans la connaissance de la trappe, il ne doit pas être possible d'inverser le système. Un premier exemple d'un schéma à clé publique multivariable est appelé HFE et est décrit par J. Patarin, dans l'article "///σtofe/7 Fields Equations (HFE) and Isomorphisms of Polynomials: two new familles of asymmetric algorithms" publié en 1996 dans Eurocrypt 96, LNCS, pages 33-48. Ce schéma HFE nécessite de prendre une taille des paramètres assez grande ce qui augmente la quantité de données à stocker. Un deuxième exemple est un schéma appelé C* décrit par T. Matsumoto et al., dans l'article "Public Quadratic Polynomial-tuples for Efficient Signature Vérification and Message-Encryption" publié en 1988 dans EUROCRYPT 88, volume 330 LNCS, pages 419-453. Un troisième exemple est un schéma appelé « huile et vinaigre » {OU and Vinegar) présenté par Jacques Patarin dans le cadre du colloque en cryptographie qui a eu lieu à Dagstuhl en septembre 1997. Une extension de ce schéma est le schéma « Unbalanced OiI and Vinegar» qui est décrit par A. Kipnis et J. Patarin dans l'article "Unbalanced OiI and Vinegar Signature Schemes" publié en 1999 dans Eurocrypt 99.
Le schéma C* et le schéma « huile et vinaigre » de base ne sont pas sûrs s'ils sont utilisés tels quels. Ainsi, afin de construire un schéma multivariable sûr à partir d'un schéma multivariable de base, il est appliqué une ou plusieurs perturbations au schéma de base.
En effet, on connaît une perturbation appelée « perturbation moins (-)» qui consiste à garder secrètes certaines équations polynomiales du système d'équations qui étaient normalement destinées à être publiques. Cette perturbation appliquée au schéma de base C* fournit un schéma considéré actuellement comme sûr, lorsque les tailles des paramètres sont convenablement choisies.
Une autre perturbation, appelée « perturbation V », concerne une modification qui consiste à faire intervenir de nouvelles variables appelées variables de vinaigre dans le système d'équations public de sorte qu'il n'existe aucun terme de degré deux correspondant au produit de deux variables de vinaigre. Cette perturbation est décrite dans le brevet européen EP1049289 et elle est appliquée aux schémas de base « huile et vinaigre » pour construire le schéma « huile et vinaigre déséquilibré » {Unbalanced OH and Vinegar) et au schéma HFE pour construire un schéma appelé HFE-V. L'inconvénient majeur de cette perturbation est l'augmentation du nombre de variables qui implique une augmentation de la quantité de données à stocker.
Objet et résumé de l'invention La présente invention concerne un procédé cryptographique dans lequel une première entité authentifie une seconde entité ou un message expédié par ladite première entité, ou vérifie la signature électronique d'un message expédié par ladite première entité, le procédé comportant les étapes suivantes : - utilisation d'une clé publique correspondant à un système public de m équations polynomiales à n inconnues de la forme : y, = 1I1(X1,... XnJ pour l≤ i ≤ m, où xι,...,xn,yι,...,ym sont des variables dans un corps fini K1 et où les h, sont des polynômes de degré supérieur ou égal à deux, à coefficients dans le corps fini K, et
- utilisation d'une clé secrète permettant, pour tout m-uplet d'entrée Y formé de données d'entrée (yι = eι,...,ym =em) représentatif d'une information émanant de ladite première entité ou représentatif du message à authentifier ou à signer, de calculer un n-uplet de sortie X formé de données de sortie (x, = sι,...,xn = sn) correspondant audit m-uplet
Y en vertu desdites équations polynomiales, et
- une étape de validation permettant l'authentification de ladite seconde entité ou dudit message ou la vérification de ladite signature dès lors que lesdits m-uplet d'entrée Y et n-uplet de sortie X satisfont à au moins un nombre prédéterminé α d'équations appartenant audit système public, avec α strictement inférieur audit nombre m.
Ce procédé permet d'obtenir un schéma cryptographique sécurisé avec un nombre minimal d'étapes de calcul, ce qui réduit le temps de calcul. Le système public d'équations peut être construit selon les étapes suivantes :
- formation d'un système secret initial de m équations polynomiales à n inconnues de la forme : z, = f ,(xlf... Xn) pour l≤i≤m, où les f, sont des polynômes de degré supérieur ou égal à 2, ledit système secret initial d'équations étant inversible par une trappe d'inversion,
- formation d'un système secret de perturbation de m équations polynomiales à n inconnues de la forme : t, = g,(xi,...xn) pour l≤i≤m, où les g, sont des polynômes de perturbation, et
- combinaison dudit système secret initial d'équations avec ledit système secret de perturbation pour former un système public d'équations de la forme : y, = /I1(X1,...Xn) ≈ ft(xlf...xn) + g,(xi,...xn) pour l≤i≤m, et en ce que ladite clé secrète est formée par ledit système secret initial d'équations, ladite trappe d'inversion et ledit système secret de perturbation.
Ainsi, on préserve le caractère secret du système secret d'équations en le masquant au moyen d'un système de polynômes de perturbation, ce qui permet d'augmenter la sécurité du schéma cryptographique.
Le calcul dudit n-uplet de sortie X correspondant audit m-uplet d'entrée Y comporte les étapes suivantes : - modification d'un nombre prédéterminé β de données dudit m-uplet d'entrée formant un m-uplet d'entrée modifié Y', ledit nombre prédéterminé β étant strictement compris entre 0 et n,
- calcul au moyen de ladite clé secrète d'un n-uplet de sortie intermédiaire X' correspondant audit m-uplet d'entrée modifié Y' satisfaisant ledit système secret initial d'équations, - vérification que ledit n-uplet de sortie intermédiaire X' satisfait au moins α équations dudit système public d'équations, auquel cas le n-uplet de sortie intermédiaire X' est choisi comme étant ledit n-uplet de sortie X.
Ainsi, selon le choix des polynômes de perturbation et le nombre de modifications des composants dudit vecteur de données, on peut facilement calculer un n-uplet de sortie X tout en évitant que le système secret d'équations soit déductible du système public d'équations.
Avantageusement, la valeur d'au moins un m-uplet d'entrée Y est modifiée de manière aléatoire. Ainsi, on diminue la fuite d'informations liées à la clé secrète.
Avantageusement, pour que le nombre déterminé d'équations α vérifiant ledit n-uplet de sortie X soit supérieur à la moitié des m équations dudit système public d'équations, chacun des polynômes de perturbation gi(xlr...xn) présente une probabilité plus grande que sa valeur soit nulle que non nulle lorsque les valeurs de ses variables (xlf...xn) sont choisies aléatoirement.
Ainsi, sans la connaissance de la clé secrète, la probabilité de trouver un n-uplet de sortie X associé au m-uplet d'entrée Y est quasiment nulle. Avantageusement, les polynômes ή et hj desdits systèmes secret initial et public d'équations sont quadratiques et chacun des polynômes de perturbation gj(xi,...xn), comporte une somme de termes de la forme Lχxx,...,xn).L;{xx,...,xn) où Z, 0, ,...,Xn) et Z, '(x, ,...,xn) sont des formes linéaires. Ainsi, les polynômes présentent moins de coefficients, ce qui diminue la quantité de données à mémoriser et le temps de calcul.
Selon une variante, le système public de m équations peut être partitionné en h sous-systèmes publics de mi équations, où l<h< m et
Λ
∑m, = m , tel que pour tout entier / compris entre 1 et h on ait au moins α, équations des /77, équations qui sont satisfaites par lesdits m-uplet d'entrée Y et n-uplet de sortie X, avec α, strictement inférieur à m, .
Ainsi, en ajoutant des contraintes, il devient encore plus difficile d'attaquer le schéma cryptographique. L'invention vise aussi un système cryptographique comprenant une première entité et une seconde entité dans lequel ladite première entité authentifie ladite seconde entité ou un message expédié par ladite seconde entité, ou vérifie la signature électronique d'un message expédié par ladite seconde entité, ladite première entité comportant un moyen de stockage comprenant une clé publique correspondant à un système public de m équations polynomiales à n inconnues de la forme :
// = h,(xlf...XnJ pour l≤ i ≤ m, où xx ,...,xn,yx,...,ym sont des variables dans un corps fini K1 et où les h, sont des polynômes de degré supérieur ou égal à deux, à coefficients dans le corps fini K, et ladite seconde entité comportant :
-un moyen de stockage comprenant ladite clé publique et une clé secrète, et -un moyen de traitement permettant, pour tout m-uplet d'entrée Y formé de données d'entrée (yι - eι,...,ym = em) représentatif d'une information émanant de ladite première entité ou représentatif du message à authentifier ou du message dont la signature est à authentifier, de générer au moyen de ladite clé secrète un n-uplet de sortie X formé de données de sortie (x, = sv...,xn = sn) correspondant audit m-uplet Y en vertu desdites équations polynomiales, ladite première entité comporte en outre un moyen vérificateur apte à valider l'authentification de ladite seconde entité ou dudit message ou la vérification de ladite signature du message, dès lors que lesdits m-uplet d'entrée Y et n-uplet de sortie X satisfont à au moins un nombre prédéterminé α d'équations appartenant audit système public, avec α strictement inférieur audit nombre m.
La clé publique comporte une combinaison d'un système secret initial de m équations polynomiales à n inconnues de la forme : Zi = f, (Xi,... Xn), pour l≤i≤m, où les f, sont des polynômes de degré supérieur ou égal à 2, ledit système secret initial d'équations étant inversible par une trappe d'inversion, et d'un système secret de perturbation de m équations polynomiales à n inconnues de la forme : t, = g,(xi,... Xn), pour l≤i≤m, où les g, sont des polynômes de perturbation, pour former ledit système public d'équations de la forme :
//
Figure imgf000010_0001
f,(Xl,...Xn) + C1(XIs-XnX POUr l≤i≤m, et en ce que ladite clé secrète comporte ledit système secret initial d'équations, ladite trappe d'inversion et ledit système secret de perturbation.
Selon un exemple, la seconde entité est un signataire signant un message par une signature électronique et la première entité est un vérifieur vérifiant la validité de ladite signature électronique. Selon un autre exemple, la seconde entité est un prouveur et la première entité est un vérîfieur vérifiant l'authenticité du prouveur ou du message.
L'invention vise également un programme d'ordinateur comportant des instructions de code pour la mise en œuvre d'un procédé cryptographique tel que décrit succinctement ci-dessus.
Enfin, l'invention vise un moyen de stockage de données comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé cryptographique tel que décrit succinctement ci-dessus Brève description des dessins
D'autres particularités et avantages de l'invention ressortiront à la lecture de la description faite ci-après, à titre indicatif mais non limitatif, en référence aux dessins annexés, sur lesquels : -la figure 1 est une vue schématique d'un système cryptographique comprenant une première entité et une seconde entité, selon l'invention ;
-les figures 2 et 3 sont des exemples d'applications de la figure l ; et -la figure 4 est un organigramme illustrant des étapes de calcul d'un n-uplet de sortie selon l'invention.
Description détaillée de modes de réalisation
Conformément à l'invention, la figure 1 illustre un exemple d'un système cryptographique 1 comprenant une première entité 3 et une seconde entité 5. Selon cet exemple, la première entité 3 comporte un premier moyen de stockage 7 et un moyen vérificateur 9 et la seconde entité 5 comporte un second moyen de stockage 11 et un moyen de traitement 13. Le premier moyen de stockage 7 comprend une clé publique 15 et le second moyen de stockage 11 comprend une clé secrète
17 en plus de la clé publique 15.
Ce système cryptographique 1 permet à la première entité 3 d'authentifier la seconde entité 5 ou un message expédié par la seconde entité 5, ou vérifie la signature électronique d'un message expédié par la seconde entité 5.
En effet, la clé publique correspond à un système public A de m équations polynomiales à n inconnues de la forme :
// = h,(xlf...xn) pour l≤i≤m, où χι ,...,xn,yι ,...,ym sont des variables dans un corps fini K1 et où les h, sont des polynômes de degré d supérieur ou égal à deux, à coefficients dans le corps fini K. A titre d'exemple, K peut être un corps fini à deux éléments K=GF(2) et d=2.
Par ailleurs, le moyen de traitement 13 de la seconde entité 5 permet, pour tout m-uplet d'entrée Y formé de données d'entrée O1 = ex,...,ym =em) , de générer au moyen de la clé secrète un n-uplet de sortie X formé de données de sortie (x, = sι,...,χn =sn) correspondant au m-uplet Y en vertu des équations polynomiales du système public. La clé secrète 17 permet avec une probabilité proche de 1, pour des valeurs d'entrées fixées Oi = e],:-,ym = em) de trouver rapidement des valeurs de sortie (x, = s},...,xn =sn) telles que au moins une partie seulement des m équations du système public A soient satisfaites. En revanche, cette probabilité est proche de O sans la connaissance de la clé secrète.
On notera que le m-uplet d'entrée Y peut représenter une information émanant de la première entité ou d'un message reçu par la première entité 3 depuis la seconde entité 5 ou d'un message dont la signature est à vérifier reçu par la première entité 3 depuis la seconde entité 5.
Ainsi, le moyen vérificateur 9 de la première entité 3 est apte à valider l'authentification de la seconde entité 5 ou du message ou la vérification de la signature du message, dès lors que les m-uplet d'entrée Y et n-uplet de sortie X satisfont au nombre prédéterminé a d'équations appartenant au système public, avec α strictement inférieur au nombre m d'équations. Le nombre prédéterminé α est un paramètre fixé, par exemple, si K = GF(2), alors on peut prendre m / 2 < a < m. Appliqué au domaine de signatures électroniques, la seconde entité 5 est un signataire signant un message par une signature électronique et la première entité 3 est un vérifieur vérifiant la validité de cette signature. En effet, la figure 2 montre que la seconde entité 5 ou signataire envoie les m-uplet d'entrée Y et n-uplet de sortie X à la première entité 3 ou vérifieur. Dans ce cas, le m-uplet d'entrée Y = (eι,...,em) représente le message à signer, ou plus précisément le
« hash » du message à signer, c'est-à-dire la transformation de ce message par une fonction de condensation cryptographique du type SHA_1. Le n-uplet de sortie X = (s} ,...,sn) tel que au moins α des m équations du système public A soient satisfaites constitue une signature valide.
En variante, le m-uplet d'entrée Y = (ev...,em) envoyé par la seconde entité 5 à la première entité 3 constitue le message à authentifier. Alors, le n-uplet de sortie X = (sλ,...,sn) constitue la valeur d'authentification du message permettant à la première entité 3 d'authentifier le message reçu, c'est-à-dire de vérifier qu'il provient bien de la seconde entité 5, et d'en vérifier l'intégrité, c'est-à-dire de vérifier que le message n'a pas été modifié lors de la transmission. Dans le cas de l'authentification de l'identité d'une entité, la seconde entité 5 est un prouveur et la première entité 3 est un vérifieur vérifiant l'authenticité du prouveur. En effet, la figure 3 montre que la première entité 3 ou vérifieur comporte un moyen générateur 15 qui génère par exemple aléatoirement un m-uplet d'entrée Y = (e{,...,em) représentant une information appelée le « défi » (« challenge » en anglais) et envoie cette information à la seconde entité 5 ou prouveur. En réponse, la seconde entité 5 ou prouveur renvoie un n-uplet de sortie X = (sλ,.. ,,sn) tel que au moins α des m équations de A soient satisfaites et qui constitue une authentification de son identité. Selon les exemples des figures 1 à 3, la première entité 3 est un vérifieur qui peut être n'importe quelle entité possédant une clé publique. Par exemple, la première entité 3 peut être un ordinateur ou une carte à puce mise en relation avec la première entité 5 via un lecteur de cartes. De même, la seconde entité 5 peut être un ordinateur ou n'importe quel équipement comportant une clé publique et une clé secrète associée. Par ailleurs, chacune des première et seconde entités peut comporter par exemple dans son moyen de stockage un programme d'ordinateur comportant des instructions de code pour la mise en œuvre du procédé cryptographique selon l'invention.
Ainsi, le procédé selon l'invention comporte une étape de validation permettant l'authentification de la seconde entité ou du message ou la vérification de la signature X = (sv...,sn) dès lors que les m-uplet d'entrée Y et n-uplet de sortie X satisfont à au moins un nombre prédéterminé α d'équations parmi les m équations de A.
Autrement dit, étant donné un défi, respectivement un message (ou le condensé d'un message) Y = (ei,...,em) , pour qu'une authentification de la seconde entité 5 ou du message ou la vérification de la signature X = (s] ,...,sn)όu message soit accomplie, il suffit que les m-uplet d'entrée Y et n-uplet de sortie X satisfassent à au moins un nombre prédéterminé α d'équations.
En revanche, selon l'art antérieur, une authentification ou une signature est considérée valide lorsque toutes les équations d'un système public d'équations sont vérifiées. Le procédé utilisé pour construire la clé publique ou système public d'équations A peut avantageusement consister à construire un système secret d'équations B tel qu'il est possible de construire une trappe
Tassociée permettant d'inverser le système d'équations B, puis d'ajouter, à chaque équation de l'ensemble B1 une perturbation. En effet, on construit d'abord un système secret initial B de m équations polynomiales à n inconnues de la forme : z, ≈ f(xu...Xn) pour l≤i≤m, où les f, sont des polynômes de degré supérieur ou égal à 2. Ce système B est un système d'équations que l'on sait inverser, éventuellement mais pas nécessairement au moyen d'un secret. C'est-à-dire que si l'on se donne une valeur d'entrée (yι = eι,...,ym = em) , on saura avec une bonne probabilité trouver rapidement au moins une valeur de sortie (x, = £,,...,xn = sn) telle que les m équations de B soient satisfaites.
Autrement dit, ce système secret initial d'équations est inversible par une trappe d'inversion.
Ensuite, on construit un système secret de perturbation de m équations polynomiales à n inconnues de la forme : t, = g,(xi,...xn) pour l≤ i ≤ m, où les g, sont des polynômes de perturbation. A titre d'exemple, pour que le nombre déterminé d'équations α vérifiant le n-uplet de sortie X soit supérieur à la moitié des m équations du système public d'équations, il est avantageux que chacun des polynômes de perturbation g,(xi,... xn) présente une probabilité plus grande que sa valeur soit nulle que non nulle lorsque les valeurs de ses variables (xi,...Xn) sont choisies aléatoirement. Autrement dit, les polynômes gι(xi,...xn) sont des fonctions qui, (au moins pour certaines valeurs de /et en général pour la plupart voire toutes les valeurs de /) ont des sorties qui prennent plus souvent la valeur 0 que la moyenne lorsque les valeurs (xlr ..Xn) sont tirées aléatoirement. Par exemple, on peut prendre la fonction nulle, ou le produit de deux formes linéaires, ou la somme de deux fonctions qui sont elles-mêmes produit de deux formes linéaires. Dès lors la valeur de sortie « 0 » est plus probable que les autres valeurs de sortie. Par exemple dans le cas d'un corps fini à deux éléments GF(2), la valeur de sortie « 0 » est plus probable que la valeur de sortie « 1 ». Finalement, on combine le système secret initial d'équations B avec le système secret de perturbation pour former un système public d'équations A de la forme : y, = h,(xi,...xn) = f/xi,...xπ) + g,(xi,...xn) pour l≤ i ≤ m. Par ailleurs, on notera que la clé secrète est formée alors par le système secret initial d'équations, la trappe d'inversion et le système secret de perturbation qui sont gardés secret.
Avantageusement, le système public de m équations peut être partitionné en h sous-systèmes publics de m, équations. C'est-à-dire, pour un h entier fixé tel que 1 < h ≤ m, les équations du système public A sont partitionnées en h ensembles d'équations A1, A2,..., Ah. Notons mt le h nombre d'équations de A1, on a donc ∑m, = m . ι=\
Ainsi, au moyen d'une clé secrète, il est possible avec une probabilité proche de 1, lorsque le m-uplet Y est fixé, de trouver rapidement un n-uplet X tel que pour tout entier /compris entre 1 et h on ait au moins α, équations des m, équations de A, qui sont satisfaites par lesdits m-uplet d'entrée Y et n-uplet de sortie X, avec α, strictement inférieur à m,. Les valeurs α, sont des paramètres fixés, par exemple, si K = GF(2), on a a, > m,/ 2.
La figure 4 est un organigramme illustrant les étapes de calcul réalisées par le moyen de traitement 13 pour calculer le n-uplet de sortie X correspondant au m-uplet d'entrée Y.
A l'étape EO, la seconde entité 5 possède un m-uplet d'entrée Y envoyé par la première entité 3 (le vérifieur), ou correspondant à un message à authentifier ou à un message à signer (ou au condensé du message à signer).
A l'étape El, le moyen de traitement 13 de la seconde entité 5 (prouveur) modifie un nombre prédéterminé β de données du m-uplet d'entrée pour former un m-uplet d'entrée modifié Y'.
Le nombre prédéterminé β est un entier positif fixé strictement compris entre 1 et n. La seconde entité 5 choisit β entiers entre 1 et n correspondant à β positions de bits des données (yι = eλ ,...,ym =em) dont il modifie les valeurs pour obtenir le m-uplet d'entrée modifié 7'= (<?,',...,<?„,') . La modification ou le choix des positions des données modifiées dudit m-uplet d'entrée Y peut être réalisée de manière aléatoire. De préférence, le système cryptographique est conçu de telle sorte que si on met en entrée deux fois le m-uplet d'entrée, alors on obtient deux fois le même n-uplet de sortie X ; par exemple, les mêmes aléas seront générés à chaque fois lors des calculs.
Ensuite, à l'étape E2, le moyen de traitement 13 de la seconde entité 5 calcule au moyen de la clé secrète un n-uplet de sortie intermédiaire X' correspondant au m-uplet d'entrée modifié Y' satisfaisant le système secret initial B d'équations.
Ainsi, en inversant le système secret initial B sur le m-uplet d'entrée modifié Y', le moyen de traitement 13 calcule un n-uplet de sortie intermédiaire X' tel que on ait, pour tout entier /entre 1 et m,
Y' = f(Xv-Xn)> Dès lors, puisque les fonctions g, prennent plus souvent la valeur 0 que la moyenne, on obtient avec une bonne probabilité un nombre d'équations satisfaites de la forme // = f(xv- -Xn) + g(xv—Xn) ' qui est supérieur ou égal à α.
En effet, l'étape E3 est un test qui vérifie si le n-uplet de sortie intermédiaire X' satisfait au moins α équations du système public d'équations. Si c'est le cas, alors on va à l'étape E5 où le n-uplet de sortie intermédiaire X' est choisi comme étant le n-uplet de sortie X qui est ensuite transmis à la première entité 3.
En revanche, si l'issue du test de l'étape E3 est négatif, alors on reboucle à l'étape El pour recommencer avec un autre changement de β positions.
Avantageusement, le n-uplet de sortie X peut être obtenu très rapidement si on choisit la valeur β suffisamment petite. On notera que β peut être nulle mais il est avantageux de choisir pour β une valeur non nulle afin d'éviter que le système secret initial B puisse se déduire du système public A et de divers couples (X, Y) obtenus lors du fonctionnement du procédé de signature ou d'authentification.
Bien entendu, dans le cas où la clé publique est partitionnée, le test à l'étape E4 est vérifié pour chaque valeur de αι. Ainsi, le procédé selon l'invention peut être considérée comme un procédé probabiliste puisque le choix des équations qui sont perturbées au cours des calculs effectués à partir de la clé secrète est indépendant de la clé secrète. En effet, il n'est pas nécessaire d'utiliser un algorithme déterministe pour choisir les équations perturbées du moment que la condition suivante est vérifiée : si le prouveur doit répondre à un défi auquel il a précédemment répondu, alors il doit envoyer la même réponse que la première fois. Cependant, en pratique on utilisera un algorithme pseudo-aléatoire {Le, non prédictible) déterministe qui dépend du message à signer ou du défi. Lorsque l'authentification est réussie (ou la signature valide), le vérifieur sait que les équations qui ne sont pas vérifiées étaient impliquées dans la perturbation qui a été appliquée au cours de la phase de calculs effectués avec la clé secrète. En revanche, pour chaque équation vérifiée, il ne doit pas pouvoir décider facilement si cette équation est impliquée ou non dans la perturbation.
Dans la suite, on donne quelques modes de réalisation d'un protocole cryptographique sécurisé d'authentification ou de signature.
Pour tous ces modes de réalisation, on pose K=GF(2), d=2 (les équations sont quadratiques) et h=l (la clé publique n'est pas partitionnée).
Le système secret B est un ensemble de m équations polynomiales à n variables de la forme y, = fl (x] ,...,xn), où xι,.,.,xn,y],...,ym sont des éléments de K et /,,...,/„ sont des fonctions de degré deux qui varient en fonction de l'exemple de réalisation. On note/ := (/, ,...,/„,) , et Test la trappe permettant d'inverser le système B. Par ailleurs, chacun des polynômes de perturbation gi(xi,...xn), comporte une somme de termes de la forme Z, (*,,...,*„) Z, 'O1 ,...,*„) pour l≤i≤m, où ZI,...,Zm,Z,',...,Zm' sont 2m formes linéaires en les variables
X1 ,...,Xn . Alors, la clé publique est le système public A de m équations à n inconnues de la forme y, = hli,...,xn) = f,(x],...,xn) + gl(x],...,xn), pour l≤i≤m et la clé privée est constituée du système B1 de la trappe Tet des 2m formes linéaires L],...,Lm,Lι',...,Lm' .
Avantageusement, étant donnée le nombre prédéterminé a d'équations de la clé publique qui doivent être vérifiées pour que le
protocole soit validé, on choisit pour β une valeur de l'ordre de -m- a.
Selon un premier mode de réalisation, le système secret B est un schéma C* et les paramètres du protocole sont par exemple, n = m = 488 , a = 358 et β = 8. Ainsi, le système secret B peut être défini de la manière suivante.
Soient /Tune extension de degré n du corps fini K=GF(2) et φ un isomorphisme entre K_ et l'espace vectoriel de dimension n noté K" .
Par ailleurs, soient 5 et U deux bijections affines secrètes de iv"'et soit F la fonction définie par F = φoF°φ avec F': x ι-> x1+2Λ/i, où /lest un entier positif tel quepgcd(2i +1,2" -1) = 1 ce qui permet d'assurer que la fonction F' est bijective. Alors, le système secret B est défini pBïf(x) = UoFoS{x).
Par conséquent, le système public A est défini par l'ensemble des n équations quadratiques de la forme yl ^h,(xι,...,xn) = f,(xι,...,xn) + Ll(xι,...,xn)-Ll'(xι,...,xn) pour λ≤i≤n.
Les fonctions S"1 et L^1 sont calculables puisque 5 et U sont deux fonctions affines. La fonction F est également facilement inversible puisque F λ (x) = x' , où t est l'inverse de 2Λ +1 modulo2" -1 . Ainsi on a x = f~] (y) = S~x oF oU(y) . Alors, la trappe T est constituée des fonctions 5 et U.
Dans ce cas, soit le n-uplet d'entrée Y formé par les données (j, = ej,...,yn = en) représentant le défi ou le message à signer. Alors pour générer la valeur d'authentification ou de la signature (x, = s] ,...,xn = sn) associée, le moyen de traitement 13 de la seconde entité 5 choisit β entiers compris entre 1 et n correspondant à β positions de bits des données Y = (eι,...,en) pour modifier leurs valeurs. Les β positions peuvent être choisies à partir d'un algorithme pseudo-aléatoire déterministe qui dépend uniquement de K On obtient alors le vecteur ou n-uplet d'entrée modifié F'= (e/,...,eM') .
Ensuite, le moyen de traitement 13 calcule x = /"'(/) et vérifie qu'il y a au moins a entiers tel que / (x) + g, (x) = y, pour l ≤ i ≤ m . Si ce n'est pas le cas, le moyen de traitement 13 recommence l'étape de génération et choisit β nouvelles positions (voir figure 4).
Alors, étant donné un défi (respectivement, un message) Y = (ex,...,en) , la vérification par la première entité 3 (le vérifieur) de la valeur d'authentification (respectivement, la signature) X = (sλ,...,sn) consiste à vérifier qu'il y a au moins a équations parmi les m équations de la clé publique A qui sont vérifiées.
Selon un deuxième mode de réalisation, le schéma de base ou système secret B est un schéma C*" et les paramètres du protocole sont les suivants ; n = 456, m - 376, a = 339 et β = 4. De même que dans l'exemple précédent, la fonction F est définie par : F = φo F'oψ avec F1: x κ> x1+2Λ1 .
En revanche, le système secret B est un ensemble de m fonctions quadratiques de la forme y, = /(*, ,...,*„) pourl ≤/ ≤ m , correspondant à un système C*"", où x,,...,xnsont des éléments de K . La perturbation "-" consiste à ne pas rendre public certaines des équations qui faisaient initialement partie de la clé publique. Le système B est un ensemble de m équations choisies parmi les n équations d'un ensemble d'équations B' associé à la fonction : x→UoFo s(χ) .
Les fonctions S~] et CT1 sont calculables puisque 5 et U sont deux fonctions affines. La fonction F est également facilement inversible PUiSqUeF1-1Cx) = X', où test l'inverse de (2λ +1) modulo (2" -1). Ainsi on a B'~ι(y) = S o F"1 otr'O) . La trappe T est constituée des deux fonctions affines 5 et U.
Selon cet exemple, la génération à partir d'un m-uplet Y = (e],...,em), d'une valeur d'authentification ou d'une signature
X = (sx,...,Sn) est identique à l'exemple précédent. De même pour la vérification de cette valeur d'authentification ou de signature. Selon un troisième mode de réalisation, le schéma de base est un schéma « OiI and Vinegar» et les paramètres du protocole sont par exemple :« = 904, m = 456, « = 338 et β = 4.
En effet, soit B un ensemble quelconque de m fonctions quadratiques de la former, =/(x,,...,xJ pourl≤/≤m, où x15...,xnsont des éléments de K. La clé publique A est l'ensemble des m équations quadratiques de la forme : y, = fXxx,...,xn) + Lχxx,...,xn)- L;(x{,...,xn) pour l≤i≤m.
Il existe une transformation affine (inversible) 5 telle qu'on a : {x],...,xn) = s(αi,...,αn/,b,,...,hn/)l et chaque équation^,, pour l≤i≤m, de
/2 /2 l'ensemble B est une équation quadratique à coefficients dans K ne contenant aucun terme quadratique de la forme αtα} où i≠j. La trappe
Test alors la transformation affine 5. De même, pour un m-uplet Y = (ex,...,em) représentatif d'un défi ou d'un message à signer, la génération du n-uplet de sortie X = (s{ ,...,sn) représentatif de la valeur d'authentification ou de la signature associée au n-uplet d'entrée Y se déroule conformément à l'organigramme de la figure 4.
En effet, le moyen de traitement 13 de la seconde entité 5 choisit β entiers compris entre 1 et n correspondant à β positions de bits des données Y = (ex,...,em), dont les valeurs sont modifiées. Les β positions peuvent être choisies à partir d'un algorithme pseudo-aléatoire déterministe qui dépend uniquement de Y. On obtient alors le vecteur ou n-uplet d'entrée modifié Y'= (ex ',...,em') . Le moyen de traitement 13 choisit aléatoirement les valeurs des variables bx ,....,bn/ ; ces valeurs sont choisies
/2 à partir d'un algorithme déterministe pseudo-aléatoire qui dépend uniquement de Y = (yx = e],...,yn = en) . Le système est alors linéaire en les variables α, ,...., an/ .
Ensuite, le moyen de traitement 13 calcule les valeurs α, ,....,αn/
/2 telles que : y, '= f, {xx ,...,xn) = fχS{ax ,...,an/,bx ,...,bn/)) pour l ≤ i ≤ m .
/2 /2
Si aucune solution n'est trouvée, le moyen de traitement 13 génère de nouvelles valeurs pour les variables bx,....,bn, .
Enfin, le moyen de traitement 13 vérifie qu'il y a au moins a entiers i (l ≤ i ≤ m ), tel que fl(χ) + g, (χ) = yl - Si ce n'est pas le cas, le moyen de traitement 13 recommence l'étape de génération et choisit β nouvelles positions. Alors, étant donné un défi (respectivement, un message)
Y = (ex,...,em) , la vérification par la première entité 3 (le vérifieur) de la valeur d'authentification (respectivement, la signature) X = (sx,...,sn) consiste à vérifier qu'il y a au moins a équations parmi les m équations de la clé publique A qui sont vérifiées.

Claims

REVENDICATIONS
1. Procédé cryptographique dans lequel une première entité (3) authentifie une seconde entité (5) ou un message expédié par ladite première entité, ou vérifie la signature électronique d'un message expédié par ladite première entité, le procédé comportant les étapes suivantes :
- utilisation d'une clé publique correspondant à un système public de m équations polynomiales à n inconnues de la forme :
// = It(X1,...Xn) pour l≤i≤ m, où xι ,...,xn,y],...,ym sont des variables dans un corps fini K1 et où les h, sont des polynômes de degré supérieur ou égal à deux, à coefficients dans le corps fini /Ç et
- utilisation d'une clé secrète permettant pour tout m-uplet d'entrée Y formé de données d'entrée (y] = e],...,ym = em) représentatif d'une information émanant de ladite première entité ou représentatif du message à authentifier ou à signer de calculer un n-uplet de sortie X formé de données de sortie O1 = s{,...,xn = sn) correspondant audit m-uplet
Y en vertu desdites équations polynomiales, caractérisé en ce qu'il comporte en outre une étape de validation permettant l'authentification de ladite seconde entité ou dudit message ou la vérification de ladite signature dès lors que lesdits m-uplet d'entrée Y et n-uplet de sortie X satisfont à au moins un nombre prédéterminé α d'équations appartenant audit système public, avec α strictement inférieur audit nombre m.
2. Procédé selon la revendication 1, caractérisé en ce que ledit système public d'équations est construit selon les étapes suivantes :
- formation d'un système secret initial de m équations polynomiales à n inconnues de la forme : z, = f,(xif... Xn) pour l≤ i ≤ m, où les f, sont des polynômes de degré supérieur ou égal à 2, ledit système secret initial d'équations étant inversible par une trappe d'inversion,
- formation d'un système secret de perturbation de m équations polynomiales à n inconnues de la forme : t, = g,(xi,...Xn) pour l≤ i ≤ m, où les g, sont des polynômes de perturbation, et
- combinaison dudit système secret initial d'équations avec ledit système secret de perturbation pour former un système public d'équations de la forme : /, = h,(xlf...xn) = ffa-XiO + g<(xi,-xn) pour l≤ i≤m, et en ce que ladite clé secrète est formée par ledit système secret initial d'équations, ladite trappe d'inversion et ledit système secret de perturbation.
3. Procédé selon la revendication 2, caractérisé en ce que le calcul dudit n- uplet de sortie X correspondant audit m-uplet d'entrée Y comporte les étapes suivantes :
- modification d'un nombre prédéterminé β de données dudit m-uplet d'entrée formant un m-uplet d'entrée modifié Y', ledit nombre prédéterminé β étant strictement compris entre 0 et n,
- calcul au moyen de ladite clé secrète d'un n-uplet de sortie intermédiaire X' correspondant audit m-uplet d'entrée modifié Y' satisfaisant ledit système secret initial d'équations,
- vérification que ledit n-uplet de sortie intermédiaire X' satisfait au moins α équations dudit système public d'équations, auquel cas le n-uplet de sortie intermédiaire X' est choisi comme étant ledit n-uplet de sortie X.
4. Procédé selon la revendication 3, caractérisé en ce que la valeur d'au moins un m-uplet d'entrée Y est modifiée de manière aléatoire.
5. Procédé selon l'une quelconque des revendications 2 à 4, caractérisé en ce que pour que le nombre déterminé d'équations α vérifiant ledit n-uplet de sortie X soit supérieur à la moitié des m équations dudit système public d'équations, chacun des polynômes de perturbation Çi(xi,...xn) présente une probabilité plus grande que sa valeur soit nulle que non nulle lorsque les valeurs de ses variables (Xy... XnJ sont choisies aléatoirement.
6. Procédé selon l'une quelconque des revendications 2 à 5, caractérisé en ce que les polynômes fi et h, desdits systèmes secret initial et public d'équations sont quadratiques et chacun des polynômes de perturbation gi(xi,...xn) comporte une somme de termes de la forme
Ll (x] ,...,xn).L, '(x1 ,...,xn) où X;(x, ,...,xn) et Z, '(x, ,...,xn) sont des formes linéaires.
7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le système public de m équations est partitionné en h sous- h systèmes publics de rτ)j équations, où l<h< m et ∑m, = m , tel que pour
(=1 tout entier / compris entre 1 et h on ait au moins ai équations des m,- équations qui sont satisfaites par lesdits m-uplet d'entrée Y et n-uplet de sortie X, avec α, strictement inférieur à rrij .
8. Système cryptographique comprenant une première entité (3) et une seconde entité (5) dans lequel ladite première entité authentifie ladite seconde entité ou un message expédié par ladite seconde entité, ou vérifie la signature électronique d'un message expédié par ladite seconde entité, ladite première entité comportant un moyen de stockage (7) comprenant une clé publique (15) correspondant à un système public de m équations polynomiales à n inconnues de la forme : y, = /I1(X1,...Xn) pour l≤i≤m, où x],...,xn,yι,...,ym sont des variables dans un corps fini K1 et où les h, sont des polynômes de degré supérieur ou égal à deux, à coefficients dans le corps fini K, et ladite seconde entité comportant :
-un moyen de stockage (11) comprenant ladite clé publique (15) et une clé secrète (17), et
-un moyen de traitement (13) permettant, pour tout m-uplet d'entrée Y formé de données d'entrée (yi = eι,...,ym =em) représentatif d'une information émanant de ladite première entité ou représentatif du message à authentifier ou du message dont la signature est à authentifier, de générer au moyen de ladite clé secrète un n-uplet de sortie X formé de données de sortie (x, = sι,...,xn = sn) correspondant audit m-uplet Y en vertu desdites équations polynomiales, caractérisé en ce que ladite première entité comporte en outre un moyen vérificateur (9) apte à valider l'authentification de ladite seconde entité ou dudit message ou la vérification de ladite signature du message, dès lors que lesdits m-uplet d'entrée Y et n-uplet de sortie X satisfont à au moins un nombre prédéterminé α d'équations appartenant audit système public, avec α strictement inférieur audit nombre m.
9. Système selon la revendication 8, caractérisé en ce que la clé publique comporte une combinaison d'un système secret initial de m équations polynomiales à n inconnues de la forme : z, = f,(xi,... Xn), pour l≤i≤m, où les f, sont des polynômes de degré supérieur ou égal à 2, ledit système secret initial d'équations étant inversible par une trappe d'inversion, et d'un système secret de perturbation de m équations polynomiales à n inconnues de la forme : t, = C1(Xi,...Xn), pour l≤i≤m, où les g, sont des polynômes de perturbation, pour former ledit système public d'équations de la forme :
// = In1(X1,...Xn) = f,(xi,...xn) + gfai,...Xn), pour l≤i≤m, et en ce que ladite clé secrète comporte ledit système secret initial d'équations, ladite trappe d'inversion et ledit système secret de perturbation.
10. Système selon l'une quelconque des revendications 8 et 9, caractérisé en ce que la seconde entité (5) est un signataire signant un message par une signature électronique et la première entité (3) est un vérifieur vérifiant la validité de ladite signature électronique.
11. Système selon l'une quelconque des revendications 8 et 9, caractérisé en ce que la seconde entité (5) est un prouveur et la première entité (3) est un vérifieur vérifiant l'authenticité du prouveur ou du message.
12. Programme d'ordinateur comportant des instructions de code pour la mise en œuvre du procédé cryptographique selon l'une quelconque des revendications 1 à 7.
13. Moyen de stockage de données comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé cryptographique selon l'une quelconque des revendications 1 à 7.
PCT/FR2006/051183 2005-11-18 2006-11-16 Systeme et procede cryptographique d'authentification ou de signature WO2007057610A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0511731 2005-11-18
FR0511731 2005-11-18

Publications (1)

Publication Number Publication Date
WO2007057610A1 true WO2007057610A1 (fr) 2007-05-24

Family

ID=36283999

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2006/051183 WO2007057610A1 (fr) 2005-11-18 2006-11-16 Systeme et procede cryptographique d'authentification ou de signature

Country Status (1)

Country Link
WO (1) WO2007057610A1 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008148274A1 (fr) * 2007-06-07 2008-12-11 Guan, Haiying Procédé et système de codage et de décodage de message numérique
EP2744148A4 (fr) * 2011-08-12 2015-09-09 Sony Corp Dispositif de traitement de données, procédé de fourniture de signature, procédé de vérification de signature, programme et support d'enregistrement
US20160014196A1 (en) * 2014-07-10 2016-01-14 Red Hat Israel, Ltd. Authenticator plugin interface

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295188A (en) * 1991-04-04 1994-03-15 Wilson William J Public key encryption and decryption circuitry and method
EP1049289A1 (fr) * 1999-04-29 2000-11-02 Bull Cp8 Procédé et dispositif de signature électronique

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295188A (en) * 1991-04-04 1994-03-15 Wilson William J Public key encryption and decryption circuitry and method
EP1049289A1 (fr) * 1999-04-29 2000-11-02 Bull Cp8 Procédé et dispositif de signature électronique

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KIPNIS,PATARIN,GOUBIN: "UNBALANCED OIL AND VINEGAR SIGNATURE SCHEMES - Extended Version", 1999, XP002381320, Retrieved from the Internet <URL:http://citeseer.ist.psu.edu/matsumoto98public.html> [retrieved on 20060517] *
TSUTOMU MATSUMOTO: "PUBLIC QUADRATIC POLYNOMIAL-TUPLES FOR EFFICIENT SIGNATURE-VERIFICATION AND MESSAGE-ENCRYPTION", SPRINGER-VERLAG, 1998, pages 419 - 453, XP002381321, Retrieved from the Internet <URL:http://citeseer.ist.psu.edu/matsumoto98public.html> [retrieved on 20060517] *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008148274A1 (fr) * 2007-06-07 2008-12-11 Guan, Haiying Procédé et système de codage et de décodage de message numérique
EP2744148A4 (fr) * 2011-08-12 2015-09-09 Sony Corp Dispositif de traitement de données, procédé de fourniture de signature, procédé de vérification de signature, programme et support d'enregistrement
US10075299B2 (en) 2011-08-12 2018-09-11 Sony Corporation Information processing apparatus, signature providing method, signature verifying method, program, and recording medium
US20160014196A1 (en) * 2014-07-10 2016-01-14 Red Hat Israel, Ltd. Authenticator plugin interface
US9961059B2 (en) * 2014-07-10 2018-05-01 Red Hat Israel, Ltd. Authenticator plugin interface
US11063923B2 (en) 2014-07-10 2021-07-13 Red Hat Israel, Ltd. Authenticator plugin interface

Similar Documents

Publication Publication Date Title
EP3091689B1 (fr) Procédé de génération d&#39;une signature de message à partir d&#39;un jeton de signature chiffré à l&#39;aide d&#39;une fonction de chiffrement homomorphique
US11895231B2 (en) Adaptive attack resistant distributed symmetric encryption
Kiraz et al. Efficient and verifiable algorithms for secure outsourcing of cryptographic computations
FR2759226A1 (fr) Protocole de verification d&#39;une signature numerique
US8542832B2 (en) System and method for the calculation of a polynomial-based hash function and the erindale-plus hashing algorithm
Kittur et al. Batch verification of digital signatures: approaches and challenges
Cheon et al. Smaug: Pushing lattice-based key encapsulation mechanisms to the limits
FR2793366A1 (fr) Protocole de signature numerique a largeur de bande reduite
Behnia et al. Tachyon: Fast signatures from compact knapsack
WO2007057610A1 (fr) Systeme et procede cryptographique d&#39;authentification ou de signature
Xiao et al. Klepto for ring-LWE encryption
US20230214826A1 (en) Key-value map commitments system and method
US7760873B2 (en) Method and a system for a quick verification rabin signature scheme
FR2773027A1 (fr) Procede de signature numerique
Alia et al. A new digital signature scheme based on Mandelbrot and Julia fractal sets
WO2002091664A1 (fr) Schema de signature a base d&#39;anneaux
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
US8150030B2 (en) Cryptographic hashing device and method
KR20210061194A (ko) 구조화된 행렬들에 기초한 공개키 암호를 위한 방법과 장치
CN112632636B (zh) 一种密文数据比较结果的证明与验证方法及装置
Kang et al. Selective‐Opening Security for Public‐Key Encryption in the Presence of Parameter Subversion
Yu et al. Research on Two-Party Cooperative Aigis-sig Digital Signature Protocol
Kahrobaei Efficient and Secure Delegation of Exponentiation in General Groups to a Single Malicious Server
WO2022187959A1 (fr) Procédés et systèmes cryptographiques à sécurité quantique
FR3018372A1 (fr) Generation de message pour test de generation de cles cryptographiques

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06831345

Country of ref document: EP

Kind code of ref document: A1