Home
探索 Uedu
學生控制台
註冊會員/登入
研究知情同意中心
問卷中心
教師控制台
課程設定
支援與訊息
Uptime 數據

UeduGPTs

--

Jupyters

5

UG26 CISOSE26
臺北 AQI 56 · 臺中 AQI 48 · 臺南 AQI 49 · 高雄 AQI 48

AI 回覆桌面通知

AI 助教回覆完成時顯示桌面通知

聊天訊息通知

同學在討論區發送訊息時通知

聲音通知

每當有新通知時播放提示音

數論

原根、二次剩餘與離散對數:另一把數論之鎖

從模 p 乘法群的循環結構,走進二次剩餘、乘法函數與離散對數的攻防,看見 RSA 之外那把支撐 Diffie–Hellman 與橢圓曲線密碼的鎖

已知 $a$、$b$ 與 $g^x \bmod p$,為什麼算回 $x$ 卻像在大海撈針?

你在入門篇已經和質數、同餘、以及 RSA 那把「容易上鎖、難以解鎖」的數論之鎖打過照面。那把鎖的安全性,建立在一個非常具體的不對稱:把兩個質數相乘很快,但把乘積分解回去很慢。

但密碼學裡還有另一把鎖,運作邏輯完全不同。它不靠「分解難」,而靠「找指數難」。考慮一個質數 $p$ 與一個固定的底數 $g$。給你 $x$,計算

$$ y \equiv g^{x} \pmod{p} $$

只需要 $O(\log x)$ 次乘法(快速冪)。但反過來,給你 $y$ 要還原 $x$,目前沒有已知的有效率演算法——這就是離散對數問題(discrete logarithm problem, DLP)。Diffie–Hellman 金鑰交換、ElGamal、乃至整個橢圓曲線密碼學(ECC)都站在它的肩膀上。

要真正理解這把鎖為什麼難開,我們得走進入門篇沒有細談的領域:模 $p$ 乘法群的內部結構、原根(primitive root)、二次剩餘(quadratic residue),以及把這一切黏合起來的乘法函數。這篇文章就帶你深入這個「同餘世界的幾何」。

數論進階概念示意圖

模 $p$ 的乘法群:一個被忽略的「圓」

入門篇把同餘當成「時鐘算術」,但更深刻的觀點是:模 $p$ 的非零餘數,在乘法之下構成一個群(group),記作 $(\mathbb{Z}/p\mathbb{Z})^{\times}$。

這個群有 $p-1$ 個元素:$\{1, 2, \dots, p-1\}$。它封閉於乘法(因為 $p$ 是質數,兩個非零數的乘積不會變成 $0$),每個元素都有反元素(這正是費馬小定理的推論:$a^{p-1}\equiv 1$,所以 $a\cdot a^{p-2}\equiv 1$)。

關鍵的深刻事實是:

$(\mathbb{Z}/p\mathbb{Z})^{\times}$ 是一個循環群(cyclic group)。

「循環」意思是,存在某個元素 $g$,它的各次方 $g^1, g^2, \dots, g^{p-1}$ 恰好把整個群跑過一遍,不重不漏。這個 $g$ 就叫做模 $p$ 的原根

舉個例子,取 $p=7$,試試 $g=3$:

$$ 3^1=3,\quad 3^2=2,\quad 3^3=6,\quad 3^4=4,\quad 3^5=5,\quad 3^6=1 \pmod 7 $$

你看,$\{3,2,6,4,5,1\}$ 正好是 $\{1,2,3,4,5,6\}$ 的重排。所以 $3$ 是模 $7$ 的原根。換句話說,乘法群其實「長得像」一個有 $p-1$ 個刻度的圓——原根就是那根一步走一格、繞一圈剛好回到起點的指針。

這個「圓」的存在,正是離散對數有意義的前提:$y\equiv g^x$ 把指數 $x$(一個加法世界的量)對應到 $y$(一個乘法世界的量)。離散對數,就是這個對應的反函數。

看一個例子:用原根「翻譯」乘法為加法

延續 $p=7$、$g=3$。我們可以做一張「離散對數表」(也叫指標表,index table):

