二进制混合列的活跃S盒下界提升

二进制混合列的宽轨迹设计策略

增强活跃S盒数量的下界

东堂裕介(B)和青木和麿
NTT安全平台实验室,东京,日本 todo.yosuke@lab.ntt.co.jp

摘要

AES是最常见的分组密码之一,许多类AES原语已被提出。最近,还提出了许多轻量级对称密钥密码原语。某些此类原语需要使用逐元素异或来进行扩散,本文将其称为 binary matrices,而不是使用MDS矩阵,因为逐元素异或在轻量级环境中可以高效实现。然而,由于二进制矩阵的分支数通常低于MDS矩阵的分支数,这类原语需要更多轮数以确保针对多种密码分析的安全性。本文聚焦于二元矩阵,并讨论二进制矩阵的有用密码学性质。具体而言,我们关注具有 binary MixColumns的类AES原语,其输出通过二进制矩阵计算得到。类AES原语的优点之一是四轮可保证 B²个差分和线性活跃的S盒,其中 B表示矩阵的分支数。我们认为存在一种二元混合列,其在4轮特征中活跃S盒数量的下界超过 B²。对于某些二元矩阵,下界从 B²提升至 B(B+2)。

关键词

差分攻击 · 线性攻击 · Active S盒 · AES-like原语 · MDS · Binary列混合

1 引言

许多对称密钥密码原语,例如分组密码、哈希函数的压缩函数以及认证加密的核心函数,已经被提出。具体而言,高级加密标准(AES[1])是最常见的分组密码之一。其状态表示为一个 4×4矩阵,矩阵元素取8位值。在高级加密标准由美国国家标准与技术研究院(NIST)标准化之后,许多类AES原语被相继提出[2,5,10,17,19–21]。这些原语的状态表示为一个 n × m矩阵,且其元素不仅限于8位值。我们将此类原语称为(n, m)‐类AES原语。PHOTON[19]可被视为(5,5)、(6,6)、⋯、(8,8)‐类AES原语,而PRIMATEs[2], Fides[5]、Grøstl[17],、LED[20],和Prøst[21]则采用了除(4,4)‐类AES原语之外的各种(n, m)‐类AES原语。

表1. 当 n ≤ m时,4轮(n, m)‐类AES原语的下界。

维度 n类型 最佳分支数 经典界 增强界
4 MDS 5 25
4 二进制4 16
5 MDS 6 36
5 二进制4 16
6 MDS 7 49
6 二进制4 16
7 MDS 8 64
7 二进制4 16
8 MDS 9 81
8 二进制5 25

类AES原语的(7,7)矩阵状态的增强效果达到最大。

最近,许多轻量级原语被提出,预计它们在面积受限和低功耗环境以及高端环境中都能表现良好。原始AES中的列混合采用了一个 4×4最大距离可分码(MDS)矩阵,其元素仅取‘1’、‘2’和‘3’,这是就伽罗瓦域中乘法开销和分支数而言的最佳选择之一[30]。然而,如果面积非常受限,即使是 MDS矩阵的乘法也会对轻量级实现造成不利影响。有两种方法可以降低乘法在轻量级和高端环境中的开销:一种是采用递归方法[2,19,20],另一种是采用类似于Camellia P函数的二进制矩阵[3,5,31]。在递归方法中,通过迭代轻量矩阵生成MDS矩阵,这种方法在面积受限的轻量级实现中优于经典MDS矩阵。然而,执行时间往往较慢,这意味着由于递归操作也会导致较高的功耗[15]。另一方面,使用二进制矩阵在受限和非受限环境中也优于经典MDS矩阵,因为它可以通过逐元素异或操作实现1。遗憾的是,二进制矩阵的分支数低于MDS矩阵。例如,当 B表示矩阵的差分和线性分支数时,类AES原语在4轮差分和线性特征中至少保证有 B²个活跃S盒[10]。因此,使用二进制矩阵的类AES原语比使用MDS矩阵的活跃S盒更少,需要更多轮数来确保针对多种密码分析的安全性。

当矩阵是一个元素取 比特值的 n×n矩阵时,MDS矩阵和“二进制”矩阵都可以用(F₂) n×n上的二元矩阵表示。此时,MDS矩阵的汉明重量总是大于 n 2 ,,而“二进制”矩阵的汉明重量小于 n 2。

我们的贡献

本文中,我们关注二元矩阵,并讨论二元矩阵有用的密码学性质。我们特别关注使用二元混合列的类AES原语,其输出通过二进制矩阵计算得出。如果每一轮特定轮数中的活跃S盒数量增加,我们就能有效保证轮数较少的分组密码对多种密码分析具有免疫性。在之前的设计准则中,我们只关注二元矩阵的分支数,因为经典证明仅能保证4轮特征中存在B²个活跃S盒。然而,我们认为对于某些二元矩阵而言,该经典下界并不紧致。也就是说,存在一些二元矩阵,其下界大于 B²。

