Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 100 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
100
Dung lượng
855,47 KB
Nội dung
ĐẠ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 THỊ MỴ KHẢO SÁT CÁC THUẬT TOÁN KIỂM ĐỊNH SỐ NGUYÊN TỐ LỚN VÀ ỨNG DỤNG Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số LUẬN VĂN THẠC SĨ HƢỚNG DẪN KHOA HỌC: PGS TSKH NGUYỄN XUÂN HUY THÁI NGUYÊN – 2017 LỜI CAM ĐOAN T i xin m on kết nghi n t i kh luận v n n y yl ng tr nh nghi n u luận v n n y l Ti ng xin trung th m o n r ng s ã ƣợ ảm ơn v u ri ng t i, s liệu v v kh ng tr ng l p với gi p cho việ th th ng tin trí h dẫn luận v n ƣợ hỉ rõ nguồn g T giả Nguyễn Thị Mỵ \ i ã LỜI CẢM ƠN T i xin b y tỏ s Nguyễn Xuân Huy - ngƣời ã tận t nh hƣớng dẫn v gi qu tr nh họ gi o v ho qu tr nh họ T i thầy gi o, Tin &Truy nTh ng, v tạo Xin ảm ể t i ho n th nh luận v n Nguyễn Thị Mỵ ii DANH MỤC CÁC KÝ HIỆU TRONG LUẬN VĂN ℝ ℝ+ ℕ ℤ ℤ+ (a, b), Ordn(b) ℤ/n ℤ[x] ≡ ϕ(n) L, BitLen(n) logn lgamma(n) ( gcd (a,b) iii DANH MỤC CÁC BẢNG TRONG LUẬN VĂN Bảng 1.1 Ph n b s 1.2 Một v i s 1.3 Một s 1.4 Một s 1.5 Vis 1.6 20 s 1.7 Một s 1.8 2.1 C s 2.2 C phép + v 3.1 C phƣơng 3.2 Bậ 3.3 H i phần tử sinh iv MỤC LỤC LỜI CẢM ƠN DANH MỤC CÁC KÝ HIỆU TRONG LUẬN VĂN DANH MỤC CÁC BẢNG TRONG LUẬN VĂN MỞ ĐẦU CHƢƠNG1 TỔNG QUAN VỀ SỐ NGUYÊN TỐ 1.1 Các định nghĩa khái niệm mở đầu 1.2 Một số tính chất số nguyên tố 1.3 Sự phân bổ số nguyên tố 1.4 Số giả nguyên tố 1.5 Số Mersenne 1.6 Số Fermat 1.7 Các số nguyên tố lớn 171 172 173 174 1.8 Ứng dụng số nguyên tố 181 182 CHƢƠNG CÁC THUẬT TOÁN KIỂM ĐỊNH SỐ NGUYÊN TỐ 2.1 Các lớp P NP 2.2 Thuật toán kiểm định theo√ 2.3 Sàng Eratosthenes 2.4 Thuật toán kiểm định theo xác suất MILLER-RABIN 241 242 Thuật to n Miller-Rabin 36 244C trƣờng hợp biệt 37 2.5 Kiểm định theo giả thuyết Riemann 38 2.6 Thuật tốn kiểm định tính ngun tố AKS .39 2.6 Giới thiệu 39 2.6 Định lí AKS 40 2.6 Thuật to n 41 2.6 Một s kiến th to n họ 42 2.7 Thuật toán Bernstein 46 2.7 Định lí Bernstein 46 2.7 Thuật to n Bernstein 47 CHƢƠNG CÀI ĐẶT VÀ ỨNG DỤNG 48 Lớp BI 49 1 Nhận xét .49 312C trƣờng liệu 49 313C phƣơng th 49 3.2 Lớp ARITHM 55 Ƣớ lớn 55 2 H m phi Euler 55 323S hính n 56 Bậ theo modulo 58 C n nguy n th y .59 S nguy n t s t s u .61 Kiểm tr ƣớ nguy n t 62 Ƣớ nguy n t lớn 64 Nh n modulo 66 10 L y thừ modulo 67 vi 3.3 Lớp BIPOL 67 331C trƣờng liệu 67 332C phƣơng th 67 3.4 Lớp MR 72 3.5 Lớp AKS .72 3.6 Ứng dụng 72 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 73 TÀI LIỆU THAM KHẢO 79 vii MỞ ĐẦU Số nguyên tố l Định nghĩ vấn xo y qu nh lu n l m S s nguy n t nguy n t nguy n t nguyên tố? Có thể liệt k hạn Để h thiết phản nguy n t kh nguy n t l S u Eu lid xung qu nh ph t biểu m ho ến n y Ngƣời t S ph n b ph t nhi u nh to n họ giả thuyết mở v ng y n y việ s bảo mật v khai ƣợ nguy n th nh tí h t n ho việ 3.3.2.2 Lũy thừa mod (N, xR − 1) Cho f l mod N Cần tính z = Trong Vế phải v bậ N mod R, Nhận xét tr n Để ý r ng thuật to n AKS v Ngoải r , f l T xét Trường hợp k < R Khi Trường hợp k = R Khi Trường hợp k > R Gọi d l T Tính t2 = f v mod N Tính t3 = t1d mod (N, xR−1) Kết = (t1 ⋅ t3) mod (N, xR−1) Operator ^ Ch n ng: tính z = f^k mod n Input: f: BIPOL k: BI Output: z Method if (f = or f = 0) then return f endif; // 1^k = 1, 0^k = z ≔ BIPOL(1); if (k < R) then for i ≔ to BitLen(k) – if Bit(k[i]) = then z ≔ z* f endif; f := f*f; end for return z; endif / k >= R // Tính t := f^(R-1); // Tính z := f^v; / Tính d thu z = z*t^d for i ≔ to BitLen(d)-1 if (Bit(d[i] = 1) then z := z* t endif; t := t*t; endfor return z; endoperator * 71 3.4 Lớp MR Lớp MR gồm thuật to n kiểm to n Miller-Rabin Họ vi n Kiểm 5000000 theo h i phƣơng mụ Kiểm tr n s lớn 3.5 Lớp AKS Lớp AKS gồm thuật to n AKSB Bernstein Để x h m NextPrime(r) 32 bit th 003∙L Tuy nhi n, Độ ph = BitLen(n) = log2n l Thuật to n tính biểu th Kí hiệu C(n, k) l h m H i vế (1) ul s kh ng biến n n bất ẳng th (2 5) xảy v P r v lần lƣợt l vế tr i v phải m M t kh h m log rit ồng hỉ log(T) ≤ log(P), ó T (2 5), log ƣợ tính theo s t nhu n e 72 Trong thƣ viện (n−1)!, lgamma(n) = log(n!) = log(1)+log(2)+…+log(n-1) T log(C(n,k)) lgamma(n+1)−lgamma(k+1)−lgamma(n−k+1) Gọi LogC(k,n) l LogC(k, n) = log(C(n,k)) = = lgamma(n+1)−lgamma(k+1)−lgamma(n−k+1) Khi ó log log(T) = LogC(2*s, i) + LogC(d, i) + LogC(2*s−i, j) + LogC(r−1−d, j) v r l s nguy n t n n φ(r) = r−1 3.6 Ứng dụng cấp khóa cho hệ m Trong hệ mật mã RSA qui tr nh sinh khó gồm bƣớ K1 K2 K3 de ≡ mod φ(n) Giữ khó ri ng (d,n), khó th h i l (e,n) ể Với ngƣời sử dụng ần ấp khó 2s nguy n t pv t giả thiết l hệ th ng ần họn q lớn h i ngƣ ng sp v NextPrime dƣới y th h n ng tr n 73 ng kh i sq ho trƣớ Thuật to n Algorithm NextPrime(BI x) Tms ịnh x thỏ modulo n Trƣớ ax + ny = (a,n) = Từ Vậy b := n; u := 1; q := a/b; r := a - q*b; while (r > 0) a := b; b := r; t := u; u := x; x := t - q*x; q := a / b; r := a - q*b; endwhile return (x > 0) ? x : x+n; endInv 74 Khi x to n NextPrime v Inv t v Ch input: BI sp, BI sq ; output: d,e thỏ de ≡ mod φ(n), φ(n) = (p−1)(q−1) Method P: = NextPrime(sp); // Tim so nguyen to p > sp q: = NextPrime(sq);// Tim so nguyen to q > sq n:= p*q; phi := (p-1)*(q-1); / Tinh d thoa (d,phi) = d := (p+q)/2; while (Gcd(d,phi) != 1) d:=d+1; endwhile / Tinh e thoa de % phi = e: = Inv(d,phi); / Kiem tra d, e for (m = 1; true; ++m) { = PowMod(m, e,n);// mã hó m v = PowMod( , d, n);// giải mã m } Endfor EndGenKey 75 giải mã theo n ng: sinh khó Bảng so s nh thời gi n kiểm ƣợ i ịnh s nguy n t t 76 theo h i thuật to n ã số hệ thập phân 10000339 193707721 761838257287 203891234567897 77 Một s kết hạy hƣơng tr nh 78 79 KẾT LUẬN CHƢƠNG D v o nội dung t m hiểu ƣợ cập ến ý nghĩ , h tổ ch c liệu v lý v s nguy n t hƣơng 2, hƣơng ã ã i t i thuật to n v i s nh giữ cho hệ mã RSA 80 lớp i tƣợng ể quản ng dụng ể t m khó KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN M d i với hệ mật mã quan trọng, phạm vi c a luận v n •T m hiểu v i trị v •Nắm ầy •T m hiểu v •Thiết kế •T m khó Qu tr o Một hƣớng ph t triển b i to n li n qu n 81 TÀI LIỆU THAM KHẢO [1] Singh Simon (2008), Mật mã: từ cổ điển đến lượng tử, NXB Trẻ, Phạm V n Thi u, Phạm Việt Hƣng dị h [2]Singh Simon (2010), Định lí cuối Fermat, NXB Trẻ, Phạm V n Thi u, Phạm Việt Hƣng dị h [3]H Huy Kho i – Phạm Huy Điển – Số học thuật toán, NXB Kho họ H Nội n m 1996 [4]Neeraj and Saxena Nitin (2004), PRIMES is in P Annal Mathematics, 160 (2): 781 , s o f – 793 doi:10.4007/annals.2004.160.781 JSTOR 3597229 [5] Bernstein Daniel J (2003), Proving Primality After Agrawal-Kayal- Saxena, (manuscript, version of January 25) [6] Granville Andrew (2004), It is easy to determine whether a given integer is prime, BULLETIN (New Series) OF THE AMERICAN MATHEMATICAL SOCIETY, Volume 42, Number 1, Pages 3−38, S 02730979(04)01037-7 [7] Kenneth Rosen H (1993), Elementary Number Theory And Applications, Third edition, Addison-Wesley [8] Knuth Donald E (2003), Selected Papers on Discrete Mathematics (cloth), Lecture Notes (106) Stanford, CA: Center for the Study of Language and Information, SLI, ISBN 1-57586-249-2, ISBN 1-57586-2484 (paperback) [9] Knuth Donald E (2010), Selected Papers on Design of Algorithms, CSLI Lecture Notes, no 191, ISBN 1-57586-583-1 (cloth), ISBN 1-57586582-3 (paperback) 82 Knuth Donald E (2003), The Art of Computer Programming, 1: [10] Fundamental Algorithms (3rd ed.), Addison-Wesley, Professional ISBN 0201-89683-4 Knuth Donald E (2003), The Art of Computer Programming, 2: [11] Seminumerical Algorithms (3rd ed.), Addison-Wesley Professional ISBN 0201-89684-2 [12] Knuth Donald E (2003), The Art of Computer Programming, 4A: Combinatorial Algorithms, Addison-Wesley Professional ISBN 0-20103804-8 [13] Ribenboim, Paulo (1991),The Little Book of Big Primes, Springer- Verlag 83 84 ... dụng số nguyên tố 181 182 CHƢƠNG CÁC THUẬT TOÁN KIỂM ĐỊNH SỐ NGUYÊN TỐ 2.1 Các lớp P NP 2.2 Thuật toán kiểm định theo√ 2.3 Sàng Eratosthenes 2.4 Thuật toán kiểm định. .. chất số nguyên tố 1.3 Sự phân bổ số nguyên tố 1.4 Số giả nguyên tố 1.5 Số Mersenne 1.6 Số Fermat 1.7 Các số nguyên tố lớn 171 172 173 174 1.8 Ứng dụng. .. 67 280 421 310 721 16 1.7 Các số nguyên tố lớn [13] 1.7.1 Các số nguyên tố sinh đôi Nếu h i s p đôi Ng y 28 2002 D niel P pp ph t r 51090 hữ s 10 1.7.2 Các số nguyên tố Sophie Germain [13] Nếu