Accouplement de Weil

Page d’aide sur l’homonymie

Pour les articles homonymes, voir Weil.

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],[5].

Définition

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

E [ n ] = { P E ( k ¯ ) [ n ] P = O } {\displaystyle E[n]=\left\{P\in E({\overline {k}})\mid [n]P=O\right\}}

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

w n : E [ n ] × E [ n ] μ n {\displaystyle w_{n}:E[n]\times E[n]\to \mu _{n}}
que l'on appelle accouplement de Weil. Cette fonction possède notamment les propriétés suivantes :

  • Bilinéarité : w n ( P + Q , R ) = w n ( P , R ) w n ( Q , R ) {\displaystyle w_{n}(P+Q,R)=w_{n}(P,R)w_{n}(Q,R)} .
  • Alternance : w n ( P , Q ) = w n ( Q , P ) 1 {\displaystyle w_{n}(P,Q)=w_{n}(Q,P)^{-1}} et en particulier, w n ( P , P ) = 1 {\displaystyle w_{n}(P,P)=1} .
  • Non-dégénerescence : si w n ( P , Q ) = 1 {\displaystyle w_{n}(P,Q)=1} pour tout Q E [ n ] {\displaystyle Q\in E[n]} alors P = O {\displaystyle P=O} ; de même si w n ( P , Q ) = 1 {\displaystyle w_{n}(P,Q)=1} pour tout P E [ n ] {\displaystyle P\in E[n]} , alors Q = O {\displaystyle Q=O} .
  • Invariance par les opérations du groupe de Galois : pour tout σ Gal ( k ¯ / k ) {\displaystyle \sigma \in \operatorname {Gal} ({\overline {k}}/k)} , w n ( P σ , Q σ ) = w n ( P , Q ) σ {\displaystyle w_{n}(P^{\sigma },Q^{\sigma })=w_{n}(P,Q)^{\sigma }}

Degré de plongement

Pour une courbe définie sur un corps fini F q {\displaystyle \mathbb {F} _{q}} , le plus petit entier {\displaystyle \ell } tel que n q 1 {\displaystyle n\mid q^{\ell }-1} est appelé « degré de plongement ». Il correspond au degré de la plus petite extension dans laquelle les racines n {\displaystyle 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 ( F q ) {\displaystyle E(\mathbb {F} _{q})} en plongeant le problème dans un corps fini, précisément F q {\displaystyle \mathbb {F} _{q^{\ell }}} , 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 à 2 249 {\displaystyle 2^{249}} [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],[9].

Construction explicite

Courbe elliptique définie sur ℂ

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

w n ( a + b τ , c + d τ ) = exp [ 2 i π n ( a d b c ) ] {\displaystyle w_{n}(a+b\tau ,c+d\tau )=\exp \left[2i\pi n\left(ad-bc\right)\right]}

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 ] {\displaystyle E[n]} , alors on peut obtenir aisément une expression analogue : soit { A , B } {\displaystyle \{A,B\}} une base de E [ n ] {\displaystyle E[n]} , on écrit P = a A + b B , Q = c A + d B {\displaystyle P=aA+bB,Q=cA+dB} , et on définit

w n ( P , Q ) = w n ( a A + b B , c A + d B ) = w n ( A , B ) ( a d b c ) {\displaystyle w_{n}(P,Q)=w_{n}(aA+bB,cA+dB)=w_{n}(A,B)^{\left(ad-bc\right)}}