在本文中,我们对 n × n个二进制矩阵进行了穷尽搜索,并展示了若干下界超过 B²的实例。我们首先讨论了二进制矩阵的密码学性质,然后提出一种利用这些性质来评估更精确下界的算法。该算法能够高效地评估给定二进制矩阵的下界,某些矩阵将下界从 B²提升至 B(B+ 2)。具体而言,我们的算法找到了一些二进制矩阵,其下界分别在 n= 4、5、6、7和8时达到16、17、24、24和32。我们在表1中总结了这些增强的下界。由于二元矩阵的最大分支数在 n ∈{4, 5,…, 7}时为4,经典证明仅能保证16个活跃S盒;此外,当 n= 8时最大分支数为5,经典证明仅能保证25个活跃S盒。因此,我们可以对 n ∈{5, 6, 7, 8}增强下界。我们还评估了增强效果的极限。我们保证,对于所有满足 n ∈{4, 5,…, 8}的(n, n)‐类AES原语,表1中的增强已达到最大化;此外,对于所有满足 n< m的(n, m)‐类AES原语,我们也保证在 n ∈{4, 5, 6, 8}时增强已达到最大化。

2 预备知识

2.1 定义

符号说明 。设 x=(x₁, x₂, …, xₙ)为定义在 F₂ᵇ上的一个 n维向量。设x[j]=(x₁[j], x₂[j], …, xₙ[j])为定义在 F₂上的一个 n维向量,其中 xᵢ[j]表示 xᵢ的第 j位。令 x̃ ∈(F₂)ⁿ表示对 x ∈(F₂ᵇ)ⁿ的截断,使得 x̃的第 i个元素 x̃ᵢ在 xᵢ= 0时取值为0,在 xᵢ ≠ 0时取值为1。xᵢ ∈ F₂ᵇ的汉明重量计算为 hw(xᵢ) = ∑ᵇⱼ₌₁ xᵢ[j],其中加法在 Z上进行。此外,x ∈(F₂ᵇ)ⁿ的汉明重量基于截断后的向量计算,即计算为 hw(x) = ∑ⁿᵢ₌₁ x̃ᵢ。对于任意a ∈ F₂ⁿ和 b ∈ F₂ⁿ,令 a ⊑ b若 a ∨ b= a,其中 ∨表示按位或。注意,F₂ᵇ中的元素表示为 位向量形式的 F₂ᵇ,,并通过适当基底自然转换。

活跃S盒 。在评估对差分和线性密码分析的安全性时,我们通常会评估活跃S盒的数量。一个具有非零输入差分的S盒被称为差分活跃S盒,而具有非零输出线性掩码的S盒被称为线性活跃S盒。通过保证活跃S盒数量的下界,我们可以证明其对差分和线性密码分析的“可证明安全”。

基于宽轨迹设计策略的替换置换网络(SPN)密码[12]由混淆层和扩散层组成,其中并行应用的S盒和矩阵乘法分别用于混淆层和扩散层。当 比特S盒应用于混淆层时,扩散矩阵 M表示为(F₂ᵇ)ⁿ×ⁿ矩阵。设x ∈(F₂ᵇ)ⁿ为由 M表示的扩散的输入。那么,输出计算为 yᵀ= Mxᵀ。为了评估扩散矩阵的安全性,我们通常关注其分支数。

定义 1(分支数 [30]) 。设 M是域 F₂ᵇ上的一个 n × n矩阵。那么,M的差分支数定义为 Bd= min{hw(x)+hw(Mxᵀ) | x ∈(F₂ᵇ)ⁿ{0}}。类似地,M的线性分支数定义为 Bl= min{hw(yM)+ hw(y) | y ∈(F₂ᵇ)ⁿ{0}}。

注意Bd和 Bℓ始终小于或等于 n+ 1。在接下来的章节中,除非另有说明,我们仅考虑差分密码分析。由于这些密码分析的对偶性,对于线性密码分析也可以进行类似的讨论[27]。

我们称两个 n×n矩阵 M和 M′彼此是置换同态[24]的,如果存在一个行置换 ρ和一个列置换 γ,使得 ρ(γ(M)) = γ(ρ(M)) = M′成立。

引理 1[24] . 设 M和 M′为彼此置换同态的矩阵。则 M和 M′具有相同的差分和线性分支数。

在密码学应用中,MDS矩阵具有良好的性质,并且是在编码理论背景下定义的。其定义在我们的上下文中等价于以下定理。

