Как найти параметры (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, как понимаю они рассчитываться должны из имеющихся.

23 Сен 2019 в 20:18
322 +1
0
Ответы
1

Известно, что уравнение эллиптической кривой в проективных координатах имеет вид:

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.

19 Апр 2024 в 19:57
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир