Page 214 - 《软件学报》2021年第9期
P. 214

2838                                 Journal of Software  软件学报 Vol.32, No.9,  September 2021

             积分分析是一种选择明文攻击,早期主要应用于基于字节设计的密码算法.2008 年,Z’aba 等人对早期的积
                                                 [5]
                                                                         [7]
                                                                  [6]
                                                                                     [8]
         分分析进行扩展,首次提出了基于比特的积分分析 ,并应用于 Noekeon ,Serpent 和 PRESENT 算法.为更加
                                                                   [9]
         充分地利用非线性组件信息,Todo 在 EUROCRYPT 2015 上提出了可分性 理论,该理论利用计算机搜索更长轮
         数的积分区分器.接着,Todo 等人        [10] 在 FSE 2016 上将可分性概念应用到基于比特的分组密码,并对 SIMON 算法
         积分区分器进行搜索.进一步,在 ASIACRYPT 2016 上,向泽军等人                  [11] 首次利用混合整数线性规划(mixed-
         integer linear programming,简称 MILP)模型对可分性进行刻画,针对 6 种轻量级分组密码积分区分器进行搜索,
         得到了更优的结果.
             积分分析也可以看成是差分分析的扩展,其与高阶差分分析在建立区分器上具有某些联系.如果在高阶差
         分中考虑异或差分,那么建立具有零和性质的 d 阶积分区分器与密文某些比特代数次数最大为 d−1 是等价的.
         2013 年,吴生宝等人    [12] 首次利用高阶差分分析理论,结合 S 盒具体的代数性质,构造算法新的积分区分器.针对
         PRESENT 算法,他们利用 S 盒及线性层的性质,改进了原有的积分攻击结果.
             在传统的积分分析中,利用一组选择明文来构造积分区分器时,区分器末端得到的密文异或和为零都是以
         概率为 1 成立的.那么,能否构造概率不为 1 的有效积分区分器呢?在文献[13]中,Knudsen 等人指出:“与差分类
         似,积分也可以是有概率的.”这揭示了概率积分存在的可能性.本文对该问题进行深入研究,考虑常数对布尔函
         数首项系数的影响,阐述了构造概率积分区分器的具体方法,并给出了利用概率积分区分器恢复密钥的理论模
         型.为验证概率积分分析方法的有效性,本文以 PUFFIN 算法为例进行分析,构造了 7 轮概率积分区分器,并利用
         构造的概率积分区分器,对 9 轮 PUFFIN 算法进行密钥恢复攻击.

         1    概率积分分析方法
             本节从传统的积分分析出发,提出概率积分区分器的构造以及概率积分分析方法.

         1.1   积分分析
                    n
             令 f 为 F 到F 2 的 n 元布尔函数,其代数正规型可以表示为
                    2
                                     f  (, ,...,x x 2  x n ) =  a I ⎜ ∑  ⎛  x =  i ⎟∏  ⎞  ∑  a x I .
                                       1
                                                                   I
                                                              ∈
                                                        ∈
                                                 ∈
                                                 IP  ()N  ⎝  iI  ⎠  I P ()N
         这里,N={1,2,…,n},P(N)表示 N 的幂集,即 N 的所有子集构成的集合.加法为F 2 中的加法运算,即模 2 加运算.
             非零布尔函数 f 的代数正规型中,系数非零项所含有最多变元的个数称为 f 的代数次数,记为 deg(f),即:
                                          deg(f)=max{|I||a I ≠0,I∈P(N)}.
             规定:零函数的代数次数为 0.
             在积分分析中,通过判定某个位置的平衡性来构造积分区分器.基于高阶差分思想,可以通过有限域上多项
         式函数的首项系数取值来判定某个位置的平衡性.
             引理 1 [14] .  设 f 为 n 元布尔函数,其代数正规型为
                                        fx 1  2  x n ) =  a x I ,a ∈ ∑  I  F 2 ,
                                         (, ,...,x
                                                         I
                                                     ∈
                                                      ()
                                                    IP N
         则对任意 I∈P(N),均有:
                                             a I  =  ∑   f  (),x
                                                      ( )⊆F
                                                x ∈  n  ,supp x  I
                                                  2
         其中,supp(x)={1≤i≤n|x i =1}.
             引理 1 说明:要确定某个位置密文是否平衡,可通过研究该位置密文与明文之间多项式函数的首项系数来
                                                    s
         判断.设算法分组长度为 n,其中的 s 个比特遍历{0,1} ,记作 x 0 ,x 1 ,…,x s−1 ;其余比特为常数,记作 c 0 ,c 1 ,…,c n−s−1 ,
         0<s≤n.密文每个比特的值都是关于 x 0 ,x 1 ,…,x s−1 ,c 0 ,c 1 ,…,c n−s−1 的多项式函数,不妨记作 f(x 0 ,x 1 ,…,x s−1 ,c 0 ,c 1 ,…,
                         s
         c n−s−1 ),易知,f 是从 F 到F 2 的一个映射.若密文某个比特位置的表达式 f 对任意的 c 0 ,c 1 ,…,c n−s−1 都满足:
                         2
   209   210   211   212   213   214   215   216   217   218   219