1. 程式人生 > >網路資訊保安學習筆記之數論基礎

網路資訊保安學習筆記之數論基礎

一、群環域

1.群

群G,記作{G,},定義一個二元運算•的集合,G中每一個序偶(a,b)通過運算生成G中的元素(a•b),滿足以下公理:

  • 封閉性:如果a,b都屬於G,則a•b也屬於G
  • 結合律:對於任意的a,b,c,都有a•(b•c)=(a•b)•c成立
  • 單位元:G中存在一個元素e,對於G中任意元素a都有a•e = e•a = a
  • 逆元:對於G中任意元素a,都存在a'∈G,使得a•a‘ = e

有限群:如果一個群中的元素是有限的則稱該群為有限群,元素的個數即為該群的階數

無限群:如果一個群中的元素個數是無限的,則稱該群為無限群

交換群(阿貝爾群): 如果對於群中的任意兩個元素a,b都有a•b = b•a,則該群為交換群

迴圈群:如果群中的每一個元素都是一個固定元素a的冪a^n,n為整數,則稱G為迴圈群,a是qunG的生成元

2.環

環R,記作{R,+,x},是具有加法和乘法兩個二元運算的元素的集合,對於環中所有的a,b,c,都滿足以下公理:

  • 對於加法滿足群的所有性質,且單位元是0,a的逆是-a
  • 乘法封閉性:若a,b均屬於R,則ab屬於R
  • 乘法結合律:對於R中任意的a,b,c,均滿足a(bc) = (ab)c
  • 分配律:a(b+c) = ab+ac,或者 (a+b)c = ac+bc

又有

  • 乘法交換律:ab=ba,滿足乘法交換律的環是交換環
  • 單位元:R中存在元素1使得a1=1a=a
  • 無零因子:若R中有ab=0,則a=0或b=0

滿足單位元和無零因子的交換環是整環

3.域

域F,記作{F,+,x}是具有加法和乘法兩個二元運算的集合,對於F中所有的a,b,c均有

  • 滿足環的所有條件,即F是個整環
  • 乘法逆元:對於F中任意元素a除0外,均有一個a^{-1}∈F使得aa^{-1}=a^{-1}a=1
  • 域就是一個集合,定義減法為a-b=a+b'即a+(-b),定義除法為b/a=bxa^{-1},在域上進行加減乘除運算結果都不脫離該集合

有理數集合,實數集合和複數集合都是域,整數集合不是域

4.群環域的關係

二、同餘

如果a能整除b,則稱b是a的一個因子,記作b|a,有如下性質

  • 如果a|1,則a=±1
  • 如果a|b且b|a,則a=±b
  • 任何b≠0,b都能整除0
  • 如果b|g,b|h,則對任意整數m,n都有b|(mg+nh)
  • 如果a≡0mod n,則n|a

給定整數a,b及n≠0,當且僅當a-b=kn時,a與b在模n時同餘,記作a≡b mod n 或者a≡_{n}^{ }\textrm{b} 

如果n|(a-b), a≡b mod n ,證明:

  • 如果n|(a-b),則有a-b=kn
  • 則a=b+kn
  • a mod n = (b+kn)mod n
  • a mod n = b mod n

a≡b mod n 且b≡c mod n 則a≡c mod n

模算數運算

  • 反身性:a=a mod n
  • 對稱性:若a=b mod n,則b=a mod n
  • 傳遞性: a=b mod n b=c mod n,則a=c mod n
  • 如果 a=b mod nc=d mod n,則
  1. a+c=(b+d) mod n
  2. a-c=(b-d) mod n
  3. a•c=(b•d) mod n

(a1 op a2) mod n =[(a1 mod n )] op (a2 mod n)] mod n,即

  • (a+b) mod n = (a mod n + b mod n) mod n
  • (a-b) mod n = (a mod n - b mod n) mod n
  • (a•b) mod n = (a mod n • b mod n) mod n

、歐幾里得演算法Euclid Algorithm

對於任何非負的整數angcd(a, n)=gcd(n mod a, a)

假設我們有整數a,b使得d=gcd(a,b)。假設a≥b>0,現在用b

a,由除法可得到

a=q1b+r1    0≤r1<b

如果恰巧r1=0,則b|ad=gcd(a,b)=b。但是如果r1≠0,我們

d|r1。這基於除法的基本性質:由d|ad|b可以推出d|(a-

q1b),即d|r1。現在假設有任意的整數c整除br1.因此

c|(q1b+r1)=a。因此c同時整除ab,必須有c≤d,而da

b的最大公因子。因此d=gcd(b,r1)

拓展的歐幾里得演算法

對於給定的整數ab,擴充套件的Euclid演算法不僅計算出最大公因子d,而且還有另外的整數xy,它們滿足如下方程:

ax+by=d=gcd(a,b)

 用擴充套件的Euclid演算法計算(x,y,d).

假設在每一步驟i都可以找到xiyi滿足ri=axi+byi 

 

四、有限域

有限域在密碼學中扮演重要角色

有限域的階(元素個數),必須是一個素數的冪p^{n},記作GF(p^{n}

階為p的有限域GF(p)

 給定a∈[0, n-1], gcd (a, n)=1,若能找到唯一整數x∈[0,n-1],滿足:ax mod n=1, 則稱ax互逆

  • 給定一個素數p,元素個數為p的有限域GF(p)被定義為整數{0,1, … , p-1}的集合Zp,其運算為模p的算術運算
  • Zn中的任一整數有乘法逆元當且僅當該整數與n互素,若n為素數, Zn中的所有非零整數都與n互素,因此Zn中所有非零整數都有乘法逆元
  • 對每一個wZp,存在一個z,使得w×z1 mod p,則z即為乘法逆元w^{-1}
  • 因為wp互素,如果用w乘以Zp中的所有數模p,得到的餘數將以不同次序涵蓋Zp中的所有數,即餘數集合是{0,1, … , p-1}的置換形,那麼至少有一個餘數的值為1。因此,在Zp中的某個數與w相乘模p的餘數為1, 這個數就是w的乘法逆元w^{-1},。 所以,Zp是一個有限域

  如 n=10, a=3, x=7, ax mod n=1 =3x7 mod 10

如果gcd (a, n)=1, 則對於每個i, j, 0≤i<j<n,

  ai mod n≠aj mod n

如果存在gcd(a,n)=1 ,則一定存在整數x在0到n之間滿足ax mod n = 1

拓展的歐幾里得演算法求逆

如果a,b互素,則b有模a的乘法逆元,也就是說,如果gcd(a,b)=1,對於正整數b<a,存在b^{-1}<a,使得b^{-1}b =1 mod a,如果a 是素數並且b < a,則顯然a,b互素,且最大公因子為1

ax+by=d=gcd(a, b)

如果gcd(a, b)=1,則有ax+by=1.

[(ax mod a)+(by mod a)]mod a = 1 mod a

0+(by mod a)=1

如果by mod a=1,則y=b^{-1}

五、多項式計算

三種多項式計算

  • 使用代數基本規則的普通多項式運算
  • 係數運算是模p運算的多項式運算,即係數在GF(p)
  • 係數在GF(p)中,且多項式被定義為模一個n次多項式m(x)的多項式運算

在此我們只關心第三種

多項式可以寫成如下形式

f(x) = q(x) g(x) + r(x)

其中,r(x)就可被看作是餘數r(x) = f(x) mod g(x)

  • 如果沒有餘數,就稱g(x)可以整除f(x)
  • 如果g(x)除了1和它自身以外沒有其他公因式就稱它是不可約多項式或素多項式irreducible or prime