定理 1[30] . 设 M是一个 n × n MDS矩阵,则其差分和线性分支数为 n+ 1。

在扩散层中使用MDS矩阵非常有用,因为此时分支数可以达到最大可能值。然而,对于轻量级实现而言,这种方法效率较低,因为MDS矩阵乘法需要在伽罗瓦域中进行乘法运算。另一方面,如果矩阵的所有元素均由二元元素构成,则可以通过仅需 比特位异或操作的方式高效实现乘法。遗憾的是,除了平凡 MDS矩阵(即 n= 1)之外,这样的二进制矩阵无法生成MDS矩阵。尽管如此,仍有一些具体的密码算法采用了二元矩阵。例如,Camellia使用了一个 8×8二进制矩阵[3],,其设计者通过个人计算机计算表明,8×8二元矩阵的最大分支数为5。权等人总结了大小为 n= 4,5,6,7,和8的二元矩阵的最大分支数分别为4,4,4,4,和5,并将此类矩阵称为最大距离二元线性(MDBL)矩阵[25]。

2.2 类AES原语

高级加密标准的状态表示为一个 4×4矩阵,其元素采用8位值,即分组长度为128位。许多密码原语使用类似的状态表示,我们将它们称为类AES原语[2,5,10,17,19–21]。我们仅关注独立于S盒选择的类AES原语的性质。为方便起见,设 为S盒输入和输出的比特长度。我们引入(n, m)‐类AES原语,其中行数和列数按[8]进行缩放。

定义2 (n, m)类AES原语) 。类AES原语由 n和 m参数化,其中状态表示为一个 n × m矩阵和 m ≥ n。轮函数由四个组件函数组成:字节替换、行移位、列混合和轮密钥加。每个函数定义如下:
– 字节替换(SB)通过S盒将矩阵中的每个 -比特值替换为另一个 -比特值。
– 行移位(SR)将位于第 i行的每个 -比特值向左旋转 i个位置。
– 列混合(MC)通过线性函数对每一列内的 n -比特值进行扩散。
– 轮密钥加(AK)将轮密钥与状态进行异或操作。

然后,类AES原语的轮函数被定义为
Y ←(MC ◦ SR◦ SB)(X)⊕ RK,
其中 X、 Y和 RK分别表示输入、输出和轮密钥。在设计密码置换时,使用常量与矩阵状态进行异或操作,而不是轮密钥。

我们还重点关注以下列混合。

定义3(二元混合列) 。当类AES原语在列混合中使用二进制矩阵时,我们将此类列混合称为二元混合列。

图1展示了4轮类AES原语,这些原语在计算活跃S盒数量方面是等价变换的。在分析4轮类AES原语时,我们将原语划分为三层:前层、中层和后层,如图1所示。我们通常关注所谓的超级S盒[13,18],,其定义如下。

定义4 (超级S盒) 。设一个超级S盒由两个S盒层和一个列混合组成。首先,应用 n个S盒。然后,应用一个扩散矩阵 M。最后,再次应用 n个S盒。

如果 M的分支数为 B,则一个活跃超S盒至少包含 B个活跃S盒。此外,类AES原语的前层和后层分别具有 m个超S盒。

活跃S盒数量

类AES原语的一个良好性质是,4轮特征中的活跃S盒数量独立于S盒的选择和轮密钥加,可以得到保证2。首先,所有(n, m)‐类AES原语都具有以下特征。

引理2 。设 M为定义在 F₂ᵇ上的 n× n矩阵。令 B为M的分支数。当在类AES原语的列混合中采用 M时,总存在一个4轮特征,其活跃S盒数量小于或等于 (n+ 1)B个活跃S盒。

证明 。让我们关注图1中的中层。由于 M的分支数为 B,因此总存在一个满足 hw(X₀)+ hw(Y₀)= B的4轮特征。于是,有 hw(X₀)+ hw(Y₀)个超S盒是活跃的,且每个超S盒最多包含 n+ 1个活跃S盒。因此,总存在一个4轮特征,其活跃S盒数量至多为
(n+ 1)hw(X₀)+(n+ 1)hw(Y₀)=(n+ 1)(hw(X₀)+ hw(Y₀))=(n+ 1)B.
本文的任何部分均不考虑没有活跃S盒的平凡特征。

接下来,让我们考虑活跃S盒数量的下界。

引理 3[11] 。设 M为定义在 n×n上的一个 F₂ᵇ矩阵。令 B表示 M的分支数。当 M应用于类AES原语的列混合时,在4轮特征中至少存在 B²个活跃S盒。

引理2和3推导出以下定理。

