什麼是公鑰加密?
公鑰加密 (PKC) 也稱為非對稱加密,是一種同時使用私鑰和公鑰的機制,而不是對稱加密中使用的單一金鑰。金鑰對的使用為 PKC 提供了一組獨特的特性和功能,可用於解決其他加密技術固有的挑戰。這種形式的密碼學已成為現代電腦安全的重要元素,也是加密貨幣生態系統發展的重要組成部分。
公鑰加密如何運作?
在PKC方案中,發送者使用公鑰來加密訊息,而接收者使用私鑰來解密訊息。兩個金鑰的不同之處在於,公鑰可以安全地共享,而不影響私鑰的安全。每對非對稱金鑰都是唯一的,確保使用公鑰加密的訊息只能由對應私鑰的擁有者讀取。
由於非對稱加密演算法產生數學上連結的密鑰對,因此密鑰長度比對稱加密產生的密鑰對長得多。這種較長的長度(通常為 1,024 至 2,048 位元)使得從公鑰計算私鑰變得極為困難。當今最常用的非對稱加密演算法之一稱為 RSA。在 RSA 方案中,金鑰是使用兩個數字(通常是兩個大質數)相乘的模數產生的。更簡單地說,該模組會產生兩個金鑰(可以共享的公鑰和需要保密的私鑰)。 RSA 演算法由 Rivest、Shamir 和 Adleman 於 1977 年首次描述(RSA 是這三個字母的第一個字母的組合),並且仍然是公鑰密碼系統的關鍵組成部分。
PKC-加密工具
公鑰密碼學解決了對稱演算法長期存在的問題之一——用於加密和解密的金鑰的通訊問題。透過不安全的連接發送金鑰可能會將使用共享金鑰加密的任何訊息暴露給第三方。儘管有密碼學技術(例如Diffie-Hellman-Merkle金鑰交換協定)可以解決這個問題,但仍有被攻擊的風險。相較之下,使用公鑰加密技術,用於加密的金鑰可以在任何連接中安全地共享。因此,非對稱演算法提供比對稱演算法更高層級的保護。
創建數位簽章的應用程式
非對稱加密演算法的另一個應用是透過數位簽章進行資料認證。本質上,數位簽章是使用訊息中的資料建立的哈希值。發送訊息時,接收者可以使用發送者的公鑰來驗證簽名,以此來驗證訊息的來源並確保訊息不是偽造的。在某些情況下,數位簽章和加密與雜湊本身作為訊息的一部分進行加密結合應用。然而,應該注意的是,並非所有數位簽章方案都使用加密技術。
限制
雖然它可以用來增強電腦安全性並提供訊息完整性驗證,但 PKC 也有一些限制。由於加密和解密涉及複雜的數學,非對稱演算法在被迫處理大量資料時可能會非常緩慢。這種類型的密碼學也嚴重依賴私鑰保密的假設。如果私鑰被意外共享或暴露,則使用其相應公鑰加密的所有訊息的安全性都會受到損害。用戶還可能意外丟失私鑰,在這種情況下他們無法存取加密資料。
公鑰加密應用
許多現代電腦系統使用這種類型的加密技術來為敏感資訊提供安全性。例如,可以使用公鑰加密技術對電子郵件進行加密,以確保內容的機密性。安全通訊端層 (SSL) 協定有助於保護與也可能使用非對稱加密的網站的連線。 PKC 系統甚至被用作提供安全電子投票環境的一種手段,使選民能夠透過家用電腦參與選舉。
PKC 在區塊鏈技術和加密貨幣領域也佔有重要地位。當建立新的加密貨幣錢包時,會產生金鑰對(公鑰和私鑰)。公共地址是使用公鑰創建的,可以安全地與其他人共用。另一方面,私鑰用於創建數位簽章和驗證交易,因此必須保密。一旦透過確認數位簽章中包含的雜湊值來驗證交易,就可以將其新增至區塊鏈分類帳。數位簽章驗證系統確保只有擁有連結到相應加密貨幣錢包的私鑰的人才能提取資金。應該注意的是,加密貨幣應用中使用的非對稱密碼與用於電腦安全目的的非對稱密碼不同。例如,比特幣和以太坊使用一種稱為橢圓曲線數位簽章演算法(ECDSA)的專門密碼學來驗證交易。
從電腦安全到驗證加密貨幣交易,公鑰加密在保護現代數位系統方面發揮著至關重要的作用。非對稱加密演算法透過成對使用公鑰和私鑰,解決了對稱加密帶來的基本安全問題。儘管 PKC 已經使用多年,但新的用途和應用程式仍在不斷開發,特別是在區塊鏈和加密貨幣領域。