$y$ $1$ $2$ $3$ $4$ $5$ $6$
$\log_3 y$ $0$ $2$ $1$ $4$ $5$ $3$

有了這張表,模 $7$ 的乘法就退化成模 $6$ 的加法。例如算 $5\times 6 \pmod 7$:

$$ \log_3(5\times 6)\equiv \log_3 5+\log_3 6 = 5+3 = 8\equiv 2\pmod 6 $$

而 $\log_3$ 值為 $2$ 的是 $y=2$,所以 $5\times 6\equiv 2\pmod 7$。驗證:$5\times 6=30\equiv 2\pmod 7$。正確。

這正是對數的精神——把乘法變加法。差別只在於:實數的對數可以用級數連續逼近,而離散對數沒有「連續」可言,整張表彷彿被徹底打亂,看不出 $y$ 和 $\log_g y$ 之間有任何可利用的規律。難,就難在這裡。

二次剩餘:哪些數開得了平方根?

走進這個圓之後,一個自然的問題是:在模 $p$ 的世界裡,哪些數有平方根?

一個數 $a$(與 $p$ 互質)若存在 $x$ 使得 $x^2\equiv a\pmod p$,就稱 $a$ 為二次剩餘(quadratic residue, QR);否則為二次非剩餘

模 $7$ 時,把 $1$ 到 $6$ 平方看看:

$$ 1^2=1,\ 2^2=4,\ 3^2=2,\ 4^2=2,\ 5^2=4,\ 6^2=1 \pmod 7 $$

得到的集合是 $\{1,2,4\}$。所以模 $7$ 的二次剩餘恰好有三個,非剩餘 $\{3,5,6\}$ 也恰好三個。這不是巧合:對奇質數 $p$,二次剩餘和非剩餘永遠各佔一半,各 $\frac{p-1}{2}$ 個。

從循環群的視角看,原因一目了然。$a$ 是二次剩餘 $\iff$ $\log_g a$ 是偶數。因為 $x^2\equiv a$ 翻譯成指標就是 $2\log_g x\equiv \log_g a\pmod{p-1}$,而 $p-1$ 為偶數,這個方程有解的充要條件正是 $\log_g a$ 為偶數。圓上一半的刻度是偶數,一半是奇數——剛好對半分。

勒讓德符號與歐拉判別法

我們用勒讓德符號(Legendre symbol)簡潔地記錄這件事:

$$ \left(\frac{a}{p}\right)= \begin{cases} +1 & a \text{ 是二次剩餘}\\ -1 & a \text{ 是二次非剩餘}\\ 0 & p\mid a \end{cases} $$

