Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 79 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
79
Dung lượng
1,95 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NÔI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRƯƠNG CÔNG QUYỀN VẤN ĐỀ KIỂM TRA CÁC SỐ NGUYÊN TỐ LỚN LUẬN VĂN THẠC SỸ HÀ NỘI – 2011 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NÔI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRƯƠNG CÔNG QUYỀN VẤN ĐỀ KIỂM TRA CÁC SỐ NGUYÊN TỐ LỚN Ngành: Công nghệ Thông tin Chuyên ngành: Hệ thống Thông tin Mã số: 60 48 05 LUẬN VĂN THẠC SỸ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Trịnh Nhật Tiến HÀ NỘI – 2011 TIEU LUAN MOI download : skknchat@gmail.com MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN .3 GIỚI THIỆU DANH MỤC TỪ VIẾT TẮT Chương CÁC KHÁI NIỆM CƠ BẢN .8 1.1 MỘT SỐ KHÁI NIỆM TRONG SỐ HỌC, ĐẠI SỐ 1.1.1 Khái niệm số học .8 1.1.2 Khái niệm đại số 1.1.3 Đồng dư phương trình đồng dư tuyến tính .12 1.1.4 Thặng dư thu gọn phần tử nguyên thủy 15 1.1.5 Phương trình đồng dư bậc hai thặng dư bậc hai 17 1.2 MỘT SỐ THUẬT TOÁN 20 1.2.1 Thuật tốn tính ước chung lớn .20 1.2.2 Thuật tốn tính phần tử nghịch đảo theo Modulo 24 1.2.3 Thuật tốn phân tích số thừa số nguyên tố 25 1.3 ĐỘ PHỨC TẠP TÍNH TỐN .30 1.3.1 Khái niệm độ phức tạp tính tốn .30 1.3.2 Lớp phức tạp 33 1.3.3 Hàm phía cửa sập phía 35 Chương MỘT SỐ PHƯƠNG PHÁP KIỂM TRA SỐ NGUYÊN TỐ .37 2.1 SỐ NGUYÊN TỐ 37 2.1.1 Khái niệm số nguyên tố .37 2.1.2 Tính chất số nguyên tố 37 2.1.3 Định lý số học 38 2.1.4 Sự phân bố số nguyên tố 39 2.2 SỐ NGUYÊN TỐ CÓ DẠNG ĐẶC BIỆT 41 2.2.1 Số nguyên tố Mersenne .41 TIEU LUAN MOI download : skknchat@gmail.com 2.2.2 Số nguyên tố Fermat 47 2.3 MỘT SỐ PHƯƠNG PHÁP KIỂM TRA SỐ NGUYÊN TỐ 49 2.3.1 Phương pháp cổ điển 49 2.3.2 Phương pháp xác suất 52 Chương ỨNG DỤNG CỦA SỐ NGUYÊN TỐ VÀ THỬ NGHIỆM CHƯƠNG TRÌNH .62 3.1 MÃ HÓA .62 3.1.1 Hệ mã hóa RSA 62 3.1.1 Hệ mã hóa Elgamal .63 3.1.1 Hệ mã hóa Rabin 64 3.2 KÝ SỐ 65 3.2.1 Chữ ký RSA 66 3.2.2 Chữ ký Elgamal 67 3.2.3 Sơ đồ chuẩn chữ ký số DSS .68 3.2.4 Chữ ký phủ định 69 3.3 CÁC GIAO THỨC THỎA THUẬN, PHÂN PHỐI KHÓA 71 3.3.1 Giao thức phân phối khoá Blom 71 3.3.2 Giao thức phân phối khoá Diffie-Hellman .72 3.3.3 Giao thức thoả thuận khoá Diffie-Hellman 73 3.3.4 Giao thức thoả thuận khoá “Trạm tới Trạm” 74 3.3.5 Giao thức thoả thuận khoá MTI 75 3.4 THỬ NGHIỆM CHƯƠNG TRÌNH 76 3.4.1 Cấu hình hệ thống 76 3.4.2 Chức 76 3.4.3 Chương trình 77 KẾT LUẬN 80 TÀI LIỆU THAM KHẢO .81 TIEU LUAN MOI download : skknchat@gmail.com DANH MỤC TỪ VIẾT TẮT Gcd (Greatest Common Divisor) Ước số chung lớn Lcm (Least Common Multiple) Bội số chung nhỏ Mod Modulo TIEU LUAN MOI download : skknchat@gmail.com Chương CÁC KHÁI NIỆM CƠ BẢN 1.1 MỘT SỐ KHÁI NIỆM TRONG SỐ HỌC, ĐẠI SỐ 1.1.1 Khái niệm số học 1) Ký hiệu chia hết Cho a b hai số nguyên dương Số a chia hết cho số b ký hiệu a b Tồn n N cho: a=b*n Khi người ta nói b ước a ký hiệu: b | a 2) Ước số chung lớn Cho a b hai số nguyên dương Ước số chung lớn a b số tự nhiên m lớn cho m | a m | b Khi ký hiệu gcd(a, b) = m 3) Hai số nguyên tố Cho a b hai số nguyên dương Số a số b gọi nguyên tố gcd(a, b) = 4) Đồng dư modulo Cho n N, n a, b Z n* Ký hiệu a b (mod n) nghĩa a đồng dư với b theo mod n Tồn số nguyên k Z n* cho a = b + k * n Tức (a - b) = k * n, n | (a - b) 5) Một số tính chất đồng dư modulo (a b) (mod n) [(a mod n) (b mod n)] (mod n) (a * b) (mod n) [(a mod n) * (b mod n)] (mod n) TIEU LUAN MOI download : skknchat@gmail.com 1.1.2 Khái niệm đại số 1) Khái niệm nhóm Nhóm cặp (G, *), G tập hợp khác rỗng, * phép tốn hai ngơi G thoả mãn ba điều kiện sau: Phép tốn có tính kết hợp: (x * y) * z = x * (y * z) với x, y, z G Có phần tử phần tử trung lập e G: x * e = e * x = x với x G Với x G, có phần tử nghịch đảo x’ G: x * x’ = x’ * x = e 2) Nhóm Cho G Nhóm, cho S G S S gọi Nhóm G nếu: 1/ Phần tử trung lập e G nằm S 2/ S khép kín luật hợp thành G (tức x * y S với x, y S) 3/ S khép kín phép lấy nghịch đảo G (tức x-1 S với xS) 3) Nhóm Cyclic a) Khái niệm Nhóm Cyclic Nhóm (G, *) gọi Nhóm Cyclic sinh phần tử Tức có phần tử g G mà với a G, tồn số n N để g n = g * g * … * g = a (Chú ý: g * g * … * g g * g với n lần) Khi g gọi phần tử sinh hay phần tử nguyên thuỷ nhóm G Nói cách khác: G gọi Nhóm Cyclic tồn g G cho phần tử G luỹ thừa nguyên g TIEU LUAN MOI download : skknchat@gmail.com Ví dụ: Nhóm (Z + , +) gồm số nguyên dương Cyclic với phần tử sinh g = b) Cấp Nhóm Cyclic: Cho (G, *) Nhóm Cyclic với phần tử sinh g phần tử trung lập e Nếu tồn số tự nhiên nhỏ n mà g n = e, G gồm có n phần tử khác nhau: e, g, g2, g3, , gn - Khi G gọi nhóm Cyclic hữu hạn cấp n Nếu không tồn số tự nhiên n để g n = e, G có cấp Ví dụ: (Z + , +) gồm số nguyên dương Cyclic với phần tử sinh g = 1, e = Đó Nhóm Cyclic vơ hạn, khơng tồn số tự nhiên n để g n = e, c) Cấp phần tử Nhóm Cyclic: Phần tử G gọi có cấp d, d số nguyên dương nhỏ cho d = e, e phần tử trung lập G Như phần tử có cấp 1, = e 4) Tập Zn Z* Zn = 0, 1, 2, , n - 1 Tức Zn tập số nguyên không âm < n Tập với phép cộng lập thành Nhóm Cyclic có phần tử sinh Đó Nhóm hữu hạn có cấp n Zn* = e Zn, e nguyên tố với n Tức e # Đó tập số nguyên dương < n, nguyên tố với n gọi tập Thặng dư thu gọn theo mod n, lập thành Nhóm với phép nhân mod n (n) số phần tử tập Z n* 10 TIEU LUAN MOI download : skknchat@gmail.com 5) Một số kết Những kết sau chứng minh, nhắc lại để sử dụng: * Định lý Lagrange: Cho G nhóm Cấp n g G Khi cấp g ước n * Hệ quả: Giả sử g Z n* có Cấp m m ước (n) Nếu b Z n* b (n) (mod n) Nếu p số nguyên tố (p) = p -1 Do với b Z *p (tức b nguyên tố với p) b (p) (mod n) hay bp -1 (mod n) * Định lý: Nếu p số nguyên tố Z *p Nhóm Cyclic Chú ý: Phần tử Z n* có cấp d d số nguyên dương nhỏ cho d = e Z n* , tức d (mod n) 6) Khái niệm Logarit rời rạc Cho p số nguyên tố, phần tử nguyên thuỷ Zp, Z *p Logarit rời rạc việc giải phương trình x = log (mod p) với ẩn x Hay phải tìm số x cho: x (mod p) - Bổ đề: Nếu (a, n) = tồn a-1 Zn thoả mãn a * a-1 (mod n) - Định lý (Euler tổng quát): Nếu (a, n) = a(n) mod n = - Hệ quả: Với p số nguyên tố (a, p) = ap-1 (mod p) = 11 TIEU LUAN MOI download : skknchat@gmail.com 1.1.3 Đồng dư phương trình đồng dư tuyến tính Cho n số nguyên dương Hai số nguyên a b đồng dư với theo mô đun n, viết a b (mod n), n/a-b (tức a – b chia hết cho n, hay chia a b cho n số dư nhau) Ví dụ: 23 (mod 5), 23 – = 5.3, -19 (mod 7) -19 – = - 4.7 Quan hệ đồng dư (theo mơđun n) tập hợp số ngun có tính chất phản xạ, đối xứng bắc cầu, tức quan hệ tương đương, tạo phân hoạch tập hợp tất số nguyên Z thành lớp tương đương: hai số nguyên thuộc lớp tương đương chúng cho số dư chia cho n Mỗi lớp tương đương đại diện số tập hợp Zn = {0, 1, 2, 3, , n-1}, số dư chung chia số lớp cho n Vì vậy, ta đồng Zn với tập hợp tất lớp tương đương số nguyên theo mod n; tập ta xác định phép tính cộng, trừ nhân theo mod n Ví dụ: Z25 = {0, 1, 2, 24} Trong Z25, 15 +14 = 4, 15 + 14 = 29 (mod 25) Tương tự, 15.14 10 Z25 Cho a Zn Một số nguyên x Zn gọi nghịch đảo a theo modn, a.x (modn) Nếu có số x ta nói a khả nghịch, ký hiệu x a-1 mod n Thí dụ 22-1 mod 25 = 8, 22.8 = 186 (mod 25) Từ định nghĩa ta suy a khả nghịch theo mod n gcd (a,n) = 1, tức a n nguyên tố với Dịnh nghĩa phép chia Zn sau: a : b (mod n) = a.b-1 mod n Phép chia thực b khả nghịch theo mod n Ví dụ 15: 22 (mod 25) = 15 : 22-1 mod 25 = 20 12 TIEU LUAN MOI download : skknchat@gmail.com 3.2.2 Chữ ký Elgamal 1) Sơ đồ chữ ký Elgamal *Tạo cặp khóa (bí mật, cơng khai) (a, h) : Chọn số nguyên tố p cho toán logarit rời rạc Zp “khó” giải Chọn phần tử nguyên thuỷ g Zp* Đặt P = Z p*, A = Z p* x Z p-1 Chọn khóa bí mật a Zp* Tính khóa cơng khai h g a mod p Định nghĩa tập khóa: = {(p, g, a, h): h g a mod p} Các giá trị p, g, h công khai, phải giữ bí mật a * Ký số: Dùng khóa ký: khóa a khóa ngẫu nhiên bí mật r Zp-1* (Vì r Zp-1* , nên nguyên tố p -1, tồn r -1 mod (p -1) ) Chữ ký x P Trong y = Sig k (x, r) = (, ), yA (E1) Z p*, Zp-1 : = g r mod p = (x – a * ) * r -1 mod (p -1) * Kiểm tra chữ ký: Ver k (x, , ) = h * g x mod p (E2) Chú ý: Nếu chữ ký tính đúng, kiểm thử thành cơng h * ga * g r * mod p g (a + r * ) mod p g x mod p Do = (x – a * ) * r -1 mod (p -1) nên (a * + r *) x mod (p-1) 2) Ứng dụng số nguyên tố Chọn số nguyên tố p cho tốn logarit rời rạc Zp “khó” giải Bài tốn bảo đảm độ an tồn Sơ đồ chữ ký Elgamal: Bài tốn tính Logarit rời rạc: Biết khóa cơng khai h ga mod p Nên xác định khóa bí mật a cách tính Logg h 67 TIEU LUAN MOI download : skknchat@gmail.com 3.2.3 Sơ đồ chuẩn chữ ký số DSS 1) Sơ đồ *Tạo cặp khóa (bí mật, cơng khai) (a, h) : - Chọn số nguyên tố p cho tốn logarit rời rạc Zp “khó” giải Chọn q ước nguyên tố p - Tức p - = t * q hay p = t * q + (Số nguyên tố p cỡ 512 bit, q cỡ 160 bit) - Chọn g Zp* bậc q mod p, (g phần tử sinh Zp* ) Tính = g t , chọn khóa bí mật a Zp*, tính khóa cơng khai h a mod p - Đặt: P = Z q*, A = Z q* x Z q* , K = (p, q, , a, h)/ a Zp*, h a mod p - Với khóa (p, q, , a, h), k’ = a bí mật, k” = (p, q, , h) cơng khai * Ký số: Dùng khóa ký: khóa a khóa ngẫu nhiên bí mật r Z q* Chữ ký x Zp* Sig k’ (x, r) = (, ), = ( r mod p) mod q, = ((x + a * ) * r -1 mod q (Chú ý r Z q*, để bảo đảm tồn r -1 mod q) * Kiểm tra chữ ký: Với e1 = x * -1 mod q, e2 = * -1 mod q Ver k” (x, , ) = ( e1 * h e2 mod p) mod q = 2) Ứng dụng số nguyên tố Trong tạo cặp khóa (bí mật, cơng khai) (a, h) : - Chọn số nguyên tố p cho tốn logarit rời rạc Zp “khó” giải - Chọn q ước nguyên tố p - Tức p - = t * q hay p = t * q + (Số nguyên tố p cỡ 512 bit, q cỡ 160 bit) 68 TIEU LUAN MOI download : skknchat@gmail.com 3.2.4 Chữ ký phủ định 1) Sơ đồ chữ ký phủ định (Chaum - van Antverpen) Chuẩn bị tham số: Chọn số nguyên tố p cho toán log rời rạc Zp khó p = 2*q + 1, q số nguyên tố Gọi P nhóm nhân Zp* theo q (P gồm thặng dư bậc hai theo mod p) Chọn phần tử sinh g nhóm P cấp q Đặt P = A = P, K = (p, g, a, h): a Z q*, h g a mod p a) Thuật tốn ký: Dùng khố bí mật k’ = a để ký lên x: Chữ ký b) Giao thức kiểm thử: y = Sig k’ (x) = x a mod p Dùng khố cơng khai k” = (p, g, h) Với x, y P, người nhận N người gửi G thực giao thức kiểm thử: 1/ N chọn ngẫu nhiên e , e Zq * 2/ N tính c = y e1 h e2 mod p, 3/ G tính d ca 1 modq modp gửi cho G gửi cho N 4/ N chấp nhận y chữ ký đúng, d x e1 g e2 mod p 69 TIEU LUAN MOI download : skknchat@gmail.com c) Giao thức chối bỏ: 1/ N chọn ngẫu nhiên e , e Zq * 2/ N tính c = y e1 h e2 mod p, gửi cho G 3/ G tính d ca 1 modq modp gửi cho N 4/ N thử điều kiện d x e1 g e2 (mod p) 5/ N chọn ngẫu nhiên f1, f2 Zq* f 6/ N tính C y * 7/ G tính D C f2 modp a1 modq modp 8/ N thử điều kiện D x f1 g f2 gửi cho G gửi cho N (mod p) 9/ N kết luận y chữ ký giả mạo nếu: (d * e2 ) f1 (D * f2 ) e1 (modp) (thay g) 2) Ứng dụng số nguyên tố Chọn số nguyên tố p cho tốn log rời rạc Zp khó p = 2*q + 1, q số nguyên tố 70 TIEU LUAN MOI download : skknchat@gmail.com 3.3 CÁC GIAO THỨC THỎA THUẬN, PHÂN PHỐI KHÓA 3.3.1 Giao thức phân phối khố Blom 1) Ý tưởng Giả thiết có mạng gồm n người dùng Giả sử khoá chọn trường hữu hạn Zp (số nguyên tố p ≥ n) Chọn số nguyên k, (1 < k < n-2), giá trị k để hạn chế kích thước lớn nhất, mà sơ đồ trì độ mật Trung tâm uỷ quyền (TT) phải thiết kế sơ đồ phân phối khóa để thực yêu cầu sau: - Truyền (k+1) phần tử Zp , cho người dùng kênh an tồn (Theo phương pháp phân phối thơng thường, TT phải truyền n-1 phần tử) - Mỗi cặp người dùng U V phải có khả tính khoá chung Ku, v = Kv, u - Bảo đảm điều kiện an toàn sau: Tập gồm nhiều k người dùng không liên kết với U hay V, “khó” thể xác định thơng tin Ku,v 2) Ứng dụng số nguyên tố Chọn số nguyên tố p cho p ≥ n (n số người dùng mạng) 71 TIEU LUAN MOI download : skknchat@gmail.com 3.3.2 Giao thức phân phối khoá Diffie-Hellman 1) Sơ đồ a/ Chọn số nguyên tố p cho toán logarit rời rạc Zp “khó” giải Chọn phần tử nguyên thuỷ Zp * Giá trị p công khai (Người dùng TT chọn) Mỗi người dùng U chọn số mũ bí mật au (0 ≤ au ≤ p - 2) tính giá trị cơng khai tương ứng: b u = a mod p u Mỗi người dùng U có dấu xác nhận TT ID(U) bu: C(U) = (ID(U), bu, sigTT (ID(U), bu)) b/ Để có khố chung với V, người dùng U (có au) tính: Ku, v = bv au mod p = a a mod p u v c/ Để có khố chung với U, người dùng V (có av) tính: Kv, u = bu av mod p = a a mod p u v a a mod p R ràng khoá u v 2) Ứng dụng số nguyên tố Sơ đồ “an tồn” mặt tính tốn, liên quan đến chọn số nguyên tố p để tốn logarit rời rạc “khó ” giải Cụ thể “khó” tính au từ phần tử cơng a khai b u = mod p u 72 TIEU LUAN MOI download : skknchat@gmail.com 3.3.3 Giao thức thoả thuận khoá Diffie-Hellman 1) Sơ đồ Người dùng chọn số nguyên tố p lớn cho toán logarit rời rạc Zp* “khó” giải; chọn phần tử nguyên thuỷ Zp * Phần tử p, công khai a/ Người dùng U chọn au ngẫu nhiên, bí mật (0 ≤ au ≤ p – 2) a Tính b u = mod p gửi đến V u b/ Người dùng V chọn av ngẫu nhiên, bí mật (0 ≤ av ≤ p – 2) a Tính b v = mod p gửi đến U v a a c/ U tính khoá chung Ku, v = ( ) mod p v u a a d/ V tính khố chung Kv, u = ( ) mod p u v Hai giá trị khố nhau! 2) Ứng dụng số ngun tố Sơ đồ “an tồn” mặt tính tốn, liên quan đến chọn số ngun tố p để tốn logarit rời rạc “khó ” giải 73 TIEU LUAN MOI download : skknchat@gmail.com 3.3.4 Giao thức thoả thuận khoá “Trạm tới Trạm” Giao thức thoả thuận khoá “Trạm tới Trạm” (STS) cải tiến giao thức phân phối khố Diffie-Hellman, bổ sung phần xác thực danh tính người dùng STS gọi giao thức thoả thuận khố có xác thực, nhờ trung tâm tin cậy TT 1) Sơ đồ Trung tâm tin cậy TT chọn số nguyên tố p lớn cho toán logarit rời rạc Zp * “khó” giải Chọn phần tử nguyên thuỷ Zp * Giá trị p, cơng khai, có dấu xác nhận TT Mỗi người dùng U có chữ ký với thuật tốn xác minh veru TT có chữ ký với thuật toán xác minh verTT Mỗi người dùng U có dấu xác nhận định danh ID(U) là: C(U) = (ID(U), veru , sigTT (ID(U), veru)) a a/ U chọn au ngẫu nhiên, bí mật (0 ≤ au ≤ p – 2), tính mod p, gửi tới V u b/ V chọn av ngẫu nhiên, bí mật (0 ≤ av ≤ p – 2) a a a a Tính mod p, yv = sig v ( , ) Gửi (C(V), mod p, yv) tới U v v u v a a V tính khóa chung Kv, u = ( ) mod p u v a a Ku, v = ( ) mod p v c/ U tính khóa chung u Dùng verv để xác minh yv xác minh C(V) nhờ verTT a a Tính yu = sig u( , ) Gửi (C(U), yu) tới V u v d/ Dùng veru để xác minh yu xác minh C(U) nhờ verTT 2) Ứng dụng số nguyên tố Sơ đồ “an tồn” mặt tính tốn, liên quan đến chọn số nguyên tố p để toán logarit rời rạc “khó ” giải 74 TIEU LUAN MOI download : skknchat@gmail.com 3.3.5 Giao thức thoả thuận khoá MTI Matsumoto, Takashima Imai (MTI) xây dựng giao thức thoả thuận khoá cách cải biên giao thức trao đổi khố STS Giao thức khơng địi hỏi U V phải tính chữ ký Đó giao thức “2 lần”, có lần truyền tin riêng biệt (một từ U đến V từ V đến U) 1) Sơ đồ Chọn số nguyên tố p lớn cho toán logarit rời rạc Zp * “khó” giải Chọn phần tử nguyên thuỷ Zp * Mỗi người dùng U có số mũ bí mật au (0 ≤ au ≤ p -2) giá trị công khai a tương ứng: bu = mod p u TT có sơ đồ chữ ký với thuật tốn ký bí mật sigTT thuật toán xác minh verTT Mỗi người dùng U có định danh ID(U) dấu xác nhận TT: C(U) = (ID(U), bu , sig TT (ID(U), bu)) a/ U chọn ngẫu nhiên bí mật ru , ≤ ru ≤ p – 2, tính su = ru mod p gửi (C(U), su) đến V b/ V chọn ngẫu nhiên bí mật rv , ≤ rv ≤ p – 2, tính r sv = mod p gửi v (C(V), sv) đến U c/ U tính khố a r K = sv *bv mod p, bv nhận từ C(V) d/ V tính khố a r K = su *bu mod p, bu nhận từ C(U) u v u v r *a Cuối giao thức, U V tính khoá K = u v rv * au mod p 2) Ứng dụng số nguyên tố Sơ đồ “an tồn” mặt tính tốn, liên quan đến chọn số nguyên tố p để tốn logarit rời rạc “khó ” giải 75 TIEU LUAN MOI download : skknchat@gmail.com 3.4 THỬ NGHIỆM CHƯƠNG TRÌNH 3.4.1 Cấu hình hệ thống - Yêu cầu phần cứng: Phần cứng tối thiểu đề nghị cho tất máy dự cài đặt sử dụng chương trình Demo + Tối thiểu Pentium III + Dung lượng RAM đề nghị 256 + Dung lượng cần để cài đặt chương trình 10MB - Yêu cầu phần mềm : Chương trình chạy tảng hệ điều hành Windows, cần cài đặt Dotnet Framework 4.0 trở lên (Có gửi kèm cài đặt thư mục tài liệu báo cáo) 3.4.2 Chức Chương trình cho phép thực chức sau : - Kiểm tra số nguyên tố lớn phương pháp Fermat - Kiểm tra số nguyên tố lớn phương pháp Miller-Rabin 76 TIEU LUAN MOI download : skknchat@gmail.com 3.4.3 Chương trình 1) Giao diện chương trình Giao diện chương trình Demo 77 TIEU LUAN MOI download : skknchat@gmail.com 2) Chức kiểm tra số nguyên tố lớn phương pháp Fermat Modul kiểm tra số có phải số ngun tố khơng theo thuật toán Fermat 3) Chức kiểm tra số nguyên tố lớn phương pháp Miller-Rabin Modul kiểm tra số có phải số ngun tố khơng theo thuật toán Miller – Rabin 78 TIEU LUAN MOI download : skknchat@gmail.com Modul đưa số nguyên tố số vừa nhập 79 TIEU LUAN MOI download : skknchat@gmail.com KẾT LUẬN Như để kiểm tra số ngun có số ngun tố hay khơng, theo suy nghĩ trực quan tất lập trình viên hay chí người khơng hiểu biết thuật tốn cần kiểm tra xem số có ước số khác hay khơng, có hợp số (combine number) cịn khơng có số số nguyên tố Tùy thuộc theo lĩnh vực sử dụng kiểm tra số nguyên tố mà ta áp dụng thuật toán cho phù hợp Đối với việc kiểm tra số nguyên nhỏ ta áp dụng phương pháp cổ điển để kiểm tra, song việc kiểm tra số nguyên lớn số phép tốn thực lớn Khi đó, việc áp dụng thuật toán theo phương pháp xác suất khả thi nhiều chờ đợi khơng nhiều thời gian Luận văn đạt kết sau: 1) Nghiên cứu lý thuyết thực tế để hệ thống lại vấn đề sau: + Một số phương pháp kiểm tra số nguyên tố + Ứng dụng số nguyên tố thuật tốn bảo vệ thơng tin 2) Xây dựng thử nghiệm chương trình với chức sau: + Kiểm tra số nguyên tố phương pháp Fermat + Kiểm tra số nguyên tố phương pháp Miller-Rabin 80 TIEU LUAN MOI download : skknchat@gmail.com TÀI LIỆU THAM KHẢO Tiếng Việt [1] PGS TS Trịnh Nhật Tiến (2009), Bài giảng cao học: An ninh Cơ sở liệu, ĐH Công nghệ, ĐHQG HN [2] PGS TS Trịnh Nhật Tiến (2008), Giáo trình: An tồn liệu, ĐH Cơng nghê, ĐHQG HN [3] HN Phan Đình Diệu (2006), Lý thuyết mật mã An tồn thơng tin, NXB ĐHQG [4] Nguyễn Xn Dũng (2007), Bảo mật thơng tin mơ hình & ứng dụng, NXB Thống kê [5] Bùi Doãn Khanh, Nguyễn Đình Thúc, Trần Đan Thư (2007), Cơ sở lí thuyết số an tồn - bảo mật thơng tin, NXB Giáo dục [6] Hà Huy Khoái, Phạm Huy Điển (2003), Số học thuật toán: Cở sở lý thuyết tính tốn thực hành, NXB ĐHQG HN [7] Hà Huy Khối, Phạm Huy Điển (2004), Mã hỗ thơng tin: Cơ sở toán học ứng dụng, NXB ĐHQG HN Tiếng Anh [8] Manindra Agrawal (2005), “Primality tests based on Fermat’s little theorem”, Department of CS, Indian Institute of Technology, Kanpur [9] Manindra Agrawal, Neeraj Kayal, Nitin Saxena (2004), “PRIMES is in P”, Ann of Math, (2), 160(2): 781-793 [10] R Crandall, Carl Pomerance (2001), “Prime Numbers: A Computational Perspective”, Springer-Verlag, NewYork, 2001 [11] R Crandall and J Papadopoulos (2003), “On the implementation of AKSclass primality tests”, Technical paper, Apple Advanced Computation Group 81 TIEU LUAN MOI download : skknchat@gmail.com ... MỘT SỐ PHƯƠNG PHÁP KIỂM TRA SỐ NGUYÊN TỐ 2.1 SỐ NGUYÊN TỐ 2.1.1 Khái niệm số nguyên tố Số nguyên tố: số tự nhiên có ước số Ví dụ: Các số ngun tố 79, 83, 89, 97 2.1.2 Tính chất số nguyên tố Ký... -1 số nguyên tố q số nguyên tố Định lý 2.5 Mọi số nguyên tố q > 2, phân tích nguyên tố Mq tương đương với mod q mod Hiện nay, số nguyên tố lớn tìm thấy thường số nguyên tố Mersenne Các số nguyên. .. Một số định nghĩa yêu cầu lũy thừa (n) phải số nguyên tố) số nguyên tố Ví dụ 31 số nguyên tố Mersenne 31 = 25 − 31 số nguyên tố Điều kiện cần để Mn số nguyên tố n số nguyên tố, 24 -1 = 15 hợp số