Skip to main content

Standard curve database

Search

secp128r1

128-bit prime field Weierstrass curve.

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


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

Parameters

NameValue
p0xfffffffdffffffffffffffffffffffff
a0xfffffffdfffffffffffffffffffffffc
b0xe87579c11079f43dd824993c2cee5ed3
G(0x161ff7528b899b2d0c28607ca52c5b86, 0xcf5ac8395bafeb13c02da292dded7a83)
n0xfffffffe0000000075a30d1b9038a115
h0x01

Characteristics

  • OID:
    1.3.132.0.28
  • Seed:
    000E0D4D696E6768756151750CC03A4473D03679
  • j-invariant:
    142488586153168470548238628993886102905
  • Trace of Frobenius:
    -8476633335676313877
  • Discriminant:
    92269531472977194927251796133478512919
  • Anomalous:
    false
  • Supersingular:
    false
  • Embedding degree:
    170141183381241069221661282790178312330
  • CM-discriminant:
    1361129467049928553747860362314397557009
  • Conductor:
    1

SAGE

p = 0xfffffffdffffffffffffffffffffffff
K = GF(p)
a = K(0xfffffffdfffffffffffffffffffffffc)
b = K(0xe87579c11079f43dd824993c2cee5ed3)
E = EllipticCurve(K, (a, b))
G = E(0x161ff7528b899b2d0c28607ca52c5b86, 0xcf5ac8395bafeb13c02da292dded7a83)
E.set_order(0xfffffffe0000000075a30d1b9038a115 * 0x01)

PARI/GP

p = 0xfffffffdffffffffffffffffffffffff
a = Mod(0xfffffffdfffffffffffffffffffffffc, p)
b = Mod(0xe87579c11079f43dd824993c2cee5ed3, p)
E = ellinit([a, b])
E[16][1] = 0xfffffffe0000000075a30d1b9038a115 * 0x01
G = [Mod(0x161ff7528b899b2d0c28607ca52c5b86, p), Mod(0xcf5ac8395bafeb13c02da292dded7a83, p)]

JSON

{
"name": "secp128r1",
"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 [1] from the seed'.",
"oid": "1.3.132.0.28",
"form": "Weierstrass",
"field": {
"type": "Prime",
"p": "0xfffffffdffffffffffffffffffffffff",
"bits": 128
},
"params": {
"a": {
"raw": "0xfffffffdfffffffffffffffffffffffc"
},
"b": {
"raw": "0xe87579c11079f43dd824993c2cee5ed3"
}
},
"generator": {
"x": {
"raw": "0x161ff7528b899b2d0c28607ca52c5b86"
},
"y": {
"raw": "0xcf5ac8395bafeb13c02da292dded7a83"
}
},
"order": "0xfffffffe0000000075a30d1b9038a115",
"cofactor": "0x01",
"characteristics": {
"seed": "000E0D4D696E6768756151750CC03A4473D03679",
"j_invariant": "142488586153168470548238628993886102905",
"anomalous": false,
"cm_disc": "1361129467049928553747860362314397557009",
"conductor": "1",
"discriminant": "92269531472977194927251796133478512919",
"embedding_degree": "170141183381241069221661282790178312330",
"torsion_degrees": [
{
"full": 3,
"least": 3,
"r": 2
},
{
"full": 4,
"least": 4,
"r": 3
},
{
"full": 24,
"least": 24,
"r": 5
},
{
"full": 6,
"least": 6,
"r": 7
},
{
"full": 120,
"least": 120,
"r": 11
},
{
"full": 168,
"least": 168,
"r": 13
},
{
"full": 8,
"least": 4,
"r": 17
},
{
"full": 18,
"least": 9,
"r": 19
}
],
"supersingular": false,
"trace_of_frobenius": "-8476633335676313877"
}
}

© 2020 Jan Jancar | Built with Dox theme for Gatsby