<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shor演算法 on kenji.blog</title><link>http://kenji.blog/zh-tw/tags/shor%E6%BC%94%E7%AE%97%E6%B3%95/</link><description>Recent content in Shor演算法 on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 05 Sep 2026 22:09:21 +0900</lastBuildDate><atom:link href="http://kenji.blog/zh-tw/tags/shor%E6%BC%94%E7%AE%97%E6%B3%95/index.xml" rel="self" type="application/rss+xml"/><item><title>量子電腦真的會破壞RSA加密嗎？〜Shor演算法與目前的發展階段〜</title><link>http://kenji.blog/zh-tw/p/shors-algorithm-and-rsa-breaking/</link><pubDate>Sat, 05 Sep 2026 22:09:21 +0900</pubDate><guid>http://kenji.blog/zh-tw/p/shors-algorithm-and-rsa-breaking/</guid><description>&lt;img src="http://kenji.blog/p/shors-algorithm-and-rsa-breaking/quantum_breaking_rsa_1788613722990.jpg" alt="Featured image of post 量子電腦真的會破壞RSA加密嗎？〜Shor演算法與目前的發展階段〜" />&lt;h2 id="前言密碼技術與量子電腦的交會點">前言：密碼技術與量子電腦的交會點
&lt;/h2>&lt;p>在現代網路社會中，保護通訊機密的基礎是「公開金鑰加密」。其中最具代表性的，是1977年由Ron Rivest、Adi Shamir和Leonard Adleman三位所開發的「RSA加密」。從我們每天使用的線上購物支付、網站瀏覽（HTTPS）到郵件收發，RSA加密一直扮演著網際網路基礎設施心臟的角色。&lt;/p>
&lt;p>然而，隨著「量子電腦」的出現，有人指出這種安全性可能會從根本上被顛覆。媒體上偶爾會出現「只要量子電腦完成，全世界的密碼和加密都會在幾秒鐘內被破解」這樣聳動的標題。究竟這是不是真的呢？&lt;/p>
&lt;p>本文將深入探討傳統的密碼破解手法GNFS（普通數體篩法）以及使用量子電腦破解密碼的決定性演算法「Shor演算法（Shor&amp;rsquo;s Algorithm）」的運作原理。我們將用淺顯易懂的方式解說量子傅立葉變換與尋找週期等進階概念，並詳細驗證目前在NISQ（Noisy Intermediate-Scale Quantum）時代量子硬體的現狀，以及實際要破解RSA-2048所需克服的障礙。&lt;/p>
&lt;hr>
&lt;h2 id="rsa加密的根基質因數分解的困難度">RSA加密的根基：質因數分解的困難度
&lt;/h2>&lt;p>RSA加密的安全性取決於數學中極度簡單的不對稱性。那就是「將兩個巨大的質數相乘很簡單，但要從相乘的結果（合成數）中找出原本的兩個質數（進行質因數分解）卻極其困難」的事實。&lt;/p>
&lt;p>舉例來說，假設有 $ p = 61 $、$ q = 53 $ 兩個質數。要計算這個乘法 $ N = p \times q = 3233 $ 只需要一瞬間。但是，如果只給你「3233」這個數字，要你解出「這是哪兩個質數相乘的結果？」，數字越大，計算量就會呈爆炸性增長。&lt;/p>
&lt;p>在目前主流的RSA-2048中，使用了長度為2048位元，換算成十進位約為617位數的巨大合成數 $ N $。只要能將這個 $ N $ 進行質因數分解，加密就等同於被破解了。&lt;/p>
&lt;h3 id="傳統電腦的挑戰gnfs普通數體篩法">傳統電腦的挑戰：GNFS（普通數體篩法）
&lt;/h3>&lt;p>為了從根本解決質因數分解問題，數學家和密碼學家長年來開發了各種演算法。其中，目前在傳統電腦上被認為最快的方法是 &lt;strong>普通數體篩法（GNFS: General Number Field Sieve）&lt;/strong> 。&lt;/p>
&lt;p>GNFS為了將巨大的數字 $ N $ 進行質因數分解，會將整數環的計算擴展到更抽象的代數體（Number Field）來進行解析。大致的流程如下：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>選擇多項式&lt;/strong> ：尋找一個以 $ N $ 為根，且具有適當次數和係數的多項式 $ f(x) $。&lt;/li>
&lt;li>&lt;strong>收集資料（篩選）&lt;/strong> ：在有理數體及代數體上，尋找大量可以分解成小質數（平滑數，Smooth numbers）的數字對。這個過程被稱為「篩選」，也是最耗時的部分。&lt;/li>
&lt;li>&lt;strong>矩陣生成與簡約&lt;/strong> ：根據收集到的關係式生成巨大的稀疏矩陣（大部分元素為0的矩陣），並使用線性代數的手法（如區塊Lanczos法等）來求出解。&lt;/li>
&lt;li>&lt;strong>計算平方根&lt;/strong> ：最後在代數體上計算平方根，推導出 $ N $ 的因數（質因數）。&lt;/li>
&lt;/ol>
&lt;p>GNFS的計算量非漸近地被評估為 $ O(\exp((\sqrt[3]{\frac{64}{9}} + o(1)) (\log N)^{\frac{1}{3}} (\log \log N)^{\frac{2}{3}})) $。這被稱為「次指數時間（Sub-exponential）」的計算量。雖然比指數時間快，但比多項式時間（Polynomial time）要慢得多。&lt;/p>
&lt;p>實際上，2020年有一個國際研究團隊使用GNFS成功將RSA-250（829位元，250位數的合成數）進行了質因數分解。這項計算動用了全世界的運算資源，耗費了約2700 CPU核心年的龐大計算時間。然而，如果是2048位元，所需的計算量據說會膨脹到宇宙壽命的數兆倍，無論讓現在的超級電腦如何平行運作，都無法在現實時間內用傳統手法破解。&lt;/p>
&lt;hr>
&lt;h2 id="量子電腦的王牌shor演算法">量子電腦的王牌：Shor演算法
&lt;/h2>&lt;p>這時候登場的，是1994年由Peter Shor發表的「Shor演算法」。這個演算法劃時代地證明了質因數分解問題可以在量子電腦上以 &lt;strong>多項式時間&lt;/strong> （ $ O((\log N)^3) $ ）被解開。次指數時間和多項式時間的差距是決定性的，這意味著在理論上，只要使用量子電腦，RSA加密就會被徹底破壞。&lt;/p>
&lt;h3 id="shor演算法的整體流程">Shor演算法的整體流程
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[輸入想進行質因數分解的數字 N] --&amp;gt; B[選擇一個隨機整數 a]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C{a 與 N 的&amp;lt;br&amp;gt;最大公因數}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|大於1| D[很幸運地發現了質因數！]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|1 互質| E[量子電腦登場]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt; F[利用量子傅立葉變換求出函數 f_x = a^x mod N 的&amp;lt;br&amp;gt;週期 r]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G{週期 r 為偶數 且&amp;lt;br&amp;gt;a^r/2 ≢ -1 mod N}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|Yes| H[計算最大公因數 gcd_a^r/2 ± 1, N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I((成功進行質因數分解！))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|No| B
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Shor演算法並非直接解開質因數分解的問題，而是運用數論定理將其轉換為另一個問題——「尋找週期問題（Period Finding Problem）」，並利用量子電腦的特性來高速解開它。&lt;/p>
&lt;h3 id="步驟1從質因數分解轉換為尋找週期問題傳統處理">步驟1：從質因數分解轉換為尋找週期問題（傳統處理）
&lt;/h3>&lt;p>演算法的第一個步驟在傳統電腦上進行。
針對想要進行質因數分解的數字 $ N $，選擇一個與 $ N $ 互質（最大公因數為1）的隨機整數 $ a $（ $ 1 &lt; a &lt; N $ ）。如果剛好最大公因數不是1，那麼當時發現的公因數就是 $ N $ 的質因數，破解也就完成了，但這個機率極低。&lt;/p>
&lt;p>接著，我們考慮以下的同餘方程式列：
$ f(x) = a^x \pmod N $&lt;/p>
&lt;p>若將 $ x = 1, 2, 3, \dots $ 代入這個函數 $ f(x) $ 中，數值看起來似乎是隨機的，但因為是在有限範圍內計算，所以必定會在某個地方回到原來的值，重複同樣的數列。我們將這個重複的週期稱為 $ r $。也就是說，
要找到符合 $ a^r \equiv 1 \pmod N $ 的最小正整數 $ r $ 的問題，這就是「尋找週期問題」。&lt;/p>
&lt;p>如果能找到這個週期 $ r $，且 $ r $ 為偶數，則 $ a^r - 1 \equiv 0 \pmod N $，利用因式分解的公式可以變形成為
$ (a^{r/2} - 1)(a^{r/2} + 1) \equiv 0 \pmod N $。
從這裡，利用歐幾里得演算法計算 $ N $ 和 $ a^{r/2} \pm 1 $ 的最大公因數，就有極高的機率能得到 $ N $ 的質因數。&lt;/p>
&lt;p>為了用傳統電腦找到週期 $ r $，說到底還是需要指數級的步驟，無法加速。但是，量子電腦卻能在一瞬間（以多項式時間）找到這個週期 $ r $。&lt;/p>
&lt;h3 id="步驟2準備量子狀態並使其疊加">步驟2：準備量子狀態並使其疊加
&lt;/h3>&lt;p>從這裡開始就是量子電腦發揮作用的地方了。
量子電腦使用的是能同時擁有「0」和「1」狀態的「量子位元（Qubit）」。在Shor演算法中，我們準備了兩個暫存器：一個用來儲存輸入（第一暫存器），另一個用來儲存計算結果（第二暫存器）。&lt;/p>
&lt;p>首先，我們將被稱為阿達瑪閘（Hadamard gate）的量子閘操作應用到第一暫存器的所有量子位元上。藉此，第一暫存器會處於所有可能的 $ x $ 值（從 $ 0 $ 到 $ 2^n-1 $。$ n $ 是一個夠大的位元數）的 &lt;strong>均勻疊加狀態&lt;/strong> 。&lt;/p>
&lt;p>換句話說，在量子電腦的內部，創造出了一個同時並存著 $ x=0, 1, 2, 3, \dots $ 等無數輸入值的狀態。&lt;/p>
&lt;h3 id="步驟3量子模冪運算quantum-modular-exponentiation">步驟3：量子模冪運算（Quantum Modular Exponentiation）
&lt;/h3>&lt;p>接著，以第一暫存器的疊加狀態為輸入，計算 $ f(x) = a^x \pmod N $，並將結果儲存到第二暫存器中。
由於這項計算是作為量子電路上的么正變換（Unitary transformation）來執行的，所以在保持疊加的狀態下，會「同時平行地（量子平行性）」進行對所有 $ x $ 的 $ f(x) $ 計算。&lt;/p>
&lt;p>此時，整個量子系統的空間處於
$ |x, a^x \bmod N\rangle $
這種狀態的龐大疊加。&lt;/p>
&lt;p>然而，如果在這裡單純地去測量（觀測）第二暫存器，就會隨機且機率性地選出一個 $ a^x \bmod N $ 的值，第一暫存器的 $ x $ 也會連帶地確定為單一一個值。這樣一來，就和用傳統電腦計算一次沒什麼兩樣，無法找到週期 $ r $。&lt;/p>
&lt;p>在量子力學的規則下，我們無法直接窺視疊加狀態的內容。那麼，我們該如何萃取出整體的「週期」這項全域資訊呢？&lt;/p>
&lt;h3 id="步驟4量子傅立葉變換qft-quantum-fourier-transform">步驟4：量子傅立葉變換（QFT: Quantum Fourier Transform）
&lt;/h3>&lt;p>突破這道難關，正是Shor演算法的精髓所在，也就是對第一暫存器應用 &lt;strong>量子傅立葉變換（QFT）&lt;/strong> 。&lt;/p>
&lt;p>在進行測量之前，我們先分析函數 $ f(x) $ 的波動性質。假設我們觀測了第二暫存器，並得到某個值 $ y $。於是，第一暫存器的狀態會坍縮為「能讓 $ a^x \pmod N = y $ 成立的所有 $ x $ 的疊加」。
這個 $ x $ 的值會呈現 $ x_0, x_0 + r, x_0 + 2r, x_0 + 3r, \dots $ 這種以週期 $ r $ 為間隔離散排列的狀態（一種梳狀的機率振幅分佈）。&lt;/p>
&lt;p>我們對這個狀態應用量子傅立葉變換（QFT）。就像傳統的離散傅立葉變換將時間域的訊號轉換到頻率域一樣，QFT會讓量子狀態的機率振幅產生干涉。&lt;/p>
&lt;p>套用QFT後，藉由量子干涉效應，不與週期 $ r $ 產生共鳴（相位不一致）的錯誤答案，其機率會互相抵消而趨近於零（破壞性干涉），只有帶有週期 $ r $ 資訊的正確答案，其機率會被放大（建設性干涉）。&lt;/p>
&lt;h3 id="步驟5測量與連分數展開傳統後處理">步驟5：測量與連分數展開（傳統後處理）
&lt;/h3>&lt;p>應用QFT後，若是測量第一暫存器，會有極高的機率得到一個接近 $ c \approx \frac{j \cdot 2^n}{r} $ 形式的整數 $ c $（ $ j $ 為未知整數，$ 2^n $ 為暫存器的大小）。&lt;/p>
&lt;p>將這個測量結果 $ c $ 送回傳統電腦，製造出 $ \frac{c}{2^n} \approx \frac{j}{r} $ 這個分數。然後，利用被稱為「連分數展開（Continued fraction expansion）」的數學方法來計算近似值，就能漂亮地找出作為分母的週期 $ r $。&lt;/p>
&lt;p>只要知道了 $ r $，接下來就能利用步驟1的公式計算出 $ N $ 的質因數，RSA加密也就被完全破解了。&lt;/p>
&lt;hr>
&lt;h2 id="現今量子電腦nisq的實力與課題">現今量子電腦（NISQ）的實力與課題
&lt;/h2>&lt;p>雖然在理論上是完美的Shor演算法，但如果被問到「明天RSA加密就會被破解嗎？」，答案明確是「不會」。其原因在於目前量子電腦硬體技術的限制。&lt;/p>
&lt;h3 id="nisqnoisy-intermediate-scale-quantum時代">NISQ（Noisy Intermediate-Scale Quantum）時代
&lt;/h3>&lt;p>我們現在所處的是被稱為「NISQ」的時代。NISQ設備雖然擁有數十到數百個實體量子位元，但對雜訊卻極為脆弱。&lt;/p>
&lt;p>量子位元很容易受到熱或電磁波等外部環境的影響，導致量子狀態被破壞的「去相干（decoherence，失去量子糾纏）」或是操作量子閘時的「閘錯誤」頻繁發生。如果試圖執行像Shor演算法這樣非常深（運算步驟數極度龐大）的量子電路，錯誤就會在計算過程中不斷累積，最終的輸出結果將變成毫無意義的純雜訊。&lt;/p>
&lt;h3 id="實體量子位元與邏輯量子位元">實體量子位元與邏輯量子位元
&lt;/h3>&lt;p>為了解決這個錯誤問題，不可或缺的就是「量子錯誤更正（Quantum Error Correction）」。
雖然傳統電腦也有使用錯誤更正碼，但因為有禁止複製量子狀態的「量子不可複製定理」，使得量子錯誤更正變得非常複雜。&lt;/p>
&lt;p>在量子錯誤更正中，會使用「表面碼（Surface Code）」等技術，將許多充滿雜訊的「實體量子位元」組合起來，創造出一個沒有錯誤的完美「邏輯量子位元」。&lt;/p>
&lt;p>以目前的錯誤率為前提，據估算要製造出1個邏輯量子位元，大約需要1,000到10,000個實體量子位元。這被稱為「錯誤更正的經常性負擔（overhead）」。&lt;/p>
&lt;h3 id="破壞rsa-2048需要多少資源">破壞RSA-2048需要多少資源？
&lt;/h3>&lt;p>那麼，為了解碼RSA-2048而實際去跑Shor演算法，究竟需要多少資源呢？&lt;/p>
&lt;p>根據Craig Gidney（Google）和Martin Ekerå在2021年發表的論文中劃時代的資源估算，若使用最佳化過的Shor演算法並利用表面碼進行錯誤更正，將需要以下資源：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>邏輯量子位元數&lt;/strong> ：約 4,096 個&lt;/li>
&lt;li>&lt;strong>實體量子位元數&lt;/strong> ： &lt;strong>約 2000萬個&lt;/strong> （假設錯誤率在 $10^{-3}$ 左右）&lt;/li>
&lt;li>&lt;strong>計算時間&lt;/strong> ：約 8小時（需要數百萬到數十億次的實體閘操作）&lt;/li>
&lt;/ul>
&lt;p>相對應地，目前量子硬體的發展階段又是如何呢？
IBM在2023年底發表的超導量子處理器「Condor」為 1,121 個量子位元。此外，雖然也有關於生成邏輯量子位元的突破性研究發表（例如哈佛大學和QuEra公司等利用中性原子量子電腦成功生成了48個邏輯量子位元），但目前仍未達到能長時間連續執行「無雜訊完美運算」的階段。&lt;/p>
&lt;p>從數千個實體量子位元擴展到 &lt;strong>2000萬個&lt;/strong> 實用的實體量子位元（並且必須相互連接、在極低溫下穩定運作、還能以超高速處理控制訊號的系統），在工程上存在著難以跨越的障礙（配線問題、冷卻能力的極限、控制電子設備的肥大化）。許多專家預測，要實現能破解RSA-2048的「容錯量子電腦（FTQC）」，至少還需要10年到30年，甚至更長的時間。&lt;/p>
&lt;hr>
&lt;h2 id="悄悄逼近的store-now-decrypt-later威脅與pqc的黎明">悄悄逼近的「Store Now, Decrypt Later」威脅與PQC的黎明
&lt;/h2>&lt;p>如果認為「還要等10年以上，所以可以放心」，那就太早下定論了。目前存在著許多必須確保未來數十年機密性的資料，例如國家機密資訊、醫療資料以及長期的基礎設施設計等。&lt;/p>
&lt;p>這裡令人擔憂的是被稱為 &lt;strong>「Store Now, Decrypt Later（現在儲存，稍後解碼）」&lt;/strong> 的攻擊手法。充滿惡意的國家或組織會攔截目前用RSA或ECC（橢圓曲線密碼學）加密的所有通訊資料，並儲存到硬碟裡。然後在10年、20年後，當強大的量子電腦完成的瞬間，利用Shor演算法解開過去所有的資料並將機密曝光。&lt;/p>
&lt;p>為了對抗這種時間差帶來的威脅，以NIST（美國國家標準暨技術研究院）為中心，正急起直追地推動 &lt;strong>「後量子密碼學（PQC: Post-Quantum Cryptography）」&lt;/strong> 的標準化流程。&lt;/p>
&lt;p>PQC是一種基於即使用量子電腦也難以解開（也就是無法應用Shor演算法）的數學問題所建立的新型加密演算法。主要的方法有以下幾種：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>晶格密碼學（Lattice-based cryptography）&lt;/strong> ：以LWE（Learning with Errors）問題等為基礎。在NIST的標準化中為主流（Kyber、Dilithium等）。&lt;/li>
&lt;li>&lt;strong>編碼型密碼學（Code-based cryptography）&lt;/strong> ：取決於解碼錯誤更正碼問題的困難度。&lt;/li>
&lt;li>&lt;strong>多變量多項式密碼學（Multivariate cryptography）&lt;/strong> ：取決於解開多變數聯立二次方程式的困難度。&lt;/li>
&lt;li>&lt;strong>雜湊型數位簽章（Hash-based signatures）&lt;/strong> ：僅依賴於雜湊函數安全性的數位簽章。&lt;/li>
&lt;/ul>
&lt;p>目前，包括Google Chrome和Apple的iMessage等主要軟體和平台，都已經開始進行PQC的導入測試和混合實作了。&lt;/p>
&lt;h2 id="結語">結語
&lt;/h2>&lt;p>量子電腦正從科幻世界的夢想，轉變為現實工程上的挑戰。Shor演算法是數學與量子力學融合的人類偉大智慧結晶，但同時也蘊含著動搖我們數位社會基礎的「破壞性力量」。&lt;/p>
&lt;p>RSA加密並不會明天馬上就無法使用。然而，考量到量子技術的進化以及「Store Now, Decrypt Later」的風險，轉向PQC這場將在密碼史留下紀錄的大規模轉移，已經悄悄開始了。我們現在正目睹資訊安全典範轉移的最前線。&lt;/p></description></item><item><title>【用數學公式完全理解】為何最強古典演算法「GNFS」會敗給量子演算法？質因數分解的典範轉移</title><link>http://kenji.blog/zh-tw/p/gnfs-to-shors-algorithm-math-deepdive/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://kenji.blog/zh-tw/p/gnfs-to-shors-algorithm-math-deepdive/</guid><description>&lt;img src="http://kenji.blog/p/gnfs-to-shors-algorithm-math-deepdive/quantum_vs_gnfs_eyecatch_1788616101508.jpg" alt="Featured image of post 【用數學公式完全理解】為何最強古典演算法「GNFS」會敗給量子演算法？質因數分解的典範轉移" />&lt;p>現代網際網路社會中的資訊安全，主要依賴以RSA密碼為首的公開金鑰密碼系統來保護。RSA密碼安全性的基礎，仰賴於 &lt;strong>「對巨大的合成數進行質因數分解，在計算複雜度上是極度困難的」&lt;/strong> 這個事實。&lt;/p>
&lt;p>本文將解析古典電腦中最強的質因數分解演算法 &lt;strong>「普通數體篩法」&lt;/strong> （General Number Field Sieve, GNFS）的數學機制，並透過數學公式與概念圖，深入探討為何它會被彼得·秀爾（Peter Shor）所發現的 &lt;strong>「Shor演算法」&lt;/strong> 完全擊敗，徹底剖析這場典範轉移。&lt;/p>
&lt;hr>
&lt;h2 id="1-古典計算中質因數分解的策略從費馬質因數分解法的發展">1. 古典計算中質因數分解的策略：從費馬質因數分解法的發展
&lt;/h2>&lt;p>質因數分解問題，是對於給定的合成數 $N$，找出滿足 $N = p \times q$ 的質數 $p, q$ 的問題。&lt;/p>
&lt;p>基本的想法，可以歸結為尋找滿足以下同餘式的非平凡 $x, y$：&lt;/p>
$$ x^2 \equiv y^2 \pmod N $$
&lt;p>將其變形後可得：&lt;/p>
$$ x^2 - y^2 \equiv 0 \pmod N $$
$$ (x - y)(x + y) \equiv 0 \pmod N $$
&lt;p>在此，若 $x \not\equiv \pm y \pmod N$，藉由計算 $\gcd(x-y, N)$ 或 $\gcd(x+y, N)$，就能獲得 $N$ 的非平凡因數。這個事實成為了GNFS等近代質因數分解演算法的基礎。&lt;/p>
&lt;hr>
&lt;h2 id="2-最強古典演算法普通數體篩法gnfs的深淵">2. 最強古典演算法：「普通數體篩法」（GNFS）的深淵
&lt;/h2>&lt;p>&lt;strong>「GNFS」&lt;/strong> 是目前已知針對古典電腦的質因數分解演算法中速度最快的。它的時間複雜度需要次指數（Sub-exponential）時間。&lt;/p>
&lt;h3 id="gnfs的計算複雜度">GNFS的計算複雜度
&lt;/h3>&lt;p>當數字 $N$ 的位數為 $b = \log_2 N$ 時，GNFS的計算複雜度可以表示如下：&lt;/p>
$$ O\left( \exp \left( \left(\frac{64}{9} b\right)^{1/3} (\log b)^{2/3} \right) \right) $$
&lt;p>從這個公式可以看出，複雜度並非多項式時間，而是比指數函數稍微慢一點的 &lt;strong>「次指數時間」&lt;/strong> 。儘管如此，當位數增加時，計算時間仍會以天文數字般增長。&lt;/p>
&lt;h3 id="gnfs的數學機制">GNFS的數學機制
&lt;/h3>&lt;p>GNFS大致可以分為四個步驟：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>多項式選擇 (Polynomial Selection)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>篩法 (Sieving)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>矩陣化簡 (Matrix Reduction)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>計算平方根 (Square Root)&lt;/strong>&lt;/li>
&lt;/ol>
&lt;h4 id="21-多項式選擇與代數體">2.1. 多項式選擇與代數體
&lt;/h4>&lt;p>首先，選擇以整數為係數的不可約多項式 $f(x)$ 與 $g(x)$。它們被設定為在 modulo $N$ 之下具有共同的根 $m$。也就是說，&lt;/p>
$$ f(m) \equiv 0 \pmod N $$
$$ g(m) \equiv 0 \pmod N $$
&lt;p>通常，$g(x)$ 會被選為一次多項式 $g(x) = x - m$。若將 $f(x)$ 的根設為 $\alpha$，則可建構出名為 $\mathbb{Q}(\alpha)$ 的 &lt;strong>「代數體」&lt;/strong> （Number Field）。透過同態映射 $\phi: \alpha \mapsto m$，來比較 $\mathbb{Q}(\alpha)$ 環上的運算與一般整數環 $\mathbb{Z}$ 的運算。&lt;/p>
&lt;h4 id="22-篩法-sieving">2.2. 篩法 (Sieving)
&lt;/h4>&lt;p>接著，大量搜尋互質的整數對 $(a, b)$。目的是尋找使得以下兩個數值皆為 &lt;strong>「B-smooth」&lt;/strong> （僅由較小的質因數組成）的配對：&lt;/p>
&lt;ol>
&lt;li>$a - bm$ （在整數環上的值）&lt;/li>
&lt;li>$b^d f(a/b)$ （對應到代數體上的範數 $N(a - b\alpha)$）&lt;/li>
&lt;/ol>
&lt;p>這裡使用了一種稱為 &lt;strong>「篩法」&lt;/strong> （Sieve）的快速搜尋手法。藉此，能從龐大的候選者中有效率地萃取出符合條件的 $(a, b)$ 配對。&lt;/p>
&lt;h4 id="23-矩陣化簡-linear-algebra-over-gf2">2.3. 矩陣化簡 (Linear Algebra over GF(2))
&lt;/h4>&lt;p>從收集到的配對 $(a, b)$ 建構出指數向量，並在 $\mathbb{F}_2$ （元素僅有0與1的體）上求出巨大稀疏矩陣的左零空間。&lt;/p>
&lt;p>為了讓關係式 $ \prod (a_i - b_i m) $ 與 $ \prod (a_i - b_i \alpha) $ 分別成為平方元素，我們找出向量 $v$ 作為解。這無非就是解以下的線性方程組：&lt;/p>
$$ M \mathbf{x} \equiv \mathbf{0} \pmod 2 $$
&lt;p>在此階段，會活用如區塊蘭佐斯法（Block Lanczos Algorithm）或區塊維德曼法（Block Wiedemann Algorithm）等高度數值計算演算法。&lt;/p>
&lt;h4 id="24-計算平方根">2.4. 計算平方根
&lt;/h4>&lt;p>最後，在代數體與整數環兩邊皆取平方根，導出 $x^2 \equiv y^2 \pmod N$ 這個關係式。接著計算 $\gcd(x-y, N)$，便能獲得因數。&lt;/p>
&lt;hr>
&lt;h2 id="3-量子計算帶來的突破shor演算法">3. 量子計算帶來的突破：「Shor演算法」
&lt;/h2>&lt;p>相對於GNFS需要次指數時間，由彼得·秀爾於1994年發表的 &lt;strong>「Shor演算法」&lt;/strong> ，透過使用量子電腦，能以 &lt;strong>「多項式時間」&lt;/strong> 解決這個問題。&lt;/p>
&lt;h3 id="shor演算法的計算複雜度">Shor演算法的計算複雜度
&lt;/h3>&lt;p>當量子位元數為 $O(\log N)$ 時，時間複雜度如下：&lt;/p>
$$ O((\log N)^3) $$
&lt;p>這意味著計算時間不會相對於位元數產生指數級的爆炸。這是一個驚人的結果：即使是 &lt;strong>「古典計算」&lt;/strong> 需要超過宇宙壽命才能解開的巨大合成數，在 &lt;strong>「量子計算」&lt;/strong> 下也只需數小時至數天即可破解。&lt;/p>
&lt;h3 id="shor演算法的全貌歸結為週期尋找問題">Shor演算法的全貌：歸結為週期尋找問題
&lt;/h3>&lt;p>Shor演算法巧妙地將質因數分解問題歸結為 &lt;strong>「週期尋找問題」&lt;/strong> 。&lt;/p>
&lt;ol>
&lt;li>選擇一個與 $N$ 互質的隨機整數 $a$ （$1 &lt; a &lt; N$）。&lt;/li>
&lt;li>定義函數 $f(x) = a^x \bmod N$。&lt;/li>
&lt;li>尋找 $f(x)$ 的週期 $r$，即尋找使得 $a^r \equiv 1 \pmod N$ 成立的最小正整數 $r$。&lt;/li>
&lt;li>若 $r$ 為偶數，則確認 $a^{r/2} \not\equiv -1 \pmod N$ 是否成立，並計算 $\gcd(a^{r/2} \pm 1, N)$ 來獲得質因數。&lt;/li>
&lt;/ol>
&lt;p>這個步驟3的 &lt;strong>「尋找週期 $r$ 」&lt;/strong> ，正是古典電腦需要耗費指數時間的瓶頸，但量子電腦透過 &lt;strong>「量子疊加」&lt;/strong> 與 &lt;strong>「量子傅立葉轉換」&lt;/strong> （QFT），能在一瞬間解決這個問題。&lt;/p>
&lt;hr>
&lt;h2 id="4-量子傅立葉轉換qft與週期的萃取">4. 量子傅立葉轉換（QFT）與週期的萃取
&lt;/h2>&lt;p>讓我們用數學公式詳細檢視Shor演算法的核心：量子狀態的操作。&lt;/p>
&lt;h3 id="41-產生量子疊加態">4.1. 產生量子疊加態
&lt;/h3>&lt;p>首先，準備兩個量子暫存器。暫存器1保存輸入 $x$ 的疊加態，暫存器2保存函數計算結果 $f(x)$。對初始狀態 $|0\rangle |0\rangle$ 應用阿達馬轉換（Hadamard Transform），創造出所有可能 $x$ 的疊加態。&lt;/p>
$$ |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |0\rangle $$
&lt;p>
（這裡 $Q$ 是滿足 $N^2 \le Q &lt; 2N^2$ 的2的冪次方）&lt;/p>
&lt;p>接著，使用量子神諭（Quantum Oracle） $U_f$ 計算 $f(x) = a^x \bmod N$，並儲存至暫存器2。&lt;/p>
$$ |\psi_2\rangle = U_f |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |a^x \bmod N\rangle $$
&lt;p>假設我們在這裡測量了暫存器2（實際上即使不測量，數學結構也是相同的）。若觀測到某個值 $y = a^{x_0} \bmod N$，則暫存器1的狀態會塌縮成所有滿足 $f(x) = y$ 的 $x$ 的疊加態。假設週期為 $r$，則這樣的 $x$ 將會是 $x_0, x_0 + r, x_0 + 2r, \dots$。&lt;/p>
$$ |\psi_3\rangle = \frac{1}{\sqrt{M}} \sum_{k=0}^{M-1} |x_0 + kr\rangle $$
&lt;p>
（這裡 $M \approx Q/r$ 為項的數量）&lt;/p>
&lt;p>這個狀態蘊含了週期 $r$ 的資訊，但若直接測量，只能得到隨機的 $x_0 + kr$，無法得知週期 $r$。這時QFT就派上用場了。&lt;/p>
&lt;h3 id="42-應用量子傅立葉轉換-quantum-fourier-transform">4.2. 應用量子傅立葉轉換 (Quantum Fourier Transform)
&lt;/h3>&lt;p>QFT是對量子狀態的振幅進行離散傅立葉轉換的操作。QFT對狀態 $|x\rangle$ 的作用定義如下：&lt;/p>
$$ \text{QFT} |x\rangle = \frac{1}{\sqrt{Q}} \sum_{y=0}^{Q-1} e^{2\pi i \frac{xy}{Q}} |y\rangle $$
&lt;p>將其應用於 $|\psi_3\rangle$ 時，會發生相位的干涉（量子干涉）。&lt;/p>
$$ |\psi_4\rangle = \text{QFT} |\psi_3\rangle = \frac{1}{\sqrt{MQ}} \sum_{y=0}^{Q-1} \sum_{k=0}^{M-1} e^{2\pi i \frac{(x_0 + kr)y}{Q}} |y\rangle $$
&lt;p>展開這個式子的和，會出現：&lt;/p>
$$ \sum_{k=0}^{M-1} e^{2\pi i \frac{kry}{Q}} $$
&lt;p>這個幾何級數的和，只有當 $ry/Q$ 接近整數時才會產生建設性干涉（Constructive Interference），在其他情況下則會相互抵消，產生破壞性干涉（Destructive Interference）。&lt;/p>
&lt;p>因此，能以高機率被測量到的狀態 $|y\rangle$，將是滿足以下條件的整數 $y$：&lt;/p>
$$ \frac{y}{Q} \approx \frac{c}{r} $$
&lt;p>
（$c$ 為某個整數）&lt;/p>
&lt;h3 id="43-透過連分數展開找出週期">4.3. 透過連分數展開找出週期
&lt;/h3>&lt;p>藉由測量得到 $y$ 後，利用古典電腦對 $y/Q$ 進行 &lt;strong>「連分數展開」&lt;/strong> （Continued Fraction Expansion）。藉此，計算出 $y/Q$ 的近似分數 $c/r$，便能非常有效率地從分母萃取出週期 $r$ 的候選值。&lt;/p>
&lt;hr>
&lt;h2 id="5-概念模型的比較與典範轉移">5. 概念模型的比較與典範轉移
&lt;/h2>&lt;p>為了直觀理解GNFS與Shor演算法的差異，以下展示使用Mermaid語法的概念圖。&lt;/p>
&lt;h3 id="透過量子電路的shor演算法概念圖">透過量子電路的Shor演算法概念圖
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[初始狀態: 0...0] --&amp;gt; B[Hadamard轉換產生全狀態的疊加]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C[模冪運算 a^x mod N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|量子糾纏| D[塌縮至具週期性的狀態]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> D --&amp;gt; E[量子傅立葉轉換 QFT]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt;|透過干涉放大機率| F[測量: 獲得y]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G[古典處理: 連分數展開]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt; H[發現週期 r]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I[算出N的質因數]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style A fill:#f9f,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style E fill:#bbf,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style I fill:#bfb,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="典範轉移的本質">典範轉移的本質
&lt;/h3>&lt;p>GNFS採取 &lt;strong>「在數學空間（代數體）中尋找關係式」&lt;/strong> 的策略。然而，由於搜尋空間相對於位數呈指數級擴大，使得古典電腦的運算能力（即使包含平行運算），在金鑰長度超過2048位元等情況下，實際上是無法破解的。&lt;/p>
&lt;p>另一方面，Shor演算法利用了 &lt;strong>「量子干涉的波特性」&lt;/strong> 。它同時評估處於疊加態的所有計算路徑，並透過QFT抵消（破壞性干涉）不需要的答案，僅放大（建設性干涉）正確週期答案的機率振幅。藉此，它並非去搜尋空間，而是實現了 &lt;strong>「讓正確答案自己浮現出來」&lt;/strong> 這種完全不同維度的策略。&lt;/p>
&lt;h2 id="6-總結">6. 總結
&lt;/h2>&lt;p>本文深入比較了作為古典極限的 &lt;strong>「GNFS」&lt;/strong> ，以及展現量子計算力量的 &lt;strong>「Shor演算法」&lt;/strong> ，探討了兩者的數學背景與演算法結構。&lt;/p>
&lt;p>GNFS透過多項式選擇與巨大矩陣計算等數學技巧，將計算複雜度壓低至次指數時間；相對地，Shor演算法將量子力學的基本原理（疊加與干涉）與數學工具（QFT）融合，一舉突破至多項式時間。&lt;/p>
&lt;p>目前，尚不存在能夠以實用規模（數千個量子位元）執行Shor演算法的容錯量子電腦（FTQC）。然而，正是這個數學與理論上的典範轉移，成為了現在全世界急於轉換至後量子密碼學（PQC: Post-Quantum Cryptography）的最大理由。&lt;/p></description></item></channel></rss>