Encryption

這種交換加密協議安全嗎?

  • July 12, 2015

我的假設是:

  • 加密必須是可交換的
  • 中間人不是問題

我想在兩方之間實施以下方案( $ A $ 和 $ B $ ) 交換密鑰:

讓我們 $ C = P \oplus F(K, IV) $ 是一種交換加密,resp。一些具有隨機密鑰的對稱分組密碼的 CTR 模式 $ K $ , 隨機初始化向量 $ IV $ , 和 $ P $ 是明文, $ C $ 密文。

$ A $ 有個 $ P $ 想與誰分享 $ B $

因此將完成以下協議:

  1. $ A $ 會隨機選擇 $ K_1 $ 和 $ IV_1 $ 並生產 $ C_1 = P \oplus F(K_1, IV_1) $
  2. $ A $ 將發送 $ C_1 $ 至 $ B $
  3. $ B $ 會隨機選擇 $ K_2 $ 和 $ IV_2 $ 並生產 $ C_2 = C_1 \oplus F(K_2, IV_2) = P \oplus F(K_1, IV_1) \oplus F(K_2, IV_2) $
  4. $ B $ 將發送 $ C_2 $ 至 $ A $
  5. $ A $ 將解密 $ C_2 $ 使用 $ K_1 $ 和 $ IV_1 $ 所以產生 $ C_3 = C_2 \oplus F(K_1, IV_1) = P \oplus F(K_1, IV_1) \oplus F(K_2, IV_2) \oplus F(K_1, IV_1) = P \oplus F(K_2, IV_2) $
  6. $ A $ 將發送 $ C_3 $ 至 $ B $
  7. $ B $ 將解密 $ C_3 $ 使用 $ K_2 $ 和 $ IV_2 $ 所以產生 $ P = C_3 \oplus F(K_2, IV_2) = P \oplus F(K_2, IV_2) \oplus F(K_2, IV_2) $
  8. $ A $ 和 $ B $ 共享相同的價值 $ P $ 現在

組合任何一個是否存在安全風險 $ C_1 $ , $ C_2 $ , $ C_3 $ 得到實際值 $ P $ ?

$ C_1 \oplus C_2 = F(K_2, IV_2) $

$ C_1 \oplus C_3 = F(K_1, IV_1) \oplus F(K_2, IV_2) $

$ C_2 \oplus C_3 = F(K_1, IV_1) $

是否有任何可能的攻擊如何獲得價值 $ P $ ?

為了使符號更簡單,我注意到 $ R_i = F(k_i, IV_i) $ . 然後:

$$ C_1 = P \oplus R_1 $$ $$ C_2 = P \oplus R_1 \oplus R_2 $$ $$ C_3 = P \oplus R_2 $$ 所以:

$$ C_1 \oplus C_2 \oplus C_3 = P \oplus R_1 \oplus P \oplus R_1 \oplus R_2 \oplus P \oplus R_2 = P $$ 您的協議看起來像Shamir 的三遍協議,但它需要的不僅僅是交換性,這就是為什麼 Shamir 的解決方案涉及模冪運算的原因。

是的,被動竊聽者有可能恢復秘密 $ P $ .

就是這樣:

攻擊者觀察 $ C_1,C_2,C_3 $ 並形成所有這些值的異或。
就是這樣,結果 $ C_1\oplus C_2 \oplus C_3=P\oplus F(K_1,IV_1)\oplus P \oplus F(K_1,IV_1) \oplus F(K_2,IV_2) \oplus P \oplus F(K_2,IV_2)=P $ 產生所需的明文。

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