Luận văn thạc sỹ CÁc thuật toán cơ bản trong lý thuyết số Luận văn thạc sỹ CÁc thuật toán cơ bản trong lý thuyết số Luận văn thạc sỹ CÁc thuật toán cơ bản trong lý thuyết số Luận văn thạc sỹ CÁc thuật toán cơ bản trong lý thuyết số Luận văn thạc sỹ CÁc thuật toán cơ bản trong lý thuyết số Luận văn thạc sỹ CÁc thuật toán cơ bản trong lý thuyết số
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THÙY DUNG CÁC THUẬT TOÁN CƠ BẢN TRONG LÝ THUYẾT SỐ LUẬN VĂN THẠC SĨ TOÁN HỌC Thái Nguyên - Năm 2014 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THÙY DUNG CÁC THUẬT TOÁN CƠ BẢN TRONG LÝ THUYẾT SỐ Chuyên ngành: PHƯƠNG PHÁP TOÁN SƠ CẤP Mã số : 60.46.01.13 LUẬN VĂN THẠC SĨ TOÁN HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC PGS. TS. TẠ DUY PHƯỢNG Thái Nguyên - Năm 2014 i Mục lục Mục lục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Mở đầu 1 Nội dung 3 1 Các thuật toán cơ bản trong lý thuyết số 3 1.1 Tìm thương và số dư . . . . . . . . . . . . . . . . . . . . . 3 1.2 Thuật toán Euclid phân tích một số ra thừa số nguyên tố . 6 1.3 Thuật toán tìm ước số chung lớn nhất . . . . . . . . . . . . 8 1.4 Thuật toán tìm bội số chung nhỏ nhất . . . . . . . . . . . . 12 1.5 Thuật toán Lucas - Lehmer tìm số nguyên tố . . . . . . . . 15 1.6 Thuật toán Miller tìm số giả nguyên tố . . . . . . . . . . . 18 1.7 Một số thuật toán trong mật mã công khai . . . . . . . . . 23 1.8 Một số thuật toán khác . . . . . . . . . . . . . . . . . . . . 28 2 Lập trình và thực thi trên máy tính một số thuật toán số học 30 2.1 Tìm thương và số dư . . . . . . . . . . . . . . . . . . . . . 30 2.2 Kiểm tra số nguyên tố . . . . . . . . . . . . . . . . . . . . . 43 2.3 Phân tích một số ra thừa số nguyên tố . . . . . . . . . . . . 50 2.4 Tìm ước chung lớn nhất . . . . . . . . . . . . . . . . . . . . 59 i 2.5 Tìm bội chung nhỏ nhất . . . . . . . . . . . . . . . . . . . 66 2.6 Tìm số nguyên tố đứng sau hoặc đứng trước một số tự nhiên 74 2.7 Một số ứng dụng trong lý thuyết mật mã . . . . . . . . . . 75 2.8 Maple và một số giả thuyết về số nguyên tố . . . . . . . . . 77 Kết luận 82 Tài liệu tham khảo 84 ii LỜI CẢM ƠN Với lòng kính trọng và biết ơn sâu sắc em xin chân thành cảm ơn thày PGS. TS. Tạ Duy Phượng đã hướng dẫn và chỉ bảo tận tình cho em trong suốt quá trình làm luận văn. Thầy không chỉ truyền thụ những tri thức khoa học mà còn chỉ dẫn cho em những phương pháp làm việc tốt cùng những lời động viên khuyến khích kịp thời. Em cũng xin gửi lời cảm ơn chân thành đến Ban giám hiệu, phòng Đào tạo, khoa Toán - Tin Trường ĐHKH, Đại học Thái Nguyên đã tạo điều kiện thuận lợi trong suốt quá trình học tập tại trường. Xin chân thành cảm ơn gia đình, bạn bè đồng nghiệp và các thành viên trong lớp cao học toán K6B đã luôn quan tâm, động viên, giúp đỡ em trong suốt thời gian học tập và quá trình làm luận văn. Thái Nguyên, 2014. Nguyễn Thùy Dung 1 Mở đầu Cùng với sự phát triển của máy tính điện tử, tin học ngày càng xâm nhập sâu hơn vào chương trình giảng dạy toán, thậm chí ở cấp phổ thông. Một số thuật toán trong lý thuyết số đã được biết đến từ thời Euclid. Tuy nhiên, thực thi chúng với các số lớn không dễ dàng nếu không có máy tính điện tử. Cùng với sự phát triển của toán và tin học, nhiều thuật toán mới ra đời, đáp ứng những đòi hỏi mới của thực tế (mật mã hóa công khai, phân tích các số nguyên tố lớn, ). Vì vậy, ngành số học thuật toán đã ra đời. Việc tổng hợp, nghiên cứu và xây dựng các chương trình tính toán trong số học là một công việc thú vị và hữu ích. Để đáp ứng nhu cầu học tập và giảng dạy, tác giả đã chọn đề tài “ Các thuật toán cơ bản trong lý thuyết số”. Luận văn bao gồm phần mở đầu, hai chương, kết luận và danh mục các tài liệu tham khảo. Chương 1 Các thuật toán cơ bản trong lý thuyết số Trình bày các thuật toán cơ bản trong Lý thuyết số (tìm ước số chung lớn nhất, bội số chung nhỏ nhất, tìm số dư và thương khi chia một số nguyên cho một số nguyên khác, thuật toán Euclid phân tích một số ra thừa số nguyên tố, thuật toán Lucas- Lehmer tìm số nguyên tố, thuật toán Miller tìm số giả nguyên tố). 2 Chương 2 Lập trình và thực thi trên máy tính điện tử một số thuật toán số học Trình bày các chương trình có sẵn hoặc tự lập trình cho các thuật toán đã nêu trong chương 1. Thực thi trên máy tính điện tử khoa học (Vinacal 570ES Plus II), chương trình Pascal và chương trình tính toán trên Maple. 3 Chương 1 Các thuật toán cơ bản trong lý thuyết số Chương này trình bày một số thuật toán cơ bản liên quan đến ước chung lớn nhất, bội chung nhỏ nhất, tìm số nguyên tố, phân tích một số ra thừa số nguyên tố. . . Các vấn đề trình bày trong chương này được tham khảo và trích dẫn chủ yếu từ một số tài liệu [4], [5], [6]. 1.1 Tìm thương và số dư Cơ sở lý thuyết của phép chia với dư là định lý về phép chia có dư. Định lý này được ứng dụng trong giải thuật Euclid tìm ước chung lớn nhất của hai số nguyên khác 0. Định lý về phép chia với dư: Với hai số tự nhiên a và b bất kì (a > b), bao giờ cũng tìm được duy nhất các số q và r sao cho a = qb + r, trong đó 0 ≤ r < b. Khi r = 0 ta nói a chia hết cho b hay b chia hết a. Ta cũng nói a là bội số của b hay b là ước số của a. Các số nguyên trong định lý được gọi như sau: 4 q được gọi là thương khi chia a cho b. r được gọi là số dư khi chia a cho b. b được gọi là số chia. a được gọi là số bị chia. Phép toán tìm q và r được gọi là phép chia với dư. Chứng minh Trước tiên ta nhớ lại Tiên đề Archimede Với mọi số thực x > 0 và mọi số thực y thì tồn tại một số tự nhiên n sao cho nx > y. Hệ quả Với mọi số thực x < 0 và mọi số thực y thì tồn tại một số tự nhiên n sao cho nx < y. Nguyên lý sắp thứ tự tốt Mọi tập con khác rỗng các số tự nhiên đều có phần tử bé nhất. Chứng minh định lý gồm hai phần: đầu tiên chứng minh sự tồn tại của q và r, thứ hai, chứng minh tính duy nhất của q và r. Sự tồn tại Xét tập hợp S = {a − nb, n ∈ Z}. Ta khẳng định rằng S chứa ít nhất một số nguyên không âm. Có hai trường hợp như sau. Nếu b < 0, thì −b > 0, và theo tính chất Archimede, có một số nguyên n sao cho −bn ≥ −a, nghĩa là a −bn ≥ 0. Nếu b > 0, thì cũng theo tính chất Archimede, có một số nguyên n sao cho bn ≥ −a, nghĩa là a −b (−n) = a + bn ≥ 0. Như vậy S chứa ít nhất một số nguyên không âm. Theo nguyên lý sắp thứ tự tốt, trong S có một số nguyên không âm nhỏ nhất, ta gọi số ấy là r. Đặt q = a −r b , thì q và r là các số nguyên và a = qb + r. Ta còn phải 5 chỉ ra rằng 0 ≤ r < |b|. Tính không âm của r là rõ ràng theo cách chọn r. Ta sẽ chứng tỏ dấu bất đẳng thức thứ hai. Giả sử ngược lại r ≥ |b|. Vì b = 0, r > 0 nên b > 0 hoặc b < 0. Nếu b > 0, thì r ≥ b suy ra a −qb ≥ b. Từ đó a −qb −b ≥ 0, lại dẫn tới a −(q + 1) b ≥ 0. Đặt r = a − (q + 1) b thì r ∈ S và r = a − (q + 1) b = r − b < r, điều này mâu thuẫn với tính chất r là phần tử không âm nhỏ nhất của S. Nếu b < 0 thì r ≥ −b do đó a−qb ≥ −b. Từ đó suy ra rằng a−qb+b ≥ 0, tiếp tục suy ra r = a−(q − 1) b ≥ 0. Do đó, r ∈ S và vì r = r+b với b < 0 ta có r = a −(q −1) b < r, mâu thuẫn với giả thiết r là số nguyên không âm nhỏ nhất trong S. Như vậy ta đã chứng minh sự tồn tại của q và r. Tính duy nhất Giả sử rằng tồn tại q, q , r, r với 0 ≤ r, r < |b| sao cho a = q + r và a = q + r . Không mất tính tổng quát giả sử q ≤ r . Từ hai đẳng thức trên ta có b q − q = r −r . Nếu b > 0 thì r ≤ r và r < b ≤ b + r , và như vậy r − r < b. Còn nếu b < 0 thì r ≤ r và r < −b ≤ −b + r, và do đó − r − r < −b. Trong cả hai trường hợp ta có r − r < |b|. Mặt khác đẳng thức b q − q = r − r chứng tỏ rằng |b| chia hết r − r , do đó |b| ≤ r − r hoặc r − r = 0. Nhưng vì r − r ≤ |b|, nên chỉ có thể r = r . Thay vào đẳng thức b q − q = r − r ta có bq = bq và vì b khác 0, nên q = q . Tính duy nhất đã được chứng minh. Thuật toán chia Để chia một số tự nhiên a cho một số tự nhiên d (a > d), ta thực hiện theo ví dụ sau: Ví dụ 1.1 Chia a = 1542014 cho d = 135. Giải Phân tích số a = 1542014 theo cơ số 10 ta được: [...]... pi+1 hay không, trong i đó pi+1 là số nguyên tố ngay sau pi trong bảng số nguyên tố Sàng Eratosthenes là một giải thuật cổ xưa để lập bảng tất cả các số nguyên tố nhỏ hơn một số n cho trước Giải thuật đầu tiên xóa số 1 ra khỏi tập các số nguyên tố Số tiếp theo số 1 là số 2, là số nguyên tố Bắt đầu từ số 2 xoá tất cả các bội của 2 ra khỏi bảng Số đầu tiên không bị xoá sau số 2 (số 3) là số nguyên tố Tiếp... tra Miller với cơ sở 137 Chứng tỏ 221 là hợp số (221 = 13.17) 23 1.7 Một số thuật toán trong mật mã công khai Trước những năm 70 của thế kỉ XX, Số học vẫn được xem là một trong những ngành toán học thuần túy, chỉ có ý nghĩa lý thuyết Cách đây khoảng 30 năm, khó có thể hình dung được rằng, một số kết quả lý thuyết số trong Số học lại làm nên một cuộc cách mạng trong bảo mật thông tin Cơ sở của những... để kiểm tra một số có phải là số nguyên tố hay không,trước tiên ta kiểm tra xem nó có là số giả nguyên tố cơ sở 2 hay không sau đó kiểm tra tiếp tục với các cơ sở khác Tuy nhiên, tồn tại các số giả nguyên tố với mọi cơ sở, đó là các số Carmichael Số Carmichael Hợp số nguyên n là số giả nguyên tố Fermat với mọi cơ số nguyên dương a sao cho (a, n) = 1 được gọi là số Carmichael Ví dụ 1.13 Số nguyên 561... mọi số tự nhiên khác 0 đều là ước chung của a và b Nếu chỉ một trong hai số a hoặc b bằng 0, số kia khác 0, thì ƯCLN của chúng bằng giá trị tuyệt đối của số khác 0 1.3.1 Thuật toán Euclid Thuật toán Euclid là một giải thuật giúp tính ước số chung lớn nhất (ƯSCLN) của hai số một cách hiệu quả Giải thuật này đã được biết đến từ khoảng năm 300 trước Công nguyên Nhà toán học Hy Lạp Euclid đã viết giải thuật. .. 10.4 Trong ví dụ trên ta có : (330, 140) = (140, 50) = (50, 40) = (40, 10) = 10 1.3.2 Thuật toán J Stein Năm 1967, dựa trên thuật toán Euclid, J Stein đã xây dựng được một thuật toán khá thuận tiện để tìm ƯCLN trong trường hợp các số đã cho được viết dưới dạng nhị phân Ưu điểm chủ yếu của thuật toán này là ta không cần làm các phép tính chia (thực ra, ta có làm phép chia số chẵn 10 cho 2, nhưng trong cơ. .. tính toán 1 5 4 2 0 1 4 1 3 5 1 9 2 1 1 4 2 2 5 7 0 3 0 1 3 1 4 4 4 Bảng 1 1.2 Thuật toán Euclid phân tích một số ra thừa số nguyên tố Số nguyên tố là số nguyên lớn hơn 1, không chia hết cho số nguyên dương nào ngoài 1 và chính nó Số nguyên lớn hơn 1 không phải là số nguyên tố được gọi là hợp số Định lí 1.1 Mọi số tự nhiên đều có duy nhất một phân tích thành tích của các thừa số nguyên tố, tức là mọi số. .. xét Số 29601 không quá lớn và phân tích ra thừa số tương đối dễ (vì 29601 có các ước số nhỏ, chỉ là 3, 11, 13, và 23) Tuy nhiên thuật toán 8 phân tích ra thừa số nguyên tố được thực hiện bằng tay cho số 29601 cũng đã khá vất vả Vì vậy hiện nay bài toán phân tích một số ra thừa số nguyên tố, thường được thực hiện trên máy tính với những phần mềm dựa trên các thuật toán phân tích nhanh một số ra thừa số. .. khai được xây dựng trên cơ sở mã mũ và dựa trên tính khó của bài toán phân tích các số lớn ra thừa số nguyên tố Biết một số số nguyên tố nhân với nhau để thu được hợp số thì dễ còn biết hợp số, phân tích nó ra thành các thừa số nguyên tố là rất khó Giả sử ta cần chuyển một bức điện Trước tiên ta chuyển các chữ cái thành các số tương ứng theo một từ điển nào đó với một số chẵn chữ số Chẳng hạn theo từ... khoảng 200 chữ số) , p và q phải lớn cỡ xấp xỉ nhau Bài toán tìm số nguyên tố lớn Một thuật toán để tạo ra tất cả các số nguyên tố là không tồn tại, tuy nhiên lại có khá nhiều các thuật toán để kiểm tra xem một số cho trước có phải là số nguyên tố hay không (Bài toán kiểm tra tính nguyên tố) Vì vậy việc tìm số nguyên tố lớn cho RSA là một vòng lặp Bước 1: Chọn một số ngẫu nhiên p nằm trong một khoảng... phần nhỏ hơn Thuật toán trình bày dưới đây cho chúng ta một số cách để phân chia như vậy 1.8.2 Thuật toán Karatsuba - Ofman Xét bài toán nhân hai số nguyên n chữ số X và Y Theo giải thuật nhân hai số thông thường thì cần n2 phép nhân và n phép cộng nên tốn O(n2 ) thời gian Karatsuba - Ofman đã áp dụng kỹ thuật chia để trị để tăng tốc thuật toán nhân hai số nguyên này Giả sử muốn nhân hai số nguyên 2n . danh mục các tài liệu tham khảo. Chương 1 Các thuật toán cơ bản trong lý thuyết số Trình bày các thuật toán cơ bản trong Lý thuyết số (tìm ước số chung lớn nhất, bội số chung nhỏ nhất, tìm số dư. DUNG CÁC THUẬT TOÁN CƠ BẢN TRONG LÝ THUYẾT SỐ LUẬN VĂN THẠC SĨ TOÁN HỌC Thái Nguyên - Năm 2014 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THÙY DUNG CÁC THUẬT TOÁN CƠ BẢN TRONG LÝ THUYẾT SỐ Chuyên. 3 1 Các thuật toán cơ bản trong lý thuyết số 3 1.1 Tìm thương và số dư . . . . . . . . . . . . . . . . . . . . . 3 1.2 Thuật toán Euclid phân tích một số ra thừa số nguyên tố . 6 1.3 Thuật toán