Как найти параметры (a, h) эллиптической кривой? Использую Go, и там под кривой elliptic.P256() из crypto/elliptic, подразумевается secp256r1 Рекоммендуемые параметры для этой эллиптической кривой можно проверить сравнив сhttps://www.secg.org/sec2-v2.pdf#page=13&zoom=100,0,884 Но CurveParams кривой содержат не все параметрыtype CurveParams struct { P *big.Int // the order of the underlying field N *big.Int // the order of the base point B *big.Int // the constant of the curve equation Gx, Gy *big.Int // (x,y) of the base point BitSize int // the size of the underlying field Name string // the canonical name of the curve } Не хватает A и H, как понимаю они рассчитываться должны из имеющихся.
Известно, что уравнение эллиптической кривой в проективных координатах имеет вид:
y^2 = x^3 + ax + b
Для кривой secp256r1 (или P-256) известно, что a = -3, b = 41058363725152142129326129780047268409114441015993725554835256314039467401291. Из этого можно рассчитать оставшиеся параметры A и H.
A вычисляется следующим образом: A = 2 P - 4 a^3 - 27 * b^2
H вычисляется следующим образом: H = 1
Таким образом, для кривой secp256r1 параметры a, A и H будут следующими: a = -3 A = 115792089933779261549465271783255420844721902168107994032534260203783180424605 H = 1
Эти параметры можно использовать для создания кривой elliptic.P256() в Go.
Известно, что уравнение эллиптической кривой в проективных координатах имеет вид:
y^2 = x^3 + ax + b
Для кривой secp256r1 (или P-256) известно, что a = -3, b = 41058363725152142129326129780047268409114441015993725554835256314039467401291. Из этого можно рассчитать оставшиеся параметры A и H.
A вычисляется следующим образом:
A = 2 P - 4 a^3 - 27 * b^2
H вычисляется следующим образом:
H = 1
Таким образом, для кривой secp256r1 параметры a, A и H будут следующими:
a = -3
A = 115792089933779261549465271783255420844721902168107994032534260203783180424605
H = 1
Эти параметры можно использовать для создания кривой elliptic.P256() в Go.