PGP在資訊安全中使用哪些金鑰?
PGP 使用四種類型的金鑰,包括一次性會話對稱金鑰、公鑰、私鑰和基於密碼的對稱金鑰。
會話金鑰生成 − 每個會話金鑰都與單個訊息相關,僅用於該訊息的加密和解密。請記住,訊息加密/解密是使用對稱加密演算法完成的。考慮到需要 128 位金鑰,因此使用 CAST-128 生成隨機的 128 位數字。
隨機數生成器的輸入包括 128 位金鑰(這是使用使用者按鍵輸入的隨機數)和兩個被視為要加密的明文的 64 位塊。透過使用 CFB 模式,生成兩個 64 位密文塊並將其連線起來形成 128 位會話金鑰。使用的演算法基於 ANSI X12.17 中指定的演算法。
金鑰識別符號 − 每個使用者可以擁有多個公鑰/私鑰對。每個都需要某種 ID。與每個公鑰相關的金鑰 ID 包括其最低有效的 64 位。也就是說,公鑰 KUa 的金鑰 ID 是 (KUa mod 264)。這是一個足夠的長度,重複金鑰 ID 的機率非常小。
金鑰 ID 也用於 PGP 數字簽名,因為傳送者可以使用多個私鑰之一來加密訊息摘要,而接收者應該知道使用了哪個私鑰。
金鑰環 − 金鑰 ID 對 PGP 的服務非常重要。可以看出,任何同時支援機密性和身份驗證的 PGP 訊息中都包含兩個金鑰 ID。
這些金鑰需要以系統化的方式進行儲存和組織,以便某些參與方能夠高效有效地使用它們。PGP 中使用的設計是在每個節點提供一組資料結構,一個用於儲存該節點擁有的公鑰/私鑰對,另一個用於儲存該節點已知的其他使用者的公鑰。
可以將金鑰環視為一個表,其中每一行定義此使用者擁有的一個公鑰/私鑰對。每一行包括以下內容:
時間戳 − 建立此金鑰對的日期/時間。
金鑰 ID − 此條目公鑰的最低 64 位。
公鑰 − 對的公鑰部分。
私鑰 − 對的私鑰部分。
使用者 ID − 通常是使用者的電子郵件地址。
私鑰環可以透過使用者 ID、金鑰 ID 或兩者索引。但出於安全考慮,金鑰的值不會儲存在金鑰環中,而是其加密版本,需要密碼才能解密。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP