Elliptic-Curves

橢圓曲線 - 除以 2

  • January 30, 2018

誰能告訴我將橢圓曲線上的一個點除以 2 的具體方程和步驟?

例如,我有一點 $ (P_x, P_y) $ ,我想找到重點 $ (R_x, R_y) $ 當產量翻倍時 $ (P_x, P_y) $ .

有人建議我使用點倍增方程並求解,但我正在尋找具體的方程和步驟,也許是對該主題的徹底討論的參考。

謝謝你的時間。

編輯:我的印像是所有曲線的步驟都相同。在這種情況下,我試圖在 secp256k1 曲線上進行。

有兩種策略可以做你想做的事。

第一個是找到組順序 $ q $ 然後計算 $ i=2^{-1}\bmod q $ . 然後當你乘以你的觀點 $ P $ 經過 $ i $ 你得到 $ Q=[i]P $ 和 $ [2]Q=[2i]P=[(2\cdot 2^{-1})\bmod q]P=P $ 如預期的。這種一般策略適用於任何有限群(只要 $ q $ 甚至不是),並很快被 fgrieu 在評論中指出

第二種方式如下:

  1. 找出曲線的方程。對於 secp256k1 這是 $ y^2=x^3+ax+b $ 又名“短魏爾斯特拉斯形式”。
  2. 轉到顯式公式數據庫並選擇相關曲線。
  3. 將仿射倍增方程插入您最喜歡的求解代數方程的工具中,並告訴它求解左側的座標。
  4. 您現在應該會收到一個結果。因為在進行轉換時所有欄位都是相等的,所以您可以採用生成的公式並“輕鬆”將其轉換為在您的有限欄位上工作。

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