量子相关密钥攻击迭代EM密码

关于迭代Even‐Mansour密码的量子相关密钥攻击

摘要

量子计算机对密码学的影响变得越来越重要,这不仅涉及公钥密码学,也涉及对称密钥密码学。例如,在2012年ISITA上,桑形和森井展示了攻击者利用量子计算机通过应用西蒙算法可在多项式时间内恢复Even‐Mansour构造的密钥。此外,在2016年CRYPTO上,卡普兰等人表明,西蒙算法还可用于对消息认证码(MACs)实施伪造攻击,并能以指数级速度加速滑动攻击。本文提出了一种用于寻找在常数加法下具有周期性的函数的周期的工具,并表明量子攻击者可以利用该工具在多项式时间内执行相关密钥攻击。我们的量子相关密钥攻击是对卡普兰等人提出的针对在量子电路上实现的迭代Even‐Mansour密码的量子滑动攻击的扩展。尽管密钥之间的关系较强,我们的算法仍可在多项式时间内恢复两轮迭代Even‐Mansour密码的所有密钥。

1 引言

诸如RSA等广泛使用的公钥密码方案在实用的量子计算机出现后将变得不安全 [14]。自从这一威胁首次被报道以来,许多研究人员一直在研究后量子公钥密码学。此外,NIST宣布已启动标准化后量子公钥密码算法的流程 [11]。至于对称密钥密码学,量子计算机也将威胁那些在经典环境下被证明或预期安全的现有方案的安全性。例如,格罗弗算法 [3]可将针对一个 m比特密钥分组密码的穷举密钥搜索的时间复杂度从 O(2^m)降低到 O(2^{m/2}),但其复杂度仍为指数级,且该算法对对称密钥密码学的影响似乎远小于秀尔算法对公钥密码学的影响。此外,最近已有报道称存在多项式时间量子算法能够攻破不仅限于公钥密码学,还包括对称密钥密码学的密码方案 [5,7,8]。研究量子计算机将在多大程度上影响当前的对称密钥方案,以及如何构建即使在后量子时代也安全的方案,正变得越来越重要。

在经典环境下,攻击者需要指数时间才能通过选择明文攻击将三轮Feistel结构与随机置换区分开来明文攻击 [9,16],并通过选择密文攻击恢复(迭代)Even‐Mansour密码的密钥 [1,2]。Kuwakado和Morii表明,拥有量子计算机的攻击者可以通过应用西蒙算法在多项式时间内攻破这些方案 [7,8]通过应用西蒙算法 [15]。在2016年CRYPTO会议上,卡普兰等人表明,西蒙算法还可应用于对消息认证码的伪造攻击,以及针对轮密钥完全相同的迭代Even‐Mansour密码的滑动攻击 [5]。这些攻击假设攻击者可以以输入的任意量子叠加态查询加密预言机,这种模型被称为 Q2模型[6]。表1总结了在Q2模型下对 n比特分组密码的攻击。

表1. Q2模型下对 n‐bit分组密码的攻击

目标轮数 条件 Goal 算法 Time 来源
Feistel 3 D PF O(n)
EM 1 KR PF O(n)
iEM any 相同子密钥KR 部分KR置换函 PF + const O(n)
iEM any 相关密钥 O(n)
iEM 2 相关密钥 KR 置换函数+ const O(n) (2^14 for n= 128)

EM:Even‐Mansour,iEM:迭代EM,KR:密钥恢复,D:区分,PF:使用西蒙算法进行周期查找,PF+const:对函数至多加上常数的周期查找扩展(见第3节)

在看到桑形和森井对Even‐Mansour密码实施的密钥恢复攻击结果后,人们自然会提出一个问题:是否存在一种量子算法也能恢复迭代 Even‐Mansour密码的密钥?迭代Even‐Mansour密码,即密钥交替密码,是 Even‐Mansour密码的一种自然扩展,可被视为高级加密标准[10]的模型。然而,桑形和森井的技术无法直接应用于迭代Even‐Mansour密码,因为西蒙算法不能直接用于此类密码,他们在论文中将此问题称为一个开放性问题[8]。卡普兰等人的量子滑动攻击可以被视为对该开放性问题的部分解答。他们仅针对所有轮密钥都相同的迭代Even‐Mansour密码进行了研究,通过利用滑动特性构造了周期函数,并成功应用了西蒙算法。

