Skip to main content

Standard curve database

Search

SM2

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

Parameters

NameValue
p0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff
a0xfffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc
b0x28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e93
G(0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7, 0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0)
n0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123
h0x01

Characteristics

  • OID:
    1.2.156.10197.1.301

SAGE

p = 0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff
K = GF(p)
a = K(0xfffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc)
b = K(0x28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e93)
E = EllipticCurve(K, (a, b))
G = E(0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7, 0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0)
E.set_order(0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123 * 0x01)

PARI/GP

p = 0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff
a = Mod(0xfffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc, p)
b = Mod(0x28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e93, p)
E = ellinit([a, b])
E[16][1] = 0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123 * 0x01
G = [Mod(0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7, p), Mod(0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0, p)]

JSON

{
"name": "SM2",
"desc": "",
"oid": "1.2.156.10197.1.301",
"form": "Weierstrass",
"field": {
"type": "Prime",
"p": "0xfffffffeffffffffffffffffffffffffffffffff00000000ffffffffffffffff",
"bits": 256
},
"params": {
"a": {
"raw": "0xfffffffeffffffffffffffffffffffffffffffff00000000fffffffffffffffc"
},
"b": {
"raw": "0x28e9fa9e9d9f5e344d5a9e4bcf6509a7f39789f515ab8f92ddbcbd414d940e93"
}
},
"generator": {
"x": {
"raw": "0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7"
},
"y": {
"raw": "0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0"
}
},
"order": "0xfffffffeffffffffffffffffffffffff7203df6b21c6052b53bbf40939d54123",
"cofactor": "0x01"
}

© 2020 Jan Jancar | Built with Dox theme for Gatsby