FR2815493A1 - Procede pour mettre en oeuvre une technique renforcant la securite des signatures a cle publique a base de polynomes multivariables - Google Patents

Procede pour mettre en oeuvre une technique renforcant la securite des signatures a cle publique a base de polynomes multivariables Download PDF

Info

Publication number
FR2815493A1
FR2815493A1 FR0012403A FR0012403A FR2815493A1 FR 2815493 A1 FR2815493 A1 FR 2815493A1 FR 0012403 A FR0012403 A FR 0012403A FR 0012403 A FR0012403 A FR 0012403A FR 2815493 A1 FR2815493 A1 FR 2815493A1
Authority
FR
France
Prior art keywords
public key
signature
secret
values
public
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.)
Granted
Application number
FR0012403A
Other languages
English (en)
Other versions
FR2815493B1 (fr
Inventor
Louis Goubin
Jacques Patarin
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.)
Bull CP8 SA
Original Assignee
Bull CP8 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 Bull CP8 SA filed Critical Bull CP8 SA
Priority to FR0012403A priority Critical patent/FR2815493B1/fr
Publication of FR2815493A1 publication Critical patent/FR2815493A1/fr
Application granted granted Critical
Publication of FR2815493B1 publication Critical patent/FR2815493B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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

Landscapes

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

Abstract

L'invention concerne un procédé pour générer des signatures à clé publique dont la clé publique est un système de m équations quadratiques à n inconnues de la forme Y1 = f1 (x1 ,..., Xn ),..., Ym = fm (x1 ,..., xn ), les x i et y i appartenant à un corps fini K, et pour lequel le calcul d'une signature x = (x1 ,..., xn ) d'un message M vérifiant M = (y1 ,..., ym ) ou (y1 ,..., ym ) = Hash (M), Hash étant une fonction publique, s'effectue en tirant aléatoirement r variables ym+1 ,..., ym+r de K, puis en cherchant une valeur x = (x1 ,..., xn ) satisfaisant aux m équations publiques et aux r équations secrètes supplémentaires de la forme ym+i = fm+i (x1 ,.... xn ), 1 <= i <= r les fm+i étant des fonctions quadratiques secrètes, caractérisé en ce que le tirage " aléatoire " des valeurs ym+1 ,..., ym+r est imprévisible pour qui ne connaît que la clé publique.

Description