定理2 。假设 M是一个具有分支数 B的MDS矩阵,则在4轮特征中至少存在 B²个活跃S盒,且该界是紧的。

定理2表明,在4轮特征中,不存在活跃S盒最小值大于 B²的MDS矩阵。然而,如果使用二元混合列,则由于 B²<(n+ 1)B,存在活跃S盒最小值大于 B²的可能性。例如,若使用一个 5 × 5二进制矩阵,且 B²= 16和(n+ 1)B= 24,则活跃S盒数量的最小值有可能提升至24。

3 二元矩阵的性质

我们现在讨论二元矩阵的一些有用性质。设 x ∈(F₂ᵇ)ⁿ{0}为输入差分。具体而言,我们关注传播 x → Mxᵀ。假设˜ M的分支数为 B,即 hw(x̃)+ hw(Mxᵀ)至少为 B。那么,增强传播定义如下。

定义5(增强传播) 。对于一个具有分支数 B的二进制矩阵 M ∈(F₂ᵇ)ⁿ×ⁿ,x ∈(F₂ᵇ)ⁿ{0}表示由 M引起的扩散的输入差分。我们称传播 x → Mxᵀ为增强传播,当 hw(x̃)+ hw(Mxᵀ) > B时成立。

当考虑从 x出发的所有可能传播时,由于分支数的存在,hw(x̃)+˜ hw(Mxᵀ)的最小值为 B。然而,某些传播具有˜ hw(x̃)+ hw(Mxᵀ) > B。此外,我们定义以下两种传播。

定义6(直接传播与间接传播) 。对于一个二进制矩阵M ∈(F₂ᵇ)ⁿ×ⁿ, x ∈(F₂ᵇ)ⁿ{0}表示由 M引起的扩散的输入差分。我们称传播 x → Mxᵀ为直接(或间接)传播,当Mxᵀ= M x̃ᵀ(或 Mxᵀ ≠ M x̃ᵀ)时。

在直接传播中,Mxᵀ可以根据 x̃直接计算得到 M x̃ᵀ。在间接传播中,我们无法仅从 x̃计算出Mxᵀ,而必须根据差分 x进行计算。

3.1 间接分支数

我们现在希望评估传播 x → Mxᵀ,并考虑传播变为增强传播的条件。我们首先如下定义分支数的一个变体。

定义7(间接分支数) 。设 M为定义在 F₂ᵇ上的 n× n二进制矩阵。令 x ∈(F₂ᵇ)ⁿ{0}表示通过 M进行扩散的输入差分。对于所有满足 ˜ Mxᵀ ≠ M x̃ᵀ的间接传播,即所有 x → Mxᵀ,其间接分支数表示 hw(x̃)+ hw(Mxᵀ)的最小值。

我们可以得到一个关于间接分支数的有用引理。

引理4 。设 M是定义在 F₂ᵇ上的一个 n × n二进制矩阵。设 B为 M的分支数,并假设 B> 2。那么,间接分支数至少为B+ 2。

证明 。设 y为输出向量,即 yᵀ= Mxᵀ。当传播x → y为间接传播时,即ỹᵀ ≠ M x̃ᵀ,总存在两个非零的x[i]和 x[j]满足 x[i] ≠ x[j],且 hw(x̃) ≥ hw(x[i] ∨ x[j])。类似地,设y[i]ᵀ= Mx[i]ᵀ和 y[j]ᵀ= Mx[j]ᵀ,且 hw(ỹ) ≥ hw(y[i] ∨ y[j])。不失一般性,假设 hw(x[j])+ hw(y[j]) ≥ hw(x[i])+ hw(y[i])。

首先,假设 hw(x[j])+ hw(y[j]) ≥ B+ 2,x̃ 的汉明重量与 ỹ 的汉明重量之和至少为 B+ 2。

其次,假设 hw(x[j])+ hw(y[j]) = B+1。当 x[j] ⊐ x[i]时,hw(x[i]∨x[j]) ≥ hw(x[j])+ 1。此外,当 y[j] ⊐ y[i]时,hw(y[i] ∨ y[j]) ≥ hw(y[j])+ 1。因此,当 x[j] ⊐ x[i] 或 y[j] ⊐ y[i]时,x̃的汉明重量与 ỹ 的汉明重量之和至少为 B+ 2,因为
hw(x[i] ∨ x[j])+ hw(y[i] ∨ y[j]) ≥ hw(x[j])+ hw(y[j])+ 1= B+ 2.

最后,当 x[j] ⊑ x[i] 和 y[j] ⊑ y[i]时,
hw(x[i] ⊕ x[j])+ hw(y[i] ⊕ y[j]) = hw(x[j]) − hw(x[i])+ hw(y[j]) − hw(y[i])
≤ B+ 1 −B= 1,
其中(y[i] ⊕ y[j])ᵀ= M(x[i] ⊕ x[j])ᵀ。因此,这是矛盾的,因为分支数大于2。

