1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Khảo sát các thuật toán kiểm định số nguyên tố lớn và ứng dụng

92 8 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 92
Dung lượng 888,5 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ố : 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 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 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 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 t nhi n (kể ả 0) ℤ+ ℝ+ Tập s th kh ng m ℤ Tập s nguy n (a, b), gcd (a,b) Tập s nguy n kh ng m, ℤ+ = ℕ Ƣớ Ordn(b) Bậ ℤ/n V nh nguy n theo modulo n ℤ[x] V nh lớn av b b theo modulo n Nếu n nguy n theo th ℤ/n l trƣờng th nguy n ≡ 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)!) ( ) Tổ hợp hập k ( ) iii n n 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 3.1 C 3.2 Bậ phƣơng th 31 49 lớp BI 52 s ℤ/7 3.3 H i phần tử sinh biệt 24 61 ℤ/7 62 iv 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 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 nguyên 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 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 s t r l : Có số u hỏi ầu ti n 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 ảm bảo b ng ộ ph nguy n th nh tí h t n ho việ qu tr nh tr o ổi khó v 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 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 suất thuật to n kiểm nh u: phƣơng ph p tất ịnh 3.3.2.2 Lũy thừa mod (N, xR  1) Cho f l th v nh modulo (N, xR1) v k l s v nh 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 f có bậc m th th thuật to n AKS v AKSB t Ngoải r , f l t phƣơng th th f k ó bậ mk Trong hai u phải tính fN với f = x+a l th tính h m 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 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 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 32 bit th họn r0 = 01∙L2, ngƣợ lại, L ≤ 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 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 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 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 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 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 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 ƣợ 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 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 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 lớp T m khó ho hệ mã hó RSA ộ 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 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 [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 84 ... 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 ... Ứ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. .. 617 = 274 177 × 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 v p+2 u l nguy n t th t ó cặp số nguyên tố sinh đôi Ng y 28 2002 D niel P pp ph t

Ngày đăng: 12/06/2021, 16:53

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w