ISheep

ISheep

Badminton | Coding | Writing | INTJ
github

橢圓曲線加密

如何生成地址?什麼是非對稱加密?

生成地址的步驟#

  1. 隨機生成一個 256 位的私鑰(32 字節)
  2. 通過橢圓曲線加密獲取公鑰
  3. 公鑰經過兩次 hash 函數生成 20 字節的地址

橢圓曲線#

y2=x3+ax+by^{2} =x^{3} +ax+b

動畫

其中私鑰 K, 公鑰 P。

在曲線上隨機取一點 A (x,y),計算 Kx+Ky 等於 P。即 KA=P,其實 P 就是曲線上的一個坐標點。Bitcoin 中有一個公認的點 G 扮演點 A 的角色,也就是說隨機點是公開的,G 相當於一個常數。

消息加密#

NP 問題:給定 P 和 G 很難求出 K,但是根據 K 和 G 可以很快驗證 P 是正確的

有兩個人 Alice,Bob 他們分別有自己的公鑰私鑰

  • Alice:Pa Ka
  • Bob: Pb Kb

Pa = Ka * G

Pb = Kb * G

其中公鑰是公開的。也就說兩人還能知道另一個信息

  • Alice: Ka * Pb = Ka * Kb * G
  • Bob : Kb * Pa = Kb * Ka * G

這兩個信息是相等的,相當於這兩個人的相同的 key,這個 key 就可以相當於是只屬於這兩個人的對稱密鑰。

當 Alice 想給 Bob 寫信,用 Pb 加密信息,Bob 用 Kb 解密,即做一個可逆運算。

數字簽名#

m:message

Alice 用 Ka 對 m 簽名,m * Ka = N ,類似用私鑰生成公鑰(m 為 G)
對方想要驗證這句話是 Alice 說的

m * Pa = m * G * Ka , 即 = G * N,由於 G 是公開的,所以很快就能驗證 m 是否是 Alice 說的

參考視頻

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。