Aes

Diffie-Hellman 如何與 AES 相關聯?

  • August 12, 2022

我剛剛了解了 Diffie-Hellman 和 AES。但是,我似乎無法理解它們是如何联系的。

我最初的想法是 Diffie-hellman 用於傳輸密鑰以進行 AES 解密。經過進一步研究,我了解到 AES 使用 Diffie-Hellman 生成的密鑰。

我不明白它是如何使用它的,以及資訊交換與所有這些相關的位置。AES 的全部目的是通過加密來傳輸資訊。它如何使用 Diffie-Hellman 生成的程式碼來做到這一點?

KDF 與這一切有什麼關係?

我最初的想法是 Diffie-Hellman 用於傳輸密鑰以進行 AES 解密,但進一步研究,AES 使用 Diffie-Hellman 生成的密鑰

Diffie-Hellman 是一種密鑰協商算法,允許兩方交換公鑰以計算共享密鑰

這是一個簡單的例子:

  1. 發件人擁有收件人的公鑰。他們使用他們的私鑰和接收者的公鑰來計算一個共享的秘密。他們使用共享密鑰來派生加密密鑰。他們加密消息,可以發送給收件人。
  2. 收件人擁有發件人的公鑰。他們使用他們的私鑰和發送者的公鑰來計算相同的共享秘密。他們使用共享密鑰來派生相同的加密密鑰。他們解密收到的消息。

相比之下,僅共享 AES 密鑰(對稱密鑰)意味著通信通道需要安全(例如加密)。這是因為與公鑰不同,對稱密鑰是保密的。設置安全通道通常是不可能的,因此使用密鑰交換。

KDF 與這一切的關係在哪裡?

共享的秘密不應該直接用作密鑰,因為它們不是完全隨機的(也就是它們比你想要的要弱)。因此,您使用 KDF 派生一個(強)統一隨機密鑰以與您的加密算法一起使用。

KDF 還可以允許您使用上下文資訊(例如應用程序的名稱)個性化密鑰和/或使用鹽隨機化派生密鑰。

也可以使用不同的上下文資訊,使用 KDF 的一個或多個迭代從相同的共享秘密中派生多個密鑰。例如,KDF 可用於派生 AES 密鑰和 HMAC 密鑰以進行消息認證。

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