介紹

公鑰加密 (PKC) 也稱爲非對稱加密,是一種同時使用私鑰和公鑰的框架,而不是對稱加密中使用的單個密鑰。密鑰對的使用爲 PKC 提供了一組獨特的特性和功能,可用於解決其他加密技術固有的挑戰。這種形式的密碼學已成爲現代計算機安全的重要組成部分,也是不斷髮展的加密貨幣生態系統的關鍵組成部分。


公鑰加密如何工作?

在 PKC 方案中,發送者使用公鑰來加密信息,而接收者使用私鑰來解密信息。由於兩個密鑰彼此不同,因此可以安全地共享公鑰,而不會損害私鑰的安全性。每個非對稱密鑰對都是唯一的,確保使用公鑰加密的消息只能由擁有相應私鑰的人讀取。

由於非對稱加密算法生成數學上鍊接的密鑰對,因此它們的密鑰長度比對稱加密中使用的密鑰長度長得多。這種較長的長度(通常在 1,024 到 2,048 位之間)使得從公共密鑰計算私鑰變得極其困難。當今使用的最常見的非對稱加密算法之一是 RSA。

在 RSA 方案中,密鑰是使用兩個數字(通常是兩個大素數)相乘得出的模數生成的。基本上,模數生成兩個密鑰(一個可以共享的公共密鑰,另一個應該保密的私有密鑰)。 RSA 算法由 Rivest、Shamir 和 Adleman 於 1977 年首次描述(因此稱爲 RSA),並且至今仍然是公鑰密碼系統的主要組成部分。


PKC作爲加密工具

公鑰密碼學解決了對稱算法長期存在的問題之一,即用於加密和解密的密鑰的通信。通過不安全的連接發送此密鑰存在將其暴露給第三方的風險,第三方隨後可以讀取使用共享密鑰加密的任何消息。儘管存在密碼技術(例如 Diffie-Hellman-Merkle 密鑰交換協議)來解決此問題,但它們仍然容易受到攻擊。相比之下,在公鑰加密中,用於加密的密鑰可以通過任何連接安全地共享。因此,與對稱算法相比,非對稱算法提供了更高級別的保護。


生成數字簽名

非對稱加密算法的另一個應用是通過使用數字簽名來驗證數據。基本上來說,數字簽名是使用消息中的數據創建的哈希值。當該消息被髮送時,接收者可以使用發送者的公鑰來檢查簽名。這樣,他們就可以驗證消息的來源並確保消息未被篡改。在某些情況下,數字簽名和加密一起應用,這意味着哈希本身可以作爲消息的一部分進行加密。然而,應該注意的是,並非所有數字簽名方案都使用加密技術。


侷限性

雖然它可以用來增強計算機安全性並提供消息完整性驗證,但 PKC 確實有一些侷限性。由於加密和解密涉及複雜的數學運算,非對稱算法在被迫處理大量數據時可能會非常慢。這種類型的密碼學還很大程度上取決於私鑰將保持祕密的假設。如果私鑰被意外共享或暴露,則所有使用其相應公鑰加密的消息的安全性都將受到損害。用戶也有可能意外丟失私鑰,在這種情況下他們將無法訪問加密數據。


公鑰密碼學的應用

許多現代計算機系統使用這種類型的加密技術來爲敏感信息提供安全性。例如,可以使用公鑰加密技術對電子郵件進行加密,以保證其內容的機密性。

使網站安全連接成爲可能的安全套接字層 (SSL) 協議也採用了非對稱加密技術。 PKC 系統甚至被探索作爲提供安全電子投票環境的一種手段,該環境可能允許選民通過家用計算機參與選舉。

PKC 在區塊鏈和加密貨幣技術中也發揮着重要作用。當設置新的加密貨幣錢包時,會生成一對密鑰(公鑰和私鑰)。錢包地址是使用公鑰生成的,可以安全地與他人共享。另一方面,私鑰用於創建數字簽名和驗證交易,因此必須保密。

一旦通過確認數字簽名中包含的哈希值來驗證交易,該交易就可以添加到區塊鏈分類賬中。這種數字簽名驗證系統確保只有擁有與相應加密貨幣錢包關聯的私鑰的人才能轉移資金。

應該注意的是,加密貨幣應用中使用的非對稱加密與用於計算機安全目的的非對稱加密不同。例如,比特幣和以太坊使用特定的算法來驗證交易,稱爲橢圓曲線數字簽名算法(ECDSA)。此外,ECDSA 在不使用加密的情況下創建數字簽名。這意味着區塊鏈不需要加密,這與許多人認爲的不同。


結束語

從計算機安全到驗證加密貨幣交易,公鑰加密在保護現代數字系統方面發揮着重要作用。通過使用配對的公鑰和私鑰,非對稱加密算法解決了對稱密碼帶來的基本安全問題。儘管 PKC 已經使用多年,但新的用途和應用程序正在定期開發,特別是在區塊鏈和加密貨幣領域。