1. Trang chủ
  2. » Luận Văn - Báo Cáo

TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU VẤN ĐỀ KIỂM TRA SỐ NGUYÊN TỐ LỚN

36 815 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 554,36 KB

Nội dung

TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU VẤN ĐỀ KIỂM TRA SỐ NGUYÊN TỐ LỚN Bài toán kiểm tra số nguyên tố lớn là một trong những bài toán cơ bản nhưng hết sức quan trọng trong lĩnh vực an toàn và bảo mật thông tin. Số nguyên tố cũng thường được dùng để tạo khóa cho các thông tin nhạy cảm mà người gửi cũng như người nhận đều muốn giữ bí mật. Ứng dụng chính của số nguyên tố là trong lĩnh vực mã hóa (cryptography), trong đó chúng ta cần tạo ra những số nguyên tố với hàng trăm chữ số. Kiểm tra một số có phải số nguyên tố hay không là một bài toán khá quan trọng trong khoa học máy tính, vì số nguyên tố được sử dụng rất rộng rãi trong các giải thuật mã hóa dùng khóa mở (public key cryptography algorithms). Ngoài ra nó còn được ứng dụng trong các bộ phát sinh số giả ngẫu nhiên (pseudorandom) và bảng hash (hash table).

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU

Đề tài: “VẤN ĐỀ KIỂM TRA SỐ NGUYÊN TỐ LỚN”

Giảng viên: PGS.TS Trịnh Nhật Tiến

Học viên thực hiện: Nguyễn Thế Tùng, K20

Lớp MH: INT 6010 2

Mã HV: 13025189

Hà Nội, 05/2014

Trang 2

1/ Giới thiệu

Bài toán kiểm tra số nguyên tố lớn là một trong những bài toán cơ bản nhưng hếtsức quan trọng trong lĩnh vực an toàn và bảo mật thông tin Số nguyên tố cũng thườngđược dùng để tạo khóa cho các thông tin nhạy cảm mà người gửi cũng như ngườinhận đều muốn giữ bí mật Ứng dụng chính của số nguyên tố là trong lĩnh vực mã hóa(cryptography), trong đó chúng ta cần tạo ra những số nguyên tố với hàng trăm chữ số.Kiểm tra một số có phải số nguyên tố hay không là một bài toán khá quan trọng trongkhoa học máy tính, vì số nguyên tố được sử dụng rất rộng rãi trong các giải thuật mã hóadùng khóa mở (public key cryptography algorithms) Ngoài ra nó còn được ứng dụngtrong các bộ phát sinh số giả ngẫu nhiên (pseudorandom) và bảng hash (hash table)

2/ Các khái niệm cơ bản

2.1/ Số nguyên tố

Số tự nhiên p, lớn hơn 1 gọi là số nguyên tố nếu như nó chỉ chia hết cho 1 và chính nó.Định lý cơ bản của số học nói rằng, bất kỳ số tự nhiên n, lớn hơn 1 có thể phân tích thànhtích các số nguyên tố Tức là một số tự nhiên có thể biểu diễn dưới dạng sau

k

k

p p

3, 7, 31, 127, 8191, 131071, 524287, 2147483647, 2305843009213693951,

170141183460469231731687303715884105727

Trang 3

2.2/ Số nguyên tố cùng nhau

Trong toán học, các số nguyên a và b được gọi là nguyên tố cùng nhau nếu chúng có

Ước số chung lớn nhất là 1 Ví dụ 6 và 35 là nguyên tố cùng nhau vì chúng có ước chunglớn nhất là 1, nhưng 6 và 27 không nguyên tố cùng nhau vì chúng có Ước chung lớn nhất

là 3 Số 1 là nguyên tố cùng nhau với mọi số nguyên Nhưng cũng có những trường hợpđặc biệt, hợp số là số nguyên tố cùng nhau VD: 6 và 25 tuy là hợp số nhưng chúng cóƯớc chung lớn nhất là 1 nên chúng là những số nguyên tố cùng nhau

