Encryption

NaCL簽名和加密的單一公鑰?

  • April 2, 2016

Bob 想使用 NaCL(特別是Python NaCL 庫)來 a) 簽署一些公開可用的明文以供任何人驗證是否由 Bob 編寫,以及 b) 為 Alice 加密一些其他秘密明文。

NaCL 鼓勵使用不同的密鑰對進行簽名和加密。Bob 希望任何接收者能夠證明同一個人控制上述兩種情況中使用的 NaCL 簽名密鑰和 NaCL 加密密鑰。這樣做的安全方法是什麼?

  1. 是否有一些安全的方法可以使用簽名密鑰對用於加密的私鑰進行簽名?
  2. 如果 Bob 從某個主密鑰計算派生密鑰,他能否給出主公鑰,然後讓人們驗證簽名公鑰和加密公鑰是從它派生的嗎?
  3. 如果(2)從某個主密鑰派生密鑰的安全方法是什麼?
  4. 如果(2)有人如何驗證簽名和加密公鑰是從主公鑰派生的?

理想情況下,Bob 能夠給出一個 NaCL 公鑰,然後任何接收到簽名或加密明文的人都能夠驗證是否使用了相應的私鑰。

我已經閱讀了djb 網站上的相關文件、這篇文章以及Python NaCL 庫文件。在後者中,所有範例都使用完全不相關的鍵來實現兩個不同的功能。

是否有一些安全的方法可以使用簽名密鑰對用於加密的私鑰進行簽名?

您所說的通常也稱為“鑰匙串”或“鑰匙圈”,這是由 GPG 等程序推廣的概念,它們正是這樣做的:

它們生成一個主簽名密鑰,您可以安全地分發它,然後“證明”其他公鑰屬於你。這樣,您可以使您的主密鑰離線,並且僅用於簽署您的日常加密公鑰和您的日常簽名公鑰。

引用自:https://crypto.stackexchange.com/questions/34128