liveBook · Manning

Discriminant

As explained in Elliptic Curve Cryptography for Developers

An arithmetic value identifying a quadratic order or related algebraic object that determines a Hilbert class polynomial.

A discriminant is the square-free value α substituted into z = αx² when constructing pairing-friendly elliptic curves. It helps determine the field prime, large prime order, Hilbert class polynomial, and ultimately the curve’s j-invariant. section 14.2 section 14.7

A practical discriminant workflow connects parameter search to curve generation:

  • Choose permitted α values and sweep α with x, testing whether r(z) and q(z) are prime. section 14.2
  • Use the selected discriminant to obtain a Hilbert class polynomial, whose roots provide candidate j-invariants. section 14.3
  • Check the resulting curves and, when necessary, compute a quadratic twist until multiplying a random point by the cardinality reaches infinity. section 14.7

Discriminant input in curve-finding code

The get_curve program accepts a discriminant, prime q, and trace t. It normalizes a negative discriminant to a positive comparison value, scans Hilbert_Polynomials.list for the matching entry, and exits if the value is unsupported. The listed discriminants are negative internally; permitted absolute values include 7, 11, 15, 19, and values 23 + 20a for a from 0 through 7. section 14.5.2 section 14.2

Figure 14.1 Pairing-friendly curves algorithm. Above the dashed line is one program that searches for good parameters. Below the dashed line is a program that finds one curve for one set of parameters.
figure

Separates parameter searching above the dashed line from finding one curve for chosen parameters below it. section 14.2

How Elliptic Curve Cryptography for Developers covers it

How deep it goes
Traces α from parameter formulas through polynomial lookup and code-level validation, while deferring the deeper mathematical origin of complex multiplication.
Examples
Uses α values such as 7, 11, 15, 19, and 23 + 20a, plus C routines that scan polynomial files and validate inputs.
What it assumes
Assumes familiarity with pairing-friendly elliptic curves, embedding degree, primes, trace, Hilbert class polynomials, and j-invariants.
What you can do after
Operate/configure curve-generation code by selecting a supported discriminant and verifying the resulting curve or its twist.
How it connects
Connects discriminants with embedding degree, trace of Frobenius, field primes, Hilbert class polynomials, j-invariants, elliptic curves, and twist curves.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Elliptic Curve Cryptography for Developers. The section links point to the parts of the book it draws on.