2.3/ Hợp số

Cho hai số tự nhiên a, b Nếu có số tự nhiên q sao cho a=b*q thì ta nói a chia hết cho bhay b chia hết a Khi đó ta cũng nói a là bội của b, b là ước của a Mọi số tự nhiên lớnhơn 1 đều có ít nhất hai ước tự nhiên là 1 và chính nó Các ước này được gọi là ước tầmthường của n Một số tự nhiên lớn hơn 1, không chia hết cho số nào khác ngoài các ướctầm thường, được gọi là số nguyên tố Các số tự nhiên lớn hơn 1 và không nguyên tố thì

được gọi là hợp số Một hợp số là tích của ít nhất 2 số nguyên tố.

Ví dụ: 14 là hợp số vì ngoài việc chia hết cho hai ước tầm thường là 1 và 14 nó còn chiahết cho 2 và 7

Vì 11 và 5 khi chia cho 3 đều cho số dư là 2

Nếu số nguyên dương n và số nguyên a nguyên tố cùng nhau thì tồn tại duy nhất một

đảo của a theo mô-đun n.

Trang 4

m 2=

là hợp số, còn các số tiếp theo thì chưa được kiểm tra

Để kiểm tra tính nguyên tố của số Fermat chúng ta xem định lý sau

Định lý:

Số n=F k

khi k>0 là số nguyên tố khi và chỉ khi:

)(mod1

Trang 5

Bây giờ ta chứng minh phần nghịch Chú ý rằng 2 4 1(mod3)

2

Bởi vậy n>3,

)4(mod1),

23)

n n

Cho nên số n là nguyên tố chi khi m là số nguyên tố

Định nghĩa: Cho p là số nguyên tố, và

1

= p p

L q− ≡

Trang 6

Định lý: Cho p là số nguyên tố, p≡3(mod4)

,

1

= p p

