1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tóm tắt luận văn Thạc sĩ Toán học: Một số thuật toán trong số học ứng dụng

36 7 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 36
Dung lượng 855,21 KB

Nội dung

Luận văn trình bày một số thuật toán số học và ứng dụng; thuật toán phân tích một số nguyên ra các thừa số nguyên tố bắt đầu từ sàng Eratosthennes, phương pháp RHO của 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.

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 Chuyên ngành: Ph ng pháp toán s c p Mã s : 46 01 13 HÀăN I,ă2018 Cơng trình đ că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 đ c b o v tr Tr c H i đ ng ch m lu n v n t i: ng đ i h c Th ng Long Vào h i 09 gi 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 c a 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 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 toá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 toán phân t ch s nguy n thành t ch th 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 c a 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 as 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ã c a h RSA 3.3 Ch k 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 t m n khoa h c l th , hấp dẫn nh ng ng i h c làm toán, giáo vi n, h c sinh tr n khắp th gi i Mặc d khoa h c k thuật ngày phát tri n nh ng c nh ng toán t th i c đại c n giá tr đ n tận bây gi vi c t m m t thuật toán phân t ch s nguy n t ch th a s nguy n t m t nh ng thuật toán nh Ch nh nh đ kh c a vi c phân t ch s nguy n thành t ch th a s nguy n t c s cho s đ i c a mật mã h c Luận văn tr nh bày m t s thuật toán s h c ng d ng Thuật toán phân t ch m t s nguy n th a s nguy n t bắt đầu t sàng Eratosthennes, ph ng pháp RHO c a 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 đ c chia làm ba ch ng: Ch ng 1: Thuật toán t thuật toán tr nh bày nh ng khái ni m c v thuật toán, đ ph c tạp t thuật toán Ch ng 2: M t s thuật toán th ng d ng tr nh bày m t s ki n th c c v m t s thuật toán s h c th ng d ng Ch ng 3: H mã kh a RSA ch k s tr nh bày m t s ng d ng c a thuật toán phân t ch s nguy n 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 nh ng khái ni m c v thuật toán, đ ph c tạp t thuật toán N i dung c a ch ng đ c 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 m t quy tắc, thao tác đ v i nh ng d li u ban đầu cho, ta t m đ c l i giải cho toán sau m t khoảng th i gian h u hạn Trong thuật toá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 c a thuật toán cl ng đ ph c tạp c a thuật toá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 tr n tập h p s nguy n d ng Ta n i f(n)c bậc O-l n c a g(n) vi t: f(n)= O(g(n)) f=O(g), n u t n s C ̸= 0, cho v i n đ l n, hàm f(n) g(n) đ u d f (n) = C n→+∞ g(n) ng lim N u thuật toán c th i gian th c hi n f(n) = O(g(n)) ta n i th i gian th c hi n cấp g(n) Ch ng ta cần l u th m m t m sau Trong th c t ch ng ta c n nhắc đ n thuật toán xác suất t c thuật toán ph thu c vào m t hay nhi u tham s ngẫu nhi n Nh ng thuật toán này, v nguy n tắc kh ng đ c g i thuật toán, v ch ng c th , v i xác suất bé, kh ng bao gi k t th c Tuy nhi n, th c nghi m ch rằng, thuật toán xác suất th ng h u hi u h n thuật toán tất đ nh Thậm ch , nhi u tr ng h p, ch c thuật toán nh th s d ng đ c 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 đ c 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 s t ng h p l c t đ giải quy t vấn đ theo m t quy tr nh xác đ nh h ng đ n m t tác nhân t ng th ch (tác nhân mu n n i ng i, máy t nh, hay bất c m t thi t b c ch c t nh toán t đ ng c th hi u th c hi n đ c thuật toán) T thuật toán lu n đ nh h ng vào vi c m m t đ ng l n, m t giải pháp vạn cho vi c giải quy t hàng loạt vấn đ T thuật toán gi p làm thay đ i quan m nh n nhận vấn đ thay đ i th i quen làm toán cho h c sinh thay v làm theo m o m c bi n đ i th s làm toán theo c c t nh ng d ng r ng rãi, t ng quát cho nhi u tr ng h p Thuật toán c đặc m[1]: Đ m t dãy h u hạn b c x p theo m t tr nh t đ nh M i b c m t thao tác s cấp, tr ng h p đặc bi t c ng c th m t thuật toán bi t Các b c r ràng, thao tác ch nh xác (trong c ng m t u ki n, hai b x l c ng th c hi n m t thuật toán th phải cho c ng m t 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 quy t vấn đ m t 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 toán s h c th ng d ng Ch ng tr nh bày nh ng ki n th c c c a s h c m t s thuật toán s h c th ng d ng N i dung c a ch ng c đ c h nh thành t tài li u [2] [3] 2.1 Ki n th c c M c tr nh bày m t s khái ni m c s h c nh t nh chia h t, s nguy n t , đ ng d , thặng d , cần thi t cho n i dung c a 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 c a 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 đ i v i s nguy n c đ , n u b = ac k hi u a|b Ta c ng n i b chia h t cho a, hay b i c a a vi t b a Đ nh l 2.1 V i m i s nguy n d kh ng âm (q, r) cho: ng a, b t n cặp s nguy n b = aq + r, r < a Đ nh ngh a 2.3 Trong đ nh l tr n, a s chia h t b th s q đ c g i th ng(quotient) S r đ c g i s d (remainder) Nhận xét 2.1 Thuật toán chia c th m r ng tập s nguy n Z nh sau V i m i s nguy n a, b, a ̸= 0, t n cặp s nguy n (q, r) ∈ Z × Z, cho b = aq + r, ≤ r < |a| 2.1.2 S nguy n t Đ nh ngh a 2.4 S nguy n t s nguy n l n h n 1, kh ng chia h t cho s nguy n d ng ch nh n S nguy n l n h n kh ng phải s nguy n t đ c g i h p s Các t nh chất c a 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 đ u c c nguy n t kh ng v V i m i s th c d ng x cho tr kh ng v t x Khi đ , ta c : c, ta k hi u π(x) s s nguy n t Đ nh l 2.4 lim n→+∞ π(x) x logx t n =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 h n đ u phân t ch đ c m t 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 ch ng ta hi u ch k hi u thay s s nguy n Đ nh ngh a 2.5 Giả s n m t s nguy n d ng Ta n i, hai s nguy n a, b đ ng d v i theo modulo n n u a − b chia h t cho n k hi u a ≡ b(mod n) H th c tr n g i đ ng d th c Nh vậy, a ≡ b(mod n) ch 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) th ta n i a chia h t cho n k hi u a n Ch ng ta c ng n i n c c a a c chung l n c a hai s a, b đ c k hi u gcd(a, b) Đ nh ngh a 2.7 (Nguy n t c ng nhau) Hai s nguy n a, b đ c g i nguy n t c ng n u 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 c ng nhau, t n s nguy n x cho: a.x ≡ 1(mod n) th ta g i x phần t ngh ch đảo c a 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 đ c g i l p thặng d modulo m M i phần t c a Ar đ c g i m t 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 hi n 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−2 = cn−1 an Nh vậy, phân s a b = a0 + c0 b = a0 + a b b c0 ≤ cn−1 < cn−2 , c th vi t: = · · · = a0 + a1 + ···+an−1 + a1 n Cách vi t tr n đ c g i bi u di n s h u t a b d i 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 m 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 m i k ≥ 1, ta c bk qk−1 − bk+1 qk = (−1)k+1 Đ nh l 2.7 Giả s n s kh ng ch nh ph ng qbkk phân s h i t √ √ ri ng c a n Ta đặt α0 = n, s αk , Qk , Pk đ c đ nh ngh a nh sau: √ Pk + n , αk = Qk ak = [αk ], Pk+1 = ak Qk − Pk , Qk = ) (n − Pk+1 Qk < gcd(X ± Y, n) < n đ làm đ c u ch ng ta xem xét đa th c: Q(x) = √ √ (x + ⌊ n⌋)2 − n ≡ H(x)2 ( mod n) đây, H(x) = x + ⌊ n⌋ D nhận thấy giá tr c a Q(x) giá tr nguy n, r ràng ch ng s ch nh ph ng theo modulo n Trong c s nhân t ch ng ta c th xem p0 = −1 tất s nguy n t pi , p1 ≤ B cho: pni = Sau đ , v i s gi p đ c a sàng, ch ng ∏ ta t m giá tr xi mà: Ai = Q(xi ) = p∈S pαip ngh a Q(xi ) phân t ch c s nhân t c a ch ng ta Ta k hi u: Bi = H(xi ) ta nhận đ c đ ng d th c Bi2 ≡ Ai (modn) ta t ch l y s l ng đ l n bi u th c nh th ch ng ta th c hi n loại b bi n xây d ng bi u th c X ≡ Y ( mod n) Đi u ki n np = v i p s nguy n t c a c s nhân t lấy t đ ng d √ th c (x + ⌊ n⌋)2 ≡ n( mod p), mà đ ng d cần th a mãn đ i v i m t s giá tr c a x ∈ Z Giá tr xi ∈ Z đ i v i Q(xi ) đ c xác đ nh nh sau: 1) Đ i v i t ng s nguy n t p t c s nhân t , ch ng ta t m nghi m r1( p) r2( p) c a ph ng tr nh Q(x) ≡ 0( mod p) 2) Sau đ , ch ng ta thay đ i x khoảng đ l n [−M ; M ],M ∈ N , ch ng ta đ a đ n m t ma trận A, mà n đ c đánh s th t giá tr c a x 3) Trong m i phần t c a ma trận v i s th t c a x ta đặt A log | Q(x) | 4) Sau đ , đ i v i t ng giá tr p t c s nhân t S ch ng ta th c hi n tr nh sàng nh sau: T m i phân t cuả ma trận (A [x]), s th t c a n nằm cấp s c ng x ≡ r1p ( mod p) mod p), x ≡ r2p ( ch ng ta t nh toán giá tr c a log p Th i gian chạy c a thuật toán Ln [1 ] ;1 18 Ch ng H mã kh a RSA, ch k s hàm băm mật mã N i dung ch y u c a ch 3.1 ng đ c h nh thành t tài li u [4] H mã h a RSA Thuật toán RSA đ c lấy t ba ch đầu c a t n ba tác giả thuật toán là: Ron Rivest, Adi Shamir Len Adleman m tả lần đầu ti n vào năm 1977 H c vi n C ng ngh Massachusetts (MIT) đ c MIT đăng k sáng ch Hoa K vào năm 1983(s đăng k 4405829.) t ng ch nh đảm bảo t nh an tồn c a thuật tốn d a tr n đ kh c a vi c phân t ch s nguy n l n thành t ch th a s nguy n t Thuật toán RSA c b n b c ch nh là:tạo kh a, chia s key, mã h a giải mã,c hai kh a: • Kh a c ng khai( Public Key) • Kh a b mật ( Private Key) 3.2 Tạo kh a, mã h a, giải mã c a h RSA Các b c tạo kh a: Ch n s nguy n t l n p q ,v i p ̸= q ,l a ch n ngẫu nhi n đ c lập T nh n = p.q T nh : Giá tr hàm s le φ(n) = (p − 1)(q − 1) Ch n m t s t nhi n e cho:1 < e < φ(n), nguy n t c ng v i φ(n) 19 T nh : d cho hay d.e ≡ 1( d= mod φ(n)) x.φ(n) + e Kh a c ng khai:(e,n) Kh a b mật:(d,n) Các s nguy n t đ c ch n theo ph ng pháp th xác suất B c b n ,năm đ c th c hi n thuật giải Euclide m r ng Mã h a giải mã: Bản r (th ng tin tr c mã h a )k hi u m Bản mã (th ng tin sau mã h a )k hi u c Kh a b mật d th ng m t s l n đ c gi b mật B c 1: A nhận kh a c ng khai c a B B c 2: A chuy n r M thành s t nhi n m cho m n nguy n t c ng < m < n B c 3: Mã h a m thành c mod n c ≡ me c mã chuy n cho ng i nhận B c 4: G i c cho B B c 5: Giải mã: Ng i nhận s chuy n mã t c đ c m ta làm nh sau:cd ≡ med ≡ m mod n m th ng tin nhận đ c Đ an toàn c a thuật toán RSA ph thu c vào hai toán: toán phân t ch m t s t ch th a s nguy n t toán RSA Hi n nay, ch a t m đ c m t ph ng pháp tr n máy t nh giải quy t đ c toán th i gian đa th c 3.3 Ch k n t -Ch k s M t s đ ch k s c hai phần: Thuật toán k thuật toán xác minh Giao th c ch k s đ n giản Bob tạo m t cặp kh a m t kh a c ng khai kpr kpub Nhập th ng p (sign message: s = sigkpr (x)) G i th ng p ch k s (x,s) cho Alice Alice xác minh ch k s verify signature: verkpr,B (x, s)=true/false 20 3.4 Hàm băm Ch ng ta s nghi n c u hàm băm đ ch k s ? c y u cầu l cđ Đ nh ngh a 3.1 Hàm băm mật mã hàm nhận vào chu i k t c đ dài bất k (Message) k t xuất m t chu i c đ dài xác đ nh(digest) g i giá tr băm k t tạo c dung l ng nh h n chu i đầu vào Hàm băm c thu c t nh: - D dàng t m đ c digest c a m t chu i bất k - Kh ng th t m đ c th ng p g c c a digest - Kh ng th u ch nh đ c th ng p mà kh ng làm thay đ i digest c a n - Kh ng th t m đ c hai th ng p khác c c ng digest 3.4.1 Ph ng th c mã h a MD5 MD5 Là m t phi n tăng c ng c a M D4, đ c đ xuất b i giáo s Rivest vào năm 1991 Cả hai hàm băm t nh toán đầu 128 bit, t c ch ng c s c đ kháng va chạm khoảng 264 M D5 m t loạt giải thuật đ ng h a th ng tin v i thuật toán đ c thi t k t y ch nh ng d ng: -Trong ch k n t -D ng ng d ng bảo mật -Ki m tra t nh toàn v n c a tập tin đ c truy n -l u tr mật Đặc m : -T m t đoạn văn đầu vào s tạo m t chu i g i Message Digest hay c n g i MD5 hasd c đ dài c đ nh cho tr c đ c mã h a d i dạng hexa -T m t đoạn văn đầu vào s tạo m t hash cho m t văn -T m t hash đầu ta s kh ng bao gi suy ng c đ c plantext (bản r ) ban đầu Giải thuật: G m b c: Input: chu i c đ dài bất k Output: Giá tr băm c đ dài 128 bits B c 1: Nh i d li u: -Nh i th m bits cho d li u c đ dài l ≡ 448 mod 512 hay l = n.512 + 448 (v i l, n nguy n) 21 Figure 3.1: M ph ng b c MD5 -Các bits đ c nh i g m bits bits theo sau B c 2:Th m vào đ dài: -Đ dài c a kh i d li u ban đầu đ c bi u di n d i dạng nh phân 64 bits đ c th m vào cu i chu i nh phân k t c a b c -N u đ dài c a kh i d li u ban đầu > 264 , ch 64 bits thấp đ c s d ng, ngh a giá tr đ c th m vào K mod 264 -K t c đ c t hai b c đầu m t kh i d li u c đ dài b i s c a 512 Kh i d li u đ c bi u di n: Bằng m t dãy L kh i 512 bits Y0 , Y1 , · · · , YL−1 Bằng m t dãy N t 32 bits M0 , M1 , · · · , MN −1 Vậy, N = L.16(32.16 = 512) B c 3: Kh i tạo b đ m MD (MD bufer) M t b đ m 128 bit đ c d ng đ l u tr giá tr băm trung gian k t B đ m đ c bi u di n b n ghi 32 bit v i giá tr kh i tạo dạng litte-endian (byte c tr ng s nh t nằm đ a ch thấp nhất) nh sau: A = 67 B = EF 45 23 CD C = 98 BA D = 10 32 22 01 AB DC 54 76 89 FE Các giá tr t ng đ ng v i 32 bit sau: A = 01 23 B = 89 AB C = FE D = 76 45 CD DC 54 67 EF BA 32 98 10 B c 4:X l kh i d li u 512 bit Tr ng tâm c a giải thuật hàm nén(compression function) g m v ng x l Các v ng c cấu tr c gi ng nh ng s d ng hàm luận l khác g m F, G, H I nh sau: F (X, Y, Z) = (X ∧ Y ) ∨ (¬X ∧ Z) G(X, Y, Z) = (X ∧ Z) ∨ (Y ∧ ¬Z) G(X, Y, Z) = (X ∧ Z) ∨ (Y ∧ ¬Z) H(X, Y, Z) = X ⊕ Y ⊕ Z H(X, Y, Z) = X ⊕ Y ⊕ Z I(X, Y, Z) = Y ⊕ (X ∨ ¬Z) Quy c : ⊕, ∧, ∨, ¬⊕, ∧, ∨, ¬ lần l t ch phép XOR, AND, OR NOT X

Ngày đăng: 06/05/2021, 08:47

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

TÀI LIỆU LIÊN QUAN

w