第三,假设 hw(x[j])+hw(y[j]) = B, hw(x[i])+hw(y[i]) = B。在不失一般性的前提下,假设 hw(x[j]) ≥ hw(x[i])。当 hw(x[i]) = hw(x[j])时,hw(x[i] ∨ x[j]) ≥ hw(x[j])+ 1因为 x[i] ≠ x[j]。此外, hw(y[i] ∨ y[j]) ≥hw(y[j])+ 1因为 y[i] ≠ y[j]。因此,x̃的汉明重量与 ỹ的汉明重量之和至少为 B+ 2,因为
hw(x[i] ∨ x[j])+ hw(y[i] ∨ y[j]) ≥ hw(x[j])+ 1+ hw(y[j])+ 1= B+ 2.

当 hw(x[i])+ 1= hw(x[j])时,则 hw(y[i])= hw(y[j])+ 1。如果 x[j] ⊐ x[i], hw(x[i] ∨ x[j]) ≥ hw(x[j])+ 1= hw(x[i])+ 2。此外,如果 y[i] ⊐ y[j], hw(y[i] ∨ y[j]) ≥ hw(y[i])+ 1= hw(y[j])+ 2。因此,当 x[j] ⊐ x[i] 或 y[i] ⊐ y[j]时,x̃ 的汉明重量与 ỹ 的汉明重量之和至少为 B+ 2。最后,当 x[j] ⊑ x[i] 和 y[i] ⊑ y[j]时,
hw(x[i] ⊕ x[j])+ hw(y[i] ⊕ y[j])= hw(x[j])− hw(x[i])+ hw(y[i])− hw(y[j])
= 1+ 1= 2.
因此,这是矛盾的,因为分支数大于2。当 hw(x[i])+ 2 ≤ hw(x[j])时,x̃和 ỹ的汉明重量之和至少为 B+ 2,因为
hw(x[i] ∨ x[j])+ hw(y[i] ∨ y[j]) ≥ hw(x[i])+ 2+ hw(y[i])= B+ 2.

引理4表明,当 B> 2 时,间接传播始终是一种增强传播。

3.2 受限输入和输出差分的传播

当我们考虑传播 x → Mxᵀ, hw(x̃)+ hw(˜ Mxᵀ) 时,其通常以分支数作为下界。然而,如果输入差分或输出差分的汉明重量受到限制,则并不总是以分支数作为下界,即可能存在更高的下界。

引理5 。设 M为定义在 F₂ᵇ上的 n × n二进制矩阵。令 B为分支数。设 x ∈(F₂ᵇ)ⁿ{0}为通过 M进行扩散的输入差分。则假设 hw(x̃) ≤ 2,
hw(x̃)+ hw(˜ Mxᵀ) ≥ hw(x̃)+ hw(M x̃ᵀ).
类似地,假设 hw(Mxᵀ) ≤ 2,
hw(x̃)+ hw(˜ Mxᵀ) ≥ hw(M⁻¹(˜ Mx)ᵀ)+ hw(˜ Mxᵀ).

证明 。我们证明引理的第一部分。不等式的左右两边都包含项 hw(x̃);因此,只需证明 hw(Mxᵀ) ≥˜ hw(M x̃ᵀ)。Mxᵀ和 M x̃ᵀ均可视为截断差分,因此我们重点关注这些截断差分。对于右边 M x̃ᵀ,仅执行 F₂‐˜ 操作。而对于左边Mxᵀ,我们需要考虑以下步骤:1. 将截断差分转换为(完整)差分,2. 乘以矩阵 M,3. 将差分重新转换为截断差分。因此,我们需要考虑针对截断差分0 和1的如下“特殊”操作: 0⊕0= 0, 0⊕1= 1, 1⊕0= 1以及 1⊕1= 0或1。请注意,我们正在计算汉明重量。因此,当 1 ⊕ 1= 1时,左边大于右边;否则两者相等。引理的第二部分可通过将 x和 M分别替换为 Mxᵀ和 M⁻¹得到。

假设输入差分或输出差分的汉明重量至多为2,引理˜5 表明,hw(x̃)+ hw(Mxᵀ) 可以通过相应的直接传播进行下界估计。因此,我们可以有效地˜保证 hw(x̃)+ hw(Mxᵀ) 的下界。具体而言,考虑保证该下界所需的时间复杂度,则当汉明重量至多为1时,时间复杂度为 O(n),当汉明重量至多为2时,时间复杂度为 O(n(n−1))。

