關鍵要點

  • 數字簽名是一種加密機制,使用哈希和公鑰加密驗證消息的真實性和完整性。

  • 數字簽名提供三項保證:數據完整性、身份驗證和不可否認性。

  • 在區塊鏈網絡中,數字簽名通過證明私鑰的所有權而授權交易,而無需透露私鑰。

  • 比特幣同時使用ECDSA和Schnorr簽名來簽署交易,而後量子算法如ML-DSA正在開發中,以應對未來的量子威脅。

  • 數字簽名與電子簽名不同:數字簽名使用加密驗證,而電子簽名可以是任何形式的電子批准。

Binance Academy courses banner

介紹

數字簽名是用於驗證數字數據的真實性和完整性的加密工具。它的工作方式類似於手寫簽名,但依賴於數學而不是墨水。

發送者將一個唯一代碼附加到消息上,證明兩件事:消息來自他們,並且沒有被更改。要理解這一點,瞭解哈希和公鑰加密的基礎知識是有幫助的。

用加密技術保護通信的概念可以追溯到幾個世紀前。如今使用的數字簽名方案在1970年代變得實用,當時開發了公鑰加密。從那時起,它們已成爲互聯網安全、電子文檔和區塊鏈網絡的核心構件。

哈希函數

哈希函數是一種算法,它接受任何輸入並生成稱爲哈希值或消息摘要的固定長度輸出。不論輸入的長度如何,輸出總是相同的長度。一個好的加密哈希函數是單向的:你可以從輸入生成哈希,但無法從哈希反向工程原始輸入。

哈希函數也是確定性的。相同的輸入總是生成相同的輸出。如果原始消息中的一個字符發生變化,哈希值將完全改變。這一特性使哈希函數在檢測篡改時非常有用。

在數字簽名系統中,消息首先被哈希。然後對生成的摘要進行簽名,而不是整個消息。這種方式更高效,並使簽名大小可控,無論原始消息多長。

公鑰加密

公鑰加密(PKC)使用一對數學上關聯的密鑰:私鑰和公鑰。私鑰由所有者保密。公鑰可以公開分享給任何人。使用私鑰簽署的數據可以由任何人使用匹配的公鑰進行驗證。

這種非對稱結構使數字簽名得以運作。簽名者使用他們的私鑰來創建簽名。任何想要驗證的人使用相應的公鑰。如果驗證成功,就證明了簽名是由持有該私鑰的人創建的。

與對稱加密不同,對稱加密使用一個共享密鑰,PKC不要求雙方提前交換祕密。比特幣使用橢圓曲線數字簽名算法(ECDSA),自2021年11月的Taproot升級以來,亦支持Schnorr簽名。這兩者允許用戶在不透露私鑰的情況下證明資金所有權。

數字簽名是如何工作的

數字簽名方案包括三個步驟:對數據進行哈希、進行簽名和驗證簽名。

哈希數據

發送者通過加密哈希函數對消息進行處理,以生成固定長度的摘要。該摘要唯一地表示該消息。對原始消息的任何修改,即使是一個字符,也會生成完全不同的摘要。

簽名

發送者使用他們的私鑰和哈希摘要來生成數字簽名。這是一個數學運算,而不是加密:私鑰作爲簽名算法的一部分,生成該特定消息的唯一簽名。

然後將簽名附加到消息上。因爲只有發送者持有私鑰,因此只有他們能夠爲該特定消息生成該確切的簽名。

驗證中

接收者收到消息和附加的簽名。他們使用發送者的公鑰來驗證簽名,這在數學上確認簽名是由相應的私鑰生成的。

他們還獨立地將收到的消息通過相同的哈希函數處理。如果驗證成功,簽名是有效的:消息是可信的,且未被篡改。

例如,如果愛麗絲向鮑勃發送一條簽名的消息,鮑勃使用愛麗絲的公鑰進行驗證。有效的結果意味着消息來自愛麗絲,並且在傳輸過程中沒有被篡改。

安全性取決於愛麗絲保守她的私鑰的祕密。如果其他人獲得了它,他們可以僞造看似來自愛麗絲的簽名。

數字簽名爲什麼重要?

數字簽名通常提供三個保證:

  • 數據完整性。對簽名後消息的任何修改都會生成不同的哈希摘要,使篡改可檢測。

  • 身份驗證。因爲只有持有私鑰的人才能生成簽名,有效的簽名確認了發送者的身份。

  • 不可否認性。一旦簽名,發送者不能否認曾簽署該消息,因爲只有他們持有生成簽名的私鑰。

這些特性使數字簽名在信任、問責或篡改檢測的重要場合下變得有用。

用例

數字簽名應用於許多行業。在區塊鏈網絡中,它們用於授權交易。在法律和商業環境中,它們用於電子簽署合同和協議。

在醫療保健中,它們保護醫療記錄和處方的完整性。政府機構使用它們來驗證官方文件的真實性。軟件開發者使用它們來簽署代碼發佈,以便用戶確認軟件沒有被篡改。

