Encryption

從 Canonical 代表中提取一個唯一的 SBox

  • April 13, 2019

在論文https://eprint.iacr.org/2011/218.pdf中,作者檢查了 16 個!不同的 4 位 SBoxes 並在調查結束時,引入了一個名為“Golden SBoxes”的最優類。如何從此類中提取一個 SBox?

我的意思是通過知道 Golden SBoxes 的規範表示為“035869C7DAE41FB2”、“03586CB79EADF214”、“03586AF4ED9217CB”和“03586CB7A49EF12D”(論文表 4),

如何提取金色 sbox,例如 Serpent S-Box S3、Hummingbird-1 SBoxes S1、S2 和 S3 以及 Hummingbird-2 SBoxes S0 和 S1?

延伸到 koldu 答案, $ M_0 $ 和 $ M_1 $ 是 4 位二進制矩陣,可逆二進制矩陣的數量是 20160(大約 $ 2^{14} $ ) 使用這個公式:

$$ \sharp S_n=\prod_{k=1}^n(2^n-2^{k-1}) $$在哪裡 $ n $ 在這種情況下是 4 位。

有兩個二進制矩陣和兩個仿射常數(大小為 $ 2^4 $ ) ,使用蠻力計算複雜度很高,因此,有一些技巧,如隨機排列的改進仿射等價算法來降低複雜度。

這說明了沒有考慮效率的想法。以規範的 Sbox 為例,讓$$ X:=[X[1],\ldots,X[16]] $$ 成為向量 $ {0,1}^4 $ 按照規範 Sbox 映射給出的順序。

循環遍歷所有可逆 $ 4\times4 $ 矩陣 $ M_0,M_i $ 和所有常數向量 $ c_0,c_i $ 計算列矩陣列表 $$ F(M_0,M_i,c_0,c_i):=M_0 \cdot [M_i\cdot(X[1]\oplus c_i),M_i\cdot(X[2]\oplus c_i), \ldots M_i\cdot(X[16]\oplus c_i)]\oplus [c_0,\ldots,c_0], $$ 你會找到一些目標 Sbox $ F $ 在這個過程中計算。

請參閱以下問題中引用的論文摘錄:

這裡

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