4 具有二元混合列的类AES原语中的活跃S盒数量

由引理2可知,总存在一个4轮特征,其活跃S盒数量小于或等于(n+ 1)B,而使用MDS矩阵是最佳选择,因为 B²= B(n+ 1)。然而,如果使用二元混合列,则由于 B²与 B(n+ 1)之间存在差距,因为 B< n+ 1。在本节中,我们保证了 4轮特征中活跃S盒数量的更精确下界。注意,我们的证明独立于S盒的选择。

4.1 想法的直观理解

首先,我们重新审视在类AES原语的4轮特征中至少存在 B²个差分和线性活跃 S盒的证明。我们重点关注中层的传播,并假设第 i个列混合˜是活跃的。那么 hw(x̃)+ hw(Mxᵀ)至少为 B,并且由于SR的性质,在4轮特征中至少存在 B个活跃超S盒。由于每个活跃超S盒包含 B个活跃S盒,因此在4轮特征中至少存在 B²个活跃S盒。

现在,我们考虑一种类AES原语,其列混合使用具有分支数 B的二进制矩阵。首先,我们考虑在中间层存在间接传播的情况。由于根据引理 B+2的间接分支数为4,因此在4轮特征中至少有 B+2个活跃超S盒。这也意味着在4轮特征中至少有 B(B+ 2)个活跃S盒。

接下来,我们考虑中层仅有直接传播的情况。我们关注中层活跃 MixColumns的数量,并 i活跃列混合表示中层的 i MixColumns处于活跃状态的情况。然后,根据活跃MixColumns的数量,使用不同的方法证明活跃S 盒的最小值。具体来说,我们考虑以下情况,其中使用图1中的符号表示,图 2显示了示意图。首先,假设存在 i个活跃列混合,其中 i ≤ 2。由于SR的构造,对于任意的 i,Wi和 Zi中最多有两个元素是活跃的。因此,我们通过引理 5有效保证了每个超级S盒中活跃S盒的最小数量。接下来,我们假设 i个活跃使用 i ≥ 3的列混合。我们选择二元矩阵,使得所有特征的活跃超S盒数量均超过 B。

4.2 获取精确下界的算法

我们保证给定二进制矩阵的下界M ∈ F n×n 2,和算法1,其有效性将在本节后文展示,该算法给出了评估更精确下界的过程。此处,ASi和ASSi定义如下。

定义8(ASi:直接传播下活跃列混合的活跃S盒数量的精确下界) 。我们仅考虑传播过程中不包含间接传播的4轮特征。对于中层具有个活跃列混合的任何特征,A表示该4轮特征中活跃S盒数量的精确下界。

定义9(ASSi:直接传播下活跃列混合对应的活跃超S盒数量的精确下界) 。我们仅考虑中间层传播不包含间接传播的4轮特征。对于在中间层具有 i个活跃列混合的任何特征,ASSi表示该4轮特征中活跃超S盒数量的精确下界。

两者都仅关注中层具有直接传播的特征。此外,ASSi仅关注超S盒具有直接传播的特征,但界 B ×ASSi考虑了具有间接传播的超S盒的特征。因此, B ×ASSi ≤ASi。此外,ASSi 随 i的值单调递增。

对于任何分支数为 B的二进制矩阵 M,4轮特征中活跃S盒的数量具有下界
min{B × ASS1, B(B+2)}. (1)
这里, B×ASS1 和 B(B+ 2)分别表示中层仅有直接传播和间接传播时的下界。注意,由于ASS1= B,活跃S盒数量的下界为 B×ASS1=B 2。

我们首先计算AS1以获得更精确的下界。由于AS1仅关注传播中没有间接传播且最多有一个活跃列混合的特征,因此可以通过考虑乘法 M和 M−1的计算,统计 M和 M−1的列向量的汉明权重数量来得出。
AS1= min
x˜∈F n 2{ 0}{ n

i=1
(hw((M −1)i)x˜i+ hw(Mi)(M x˜ T )i)}, 注意Mi和(M −1)i分别表示 i中第 M列的列向量和 M−1,且AS1不依赖于中层活跃列混合的位置。因此,我们可以以S1的时间复杂度得到A O(2n)。

由于引理5使我们只需考虑直接传播的情况,因此可以在( B × ASS1中用 min{AS1, B × ASS2}替换1)中的
min{AS1, B × ASS2, B(B+ 2)}. (2)

注意,总存在一个活跃S盒数量为AS1的特征。因此,若AS1满足AS1 ≤min {B× ASS2, B(B+ 2)},则其为一个紧下界。否则,min{B × ASS2, B(B+ 2)}是一个新的下界,但我们不能保证该下界是否紧。

