基本介紹
- 中文名:舒爾算法
- 外文名:Shor's algorithm
- 領域:計算機編程
簡介,整數分解,實際套用,質因數,
簡介
在一個量子計算機上面,要分解整數N,秀爾算法的運作需要多項式時間(時間是logN的某個多項式這么長,logN在這裡的意義是輸入的檔案長度)。更精確的說,這個算法花費O((logN))的時間,展示出質因數分解問題可以使用量子計算機以多項式時間解出,因此在複雜度類BQP裡面。這比起傳統已知最快的因數分解算法,普通數域篩選法還要快了一個指數的差異。
秀爾算法非常重要,因為它代表使用量子計算機的話,我們可以用來破解已被廣泛使用的公開密鑰加密方法,也就是RSA加密算法。RSA算法的基礎在於假設了我們不能很有效率的分解一個已知的整數。就目前所知,這假設對傳統的(也就是非量子)電腦為真;沒有已知傳統的算法可以在多項式時間內解決這個問題。然而,秀爾算法展示了因數分解這問題在量子計算機上可以很有效率的解決,所以一個足夠大的量子計算機可以破解RSA。這對於建立量子計算機和研究新的量子計算機算法,是一個非常大的動力。
在2001年,IBM的一個小組展示了秀爾算法的實例,使用NMR實驗的量子計算機,以及7個量子位元,將15分解成3×5。然而,對IBM的實驗的是否是量子計算的真實展示,則有一些疑慮出現,因為沒有纏結現象被發現。在IBM的實驗之後,有其他的團隊以光學量子位元實驗秀爾算法,並強調其纏結現象可被觀察到。
整數分解
在數學中,整數分解(英語:integer factorization)又稱素因數分解(prime factorization),是將一個正整數寫成幾個約數的乘積。例如,給出45這個數,它可以分解成(3^2)×5。根據算術基本定理,這樣的分解結果應該是獨一無二的。這個問題在代數學、密碼學、計算複雜性理論和量子計算機等領域中有重要意義。
實際套用
質因數
質因數(或稱質因子)在數論里是指能整除給定正整數的質數。根據算術基本定理,不考慮排列順序的情況下,每個正整數都能夠以唯一的方式表示成它的質因數的乘積。兩個沒有共同質因子的正整數稱為互質。因為1沒有質因子,1與任何正整數(包括1本身)都是互質。只有一個質因子的正整數為質數。
將一個正整數表示成質因數乘積的過程和得到的表示結果叫做質因數分解。顯示質因數分解結果時,如果其中某個質因數出現了不止一次,可以用冪次的形式表示。例如360的質因數分解是:
其中的質因數2、3、5在360的質因數分解中的冪次分別是3,2,1。
數論中的不少函式與正整數的質因子有關,比如取值為n的質因數個數的函式和取值為n的質因數之和的函式。它們都是加性函式,但並非完全加性函式。