密碼學與網路安全 第 8 章 數論介紹
DESCRIPTION
密碼學與網路安全 第 8 章 數論介紹. 質數. 質數的因數只有 1 及自己 例如 2 、 3 、 5 、 7 是質數, 4 、 6 、 8 、 9 、 10 不是 質數是數論的主軸 小於 200 的質數: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199. 分解質數. - PowerPoint PPT PresentationTRANSCRIPT
1
密碼學與網路安全
第 8 章 數論介紹
2
質數 質數的因數只有 1 及自己 例如 2 、 3 、 5 、 7 是質數, 4 、 6 、 8 、
9 、 10 不是 質數是數論的主軸 小於 200 的質數:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
3
分解質數 分解數值 n ,是將 n 寫成其他質數的
乘積: n = a × b × c 例如:
91 = 7 × 13 ; 3600 = 24 × 32 × 52
以下是另一種有用的表達方式;若 P 是所有質數的集合,那麼任何正整數 a 都能用以下唯一的方式來表示:
4
互質與最大公因數( GCD ) 如果兩數值除了 1 之外沒有公因數,兩數則為
互質 例如 8 和 15 互質,因為 8 的因數為 1 、 2 、 4 、
8 、 15 的因數為 1 、 3 、 5 、 15 ; 8 和 15 的公因數只有 1
如果將每個整數表示成質數的乘積,就很容易找出兩個正整數的最大公因數,例如 300 = 21 × 31 × 52 ; 18 = 21 × 32
因此最大公因數 GCD(18,300)=21 × 31 × 50 = 6
5
費馬定理 若 p 為質數且 gcd(a,p)=1 則
ap-1 = 1 (mod p) 也稱為費馬小定理
ap = p (mod p) 費馬定理和尤拉定理在公開金鑰和質數測試扮演
了重要的角色
6
證明 : ( 中文本的證明部分翻得有問題 )
令 X = {1a mod p, 2a mod p, …, (p1)a mod p} a 無法被 p 整除 0 X. X 中之元素均相異 ( 因為 a 和 p 互質,若 xa mod
p = ya mod p ,則 x=y) 所以 X = {1, 2, …, p1} a 2a … (p1)a mod p
= (1a mod p 2a mod p …, (p1)a mod p) mod p= (1 2 … (p1)) mod p
a p1 (p1)! mod p = (p1)! mod p a p1 1 mod p
7
尤拉函數 ø(n) 尤拉函數 ø(n) 的定義為小於 n 且與 n 互質的正整數之
個數 通常 ø(1) = 1 ,請計算 ø(37) 和 ø(35) 對質數 p 而言:
假設兩個質數 p 和 q ,且 p ≠ q ,若 n = pq :
為了證明先假設有一個小於 n 的正整數集合 {1, …, (pq - 1)} ,集合裡不與 n 互質的整數是集合 {p, 2p, …, (q - 1)p} 和集合 {q, 2q, …, (p - 1) q} 。因此:
8
尤拉函數 ø(n) 計算 ø(37) :
因為 37 為質數,所以 1 到 36 的所有正整數皆與37 互質,因此 ø(37) = 36
計算 ø(35) :列出所有小於 35 且與 35 互質的正整數:1 , 2 , 3 , 4 , 6 , 8 , 9 , 11 , 12 , 13 , 16 , 17 , 18 ,19 , 22 , 23 , 24 , 26 , 27 , 29 , 31 , 32 , 33 , 34以上共有 24 個數值,所以 ø(35) = 24
計算 ø(21) :ø(21) = (3–1)×(7–1) = 2 × 6 = 12其中的 12 個整數是 1,2,4,5,8,10,11,13,16,17,19,20
9
尤拉定理 由費馬定理產生
aø(n) = 1 (mod n) 對 a、 n 而言, gcd(a,n)=1
例如1. a=3;n=10; ø(10)=4; 因此 34 = 81 = 1 mod 102. a=2;n=11; ø(11)=10;因此 210 = 1024 = 1 mod 11
10
測試質數 許多密碼演算法必須隨機選取一或多
個很大的質數 因此要確定所選取的大數是不是質數 但目前並沒有簡單而有效的判定方法
11
米勒-拉賓演算法Miller Rabin Algorithm 測試的基礎是費馬定理 以下程序 TEST 的輸入為整數 n
TEST (n)1. Find integers k, q, k > 0, q odd, so that (n–1)=2kq2. Select a random integer a, 1<a<n–13. if aq mod n = 1 then return (“inconclusive");4. for j = 0 to k – 1 do
5. if (a2jq mod n = n-1) then return("(“inconclusive")
6. return ("composite")
n1 必為偶數 (why?)
請用此演算法測 29 、 221 是否為質數!
12
米勒-拉賓演算法的機率 如果 n 完全不符合質數的條件, TEST 會傳回
composite (合數) 如果 n 可能為質數, TEST 會傳回 inconclusive (不確
定),表示可能是質數 利用 TEST 測試非質數的奇數 n 以及隨機選取的整數 a ,
傳回 inconclusive 的機率小於 1/4 若選取 t 次不同的 a 值,以 TEST 檢查 n 而能通過 TEST
的機率將小於 (1/4)t
例如 t = 10 ,非質數而能通過這所有 10 次測試的機率小於 10-6 。因此對夠大的 t 值而言,如果米勒-拉賓演算法的測試傳回值都是 inconclusive , n 是質數的機率大於 0.99999
13
質數的分佈 接近 n 的質數,其平均間隔是 (ln n) 個整數 平均來說,找到質數之前必須先測試大約 (ln n) 個整數
但因能立即排除所有的偶數,因此正確的估算大約是 0.5 ln(n)
例如要尋找的質數若約為 2200 ,大約需要0.5 ln (2200) = 69 次檢測,才能找到一個質數
但這只是平均估算,質數在數線的某些地方會密集出現,而在其他地方則會相隔較遠才會出現質數
14
中國餘數定理( CRT ) ( 略 ) 令 xZ10
CRT 能從一組互質模數的餘數重建特定範圍的整數 例如 mod M = m1m2..mk
CRT 可以讓我們各自處理每個模數 mi
CRT 能以一組較小的數值計算可能非常大的數值的取 M 同餘,尤其若 M 超過 150 位數,這項特色更顯實用。不過要注意的是,必須事先知道M 的因數分解
18
總結 質數 費馬定理 尤拉定理及 ø(n) 中國餘數定理 ( 略 ) 離散對數 ( 略 )