<Desc/Clms Page number 1>
Figure img00010001
Procédé pour mettre en oeuvre une technique renforçant la sécurité 0 des signatures à clé publique à base de polynômes multivariables 1. Introduction
Les signatures électroniques prennent une importance croissante dans le monde moderne. Elles sont utiles au commerce électronique sur internet, aux cartes bancaires, et plus généralement à chaque fois que l'on souhaite s'assurer qu'une personne a bien accepté les termes d'un message, ou a généré elle-même ce message. On utilise pour cela de plus en plus une technique cryptographique dite de signature à clé publique : c'est-à-dire une technique qui permette de vérifier de telles signatures sans avoir le moindre secret, alors qu'il faut au contraire un secret pour pouvoir signer de nouveaux messages.
Actuellement l'algorithme de signature à clé publique le plus utilisé est le RSA (cf [RSA]). Mais générer une signature RSA, dans une petite carte à puce par exemple, utilise beaucoup de RAM (plus de 200 octets en général) et nécessite de faire beaucoup de calculs. La communauté cryptographique a donc cherché depuis quelques années si l'on pouvait trouver des algorithmes plus rapides. Plusieurs familles d'algorithmes plus rapides ont en effet été proposé ces dernières années. L'une de ces familles est basée sur des Polynômes Multivariables : la signature x d'un message M est alors constituée de n éléments xl,... Xn d'un petit corps fini K, n étant ici un entier naturel compris entre 8 et 200, et par petit corps fini on entend que le nombre d'éléments de K est compris entre 2 et 2 puissance 128.
Dans certains de ces algorithmes la vérification de la validité entre un message M et sa signature x = (xi,... Xn) se fait ainsi : on calcule tout d'abord y = Hash (M), où Hash est une fonction publique, puis on vérifie que les m équations suivantes sont toutes satisfaites : Yi=fi (XI,..., Xn), 1 im, (1)
<Desc/Clms Page number 2>
où les fi sont des fonctions quadratiques publiques à coefficients dans K. Ces équations (ou, ce qui revient au mêmes ces fonction fi) constituent ce que l'on nomme la clé publique de cet algorithme de signature. Nous verrons ci-dessous des exemples concrets de tels algorithmes. Ces algorithmes sont en général très performants mais justifier leur sécurité est souvent un problème délicat.
Il existe cependant plusieurs idées pour renforcer la sécurité d'un tel schéma.
L'une d'elles consiste à ne pas publier toutes les équations de la forme (1) pour lesquelles (éventuellement grâce à un secret) on sait en général (c'est-à-dire avec une probabilité non négligeable) trouver un x à partir des valeurs yi, 1 < i < m. Cette idée
Figure img00020001

(nommée en général perturbation - ) a été décrite dans [Cou Gou Pat] ou [Gou Kip Pat] par exemple. Mais si une telle idée est utilisée il faut alors faire très attention à la façon dont les signatures seront générées, c'est l'objet de la présente invention.
2. La génération de nombres aléatoires ou pseudo-aléatoires Nous allons avoir besoin de générer des nombres qui se présentent comme des nombres aléatoires c'est-à-dire des nombres qu'un intervenant extérieur qui ne connaît pas la façon dont ils ont été généré ne sera pas capable de distinguer de nombres réellement aléatoires.
Figure img00020002
Pour cela, on peut utiliser ce que l'on nomme un générateur physique de nombres aléatoires, c'est-à-dire un moyen physique pour générer ces nombres, par exemple en tirant une pièce plusieurs fois à pile ou face, en mesurant les émissions de radiations d'un barreau irradié, ou en utilisant des dispositifs physiques comme une roulette de casino ou des dispositifs classiques à base de lampes.
Mais, le plus souvent, on utilise ce que l'on nomme un générateur de nombres pseudo aléatoires c'est-à-dire un programme informatique qui génère des nombres à partir d'une petite valeur K' (que l'on nomme la clé , ou la graine du générateur). La propriété que l'on souhaite parfois obtenir est la suivante : les
<Desc/Clms Page number 3>
personnes qui ne connaissent pas la clé K'ne doivent pas être capables de distinguer les valeurs générées de valeurs réellement aléatoires, et ceci même si elles connaissent l'algorithme utilisé pour générer ces valeurs à partir de K'.
3. L'algorithme C*avec une seule branche Une propriété mathématique (Cet algorithme est aussi décrit dans [Ima Mat 1], [Ima Mat 2], ou [Pat 3]).
Soit K un corps fini de caractéristique 2, et notons q le nombre d'éléments de K. Soit L une extension de degré n de K. (Soit comme K = Fq, L = Fqn).
Alors la fonction f de L dans L définie par b = f (a) = al + q est une bijection si et
Figure img00030001

seulement si 1 + qo est premier avec q"-l.
Lorsqu'elle est bijective cette fonction monôme f admet également pour inverse une fonction monôme qui est a = fl (b) = bh, où h est l'inverse de 1 + qe modulo qn-l. Si B est une base de L (comme espace vectoriel sur K), alors l'expression de f dans la base B est de la forme : f (al,..., an) = (pi (al,... an),..., pn (al,., an))
Figure img00030002

où pi,... pn sont n polynômes de degré 2 en n variables. La raison pour cela est que les 9 fonctions x x et x xq sont toutes les deux des fonctions linéaires (ayant des écritures sous la forme de polynômes de degré 1 dans la base B), et ainsi la fonction 9 f (a) = a. aq est une fonction dont les composantes dans la base B sont décrites par des polynômes en n variables de degré 2. Les polynômes pl,... pn sont calculés en choisissant une représentation de L. Une telle représentation est typiquement donnée par le choix d'un polynôme irréductible i (X) de degré n sur K, de telle sorte que l'on puisse identifier L avec K [X]/i (X).
<Desc/Clms Page number 4>
Figure img00040001
Description de l'Algorithme C* avec une seule branche Notons x = (xl,..., Xn) le message à chiffrer (ou la signature d'un message) et y = (yl,..., Yn) le message chiffré (ou le hash d'un message à signer). Chaque variable xi et yj appartient à K, où K est un petit corps fini de caractéristique 2. (Typiquement mais pas nécessairement K = F2 ou F256).
Il existe deux façons de calculer y à partir de x : l'une avec la clé secrète, et l'autre uniquement à partir de la clé publique. Décrivons tout d'abord comment y peut être calculé à partir de x avec la clé secrète.
Figure img00040002
Calcul de y àpartir de x avec la clé secrète Etape 1 : On calcule a = s (x), où s est une transformation affine, bijective, et secrète.
Par affine on veut dire que chaque composante al,..., an de a peut être exprimée sous la forme d'un polynôme (secret) de degré 1 en les variables xl,..., Xn.
9 Etape 2 : On calcule b = pa) = al + q où q est comme d'habitude le cardinal de K, et où 0 est un entier que l'on peut prendre sans nuire à la généralité entre 1 et n/2.
(Comme il y a très peu de choix possible pour 0 on peut considérer que 0 est secret ou que 0 est public).
La transformation b = al se fait en considérant a et b comme des éléments du corps Fqn.
On choisit 0 pour que cette transformation soit bijective, c'est-à-dire tel que 1 + qo soit premier avec q -l. Notons que cette étape 2 est une transformation quadratique de Kn vers Kn. (Voir la propriété mathématique décrite ci-dessus).
Etape 3 : On calcule y = t (b), où t est une transformation affine, bijective, et secrète.
Figure img00040003

Calcul de y à partir de x avec la clé publique On a donc y = t (f (s (x) )). Or la composition g = t o f o s est une fonction de degré 2 de Kn vers Kn (car f est de degré 2 et t et s sont de degré 1). Cette fonction g est
<Desc/Clms Page number 5>
Figure img00050001

rendue publique : c'est la clé publique. (Par contre s et t sont maintenues secrètes : c'est la clé secrète). À partir de la clé publique g on peut calculer immédiatement y à partir de x. On a donc bien un schéma à clé publique.
Calcul de x à partir de y avec la clé secrète Avec la clé secrète, il est facile d'inverser chacune des fonctions t, f, puis s successivement. Par contre il semble impossible de calculer a à partir de y sans la connaissance de la clé secrète. Mais en fait, cet algorithme a été cassé (voir l'article [Pat 1] qui décrit comment casser cet algorithme). Cependant, nous allons voir des variantes de cete algorithme qui, elles, ne sont pas cassées.
4. Description des Algorithmes C*-et C*-- (Ces algorithmes ont été décrits dans [Cou Gou Pat]).
C*- C*-est simplement un algorithme C* avec une seule branche dont quelques unes des équations de la clé publique de C* ont été maintenues secrètes.
C*-En fait, dans l'article [Cou Gou Pat], il est montré que pour assurer la sécurité d'un tel algorithme il faut que le nombre r d'équations ainsi maintenues secrètes soit tel que qr 264. Lorsque c'est le cas, je nomme C*-un tel algorithme. (Nous écrivons deux fois
Figure img00050002

le symbole - pour insister sur le fait qu'il ne suffit pas d'enlever une ou deux équations, il faut vraiment que r soit suffisamment grand pour que qr > 264).
Actuellement cet algorithme C*--n'est pas cassé. Il est donc peut-être solide. Cependant, pour la sécurité, il est très important de bien mettre en oeuvre la façon dont cet algorithme sera utilisé. Voici comment procéder, selon la présente invention :
<Desc/Clms Page number 6>
Génération d'une signature C*--selon la présente invention Ici n désigne toujours le nombre de variables xi, r le nombre d'équations enlevées comme décrit ci-dessus, et m=n-r.
Étape 1 : on calcule (y1, ..., ym) = Hash (M), où M est le message à signer, et Hash une fonction publique.
Étape 2 (c'est ici qu'intervient la présente invention) : on génère aléatoirement r valeurs ym+h..., ym+r appartenant à K, de telle sorte que ce tirage aléatoire est imprévisible (c'est-à-dire que l'attaquant ne peut pas prévoir ces valeurs à partir des données publiques et des valeurs yi,..., Ym dont il dispose) pour qui ne connaît que la clé publique et pas de secrets. Ceci peut se faire par exemple en utilisant un générateur physique de nombres aléatoires, ou en utilisant un générateur de nombres pseudoaléatoires avec une clé secrète K', cette clé K'n'étant pas révélée. Par contre, il ne faut
Figure img00060001

