Previously, we were introduced to elliptic curves and point operations. So far, the elliptic curves we have seen are represented in the affine space, where points can be represented as
Since we are concerned with computational efficiency, we will only be studying curves that are restricted to prime fields. Hence, for all equations below, all field arithmetic are modulo arithmetic.
Let us consider 2 affine coordinates,
💡 Notice that in its worst case, point addition requires 2 multiplications, 6 additions/subtractions, and 1 division.
Let us recall how point doubling can be performed as well. To compute
💡 Point doubling involves 7 multiplications, 4 additions/subtractions, and 1 division.
Both point addition and doubling require 1 field division, which for prime fields, means modular division. This form of division requires the non-trivial act of finding a modular inverse, making it very expensive.
Costs can be reduced by adopting a new coordinate system that avoids field division entirely. Given an affine coordinate
For instance,
Projecting an entire elliptic curve yields the following curve equation.
The diagram below visualizes how a projected curve might look like.
To convert projective coordinates
With projective coordinates, the formulae for point addition and point doubling require no field division. Take
Next, given
Both operations require more addition and multiplication than before, but demand zero divisions! Knowing this, we can much more efficiently manipulate elliptic curve points by:
Now, only two field divisions are required for any amount of consecutive point addition and doubling. This, in turn, saves a drastic amount of computation for elliptic curves over finite fields.
A modified form of projective coordinates is Jacobian coordinates. For Jacobian coordinates, instead of multiplying
Using Jacobian coordinates, elliptic curves adopt the following equation.
Here is the formula for point addition, assuming
…and the formula for point doubling.
Like before, these operations do not require field division. Jacobian coordinates offer a slight edge compared to standard projective coordinates because they trade multiplication for more addition/subtraction which tends to be cheaper.
Each instance of affine point addition/doubling requires one field division. This becomes extremely expensive once we consider consecutive curve operations (e.g., scalar multiplication). On the other hand, Jacobian coordinates demand no field divisions. We can exploit this fact to support affine point manipulation by:
This way, we only require one modular inversion for an arbitrary number of elliptic curve operations, saving a significant amount of computation!
In the previous article, we learned about the elliptic curve and the discrete logarithm problem. We then restricted the curve such that it can be computed by a computer with finite memory.
In this article, we transformed the curve onto a projective space, and saw how it optimizes point arithmetic. After much math, we have arrived at a version of elliptic curves that is optimal for computers, and now have the necessary impetus to learn about elliptic curve cryptography.
Which of the following points is different from the rest?
Which of the following statements is false?
Which of these statements are true?
Let the elliptic curve points
Let the elliptic curve points