system: [SYSTEM]

user: 3. 基于代数次数的S盒可分性质分析 3.1. 基于代数次数的分析方法定义 Todo在对MISYT1进行积分分析时，对其中的 S 7 和 S 9 进行了可分性质搜索。以 S 7 为例，其代数次数 [ 11 ] 是3，已有S盒的布尔函数 S 7 代数标准型ANF(Algebraic Normal Form)。计算复合布尔函数 ( π v ∘ S 7 ) 的可分性质从而得到该S盒的可分性质传播特征。 π v ∘ S 7 的代数次数deg与V的汉明重量 w v 对应关系如表1。 Table 1 wv-deg relationship of the7-bit S-box in MISTY w v 0 1 2 3 4 5 6 7 deg 0 3 5 5 6 6 6 7 表1. MISTY1中7比特S盒w v -deg对应关系 该S盒可分性质传播特征如表2。 这是实际传播特征。值得注意的是，根据可分性质传播规则，即 ，可以得到理论值传播情况如下表3所示。 Table 2 The 7 bit S-box division property propagation characteristic Χ _ D k 7 D 0 7 D 1 7 D 2 7 D 3 7 D 4 7 D 5 7 D 6 7 D 7 7 Y_ D k ′ 7 D 0 7 D 1 7 D 1 7 D 1 7 D 2 7 D 4 7 D 7 7 表2. S7可分性质传播特征 Table 3 The 7 bit S-box theoretical division property propagation characteristic Χ _ D k 7 D 0 7 D 1 7 D 2 7 D 3 7 D 4 7 D 5 7 D 6 7 D 7 7 Y_ D k ′ 7 D 0 7 D 1 7 D 1 7 D 1 7 D 2 7 D 2 7 D 2 7 D 7 7 表3. S7理论可分性质传播特征 可发现，实际值与理论值有不同。即 D 6 7 理论上传播到 D 2 7 ，但实际上传播到 D 4 7 ，这是由于最高次项被抵消造成的。这就是此方法分析S盒可分性质的关键之处。 3.2. 基于代数次数的分析方法原理和过程 根据 π v ∘ S n 的代数次数deg与v的汉明重量 w v 之间的关系，可以推出S盒的可分性质传播特征。由可分性质的定义可知，假设输入数据集的可分性质满足 D k n ，即当 w u < k 时， 是0，经复合布尔函数作用之后的输出数据集的可分性质记为 D k ′ n ，即当 w v < k ′ 时， ⊕ y ∈ Y π v ( y ) 是0。其中k与 k ′ 的关系相对应于布尔函数 π v ∘ S n 的代数次数deg与变量v的汉明重量 w v 的对应关系。 研究可分性质传播时，猜测满足可分性质为 D k n 的最大集合，设其元素长度为n比特，令其中k个比特的值遍历(每个位置取0或1，共 2 k 种情况)，其余(n − k)个比特的值固定。经验证，固定值是0或者是1对结果没有影响。取出这样的数据集X之后，根据可分性质的定义，计算该数据集的可分性质，结果证明该数据集满足可分性质，但并不能证明这是满足可分性质是 D k n 的最大数据集。 在S盒的可分性质传播中，S盒本身是一个布尔函数，可分性质计算时使用的比特产生函数 π v ( x ) 也是布尔函数，因此可将这两个布尔函数复合，即 π v ∘ S n 。分析过程如下： 1) 该复合布尔函数 π v ∘ S n 的汉明重量与代数次数对应关系，共n + 1种情况，这里的汉明重量指的是进行比特产生函数计算时，需要遍历的参数v的汉明重量。 2) 接下来根据此关系推导可分性质传播情况：已知输入集X有可分性质 D k n ，记输出集Y的可分性质为 D k ′ n 。由搜索原理可分别求出与k对应的 k ′ 的值，即可得到可分性质传播的实际值。 3) 利用传播规则，理论上可分性质传播得到的值为 k ′ = ⌈ k / d ⌉ ，与实际值作比较。 另外，尝试遍历所有16！个4比特S盒。遍历过程如下： 1) 用一个递归函数 f u n c t i o n 来求取0到15这16个数的排列即一个4比特S盒，结果用数组 r e s u l t 表示； 2) 初始化一个索引与数值对应的链表 值为0到15，给定初始索引位置 i n d e x 为0 ，这两个赋值变量作为递归函数 f u n c t i o n 的两个参数； 3) 取第一个变量 l i s t 的长度 l e n g t h ，当 l e n g t h > 0 时，执行下一步，否则执行步骤5)； 4) 更新索引位置 i n d e x 1 = i n d e x + 1 ，定义一个循环，当 i < l e n g t h 时，将 l i s t [ i ] 赋值给 r e s u l t [ i n d e x ] ，为了保证 l i s t 不变，将其赋值给一个新的链表 n e w l i s t ，这时移去 n e w l i s t [ i ] ，调用函数本身进行递归， n e w l i s t 和 i n d e x 1 作为参数； 5) 当 l e n g t h = 0 时，16个数的排列已完成，调用求S盒代数次数的函数，这样输出S盒及其代数次数。 3.3. 实验结果 主要针对已有轻量级分组密码算法中的S盒，基于代数次数做了可分性质分析。基于篇幅限制，本文举例进行结果分析。 Camellia、AES、SMS4算法中的8比特S盒，代数次数7，其结果如下表4所示。 Table 4 The 8-bit S-box division property propagation characteristic X : D k n D 0 8 D 2 8 D 3 8 D 4 8 D 5 8 D 6 8 D 7 8 D 8 8 Y : D k n D 0 8 D 1 8 D 1 8 D 1 8 D 1 8 D 1 8 D 1 8 D 1 8 D 8 8 表4. 8比特S盒可分性质传播特征 实际值与理论值一致。 研究的4比特S盒有：302个等价类，16个最优S盒G0-G15 [ 12 ] ，DES中4个，GIFT，Gost中8个，KLEIN，LED，LBlock中10个，MIBS，mCRYPTON中4个，Midori64中8个，RESENT，PRINCE，PRIDE，Piccolo，PUFFIN，RECTANGLE，SKINNY，SPONGENT，Serpent中8个，TWINE。 302个等价类中第14个：12，9，1，2，3，5，4，7，6，0，10，11，8，13，14，15，代数次数为2，其可分性质传播特征如下表5所示。 Table 5 The 14th of the 302 equivalence classes division propert X : D k n D 0 4 D 1 4 D 2 4 D 3 4 D 4 4 理论值 D 0 4 D 1 4 D 1 4 D 2 4 D 4 4 实际值 D 0 4 D 1 4 D 1 4 D 1 4 D 4 4 表5. 302个等价类中第14类S盒的可分性质 其他的4比特S盒代数次数均为3(除了Midori64算法中有一个S盒代数次数为4)，可分性质传播的实际值均与理论值一致，具体如下表6。 Table 6 Other 4-bit S-boxes division propert X : D k n D 0 4 D 1 4 D 2 4 D 3 4 D 4 4 理论值 D 0 4 D 1 4 D 1 4 D 1 4 D 4 4 实际值 D 0 4 D 1 4 D 1 4 D 1 4 表6. 其余4比特S盒的可分性质 结果分析：以302个等价类中第14类S盒为例，由基于代数次数的可分性质分析结果可知，实际值与理论值有不同，理论上可分性质 D 3 4 经过该S盒传播到 D 2 4 ，但实际上传播后的可分性质是 D 1 4 ，即除了汉明重量是0的情况是平衡状态，其余均为非平衡状态。这样就会比理论扩散的慢，所以这些可分性质应用到整体算法的安全性分析中可能会相应地降低复杂度。整体来看，除了 D 0 4 、 D 4 4 两种情况传播到其本身，其余均传播到 D 1 4 。也就是说只有0这一个平衡状态，说明该S盒的安全性是极好的。其余大多数S盒的可分性质实际值与理论值一致。 基于代数次数的S盒可分性质分析结果显示，在算法的实际安全性分析中能够真正降低复杂度的情况较少，考虑是汉明重量掩盖造成的，因为同一个汉明重量对应多个具体的取值情况，因此，下一章在基于比特的基础上，继续挖掘更多的可分性质。