当AS1> B ×ASS2时,有可能进一步改进下界。引理5表明,我们可以 在( B × ASS2中用min{AS2, B×ASS3})替换2)。此时,活跃S盒数量的下界为
min{AS1, AS2, B × ASS3, B(B+ 2)}. (3)

由于AS2和ASS2均依赖于两个活跃列混合的截断差分以及两个活跃列混合位置之间的差异,我们可以通过 O((n −1) × 22n)的时间复杂度得到它们。类似地,由于ASS3依赖于三个活跃列混合的截断差分以及三个活跃列混合位置之间的差异,我们可以通过O((n − 1)(n − 2) × 23n)的时间复杂度得到它。注意,始终存在活跃S盒数量为AS2的特征。因此,若min{AS1,AS2}满足min{AS1,A S2} ≤min{B ×ASS3, B(B+ 2)},则其为一个紧下界。否则,min{B×ASS3, B(B+2)}是一个新的下界,但我们无法保证其是否紧致。注意,由于无法对三个活跃列混合应用引理5,因此无法高效地验证紧致性。

对于线性密码分析,由于差分与线性密码分析之间的对偶性(参见附录 A),我们同样对二进制矩阵 MT执行相同的步骤。

5 最佳二元矩阵

5.1 高效搜索

二元矩阵的数量为 2n 2,例如,由于 264对于 n= 8,穷尽评估所有矩阵是不可行的。然而,在应用于MixColumns时,我们通常更倾向于使用具有最高分支数的二元矩阵。因此,我们采用与Guo等人[16]类似的技术,对从 n= 4到 n= 8的具有最高分支数的二元矩阵进行穷尽搜索。

事实1 。对于满足 n= 4的二元矩阵,5,6,7和8,具有最高差分和线性分支数的二元矩阵数量分别为4! ≈ 24.6,22× 5 49032× 6 279631988× 7 18527040× 8 ! ≈ 211.4,! ≈ 225.1,! ≈ 240.4以及! ≈ 239.4 。

此外,我们仅考虑可逆二进制矩阵。

算法1需要很高的时间复杂度。注意,总存在一个差分特征或线性特征,其活跃S盒数量等于AS1。因此,活跃S盒数量的下界始终至多被上界为AS1。为此,我们首先对具有最高分支数的所有二元矩阵进行穷尽搜索,并仅评估AS1。

表2. AS1所有 MDBL矩阵的 n= 4,5,…,8。

n 差分活跃S盒数量 线性活跃S盒数量 矩阵数量
4 16 16 24
5 16 16 2160
5 17 17 480
6 16 16 5650560
6 16 17 4364640
6 16 18 1011600
6 16 19 15840
6 17 17 2160
6 17 18 9405360
6 17 19 2821680
6 18 18 90720
6 18 19 2586240
6 18 2 244800
6 19 19 27360
6 19 2 275040
6 20 2 54720
6 21 2 103680
6 22 2 11520
6 24 2 2880
7 16 16 720
7 16 17 22453467120
7 16 18 43355400480
7 16 19 34791593760
7 16 2 9488802960
7 16 2 1606162320
7 16 2 70817040
7 16 2 2716560
7 17 17 12
7 17 18 90720
7 17 19 6753399360
7 17 2 132789625920
7 17 2 49796596080
7 17 2 10055893680
7 17 2 640024560
7 17 2 27649440
7 18 18 200
7 18 19 70560
7 18 2 729783520
7 18 2 105763669200
7 18 2 29003380560
7 18 2 2736417600
7 18 2 160644960
7 18 2 1547280
7 19 19 594720
7 19 2 88863979680
7 19 2 36434255760
7 19 2 5529872880
7 19 2 483537600
7 19 2 9051840
7 20 2 1149120
7 20 2 24798715200
7 20 2 6400180080
7 20 2 923988240
7 20 2 33405120
7 21 2 3417120
7 21 2 3160795680
7 21 2 795795840
7 21 2 60490080
7 21 2 4929120
7 22 2 10080
7 22 2 445440240
7 22 23 64506960
7 22 2 9671760
7 23 2 50400
7 23 2 6325200
7 24 2 161280
7 24 2 4969440
7 25 2 30240
8 25 2 5
8 25 2 126252403200
8 25 2 99931668480
8 25 2 9902471040
8 25 2 214462080
8 26 2 6
8 26 2 1912902400
8 26 2 58113216000
8 26 2 3361276800
8 27 2 38868480
8 27 2 53379285120
8 27 2 9583176960
8 27 3 503193600
8 28 2 1612800
8 28 2 7646042880
8 28 3 1739808000
8 29 2 16450560
8 29 3 1305642240
8 30 3 37900800
8 30 3 109992960
8 31 3 33546240
8 31 3 229985280
8 32 3 1290240

