- 选择任意数字 <
- 计算gcd( , )。这里可以使用辗转相除法来计算。
- 若gcd( , ) ≠ 1,则我们有了一个 非平凡的因数,因此这部份结束了。
- 否则,利用下面的周期寻找子程序(Period-finding subroutine,下面会列出)来找出下面这个函数的周期 :
- ,
换句话说,找出在里面的阶,或者最小的正整数 令
。
- 若 是奇数,回到第一步。
- 若 /2 ≡ -1 (mod ),回到第一步。
- gcd(a /2+1, )与gcd(a /2-1, )至少有一个是 非平凡的因数。分解完成。
此演算法包含两个部份。演算法的第一部份是将因数分解问题转成寻找一个函式的周期,而且这部份可以用传统方式实作。第二部份则是使用量子傅立叶变换来搜寻这个函式的周期,而且这一部份是量子加速这整个演算法的理由。
小于N且互质于N的整数组成一个有限大,且对乘法同馀N的群。在步骤3之后,我们有一个属于这个群的整数a。既然这个群是有限的,a必有一个有限大的阶r,也就是最小的正整数令
因此可知,N是a r − 1的因数。先假设我们有能力获得r,而且r是偶数。则
r是令a r ≡ 1最小的正整数,所以(a r / 2 − 1)必定不能整除于N。若(a r / 2 + 1)也不整除于N的话,则N必定与(a r / 2 − 1)或者(a r / 2 + 1)有一个非显然的公因数。
证明:为了简化,我们分别用u和v表示(a r / 2 − 1)和(a r / 2 + 1)。N | uv,故kN = uv(k是某个整数)。假设gcd(v, N) = 1:则必定存在某个整数m和n令mv + nN = 1 (这是最大公因数的一个性质)。两边同乘以u,我们得到mkN + nuN = u, 所以 N | u,从而产生矛盾(前文提到(a r / 2 − 1)必定不能整除于N)。故假设不成立,即gcd(v, N) ≠ 1。用类似的方法,可以得知若(a r / 2 + 1)不能整除于N, gcd(u, N) ≠ 1。故得证u和v不同时与N互质。
这给予我们一个N的因数分解。若N是两个质数的乘积,则这是唯一可能的分解。
秀尔的周期寻找演算法非常倚赖量子计算机同时处于许多状态的能力。物理学家称呼这个特性为状态的“叠加”。在计算函数f的周期时,我们会同时估计这个函数的所有点。
不过,量子物理不允许我们直接取得这些资讯。测量会令观测结果塌陷到其中一个可能的结果,并摧毁所有其他可能。如果不是因为不可复制原理,我们可以先测量f(x)而非测量x,再制造几个结果态的拷贝(将会是多个有著同样的f(x)的态的叠加)。对这些态上的x的测量将会给出能给出相同f(x)的不同的x,由此推导出周期来。因为我们不能复制完全相同的量子状态,这个方法行不通。因此在这里我们需要小心的转变叠加态,使其成为可以以高机率回传正确答案的状态。这可使用量子傅立叶变换来达成。
因此秀尔在这里必须解决三个“实作”的问题,而且速度必须够快,也就是可这些问题可以用量子闸个数为的多项式来实作。
- 制造状态的叠加。
这可以藉著对所有输入的量子位元使用哈达玛闸(Hadamard gate)来达成。另一个方法是使用量子傅立叶变换(如下述)。
- 以量子变换实作函数f。
要达成这件事情,秀尔使用了反复平方以完成模的取幂变换。值得注意的是,这一个步骤比起量子傅立叶变换还难以实作,需要更多辅助的量子位元以及明显更多的闸来完成。
- 进行量子傅立叶变换。
利用受控旋转闸(controlled rotation gate)和哈达玛闸,秀尔设计了一个量子傅立叶变换的线路,只使用了个闸(Q = 2q)。[5]
在这一些变换之后,测量会给出周期r的近似值。为简明起见,假设存在y令yr/Q是整数,则测量到y的机率是1(理论上)。要推导出这个,我们首先注意到对任何整数b,
- 。因此Q/r的平方能告诉我们测量y的概率,因为b大致上取Q/r个值,因此概率为。有r个y使得yr/Q为整数,也有r种可能,所以机率总和为1。
Note:另一种解释秀尔演算法的方式是将之视为是乔装过后的量子相位估计演算法。
Vandersypen, Lieven M. K.; Steffen, Matthias; Breyta, Gregory; Yannoni, Costantino S.; Sherwood, Mark H. & Chuang, Isaac L., Experimental realization of Shor's quantum factoring algorithm using nuclear magnetic resonance, Nature, 2001, 414 (6866): 883–887, doi:10.1038/414883a.
Braunstein, S. L.; Caves, C. M.; Jozsa, R.; Linden, N.; Popescu, S.; Schack, R., Separability of Very Noisy Mixed States and Implications for NMR Quantum Computing, Phys. Rev. Lett, 1999, 83 (5): 1054–1057, doi:10.1103/PhysRevLett.83.1054
Lanyon, B. P.; Weinhold, T. J.; Langford, N. K.; Barbieri, M.; James, D. F. V.; Gilchrist, A. & White, A. G., Experimental Demonstration of a Compiled Version ofshor's algorithm with quantum Entanglement, Physical Review Letters, 2007, 99 (25): 250505, doi:10.1103/PhysRevLett.99.250505
- Nielsen, Michael A. & Chuang, Isaac L., Quantum Computation and Quantum Information, Cambridge University Press, 2000.
- Phillip Kaye, Raymond Laflamme, Michele Mosca, An introduction to quantum computing, Oxford University Press, 2007, ISBN 019857049X
- "Explanation for the man in the street" (页面存档备份,存于互联网档案馆) by Scott Aaronson, "approved (页面存档备份,存于互联网档案馆)" by Peter Shor. (Shor wrote "Great article, Scott! That’s the best job of explaining quantum computing to the man on the street that I’ve seen."). Scott Aaronson suggests the following 12 references as further reading (out of "the 10105000 quantum algorithm tutorials that are already on the web."):
- Shor, Peter W., Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer, SIAM J.Sci.Statist.Comput., 1999, 41 (2): 303–332, doi:10.1137/S0036144598347011, . Revised version of the original paper by Peter Shor ("28 pages, LaTeX. This is an expanded version of a paper that appeared in the Proceedings of the 35th Annual Symposium on Foundations of Computer Science, Santa Fe, NM, Nov. 20--22, 1994. Minor revisions made January, 1996").
- Quantum Computing and Shor's Algorithm (页面存档备份,存于互联网档案馆), Matthew Hayward, 2005-02-17, imsa.edu, LaTeX2HTML version of the original 2750 line LaTeX document (页面存档备份,存于互联网档案馆), also available as a 61 page PDF (页面存档备份,存于互联网档案馆) or postscript (页面存档备份,存于互联网档案馆) document.
- Quantum Computation and Shor's Factoring Algorithm (页面存档备份,存于互联网档案馆), Ronald de Wolf, CWI and University of Amsterdam, January 12, 1999, 9 page postscript document.
- Shor's Factoring Algorithm (页面存档备份,存于互联网档案馆), Notes from Lecture 9 of Berkeley CS 294-2, dated 4 Oct 2004, 7 page postscript document.
- Chapter 6 Quantum Computation (页面存档备份,存于互联网档案馆), 91 page postscript document, Caltech, Preskill, PH229.
- Quantum computation: a tutorial (页面存档备份,存于互联网档案馆) by Samuel L. Braunstein.
- The Quantum States of Shor's Algorithm (页面存档备份,存于互联网档案馆), by Neal Young, Last modified: Tue May 21 11:47:38 1996.
- A now-circular reference via the Wikipedia copy of this article (页面存档备份,存于互联网档案馆); clearly Aaronson's link originally reached the 20 Feb 2007 version (页面存档备份,存于互联网档案馆).
- III. Breaking RSA Encryption with a Quantum Computer: Shor's Factoring Algorithm (页面存档备份,存于互联网档案馆), LECTURE NOTES ON QUANTUM COMPUTATION, Cornell University, Physics 481-681, CS 483; Spring, 2006 by N. David Mermin. Last revised 2006-03-28, 30 page PDF document.
- arXiv quant-ph/0303175 Shor's Algorithm for Factoring Large Integers. C. Lavor, L.R.U. Manssur, R. Portugal (页面存档备份,存于互联网档案馆). Submitted on 29 Mar 2003. This work is a tutorial on Shor's factoring algorithm by means of a worked out example. Some basic concepts of Quantum Mechanics and quantum circuits are reviewed. It is intended for non-specialists which have basic knowledge on undergraduate Linear Algebra. 25 pages, 14 figures, introductory review.
- arXiv quant-ph/0010034 Shor's Quantum Factoring Algorithm, Samuel J. Lomonaco, Jr (页面存档备份,存于互联网档案馆), Submitted on 9 Oct 2000, This paper is a written version of a one hour lecture given on Peter Shor's quantum factoring algorithm. 22 pages.
- Chapter 20 Quantum Computation (页面存档备份,存于互联网档案馆), from Computational Complexity: A Modern Approach, Draft of a book: Dated January 2007, Comments welcome!, Sanjeev Arora and Boaz Barak, Princeton University.