Page 402 - 《软件学报》2026年第5期
P. 402
张语晗 等: 对缩减轮 SPECK 改进的差分-线性分析 2281
n
n
n
n
SPECK2n E k : F ×F → F ×F 被定义为:
2 2 2 2
的轮函数
E k (x,y) = ((x ≫ a⊞y)⊕k,y ≪ b⊕(x ≫ a⊞y)⊕k.
n
SPECK2n 的密钥编排复用轮函数来生成轮密钥. 令 K = (l m−2 ,...,l 0 ,k 0 ), l i ,k i ∈ F , m ∈ {2,3,4} 是 SPECK2n 的一
2
个密钥, l i ,k 满足:
l i+m−1 = (k i ⊞l i ≫ a)⊕i
.
k i+1 = k i ≪ b⊕l i+m−1
SPECK2n 的轮函数和密钥编排的分解图如图 4 所示.
x r y r
a
l i+m−2 l i k i
n
E i
b
k r
x r+1 y r+1
图 4 SPECK2n 的轮函数和密钥编排
3.2 应 用
我们将算法 1 应用于 SPECK 算法中, 首次得到了 SPECK32 的 11 轮差分-线性区分器和 SPECK48 的 12 轮
差分-线性区分器.
为了能够在较短的时间内返回 SPECK 的好的差分-线性区分器. 参考 Chen 等人 [13] 在 ASIACRYPT 2023 中的
测试方法, 对于中间部分相关性的测量, 我们首先选择 2 26 大小的样本量来测试, 然后当算法 1 返回一个好的差分-
线性特征时, 我们再使用 2 30 大小的样本量和 100 个随机密钥来进一步确认中间部分相关性的准确性, 基于该策略
我们能够快速地搜索到 SPECK 新的差分-线性区分器. 事实上, 在 SPECK32 的 11 轮差分-线性区分器和 SPECK48
的 12 轮差分-线性区分器中中间部分的相关性均是不小于 2 −10 的. 基于统计理论, 无论是 2 26 大小的样本量还是
2 30 大小的样本量都能够得到较准确的测量值.
3.2.1 应用于 SPECK32
我们首先预计算了 SPECK32 的 2 轮、3 轮和 4 轮最优、次优、次次优差分特征的输出差分集合 S 、S 、S ∆ 4
2
3
∆
∆
和 SPECK32 的 2 轮、3 轮和 4 轮最优、次优、次次优线性特征的输入线性掩码集合 S 、S 、S . 集合 S (p,b)
4
2
3
r 0
Λ
Λ
Λ
∆
r1
表示概率为 p, 输出差分的活跃比特个数为 b 的 r 0 轮差分特征的输出差分的集合, S (q,b) 表示相关性为 q, 输入线
Λ
r 1 轮线性特征的输入线性掩码的集合. 我们使用基于 SAT 的自动化搜索方法来获
性掩码的活跃比特个数为 b 的
r1
r 0 S (q,b). 表 2 E m 部分的差分-线性逼近的相关性
得集合 S (p,b) 和集合 5 中列出了 S 的部分元素. 本文中, 在计算
∆ Λ ∆
时, 我们使用 2 30 大小的样本集合.
2
表 5 SPECK32 的 S 的部分元素
∆
b的取值 p = 2 −1 p = 2 −2 p = 2 −3
2
−3
b = 1 - - S (2 ,1) = {[3,10,1,2]}
∆
2
−3
−2
2
b = 2 - S (2 ,2) = {[8,24],[15,31],[10,26]} S (2 ,2) = {[1,17],...,[3,19]}
∆
∆
2
2
2
−3
−1
−2
b = 3 S (2 ,3) = {[1,15,31],[1,3,17]} S (2 ,3) = {[1,15,31],...,[10,12,26]} S (2 ,3) = {[1,15,31],...,[10,12,26]}
∆
∆
∆
表 6 中列出了 S 的部分元素.
4
Λ
基于算法 1, 结合预计算得到 SPECK32 的 2 轮、3 轮和 4 轮最优、次优、次次优差分特征的输出差分集合

