13 Finite field extension curves described

 

This chapter covers

  • Cardinality of field extension curves
  • Structures for polynomial points and curves
  • Embedding polynomial points on curves
  • Addition and multiplication of field extension points
  • A tiny example showing points on a field extension curve

In this chapter, I’ll dive into elliptic curves over finite field extensions. These curves are required to compute pairings. The cryptographic protocols enabled by pairings of points over elliptic curves have a lot of advantages. But before we can compute pairings, we first need a point addition algorithm over a field extension of an elliptic curve.

Elliptic curve subroutines using polynomials are the subject of this chapter. I’ll first cover some of the rules required to create a field extension and then assume we already have found a useful curve. In chapter 14, I’ll go into how that actually happens. As with chapter 3, I will cover routines that manipulate point and curve structures, embed polynomials on a curve, create random points, add points, and multiply points. While most places replace an m* routine with a poly* routine, there are a few differences because polynomials are more complicated than numbers.

To help visualize the ideas here and in the next few chapters, I will use a very tiny curve as an illustration. This curve was definitely cherry-picked to contain as many useful examples as possible.

13.1 Field extension properties

13.2 Elliptic curve routines

13.2.1 Polynomial curve setup

13.2.2 Polynomial curve utilities

13.2.3 Polynomial curve point embedding

13.2.4 Polynomial curve random point

13.2.5 Polynomial elliptic curve addition

13.2.6 Polynomial elliptic curve point multiplication

13.3 Tiny example

13.3.1 Tiny example variables

13.3.2 Tiny example base curve

13.3.3 Tiny example field extension curve

Answer to exercise

Summary