Courbe de Montgomery
# Courbe de Montgomery

En mathématiques, la courbe de Montgomery est une forme de courbe elliptique, introduite par Peter L. Montgomery en 1987. Si une courbe elliptique peut en général être présentée sous forme de Weierstrass, la forme de Montgomery permet d’accélérer les opérations d'addition sur la courbe dans les corps finis, ce qui est un avantage dans de nombreuses applications de $cryptographie^,$ et de factorisation. Les courbes de Montgomery sont également en équivalence birationnelle avec les courbes d'Edwards.

## Définition

Une courbe de Montgomery sur un corps K de caractéristique différente de 2 est définie par l'équation

    $M_{A,B}:By^{2}=x^{3}+Ax^{2}+x$

pour certain A ∈ K ∖ {−2, 2}, B ∈ K ∖ {0}, avec $B(A^2$ − 4) ≠ 0. Si les corps finis sont le lieu naturel des applications cryptographiques, la même équation est utilisée pour l'algorithme de Lenstra sur l'anneau $\mathbb {Z} /(n)$, et on peut également considérer la courbe sur le corps des rationnels $\mathbb {Q}$.

## Arithmétique sur les courbes de Montgomery

L'introduction des courbes de Montgomery est motivée par l'existence d'un algorithme d'addition de points plus efficace que sur une courbe elliptique générale. Cet algorithme, découvert par Montgomery et qui porte aujourd'hui son nom, peut être vu comme un cas particulier d'addition sur la surface de Kummer correspondante.

### Surface de Kummer et coordonnées de Montgomery

On se place déjà en coordonnées projectives : $\mathbb {P} ^{2}K=\{(X:Y:Z)\mid (X,Y,Z)\in K\setminus (0,0,0)\}/\sim$ avec $(X:Y:Z)\sim (X':Y':Z')$ si et seulement s'il existe $\lambda \in K^{\times }$ tel que $X'=\lambda X,Y'=\lambda Y,Z'=\lambda Z$ . L'idée de Montgomery et d'ensuite oublier la coordonnée $Y$, et d'écrire la loi de groupe uniquement en termes de $X$ et $Z$.

Dans les applications où seule la coordonnée $x=X/Z$ est utilisée, telle que l'échange de clé de Diffie-Hellman sur courbes elliptiques, cette information est suffisante : c'est pourquoi une courbe de Montgomery telle que Curve25519 peut tout à fait être utilisée dans ce contexte.

### Échelle de Montgomery

Supposons que $P_{n}=[n]P=(X_{n}:Z_{n})$et $P_{m}=[m]P=(X_{m}:Z_{m})$avec $n\neq m$, alors on a directement

${\begin{aligned}X_{m+n}&=Z_{m-n}((X_{m}-Z_{m})(X_{n}+Z_{n})+(X_{m}+Z_{m})(X_{n}-Z_{n}))^{2}\\Z_{m+n}&=X_{m-n}((X_{m}-Z_{m})(X_{n}+Z_{n})-(X_{m}+Z_{m})(X_{n}-Z_{n}))^{2}\end{aligned}}$

c'est-à-dire trois multiplications et deux mises au carré dans $K$, les opérations d'addition et soustraction d'éléments de corps étant négligeables. Une formule pour le doublement (correspondant à $m=n$) est également aisément obtenue :

${\begin{aligned}X_{2n}&=(X_{n}+Z_{n})^{2}(X_{n}-Z_{n})^{2}\\Z_{2n}&=(4X_{n}Z_{n})((X_{n}-Z_{n})^{2}+((A+2)/4)(4X_{n}Z_{n}))\end{aligned}}$

où on a préalablement calculé $4X_{n}Z_{n}=(X_{n}+Z_{n})^{2}-(X_{n}-Z_{n})^{2}$

