Twisted Hessian curves
In mathematics, the Twisted Hessian curve represents a generalization of Hessian curves; it was introduced in elliptic curve cryptography to speed up the addition and doubling formulas and to have strongly unified arithmetic. In some operations (see the last sections), it is close in speed to Edwards curves.
Definition
Let K be a field. According to[1] twisted Hessian curves were introduced by Bernstein, Lange, and Kohel.
The twisted Hessian form in affine coordinates is given by:
[math]\displaystyle{ a\cdot x^3+y^3+1=d\cdot x\cdot y }[/math]
and in projective coordinates:
[math]\displaystyle{ a\cdot X^3+Y^3+Z^3=d\cdot X\cdot Y\cdot Z }[/math]
where [math]\displaystyle{ x=\frac{X}{Z} }[/math] and [math]\displaystyle{ y=\frac{Y}{Z} }[/math] and a, d in K
Note that these curves are birationally equivalent to Hessian curves.
The Hessian curve is just a special case of Twisted Hessian curve, with a=1.
Considering the equation a · x3 + y3 + 1 = d · x · y, note that:
if a has a cube root in K, there exists a unique b such that a = b3.Otherwise, it is necessary to consider an extension field of K (e.g., K(a1/3)). Then, since b3 · x3 = bx3, defining t = b · x, the following equation is needed (in Hessian form) to do the transformation:
[math]\displaystyle{ t^3+y^3+1=d\cdot x\cdot y }[/math].
This means that Twisted Hessian curves are birationally equivalent to elliptic curve in Weierstrass form.
Group law
It is interesting to analyze the group law of the elliptic curve, defining the addition and doubling formulas (because the simple power analysis and differential power analysis attacks are based on the running time of these operations). In general, the group law is defined in the following way: if three points lies in the same line then they sum up to zero. So, by this property, the explicit formulas for the group law depend on the curve shape.
Let P = (x1, y1) be a point, then its inverse is −P = (x1/y1, 1/y1) in the plane. In projective coordinates, let P = (X : Y : Z) be one point, then −P = (X1/Y1 : 1/Y1 : Z) is the inverse of P.
Furthermore, the neutral element (in affine plane) is: θ = (0, −1) and in projective coordinates: θ = (0 : −1 : 1).
In some applications of elliptic curve cryptography and the elliptic curve method of integer factorization (ECM) it is necessary to compute the scalar multiplications of P, say [n]P for some integer n, and they are based on the double-and-add method; so the addition and doubling formulas are needed.
The addition and doubling formulas for this elliptic curve can be defined, using the affine coordinates to simplify the notation:
Addition formulas
Let p = (x1, y1) and Q = (x2, y2); then, R = P + Q = (x3, y3) is given by the following equations:
[math]\displaystyle{ x_3=\frac{x_1-y_1^2\cdot x_2\cdot y_2}{a\cdot x_1\cdot y_1\cdot x_2^2-y_2} }[/math]
[math]\displaystyle{ y_3=\frac{y_1\cdot y_2^2 -a\cdot x_1^2\cdot x_2}{a\cdot x_1\cdot y_1\cdot x_2^2-y_2} }[/math]
Doubling formulas
Let P = (x, y); then [2]P = (x1, y1) is given by the following equations:
[math]\displaystyle{ x_1=\frac{x-y^3\cdot x}{a\cdot y\cdot x^3-y} }[/math]
[math]\displaystyle{ y_1=\frac{y^3-a\cdot x^3}{a\cdot y\cdot x^3-y} }[/math]
Algorithms and examples
Here some efficient algorithms of the addition and doubling law are given; they can be important in cryptographic computations, and the projective coordinates are used to this purpose.
Addition
[math]\displaystyle{ A = X_1\cdot Z_2 }[/math]
[math]\displaystyle{ B = Z_1\cdot Z_2 }[/math]
[math]\displaystyle{ C = Y_1X_2 }[/math]
[math]\displaystyle{ D = Y_1\cdot Y_2 }[/math]
[math]\displaystyle{ E = Z_1\cdot Y_2 }[/math]
[math]\displaystyle{ F = a\cdot X_1\cdot X_2 }[/math]
[math]\displaystyle{ X_3 = A\cdot B-C\cdot D }[/math]
[math]\displaystyle{ Y_3 = D\cdot E-F\cdot A }[/math]
[math]\displaystyle{ Z_3 = F\cdot C-B\cdot E }[/math]
The cost of this algorithm is 12 multiplications, one multiplication by a (constant) and 3 additions.
Example:
let P1 = (1 : −1 : 1) and P2 = (−2 : 1 : 1) be points over a twisted Hessian curve with a=2 and d=-2.Then R = P1 + P2 is given by:
[math]\displaystyle{ A=-1; B=-1; C=-1; D=-1; E=1; F=2; }[/math]
- [math]\displaystyle{ x_3=0 }[/math]
- [math]\displaystyle{ y_3=-3 }[/math]
- [math]\displaystyle{ z_3=-3 }[/math]
That is, R= (0 : −3 : −3).
Doubling
[math]\displaystyle{ D = X_1^3 }[/math]
[math]\displaystyle{ E = Y_1^3 }[/math]
[math]\displaystyle{ F = Z_1^3 }[/math]
[math]\displaystyle{ G = a\cdot D }[/math]
[math]\displaystyle{ X_3 = X_1\cdot (E-F) }[/math]
[math]\displaystyle{ Y_3 = Z_1\cdot (G-E) }[/math]
[math]\displaystyle{ Z_3 = Y_1\cdot (F-G) }[/math]
The cost of this algorithm is 3 multiplications, one multiplication by constant, 3 additions and 3 cube powers. This is the best result obtained for this curve.
Example:
let P = (1 : −1 : 1) be a point over the curve defined by a=2 and d=-2 as above, then R = [2]P = (x3 : y3 : z3) is given by:
[math]\displaystyle{ D=1; E=-1; F=1; G=-4; }[/math]
- [math]\displaystyle{ x_3=-2 }[/math]
- [math]\displaystyle{ y_3=-3 }[/math]
- [math]\displaystyle{ z_3=-5 }[/math]
That is R = (−2 : −3 : 5).
See also
- Table of costs of operations in elliptic curves
External links
References
- ↑ "Twisted Hessian curves". http://hyperelliptic.org/EFD/g1p/auto-twistedhessian.html. Retrieved 28 February 2010.
Original source: https://en.wikipedia.org/wiki/Twisted Hessian curves.
Read more |