#阅读“Quantum algorithms for computing short discrete logarithms and factoring RSA integers”一文,对文章稍作一些我的见解
本文主要讲的是用于计算短离散对数的广义算法的应用,包括计算短离散对数和分解RSA整数。虽然这个算法比一般分解算法复杂得多,但是它对量子计算机提出更小的要求。
计算有限循环群中的短离散对数的算法是通过引入修改后的Shor算法,重点是Shor算法的量子傅里叶变换。
Shor算法
在一个量子计算机上面,要分解整数N, 舒尔算法的运作需要多项式时间 (时间是log N的某个多项式这么长,log N在这里的意义是输入的档案长度)。 更精确的说,这个算法花费O((log N))的时间,展示出质因子分解问题可以使用量子计算机以多项式时间解出,因此在复杂度类 BQP里面。
选择任意数字a < N 计算gcd(a, N)。 这里可以使用辗转相除法来计算。
若 gcd(a, N) ≠ 1,有了一个N非平凡的因子,这部份结束了。
否则,利用下面的周期寻找副函式来找出下面这个函数的周期r:
若r是奇数,回到第一步。
若ar /2 ≡ -1 (mod N), 回到第一步。
gcd(ar/2 ± 1, N) 是N非平凡的一个因子。分解完成。
量子部份:周期寻找副函式(Period-finding subroutine) 这个算法使用的量子线路是为了在给定一个固定常数 N 以及一个任意常数 a之下,找出f(x) = ax mod N所设定的。给定N, 找出Q = 2q且合乎(这同时表示)。输入和输出量子位元暂存器需要储存从0到Q-1所有值的叠加态,因此分别需要q个量子位元。这里使用看起来比所需的数量还要更多一倍的量子位元,保证了即使周期r的大小逼近N/2,也至少有N个不同的x会产生相同的 f(x)。
量子傅里叶变换
离散量子傅里叶变换(QFT)被用来通过建设性的干涉来实现振幅放大。
QFT将n个比特寄存器中的每个状态映射到
所以QFT映射系统功能
计算短离散对数
计算短离散对数的广义算法由两个阶段组成, 一个初始的量子阶段和一个经典的后处理阶段。
初始的量子阶段用量子算法描述,输入g和x = [d] g得到一对(j,k)。
量子算法
令m为符合0<d<2的m次方 的最小整数,并设为接近m / s的整数。假设g的阶数r至少为2 + m + 2d,本节所描述的量子算法将根据g和x = [d] g的输入计算并输出一对(j,k)。然后将一组这样的对输入到经典算法以恢复d。
其中第一和第二寄存器的长度为λ+ m和λ qubits。
计算[a] g☉ [-b] x并将结果存储在第三个寄存器中
计算第二寄存器的第一寄存器的大小为2的(λ+m)次方的QFT和第二寄存器的大小为2的λ次方的QFT以获得
观察系统的测量结果,得到(j,k)和[e] g。
后处理阶段
该算法如下进行以从{(j1,k1),...,(js,ks)}选出一个d
测试u的最后一个组件是否为d,如果是则返回d。如果找不到d或者搜索不可行,则算法失败。
根据要实现该算法的量子计算机的特定架构,可能需要在实现的设计和优化方面做出不同的选择。
算法的应用
计算短离散对数
用于计算短离散对数的量子算法可以用来攻击依赖于该问题的计算难以处理的非对称密码方案的某些实例。 这样一个应用的一个具体例子就是当安全素数组与短指数结合使用时,攻击Diffi-Hellman超过有限域。 在选择和比较依赖于离散对数问题的计算难解性的非对称密码方案的域参数时,应当考虑到计算量子计算机上短离散对数的有效专用算法的存在。
分解RSA整数
设G是阶次r的循环群。 令r0是一个已知的近似值,使得0≤r-r0 <2m。 在边信息r0下计算阶数r的问题然后可以被重新设计为一个短离散对数问题: 1.设g是G的一个生成元。计算x = g-r0。 那么x≡gr-r0。 2.从g和x计算短离散对数d = r-r0。 3.计算顺序r = d + r0 。
题外话
量子计算机的最核心的是来自于相干性。这个是物理层面上的,经典的计算机是永远也不可能有这种相干性的。相干性有了superposition,这就导致了物理意义上的同时对不同态的运算。但是由于技术等原因,量子计算机还有很多需要突破的问题。而本文提到的算法对量子计算机提出了更小的要求,对于量子计算机今后的有关发展提出了建设性的想法。
将因式分解问题重写为短离散对数问题,并使用算法计算短离散对数,从而得到两个因子。 有一种方法可以看出,我们知道φ(N)的近似值N. 这给了我们一个短的离散对数问题,该求解算法不需要事先知道这个顺序。
因为构建和运行庞大而复杂的量子计算机似乎很困难。 如果一个量子算法的复杂度可能会降低,那么就量子计算机的要求而言,这很可能意味着能够执行算法和不能执行该算法之间的差异。在硬件方面仍需不断进步去支持该算法的实现。实现该算法的量子计算机的特定架构,可能需要在实现的设计和优化方面做出不同的选择。
鄙人不才,有错误请轻踩。