In the The Hessian Form of an Elliptic Curve, (NP Smart – 2001), they began with the elliptic curve
$$E': y^2 +xy = x^3 + x^2 + b$$ defined over the $\operatorname{GF}(2^{192})$ with the polynomial basis in $t$ over $\operatorname{GF}(2)$, where $$t^{191} + t^9 + 1 = 0.$$
with
$$b = \texttt{0x4DE3965E00F2A1C6C9750156A6FEFBE5EEF780BF3EF20E48}$$
The curve group order
$$ 6 \cdot q = 3138550867693340381917894711648254768837315541933943803842$$ with prime $q$. A point of order 3 on $E'$ is given by the point $(x_3,y_3)$;
$$x_3 = \texttt{0x4763CFBC4340674B749E57887850E92C9B6BEDF58EEDC3BF}$$
$$y_3 = \texttt{0x14A96A1E53DCC3E73CFB22B80E8658CE0D6D8E82ED2AEC7D}$$
Then proposed a change of variable
$$ X = x + x_3 \quad Y =y+sx+x^2$$ where $$s = \frac{x_3^2+y_3}{x_3},$$
then the elliptic form is obtained.
$$E:Y^2 + XY + x_3 Y = X^3$$
Then using the above the Hessian Form is obtained;
$$ x^3 + y^3 + z^3 = Dxyz$$ where
$$D = \texttt{ 0x16A4C7C2030FAD1380ABF8C2D47DC3E0C20AF62F6EDD06A7}$$
- How does one find a point with order 3?
- What is the intuition behind the change of variables?
- How the Hessian form is obtained in the last step?
Best Answer
Since the situation in the OP is related to a special example, i will use this example to illustrate the steps. Computations are done in sage. Some ingredients in the OP differ from the one in the reference [Smart N.P., The Hessian form of an Elliptic Curve], these are marked in red. (Colors are also used to mark matching pieces in longer computations.) All computational details are given, if the computer support feels annoying for a community reader, please skip it, the remained part is still giving the frame of the structure.
We consider the field $$ F=\Bbb F_q=\Bbb F_2[T]/(T^{\color{red}{191}}+T^9+1) $$ with $q=2^{191}$ elements (migrated letter for the usual reason). Let $t$ be $T$ modulo the quotient ideal.
We associate the curve $E'$, given by the affine equation: $$ E': \ y^2 +xy = x^3 + x^2 + b\ . $$ The order of the curve is $6N$, with a big prime $N$. Let us initialize the curve in sage, and check the order.
We obtain so far:
So $Q$ is not a $3$-torsion point, it is rather a point of (prime) order $N$, useful for the usual cryptographic reasons.
We will forget this point $Q$ in the following, thus also using the notations / the variables
x3
andy3
for other purposes.In order to construct a $3$-torsion point, we consider the $3$-torsion (or division) polynomial, which is $$ x^4+x^3+b\ . $$ Formally one can see this as follows. Let $(x{_0},y{_0})$ be a point on the curve. The formal differential of the given curve equation, computed in this point, is $2y_0\; dy+x_0\; dy+y_0\; dx+3x_0^2\; dx+2x_0^2\; dx=0$, i.e. $(x_0^2+y_0)\; dx +x_0\; dy=0$. We formally replace $dx$, $dy$ by $(x-x_0)$, $(y-y_0)$ getting the tangent/line equation $(x_0^2+y_0)(x-x_0)+x_0(y-y_0)=0$. Its slope is a function $s$ of/in $(x_0,y_0)$, formally obtained as $$s=s(x_0,y_0)=\frac1{x_0}(x_0^2+y_0)\ .$$ Now we would like to obtain an equation for the first component in the identity $-2T_3=T_3$ of a $3$-torsion point $T_3$. It is $s^2+s+1=x$. This leads to $x^4+x^3+b=0$.
Code computing this polynomial and using it:
This gives:
To find all points of order three, we asked for the corresponding division polynomial, then for its roots in $F$, which correspond to the $x$-components of the $3$-torsion points. Then we tried to lift. Lifting needs the existence of a square root for the remained equation in $y$ (from $E'$), after plugging in the found $x$ value. We could lift one root of the $3$-torsion polynomial.
So the given point $Q$ is not a $3$-torsion point. But we have a good one. (There are two points sharing the same $x$-component, denoted above by
u
.)Let us check that
pol
is in fact $x^4+x^3+b$:This concludes (1).
Let $T_3(x_3,y_3)$ be the first $3$-torsion point from above. (The other one is $-T_3$.)
The second question. We are using a transformation of coordinates, which maps $T_3$ to the point $(0,0)$ of an other elliptic curve with equation in $X,Y$, obtained by passing from $(x,y)$ to $(X,Y)$ via $$ \begin{aligned} &\left\{ \begin{aligned} x &= X-x_3=X+x_3\ ,\\ y &= Y-sx-x^2_{\color{red}3}=Y+sx+x^2_{\color{red}3}\ , \end{aligned} \right. \\ &\qquad \qquad \text{ with }t=\frac{y_3}{x_3}\ ,\ s=x_3+t=x_3+\frac{y_3}{x_3} \\ &\left\{ \begin{aligned} X &= x+x_3\ ,\\ Y &=y+sx+x^2_{\color{red}3}\ , \end{aligned} \right. \\ &\qquad \qquad \text{ so that }T_3(x_3,y_3) \\ &\qquad \qquad \text{ goes to } (X_3,Y_3)=(x_3+x_3,y_3+sx_3+x_3^2)=(0,0)\ . \end{aligned} $$ We plug in $(x,y)$ from above in the equation $y^2 +xy = x^3 + x^2 + b$ of the given curve $E'$ and obtain (recalling that in our case $2=0$, so that for instance squaring is compatible with addition) an equation in $(X,Y)$: $$ \begin{aligned} y^2 &= (Y-sx-x^2_3)^2=(Y+sx+x^2_3)^2=Y^2+s^2x^2+x^4_3\\ &=Y^2+(x_3^2+t^2)(X^2+x_3^2) + x_3^4\ ,\\ &=Y^2+x_3^2X^2+t^2X^2+y_3^2\ ,\\ &=Y^2+s^2X^2+y_3^2\ , \\[2mm] xy &=(X+x_3)(Y+s(X+x_3)+x^2_3)\\ &=XY+x_3Y + (x_3+t)(X^2+x_3^2)+x_3^2X +x_3^3\ ,\\ &=XY+x_3Y + x_3X^2+tX^2+x_3^3+x_3y_3 +x_3^2X +x_3^3\\ &=XY+x_3Y + x_3X^2+tX^2+x_3y_3 +x_3^2X \ , \\[2mm] x^3+x^2+b &=(X^3+x_3X^2+x_3^2X+x_3^3)+(X^2+x_3^2)+b\ ,\\[2mm] &\text{ which implies}\\[2mm] 0 &=(y^2+xy)\pm(x^3+x^2+b)\\ &=Y^2 + \color{red}{s^2X^2} +\color{blue}{y_3^2}\\ &\qquad + XY + x_3Y + \color{red}{sX^2} + \color{blue}{x_3y_3} +x_3^2X \\ &\qquad\qquad + (X^3 + \color{red}{x_3X^2} + x_3^2X + \color{blue}{x_3^3}) + (\color{red}{X^2} + \color{blue}{x_3^2})+\color{blue}{b} \\ &=Y^2 + XY + x_3Y+X^3\\ &\qquad+ \color{red}{\underbrace{(s^2+s+x_3+1)}_{=0}}X^2 + \color{blue}{0} \\ &=Y^2 + XY + x_3Y+X^3\ . \end{aligned} $$ Note that the red term $s^2+s+x_3+1$ vanishes, since $x_3$ is a root of the $3$--torsion polynomial $x^4+x^3+b$: $$ \begin{aligned} x_3^2(s^2+s+x_3+1) &=x_3^2\left( x_3^2+\frac{y_3^2}{x_3^2} + x_3+\frac{y_3}{x_3} + x_3+1 \right) \\ &=x_3^4+\color{blue}{y_3^2+x_3y_3}+x_3^2\\ &=x_3^4+\color{blue}{x_3^3+x_3^2+b}+x_3^2\\ &=x_3^4+\color{blue}{x_3^3+b}\\ &=0\ . \end{aligned} $$ The sage code checking this vanishing is:
It gives:
Note that the procedure of moving the torsion point $T_3(x_3,y_3)$ to the point $(0,0)$ of an other elliptic curve in long Weierstraß form in $X,Y$, while also moving the tangent in $(0,0)$ to $Y=0$ is a standard procedure. See e.g.
https://en.wikipedia.org/wiki/Hessian_form_of_an_elliptic_curve#Definition
in the proposition [ Conversely... ].
This answers the second question (structurally and programmatically).
To obtain the hessian form from the equation: $$ E''\ :\ Y^2 + XY + x_3Y = X^3\ , $$ we proceed as in loc. cit., page 120, [§3. The Hessian Form of an Elliptic Curve]. The values for $a_1$, $a_3$ are in our case explicitly $1$ and $x_3$, so for instance $\Delta =x_3^3(1-27x_3)=x_3^3(1+x_3)=b$, and $\delta = 1+x_3$. We compute a root of the polynomial in $T$ $$ T^3-\delta T^2+\frac 13 \delta^2T+x_3\delta^2 $$ and build $$ D=3\frac{\mu-\delta}\mu =1+\frac{\delta}\mu \ . $$ The hex value for this number is...
which gives:
which is the same value as in loc. cit..