在本文中,我们考虑轮密钥相互独立的迭代Even‐Mansour密码。首先,我们引入一种扩展Simon原始算法的技术工具,并将其用于我们的攻击。该工具的优点在于可以找到在常数加法下具有周期性的函数的周期。其次,我们证明存在一个多项式时间算法,能够在访问相关密钥量子加密预言机的情况下,恢复迭代 Even‐Mansour密码的部分密钥。我们的相关密钥设置是Kaplan等人提出的量子滑动攻击设置的扩展。特别是,对于两轮迭代Even‐Mansour密码,我们的算法可以通过两个相关密钥预言机恢复完整密钥,这为上述开放性问题提供了另一个部分解答。

2 预备知识

本节描述了本文通篇考虑的符号表示和攻击模型。

2.1 符号表示

对于一个比特串 x,令 x¯ 为 x的按位补码。我们将 {0, 1}^n 视为在 Z/2Z 上的 n 维向量空间。对于 x、 y ∈{0, 1}^n,令 x· y 表示这两个向量的形式内积。用 Span(v1, v2, . . . , vl) 表示在 Z/2Z 上由向量 v1, v2, . . . , vl 张成的向量空间。对于 φ: {0, 1}^n →{0, 1}^n 和 u ∈{0, 1}^n,定义 (Δuφ)(x) 为 φ(x)⊕φ(x⊕u),称 (Δuφ)(x) 为 φ 的微分。定义 ε(φ; w1, w2, . . . , wj) := max t′∈Span(w1,w2,…,wj) Prx[φ(x ⊕ t) = φ(x)],,其中 w1, w2, . . . , wj ∈{0, 1}^n。

2.2 攻击模型

传统上,针对选择明文攻击的安全性是在攻击者可以使用加密预言机的模型中考虑的。本文考虑的是攻击者可以使用量子加密预言机的模型。该模型由桑形和森井[7,8],提出,随后被卡普兰等人[5]采用。在卡普兰等人的关于量子差分与线性攻击的论文中,将此模型称为Q2模型[6]。

设 x, y属于 {0, 1}^n,且 b表示一个比特。我们假设攻击者可以使用普通的量子门,例如哈达玛门 H⊗n |x〉 → 1 √2 n∑y −1 x·y|y〉 NOT |x〉 → |x¯〉 CNOT : ( ) ,非门 : ,控制非门 :|x〉|y〉 → |x〉|x ⊕ y〉,以及双控非门 CCNOT: |b〉|x〉|y〉 → |b〉|x〉|y ⊕ bx〉,其中 bx是标量 b ∈{0, 1}与向量 x ∈{0, 1} n的乘积。控制非门对应于经典电路中的异或门。双控非门是改进的控制非门,它多接收一个输入 b,并根据 b进行分支处理 (图1)。

对于函数 φ,我们称量子预言机 |x〉|y〉 → |x〉|y ⊕ φ(x)〉为 φ的量子预言机。我们假设攻击者可以将该门集成到他的电路中(图2)。

如果 P是一个公开的随机置换,我们假设攻击者可以集成 P和 P −1、 P的量子门: |x〉|y〉 → |x〉|y ⊕ P(x)〉并且

P−1: |x〉|y〉 → |x〉|y ⊕ P−1(x)〉,以及受控 P门 CP: |b〉|x〉|y〉 → |b〉|x〉|y ⊕ bP(x)〉,引入他的量子电路中(图 3)。

我们注意到,攻击者可以构造一个量子电路来计算受控的 φ, Cφ: |b〉|x〉|y〉 → |b〉|x〉|y ⊕ bφ(x)〉(图4),以及 Δu φ,即 φ 的差分,前提是允许访问 φ 的量子预言机(图5)。

下文中,我们将运行于多项式时间的量子电路称为高效量子电路。类似地,将多项式时间量子算法称为高效算法。

