Congruence#
同餘是數論中很重要的一環。同餘關係的使用,代表我們討論的數學不再僅限整數、實數等無限長的域,而討論一個會「循環」的域。這一點在計算機中尤其重要。現代計算機的本質是位元操作,其在實際上總是只能代表「有限」的數字,這體現在「溢位」這個現象,而同餘關係很適合用來為這樣的系統建模。〔個人心得〕
Compatibilities towards Basic Arithmetic#
模運算適用許多基本運算,如加法、減法、同乘等等。
Proposition
a≡b(mod m),c≡d(mod m)⟹{(a+c)a⋅c≡(b+d)(mod m)≡b⋅d(mod m)(1)(2)Proof(1)
根據定義,m整除a−b跟c−d,因此我們可以設任意整數k1,k2使得
(a−b)=k1m;(c−d)=k2m.則我們可以將兩式合併,得(a−b)+(c−d)=(k1+k2)m,重新整理得(a+c)−(b+d)=(k1+k2)m,便符合同餘的定義。■
Proof(2)
略,跟Proof(1)操作方式相似。□
Other Trivial Cases#
模(c⋅m)除以任意因數c,同餘式仍成立:
a≡b(mod c⋅m)⟹a≡b(mod m)Bezout’s Identity#
任意兩個數的線性組合必可以組出他們的最大公因數:
(∀a,b ∃x,y) a⋅x+b⋅y=gcd(a,b),而這個計算可以透過extended Euclidean algorithm求得。
Extended Euclidean Algorithm#
Example 找31, 17的線性組合。即解31x+17y=gcd(31,17)。
首先用輾轉相除法,求得gcd(31,17)。其計算過程對於extended Euclidean是有幫助的。
31171432=17⋅1+14=14⋅1+3=3⋅4+2=2⋅1+1=1⋅2+0若寫成直式就是:

得到算式與最大公因數後,接著執行extended Euclidean,有點像是「逆推」:
gcd(31,17)=1=3−2⋅1=3−(14−3⋅4)⋅1=−14+(17−14⋅1)⋅5=17⋅5+(31−17⋅1)⋅(−6)=−14+3⋅5=17⋅5+14⋅(−6)=31⋅(−6)+17⋅11∴我們得到x=−6,y=11 ■
Use Cases#
我們可以利用extended Euclidean來求某些「同餘方程式」,比如:
17x=8(mod 31)
透過同餘的定義,我們知道31整除17x−8,寫作31∣(17x−8);再根據整除的定義,又可用一任意整數k,寫作17x−8=31k。
經過整理可得17x+31(−k)=8,則此形式已經有點像是extended Euclidean可以處理的對象了。
然而,gcd(17,31)=8,這個式子無法直接求解。此路不通。
根據前一小節舉例所得成果,已知31⋅(−6)+17⋅11=1。重新寫成同餘式,則:
17⋅11≡1(mod 31)根據同餘保持基本運算的特性,我們可以再度重寫同餘方程式(兩邊同乘):
17⋅8⋅11≡8(mod 31)故可以解得x≡88,取其最小正整數解x=26。■
Modular Multiplicative Inverse#
對於一數a,若且唯若a與m互質,其模反元素a−1存在。定義如下:
gcd(a,m)=1⟺a−1:a⋅a−1≡1(mod m).由上可知反元素與所討論的域Zn有關。
Proof by Bezout’s Identity#
設d=gcd(a,m)。根據Bezout’s identity,若d=1,則存在x,y使得
a⋅x+m⋅y=1,因為以m為模,可以重寫為
a⋅x≡1(mod m).使用extended Euclidean algorithm便可求得x,而依據定義,x即為a的乘法反元素。
若d=1,該數a不互質模m,則Bezout’s identity不成立,a−1不存在。
Fermat’s Little Theorem#
Let p be a prime. Then
∀a∈Z,gcd(a,p)=1⟹ap−1≡1 (mod p).Example p=3,a=5
依照費馬小定理,可得53−1=25≡1(mod 3)。
Explanation with Abstract Algebra#
乘法群Zp∗的階為p−1,因此任意元素的p−1次方當然會回到單位元1。
A Corollary#
ap≡a(mod p).從費馬小定理的原方程式開始:
- 如果a與p互質,則代表同餘式兩邊可以相乘a
- 如果不互質,p∣a,則ap≡0≡a(mod p)
RSA#
Preprocessing#
- Choose 2 big prime numbers p and q.
- Choose a pair of numbers e and d such that
- d⋅e=1(mod (p−1)(q−1)), when e is public and d is private.
- Announce (pq,e); keep (p,q,d).
Encryption and Decryption#
Encrypting message m as code c:
c≡me(mod pq), m<pq,c<pq.Decrypting c as m:
m≡cd(mod pq).Verification#
We set a symbol for the modulo:
r:=(p−1)(q−1);also, for the product of two big primes:
n:=p⋅q,then we can describe the decrypting equations as m≡cd(mod n).
For the convenience of the proof, we set an arbitary number k such that
e⋅d≡1(mod r)⟹r∣(e⋅d−1)⟹ed=1+kr.So that according to the proccess of encryption and decryption, we can say that
cd≡(me)d≡m(e⋅d)≡m1+kr(mod n),and in order to prove that this process really lead us to transfer the correct message, we need to check if
cd≡med≡m1+kr≡m(mod n).將式子重新整理,得:
m⋅mk(p−1)(q−1)≡m(mod pq)根據同餘保持基本運算的特性,兩邊同除m:
mk(p−1)(q−1)≡1(mod pq)mk(p−1)(q−1)≡1 (mod pq)Verification Practice#
如果縮減模,得(mk(q−1))p−1≡1(mod p),則依照費馬小定理便可得解。
但是gcd(m,p)?=1,條件沒有說。此路不通。
分項討論
- Case 1: gcd(m,p)=1∧gcd(m,q)=1
- Case 2: gcd(m,p)=1∨gcd(m,q)=1
gcd(m,p)=1∧gcd(m,q)=1必然不成立:
如果成立,則pq∣m,存在正整數k′使得m=kpq(因為m>0)。
但RSA的前提已經表明m<pq,故不成立。
Case 1
根據費馬定理,
mp−1≡1(mod p)∧mq−1≡1(mod q)則依基本運算可輕易得mk(p−1)(q−1)≡1(mod pq)
Case 2
先以p討論:
已知m,p不互質,則依照Case 2的假設,gcd(m,q)=1(或者m=0,不討論)。
因為m為p的倍數,則m的任意乘冪皆為p的倍數,即
m1+k(p−1)(q−1)≡m(mod p),則兩者同餘,m≡mk(p−1)(q−1)(mod p)。
又依據費馬定理,
mq−1≡1(mod q)則可推知
mk(p−1)(q−1)≡1(mod q).兩邊相乘m即得m1+k(p−1)(q−1)≡m(mod q)。
統整得
{m1+k(p−1)(q−1)≡m(mod p)m1+k(p−1)(q−1)≡m(mod q)⟹m1+k(p−1)(q−1)≡m(mod pq).故得證 ■
Chinese Remainder Theorem#
今有比1大且兩兩互質的正整數m1,m2,m3,…mn與任意整數a1,a2,a3,…,an。則聯立同餘方程組
∀i∈Nn x≡ai(mod mi)模m1⋅m2⋅(…)⋅mn時有唯一解
x=i=1∑nai⋅yi⋅Mi,其中yi為Mi=mim的模反元素(Mi)−1。
白話翻譯:
該總和式,在模所有同餘模相乘時有唯一解;而y_i則是在該行的模m_i,取M_i的逆元。
Proposition: Modulo Factorization#
對於兩個互質的模m1,m2:
- 同餘方程{x≡a1(mod m1)x≡a2(mod m2)有解
- 任兩解都會同餘模m1⋅m2。
或者說,對於整數環Zm1⋅m2會有唯一解。
Proof#
If t≡m1−1(a2−a1)(mod m2), then x=a1+m1t is such a solution. ■Uniqueness Proof#
假設有兩數x1,x2均為同餘方程式之解。則對於所有方程式都存在商數ri,ri′使得
x1=ri⋅mi+ai and x2=ri′⋅mi+ai兩數相減得x1−x2=(ri−ri′)⋅mi,則mi∣(x1−x2),即
x1≡x2(mod m1⋅m2⋅(…)⋅mn),故知兩數模m1⋅m2⋅(…)⋅mn時有唯一解 ■
Proof of C.R.T.#
設m=m1⋅m2⋅(…)⋅mn,並設Mi=mim。
Mi的語意為「除了mi以外的所有模」
因為mi兩兩互質,對於任意k=i,gcd(mk,mi)=1,據此得
gcd(Mi,mi)=1.
Mi與mi互質
則依模反元素的定義,存在yi使得
Mi⋅yi≡1(mod mi),或寫作yi=Mi−1。
假設x=∑i=1nai⋅yi⋅Mi為解。
根據定義可知,對於任意j=i,Mj均可被mi整除,即
Mj≡0(mod mi).故對於所有i,
x≡ai⋅yi⋅Mi≡ai(mod mi)均成立,符合方程組之敘述,故假說成立 ■
Mj=0的說明旨在提示x的其他所有加法項都會「消去」,只剩下第i項。