為什麼這種減少訂單發現的因素不起作用?
Scott Aaronson 喜歡激勵 Shor 算法中使用的因式分解到週期查找算法,如下所示。
現在,我希望你退後一步,想想這意味著什麼。這意味著,如果我們能找到序列的周期
$$ x \bmod N,\quad x^2 \bmod N, \quad x^3 \bmod N, \quad x^4 \bmod N, \quad \dots $$
然後我們可以了解一些關於主要因素的資訊 $ N $ !特別是,我們可以學習一個除數 $ (p-1)(q-1) $ . 現在,我承認這不如學習 $ p $ 和 $ q $ 他們自己,但請允許我,這是一些東西。事實上,這不僅僅是什麼:事實證明,如果我們可以學習幾個隨機除數 $ (p-1)(q-1) $ (例如,通過嘗試不同的隨機值 $ x $ ),那麼我們很有可能將這些除數放在一起學習 $ (p-1)(q-1) $ 本身。一旦我們知道 $ (p-1)(q-1) $ ,然後我們可以使用更多的小技巧來恢復 $ p $ 和 $ q $ ,我們想要的主要因素。
另見他的演講筆記第 19.2 節(第 156 頁),他在其中闡述了相同的想法。然而,在這兩個論述中,他都以駁斥這個想法結束:
不幸的是,這不適用於 Shor 算法,因為 $ f \colon r \mapsto x^r \bmod N $ 可能不等於 $ \phi(N) $ ,我們最多可以說是周期劃分 $ \phi(N) $ .
但為什麼它不起作用?
正如 Aaronson 自己指出的那樣,通過使用不同的值重複算法 $ x $ 難道沒有機會找到所有的因素嗎? $ \phi(N) $ (或者至少有足夠多的數量以某種方式找出剩餘的因素)?
亞倫森的筆記討論了發現 $ p $ 和 $ q $ 如果我們知道 $ \phi(N) $ 通過求解二次方程 $ X^2-(N-\phi(N)+1)X+N=0 $ 其根源是 $ p $ 和 $ q $ . 這僅適用於 $ N $ 是兩個不同素數的乘積(在大多數感興趣的應用中都是這種情況),如果我們知道 $ \phi(N) $ 確切地。
關於 RSA 和乘法階數不常被提及的是,儘管乘法階數除 $ \phi(N) $ ,它永遠不等於它。事實上,它總是除以較小的數量 $ \lambda(N) $ , 的Carmichael函式 $ N $ 有時等於它。在兩個不同的質因數的情況下 $ p $ 和 $ q $ , $ \lambda(N)=\mathrm{LCM}(p-1,q-1) $ . Shor 的算法很有可能實現 $ \lambda(N) $ 並且多次執行的 LCM 應該給出準確的值。然後一個人知道(在兩個主要情況下) $ \phi(N)=\mathrm{GCD}(p-1,q-1)\lambda(N) $ 並且可能希望用盡 GCD 的可能值以便使用二次方程。
人們可以開始建造 $ p $ 和 $ q $ 使這個 GCD 變大(這不是很好地利用時間)專門阻止二次方程恢復。相反,我們更喜歡教“隨機平方根”恢復只需要 $ \lambda(N) $ ,它適用於具有超過 2 個主要因子的模數,並且不會通過嘗試選擇來有效地阻止 $ p $ 和 $ q $ 以奇怪的方式。
ETA:進一步思考,而不是耗盡可能的值 $ \mathrm{GCD}(p-1,q-1) $ on 可以拿 GCD 的 $ N-1 $ 和 $ \lambda(N) $ 和亂七八糟。這可能會導致 $ \phi(N) $ 簡而言之,在兩個素數情況下,但細節開始比單位描述的平方根更多地涉及。