pas utiliser une technique publique de génération de nombres pseudo-aléatoires, qui permettrait à quelqu'un connaissant la clé publique et le message M de recalculer ym+i, ---, Ym+r.
Étape 3 : on calcule x = (xi,..., Xn) satisfaisant les équations Yi = fi (xi,..., Xn), 1 im de la façon habituelle pour un algorithme C*.
5. L'algorithme HFE de base (Cet algorithme a été décrit dans [Pat 2]).
<Desc/Clms Page number 7>
Figure img00070001
Idée de base L'idée de l'algorithme HFE que nous nommons de base , ou HFE (sans autres précision), est la suivante : au lieu de prendre une transformation monôme b = a 1 + qo comme dans l'algorithme C*, on va prendre une transformation polynôme b = f (a), où f est un polynôme ayant plusieurs monômes (pour éviter les attaques de C*), de petit degré d (pour pouvoir calculer f dans les deux sens), et dont l'expression des
Figure img00070002

composantes dans Kr somit n équations de degré 2 (pour avoir une clé publique de degré 2).
Figure img00070003

f est donc un polynôme de la forme : & =./ ( = 2 '+ //, + et tous les
Figure img00070004

monômes en a dans cette expression sont de degré : 9 d.
Remarque Ici, contrairement à C*, le petit corps fini K n'est pas nécessairement de caractéristique 2, et la fonction f n'est pas nécessairement bijective.
Note On suppose ici connus quelques résultats de Mathématiques sur les corps finis. En particulier le fait qu'une équation polynomiale f (a) = b à une seule variable sur un
Figure img00070005

corps fini K (ici a est la variable et b une constante de K) peut être résolue avec un algorithme dont la complexité est à la fois polynomiale en le degré d de f et polynomiale en le nombre de bits qu'il faut pour représenter un élément de K (par exemple l'algorithme de Berlekamp).
6. Les perturbations-, +, V et F Les perturbations que nous notons-, +, V et F sont quatre perturbations très générales que l'on peut introduire dans presque tous les algorithmes multivariables directs pour essayer d'en renforcer la sécurité (ou pour essayer de réparer des algorithmes). En signature,-et V sont des perturbations qui ne dégradent pas significativement les performances, au contraire de + et F qui doivent être utilisés avec
<Desc/Clms Page number 8>
modération car + et F dégradent les performances en signature. Au contraire en chiffrement + et F sont des perturbations qui ne dégradent pas significativement les performances, au contraire de-et V qui doivent être utilisés avec modération car-et V dégradent les performances en chiffrement. D'une certaine façon, comme nous allons le voir-et + sont des opérations symétriques l'une de l'autre, de même que V et F.
La perturbation - La perturbation-consiste à ne pas publier certaines des équations qui faisaient initialement partie de la clé publique.
Remarque
Figure img00080001

