介紹

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


公鑰加密如何工作?

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

由於非對稱加密算法生成數學上相關的密鑰對,因此它們的密鑰長度比對稱加密算法的密鑰長度要大得多。如此大的長度(通常在 1024 到 2048 位之間)使得從其對應的公鑰計算私鑰變得極其困難。當今最常用的非對稱加密算法之一是 RSA。

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


PKC作爲加密工具

私鑰加密解決了對稱算法的古老問題之一,即用於加密和解密的密鑰的傳輸。通過不安全的連接發送此密鑰可能會將其暴露給第三方,然後第三方可以讀取使用共享密鑰加密的任何消息。儘管有密碼學方法(例如Diffie-Hellman-Merkle密鑰交換協議)可以解決這個問題,但它們仍然容易受到攻擊。相反,在私鑰加密中,用於加密的密鑰可以通過任何連接安全地傳輸。因此,非對稱算法提供比對稱算法更高級別的保護。


創建數字簽名

非對稱加密算法的另一個應用是使用數字簽名的數據認證。本質上,數字簽名是使用消息中的數據創建的哈希值。當發送此消息時,接收者可以使用發送者的公鑰來驗證簽名。通過這種方式,他們可以識別消息的來源並確保消息未被篡改。在某些情況下,數字簽名和加密一起使用,這意味着哈希本身可以作爲消息的一部分進行加密。但需要注意的是,並非所有的數字簽名方案都使用加密方法。


侷限性

儘管 PKC 可用於提高計算機安全性並提供消息完整性檢查,但它也有一些侷限性。由於與加密和解密相關的複雜數學運算,非對稱算法在處理大量數據時可能會非常慢。這種類型的密碼學還取決於私鑰始終保密的假設。如果私鑰被意外共享或泄露,則使用相應私鑰加密的所有消息的安全性將受到損害。用戶還可能意外丟失私鑰,並且無法訪問加密數據。


公鑰密碼技術的應用

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

支持安全連接到網站的安全套接字層 (SSL) 協議也使用非對稱加密。 PKC 系統甚至被認爲是提供安全電子投票環境的一種手段,有可能允許選民通過家用計算機參與選舉。

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

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

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


結果

公鑰密碼學在當今數字系統的安全中發揮着重要作用,從計算機安全到加密貨幣交易的驗證。通過使用成對的公鑰和私鑰,非對稱加密算法解決了與對稱密碼相關的主要安全問題。儘管 PKC 已經使用多年,但新的應用程序和應用程序正在定期爲其開發,特別是在區塊鏈和加密貨幣領域。