高中數學拓展/進階模算術
| HSME |
| 內容 |
|---|
| 問題與專案 |
| 解答 |
| 其他 |
| 定義表 |
| 完整版 |
| PDF版本 |
數學是科學的皇后,數論是數學的皇后。 -- 卡爾·弗里德里希·高斯 1777 - 1855
在素數與模算術部分,我們討論了素數的基本性質及其與模算術的聯絡。在大多數情況下,我們的注意力都集中在模p算術,其中p是素數。
在本章中,我們首先討論一些模素數p算術中更基本的結果,然後繼續討論模m算術的結果,其中m是合數。特別是,我們將仔細研究中國剩餘定理(CRT),以及它如何允許我們將模m算術分解為分量。從這個角度來看,CRT是一個極其強大的工具,可以幫助我們相對輕鬆地解開模算術的許多秘密。
最後,我們將介紹阿貝爾群的概念,透過模算術中的乘法來討論離散對數問題,該問題是當今已知最重要的密碼系統之一的基礎。
假設知識 在本章中,我們假設讀者能夠找到逆元,並能夠解決同餘方程組(中國剩餘定理)(參見:素數與模算術)。
威爾遜定理是一個簡單的結果,它導致了初等數論中許多有趣的觀察。它指出,如果p是素數,則
我們知道 *p* - 1 的逆元是 *p* - 1,所以其他每個數字都可以與其逆元配對並 *消除*。例如,設 *p* = 7,我們考慮
- 1 × 2 × .. × 6 ≡ (2 × 4) × (3 × 5) × 1 × 6 = 6
我們所做的就是將互為逆元的數字配對,然後剩下的數字就是其逆元為自身的數字。在這種情況下,它們是 1 和 6。
但是,存在一個技術上的難點。對於一個一般的質數 *p*,我們如何知道 1 和 *p* - 1 是模 *p* 中唯一兩個平方後等於 1 的數字?對於非質數的 *m*,*x*2 ≡ 1 (mod *m*) 有超過 2 個解,例如,設 *m* = 15,則 x = 1、14、4、11 都是 *x*2 ≡ 1 (mod *m*) 的解。
然而,我們可以證明,當 *p* 為質數時,*x*2 ≡ 1 (mod *p*) 最多隻有兩個解。我們透過一個簡單的 *反證法* 論證來實現這一點。您可能想跳過以下證明,並想出自己對威爾遜定理為真的原因的解釋。
設 *p* 為質數,且 *x*2 ≡ 1 (mod *p*)。我們的目標是證明最多隻有 2 個解,即 *x* = 1、-1
從上面可以明顯看出,*x* = 1、-1 (≡ *p* - 1) 是解。假設還有另一個解 *x* = *d*,且 *d* 不等於 1 或 -1。由於 *p* 是質數,我們知道 *d* - 1 必須有逆元。我們將 *x* 替換為 *d*,並將兩邊乘以逆元,即
但我們最初的假設是 *d* ≠ -1。這是一個矛盾。因此,*x*2 ≡ 1 (mod *p*) 最多隻有 2 個解。
費馬小定理
[edit | edit source]有一個以業餘數學家之王 費馬 命名的非凡小定理。它指出,如果 *p* 為質數,且給定 *a* ≠ 0,則
這個定理取決於 *p* 是質數的事實。回想一下,如果 *p* 是質數,則 *a* ≠ 0 有逆元。因此,對於任何 *b* 和 *c*,我們必須有
- 當且僅當
上述結果的一個簡單推論是,以下數字在模 *p* 下必須互不相同
- *a*,2*a*,3*a*,4*a*,...,(*p*-1)*a*
並且這些數字共有 *p* - 1 個!因此,上面的列表只是 1、2、... *p* - 1 按不同順序排列的數字。讓我們看一個例子,取 *p* = 5,*a* = 2
- 1, 2, 3, 4
在模 5 的情況下,將上述所有數乘以 2,我們得到
- 2, 4, 1, 3
它們只是原數字的順序不同。
因此,對於任何 *p* 並使用威爾遜定理(回顧:1 × 2 × ... × (p-1) ≡ -1),我們得到
另一方面,我們也得到
將這兩個結果相等,我們得到
這實際上是費馬小定理。
一般模 m 的模運算
[edit | edit source]*中國剩餘定理再探*
[edit | edit source]本節內容比較理論化,旨在證明下一節中我們將要討論的運算。因此,不必完全理解這裡的內容,讀者可以跳過以下內容。
回顧我們在模運算部分介紹的中國剩餘定理(CRT)。它表明,如果以下同餘式
有解當且僅當 gcd(n1,n2) 整除 (b - c)。
這個看似簡單的定理是模 *m*(非素數)運算的關鍵!我們將考慮 *m* 只有兩個素數因子的情況,然後可以推匯出一般情況。
假設 *m* = *p*i*q*j,其中 *p* 和 *q* 是不同的素數,那麼 *m* 以下的每個自然數(0,1,2,...,m - 1)都唯一對應於模 *p*i 和模 *q*j 的一個同餘系統。這是因為 gcd(pi,qj) = 1,所以它能整除所有數字。
考慮一個數字 *n*,它對應於
對於一些 xn 和 yn。如果 *r* ≠ *n*,那麼 *r* 對應於
現在,由於 *r* 和 *n* 不同,我們必須有 *x*r ≠ *x*n 或者 *y*r ≠ *y*n
例如,取,那麼我們可以構建以下表格,顯示, 對於每個 n (0, 1, 2 ... 11)
n n (mod 22) n (mod 3) 0 0 0 1 1 1 2 2 2 3 3 0 4 0 1 5 1 2 6 2 0 7 3 1 8 0 2 9 1 0 10 2 1 11 3 2
注意,正如預測的那樣,每個數字都唯一對應於兩個不同的同餘系統:模 22 和模 3。
練習
1. 考慮 m = 45 = 32 × 5. 完成下面的表格,並驗證任何兩個數字在第二列和第三列中至少有一個位置不同。
| n | n (mod 32) | n (mod 5) |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| ... | ||
| 44 | ? | ? |
2. 假設 m = piqj,n 對應於
且 r 對應於
是否真的
以及
上面的練習 2 為 CRT 如何幫助模 m 算術提供了最明顯的指示。讀者在現階段不必完全理解上面的內容。我們將繼續描述 CRT 如何幫助模 m 算術。簡單來說,CRT 幫助將模 m 運算分解為模 m 的質因子的更小的運算。
像往常一樣,讓我們先考慮一個簡單的例子。設 ,我們看到 m 有兩個不同的質因子。我們應該用兩種方法演示 51 和 13 模 63 的乘法。首先,是標準方法
或者,我們注意到
和
我們可以將上述兩個表示式表示為一個二元組 (6,2)。我們略微濫用符號,寫 51 = (6,2)。類似地,我們寫 13 = (4,6)。當我們對二元組進行乘法運算時,我們按分量相乘,即 (a,b) × (c,d) = (ac,bd),
現在讓我們解決
和
我們寫 x = 6 + 9a,這是第一個同餘方程,然後
因此,我們有 a = 3 + 7b,代入回去得到
這與我們用標準方法將 51 和 13 相乘 (mod 63) 得到的結果相同!
讓我們總結一下我們做了什麼。透過將兩個數字(51 和 13)表示為兩個二元組,並按分量相乘,我們最終得到了另一個二元組。根據中國剩餘定理,這個二元組對應著這兩個數字的乘積 (mod m)。
我們將再舉兩個例子。令 ,讓我們用兩種方法將 66 和 40 相乘。首先,用標準方法
現在用第二種方法,40 = (0,7) 和 66 = (4,0) 以及
對於第二個例子,我們注意到沒有必要只停留在兩個不同的質因數上。我們令 ,並將 900 和 647 (mod 975) 相乘,
對於另一種方法,我們注意到 900 ≡ 0 (mod 3) ≡ 0 (mod 25) ≡ 3 (mod 13),而 647 ≡ 2 (mod 3) ≡ 22 (mod 25) ≡ 10 (mod 13),
現在如果我們解以下同餘方程
那麼我們會得到 x ≡ 225!
為什麼? 如果說有什麼,將 mod m 中的模運算分解成更小的部分似乎需要不少工作。以乘法為例,首先,我們需要將每個數表示成一個 n 元組(n 是 m 的不同質因數的個數),然後按分量相乘,最後解出得到的 n 個同餘方程。當然,這肯定比直接將兩個數相乘然後將結果模 m 更復雜。那麼為什麼要費心研究它呢?
透過將一個數 m 分解成質因數,我們對模運算的實際工作原理有了更深刻的理解。更重要的是,mod m 中的許多問題可能很難解決,但當分解成更小的部分後,突然變得很容易,例如,對一般 m 的威爾遜定理(下面將討論)。
練習
[edit | edit source]1. 證明加法也可以按分量進行。
2. 按分量相乘 32 和 84 (mod 134)。
...
尤拉函式
[edit | edit source]為了討論更一般的形式的威爾遜定理和費馬小定理在 mod m (非素數) 中的應用,瞭解一位著名數學家尤拉的簡單結果會很有幫助。更具體地說,我們想討論一個函式,稱為尤拉函式 (或尤拉 φ),記作 φ。
φ 函式做的事情非常簡單。對於任何自然數 m,φ(m) 給出 n < m 的個數,使得 gcd(n,m) = 1。換句話說,它計算在 mod m 中有多少個數有逆。我們將首先討論 φ(m) 在簡單情況下的值,然後從基本結果推匯出一般 m 的公式。
例如,令m = 5,則 φ(m) = 4。由於 5 是質數,5 以下的所有非零自然數(1、2、3 和 4)都與其互質。所以,在模 5 中有 4 個數具有逆元。實際上,如果m 是質數,則 φ(m) = m - 1。
我們可以將上述情況推廣到m = pr,其中p 是質數。在這種情況下,我們嘗試使用計數論證來計算 φ(m)。注意,m 以下有pr 個自然數(0、1、2 ... pr - 1),因此 φ(m) = pr -(n < m 且 gcd(n,m) ≠ 1 的個數)。我們這樣做是因為計算沒有模m 逆元的n 的個數更容易。
模m 中的一個元素n 沒有逆元當且僅當它與m 共有公因子。但m 的所有因子(不等於 1)都是p 的倍數。那麼,在模m 中有多少個p 的倍數呢?我們可以列出它們,它們是
其中最後一個元素可以寫成 (pr-1 - 1)p,因此有 個p 的倍數。因此,我們可以得出結論
現在我們擁有了推匯出任意m 的 φ(m) 公式所需的所有工具。
根據算術基本定理,任何自然數m 都可以唯一地表示為質數的乘積,即
其中 pi 對於 i = 1, 2 ... r 是不同的質數,而 ki 是正整數。例如,1225275 = 3×52×17×312。從這裡開始,讀者應該嘗試推匯出以下結果(CRT 可能會有所幫助)。
尤拉函式 φ
Suppose m can be uniquely expressed as below then
利用尤拉函式,我們可以推匯出費馬小定理的更一般情況,即
威爾遜定理
[edit | edit source]一般m 的威爾遜定理指出,模m 中所有可逆元素的乘積
- 等於 -1,如果m 只有一個質因子,或者m = 2pk 對於某個質數p
- 等於 1,對於所有其他情況
模m 的可逆元素是指一個自然數n < m,使得 gcd(n, m) = 1。自逆元素是指其逆元與其自身相同的元素。
在質數p 的威爾遜定理的證明中,1 到p - 1 的所有數都有逆元。對於一般的m 來說,情況並非如此。實際上,可以肯定的是 (m - 1)! ≡ 0 (mod m),出於這個原因,我們改為考慮模m 中所有可逆元素的乘積。
對於m = p 是質數的情況,我們還利用了 1 和p - 1 是唯一平方後等於 1 的元素這一事實。實際上,對於m = pk,1 和m - 1(≡ -1)是唯一的自逆元素(見練習)。但對於一般的m 來說,情況並非如此。例如,我們取m = 21。在模 21 算術中,以下每個數都有其自身作為逆元
- 1, 20, 8, 13
那麼,我們如何說所有可逆元素的乘積等於 1 呢?
我們使用上面描述的 CRT。讓我們考慮m = 2pk 的情況。根據 CRT,模m 中的每個元素都可以表示為一個二元組 (a,b),其中a 可以取值為 0 或 1,而b 可以取值為 0、1、... 或pk - 1。每個二元組都唯一地對應於一對同餘方程,並且可以對乘法進行分量式操作。
利用上述資訊,我們可以輕鬆列出所有自逆元素,因為 (a,b)2 ≡ 1 意味著 (a2,b2) = (1,1),所以a 是模 2 中的可逆元素,而b 是模pk 中的可逆元素,所以a ≡ 1 或 -1,b ≡ 1 或 -1。但在模 2 中 1 ≡ -1,所以a = 1。因此,在模m = 2pk 中有 2 個元素是自逆的,它們是 (1,1) = 1 和 (1, -1) = m - 1。所以,在這種情況下,結果與m 只有一個質因子時相同。
對於m 有多個質因子且m≠ 2pk 的情況。假設m 有n 個質因子,那麼m 可以表示為一個n 元組。假設m 有 3 個不同的質因子,那麼m 的所有自逆元素是
- (1,1,1)
- (1,1,-1)
- (1,-1,1)
- (1,-1,-1)
- (-1,1,1)
- (-1,1,-1)
- (-1,-1,1)
- (-1,-1,-1)
它們的乘積是 (1,1,1),它對應於模m 中的 1。
練習
[edit | edit source]1. 令p 為質數。證明在模pk 算術中,1 和pk - 1 是唯一的自逆元素。
...待續
費馬小定理
[edit | edit source]如前一節所述,並非每個元素都可逆(即具有逆元)模m。費馬最後定理的廣義版本使用了尤拉函式,它指出
對於所有滿足 gcd(a,m) = 1 的a ≠ 0。這很容易從威爾遜定理的廣義版本中看出。我們使用類似於費馬小定理證明的技術。我們有
其中 bi 是模 m 的所有可逆元素。根據威爾遜定理,所有可逆元素的乘積等於,例如,d (= 1 或 -1)。因此我們得到
這實際上是費馬小定理的陳述。
雖然費馬小定理非常簡潔,但在某種程度上它是不精確的。例如,取 m = 15 = 3 × 5,我們知道如果 a 模 15 有逆,則 aφ(15) = a8 ≡ 1 (mod 15)。但 8 太大了,我們只需要 4,這意味著 a4 ≡ 1 (mod 15),對於所有具有逆元的 a(讀者可以驗證)。
卡邁克爾函式 λ(m) 是最小的數字,使得對於可逆的 a,aλ(m) ≡ 1 (mod m) 。習題集 中的一個問題涉及到這個函式。
...待續
很明顯,分解一個大數可能非常困難。例如,給定 76372591715434667 是兩個素數的乘積,讀者可以分解它嗎?如果沒有好的計算機代數軟體的幫助,這項任務幾乎是不可能的。截至今天,還沒有已知的有效的通用演算法可以將一個數分解成素數因子。
然而,在某些特殊情況下,分解可能很容易。我們將考慮二階扭轉分解方法。模 m 算術中的二階扭轉元素是一個數 a,使得 a2 ≡ 1 (mod m)。
讓我們考慮模 21 算術中的一個例子。注意,使用中國剩餘定理,我們可以將模 21 中的任何數表示為一個二元組。我們注意到二階扭轉元素是 1 = (1,1),13 = (1,-1),8 = (-1,1) 和 20 = (-1,-1)。我們感興趣的是數字 13 和 8,因為 1 和 20 (≡ - 1) 顯然是二階扭轉的,我們稱這些數字為平凡的二階扭轉。
現在,13 + 1 = (1,-1) + (1,1) = (2,0)。因此 13 + 1 = 14 是一個與 21 有公因子的元素,因為 14 的二元組表示中的第二個分量為零。因此 GCD(14,21) = 7 是 21 的一個因子。
上面的例子非常愚蠢,因為任何人都可以分解 21。但是 24131 怎麼辦呢?分解它並不容易。但是,如果我們知道 12271 是一個非平凡的(即 ≠ 1 或 -1)二階扭轉元素,那麼我們可以得出結論,gcd(12271 + 1,24131) 和 gcd(12271 - 1,24131) 都是 24131 的因子。事實上,gcd(12272,24131) = 59 和 gcd(12270,24131) = 409 都是 24131 的因子。
更一般地,設 m 為一個合數,t 為模 m 的一個非平凡的二階扭轉元素,即 t ≠ 1,-1。那麼
- gcd(t + 1,m) 整除 m,並且
- gdc(t - 1,m) 整除 m
這可以用中國剩餘定理來解釋。
我們將解釋 m = pq 且 p 和 q 為素數的情況。給定 t 是一個非平凡的二階扭轉元素,則 t 有表示 (1,-1) 或 (-1,1)。假設 t = (-1,1),則 t + 1 = (-1,1) + (1,1) = (0,2),因此 t + 1 必須是 p 的倍數,因此 gcd(t,m) = p。在另一種情況下,t - 1 = (-1,1) - (1,1) = (-2,0),所以 gcd(t - 1,m) = q。
因此,如果我們得到一個非平凡的二階扭轉元素,那麼我們實際上已經找到了一個(甚至可能多個)素數因子,這在分解這個數方面大有幫助。在大多數現代公鑰密碼學應用中,要破解系統,我們只需要分解一個有兩個素數因子的數。在這方面,二階扭轉分解方法非常有效。
當然,找到一個非平凡的二階扭轉元素也不是一件容易的事。所以,網際網路銀行暫時還是安全的。順便說一下,76372591715434667 = 224364191 × 340395637。
1. 給定 18815 是模 26176 的一個二階扭轉元素。分解 26176。
…待續
下一節: 乘法群
習題集 習題集