歐拉判別法(Euler's criterion)給了它一個可計算的公式:

$$ \left(\frac{a}{p}\right)\equiv a^{\frac{p-1}{2}}\pmod p $$

直覺是這樣:由費馬小定理 $a^{p-1}\equiv 1$,所以 $a^{(p-1)/2}$ 是 $1$ 的平方根,只能是 $\pm 1$。若 $a=x^2$,則 $a^{(p-1)/2}=x^{p-1}\equiv 1$;若 $a$ 是非剩餘,恰好落到 $-1$。

驗證 $a=2$、$p=7$:$2^{3}=8\equiv 1\pmod 7$,所以 $\left(\frac{2}{7}\right)=+1$,$2$ 確實是剩餘(前面看到 $3^2\equiv 2$)。再驗 $a=3$:$3^3=27\equiv 6\equiv -1\pmod 7$,所以 $3$ 是非剩餘,與前面的清單吻合。

二次剩餘不是抽象遊戲。它是 Goldwasser–Micali 加密、Rabin 密碼系統、以及許多零知識證明協定的核心難題——「二次剩餘性問題(quadratic residuosity problem)」在合數模下被認為是困難的。

把結構黏起來:乘法函數與歐拉 $\varphi$

到目前為止我們都在單一質數 $p$ 上工作。但 RSA 的模數是 $n=pq$,一旦離開質數,循環群的漂亮結構就會碎裂、重組。負責描述這個重組的,是乘法函數(multiplicative function)

一個算術函數 $f$ 若滿足:當 $\gcd(m,n)=1$ 時 $f(mn)=f(m)f(n)$,就稱為乘法函數。入門篇出現過的歐拉函數 $\varphi(n)$(小於 $n$ 且與 $n$ 互質的數的個數)正是其中最重要的一員:

$$ \varphi(p^k)=p^k-p^{k-1},\qquad \varphi(mn)=\varphi(m)\varphi(n)\ \ (\gcd(m,n)=1) $$

於是對 $n=\prod p_i^{k_i}$,

$$ \varphi(n)=n\prod_{p\mid n}\left(1-\frac{1}{p}\right) $$

乘法函數的威力在於:只要知道一個質數冪上的值,就能拼出所有合數上的值。 整個數論大廈很多時候就是這樣由質數「組裝」出來的。這也呼應了中國剩餘定理(CRT)的精神——$(\mathbb{Z}/n\mathbb{Z})^\times$ 在 $n=pq$ 時會「分解」成 $(\mathbb{Z}/p\mathbb{Z})^\times \times (\mathbb{Z}/q\mathbb{Z})^\times$ 的直積。

動手試試:莫比烏斯反演的一次體驗

乘法函數家族裡還有一位低調但極關鍵的成員:莫比烏斯函數(Möbius function) $\mu(n)$。

$$ \mu(n)= \begin{cases} 1 & n=1\\ (-1)^r & n \text{ 為 } r \text{ 個相異質數之積(無平方因子)}\\ 0 & n \text{ 含平方因子} \end{cases} $$

它的神奇之處在於這個求和恆等式:

$$ \sum_{d\mid n}\mu(d)= \begin{cases} 1 & n=1\\ 0 & n>1 \end{cases} $$

驗證 $n=12$:其因數 $1,2,3,4,6,12$,對應 $\mu$ 值為 $1,-1,-1,0,1,0$,總和 $=0$。成立。

這個「正負抵消」的性質讓我們能做莫比烏斯反演(Möbius inversion):若 $g(n)=\sum_{d\mid n}f(d)$,則可反推

$$ f(n)=\sum_{d\mid n}\mu(d)\,g\!\left(\frac{n}{d}\right) $$

它就像離散版的微積分基本定理,把「累加」反過來變成「差分」。在計算質數計數函數、各種篩法、甚至物理的容斥問題中,它都是主力工具。試著用它驗證 $\sum_{d\mid n}\varphi(d)=n$ 的反演形式,你會親手摸到乘法函數彼此勾連的骨架。

攻擊離散對數:難,但不是無限難

回到開頭那把鎖。如果離散對數真的只能「查整張表」,那麼對 $p$ 大到 $2048$ 位元時根本不可行——表有 $2^{2048}$ 列。但聰明的演算法能把難度從「指數」壓到「平方根」級。

Baby-step Giant-step(小步大步法) 的核心觀念是把指數寫成 $x=im+j$,其中 $m=\lceil\sqrt{p-1}\,\rceil$。於是

$$ g^{x}=y \;\Longrightarrow\; g^{j}=y\,(g^{-m})^{i} $$

預先算好所有 $g^j$($j=0,\dots,m-1$)存進雜湊表(baby steps),再逐一試 $y(g^{-m})^i$(giant steps)找碰撞。時間與空間都是 $O(\sqrt{p})$——對 $p\approx 10^{12}$ 來說,從一兆次降到一百萬次,是天壤之別。

這也是為什麼現代密碼學要求群階含有大質因數:若 $p-1$ 全是小質數之積(所謂 smooth),Pohlig–Hellman 演算法可以用 CRT 把問題拆到各個小質數子群上各個擊破,整把鎖瞬間崩潰。安全的參數必須讓 $p-1$ 至少有一個夠大的質因數。

重點回顧

  • 乘法群是循環的:$(\mathbb{Z}/p\mathbb{Z})^{\times}$ 由原根 $g$ 生成,整個同餘乘法世界其實是一個 $p-1$ 刻度的「圓」,這是離散對數成立的舞台。
  • 指標把乘法變加法:模 $p$ 的乘法 $\cong$ 模 $p-1$ 的加法,但這座橋(離散對數)目前沒有有效率的反向走法,正是 Diffie–Hellman 與 ECC 的安全根基。
  • 二次剩餘對半分:$a$ 是二次剩餘 $\iff$ 其指標為偶數 $\iff a^{(p-1)/2}\equiv 1$(歐拉判別法);勒讓德符號是記錄這件事的記號。
  • 乘法函數從質數組裝合數:$\varphi$、$\mu$ 等函數只要知道質數冪上的值即可推得全部,莫比烏斯反演則是把「累加」反推回「原函數」的離散基本定理。
  • 難度可被壓到平方根:BSGS 把離散對數從 $O(p)$ 降到 $O(\sqrt p)$;參數安全要求群階含大質因數,否則 Pohlig–Hellman 會把鎖拆碎。

深入探討(研究所視角)

把上述零件拉到研究所的高度,會看到三條彼此交織的主線。

其一:二次互反律與類域論的源頭。 勒讓德符號滿足高斯稱為「黃金定理」的二次互反律(quadratic reciprocity):對相異奇質數 $p,q$,

$$ \left(\frac{p}{q}\right)\left(\frac{q}{p}\right)=(-1)^{\frac{p-1}{2}\cdot\frac{q-1}{2}} $$

這條看似關於平方根的恆等式,其實是類域論(class field theory) 的最初投影——它把「在 $\mathbb{Q}$ 上一個質數如何分裂」這件事,編碼成模算術的對稱性。Artin 互反律把它推廣為阿貝爾擴張的伽羅瓦群與 idèle 類群之間的同構,而 Langlands 綱領則進一步把非阿貝爾的情形與自守表示(automorphic representations)連結,是當代數論的中軸。

其二:解析數論與 $L$-函數。 莫比烏斯函數不只是組合工具。狄利克雷級數 $\sum_n \mu(n)n^{-s}=1/\zeta(s)$ 把 $\mu$ 直接綁到黎曼 $\zeta$ 函數上,而質數定理 $\pi(x)\sim x/\ln x$ 的證明,本質上等價於 $\zeta(s)$ 在 $\mathrm{Re}(s)=1$ 上無零點。黎曼猜想——所有非平凡零點都落在 $\mathrm{Re}(s)=\frac12$ 上——等價於對 $\sum_{n\le x}\mu(n)=O(x^{1/2+\varepsilon})$ 這樣的誤差界,也就是說 $\mu$ 的正負必須抵消得「幾乎像隨機」。乘法函數的均值行為(Halász、Granville–Soundararajan 理論)至今仍是活躍的研究前沿。

其三:從有限體到橢圓曲線。 把模 $p$ 的乘法群換成橢圓曲線上的有理點群 $E(\mathbb{F}_p)$,離散對數問題就升級為 ECDLP。它的群階由 Hasse 定理約束在 $p+1-2\sqrt p \le \#E(\mathbb{F}_p)\le p+1+2\sqrt p$,且至今沒有像數體篩法(NFS)那樣的次指數演算法可破——這正是 ECC 能用遠小的金鑰達到同等安全的原因。然而一旦 Shor 演算法在容錯量子電腦上落地,無論是整數分解、模 $p$ 離散對數還是 ECDLP,都會被多項式時間攻破。這把後量子密碼學(lattice-based、isogeny-based)推上檯面——其中 isogeny 路線(如 CSIDH)正是把「兩條橢圓曲線之間的同源映射」當成新的單向函數,可以說數論在密碼學裡的故事,又繞回了曲線與群的幾何。

如果你想動手探索,建議從 SageMath 或 Python 的 sympy 開始:用 n_orderprimitive_rootlegendre_symboldiscrete_log 親手量一量不同 $p$ 的乘法群結構,觀察 $p-1$ 的質因數分解如何決定一把鎖的真實強度。你會發現,所謂「安全」,從來不是一句口號,而是一道可以被計算、被驗證、被攻擊的數論不等式。

AI 共讀助教正在陪你讀:原根、二次剩餘與離散對數:另一把數論之鎖
嗨!我是這篇文章的共讀助教,只根據〈原根、二次剩餘與離散對數:另一把數論之鎖〉的內容回答。可以問我「解釋某段」「舉個例子」「出題考我」,或反白文中段落後點下方「解釋選取段落」。