Skip to main content

Standard curve database

Search

secp128r2

128-bit prime field Weierstrass curve.

A randomly generated curve. SEC2v1 states 'E was chosen verifiably at random as specified in ANSI X9.62 from the seed'.


y2x3+ax+by^2 \equiv x^3 + ax + b

Parameters

NameValue
p0xfffffffdffffffffffffffffffffffff
a0xd6031998d1b3bbfebf59cc9bbff9aee1
b0x5eeefca380d02919dc2c6558bb6d8a5d
G(0x7b6aa5d85e572983e6fb32a7cdebc140, 0x27b6916a894d3aee7106fe805fc34b44)
n0x3fffffff7fffffffbe0024720613b5a3
h0x04


Characteristics

  • OID:
    1.3.132.0.29
  • Seed:
    004D696E67687561517512D8F03431FCE63B88F4
  • j-invariant:
    194900232209907094972416409296981867603
  • Trace of Frobenius:
    19023044537425668468
  • Discriminant:
    296974453756101405409198998476964181399
  • Anomalous:
    false
  • Supersingular:
    false
  • Embedding degree:
    7733690153692775873086883811528514598
  • CM-discriminant:
    -249813310894261997230170354175517944027
  • Conductor:
    2

SAGE

p = 0xfffffffdffffffffffffffffffffffff
K = GF(p)
a = K(0xd6031998d1b3bbfebf59cc9bbff9aee1)
b = K(0x5eeefca380d02919dc2c6558bb6d8a5d)
E = EllipticCurve(K, (a, b))
G = E(0x7b6aa5d85e572983e6fb32a7cdebc140, 0x27b6916a894d3aee7106fe805fc34b44)
E.set_order(0x3fffffff7fffffffbe0024720613b5a3 * 0x04)

PARI/GP

p = 0xfffffffdffffffffffffffffffffffff
a = Mod(0xd6031998d1b3bbfebf59cc9bbff9aee1, p)
b = Mod(0x5eeefca380d02919dc2c6558bb6d8a5d, p)
E = ellinit([a, b])
E[16][1] = 0x3fffffff7fffffffbe0024720613b5a3 * 0x04
G = [Mod(0x7b6aa5d85e572983e6fb32a7cdebc140, p), Mod(0x27b6916a894d3aee7106fe805fc34b44, p)]

JSON

{
"name": "secp128r2",
"desc": "A randomly generated curve. [SEC2v1](https://www.secg.org/SEC2-Ver-1.0.pdf) states 'E was chosen verifiably at random as specified in ANSI X9.62 from the seed'.",
"oid": "1.3.132.0.29",
"form": "Weierstrass",
"field": {
"type": "Prime",
"p": "0xfffffffdffffffffffffffffffffffff",
"bits": 128
},
"params": {
"a": {
"raw": "0xd6031998d1b3bbfebf59cc9bbff9aee1"
},
"b": {
"raw": "0x5eeefca380d02919dc2c6558bb6d8a5d"
}
},
"generator": {
"x": {
"raw": "0x7b6aa5d85e572983e6fb32a7cdebc140"
},
"y": {
"raw": "0x27b6916a894d3aee7106fe805fc34b44"
}
},
"order": "0x3fffffff7fffffffbe0024720613b5a3",
"cofactor": "0x04",
"characteristics": {
"seed": "004D696E67687561517512D8F03431FCE63B88F4",
"discriminant": "296974453756101405409198998476964181399",
"j_invariant": "194900232209907094972416409296981867603",
"trace_of_frobenius": "19023044537425668468",
"embedding_degree": "7733690153692775873086883811528514598",
"anomalous": false,
"supersingular": false,
"cm_disc": "-249813310894261997230170354175517944027",
"conductor": "2"
}
}

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