3 西蒙算法及其扩展

在本节中,我们首先概述用于周期函数的西蒙算法及其由卡普兰等人提出的扩展。[5]其次,我们进一步扩展该算法,并引入一种工具,用于解决寻找在常数加法意义下具有周期性的函数周期的问题。为了解决该问题,我们使用函数的差分并构造一个双周期函数。

西蒙开发了一种量子算法,能够高效地解决以下问题 [15]。

问题3.1. 假设存在一个函数 φ: {0, 1}^n →{0, 1}^n 满足 φ(x ⊕ s) = φ(x) 对于某个 s ∈{0, 1}^n。那么,求 s。

西蒙算法SSub重复一个子程序SSub操作一个集成了 φ的量子预言机的量子电路,测量最终的量子态,并输出一个向量 u ∈{0, 1}^n(图6)。输出 u的分布与集合{u ∈{0, 1}^n|u · s= 0}上的均匀分布相同。通过重复SSubO(n) 次,我们可以以高概率找到 s的正交空间,然后可以求出 s。更多细节请参见原始论文[15]。

使用西蒙算法对对称密钥方案进行的现有量子攻击是通过以下步骤执行的:
1. 利用目标方案的内部结构构造一个周期函数 φ,其周期为 s,其中 s 包含秘密信息。有时 s 本身就是该方案的密钥。
2. 对 φ 应用西蒙算法,并恢复秘密信息 s。

在西蒙的原始论文中,附加条件
φ(x)= φ(y) ⇒ x= y or y= x ⊕ s (1)
被假设。这一条件似乎是人为设定的,且由对称密钥方案构造的函数很少满足此条件。卡普兰等人已克服了这一问题。他们证明,即使 φ不满足该条件,只要 ε(φ; s),即表示 φ偏离条件1的程度,在足够小的情况下,我们仍可高效地计算 s,通过增加SSub的重复次数实现[5]。

命题 3.1(西蒙[15],卡普兰等人[5])。 假设存在一个正数 p0< 1,且 ε(φ, s)≤ p0成立。则通过重复 SSub cn次,我们可以以至少 1 −(2( 1+p0 2 ) c)^n的概率找到 s。

在上述论证中,我们仅考虑了定义域大小等于陪域大小的函数,但上述论证同样适用于任意定义域和陪域大小的函数。

我们的工具

在本文中,我们试图比卡普兰等人更广泛地应用西蒙算法。考虑以下关于周期函数在常数加法意义下的问题。

问题 3.2。 假设存在一个函数 φ: {0, 1}^n →{0, 1}^n 和向量 s, γ ∈{0, 1}^n,满足 φ(x⊕ s) = φ(x) ⊕γ 对于 ∀x ∈{0, 1}^n 成立。然后,求 s 和 γ。

我们关注 φ 的差分来解决此问题。任意选取 u ∈{0, 1}^n。然后对于 ∀w ∈ Span(s, u) 和 ∀x ∈{0, 1}^n,
(Δuφ)(x ⊕ w)=(Δuφ)(x)
成立。换句话说,Δuφ 是一个具有双周期 {s, u} 的双周期函数。更一般地,考虑一个函数 ψ: {0, 1}^n →{0, 1}^n,其具有双周期 s, u ∈{0, 1}^n,即对于 ∀w ∈ Span(s, u) 和∀x ∈{0, 1}^n, ψ(x⊕w) = ψ(x) 成立。当我们对 ψ 执行一次 SSub 操作时,SSub 输出一个与 Span(s, u) 正交的向量。我们可以类似命题 3.1 一样证明以下命题。

命题 3.2。 设 ψ:{0, 1}^n →{0, 1}^n是一个具有双周期 s, u ∈{0, 1}^n的函数。假设存在一个正数 p0< 1,且 ε(ψ; s, u) ≤ p0成立。那么通过执行SSub cn次操作,我们可以以至少 1 −(2( 1+p0 2)c)^n的概率得到 s和 u。

将上述命题应用于 Δuφ,我们得到以下命题,可用于解决问题2。

