數字簽名是一種用於驗證數字數據的真實性和完整性的加密機制。我們可以將其視爲常規手寫簽名的數字版本,但具有更高級別的複雜性和安全性。
簡單來說,我們可以將數字簽名描述爲附加到消息或文檔的代碼。一旦生成,它就可以證明消息在從發送者到接收者的整個過程中沒有被篡改。
使用加密技術保護通信通道的概念可以追溯到遠古時代,而數字簽名系統直到 20 世紀 70 年代才隨着公鑰加密技術的發展而出現。因此,要了解數字簽名的工作原理,我們首先需要了解哈希函數和公鑰密碼學的基礎知識。
哈希函數
散列是數字簽名系統的主要元素之一。散列過程涉及將任何大小的數據轉換爲特定格式的輸出。這是使用一種特殊的算法(也稱爲哈希函數)完成的。哈希函數生成的輸出數據稱爲哈希或消息摘要。
當與加密技術結合時,所謂的加密哈希函數可用於生成充當唯一數字標識符的哈希(摘要)。這意味着輸入(消息)的任何更改都會導致完全不同的輸出(哈希)。因此,加密哈希函數是驗證數字數據真實性的流行工具。
公鑰密碼學 (PKC)
公鑰密碼術或PKC(來自英語Public-key cryptography)是指使用一對公鑰(public)和私鑰(private)的密碼系統。這兩個數學相關的密鑰可用於加密數據和創建數字簽名。
作爲一種加密工具,PKC 比對稱加密工具更安全。雖然此類舊系統使用相同的密鑰來加密和解密信息,但 PKC 允許您使用公鑰加密數據並僅使用相應的私鑰解密數據。
此外,公鑰加密可用於生成數字簽名。從本質上講,該過程包括對消息(或數字數據)以及簽名者的私鑰進行哈希處理。然後,消息的接收者將能夠使用簽名者提供的公鑰來驗證簽名的有效性。
在一些可能的實現中,數字簽名可以包括加密,這意味着該功能不能持續工作。例如,比特幣區塊鏈也使用公鑰加密和數字簽名,但與普遍看法相反,其過程中沒有加密。從技術角度來看,比特幣使用所謂的橢圓曲線數字簽名算法(ECDSA)來驗證其交易。
數字簽名的工作原理
在加密貨幣的背景下,數字簽名系統通常由三個主要階段組成:散列、簽名過程本身及其驗證。
數據散列
第一步是對消息或數字數據進行哈希處理。這是通過使用散列算法處理信息來生成散列本身(消息摘要)來完成的。如前所述,消息的大小可能有很大差異,但一旦經過哈希處理,所有哈希值將具有相同的長度。這是哈希函數最基本的屬性之一。
但是,對數據進行哈希處理並不是創建數字簽名的必要條件,因爲可以使用私鑰來對消息進行簽名。但當涉及到加密貨幣時,數據總是經過哈希處理,因爲使用固定長度的摘要可以簡化整個信息處理過程。
簽名
一旦數據被散列,消息的發送者必須對其進行簽名,這就是公鑰加密發揮作用的地方。數字簽名算法有多種類型,每種算法都有其獨特的機制。但無論如何,散列消息都將使用私鑰進行簽名,然後接收者可以使用相應的公鑰(由簽名者提供)驗證其真實性。
換句話說,如果在創建簽名時不包含私鑰,則消息的接收者將無法使用相應的公鑰來驗證其有效性。由於公鑰和私鑰是由消息的發送者生成的,因此只有公鑰與接收者共享。
值得注意的是,數字簽名與每條消息的內容直接相關。因此,與手寫簽名不同(無論文檔的上下文如何,手寫簽名通常都是相同的),每條數字簽名消息都將具有完全不同的數字簽名 ID。
檢查
讓我們通過一個示例來更好地說明直到最後一步(內容驗證)的整個過程。想象一下,愛麗絲向鮑勃寫入一條消息,對其進行哈希處理,然後將哈希值與她的私鑰結合起來以創建數字簽名。在這種情況下,簽名充當該特定消息的唯一數字標識符。
當Bob收到消息時,他可以使用Alice提供的公鑰來驗證數字簽名。這樣,鮑勃就可以驗證簽名是由她創建的,因爲她是唯一擁有相應私鑰的人(至少應該如此)。
因此,Alice 的私鑰保密就顯得極其重要。如果另一個人擁有她的私鑰,他將能夠創建數字簽名並代表她進行交易。在第一個加密貨幣的背景下,這種情況意味着有人可以在未經Alice許可的情況下移動或花費她的比特幣。
爲什麼數字簽名很重要?
基本上,數字簽名旨在實現三個結果:數據完整性、身份驗證和不可否認性。
數據的完整性。 Bob 可以驗證 Alice 的消息在此過程中沒有發生變化。消息中任何更改的結果都將生成完全不同的簽名。
驗證。只要 Alice 的私鑰保密,Bob 就可以使用她的公鑰來驗證數字簽名是由 Alice 創建的,而不是其他人創建的。
不可否認性。一旦生成簽名,Alice 將無法否認她與簽名的關係,除非她的私鑰已以某種方式泄露。
用例
數字簽名可以應用於各種類型的數字文檔和證書。因此它們有多種用途,一些最常見的用例包括:
信息技術。提高互聯網通信系統的安全性。
金融。在審計、費用報告、貸款協議和許多其他財務文件中實施。
法律問題。用於所有類型的商業合同和法律協議,包括政府文件。
衛生保健。防止處方和醫療記錄欺詐。
區塊鏈。數字簽名系統確保只有加密貨幣的合法所有者才能簽署交易以進一步轉移資金(除非所有者的私鑰已被泄露)。
缺陷
該技術可能遇到的主要問題至少取決於三個組成部分:
算法。用於生成數字簽名的算法的質量極其重要。這包括選擇強大的哈希函數和加密系統。
執行。如果算法工作正常,並且數字簽名技術的集成尚未完全成功,則該系統很可能存在一定數量的缺陷。
私鑰。如果私鑰因某種原因泄露或被泄露,則身份驗證和不可否認性將失效。對於加密貨幣用戶來說,丟失私鑰可能會導致重大的財務損失。
電子簽名與數字簽名
簡單來說,數字簽名是指一種特定類型的電子簽名,以及對文檔和消息進行電子簽名的任何方法。因此,所有數字簽名都是電子簽名的子類型,但按照相反的順序,該表達式並不總是正確的。
它們之間的主要區別在於身份驗證方法。數字簽名使用加密系統,例如哈希函數、公鑰加密和加密技術。
結論
哈希函數和公鑰密碼學是數字簽名系統的基礎,現在適用於廣泛的應用。如果正確實施,數字簽名可以提高安全性、確保完整性並促進所有類型數字數據的身份驗證。
在區塊鏈技術領域,數字簽名用於授權和簽署加密貨幣交易。這項技術對於比特幣尤其重要,因爲簽名可以保證比特幣只能由擁有相應私鑰的人使用。
儘管我們多年來一直使用電子簽名和數字簽名,但它們仍然有改進的空間。當今的大部分官僚機構仍然是紙質的,但隨着我們轉向更多的數字數據處理系統,我們可能會看到更多地採用數字簽名。

