Ecdsa
在橢圓曲線加法中,第二個點從何而來?
我對橢圓曲線術語的理解有限,但如果你能忍受我,我還是想問這個問題。我先從我理解的…
- 您使用私鑰進行 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 次。