Shor 量子算法原理浅析

学习这个算法时候网上介绍不多,只能硬啃论文;本片文章是对Shor算法原理的一个简单描述,以及它用于解决什么样的问题,其实最关键的部分(关于QFT 量子傅里叶变换的内容)我并不理解,但这并不影响我们以数论的现有知识来学习理解这个算法。


 背景

众所周知,RSA体制的安全性是建立在大数分解这一难题基础上的,严格说来,也只是涉及到两个大质数相乘所得到的合数。自RSA 诞生伊始,人们对其安全性的理论论证就一直未停止过。由于 RSA 中指数运算保持了输入的乘积结构,这一点令人甚为担忧。

1994年,AT&T公司研究人员Shor发现了分解两个大质因数相乘合数的量子算法(质数就是素数),对RSA公钥密码体制产生强烈冲击;它不仅给量子计算机研究注入了活力,引发了量子计算和量子计算机研究的热潮。


 原理

         设n1、n2为两个奇质数(大于2的素数),而N = n1·n2,Shor算法概述如下:

(1)随机取正整数y,要求y<N且与N互素,用量子计算机和相关算法求r = ordN(y),即y是关于N的阶数,r是使得yΞ 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·n,t为正整数,t不一定为素数,假设可继续分解为t = r·s,r、s为大于等于1的正整数。

          (x+1)(x-1)  =  (r·n1)·(s·n2) 这是等式

   于是上式有两个解:

   1. x1+1 Ξ 0 mod n,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量子算法的原理与程序模拟_朱缨

 

posted @ 2019-10-23 11:26  爱吃砂糖橘的白龙  阅读(6199)  评论(0编辑  收藏  举报