命题3.3。 假设存在 u ∈{0, 1}^n和一个正数p0< 1,且 ε(Δuφ; s, u) ≤ p0成立。那么通过执行SSub cn次操作,我们可以以至少 1 −(2( 1+ p 0 2) c )^n的概率获得 s和 γ。

该命题是我们的主要技术工具,之后我们将利用它进行相关密钥攻击。

4 先前工作:针对Even‐Mansour方案的量子攻击

在本节中,我们概述两种量子攻击:一种是桑形和森井提出的针对 Even‐Mansour密码的密钥恢复攻击[8],另一种是卡普兰等人提出的针对所有轮密钥相同的迭代Even‐Mansour密码的量子滑动攻击[5]。

在最近针对量子计算机的攻击中,桑形和森井 [7,8], 以及卡普兰等人 [5], 提出的攻击允许攻击者以输入的任意量子叠加形式查询加密预言机。正如卡普兰等人 [5], 所指出的,这些攻击首先通过利用密码方案的内部结构构造一个包含秘密信息的周期性函数,然后应用西蒙算法 [15] 高效地计算该周期。下文中, P 表示在 {0, 1}^n 上的一个公开的随机置换。

4.1 针对Even‐Mansour密码的密钥恢复攻击

Even‐Mansour密码EP k1,k2是指定义为
EP k1,k2(x)= P(x ⊕ k1)⊕ k2, 其中(k1, k2)是秘密密钥。令D P k1,k2表示解密操作。Even和Mansour表明,当允许攻击者访问预言机 P, P−1, E P k1,k2,和 DP k1,k2[2]时,攻击者必须至少查询预言机 2^{n/2}次才能恢复密钥。相比之下,桑形和森井表明,当允许访问量子预言机EP k1,k2[8]时,攻击者可以在多项式时间内恢复Even‐Mansour密码的密钥。该攻击的概览如下。

定义 f: {0, 1}^n →{0, 1}^n为 f( x = P k 2 x x x x⊕k1 ⊕P x ⊕k2 f k1 k1 ) = EP k 1 ,( ) ⊕ P( )。则 f( ) ( ) ( ) 成立且具有周期 。因此,我们可以使用西蒙算法高效地找到 。此外,由于 EP k 1 ,k 2( x) ⊕ P(x ⊕ k1) = P(x ⊕ k1) ⊕ k2 ⊕ P(x ⊕ k1) = k2成立,我们可以以可忽略的成本计算 k2。

4.2 量子滑动攻击