Il est possible, si on le souhaite, de distinguer deux formes de cette pertubation suivant que les équations que l'on enlève sont tirées aléatoirement, ou suivant qu'au contraire certaines de ces équations sont soigneusement choisies à partir de la connaissance de la clé secrète.
La perturbation + La perturbation + consiste à mélanger les équations qui constituaient initialement la clé publique avec des équations quadratiques réellement aléatoires. Ce mélange se fait au moyen d'une transformation affine bijective secrète.
La perturbation V La perturbation V consiste à introduire des variables supplémentaires au système d'équations. (Ces variables sont souvent appelées variables de vinaigre , et les variables initiales sont alors appelées variables d'huile ). Les variables initiales et les variables supplémentaires n'apparaissent pas sous forme séparées dans les équations de la clé publique : elles ont été mélangées au moyen d'une transformation affine bijective secrète. Lors du calcul en clé secrète, on connaît la séparation de ces variables. On tire alors aléatoirement des valeurs pour les variables supplémentaires, et on résout le système comme d'habitude sur les variables habituelles.
<Desc/Clms Page number 9>
Figure img00090001
La perturbation F La perturbation F consiste à fixer la valeur de certaines variables dans ce qui constituait initialement la clé publique. La nouvelle clé publique ainsi obtenue masque ainsi parfois des symétries importantes, des propriétés algébriques, ou des informations sur la clé secrète, qui pouvaient exister sur la clé publique initiale.
Cas de HFE Toutes ces perturbations s'appliquent de façon naturelle en particulier à l'algorithme HFE de base. On peut également appliquer plusieurs de ces transformations. On obtient ainsi les algorithmes que nous notons HFE-, HFEv, HFEv-, HFEF, HFE+F, HFE-+VF etc. (Certaines de ces variantes sont aussi décrites dans [Gou Kip Pat]). En signature les variantes HFE-, HFEv et HFEv-sont celles qui ont les meilleures performances. Comme nous nous intéressons ici plus particulièrement aux signatures, c'est donc ces variantes qui seront les plus utiles. En chiffrement, par contre, les
Figure img00090002

variantes HFE+, HFEF et HFEF+ ont les meilleures performances.
Dans HFEv (ou HFEv-) la fonction f est donc de la forme :
Figure img00090003

& = = 2'' + 2-/'+
Figure img00090004

où les yj sont comme précédemment des constantes de Fqn, mais où leu, sont désormais des vecteurs dont les composantes sont constituées de transformations aléatoires de degré 1 en les variables supplémentaires (appelées aussi variables de vinaigre ), et où 8 est un vecteur dont les composantes sont constituées de transformations quadratiques en les variables supplémentaires.
On pourrait croire que HFEv- par exemple, dans la mesure où sa description mathématique est un peu plus complexe que celle du HFE de base, est un peu plus difficile à mettre en oeuvre. En fait les calculs en clé secrète de HFEv-sont
<Desc/Clms Page number 10>
Figure img00100001

