In
mathematics
Mathematics is a field of study that discovers and organizes methods, Mathematical theory, theories and theorems that are developed and Mathematical proof, proved for the needs of empirical sciences and mathematics itself. There are many ar ...
, the doubling-oriented Doche–Icart–Kohel curve is a form in which an
elliptic curve
In mathematics, an elliptic curve is a smooth, projective, algebraic curve of genus one, on which there is a specified point . An elliptic curve is defined over a field and describes points in , the Cartesian product of with itself. If the ...
can be written. It is a special case of the
Weierstrass form and it is also important in
elliptic-curve cryptography
Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC allows smaller keys to provide equivalent security, compared to cryptosystems based on modula ...
because the doubling speeds up considerably (computing as composition of 2-
isogeny and its
dual). It was introduced by Christophe Doche, Thomas Icart, and David R. Kohel in ''Efficient Scalar Multiplication by Isogeny Decompositions.''
[Christophe Doche, Thomas Icart, and David R. Kohel, ''Efficient Scalar Multiplication by Isogeny Decompositions'']
Definition
Let
be a
field and let
. Then, the doubling-oriented Doche–Icart–Kohel curve with
parameter
A parameter (), generally, is any characteristic that can help in defining or classifying a particular system (meaning an event, project, object, situation, etc.). That is, a parameter is an element of a system that is useful, or critical, when ...
''a'' in
affine coordinates
In mathematics, an affine space is a geometric structure that generalizes some of the properties of Euclidean spaces in such a way that these are independent of the concepts of distance and measure of angles, keeping only the properties related ...
is represented by:
Equivalently, in
projective coordinates
In mathematics, homogeneous coordinates or projective coordinates, introduced by August Ferdinand Möbius in his 1827 work , are a system of coordinates used in projective geometry, just as Cartesian coordinates are used in Euclidean geometry. T ...
:
with
and
.
Since this curve is a special case of the
Weierstrass form, transformations to the most common form of elliptic curve (Weierstrass form) are not needed.
Group law
It is interesting to analyze the
group law in
elliptic curve cryptography
Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC allows smaller keys to provide equivalent security, compared to cryptosystems based on modula ...
, defining the addition and doubling formulas, because these formulas are necessary to compute multiples of points (see
Exponentiation by squaring). In general, the group law is defined in the following way: if three points lie in the same line, then they sum up to zero. So, by this property, the group laws are different for every curve shape.
In this case, since these curves are special cases of Weierstrass curves, the addition is just the standard addition on Weierstrass curves. On the other hand, to double a point, the standard doubling formula can be used, but it would not be so fast. In this case, the
neutral element
In mathematics, an identity element or neutral element of a binary operation is an element that leaves unchanged every element when the operation is applied. For example, 0 is an identity element of the addition of real numbers. This concept is use ...
is (in projective coordinates), for which . Then, if is a non-trivial element (), then the inverse of this point (by addition) is .
Addition
In this case,
affine coordinates
In mathematics, an affine space is a geometric structure that generalizes some of the properties of Euclidean spaces in such a way that these are independent of the concepts of distance and measure of angles, keeping only the properties related ...
will be used to define the addition formula:
where
and
Doubling
, where
Algorithms and examples
Addition
The fastest addition is the following one (comparing with the results given in: http://hyperelliptic.org/EFD/g1p/index.html), and the cost that it takes is 4 multiplications, 4 squaring and 10 addition.
A = Y
2-Y
1
AA = A
2
B = X
2-X
1
CC = B
2
F = X
1CC
Z
3 = 2CC
D = X
2Z
3
ZZ
3 = Z
32
X
3 = 2(AA-F)-aZ
3-D
Y
3 = ((A+B)
2-AA-CC)(D-X
3)-Y
2ZZ
3
Example
Let
. Let P=(X
1,Y
1)=(2,1), Q=(X
2,Y
2)=(1,-1) and a=1, then
A=2
AA=4
B=1
CC=1
F=2
Z
3=4
D=4
ZZ
3=16
X
3=-4
Y
3=336
Thus, P+Q=(-4:336:4)
Doubling
The following algorithm is the fastest one (see the following link to compare: http://hyperelliptic.org/EFD/g1p/index.html), and the cost that it takes is 1 multiplication, 5 squaring and 7 additions.
A = X
12
B = A-a16
C = a
2A
YY = Y
12
YY
2 = 2YY
Z
3 = 2YY
2
X
3 = B
2
V = (Y
1+B)2-YY-X
3
Y
3 = V(X
3+64C+a(YY
2-C))
ZZ
3 = Z
32
Example
Let
and a=1. Let P=(-1,2), then Q=
=(x3,y3) is given by:
A=1
B=-15
C=2
YY=4
YY
2=8
Z
3=16
X
3=225
V=27
Y
3=9693
ZZ
3=256
Thus, Q=(225:9693:16).
Extended coordinates
The addition and doubling computations should be as fast as possible, so it is more convenient to use the following representation of the coordinates:
are represented by
satisfying the following equations:
Then, the Doubling-oriented Doche–Icart–Kohel curve is given by the following equation:
.
In this case,
is a general point with inverse
.
Furthermore, the points over the curve satisfy:
for all
nonzero.
Faster doubling formulas for these curves and mixed-addition formulas were introduced by Doche, Icart and Kohel; but nowadays, these formulas are improved by Daniel J. Bernstein and Tanja Lange (see below the link of EFD).
See also
For more information about the running-time required in a specific case, see
Table of costs of operations in elliptic curves
Notes
References
*
*
External links
* http://hyperelliptic.org/EFD/g1p/index.html
* http://www.hyperelliptic.org/EFD/g1p/auto-2dik.html
{{DEFAULTSORT:Doubling-oriented Doche-Icart-Kohel curve
Elliptic curves
Elliptic curve cryptography