# Accouplement de Weil

En géométrie algébrique et en théorie des nombres, l'accouplement 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. Il s'agit d'un outil important dans l'étude de ces courbes.
Il est possible de définir un accouplement de Weil pour les courbes définies sur le corps des complexes ou sur des corps finis ; 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$^,$.

## Définition

On considère une courbe elliptique $E$ définie sur un corps $k$. Soit $n>0$ un entier, et on suppose que $k$ contient une racine primitive $n$-ième de l'unité, et on note $\mu _{n}$le groupe cyclique des racines $n$-ièmes de l'unité dans $k$. Notons enfin les points de $n$-torsion de la courbe :
$E[n]=\left\{P\in E({\overline {k}})\mid [n]P=O\right\}$
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 ${\overline {k}}$ est la clôture algébrique de $k$. Alors il existe un accouplement :
$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)$.
* Alternance : $w_{n}(P,Q)=w_{n}(Q,P)^{-1}$ et en particulier, $w_{n}(P,P)=1$.
* Non-dégénerescence : si $w_{n}(P,Q)=1$ pour tout $Q\in E[n]$ alors $P=O$; de même si $w_{n}(P,Q)=1$ pour tout $P\in E[n]$, alors $Q=O$.
* Invariance par les opérations du groupe de Galois : pour tout $\sigma \in \operatorname {Gal} ({\overline {k}}/k)$, $w_{n}(P^{\sigma },Q^{\sigma })=w_{n}(P,Q)^{\sigma }$

### Degré de plongement

Pour une courbe définie sur un corps fini $\mathbb {F} _{q}$, le plus petit entier $\ell$ tel que $n\mid q^{\ell }-1$ 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 qui permet notamment d'attaquer le problème du logarithme discret sur une courbe elliptique $E(\mathbb {F} _{q})$ en plongeant le problème dans un corps fini, précisément $\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}$. 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. C'est notamment le cas de plusieurs courbes supersingulières$^,$.

## Construction explicite
### Courbe elliptique définie sur ℂ

Une courbe elliptique définie sur $\mathbb {C}$ correspond à un quotient $E=\mathbb {C} /\langle 1,\tau \rangle$où $\tau$ appartient au demi-plan de Poincaré. Soient $a+b\tau ,c+d\tau \in E[n]$deux points de $n$-torsion, on définit l'accouplement de Weil par :
$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]$, 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
$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$, 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 $D_{P}=n(P)-n(O)$ et on note $f_{P}$ un élément du corps des fonctions sur $E({\overline {k}})$ qui possède $D_{P}$ pour diviseur. Sommairement, l'accouplement de Weil est défini par « $f_{P}(D_{Q})/f_{Q}(D_{P})$ » sauf que cette expression n'est pas définie. En effet, $f_{P}$ possède un pôle en $O\in \operatorname {supp} D_{Q}$ (et de même en intervertissant $P$ et $Q$). Il suffit cependant de remplacer $D_{P}$ (ou $D_{Q}$) par un diviseur linéairement équivalent, c'est-à-dire qui diffère de $D_{P}$ (resp. $D_{Q}$) uniquement d'un diviseur principal.
En pratique, cela revient à décaler $D_{P}$ en faisant intervenir un point arbitraire $R$ pour obtenir $D_{P}'=n(P+R)-n(R)$. La valeur de l'accouplement de Weil est bien sûr invariante par une telle modification.
Le calcul d'une fonction $f_{P}$ correspondant à un diviseur donné $D_{P}$ a longtemps été considéré difficile, jusqu'à l'introduction du très efficace algorithme de Miller.
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(\operatorname {div} g)=g(\operatorname {div} f)$.

### Accouplement de Weil ℓ-adique

Soit $\ell$ un premier positif (et premier avec la caractéristique de $k$ lorsque celle-ci est positive), alors on peut étendre l'accouplement de Weil $e_{\ell ^{n}}$ initialement défini sur $E[\ell ^{n}]$ pour l'appliquer au module de Tate $\ell$-adique, $T_{\ell }(E)$. On vérifie pour cela que la suite des accouplements pour les puissances successives de $\ell$ est projective, c'est-à-dire que $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 $\ell$ » $[\ell ]:E[\ell ^{n+1}]\to E[\ell ^{n}]$ et que l'application « mise à la puissance $\ell$ » $(\cdot )^{\ell }:\mu _{\ell ^{n+1}}\to \mu _{\ell ^{n}}$ forment également des systèmes projectifs compatibles, on définit l'accouplement de Weil $\ell$-adique comme la limite projective des accouplements sur $E[\ell ^{n}]$ :
$w_{T_{\ell }}:T_{\ell }(E)\times T_{\ell }(E)\to \varprojlim \mu _{\ell ^{n}}$

## Exemple

Prenons $q=p=23$, $E:y^{2}=x^{3}-x$. On a $|E(\mathbb {F} _{q})|=24$. Le point $P=(2,11)$ est d'ordre $m=3$. Le degré de plongement est $k$ (car $3\mid 23^{2}-1$). Posons $\mathbb {F} _{q^{2}}=\mathbb {F} _{q}[X]/(X^{2}+1)=\mathbb {F} _{q}(i)$. Alors $Q=(21,12i)\in E(\mathbb {F} _{q^{2}})$ est aussi d'ordre 3. L'algorithme de Miller permet d'obtenir les diviseurs :${\begin{aligned}f_{P}&:y+11x+13\\f_{Q}&:y+11ix+10i\end{aligned}}$qui correspondent à
${\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 :
${\begin{aligned}R&=(17i,21+2i)\\S&=(18i+10,13+13i)\end{aligned}}$
deux points de $E(\mathbb {F} _{q^{2}})$. Et on pose${\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 :${\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 :${\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)=15i+11$ et on vérifie que c'est une racine cubique de l'unité. De même, ${\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é.