Documentation

Elligator.Elligator1.Curve1174

Curve1174 #

This file instantiates the general Elligator 1 development at the concrete curve of [bernstein2013a], Section 4: Curve1174, the complete Edwards curve

$$ x^2 + y^2 = 1 - 1174 x^2 y^2 $$

over the prime field $\mathbb{F}_q$ with $q = 2^{251} - 9$.

Following the paper, the curve is not given by its coefficient but produced by the Elligator 1 construction from the parameter

$$ s = 1806494121122717992522804053500797229648438766985538871240722010849934886421, $$

and the resulting coefficient d s is shown to be exactly -1174.

All numerical statements are checked by kernel computation. Field elements of F1174 are Fin residues, so decide evaluates ring operations directly; the two places where an exponent is astronomically large (the primality certificate and the quadratic character) go through the binary modular exponentiation of Elligator.PrimalityCertificate.

Main results #

References #

See [bernstein2013a], Section 4.

The base field #

The characteristic of the Curve1174 base field, q = 2 ^ 251 - 9.

Equations
Instances For

    The numeral defining q1174 is 2 ^ 251 - 9.

    @[reducible, inline]

    The Curve1174 base field F_q with q = 2 ^ 251 - 9.

    Equations
    Instances For

      q ≡ 3 (mod 4), one of the standing hypotheses of Elligator 1.

      q1174 is a prime power, as required by the Elligator 1 development.

      The Elligator 1 parameter s and the derived parameters c, r, d #

      The Elligator 1 parameter s chosen for Curve1174 in [bernstein2013a], Section 4.1.

      Equations
      Instances For

        The parameter s is nonzero.

        The parameter s satisfies (s^2 - 2)(s^2 + 2) ≠ 0.

        theorem Elligator.Elligator1.Curve1174.c1174_eq :
        c s1174 = 2179648967284864129978754827181620133949030013113193603783078030367640144353

        The value of the curve parameter c = 2/s^2 for Curve1174.

        theorem Elligator.Elligator1.Curve1174.r1174_eq :
        r s1174 = 169665518650159600071835149602457239235130252467237612483220564802728637315

        The value of the curve parameter r = c + 1/c for Curve1174.

        The Edwards coefficient produced by Elligator 1 from (q, s) is -1174: the curve of Theorem 1 and Definition 2 for this choice of parameters is exactly Curve1174.

        The quadratic character of the Edwards coefficient is -1.

        -1174 is not a square in F1174; by [bernstein2013a], Section 4.1 this is what makes Curve1174 a complete Edwards curve.

        The curve #

        Curve1174 is the Edwards curve with coefficient -1174.

        theorem Elligator.Elligator1.Curve1174.curve1174_equation (x y : F1174) :
        curve1174.Equation x y x ^ 2 + y ^ 2 = 1 - 1174 * x ^ 2 * y ^ 2

        The defining equation of Curve1174: x^2 + y^2 = 1 - 1174 x^2 y^2.

        Curve1174 is a valid (nonsingular) Edwards model.

        The Elligator 1 maps for Curve1174 #

        The Elligator 1 decoding function φ : F_q → E(F_q) of Definition 2, for Curve1174.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Theorem 1 for Curve1174: every decoded value is a point of the curve.

          theorem Elligator.Elligator1.Curve1174.decode1174_equation (t : F1174) :
          have x := (decode1174 t).1; have y := (decode1174 t).2; x ^ 2 + y ^ 2 = 1 - 1174 * x ^ 2 * y ^ 2

          Theorem 1 for Curve1174, in coordinates.

          Theorem 3 for Curve1174: φ identifies t and -t.

          Theorem 3 for Curve1174: t and -t are the only preimages of φ t.

          The string encoding for Curve1174 #

          Curve1174 encodes field elements as strings of b = ⌊log₂ q⌋ = 250 bits.

          Theorem 4 for Curve1174: there are (q + 1)/2 admissible bit strings.

          Theorem 4 for Curve1174: the string encoding ι : S → E(F_q) is injective.

          Theorem 4 for Curve1174: the string encoding is a bijection from S onto φ(F_q).

          The base point #

          The V-coordinate of the base point of Section 4.1 on the Montgomery model (4/1175) V^2 = U^3 + (4/1175 - 2) U^2 + U, at U = 4.

          Equations
          Instances For

            The base point (x, y) = (4/V, 3/5) of Curve1174 given in [bernstein2013a], Section 4.1.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem Elligator.Elligator1.Curve1174.basePointV_montgomery :
              4 / 1175 * basePointV ^ 2 = 4 ^ 3 + (4 / 1175 - 2) * 4 ^ 2 + 4

              The point (U, V) = (4, V) of [bernstein2013a], Section 4.1 lies on the Montgomery model (4/1175) V^2 = U^3 + (4/1175 - 2) U^2 + U to which Curve1174 is birationally equivalent.

              The first coordinate of the base point is 4/V.

              The second coordinate of the base point is 3/5.