網路資訊保安學習筆記之數論定理
一、素數與單向函式
1.素數
素數是數論的核心
關於素數的基本資訊從小學就開始接觸,在這裡不做贅述
2.單向函式
一個函式f滿足下列條件,則稱該函式為單向函式
- 對於所有f域的任意x,容易計算y=f(x)
- 對於幾乎所有f域的任意y,求一個是y=f(x)成立的x,在計算上幾乎不可行
簡而言之就是一個函式正向運算簡單,逆運算十分困難
3.單向陷阱門函式
一個可逆函式滿足下列條件則稱之為單項陷阱門函式
- 對於f域的任意x,容易求y=F(x)
- 對於f域的任意y,除非獲得暗門資訊(附加資訊),否則求解x=(y)在計算上不可行,
4.單向函式舉例
①離散對數
令質數p滿足p-1含有另一大質數
若給定整數x, 求y = gx mod p, 最多需要Llog2x」+w(x)-1次乘法, w(x)為x中所有1的個數。如x =15, 即
x =(1111)2, w(x)=4, 則g15 =((g2)g)2·g)2·g mod p, 只需要3 + 4 -1=6次乘法。
但是若給定p, g及y, 求x, 則為DLP問題, 最快方法需要L(p)=exp{(lnpln(lnp))½}次運算。
當p=512位時, L(p)約為2256≈1077, 計算上不可行,
②因數分解
給定大素數 p和q, 求n = p×q, 只要一次乘法
給定n, 求p和q, 即為因數分解問題(FAC), 最快方法需要 T(n) = exp {c(ln n ln (ln n))½} 次運算, 其中c為大於1的正整數。若p≈n, 解離散對數比因數分解難。
③揹包問題
給定有限個自然數序列集合B=(b1,b2,…bn)及二進位制序列x=(x1,x2,…xn), xi∈(0,1), 求S=∑xibi最多隻需n-1次加法;但若給定B和S, 求x則非常困難。
窮舉時有2n種可能, 當n很大時為計算上不可行。
Garey和Johnson證明,
5.單向函式的交換性
單向函式本身在密碼學中應用不大,但是如果具有交換性,則作用巨大
交換性:令Z為一集合,F為將Z對映到Z本身的函式集合令z∈Z,Fx(z)表示此集合的第x函式,若Fx(Fy(z))=Fy(Fx(z)),則稱此函式具有交換性
二、費馬定理
1.費馬小定理
若p是素數,a是正整數且不能被p整除,則 mod p =1,即 mod p=a
證明:
因為{a mod p, 2a mod p, ..., (p-1)a mod p}是{1, 2, ..., (p-1)}的置換形
所以(a x 2a x ...x(p-1)a)mod p = 1x2x3x...(p-1) =(p-1)!
又因為(a x 2a x ...x(p-1)a)= (p-1)! x
所以原式得: (p-1)! x mod p = (p-1)!
約掉階乘項,得: mod p = 1
例(1)計算mod 11
根據定理直接可得原式為1
(2)計算 mod 11
2.費馬大定理
當整數n >2時,關於x, y, z的方程 x^n + y^n = z^n 沒有正整數解
三、尤拉定理
1.尤拉函式
φ(n)是比n小且與n互素的正整數的個數,即模n的縮剩餘系中元素之個數
2.尤拉函式的證明
定理:p和q是素數, n=p*q, φ(n)= φ(p)φ(q)=(p-1)(q-1),即對於素數p,φ(p)=p-1
證明:
考慮餘數集合{0, 1, …, (pq-1)}中不與n互素的餘數集合是{p, 2p, …, (q-1)p}, {q, 2q, …, (p-1)q}和0,
所以φ(n)= pq-[(q-1)+(p-1)+1]=pq-(p+q)+1= (p-1)(q-1)=φ(p)φ(q)
n為合數時可以分解為素數的乘積
n = **...* 則
φ(n) =
3.尤拉定理
對任意互質的a和n有:
mod n = 1,即 ≡ 1 (mod n)
mod n = a ,即 ≡ a (mod n)
4.尤拉定理證明
(1)若 n 是素數,根據尤拉函式和費馬小定理,則上式成立;
若p是素數, a是正整數且不能被p整除, 則ap-1 mod p=1
(2)所有小於 n ,且與 n 互質的正整數的集合即每一個元素都有gcd(xi,n)=1。用a與R中的每個元素模n相乘:
S是R的一個排列,因為
- a與n互素,且xi與n互素,所以axi必與n互素,這樣S中所有元素均小於n且與n互素
- S中沒有重複元素,所以集合S是集合R的一個置換
四、中國剩餘定理
Chinese Remainder Theorem 也稱為孫子定理
某一範圍內的整數可以通過它對兩兩互素的整數取模得到的餘數重構得到
典型應用就是韓信點兵
今有物不知其數, 三三數之剩二, 五五數之剩三, 七七數之剩二, 問物幾何
五、離散對數
冪運算是相對容易的,求解離散對數通常是難解問題
離散對數是包括Diffie-Hellman金鑰交換和數字簽名(DSA)在內的許多公鑰演算法的基礎