Shor 量子算法原理浅析
学习这个算法时候网上介绍不多,只能硬啃论文;本片文章是对Shor算法原理的一个简单描述,以及它用于解决什么样的问题,其实最关键的部分(关于QFT 量子傅里叶变换的内容)我并不理解,但这并不影响我们以数论的现有知识来学习理解这个算法。
背景
1994年,AT&T公司研究人员Shor发现了分解两个大质因数相乘合数的量子算法(质数就是素数),对RSA公钥密码体制产生强烈冲击;它不仅给量子计算机研究注入了活力,引发了量子计算和量子计算机研究的热潮。
原理
设n1、n2为两个奇质数(大于2的素数),而N = n1·n2,Shor算法概述如下:
(1)随机取正整数y,要求y<N且与N互素,用量子计算机和相关算法求r = ordN(y),即y是关于N的阶数,r是使得yr Ξ 1 mod N成立的最小正整数( 也就是说,函数f(t) = yt mod N的最小正周期为r)。
(2)若r为奇数,则返回(1)重新取y。并重新求r,直到r为偶数为止。
(3)r为偶数,取 x Ξ yr/2 mod N。
故 x2 Ξ 1 mod N
(x+1)(x-1) Ξ 0 mod N
于是设 (x+1)(x-1) = t·N = t·n1·n2 ,t为正整数,t不一定为素数,假设可继续分解为t = r·s,r、s为大于等于1的正整数。
(x+1)(x-1) = (r·n1)·(s·n2) 这是等式
于是上式有两个解:
1. x1+1 Ξ 0 mod n1 ,x1-1 Ξ 0 mod n2 解为 n1 = gcd(x+1,N) , n2 = gcd(x-1,N)
2. x2+1 Ξ 0 mod n2 ,x2-1 Ξ 0 mod n1 解为 n1 = gcd(x-1,N) , n2 = gcd(x+1,N)
接下来使用辗转相除法分别求出x+1和N的最大公约数、x-1和N的最大公约数分别为n1和n2。
综上,已知N,选取随机数y<N且互素,最重要的一步是求y关于N的阶r,要求r为偶数。进而由r计算出x: x Ξ yr/2 mod N 。最后求x+1、x-1和N的最大公约数分别为n1、n2 。
评价
Shor算法的核心是利用数论的一些定理,将大数因子分解过程转化为求某个函数的周期,由于在量子环境下,可以以极高的效率实现量子傅里叶变换(QFT),从而可以对大数质因子进行分解。
参考
1. 量子Shor算法与RSA体制的安全性_曹正军
2. SHOR量子算法的原理与程序模拟_朱缨