Elliptic-Curves

jpbc安全選擇橢圓曲線

  • February 4, 2018

JPBC 庫描述了6 種類型的橢圓曲線。這就是他們描述類型A 的方式:

A型配對在曲線上建構 $ y^2=x^3+x $ 在場上 $ \mathbb{F}_q $ 對於一些素數 $ q=3 \mod 4 $ . 兩個都 $ \mathbb{G}_1 $ 和 $ \mathbb{G}_2 $ 是點組 $ E(\mathbb{F}_q) $ ,所以這個配對是對稱的。命令 $ r $ 是一些主要因素 $ q+1 $ .

他們還提供了一個曲線生成器實現,它接收 rBits 和 qBits 值併計算 q、r、h、exp1、exp2 值。

我想知道,對於加密貨幣錢包的安全性,哪些 rBits 和 qBits 值認為足夠安全?此外,提供上述安全性並具有最佳性能的最佳類型是什麼?

我最近使用 JPBC 實現了BLS 簽名聚合,我想知道在將使用它的加密貨幣應用程序中使用的最佳設置是什麼?

自從 $ \mathbb{G}T $ 是 $ \mathbb{F}{q^2} $ 在您提到的設置中,您必須選擇它們如此之大,以至於您的實現將不再具有人們希望的性能。

我建議切換到非對稱設置。目前,關於性能和優化實現的存在,可能最好的選擇是使用 BN parings。然而,最近在解決素數擴展領域的離散對數問題方面取得的進展表明,BLS 曲線可能是一個更好的選擇(參見此處)。在上述論文中,您還可以找到有關最近改進對密鑰長度的影響的估計。對於 BN 配對,這些估計表明需要增加 $ p $ 到 461 位以獲得 128 位安全性。還有一種替代估計表明使用它就足夠了 $ p $ 長度為 383 位,用於 128 位安全性。因此,保守的選擇是 461 位。

我可能還會使用另一個庫——據我所知,JPBC 並不是性能方面的最佳選擇。有多種可用的 BN 配對 Java 實現。一種選擇是依賴bnpairings庫。另一種選擇是使用ECCelerate庫,該庫可免費用於教育和研究目的,並且還提供了最新且高度優化的 BN 配對實現。既然您提到您實現了 BLS 簽名:您可能也會感興趣的是,ECCelerate 已經提供了根據 BLS 簽名要求散列到組的方法。我不知道這是否在 BNpairings 庫中實現。

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