sensiblement plus simples que ceux de HFE de base. En effet, avec les connaissances actuelles en cryptanalyse sur ces schémas, il suffit de prendre un degré d du polynôme monovariable caché f plus petit avec HFEv- qu'avec le HFE de base pour éviter toutes les attaques connues. Cependant, lorsque HFE-ou HFEv-est utilisé, il est très important de bien mettre en oeuvre la façon dont cet algorithme est utilisé afin que la perturbation - renforce effectivement la sécurité. Voici comment procéder, selon la présente invention : Génération d'une signature HFE- ou HFEv- selon la présente invention Ici n désigne le nombre de variables xi, r le nombre d'équations enlevées, et m le nombre d'd'équations restant dans la clé publique.
Étape 1 : on calcule (yl,..., ym) = Hash (M), où M est le message à signer, et Hash une fonction publique.
Étape 2 (c'est ici qu'intervient la présente invention) : on génère aléatoirement r valeurs ym+i,..., ym+r appartenant à K, de telle sorte que ce tirage aléatoire est imprévisible (c'est-à-dire que l'attaquant ne peut pas prévoir ces valeurs à partir des données publiques et des valeurs y1, ..., ym dont il dispose) pour qui ne connaît que la clé publique et pas de secrets. Ceci peut se faire par exemple en utilisant un générateur physique de nombres aléatoires, ou en utilisant un générateur de nombres pseudoaléatoires avec une clé secrète K', cette clé K'n'étant pas révélée. Par contre, il ne faut pas utiliser une technique publique de génération de nombres pseudo-aléatoires, qui permettrait à quelqu'un connaissant la clé publique et le message M de recalculer Ym+l,
Figure img00100002

.., Ym+r.
Étape 3 : on calcule x = (xi,..., Xn) satisfaisant les équations yi =fi (xl,..., Xn), 1 im+r de la façon habituelle pour un algorithme HFE ou HFEv.
<Desc/Clms Page number 11>
Figure img00110001
7. Les algorithmes triangulaires T± (Cette famille d'algorithmes est aussi décrite dans [Gou Pat], [Moh 1], [Moh 2], et [Cou Gou]).
Nous décrivons ici la famille d'algorithmes T± (n, u, r, K), où n, u et r désignent des nombres entiers naturels tels que r < n. On notera m = n + u-r. Par ailleurs, K=GF (q) est le corps fini à q éléments.
On considère d'abord une fonction qt de Kn dans K"r, telle que (y,..., yn+u-r) = (xi, ..., an) est défini par le système d'équations suivant : Yi =Xi + gl (Xn-r+1,..., Xn) y2 = X2 +g2 (Xl ; Xn-r+l,..., Xn) Y3 = X3 + (XI, X2 ; Xn-r+i, Xn) in-ru = Xn-r+ gn-r (Xl,..., Xn-r-1, Xn-r+t,., Xn) yn-r+l =gn-r+l (Xl,..., Xn) Yn-r+u gn-r+u (Xl,..., Xn) dans lequel chaque gi (li < n+u-r) est un polynôme quadratique choisi de manière aléatoire.
La clé publique et la clé secrète L'utilisateur choisit une transformation affine bijective aléatoire s, de Kn dans Kn, et une transformation affine bijective aléatoire t de K"r dans K"r. Soit F = t o T o s.
<Desc/Clms Page number 12>
Figure img00120001
Par construction, si on note (y'l,..., y'n+u-r) = F (x'i,..., x'n), on obtient un ensemble explicite {Pl,..., Pn+u-r} de (n+u-r) polynômes quadratiques en n variables, tels que : y'i= Pi (x',,..., x'n) y'n-r+u = Pn-r+u (x' l,..., x'n).
Cet ensemble de (n+u-r) polynômes quadratiques constitue la clé publique de ce cryptosystème de la famille T± (n, u, r, K). La taille de cette clé publique est : (1/8). (n+u-r). (n+l). (n/2+l). log2 (q) octets.
La clé secrète est constituée de l'ensemble des polynômes gi (c'est-à-dire, de manière équivalente, de la fonction \f), ainsi que des transformations s et t.
Signature d'un message (selon la présente invention) Étant donné un message M, on pose (y'l,..., y'n+u-r) = Hash (M), où Hash est une fonction de hachage (sans collision). Pour signer le message M, l'utilisateur qui possède la clé secrète applique le procédé suivant : 1. Calculer (yl,..., Yn+u-r) = ri (yI,..., yn+u-r) ; 2. Choisir aléatoirement des r-uples (xn-r+t,..., Xn), jusqu'à ce que le n-uple (xi,..., Xn) obtenu par xi = y,-gi (xi,..., xi-i ; Xn-r+l,..., xn) (pour 1 < i < n-r) satisfasse les u équations gi (xi,..., xn) = yi (pour n-r+1 < i : : ; n-r+u).
3. Pour le n-uple (x,..., Xn) obtenu, calculer (x'i,..., x'n) = s' (xi,..., xn).
Remarque 1 : Ce procédé de signature a donc une complexité en O (du). Par conséquent, le cryptosystème T± (n, u, r, K) peut être utilisé pour signer de manière pratique dès que l'on suppose que qu est assez petit.
Remarque 2 : La condition u : : ; r assure que la probabilité de ne trouver aucune solution (xi,..., Xn) à l'équation (xi,.... Xn) = (yi,..., yn+u-r) est négligable, et donc que
<Desc/Clms Page number 13>
Figure img00130001

