Jump to content

Hessian form of an elliptic curve: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 173: Line 173:
==Extended coordinates==
==Extended coordinates==


There is another coordinates systems with which an Hessian curve can be represented; these new coordinates are called '''extended coordinates'''. They can speed up the addition and doubling formulae. To have more information about operations with the extended coordinates see:
There is another coordinates system with which an Hessian curve can be represented; these new coordinates are called '''extended coordinates'''. They can speed up the addition and doubling. To have more information about operations with the extended coordinates see:


http://hyperelliptic.org/EFD/g1p/auto-hessian-extended.html#addition-add-20080225-hwcd
http://hyperelliptic.org/EFD/g1p/auto-hessian-extended.html#addition-add-20080225-hwcd

Revision as of 15:29, 15 February 2010

In geometry, the Hessian curve is a plane curve similar to folium of Descartes. It is named after the German mathematician Otto Hesse. This curve is important for application in elliptic curve cryptography, because we can get a 33% performance improvement as compared to the best reported methods and requires much less memory[1].

Definition

File:Hessian curve.jpg
An Hessian curve of equation

Let be a field and let E denote an elliptic curve in Weierstrass form over . Then the following curve can be obtained:

where the curve has discriminant

and (0,0) has order 3. Before proving this, note that if the characteristic of , say q, is 2 modulo 3, then the curve has 3 points of order 3; and if q is 1 modulo 3, there are 8 points of order 3.

To prove that has order 3, it is suffiecient to show: if and only if .

(i) Compute : if is the given curve and the point, then . So, in this case, since , then .

(ii) Compute : it can be done using the tangent and chord method, that is, first contstruct the line through the general point and find the other intersection points (at most 2) with the curve. Then, by the group law, these three points sum up to zero. In this case, since the multiplicity of is two, there will only be one more point and , that is, .

Let for m non-zero be a general line through the point . Now, to find the points of intersection between the curve and the line, replace every by in the curve:

iff

The roots of this equation are the x-coordinates of and , so:

Then comparing the coefficients:

and ( and ).

Note that are known and by the implicit function theorem (which is the slope of the line ). Then, and [2]P would be known. This is a general method to compute .

So applying it to P=(0,0):


since (note cannot be zero, otherwise the denominator would vanish at and the curve would be singular),


then where

Thus, , that is, and (0,0) has order 3 over .


Now, to obtain the Hessian curve, it is necessary to do the following transformation:

First let denote a root of the polynomial T3 − δT2 +  δ2T/3 + a32 = 0.

where is determined from the formula:

=1/3((-27a32)1/3+)

Note that if has characteristic q ≡ 2 (mod 3), then every element of has a unique cube root; otherwise, it is necessary to consider an extension field of K.

Now by defining the following value another curve, C, is obtained, that is birationally equivalent to E:

 :

which is called cubic Hessian form (in projective coordinates)

 :

in the affine plane ( satisfying and ).

Furthermore, D3≠1 (otherwise, the curve would be singular)

Since the Weierstrass form is the most known elliptic curve (in books), it is interesting to note that the Hessian curve given by the last equation is birationally equivalent to the Weierstrass equation:

under the transformations:

and

where:

=[6(D3-1)(v+9D3-3Du-36)]/[(x+9D2)3+(3Dd-Dx-12)3]
=[12(D3-1)]/[Dx+y+1]

Group law

It is interesting to analyze the group law of the elliptic curve, defining the addition and doubling formulas (because the SPA and DPA attacks are based on the running time of these operations). Furthermore, in this case, we only need to use the same procedure to compute the addition, doubling or subtraction of points to get efficient results, as said above. 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 group laws are different for every curve.

In this case, the correct way is to use the Cauchy-Desboves´ formulas, obtaining the point at infinity = ( 1 : -1: 0), that is, the neutral element (the inverse of is again). Let P=(x1,y1) be a point on the curve. The line contains the point and the point at infinity . Therefore, -P is the third point of the intersection of this line with the curve. Intersecting the elliptic curve with the line, the following condition is obtained

Since is non zero (because is distinct to 1), the x-coordinate of is and the y-coordinate of is , i.e. , or in projective coordinates .

In some application of elliptic curve cryptography (e.g. ECM) it is necessary to compute the scalar multiplications of P, say [n]P for some n integer, and they are based on the double-and-add method; these operations need the addition and dobling formulas.

Doubling

Now, if is a point on the elliptic curve, it is possible to define a "doubling" operation using Cauchy-Desboves´ formulae:


