Public-Key
暴力破解橢圓曲線加密密鑰
我一直在閱讀有關 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} $ 持有。
如果碰巧前幾次嘗試中的一個碰巧具有正確的值怎麼辦?
這與最近的這個問題非常相關。底線是:是的,這可能發生,但機率非常低,在實踐中永遠不會發生。(無論如何,如果我們擔心有人只是靠運氣猜到我們的密鑰,那麼無論如何,任何人都無能為力。)