Gcm

GCM模式和AAD和明文的順序

  • May 25, 2018

在 GCM 加密模式下,明文和 AAD(附加認證數據)混合有什麼限制?

  • AAD 必須在明文之前出現嗎?或者它可能是在明文之後?
  • 明文之前是否有一個 AAD 塊,明文之後另一個 AAD 塊?
  • AAD 和明文是否可以以更複雜的方式交錯?

為了擴展康拉多的回答,您可能意味著訂購三種可能的方式:

  • 記憶體中事物位置的順序
  • 您向 GCM 實施展示事物的順序
  • GHASH 多項式內的係數順序

正如康拉多所提到的,事物在記憶體中出現的位置並不重要。

並且,係數的順序在 GCM 中定義;更改順序,您將不再執行 GCM。它可能是安全的(取決於您的新方案的詳細資訊),但它不是 GCM

另一方面,有一些技巧可以讓你以不同於它們在多項式中出現的順序來處理事物。

例如,您可以將 GHASH 多項式重新排列為:

$$ (A_a H^a + A_{a-1} H^{a-1} + … + A_0 H^0) H^{m+3} + \ (M_m H^m + M_{m-1}H^{m-1} + … + M_0H^0)H^2 +\ TH $$ (其中 AAD 塊是 $ (A_a, A_{a-1}, …, A_0) $ , 消息是 $ (M_m, M_{m-1}, …, M_0) $ 是消息和 $ T $ 是包含 AAD 和消息長度的塊)

使用此公式,您可以獨立處理 AAD 和消息,並在最後將它們組合起來。

標準庫沒有實現這一點,但它肯定可以做到。

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