數字簽名是一種用於驗證數字數據的真實性和完整性的加密機制。我們可以將其視爲傳統手寫簽名的數字版本,但具有更高級別的複雜性和安全性。

簡而言之,我們可以將數字簽名描述爲附加到消息或文檔的代碼。一旦生成,代碼就可以證明消息在從發送者到接收者的過程中沒有被篡改。

儘管使用密碼學保護通訊安全的概念可以追溯到遠古時代,但隨著公鑰密碼學 (PKC) 的發展,數位簽章方案在 1970 年代成為可能的現實。因此,要了解數位簽章的工作原理,我們需要先了解雜湊函數和公鑰密碼學的基礎知識。


哈希函數

雜湊是數位簽章系統的主要元素之一。哈希的過程是將任意大小的資料轉換為固定大小的輸出資料。這是使用一種稱為雜湊函數的特殊演算法來完成的。哈希函數產生的輸出稱為訊息的雜湊值或摘要。

與密碼學結合,所謂的密碼雜湊函數可用於產生充當唯一數字指紋的雜湊值(摘要)。這意味著輸入(訊息)的任何更改都將導致不同的輸出(雜湊值)。正是由於這個原因,加密雜湊函數被廣泛用於驗證數字資料。


公鑰密碼學 (PKC)

公鑰加密或 PKC 是指使用一對金鑰的加密系統:一個公鑰和一個私鑰。這兩個密鑰在數學上相關,可用於資料加密和數位簽名。

作為一種加密工具,PKC 比更簡單的對稱加密方法更安全。雖然舊系統依靠相同的金鑰來加密和解密訊息,但 PKC 允許使用公鑰對資料進行加密,並使用相應的私鑰對資料進行解密。

另外,在創建數位簽章時也可以使用PKC方案。本質上,該過程包括將訊息(或數位資料)與簽署者的私鑰一起進行哈希處理。然後,訊息的接收者可以使用簽署者提供的公鑰來驗證簽章是否有效。

在某些情況下,數位簽章可能包含加密,但情況並非總是如此。例如,比特幣區塊鏈使用 PKC 和數位簽名,但與許多人認為的相反,該過程中不涉及加密。從技術上講,比特幣使用所謂的橢圓曲線數位簽章演算法(ECDSA)來驗證交易。


數位簽名如何運作

在加密貨幣的背景下,數位簽章系統通常包含三個主要步驟:雜湊、簽章和驗證。

資料散列

第一步是對訊息或數位資料進行哈希處理。這是透過使用雜湊演算法發送資料來建立雜湊值(即訊息的摘要)來完成的。如前所述,訊息的大小可能相差很大,但是當它們被散列時,它們的所有散列值的長度都是相同的。這是哈希函數的主要屬性。

然而,建立數位簽章不需要對資料進行哈希處理,因為可以使用私鑰對根本沒有經過哈希處理的訊息進行簽署。但對於加密貨幣來說,資料總是經過哈希處理,因為使用固定長度的摘要可以簡化整個過程。

簽名

對訊息進行哈希處理後,訊息的發送者需要對其進行簽署。這就是公鑰密碼學發揮作用的地方。數位簽章演算法有多種類型,每種演算法都有自己的機制。但本質上,雜湊訊息將使用私鑰進行簽名,然後訊息的接收者可以使用相應的私鑰(由簽署者提供)來驗證其真實性。

換句話說,如果在建立簽章時未啟用私鑰,訊息的接收者將無法使用對應的公鑰來驗證其真實性。公鑰和私鑰均由訊息的發送者生成,但公鑰傳輸給接收者。

值得注意的是,數位簽章與每則訊息的內容直接相關。因此,與手寫簽名不同,手寫簽名通常與訊息無關,而每個數位簽名訊息都將具有不同的數位簽名。

審計

我們舉個例子來說明一下直到最後一步驗證的整個過程。想像一下,愛麗絲向鮑勃寫入一條訊息,對其進行哈希處理,然後將哈希值與她的私鑰結合以創建數位簽名。簽名將充當該訊息的唯一數位指紋。

當Bob收到訊息時,他可以使用Alice提供的公鑰來驗證數位簽章的有效性。因此鮑伯可以確定簽名是由愛麗絲創建的,因為只有她擁有與該公鑰相符的私鑰(至少這是我們所期望的)。

因此,對Alice來說,保密她的私鑰是非常重要的。如果其他人獲得了 Alice 的私鑰,他們可以創建數位簽章並冒充 Alice。在比特幣的背景下,這意味著有人可以使用愛麗絲的私鑰在未經她許可的情況下移動或花費她的比特幣。


為什麼數位簽章很重要?

數位簽章通常用於實現三個結果:資料完整性、身份驗證和故障轉移。

  • 資料的完整性。 Bob 可以驗證 Alice 的訊息在過程中沒有發生變化。對訊息的任何修改都會導致創建完全不同的簽名。

  • 真實性。如果 Alice 的私鑰保密,Bob 就可以使用她的公鑰來驗證數位簽章是由 Alice 創建的,而不是其他人創建的。

  • 無失敗。一旦簽名生成,Alice 就無法否認她在未來簽署了該簽名,除非她的私鑰洩露。


使用選項

數位簽章可以應用於各種類型的數位文件和憑證。因此,它們有多種用途。一些最常見的用途是:

  • 資訊科技:提高互聯網通訊系統的安全性。

  • 財務:數位簽章可應用於審計、費用報告、信貸協議等。

  • 法律監管:各類商業合約和法律協議(包括政府文件)的數位簽署。

  • 醫療保健:數位簽名可以防止偽造處方和醫療記錄。

  • 區塊鏈:數位簽章方案確保只有加密貨幣的合法所有者才能簽署交易以轉移資金(前提是他們的私鑰不洩漏)。


限制

數位簽章方案面臨的主要挑戰至少基於三個要求:

  • 演算法:數位簽章方案中使用的演算法的品質非常重要。這尤其是可靠的雜湊函數和加密系統的選擇。

  • 實施:如果演算法很好但缺乏實施,則數位簽章系統可能有缺陷。

  • 私鑰:如果私鑰遺失或以某種方式洩露,則真實性和無故障屬性將失效。對於加密貨幣的用戶來說,遺失私鑰可能會造成重大的財務損失。


電子簽名與數位簽名

數位簽名是指一種特定類型的電子簽名,屬於簽署文件和訊息的任何電子方法。因此,所有數位簽名都是電子簽名,但反之則不然。

它們之間的主要區別在於身份驗證方法。數位簽章使用密碼系統,例如雜湊函數、公鑰密碼術和加密技術。


結果

哈希函數和公鑰加密是數位簽章系統的核心,目前有許多用途。如果正確應用,數位簽章可以提高安全性、確保完整性並促進所有類型數位資料的身份驗證。

在區塊鏈領域,數位簽章用於簽署和授權加密交易。它們對於比特幣尤其重要,因為簽名確保硬幣只能由擁有相應私鑰的人使用。

儘管我們多年來一直使用電子和數位簽名,但我們仍然有成長的空間。當今的大部分官僚機構仍然是紙質的,但隨著我們轉向更數位化的數據處理系統,我們可能會看到更多地採用數位簽章。