la fonction de schiff-zement F peut être considérée comme une surjection de Kr spur Kn+u Selon la présente invention, on génère aléatoirement les valeurs Xn-r+i,..., Xn appartenant à K, de telle sorte que ce tirage aléatoire est imprévisible (c'est-à-dire que l'attaquant ne peut pas prévoir ces valeurs à partir des données publiques dont il dispose) pour qui ne connaît que la clé publique et pas de secrets. Ceci peut se faire par exemple en utilisant un générateur physique de nombres aléatoires, ou en utilisant un générateur de nombres pseudo-aléatoires avec une clé secrète K', cette clé K'n'étant pas révélée. Par contre, il ne faut pas utiliser une technique publique de génération de nombres pseudo-aléatoires, qui permettrait à quelqu'un connaissant la clé publique et le message M de recalculer Xn-r+i,..., Xn.
8. Généralisation
Le procédé de la présente invention se généralise à tout algorithme de signature, dans lequel : 1. La vérification de la validité entre un message M et sa signature x = (xi,... Xn) se fait ainsi : on calcule tout d'abord y = Hash (M), où Hash est une fonction publique, puis on
Figure img00130002

vérifie que les m équations suivantes sont toutes satisfaites : y, =fi (xi,..., xn), 1 im, où les fi sont des fonctions quadratiques publiques à coefficients dans un corps fini K.
2. Pour signer (quand on connaît les secrets), on commence par choisir des valeurs arbitraires pour les variables ( cachées ) ym+1, ..., ym+r, qui dépendent également des valeurs xi,..., Xn par les relations
Figure img00130003

yi = fi (xl,..., xn), m+1 : 5 i : 5 m+r,
<Desc/Clms Page number 14>
Figure img00140001

où les fi sont également des fonctions quadratiques publiques à coefficients dans un corps fini K.
Selon le procédé de la présente invention, on génère aléatoirement les valeurs ym+i,, Ym+r appartenant à K, de telle sorte que ce tirage aléatoire est imprévisible (c'est-à-dire que l'attaquant ne peut pas prévoir ces valeurs à partir des données publiques et des valeurs yi,..., ym dont il dispose) pour qui ne connaît que la clé publique et pas de secrets. Ceci peut se faire par exemple en utilisant un générateur physique de nombres aléatoires, ou en utilisant un générateur de nombres pseudo-aléatoires avec une clé secrète K', cette clé K'n'étant pas révélée. Par contre, il ne faut pas utiliser une technique publique de génération de nombres pseudo-aléatoires, qui permettrait à quelqu'un connaissant la clé publique et le message M de recalculer ym+h...ym+r.
Références
Figure img00140002

