A Montgomery curve over a field K is defined by the equation
M
A
,
B
:
B
y
2
=
x
3
+
A
x
2
+
x
for certain A, B ∈ K and with B(A2 − 4) ≠ 0.
Generally this curve is considered over a finite field K (for example, over a finite field of q elements, K = Fq) with characteristic different from 2 and with A ∈ K ∖ {−2, 2}, B ∈ K ∖ {0}, but they are also considered over the rationals with the same restrictions for A and B.
It is possible to do some "operations" between the points of an elliptic curve: "adding" two points
P
,
Q
consists of finding a third one
R
such that
R
=
P
+
Q
; "doubling" a point consists of computing
[
2
]
P
=
P
+
P
(For more information about operations see The group law) and below.
A point
P
=
(
x
,
y
)
on the elliptic curve in the Montgomery form
B
y
2
=
x
3
+
A
x
2
+
x
can be represented in Montgomery coordinates
P
=
(
X
:
Z
)
, where
P
=
(
X
:
Z
)
are projective coordinates and
x
=
X
/
Z
for
Z
≠
0
.
Notice that this kind of representation for a point loses information: indeed, in this case, there is no distinction between the affine points
(
x
,
y
)
and
(
x
,
−
y
)
because they are both given by the point
(
X
:
Z
)
. However, with this representation it is possible to obtain multiples of points, that is, given
P
=
(
X
:
Z
)
, to compute
[
n
]
P
=
(
X
n
:
Z
n
)
.
Now, considering the two points
P
n
=
[
n
]
P
=
(
X
n
:
Z
n
)
and
P
m
=
[
m
]
P
=
(
X
m
:
Z
m
)
: their sum is given by the point
P
m
+
n
=
P
m
+
P
n
=
(
X
m
+
n
:
Z
m
+
n
)
whose coordinates are:
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
If
m
=
n
, then the operation becomes a "doubling"; the coordinates of
[
2
]
P
n
=
P
n
+
P
n
=
P
2
n
=
(
X
2
n
:
Z
2
n
)
are given by the following equations:
4
X
n
Z
n
=
(
X
n
+
Z
n
)
2
−
(
X
n
−
Z
n
)
2
X
2
n
=
(
X
n
+
Z
n
)
2
(
X
n
−
Z
n
)
2
Z
2
n
=
(
4
X
n
Z
n
)
(
(
X
n
−
Z
n
)
2
+
(
(
A
+
2
)
/
4
)
(
4
X
n
Z
n
)
)
The first operation considered above (addition) has a time-cost of 3M+2S, where M denotes the multiplication between two general elements of the field on which the elliptic curve is defined, while S denotes squaring of a general element of the field.
The second operation (doubling) has a time-cost of 2M+2S+1D, where D denotes the multiplication of a general element by a constant; notice that the constant is
(
A
+
2
)
/
4
, so
A
can be chosen in order to have a small D.
Algorithm and example
The following algorithm represents a doubling of a point
P
1
=
(
X
1
:
Z
1
)
on an elliptic curve in the Montgomery form.
It is assumed that
Z
1
=
1
. The cost of this implementation is 1M + 2S + 1*A + 3add + 1*4. Here M denotes the multiplications required, S indicates the squarings, and a refers to the multiplication by A.
X
X
1
=
X
1
2
X
3
=
(
X
X
1
−
1
)
2
Z
3
=
4
X
1
(
X
X
1
+
a
X
1
+
1
)
Let
P
1
=
(
2
,
3
)
be a point on the curve
2
y
2
=
x
3
−
x
2
+
x
. In coordinates
(
X
1
:
Z
1
)
, with
x
1
=
X
1
/
Z
1
,
P
1
=
(
2
:
1
)
.
Then:
X
X
1
=
X
1
2
=
4
X
3
=
(
X
X
1
−
1
)
2
=
9
Z
3
=
4
X
1
(
X
X
1
+
A
X
1
+
1
)
=
24
The result is the point
P
3
=
(
X
3
:
Z
3
)
=
(
9
:
24
)
such that
P
3
=
2
P
1
.
Given two points
P
1
=
(
x
1
,
y
1
)
,
P
2
=
(
x
2
,
y
2
)
on the Montgomery curve
M
A
,
B
in affine coordinates, the point
P
3
=
P
1
+
P
2
represents, geometrically the third point of intersection between
M
A
,
B
and the line passing through
P
1
and
P
2
. It is possible to find the coordinates
(
x
3
,
y
3
)
of
P
3
, in the following way:
1) consider a generic line
y
=
l
x
+
m
in the affine plane and let it pass through
P
1
and
P
2
(impose the condition), in this way, one obtains
l
=
y
2
−
y
1
x
2
−
x
1
and
m
=
y
1
−
(
y
2
−
y
1
x
2
−
x
1
)
x
1
;
2) intersect the line with the curve
M
A
,
B
, substituting the
y
variable in the curve equation with
y
=
l
x
+
m
; the following equation of third degree is obtained:
x
3
+
(
A
−
B
l
2
)
x
2
+
(
1
−
2
B
l
m
)
x
−
B
m
2
=
0
.
As it has been observed before, this equation has three solutions that correspond to the
x
coordinates of
P
1
,
P
2
and
P
3
. In particular this equation can be re-written as:
(
x
−
x
1
)
(
x
−
x
2
)
(
x
−
x
3
)
=
0
3) Comparing the coefficients of the two identical equations given above, in particular the coefficients of the terms of second degree, one gets:
−
x
1
−
x
2
−
x
3
=
A
−
B
l
2
.
So,
x
3
can be written in terms of
x
1
,
y
1
,
x
2
,
y
2
, as:
x
3
=
B
(
y
2
−
y
1
x
2
−
x
1
)
2
−
A
−
x
1
−
x
2
.
4) To find the
y
coordinate of the point
P
3
it is sufficient to substitute the value
x
3
in the line
y
=
l
x
+
m
. Notice that this will not give the point
P
3
directly. Indeed, with this method one find the coordinates of the point
R
such that
R
+
P
1
+
P
2
=
P
∞
, but if one needs the resulting point of the sum between
P
1
and
P
2
, then it is necessary to observe that:
R
+
P
1
+
P
2
=
P
∞
if and only if
−
R
=
P
1
+
P
2
. So, given the point
R
, it is necessary to find
−
R
, but this can be done easily by changing the sign to the
y
coordinate of
R
. In other words, it will be necessary to change the sign of the
y
coordinate obtained by substituting the value
x
3
in the equation of the line.
Resuming, the coordinates of the point
P
3
=
(
x
3
,
y
3
)
,
P
3
=
P
1
+
P
2
are:
x
3
=
B
(
y
2
−
y
1
)
2
(
x
2
−
x
1
)
2
−
A
−
x
1
−
x
2
=
B
(
x
2
y
1
−
x
1
y
2
)
2
x
1
x
2
(
x
2
−
x
1
)
2
y
3
=
(
2
x
1
+
x
2
+
A
)
(
y
2
−
y
1
)
x
2
−
x
1
−
B
(
y
2
−
y
1
)
3
(
x
2
−
x
1
)
3
−
y
1
Given a point
P
1
on the Montgomery curve
M
A
,
B
, the point
[
2
]
P
1
represents geometrically the third point of intersection between the curve and the line tangent to
P
1
; so, to find the coordinates of the point
P
3
=
2
P
1
it is sufficient to follow the same method given in the addition formula; however, in this case, the line y=lx+m has to be tangent to the curve at
P
1
, so, if
M
A
,
B
:
f
(
x
,
y
)
=
0
with
f
(
x
,
y
)
=
x
3
+
A
x
2
+
x
−
B
y
2
,
then the value of l, which represents the slope of the line, is given by:
l
=
−
∂
f
∂
x
/
∂
f
∂
y
by the implicit function theorem.
So
l
=
3
x
1
2
+
2
A
x
1
+
1
2
B
y
1
and the coordinates of the point
P
3
,
P
3
=
2
P
1
are:
x
3
=
B
l
2
−
A
−
x
1
−
x
1
=
B
(
3
x
1
2
+
2
A
x
1
+
1
)
2
(
2
B
y
1
)
2
−
A
−
x
1
−
x
1
=
(
x
1
2
−
1
)
2
4
B
y
1
2
=
(
x
1
2
−
1
)
2
4
x
1
(
x
1
2
+
A
x
1
+
1
)
y
3
=
(
2
x
1
+
x
1
+
A
)
l
−
B
l
3
−
y
1
=
(
2
x
1
+
x
1
+
A
)
(
3
x
1
2
+
2
A
x
1
+
1
)
2
B
y
1
−
B
(
3
x
1
2
+
2
A
x
1
+
1
)
3
(
2
B
y
1
)
3
−
y
1
.
Let
K
be a field with characteristic different from 2.
Let
M
A
,
B
be an elliptic curve in the Montgomery form:
M
A
,
B
:
B
v
2
=
u
3
+
A
u
2
+
u
with
A
∈
K
∖
{
−
2
,
2
}
,
B
∈
K
∖
{
0
}
and let
E
a
,
d
be an elliptic curve in the twisted Edwards form:
E
a
,
d
:
a
x
2
+
y
2
=
1
+
d
x
2
y
2
,
with
a
,
d
∈
K
∖
{
0
}
,
a
≠
d
.
The following theorem shows the birational equivalence between Montgomery curves and twisted Edwards curves:
Theorem (i) Every twisted Edwards curve is birationally equivalent to a Montgomery curve over
K
. In particular, the twisted Edwards curve
E
a
,
d
is birationally equivalent to the Montgomery curve
M
A
,
B
where
A
=
2
(
a
+
d
)
a
−
d
, and
B
=
4
a
−
d
.
The map:
ψ
:
E
a
,
d
→
M
A
,
B
(
x
,
y
)
↦
(
u
,
v
)
=
(
1
+
y
1
−
y
,
1
+
y
(
1
−
y
)
x
)
is a birational equivalence from
E
a
,
d
to
M
A
,
B
, with inverse:
ψ
−
1
:
M
A
,
B
→
E
a
,
d
(
u
,
v
)
↦
(
x
,
y
)
=
(
u
v
,
u
−
1
u
+
1
)
,
a
=
A
+
2
B
,
d
=
A
−
2
B
Notice that this equivalence between the two curves is not valid everywhere: indeed the map
ψ
is not defined at the points
v
=
0
or
u
+
1
=
0
of the
M
A
,
B
.
Any elliptic curve can be written in Weierstrass form.
So, the elliptic curve in the Montgomery form
M
A
,
B
:
B
y
2
=
x
3
+
A
x
2
+
x
,
can be transformed in the following way: divide each term of the equation for
M
A
,
B
by
B
3
, and substitute the variables x and y, with
u
=
x
B
and
v
=
y
B
respectively, to get the equation
v
2
=
u
3
+
A
B
u
2
+
1
B
2
u
.
To obtain a short Weierstrass form from here, it is sufficient to replace u with the variable
t
−
A
3
B
:
v
2
=
(
t
−
A
3
B
)
3
+
A
B
(
t
−
A
3
B
)
2
+
1
B
2
(
t
−
A
3
B
)
;
finally, this gives the equation:
v
2
=
t
3
+
(
3
−
A
2
3
B
2
)
t
+
(
2
A
3
−
9
A
27
B
3
)
.
Hence the mapping is given as
ψ
:
M
A
,
B
→
E
(
x
,
y
)
↦
(
t
,
v
)
=
(
x
B
+
A
3
B
,
y
B
)
,
a
=
3
−
A
2
3
B
2
,
b
=
2
A
3
−
9
A
27
B
3