dongniaocheng3773
2019-01-05 19:04
浏览 312
已采纳

如何使用Golang big.Int计算`x ^ 3 + ax + b mod p`

I'm trying to find the Y coordinate for an elliptic point. I understand the formula is y^2≡x^3+ax+b mod p.

However I'm unsure of how I would actually program this in 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

Where xCubed,X,N,P,B are *big.Int and N represents y^2

I'm a noob to modular arithmetic, so my assumption mod P is applied to each operation; Is this the correct way to to calculate x^3 + ax + b mod p?

edit: should I have added AX.Mod(p) ?

图片转代码服务由CSDN问答提供 功能建议

我正在尝试找到椭圆点的 Y 坐标。 我知道公式是 y ^2≡x^ 3 + ax + b mod p

但是我不确定如何在其中编程

  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 \  n 
返回N 
   
 
 

其中xCubed,X,N,P,B为 * big.Int ,N表示y ^ 2 < / p>

我对模块化算术不熟悉,因此我的假设mod P适用于每个操作; 这是计算 x ^ 3 + ax + b mod p 的正确方法吗?

edit:我应该添加AX.Mod(p)吗?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题