Elliptic-Curves

曲線25519中生成點G=9的順序是什麼?

  • April 7, 2022

在 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’ $ .

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