基于隐藏移位的量子安全对称密钥密码学
摘要
卡普兰等人最近的研究成果,基于桑影和森井的工作,表明许多经典情况下安全的对称密钥密码系统可以被 quantum chosen-plaintext attacks(qCPA)完全攻破。在这种攻击中,量子对手能够以叠加态查询密码功能。易受攻击的密码系统包括Even‐Mansour分组密码、三轮费斯妥网络、加密CBC‐MAC以及许多其他系统。
在本文中,我们研究了此类方案的简单代数改编,这些改编将(Z/2) n加法替换为在其他有限群(例如 Z/2 n)上的运算,并提供了证据表明这些改编是qCPA‐安全的。这些改编还保留了原始方案所具备的经典安全属性和基本结构特征。
我们通过将广受研究的 Hidden Shift problem的(量子)困难性作为一个密码学假设来确立安全性。我们注意到,该问题在此密码学背景下具有一系列吸引人的特性,包括随机自可约性、困难性放大,以及在许多感兴趣的情况下,从“搜索版本”到“判定版本”的归约。然后,在此假设下,我们确立了若干此类对称密钥构造的隐藏移位变体的qCPA‐安全性。
我们证明,偶‐曼苏尔分组密码的隐藏移位版本可生成量子安全伪随机函数,而加密CBC‐MAC的隐藏移位版本可生成抗碰撞哈希函数。最后,我们观察到,此类改编在更一般的情况下能够挫败基于西蒙算法的直接攻击,例如费斯妥网络和滑动攻击。
1 引言
因数分解和离散对数等在密码学中长期扮演重要角色的代数问题,其高效量子算法的发现[30],导致了在存在量子攻击的情况下对密码学的系统性重新评估。
此类攻击例如可以直接从公钥中恢复私钥
对于许多感兴趣的公钥密码系统而言。桑影和森井在2010年发表的一篇文章 [18]识别出一类针对某些通用构造的私钥密码系统的新型量子攻击。尽管这些攻击依赖于类似的量子算法工具(即用于解决隐藏子群问题的算法),但它们在其他多个方面存在定性差异。或许最显著的是,它们打破了在经典情况下信息论安全的归约1。另一方面,这些攻击需要一个强大的“量子CPA”设置,允许量子对手对相关密码系统进行叠加查询
这些量子选择明文攻击(qCPA)已被推广并扩展,适用于一大类经典对称密钥构造,包括费斯妥网络、Even‐Mansour密码、加密的CBC‐MAC、可调分组密码以及其他构造[14,18,19,29]。然而,所有这些新攻击的一个共同特征是应用了西蒙算法,以在群(Z/2) n中恢复“隐藏移位”。具体而言,这些攻击利用内部的模2加法运算来构造一个隐藏移位问题的实例——求解该隐藏移位问题即可破解相应的密码构造。作为一个说明性示例,考虑两个(独立的)均匀随机置换 P, Q:{0, 1}n →{0, 1}n以及群{0, 1}n中的一个均匀随机元素z。容易看出,任何经典算法都无法通过多项式次数的查询来区分函数(x, y) →(P(x) Q(y))与函数(x, y) →(P(x) P(y ⊕ z));这一观察直接启发了经典的 Even‐Mansour分组密码构造。另一方面,一个具有预言机访问权限的高效量子算法,若能访问函数(x, y) →(P(→) P(y ⊕ z)),则可应用西蒙算法高效地恢复“隐藏移位” z;这显然使得该算法能够区分上述两种情况。
尽管这些攻击对许多经典私钥构造构成了威胁,但它们依赖于群(Z/2) n上的 HiddenShift问题存在高效量子算法。相比之下, Hidden Shift上的问题在一般情况下已抵抗了量子算法研究社区持续20多年的关注。事实上,除了西蒙在(Z/2) n上关于隐藏移位的多项式时间算法外,以及推广到某些常指数[10],群的情形,还有库珀伯格在 2O(√log N)上求解隐藏移位的 Z/N[16]算法之外,目前已知的结果非常有限。这一进展的缺乏并非由于动机不足。实际上,众所周知,若能在 Hidden Shift上关于 Z/N设计出高效量子算法,则(通过来自Hidden Subgroup Problem在 DN上的著名归约)可导出针对重要公钥密码系统的高效量子攻击[26,27],,包括抗量子安全的主要候选方案以及互联网密码学中RSA的替代方案[3]。同样地,在对称群上设计高效算法也将导出图同构问题的多项式时间量子算法,这是该领域长期存在的挑战。
1对手被允许以多项式次数查询预言机,但在查询之间可以执行任意复杂的计算。
另一方面,(Z/2)n群结构对于典型对称密钥构造的安全性而言是相对次要的。例如,经典的Even‐Mansour构造通过规则Ek1,k2(m)定义了一个分组密码
Ek1,k2(m)= P(m⊕ k1)⊕ k2,
其中 P是一个公开随机置换,密钥(k1, k2)由从(Z/2)n中均匀选取的一对独立元素给出。然而,安全性证明对群结构没有任何特殊假设,因此若将 ⊕群操作替换为其他群操作(例如+模N或 F2n中的乘法)时,该安全性证明仍然适用。
这种状况表明,通过简单地调整构造中的基础群,有可能排除量子攻击。
此外,在量子环境下,(Z/2)n所表现出的明显独特性质表明,只需进行轻微的调整可能就已足够。如上所述,许多经典安全性证明不会受到这种替换的影响;我们的主要目标是增强对量子对手的安全性。我们的方法是将研究充分的隐藏移位问题直接归约到这些对称密钥密码系统的安全性上。因此,针对这些系统若存在高效的量子选择明文攻击,则将解决量子复杂性理论中长期存在的开放性问题。
1.1 贡献
隐藏移位作为密码学原语
我们提出 Hidden Shift问题的难解性作为建立密码方案量子安全性的基本假设。在该一般性问题中,我们给定某个有限群 G上的两个函数,并承诺其中一个函数是另一个函数的移位;我们的任务是确定该移位。我们的假设具有如下形式:
假设1( G-隐含偏移假设,非正式) 。设为由集合索引的有限群族。对于所有多项式时间量子算法,
E f[min s∈Gi Pr[Af,fs(i)= s]] ≤ negl(|i|),
其中fs(x)= f(sx),期望值取自函数f的随机选择,最小值取自所有偏移 s ∈ Gi, 概率取自内部随机性和 A的测量。
该假设断言,当函数值随机选取时,在最坏情况下,不存在针对 Hidden Shift(在 G上)的量子算法,且该结论对 s成立。需要注意的是,量子计算文献中的典型表述是对 s和 f的最坏情况;而另一方面,已知的算法方法在 f值域的任意重标记下保持不变。因此,“随机取值”情形似乎足以满足我们的密码学需求。(事实上,我们的结果也可以基于 f为单射而非随机的情况。)
有关进一步讨论和假设1的精确表述,请参见下文第3节。通常,提出此类假设时需要注意群的编码。然而,我们将完全关注具有常规编码的群,这些编码直接支持高效的群运算、逆运算、随机元素生成等。具体而言,我们关注以下两个特定变体:
假设2( 2n-循环隐藏移位假设) 。这是群族 C2={Z/2n | n ≥ 0}上的隐藏移位假设,其中索引由一进制表示的数 n组成。
假设 3(对称隐藏移位假设) 。这是群族S={Sn | n ≥ 0}上的隐藏移位假设,其中 Sn表示 n个符号上的对称群,索引由以一进制表示的数n构成。
在这两种情况下,群的大小关于索引长度呈指数增长。
我们注意到, Hidden Shift问题具有多项式量子查询复杂度 [7]——因此无法期望基于 Hidden-Shift的方案在量子环境中具备信息论安全性(如其在经典环境中那样);这促使了引入 Hidden Shift难解性假设。
为了探究 Hidden Shift问题对于量子多项式时间(QPT)算法的困难性,我们描述了几个归约。首先,我们证明 Hidden Shift等价于一个随机化版本的问题,其中移位 s是随机的(Random Hidden Shift),并提供了一个放大定理,该定理在基于假设1的安全性证明中非常有用。
命题(放大,非正式) 。 假设存在一个量子多项式时间算法,能够以逆多项式比例的输入求解 Random Hidden Shift。那么,存在一个QPT算法,可以对几乎所有可忽略比例之外的输入求解 Hidden Shift和Random Hidden Shift。
然后我们证明,对于许多群族,在相关群上的 Hidden Shift等价于该问题的一个判定版本。在判定版本中,我们保证两个函数要么(i)都是随机且独立的,要么(ii)其中一个是随机的,另一个是移位;目标是判断属于哪种情况。
定理(搜索与判定等价,非正式表述) 。设 G为群族 C2或群族 S (或具有高效子群列的群族)。则在 G上存在一个用于 Random HiddenShift的 QPT算法(至多逆多项式误差),当且仅当在 G上存在一个用于 Decisional Random Hidden Shift的QPT算法(至多逆多项式误差)。
最后,我们提供了一些证据,表明在族 C2上的 Hidden Shift与在一般循环群上的 Hidden Shift一样困难。具体而言,我们证明了在 C2上的近似版本 Hidden Shift存在高效算法时,可由此导出在所有循环群的族 C上解决相同问题的高效算法。
我们还简要讨论了 Hidden Shift、上述假设以及某些量子安全公钥密码学候选方案所依赖的假设之间的联系[5,26]。为了完备性,我们回顾了与 Hidden Subgroup Problem的已知联系。这两个 Hidden Shift和 Hidden Sub-group Problem函数族在量子算法研究社区中受到了广泛关注, 并被认为在除特定群家族外的情况下是量子困难的[5,12,21,22,26]。
抗量子对称密钥密码方案
基于上述结果,我们描述了一种通用方法,利用假设1来“调整”经典安全方案,以消除其对量子选择明文攻击的脆弱性。这种调整非常简单:将方案中底层的(Z/2)n结构替换为 C2或 S的结构。这相当于将按位异或替换为新的群操作。在 C2的情况下,该调整尤为简单且高效。
尽管我们的基本方法可能具有广泛的适用性,但我们重点关注三个典型示例:Even‐Mansour构造——既作为伪随机函数也作为分组密码——以及 CBC‐MAC构造。我们始终关注群族 C2和 S,但我们也讨论了其他选择的一些潜在优势(见第3.2节)。最后,我们讨论了对密码构造的相关量子攻击,包括三轮Feistel密码和量子滑动攻击 [14]。我们注意到,此前已在纯经典环境下研究过非(Z/2) n上的Feistel密码 [24]。
隐藏移位Even-Mansour
根据上述方法,我们定义了Even‐Mansour密码的群变体。我们给出了从最坏情况Hidden Shift问题到自然区分性问题(即区分一个Even‐Mansour密码与一个随机置换)的归约。因此,在隐含偏移假设下,Even‐Mansour构造是一个抗量子查询的伪随机函数(qPRF)。特别是,即使对于量子对手而言,密钥恢复在计算上也是不可行的。我们还提供了(较弱的)归约,将 Hidden Shift与在更具挑战性的情况下破解 Even‐Mansour的问题联系起来,即当对手能够访问公开置换及其逆(以及加密映射的相应信息)时的情况。无论如何,这些改编都使得“Simon算法密钥恢复攻击”[14,19],难以实施,因为这现在需要在相关群族中实现 Hidden Shift的子程序。此外,还可以应用标准结果(例如,参见[13]), 以证明在某些群上,密钥的所有比特都与完整密钥一样困难(因此,根据我们的归约,也与 Hidden Shift一样困难)。我们注意到,考虑 Z/2 n结构来定义Even‐Mansour的改编方案此前已在经典滑动攻击的背景下被研究过[6]。
隐含移位CBC-MAC
根据我们提出的通用转换方案方法,我们定义了加密 CBC‐MAC的群变体。我们证明了该原语在面对量子对手时是抗碰撞的。具体而言,我们表明,任何以不可忽略的概率在隐藏移位加密CBC‐MAC中发现碰撞的高效量子算法,都将导出一个在相关群族上求解 Hidden Shift问题的高效最坏情况下的量子算法。与Even‐Mansour一样,这种改编也立即挫败了利用西蒙算法进行的碰撞查找攻击[14,29]。
费斯妥密码,滑动攻击
我们还定义了著名的费斯妥密码的群变体,用于从伪随机函数构造伪随机置换。我们的群变体能够挫败西蒙式攻击[18];现在需要一个更一般的 Hidden Shift问题的子程序。最后,我们还探讨了某些经典滑动攻击在量子情况下的指数级量子加速,如[14]中所述。我们展示了如何再次利用 Hidden Shift来保护易受这些“量子滑动攻击”影响的方案。
2 预备知识
符号说明;关于有限群的备注
对于一个有限群 G和一个元素 s ∈ G,令 Ls: G → G表示由 s的左乘法给出的置换,即Ls: x → s · x。本文讨论了若干需要在有限群中进行计算的构造,并始终假设群元素具有某种编码方式,能够高效地支持乘积、逆、均匀随机群元素的选择等自然运算。由于我们的讨论要么集中在某些特定群上——例如(Z/2) n或 Z/N——这些问题的编码是直接的;或者 alternatively,generic 群,我们默认假设有此类编码功能,因此我们通常忽略这些编码问题。
经典和量子算法
throughout我们使用PPT作为“概率多项式时间”的缩写,指的是高效经典算法,QPT作为“量子多项式时间”的缩写,指的是高效量子算法。我们的约定是用花体字母表示任一类算法,例如, A通常表示一个模拟对手的算法。如果 f是一个函数,那么符号 Af表示一个(经典或量子)算法,具有对该函数 f的预言机访问。经典预言机仅仅是黑盒门 x → f(x); 量子预言机是幺正黑盒门 |x〉|y〉 → |x〉|y ⊕ f(x)〉。除非另有说明,预言机QPT 算法被假定具有量子预言机访问。
量子安全伪随机性
我们现在给出一种量化QPT对手区分函数族能力的方法。固定一个函数族 F ⊂{h:{0, 1} m →{0, 1} },一个函数 f:{0, 1} n ×{0, 1} m→{0, 1} ,,并定义 fk:= f(k,·)。我们称 f是索引子族
F如果对于每个 fk ∈ F成立 k ∈{0, 1}n。我们通常假设 m和 是 n的多项式函数,并将 n视为复杂度(或安全性)参数。
定义1. 设 F为一个函数族, f为一个索引子族, D为一个预言机QPT算法。 D的区分优势是如下量值
AdvFD,f:= ∣∣∣∣ Pr g∈RF[Dg(1n)= 1] ∣∣∣∣ .
接下来,我们定义对QPT对手具有伪随机性的高效索引函数族。需要强调的是,这些函数族是由确定性的经典算法计算的。
定义2. 令Fn表示从 m(n)比特到 (n)比特的所有函数的族,且 f是 ⋃nFn的一个高效可计算的索引子族(即对于|k| = n有 fk ∈Fn)。我们称 f是一个量子安全伪随机函数(qPRF),如果对于所有QPT D,均有AdvFDn,f ≤negl(n)。
已知如何基于标准假设(即量子安全单向函数的存在性)构造qPRF[33]。
伪随机函数性质在某些应用中是不够的,例如在构造分组密码时。此时,通常需要增加一个性质,即函数族中的每个函数都是一个置换,并且可以在已知索引的情况下高效地进行逆运算。
定义3. 设 P为所有置换构成的族, f是 P的一个可高效计算的索引子族。我们称 f是一个量子安全的伪随机置换(qPRP),如果(i) f是qPRF,(ii)每个fk都是置换,且(iii)存在一个高效算法,在给定 k的情况下,可以计算 fk的逆 f −1 k 。
最近的一项结果展示了如何从单向函数[32]构造qPRP。寻找更简单的构造方法仍是一个开放问题。两种在经典情况下已被证明有效的简单构造方法——Even‐Mansour和三轮Feistel,在 Hidden Shift上的(Z/2) n情形下都会受到基于西蒙算法的简单攻击而被破解。正如我们稍后将详细讨论的,我们推测这些构造方法在其他群族上的变体是qPRP。
我们还将频繁使用张立冬的一个结果([34]中的定理3.1),该结果指出,对于进行不超过 k次查询的量子对手而言, 2k‐wise 独立函数与随机函数是不可区分的。
定理1. 设 H是定义域为X、值域为 Y的 2k-独立函数族。设 D是一个进行不超过 k次预言机查询的量子算法。那么
Pr
h ∈ R H[Dh (1 n )= 1]= Pr g∈RY X[Dg(1 n )= 1].
抗碰撞性
我们还需要一个(标准)定义,即针对具有预言机访问权限的高效量子对手的抗碰撞性。
定义4。 设 f:{0, 1}∗ ×{0, 1}∗ →{0, 1}∗是一个为所有(k, x)定义的高效可计算函数族,其中 |x| = m(|k|)(对于多项式m)。我们称 f是抗碰撞的,如果对于所有 QPT A, Pr k∈R{0,1}n[Afk(1n)=(x, y)∧ fk(x)= fk(y)∧ x= y] ≤ negl(n).
3 隐藏移位作为密码学原语
我们首先讨论几个与寻找群上函数的隐藏移位相关的基本预言机承诺问题的变体。在下面的问题中,相关函数通过黑盒预言机访问提供给算法,我们关注的是算法的复杂度(包括查询次数和运行时间)在 poly(log|G|) 中扩展的情况。
3.1 隐藏移位问题
基本定义
我们从 Hidden Shift问题开始。在量子计算文献中的传统表述下,该问题是如下:
问题1(传统的隐藏移位问题) 。设 G为一个群, V为一个集合。给定对一个单射函数 f: G → V及其未知移位 g= f ◦ Ls的预言机访问,求 s。
对我们来说,通过特定的群族对该定义进行参数化,并固定预言机 f和 g的范围是方便的。这给出了该问题的基本渐近定义。
问题2 (Hidden Shift(隐移位)) 。设 G={Gi | i ∈ I}是一个具有索引集 I ⊂{0, 1}∗的群族,并设 : N → N为一个多项式。那么在 G上的 HiddenShift问题(以 为长度参数)定义如下:给定一个索引 i以及对一对函数 f, g: Gi →{0, 1}(|i|)的预言机访问,其中 g(x) = f(sx),确定 s ∈ Gi。我们始终假设 2(|i|) |Gi|。
这种通用表述更为精确,但在密码学应用中仍然存在技术上的不便,因为它允许对完全任意的函数 f进行预言机访问。为了避免这一技术困扰,我们关注 Hid-den Shift算法在特定函数类 f上的表现。具体而言,我们假设 f是随机的,或者它是单射的。当将 Hidden Shift算法应用于典型计算环境中的问题时,实际函数f, g是单射的,并由高效计算给出。我们指出,该领域已建立的算法实践完全忽略实际的函数值,仅依赖于函数的水平集的结构。
Φ(x, b)={f(x) if b= 0, g(x) if b= 1.
这种通用表述更为精确,但在密码学应用中仍然存在技术上的不便,因为它允许对完全任意的函数 f进行预言机访问。为了避免这一技术困扰,我们关注 Hid-den Shift算法在特定函数类 f上的表现。具体而言,我们假设 f是随机的,或者它是单射的。当将 Hidden Shift算法应用于典型计算环境中的问题时,实际函数f, g是单射的,并由高效计算给出。我们指出,该领域已建立的算法实践完全忽略实际的函数值,仅依赖于函数的水平集的结构。
Φ(x, b)={f(x) if b= 0, g(x) if b= 1.
特别是, f的这类结构条件似乎与当前量子算法技术解决该问题的成功无关。这促使我们提出算法“成功”的以下概念。
定义5 (完备性). 设 A是长度参数为 的群G上 HiddenShift问题的一个算法。令 f为定义在所有形如(i, x)的对上的函数,其中x ∈ Gi,使得 f(i, x) ∈{0, 1}(|i|)。然后我们定义 A相对于 f的完备性为如下量
1 − εf(i) min
s∈Gi
Pr[Af,fs(i)= s].
完备性 A相对于随机函数的平均值
1 − εR(i) E f[min s∈Gi Pr[Af,fs(i)= s]]= E f[1 − εf(i)],
其中 f(i, x)是均匀随机选取的。注意这些概念在 s(即移位)上是最坏情况的。
请注意,该定义并未规定算法在非隐藏移位实例上的行为。为简便起见,我们假设算法在任何情况下都会返回一个 s的值,当函数彼此之间并非移位关系时,对 s不作任何保证。
我们的基本困难性假设如下:
假设4(‐ G-隐含偏移假设;随机化) 。设 G={Gi | i ∈ I}是由集合 I ⊂{0, 1}∗索引的有限群族,且 : N →N为长度参数。则对于所有高效算法 A, 1−εR(i)= negl(|i|)。
为完备性起见,我们还记录了单射 f的假设版本。在实际中,我们的密码构造将仅依赖于随机化版本。
假设5( G-隐含偏移假设;单射) 。 设 G={Gi | i ∈ I}为由集合 I ⊂{0, 1}∗索引的有限群族,且: N → N为长度参数。则对于所有高效算法 A,存在一个单射 f(满足上述定义5的条件),使得 1 − ε f(i) =negl(|i|)。
为了建立安全性放大的结果,我们定义了 Hidden Shift问题的另外两个变体:一种是函数和移位均为随机化的变体,以及一种判定性变体。我们构造安全性证明的一般方法是将其中一个变体归约到破解相应密码方案的问题上。正如我们稍后将展示的那样,任一变体的高效解法意味着这两个变体都存在高效解法,而这将导致违反上述假设4。
问题3( Random Hidden Shift(RHS) 。设 G={Gi | i ∈ I}是由集合 I ⊂{0, 1}∗索引的一个有限群族,且 : N → N为长度参数。那么在 G上的 Random Hidden Shift问题是指 HiddenShift问题,其中输入函数 f(i,x)是均匀选取的,移位s是从 Gi中独立且均匀地选取的。
我们以类似于定义5的方式定义 Random Hidden Shift算法A的 1−ε(i)。请注意,对于任何算法而言,存在一些函数对使得 s无法被唯一确定,因此微小的误差是不可避免的。我们还需要该问题的判定版本,其定义如下。
问题4 ( Decisional Random Hidden Shift(DRHS)) 。设 G={Gi | i ∈I}是由集合 I ⊂{0, 1}∗索引的有限群族,且 : N → N为长度参数。该 Decisional Random Hidden Shift问题如下:给定 i以及对两个函数 f, g: Gi →{0, 1}(|i|)的预言机访问,并承诺二者满足以下两种情况之一:(i) f和 g均独立随机选取,或(ii) f是随机的,且存在某个 s ∈ G使得 g= f ◦ Ls,需判断属于哪种情况。
我们说,一个用于DRHS的算法具有完备性 1−ε(i)和可靠性δ(i),如果该算法在函数为移位的情况下出错概率不超过 ε(i),且在函数独立选取的情况下出错概率不超过 δ(i)。
接下来,我们简要回顾一下(密切相关)的 Hidden Sub-group Problem的定义。该问题在我们的上下文中主要因其历史意义(以及与 Hidden Shift的关系)而相关;我们不会在任何安全性归约中直接使用它。
问题5 ( Hidden Subgroup Problem(HSP)) 。设 G为一个群, S为一个集合。给定一个函数 f: G → S,并承诺存在 H ≤ G,使得 f在 H的右陪集上是常数且互不相同,输出 H的一个生成元的完备集。
一些进一步的细节,包括隐移位与隐子群问题之间的显式归约,见附录A。
人们关注用于求解 HS 和 HSP 各种版本的经典和量子算法。此类算法的相关度量包括查询复杂度(即经典或量子情况下对函数的查询次数)以及它们的时间与空间复杂度。如果这三个复杂度在 log|G| 上均为多项式,则称该算法是高效的。
Hardness Results
接下来,我们在这些问题之间建立若干归约。大致而言,这些结果表明问题的平均情况和判定版本与最坏情况版本一样困难。
自归约性和放大性
首先,我们证明(i)HS和RHS都是随机自归约的,以及 (ii)RHS的高效解法意味着HS的高效解法。
命题1 。设 G={Gi | i ∈ I}是由集合 I ⊂{0, 1}∗索引的有限群族,且 : N → N为长度参数。假设存在一个QPTA ,能够以逆多项式完备性解决在 G上的 Random Hidden Shift (参数为 (|i|))。那么,存在一个QPT A′, 满足以下所有条件:
- A′以随机 f求解 Hidden Shift,其完备性为 1 − negl(|i|);
- 对于任意单射 f, A′可求解 Hidden Shift,其完备性为 1 − negl(|i|);
- A′求解 Random Hidden Shift,其完备性为 1 − negl(|i|)。
证明 。我们得到了预言机 f, g以及一个承诺 g= f ◦ Ls。对于特定的 n,存在一个显式的(多项式规模的)界 k,用于限制 A的运行时间。设 H是一个 2k‐独立的函数族,它将f的值域映射到自身。算法 A′将反复执行以下子程序:首先, 独立且均匀随机地选择一个元素 h ∈ H和一个元素 t ∈ Gi。然后使用预言机执行 A
f′:= h◦ f and g′:= h◦ g ◦ Lt.
容易看出 g′= f′ ◦ Lst。如果 A输出一个群G元素 r,则 A′在多项式次数的随机值 x处检查是否满足g′(x) = f′(rx)。如果检查通过,则A′输出 rt−1并终止。如果检查失败(或者 A输出无效内容),我们称该子程序失败。该子程序重复执行 m次,每次使用新的 h和 t。
继续使用我们固定的 f和 g,我们现在论证 A(如上所述使用)无法区分f′、 g′与以下情况:其中 f′是均匀随机的,且 g′是 f′的均匀随机移位。首先,移位是随机化的这一事实是显然的。其次,如果 f是单射的,则 f′仅仅是输入经过置换后的h ,因此由于2k‐独立性及 h定理1而无法与随机情况区分。第三,如果 f是随机的,则它与单射情况无法区分(根据[35]的碰撞界),因此我们可以应用与单射情况相同的论证。
接下来可知,以逆多项式概率 ε(关于 h和 t的选择),实例(f′, g′)无法与子程序以逆多项式概率 δ成功的实例(ϕ, ϕst)相区分。在重复执行m次该子程序后, A′将以至少(1 − εδ)m ≈ e−εδm的概率正确计算出移位 r= st,符合预期。
决策与搜索
接下来,我们考虑在给定存在移位的承诺下,搜索移位与判定移位是否存在的关系。大致而言,我们证明了对于大多数感兴趣的群家族,这两个问题是等价的。我们首先从DRHS到RHS的一个直接归约开始。
命题2 。 如果存在一个针对 Random HiddenShift在 G上的量子多项式时间算法, 且具有完备性 1 − ε(i),则存在一个针对Decisional Random Hidden Shift在 G上的量子多项式时间算法,且具有完备性 1 − ε(i)以及可忽略的可靠性误差。
证明 。 设 (·)为相关的长度参数。考虑一个针对G且具有完备性 1 − ε的RHS算法, 以及其对DRHS的如下适应性调整。
– 运行RHS算法。
– 当算法返回一个声称的移位 s时,使用多项式次数的经典预言机查询对 s进行验证,查询对象为 f和 g(确保对于 k(n)个不同的样本 x1, …, xk(n),有 g(xi) = f(sxi)成立)。
注意,如果 f和 g确实是隐藏移位,则该过程将以概率 1 − ε确定这一点。当 f和 g是不相关的随机函数时,算法的“测试”部分错误成功的概率不超过 |G| · 2−k·(|i|)。因此,在假设 |G| ≥ k(n)下,得到的DRHS算法具有完备性 1 − ε和可靠性 |G| · 2−k·(|i|)。对于任意非平凡长度函数 ,,通过选择 k= log |G| + k′,可使该可靠性趋近于指数接近零。
另一方面,我们只知道在RHS到DRHS的归约中,附加了 G具有“稠密” 子群塔的假设。在这种情况下,芬纳和张的算法方法[9]可以被调整以提供一个归约。两者Sn和 Z/2n都具有这样的子群塔。
命题3 。 设 G为群族{Z/2n}或群族{Sn}。如果存在一个量子多项式时间算法, 用于在 G上求解 Decisional Random HiddenShift,且其完备性和可靠性 误差至多为逆多项式级别,则存在一个QPT算法,用于在 G上求解 Random Hidden Shift,且其完备性误差可忽略。
证明 。该证明将[9]的技术调整应用于我们的概率性设定,并依赖于这些群族具有高效子群塔这一事实。具体而言,每个 Gi都存在一个子群列 {1}= G(0)< G(1)< G(2)< ···<G(s)= Gi,满足以下条件:(i) 对所有 t, 可在 G(t)中高效地进行均匀随机采样和成员判断;(ii) 对所有 t,存在一种高效算法,可生成 G(t−1)在 G(t)中的左陪集代表系。对于 Z/2 n,其子群列为 {1}< Z/2< Z/2 2< Z/2 3< ···。对于 Sn(即n个字母的置换群),其子群列为{1}< S1< S2< S3< ···,其中每一层向集合中增加一个新的字母。我们注意到,对于一般的置换群,可以利用强生成集高效地计算出这样的子群列, 而强生成集可以通过群的生成置换[11]所给出的群表示高效地计算得到。
我们通过考虑群G及其具有多项式指数的子群 H (已知其左陪集代表系为A={a1,…, ak},因此 G是 aiH的不相交并集)来递归定义一个RHS算法。
假设 H的DRHS算法具有可靠性 δH和完备性 1 − εH。在这种情况下,该算法 (对于 G)可以按如下步骤进行:
- 对每个 α ∈ A,在子群 H 上限制的两个函数 f 和ˇg: x →g(αx) 上运行 DRHS 算法。
- 如果这些递归调用中恰好有一个报告函数 f和ˇg: x → g(αx)是隐藏移位,则 递归应用 RHS 算法以恢复隐藏移位 s′(使得对于 x ∈ H 有 f(x) = g(αs′x))。返回移位 s= αs′。
- 否则断言这些函数是无关的随机函数。
在 f和 g为独立的随机函数的情况下,上述算法出错的概率不超过[G:H]δH。
考虑另一种情况,即 f: G → S是一个随机函数,且 g(x) =f(sx),其中 s ∈ G为群G中的一个元素。注意到,如果 s−1 ∈ αiH,使得 s−1= αihs对某个群G中的元素 hs ∈ H成立,则有 g(αihsx) = f(x)。由此可知, f和ˇg: x → g(αix)彼为此的偏移;特别地,当限制在子群H上时,这一点也成立。此外,隐藏移位 s可直接由 f与ˇg之间的隐藏移位确定。注意,如上所述,DRHS递归调用中任意一次回答错误的概率不超过[G: H]δH+ εH。
接下来需要分析所得到的递归RHS算法的完备性:在上述子群链的情况下, 令 γt表示在 G(t+1)上所得RHS算法的完备性,并注意到
γt+1 ≤[G(t+1): G(t)]δG(t)+ εG(t)+ γt
因此, G 上的最终误差不超过
∑
t
[G(t+1): G(t)]δG(t)+∑
t
εG(t). (3.1)
如上所述,群族 {Z/2 n | n ≥ 0} 和 {Sn | n ≥ 0}均满足此子群链性质。
备注 。注意,上述结果未涉及一般 N的群 Z/N;事实上,当 N为素数时, 不存在非平凡的子群塔。(这类群确实具有其他相关的自归约性和放大性性质 [13]。)然而需要指出的是,允许近似相等的 Hidden Shift问题的一个推广形式,会在不同循环群的Hidden Shift问题之间建立紧密联系。特别地,考虑由两个函数 f、 g: G → S给出的 δ‐Approximate Hidden Shift问题
基于隐藏移位的量子安全对称密钥密码学
其承诺存在一个元素 s ∈ G,使得Prx[g(x) = f(sx)] ≥ 1−δ(其中 x在 G中均匀选取);该问题的目标是找出具有此性质的一个元素 s′ ∈ G。注意在这种情况 下,s′可能不是唯一的。
特别地,考虑一个在循环群 Z/n上的 Hidden Shift问题的实例 f, g : Z/n → V 。我们希望将此实例“提升”到一个群 Z/m上,以使得 m n的 Z/m实例的解能够导出ˆ Z/n实例的解。对于函数 φ: Z/n → V,通过规则 φ (x) = φ(x mod n)定义函数 φ: Z/m → Vˆ ˆ。注意,此时Prx[f(x) = ˆg(ˆ s+ x)] ≥ 1 −n/m对于移位sˆ= s成立;此外,恢复任何能够以接近 1 − n/m 的概率实现相等性的 Z/m问题的移位,即可得到Z/n问题的解(通过对答案 取模 n,或许在 Z/m预言机末尾校正mmod n溢出后)。注意,该函数不是 单射的。
我们指出, Hidden Shift对于非单射布尔函数(即值域为 Z/2)的问 题有时存在高效算法(例如参见[23,28])。这些技术能否推广到上述一般情形, 是一个有趣的开放性问题。
3.2 选择困难群
可高效求解的情况
对于某些基础群 G的选择,上述部分问题存在多项式时间算法。一个显著的例子是 G= Z上的 Hidden Subgroup Problem,该问 题可通过秀尔算法[30]高效求解。任意阿贝尔 G上的隐子群问题也存在多项式时间算法[15]。最早且最简单的例子是西蒙算法[31], ,其在 G=(Z/2)n和H={1, s}(对于未知的 s)的情况下,仅需对预言机进行 O(n)次查询即 可高效求解隐子群问题。由于(Z/2)n Z/2 =∼(Z/2)n+1这一事实,西蒙算法也 能高效求解(Z/2)n上的 HiddenShift问题。此外,Friedl 等人[10]提出了针对常指数可解群上隐移位问题的高效(或拟多项式)算法;例如,他们的方法为群(Z/p)n(对于常数 p)和(S4) n提供了高效算法。
循环群
与 Hidden Subgroup Problem相反,一般阿贝尔 Hidden Shift被认为是困难的。目前已知唯一的非平凡算法来自库珀伯格,他提出了一个用于二面体群[16]上隐子群问题的次指数时间算法。他还给出了该算法到阿贝尔 HiddenShift问题的推广,如下所述。
定理2 (来自[16]的定理7.1) 。 阿贝尔群 Hidden Shift问题存在一个量子算法,其时间和查询复杂度为 2O((log |G|) 1/2 ),适用于所有有限生成阿贝尔群。
雷格夫和库珀伯格后来改进了上述算法(使其使用多项式量子空间,并增加了多个用于调整复杂度参数的调节选项),但时间和查询复杂度仍然相同 [17,25]。
也有证据表明二面体群 DN上的HSP(从而 Z/N上的HS)与其他困难问题相关。雷格夫证明了,如果存在一种使用陪集采样(目前唯一已知的非平凡技术)的针对二面体HSP的高效量子算法,那么就存在一种针对poly(n)‐唯一‐ SVP [26]的高效量子算法。该问题反过来是若干基于格的密码系统的基础。然而,由于归约过程中产生的开销,库珀伯格算法仅能带来指数时间攻击。对 Z/N上HS的高效解法也可用于攻破某种基于同源的密码系统[4]。
我们将特别关注情况 Z/2 n。这是最简单的群,我们的所有构造和结果均适用于该群。此外,基本计算任务(将群元素编码/解码为比特串、均匀随机采样群元素、执行基本群操作等)在 Z/2n上都有直接且极其高效的实现。在此情况下,复杂度为 2O(√n)的量子攻击仅在非常长远的未来才会具有实际意义,那时量子计算与经典计算的成本变得大致相当。如果此类攻击确实令人担忧,则还有其他自然的群选择,我们将在下文讨论。
置换群
在寻找隐子群问题 和 隐移位的量子算法过程中,被研究得最多的群族 arguably 是对称群族 Sn。众所周知,在隐子群问题 上针对 Sn(Z/2)的算法将导出图同构问题的一个多项式时间量子算法。如附录A所述,这正是与隐子群问题 相关的 Hidden Shift问题在 Sn上的情况。
对于这些群,量子算法研究社区迄今为止的努力仅得到了负面结果。首先,已经证明使用单个“陪集态”的标准Shor型方法无法成功[22]。事实上,需要在 Ω(nlog n)个陪集态上进行纠缠测量[12],,以达到信息论上界[7]。最后,唯一一种用于在多个寄存器上执行纠缠测量的非平凡技术——所谓的库珀伯格筛法——也注定会失败[21]。
尽管对称群上的编码、解码和计算比循环群情况更复杂且效率较低,但这是一门研究得较为透彻的领域(参见例如[11])。在下文讨论这些群时,我们将默认(无需特别说明)这些问题存在高效解法。
矩阵群
另一类相关的群族是有限域上的矩阵群 GL2(Fq) 和 SL2(Fq)。这些非阿贝尔群表现出许多与对称群相似的结构特征,例如高维不可约表示。许多关于对称群的负面结果也同样适用于矩阵群 [12,21]。
在有限域 F q上进行高效编码、解码和计算是标准做法。有了这些基础后,扩展到矩阵群并不复杂。对于 GL2(Fq),我们可以在第一列中编码任意一对不全为零的元素 (a, c) ∈ F 2 q ,在第二列中编码任意一对不是 (a, c) 倍数的元素 (b, d)。对于 SL2(Fq),我们只需额外加上约束: d由 a, b, c的选择固定为 a−1(1+ bc)。
积群
对于[12]的负面结果适用的群族而言,最简单的可能是某些 n重积群。这些群具有 Gn的形式,其中 G是一个固定的固定大小群(例如, S5)。这使得我们可以简单地将异或操作(即 Z/2加法)替换为在另一个固定大小群 (例如, S5)中的复合操作,同时保持相同的n重积结构。
然而需要谨慎,因为在此情况下确实存在非平凡算法。当基群 G是可解群时,则存在高效算法。对于 HSP和 Hidden Shift(见 [10]中的定理4.17)。需要注意的是,该高效算法甚至适用于某些群(例如(S4)n),而 [12]的负面结果也适用于这些群。尽管如此,可解性对于 [10],似乎是至关重要的,选择 G= S5作为基群时,得到的群族目前尚无已知的非平凡 Hidden Shift算法。我们注意到,然而,存在一种基于库珀伯格筛法 [1]、时间复杂度为)的求解阶为‐2 Hidden Subgroup Problems上 Gn的算法;这表明在这些群上可能存在次指数(即 2O(nδ) 求解 δ< 1) 的算法。
4 隐藏移位偶‐曼索密码
我们现在来解决修复易受西蒙算法攻击的经典对称密钥方案的问题。我们从最简单的构造开始,即所谓的Even‐Mansour密码 [8]。
4.1 推广偶‐曼索方案
标准方案
Even‐Mansour构造将一个公开的、随机置换 P: {0, 1}n →{0, 1}n转化为一个带密钥的伪随机置换
EP k1,k2:{0, 1}n −→{0, 1}n x −→ P(x ⊕ k1)⊕ k2
其中 k1, k2 ∈{0, 1}n 和 ⊕ 表示按位异或。该方案在两种场景中具有相关性:
- 仅作为伪随机性的来源;在此设定中,所有各方均被提供对 P 的预言机访问。
- 作为分组密码;此时所有各方均被提供对 P 和 P−1 的预言机访问。
解密需要对 P−1 的访问。然后可以判断 EP 是否为 PRP(对手可访问 EP),或是否为强PRP(对手可访问 EP 及其逆)。
在所有这些设定中,Even‐Mansour 已知对于进行最多多项式次查询 [8] 的经典对手是信息论安全的。
标准方案的量子选择明文攻击
Even‐Mansour的经典安全性证明可立即推广到对手对相关预言机仅有经典访问权限的量子场景。然而,如果允许对手对 P和 EP预言机进行量子预言机访问,但完全无法访问逆预言机,则 Even‐Mansour方案容易被攻破。该攻击首次在[19]中描述;[14]中给出了完整的分析。该攻击很简单:首先,使用 P 和 EP 的量子预言机来构造一个关于 P ⊕ EP 的量子预言机,即该函数
f(x)= P(x)⊕ P(x ⊕ k1)⊕ k2.
然后在函数 上运行西蒙算法 [31] 。声明指出,西蒙算法将以高概率输出k1。为说明这一点,注意到f满足西蒙承诺的一半,即 f(x ⊕ k1) = f(x)。此外,如果它在经典情况下是安全的,则它几乎满足整个承诺。更准确地说,对于任意固定的 P和随机对(x, y),要么碰撞的概率f(x) = f(y)足够低,使得西蒙算法能够成功,要么碰撞数量极多以至于存在一种经典攻击[14]。一旦我们恢复了
k1 ⊕ P k2 k2= EP k1 k2 x x ⊕ k1 x
,我们 也可以通过一次经典查询立即恢复,因为,( ) ( ) 对于任意成立。
隐藏移位Even-Mansour
为应对上述攻击,我们提出了Even‐Mansour方案的简单变体。该构造方法如第1节所述,推广了标准的Even‐Mansour方案。每个变体都由一族指数大小的有限群 G参数化。一般性构造描述如下:我们从一个公开置换P: G → G出发,并由此构造一族带密钥的置换
EP k1,k2(x)= P(x · k1)· k2,
其中k1, k2现在是 G中的均匀随机元素,而 ·表示在 G中的复合。作为分组密码的形式化定义如下。
方案 1(隐藏移位Even‐Mansour分组密码) 。设 G为一族有限的、指数规模群,满足第3.2节中给出的高效编码条件。该方案包含三个多项式时间算法,参数化为群 G中元素的一个置换 P:
– 密钥生成 : N → G× G;输入 |G|,输出 (k1, k2) ∈R G× G;
– Enc P k 1 ,k 2: G → G;由 m → P(m· k1) · k2 定义;
– Dec P k 1 ,k 2: G → G;由 c → P−1(c· k−1 2) · k−1 1 定义。
为简化符号说明,我们设 EP k1,k2:=Enc P =(EP k1,k2) −1。
该方案的正确性是显然的;在下一节中,我们将针对不同场景提出关于其安全性的若干论证。所有这些论证均基于群G上某些问题的困难性假设。
4.2 安全归约
我们考虑两种情形。在第一种情形中,对手被给予对置换 P的预言机访问权限,然后要求其区分Even‐Mansour密码EP k 1 ,k 2与一个和 P无关的随机置换。在第二种情形中,对手被给予对 P, P −1以及EP k 1 ,k 2及其逆的预言机访问权限;此时的目标是恢复密钥(k1, k2)(或其中的部分内容)。
与随机性的区分性。我们从上面描述的第一种设定开始。固定一个群 G,令 PG表示 G的所有置换构成的集合。选择一个均匀随机的 P ∈ PG。在 G上的隐藏移位Even‐Mansour方案的加密映射可以写成
EP k1,k2= Lk2 ◦ P ◦ Lk1.
如果我们拥有对 P的预言机访问权限,那么这显然是一个由密钥对索引的、高效可计算的子族PG。对于伪随机性而言,相关的问题就是区分 EP与一个和预言机 P无关的随机置换。
问题6(Even-Mansour可区分性(EMD)) 。给定对置换 P,Q ∈PG 的预言机访问,以及以下承诺:要么(i) P 和 Q 均为随机的,要么(ii) P 是随机的且 Q= EP k1,k2 对于随机的 k1, k2成立,判断属于哪种情况。
可以简单地将此问题与Random Hidden Shift的判定版本关联起来,如下所示。
命题4 。如果存在一个针对 G上EMD的QPT D ,则存在一个针对 G上DRHS问题的量子多项式时间算法,其可靠性与完备性与 D的相应性质至多相差一个可忽略量。
证明 。设 f, g为在 G上的DRHS问题的两个预言机函数。我们知道 f是从 G到 G的一个随机函数,我们必须判断 g也是随机的,还是仅仅是 f的一个移位。我们从 G中均匀随机地采样t1, t2,并向 D提供预言机 f(代替 P)和 g′: = Lt2 ◦ g ◦ Lt1(代替 EP)。然后我们直接输出 D的输出结果。注意,(f, g)是均匀随机置换当且仅当(f, g′)是均匀随机置换。此外, g= f ◦ Ls当且仅当 g′= Lt2 ◦ f ◦ Lst1成立。因此,提供给 D的输入分布与EMD中的情况相同,唯一的区别在于DRHS中的预言机是随机函数而非随机置换。由此产生的误差至多是可忽略的,依据是张立冬[35]的碰撞查找界。
接下来,我们希望放大DRHS区分器,然后应用 Hidden Shift中命题3给出的归约。结合命题4,我们得到一个完整的安全性归约。
定理3 。 设 G为Z/2 n群族或 Sn群族。在假设4下,基于 G的隐藏移位 Even-Mansour密码是一个量子安全的伪随机函数。
证明 。设 G为Z/2 n群族,或 Sn群族。如果在 G上的Even‐Mansour密码不是qPRP,则根据定义3,存在一个求解EMD问题的算法 DEMD,其总误差(即完备性与可靠性之和)至多为 1−1/s(n),其中 s为某个多项式。为了给予对手尽可能大的自由度,我们假设选择公开置换 P的概率已被考虑在内;也就是说, DEMD只需成功在置换 P、密钥 k1, k2 的选择及其内部随机性上具有逆多项式概率。
根据命题4,我们也就得到了一个误差至多为 1−1/s(n)(忽略可忽略项)的 DRHS算法 DDRHS。我们可以通过一个 2k‐wise 独立的哈希函数族 H来放大该算法,其中 k是对 DDRHS运行时间的上界(针对给定的输入大小 n和所需的误差界 1/s(n))。对于在 G上的DRHS问题,给定函数 f, g,我们选择一个随机函数 h ∈ H和一个随机群元素 t ∈ G。然后我们使用预言机调用 DDRHS withoracles
f′:= h◦ f and g′ t:= h◦ g ◦ Lt
注意,对于任何高效的量子算法,(i) f 和 g 是随机的当且仅当 f′ 和 g′ t是随机的,以及 (ii) g(x) = f(sx) 当且仅当 g′ t(x) = f′(stx)。我们知道 DDRHS 将以概率 1−1/s(n) 成功,只不过此时概率是相对于 t 和 h 的选择而言的(而不是 f 和 g)。我们用 h 和 t 的不同随机选择重复此过程。通过标准切尔诺夫界的直接应用可知,在执行 O( f′(n)) 次后,我们将以 1 ‐ negl(n) 的概率正确区分。
最后,我们应用命题3,得到一个用于 Random HiddenShift的具有可忽略误差的算法;根据命题1,我们得到了一个同样强大的用于 Hidden Shift的算法。
密钥恢复攻击
我们现在考虑部分或完全密钥恢复攻击,其中对手还可以获得对 P和EP k1,k2的逆的预言机访问。需要注意的是,对于任意群 G上的 Even‐Mansour密码,知道第一个密钥 k1就足以生成第二个密钥 k2,因为
k2= P(x · k1) −1EP k1,k2(x)
对于每个 x ∈ G。
我们注意到,由于Random Hidden Shift及其变体在被赋予甚至部分反转 f或 g的能力时都会变为平凡的,因此给出安全归约现在变得复杂了;在任意输入 x上查询 f −1 ◦ g会产生x·s−1,这会立即得到移位 s。然而,我们仍然可以给出一个非平凡归约,如下所述。
定理4 。考虑群 G上的Even-Mansour密码,对于任意群 G。假设存在一个量子多项式时间算法,当获得对 P、EP k 1 , k 2及其逆的预言机访问时,能够输出 k1、 k2。那么在群 G上存在一个求解 Hidden Shift问题的高效量子算法。
证明 。 我们获得了对函数 f, g: G → G 的预言机访问,并且有一个承诺:存在 s ∈ G,使得对于所有 x ∈ G 都有 f(x) = g(x · s)。我们定义以下预言机,它们可通过访问 f 和 g构造得到。首先,我们有置换 Pf , P g : G× G → G× G,其定义如下
P f(x, y)=(x, y · f(x)) and P g(x, y)=(x, y · g(x)).
现在我们从 G × G中采样密钥 k1={(x1, y1)} k2={(x2, y2)},并定义函数 E: = EPf k1 ,k2。对于在G× G上的Even‐Mansour的密钥恢复攻击者 A,我们提供预言机 E和 E−1作为加密/解密预言机,以及预言机 Pg和 P−1 g作为公共置换预言机。
为了说明我们如何从 A的输出中恢复移位 s,我们将 E用 g的形式重写如下:
E(x, y)= Pf(xx1, yy1)·(x2, y2) =(xx1, yy1f(xx1))·(x2, y2) =(xx1s, yy1f(xx1))·(s−1x2, y2) =(xx1s, yy1g(xx1s))·(s−1x2, y2) = Pg(xx1s, yy1)·(s−1x2, y2).
在完成完整密钥恢复后, A将输出(x1s, y1)和(s−1x2, y2),从中我们可以轻易推导出 s。
备注 。 上述归约集中于恢复完整密钥的问题。注意,对于某些群,例如 Z/p对于素数 p,以逆多项式优势预测密钥的任意一位就足以恢复完整密钥(参见 H˚astad 和 N˚aslund[13])。在这种情况下,我们可以得出结论:预测密钥的个别比特是困难的。
5 隐偏移CBC‐MAC
5.1 推广加密CBC‐MAC方案
标准方案
标准加密CBC‐MAC构造需要一个伪随机置换 Ek: {0, 1}n →{0, 1}n。消息 m 被划分为长度为 n 的消息块 m= m1||m2|| ··· ||ml。然后通过重复对消息块进行加密和异或操作来计算标签,并以使用不同密钥的额外一轮加密结束。具体而言,我们设定
CBC-MACk,k′:= Ek′(Ek(ml ⊕ Ek(··· Ek(m2 ⊕ Ek(m1))···))).
这为变长消息提供了一个安全的消息认证码。
标准方案的量子选择明文攻击
如果我们获得对CBC‐MACk,k′,的量子CPA访问权限,则存在一个(Z/2) n‐隐藏移位攻击,如下所述。该攻击在[14]中被描述;另一个版本的攻击出现在[29]中。考虑由两个数据块组成的消息,并将第一个数据块固定为两个不同值之一 α0= α1。我们使用CBC‐MAC的预言机 k,k ′来构造一个函数的预言机
f(b, x):= CBC-MACk,k ′(αb||x)= E k ′(Ek(x ⊕ E k(αb))) .
注意 f满足Simon的承诺,因为
f(b⊕ 1, x ⊕ Ek(α0)⊕ Ek(α1))= f(b, x)
对于所有 b, x。因此,我们可以运行西蒙算法来恢复字符串 sk=Ek(α0) ⊕ Ek (α1)。一旦知晓 sk,我们便能够找到指数数量的碰撞,因为
CBC-MACk,k′(α0||x)= CBC-MACk,k′(α1||x ⊕ Ek(α0)⊕ Ek(α1)).
特别是,该CBC‐MAC不满足邦赫‐张卓瑞在量子世界中对安全消息认证码的定义[2]。
隐含移位CBC-MAC
我们建议推广上述加密CBC‐MAC构造,通过允许使用某个指数级大小的有限群族 G中的复合操作来替代按位异或操作。每个消息块被视作 G中的一个群元素,我们将伪随机置换Ek视为 G中群元素的一个置换。然后我们定义
CBC-MACGk,k′: G∗ −→ G (m1,…, ml) −→ Ek′(Ek(ml · Ek(··· Ek(m2 · Ek(m1))···))),
其中 · 表示群G中的群操作。
方案2(隐藏移位加密CBC‐MAC) 。设 G为满足第3.2节中给出的有效编码条件的一类有限的、指数级大小的群。设Ek: G → G为一个量子安全伪随机置换。该方案由三个多项式时间算法组成:
– 密钥生成;在输入 |G|时,使用 E的密钥生成方法输出两个密钥 k、 k′;
– 消息认证码k,k′: m −→ Ek′(Ek(ml · Ek(··· Ek(m2 · Ek(m1)) ···);
– 验证k,k′:(m, t) → 接受当且仅当 消息认证码k,k′(m) = t,否则拒绝。
我们将在下一节中讨论该方案的安全性。
5.2 安全性归约
我们现在给出从 Random Hidden Shift问题到上述CBC‐MAC中碰撞查找的归约。
定理5 。 设 G为 Z/2 n群族或 Sn群族。在假设4下,基于 G的移位隐藏 CBC-MAC是一个抗碰撞性函数。
证明 。 为简便起见,我们假设碰撞查找对手在等长消息之间寻找碰撞。这显然是成立的,例如,当消息认证码仅用于某一先验固定长度的消息时。
假设我们得到了一个 Hidden Shift问题的实例,即一对函数 F0 , F 1,并承诺 F 0是随机的,且 F 1是 F 0的移位。
我们拥有一种能够找到隐藏移位加密CBC‐MAC中碰撞的QPT A。我们不妨假设,每当 A输出一个碰撞(c, c′)时,(c, c′)的任何一对前缀都不会构成有效的碰撞;实际上,我们可以轻松构建一个 A′,当这样的前缀存在时,直接输出该前缀碰撞即可。
我们暂时假设 c和 c′中的消息块数量相同,均为 t。由于块数和 A的运行时间是多项式级别的,因此我们可以直接猜测 t,并且以逆多项式概率猜中。我们使用一个修改后的预言机 O来运行 A,该预言机在阶段 t“插入”我们的隐藏移位问题。其定义如下。
设 m为我们的输入消息, l为块数。如果 l< t,我们直接输出通常的加密CBC‐MAC m。如果 l ≥ t,我们首先执行 t − 1轮CBC过程,计算一个函数
h(m):= Ek(mt−1 · Ek(··· Ek(m2 · Ek(m1))···).
注意, h仅依赖于 m的前 t−1个块。接下来,我们选择一个随机比特 b并计算 Fb(m)(mt· h(m))。然后完成CBC过程的其余轮次,输出
O(m):= E′ k(Ek(ml · Ek(··· Ek(Fb(m)(mt · h(m)))···).
不难看出,对手所观察到的分布将无法与普通的加密CBC‐MAC区分开来。假设输出了一个碰撞(m,m′)。我们设定 x1= m1||m2|| ··· ||mt−1和 x2= m′ 1||m′ 2|| ··· ||m′ t−1以及y1= mt和 y2= m ′ t。该碰撞意味着
Fb(m)(y1 · h(x1))= Fb(m′)(y2 · h(x2)).
由于 m= m′,以概率 1/2 有 b(m) = b(m′)。我们重复 A 直到这些比特出现不等。然后我们得到
F0(y1 · h(x1))= F1(y2 · h(x2))= F0(y2 · h(x2)· s)
因此,移位就是 s= y −1 2 h(x2) −1y1h(x1)。
6 阻止对其他方案的西蒙攻击
我们有理由推测,该变换能普遍地使(经典安全的)对称密钥方案抵御量子 CPA攻击。到目前为止,我们仅能在Even‐Mansour密码和加密CBC‐MAC的情况下给出完整安全归约。对于所有其他易受[14,18,19],的Simon算法攻击影响的方案,我们只能说,通过从(Z/2) n转换为 Z/2 n或 Sn,攻击被成功阻止。
下面我们简要概述两个特别值得注意的情况。更多细节请参见附录B。
第一种情况是费斯托尔网络构造,它将随机函数转换为伪随机置换。尽管三轮费斯托尔密码已知经典情况下是安全的[20],但在量子CPA情况下,对于任意轮数都不存在已知的安全性证明。在[18],针对三轮费斯妥密码提出了一种量子选择明文攻击,该攻击同样基于西蒙算法。这种攻击基于以下观察:如果将输入的前半部分固定为两个固定值之一 α0= α1,则输出中包含两个函数fα0, fα1,它们彼此之间是(Z/2)n‐偏移关系。然而,如果我们把费斯妥结构中的每个按位异或替换为模 Z/2n加法,则这两个函数变为Z/2n‐偏移关系,此时攻击需要一个循环群G的子程序。 HiddenShift子程序。
第二种情况是[14]所称的“量子滑动攻击”,该攻击利用西蒙算法实现线性时间量子选择明文攻击,相较于经典滑动攻击具有指数级加速效果。此攻击针对由 t轮函数 Rk(x) := R(x⊕k)构成的密码Ek,t(x) := k⊕(Rk) t(x)。在攻击中,只需注意到 Ek,t(R(x))是 R(Ek,t(x))相对于密钥 k的移位,然后应用西蒙算法即可。为了抵御此攻击,我们只需在群G上操作,设定Ek,t(x) := k+(Rk) t(x)和 Rk(x) := R(x+ k)。显然,此时相同的攻击将需要一个关于 Hidden Shift的子程序。
32

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



