Public-Key

暴力破解橢圓曲線加密密鑰

  • December 28, 2019

我一直在閱讀有關 ECC 的內容,到目前為止我已經確定(如果我錯了,請糾正我)是:

pubKey=privKey*G

其中 G 是 secp256k1 曲線上的某個特殊點。

這是否意味著我們可以嘗試通過以下方式暴力破解私鑰:

privKey=pubKey/G

對於 G 的所有潛在值。

我知道這將需要一些不可行的嘗試,但是如果碰巧前幾次嘗試中的一個碰巧具有正確的值怎麼辦?

這是否意味著我們可以嘗試通過以下方式暴力破解私鑰:

$$ \mathit{privKey} = \mathit{pubKey}/G $$ 對於所有潛在的價值 $ G $ ?

這裡似乎有一個誤解: $ \mathit{pubKey} $ 和 $ G $ 是固定的並且是眾所周知的,所以沒有什麼可以使用蠻力的。“分”的操作 $ \mathit{pubKey} $ 經過 $ G $ (就目前的公眾所知)在計算上是不可行的;這就是橢圓曲線離散對數問題 (ECDLP)。但是,當然,可以通過嘗試所有可能的值來暴力破解 $ \mathit{privKey} $ 並檢查是否 $ \mathit{privKey}\cdot G=\mathit{pubKey} $ 持有。

如果碰巧前幾次嘗試中的一個碰巧具有正確的值怎麼辦?

這與最近的這個問題非常相關。底線是:是的,這可能發生,但機率非常低,在實踐中永遠不會發生。(無論如何,如果我們擔心有人只是靠運氣猜到我們的密鑰,那麼無論如何,任何人都無能為力。)

  1. 此處定義的原始方法
  2. 此處提供曲線域參數
  3. 檢查是否public_key_xy = scalar_mult(private_key,curve.g)匹配預期目標

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