使用 32 位身份驗證標籤對 AES-CCM 進行生日攻擊
我想使用具有非常小的32 位身份驗證標籤長度的 AES-CCM 。因此,我有一個關於生日攻擊漏洞的問題。
CCM 對生日攻擊有多脆弱?
Jonsson解釋說,如果標籤長度遠大於 $ \frac{k_b}{2} $ .
定理: $ \mathcal{Adv} \leq \frac{q_{dec}}{2^{\tau}} + \frac{\sigma^2}{2^n} $ , 在哪裡 $ q_{dec} $ 限制對手要求的解密查詢的總數,並且 $ \sigma $ 限制該模式對對手的查詢序列進行的分組密碼呼叫總數,以加密所有加密查詢和解密所有解密查詢
$$ explanation from Rogaway $$. 由於使用了 AES, $ k_b $ 應該是 128,並且該定理不適用於 32 位身份驗證標籤大小。這是否意味著生日攻擊將在之後起作用 $ 2^{16} $ 嘗試?這是否適用於塊或消息(因為這裡提到了塊)?如果它是函式被呼叫的塊數量或消息數量,那將會有很大的不同:
$ 2^{16} \times 128\text{-bit block} = 1\text{MB} $
因此,在 1MB 數據之後會發生衝突嗎?
還是我誤解了瓊森定理?另一方面,Rogaway將 Jonsson 定理應用於 32 位標籤,並解釋說,如果在密鑰之前可以執行 10,000 次嘗試的偽造品將被淘汰,並且對手嘗試加密或解密的明文或密文的總量對應於 $ 2^{50} $ 塊,那麼對手的鍛造機率最多為 $ \frac{10000}{2^{32}} + 2^{-28} \approx \frac{10000}{2^{32}} < 0.000003 $
再次,他與 $ 2^{50} $ 塊。這是否意味著生日界限描述的是消息數量而不是塊?
簡而言之:我可以使用 32 位身份驗證標籤在 CCM 中安全地發送多少條消息,以及在多少個INVALID之後應該停用****密鑰?Jonsson 定理是否適用於32 位標籤?
**請注意:**此答案完全基於 OP 所述的定理。
符號:
- $ \tau $ :標籤的長度,以位為單位,在您的情況下為 32
- $ \sigma $ :加密/解密塊的數量
- $ n $ :密碼的塊大小,以位為單位,對於 AES,這是 128
- $ q_{dec} $ : 允許的解密查詢數
- $ \text{Adv} $ :攻擊者贏得“遊戲”並因此破壞相關安全定義的機率
公式:
$$ \text{Adv}<\frac{q_{dec}}{2^\tau}+\frac{\sigma^2}{2^n} $$
首先,對於 $ q_{dec} $ :您應該將此值設置為盡可能低,而不會給出(太多)誤報,理想情況下這是 $ 1 $ .
下一步是選擇您願意容忍的攻擊者破壞您的計劃的最高機率。理想情況下,您希望將其設置得盡可能低,例如 FIPS 140-2 指定沒有隨機嘗試應該比 $ \frac{1}{10^6} $ 成功(錯誤地驗證使用者)並且它還指定攻擊者可能沒有機會大於 $ \frac{1}{10^5} $ 單獨使用加密模組時在一分鐘內成功。另請注意,攻擊者在之後至少成功一次的機會 $ k $ 嘗試機率 $ \text{Adv} $ 是 $ 1-(1-\text{Adv})^k $ ,因此您可能想要進行數學計算並在給定的時間段內保持合理的低值並嘗試計數對手的數量。
現在,在您弄清楚您願意為攻擊者提供多少優勢以及您願意接受多少解密查詢之後,您終於可以繼續使用上面的等式找到允許的最大分組密碼呼叫次數為方案。這應該是
$$ \sigma<2^{48}\cdot\sqrt{2^{32}\cdot\text{Adv} - q_{dec}} $$