Elliptic-Curves

如何確定一個點在齊次座標中是否在無窮遠處?

  • January 14, 2022

我在業餘時間項目中實施 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) $ 同質座標的符號,我在這裡沒有使用。

引用自:https://crypto.stackexchange.com/questions/98099