Testing is intended to show that a program does what it is intended to do and to dis

92 6 0
Testing is intended to show that a program does what it is intended to do and to dis

Đ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 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ố : 60.48.01.01 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 download by : skknchat@gmail.com LỜI CAM ĐOAN T i xin kết nghi n t i kh m o n yl u luận v n n y l trung th T i ng xin luận v n n y ã ƣợ ƣợ ng tr nh nghi n u ri ng t i, s liệu v v kh ng tr ng l p với m o n r ng s gi p ảm ơn v 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 download by : skknchat@gmail.com LỜI CẢM ƠN T i xin b y tỏ s kính trọng v lịng biết ơn s u sắ ến PGS.TSKH Nguyễn Xuân Huy - ngƣời ã tận t nh hƣớng dẫn v gi p qu tr nh họ tập, nghi n u v ho n th nh luận v n, xin ảm ơn gi o v ngo i trƣờng ã ung ấp kiến th ho qu tr nh họ tập v rèn luyện T i t i su t thầy, v tạo i u kiện thuận lợi th n t i ng xin ƣợ b y tỏ lòng biết ơn h n th nh ến B n Gi m Hiệu, thầy gi o, gi o phòng S u ại họ trƣờng Đại họ C ng Nghệ Th ng Tin &Truy nTh ng, thầy gi o Viện C ng Nghệ Th ng Tin ã giảng dạy v tạo i u kiện ho t i họ tập, nghi n Xin ảm ơn gi u v ho n th nh luận v n n y nh, bạn bè ã hết lòng gi p , khí h lệ, ộng vi n t i ể t i ho n th nh luận v n Thái Nguyên, tháng 03 năm 2017 T giả Nguyễn Thị Mỵ ii download by : skknchat@gmail.com DANH MỤC CÁC KÝ HIỆU TRONG LUẬN VĂN Kí hiệu Ý nghĩa ℝ Tập s th ℝ+ Tập s th ℕ Tập s t nhi n (kể ả 0) ℤ Tập s nguy n ℤ+ Tập s nguy n kh ng m, ℤ+ = ℕ (a, b), gcd (a,b) Ƣớ Ordn(b) Bậ ℤ/n V nh nguy n theo modulo n kh ng m lớn av b b theo modulo n Nếu n nguy n theo th ℤ/n l trƣờng ℤ[x] V nh ≡ To n ẳng, tƣơng ƣơng, ồng dƣ ϕ(n) H m phi Euler L, BitLen(n) S bit biểu diễn nhị ph n n logn log rit s lgamma(n) log((n1)!) ( ) th Tổ hợp hập k ( nguy n n n ) iii download by : skknchat@gmail.com DANH MỤC CÁC BẢNG TRONG LUẬN VĂN Bảng Tên bảng luận văn Trang 1.1 Ph n b s nguy n t 10 1.2 Một v i s nguy n t Mersenne 16 1.3 Một s 17 p nguy n t sinh i 1.4 Một s s nguy n t Sophie Germ in 17 1.5 V i s gi i thừ nguy n t 18 1.6 20 s nguy n t ầu ti n v h m n#, pn# 19 1.7 Một s s nguy n t gi i th y ã biết 1.8 20 Thời gi n m y tính d ng ể ph n tí hs n r thừ s nguy n t 2.1 C s nguy n t v hợp s khoảng 2100-1 l s 2.2 C phép + v ⋅ v nh ℤ/7 49 3.1 C phƣơng th 52 3.2 Bậ lớp BI biệt 24 31 s ℤ/7 61 ℤ/7 62 3.3 H i phần tử sinh iv download by : skknchat@gmail.com MỤC LỤC LỜI CẢM ƠN II DANH MỤC CÁC KÝ HIỆU TRONG LUẬN VĂN III DANH MỤC CÁC BẢNG TRONG LUẬN VĂN IV 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ố 11 1.5 Số Mersenne 13 1.6 Số Fermat 16 1.7 Các số nguyên tố lớn 17 171C s nguy n t sinh i 17 172C s nguy n t Sophie Germ in 17 173C s gi i thừ nguy n t 18 174C s nguy n t gi i th y 19 1.8 Ứng dụng số nguyên tố 21 Mật mã v s nguy n t 21 182C hệ mật mã ng kh i 21 CHƢƠNG CÁC THUẬT TOÁN KIỂM ĐỊNH SỐ NGUYÊN TỐ 26 2.1 Các lớp P NP 26 2.2 Thuật toán kiểm định theo√ 28 2.3 Sàng Eratosthenes 30 2.4 Thuật toán kiểm định theo xác suất MILLER-RABIN 31 Cơ sở to n họ 31 Thuật to n Miller Test 36 v download by : skknchat@gmail.com 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 download by : skknchat@gmail.com 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 download by : skknchat@gmail.com MỞ ĐẦU Số nguyên tố l s t nhi n lớn v Định nghĩ v s nguy n t m vấn xo y qu nh lu n l m d hỉ hi hết ho v hính ơn giản v ngắn gọn nhƣng nh to n họ qu n t m S nguy n t l kh i niệm xƣ s nguy n t l vật liệu x y d ng n n nguy n t t ng l n v hạn n n to n họ C s t nhi n V u hỏi ầu ti n s t r l : Có số nguyên tố? Có thể liệt k tất ả h ng r h y h ng lập th nh dãy s v hạn Để h ng minh i u n y Eu lid ã ƣ r lập luận, xuất ph t từ giả thiết phản h ng r ng dãy s nguy n t l hữu hạn, s u ó hỉ r s nguy n t kh với s nguy n t ã ó M u thuẫn n y ho biết tập s nguy n t l vô hạn S u Eu lid h ng minh ó v s xung qu nh s nguy n t ƣợ ƣ r s nguy n t , nhi u Một s u hỏi u hỏi ó, dƣới ph t biểu ơn giản, ã trở th nh b i to n lị h sử to n họ m ho ến n y hƣ ó ƣợ lời giải trọn vẹn Ngƣời t kh ng t m thấy s tuần ho n n o dãy s nguy n t S ph n b ph t s nguy n t tỏ r ph tạp v kh ng ó quy luật Việ s nguy n t lớn thời gi n d i l s qu n t m nhi u nh to n họ Tuy nhi n ho ến n y s họ òn tồn nhi u giả thuyết mở v s nguy n t ng y n y việ nghi n Hơn nữ , thời ại u s nguy n t ng nghệ th ng tin ng ƣợ kí h thí h s kiện l s nguy n t tỏ r ó í h việ mã hó v giải mã th ng tin Tính bảo mật v khai ƣợ n to n qu tr nh tr o ổi khó v ảm bảo b ng ộ ph nguy n th nh tí h t n ho việ tạp thừ s nguy n t hạy m y tính ể th hệ mật mã khó ng b i to n s họ ph n tí h s Nói h kh , vấn thời gi n ti u b i to n ph n tí h s nguy n download by : skknchat@gmail.com lớn th nh to n thừ s nguy n t hầu hết nói ri ng Đó ƣợ sử dụng l m hỉ ti u hệ mật mã khó ng l lí ể ng kh i RSA ƣợ nh gi ộ n ng kh i nói v hệ mật mã RSA hệ mật mã nói v hệ mật mã khó ộng ồng qu tế hấp nhận rộng rãi thƣơng mại iện tử v tr o ổi th ng tin Trong khu n khổ m nh, luận v n tr nh b y qu n ến s nguy n t v ng dụng thuật to n li n thuật to n tr n ể từ ó hƣơng tr nh thử nghiệm nh m nhấn mạnh v i trò i t s nguy n t việ mã hó v giải mã th ng tin Đối tượng phạm vi nghiên cứu Luận v n tập trung t m hiểu v s nguy n t v hệ mật thiết ến s nguy n t , b o gồm t , hệ mật mã khó nguy n t i tƣợng ó qu n thuật to n kiểm ịnh s nguy n ng kh i Ngo i r luận v n qu n t m ến s lớp s biệt thƣờng ƣợ khuyến o tr nh sử dụng x y d ng hệ mật mã v thuật to n kiểm ịnh s nguy n t n y thƣờng ó ộ ph tạp kh ng o Những nội dung nghiên cứu Nội dung hính s u luận v n h yếu tập trung v o nghi n u vấn y: Chương Tổng quan số nguyên tố khái niệm liên quan Trong hƣơng n y họ vi n tr nh b y v tổng qu n s nguy n t : Giới thiệu v s nguy n t , ịnh lý qu n trọng v v i lớp s nguy n t qu n trọng lị h sử to n họ Chương Giới thiệu số thuật toán kiểm định số nguyên tố Trong hƣơng n y, luận v n tập trung tr nh b y ịnh s nguy n t lớn d v phƣơng ph p x tr n tiếp ận kh thuật to n kiểm nh u: phƣơng ph p tất ịnh suất download by : skknchat@gmail.com 3.3.2.2 Lũy thừa mod (N, xR  1) Cho f l v nh modulo (N, xR1) v k l s v nh th mod N Cần tính z = f k modulo (N, xR1) Trong ả h i thuật to n AKS v AKSB t u phải kiểm tr ẳng th (x+a)N  xN + a mod (N, xR1), a < N Vế phải ẳng th tr n ơn giản, ụ thể l , N > R n n xN + a  xN mod R + a mod (N, xR1) v ó ó dạng biểu diễn BIPOL l dãy hệ s th bậ N mod R, ụ thể l hệ s c0 = a, hệ s cN mod R = Nhận xét tr n ho t biết hỉ ần th f có bậc m th th th tính h m f k ó bậ mk Trong hai u phải tính fN với f = x+a l thuật to n AKS v AKSB t Ngoải r , f l t phƣơng th mod (n, xR1), a < n (x+a)n Để ý r ng i th bậ bậ v k < R th f k mod (n, xR1) = f k mod N T xét trƣờng hợp s u: Trường hợp k < R Khi ó bậ th kết f k l k < R th kết f k l Trường hợp k = R Khi ó bậ Trường hợp k > R Gọi d l thƣơng v v l dƣ phép hi k ho R1 T ó k = d(R1) + v, ≤ v < R1 v ó f k = (fR1)d  f v T tính ri ng th nh phần tổng hợp kết quả, ụ thể l Tính t1 = f R1 mod N 70 download by : skknchat@gmail.com 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 DivMod(k, R-1, d, v); // k = d(R-1)v // Tính th c t := f^(R-1); // Tính th c 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 download by : skknchat@gmail.com 3.4 Lớp MR Lớp MR gồm thuật to n kiểm ịnh x suất tính nguy n t theo thuật to n Miller-Rabin Họ vi n ã th Kiểm kiểm ịnh s u y: ịnh theo thuật to n Miller-R bin 5000000 theo h i phƣơng n ó v kh ng xét s nguy n t trƣờng hợp dƣới biệt (m tả mụ 4 Kiểm ịnh tr n i s nh thuật to n Miller-R bin v thuật to n AKSB s lớn 3.5 Lớp AKS Lớp AKS gồm thuật to n AKSB ải tiến theo kết Bernstein Để x ng hỉ r l Bernstein họn s th m biến nhƣ s u ịnh s nguy n t r n n xuất ph t từ gi trị r = r0 s u ó gọi h m NextPrime(r) ể t m s nguy n t Nếu s bit biểu diễn n, L lớn họn r0 = 01∙L2, ngƣợ lại, L ≤ 32 bit th 32 bit th 003∙L Tuy nhi n, ơn giản t Độ ph họn r0 = hỉ ần họn r0 ≥ tạp tính to n: L phép kh i n v L phép l y thừ , ó L = BitLen(n) = log2n l s bit biểu diễn n Thuật to n tính biểu th ( )( )( i u kiện ho s (2 5) )( ( ) Kí hiệu C(n, k) l h m ho gi trị tổ hợp ( H i vế biến n n bất ẳng th (1) ) ul ( ) ( k theo n T biết: ) s kh ng m M t kh (2 5) xảy r v v P lần lƣợt l vế tr i v phải √ ( ) ) h m log rit ồng hỉ log(T) ≤ log(P), ó T (2 5), log ƣợ tính theo s t nhu n e 72 download by : skknchat@gmail.com Trong thƣ viện m th C++, h m lg mm (n) ho t log rit (n1)!, ụ thể l lgamma(n) = log(n!) = log(1)+log(2)+…+log(n-1) T ó: log(C(n,k)) =  log(n!)  log(k!) log((n-k)!) = lgamma(n+1)lgamma(k+1)lgamma(nk+1) Gọi LogC(k,n) l h m tính log rit tổ hợp C(n,k), t ó LogC(k, n) = log(C(n,k)) = log(n!) - log(k!) - log((n-k)!) = lgamma(n+1)lgamma(k+1)lgamma(nk+1) Khi ó log rit vế tr i l : 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ã RSA Trong hệ mật mã RSA qui tr nh sinh khó gồm ho ngƣời sử dụng b o bƣớ s u: K1 Chọn h i s nguy n t p v q lớn K2 Tính tí h n = pq v h m phi Euler (n) = (p1)(q1) K3 Chọn h i s nguy n dƣơng d v e thỏ i u kiện de  mod (n) Giữ khó ri ng (d,n), khó th h i l (e,n) ể ng kh i Với ngƣời sử dụng ần ấp khó t giả thiết l hệ th ng ần họn s nguy n t p v q lớn h i ngƣ ng sp v sq ho trƣớ NextPrime dƣới y th h n ng tr n 73 download by : skknchat@gmail.com Thuật to n Algorithm NextPrime(BI x) Ch n ng: Tim s nguy n t s t s u x Input : s nguy n x output: s nguy n t ầu ti n > x Method // Xuất ph t từ s lẻ x if (x l s endif hẵn) then x ≔ x + else x ≔ x +2 while not Prime(x) x ≔ x + 2; endwhile return x; endNextPrime T m s nghị h ảo theo modulo : Cho , n nguy n t ịnh x thỏ ng nh u X i u kiện x mod n = x ƣợ gọi l s nghị h ảo modulo n Trƣớ hết vận dụng thuật to n Eu lid mở rộng t m x v y thỏ : ax + ny = (a,n) = Từ y suy r ( x mod n) + (ny mod n) = mod n Vậy x mod n = Algorithm Inv(BI a, BI n) Ch n ng: T m s nghị h ảo theo modulo n input: BI a, BI n; (a,n) = output: x thỏ x mod n = Method x := 0; 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 download by : skknchat@gmail.com theo Khi x ịnh ƣợ h i s nguy n t p,q v tính ƣợ d, e nhờ h i thuật to n NextPrime v Inv t mã hó m theo v giải mã theo ng th ng th Algorithm GenKey(BI sp, BI sq) Ch n ng: sinh khó k 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 download by : skknchat@gmail.com Bảng so s nh thời gi n kiểm ịnh s nguy n t theo h i thuật to n ã ƣợ i t 76 download by : skknchat@gmail.com số hệ Thời gian kiểm định Thời gian kiểm định thập phân theo Miller – Rabin theo AKS 10000339 gi y với k=100 lần gi y 193707721 gi y với k=100 lần 15 gi y 761838257287 gi y với k=100 lần 218 gi y 203891234567897 gi y với k=100 lần 1555 gi y 77 download by : skknchat@gmail.com Một s kết hạy hƣơng tr nh 78 download by : skknchat@gmail.com 79 download by : skknchat@gmail.com KẾT LUẬN CHƢƠNG D v o nội dung t m hiểu ƣợ hƣơng 2, hƣơng ã ã cập ến ý nghĩ , lý h tổ ch c liệu v s nguy n t v i s nh giữ i t i thuật to n v lớp i tƣợng ể quản ng dụng ể t m khó cho hệ mã RSA 80 download by : skknchat@gmail.com KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN M d ng dụng c a s nguy n t kh ng nhi u nhƣng v i trò i với hệ mật mã quan trọng, c biệt l s nguy n t lớn Trong phạm vi c a luận v n, họ vi n ã th c ƣợc: T m hiểu v i trò v Nắm ầy ịnh lý qu n trọng li n qu n ến s nguy n t thuật to n kiểm ịnh s nguy n t kiến th c v T m hiểu v ải tiến thuật to n nh m t ng t Thiết kế i T m khó ho hệ mã hó RSA t lớp ộ tính to n i tƣợng quản lý s nguy n t Qu tr o ổi v xin ý kiến c huy n gi họ vi n thấy r ng: Một hƣớng ph t triển ó ý nghĩ nghi n b i to n li n qu n ến hệ mật mã 81 download by : skknchat@gmail.com u giải 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, Annals of Mathematics, 160 (2): – 781 793 doi:10.4007/annals.2004.160.781 JSTOR 3597229 [5] Bernstein Daniel J (2003), Proving Primality After Agrawal-KayalSaxena, (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 download by : skknchat@gmail.com [10] Knuth Donald E (2003), The Art of Computer Programming, 1: Fundamental Algorithms (3rd ed.), Addison-Wesley, Professional ISBN 0201-89683-4 [11] Knuth Donald E (2003), The Art of Computer Programming, 2: 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-201- 03804-8 [13] Ribenboim, Paulo (1991),The Little Book of Big Primes, SpringerVerlag 83 download by : skknchat@gmail.com 84 download by : skknchat@gmail.com ... tiến sĩ Manindra Agrawal, v h i sinh vi n Neeraj Kayal v Nitin Saxena ã ng b thuật to n l m sửng s t nh nghi n u lí thuyết s v kho họ m y tính tr n giới Thuật to n ƣợ to n họ t t n l AKS l b tr... đổi ta thay hai số số dư số chia cho số U4 (a, b) = a v hỉ a | b download by : skknchat@gmail.com B tính hất ầu ti n, U1  U3 l Gcd (a, b) tính ƣớ lớn sở ho ịnh nghĩ h is ệ qui h m nguy n a v b,... m a v b Ƣớ hiệu (a, b) l s lớn m a v b Ƣớ lớn ó lớn a v b, kí ng hi hết tính hất s u: ? ?a, b ∈ ℕ: U1 (a, b) = (b ,a) U2 (a, 0) = a (qui ƣớ ) U3 (a, b) = (a mod b, b): ước chung lớn hai số không thay

Ngày đăng: 09/04/2022, 20:25

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

  • Đang cập nhật ...

Tài liệu liên quan