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