如何處理 Sophie-Germain Counter Mode 中多餘的 12451 個元素?
在 Sophie-Germain 計數器模式 (SGCM) 中, $ GF(2^{128}) $ 伽羅瓦計數器模式 (GCM) 的場乘法被普通乘法取代 $ \bmod 2^{128}+12451 $ . 由於塊大小為 128 位,因此該組的額外 12451 個元素不適合輸出。
SGCM 定義文件對額外元素進行了以下說明:
值是否應該等於 $ 2^{128} $ 或更大,因此需要超過 16 個字節的儲存空間,結果應該被截斷 $ \bmod 2^{128} $ .
這很好,因為包裝的可能性極小,但文件的其他部分並不簡單。
乘數/起點的值 $ H = E_k(0)+2 $ 預防病理病例 $ H = 0 $ 和 $ H = 1 $ . ( $ H = -1 $ 施工也阻止了,因為 $ E_k(0) $ 太小了。)但是如果 $ E_k(0)+2 $ 或者是 $ 2^{128} $ 或者 $ 2^{128}+1 $ ,數學應該怎麼辦?是否支持乘以處理這種情況所需的 129 位數?
我正在考慮在客戶端-伺服器應用程序中同時支持 GCM 和 SGCM,當客戶端在沒有 x86
pclmulqdq
/ ARM的機器上執行時使用 SGCMpmull
。我不認為根據客戶的選擇支持兩者都有安全考慮。
值是否應該等於 $ 2^{128} $ 或更大,因此需要超過 16 個字節的儲存空間,結果應該被截斷 $ \mod 2^{128} $
請注意,這裡討論的是最終標籤值 $ Y_n $ . 截斷最終值會降低安全性,但只是輕微的(例如,可能使偽造嘗試的成功機率加倍,即使加倍也很小)。
截斷中間值可能會大大增加偽造的可能性。最起碼,如果您修改提供偽造機率界限的證明,該界限將變成長消息(例如 2kbyte 或更長)的 1。我不確定如何構造這樣的偽造品,但 (S)GCM 的全部意義在於可證明沒有高機率方法。
是否支持乘以處理這種情況所需的 129 位數?
是的。
作為替代方案,您可能需要查找Carter Wegman 計數器模式;類似於 SGCM,但使用欄位 $ GF(2^{127}-1) $ (並將消息分成 15 個字節塊用於身份驗證通過)。