Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
855,21 KB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC THĂNG LONG NGUYỄN THỊ THANH HUYỀN MỘT SỐ THUẬT TOÁN TRONG SỐ HỌC ỨNG DỤNG TÓM TẮT LUẬN VĂN THẠC SĨ TỐN HỌC Chun ngành: Phương pháp tốn sơ cấp Mã số: 46 01 13 HÀ NỘI, 2018 Cơng trình hoàn thành tại: Trường đại học Thăng Long NGƯỜI HƯỚNG DẪN KHOA HỌC GS TSKH HÀ HUY KHOÁI Phản biện 1: Phản biện 2: Luận văn bảo vệ trước Hội đồng chấm luận văn tại: Trường đại học Thăng Long Vào hồi 09 00 ngày 28 tháng 12 năm 2018 Contents Trang Mở đầu Chương Thuật toán tư thuật toán 1.1 Thuật toán 1.2 Độ phức tạp thuật toán 1.3 Tư thuật toán 2 Chương Một số thuật toán số học thông dụng 2.1 Kiến thức 2.1.1 Tính chia hết 2.1.2 Số nguyên tố 2.1.3 Đồng dư 2.1.4 Hệ thặng dư lớp thặng dư 2.1.5 Phân số liên tục 2.2 Một số thuật tốn tìm ước chung lớn 2.2.1 Thuật toán Euclid 2.2.2 Thuật toán J.Stein 2.2.3 Thuật toán Euclid mở rộng 2.2.4 Định lý Fermat nhỏ 2.3 Một số thuật tốn phân tích số ngun thành tích thừa số nguyên tố đặc biệt 2.3.1 Phân tích số nguyên sàng Erathostenes 2.3.2 Pollard’s rho method 2.3.3 Đường cong Eliptic 2.3.4 Phương pháp Fermat 2.3.5 Phương pháp Squfof 2.3.6 Thuật toán Dixon 2.3.7 Thuật toán Sàng bậc hai-Quadratic Sieve 4 5 6 7 7 11 11 11 13 15 16 16 17 iii Chương Hệ mã khóa RSA, chữ ký số hàm băm 3.1 Hệ mã hóa RSA 3.2 Tạo khóa, mã hóa, giải mã hệ RSA 3.3 Chữ ký điện tử-Chữ ký số 3.4 Hàm băm 3.4.1 Phương thức mã hóa MD5 3.4.2 Phương thức mã hóa SHA1 mật mã 19 19 19 20 21 21 25 Kết luận 31 Tài liệu tham khảo 32 iv Mở đầu Số học môn khoa học lý thú, hấp dẫn người học làm toán, giáo viên, học sinh khắp giới Mặc dù khoa học kỹ thuật ngày phát triển có tốn từ thời cổ đại cịn giá trị đến tận việc tìm thuật tốn phân tích số ngun tích thừa số nguyên tố thuật toán Chính nhờ độ khó việc phân tích số ngun thành tích thừa số nguyên tố sở cho đời mật mã học Luận văn trình bày số thuật tốn số học ứng dụng Thuật tốn phân tích số ngun thừa số nguyên tố sàng Eratosthennes, phương pháp RHO Pollard, phân tích Fermat, phương pháp Squfof, thuật toán Dixon, thuật toán sàng bậc hai Luận văn chia làm ba chương: Chương 1: Thuật tốn tư thuật tốn trình bày khái niệm thuật toán, độ phức tạp tư thuật toán Chương 2: Một số thuật tốn thơng dụng trình bày số kiến thức số thuật tốn số học thơng dụng Chương 3: Hệ mã khóa RSA chữ ký số trình bày số ứng dụng thuật tốn phân tích số ngun thành tích thừa số nguyên tố vào mật mã tạo chữ ký số Chương Thuật toán tư thuật toán Chương trình bày khái niệm thuật toán, độ phức tạp tư thuật toán Nội dung chương hình thành từ tài liệu [1] 1.1 Thuật toán Định nghĩa 1.1 Thuật toán quy tắc, thao tác để với liệu ban đầu cho, ta tìm lời giải cho toán sau khoảng thời gian hữu hạn Trong thuật tốn cần có: Đầu vào: input Đầu ra: output Thuật toán phải bao gồm nhiều bước phải thỏa mãn yêu cầu sau: Tính hữu hạn Tính xác định Tính hiệu Tính phổ dụng 1.2 Độ phức tạp thuật toán Để ước lượng độ phức tạp thuật tốn, ta dùng khía niệm bậc O-lớn Định nghĩa 1.2 Giả sử f(n) g(n) hai hàm xác định tập hợp số nguyên dương Ta nói f(n)có bậc O-lớn g(n) viết: f(n)= O(g(n)) f=O(g), tồn số C ̸= 0, cho với n đủ lớn, hàm f(n) g(n) f (n) = C n→+∞ g(n) dương lim Nếu thuật tốn có thời gian thực f(n) = O(g(n)) ta nói thời gian thực cấp g(n) Chúng ta cần lưu ý thêm điểm sau Trong thực tế cịn nhắc đến thuật tốn ”xác suất” tức thuật toán phụ thuộc vào hay nhiều tham số ngẫu nhiên Những ” thuật tốn”này, ngun tắc khơng gọi thuật tốn, chúng có thể, với xác suất bé, không kết thúc Tuy nhiên, thực nghiệm rằng, thuật toán xác suất thường hữu hiệu thuật toán tất định Thậm chí, nhiều trường hợp, có thuật toán sử dụng Ta định nghĩa thêm: Lx [u; v] = exp(v(lnx)u (lnlnx)1−u ) Trong suốt luận văn hàm Ln dùng để tính thời gian chạy Ta có: Ln [0; v] = exp(v(lnlnn)) = (lnn)v Ln [1; v] = exp(v(lnn)) = nv Thời gian chạy Ln [u, v] với u < v số thời gian mũ(subexponential time.) 1.3 Tư thuật toán Tư thuật toán tổng hợp lực tư để giải vấn đề theo quy trình xác định hướng đến tác nhân tương thích (tác nhân muốn nói người, máy tính, hay thiết bị có chức tính tốn tự động hiểu thực thuật tốn) Tư thuật tốn ln định hướng vào việc mở đường lớn, giải pháp vạn cho việc giải hàng loạt vấn đề Tư thuật tốn giúp làm thay đổi quan điểm nhìn nhận vấn đề thay đổi thói quen làm tốn cho học sinh thay làm theo mẹo mực biến đổi làm tốn theo có tính ứng dụng rộng rãi, tổng quát cho nhiều trường hợp Thuật tốn có đặc điểm[1]: Đó dãy hữu hạn bước xếp theo trình tự định Mỗi bước thao tác sơ cấp, trường hợp đặc biệt thuật tốn biết Các bước rõ ràng, thao tác xác (trong điều kiện, hai xử lí thực thuật tốn phải cho kết quả) Có tính kết thúc Tư thuật toán cách suy nghĩ để nhận thức, để giải vấn đề cách có trình tự (sắp xếp lần lượt, thứ tự trước sau).[1] Chương Một số thuật tốn số học thơng dụng Chương trình bày kiến thức số học số thuật tốn số học thơng dụng Nội dung chương hình thành từ tài liệu [2] [3] 2.1 Kiến thức Mục trình bày số khái niệm số học tính chia hết, số nguyên tố, đồng dư, thặng dư, cần thiết cho nội dung luận văn 2.1.1 Tính chia hết Định nghĩa 2.1 Chúng ta ký hiêu: N: tập hợp số tự nhiên Z+ = {0, 1, }: tập số nguyên không âm Z: tập số nguyên Q: tập số hữu tỉ R, R1 : tập số thực Định nghĩa 2.2 Với hai số nguyên a, b, a ̸= ta nói a chia hết b số nguyên c đó, b = ac ký hiệu a|b Ta nói b chia hết cho a, hay bội a viết b a Định lý 2.1 Với số nguyên dương a, b tồn cặp số nguyên không âm (q, r) cho: b = aq + r, r < a Định nghĩa 2.3 Trong định lý trên, a số chia hết b số q gọi thương(quotient) Số r gọi số dư(remainder) Nhận xét 2.1 Thuật tốn chia mở rộng tập số nguyên Z sau Với số nguyên a, b, a ̸= 0, tồn cặp số nguyên (q, r) ∈ Z × Z, cho ≤ r < |a| b = aq + r, 2.1.2 Số nguyên tố Định nghĩa 2.4 Số nguyên tố số nguyên lớn 1, không chia hết cho số ngun dương ngồi Số ngun lớn khơng phải số ngun tố gọi hợp số Các tính chất số nguyên tố: Định lý 2.2 (Euclid) i) số nguyên tố nhỏ số chẵn ii) Số số nguyên tố vô hạn Định lý 2.3 Mọi hợp số n có ước nguyên tố không vượt √ n Với số thực dương x cho trước, ta kí hiệu π(x) số số nguyên tố không vượt x Khi đó, ta có: Định lý 2.4 lim n→+∞ π(x) x logx =1 Như vậy, số số nguyên tố không vượt √ n vào khoảng √ n √ log n = √ n logn Định lý 2.5 Mọi số nguyên tố lớn phân tích cách thành tích thừa số nguyên tố, đó, thừa số viết với thứ tự không giảm 2.1.3 Đồng dư Trong phần hiểu chữ ký hiệu thay số số nguyên Định nghĩa 2.5 Giả sử n số nguyên dương Ta nói, hai số nguyên a, b đồng dư với theo modulo n a − b chia hết cho n ký hiệu a ≡ b(mod n) Hệ thức gọi đồng dư thức Như vậy, a ≡ b(mod n) tồn số nguyên k, cho: a = b + kn Nếu a ̸≡ b(mod n) có nghĩa a − b không chia hết cho n Định nghĩa 2.6 Nếu a ≡ 0(mod n) ta nói a chia hết cho n ký hiệu a n Chúng ta nói n ước a Ước chung lớn hai số a, b ký hiệu gcd(a, b) Định nghĩa 2.7 (Nguyên tố nhau) Hai số nguyên a, b gọi nguyên tố gcd(a, b) Định nghĩa 2.8 (Phần tử nghịch đảo) Nếu hai số nguyên a n nguyên tố nhau, tồn số nguyên x cho: a.x ≡ 1(mod n) ta gọi x phần tử nghịch đảo a phép modulo cho n ký hiệu a−1 2.1.4 Hệ thặng dư lớp thặng dư Định nghĩa 2.9 Giả sử m r số tự nhiên ≤ r ≤ m − Ký hiệu Ar tập hợp tất số nguyên đồng dư với r theo modulo m gọi lớp thặng dư modulo m Mỗi phần tử Ar gọi thặng dư modulo m 2.1.5 Phân số liên tục Định nghĩa 2.10 Cho a, b số nguyên, b > Thực thuật toán Euclid ta được: a = ba0 , ≤ c0 < b b = c a1 + c , ≤ c1 < c ··· cn−3 = cn−2 an−1 + cn−1 , ≤ cn−1 < cn−2 , cn−2 = cn−1 an Như vậy, phân số a b = a0 + c0 b = a0 + a b b c0 viết: = · · · = a0 + a1 + ···+an−1 + a1 n Cách viết gọi biểu diễn số hữu tỷ a b dạng phân số liên tục Chúng ta quan tâm đến định lý sau(phần chứng minh xem [1]) Định lý 2.6 Giả sử a0 , a1 , · · · , an , · · · số thực, a1 , · · · , an > Đặt b0 = a0 , b1 = a1 b0 + 1, q0 = 1, q1 = a1 , với k ≥ 2, bk = ak bk−1 + bk−2 , qk = ak qk−1 + qk−2 Khi đó, i) Ck = [a0 ; a1 , · · · , ak ] = qbkk ii) Với k ≥ 1, ta có bk qk−1 − bk+1 qk = (−1)k+1 Định lý 2.7 Giả sử n số khơng phương qbkk phân số hội tụ √ √ riêng n Ta đặt α0 = n, số αk , Qk , Pk định nghĩa sau: √ Pk + n αk = , Qk ak = [αk ], Pk+1 = ak Qk − Pk , Qk = ) (n − Pk+1 Qk