M-221
221-bit prime field Montgomery curve.Curve from https://eprint.iacr.org/2013/647.pdf
Parameters
SAGE
p = 0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDK = GF(p)A = K(0x01c93a)B = K(0x01)E = EllipticCurve(K, ((3 - A^2)/(3 * B^2), (2 * A^3 - 9 * A)/(27 * B^3)))def to_weierstrass(A, B, x, y):return (x/B + A/(3*B), y/B)def to_montgomery(A, B, u, v):return (B * (u - A/(3*B)), B*v)G = E(*to_weierstrass(A, B, K(0x04), K(0x0f7acdd2a4939571d1cef14eca37c228e61dbff10707dc6c08c5056d)))E.set_order(0x040000000000000000000000000015A08ED730E8A2F77F005042605B * 0x8)# This curve is a Weierstrass curve (SAGE does not support Montgomery curves) birationally equivalent to the intended curve.# You can use the to_weierstrass and to_montgomery functions to convert the points.
JSON
{"name": "M-221","desc": "Curve from https://eprint.iacr.org/2013/647.pdf","form": "Montgomery","field": {"type": "Prime","p": "0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD","bits": 221},"params": {"a": {"raw": "0x01c93a"},"b": {"raw": "0x01"}},"generator": {"x": {"raw": "0x04"},"y": {"raw": "0x0f7acdd2a4939571d1cef14eca37c228e61dbff10707dc6c08c5056d"}},"order": "0x040000000000000000000000000015A08ED730E8A2F77F005042605B","cofactor": "0x8"}