Skip to main content

Standard curve database

Search

numsp256d1

256-bit prime field Weierstrass curve.
y2x3+ax+by^2 \equiv x^3 + ax + b

Parameters

NameValue
p0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43
a0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40
b0x25581
G(0x01, 0x696f1853c1e466d7fc82c96cceeedd6bd02c2f9375894ec10bf46306c2b56c77)
n0xffffffffffffffffffffffffffffffffe43c8275ea265c6020ab20294751a825
h0x01

Sources


Characteristics

  • j-invariant:
    63443586882444752838319511351138587410933807550953792556950236171595237693864
  • Trace of Frobenius:
    36904200015056198187214188655179355935
  • Discriminant:
    115792089237316195423570985008687907853269984665640564039457583997805596472403
  • Embedding degree:
    28948022309329048855892746252171976963308270116406376960317592454814487570953
  • CM-discriminant:
    -461806436970513507795776071208962019617834464011805499237102336028251098834763
  • Conductor:
    1

SAGE

p = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43
K = GF(p)
a = K(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40)
b = K(0x25581)
E = EllipticCurve(K, (a, b))
G = E(0x01, 0x696f1853c1e466d7fc82c96cceeedd6bd02c2f9375894ec10bf46306c2b56c77)
E.set_order(0xffffffffffffffffffffffffffffffffe43c8275ea265c6020ab20294751a825 * 0x01)

PARI/GP

p = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43
a = Mod(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40, p)
b = Mod(0x25581, p)
E = ellinit([a, b])
E[16][1] = 0xffffffffffffffffffffffffffffffffe43c8275ea265c6020ab20294751a825 * 0x01
G = [Mod(0x01, p), Mod(0x696f1853c1e466d7fc82c96cceeedd6bd02c2f9375894ec10bf46306c2b56c77, p)]

JSON

{
"name": "numsp256d1",
"desc": "",
"sources": [
{
"name": "Elliptic Curve Cryptography (ECC) Nothing Up My Sleeve (NUMS) Curves and Curve Generation",
"url": "https://tools.ietf.org/html/draft-black-numscurves-02"
}
],
"form": "Weierstrass",
"field": {
"type": "Prime",
"p": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43",
"bits": 256
},
"params": {
"a": {
"raw": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40"
},
"b": {
"raw": "0x25581"
}
},
"generator": {
"x": {
"raw": "0x01"
},
"y": {
"raw": "0x696f1853c1e466d7fc82c96cceeedd6bd02c2f9375894ec10bf46306c2b56c77"
}
},
"order": "0xffffffffffffffffffffffffffffffffe43c8275ea265c6020ab20294751a825",
"cofactor": "0x01",
"characteristics": {
"cm_disc": "-461806436970513507795776071208962019617834464011805499237102336028251098834763",
"conductor": "1",
"discriminant": "115792089237316195423570985008687907853269984665640564039457583997805596472403",
"j_invariant": "63443586882444752838319511351138587410933807550953792556950236171595237693864",
"embedding_degree": "28948022309329048855892746252171976963308270116406376960317592454814487570953",
"trace_of_frobenius": "36904200015056198187214188655179355935"
}
}

© 2020-2025 Jan Jancar | Built with Dox theme for Gatsby