Type G Internals

Another construction based on the CM method.

g_param struct fields:

q, n, h, r:
  h * r = n is the order of E(F_q)
a, b:
  E: y^2 = x^3 + ax + b
nk:
  #E(F_q^10)
hk:
  hk * r^2 = nk
coeff:
  array of coefficients of polynomial used for quintic extension.
nqr:
  a quadratic nonresidue

g_param struct fields:

Discovered by Freeman, "Constructing pairing-friendly elliptic curves with embedding degree 10."