Số học số lớn cho mật mã

72 8 0
Số học số lớn cho mật mã

Đ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

ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN TAM CƢỜNG SỐ HỌC SỐ LỚN CHO MẬT Mà LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Ngun - 2013 Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN TAM CƢỜNG SỐ HỌC SỐ LỚN CHO MẬT Mà Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Ngƣời hƣớng dẫn khoa học: PGS TSKH NGUYỄN XUÂN HUY Thái Nguyên - 2013 Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ i LỜI CAM ĐOAN Học viên xin cam đoan, toàn nội dung liên quan tới đề tài đƣợc trình bày luận văn thân học viên tự tìm hiểu nghiên cứu, dƣới hƣớng dẫn khoa học Thầy giáo PGS TSKH Nguyễn Xuân Huy Các tài liệu, số liệu tham khảo đƣợc trích dẫn đầy đủ nguồn gốc Học viên xin chịu trách nhiệm trƣớc pháp luật lời cam đoan Thái Nguyên, ngày 10 tháng 10 năm 2013 Học viên thực Nguyễn Tam Cƣờng Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ ii LỜI CẢM ƠN Học viên xin gửi lời cảm ơn tới Thầy, tận tình truyền đạt kiến thức quý báu cho học viên suốt trình học tập Đặc biệt, học viên xin gửi lời cảm ơn biết ơn sâu sắc tới Thầy giáo PGS TSKH Nguyễn Xuân Huy, thầy tận tình bảo học viên suốt trình thực đề tài Bên cạnh kiến thức khoa học, thầy giúp học viên nhận học phong cách học tập, làm việc kinh nghiệm sống quý báu Học viên xin bày tỏ lòng biết ơn tới gia đình, bạn bè, đồng nghiệp ngƣời thân động viên khích lệ tinh thần giúp đỡ để học viên hoàn thành luận văn Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT v MỞ ĐẦU 1 Lý chọn đề tài Đối tƣợng phạm vi nghiên cứu Hƣớng nghiên cứu Những nội dung nghiên cứu Phƣơng pháp nghiên cứu Ý nghĩa khoa học thực tiễn cửa đề tài Chƣơng 1: CÁC KHÁI NIỆM CƠ BẢN 1.1 Một số khái niệm toán học [1], [2], [3], [6], [7], [12] [13] 1.1.1 Ƣớc chung lớn [1], [2], [7], [13] 1.1.2 Số nguyên tố nguyên tố 1.1.3 Đồng dƣ thức [1][2][7] 1.1.4 Không gian Zn Zn* [1], [2], [7] 10 1.1.5 Phần tử nghịch đảo [1], [2], [7] 10 1.1.6 Hàm Euler [1], [2], [7] 11 1.1.7 Các phép tốn khơng gian modulo [7] 11 1.1.8 Độ phức tạp tính tốn [1], [2] 12 1.1.9 Hàm phía hàm cửa sập phía [1], [3], [6] 16 1.2 Vấn đề mã hóa [3], [6], [7], [8] 17 1.2.1 Một số khái niệm mã hoá 17 1.2.2 Hệ mật mã 19 1.2.3 Những tính hệ mật mã 19 Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ iv 1.3 Giới thiệu hệ mã khố cơng khai 20 1.3.1 Hệ mật mã công khai RSA (Rivest-Shamir-Adleman) 22 1.3.2 Cơ chế hoạt động RSA [1], [3], [6], [7], [8] 23 1.3.3 Khả bị công hệ mật mã công khai RSA [1], [2], [6], [7] 26 Chƣơng 2: THƢ VIỆN TÍNH TỐN SỐ LỚN 29 2.1 Biểu diễn số lớn [2], [4] 29 2.2 Các phép toán số lớn 33 2.2.1 So sánh hai số [2], [4] 33 2.2.2 Cộng hai số lớn không âm [2], [4], [5] 36 2.2.3 Trừ hai số lớn không âm [2], [4], [5], [9] 40 2.2.4 Phép nhân hai số lớn không âm [2], [4], [5], [9] 43 2.2.5 Phép chia hai số lớn không âm [2], [4], [5], [9] 45 2.2.6 Lũy thừa [2], [4], [5], [11] 47 2.2.7 Ƣớc chung lớn [1], [2], [6], [7] 49 2.2.8 Phép cộng theo modulo p [1], [2], [6], [7] 49 2.2.9 Phép nhân theo modulo p [1], [2], [6], [7] 50 2.2.10 Phép cộng có dấu [1], [2], [4], [6] 51 2.2.11 Phép trừ có dấu [1], [2], [4], [6] 52 2.3.12 Phép nhân có dấu [1], [2], [4], [6] 52 2.3.13 Phép chia có dấu [1], [2], [4], [6] 52 Chƣơng 3: ỨNG DỤNG THƢ VIỆN SỐ LỚN CHO HỆ MẬT Mà RSA 53 3.1 Phân tích phép xử lý toán học hệ mật mã RSA 53 3.2 Xây dựng hệ mật mã RSA thử nghiệm [1], [2], [4], [6], [7], [8] 53 3.3 Đánh giá kết thực nghiệm kết luận 63 3.3.1 Đánh giá kết thực nghiệm 63 3.3.2 Kết luận 64 TÀI LIỆU THAM KHẢO 65 Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ v DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT CRT Chinese Remainder Theorem DES Data Encryption Standard RSA Rivest Shamir Adleman GCD Great Comon Divisor FFT Fast Fourier Transform Hàm Euler O Biểu diễn thời gian chạy gcd(a,b) Ƣớc chung lớn hai số a b Phép tính nhân Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ MỞ ĐẦU Lý chọn đề tài Mật mã học vấn đề quan trọng lĩnh vực bảo mật an tồn thơng tin Trên giới, mật mã học đƣợc đời từ thời La Mã cổ đại ngày đƣợc nghiên cứu, phát triển đạt đƣợc thành tựu to lớn Trong mật mã học, vấn đề bảo mật đôi với vấn đề xác thực thông tin, đặc biệt hệ thống mã hóa khóa cơng khai vấn đề xác thực vô quan trọng Các hệ mã công khai nhƣ RSA thực tính tốn với số ngun lớn hàng trăm chữ số Độ phức tạp việc giải mã hệ mã tỉ lệ hàm mũ với độ lớn số nguyên tham gia vào việc tạo khóa mã hóa khóa cơng khai Do để hệ mã an tồn, cần tăng kích thƣớc số nguyên Độ an toàn hệ thống RSA dựa vấn đề toán học: toán phân tích thừa số nguyên tố số nguyên lớn toán RSA Nếu toán khó (khơng tìm đƣợc thuật tốn hiệu để giải chúng) khơng thể thực đƣợc việc phá mã tồn RSA Mặt khác, kích thƣớc số nguyên cần xử lý lớn thời gian xử lý chƣơng trình mã hóa tăng lên Thơng tin cần mã hóa ngày đa dạng có khối lƣợng lớn, địi hỏi hệ mã giảm thiểu thời gian xử lý Các công cụ giải thuật nhằm bẻ khóa hệ mật mã đƣợc cải tiến đòi hỏi hệ mã cần đƣợc nâng cấp tính bảo mật Tuy nhiên, việc nghiên cứu triển khai nâng cấp việc tối ƣu hóa mặt thuật toán phép xử lý số học hệ mã hạn chế phạm vi chƣơng trình độc quyền Để hỗ trợ giải vấn đề trên, đề tài tập trung vào việc xây dựng số thuật tốn tối ƣu hóa nhằm tăng hiệu phép tính tốn thực với số nguyên lớn Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ Các kết đề tài đƣợc ứng dụng việc hỗ trợ cho phép xử lý số học hệ mã Từ làm tăng tốc độ xử lý tính bảo mật hệ mã Từ tính cấp thiết vấn đề tối ƣu hóa hệ mã cơng khai, đồng thời đƣợc hƣớng dẫn gợi ý Thầy giáo PGS.TSKH Nguyễn Xuân Huy, học viên chọn đề tài cho luận văn tốt nghiệp Cao học ngành khoa học máy tính là: “SỐ HỌC SỐ LỚN CHO MẬT MÔ Đối tƣợng phạm vi nghiên cứu a Đối tƣợng đề tài - Độ phức tạp tính toán - Cơ sở lý thuyết số học: phép tốn số ngun kích thƣớc lớn: Cộng, trừ, nhân, chia, số dƣ, số nguyên tố, ƣớc chung lớn nhất, - Tổ chức liệu cho số nguyên kích thƣớc lớn - Các thuật tốn số học số nguyên: sơ đồ hoạt động, độ phức tạp b Phạm vi nghiên cứu Đề tài thực việc tối ƣu hóa phép tốn với số ngun lớn theo tiếp cận hƣớng đối tƣợng Ứng dụng thử nghiệm hệ mã nhằm so sánh hiệu xử lý hệ mã trƣớc sau tối ƣu Đề tài giới hạn phạm vi nghiên cứu để đƣa giải pháp, việc triển khai ứng dụng thực tiễn cần có thêm điều kiện thời gian quy mô Hƣớng nghiên cứu Đề tài tập trung vào việc xây dựng số thuật toán tối ƣu hóa nhằm tăng hiệu phép tính tốn thực với số nguyên lớn - Nghiên cứu q trình thực mã hóa giải mã hệ mã cơng khai - Tìm hiểu thuật toán xử lý số học đƣợc dùng hệ mã Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ - Phát giải thuật tính tốn cần tối ƣu hóa - Đƣa giải pháp tối ƣu hóa giải thuật - Ứng dụng hệ mã RSA - Đối sánh với kết thực thi hệ mã chƣa thực tối ƣu hóa Những nội dung nghiên cứu - Đề tài luận văn thuộc lĩnh vực lý thuyết thuật toán xử lí số nguyên lớn dài hàng trăm chữ số ứng dụng mật mã, cụ thể khảo sát cách tổ chức liệu thuật toán số học số lớn - Học viên tìm hiểu tổng quan lớp số Big Numbers, thuật toán mật mã RSA, khảo sát tính nguyên tố theo Miller-Rabin - Lập trình kiểm thử, đối sánh với sơ đồ có Phƣơng pháp nghiên cứu - Thu thập phân tích tài liệu thơng tin liên quan đến đề tài - Nghiên cứu dựa việc tìm hiểu giải thuật xử lý với số nguyên lớn hệ mã Cụ thể hệ mã hóa RSA, từ kết nghiên cứu có đƣợc định hƣớng lựa chọn thuật toán cần tối ƣu hóa - Thực việc tối ƣu hóa giải thuật cách tối ƣu phép xử lý với số học lớn Thao tác sử dụng kết hợp phƣơng pháp tính tốn với số học với phƣơng pháp chia để trị nhằm tăng hiệu bƣớc xử lý - Kết hợp nghiên cứu trƣớc tác giả nƣớc với bảo, góp ý giáo viên hƣớng dẫn để hoàn thành nội dung nghiên cứu - Thực nghiệm cài đặt ứng dụng để minh họa vấn đề trình bày đề tài Ý nghĩa khoa học thực tiễn cửa đề tài * Ý nghĩa khoa học: - Trình bày kiến thức toán học bản, lý thuyết độ phức tạp thuật toán, thuật toán thƣờng dùng hệ mật mã khố cơng khai Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ 51 if (a lẻ ) z = AddMod(z,b,p); //cộngtrong modul p a >>= 1; // a tự chia b = AddMod(b,b,p); } return z; 2.2.10 Phép cộng có dấu [1], [2], [4], [6] Phép cộng hai số có dấu đƣợc thực dựa phép so sánh, phép cộng hai số không âm phép trừ trình bày Dấu số lớn đƣợc lƣu phần tử cuối danh sách Thuật toán cộng hai số lớn có dấu đƣợc thực nhƣ sau: Input: Hai đối tƣợng số lớn x, y Output: z = x + y; Algorithm: If (x, y dấu) 1.1 z = x + y; 1.2 đặt z dấu với x; 1.3 Return z; if (x dương) // y âm 2.1 If(s = ComparePositive(x,y)!=0) Retum z = x |y|; 2.2 If(s==0) z = 0; Đặt z dấu với y; return z; if (x âm) // y dương 3.1 if((s = ComparePositive(x,y))==0) Retum z = y |x|; 3.2 if(s==0) z = 0; Retum z Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ 52 2.2.11 Phép trừ có dấu [1], [2], [4], [6] Phép trừ hai số có dấu đƣợc thực dựa phép cộng hai số, cụ thể: Input: Hai đối tƣợng số lớn x, y Output: z = x y Algorithm: Đổi dấu y; Cộng có dấu z = x + y; retum z; 2.3.12 Phép nhân có dấu [1], [2], [4], [6] Phép nhân hai số có dấu đƣợc thực dựa phép nhân hai số không âm đƣợc trình bày Thuật tốn nhân hai số có dấu nhƣ sau: Input: Hai đối tƣợng số lớn x, y Output: đối tƣợng z = x y; Algorithm: If (x, y dấu) return z = x y; If(x, y khác dấu) z = x y; Đổi dấu z; Return z; 2.3.13 Phép chia có dấu [1], [2], [4], [6] Phép chia hai số có dấu đƣợc thực dựa phép chia hai số khơng âm đƣợc trình bày Thuật tốn nhân hai số có dấu nhƣ sau: Input: Hai đối tƣợng số lớn x, y Output: đối tƣợng z = x / y; Algorithm: If (x, y dấu) return z = x/y; If(x, y khác dấu) z = x/y; Đổi dấu z; Return z; Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ 53 Chƣơng ỨNG DỤNG THƢ VIỆN SỐ LỚN CHO HỆ MẬT Mà RSA 3.1 Phân tích phép xử lý tốn học hệ mật mã RSA Các thuật toán đƣợc sử dụng hệ mật mã RSA:  Kiểm tra tính nguyên tố  Phép cộng, trừ, nhân, chia số nguyên lớn  Sinh số nguyên tố khoảng n  Sinh số nguyên tố sát sau  Căn nguyên bậc n a  Tính ax mod n  Tính phần tử nghịch đảo mod n 3.2 Xây dựng hệ mật mã RSA thử nghiệm [1], [2], [4], [6], [7], [8] Việc xây dựng hệ mã RSA muốn thành cơng phải giải toán trên, toán đƣợc cài đặt nhƣ sau: Hàm kiểm tra tính nguyên tố Cú pháp bool Prime(BigNum p); Input: số p Output: true p số nguyên tố; false Thí dụ Prime( 1) = false; Prime(0) = false; Prime(1) = false; Prime(2) = true; Prime(5) = true; Prime(120) = false; Thuật toán Số p nguyên tố p khơng có ƣớc khoảng Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ 54 Nếu p số lẻ cần kiểm tra xem p có ƣớc lẻ hay khơng (1) Số ngun tố chẵn số Số p nguyên tố p khơng có ƣớc ngun tố khoảng Nếu biết dãy k số nguyên tố q1 = 2, q2, …, qk cần xét xem p có ƣớc qi khoảng Thuật toán AKS ba nhà toán học India Manindra Agrawal, Neeraj Kayal, Nitin Saxena Đại học Indian Institute of Technology Kanpur (đề xuất tháng năm 2002) kiểm tra tính ngun tố thời gian đa thức Input: integer p > Output: true p số nguyên tố; false, If n = ab a, b nguyên > then return false Tìm số nguyên dương nhỏ r thỏa or(n) > (log n)2 If tồn a ≤ r thỏa < ucln(a,n) < n then return false; If n ≤ r then return true For a = to if (X+a)n ≠ Xn+a (mod xr−1,n) then return false; return true log tính theo số (r) hàm Euler = số lƣợng số nguyên dƣơng < r nguyên tố với r or(n) bậc nhân tử n theo modulo r Cài đặt theo định nghĩa (1) bool Prime(BigNum p){ if (p < 2) return 0; if (p < 4) return 1; if (EVEN(p)) return 0; // so chan BigNum can = BigNum(sqrt(p)); BigNum d = 3; Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ 55 while(d 0) { a = p; p = r; t = u; u = x; x = t - q*x; q = a / p; r = a - q*p; } return (x > 0) ? x: x+n; } 3.3 Đánh giá kết thực nghiệm kết luận 3.3.1 Đánh giá kết thực nghiệm a, Chương trình xử lý phép tốn với số lớn  Minh họa thuật toán cộng, trừ, nhân, chia, lũy thừa, cộng modulo p, nhân modulo p nhanh với số lớn  Thể đƣợc thơng số cần kiểm nghiệm phép tốn số lớn nhƣ:  Tính xác thuật tốn  Thời gian thực (Tính đơn vị thời gian) thực với nhiều phép nhân số lớn liên tục Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ 64 b, Chương trình ứng dụng hệ mã RSA Thực q trình thử nghiệm mã hố với tham số p, q lớn cho kết xác 3.3.2 Kết luận Các kết đạt đƣợc: Đề tài bƣớc đầu đƣa giải pháp để xử lý phép toán số học với số lớn hệ mã cơng khai dựa sở tốn học tính tốn độ an tồn hệ mã công khai Các kết nghiên cứu ứng dụng bƣớc đầu thực đƣợc mục đích đề tài Bằng việc tối ƣu hóa phép xử lý tính tốn phức tạp hệ mã cơng khai minh chứng hệ mã cụ thể RSA Chƣơng trình thử nghiệm đƣợc xây dựng nhằm chứng minh tính khả thi kết nghiên cứu Chƣơng trình hồn thiện cần có đầu tƣ nhiều mặt thời gian cơng sức Đề tài tiếp tục phát triển để đem lại ứng dụng đáp ứng đƣợc yêu cầu thực tế Hƣớng pháp triển đề tài: Các kết đề tài đƣợc áp dụng nhiều hệ mã công khai khác tiếp tục đƣợc cải tiến để có đƣợc tốc độ thực thi tốt Các kết đƣợc áp dụng nhiều hệ thống bảo mật, thực giao dịch mạng, thực tạo xác thực chữ ký điện tử Tác giả mong muốn tiếp tục phát triển để đƣa kết tìm hiểu vào ứng dụng thực tế Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ 65 TÀI LIỆU THAM KHẢO - Tài liệu tiếng việt: [1] Phan Đình Diệu (2002), Lý thuyết mật mã & An tồn thơng tin, Nhà xuất Đại học quốc gia Hà Nội [2] Đỗ Đức Giáo (2008), Toán rời rạc ứng dụng tin học, Nhà xuất giáo dục [3] Nguyễn Xuân Huy (2010), An toàn bảo mật thông tin, Bài giảng lớp cao học ĐH Thái Nguyên [4] Nguyễn Xuân Huy (2008), Sáng tạo thuật toán lập trình, Nhà xuất Tự nhiên Cơng nghệ [5] Đặng Quốc Lƣơng (2001), Phương pháp tính kỹ thuật, Nhà xuất xây dựng Hà Nội [6] Hồ Thuần (2000), Lý thuyết mật mã an toàn liệu, Giáo trình cao học, Trung tâm Đào tạo sau Đại học, ĐH Bách Khoa Hà Nội - Tài liệu tiếng anh website: [7] A Menezes, P van Oorschot, and S Vanstone (1996), Handbook of Applied Cryptography, CRC Ress [8] Douglas R Stínson (2002), Cryptography: Theory and Practice (2nd edition), Chapman &Hall /CRC, Boca Raton [9] Dhaval Bathia (B Com, ACS, LLB) (1012), Vedic Mathematics Made Easy, Jaico Publishing House [10] http://en.wikipedia.org/wiki/N-th_root_algorithm [11] http://en.wikipedia.org/wiki/Exponentiation [12] http://en.wikipedia.org/wiki/Miller- Rabin_primality_test [13] http://vi.wikipedia.org/wiki/ƣớc_số_chung_lớn_nhất Số hóa trung tâm học liệu http://www.lrc.tnu.edu.vn/ ... mã đƣa lịch sử mật mã học sang trang Các hệ mật mã với khóa mã đối xứng góp phần to lớn việc củng cố vai trò mật mã học ứng dụng ngƣời Đƣa mật mã đến với ứng dụng sống đời thƣờng ngƣời, mật mã. .. Cao học ngành khoa học máy tính là: “SỐ HỌC SỐ LỚN CHO MẬT MÔ Đối tƣợng phạm vi nghiên cứu a Đối tƣợng đề tài - Độ phức tạp tính tốn - Cơ sở lý thuyết số học: phép toán số nguyên kích thƣớc lớn: ... tốn xử lí số ngun lớn dài hàng trăm chữ số ứng dụng mật mã, cụ thể khảo sát cách tổ chức liệu thuật toán số học số lớn - Học viên tìm hiểu tổng quan lớp số Big Numbers, thuật toán mật mã RSA, khảo

Ngày đăng: 24/02/2021, 21:59

Tài liệu cùng người dùng

Tài liệu liên quan