Aes

通過 Shamir 秘密共享保護 AES

  • September 27, 2021

這是關於Louis Goubin 和 Ange Martinelli 撰寫的使用 Shamir 的秘密共享方案保護 AES的論文,其中描述瞭如何使用 Shamir 秘密共享來獲得 AES 的遮罩實現。

第 3.1 節的結尾表明, $ \text{GF}(2) $ -仿射變換 $ A $ AES S-Box 定義中涉及的與 SSS 兼容的意義在於,如果 $ (x_i,y_i) $ 是一個 SSS 共享 $ x $ , 然後 $ (x_i, A(y_i)) $ 是一個 SSS 共享 $ A(x) $ . 我不清楚這一點,很久以前就有過相應的勘誤聲明,但尚未公開回复。

這裡是否確實有需要填寫的細節,如果是這樣,有人可以評論一下如何完成嗎?

事實上,這篇論文有兩個不同的事情要討論:

  1. 如何申請的詳細資訊 $ \text{GF}(2) $ -SSS 共享變數的仿射函式。
  2. 本文提出的新的 SSS 乘法方案的正確性。

Kodlu提到的 On the Use of Shamir’s Secret Sharing Against Side-Channel Analysis的論文表明,2 中存在缺陷。感謝您發現,Kodlu!

關於 1. 的原始問題,Roche 和 Prouff 的論文使用安全多方計算協議實現 AES 的高階故障免費實現解釋瞭如何應用 $ \text{GF}(2) $ - SSS 上下文中的仿射函式 $ \text{GF}(2^8) $ . 為方便起見,並且因為它很優雅,我將在此處複製它並填寫一些詳細資訊:

關鍵的觀察結果如下:

**索賠:**任何 $ \text{GF}(2) $ -仿射函式 $ \text{GF}(2^n) $ 是唯一的形式 $ a_{-1} + \sum_{k=0}^{n-1} a_k \text{Frob}^k $ , 在哪裡 $ \text{Frob}: y\mapsto y^2 $ 是 Frobenius,並且 $ a_k\in\text{GF}(2^n) $ .

*證明:*因為 $ \text{Gal}(\text{GF}(2^n)/\text{GF}(2))={\text{Frob}^k}_{k=0,\ldots,n-1} $ , 這是任何伽羅瓦擴展的一個特例 $ L/K $ , $ \text{Gal}(L/K) $ 是一個 $ L $ - 基礎 $ \text{End}_K(L) $ . 這反過來又源於 (a) 事實: $ \text{dim}_K(L)=|\text{Gal}(L/K)| $ , 因此 $ \dim_L\text{Hom}_K(L,L)=\text{dim}_L\text{Hom}_K(K^{|\text{Gal}(L/K)|},L)=|\text{Gal}(L/K)| $ , 和 (b) 的元素 $ \text{Gal}(L/K) $ 是 $ L $ - 線性無關,這是字元線性無關的一種特殊情況。

隨著索賠,應用 $ \text{GF}(2) $ - 仿射函式 $ \text{GF}(2^n) $ 將 SSS-shares 簡化為形式的函式的應用 $ y\mapsto b y^{2^k} $ 對於一些 $ b\in \text{GF}(2^n) $ . 在這裡,可以觀察到,通過假設一公共 SSS 評估點,事情變得更簡單 $ {\alpha_i} $ 下要穩定 $ \text{Frob} $ ,在這種情況下,一個 SSS 共享 $ (\alpha_i, y_i) $ 的 $ x $ 轉換為 SSS 共享 $ (\alpha_{\pi^k(i)}, b y_i^{2^k})=(\alpha_i, b y_{\pi^{-k}(i)}^{2^k}) $ 的 $ b x^{2^k} $ 對於排列 $ \pi $ 取決於 $ \text{Frob}(\alpha_i) = \alpha_{\pi(i)} $ . 這樣的 $ \text{Frob} $ - 穩定的子集 $ \text{GF}(2^n) $ 可以根據觀察建構 $ \text{GF}(2^n)\setminus\bigcup_{k|n}\text{GF}(2^k) $ 分解成 $ \text{Frob} $ - 大小的軌道 $ n $ , 所以歸納有 $ \text{Frob} $ - 大小的軌道 $ k|n $ 對所有人 $ k|n $ .

所以,把它們放在一起,應用 $ a_{-1} + \sum_{k=0}^{n-1} a_k \text{Frob}^k $ 到 SSS 共享變數 $ (\alpha_i,y_i) $ 和 $ \text{Frob} $ -穩定的 $ {\alpha_i} $ 在代數上類似於按份額應用它,但必須對份額添加一個排列:新的 $ i $ -第一次分享 $ a_{-1} + \sum_{k=0}^{n-1} a_{k} \text{Frob}^k(y_{\pi^{-k}(i)}) $ , 在哪裡 $ \pi $ 是上的排列 $ {\alpha_i} $ 由…介紹 $ \text{Frob} $ .

eprint.iacr 論壇上的反對意見如下,乍一看似乎是正確的。

您是否搜尋過引用該論文的文獻?作者是否就此發表了進一步的文章?

編輯: *這裡*有進一步的工作可以在 MPC 框架中驗證該聲明。只是把這個筆記放上去​​,因為我暫時沒有時間更深入地看。

“在第 3.1 節的末尾,作者聲稱 AES S-box 的仿射分量 A(它是 GF(256) 中的反演與 GF(2)-仿射圖的組合,它不是 GF(256) 上的仿射圖) ) 可以通過在股份上應用仿射圖 A 來簡單地實現 $ y_i $ (為了簡單起見,忽略仿射圖的常數項使其成為線性)。

這是錯誤的。

作為證明,作者聲稱 A(P) 是 d 次多項式。A(P) 可以解釋為這樣的多項式,但不能解釋為 GF(256) 上的一個變數的多項式,僅當選擇 GF(256) 而非 GF( 2)。完全不清楚如何將這樣的多項式轉換回作者需要的形式。

一個簡單的方法來查看替換 $ y_i $ 經過 $ A(y_i) $ 不對應於將仿射圖 A 應用於秘密值是通過採用第 2.2 節的等式 (1):

秘密 $ a_0 $ 可以根據股份進行重建 $ y_i $ 通過評估總和 $ \sum_0^d y_i \cdot \beta_i $ . 在兩側應用仿射圖 A(為簡單起見,我們再次假設 A 在 GF(2) 上是線性的),得到 $ A(a_0) = A(\sum_0^d y_i \cdot \beta_i) = \sum_0^d A(y_i \cdot \beta_i) $ .

作為 $ A $ 通常在 GF(256) 上不是仿射/線性的 $ A(y_i \cdot \beta_i) $ 不等於 $ A(y_i) \cdot \beta_i $ 並擁有 $ A(a_0) $ 等於 $ \sum_0^d A(y_i) \cdot \beta_i $ 純屬巧合。”

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