设Ek是由函数 Fk迭代组合而成的密码,其中 k为密钥。在经典环境中,滑动攻击是一种针对具有迭代结构(例如 Ek)的密码的攻击方法,其时间复杂度为指数级。令 Pk(x)表示 P(x ⊕ k)。卡普兰等人指出,拥有量子计算机的攻击者可以通过应用滑动攻击和西蒙算法[5],在多项式时间内恢复轮密钥完全相同的迭代Even‐Mansour密码的密钥,即 EP k(x) =(Pk ◦ Pk ◦ ··· ◦ Pk)(x) ⊕ k。他们假设攻击者可以访问量子预言机 EP k 。定义 f:{0, 1}^{n+1} →{0, 1}^n为
f(b‖x)={P(E P k(x))⊕ x(b= 0),

其中 b ∈{0, 1}, x ∈{0, 1}^n。函数 f可以在高效量子电路 [5] 上实现。对于任意的 x ∈{0, 1}^n,我们有
f(0‖x)= P(EP k(x))⊕ x
= P(EP k(x))⊕ k ⊕(x ⊕ k)
= EP k(P(x ⊕ k))⊕(x ⊕ k) = f(1‖(x ⊕ k))
= f((0‖x)⊕(1‖k)),
因此 f具有周期 1‖k。因此,我们可以使用西蒙算法恢复 k(图7).

备注4.1。 第4.1节中的论证实际上并不完整。严格来说,我们应该评估 ε(f; k1)并应用命题 3.1来计算 f的周期 k1。卡普兰等人在他们的论文 [5]中严格讨论了这些问题,并证明了对于没有任何二阶差分且概率大于 1/2的情况, ε(f; k1)< 1/2在 P下成立。类似地,他们也在第4.2节中对量子滑动攻击严格讨论了这些问题。

5 量子相关密钥攻击

设 Ek为一个对称密钥分组密码。假设攻击者可以访问(经典或量子)预言机Ek, Ek′,,其中 k和 k′是不同的密钥。相关密钥攻击是指攻击者不知道 k和 k′本身,但知道 k和 k′满足的某种关系的攻击。记 P为一个n比特的公开的随机置换。迭代Even‐Mansour EP(x; k1, k2,…, ki)定义为
EP (x; k1, k2,…, ki)=(Pk i − 1 ◦ ··· ◦ Pk2 ◦ Pk1)( x)⊕ ki,
其中k1, k2,…, ki ∈{0, 1}^n为密钥,且 Pk= P(x ⊕ k)。在下文中,我们假设两个密钥 k=(k1, k2,…, ki)与 k′=(k′ 1 , k′ 2 ,…, k′ i)满足关系 k′ l = kl+1(1 ≤ l ≤ i − 1)。对于 i= 2,迭代Even‐Mansour密码对应于原始 Even‐Mansour密码,因此我们可以执行上述多项式时间攻击,故在下文中假设 i ≥ 3。我们还假设攻击者可以查询输入的叠加态以访问量子预言机。

5.1 部分密钥恢复

本节表明,如果允许攻击者访问量子预言机EP(x; k1, k2, . . . , ki)和 EP(x; k2, k3, . . . , ki+1),则拥有量子计算机的攻击者可以恢复部分密钥 k1和 ki+1。我们将 EP(x; k1, k2, . . . , ki)和 EP(x; k2, k3, . . . , ki+1)分别简写为 E1(x)和 E2(x)(图8)。

在描述本节的主要声明之前,我们提及E1和 E2的安全性。为了证明上述声明,我们利用 E1、 E2、 P构造一个函数 g,该函数在常数加法下具有周期性,并对Δug 应用命题3.3。这里,u是{0, 1}^{n+1}中的一个固定向量。为了应用命题3.3,需要对ε(Δug; s, u)进行界定,其中 s是 g的周期。为了界定 ε(Δug; s, u),我们假设 E1和 E2之间不存在以高概率成立的特定线性依赖,即满足以下条件:
不存在满足的 t0, u0 ∈{0, 1}^n{0^n, k1} Prx[Δt0(Δu0(P ◦ E1))(x)= 0] ≥ 1/4, or Prx[Δt0(Δu0(E2 ◦ P))(x)= 0] ≥ 1/4, or
Prx[Δu0(P ◦ E1)(x)=Δu0(E2 ◦ P)(x ⊕ t0)] ≥ 1/4.
E1和 E2实际上是不安全的,如果上述线性条件之一成立,无论 无论量子计算机是否存在。此外,由于置换 P是随机置换,该条件仅以可忽略的概率被满足。

本节的主要声明如下。

声明。 设 P是一个 n比特的公开的随机置换。如果允许攻击者访问量子预言机EP(x; k1, k2,…, ki)和EP(x; k2, k3,…, ki+1),则该攻击者可以高效地恢复k1和 ki+1。

定义 g:{0, 1}^{n+1} →{0, 1}^n为
g(b‖x)={P(E1(x))⊕ x(b= 0), E2(P(x))⊕ x(b= 1).

在证明上述声明之前,我们先给出以下引理。

引理5.1. g是一个周期函数,其周期为 1‖k1,最多相差一个常数加法。也就是说, 对于 ∀b ∈{0, 1}, ∀x ∈{0, 1}^n,以下方程成立:
g((b‖x)⊕(1‖k1))= g(b‖x)⊕ k1 ⊕ ki+1.

证明. 对于 x ∈{0, 1}^n,我们有
g(0‖x)= P(EP(x; k1, k2,…, ki))⊕ x
= EP(P(x ⊕ k1); k2, k3,…, ki+1)⊕ ki+1 ⊕ x
= EP(P(x ⊕ k1); k2, k3,…, ki+1)
⊕(x ⊕ k1)⊕(k1 ⊕ ki+1)
= g(1‖(x ⊕ k1))⊕(k1 ⊕ ki+1),
这意味着该引理的声明。

接下来,我们通过反证法证明该声明。任意取 u0 ∈{0, 1}^n{0^n},并令 u为0‖u0。我们用反证法证明 ε(Δug; 1‖k1, u) < 1/2成立。如果我们假设ε(Δug; 1‖k1, u) ≥ 1/2成立,则存在 b0 ∈{0, 1}, t0 ∈{0, 1}^n满足 b0‖t0 ∈{0, 1}^{n+1}\ Span((1‖k1) u)且Prb,x[Δug((b‖x)⊕(b0‖t0))=Δug(b‖x)] ≥ 1/2成立。因此,我们有
Prx[Δug((0‖x)⊕(b0‖t0))=Δug(0‖x)]
+ Prx[Δug((1‖x)⊕(b0‖t0))=Δug(1‖x)] ≥ 1/2.
如果 b0= 0,这意味着
Prx[Δt0(Δu0(P ◦ E1))(x)= 0] ≥ 1/4, or Prx[Δt0(Δu0(E2 ◦ P))(x)= 0] ≥ 1/4
h的阈值,在我们的假设中不会出现。此外,如果 b0= 1我们有 e Prx[Δu0(E2 ◦ P)(x ⊕ t0)=Δu0(P ◦ E1)(x)]
+ Prx[Δu0(P ◦ E1)(x ⊕ t0)=Δu0(E2 ◦ P)(x)] ≥ 1/2,
这意味着
Prx[Δu0(P ◦ E1)(x)=Δu0(E2 ◦ P)(x ⊕ t0)] ≥ 1/4,
但这在我们的假设中不会发生。因此,我们有 ε(Δug; 1‖k1, u)< 1/2。此外,g可以在图9的量子电路中实现。根据上述论证和引理5.1,我们可以将命题3.3应用于 g。因此,我们可以高效地恢复 k1和 ki+1,且该声明成立。

用于恢复子密钥 k1, ki+1 的算法 AlgPartial 概述如下:

关于迭代Even‐Mansour密码的量子相关密钥攻击

算法 AlgPartial

  1. 任意选择 u0 ∈{0, 1}^n{0^n},并令 u为 0‖u0。
  2. 构造对 Δug执行SSub操作的电路。
  3. 将 L设为空列表。
  4. 当 |L| < n −1时重复步骤5:
  5. 执行一次 SSub操作,并获得{0, 1}^{n+1}中的向量 v。如果 |L| = 0或 v与 L中的所有向量正交,则将 v添加到 L中。
  6. 使用经典计算机找出由与 L中所有元素正交的向量所张成的向量空间 V ⊂{0, 1}^{n+1}。
  7. 从 V中找出 1‖k1,并计算 ki+1, 输出 k1, ki+1。

在上述算法中,由于 V= Span(u, 1‖k1),我们可以很容易地从 V 找到 1‖k1。此外,如果我们找到了 k1,我们也可以很容易地计算 ki+1 ,因为根据引理5.1,对于 ∀b ∈{0, 1}, ∀x ∈{0, 1}^n 有 ki+1=g((b‖x) ⊕(1‖k1)) ⊕ g(b‖x) ⊕ k1。该算法在多项式时间内运行,并以高概率输出正确的 k1, ki+1,由命题3.3 可知。

5.2 两轮Even‐Mansour密码的完整密钥恢复

本节表明,攻击者可以恢复两轮Even‐Mansour密码的所有密钥。

声明. 设 P是一个 n比特的公开的随机置换。假设 P不存在概率大于 1/2的二阶差分,且假设与第5.1节中声明所假设的条件相同。那么,如果允许访问量子预言机EP(x; k2, k3, k4),攻击者可以在多项式时间内恢复 k1, k2, k3, k4。

备注5.1. 其中 P不存在概率大于 1/2的二阶差分这一条件,是应用量子密钥恢复攻击对抗Even‐Mansour密码所必需的(见备注4.1)。

首先,我们可以通过应用算法AlgPartial在多项式时间内恢复k1和 k4。然后,我们可以构建一个高效量子电路,在其上EP(x; k2, k3) 被实现,因为我们有 EP(x; k2, k3)= EP(P−1(x)⊕k1; k1,k2, k3)。因此,我们可以应用第 4.1节中的攻击并得到 k2和 k3。

用于恢复完整密钥的算法 AlgFull总结如下:

算法 AlgFull

  1. 调用 AlgPartial 并获得 k1和 k4。
  2. 构造一个对 EP(x; k2, k3) ⊕ P(x) 执行 SSub 操作的电路(图11)。
  3. 将 L设为空列表。
  4. 当 |L| < n −1时重复步骤5:
  5. 执行一次 SSub 操作,并在 {0, 1}^n中获得一个向量 v 。如果 |L| = 0或 v与 L中的所有向量正交,则将 v添加到 L中。
  6. 使用经典计算机找出由与 L中所有元素正交的向量所张成的向量空间 V ⊂{0, 1}^n。
  7. 从 V中求出 k2,计算 k3,并输出 k1, k2, k3, k4。

在上述算法中,由于 V={0, k2},我们可以从 V轻松找到 k2 。此外,在找到 k2后,我们可以轻松计算 k3 ,因为我们有 k3=EP(x; k2, k3) ⊕ P(x ⊕ k2) 对于 ∀x ∈{0, 1}^n。该算法在多项式时间内运行,并以高概率输出正确的 k1, k2, k3, k4。

备注5.2。 注意,如果我们希望像处理 r= 2那样,仅使用两个预言机 EP(x; k1, k2, . . . , kr+1)、 EP(x; k2, k3, . . . , kr+2) 高效地恢复 r‐轮迭代 Even‐Mansour密码的完整密钥,那么我们需要一个高效的算法,该算法能够仅利用一个预言机 EP(x; k2, k3, . . . , kr+1) 来恢复(r−1)‐轮迭代Even‐Mansour密码的完整密钥。由于目前尚不存在这样的算法,因此我们不能声明我们的算法也可用于恢复 r ≥ 3的完整密钥。另一方面,如果我们被允许访问 r个量子预言机,例如 E1:= EP(x; k1, k2, . . . , kr+1)、 E2:= EP(x; k2, k3, . . . , kr+2)⋯⋯Er:=EP(x; kr, kr+1, . . . , k2r) 及其逆操作,则我们可以按如下方式高效地恢复完整密钥 k1, k2, . . . , k2r。对于 1 ≤ c ≤ r − 1,使用两个预言机 Ec和 Ec+1运行AlgPartial以恢复 kc, kc+r+1。然后我们获得部分密钥k1, . . . , kr−1, kr+2, . . . , kr,并可以模拟一个量子预言机 EP(x; kr, kr+1)。因此,我们还可以通过应用第4.1节中的算法来恢复 kr, kr+1。最终,我们高效地恢复了完整密钥 k1, k2, . . . , k2r。

5.3 AlgFull的时间复杂度估计

在本节中,我们在合理假设下具体估计了AlgFull的时间复杂度。特别是,我们证明了拥有量子计算机的攻击者可以在时间复杂度 2^14且概率高于99.9%的情况下,恢复128位两轮Even‐Mansour密码的所有密钥 k1, k2, k3, k4 。

首先,我们描述对量子操作时间复杂度的假设。我们将一个 n比特操作或一个(n+1)比特操作视为一个基本操作。也就是说,我们认为以下量子门消耗一个单位时间:
– (n+ 1)比特哈达玛变换 H⊗n+1
– 两个 n比特字符串的异或操作
– 加密预言机 E: |x〉|y〉 → |x〉|y ⊕ E(x)〉因为 E本质上执行的是 n比特操作,尽管这是一个 2n比特量子门
– P和 CP,其中 CP是受控 P门

我们计算在整个算法执行过程中所进行的单元操作的数量。我们还假设, 一个单元操作所消耗的时间小于或等于按照经典约定执行一次加密所需的时间。最后,我们通过量子算法所实现的量子电路中的单元操作数量乘以执行一次加密所需的时间,来估计该量子算法的时间复杂度的上界。我们忽略在量子电路上执行1比特操作的成本,因为这些成本与执行一次加密所需的成本相比可以忽略不计。此外,在经典计算机中求解线性方程所需的时间少于执行几次加密所需的时间,因为线性方程只需求解一到两次。设 n= 128,下面我们考虑一个 128位2轮迭代Even‐Mansour密码。

首先,我们估计AlgPartial的时间复杂度,该算法输出 k 1和 k 4。AlgPartial对函数 Δ ug反复执行SSub操作,即运行图6中的电路,其中 φ被替换为 Δ ug并执行测量反复进行。图9显示,在计算 g一次时执行了13次操作。这里我们注意到,在计算 CE1或 CE2时执行了3次操作(见图4)。因此,从图5可以看出,在计算 Δug时执行了44次操作。最终,在子程序SSub期间执行了46次单元操作(见 图6)。AlgPartial重复执行SSub,直到 L中的元素个数 |L|增加到127。根据命题3.3,重复执行SSub 129 · c次后, |L| 达到127的概率(即AlgPartial成功恢复 k1和 k4的概率)至少为 1 −(2(1+p0 2)c)^129。根据第4.1节中的论述, p0 可设为 1/2。若将 c代入3,则(2(1+p0 2)c)^129=(2(1+1/2 2)3)^129 ≤ 3.1 × 10−10成立。因此, |L|以超过99.9%的概率变为127,我们可以在重复执行SSub 3·129次后恢复 k1和 k4,通过AlgPartial执行的单元操作总数为 46 · 3 · 129 ≈ 2^14。

接下来,我们估计AlgFull的总时间复杂度。AlgFull首先运行 AlgPartial以获得 k1和 k4,其时间复杂度根据上述论证为 2^14。之后, AlgFull在函数 EP(x; k2,k3) ⊕ P(x)上重复执行子程序SSub,以获得 k2和 k3。图10和图11显示,在计算 E(x; k2, k3) ⊕ P(x)时执行了6次单元操作。因此,在子程序SSub中总共执行8次单元操作。与AlgPartial类似,执行3 · 128次 SSub操作将以超过99.9%的概率恢复 k2和 k3。最终,AlgFull的时间复杂度变为(46+8)·3·128 ≈ 2^14。因此,AlgFull以时间复杂度 2^14并以超过99.9%的概率恢复 k1、 k2、 k3和 k4。

注5.3。 下面我们对运行 AlgFull所需的量子比特进行说明。我们注意到,作用于SSub上的Δug和 E3的量子电路可分别使用(6n+ 2)‐量子比特和 3n‐量子比特实现,因此我们可以用(5n+2)‐量子比特来运行AlgFull。这是因为上述所示的量子电路会重置所有辅助量子比特,从而可以在每个量子电路中重复使用这些辅助量子比特。高效地重复使用辅助量子比特会略微增加时间复杂度,因为量子比特交换需要三个 CCNOT门(见图12),但增加的复杂度可以忽略不计。例如,在图9中, CE1和 CE2都需要额外的 n‐量子比特(见图4),但我们可将其复用,从而 g可用(4n+ 1)‐量子比特实现。特别地,当 n=128时, AlgFull可用770量子比特实现。

6 结论

本文表明,存在一种算法可以对迭代Even‐Mansour密码实施相关密钥攻击, 从而扩展了卡普兰等人的量子滑动攻击。特别地,我们证明该算法能够恢复两轮Even‐Mansour密码的全部密钥。例如,在合理假设下,针对128位二轮 Even‐Mansour密码的攻击可在时间复杂度为2^14且具有可忽略的内存复杂度的情况下成功。这可被视为对“是否存在能高效恢复迭代Even‐Mansour密码密钥的量子算法”这一开放性问题的部分解答。我们引入了一种扩展Simon原始算法的技术工具,并将其用于相关密钥攻击。该工具的优势在于能够找到在常数加法意义下具有周期性的函数的周期。未来的研究任务是寻找能够在更弱的相关密钥条件或单密钥场景下恢复迭代Even‐Mansour密码密钥的算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值