Public-Key
為什麼不能從公鑰中取出私鑰?
根據我的理解,公鑰的等式定義如下:
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
你寫它的時候它不是普通的乘法(這對點意味著什麼?)。這是一個相當複雜的運算,人們已經弄清楚了它的有用性質,它有點類似於乘法(它形成一個循環群,所以使用相同的符號)。但是沒有人找到一種方法來執行反向操作,這成為橢圓曲線密碼學的基礎。