Page 405 - 《软件学报》2024年第4期
P. 405

黄明 等: 分组密码复杂线性层可分性传播的             MILP  刻画方法                                    1983


                 特可分性均表示二子集比特可分性.
                    定义  1. 比特可分性    [5] . 令   X 是元素在  F  上的多重集,   K 是元素在  F  上的集合,   u ∈ F  . 如果  X 满足如下条件,
                                                  n
                                                                                     n
                                                                        n
                                                  2                     2            2
                                 1,n
                 那么称  X 有可分性    D K  :
                                                  {
                                                    未知, 如果存在k ∈ K,使得u ⩾ k;
                                           ⊕ π u (x) =
                                           x∈X      0,   其他.
                                                                                            n,m
                    定义  2. 可分迹  [8] . 记   f r  为一个迭代分组密码的轮函数, 假设算法的输入集合有初始可分性              D ,  记可分性经
                                                                                            K 0
                                             n,m
                 过轮函数    f r  传播  i 轮后的可分性为  D ,  则有如下的可分性传播链:
                                             K i
                                                        f r  f r  f r  f r
                                                 {k} ≜ K 0 →K 1 →K 2 →...→K r ,
                            ∗                    ∗          ∗          ∗
                 并且对任意的    k ∈ K i (i ⩾ 1),  一定存在向量   k i−1  ∈ K i−1  使得   k i−1  可以传播到   k .  进一步地, 对于   (k 0 , k 1 ,..., k r ) ∈ K 0 ×K 1 ×...
                                                                       i
                            i
                                                                   (k 0 , k 1 ,..., k r ) 为一条  r 轮的可分迹.

                 ×K r  , 如果对于任意的   i ∈ {1,2,...,r}, k i−1  都可以传播到那么就称
                    定义  3. 二元矩阵   [13] . 对矩阵  M = (m ) s×s ∈ F m ,  我们将其内部元素  m ′ i,j   表示成一个扩域  F 2 m ≃ F[x]/(g(x)) 上的
                                                       s×s
                                            ′
                                                ′
                                                i,j
                                                       2
                                                                  M  中的元素均为     0  或者      M  为一个二元矩
                                                                                             ′
                                                                    ′
                 一个多项式, 其中     g 是   F 2  上的一个  m 次不可约多项式, 如果矩阵                      1, 则称
                          ′
                 阵. 否则,   M  为一个非二元矩阵.
                  1.3   MILP 的 Indicator 约束与可分性的建模规则
                    MILP  模型是一种在线性约束条件下求解线性目标函数的数学问题, 该模型                    M 通常包含目标函数       (记为  M.obj ),
                 约束条件   (记为  M.con ) 和变量的取值范围     (记为  M.var ). 例如, 公式  (1) 给出了一个简单的   MILP  模型.
                                                    
                                                    M.obj ← min{x 1 +2x 2 + x 3 }
                                                    
                                                    
                                                    
                                                    M.con ← x 1 + x 2 + x 3 ⩾ 2
                                                    
                                                    
                                                    
                                                                                                      (1)
                                                M = 
                                                    
                                                     M.con ← x 1 + x 2 ⩽ 1
                                                    
                                                    
                                                    
                                                    
                                                    
                                                     M.var ← x 1 , x 2 , x 3 ∈ {0, 1}
                    当求解   M  的目标函数    x 1 +2x 2 + x 3  的最小值时, 变量  x 1 , x 2 , x 3 ∈ {0, 1}  需要同时满足约束条件  x 1 + x 2 + x 3 ⩾ 2
                   x 1 + x 2 ⩽ 1,  即上述变量的取值范围为所有约束条件的交集. 对于上述一般的              MILP  模型, 其变量需要满足所有
                 和
                 的约束条件. 为了提高      MILP  模型的实用性, MILP    求解器一般内置了各种广义约束的添加方法, 例如                Indicator 约
                 束. 相比于一般的     MILP  模型, 使用  Indicator 约束的  MILP  模型可以根据不同的初始条件设置不同的约束条件, 约
                                ′                  f ∈ {0,1}.  例如, 公式  (2) 给出了使用  Indicator 约束的
                 束条件的形式为      M .con ← z = f → L,  其中                                      MILP  模型.
                                                   ′
                                                 M .obj ← min{x 1 +2x 2 + x 3 }
                                                 
                                                 
                                                 
                                                    ′
                                                 
                                                 M .con ← x 3 = 1 → x 1 + x 2 + x 3 ⩾ 2
                                                 
                                               ′                                                     (2)
                                             M = 
                                                 
                                                  M .con ← x 3 = 0 → x 1 + x 2 ⩽ 1
                                                    ′
                                                 
                                                 
                                                 
                                                 
                                                   ′
                                                  M .var ← x 1 , x 2 , x 3 ∈ {0, 1}
                          ′                                                                   x 3 = 0  时, 变量
                    模型  M  中的约束条件表示当         x 3 = 1 时, 变量  x 1 , x 2 , x 3  需要满足约束条件   x 1 + x 2 + x 3 ⩾ 2,   而
                 x 1 , x 2 , x 3  则可以违反约束条件  x 1 + x 2 + x 3 ⩾ 2,  但需要满足约束条件  x 1 + x 2 ⩽ 1.  关于  Indicator 约束的详细内容请
                 参考文献   [17].
                    本文利用    Indicator 约束构建  MILP  模型的过程中, 主要涉及以下     3 个建模规则, 更多建模规则请参考文献           [9,10].
                                    复制
                    模型  1. 复制  [9] . 记  a → (b 0 ,b 1 ,...,b l−1 ) 表示将比特变量  a 复制为   个比特变量  b 0 ,b 1 ,...,b l−1 ,  下面的线性约束
                                                                      l
                 可描述复制操作的可分性传播.
                                                  {
                                                    a−b 0 −b 1 −...−b l−1 = 0
                                                                      .
                                                    a,b 0 ,b 1 ,...,b l−1 ∈ {0,1}
                                               异或
                    模型  2. 异或  [9] . 记  (a 0 ,a 1 ,...,a l−1 ) → b 表示将   个比特变量  a 0 ,a 1 ,...,a l−1  异或为比特变量  b, 下面的线性约束
                                                        l
                 可描述异或操作的可分性传播.
                                                  {
                                                    a 0 +a 1 +...+a l−1 −b = 0
                                                                      .
                                                    a 0 ,a 1 ,...,a l−1 ,b ∈ {0,1}
   400   401   402   403   404   405   406   407   408   409   410