MATH 470 Lecture 23

From Notes
Jump to navigation Jump to search

« previous | Thursday, April 11, 2013 | next »


Going back to last time, we defined an elliptic curve over k is the zero set (including the point at infinity) in K2 of a polynomial fK[x,y] with

  1. the Newton polygon having exactly 1 point with integer coordinates in its interior.
  2. a smooth curve C

Let's call this our 2nd definition.

Let our first definition be the zero set of a polynmial in weierstrass normal form (including the point at infinity)

3rd (classical) definition: A curve of genus one. So somehow, elliptic curves correspond to tori

So the number of interior lattice points in a Newton polygon is somehow related to the genus (under certain conditions).

What's a Genus

The classification of surfaces boils down to the number of holes (or number of handles, not that holes and handles are the same things...)

  • Genus 0: Imagine a sphere
  • Genus 1: Imagine a donut
  • Genus 2: Handcuffs
  • ...

A curve over is actually a surface over two real dimensions.

For example, zero set of x+y1 in over is really just the zero set of the real part and the imaginary part.


Finite Fields

A finite field is any set of numbers closed on multiplicative inversion: all nonzero elements in the field have a multiplicative inverse in the same field.

For any prime p, 𝔽p (also written GF(p)) is defined to be a field with p elements. For example, 𝔽p=/p.

Can /6 be a field? No. (2 and 3 do not have inverses)

Finite fields need not have prime number of elements, only a prime power number of elements.

We'll study 𝔽q with q=pk for any prime p (and elliptic curves over 𝔽q).

Note: 𝔽q/4

We define 𝔽p[x] as the set of polynomials in x with coefficients in 𝔽p.

If f𝔽p[x], we derive

𝔽p[x]/f

as polynomials mod f.

(what's with these polynomials mod other polynomials?)

𝔽p[x]/f is just the polynomials in 𝔽p[x] of degree less than that of f with +, −, and × performed mod f.

Example

𝔽2[x]/x2+x+1=0,1,x,x+1


Addition Table
+ 0 1 x x+1
0 0 1 x x+1
1 1 0 x+1 x
x x x+1 0 1
x+1 x+1 x 1 0
Multiplication Table
× 0 1 x x+1
0 0 0 0 0
1 0 1 x x+1
x 0 x x+1 1
x+1 0 x+1 1 x
Note: Reducing mod x2+x+1 means you declare x2+x+1=0, so x2=(x+1)=x+1

See that 11=1, 1x=x+1, and 1x+1=x are all well-defined, nonzero, invertible elements. Thus we have a realization of 𝔽4


What if we chose 𝔽2[x]/x2+1?

Our multiplication table would be different:


Multiplication Table
× 0 1 x x+1
0 0 0 0 0
1 0 1 x x+1
x 0 x 1 x+1
x+1 0 x+1 x+1 0

Note that 1x+1 makes no sense.

Irreducibility

We call f𝔽p[x] irreducable iff f=gh implies that g𝔽p or h𝔽p. In other words, f has no non-trivial factorization.

Example 1

x22 is irreducable over 𝔽3.

Proof. Indeed, if x22 had a non-trivial factorization (other than const × degree 2), then it must factor as (deg 1)(deg 1).

Then

x22=c(x+a)(x+b)

means that

x22

has a root in

𝔽3

. But the squares in

𝔽3

are 0 and 1.

x22

vanishes at neither, so

x22

is irreducable.

Q.E.D.

However, x22 is reducable over

  • 𝔽2: x22=x2=xx
  • 𝔽7: x22=(x+3)(x+4)
Fact: 𝔽pk can be realized as 𝔽p[x]/f for any irreducable f𝔽p[x] of degree k.

Example 2

𝔽8[x] can be realized as 𝔽2[x]/x3+x+1:

{0,1,x,x+1,x2,x2+x,x2+1,x2+x+1}

Deciding Realizations

Which realization you use is very important in practice.

The Intel 8051 is a chip with 256 bytes of onboard RAM running at 12 MHz, used in some smart cards around 2000. This is an incredible hardware limitation, and operations can take a significant amount of time and power if the field realization is not chosen carefully.

Here's a table for the number of cycles needed to multiply two field elements:

Field Number of Cycles
𝔽2135 19,600
𝔽2136=𝔽(28)17 7479
𝔽23917 5084

Upshot: Picking the right f is key to going faster and saving power

Primitivity

We call an irreducable f𝔽p[x] primitive iff f has a primitive element for 𝔽pk as one of its roots (generator).

Example

1+x+x3 is primitive over 𝔽2[x]. In particular, observe the powers of x in 𝔽2[x]/x3+x+1

  • 1
  • x
  • x2
  • x3=x+1
  • x4=xx3=x2+x
  • x5=xx4=x2+x+1
  • x6=xx5=x2+1
  • x7=xx6=1

We've realized 𝔽8 and with an explicit generator for 𝔽8*.

Note: 𝔽q*=𝔽q{0} is comparable to (/p)*: nonzero elements of the referenced collection
Note: not all irreducible f are primitive: x4+x3+x2+x+1 is irreducable in 𝔽2[x] but not primitive

Sparsity

x167+x6+1 is irreducible over 𝔽2[x] and has only 3 terms. Therefore, powering is much faster.

For example, x167=x6+1. If we worked mod a non-sparse polynomial, we'd get x167=MESS

So what's so good about curves over 𝔽p?
Elliptic curves can be used to factor integers!

Factoring with Elliptic Curves

Classical factoring algorithms worked with arithmetic in 𝔽p* or (/n)* for some prime p. Working with elliptic curves over 𝔽p* gives more flexibility

The number of elements in 𝔽p* is p1. The number of elliptic curves in the same field is p+1+wiggle

Hasse's Theorem

(1933)

If n is the number of points on an elliptic curve over 𝔽q,

|n(q+1)|2q

And, for any such n, there is a curve over 𝔽q with that many points.