In 1985, René Schoof published a paper(opens new window)
titled "Counting points on elliptic curves over finite fields". It is about
an efficient algorithm for computing the number of points on elliptic
curves over finite fields
Fq.
The notes below are just a brief sketch of the proof.
Let us have the elliptic curve
E:y2=x3+ax+b
over
Fq.
By Hasse’s theorem:
#E=q+1−t,
t<2√q.
Let us have the set of primes
S={2,3,5,7,...,L}
such that the product of these primes is sufficiently large:
Πl∈Sl>4√q
The main idea behind Schoof’s algorithm is to compute
tmodlforeachl∈S
and then to compute
t
by using the Chinese remainder theorem.
Let
ϕq
be the Frobenius endomorphism:
ϕq(x,y)=(xq,yq)
It holds:
ϕq2−tϕq+q=0
So we have a formula which we can use to compute
t.
The formula above means:
(xq2,yq2)−t(xq,yq)+q(x,y)=0
We find a point
(x,y)
of the order
l.
Let
ql=qmodl.
Because we have a point of the order
l,
we have:
q(x,y)=ql(x,y)
And:
(xq2,yq2)+ql(x,y)=t(xq,yq)
The point
(xq,yq)
is also of the order
l,
so we compute
tl=tmodl
and have:
We know everything except
tl
in the equation.
We search for
tl
such that the equation holds. When we succeed, we know the number of points modulo
l.
We need to do this for all
l∈S
and then apply the Chinese remainder theorem.