[Cou Gou] : Nicolas Courtois, Louis Goubin, [Cou Gou Pat] : Nicolas Courtois, Louis Goubin et Jacques Patarin, C*-+ and HM : variations around two schemes of TMatsumo o and. Imai, ASIACRYPT'98, Springer LNCS 1514, Octobre 1998, pp. 35-49.
[Gou Kip Pat] : Louis Goubin, Aviad Kipnis et Jacques Patarin, Unbalanced Oil and Vinegar Signature Schemes, EUROCRYPT'99, Springer LNCS 1592, May 1999, pp. 206-222.
[Gou Pat] : Louis Goubin et Jacques Patarin, Asymmetric Cryptography with S-Boxes, ICICS97, Springer LNCS 1334, Novembre 1997, pp. 356-368.
<Desc/Clms Page number 15>
Figure img00150001
[Ima Mat 1] : H. Imai et T. Matsumoto, Algebraic Methods for Constructing Asymmetric Cryptosystems, Algebraic Algorithms and Error Correcting Codes (AAECC-3), Grenoble 1985, Springer-Verlag LNCS nu 229.
[Ima Mat 2] : H. Imai et T. Matsumoto, Public Quadratic Polynomials-tuples for efficient signature-verification and message-encryption, EUROCRYPT'88, SpringerVerlag 1988, pp. 419-453.
[Moh 1] : T. T. Moh, A public key system with signature and master key funetions, Communications in Algebra, 27 (5), pp. 2207-2222, 1999. Available at http ://www. usdsi. com/public. ps.
[Moh 2] : T. T. Moh, A fastpublic key system with signature and master keyfunctions, in Proceedings of CrypTEC'99, International Workshop on Cryptographie Techniques and E-commerce, Hong-Kong City University Press, pp. 63-69, July 1999. Available at http ://www. usdsi. com/cryptec. ps.
[Pat 1] : Jacques Patarin, Cryptanalysis of Matsumoto-Imai public key scheme of Eurocrypt'88, CRYPTO'95, Springer LNCS 963, Août 1995, pp. 248-261.
[Pat 2] : Jacques Patarin, Hidden Fields Equations (HFE) and Isomorphisms of Polynomials (IP) Iwo new Families of Asymmetric Algorithms, EUROCRYPT'96, Springer LNCS 1070, Mai 1996, pp. 33-48.
[Pat 3] : Jacques Patarin, Asymmetric Cryptography with a Hidden Monomial, CRYPTO'96, Springer LNCS 1109, Août 1996, pp. 45-60.
[RSA] : R. L. Rivest, A. Shamir, L. M. Adleman, A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, v. 21, n. 2, 1978, pp. 120-126.

Claims (1)

    Revendications Revendication 1 Procédé pour générer des signatures à clé publique dont la clé publique est un système de m équations quadratiques à n inconnues de la forme yi fi (xi,..., Xn),..., ym = fm (xi,..., Xn), les xi et yi appartenant à un corps fini K, et pour lequel le calcul d'une signature x = (xi,..., Xn) d'un message M vérifiant M = (yl,..., ym) ou (kl,, ym) = Hash (M), Hash étant une fonction publique, s'effectue en tirant aléatoirement r variables Ym+i,, ym+r de K, puis en cherchant une valeur x = (xi,..., Xn) satisfaisant aux m équations publiques et aux r équations secrètes supplémentaires de la forme ym+i = fm+i (xi,... xn), 1 : i i :
  1. 5 r, les fm+i étant des fonctions quadratiques secrètes, caractérisé en ce que le tirage aléatoire des valeurs ym+i,..., ym+r est imprévisible, c'est-à-dire que l'attaquant ne peut pas prévoir ces valeurs à partir des données publiques et des valeurs y1, ..., ym dont il dispose, pour qui ne connaît que la clé publique et pas de secret.
    Revendication 2 Procédé pour générer des signatures à clé publique selon la revendication 1 caractérisé en ce que les valeurs ym+i,, ym+r sont générées en utilisant un générateur physique de nombres aléatoires.
    Revendication 3 Procédé pour générer des signatures à clé publique selon la revendication 1 caractérisé en ce que les valeurs ym+,,..., ym+r sont générées en utilisant un générateur pseudo aléatoire ayant une clé secrète K'd'au moins 64 bits.
    <Desc/Clms Page number 17>
    Revendication 4 Procédé pour générer des signatures à clé publique selon la revendication 3 caractérisé en ce que le générateur pseudo aléatoire utilisé est déterministe, c'est-à-dire donnera toujours les mêmes sorties sur les mêmes entrées.
    Revendication 5 Procédé pour générer des signatures à clé publique selon la revendication 1 caractérisé en ce que l'algorithme de signature utilisé est un C*--.
    Revendication 6 Procédé pour générer des signatures à clé publique selon la revendication 1 caractérisé en ce que l'algorithme de signature utilisé est un HFEv-.
    Revendication 7 Procédé pour générer des signatures à clé publique selon la revendication 1 caractérisé en ce que l'algorithme de signature utilisé est un T±.
    Revendication 8 Dispositif selon les revendications précédentes caractérisé en ce que les signatures x sont générées par une carte à microprocesseur (carte à puce).
FR0012403A 2000-09-29 2000-09-29 Procede pour mettre en oeuvre une technique renforcant la securite des signatures a cle publique a base de polynomes multivariables Expired - Lifetime FR2815493B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0012403A FR2815493B1 (fr) 2000-09-29 2000-09-29 Procede pour mettre en oeuvre une technique renforcant la securite des signatures a cle publique a base de polynomes multivariables

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0012403A FR2815493B1 (fr) 2000-09-29 2000-09-29 Procede pour mettre en oeuvre une technique renforcant la securite des signatures a cle publique a base de polynomes multivariables

