簡化區塊鏈中的數字簽名

買賣虛擬貨幣

現在我們經常在區塊鏈中看到數字簽名這一術語是非常常見的。在傳送交易時,無論是比特幣、Ethereum、Hyperledger Fabric還是任何其他平臺,都在使用數字簽名進行簽名和驗證。

區塊鏈中的數字簽名

在今天的主題中,我將解釋更多關於如何使用ECDSA演算法生成數字簽名以及如何驗證相同的簽名。

ECDSA演算法

從A點到B點在橢圓曲線上的切線


根據wiki ECDSA為:

橢圓曲線密碼體制是一種基於有限域橢圓曲線代數結構的公鑰密碼體制。與非對稱密碼學相比,ECC需要更小的金鑰來提供同等的安全性。橢圓曲線適用於金鑰協議、數字簽名、偽隨機發生器等任務。透過將金鑰協議與對稱加密方案相結合,它們可以間接用於加密。它們也被用於一些基於橢圓曲線的整數分解演算法中,這些演算法在密碼學中有廣泛的應用,例如Lenstra橢圓曲線分解。

簡單來說,ECDSA演算法可以使用公鑰密碼學方法生成公鑰/私鑰集合,用於簽名和驗證簽名。讓我們看看公鑰密碼學是什麼樣子的。

公鑰和私鑰由加密演算法生成,如RSA,ECDSA。發件人透過收件人公鑰加密郵件併傳送。在另一端,收件人透過自己的私鑰解密訊息並獲取訊息。
現在回過頭來看看ECDSA,利用橢圓曲線在給定的源點G上畫切線,生成金鑰。p是一個具有很大值的有限模。
橢圓曲線上的切線
橢圓曲線上的切線定義為Y²mod p=(x³+7)mod pG:來源點p:為橢圓曲線定義範圍。生成數字簽名的私鑰和公鑰:
從一個隨機生成的數字為dA的私鑰開始,我們將它乘以曲線上的一個預定點,稱為生成點G,在曲線的另一個地方產生另一個點,也就是對應的公鑰Qa。生成點被指定為secp256k1標準的一部分,對所有鍵都是相同的。

從私鑰dA生成公鑰Qa


使用ECDSA演算法生成數字簽名

利用私鑰dA生成簽名

驗證簽名

驗證是簽名生成函式的逆值,使用R、S值和公鑰計算一個值P,這是橢圓曲線上的一個點(建立簽名時使用的臨時公鑰P)。

總結

數字簽名可以使用自己的私鑰簽名,並且可以使用公鑰獨立進行驗證。公開簽名在任何情況下都不會導致獲取使用者的私鑰。因此,ECDSA演算法在保證私鑰安全的同時生成簽名。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;