Elliptic-Curves
曲線25519中生成點G=9的順序是什麼?
在 Curve25519 中,我們通常有這個生成點或基點:
Gx = 9 Gy = 14781619447589544791020593568409986887264606134616475288964881837755586237401 or: Gy' = p - Gy = 43114425171068552920764898935933967039370386198203806730763910166200978582548
其中
p = 2^255-19
,我們評估曲線的素數場 Fp 的維度。這個生成點的順序是什麼?
即最小的 n 是多少所以 nG = 0。
在真正考慮之前,我只是假設那是
p
因為p
是素數。但顯然這是錯誤的,因為我們在這里處理的是橢圓曲線點加法,而不僅僅是模數中的標量乘法。所以我想知道 G 的順序是什麼,也許更困難:我自己怎麼能找到這個?(一旦我有了值,我就可以輕鬆地驗證它,那就不那麼複雜了)
根據這個來源,這條曲線的點是一組基數。 $ 8\cdot p’ $ 和 $ p’:=2^{252}+27742317777372353535851937790883648493 $ .
這個數字可以通過使用Schoof 算法或更有效的Schoof-Elkies-Atkin 算法來計算。
然後,由拉格朗日定理,並且因為 $ p’ $ 是素數(可以用任何有效的素性測試檢查),它意味著所有點 $ P $ 只能有訂單 $ o_P= 2^{i_P}\cdot p^{\prime j_P} $ , 和 $ 0\leq i_P\leq 3 $ , 和 $ 0\leq j_P\leq1 $ .
我們可以計算 $ p’\cdot G $ 使用快速求冪(平方和乘法算法在橢圓曲線上下文中也稱為雙加),並註意它等於 $ \mathcal{O} $ 曲線的中性元素。
我們推斷 $ o_G $ 的順序 $ G $ 劃分 $ p’ $ . 然後 $ i_G= 0 $ .
因為 $ G\neq \mathcal{O} $ , $ o_G\neq 1 $ , 然後 $ j_G=1 $ .
我們得出結論 $ G $ 是有序的 $ o_G = p’ $ .