素数是数论中最为关心的基础,基本上所有的数论书籍都是围绕素数展开。

整数p>1是素数当且仅当它的因子只有 ±1 和 ±p。

任意整数a>1都可以唯一地因子分解为 a = p1a1 * p2a2 * …… *ptat,其中 pp2 p都是素数,且 p1 <p2<……< p,所有的ai都是正整数。

即任意的正整数a可唯一地表示为 a = ∏ pap 其中每一个ap ≥ 0 ,比如整数12 = { a2 = 2, a3 = 1},整数91 ={ a7 = 1, a13 = 1}

两数相乘即对应地指数相加。设 a = ∏ pap  b = ∏ pbp ,定义k = ab。 k可以表示为 k = ∏ pkp ,kp = ap + bp

例如 k = 12 * 18 = ( 2^2 * 3 ) * ( 2 * 3^2 ) = 2^3 * 3^3 = 216 。k2 = a2 + b2 = 2 + 1, k3 = a3 + b3 = 1 + 2

1.1 费马定理

若p是素数,a是正整数且不能被p整数,则 ap-1 ≡ 1 mod p ,也可以用另一种形式表示 ap ≡ a mod p 

比如 35 = 243 =3 mod 5 = a mod p

1.2 欧拉函数

欧拉函数 Φ(n),指的是小于n且与n互素地正整数的个数。一般Φ(1) = 1。

显然对于素数p, Φ(p) = p - 1

假设有两个素数p和q,p ≠ q,那么对于 n = pq, Φ(n) =  Φ(pq) =  Φ(p) *  Φ(q) = (p -1)* (q - 1)

1.3 欧拉定理

欧拉定理说明,对任意的互素的a和n,有 a Φ(n) ≡ 1 mod n ,也可以用另一种形式表示  a Φ(n)+1 ≡ a mod n

1.4 中国剩余定理CRT

                                                                 令M = ∏ mi,1 ≤ i ≤ k

其中mi是两两互素的,我们可以将ZM中任一整数对应一个k元组,该k元组的元素均在Zmi中,这种对应关系为 A ↔ (a1,a2,……,ak),A∈ZM,对于1 ≤ i ≤ k,ai∈ZM,且 a= A mod mi

对于A ↔ (a1,a2,……,ak),B ↔ (b1,b2,……,bk),(A * B) mod M ↔ (a1*b1 mod m,a2 * b2 mod m2,……,ak * bk mod mk)

中国剩余定理的用途之一就是可以使得模M的大数运算转化到更小的数上操作

比如 A = 973 mod M = 1813 = 37 * 49 = m1 * m2,Mi = M / mi,则 M1 = 49,M2 =37

973 mod 37 = 11,973 mod 49 = 42,所以973可以表示为 (11,42)

如果此时有678 + 973 mod 1813,则可以通过678 ↔ (678 mod 37,678 mod 49)  ↔ (12,41) ,(11 + 12 mod 37,42 + 41 mod 49)= (23,24)↔  a1M1M1-1 + a2M2M2-1  mod M  ↔ 23 * 49 * 34 + 34 * 37 *4 mod 1813 = 43350 mod 1813 = 1651,其中M1是M1模m1的乘法逆,即M1-1 = 34 mod M1

如果此时有73 * 1651 mod 1813,先73 * (23,24) ↔  (73 * 23 mod 37,73 * 24 mod 49)=(14,32)

(14,32) ↔  14 * 49 * 34 + 32 * 37 * 4 mod 1813 = 856 = 1651 * 73 mod 1813

1.5 离散对数

1.5.1 模n的整数幂

根据欧拉定理 a Φ(n) ≡ 1 mod n,其中欧拉函数 Φ(n),指的是小于n且与n互素地正整数的个数。

考虑欧拉定理更一般的形式:a m ≡ 1 mod n,若a与n互素,则至少有一个整数m满足M=Φ(n),我们称最小正幂m为下列之一:

  • a 模 n 的阶
  • a 所属的模 n 的指数
  • a 所产生的周期长

如表所示给出了所有小于19的正整数a模19的幂,可以发现所有序列均以1结束;每个序列的周期长都可以整数Φ(19)=18,即每一行都有整数个子序列;有一些序列长度为18,这时我们说底a生成模19的非零整数集,并称这样的整数为模数19的本原根。

AP值 深度学习数学含义 ap在数学中是什么意思_离散对数

 

 

更一般来说,我们说Φ(n)是一个数所属的模n的可能的最高指数。如果一个数的阶为Φ(n),则称之为n的本原跟。本原跟的奇特之处在于若a是n的本原跟,则a1,a2,……,aΦ(n) 模n是各不相同的,且均与n互素。素数19的本原跟为2,3,10,13,14,15。

并不是所有整数都有本原跟,事实上,只有形如2,4,pα,2pα的整数才有本原跟,p是任何素数,α是正整数。

1.5.2 模算术对数

对于底数x和数y,y=x logx(y)

对数有以下性质:

  • logx(1) = 0
  • logx(x) = 1
  • logx(yz) = logx(y) + logx(z)
  • logx(yr) = r * logx(y)

对素数p的本原跟a,a的1到p-1次方幂可产生[1,p-1]的每一个整数一次。而对任何整数b,根据模算术定义,b ≡ r mod p,一定有唯一的幂i使得 b ≡ ai mod p,0 ≤ i ≤ p - 1,这里的i称为以a为底(模p)b的离散对数,记为dloga,p(b)。而dloga,p(1) = 0,dloga,p(a) = 1。

由于 x = a dloga,p(x) mod p,y = a dloga,p(y) mod p,xy = a dloga,p(xy) mod p,由模乘的性质 xy mod p = (x mod p)(y mod p)mod p,a dloga,p(xy) mod p =  (a dloga,p(x) mod p) * ( a dloga,p(y) mod p) = a dloga,p(x) + dloga,p(y)  mod p

根据欧拉定理,对任何互素的a和n,有a Φ(n) ≡ 1 mod n,任何正整数z可以表示为z = q + kΦ(n),所以若 z ≡ q mod Φ(n),则a z ≡ a q mod n

代入前式有 dloga,p(xy)  ≡ dloga,p(x) + dloga,p(y)  mod Φ(p),则  dloga,p(yr)  ≡ r * dloga,p(y)  mod Φ(p)