Keys
如果我們在 2 個實體之間已經有了密鑰,為什麼還要使用密鑰協議協議?
例如在我的課程中有這個協議:
初始化:A 和 B 共享一個對稱密鑰 S。
(1) A -> B: Ra;A 生成一個隨機數並發送給 A
(2) A <- B: Rb ; B 執行相同
的 A 並且 B 計算會話密鑰K := E_S(Ra XOR Rb)。
如果 A 和 B已經擁有密鑰S,為什麼他們會建立一個新的密鑰K? 我不明白。
對我來說,Diffie-Hellman 協議是連貫的,因為它在兩個從未交談過的實體之間建立了一個密鑰。
暗示
考慮一下如果對手以某種方式設法恢復會話密鑰會發生什麼。
劇透
如果他們只是直接將共享密鑰用作會話密鑰,那麼破壞密鑰的對手就可以破壞所有未來的通信。
如果他們使用共享密鑰派生會話密鑰,那麼破壞會話密鑰的對手只會破壞目前會話。
為什麼不直接使用 DH?
有很多原因 - 第一個可能是為了證明上述觀點。
其次,DH 在計算上比預共享密鑰技術更昂貴。
- 事實上,一些現實世界的協議確實提供了通過預共享密鑰保護通信通道的能力。
- 受限設備可能無法承受使用 DH 的電路尺寸/功率/時間/頻寬