Cependant, étant donnés des points P , Q {\displaystyle 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 {\displaystyle 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 {\displaystyle P} est un point de n {\displaystyle n} -torsion de la courbe, on pose le diviseur D P = n ( P ) n ( O ) {\displaystyle D_{P}=n(P)-n(O)} et on note f P {\displaystyle f_{P}} un élément du corps des fonctions sur E ( k ¯ ) {\displaystyle E({\overline {k}})} qui possède D P {\displaystyle D_{P}} pour diviseur[Note 4]. Sommairement, l'accouplement de Weil est défini par «  f P ( D Q ) / f Q ( D P ) {\displaystyle f_{P}(D_{Q})/f_{Q}(D_{P})}  » sauf que cette expression n'est pas définie. En effet, f P {\displaystyle f_{P}} possède un pôle en O supp D Q {\displaystyle O\in \operatorname {supp} D_{Q}} (et de même en intervertissant P {\displaystyle P} et Q {\displaystyle Q} ). Il suffit cependant de remplacer D P {\displaystyle D_{P}} (ou D Q {\displaystyle D_{Q}} ) par un diviseur linéairement équivalent, c'est-à-dire qui diffère de D P {\displaystyle D_{P}} (resp. D Q {\displaystyle D_{Q}} ) uniquement d'un diviseur principal.

En pratique, cela revient à décaler D P {\displaystyle D_{P}} en faisant intervenir un point arbitraire R {\displaystyle R} pour obtenir D P = n ( P + R ) n ( R ) {\displaystyle D_{P}'=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 f P {\displaystyle f_{P}} correspondant à un diviseur donné D P {\displaystyle D_{P}} 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 {\displaystyle f,g} du corps de fonctions de la courbe sur un corps algébriquement clos, f ( div g ) = g ( div f ) {\displaystyle f(\operatorname {div} g)=g(\operatorname {div} f)} [1].

Accouplement de Weil ℓ-adique

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

w T : T ( E ) × T ( E ) lim μ n {\displaystyle w_{T_{\ell }}:T_{\ell }(E)\times T_{\ell }(E)\to \varprojlim \mu _{\ell ^{n}}}

Exemple

Prenons q = p = 23 {\displaystyle q=p=23} , E : y 2 = x 3 x {\displaystyle E:y^{2}=x^{3}-x} [Note 5]. On a | E ( F q ) | = 24 {\displaystyle |E(\mathbb {F} _{q})|=24} . Le point P = ( 2 , 11 ) {\displaystyle P=(2,11)} est d'ordre m = 3 {\displaystyle m=3} . Le degré de plongement est k {\displaystyle k} (car 3 23 2 1 {\displaystyle 3\mid 23^{2}-1} ). Posons F q 2 = F q [ X ] / ( X 2 + 1 ) = F q ( i ) {\displaystyle \mathbb {F} _{q^{2}}=\mathbb {F} _{q}[X]/(X^{2}+1)=\mathbb {F} _{q}(i)} . Alors Q = ( 21 , 12 i ) E ( F q 2 ) {\displaystyle Q=(21,12i)\in E(\mathbb {F} _{q^{2}})} est aussi d'ordre 3. L'algorithme de Miller permet d'obtenir les diviseurs :

f P : y + 11 x + 13 f Q : y + 11 i x + 10 i {\displaystyle {\begin{aligned}f_{P}&:{}y+11x+13\\f_{Q}&:{}y+11ix+10i\end{aligned}}}
qui correspondent à

D P = 3 ( P ) 3 ( O ) D Q = 3 ( Q ) 3 ( O ) {\displaystyle {\begin{aligned}D_{P}&=3(P)-3(O)\\D_{Q}&=3(Q)-3(O)\end{aligned}}}

À 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 = ( 17 i , 21 + 2 i ) S = ( 18 i + 10 , 13 + 13 i ) {\displaystyle {\begin{aligned}R&=(17i,21+2i)\\S&=(18i+10,13+13i)\end{aligned}}}

deux points de E ( F q 2 ) {\displaystyle E(\mathbb {F} _{q^{2}})} . Et on pose

D P = ( P + R ) ( R ) D Q = ( Q + S ) ( S ) {\displaystyle {\begin{aligned}D_{P}'&=(P+R)-(R)\\D_{Q}'&=(Q+S)-(S)\end{aligned}}}
Les fonctions correspondantes s'obtiennent aisément au moyen de l'algorithme de Miller :
f P = f P ( v P + R P R ) 3 f Q = f Q ( v Q + S Q S ) 3 {\displaystyle {\begin{aligned}f_{P}'&=f_{P}\left({\frac {v_{P+R}}{\ell _{PR}}}\right)^{3}\\f_{Q}'&=f_{Q}\left({\frac {v_{Q+S}}{\ell _{QS}}}\right)^{3}\end{aligned}}}
Et finalement on a l'accouplement de Weil :
w m : E ( F q k ) [ m ] × E ( F q k ) [ m ] μ m w m : ( P , Q ) f P ( D Q ) f Q ( D P ) {\displaystyle {\begin{aligned}w_{m}&:{}E(\mathbb {F} _{q^{k}})[m]\times E(\mathbb {F} _{q^{k}})[m]\to \mu _{m}\\w_{m}&:{}(P,Q)\mapsto {\frac {f_{P}'(D_{Q}')}{f_{Q}'(D_{P}')}}\end{aligned}}}
On obtient w m ( P , Q ) = 15 i + 11 {\displaystyle w_{m}(P,Q)=15i+11} et on vérifie que c'est une racine cubique de l'unité. De même,
e m ( [ 2 ] P , Q ) = 8 i + 11 e m ( [ 2 ] P , [ 2 ] Q ) = 15 i + 11 {\displaystyle {\begin{aligned}e_{m}([2]P,Q)&=8i+11\\e_{m}([2]P,[2]Q)&=15i+11\end{aligned}}}
ce 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 {\displaystyle k} est de caractéristique positive, on requiert que n {\displaystyle n} et char k {\displaystyle \operatorname {char} k} 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

  1. a et b André Weil, « Sur les fonctions algébriques à corps de constantes fini », Les Comptes rendus de l'Académie des sciences, vol. 210,‎ , p. 592–594
  2. (en) Joseph H. Silverman, « A Survey of Local and Global Pairings on Elliptic Curves and Abelian Varieties », dans Lecture Notes in Computer Science, Springer Berlin Heidelberg, (ISBN 9783642174544, DOI 10.1007/978-3-642-17455-1_24, lire en ligne), p. 377–396
  3. a et b (en) Steven D. Galbraith, « The Weil pairing on elliptic curves over C », IACR ePrint Archive, no 323,‎ (lire en ligne, consulté le )
  4. a et b (en) Joseph H. Silverman, « The Arithmetic of Elliptic Curves », Graduate Texts in Mathematics,‎ (ISSN 0072-5285 et 2197-5612, DOI 10.1007/978-0-387-09494-6, lire en ligne, consulté le )
  5. (en) James Milne, « Abelian varieties »
  6. (en) A.J. Menezes, T. Okamoto et S.A. Vanstone, « Reducing elliptic curve logarithms to logarithms in a finite field », IEEE Transactions on Information Theory, vol. 39, no 5,‎ , p. 1639–1646 (ISSN 0018-9448, DOI 10.1109/18.259647, lire en ligne, consulté le )
  7. a et b (en) Daniel J. Bernstein, « SafeCurves : Transfers », sur cr.yp.to,
  8. (en) Steven D. Galbraith, « Supersingular Curves in Cryptography », dans Advances in Cryptology — ASIACRYPT 2001, Springer Berlin Heidelberg, (ISBN 9783540429876, DOI 10.1007/3-540-45682-1_29, lire en ligne), p. 495–513
  9. (en) Alfred Menezes, « Supersingular Elliptic Curves in Cryptography », dans Pairing-Based Cryptography – Pairing 2007, Springer Berlin Heidelberg, (ISBN 9783540734888, DOI 10.1007/978-3-540-73489-5_15, lire en ligne), p. 293–293
  10. Vanessa Vitse, Couplages sur courbes elliptiques définies sur des corps finis : Mémoire de Master 2, Université Versailles Saint-Quentin, , 42 p. (lire en ligne)
  • icône décorative Portail des mathématiques
  • icône décorative Portail de la cryptologie