Shor算法核心是利用数论中的一些定理,将大多数因式分解转化为求某一个函数的周期,其基本思想是:利用量子并行性通过一步计算获得所有的函数值,然后通过测量函数得到相关联的函数自变量的叠加态,并对其进行量子快速傅立叶变换。其实质就是将大数因子分解转化为量子FFT在多项式步骤内完成的求一个函数的周期问题。由于在量子环境下可以以极高的效率实现量子傅立叶变换,从而使对大多数因子分解成为可能。
Shor算法之所以能进行大数因数分解,是因为量子计算具有高度并行能力。这种高度并行能力来源于子计算机的基本单元-量子比特,它具有奇妙的性质,这种性质必须用量子力学来解释,因此称为量子特性。
1、量子比特:在经典计算机中,运算的基本单元是比特,它的基本状态是二值布尔逻辑状态0或在量子计算机中,运算的基本单元是量子比特(q-bit),它的基本状态是两种状态的叠加,如果规定原子在基态时记为∣0>,在激发态时记为∣1>,则原子除了保持上述两种状态之外,还可以处于两种态的线性叠加,记为∣Φ>a∣0>+b∣1>。一个量子比特能同时表示0和1,两个量子比特能同时表示00、01、10、11,三个比特能同时表示8个二进制数000、001、011、100、101、110及111,更多的以此类推。
2、量子寄存器:存储一系列量子比特的体系称为量子寄存器。假如有一个由三个量子比特构成的寄存器,则在某一时刻一个量子寄存器可以存储8个状态,而不是经典的计算机中有1个状态。
例如:若要求一个函数f(n),n=0-7,如果是用量子计算机来求解则在原理上要简洁的多,只需要用一个量子存储器,把各q-bit制备到(∣0>+∣1)/(√2)态上就一次完成了对8个数的赋值,此时存储器成为叠加态∣Φ>,然后对其运行进行相应的幺正变换已完成函数f(n)的功能,变换后的存储器内就保存了所需的8个结果。这种同时进行的多态操作,即量子并行计算,正是量子计算的奥秘所在。也是Shor算法的特殊所在。