Я пытаюсь найти координату Y для эллиптической точки. Я понимаю, что формула y^2≡x^3+ax+b mod p
.
Однако я не уверен, как бы я запрограммировал это на Go.
xCubed.Exp(X, 3, nil)
AX.Mul(A,X)
N.Add(XPow3, AX) // x^3 + ax
N.Mod(N, P) // mod p
N.Add(N, B) // (x^3 + ax) + b
N.Mod(N, P) // mod p
return N
Где xCubed, X, N, P, B равны *big.Int
, а N представляет y ^ 2
Я новичок в модульной арифметике, поэтому моё предположение мод P применяется к каждой операции; Это правильный способ расчета x^3 + ax + b mod p
?
редактировать: я должен был добавить AX.Mod (p)?