Accouplement de Weil

De testwiki
Aller à la navigation Aller à la recherche

Modèle:Voir homonymes En géométrie algébrique et en théorie des nombres, l'accouplement[Note 1] de Weil est une relation mathématique entre certains points d'une courbe elliptique, plus spécifiquement une application bilinéaire fonctorielle entre ses points de torsion. Cet accouplement est nommé en l'honneur du mathématicien français André Weil, qui en a systématisé l'étude[1]. Il s'agit d'un outil important dans l'étude de ces courbes[2].

Il est possible de définir un accouplement de Weil pour les courbes définies sur le corps des complexes[3] ou sur des corps finis[4] ; dans ce dernier cas, l'algorithme de Miller permet de le calculer efficacement, ce qui est à la base de la cryptographie à base de couplages sur les courbes elliptiques. Une construction similaire s'étend aux variétés algébriques plus générales[Note 2]Modèle:,[5].

Définition

On considère une courbe elliptique E définie sur un corps k. Soit n>0 un entier[Note 3], et on suppose que k contient une racine primitive n-ième de l'unité, et on note μnle groupe cyclique des racines n-ièmes de l'unité dans k. Notons enfin les points de n-torsion de la courbe :

E[n]={PE(k)[n]P=O}

[n] est l'application de « multiplication par n » dans le groupe des points rationnels de la courbe, O est l'élément neutre du groupe (le « point à l'infini »), et k est la clôture algébrique de k. Alors il existe un accouplement :

wn:E[n]×E[n]μnque l'on appelle accouplement de Weil. Cette fonction possède notamment les propriétés suivantes :

  • Bilinéarité : wn(P+Q,R)=wn(P,R)wn(Q,R).
  • Alternance : wn(P,Q)=wn(Q,P)1 et en particulier, wn(P,P)=1.
  • Non-dégénerescence : si wn(P,Q)=1 pour tout QE[n] alors P=O; de même si wn(P,Q)=1 pour tout PE[n], alors Q=O.
  • Invariance par les opérations du groupe de Galois : pour tout σGal(k/k), wn(Pσ,Qσ)=wn(P,Q)σ

Degré de plongement

Pour une courbe définie sur un corps fini 𝔽q, le plus petit entier tel que nq1 est appelé « degré de plongement ». Il correspond au degré de la plus petite extension dans laquelle les racines n-ièmes de l'unité sont définies. Cette terminologie provient de l'attaque MOV[6] qui permet notamment d'attaquer le problème du logarithme discret sur une courbe elliptique E(𝔽q) en plongeant le problème dans un corps fini, précisément 𝔽q, dans lequel des algorithmes plus efficaces sont connus tels que le crible du corps de nombre généralisé. Les applications cryptographiques reposent donc souvent sur des courbes à haut degré de plongement pour éviter de telles attaques : par exemple Curve25519 a un degré de plongement supérieur à 2249[7]. Dans les applications de cryptographie à base de couplages on utilise au contraire des courbes dont le degré de plongement est faible : la courbe de Barreto-Naehrig BN(2,254) par exemple a un degré de plongement égal à 12[7]. C'est notamment le cas de plusieurs courbes supersingulières[8]Modèle:,[9].

Construction explicite

Courbe elliptique définie sur ℂ

Une courbe elliptique définie sur correspond à un quotient E=/1,ττ appartient au demi-plan de Poincaré. Soient a+bτ,c+dτE[n]deux points de n-torsion, on définit l'accouplement de Weil par[3] :

wn(a+bτ,c+dτ)=exp[2iπn(adbc)]

On vérifie immédiatement que cette expression satisfait les propriétés d'un accouplement.

Cas général sur une courbe elliptique

D'une manière générale, si on connaît une base de E[n], alors on peut obtenir aisément une expression analogue : soit {A,B} une base de E[n], on écrit P=aA+bB,Q=cA+dB, et on définit

wn(P,Q)=wn(aA+bB,cA+dB)=wn(A,B)(adbc)

Cependant, étant donnés des points P,Q, il est nécessaire en général de résoudre un problème de logarithme discret sur la courbe elliptique pour être capable d'exprimer les coordonnées a,b,c,d utilisées dans l'expression ci-dessus.

Le cas général est en fait mieux décrit en termes de diviseurs, qui se prête également volontiers au calcul explicite. Si P est un point de n-torsion de la courbe, on pose le diviseur DP=n(P)n(O) et on note fP un élément du corps des fonctions sur E(k) qui possède DP pour diviseur[Note 4]. Sommairement, l'accouplement de Weil est défini par « fP(DQ)/fQ(DP) » sauf que cette expression n'est pas définie. En effet, fP possède un pôle en OsuppDQ (et de même en intervertissant P et Q). Il suffit cependant de remplacer DP (ou DQ) par un diviseur linéairement équivalent, c'est-à-dire qui diffère de DP (resp. DQ) uniquement d'un diviseur principal.

En pratique, cela revient à décaler DP en faisant intervenir un point arbitraire R pour obtenir DP=n(P+R)n(R). La valeur de l'accouplement de Weil est bien sûr invariante par une telle modification[4].

Le calcul d'une fonction fP correspondant à un diviseur donné DP a longtemps été considéré difficile, jusqu'à l'introduction du très efficace algorithme de Miller [10].

Le caractère alternant de l'accouplement ainsi obtenu est évident ; la bilinéarité découle en général de la loi de réciprocité de Weil, à savoir que pour deux fonctions f,g du corps de fonctions de la courbe sur un corps algébriquement clos, f(divg)=g(divf)[1].

Accouplement de Weil ℓ-adique

Soit un premier positif (et premier avec la caractéristique de k lorsque celle-ci est positive), alors on peut étendre l'accouplement de Weil en initialement défini sur E[n] pour l'appliquer au module de Tate -adique, T(E). On vérifie pour cela que la suite des accouplements pour les puissances successives de est projective, c'est-à-dire que en+1(P,Q)=en([]P,[]Q), ce qui découle directement de la bilinéarité. Puisque l'application « multiplication par  » []:E[n+1]E[n] et que l'application « mise à la puissance  » ():μn+1μn forment également des systèmes projectifs compatibles, on définit l'accouplement de Weil -adique comme la limite projective des accouplements sur E[n] :

wT:T(E)×T(E)limμn

Exemple

Prenons q=p=23, E:y2=x3x[Note 5]. On a |E(𝔽q)|=24. Le point P=(2,11) est d'ordre m=3. Le degré de plongement est k (car 32321). Posons 𝔽q2=𝔽q[X]/(X2+1)=𝔽q(i). Alors Q=(21,12i)E(𝔽q2) est aussi d'ordre 3. L'algorithme de Miller permet d'obtenir les diviseurs :fP:y+11x+13fQ:y+11ix+10iqui correspondent à

DP=3(P)3(O)DQ=3(Q)3(O)

À cause du point soulevé précédemment, on ne peut pas directement évaluer, il faut faire intervenir un point pour déplacer le diviseur. Par souci de symétrie considérons deux points et on déplacera les deux diviseurs :

R=(17i,21+2i)S=(18i+10,13+13i)

deux points de E(𝔽q2). Et on poseDP=(P+R)(R)DQ=(Q+S)(S)Les fonctions correspondantes s'obtiennent aisément au moyen de l'algorithme de Miller :fP=fP(vP+RPR)3fQ=fQ(vQ+SQS)3Et finalement on a l'accouplement de Weil :wm:E(𝔽qk)[m]×E(𝔽qk)[m]μmwm:(P,Q)fP(DQ)fQ(DP)On obtient wm(P,Q)=15i+11 et on vérifie que c'est une racine cubique de l'unité. De même, em([2]P,Q)=8i+11em([2]P,[2]Q)=15i+11ce qui vérifie les relations de bilinéarité.

Voir aussi

Notes et références

Notes

  1. On utilise parfois le terme de « couplage » par analogie avec l'anglais pairing, mais Weil lui-même utilise bien « accouplement » avec le sens mathématique précis que recouvre ce terme.
  2. Dans ce cas, l'accouplement porte entre les points de torsion de la variété et les points de torsion de sa variété duale.
  3. Si k est de caractéristique positive, on requiert que n et chark soient premiers entre eux.
  4. Un tel élément existe et est unique à une constante multiplicative près.
  5. Il s'agit d'une courbe elliptique supersingulière.

Références

Modèle:Portail