In mathematics, the Jacobi curve is a representation of an elliptic curve different from the usual one defined by the Weierstrass equation. Sometimes it is used in cryptography instead of the Weierstrass form because it can provide a defence against simple and differential power analysis style (SPA) attacks; it is possible, indeed, to use the general addition formula also for doubling a point on an elliptic curve of this form: in this way the two operations become indistinguishable from some side-channel information. The Jacobi curve also offers faster arithmetic compared to the Weierstrass curve.
The Jacobi curve can be of two types: the Jacobi intersection, that is given by an intersection of two surfaces, and the Jacobi quartic.
Given an elliptic curve, it is possible to do some "operations" between its points: for example one can add two points P and Q obtaining the point P + Q that belongs to the curve; given a point P on the elliptic curve, it is possible to "double" P, that means find [2]P = P + P (the square brackets are used to indicate [n]P, the point P added n times), and also find the negation of P, that means find âÂÂP. In this way, the points of an elliptic curve forms a group. Note that the identity element of the group operation is not a point on the affine plane, it only appears in the projective coordinates: then O = (0: 1: 0) is the "point at infinity", that is the neutral element in the group law. Adding and doubling formulas are useful also to compute [n]P, the n-th multiple of a point P on an elliptic curve: this operation is considered the most in elliptic curve cryptography.
An elliptic curve E, over a field K can be put in the Weierstrass form y<sup>2</sup> = x<sup>3</sup> + ax + b, with a, b in K. What will be of importance later are point of order 2, that is P on E such that [2]P = O and P â O. If P = (p, 0) is a point on E, then it has order 2; more generally the points of order 2 correspond to the roots of the polynomial f(x) = x<sup>3</sup> + ax + b.
From now on, we will use E<sub>a,b</sub> to denote the elliptic curve with Weierstrass form y<sup>2</sup> = x<sup>3</sup> + ax + b.
If E<sub>a,b</sub> is such that the cubic polynomial x<sup>3</sup> + ax + b has three distinct roots in K and b = 0 we can write E<sub>a,b</sub> in the Legendre normal form:
In this case we have three points of order two: (0, 0), (âÂÂ1, 0), (âÂÂj, 0). In this case we use the notation E[j]. Note that j can be expressed in terms of a, b.
An elliptic curve in P<sup>3</sup>(K) can be represented as the intersection of two quadric surfaces:
It is possible to define the Jacobi form of an elliptic curve as the intersection of two quadrics. Let E<sub>a,b</sub> be an elliptic curve in the Weierstrass form, we apply the following map to it:
We see that the following system of equations holds:
The curve E[j] corresponds to the following intersection of surfaces in P<sup>3</sup>(K):
The "special case", E[0], the elliptic curve has a double point and thus it is singular.
S1 is obtained by applying to E[j] the transformation:
For S1, the neutral element of the group is the point (0, 1, 1, 1), that is the image of O = (0: 1: 0) under ÃÂ.
Given P<sub>1</sub> = (X<sub>1</sub>, Y<sub>1</sub>, Z<sub>1</sub>, T<sub>1</sub>) and P<sub>2</sub> = (X<sub>2</sub>, Y<sub>2</sub>, Z<sub>2</sub>, T<sub>2</sub>), two points on S1, the coordinates of the point P<sub>3</sub> = P<sub>1</sub> + P<sub>2</sub> are:
These formulas are also valid for doubling: it sufficies to have P<sub>1</sub> = P<sub>2</sub>. So adding or doubling points in S1 are operations that both require 16 multiplications plus one multiplication by a constant (k).
It is also possible to use the following formulas for doubling the point P<sub>1</sub> and find P<sub>3</sub> = [2]P<sub>1</sub>:
Using these formulas 8 multiplications are needed to double a point. However, there are even more efficient âÂÂstrategiesâ for doubling that require only 7 multiplications. In this way it is possible to triple a point with 23 multiplications; indeed [3]P<sub>1</sub> can be obtained by adding P<sub>1</sub> with [2]P<sub>1</sub> with a cost of 7 multiplications for [2]P<sub>1</sub> and 16 for P<sub>1</sub> + [2]P<sub>1</sub>
Let K = R or C and consider the case:
Consider the points and : it is easy to verify that P<sub>1</sub> and P<sub>2</sub> belong to S1 (it is sufficient to see that these points satisfy both equations of the system S1).
Using the formulas given above for adding two points, the coordinates for P<sub>3</sub>, where P<sub>3</sub> = P<sub>1</sub> + P<sub>2</sub> are:
The resulting point is .
With the formulas given above for doubling, it is possible to find the point P<sub>3</sub> = [2]P<sub>1</sub>:
So, in this case P<sub>3</sub> = [2]P<sub>1</sub> = (0, 12, âÂÂ12, 12).
Given the point P<sub>1</sub> = (X<sub>1</sub>, Y<sub>1</sub>, Z<sub>1</sub>, T<sub>1</sub>) in S1, its negation is âÂÂP<sub>1</sub> = (âÂÂX<sub>1</sub>, Y<sub>1</sub>, Z<sub>1</sub>, T<sub>1</sub>)
Given two affine points P<sub>1</sub> = (x<sub>1</sub>, y<sub>1</sub>, z<sub>1</sub>) and P<sub>2</sub> = (x<sub>2</sub>, y<sub>2</sub>, z<sub>2</sub>), their sum is a point P<sub>3</sub> with coordinates:
These formulas are valid also for doubling with the condition P<sub>1</sub> = P<sub>2</sub>.
There is another kind of coordinate system with which a point in the Jacobi intersection can be represented. Given the following elliptic curve in the Jacobi intersection form:
the extended coordinates describe a point P = (x, y, z) with the variables X, Y, Z, T, XY, ZT, where:
Sometimes these coordinates are used, because they are more convenient (in terms of time-cost) in some specific situations. For more information about the operations based on the use of these coordinates see http://hyperelliptic.org/EFD/g1p/auto-jintersect-extended.html
An elliptic curve in Jacobi quartic form can be obtained from the curve E<sub>a,b</sub> in the Weierstrass form with at least one point of order 2. The following transformation f sends each point of E<sub>a,b</sub> to a point in the Jacobi coordinates, where (X: Y: Z) = (sX: s<sup>2</sup>Y: sZ).
Applying f to E<sub>a,b</sub>, one obtains a curve in J of the following form:
where:
are elements in K. C represents an elliptic curve in the Jacobi quartic form, in Jacobi coordinates.
The general form of a Jacobi quartic curve in affine coordinates is:
where often e = 1 is assumed.
The neutral element of the group law of C is the projective point (0: 1: 1).
Given two affine points and , their sum is a point , such that:
As in the Jacobi intersections, also in this case it is possible to use this formula for doubling as well.
Given two points P<sub>1</sub> = (X<sub>1</sub>: Y<sub>1</sub>: Z<sub>1</sub>) and P<sub>2</sub> = (X<sub>2</sub>: Y<sub>2</sub>: Z<sub>2</sub>) in Câ², the coordinates for the point P<sub>3</sub> = (X<sub>3</sub>: Y<sub>3</sub>: Z<sub>3</sub>), where P<sub>3</sub> = P<sub>1</sub> + P<sub>2</sub>, are given in terms of P<sub>1</sub> and P<sub>2</sub> by the formulae:
One can use this formula also for doubling, with the condition that P<sub>2</sub> = P<sub>1</sub>: in this way the point P<sub>3</sub> = P<sub>1</sub> + P<sub>1</sub> = [2]P<sub>1</sub> is obtained.
The number of multiplications required to add two points is 13 plus 3 multiplications by constants: in particular there are two multiplications by the constant e and one by the constant a.
There are some "strategies" to reduce the operations required for adding and doubling points: the number of multiplications can be decreased to 11 plus 3 multiplications by constants (see section 3 for more details).
The number of multiplications can be reduced by working on the constants e and d: the elliptic curve in the Jacobi form can be modified in order to have a smaller number of operations for adding and doubling. So, for example, if the constant d in C is significantly small, the multiplication by d can be cancelled; however the best option is to reduce e: if it is small, not only one, but two multiplications are neglected.
Consider the elliptic curve E<sub>4,0</sub>, it has a point P of order 2: P = (p, 0) = (0, 0). Therefore, a = 4, b = p = 0 so we have e = 1 and d = 1 and the associated Jacobi quartic form is:
Choosing two points and , it is possible to find their sum P<sub>3</sub> = P<sub>1</sub> + P<sub>2</sub> using the formulae for adding given above:
So
Using the same formulae, the point P<sub>4</sub> = [2]P<sub>1</sub> is obtained:
So
The negation of a point P<sub>1</sub> = (X<sub>1</sub>: Y<sub>1</sub>: Z<sub>1</sub>) is: âÂÂP<sub>1</sub> = (âÂÂX<sub>1</sub>: Y<sub>1</sub>: Z<sub>1</sub>)
There are other systems of coordinates that can be used to represent a point in a Jacobi quartic: they are used to obtain fast computations in certain cases. For more information about the time-cost required in the operations with these coordinates see http://hyperelliptic.org/EFD/g1p/auto-jquartic.html
Given an affine Jacobi quartic
the Doubling-oriented XXYZZ coordinates introduce an additional curve parameter c satisfying a<sup>2</sup> + c<sup>2</sup> = 1 and they represent a point (x, y) as (X, XX, Y, Z, ZZ, R), such that:
the Doubling-oriented XYZ coordinates, with the same additional assumption (a<sup>2</sup> + c<sup>2</sup> = 1), represent a point (x, y) with (X, Y, Z) satisfying the following equations:
Using the XXYZZ coordinates there is no additional assumption, and they represent a point (x, y) as (X, XX, Y, Z, ZZ) such that:
while the XXYZZR coordinates represent (x, y) as (X, XX, Y, Z, ZZ, R) such that:
with the XYZ coordinates the point (x, y) is given by (X, Y, Z), with:
For more information about the running-time required in a specific case, see Table of costs of operations in elliptic curves.