DC:差分活跃S盒数量,LC:线性活跃S盒数量

事实2 。对于所有4轮(n, m)-类AES原语,AS1的上界分别为16、17、24、25和 32,对应于 n= 4、5、6、7和8。因此,不存在使得 n= 4,5,6,7,和8的下界分别为17、18、25、26和33的二元矩阵。

最后,我们对所有 n × n二进制矩阵进行穷尽搜索。首先,我们评估AS1,如果AS1不是可能的最大值,则剪枝该矩阵。然后,我们使用算法1计算精确下界。如果我们能找到一个其下界与AS1相同的二进制矩阵,则它是最佳的二进制矩阵之一。另一方面,如果我们无法找到这样的矩阵,我们也会使用算法1评估那些AS1不是最大可能值的二进制矩阵。

5.2 示例

表3. 具有增强下界的二元矩阵示例。

示例 下界
⎡ ⎢⎢⎢⎢⎣ 0 1 1 1 ⎤ 1 0 1 1 ⎥
1 1 0 1 1 1 1 0 ⎥⎥⎥⎦
16
⎡ ⎢⎢⎢⎢⎢⎢⎣ 1 1 1 0 0
1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 0 1 1 1 1 1 ⎤ ⎥⎥⎥⎥⎥⎥⎦
17
⎡ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣ 1 1 1 1 1 0 ⎤ 1 1 1 1 0 1 ⎥
1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 ⎥⎥⎥⎥⎥⎥⎥⎥⎦
24
⎡ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣ 1 1 1 1 0 0 0
1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 ⎤ ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦
24
⎡ ⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣ 1 1 1 0 0 1 1 0 ⎥
1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦
32

4 × 4 5 × 5 6 × 6 7 × 7 8 × 8

当 n= 4时,不存在能够增强活跃S盒数量下界的二进制矩阵。另一方面,对于 n> 4,我们找到了这样的矩阵。具体而言,当 n= 5、6、8时,由于事实2,增强效果达到最大。当 n= 7时,我们无法获得使活跃S盒数量下界为 25的二进制矩阵。然而,对于 m= n,我们仍然穷举评估了AS2 和AS3 的下界,因为始终存在一个特征,其活跃S盒数量为AS2 或AS3。因此,由于不存在使活跃S盒数量下界为25的二进制矩阵,增强效果达到最大。对于(7, m)‐类AES原语且 7< m的情况,可能可以实现活跃S盒数量下界为25。然而,由于引理4仅保证 4×6= 24个活跃S盒,如果我们希望确保活跃S盒数量的下界为25,则必须考虑中间层的间接传播。

5.3 未来工作

本质上,具有增强下界的二元矩阵往往具有较高的汉明权重。对于轻量级实现而言,考虑那些能够以较低异或次数完成乘法运算的二元矩阵非常重要。我们必须权衡取舍。

我们的算法充分利用了类AES原语的结构及其特性,从而加速了边界计算并推导出良好的矩阵。另一方面,我们的算法是为4轮类AES原语定制的,而混合整数线性规划方法[28]似乎对更多轮数的原语更为有效。

我们关注的是活跃S盒数量,这意味着对差分和线性密码分析具有“可证明安全”[22] 。为了实现针对差分和线性密码分析的最终安全性,评估我们的构造仍有很长的路要走。差分[26],线性壳[29],和平坦特征[14]是该领域的研究主题。此外,一个“良好”的密码算法应对各种密码分析具有相似的安全级别。因此,我们接下来的问题是需要分析的是确认对其他密码分析的安全性,例如不可能差分[4],积分[23],和零相关性密码分析[6]。

6 结论

我们研究了具有二元混合列的4轮类AES原语在差分和线性特征中的活跃S盒数量。当二元混合列的分支数为 B时,该数量的下界为 B² 。然而,我们证明了对于具有二元混合列的类AES原语,该下界并不总是紧致的。为了分析该下界,我们首先引入了增强传播和(非)直接传播,并展示了二元矩阵的一些有用性质。然后,我们说明了如何针对给定的二元矩阵评估一个精确下界。结果表明,某些二元矩阵可将下界从 B²提升至 B(B+2)。具体而言,对于 n= 5,6,7,和8的(n, m)‐类AES原语,我们找到了下界分别为17、24、24和32的二元矩阵。此外,我们还评估了这种增强的极限,并证明对于所有n ∈{4, 5,…, 8}的(n, n)‐类AES原语,该增强达到最大化。而且,对于所有 n< m的(n, m)‐类AES原语,我们也保证其增强对 n ∈{4, 5, 6, 8}达到最大化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值