Public-Key

如何獲得 ECC 密鑰的等效強度?

  • April 8, 2022

我知道如何計算 RSA 模量的可比對稱強度:計算場篩的執行時間。這就是NIST 在其出版物中為非對稱算法給出近似對稱大小的方式:對於 RSA,您可以計算場篩的執行時間:

$$ \exp\left( \left(\sqrt[3]{\frac{64}{9}} + o(1)\right)(\ln n)^{\frac{1}{3}}(\ln \ln n)^{\frac{2}{3}}\right) $$

ECDHE 的等價物是什麼?例如。攻擊給定 ECC 曲線的最著名算法的執行時間是多少?

RFC 4492規定:

下表給出了基於最知名的攻擊算法的對稱和非對稱密鑰密碼系統的近似可比密鑰大小。

如何複製 ECC 列的數字?

編輯:一些研究,RFC now 404s 中提到的論文,但在http://infoscience.epfl.ch/record/164526/files/NPDF-22.pdf找到的副本提到:

2.6.3. 攻擊。從未發布過用於攻擊 EC 系統的 DLNFS 等效方法或其他次指數方法。最有效的攻擊 EC 系統的方法是 Pollard 的可並行化 rho 方法,預期執行時間為 0.88√q 組操作。

但是我仍然不知道如何複製結果:橢圓曲線有 P 和 Q,但我怎麼知道 Q 是什麼,例如 secp521r1?

編輯:推特上的Deirdre Connolly提到了一個近似值:

$ log_2(0.88 \cdot \sqrt{2^{n}}) $

與 RFC 結果匹配。如果她不這樣做,將在接下來的幾天內進行更多研究並將其作為答案發布。

橢圓曲線群的安全級別大約為 $ \log_2{0.886\sqrt{2^n}} $ . 您可以使用它來估計一個安全級別 $ n $ -bit 密鑰,例如:

$ \log_2{0.886\sqrt{2^{571}}} = 285.32537860389294 $

真正的計算(至少對於由素數定義的有限域上的曲線) $ p $ ) 是 $ \log_2{\sqrt{\frac{\pi}{4}}\sqrt{ℓ}} $ , 在哪裡 $ ℓ $ 是公共基點生成的曲線上點的子組的順序(點數)。的大小 $ p $ 確定上限 $ ℓ $ ,雖然它本身並不完全是上限,但通常非常接近。例如,Curve25519 有一個 $ ℓ $ 約 $ 2^{252} $ , 所以:

$ \log_2{\sqrt{\frac{\pi}{4}}\sqrt{2^{252}}} = 125.82537860389293 $

我們基於 ECC 密鑰大小的近似值讓我們非常接近這一點:

$ \log_2{0.886\sqrt{2^{256}}} = 127.82537860389293 $

正如下面的註釋, Koblitz曲線略有不同。

任何 ECC 密鑰的強度都與基礎曲線和域參數的強度有關,通常為特定曲線生成的所有有效密鑰對都應具有相同的大小/強度。有些點是無效的,不應使用,但您的 ECC 實施應該為您處理。

有關確定 Pollard 的 Rho 執行時間以及 SafeCurves 中各種曲線的理論安全級別的更多資訊:http: //safecurves.cr.yp.to/rho.html

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