Public-Key

為什麼不能從公鑰中取出私鑰?

  • December 16, 2021

根據我的理解,公鑰的等式定義如下:

K = k * G

其中 K 為公鑰,k 為私鑰,G 為生成點。

  • G是常數嗎?(據我所知,這是一個常數。)
  • 如果是的話,怎麼不能簡單地做 K/G = k?
  • 如果不是,它是如何從私鑰創建的?

我是如何理解的,公鑰的等式被定義為K = k * G K 是公鑰,k 是私鑰,G 是生成點。

這是正確的。

現在我的第一個問題是,G 是常數嗎?(據我所知,這是一個常數)

它是。它是帶有座標的點(55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424)。您可以驗證這些座標是否滿足曲線方程:Y^2 = X^3 + 7 (mod 115792089237316195423570985008687907853269984665640564039457584007908834671663)

如果是的話,怎麼不可能簡單地做 K/G = k?

答案很簡單,我們不知道對橢圓曲線進行“除法”的有效方法(稱為離散對數問題),並且假設找不到這種方法。對此特定曲線執行此操作的最著名算法需要大約 2 128次迭代,這是不可能的大數目。

你必須知道,*k * G你寫它的時候它不是普通的乘法(這對點意味著什麼?)。這是一個相當複雜的運算,人們已經弄清楚了它的有用性質,它有點類似於乘法(它形成一個循環群,所以使用相同的符號)。但是沒有人找到一種方法來執行反向操作,這成為橢圓曲線密碼學的基礎。

引用自:https://bitcoin.stackexchange.com/questions/111260