Elliptic-Curves

橢圓曲線中的點劃分:返回點

  • January 10, 2020

讓 $ P=(x_p,y_p) $ 是橢圓曲線上的一個點 $ E (a, b) := y^2=x^3+ax+b $ , 對於一個整數 $ n $ , 存在一個點 $ Q=(x_q,y_q)=nP $ 上 $ E (a, b) $ .

如果 $ (x_q,y_q) $ 和 $ n $ 給出,找到的算法是什麼 $ (x_p,y_p) $ ?

如果可能,請提供 python 程式碼。

使用橢圓曲線,我們可以計算任何點的階數(尤其是點 $ nP $ ; 這在我們實際用於 ECC 的曲線上特別容易,因為這些曲線通常有一個順序 $ hq $ , 對於一個小 $ h $ 和一個大素數 $ q $ (並且任何點的順序都是 $ hq $ ).

因此,如果 $ q $ 是點的順序 $ nP $ , 而如果 $ n $ 相對質數 $ q $ (因為我們通常有 $ q $ 實踐中的素數),我們只計算 $ n^{-1} \bmod q $ ; 然後我們有 $ (n^{-1} \bmod q)nP = P $ ; 也就是相乘 $ nP $ 由標量 $ n^{-1} \bmod q $ 讓我們回到原點。

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