I am currently in the process of researching different forms of elliptic curves defined over prime fields. In many curve standards, such as NIST, Brainpool, etc, there exist a list of curve equations for Weierstrass, Montgomery, and (twisted) Edwards curves.

However, I wish to also investigate various other curve forms, such as Hessian, Doche-Icart-Kohel, Jacobi intersections, Jacobi quartics, etc, but unfortunately I have been unable to find any such standards covering the selection of these curves. I'd like to know if any such papers / websites exist that detail some curve equations for each form. A list of curve equations with different parameters for these forms would be ideal.

  • 1
    $\begingroup$ Weierstrass is the base and Montgomery and Edwards curves are easy to implement in constant time, that is the reason that you find them in the standards. The standards require secure, fast arithmetic and preferable secure implementation are ready to use. safecurves.cr.yp.to $\endgroup$ – kelalaka Mar 25 at 11:44
  • $\begingroup$ As you say, curves of Weierstrass, Montgomery, and Edwards form are easy to implement, and SafeCurves provides a thorough explanation and justification to their security, however, I wish to implement the other curves models (Hessian, Jacobi quartic, etc). I'm not necessarily looking for secure curve models which are practically implemented in ECC, but just some equations that can be used :) $\endgroup$ – Calum Johnston Mar 25 at 11:52
  • 1
    $\begingroup$ If you're not doing cryptography, then it doesn't matter what parameters you select, as long as you select a mathematically valid set of parameters (one which produces a nonsingular projective genus 1 curve), so it's not clear what your question is. $\endgroup$ – djao Mar 25 at 21:13

Weierstrass models can be converted to Hessian and Jacobi models (where such models exist) and in the days before Edwards curves were considered for ECC-based on implementation and side-channel properties.

The conversion to Jacobi model seems to be covered on mathoverflow.

To convert to Hessian, compute the $j$ invariant in $\mathbb F_p$ and then solve $$j=\frac{c^3(c^3+216)}{(c^9-81c^6+2187c^3-19683)}$$ for $c\in\mathbb F_p$ (if the corresponding degree 9 polynomial has a root in $\mathbb F_p$). Your curve is then birationally equivalent to $$X^3+Y^3+Z^3=cXYZ.$$

The Handbook of Elliptic and Hyperelliptic Curve Cryptography section 13.1.5.b shows how to explicitly calculate the binational maps if you want to find the image of specific points on the Hessian.

Thus you could take a standard Weierstrass model (e.g. NIST P256, Curve25519) and likely convert it to an alternative form if you so wished.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.