Elliptic-Curves
如何確定一個點在齊次座標中是否在無窮遠處?
我在業餘時間項目中實施 ECC。我在齊次座標上引用RFC-6090的點算術算法。
在附錄 F 第 2 小節中,在確定使用哪個公式時,有 5 個 case 標籤,具體取決於操作數中是否存在無限點(如果有的話)。對我來說,在恆定時間內實現這些案例標籤並不是什麼大問題,但我不太確定一個點是否在無窮大。
當無窮遠點出現在點算術中時,它具有齊次座標 $ (0,y,0) $ 在哪裡 $ y\ne 0 $ . 所以問:檢查是否足夠 $ Z = 0 $ 對於無窮遠點,還是必須檢查所有 3 個維度?
在齊次座標中,等價關係為 $ (X, Y, Z) \sim (\lambda X, \lambda Y, \lambda Z) $ 在哪裡 $ \lambda \neq 0 $ .
- 如果 $ Z \neq 0 $ 然後我們可以轉換 $ (X, Y, Z) $ 進入仿射點為 $ (X/Z,Y/Z) $ (請注意 $ \lambda $ s 取消)
- 如果 $ Z = 0 $ 然後使用等價類定義 $ (\lambda X, \lambda Y, 0) $ all 代表無窮遠點。IE$$ (x,y,0)\sim(2x,2y,0)\sim(-x,-y,0) $$
因此,當人們看到 $ Z=0 $ 在射影座標中,它是無窮遠點。
並且,如果仿射點 $ (0,0) $ 不滿足曲線方程,即 $ b \neq 0 $ 在簡短的魏爾斯特拉斯 $ y^2 = x^3 + ax +b $ ,那麼將點儲存在仿射座標中的無窮遠點是一個好地方,通常它沒有表示。
請注意,通常使用 $ (X: Y: Z) $ 同質座標的符號,我在這裡沒有使用。