Montgomery curve: Difference between revisions
Sfan00 IMG (talk | contribs) Non assisted edit - Caption cleanup Image not speedy - You can help!! |
|||
Line 88: | Line 88: | ||
1)consider a generic line y=lx+m in the affine plane and let it pass through <math>P_1</math> and <math>P_2</math> (impose the condition), in this way, one obtains <math>l=\frac{y_2-y_1}{x_2-x_1}</math> and <math>m=y_1-(\frac{y_2-y_1}{x_2-x_1})x_1</math>; |
1)consider a generic line y=lx+m in the affine plane and let it pass through <math>P_1</math> and <math>P_2</math> (impose the condition), in this way, one obtains <math>l=\frac{y_2-y_1}{x_2-x_1}</math> and <math>m=y_1-(\frac{y_2-y_1}{x_2-x_1})x_1</math>; |
||
2) |
2)intersect the line with the curve <math>M_{A,B}</math>, substituting the y varable in the curve equation with y=lx+m; the following [[equation| equation of third degree]] is obtained: |
||
<math>x^3+(A-Bl^2)x^2+(1-2Blm)x-m^2=0</math>. |
<math>x^3+(A-Bl^2)x^2+(1-2Blm)x-m^2=0</math>. |
||
Line 104: | Line 104: | ||
<math>x_3 = B(\frac{y_2-y_1}{x_2-x_1})^2-A-x_1-x_2</math> |
<math>x_3 = B(\frac{y_2-y_1}{x_2-x_1})^2-A-x_1-x_2</math> |
||
4)To find the y coordinate of the point <math>P_3</math> it is sufficient to substitue the value <math>x_3</math> in the line y=lx+m. Notice that this will not give the point <math>P_3</math> directly. Indeed, with this method one find the coordinates of the point R such that <math>R+P_1+P_2=0</math>, but if one needs the resulting point of the sum between <math>P_1</math> and <math>P_2</math>, then it is necessary to observe that: <math>R+P_1+P_2=0</math> if and only if <math>-R=P_1+P_2</math>. So, given the point R, it is necessary to find -R, but this can be done easily by changing the sign to the y coordinate of R. In other words, it will be necessary to change the sign of the y coordinate |
4)To find the y coordinate of the point <math>P_3</math> it is sufficient to substitue the value <math>x_3</math> in the line y=lx+m. Notice that this will not give the point <math>P_3</math> directly. Indeed, with this method one find the coordinates of the point R such that <math>R+P_1+P_2=0</math>, but if one needs the resulting point of the sum between <math>P_1</math> and <math>P_2</math>, then it is necessary to observe that: <math>R+P_1+P_2=0</math> if and only if <math>-R=P_1+P_2</math>. So, given the point R, it is necessary to find -R, but this can be done easily by changing the sign to the y coordinate of R. In other words, it will be necessary to change the sign of the y coordinate obtained by substituing the value <math>x_3</math> in the equation of the line. |
||
Resuming, the coordinates of the point <math>P_3=(x_3,y_3)</math>, <math>P_3=P_1+P_2</math> are: |
Resuming, the coordinates of the point <math>P_3=(x_3,y_3)</math>, <math>P_3=P_1+P_2</math> are: |
Revision as of 16:31, 15 February 2010
In mathematics the Montgomery curve is a form of elliptic curve, different from the usual representation (Weierstrass form). It has been introduced by Peter L.Montgomery in [1], and it has been used since 1987 for certain computations, and in particular in different cryptography applications.
Definition
A Montgomery curve over a field is defined by the equation:
:
for certain and with .
Generally this curve is considered over a finite field (for example over a finite field of q elements, ) with characteristic different from 2 and with , ; but they are also considered over the rationals with the same resctrictions for A and B.
Operations
It is possible to do some "operations" between the points of an elliptic curve: "adding" two points consists on finding a third one such that ; "doubling" a point consists on computing (For more information about operations see The group law).
A point on the elliptic curve in the Montgomery form can be represented in projective coordinates as , with .
Notice that this kind of representation for a point loses information: indeed, in this case, there is no distinction between the affine points and because they are both given by the point . However, with this representation it is possible to obtain multiples of points, that is, given , to compute .
Now, considering the two points and : their sum is given by the point whose coordinates are:
If , then the operation becomes a "doubling"; the coordinates of are given by the following equations:
The first operation considered above (addition) has a time-cost of 3M+2S, where M denotes the multiplication between two general elements of the field on which the elliptic curve is defined, while S denotes squaring of a general element of the field.
The second operation (doubling) has a time-cost of 2M+2S+1D, where D denotes the multiplication of a general element by a constant; notice that the constant is , so can be chosen in order to have a small D.
Algorithm and example
The following algorithm represents a doubling of a point on an elliptic curve in the Montgomery form.
It is assumed that . The cost of this implementation is 1M + 2S + 1*A + 3add + 1*4. Here M denotes the multiplications required, S indicates the squarings, and a refers to the multiplication by A.
Example
Let be a point on the curve . In coordinates , with , .
Then:
The result is the point , such that .
Addition
Given two points , on the Montgomery curve in affine coordinates, the point represents, geometrically the third point of intersection between and the line passing through and . It is possible to find the coordinates of , in the following way:
1)consider a generic line y=lx+m in the affine plane and let it pass through and (impose the condition), in this way, one obtains and ;
2)intersect the line with the curve , substituting the y varable in the curve equation with y=lx+m; the following equation of third degree is obtained:
.
As it has been observed before, this equation has 3 solutions that correspond to the x coordinates of , and . In particular this equation can be re-written as:
3)Comparing the coefficients of the two identical equations given above, in particular the coefficients of the terms of second degree, one gets:
.
So, can be written in terms of , , , , as:
4)To find the y coordinate of the point it is sufficient to substitue the value in the line y=lx+m. Notice that this will not give the point directly. Indeed, with this method one find the coordinates of the point R such that , but if one needs the resulting point of the sum between and , then it is necessary to observe that: if and only if . So, given the point R, it is necessary to find -R, but this can be done easily by changing the sign to the y coordinate of R. In other words, it will be necessary to change the sign of the y coordinate obtained by substituing the value in the equation of the line.
Resuming, the coordinates of the point , are:
Doubling
Given a point on the Montgomery curve , the point represents geometrically the third point of intersection between the curve and the line tangent to ; so, to find the coordinates of the point it is sufficient to follow the same method given in the addition formula; however, in this case, the line y=lx+m has to be tangent to the curve at , so, if with
,
then the value of l, which represents the slope of the line, is given by:
by the implicit function theorem.
So, the coordinates of the point , are:
.
Equivalence with twisted Edwards curves
Let be a field with characteristic different from 2.
Let be an elliptic curve in the Montgomery form:
:
with ,
and let be an elliptic curve in the twisted Edwards form:
with , .
The following theorem proved in [2], shows the birational equivalence between Montgomery curves and an twisted Edwards curves:
Theorem (i) Every twisted Edwards curve is birationally equivalent to a Montgomery curve over . In particular, the twisted Edwards curve is birationally equivalent to the Montgomery curve where , and .
The map:
is a birational equivalence from to , with inverse:
- :
Notice that this equivalence between the two curves is not valid everywhere: indeed the map is not defined at the points or of the .
Equivalence with Weierstrass curves
Any elliptic curve can be written in the Weierstrass form.
So, the elliptic curve in the Montogmery form
: ,
can be transformed in the following way:
dividing each member of the equation for by B3, and substituting the variables x and y, with and respectively, one gets the equation
.
To obtain a short Weierstrass form from here, it is sufficient to replace u with the variable :
;
finally, this gives the equation:
.
Internal link
For more informations about the running-time required in a specific case, see Table of costs of operations in elliptic curves
External link
http://hyperelliptic.org/EFD/g1p/index.html
Notes
References
- Peter L.Montgomery (1987). Speeding the Pollard and Elliptic Curve Methods of Factorization (PDF). American Mathematical Society.
- Daniel J. Bernstein, Peter Birkner, Marc Joye, Tanja Lange and Christiane Peters (2008). Twisted Edwards Curves (PDF). Springer-Verlag Berlin Heidelberg. ISBN 978-3-540-68159-5.
{{cite book}}
: CS1 maint: multiple names: authors list (link) - Wouter Castryck, Steven Galbraith, Reza Rezaeian Farashahi. Efficient Arithmetic on Elliptic Curves using a Mixed Edwards-Montgomery Representation (PDF).
{{cite book}}
: CS1 maint: multiple names: authors list (link)