# I need to represent the Elliptic curve point in projective coordinate with Z coordinate has value not normalized 1

the points over elliptic curve defined over finite field always displayed in projective coordinates (X:Y:Z) with normalised Z component ( always Z = 1). i need points to be in normal projective coordinates ( Z component not always 1 )

edit retag close merge delete

Example code that can be copy-pasted in a fresh Sage session to illustrate the problem helps others get started on answering a question, and therefore increases the chances and the expected speed of an answer. Please give us something to play with!

( 2020-04-29 11:31:39 -0600 )edit

Sort by » oldest newest most voted

It is hard to extract (exactly the intentioned) question, but i will try to cover all nuances.

First of all, not all points are shown with a $Z$-normalized component, as the following example is showing it.

sage: E = EllipticCurve( GF(7), [3, 4] )
sage: for P in E:
....:     print(P)
....:
(0 : 1 : 0)
(0 : 2 : 1)
(0 : 5 : 1)
(1 : 1 : 1)
(1 : 6 : 1)
(2 : 2 : 1)
(2 : 5 : 1)
(5 : 2 : 1)
(5 : 5 : 1)
(6 : 0 : 1)


And indeed, all but one points have a $Z$-component normalized to one, but the neutral point $O$ is shown as $(0:1:0)$. For all points we can initialize them using the $(x,y)$ notation (if the $Z$-component does not vanish), for instance:

sage: E.point( [2, 5] )
(2 : 5 : 1)


but also using "projective components" (in a list), for instance for the above point:

sage: E.point( [2, 5] )
(2 : 5 : 1)
sage: E.point( [2, 5, 1] )
(2 : 5 : 1)
sage: E.point( [4, 10, 2] )
(2 : 5 : 1)
sage: E.point( [6, 15, 3] )
(2 : 5 : 1)
sage: E.point( [-1, 1, 3] )
(2 : 5 : 1)


et caetera. The "infinity point" is

sage: E.point(0)
(0 : 1 : 0)
sage: E.point( [0, 1, 0] )
(0 : 1 : 0)
sage: E.point( [0, 2, 0] )
(0 : 1 : 0)


so we can introduce it in either of the above ways.

more