数论和有限域的基本概念

数论和有限域的基本概念

整除性

  • 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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章