數論和有限域的基本概念

數論和有限域的基本概念

整除性

  • b | a       ->       b 整除 a, b 是 a 的因子

歐幾里得算法

  • 最大公因子
    • gcd(0, 0) = 0
    • gcd(a, b) = gcd(a, -b) = gcd(-a, b) = gcd(|a|, |b|)
    • gac(a, 0) = |a|
  • 互素情況
    gcd(a, b) = 1, 則 a 和 b 互素
  • 求最大公因子
    求a、b的最大公因子d:
    由於兩個正整數的最大公約數一定可以由這兩個正整數組合出來,因此我們設兩個整數s、t,有:
    gcd(a, b) = d = sa + tb
    取a = 123, b = 456,有:
    **456 = 3 x 123 + 87       ->(1)
    123 = 1 x 87 + 36       ->(2)
    87 = 2 x 36 + 15       ->(3)
    36 = 2 x 15 + 6       ->(4)
    15 = 2 x 6 + 3       ->(5)
    6 = 2 x 3 + 0       ->(6)**
    由上面的一系列計算有: gcd(123, 456) = 3
    那麼如何證明3是123和456的最大公因子呢?
    假設n是最大公因子,則其整除123, 456
    由等式(1)可知: n整除87
    同理可得n整除36、15、6、3
    故3是最大公因子
    如何求取s、t的取值?
    求上面過程的逆過程:
    3 = 15 - 2 x 6
    3 = 15 - 2(36 - 2 x 15) = 5 x 15 - 2 x 36
    3 = 5(87 - 2 x 36) - 2 x 36 = 5 x 87 - 12 x 36
    3 = 5 x 87 - 12(123 - 87) = -12 x 123 + 17 x 87
    3 = -12 x 123 + 17(456 - 3 x 123) = -63 x 123 + 17 x 456
    即求得: s = -63, t = 17
    gcd(123, 456) = 3 = -63 x 123 + 17 x 456

    注意:當d爲1時,我們知道a,b互素,即有:
    sa + tb = 1
    對等式兩邊模b,有:
    as = 1 mod b

  • 修改的歐幾里得算法
    • gcd(a, b) = gcd(b, a mod b)

擴展的歐幾里得算法

  • gcd(a, b) = gcd(b, a mod b)

模運算

  • 剩餘類集/模n的剩餘類 Zn:
    比n小的非負整數集合,Zn = {0, 1, 2,,, (n-1)}
  • 幾種數據表現形式:
    • 6Z = {…, -12, -6, 0, 6, 12, …}
    • Z6={0,1,2,3,4,5}
  • 模運算
  • 同餘性質
    • 如果n|(a-b),那麼a==b(mod n)
    • a==b(mod n)隱含 b==a(mod n)
    • a==b(mod n), b==c(mod n)隱含a==c(mod n)
    • example:
      求11^7 mod 13:
      11^2 = 121 == 4 (mod 13)
      11^4 = (11^2)^2 == 4^2 == 3 (mod 13)
      11^7 == 11 x 4 x 3 == 132 ==2 (mod 13)

乘法逆元

  • 定義:

    當x與n互素時,x關於模n的乘法逆元有解。如果不互素,則無解。如果n爲素數,則從1到n-1的任意數都與n互素,即在1到n-1之間都恰好有一個關於模y的乘法逆元。
    例如,求5關於模14的乘法逆元:
    14=5x2+4
    5=4x1+1
    很明顯5與14互素,則存在5關於14的乘法逆元。
    根據輾轉相除法有:
    1=5-4=5-(14-5*2)=5*3-14
    因此,5關於模14的乘法逆元爲3。

模冪運算


異或運算

羣、環、域

有限域GF(p)

有限域的階(元素的個數)必須是一個素數的冪p^n,階爲p^n的有限域記爲GF(p^n)
給定一個素數p。元素個數爲p的有限域GF(p)被定義爲整數{0, 1, …, p-1}的集合Zp,其運算爲模p的算術運算
Zp中的所有非零整數都有乘法逆元

  • 在GF(p)中求乘法逆元:
    對於任意的n,求取Zn內的乘法逆元,由擴展歐幾里得算法有:
    nx + by = d = gcd(n, b)= 1
    通過輾轉相除法求得y,則有y = b的乘法逆元

基本公式


其中p1, p2, pk均爲素數
https://i.imgur.com/0uH97B5.png” style=”zoom:80%”/>

發佈了34 篇原創文章 · 獲贊 16 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章