密碼學與網路安全 第 8 章 數論介紹

15
1 密密密密密密密密 密 8 密 密密密密

Upload: erica

Post on 09-Jan-2016

149 views

Category:

Documents


4 download

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 Presentation

TRANSCRIPT

Page 1: 密碼學與網路安全 第 8 章 數論介紹

1

密碼學與網路安全

第 8 章 數論介紹

Page 2: 密碼學與網路安全 第 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

Page 3: 密碼學與網路安全 第 8 章 數論介紹

3

分解質數 分解數值 n ,是將 n 寫成其他質數的

乘積: n = a × b × c 例如:

91 = 7 × 13 ; 3600 = 24 × 32 × 52

以下是另一種有用的表達方式;若 P 是所有質數的集合,那麼任何正整數 a 都能用以下唯一的方式來表示:

Page 4: 密碼學與網路安全 第 8 章 數論介紹

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

Page 5: 密碼學與網路安全 第 8 章 數論介紹

5

費馬定理 若 p 為質數且 gcd(a,p)=1 則

ap-1 = 1 (mod p) 也稱為費馬小定理

ap = p (mod p) 費馬定理和尤拉定理在公開金鑰和質數測試扮演

了重要的角色

Page 6: 密碼學與網路安全 第 8 章 數論介紹

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

Page 7: 密碼學與網路安全 第 8 章 數論介紹

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} 。因此:

Page 8: 密碼學與網路安全 第 8 章 數論介紹

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

Page 9: 密碼學與網路安全 第 8 章 數論介紹

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

Page 10: 密碼學與網路安全 第 8 章 數論介紹

10

測試質數 許多密碼演算法必須隨機選取一或多

個很大的質數 因此要確定所選取的大數是不是質數 但目前並沒有簡單而有效的判定方法

Page 11: 密碼學與網路安全 第 8 章 數論介紹

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 是否為質數!

Page 12: 密碼學與網路安全 第 8 章 數論介紹

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

Page 13: 密碼學與網路安全 第 8 章 數論介紹

13

質數的分佈 接近 n 的質數,其平均間隔是 (ln n) 個整數 平均來說,找到質數之前必須先測試大約 (ln n) 個整數

但因能立即排除所有的偶數,因此正確的估算大約是 0.5 ln(n)

例如要尋找的質數若約為 2200 ,大約需要0.5 ln (2200) = 69 次檢測,才能找到一個質數

但這只是平均估算,質數在數線的某些地方會密集出現,而在其他地方則會相隔較遠才會出現質數

Page 14: 密碼學與網路安全 第 8 章 數論介紹

14

中國餘數定理( CRT ) ( 略 ) 令 xZ10

CRT 能從一組互質模數的餘數重建特定範圍的整數 例如 mod M = m1m2..mk

CRT 可以讓我們各自處理每個模數 mi

CRT 能以一組較小的數值計算可能非常大的數值的取 M 同餘,尤其若 M 超過 150 位數,這項特色更顯實用。不過要注意的是,必須事先知道M 的因數分解

Page 15: 密碼學與網路安全 第 8 章 數論介紹

18

總結 質數 費馬定理 尤拉定理及 ø(n) 中國餘數定理 ( 略 ) 離散對數 ( 略 )