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量子算法的原理與程序模擬_朱纓

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM