Page 401 - 《软件学报》2026年第5期
P. 401
2280 软件学报 2026 年第 37 卷第 5 期
r 0
S (p,b), p > 0,b > 0,r 0 > 0
∆
r 1
S (q,b), q > 0,b > 0,r 1 > 0
Λ
从而对搜索过程进行加速. 具体的搜索过程如算法 1 所示.
算法 1. 改进的差分-线性区分器搜索算法.
输入: 轮数 r DL ;
输出: 高相关性的 r DL 轮差分-线性逼近.
cor ← 0;
WHILE TRUE:
确定 r 0 ,r m ,r 1 的值使得 r 0 +r m +r 1 = r DL ;
FOR b ∆ in range (1,B): /*B 是预先设置的活跃比特个数的阈值*/
FOR b Λ in range (1,B):
FOR k ∆ in range (1,K): /*K 是预先设置的与差分概率和线性相关性有关的阈值*/
p = 2 −k ∆ ;
r 0 r 0
∆ m ← S (p,b ∆ ); /* S (p,b ∆ ) 可以通过预计算得到*/
∆ ∆
FOR k Λ in range (1,K):
q = 2 −k Λ ;
r 1 r 1
λ m ← S (q,b Λ ); /* S (q,b Λ ) 可以通过预计算得到*/
Λ Λ
r m
r = Cor(∆ m −→ λ m );
2
cor ← prq ;
IF cor > cor:
cor = cor;
END IF
END FOR
END FOR
END FOR
END FOR
END WHILE
3 应用于 SPECK
3.1 SPECK 算法简介
SPECK 是 NSA 在 2013 年设计的一族轻量级分组密码算法 [2] , SPECK 的参数如表 4 所示.
表 4 SPECK 的参数
分组 密钥长 密钥字 分组 密钥长 密钥字
版本 字大小n 轮数 a b 版本 字大小n 轮数 a b
长度2n 度mn 个数m 长度2n 度mn 个数m
SPECK32/64 32 16 64 4 22 7 2 SPECK96/96 96 48 96 2 28 8 3
SPECK48/72 48 24 72 3 22 8 3 SPECK96/144 96 48 144 3 29 8 3
SPECK48/96 48 24 96 4 23 8 3 SPECK128/128 128 64 128 2 32 8 3
SPECK64/96 64 32 96 3 26 8 3 SPECK128/192 128 64 192 3 33 8 3
SPECK64/128 64 32 128 4 27 8 3 SPECK128/256 128 64 256 4 34 8 3

