Ed25519
255-bit prime field TwistedEdwards curve.Curve from https://ed25519.cr.yp.to
Parameters
Characteristics
- j-invariant:
39240375672115510010799456308813573486606784421612167109713554819120306934551 - Trace of Frobenius:
-221938542218978828286815502327069187962 - Discriminant:
604592382411166409359847682163448376412977399592556651652337986082875105857
SAGE
p = 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedK = GF(p)a = K(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec)d = K(0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3)E = EllipticCurve(K, (K(-1/48) * (a^2 + 14*a*d + d^2),K(1/864) * (a + d) * (-a^2 + 34*a*d - d^2)))def to_weierstrass(a, d, x, y):return ((5*a + a*y - 5*d*y - d)/(12 - 12*y), (a + a*y - d*y -d)/(4*x - 4*x*y))def to_twistededwards(a, d, u, v):y = (5*a - 12*u - d)/(-12*u - a + 5*d)x = (a + a*y - d*y -d)/(4*v - 4*v*y)return (x, y)G = E(*to_weierstrass(a, d, K(0x216936D3CD6E53FEC0A4E231FDD6DC5C692CC7609525A7B2C9562D608F25D51A), K(0x6666666666666666666666666666666666666666666666666666666666666658)))E.set_order(0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed * 0x08)# This curve is a Weierstrass curve (SAGE does not support TwistedEdwards curves) birationally equivalent to the intended curve.# You can use the to_weierstrass and to_twistededwards functions to convert the points.
JSON
{"name": "Ed25519","desc": "Curve from https://ed25519.cr.yp.to","form": "TwistedEdwards","field": {"type": "Prime","p": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed","bits": 255},"params": {"a": {"raw": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"},"d": {"raw": "0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"}},"generator": {"x": {"raw": "0x216936D3CD6E53FEC0A4E231FDD6DC5C692CC7609525A7B2C9562D608F25D51A"},"y": {"raw": "0x6666666666666666666666666666666666666666666666666666666666666658"}},"order": "0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed","cofactor": "0x08","characteristics": {"j_invariant": "39240375672115510010799456308813573486606784421612167109713554819120306934551","discriminant": "604592382411166409359847682163448376412977399592556651652337986082875105857","trace_of_frobenius": "-221938542218978828286815502327069187962"}}