Addition

In the same way, for two different points, say and , it is possible to define the addition formula. Let denote the sum of these points, , then its coordinates are given by:

Algorithms and examples

There is one algorithm that can be used to add two different points or to double; it is given by Joye and Quisquarte . Then, the following result gives the possibility the obtain the doubling operation by the addition:

Proposition.Let P=(X,Y,Z) be a point on a Hessian elliptic curve E(K).Then: 2(X:Y:Z) = (Z:X:Y) + (Y:Z:X) (2). Furthermore, we have (Z:X:Y)≠(Y:Z:X).


Finally, contrary to other parameterizations, there is no subtraction to compute the negation of a point. Hence, this addition algorithm can also be used for subtracting two points P= ( X1:Y1:Z1) and Q= ( X2:Y2:Z2) on an Hessian elliptic curve:

( X1:Y1:Z1) - ( X2:Y2:Z2) = ( X1:Y1:Z1) + (Y2:X2:Z2) (3)

To sum up, by adapting the order of the inputs according to equation (2) or (3), the addition algorithm presented above can be used indifferently for: Adding 2 (diff.) points, Doubling a point and Subtracting 2 points with only 12 multiplications and 7 auxiliary variables including the 3 result variables. These results represent the fastest known method for implementing the elliptic curve scalar multiplication towards resistance against side-channel attacks; since now the Edwards curves with a=-1 are faster (8 multiplications).

However, for some algorithms protection againts side-channel attacks is not neccesary. So, for these doublings can be faster. Since there are many algorithms, only the best for the addition and doubling formulas is given here, with one example for each one:

Addition

Let P1=(X1:Y1:Z1) and P2=(X2:Y2:Z2) be two points distinct to . Assuming that Z1=Z2=1 then the algorithm is given by:

A = X1*Y2

B = Y1*X2

X3 = B*Y1-Y2*A
Y3 = X1*A-B*X2
Z3 = Y2*X2-X1*Y1

The cost needed is 8 multiplications and 3 additions readdition cost of 7 multiplications and 3 additions, depending on the first point.

Example

Given the following points in the curve for d=-1 P1=(1:0:-1) and P2=(0:-1:1), then if P3=P1+P2 we have:

X3=0-1=-1
Y3=-1-0=-1
Z3=0-0=0

Then: P3=(-1:-1:0)

Doubling

Let P = (X1 : Y1 : Z1) be a point, then the doubling formula is given by:

  • A = X12
  • B = Y12
  • D = A + B
  • G = (X1 + Y1)2 − D
  • X3 = (2Y1 − G) × (X1 + A + 1)
  • Y3 = (G − 2X1) × (Y1 + B + 1)
  • Z3 = (X1 − Y1) × (G + 2D)

The cost of this algorithm is three multiplications + three squarings + 11 additions + 3×2.

Example

If is a point over the Hessian curve with parameter d=-1, then the coordinates of are given by:

X=(2.(-1)-2)(-1+1+1)=-4

Y=(-4-2.(-1))((-1)+1+1)=-2

Z=(-1-(-1))((-4)+2.2)=0

That is,

Extended coordinates

There is another coordinates system with which an Hessian curve can be represented; these new coordinates are called extended coordinates. They can speed up the addition and doubling. To have more information about operations with the extended coordinates see:

http://hyperelliptic.org/EFD/g1p/auto-hessian-extended.html#addition-add-20080225-hwcd


and are represented by satisfying the following equations:

For more informations about the running-time required in a specific case, see Table of costs of operations in elliptic curves

Twisted Hessian curves

http://hyperelliptic.org/EFD/g1p/index.html

Notes

  1. ^ Cauchy-Desbove´s Formulae: Hessian-elliptic Curves and Side-Channel Attacks, Marc Joye and Jean-Jacques Quisquarter


References

  • Otto Hesse (1844), "Über die Elimination der Variabeln aus drei algebraischen Gleichungen vom zweiten Grade mit zwei Variabeln", Journal für die reine und angewandte Mathematik, 10, pp. 68–96
  • Marc Joye, Jean-Jacques Quisquarter (2001). Hessian Elliptic Curves and Side-Channel Attacks. Springer-Verlag Berlin Heidelberg 2001. ISBN 978-3-540-42521-2.
  • N. P. Smart (2001). The Hessian form of an Elliptic Curve. Springer-Verlag Berlin Heidelberg 2001. ISBN 978-3-540-42521-2.