2 / 1 (

22 1

p

M p

, từ đây

)(mod512

UCLN

, và dẫn đến

)(mod5

5

2 1

p p

p p

p

p p

F

F

M M

M

F F

M M

25

),5(mod2)5(mod121

2.7/ Dãy số Liuka

Cho dãy số u0,u1,u2, và v0,v1,v2, , với u0 =0,u1=1,v0 =2,v1=4

, còn các thành phầntiếp theo của dãy được tính theo công thức truy hồi 1 1

1

- đã biết được sự phân chia thành

thừa số nguyên tố của n-1 Nếu như đối với mỗi i=1, ,k

tồn tại số a iN

, sao cho

Trang 7

i |

α

với i=1,…,k Dẫn đến b a (mod n)

i i

p m

i i

có nghĩa là Z nlà một trường, và n là số nguyên tố

Từ định lý này chúng ta có thể kiểm tra được tính nguyên tố như sau Phân tích n-1 rathừa số, chọn a=2,3,…, kiểm tra điều kiện định lý Nếu như tìm thấy a nào đó, với

u u

Trang 8

Nếu như đối với từng i=1, ,k

i q

u +

,

thì n là số nguyên tố Nếu như tồn tại dãy số Liuka { }u j

như thế và D, sao cho u n+1không chia hết cho n, thì n là hợp số

j q F

1 1

Trang 9

Fermat thì

)1(

e j

Từ điều kiện của định lý ta có

)(mod1

/ 1 (

j j

j

α

Nghĩa là p−1≥F1,p>F1 ≥ n

.Chúng ta sẽ chứng minh với sự giúp đỡ của định lý này có thể xây dựng được số

nguyên tố lớn Chúng ta xây dựng dãy số nguyên tố p1< p2< p3 < ,

cho đến khi xâydựng được số nguyên tố đủ lớn chúng ta cần Số nguyên tố p1 chọn bất kỳ, ví dụ p1=3

Giả sử chúng ta đã xây dựng được số nguyên tốp i−1 Chọn số ngẫu nhiên r, 1≤rp i−1−1

.Giả sử: r t

s

2

=, t là số lẻ Như thế số nguyên tố p i chúng ta chọn

12

2 1

2 1

2 1

Dẫn đến đểchứng tỏ n là số nguyên tố, chúng ta cần tìm các số a1 và a2, sao cho

)(mod1

1 2

UCLN n

a

n n

.Nếu như ta tìm được số a, sao cho 1(mod )

Chúng ta

Trang 10

chọn số chẵn ngẫu nhiên r, thỏa mãn 1≤rp i−1−3

2 1 1

Chọn a và thực hiện tương tự như phương pháp xây dựng trên

Định lý tiếp theo sẽ cho chúng ta cách xây dựng số nguyên tố hiệu quả hơn, bởi vìkhông cần tính toán ước nguyên tố lớn

Trang 11

Giả sử d là bậc của a (mod

q s

Số q và p khác nhau,bởi vì p|n, q|n-1 Dẫn đến q|p-1 Từ đây p≡1(modq)

pN

Thế nhưng2

)21(1)12(2

)(mod1

2

p

n=, với p=2q+1

- là số nguyên tố và

)(mod

)2(mod

N p

n≡ ≡ ≡

.Nếu như một trong hai số p và N lớn hơn nhiều so với 1+ q

Trang 12

2

p

a p − ≡

, theođịnh lý Euler thì 1(mod )

2 2

p

a pp

, từ đây dẫn đến điều phải chứng minh

Chú ý: Nếu biết được q thì kiểm tra đẳng thức

2

)12

n

rất dễ dàng Có nghĩa là khibiết được a, chúng ta sẽ biết được n là nguyên tố hay hợp số Từ định lý kiểm tra tínhnguyên tố này chúng có thể xây dựng số nguyên tố lớn rất hiệu quả, bởi vì càng lớn giớihạn trên của số ngẫu nhiên r thì càng đạt được việc xây dựng số nguyên tố như ý

Định lý: Giả sử n là số lẻ, n>1,n−1=F1R1

, ở đây UCLN(F1,R1)=1

, F1 là số chẵn, và ta

biết được hoàn toàn sự phân chia F1 ra thừa số nguyên tố Giả sử đối với bất kỳ ước

nguyên tố q của F1 tìm thấy được

N

a q

, sao cho

) (mod 1

UCLN n q

q

.Giả sử mN

đối với từng l=1,2, ,m−1

, thì lF1+1

không là ước của n nếu

)1)(2)(

Trang 13

Nếu nN

và biết được sự phân tích hoàn toàn hoặc một phần lớn ra thừa số nguyên

tố của số n-1, thì có thể để kiểm tra xem n là hợp số hay là số nguyên tố với độ phức tạptheo đa thức Đánh giá tốt nhất độ phức tạp nhận được từ thuật toán Konigin- Pomerans:

j q n

1

1

Lúc này việc kiểm tra tính

nguyên tố của n có thể có chi phí là

logloglog 17/7

n n

1 1

, với ε

là số dương không đổi,thì việc kiểm tra tính nguyên tố của n có thể chi phí là ((log ) )

) ( ε

c

n O

( c(ε)

là số nguyêndương không đổi, phụ thuộc vào ε

Khi đó nếu p là số nguyên tố và p | n, thì p≡1(modm)

ước của n, và giả sử k là bậc của a (mod p) Như thế k=m Rõ ràng, k|m bởi vì từ

Điều nàytrái với giả thuyết của bổ đề

Trang 14

Ngoài ra chúng ta còn có, theo định lý Fermat 1(mod )

a p− ≡

, dẫn đến m|p-1 Đây làđiều ta cần chứng minh

Thuật toán kiểm tra tính nguyên tố của số.

I. Tầng 1 Chuẩn bị sẵn một bảng tất cả các số nguyên tố, không lớn hơn [log2n]+1

Đặt F(1):=1 Sau đó đối với từng số a=2,3,…, [log2n]+1

chúng ta thực hiện tầng 2cho đến khi chúng ta không chứng minh được n là hợp số hay nguyên tố

a n− ≡

.Nếu như không, thì n là hợp số

2. Bước 2 Khi phân tích n-1 ra thừa số nguyên tố, ta tìm bậc của a (mod n), nghĩa là

số tự nhiên nhỏ nhất E(a), thỏa mãn 1(mod )

|

/ ) ( 1 ) (

(

a E q

q a E

a UCLN

Trang 15

6. Bước 6 Nếu như a≤[log2n]

, thì quay về tầng 2 với a là giá trị tiếp theo Nếu như

lệnh nhờ sự giúp đở của thuật toán hổ trợ sau

Thuật toán tìm bậc của phần tử

Cho đầu vào thuật toán a,nN

A

.Nếu như đúng thì nhảy sang bước 4 Ngược lại

Trang 16

Và chuyển đến giá trị tiếp theo của l trong chu trình.

Bước 4 Nếu như j<N, thì quay về bước 2, ngược lại thì đưa ra M.

Tính đúng đắn của thuật toán tìm bậc của phần tử thì quá rõ ràng Để nhận được đánhgiá về độ phức tạp của thuật toán này ta chú y rằng

p n

1

21

,

từ đây

)(log),

(log),

E

a

có với nước chung là d, 1<d<n Độ phức tạp của bước 3 tầng 2 là (log )

2n O

lệnh

Sau khi trải qua bước 4, hòan thành điều kiện sau: Đối với tất cả các số b, 2 ≤ba

,

)(mod1

)

b F a

.Chúng ta chứng minh tính đúng đắn của bước 5 Chúng ta có

)(mod1),

