Skip to main content

Standard curve database

Search

secp256r1

256-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'.


Also known as: P-256prime256v1
y2x3+ax+by^2 \equiv x^3 + ax + b

Parameters

NameValue
p0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff
a0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc
b0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b
G(0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296, 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5)
n0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551
h0x1

Characteristics

  • Seed:
    C49D360886E704936A6678E1139D26B7819F7E90
  • j-invariant:
    7958909377132088453074743217357398615041065282494610304372115906626967530147
  • Trace of Frobenius:
    89188191154553853111372247798585809583
  • Discriminant:
    47064476442213300654454205837611899485069387829947879813735601543372794627813
  • Anomalous:
    false
  • Supersingular:
    false
  • Embedding degree:
    38597363070118749587565815649802524509998985074711920114140753020356170681456
  • CM-discriminant:
    51463150760158332783421087533070032680028376163334078103224794776407756178469
  • Conductor:
    3

SAGE

p = 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff
K = GF(p)
a = K(0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc)
b = K(0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b)
E = EllipticCurve(K, (a, b))
G = E(0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296, 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5)
E.set_order(0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551 * 0x1)

PARI/GP

p = 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff
a = Mod(0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc, p)
b = Mod(0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b, p)
E = ellinit([a, b])
E[16][1] = 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551 * 0x1
G = [Mod(0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296, p), Mod(0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5, p)]

JSON

{
"name": "secp256r1",
"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'.",
"form": "Weierstrass",
"field": {
"type": "Prime",
"p": "0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
"bits": 256
},
"params": {
"a": {
"raw": "0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"
},
"b": {
"raw": "0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"
}
},
"generator": {
"x": {
"raw": "0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"
},
"y": {
"raw": "0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
}
},
"order": "0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
"cofactor": "0x1",
"aliases": [
"nist/P-256",
"x962/prime256v1"
],
"characteristics": {
"seed": "C49D360886E704936A6678E1139D26B7819F7E90",
"j_invariant": "7958909377132088453074743217357398615041065282494610304372115906626967530147",
"anomalous": false,
"cm_disc": "51463150760158332783421087533070032680028376163334078103224794776407756178469",
"conductor": "3",
"discriminant": "47064476442213300654454205837611899485069387829947879813735601543372794627813",
"embedding_degree": "38597363070118749587565815649802524509998985074711920114140753020356170681456",
"torsion_degrees": [
{
"full": 3,
"least": 3,
"r": 2
},
{
"full": 6,
"least": 2,
"r": 3
},
{
"full": 10,
"least": 2,
"r": 5
}
],
"supersingular": false,
"trace_of_frobenius": "89188191154553853111372247798585809583"
}
}
JSON

© 2020 Jan Jancar | Built with Dox theme for Gatsby