Ecdsa

在橢圓曲線加法中,第二個點從何而來?

  • November 23, 2018

我對橢圓曲線術語的理解有限,但如果你能忍受我,我還是想問這個問題。我先從我理解的…

  • 您使用私鑰進行 EC 乘法以獲得公鑰。
  • EC乘法只是EC加法(一遍又一遍地完成)。
  • EC 乘法可以通過 EC 加法和 EC 雙倍(為了速度)的組合來實現。

從圖表的角度來看:

  • EC Double = 在目前點上畫一條切線,取相交,反轉它。
  • EC加法=通過目前點和第二個點畫一條線,相交,反轉它。

EC Double 我理解——你有你目前的點並且你畫了一條切線——曲線上不需要任何額外的點來獲得相交。

但是在 EC Addition 中,如果我有目前點,當嘗試在圖形上畫一條線以找到下一個相交點時,曲線上的第二個點來自哪裡?

正如克里斯托弗的回答一樣,在 ECDSA 密鑰生成中,您總是將私鑰與生成點 G 相乘。

做加法時,第二點是你需要添加什麼來得到你想要的。

例如,如果你想找到 3G,首先你做一個加倍:2G。然後你做加法:(2*G)+G。

如果你想找到 14*G,首先你做一些加倍:

2*G
4*G = 2*(2*G)
8*G = 2*(4*G)

然後是一些補充:

12*G = (8*G)+(4*G)
14*G = (12*G)+(2*G)

並不是說這總共需要 5 次操作,而不是像天真地將 G 添加到自身 14 次那樣需要 13 次。

等效地,您可以執行以下操作,其優點是始終只需要記住最後一步:

2*G
3*G = 2*G+G
6*G = 2*(3*G)
7*G = 6*G+G
14*G = 2*(7*G)

這正是您想要對普通數字(例如模整數)求冪時所做的事情:

x^2
x^3 = x^2*x
x^6 = (x^3)^2
x^7 = x^6*x
x^14 = (x^7)^2

總共有 5 次乘法而不是 13 次。

引用自:https://bitcoin.stackexchange.com/questions/37289