公鑰是金鑰對中公開的部分,公鑰通常用於加密會話金鑰、驗證數位簽名,或加密可以用相應的私鑰解密的資料。
金鑰是金鑰的擁有者應該隱藏在公鑰密碼基礎架構上的金鑰。在公鑰密碼系統中,公鑰和金鑰是成對的,我們假設在將公鑰發佈給第三方時,私鑰應保密。
在公鑰密碼術出現之前,通常使用公共金鑰密碼技術,這是因為加密金鑰和解密金鑰是相同的,透過與通訊夥伴共享,加密通訊完成。但是,如果在交換金鑰的過程中被竊聽,則公用金鑰加密沒有加密的意義。
使用公鑰加密,金鑰的擁有者首先將公鑰傳遞給通訊夥伴。通訊夥伴使用該公鑰加密,並將加密的文檔(資料)傳送給金鑰的擁有者,接收加密文件的金鑰的擁有者用私鑰解密文檔,解密文件所需的金鑰不在通訊路徑上交換,從而更容易確保安全性。
最廣泛使用的公鑰加密是RSA加密,在RSA中,公鑰和金鑰具有相同的結構,並且用一個金鑰加密的金鑰可以用另一個金鑰解密,換句話說,它不僅可以用於使用公鑰加密,用密鑰解密,還可以用密鑰加密並用公鑰解密。
數位簽章使用了這個特徵,除非是擁有與公鑰配對的金鑰的人,否則無法建立可以使用特定公鑰解密的加密文檔,以便可以保證金鑰的擁有者。
但是,應該注意RSA的私鑰和公鑰永遠不是對稱關係。可以從私鑰創建公鑰,但是從公鑰創建密鑰被認為是非常困難和不可能的,RSA的安全性基於以下事實:很難將大量因素分解,因此有必要延長密鑰長度以提高安全性。由於預期將來會發現新的解碼演算法並提高計算速度,因此金鑰長度和演算法也會發生變化。
以上是什麼是公鑰的詳細內容。更多資訊請關注PHP中文網其他相關文章!