對於加密貨幣用戶,數字簽名是證明資金所有權的機制。當你在區塊鏈上發送交易時,你用你的私鑰對其進行簽名。

網絡使用你的公鑰驗證簽名,確認你授權了轉賬。將私鑰安全保存在加密錢包中至關重要,因爲任何有權訪問該密鑰的人都可以代表你簽署交易。

侷限性

數字簽名方案有幾個實際侷限性需要注意:

  • 算法質量。簽名方案的安全性取決於其底層哈希函數和加密算法的強度。弱或過時的算法可能會脆弱。

  • 實施風險。即使是強大的算法也可能因軟件實施不當、不安全的密鑰存儲或簽名軟件中的錯誤而受到攻擊。

  • 私鑰安全。如果私鑰丟失或被盜,身份驗證和不可否認性保證將不再有效。對於加密貨幣用戶,丟失私鑰可能意味着永久失去對資金的訪問。

後量子考慮

當前的數字簽名算法,包括ECDSA和RSA,依賴於經典計算機難以解決的數學問題。如果量子計算機變得足夠強大,它們可能會破解這些方案。

在2024年8月,NIST最終確定了三項後量子加密標準,旨在抵禦量子計算機的攻擊。這三項中有兩項是數字簽名算法:ML-DSA(基於CRYSTALS-Dilithium)和SLH-DSA(基於SPHINCS+)。

第三項,ML-KEM(基於CRYSTALS-Kyber),是一種密鑰封裝機制,而不是簽名方案。雖然採用仍處於早期階段,但這些標準預計將塑造下一代安全基礎設施,包括潛在的區塊鏈協議。

電子簽名與數字簽名

這兩個術語經常可以互換使用,但它們意味着不同的東西。電子簽名是任何電子方式表示協議或批准,例如在字段中輸入你的名字、勾選框或在觸摸屏上繪製簽名。數字簽名是一種特定類型的電子簽名,使用加密技術。

所有數字簽名都是電子簽名,但大多數電子簽名不是數字簽名。關鍵區別在於安全性:數字簽名使用數學驗證來證明真實性,而簡單的電子簽名可能無法提供相同的保障。對於法律約束文件或高安全性應用,通常更傾向於使用數字簽名。

常見問題

什麼是數字簽名?

數字簽名是使用私鑰生成的加密代碼,附加在消息或文檔上。它允許接收者驗證消息來自預期的發送者,並且在簽署後沒有被更改。

數字簽名是如何工作的?

發送者對消息進行哈希,並使用他們的私鑰生成數學簽名。接收者使用發送者的公鑰驗證簽名,獨立地對收到的消息進行哈希,並比較這兩個值。匹配確認簽名有效。

數字簽名和電子簽名有什麼區別?

電子簽名是任何電子批准方式。數字簽名是一種特定類型,使用公鑰加密進行驗證。數字簽名更安全,因爲它們是可進行數學驗證的,並提供更強的不可否認性。

數字簽名在區塊鏈中爲什麼重要?

在區塊鏈網絡中,數字簽名證明了交易是由對應私鑰的所有者授權的。沒有有效的簽名,網絡會拒絕交易。這個機制防止了未經授權的資金轉移。

什麼是後量子加密,爲什麼它對數字簽名很重要?

後量子加密指的是旨在抵禦量子計算機攻擊的算法。當前的簽名算法如ECDSA可能會被足夠強大的量子計算機破解。NIST在2024年最終確定了新的後量子簽名標準,包括ML-DSA和SLH-DSA,以應對這種風險。

結束語

數字簽名是現代加密安全的基礎組成部分。它們使得在不需要各方之間共享祕密的情況下驗證數字消息、文檔和交易的真實性和完整性成爲可能。在區塊鏈網絡中,它們是證明所有權和授權轉賬的機制。

隨着計算的不斷髮展,後量子標準正在出現,以確保數字簽名保持安全。無論是用於法律文件、軟件分發還是加密貨幣交易,數字簽名可能仍將是數字信任基礎設施的核心部分。

進一步閱讀

  • 什麼是哈希?

  • 什麼是公鑰加密?

  • 什麼是比特幣,它是如何工作的?

  • 什麼是區塊鏈,它是如何工作的?

  • 密碼學的歷史


免責聲明:此內容以“按原樣”基礎提供,僅供一般信息和教育目的,不作任何形式的陳述或擔保。不得將其解釋爲財務、法律或其他專業建議,也不打算推薦購買任何特定產品或服務。您應尋求適當專業顧問的建議。內容由第三方貢獻時,請注意這些觀點屬於第三方貢獻者,不一定反映幣安學院的觀點。數字資產價格可能會波動。您的投資價值可能會上升或下降,您可能無法收回投資金額。您對自己的投資決策負全部責任,幣安學院對您可能遭受的任何損失不承擔任何責任。有關更多信息,請參見我們的使用條款、風險警告和幣安學院條款。