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

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

                                            32
                                            ∏ (64P  σ °  γ  ) P°  64 σ °  °  .
                                            r= 1    r k      0 k
             首先进行密钥白化以及 P64 线性变换,然后进行 32 轮轮函数迭代.PUFFIN 算法的轮函数包含以下 3 个变
         换:非线性层γ,密钥加σ和线性变换 P64.
             (1)  非线性层γ:由 16 个相同的 4×4 S 盒并置组成,每列(V i )通过一个 S 盒.S 盒映射见表 1;
             (2)  密钥加σ:64 比特轮密钥与 64 比特中间状态进行异或运算;
             (3)  线性层 P64:64 比特置换,其映射见表 2.
                                       Table 1    S box map (in hexadecimal)
                                    表 1   PUFFIN 算法 S 盒映射(16 进制表示)
                            x   0  1  2  3  4  5  6  7  8  9  A  B   C  D  E  F
                           S(x)  D  7  3  2  9  A   C  1  F  4  5  E  6  0  B  8

                                              Table 2   P64 map
                                               表 2   P64 映射
                                         0   1   2  3   4   5   6  7
                                      0  13  2  60  50  51  27  10  36
                                      1  25  7  32  61  1  49  47  19
                                      2  34  53  16  22  57  20  48  41
                                      3  9   52  6  31  62  30  28  11
                                      4  37  17  58  8  33  44  46  59
                                      5  24  55  63  38  56  39  15  23
                                      6  14  4   5  26  18  54  42  45
                                      7  21  35  40  3  12  29  43  64

             值得注意的是,PUFFIN 算法中 S 盒及 P64 均为对合变换,即 S(S(x))=x,P64(P64(y))=y,其中, x∈         2 4 , y ∈F  F  2 64 .
             目前对 PUFFIN 的安全性分析主要有差分分析             [16] 、线性分析 [17] 和积分分析  [18] .文献[18]给出了对 PUFFIN
         算法的首个积分攻击结果;文献[19,20]给出了 PUFFIN 算法 6 轮积分区分器,并对 8 轮 PUFFIN 算法进行攻击;
         文献[21]利用混合整数线性规划搜索得到 PUFFIN 算法 8 轮积分区分器,并对 10 轮 PUFFIN 算法进行攻击.
         2.2   PUFFIN算法6/7轮区分器

                                                          4
             定理 2.  设明文 P=(p 0 ,p 1 ,…,p 63 ),当(p 6 ,p 24 ,p 31 ,p 60 )遍历{0,1} 时,6 轮加密后密文中高概率平衡比特位置如图
         2 所示(单位:%).
                                           90.7             85.3 85.6  90.2 85.0
                                        88.4 87.3    87.1   84.6      89.6
                           89.7      98.4  98.6      89.9 99.6
                                     89.8 82.3          90.5   87.3   98.6

                           Fig.2    High probability balance position of ciphertext after 6 rounds
                                      图 2  6 轮加密后密文高概率平衡位置
             证明:当输入明文的活跃位置为 p 6 ,p 24 ,p 31 ,p 60 时,状态可用下图表示(方格内数字表示比特顺序,每一轮开始
         时重新编号).

                            0  4  8  12  16  20  24  28  32  36  40  44  48  52  56  60
                            1  5  9  13  17  21  25  29  33  37  41  45  49  53  57  61
                            2  6  10  14  18  22  26  30  34  38  42  46  50  54  58  62
                            3  7  11  15  19  23  27  31  35  39  43  47  51  55  59  63
   213   214   215   216   217   218   219   220   221   222   223