Algorithm-Design

如何生成 16 X 8 完美非線性 S-box

  • March 13, 2020

我想為我正在研究的加密算法生成一個 16,8 完全非線性的 S-box。我沒有數學背景,而且我是本科生,所以很多涉及的數學都非常混亂。

我希望完全非線性的 S-box 具有 16 位輸入和 8 位輸出。

我一直在閱讀 Kaisa Nyberg 1991 年的論文完美非線性 S-box,但我無法理解所描述的方法。

在第 4 節,基於 Maiorana-McFarland 方法的構造中,實現描述為:

  • 取 n 位輸入(其中 n >= 2m)
  • 將 n 位分成兩部分(x1 和 x2)
  • 通過執行 x1 • x2 獲得輸出的第一個數字(長度為 m)
  • 並且輸出的第二個數字通過將一個/2 大小的LFSR(帶有一個原始回饋多項式)移位一次,並在LFSR 的內容和x2 之間進行計算。

我無法理解如何使用這兩個數字,因為兩者的長度都是 m..

  • 連接它們將使輸出大小為 2m

這是不對的。我面臨的問題是:

  • 是否應該在兩個數字之間進行操作以產生 m 位輸出?在基於 Maiorana-McFarland 方法的構造中?
  • 哪個(根據我的理解模組化)操作將是最佳的?
  • 除了完美的非線性之外,還有什麼我應該考慮的嗎?

$ A:\mathbb{F}_2^m\rightarrow \mathbb{F}_2^m $ 是由原始長度誘導的狀態空間圖 $ m $ LFSR。

因此它映射長度的零向量 $ m $ 對自身和一般的 LFSR 狀態 $ (a_0,a_1, \ldots,a_{m-1}) $ 至 $ (a_1,\ldots,a_m) $ . $ A^i $ 只是 $ A $ 迭代的 $ i $ 次(移位 LFSR $ i $ 次)。

然後,APN圖 $ z=(z_1,\ldots,z_n)=F(x_1,x_2) $ 在哪裡 $ x_1,x_2,z,\in \mathbb{F}_2^m $ 是(誰)給的 $$ z_i=A^{i-1}(x_1)\cdot x_2,\quad i=1,\ldots,m $$ 在哪裡 $ z_i $ 是單獨的位。

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