Authentication

使用 XOR 和安全功能驗證數據

  • December 6, 2017

假設:

  • $ i $ 是一個從零開始的索引。
  • $ K $ 是一個密鑰。
  • $ X $ 是一個數據流。
  • $ x_{i} $ 表示 $ i $ 第一個數據塊 $ X $ .
  • $ s $ 是塊的數量 $ X $ .
  • $ X = x_{0}\mathbin|x_{1}\mathbin|\dots\mathbin|x_{s-2}\mathbin|x_{s-1} $ .
  • $ y_{i} $ 是一個來自的值 $ x_{i} $ , $ i $ , 和 $ K $ 以某種方式結合了一些已知的安全功能(如分組密碼)。
  • $ \alpha = \bigoplus\limits_{i=0}^{s-1} y_{i} $ .

如果身份驗證標籤來自 $ \alpha $ 和 $ K $ 以某種方式使用與推導相同的功能 $ y_{i} $ ,那麼這將是一種安全的身份驗證算法嗎?

有可能。

認為 $ y_i = F_K(1 \mathbin| i \mathbin| x_i) $ 和 $ t = \alpha \oplus F_K(0 \mathbin| n) $ 是身份驗證標籤,對於某些 PRF $ F_K $ 和每條消息的隨機數 $ n $ . 這種結構的安全性稱為 XMACC,由Bellare、Guérin 和 Rogaway 分析,“XOR MACs: New Methods for Message Authentication Using Finite Pseudorandom Functions”, Proceedings of CRYPTO ‘95, Springer LNCS 963, 1995

認為 $ y_i = x_i {K_0}^{i + 1} $ 和 $ t = \alpha + K_1 $ 算術在 $ \operatorname{GF}(2^{128}) $ , 在哪裡 $ K_0, K_1 \in \operatorname{GF}(2^{128}) $ 是均勻隨機的,並且 $ K_1 $ 只使用一次。這是 GHASH 的結構,AES-GCM 在 Carter-Wegman 模式下使用 $ K_0 = \operatorname{AES}_K(0) $ 和 $ K_1 = \operatorname{AES}_K(n) $ 對於每條消息的隨機數 $ n $ .

這是Bernstein 論文所稱的(不受保護的)計數器 sum的一種形式。它不是一個安全的 MAC,它容易受到簡單的攻擊(我將使用基於 1 的索引,與您的問題的基於 0 的索引不同):

  1. 對手選擇單塊消息 $ x $ 並查詢其標籤;回來 $ t_1 = f(1, x) $ .
  2. 對手選擇單塊消息 $ x’ $ (區別於 $ x $ ) 並查詢其標籤;回來 $ t_2 = f(1, x’) $ .
  3. Adversary 計算兩個標籤的差異: $ d = t_1 \oplus t_2 $ .
  4. 對手選擇一個區塊 $ y $ 並查詢標籤 $ x \mathbin\Vert y $ ; 回來 $ t_3 = f(1, x) \oplus f(2, y) $ .
  5. 對手猜測標籤 $ x’ \mathbin\Vert y $ 是 $ t_4 = t_3 \oplus d $ .

原因是標籤之間的區別 $ x $ 和 $ x’ $ 必須與標籤之間的相同 $ x \mathbin\Vert y $ 和 $ x’ \mathbin\Vert y $ :

$$ \begin{align} d &= t_1 \oplus t_2 \ d &= f(1, x) \oplus f(1, x’) \ d \oplus t_3 &= f(1, x) \oplus f(1, x’) \oplus t_3 \ d \oplus t_3 &= f(1, x) \oplus f(1, x’) \oplus f(1, x) \oplus f(2, y) \ d \oplus t_3 &= f(1, x’) \oplus f(2, y) \ d \oplus t_3 &= t_4 \end{align} $$ 一個簡單的解決方案是計算一個受保護的計數器 sum,就像 Bernstein 的論文描述的那樣:

$$ f’(x_1, \dots, x_n) = f(0, f(1, x_1) \oplus \cdots \oplus f(n, x_n)) $$ 外部的、零索引的應用程序 $ f $ “保護” XOR 的輸出免受上述攻擊。


編輯: @Melab 強調我似乎誤解了問題中的最後一句話:

如果身份驗證標籤來自 $ \alpha $ 和 $ K $ 以某種方式使用與推導相同的功能 $ y_{i} $ ,那麼這將是一種安全的身份驗證算法嗎?

這裡的問題是當您說“某種方式”時,因為不清楚您的意思是要問是否存在某種可以產生安全 MAC 的方式,或者在使用相同功能的*任何方式下您的構造是否安全。*前者的答案是“是”,後者的答案是“否”。

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