Publications (2)

Publication Number Publication Date
FR2815493A1 true FR2815493A1 (fr) 2002-04-19
FR2815493B1 FR2815493B1 (fr) 2004-12-31

Family

ID=8854814

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0012403A Expired - Lifetime FR2815493B1 (fr) 2000-09-29 2000-09-29 Procede pour mettre en oeuvre une technique renforcant la securite des signatures a cle publique a base de polynomes multivariables

Country Status (1)

Country Link
FR (1) FR2815493B1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8811608B2 (en) 2010-09-01 2014-08-19 Cisco Technology Inc. Attack-resistant multivariate signature scheme
WO2015004065A1 (fr) * 2013-07-12 2015-01-15 Koninklijke Philips N.V. Système de signature électronique

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL206139A0 (en) 2010-06-02 2010-12-30 Yaron Sella Efficient multivariate signature generation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263085A (en) * 1992-11-13 1993-11-16 Yeda Research & Development Co. Ltd. Fast signature scheme based on sequentially linearized equations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263085A (en) * 1992-11-13 1993-11-16 Yeda Research & Development Co. Ltd. Fast signature scheme based on sequentially linearized equations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SCHWENK J ET AL: "PUBLIC KEY ENCRYPTION AND SIGNATURE SCHEMES BASED ON POLYNOMIALS OVER N", ADVANCES IN CRYPTOLOGY - EUROCRYPT '96. INTERNATIONAL CONFERENCE ON THE THEORY AND APPLICATION OF CRYPTOGRAPHIC TECHNIQUES. SARAGOSSA, MAY 12 - 16, 1996, ADVANCES IN CRYPTOLOGY - EUROCRYPT. INTERNATIONAL CONFERENCE ON THE THEORY AND APPLICATION OF CR, 12 May 1996 (1996-05-12), pages 60 - 71, XP000577413, ISBN: 3-540-61186-X *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8811608B2 (en) 2010-09-01 2014-08-19 Cisco Technology Inc. Attack-resistant multivariate signature scheme
WO2015004065A1 (fr) * 2013-07-12 2015-01-15 Koninklijke Philips N.V. Système de signature électronique

Also Published As

Publication number Publication date
FR2815493B1 (fr) 2004-12-31

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
CN105024994B (zh) 无对运算的安全无证书混合签密方法
US10333718B2 (en) Method for the generation of a digital signature of a message, corresponding generation unit, electronic apparatus and computer program product
US7912216B2 (en) Elliptic curve cryptosystem optimization using two phase key generation
CN107707358A (zh) 一种ec‑kcdsa数字签名生成方法及系统
CN102957538A (zh) 信息处理设备和信息处理方法
EP1611709B1 (fr) Procede et systeme de cryptage
CN109861826B (zh) 一种双向代理重签名的实现方法及装置
CN112532394A (zh) 一种区块链抗签名可追踪的无证书盲签名生成方法
EP2179535B1 (fr) Procede asymetrique de chiffrement ou de verification de signature
EP0818094B1 (fr) Procede de communication cryptographique asymetrique, et objet portatif associe
CN105933101A (zh) 一种基于参数高次偏移的全同态加密公钥压缩方法
CN109618348B (zh) 一种单向代理重签名的实现方法及装置
Stallings Digital signature algorithms
FR2815493A1 (fr) Procede pour mettre en oeuvre une technique renforcant la securite des signatures a cle publique a base de polynomes multivariables
CN107070900A (zh) 基于混淆的可搜索重加密方法
CN110932866B (zh) 一种基于sm2数字签名算法的环签名生成方法
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
EP0980607A1 (fr) Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d&#39;aleas
Rosli et al. A review on pairing based cryptography in wireless sensor networks
FR2842052A1 (fr) Procede et dispositifs cryptographiques permettant d&#39;alleger les calculs au cours de transactions
WO2007057610A1 (fr) Systeme et procede cryptographique d&#39;authentification ou de signature
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
Wang Signer‐admissible strong designated verifier signature from bilinear pairings
CN114205081B (zh) 一种保护用户隐私的盲协同签名方法

Legal Events

Date Code Title Description
CA Change of address
TP Transmission of property
PLFP Fee payment

Year of fee payment: 17

PLFP Fee payment

Year of fee payment: 18

PLFP Fee payment

Year of fee payment: 19

PLFP Fee payment

Year of fee payment: 20