基于划分性质的非黑盒多项式立方攻击
摘要
立方攻击是一种强大的密码分析技术,尤其适用于流密码。由于在立方攻击中需要分析流密码复杂的结构,该攻击通常将其视为黑盒进行分析。因此,立方攻击是一种实验性攻击,当立方体的大小超过实验范围(例如40)时,我们无法评估其安全性。本文提出了一种针对非黑盒多项式的立方攻击。我们的攻击利用了 recently 应用于各种分组密码的划分性质。明显的优势在于,由于不再将密码算法视为黑盒,我们可以利用大立方体规模。我们将新的立方攻击应用于 Trivium、Grain128a和 ACORN。结果恢复了832轮 Trivium、183轮Grain128a以及704轮 ACORN的密钥。这些攻击是目前针对这些密码算法最先进的密钥恢复攻击。
关键词: 立方攻击 · Stream密码算法 · Division性质 · Higher-高阶差分密码分析 · MILP· Trivium· Grain128a· ACORN
1 引言
立方攻击是迪努尔和沙米尔提出的一种针对对称密钥密码系统的通用密码分析技术。特别是,立方攻击已成功应用于各种流密码。设x和v分别为流密码的秘 密变量和公共变量,令f(x , v )为密钥流的第一位。v中的某些比特是活跃的,它们取所有可能的值组合。这些值的集合称为一个立方体,并计算 f(x , v )在立方体所有值上的和。该和也可表示为以x和v为输入的多项式,此多项式称为该立方体的超多项式。超多项式比原始的 f(x , v )更简化,通过分析这个简化的多项式可恢复秘密变量x。然而,分析超多项式的结构实际上非常困难。因此,目标流密码 f(x , v )通常被视为一个
立方攻击中的黑盒多项式,并对该黑盒多项式进行实验评估。在立方攻击的原始论文中[11],,作者引入了一种线性性测试来揭示超多项式的结构。如果线性性测试始终通过,则假设超多项式是线性的,并据此恢复其代数正规形( ANF)。此外,在[24],中引入了二次性测试,超多项式的代数正规形也以类似方式被恢复。二次性测试也被用于当前针对Trivium的最佳密钥恢复攻击中[14]。
需要注意的是,这些都属于实验密码分析,因此存在立方攻击实际上并不奏效的可能性。例如,如果对于特定变量,超多项式是一个高度不平衡的函数,则线性与二次性测试存在失败的概率,无法忽略。
立方攻击与高阶差分攻击之间的区别经常被讨论。高阶差分攻击由来[20]提出。假定 f的代数次数最多为 d,来表明 i阶差分的代数次数最多为 d − i。随后,克努森展示了高阶差分攻击在玩具分组密码上的有效性[18]。如今,许多类似于高阶差分攻击的先进分析技术已被开发出来用于分析分组密码,例如积分攻击[8,19,22]。
立方攻击在某种程度上可被视为一种高阶差分攻击,因为它同样评估了高阶差分的行为。然而,立方攻击与普通高阶差分攻击之间最主要的区别在于是否直接从特征中恢复秘密变量,理解这一区别对于考虑针对流密码的密钥恢复攻击非常重要。当分析分组密码时,攻击者首先评估约简轮分组密码的代数次数,并构造一个高阶差分特征:若代数次数至多为 d,则第(d+1)阶差分恒为0。随后,密钥恢复独立地附加在高阶差分特征之后进行。具体而言,攻击者猜测最后若干轮所使用的轮密钥,并计算约简轮分组密码密文的第(d+1)阶差分。如果猜测的轮密钥正确,则第(d+ 1)阶差分恒为0;换言之,若第(d+ 1)阶差分不为0,则所猜测的轮密钥是错误的。
需要注意的是,我们无法将此策略用于对许多流密码的密钥恢复攻击,因为密钥通常在初始化阶段使用,在生成密钥流时不再参与。也就是说,即使密钥流中存在区分器,也无法像分组密码的密钥恢复攻击那样,通过在密钥生成阶段附加密钥恢复轮次来直接用于密钥恢复攻击。为了执行对流密码的密钥恢复攻击,我们必须仅利用攻击者可观察到的密钥流来恢复密钥。因此,相比常见的高阶微分攻击或方块、饱和以及积分特征中的简单次数估计,需要更先进且复杂的分析方法。在立方攻击的背景下,我们必须分析超多项式的代数正规形。然而,由于对称密钥密码系统结构复杂,精确分析通常是困难的。因此,针对流密码的立方攻击目前主要依赖实验的分析方法。
1.1 我们的贡献
立方攻击中最重要的步骤是超多项式恢复。如果超多项式的恢复效率高于暴力搜索,则会带来对称密钥密码的一些脆弱性。在传统的立方攻击中,超多项式是通过实验方法恢复的。这种方法的优点是我们不需要对 f的结构进行详细分析。另一方面,实验分析存在显著的缺点。
- 立方体的大小受限于实验范围,因为我们必须计算 f在立方体上的和。在当前计算机上,我们或许可以尝试大小不超过40的立方体,但这在金钱和时间方面都需要难以置信的努力。因此,当立方体大小超过40时,实际执行立方攻击是不可行的。
- 对目标流密码真实安全性的预测是密码分析的重要动机。由于评估局限于实验范围,因此很难预测立方攻击在未来高性能计算机下的影响。
- 由于流密码被视为黑盒,对设计者的反馈是有限的。
为了克服这些缺点,我们提出了针对非黑盒多项式的立方攻击。
我们的分析基于(基于比特的)划分性质的传播,据我们所知,这是首次将划分性质应用于流密码。由于划分性质是用于寻找高阶差分特征的工具,其平凡应用仅可用于寻找零和积分区分器,即在任何密钥下,密钥流第一位在立方体上的和恒为0。如前所述,利用零和积分区分器来恢复流密码的密钥是非平凡的。因此,我们提出了一种新的划分性质应用方法以恢复密钥。我们的技术利用划分性质来分析 f(x, v)的代数正规形
通过根据立方体评估多个输入划分性质的传播,最终可以评估未参与该立方体超多项式的秘密变量。这使得我们能够计算超多项式恢复的时间复杂度的上界。
需要注意的是,超多项式恢复直接导致了对称密钥密码的一些脆弱性,我们在第4节中讨论这个问题。
设 I为一组立方体索引。在划分性质评估之后,我们得到一组索引 J,其中 xj(j ∈ J)被包含进超多项式。那么,对于公共变量的每个常量部分,立方上的和的变化至多为 2|J|,其中 |J| 表示 J的大小。所有和均通过对 |J|比特秘密变量进行猜测来计算,恢复超多项式代数正规形的时间复杂度为 2|I|+|J|次加密。最后,我们查询加密预言机并获得立方上的和,从而得到一个关于秘密变量的多项式,并从该多项式中恢复秘密变量。
表1。结果汇总。本表中的时间复杂度表示恢复立方体超多项式的时间复杂度。
| 应用 | 轮数 | 立方体大小 | 复杂度 | 密钥恢复 | 参考文献 |
|---|---|---|---|---|---|
| Trivium | 799 | 32a | 实际的 | [14] | |
| Trivium | 832 | 72 | 277 | 第 5.1 节 | |
| Grain128a | 177 | 33 | 实际的 | [21] | |
| Grain128a | 183 | 92 | 2108 | 推测性的 | 第 5.2 节 |
| ACORN | 503 | 5b | 实际的b | [25] | |
| ACORN | 704 | 64 | 2122 | 第 5.3 节 |
a18使用大小从32到37的立方体,其中最有效的立方体可用于恢复密钥的一比特信息。b针对477轮的攻击主要在[25]中描述为实际的攻击。然而,当目标是超多项式恢复并恢复密钥的一比特时,则对503轮进行攻击。
表1显示了应用摘要。我们将新的立方攻击应用于 Trivium[6]、 Grain128a [3],和ACORN [33]。 Trivium属于eSTREAM组合[1],,是最受关注的流密码之一。其初始化为1152轮。在立方攻击的提出论文中,使用767轮初始化的 Trivium的密钥被成功恢复[11]。随后,在[14],中提出了一种改进的立方攻击,恢复了使用799轮初始化的 Trivium的密钥。这是目前针对 Trivium的最佳密钥恢复攻击。我们的新立方攻击能够恢复使用832轮初始化的 Trivium的密钥。Grain128a是Grain系列流密码的一员,并由ISO/IEC 29167‐13[16]标准化。其初始化为256轮。条件差分密码分析已被应用于 Grain128a,在单密钥环境下实现了对使用177轮初始化的Grain128a的区分攻击[21]。另一方面,密钥恢复
目前尚不清楚该攻击。我们提出的新立方攻击能够使用183轮初始化恢复 Grain128a的密钥。遗憾的是,当我们将该技术应用于实际的立方攻击(即立方体大小较小时),未能找到平衡超多项式。在这种情况下,所恢复的信息位大小小于1比特。由于我们无法断言在大立方体规模下可以高效地找到平衡超多项式,因此密钥恢复的可行性属于推测性的。然而,至少183轮是易受攻击的,因为超多项式恢复比暴力搜索更高效。ACORN是一种认证加密算法,也是 CAESAR竞赛第三轮候选者之一[2]。其结构类似于 Trivium和Grain,基于非线性反馈移位寄存器(NLFSR)。在输出密钥流之前,密钥与初始化向量(i v)被依次与NLFSR进行异或操作,然后关联数据也被依次异或进去。在遵守随机数设定下,我们无法从关联数据中选择立方体比特。因此,当没有关联数据时,初始化被视为2048轮。此前立方攻击已被应用于[25], ,并成功恢复了具有503轮初始化的ACORN的密钥。我们提出的新立方攻击能够恢复具有704轮初始化的ACORN的密钥。
2 预备知识
2.1 混合整数线性规划
Mouha 等在[23]中展示了将混合整数线性规划(MILP)应用于密码分析。此后,MILP已被用于搜索差分、线性、不可能差分、零相关线性以及基于划分性质的积分特征[28,29],[28],[7,26],[7],[34]。本文进一步拓展了MILP在基于划分性质的积分特征中的应用。
MILP 问题是一种优化或可行性程序,其中变量被限制为整数。我们创建一个 MILP 模型 M,它由变量 M.var、约束 M.con和目标函数 M.obj 组成。举个例子,让我们考虑以下优化程序。
示例1
M.var ← x, y, z as binary.
M.con ← x+ 2y+ 3z ≤ 4
M.con ← x+ y ≥ 1
M.obj ← maximize x+ y+ 2z
模型 M 的答案是 3,其中 (x, y, z) =(1,0,1)。
MILP求解器可以解决此类优化问题,如果没有可行解,则返回infeasible。此外,如果没有目标函数,MILP求解器仅评估该模型是否可行。
我们在实验中使用Gurobi优化作为求解器[15]。
2.2 立方攻击
立方攻击是一种由迪努尔和沙米尔提出的密钥恢复攻击,发表于2009[11],是高阶微分密码分析的扩展[20]。
设 x=(x1, x2,…, xn) 和 v=(v1, v2,…, vm) 分别为 n密钥变量和m公共变量。那么,对称密钥密码系统可表示为 f(x, v),其中 f表示一个多项式,输入和输出的大小分别为 n+ m比特和1比特。在流密码的情况下,x是密钥, v是初始化向量(iv),而 f(x, v) 是密钥流的第一比特。立方攻击的核心思想是通过对 f(x, v) 计算高阶微分来简化多项式,并从简化的多项式中恢复密钥变量。
对于一组索引 I={i1, i2,…, i|I| } ⊂{1, 2,…, n},称为立方体索引,并用 tI 表示单项式为 tI= vi1 ··· vi|I|。然后,我们可以将 f(x, v) 分解为
f(x, v)= tI · p(x, v)+ q(x, v),
其中 p(x, v) 与 {vi1 , vi2 ,…, vi|I|}无关,且 p 的有效输入变量数为 n+ m − |I| 比特。此外, q(x, v) 至少缺少来自 {vi1 , vi2 ,…, vi|I|} 的一个变量。
设CI被称为一个立方体(由 I定义),它是一组 2|I|值,其中 {vi1, vi2,…, vi|I|}中的变量取所有可能的取值组合,其余变量固定为某些任意值。那么在立方体 CI的所有取值上, f的和为
⊕ CI f(x, v)=⊕ CI tI · p(x, v)+⊕ CI q(x, v) = p(x, v).
第一项被约简为 p(x, v),因为tI仅在CI的一种情况下为1。第二项总是被抵消,因为 q(x, v)至少缺少来自{vi1 , vi2 ,…, vi|I|} 的一个变量。然后, p(x, v)被称为立方体 CI的超多项式。
黑盒分析。 如果适当选择立方体,使得超多项式足够简化从而能够恢复秘密变量,则立方攻击成功。然而,实际对称密钥密码系统中的 f(x, v)过于复杂。因此,立方攻击将 f视为黑盒多项式。
在预处理阶段,攻击者首先尝试不同的立方体,改变公开变量和秘密变量的值,并分析超多项式的特征。此阶段的目标是揭示 p(x, v)的结构。特别是,原始的立方攻击通过在选定的立方体上求和来搜索线性超多项式 p(x,0)。如果超多项式是线性的,
p(x ⊕ x′, 0)= p(x, 0)⊕p(x ′, 0)⊕p(0, 0)
对于任意的x与x′,该等式始终成立。通过重复足够多次的线性性测试,攻击者可以以高概率判断超多项式是线性的,并基于其线性假设恢复该超多项式的代数正规形(ANF)。
在在线阶段,攻击者通过仅控制公共变量向加密预言机发起查询,并恢复秘密变量。攻击者计算f(x, v) 在立方体所有取值上的和 CI。由于该和是超多项式的右端部分,因此可以恢复秘密变量的部分信息。请参考 [4,11]以更好地理解立方攻击的原理。
2.3 高阶微分密码分析与划分性质
立方攻击所依赖的数学基础与高阶差分攻击相同。与立方攻击不同的是,传统的高阶差分攻击从不将分组密码视为黑盒多项式。攻击者会分析分组密码的结构并构造高阶差分特征,其中攻击者准备一组选择明文,使得约简轮分组密码对应的密文之和为0。在高阶差分攻击提出之后,许多类似于高阶差分攻击的先进分析技术被相继提出,用于分析分组密码,例如平方攻击[8],饱和攻击 [22],多集攻击 [5],与积分攻击[19]。
划分性质
2015年,划分性质作为一种改进的技术被提出,用于寻找迭代密码的高阶差分(积分)特征,该技术首次在[31]中提出。随后,基于比特的变体在[32],中被引入,其定义如下1。
定义1 ((基于比特的)划分性质)。 设 X是一个多重集,其元素取值为 F n 2。设 K是一个集合,其元素为 n维比特向量。当多重集 X具有划分性质 D1 n K时,它满足以下条件:
⊕ x∈X xu={unknown if there exist k ∈ K s.t. u k, 0 otherwise,
其中 u k若ui ≥ ki对所有 i成立,且xu=∏ n i=1 x u i
我们首先评估所选明文集合的划分性质,然后通过评估每一轮函数的传播,来评估相应密文集合的划分性质。
在[31,32]中证明了划分性质的一些传播规则。攻击者确定索引 I={i1, i2,…, i|I| } ⊂{1, 2,…, n}并准备
1文中提出了两种基于比特的划分性质 [32]。本文仅关注传统的基于比特的划分性质。
2|I|选择明文,其中由 I索引的变量取所有可能的值组合。这些选择明文的划分性质为 D1n k,其中ki= 1当 i ∈ I时成立,否则 ki= 0 。然后,从 D1n k 的划分性质传播被评估为 {k} d=ef K0 → K1 → K2 → ··· → Kr, 其中DKi是经过 i轮传播后的划分性质。如果划分性质 Kr不包含唯一第 i个元素为1的单位向量ei,则 r轮密文的第 i位是平衡的。
使用MILP进行划分性质的传播。 评估划分性质的传播并不容易,因为 Ki的规模急剧增加。在2016年亚洲密码学会议上,向等人表明,可通过使用MILP来高效评估传播[34]。首先,他们引入了划分轨迹,定义如下。
定义2(划分轨迹)。 让我们考虑划分性质{k} d=ef K0 → K1 → K2 → ··· → Kr 的传播。此外,对于任意向量ki∗+1 ∈Ki+1,必须存在一个向量ki∗ ∈ Ki,使得k ∗ (K0 × K1 × ··· × Kr),如果对于所有 i ∈{0, 1,…, r −1},ki都能传播到ki+1,我们称(k0 → k1 → ··· → kr)为一个r轮划分轨迹。
设Ek为待攻击的 r轮迭代密码。那么,如果存在划分轨迹k0 −E−→k k r= ei,攻击者无法判断第 i位的 r轮密文是否平衡。另一方面,如果我们能证明不存在划分轨迹k0 Ek −−→ ei,则第 i位的 r轮密文始终是平衡的。因此,我们必须评估所有可能的划分轨迹,以验证密文的每一位是否平衡。在[30–32],中,通过广度优先搜索评估了所有可能的划分轨迹。然而,这种搜索需要巨大的内存和时间复杂度,因此实际上难以将该方法应用于分组长度较大的迭代密码。
MILP 可以高效地解决此问题。我们生成一个覆盖所有划分轨迹的混合整数线性规划模型,求解器评估从输入划分性质到输出划分性质是否存在划分轨迹的可行性。如果求解器保证不存在划分轨迹,则找到了高阶差分(积分)特征。
设复制、异或和与为三个基本操作,其中在复制中1比特被复制到 m比特,在异或中计算 m比特的异或,在与中计算 m比特的与。注意,复制、异或和 与的MILP模型足以表示任意电路。
命题1 (复制的混合整数线性规划模型)。 设 a COPY −−−−→(b1, b2,…, bm)为 COPY的一个划分轨迹。以下不等式足以描述划分性质在copy上的传播。
{M.var ← a, b1, b2,..., bm as binary.
M.con ← a= b1+ b2+ ···+ bm
命题2 (异或的混合整数线性规划模型)。 设(a1, a2,…, am) −X−O−→R b为XOR 的一个划分轨迹。以下不等式足以描述划分性质在xor上的传播。
{M.var ← a1, a2,..., am, b as binary.
M.con ← a1+ a2+ ···+ am= b
命题3(与的混合整数线性规划模型)。 设(a1, a2,…, am) −A−N−D→ b为与的划分轨迹。以下不等式足以描述与操作中划分性质的传播。
{M.var ← a1, a2,..., am, b as binary.
M.con ← b ≥ ai for all i ∈{1, 2,..., m}
为了接受多个输入和输出,从 [34]中所示原始命题推广出三个命题。1和 2也在 [27]中被引入。注意,命题3包含了划分性质的冗余传播,但它们不会影响所获得的特征。
3 如何分析非黑盒多项式
立方攻击基本上将 f(x, v) 视为黑盒多项式,并对其进行实验分析,因为实际的 f(x, v) 过于复杂,难以详细分析其结构。这种实验分析通常具有优势,但也存在显著缺点,例如立方体的大小受限于实验范围。
在本节中,我们提出了一种分析多项式的新技术,该技术从不将多项式视为黑盒,能够详细分析其结构。准确地说,我们提出了一种划分性质的新应用,使其能够分析 f 的代数正规形(ANF)系数。通过我们的新方法,可以高效地识别未参与立方体 CI 超多项式的秘密变量。因此,我们可以估计恢复立方体 CI 超多项式的 ANF 所需的时间复杂度。
3.1 被划分性质保证的内容
我们首先重新回顾划分性质的定义,并探讨划分性质对流密码的作用。
零和积分区分器。 一个直接的应用是寻找零和积分区分器。让我们将 f(x, v)视为一个流密码,其中x和v分别表示秘密变量和公共变量,且 f是通过迭代结构设计的。对于一个立方体 CI,其中{vi1, vi2,…, vi|I|}中的变量取所有可能的值组合,划分性质的传播使我们能够评估在立方体 CI的所有取值上, f(x, v)的和是否平衡。因此,如果攻击者的目标是寻找零和积分区分器,我们可以直接使用划分性质。
代数正规形系数分析。 即使我们能在流密码上找到一个零和积分区分器,与分组密码不同的是,恢复秘密变量也并非易事。因此,需要新的技术来扩展至密钥恢复攻击。
我们提出了一种划分性质的新应用,其中划分性质并非用于寻找零和积分区分器,而是用于分析 f的代数正规形系数。由于我们的目标是分析代数正规形系数,因此无需区分公共变量与秘密变量。为了表示简便,我们考虑 f(x)而非 f(x, v),且 f(x)的代数正规形表示如下。
f(x)= ⊕ u∈F n 2 af u · x u,
其中 af u ∈ F2 表示代数正规形系数。然后,得出以下引理。
引理1。 设 f(x)是从 F n 2到 F2的一个多项式, af u ∈ F2(u ∈ F n 2)为其代数正规形系数。令 k为一个 n维的比特向量。那么,在假设不存在划分轨迹使得 k −→f 1的情况下,对于 u k,其值恒为 0。
证明。 根据k,我们首先将 f(x)分解为
f(x)= ⊕ u∈F n 2 |uk af u · x u ⊕ ⊕ u∈F n 2 |uk af u · x u, = x k · ⊕ u∈F n 2 |uk af u · x u⊕k ⊕ ⊕ u∈F n 2 |uk af u · x u.
假设不存在划分轨迹使得k f −→ 1。那么,没有划分轨迹能保证对立方体 CI的所有初始向量取值, f(x)的和始终与 xi(i ∈{1, 2,…, n}− I)无关且保持平衡。即
⊕ C I f(x)=⊕ C I ⎛ ⎝x k · ⊕ u ∈ F n 2 |uk af u · x u⊕k ⎞ ⎠ = ⊕ u ∈ F n 2 |uk af u · x u ⊕ k= 0
与 xi(i ∈{1, 2,…, n}−I)无关。只有当对于所有满足u且u k的情况, afu恒为0时才成立。
引理1对我们攻击而言是一个非常重要的观察。
3.2 超多项式恢复
立方攻击中最重要的部分是恢复超多项式,本文中我们简称为超多项式恢复。由于公共变量v对攻击者而言是已知且可选择的,因此可以计算pv(x)= p(v, x)的代数正规形,并且目标是恢复当v固定时的 pv(x)。一旦超多项式 pv(x)被恢复,攻击者将立方体查询加密预言机,并计算 f(x, v)在立方体上的和。然后,攻击者可以获得一个关于秘密变量的多项式,并从该多项式中恢复秘密变量。
从一个超多项式中恢复的秘密变量的数量取决于超多项式 pv(x)的结构。如果使用平衡超多项式,则总是能恢复涉及的密钥变量中的1比特信息。如果使用非平衡超多项式,则恢复的秘密变量少于1比特,但部分秘密变量的信息会泄露给攻击者。此外,通过利用多个立方体,有可能恢复更多关于秘密变量的信息。作为一种极端情况,如果超多项式是常数函数,则无法恢复任何秘密变量,但这显然意味着常数和积分区分器的存在。因此,超多项式恢复直接导致对称密钥密码系统的脆弱性,除非超多项式为常数函数,否则总是会恢复部分秘密变量的信息。
先前的超多项式恢复方法。 先前的立方攻击通过实验恢复了立方体大小在当前计算机上可行的超多项式。因此,并非每个超多项式都可以被评估。重复进行线性与二次性测试,如果这些测试充分通过,则将超多项式视为线性或二次多项式。然后,在假设超多项式为线性或二次的情况下,对其进行恢复。
利用划分性质分析超多项式的代数正规形系数。 引理1表明,划分性质可作为分析超多项式代数正规形系数的工具。以下命题由引理1得出,有助于评估恢复超多项式代数正规形的复杂度上界。
命题4。 设 f(x, v)是一个多项式,其中x和v分别表示秘密变量与公共变量。对于一组索引 I={i1, i2,…, i|I| } ⊂{1, 2,…, m},令CI为一组 2|I|值,其中 {vi 1 , vi 2 ,…, vi|I|} 中的变量取所有可能的取值组合。设kI是一个m维比特向量,使得vk I= tI= vi 1 vi 2 ··· vi|I |,即当 i ∈ I时 ki= 1,否则 ki= 0。假设不存在划分轨迹使得(ej, kI) f −→ 1,则x j 不参与立方体 CI的超多项式。
算法1. 通过MILP评估秘密变量
1: 过程攻击框架(混合整数线性规划模型 M, 立方体索引 I)
2:设x为对应于秘密变量的 n个混合整数线性规划变量。
3:设v为对应于公共变量的 m个混合整数线性规划变量。
4: M.con ← vi= 1对于所有 i ∈ I
5: M.con ← vi= 0对于所有 i ∈({1, 2,..., n}− I)
6: M.con ←∑m i=1 xi= 1
7: do
8: 求解混合整数线性规划模型 M
9: 如果 M是可行的 那么
10: 选取索引 j ∈{1, 2,..., n} 使得 xj= 1
11: J= J ∪{j}
12: M.con ← xj= 0
13: 结束 if
14:当 M是可行的
15: return J
16:结束过程
证明。 f(x, v) 的代数正规形表示如下。
f(x, v)= ⊕ u∈F n+m 2 af u ·(x‖v)u,
其中 af u ∈ F2 表示代数正规形系数。多项式 f(x, v) 被分解为
f(x, v)= ⊕ u∈F n+m 2 |u(0‖kI) auf ·(x‖v)u ⊕ ⊕ u∈F n+m 2 |u(0‖kI) auf ·(x‖v)( 0‖u) = tI · ⊕ u∈F n+m 2 |u(0‖k I) auf ·(x‖v) u⊕(0‖kI) ⊕ ⊕ u∈F n+m 2 |u(0‖k I) auf ·(x‖v)( 0‖u) = tI · p(x, v)⊕ q(x, v).
因此,超多项式 p(x, v) 表示为
p(x, v)= ⊕ u∈F n+m 2 |u(0‖kI) af u ·(x‖v) u⊕(0‖kI).
如果没有划分轨迹(e j‖ k I) f u= 0对于 u (e j‖ k I)由于引理1。因此,
p(x, v)= ⊕ u ∈ F n + m 2 |u(0‖kI) ,u j =0 af u ·(x‖v) u⊕(0‖kI).
T该超多项式与x j 无关,因为 u j 始终为0且(xj) 0= 1.
我们可以评估哪些秘密变量参与了给定立方体的超多项式,算法1展示了由混合整数线性规划支持的算法。输入
M是一个混合整数线性规划模型,其中目标流密码通过划分性质的上下文表示。如何为每个具体的流密码构建 M将在第5节的各个应用中展示。首先,我们从 M中选取混合整数线性规划变量x和v,其中x和v分别对应于秘密变量与公共变量的混合整数线性规划变量。例如,在Trivium的算法2中,令x =(s01, s 0 2, . . . , s080) 且 v =(s093, s 0 94, . . . , s 0 172)。接着,为了表示输入划分性质,将v中由 I索引的元素约束为1,其余元素约束为0。由于在我们的立方攻击中,至少有一个秘密变量的元素被额外约束为1,因此x的和被约束为1。接下来,我们使用求解器求解该混合整数线性规划模型。如果 M不可行,则说明超多项式中不涉及密钥变量,⊕CI f(x , v ) = p(x , v ) 恒为常数。如果 M可行,则我们可以得到一条满足条件的划分轨迹,并选取一个索引j ∈{1, 2,…, n},使得 xj= 1在该划分轨迹中成立。于是, xj被判定为涉及超多项式,且索引 j被存入集合 J中。一旦我们检测到 xj被涉及,就对 xj= 0施加额外约束。通过重复此过程,我们可以得到集合 J,其元素为涉及超多项式的秘密变量的索引。
通过使用算法1分析超多项式后,我们得知只有xj(j ∈ J) 参与了立方体 CI的超多项式。攻击者选择初始向量中常量部分的一个值,并通过翻转 I中的位来构造立方体 CI。然后他们尝试所有可能的秘密变量组合{xj1, xj2,…, xj|J|}来恢复超多项式。恢复超多项式的时间复杂度为 2|I|+|J|。因此,如果 |I| + |J| 小于安全比特级别,则我们可以高效地恢复超多项式。
4 密钥恢复
恢复超多项式的时间复杂度在第3节中进行了估计。如第3节所述,超多项式恢复会直接导致流密码的脆弱性。另一方面,如果我们的目标是恢复秘密变量,则必须找到一个接近于平衡性的理想的超多项式。在已经通过使用算法1获得立方体索引 I以及涉及的秘密变量索引 J的条件下,我们恢复秘密变量的攻击策略包括三个阶段:离线阶段、在线阶段和暴力搜索阶段。
-
离线阶段。 此阶段的目标是找到一个理想的超多项式。攻击者选择初始向量中常量部分的一个值,并通过翻转 I中的位来准备一个立方体。然后在本地计算 ⊕C I f (x, v) = pv(x),其中尝试所有可能的秘密变量{xj 1 , x j 2 ,…, x j|J|}的组合,并恢复超多项式。最后,我们通过改变初始向量的常量部分来搜索理想的超多项式。
-
在线阶段。 该阶段的目标是利用理想的超多项式恢复部分秘密变量。在给定平衡超多项式后,攻击者向加密预言机查询立方体 CI 并获得一位 pv(x)。然后,我们得到一个关于涉及的密钥变量的多项式,以及其一半
由于超多项式是平衡的,涉及的密钥变量中的值被丢弃。
- 暴力搜索阶段。 攻击者猜测剩余的秘密变量以恢复秘密变量中的整个值。
除非实际恢复超多项式,否则我们无法知道该超多项式是否平衡,而实际的超多项式恢复需要 2|I|+|J|时间复杂度。因此,如果 |I| + |J| 超出实验范围,则在实际上不可行搜索理想的超多项式。为此,我们提出以下两条关于收集理想超多项式的假设。
假设1(强假设)。 对于一个立方体 CI,在初始向量的常量部分中存在许多使得对应超多项式为平衡的值。
假设2(弱假设)。 对于一个立方体 CI,在初始向量的常量部分中存在许多值,其对应的超多项式不是常数函数。
假设 2弱于假设1,因为满足假设 1的超多项式始终满足假设2。只要假设 2成立,恢复出的秘密变量大小小于1比特,但至少会向攻击者泄露部分秘密信息。
由于超多项式是平衡的,涉及的密钥变量中的值被精确地分为两半,即 pv(x) 对于 2|J|−1个值为0,对其他值为1。因此,我们可以在秘密变量中恢复1比特的信息。
4.1 评估时间复杂度
假设1成立,我们展示恢复完整密钥的时间复杂度。然后,离线阶段的时间复杂度估计为k×2|I|+|J|,其中 k表示寻找理想的超多项式所需的试验次数。注意,我们可以预期在不尝试所有涉及的密钥变量的情况下,以较大概率合理地找到这样的超多项式。我们随机评估部分涉及的密钥变量的值,并检查 pv(x)是否近似平衡。如果对于x输出高度偏倚,则该超多项式 pv不是理想的,需更改iv的常数部分中的其他值。此方法的复杂度为 O(2|I|)。一旦我们找到一个近似理想的超多项式,我们将完全遍历 2|J|个秘密变量的值。
即使使用了理想的超多项式,恢复的密钥信息大小最多也只有1比特。因此,当仅使用一个立方时,暴力搜索阶段的时间复杂度为 2κ−1,其中 κ表示安全比特级别。因此,总时间复杂度为
k× 2|I|+|J|+ 2|I|+ 2κ−1, (1)
由公式(1)可知,当 |I| + |J| = κ −1时,总时间复杂度大于2κ ,因为 k至少为1。因此,此类立方体不适用于密钥恢复攻击。此外,当 |I| + |J| = κ − 2时,仅当最佳情况(k= 1)下在第一次尝试中找到理想的超多项式,该攻击才有效。
如果仅使用一个立方体,则主导的时间复杂度始终是暴力搜索阶段的复杂度。当在评估阶段找到 个立方体并利用所有已找到的立方体时,总时间复杂度降低至
×(k× 2|I|+|J|+ 2|I|)+ 2κ−.
然而,本文仅关注为简化起见而利用一个立方体的情况。请注意,发现一个立方至少会带来密码学漏洞。
5 应用
我们将通用攻击方法应用于三种基于非线性反馈移位寄存器的密码。第一个目标是 Trivium[6],它是eSTREAM组合[1]中的算法之一,也是被分析最多的流密码之一。另一个目标是Grain128a[3],,它被国际标准化组织/国际电工委员会 29167‐13[16]所标准化。最后一个应用是ACORN[33],,它是CAESAR候选算法中的第三轮候选者之一[2],,其设计基于流密码。
5.1 应用于Trivium
规格说明。 Trivium是一种基于NLFSR的流密码,其内部状态由288比特状态(s1, s2,…, s288)表示。图 1展示了 Trivium的状态更新函数。80比特密钥被加载到第一寄存器中,80比特初始向量被加载到第二寄存器中。其余状态比特被设置为0
除了第三个寄存器的最低三位以外的所有初始状态比特。即,初始状态比特表示为
(s1, s2,…, s93)=(K1, K2,…, K80, 0,…, 0),
(s94, s95,…, s177)=(IV1, IV2,…, IV80, 0,…, 0),
(s178, s279,…, s288)=(0, 0,…, 0, 1, 1, 1).
更新函数的伪代码如下所示。
t1 ← s66 ⊕ s93
t2 ← s162 ⊕ s177
t3 ← s243 ⊕ s288
z ← t1 ⊕ t2 ⊕ t3
t1 ← t1 ⊕ s91 · s92 ⊕ s171
t2 ← t2 ⊕ s175 · s176 ⊕ s264
t3 ← t3 ⊕ s286 · s287 ⊕ s69
(s1, s2,..., s93) ←(t3, s1,..., s92)
(s94, s95,..., s177) ←(t1, s94,..., s176)
(s178, s279,..., s288) ←(t2, s178,..., s287)
这里 z 表示 1 比特的密钥流。首先,在密钥初始化阶段,状态更新 4 × 288= 1152 次而不产生输出。密钥初始化完成后,每次更新函数都会产生 1 比特密钥流。
混合整数线性规划模型。 TriviumEval在算法2中生成混合整数线性规划模型 M 作为算法1的输入,且该模型 M可评估所有初始化轮数减少至 R的 Triv-ium的划分轨迹。TriviumCore在算法2中为寄存器的每个更新函数生成混合整数线性规划变量和约束。由于一个TriviumCore创建10个混合整数线性规划变量和7个约束,因此一个更新函数创建30个混合整数线性规划变量和21个约束。因此,生成的混合整数线性规划模型 M包含 288+ 30R个混合整数线性规划变量和 21R+ 282+ 1个混合整数线性规划约束。注意,由输入划分性质产生的约束由算法1处理。
实验验证。 我们实现了混合整数线性规划模型 M用于 Trivium上划分性质的传播,并使用算法1评估涉及的密钥变量,其中Gurobi优化器 [15]被用作混合整数线性规划的求解器。在理论评估之前,我们通过使用小立方体 I={1, 11, 21, 31, 41, 51, 61, 71}来验证我们的攻击方法和实现。表 2总结了从 576到594轮次涉及的密钥变量。
例子 2(对590轮 Trivium的攻击验证)。 我们实际上执行了针对590轮 Trivium 的离线阶段,且仅有 K 60是
参与超多项式。我们通过改变初始向量的常量部分随机选择了100个超多项式,并计算了立方体的和。结果,在42个超多项式中,无论 K60取何值,其和始终 为0,其中0x00CA6124DE5F12043D62是iv的常数部分的一个例子。此外,在 22个超多项式中,该和对应于 K60的值,其中0x2F0881B93B251C7079F2是 其例子。然后,超多项式的代数正规形表示为
pv(x)= x60.
最后,该和对应于36个超多项式中K60 ⊕ 1的值,其中 0x5745A1944411D1374828是其例子。然后,超多项式的代数正规形表示为
pv(x)= x60 ⊕ 1.
平衡超多项式是理想的,我们找到了 22+36= 58个这样的超多项式。因此, 找到理想的超多项式的所需试验次数约为k= 2。
示例3(对591轮 Trivium的攻击验证)。 我们针对591轮执行离线阶段 Trivium,与 K 23, K24, K25, K66, K67
涉及的密钥变量被引入到超多项式中。与针对590轮次的攻击类似,我们通过 改变初始向量的常量部分随机选择了100个超多项式,并评估了给定立方体的和。结果,在64个超多项式中,无论5个涉及的密钥变量如何变化,该和始终为0, 其中0x39305FDD295BDACD2FBE是初始向量常量部分的一个例子。另有11 个超多项式,其和仅在
K23‖K24‖K25‖K66‖K67 ∈{00, 05, 08, 0D, 10, 15, 19, 1C}
使用十六进制表示法,其中0x03CC37748E34C601ADF5是iv的常数部分的一个例 子。然后,超多项式的代数正规形表示为
pv(x)=(x66 ⊕ 1)(x23x24 ⊕ x25 ⊕ x67 ⊕ 1).
有9个超多项式,使得它们的和为1时
K23‖K24‖K25‖K66‖K67 ∈{02, 07, 0A, 0F, 12, 17, 1B, 1E}
使用十六进制表示法,其中0x78126459CB2384E6CCCE是iv的常数部分的一个例 子。然后,超多项式的代数正规形表示为
pv(x)= x66(x23x24 ⊕ x25 ⊕ x67 ⊕ 1).
此外,有16个超多项式,当K23‖K24‖K25‖K66‖K67的值属于
{00, 02, 05, 07, 08, 0A, 0D, 0F, 10, 12, 15, 17, 19, 1B, 1C, 1E}
以十六进制表示法表示,其中0x644BD671BE0C9241481A是iv的常数部分的一个 例子。然后,超多项式的代数正规形表示为
pv(x)= x23x24 ⊕ x25 ⊕ x67 ⊕ 1,
表3. 对 Trivium的理论立方攻击总结。本表中的时间复杂度表示恢复超多项式所需的时间复杂度。
| 轮数 | |I| | 涉及的密钥变量 J | 时间复杂度 |
|---|---|---|---|
| 800 | 44 | 8, 33, 34, 35, 48, 59, 60, 61, 64, 73, 74, 75 | 244+12= 256 |
| 802 | 46 | 32, 34, 57, 58, 59, 60, 61, 62 | 246+8= 254 |
| 805 | 49 | 14, 39, 40, 41, 42, 44, 46, 58, 67,…,73 | 249+15= 264 |
| 806 | 51 | 42, 67, 68, 69 | 251+4= 255 |
| 808 | 52 | 26, 28, 40, 51, 52, 53, 54, 55, 58, 65, 66, 67 | 252+12= 264 |
| 809 | 53 | 24, 26, 36, 38, 40, 49,…,56, 58, 61,…,67, 77,…,80 | 253+25= 278 |
| 814 | 54 | 32, 34, 57, 58, 59, 60, 61 | 254+7= 261 |
| 816 | 55 | 6, 31, 32, 33, 48, 50, 52, 57,…,60, 62, 73,…,79 | 255+19= 274 |
| 818 | 58 | 34, 59, 60, 61 | 258+4= 262 |
| 819 | 61 | 15, 17, 40, 41, 42, 43, 44, 58 | 261+8= 269 |
| 820 | 62 | 15, 26, 40, 41, 42, 51, 52, 53 | 262+8= 270 |
| 822 | 64 | 42, 67, 68, 69 | 264+4= 268 |
| 825 | 65 | 52, 54, 66, 77, 78, 79, 80 | 265+7= 272 |
| 829 | 66 | 23, 25, 26, 27, 36, 42, 56, 67, 68, 69 | 266+10= 276 |
| 830 | 69 | 1, 37, 42, 56, 67, 68, 69 | 269+7= 276 |
| 831 | 71 | 49, 74, 75, 76 | 271+4= 275 |
| 832 | 72 | 34, 58, 59, 60, 61 | 272+5= 277 |
| 对于任意大小的立方体 | |I|,选择奇数索引 1,3,…, 79 和偶数索引 2, 4,…, 2(|I|−40) 作为立方体索引。 | - | - |
理论结果。 如实验验证所示,假设1在小例子中对 Trivium成立。因此,我们可以预期理论上恢复的超多项式也满足假设1。
在我们的实验中,立方体索引选择如下:选择奇数索引 1, 3,…, 2|I| −1,并额外选择偶数索引 2, 4,…, 2(|I| −40)。然后,我们穷举评估了涉及的密钥变量,表3总结了我们在理论立方攻击中的结果。表3显示了涉及的密钥变量的索引以及针对至少经过 800轮初始化的 Trivium进行超多项式恢复的时间复杂度。由于此前最优的密钥恢复攻击为 799轮,因此所有结果至少都改进了当前最优的密钥恢复攻击。在超多项式恢复的时间复杂度小于 279,的条件下,我们能够攻击的最大初始化轮数为 832轮。与此前最优的密钥恢复攻击相比,它提升了 832 −799= 33轮次。
我们没有合理的证据证明我们对立方体索引的选择是恰当的,而且这种选择仍然很困难,因为当我们想要评估所有大小为 |I|的立方体时,需要尝试( 80 |I|)个立方体。如何选择合适的立方体仍是一个开放性问题。
5.2 应用于Grain128a
规格说明。 Grain128a 是 Grain 系列中基于非线性反馈移位寄存器的流密码之一,其内部状态由两个 128比特状态 (b0, b1,…, b127) 和 (s0, s1,…, s127) 表示。128比特密钥被加载到第一寄存器 b 中,96比特初始向量被加载到第二寄存器 s 中。其余状态比特均设为 1,除了第二寄存器中的最低一位。即,初始状态比特表示为
(b0, b1,…, b127)=(K1, K2,…, K128),
(s0, s1,…, s127)=(IV1, IV2,…, IV96, 1,…, 1, 0).
The初始化中更新函数的伪代码如下所示 s.
g ← b0+ b26+ b56+ b91+ b96 + b3b67+ b11b13+ b17b18+ b27b59+ b40b48+ b61b65+ b68b84
+ b88b92b93b95+ b22b24b25+ b70b78b82. (2)
f ← s0+ s7+ s38+ s70+ s81+ s96 (3)
h ← b12s8+ s13s20+ b95s42+ s60s79+ b12b95s94 (4)
z ← h+ s93+∑ j∈A bj (5)
(b0, b1,..., b127) ←(b1,..., b127, g+ s0+ z)
(s0, s1,..., s127) ←(s1,..., s127, f+ z)
这里, A={2, 15, 36, 45, 64, 73, 89}。首先,在密钥初始化过程中,状态更新 256次而不产生输出。在密钥初始化之后,更新函数被调整,使得 z不被馈送到状态中,并且 z被用作密钥流。图2显示了Grain128a的状态更新函数。
混合整数线性规划模型。 Grain128aEval在算法3中生成混合整数线性规划模型 M 作为算法1的输入,并且该模型 M可以评估初始化轮数减少到 R的Grain128a的所有划分轨迹。 funcZ为公式(4)和(5)生成混合整数线性规划变量和约束,并且包含45个混合整数线性规划变量和32个混合整数线性规划约束。funcG为公式(2)生成混合整数线性规划变量和约束,并且包含70个混合整数线性规划变量和55个混合整数线性规划约束。 funcF为公式(3)生成混合整数线性规划变量和约束,并且包含13个混合整数线性规划变量和7个混合整数线性规划约束。因此,每一轮的混合整数线性规划模型包含 45+70+13+4= 132个混合整数线性规划变量和 32+55+7+4= 98个混合整数线性规划约束。因此,生成的混合整数线性规划模型 M包含 256+ 45+ 132R个混合整数线性规划变量和 98R+32+256+1个混合整数线性规划约束。注意,输入划分性质带来的约束由算法1处理。
实验验证。 我们实现了混合整数线性规划模型 M用于Grain128a上划分性质的传播,并使用算法1评估涉及的密钥变量。为了验证我们的攻击和实现,离线阶段使用小立方体 I={1, 2,…, 9}执行。
示例 4 (针对106轮Grain128a的攻击的验证)。 该立方体C{1,2,3,…,9}生成的超多项式仅涉及七个秘密变量(K46、K53、 K85、 K119、 K122、 K126与 K127), 该结果由算法1得出。在我们的实验中,所有超多项式 pv(x)的汉明重量仅为 4。具体而言,在满足 IV76= 0的任意iv下, pv(x)仅当涉及的密钥变量表示为
(K46, K53, K85, K119, K122, K126, K127)=(∗, 1, 0, 1, 1, 1, 1) or (∗, 0, 1, 1, 1, 1, 1),
其中 ∗为任意比特。此外,在满足IV76= 1的任意iv下,x( pv)仅在涉及的密钥变量 表示为
(K46, K53, K85, K119, K122, K126, K127)=(∗, 1, 0, 1, 0, 1, 1) or (∗, 0, 1, 1, 0, 1, 1).
即,超多项式表示为
pv(x)=(x53 ⊕ x85)· x119 ·(x122 ⊕ v76)· x126 · x127.
该超多项式与x46无关。此外,它是不平衡的,且六个相关输入比特对应的 pv (x)的汉明重量为2。因此,秘密变量中恢复的信息位表示为
∣ ∣ ∣ ∣ log2( 2 × 2 26+(62 × 62 26) 26 )∣ ≈ 0.09.
通过翻转位IV76可以恢复双倍信息量,但恢复的信息量仍然小于1。
理论结果。 在使用小立方体的实验中,我们无法找到满足假设1的超多项式。另一方面,假设2成立。因此,我们可以预期理论上恢复的超多项式也满足假设2,并且它会泄露至少少量关于秘密变量的信息,该信息量小于1比特。此外,通过收集这些超多项式,我们可以预期能够恢复秘密变量中的多位信息。
表4. 对Grain128a的理论立方攻击总结。本表中的时间复杂度表示恢复超多项式所需的时间复杂度。
| 轮数 | |I| | 涉及的密钥变量 J | 时间复杂度 |
|---|---|---|---|
| 182 | 88 | 36, 40, 51, 52, 53, 54, 55, 56, 61, 62, 69, 79, 81, 82, 121, 122, 126, 127 | 2 88+18 = 2 106 |
| 183 | 92 | 48, 49, 50, 51, 52, 54, 55, 61, 63, 83, 84, 90, 93, 95, 120, 128 | 2 92+16 = 2 108 |
|I| a以下索引集 I= { 1,…, 40, 42, 44,…, 51, 53,…, 87, 89, 91, 93, 95 }被用作立方体。 b以下索引集 I= { 1,…, 51, 53,…, 91, 93, 95 }被用作立方体。
在单密钥环境下,所有结果至少改进了当前最优的密钥恢复攻击。在超多项式恢复的时间复杂度小于 2127,的条件下,我们能够攻击的最大初始化轮数为 183轮。与此前最优的区分攻击相比,更新了 183 −177= 6轮次,并且还支持一定程度的密钥恢复。
5.3 在ACORN上的应用
规格说明。 ACORN是一种认证加密算法,也是CAESAR竞赛的第三轮候选者之一。其结构基于非线性反馈移位寄存器,内部状态由293比特状态(S0, S1,…, S292)表示。更新函数中包含两个组件函数,即 ks= KSG128(S)和 f= FBK128(S),每个函数分别定义为
ks= S12 ⊕ S154 ⊕ maj(S235, S61, S193)⊕ ch(S230, S111, S66),
f= S0 ⊕ S˜107 ⊕ maj(S244, S23, S160)⊕(ca ∧ S196)⊕(cb ∧ ks),
其中 ks 用作密钥流,且 maj 与 ch 被定义为
maj(x, y, z)=(x ∧ y)⊕(x ∧ z)⊕(y ∧ z),
ch(x, y, z)=(x ∧ y)⊕((x ⊕ 1)∧ z).
然后,更新函数如下所示。
S289 ← S289 ⊕ S235 ⊕ S230
S230 ← S230 ⊕ S196 ⊕ S193
S193 ← S193 ⊕ S160 ⊕ S154
S154 ← S154 ⊕ S111 ⊕ S107
S107 ← S107 ⊕ S66 ⊕ S61
S61 ← S61 ⊕ S23 ⊕ S0
ks= KSG128(S)
f= F BK128(S, ca, cb)
(S0, S1,..., S291, S292) ←(S1, s2,..., S292, f ⊕ m)
293比特状态首先被初始化为0。其次,通过 m将128比特密钥依次加载到非线性反馈移位寄存器中。第三,通过 m将128比特初始化向量依次加载到非线性反馈移位寄存器中。第四,通过 m将128比特密钥重复加载十二次到非线性反馈移位寄存器中。常数位 ca与 cb在前1792轮始终为1。关联数据总是在密钥流输出之前加载,但本文不关心此过程,因为我们能够攻击的轮次少于1792轮。
混合整数线性规划模型。 ACORNEval在算法4中生成混合整数线性规划模型 M作为算法1的输入,该模型 M可用于评估初始化轮数减少至 R的 ACORN的所有划分轨迹。 xorFB为带异或的反馈函数生成混合整数线性规划变量和约束。ksg128与 fbk128分别为 KSG128与 FBK128生成混合整数线性规划变量和约束。
如果 KSG128和 FBK128的输入中没有常量比特,则ksg128和fbk128两个函数的划分性质传播受到限制。例如,当在条件 y= z= 0下计算 maj(x, y, z)时,该函数表示为
maj(x, 0, 0)= 0,
并且 x的划分性质永远不会传播到 maj的输出。这种传播限制仅发生在前几轮,因为状态S被初始化为0。为了控制此行为,在ksg128与fbk128中引入了当前轮数作为输入。注意,输入划分性质带来的约束由算法1执行。
实验验证。 我们实现了ACORN上划分性质传播的混合整数线性规划模型 M ,并通过使用算法1评估了涉及的密钥变量。我们搜索了使得 |I| + |J|实际可行的小立方体,以及以下小立方体
C{1,2,3,4,5,8,20,125,126,127,128}
用于验证我们的攻击和实现。
例5(对517轮ACORN攻击的验证)。 该立方体C{1,2,3,4,5,8,20,125,126,127,128}生成的超多项式仅涉及九个秘密变量,即(K6、 K8、 K10、 K11、 K12、 K15、 K16、 K45与 K49),该结果来自算法1。我们尝试了100个随机选择的iv常量部分。结果表明,所有超多项式 pv(x) 均为平衡,且独立于iv常量部分的值。具体而言, pv(x) 对应于相关秘密变量之和。也就是说,该超多项式可表示为
pv(x)= x6 ⊕ x8 ⊕ x10 ⊕ x11 ⊕ x12 ⊕ x15 ⊕ x16 ⊕ x45 ⊕ x49.
理论结果。 如实验验证所示,假设1在ACORN的小例子中成立。因此,我们可以预期理论上恢复的超多项式也满足假设1。
表5。ACORN上的理论立方攻击总结。本表中的时间复杂度表示恢复超多项式的时间复杂度。
| 轮数 | |I| | 涉及的密钥变量 J | 时间复杂度 |
|---|---|---|---|
| 647 | 35 | 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 40, 45, 49, 52, 55, 57, 60, 61, 62, 65, 66, 94, 99 | 235+43= 278 |
| 649 | 35 |
1, 2,…,39, 41,…,49, 52,…,69,
78, 86, 96, 97, 98, 100, 101, 102 | 235+74= 2109 |
| 704 | 64 | 1,…,12, 14,…21, 23,…,38, 40,…44, 48, 49, 50, 54, 58, 60, 63, 64, 65, 68, 69, 71, 74, 75, 97, 102, 108 | 264+58= 2122 |
a以下索引集合 I={1, 2,…, 16, 22, 29, 31, 113, 114,…, 128} 被用作立方体。b以下索引集合 I={1, 2,…, 32, 97, 98,…, 128} 被用作立方体。
503轮,所有结果至少改进了当前最好的密钥恢复攻击。据我们搜索的各种立方体,能够攻击的最多初始化轮数为704轮,其中立方体大小为64,涉及的密钥变量数量为58。与之前的最佳密钥恢复攻击相比,更新了 704 −503= 201轮次。
6 讨论
6.1 假设的正确性1与 2
两个假设是否成立取决于所分析密码的结构。在本文展示的三个应用中,我们通过使用小立方体实际评估离线阶段,能够轻松找到 Trivium和ACORN的平衡超多项式。因此,我们可以预期,对于这两种密码,在理论恢复的超多项式中假设1成立。另一方面,我们未能为Grain128a找到平衡超多项式。这意味着在Grain128a的理论恢复的超多项式中,假设1不成立。然而,由于我们能够轻松找到非常数超多项式,因此可以预期假设2成立。
需要注意的是,假设1是为了估计恢复完整密钥的时间复杂度而引入的,即使仅满足假设2,秘密变量的部分信息也会泄露给攻击者。此外,即使两个假设都不成立,所恢复的超多项式仍可用于区分攻击。因此,如果超多项式恢复比暴力破解攻击更高效,则会立即带来对称密钥密码系统的某些脆弱性。因此,本文所讨论的超多项式恢复的时间复杂度非常重要。
传统立方攻击也具有类似的假设,因为它们通过实验验证超多项式是否为线性、二次或非线性。例如,在[11],中,作者判断如果超多项式至少通过100次线性性测试,则认为其为线性。此外,Fouque 和 Vannet 还在[14],中引入了启发式的线性与二次性测试,其中若超多项式分别通过常数阶线性性测试和二次性测试,则被判定为线性和二次。当超多项式中存在高度偏倚的项时,这些常数阶测试可能会失败。例如,假设超多项式表示为 K1+ f(K2, K3, K4,…, K32),其中 f是不平衡的,则先前立方攻击中使用的测试可能会错误地将超多项式判断为 K1。也就是说,传统立方攻击同样假设每个涉及的密钥变量对应的超多项式是平衡的,如果该假设不成立,则无法恢复秘密变量。
6.2 仅从一个立方体恢复多个比特
通过更改初始向量的常量部分中的值,有可能从给定的立方体中恢复多个比特。实际上,例子3通过使用v= 0x03CC37748E34C601ADF5或v= 0 x78126459CB2384E6CCCE以及v= 0x644BD671BE0C9241481A,恢复了涉及的
1672

被折叠的 条评论
为什么被折叠?



