Twisted Hessian curves

From testwiki
Jump to navigation Jump to search

Template:Short description In mathematics, twisted Hessian curves are a generalization of Hessian curves; they were 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. Twisted Hessian curves were introduced by Bernstein, Lange, and Kohel.[1]

Definition

A Twisted Hessian curve of equation 10x3+y3+1=15xy

Let Template:Mvar be a field. The twisted Hessian form in affine coordinates is given by:

ax3+y3+1=dxy

and in projective coordinates by

aX3+Y3+Z3=dXYZ,

where Template:Math and Template:Math and Template:Math. These curves are birationally equivalent to Hessian curves, and Hessian curves are just the special case of twisted Hessian curves in which Template:Math.

Considering the equation Template:Math, note that, if Template:Mvar has a cube root in Template:Mvar, then there exists a unique Template:Mvar such that Template:Mvar; otherwise, it is necessary to consider an extension field of Template:Mvar, such as Template:Math. Then, since Template:Math, defining Template:Math, the following equation is needed (in Hessian form) to do the transformation:

t3+y3+1=dxy.

This means that twisted Hessian curves are birationally equivalent to elliptic curves 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 Template:Math be a point; its inverse is then Template:Math in the plane. In projective coordinates, let Template:Math be a point; then Template:Math is its inverse. Furthermore, the neutral element in affine plane is Template:Math, and in projective coordinates it is Template:Math.

In some applications of elliptic curves for cryptography and integer factorization, it is necessary to compute scalar multiples of Template:Mvar, say Template:Math for some integer Template:Mvar, and they are based on the double-and-add method, so the addition and doubling formulas are needed. Using affine coordinates, the addition and doubling formulas for this elliptic curve are as follows.

Addition formulas

Let Template:Math and Template:Math; then, Template:Math, where

x3=x1y12x2y2ax1y1x22y2

y3=y1y22ax12x2ax1y1x22y2

Doubling formulas

Let Template:Math; then Template:Math, where

x1=xy3xayx3y

y1=y3ax3ayx3y

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

A=X1Z2

B=Z1Z2

C=Y1X2

D=Y1Y2

E=Z1Y2

F=aX1X2

X3=ABCD

Y3=DEFA

Z3=FCBE

The cost of this algorithm is 12 multiplications, one multiplication by a constant, and 3 additions.

Example:

Let Template:Math and Template:Math be points over a twisted Hessian curve with Template:Math. Then Template:Math is given by:

A=1;B=1;C=1;D=1;E=1;F=2;

x3=0
y3=3
z3=3

That is, Template:Math.

Doubling

D=X13

E=Y13

F=Z13

G=aD

X3=X1(EF)

Y3=Z1(GE)

Z3=Y1(FG)

The cost of this algorithm is 3 multiplications, one multiplication by a constant, 3 additions, and 3 cubings. This is the best result obtained for this curve.

Example:

Let Template:Math be a point over the curve defined by Template:Math as above; then, Template:Math is given by:

D=1;E=1;F=1;G=4;

x3=2
y3=3
z3=5

That is, Template:Math.

See also

References