夸克-胶子部分子模型是大多数散射实验研究强子组成夸克和胶子结构的概念基础。部分子模型的依据来自微扰 QCD (pQCD),特别是 QCD 因式分解定理。基本的部分子图像——例如,参见 Feynman 在参考文献 [1] 中对它的原始表述——本质上是强子成分之间散射的半经典图像,其中特定的明确事件在特定的时空范围内以特定的顺序发生。事实上,退相干是通常所教的部分子模型的主要成分之一 [2]。本文旨在强调 QCD 因式分解推导的目标通常与通常被认为是量子信息论和量子力学解释领域的主题重叠 [3]。首先,以图片的形式回顾一下深非弹性散射 (DIS) 的部分子模型的基本描述,这很有用。它经历了图 1 所示的阶段。首先,电子和质子以高速在质心框架中相互接近(图 1-A)。质子被认为是一簇小成分。
背景。Shor 的突破性算法 [13] 表明,因式分解和计算离散对数的问题可以在量子计算机上在多项式时间内解决。从那时起,许多作者引入了该算法的变体并改进了其成本估算,以尽量减少对量子比特、门数或电路深度的要求 [2、15、14、8、5、12]。由于 Shor 算法被认为是量子计算机与密码分析最相关的应用,这些工作也旨在确定量子计算架构可能变得“与密码相关”的点。在本文中,我们专注于空间优化。考虑群 Z ∗ N 中的离散对数 (DL) 问题,其中 N 为素数。让我们记 n = log 2 N。我们取乘法生成器 G。A 的 DL 是数量 D,使得 A = GD mod N。它是通过对在 Z 2 上定义的函数 f ( x, y ) = G x A − y mod N 调用 Shor 的量子周期查找子程序来找到的。这个子程序只是在所有 ( x, y ) ∈ [0; 2 m 1 − 1] × [0; 2 m 2 − 1] 上调用叠加的 f,执行 QFT 和测量(图 1)。经过一些有效的后处理后,可以找到周期 ( D, 1 )。因此,逻辑量子比特的数量取决于两个参数:输入大小 m 1 + m 2 和工作区大小。对 RSA 半素数 N 进行因式分解可以简化为求解 Z ∗ N 中的 DL 实例,其中 DL 的预期大小为 1
摘要本文重点研究了在 Z ∗ N 中因式分解和计算离散对数的量子算法中逻辑量子比特数量的优化。这些算法包含一个模 N 幂运算电路,它占了大部分成本,包括量子比特和运算成本。在本文中,我们表明,仅使用 o (log N ) 个工作量子比特,就可以获得模幂运算输出的最低有效位。我们将此结果与 May 和 Schlieper 的截断技术 (ToSC 2022) 以及 Shor 算法的 Eker˚aH˚astad 变体 (PQCrypto 2017) 相结合,仅使用 d + o (log N ) 个量子比特来解决 Z ∗ N 中的离散对数问题,其中 d 是对数的比特大小。因此,我们可以使用 n/2 + o(n) 个量子位来因式分解 n 位 RSA 模数,而当前设想的实现需要大约 2n 个量子位。我们的算法使用余数系统,并且以可参数化的概率成功。由于它是完全经典的,我们已经实现并测试了它。对于 RSA 因式分解,我们可以达到深度 O(n2log3n) 的门数 O(n3),然后必须将其乘以 O(logn)(Eker˚aH˚astad 所需的测量结果数)。要因式分解一个 RSA-2048 实例,我们估计 1730 个逻辑量子位和 236 个 Toffili 门就足以进行一次运行,而该算法平均需要 40 次运行。为了解决 2048 位安全素数组中 224 位(112 位经典安全性)的离散对数实例,我们估计 684 个逻辑量子位就足够了,并且每次使用 2 32 Toffili 门进行 20 次运行。
我们需要知道实现 Shor 算法所需的量子计算资源。有了这些知识,量子计算机开发人员就可以设定目标,确定哪些领域值得进一步关注,而加密行业可以估计多久可以开发出能够抵御量子计算攻击的加密系统。实际大规模量子计算所需的量子资源和预期性能已经得到研究 [5-8]。然而,由于这些分析的结果因基本假设的不同而有很大差异,因此有必要分析不同条件下所需的资源。我们按照图 1 所示进行资源分析;其结构类似于典型的资源分析结构,但也有一些不同。与其他研究的相似之处如下。为了实现低门错误率,使用了 QEC 代码。因此,该算法被分解为通用门。为了确定要使用的距离,我们分析了算法中基本门步骤的数量 Q,并且由于使用了 T 门,我们确认了用于魔态蒸馏的额外量子比特的数量。此外,通过获取同时使用的 T 门数量,可以确定要准备多少个 T 门工厂。不同之处在于:我们假设逻辑量子比特之间存在全对全连接。为了减少物理量子比特的数量,我们使用旋转平面代码。由于此代码在执行 CNOT 操作时需要进行晶格手术,因此我们对 CNOT 门使用了额外的辅助量子比特。我们还使用了 Fowler 和 Gidney 的魔法状态蒸馏协议 [ 9 ]。
到目前为止,使用 Shor 算法在量子计算机上分解的最大数字是 35。这张海报表明,在当前的量子计算机上使用该算法可以分解更大的数字。图中展示了数字 1031167 的因式分解以及 IBM 量子系统的结果。Shor 算法 [1] 于 1994 年提出,但直到现在量子技术才发展到可以实现它的水平。该算法的瓶颈是模幂函数 (MEF) 的实现,它是这张海报以及我的论文 [2] 的主题。该算法的量子部分的任务是找到 MEF f (x) = ax mod N 的周期 r(a 是适当选择的整数,N 是要分解的数字),为此,有必要构建和运行所谓的周期查找器量子电路。一旦找到周期 r,就可以使用以下公式计算因子:gcd( ar/ 2 ± 1 , N )。MEF 可以按以下方式分解:
AI-A.SSE.2 识别并使用表达式的结构来确定重写它的方法。(与代数 II 共享标准)例如,x 3 – x 2 - x = x(x 2 - x - 1) 53 2 – 47 2 = (53 + 47) (53 - 47) 16x 2 - 36 = (4x) 2 - (6) 2 = (4x + 6) (4x - 6) = 4(2x + 3) (2x - 3) 或 16x 2 - 36 = 4(4x 2 - 9) = 4(2x + 3) (2x - 3) -2x 2 + 8x + 10 = -2(x 2 – 4x – 5) = -2(x - 5) (x + 1) x 4 + 6x 2 - 7 = (x 2 + 7)(x 2 - 1) = (x 2 + 7)(x + 1)(x - 1) 注意:代数 I 表达式仅限于一个变量的数值和多项式表达式。使用因式分解技巧,例如因式分解出最大公约数、因式分解两个完全平方数之差、因式分解形式为 ax 2 +bx+c 且首项系数为 1 的三项式,或结合多种方法完全因式分解。因式分解不会涉及通过分组和分解立方和差来进行因式分解。
AI-A.SSE.2 识别并使用表达式的结构来确定重写它的方法。 (与代数 II 共享标准)例如,x 3 – x 2 - x = x(x 2 - x - 1) 53 2 – 47 2 = (53 + 47) (53 - 47) 16x 2 - 36 = (4x) 2 - (6) 2 = (4x + 6) (4x - 6) = 4(2x + 3) (2x - 3) 或 16x 2 - 36 = 4(4x 2 - 9) = 4(2x + 3) (2x - 3) -2x 2 + 8x + 10 = -2(x 2 – 4x – 5) = -2(x - 5) (x + 1) x 4 + 6x 2 - 7 = (x 2 + 7)(x 2 - 1) = (x 2 + 7)(x + 1)(x - 1) 注意:代数 I 表达式仅限于单变量的数值和多项式表达式。使用因式分解技巧,例如因式分解出最大公因数、因式分解两个完全平方数之差、因式分解形式为 ax 2 +bx+c 且首项系数为 1 的三项式,或使用多种方法组合进行完全因式分解。因式分解不会涉及通过分组和因式分解立方和差来进行因式分解。
使用合适的量子计算机,当今常用的非对称密码系统,尤其是 RSA 和 ECC,可以通过 Shor 的整数因式分解算法完全破解。早在 2001 年,IBM 和其他公司就以相对简单的方式演示了这项技术。RSA 基于这样的假设:对大整数进行因式分解在计算上非常困难,虽然这对于非量子计算机仍然有效,但 Shor 的算法表明,在理想的量子计算机中,对整数进行因式分解是有效的。诸如增加这些算法的密钥长度之类的缓解技术并不能显著提高安全性,这意味着需要新的和/或替代的非对称算法。
使用合适的量子计算机,许多当今常用的非对称密码系统,尤其是 RSA 和 ECC,都可以使用 Shor 的整数因式分解算法完全破解。早在 2001 年,IBM 和其他公司就以相对简单的方式演示了这项技术。RSA 基于这样的假设:对大整数进行因式分解在计算上非常困难,虽然这对于非量子计算机仍然有效,但 Shor 的算法表明,在理想的量子计算机中,对整数进行因式分解是有效的。诸如增加这些算法的密钥长度之类的缓解技术并不能显著提高安全性,这意味着需要新的和/或替代的非对称算法。
近年来量子计算的发展对 RSA 公钥密码系统构成了严重威胁。RSA 密码系统的安全性从根本上依赖于数论问题的计算难度:素数分解(整数因式分解)。Shor 的量子因式分解算法理论上可以在多项式时间内解答计算问题。本文使用 IBM Qiskit 对 Shor 的 RSA 素数分解量子因式分解算法进行了实验和演示。根据用户时间和成功概率评估了量子程序的性能。结果表明,RSA 公钥中更重要的公共模数 N 提高了因式分解的计算难度,需要更多的量子位才能解决。进一步增强 Shor 的 oracle 函数的实现对于提高成功概率和减少所需的尝试次数至关重要。