什麽是公鑰密碼學?
首頁
文章
什麽是公鑰密碼學?

什麽是公鑰密碼學?

中等
發佈時間 Jan 31, 2019更新時間 Nov 8, 2022
5m

什麽是公鑰密碼學?

公鑰密碼學(PKC)又稱非對稱密碼學,是一種同時使用公鑰和私鑰的機制,與使用單一密鑰的對稱密碼學相對應。密鑰對的使用賦予了PKC獨特的功能和特性,以解決存在于其他密碼學技術中的固有挑戰。此種形式的密碼學已經成爲現代計算機安全中重要原理,同時也是日益增長的加密貨幣生態系統的關鍵組成部分。


公鑰密碼學的工作原理

在PKC體系中,發送方使用公鑰來加密信息,而接收方則使用私鑰來解密信息。由于兩個密鑰的完全不同,因此可以安然的進行公鑰共享,而並不用擔心會損害私鑰的安全性。每組非對稱密鑰對都是唯一的,所以就確保了使用公鑰加密的信息只能由持有對應私鑰的人才能進行讀取。

並且,由于非對稱加密算法生成的密鑰對之間是數學相關的,所以它們的密鑰長度相比于對稱密碼學使用的密鑰要長的多。其長度通常爲1024位或2048位,所以使用公鑰來計算對應私鑰也就變得極其困難。現如今,最常見的非對稱加密算法被稱爲RSA。在RSA方案中,密鑰是通過兩個數相乘(通常爲兩個較大的質數)得到的公共模數來生成。其中模數將生成兩個密鑰,一個是可以共享的公鑰,另一個是需要保密的私鑰。RSA算法在1977年由Rivest、Shamir以及Adleman(所以叫RSA)首次提出,而現在也仍然是公鑰密碼學系統的重要組成部分。


使用PKC來作爲加密工具

公鑰密碼學解決了對稱算法中長期存在的問題,即加密密鑰和解密密鑰之間的通信問題。在不安全的連接中發送對稱密鑰將會産生將其暴露給第三方的風險,而第三方隨後則可以讀取任何由該共享密鑰所加密的信息。雖然存在諸如迪菲-赫爾曼密鑰交換協議等加密學技術來解決這一問題,但這些密鑰仍是容易受到攻擊的。而在公鑰密碼學中完全不用擔心此問題,且用于加密的密鑰可以在任何網絡連接中共享。至此,與對稱算法相比,非對稱算法就提供了更高級別的保護。


數字簽名中的用例

非對稱密碼學算法的另一個應用就是使用數字簽名來驗證數據。本質上來說,數字簽名就是使用信息中的數據所創建的散列。當信息被發送之後,接收方可以使用發送方的公鑰來核實簽名,以此來驗證消息的來源並確保信息未被篡改。在某些情況下,數字簽名和加密技術是同時應用的,這是因爲散列本身也可能是被加密的。然而需要注意的是,並非所有的數字簽名體系都是使用加密技術的。

 

局限性

的確,PKC的可以用于提高計算機的安全性並驗證信息的完整性,但其也存在一定的局限性。由于加密和解密涉及到複雜的數學操作,所以非對稱算法在處理大量數據時也可能略顯緩慢。且此類型密碼學也很大程度的依賴于私鑰保密的假設。倘若意外的共享或公開了私鑰,則使用其對應公鑰加密的信息的安全性就會受到影響。有時用戶的私鑰也可能意外丟失,而這種情況下用戶將失去對加密數據的訪問權。


公鑰密碼學的應用

此種密碼學被許多現在計算機系統所使用來爲敏感信息提供安全保障。就比如,可以使用公鑰密碼學技術來對電子郵件進行加密,以確保其中內容的機密性。同時允許網站安全連接的安全套接層(SSL)協議也使用了非對稱密碼學。PKC系統也被用于安全電子投票環境的探索(此種電子投票環境將允許選民在家庭電腦上參與選舉)。

PKC的特性在區塊鏈和加密貨幣技術中也表現突出。當新的加密貨幣錢包被創建時,就會生成一對密鑰(公鑰和私鑰)。公共地址是使用公鑰生成的,並可以安全的與他人共享。另一方面,私鑰被用于創建數字簽名和驗證交易,所以必須要保密。當交易被數字簽名中的認證散列驗證之後,就可以被添加到區塊鏈賬本中。該數字簽名系統確保了只有擁有加密貨幣錢包對應私鑰的用戶才能從錢包中獲取資金。但值得注意的是,加密貨幣應用中所使用的非對稱密碼與計算機安全目的中所用的卻不同。例如,比特幣和以太坊所使用的是橢圓曲線數字簽名算法(ECDSA)來驗證交易。

從計算機安全到驗證加密貨幣交易可以看出,公鑰密碼學在現代數字系統的安全保護方面發揮了關鍵作用。通過使用成對的公鑰和私鑰,非對稱密碼學算法解決了對稱密碼中固有的安全問題。對于PKC的使用已經經曆了多年,且也在不斷開發其在新興領域內的應用,特別是區塊鏈和加密貨幣領域。