AGM point-counting algorithm

43 Views Asked by At

I'm currently working on an implementation of a simple ElGamal ECC protocol, and I need to implement a point-counting algorithm to calculate the order of an elliptic curve group. I've chosen to implement the AGM algorithm by Mestre described in this paper: https://link.springer.com/chapter/10.1007/3-540-36178-2_20

At the moment I have the coefficients of my elliptic curve in $\mathbb{F}_{2^m}$, but it seems to me that the calculations done in the algorithm are done with elements in $\mathbb{Z}_{2^m}$ (or the polynomials with 2-adic number coefficients). I would like to understand what is meant when the author says:

The ring $\mathbb{Z}_q$ comes with the natural "reduction modulo 2" homomorphism onto $\mathbb{F}_q$. For $x\in\mathbb{Z}_q$, the notation $x\bmod 2$ means the element of $\mathbb{F}_q$ image of $x$ by this homomorphism.

When describing the AGM algorithm, the author mentions:

Let $a_6$ be an element of $\mathbb{F}^*_q\hspace{0.5em}$ ... $\hspace{0.5em}$ We denote also by $a_6$ an arbitrary element of $\mathbb{Z}_q$ that reduces to $a_6$ modulo 2.

My question is how does such an element reduce to an element of $\mathbb{F}_q$?