Diffie-Hellman

信號協議:X3DH

  • March 12, 2022

我一直在嘗試了解 Signal 協議的工作原理。根據規範,DH 是在四個鍵上完成的:IK_ASPK_B和:EK_A``IK_B

If the bundle does not contain a one-time prekey, she calculates:

   DH1 = DH(IK_A, SPK_B)
   DH2 = DH(EK_A, IK_B)
   DH3 = DH(EK_A, SPK_B)
   SK = KDF(DH1 || DH2 || DH3)

鑑於所有這四個密鑰都是公鑰並通過不受信任的渠道公佈,一個邪惡的玩家不能計算共享秘密SK嗎?

實際上 $ DH1, DH2 $ 和 $ DH3 $ 不是“通過不受信任的渠道宣布的”。

我認為這個文件是模糊的。為了計算 DH,Alice 使用只有她自己知道的 IK_A 和 EK_A 的離散對數。

更具體地說,如果 IK_A = g^{sk_A},並且 SPK_B=g^{sk_B},則 $ sk_A $ Alice 已經知道的秘密值。

然後她可以通過計算來計算 DH(IK_A, SPK_P) $ (SPK_B)^{sk_A} $ .

Bob 可以通過計算 DH(IK_A, SPK_P) $ (EK_A)^{sk_B} $ .

該協議在計算 Diffie-Hellman 假設下是安全的:

https://en.wikipedia.org/wiki/Computational_Diffie%E2%80%93Hellman_assumption

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