各方總是使用相同公鑰的 Diffie-Hellman 方案是否容易受到攻擊?
我遇到了幾個協議,其中各方的公鑰在對話中是靜態的,即使是不同的使用者也是如此。這讓我毛骨悚然,但我無法確定真正的弱點是什麼,如果有的話。像這樣的計劃是否可行,或者它是否已知易受攻擊?
這實際上是 Whit Diffie 和 Martin Hellman 在 1976 年的最初提議:Alice 提出 $ g^a $ 在電話簿中並保存 $ a $ 秘密,鮑勃也這樣做 $ g^b $ 和 $ b $ ,並且每當愛麗絲和鮑勃想要進行對話時,他們都會使用 $ g^{ab} $ 作為共享密鑰。
主要的麻煩是你暴露了一個預言機 $ h \mapsto h^x $ , 在哪裡 $ x $ 是你的密鑰,給任何想和你對話的人。如果我們正在工作的小組有許多小訂單子組 $ \ell_1, \ell_2, \dotsc, \ell_n $ ,那麼對手可以給你點數 $ h_1, h_2, \dotsc, h_n $ 為了學習這些命令 $ x \bmod \ell_1, $ $ x \bmod \ell_2, $ $ \dotsc, $ $ x \bmod \ell_n $ ——這就是林-李主動小群攻擊。
但是如果我們在一組素數或接近素數的順序上進行操作,這不會洩露太多資訊——例如,對於有限域 DH,我們可以使用安全素數 $ p = 2q + 1 $ , 意思是 $ q $ 也是素數,所以唯一可能的子組順序是 $ {1,2,q,2q} $ ,我們可以選擇 $ x \equiv 0 \pmod 2 $ 這樣對手就不會從中學到任何東西。
當然,如果對手闖入您的電腦並學習 $ x $ ,那麼他們也可以解密過去的對話——你使用密鑰進行加密的時間越長,就越容易受到追溯解密的影響。因此,您可能只想將長期機密用於身份驗證,並在每次對話時進行新的密鑰協議,有點像 Signal 所做的那樣- 並註意何時擦除密鑰。(涉及擦除密鑰的協議有時被稱為“前向保密”,但我建議不要使用該術語,因為它會在您擦除密鑰時變得模糊。)