SWIFFT: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>SchreiberBike
Repairing links to disambiguation pages - You can help! - Field
 
en>John85
m Practical Security: consistent superscript formatting
Line 1: Line 1:
One feature that even if it was protected from the outside rv awnings guns for sale cheap world. Another option to add some more. It keeps the harmful effects of the world. But even the strongest trees. Most models are built to last for a little girl and dreams of times, and at the head.<br><br>my website: Rv Awning Trailer Parts In Florida ([http://theawningsnow.com/ theawningsnow.Com])
In [[mathematics]], the '''Twisted Hessian curve''' represents a generalization of [[Hessian curve]]s; 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 curve]]s.
 
==Definition==
[[Image:Twisted Hessian curve.svg|300px|right|thumb|A Twisted Hessian curve of equation <math>10x^3+y^3+1=15xy</math>]]
Let ''K'' be a [[field (mathematics)|field]]. According to<ref>{{cite web|url=http://hyperelliptic.org/EFD/g1p/auto-twistedhessian.html|title=Twisted Hessian curves|accessdate=28 February 2010}}</ref> twisted Hessian curves were introduced by [[Daniel J. Bernstein|Bernstein]], Lange,
and Kohel.
 
The twisted Hessian form in ''[[affine space|affine coordinates]]'' is given by:
 
<math> a\cdot x^3+y^3+1=d\cdot x\cdot y </math>
 
and in ''[[projective space|projective coordinates]]'':
 
<math> a\cdot X^3+Y^3+Z^3=d\cdot X\cdot Y\cdot Z </math>
 
where <math>x=\frac{X}{Z}</math>  and  <math> y=\frac{Y}{Z}</math>  and  ''a'', ''d'' in ''K''
 
Note that these curves are [[birational geometry|birationally equivalent]] to [[Hessian curves]].
 
The Hessian curve is just a special case of Twisted Hessian curve, with a=1.
 
Considering the equation ''a'' &middot; ''x''<sup>3</sup> + ''y''<sup>3</sup> + 1 = ''d'' &middot; ''x'' &middot; ''y'', note that:
 
if ''a'' has a cube root in ''K'', there exists a unique ''b'' such that ''a'' = ''b''<sup>3</sup>.Otherwise, it is necessary to consider an [[field extension|extension field]] of ''K'' (e.g., ''K''(''a''<sup>1/3</sup>)). Then, since ''b''<sup>3</sup> &middot; ''x''<sup>3</sup> = ''bx''<sup>3</sup>, defining ''t'' = ''b'' &middot; ''x'', the following equation is needed (in Hessian form) to do the transformation:
 
<math> t^3+y^3+1=d\cdot x\cdot y </math>.
 
This means that Twisted Hessian curves are birationally equivalent to elliptic curve in [[Elliptic curve|Weierstrass form]].
 
==Group law==
 
It is interesting to analyze the [[elliptic curve#The group law|group law]] of the elliptic curve, defining the addition and doubling formulas (because the [[Power_analysis#Simple_power_analysis|simple power analysis]] and [[Power_analysis#Differential_power_analysis|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 formula]]s{{dn|date=December 2013}} for the group law depend on the curve shape.
 
Let ''P'' = (''x''<sub>1</sub>, ''y''<sub>1</sub>) be a point, then its inverse is &minus;''P'' = (''x''<sub>1</sub>/''y''<sub>1</sub>, 1/''y''<sub>1</sub>) in the plane.
In projective coordinates, let ''P'' = (''X'' : ''Y'' : ''Z'') be one point, then &minus;''P'' = (''X''<sub>1</sub>/''Y''<sub>1</sub> : 1/''Y''<sub>1</sub> : ''Z'')<!-- ?? --> is the inverse of P.
 
Furthermore, the [[neutral element]] (in affine plane) is: &theta; = (0, &minus;1) and in projective coordinates: &theta; = (0 : &minus;1 : 1).
 
In some applications of [[elliptic curve cryptography]] and the elliptic curve method of [[integer factorization]] ([[Lenstra elliptic curve factorization|ECM]]) it is necessary to compute the [[scalar multiplication]]s of ''P'', say ''[n]P'' for some [[integer]] ''n'', and they are based on the [[Exponentiation by squaring|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'' = (''x''<sub>1</sub>, ''y''<sub>1</sub>) and ''Q'' = (''x''<sub>2</sub>, ''y''<sub>2</sub>); then, ''R'' = ''P'' + ''Q'' = (''x''<sub>3</sub>, ''y''<sub>3</sub>) is given by the following equations:
 
<math>x_3=\frac{x_1-y_1^3\cdot x_1}{a\cdot y_1\cdot x_1^3-y_1} </math>
 
<math> y_3=\frac{y_1^3-a\cdot x_1^3}{a\cdot y_1\cdot x_1^3-y_1} </math>
 
===Doubling formulas===
 
Let ''P'' = (''x'', ''y''); then [2]''P'' = (''x''<sub>1</sub>, ''y''<sub>1</sub>) is given by the following equations:
 
<math> x_1=\frac{x-y^3\cdot x}{a\cdot y\cdot x^3-y} </math>
 
<math> 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> A = X_1\cdot Z_2 </math>
 
<math>B = Z_1\cdot Z_2 </math>
 
<math>C = Y_1X_2 </math>
 
<math>D = Y_1\cdot Y_2 </math>
 
<math>E = Z_1\cdot Y_2 </math>
 
<math>F = a\cdot X_1\cdot X_2 </math>
 
<math>X_3 = A\cdot B-C\cdot D </math>
 
<math>Y_3 = D\cdot E-F\cdot A </math>
 
<math>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 ''P''<sub>1</sub> = (1 : &minus;1 : 1) and ''P''<sub>2</sub> = (&minus;2 : 1 : 1) be points over a twisted Hessian curve with a=2 and d=-2.Then ''R'' = ''P''<sub>1</sub> + ''P''<sub>2</sub> is given by:
 
<math> A=-1; B=-1; C=-1; D=-1; E=1; F=2; </math>
:<math>x_3=0</math>
:<math>y_3=-3</math>
:<math>z_3=-3</math>
 
That is, ''R''= (0 : &minus;3 : &minus;3).
 
===Doubling===
 
<math> D = X_1^3 </math>
 
<math> E = Y_1^3 </math>
 
<math> F = Z_1^3 </math>
 
<math> G = a\cdot D </math>
 
<math> X_3 = X_1\cdot (E-F) </math>
 
<math> Y_3 = Z_1\cdot (G-E) </math>
 
<math> 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 : &minus;1 : 1) be a point over the curve defined by a=2 and d=-2 as above, then ''R'' = [2]''P'' = (''x''<sub>3</sub> : ''y''<sub>3</sub> : ''z''<sub>3</sub>) is given by:
 
<math> D=1; E=-1; F=1; G=-4; </math>
 
:<math>x_3=-2</math>
:<math>y_3=-3</math>
:<math>z_3=-5</math>
 
That is ''R'' = (&minus;2 : &minus;3 : 5).
 
==See also==
* [[Table of costs of operations in elliptic curves]]
 
==External links==
* http://hyperelliptic.org/EFD/g1p/index.html
 
==References==
 
<references/>
* http://hyperelliptic.org/EFD/g1p/auto-twistedhessian.html
 
{{DEFAULTSORT:Twisted Hessian Curves}}
[[Category:Elliptic curves]]
[[Category:Elliptic curve cryptography]]

Revision as of 11:44, 22 January 2014

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

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

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:

ax3+y3+1=dxy

and in projective coordinates:

aX3+Y3+Z3=dXYZ

where x=XZ and y=YZ 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:

t3+y3+1=dxy.

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 formulasTemplate:Dn 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:

x3=x1y13x1ay1x13y1

y3=y13ax13ay1x13y1

Doubling formulas

Let P = (x, y); then [2]P = (x1, y1) is given by the following equations:

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 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:

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

x3=0
y3=3
z3=3

That is, R= (0 : −3 : −3).

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 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:

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

x3=2
y3=3
z3=5

That is R = (−2 : −3 : 5).

See also

References