Elliptic-Curves

在子組中工作時,如何使用與主組不同的操作?顯然,Ed25519 是這樣做的

  • September 12, 2022

Ed25519 使用複合階橢圓曲線,但在主組的素階子組中工作。根據群論,子群使用群操作。

但是,根據this,Ed25519 實現不這樣做。

但是每個現有的實現都實現了標量算術 $ \bmod q $ ,素數階群的階,不 $ \bmod 8q $ ,全組的順序。

這裡,主組的順序是 $ 8q $ 和 $ q $ 作為素數。

這有點令人困惑。

  • 為什麼 Ed25519 實現會這樣做?
  • 如果這些操作是在不同的子組操作下完成的,那麼我們不僅僅是在一個完全不同的橢圓曲線中工作 - 即在素數域上定義的橢圓曲線 ( $ \bmod q $ ) - 擁有父組有什麼意義?
  • 這樣做的優點和缺點是什麼?

該聲明

每個現有的實現都實現了標量算術 $ \bmod q $ ,素數階群的階,不 $ \bmod 8q $ ,全組的順序。

並不意味著在子組中工作,而是使用與主組不同的操作。群運算是兩個橢圓曲線點之間的點相加,在子群和群中是一樣的。標量乘法涉及整數 $ k $ 和一點 $ P $ , 並產生一個點 $ [k]P $ 定義為 $ \underbrace{P+P+\ldots+P+P}_{k\text{ times}} $ .

我的理解是引用聲明實現使用它 $ [k]P=[k\bmod q]P $ , 當 $ P $ 屬於順序的一個子組 $ q $ .

每個現有的實現都實現了標量算術 $ \operatorname{mod} q $

只要所有標量和所有 EC 點都是可信或經過驗證的,這在所有場景中都能完美執行。

以防萬一不是很清楚(我自己第一次讀錯了):

他們只是說,當有另一個標量的標量運算(例如加法、減法、乘法)時,結果會減少 $ \operatorname{mod}q $ .

標量通過檢查它們是否小於來驗證 $ q $ , 並且 EC 點通過將它們乘以被驗證為在素子組中 $ q $ 檢查結果是無窮遠點。

當您使用受信任或經過驗證的標量/點時,您不必擔心連結到的文章中討論的任何問題。

庫不驗證的原因是,根據場景,執行驗證沒有任何優勢,並且由於驗證 EC 點涉及額外的標量乘法,因此驗證具有計算成本。

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