UCLN E a q

Trang 17

Cũng như 1(mod )

)

a F a

Nếu như chúng ta chứng minh rằng, đối với mỗi số nguyên

tố p, p|n, thỏa mãn điều kiện p≡1(modF(a))

n

log log 1

n a n

n a

),(

ϕ

,

Trang 18

bởi vì a n

2

log

>

, dẫn đến loga>2loglogn

Vậy chúng ta đã dẫn đến mâu thuẫn

3.3/ Kiểm tra tính nguyên tố bằng thuật toán Millier

Cho

*

- hàm số trên tập số tự nhiên, với f(n)<n

Đầu vào là số tự nhiên lẻ n, n>1

Bước 1 Kiểm tra điều kiện sau có thỏa mãn hay không

s

m

n=, với s,mN,s≥2

Nếunhư thỏa mãn, thì n là hợp số, và thuật toán dừng

Bước 2 Thuật hiên các bước nhỏ (i)-(iii) đối với tất cả af (n)

(i) Kiểm tra điều kiện a|n

(ii) Kiểm tra điều kiện (mod )

Các phép kiểm tra tính nguyên tố hay dùng nhất là các thuật toán ngẫu nhiên Giả sử

có một mệnh đề Q(p,a) nào đó đúng với mọi số nguyên tố p và một số tự nhiên a <= p.Nếu n là một số tự nhiên lẻ và mệnh đề Q(n,a) đúng với một a<= n được lấy ngẫu nhiên,khi đó a có khả năng là một số nguyên tố Ta đưa ra một thuật toán, kết luận rằng n là số

Trang 19

nguyên tố Nó là một thuật toán ngẫu nhiên hay thuật toán xác suất Trong các thuật toánloại này, dùng một kiểm tra ngẫu nhiên không bao giờ kết luận một số nguyên tố là hợp

số nhưng có thể kết luận một hợp số là số nguyên tố Xác suất sai của phép kiểm tra cóthể giảm xuống nhờ việc chọn một dãy độc lập các số a; nếu với mỗi số a xác suất đểthuật toán kết luận một hợp số là số nguyên tố là nhỏ hơn một nửa thì sau k lần thử độclập, xác suất sai là nhỏ hơn 2−k, độ tin cậy của thuật toán sẽ tăng lên theo k

Cấu trúc cơ bản của một phép kiểm tra ngẫu nhiên là:

(i) Chọn một số ngẫu nhiên a

(ii) Kiểm tra một hệ thức nào đó giữa số a và số n đã cho Nếu hệ thức sai thì chắcchắn n là một hợp số (số a là "bằng chứng" chứng tỏ n là hợp số) và dừng thuật toán

(iii) Lặp lại bước 1 cho đến khi đạt được số lần đã định hoặc gặp bước 2

Sau một loạt lần kiểm tra, nếu không tìm được bằng chứng chứng tỏ n là hợp số thì takết luận n là số nguyên tố

Các phép kiểm tra tính nguyên tố ngẫu nhiên là: Phép kiểm tra tính nguyên tố củaFermat (kiểm tra Fermat Đây là phép thử heuristic; tuy nhiên ít người sử dung phép thửnày Được sử dụng nhiều hơn là Kiểm tra Miller-Rabin và Kiểm tra Solovay-Strassen.Với mọi hợp số n, ít nhất 3/4 (với kiểm tra Miller-Rabin) hoặc 1/2 (Với kiểm tra Solovay-Strassen) các số a là bằng chứng chứng tỏ n là hợp số)

3.4.1/ Kiểm tra trên cơ sở định luật nhỏ của Fermat

3.4.1.1/ Cơ sở thuật toán

Phương pháp này dựa trên định luật nhỏ của Fermat: Nếu như n là số nguyên tố thì bất

kỳ số aZ

thỏa mãn phương trình sau

Trang 20

và kiểmtra xem có thỏa mãn định lý của Fermat hay không? Nếu như định lý Fermat không thỏavới một giá trị a nào đó thì n là hợp số Nếu như định lý thỏa mãn, thì chúng ta cũngkhông thể kết luận rằng n là số nguyên tố, bởi vì định lý chỉ đúng trong điều kiện cần Vìvẫn tồn tại n là hợp số, thì đối với bất kỳ số aZ

, số này còn được gọi là số Carmichael

Ví dụ, chúng ta xem số 561=3.11.17 Chúng ta chứng số này là số Carmichael Đồng

Như vậy việc kiểm tra số nguyên tố theo Fermat là có khuyết điểm

Ta có thể nêu ra các bước kiểm tra tính nguyên tố như sau:

1. Chọn ngẫu nhiên a từ tập {1 , 2 , ,n− 1}

và kiểm tra điều kiện UCLN(a,n)=1

2. Nếu như điều kiện trên không thỏa mãn thì n là hợp số

3. Kiểm tra đẳng thức (2)

4. Nếu như đẳng thức (2) không thỏa mãn thì trả lời n là hợp số

Trang 21

5. Nếu như đẳng thức đúng thì trả lời là chưa biết, nhưng có thể kiểm tra lại một sốlần với các a khac nhau.

Giải thuật Fermat kiểm tra tính nguyên tố của số

Đầu vào: n: giá trị để kiểm tra tính nguyên tố; k: tham số tham gia vào quá

3.4.1.2/ Ví dụ minh họa

Ví dụ 1:

Kiểm tra n = 221 là số nguyên tố Kiểm tra tới khi nào không còn lấy được số a nào

sao cho 1≤a≤220 và UCLN(a,n)=1

- Chọn a = 38:

- Chọn a= 26:

Trang 22

Vậy 221 là hợp số, không phải là số nguyên tố

Ví dụ 2:

Kiểm tra n = 5 là số nguyên tố Kiểm tra tới khi nào không còn lấy được số a nào

sao cho 1≤a≤4 và UCLN(a,n)=1

3.4.2/ Kiểm tra bằng Miller-Rabin

3.4.2.1/ Cơ sở thuật toán

Kiểm tra Miller-Rabin là một thuật toán xác suất để kiểm tra tính nguyên tố Nó được

đề xuất đầu tiên bởi Gary L Miller như một thuật toán tất định, dựa trên giả thiếtRiemann tổng quát; Michael O Rabin đã sửa chữa nó thành một thuật toán xác suất

Trang 23

Khi sử dụng kiểm tra Miller-Rabin chúng ta căn cứ vào một mệnh đề Q(p,a) đúngvới các số nguyên tố p và mọi số tự nhiên aAN

và kiểm tra xem chúng có đúng với

số n muốn kiểm tra và một số aA

được chọn ngẫu nhiên hay không? Nếu mệnh đềQ(n,a) không đúng, tất yếu n không phải là số nguyên tố, còn nếu Q(n,a) đúng, số n có thể

là số nguyên tố với một xác suất nào đó Khi tăng số lần thử, xác suất để n là số nguyên tốtăng lên

Bổ đề: Cho trường hữu hạn p

Z

, trong đó p là số nguyên tố Chắc chắn rằng 1 và -1luôn là các căn bậc hai của 1 theo mođun p Chúng là hai căn bậc hai duy nhất của 1 Thậtvậy, giả sử rằng x là một căn bậc hai của 1 theo mođun p Khi đó:

)(mod1

x

)(mod01

x − ≡

)(mod0)1)(

1

Từ đó, x − 1 hoặc x + 1 là chia hết cho p

Bây giờ giả sử p là một số nguyên tố lẻ, khi đó p - 1 là số chẵn và ta có thể viết p − 1dưới dạng m

s

2

, trong đó s là một số tự nhiên lớn hơn hay bằng 1 và m là số lẻ - Điềunày nghĩa là ta rút hết các thừa số 2 khỏi p − 1 Lấy số a bất kỳ trong tập {1,2, ,p-1} Xétdãy số

m k

k a

a p− ≡Hay

Trang 24

x s ≡Hay

)(mod1

Sau một số hữu hạn bước ta có: hoặc ta có một chỉ số k, 0≤ks−1

sao cho

)(mod

Xác suất trả lời sai:

Định lý: nếu n là hợp số dương lẻ thì trong các số a

{2, ,n-1} tồn tại không quá 4

1

n

cơ sở a để n là số giả nguyên tố mạnh Fermat

Gọi A là biến cố "Số n là hợp số" B là biến cố "Kiểm tra Miller-Rabin trả lời n là sốnguyên tố" Khi đó xác suất sai của kiểm tra này là xác suất để số n là hợp số trong khithuật toán cho câu trả lời TRUE, nghĩa là xác suất điều kiện P(A|B)

Trang 25

Theo định lý trên nếu n là hợp số thì khả năng kiểm tra này trả lời TRUE xảy ra với

xác suất không vượt quá 4

1

, nghĩa là P(B|A) 4

1

≤ Tuy nhiên để tính xác suất sai của kiểmtra Miller-Rbin cần tính xác suất diều kiện P(A|B) Dựa trên định lý về ước lượng số các

số nguyên tố ta đưa ra ước lượng

n

n n A

P

ln

2lnln

21)

Theo định lý Bayes trong lý thuyết xác suất ta có công thức để tính xác suất sai củakiểm tra Miller-Rabin là:

)()

|()()

|(

)()

|()

(

)()

|()

|(

A P A B P A P A B P

A P A B P B

P

A P A B P B A P

⋅+

vì khi n là số

nguyên tố thì chắc chắn mệnh đề Q(n,a) là đúng và n

A P A

P

ln

2)(1)

Từ đây ta có

2)2(ln)

|(

)2(ln)

|()

|(

n A B P B A P

Kiểm tra Miller-Rabin lặp:

Theo công thức tính xác suất sai trên đây, với n lớn (cỡ 130 chữ số thập phân), nếuthực hiện phép thử Miller-Rabin chỉ một lần, xác suất sai là khá lớn, tới trên 90% Đểgiảm xác suất sai, ta lặp lại phép thử k lần với k số ngẫu nhiên a khác nhau, nếu n vượt

Trang 26

thử đều "dương tính" thì xác suất sai giảm xưống chỉ còn là một số rất nhỏ không vượtquá

Ngày đăng: 19/10/2014, 23:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w