Một số ứng dụng của số học trong lý thuyết mật mã

48 1.6K 2
Một số ứng dụng của số học trong lý thuyết mật mã

Đ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

Một số ứng dụng của số học trong lý thuyết mật mã

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC **************** VŨ THỊ THANH HẬU MỘT SỐ ỨNG DỤNG CỦA SỐ HỌC TRONG LÝ THUYẾT MẬT Mà LUẬN VĂN THẠC SĨ TỐN HỌC Thái Ngun, năm 2009 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC **************** VŨ THỊ THANH HẬU MỘT SỐ ỨNG DỤNG CỦA SỐ HỌC TRONG LÝ THUYẾT MẬT Mà Chuyên ngành : Phương pháp toán sơ cấp Mã số : 60.46.40 LUẬN VĂN THẠC SĨ KHOA HỌC TOÁN HỌC Người hướng dẫn khoa học : GS.TSKH Hà Huy Khoái Thái Nguyên, năm 2009 Số hóa Trung tâm Học liệu – Đại học Thái Nguyờn http://www.Lrc-tnu.edu.vn Mục lục Lời nói đầu Mét sè kiÕn thøc 1.1 Thuật toán độ phức tạp thuật toán 1.1.1 1.1.2 1.2 Khái niệm: Độ phức tạp thuật toán Phép tính đồng dư vấn đề liên quan 1.2.1 1.2.2 Thuật toán Euclid mở réng 10 10 11 1.2.3 Phi - hµm Euler 12 1.2.4 PhÐp tÝnh đồng dư phương trình đồng dư 13 1.2.5 Định lý Fermat mở rộng 14 1.2.6 Tính toán với đồng dư luỹ thõa bËc lín 15 1.2.7 1.3 Số nguyên tố định lý số học Thặng dư bình phương ký hiệu Legendre 16 Phân số liên tục 1.3.1 1.3.2 Kh¸i niƯm TÝnh chÊt 17 17 18 Mét sè øng dơng cđa sè häc lý thut mËt m· 2.1 21 HÖ m· Ceasar 21 2.1.2 HÖ M· Khèi 24 Mét sè hƯ m· mị th«ng dông 26 2.2.1 HÖ m· mị cđa Pohligvµ Hellman 26 2.2.2 Giao thøc trao đổi chìa khoá Diffie - Hellman 29 2.2.3 HÖ m· ElGamal 30 2.2.4 HÖ m· RSA 33 Phân tích thừa số nguyên tố 35 2.3.1 Phân tích Fermat më réng cña nã 35 2.3.2 Phân tích sử dụng liên phân sè 40 2.3.3 2.3 21 2.1.1 2.2 Nguyên tắc chung số hệ mà đơn giản Phân tích dùng phương ph¸p cđa Pollard 43 Tài liệu tham khảo 46 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn Lời cảm ơn Luận văn hoàn thành hướng dẫn tận tình nghiêm khắc GS.TSKH Hà Huy Khoái Nhân dịp này, xin bày tỏ lòng kính trọng biết ơn sâu sắc tới GS.TSKH Hà Huy Khoái, người Thầy mẫu mực đà giành nhiều thời gian công sức để hướng dẫn hoàn thành luận văn Tôi xin chân thành cảm ơn Trung tâm Đào tạo sau đại học, Phòng Đại số, Trường Đại học Khoa học - Đại học Thái Nguyên, Sở Giáo dục Đào tạo tỉnh Quảng Ninh, Trung tâm Hướng nghiệp Giáo dục thường xuyên tỉnh Quảng Ninh, đà tạo điều kiện thuận lợi để hoàn thành luận văn Nhân dịp này, xin bày tỏ lòng biết ơn tới Giáo sư, Phó giáo sư, Tiến sĩ Viện Toán học Trường Đại học Khoa học - Đại học Thái Nguyên, người thầy đà tận tình giảng dạy tạo điều kiện thuận lợi cho hoàn thành khoá học Tôi xin cảm ơn bạn bè gia đình đà động viên giúp đỡ suốt trình học tập Trường Đại học Khoa học - Đại học Thái Nguyên S húa bi Trung tõm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn Lêi nãi đầu Trước năm 70 kỷ XX, Số học thường xem ngành toán học tuý, có ý nghĩa lý thuyết Đối tượng nghiên cứu Số học quy luật tập hợp số, giả thuyết lớn tồn Số học giả thuyết số nguyên tố Thậm chí, có nhà toán học cho vẻ đẹp Số học có nhờ xa rời thực tiƠn cđa nã! (theo c©u nãi cđa G.H Hardy, A Mathematician's Apology, 1940) Ngày nay, thật khó đồng ý với Hardy, mà vẻ đẹp Số học ý nghĩa "thuần tuý" nó, mà ứng dụng bất ngờ vào thực tiễn Cách khoảng 30 năm, khó hình dung rằng, số kết lý thuyết số Số học lại làm nên cách mạng bảo mật thông tin Cơ sở ứng dụng lại Số học thuật toán, lĩnh vực nghiên cứu thuật toán Số học Có thể nói, mật mà đà có từ thời cổ đại Người áp dụng mật mà cách có hệ thống để đảm bảo bí mật thông tin quân nhà quân thiên tài người La Mà cổ đại, Julius Caesar Hệ mà cổ hệ mà Ceasar, thông qua phép mà thay ký tù thay bëi ký tù ®øng sau nã vị trí (hoặc k vị trí) Vào năm đầu thÕ kû XX hƯ m· míi cã tÝnh b¶o mËt cao xuất với đời hệ mà British Playfair năm 1910, mà khối thông qua phép thay theo chìa Song song với trình phát triển lịch sử nhu cầu bảo mật thông tin nhiều lĩnh vực đà thúc đẩy hệ mà đời có tính bảo mật ngày cao, hệ mà mũ Pohlig Hellman (năm 1978), giao thức trao đổi chìa khoá DiffieHellman, sau hệ m· ElGamal Mét nÐt chung cđa hai hƯ m· trªn lµ Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn cho phÐp c«ng bè c«ng khai phần thông tin cho việc lập mà gọi hoá với khoá công khai, mà mô hình hoàn hảo cho hệ mà kiểu công bố Rivest, Shamir Adleman vào năm 1978, mang tên RSA Hệ mà RSA thách thức lớn nhà thám mà Mục đích luận văn nhằm trình bày sở việc áp dụng lý thuyết số vào mật mÃ, đặc biệt mà hoá RSA số thuật toán phân tích số nguyên sử dụng thám mà Luận văn gồm hai chương Chương I trình bày kiến thức chuẩn bị phục vụ cho chương sau khái niệm thuật toán, độ phức tạp thuật toán, kiến thức đồng dư phân số liên tục Chương II trình bày số hệ mà đơn giản, hệ mà thông dụng, hệ mà RSA ứng dụng số học vào mật mà khoá công khai phân tích Fecmat, phân tích Fecmat mở rộng, phân tích sử dụng phân số liên tục, phân tích dùng phương pháp Pollard Từ viết sè thđ tơc ph©n tÝch sè, thđ tơc lËp m· giải mà chạy Maple S húa bi Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn Chương Một số kiến thức Trong chương trình bày số kiến thức chuẩn bị Tiết 1.1 nhắc lại khái niệm thuật toán độ phức tạp thuật toán Đồng thời để tiện theo dõi, trình bày tiết 1.2 mét sè kiÕn thøc vỊ phÐp tÝnh ®ång d­ vấn đề liên quan, tiết 1.3 số kiến thức phân số liên tục 1.1 Thuật toán độ phức tạp thuật toán 1.1.1 Khái niệm: Có thể định nghĩa thuật toán theo nhiều cách khác Trong luận văn này, hiểu khái niệm thuật toán theo cách thông thường Thuật toán qui tắc để với kiện ban đầu đà cho, tìm lời giải toán xét sau khoảng thời gian hữu hạn Để minh họa cách ghi thuật toán, tìm hiểu yêu cầu đặt cho tht to¸n, ta xÐt mét vÝ dơ thĨ sau: Cho X[1], X[2], , X[n] Tìm m j cho j n số tự nhiên số lớn thoả mÃn: m = X[j] = max X[k] 1kn Bài toán có nghĩa tìm cực đại số đà cho tìm số lớn số đạt cực đại Vì cần tìm sè lín nhÊt c¸c sè Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn đạt cực đại, ta xuất phát từ giá trị xem m = X[n] trường hợp j = n X[n] Trong b­íc thø nhÊt ta t¹m thêi X[n] TiÕp theo ta so sánh X[n 1] Trong n = 0, tøc n = 1, thuËt to¸n kÕt thóc NÕu X[n − 1] ≤ X[n], ta chun sang so sánh X[n] với X[n 2] Trong trường hợp ngược lại, X[n 1] số cực đại hai số đà xét (hai số X[n] X[n 1]) Khi ta phải thay đổi m = X[n − 1] vµ j = n − Víi cách làm ta nhận số cực đại số đà xét, nhận chØ sè lín nhÊt j c¸c chØ sè cđa số đạt cực đại Bước so sánh với số đứng trước số đà xét, kết thúc thuật toán trường hợp không số đứng trước Bây ta ghi lại thuật toán sau : Thuật toán tìm cực đại M1 (Bước xuất phát) Đặt M2 (Đà kiểm tra xong?) M3 (So sánh) Nếu M4 (Thay ®ỉi m) j ←− n, k ←− n − 1, m ←− X[n] NÕu k = 0, thuËt toán kết thúc X[k] m, chuyển sang M5 Đặt j ←− k, m ←− X[k] (ta hiĨu m t¹m thời cực đại) M5 (Giảm k ) Đặt k ←− k − 1, quay vỊ M2 Trong b¶ng ghi đây, dấu phép thay chỗ dùng để phép toán quan trọng, Trên ta đà ghi thuật toán ngôn ngữ thông thường Trong trường hợp thuật toán viết ngôn ngữ làm việc máy tính, ta có chương trình Trong thuật toán, có số liệu ban đầu cho trước thuật toán bắt đầu làm việc Ta gọi chúng đầu vào (input) toán tìm cực đại trên, đầu vào số Một thuật toán có nhiều đại trên, đầu số Chẳng hạn, thuật X[1], X[2], , X[n] đầu (output) Trong thuật toán tìm cực m j Có thể thấy thuật toán tìm cực đại mô tả thoả mÃn yêu cầu thuật toán nói chung, S húa Trung tâm Học liệu – Đại học Thái Nguyên tính hữu hạn tính xác http://www.Lrc-tnu.edu.vn Tính hữu hạn Thuật toán cần phải kết thúc sau số hữu hạn bước Khi thuật toán ngừng làm việc, ta phải thu câu trả lời cho vấn đề đặt Thuật toán tìm cực đại mô tả rõ ràng thoả mÃn điều kiện bước ta chuyển từ việc xét số sang số đứng trước nó, số số cần xét hữu hạn Tính xác định.Ơ bước, thuật toán cần phải xác định, nghĩa rõ việc cần làm Thuật toán tìm cực đại rõ ràng việc cần làm bước Ngoài yếu tố kể trên, ta phải xét đến tính hiệu thuật toán Có nhiều thuật toán mặt lý thuyết kết thúc sau số hữu hạn bước, nhiên thời gian làm việc lại vượt khả làm việc Vì thế, ta phải ý đến gọi thuật toán Độ phức tạp thuật toán đo dung lượng nhớ độ phức tạp không gian, tức máy tính cần thiết để thực thuật toán, đo thời gian, tức thời gian máy tính làm việc Trong luận văn này, nói đến độ phức tạp thuật toán, ta luôn hiểu độ phức tạp thời gian 1.1.2 Độ phức tạp thuật toán Dĩ nhiên, thời gian làm việc máy tính chạy thuật toán không phụ thuộc vào thuật toán, mà phụ thuộc vào máy tính sử dụng để chạy thuật toán Vì thế, để có tiêu chuẩn chung, ta đo độ phức tạp thuật toán số phép tính phải làm thực thuật toán Khi tiến hành thuật toán, số phép tính phải làm thực phụ thuộc vào cỡ toán, tức phụ thuộc vào độ lớn đầu vào Vì độ phức tạp thuật toán hàm số độ lớn đầu vào Trong ứng dụng thực tiễn, không cần biết xác hàm này, mà cần biết cỡ chúng, tức cần có ước lượng đủ tốt cđa chóng Số hóa Trung tâm Học liệu i hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn Khi làm việc, máy tính thường ghi chữ số bóng đèn tắt: bóng đèn sáng số dùng hệ đếm sè hiƯu vµ diƠn bëi k 2, bóng đèn tắt số Vì thuận tiện để biểu diễn số, ta cần dùng hai kí Một kí hiệu chữ số 1, sáng, gọi bít chữ số gọi số k -bít mơc tiÕp theo ta sÏ thÊy r»ng sè tù nhiªn Một số nguyên n biểu Trong mục n sÏ lµ mét sè k -bÝt víi k = [log2 n] (dấu [ ] kí hiệu phần nguyên số) Độ phức tạp thuật toán ®o b»ng sè c¸c phÐp tÝnh bÝt PhÐp tÝnh bÝt phép tính lôgic hay số học thực số bít Để ước lượng độ phức tạp thuật toán ta dùng khái niệm bậc O-lớn Định nghĩa 1: Giả sử f (n) dương Ta nói f = O(g), f (n) g(n) hai hàm xác định tập hợp số nguyên có bậc O lớn tồn sè C > 0, g(n) vµ viÕt cho n f (n) = O(g(n)) đủ lớn, hàm f (n) g(n) dương, đồng thời f (n) < C.g(n) VÝ dô: Cho f (n) = ni + ai−1 ni−1 + + a1 n + a0 , ®ã > Khi ®ã f (n) = O(ni ) Chóng ta cã thĨ kiĨm tra ®­ỵc r»ng: NÕu f1 (n) = O(g(n)), f2 (n) = O(g(n)) f1 (n) + f2 (n) = O(g(n)); nÕu f1 (n) = O(g1 (n)), f2 (n) = O(g1 (n)) (f1 f2 )(n) = O(g1 g1 (n)) Hơn tồn giới hạn hữu hạn f (n) n g(n) lim f(n) = O(g(n)) Định nghĩa 2: Một thuật toán gọi có độ phức tạp ®a thøc hc cã thêi gian ®a thøc, nÕu sè phép tính cần thiết thực thuật toán không vượt O(log d n), đó, n độ lớn đầu vào S húa bi Trung tâm Học liệu – Đại học Thái Nguyên d số nguyên dương http://www.Lrc-tnu.edu.vn [> vbro := ((vbma[1])& (−keyprv[1])) (mod p) ∗ (vbma[2]) mod p; vbro := 1234567891223334444555556666667777777888888889999 NhËn xÐt: HƯ m· nµy rÊt an toµn (chó ý không để lộ tham số s) ý tưởng mà ElGamal tổng quát Nó dùng cho hƯ m· sư dơng hµm mị, hµm mét chiỊu vµ vài hệ khác Một nét chung hai hệ mà cho phép công bố công khai phần thông tin phục vụ cho việc lập mà hỗ trợ cho việc "trao đổi chìa" vốn thường thấy hệ mà đối xứng Ưu điểm hệ mà thông tin khác thuộc loại "bí mật chung" cần phải gửi Đây mô hình phát triển ngày hoàn thiện, có tên gọi chung mà hoá với khoá công khai Nguyên tắc chung mà hóa với khoá công khai Giả sử hệ thống xét có n cá thể trao đổi thông tin mật Mỗi cá thể chọn cho chìa khoá lập mà mà hoá Ek thông báo công khai Như có k công thức n khoá lập mà công khai k1 , k2 , , kn Khi c¸ thĨ thứ i muốn gửi thông báo cho cá thể thứ j (đà chuyển thành số, nhóm thành khối có độ dài ) Với khối văn mà hoá khoá lập mà công khai) gửi dạng cá thể thứ j ( đà thông báo C = Ekj (P ) Để giải mà thông báo này, cá thể thứ riêng mình) Ekj P j cần dùng khoá giải mà (bí mËt Dkj Dkj (C) = Dkj Ekj (P ) = P Vì Dkj Ekj khoá lập mà giải mà cá thể thứ j Nhận xét: Mà hoá với khoá công khai sử dụng hai chìa khoá khác biệt thực cho hai công việc lập mà giải mà Mỗi cá nhân cần giữ kín chìa khoá giải mÃ, chìa khoá lập mà thông báo công khai (để người khác mà hoá tin mật gửi cho mình) Điều then chốt từ chìa khoá lập mà tìm chìa khoá giải mà (nếu thông tin đặc biệt khác) Rõ ràng với chế này, việc bảo mật thông 32 Số hóa Trung tâm Học liệu – Đại hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn tin trở nên rễ ràng (mỗi người việc giữ bí mật mình) Các nguyên tắc vừa trình bày cụ thể hoá hệ mà công khai phát minh năm 1978 Rivest, Shamir Adleman mang tên RSA 2.2.4 Hệ mà RSA Nguyên tắc thực Chọn hai số nguyên tố lớn Tính p q (có độ dài cỡ 150 chữ số thập phân) n = p.q , (n) = (p − 1)(q − 1), (e, ϕ(n)) = 1, d = e1 (mod (n)) Cặp số (e, n) dùng để lập mà (còn gọi chìa khoá công khai) Quy trình lập mà tin P, sau đà số hoá, thực công C P e (mod n) thøc: CỈp sè (d, n) dïng để giải mà (còn gọi chìa khoá bí mật) Nhờ hệ qủa định lý Euler, ta có quy trình giải mà thực theo công thức: P ≡ C d (mod n) (v× e.d ≡ (mod ϕ(n)), C d ≡ (P e )d ≡ P de ≡ P (mod n), theo hƯ qđa (1.2.4.2) VÝ dơ: (Dùng Maple để giải mÃ) [>p:=nextprime(1347823784782347823784482384581112894854378578 345347857834323441114578435347857834346364345798755427177711 1543227899876234561117791): [> q := nextprime(19993331345834785347852347823478237847823784 237878453478578337257834574785547545781776756543334544566668 765432111176): [> n := p*q: [> e := nextprime(983247823478323124141113823884578473248238478 234323423473824782347243478237847834785784578311113247823784 784773473799369678909000266266433117): [> d := e mod (p-1)*(q-1): [> vbmat :=1353309327681999393827505217627636370768815329431 33 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn 880812928318236723984991987468352435425372451891453972188621 643334957835653310780546013190700467049826013765869528758350 130221960723420387681825130163325383132309996590318310579743 04044341604466864 Giải mà câu theo công thức: [> vbmatma := vbmat; 1353309327681999393827505217627636370768815329431880812928 318236723984991987468352435425372451891453972188621643334957 835653310780546013190700467049826013765869528758350130221960 723420387681825130163325383132309996590318310579743040443416 04466864 [> vbmatmaso := vbmatma&∧ d mod n: hexstr := convert(vbmatmaso, hex, decimal); hexlist := [seq(substring(hexstr, 2*i-1 2*i),i = (1/2)*length (hexstr))]: declist := [seq(convert(hexlist[i], decimal, hex), i = nops (hexlist))]: vbgiaima := convert(convert(convert(declist, list), bytes), name); vbgiaima:= Em xin chan cam on, cac thay co da ve du le bao ve luan van Độ An toàn Người ta công khai khoá lập mà giải mà tìm hàm (d, n) d, hai số p, q phân tích không bị phát Bởi để có khoá giải mÃ, ta phải nghịch đảo (n), (e, n) mà hoàn toàn yên tâm khóa e ta phải phân tích theo n cỡ 100 chữ số modulo (n) Tuy nhiên muốn tìm thừa số nguyªn tè n = p.q (n = p.q) NÕu ta chọn có khoảng 200 chữ số Khi đó, để n, ta cần vài tỷ năm Sự xuất hệ mà RSA xem "cách mạng" bảo mật thông tin Sau Rivest, Shamir Adleman, công bố phát minh hệ mà đà nêu, tạp chí Scientific American đưa lời thách thức giải mà mẩu tin nhỏ đà mà hoá với: 34 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn n = 1143816257578888676692357799761466120102182967212423625 625618429357069352457338978305971235639587050589890751475992 90026879543541 e = 9007 MÈu tin "first solver wins one hundred dollas" (Ng­êi giải thắng 100 USD) xuất dạng mà hoá (với phép "số hoá" theo tương ứng a = 01, b = 02, c = 03, ) năm!), cố gắng sử dụng tổng lực mang tÝnh qc tÕ qua internet víi viƯc 1600 workstations, mainframes, tháng liên tục 2.3 giải mà vào ngày 26/4/1994 (sau 16 supercomputers công để phân tích số nêu thừa số nguyên tố Phân tích thừa số nguyên tố Hệ mà công khai RSA thách thức lớn nhà thám mà Cái khó toán phân tích số nguyên thừa số nguyên tố đà đảm bảo cho an toàn hệ mà Tuy nhiên chọn số p, q mà n = p.q rơi vào số trường hợp đặc biệt có thuật toán hữu hiệu phân tích n, sau số ví dụ 2.3.1 Phân tích Fermat mở rộng Phân tích Fermat Mệnh đề : Giả sử n số nguyên dương lẻ Khi tồn tương ứng 1-1 cách phân tích n dạng n = a.b, a b > cách biểu diễn n dạng n = t2 s2 , t, s số nguyên không âm Tương ứng cho bởi: t= a−b a+b ,s = , a = t + s, b = t − s 2 35 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn Chøng minh : n = a.b Khi ®ã: a−b a+b ) −( ) n = a.b = ( 2 a+b ab 2 Đặt t = ,s = , ta n = t s 2 Giả sử ta có phân tích Ngược l¹i, cho n = t2 − s2 , ta cã ph©n tÝch n = (t + s)(t − s) Tõ mệnh đề ta có thuật toán Thuật toán : 1.Xét n Kiểm tra Nếu số nguyên bÐ nhÊt lín h¬n hay b»ng √ √ n n n n n có nguyên không? n n nguyên với không nguyên quay lại bước tăng bình phương .NÕu √ √ n − n = m th× chun sang b­íc 3 n = l2 − m2 = (l + m)(l − m) = p.q víi p = l + m, q = l − m, l = √ n VÝ Dơ: Ph©n tÝch sè n = 3228551 Ta cã: Do √ √ n = 3228551 ≈ 1796, 81; n = 1797 √ √ √ n − n = 17972 − 322851 = 158 kh«ng √ tÝnh tiÕp ( √ n + 1)2 − n = tÝnh tiÕp ( √ n + 2)2 − n = l¹i tÝnh tiÕp ( √ n + 3)2 − n = √ 17982 − 3228551 = √ √ √ 17992 3228551 = 18002 3228551 = 4253 không nguyên ta lại số nguyên nên ta 7850 không nguyên ta 11449 = 107 Vậy 3228551 = (1800-107)(1800+107) = 1693.1907 Ph©n tÝch Fermat më réng NÕu ta thấy phân tích Fermat không tìm 36 S hóa Trung tâm Học liệu – Đại học Thái Nguyờn n n số nguyên http://www.Lrc-tnu.edu.vn số bước hữu hạn (đủ lớn), ta tìm n n bội n ta chọn số nguyên k thử liên tiếp ( kn + i)2 − kn (víi i= 0, , ) tìm kết ( kn + i)2 kn số nguyên Ví dụ: Ph©n tÝch sè n = 282133 Ta cã √ n = √ 282133 = 532 NÕu xuÊt ph¸t tõ 532, th× sau √ 6132 − 282133 = √ 82 b­íc ta đến kết 93636 = 306 Từ ®ã suy 282133 = 307.919 √ √ Nh­ng nÕu xất phát từ 3n = 3.282133 = 920 tiến hành thử 920 + i 3.282133 bước đầu với i = ta được: (920 + 0)2 − 3.282133 = Suy 3n = 3.282133 = 9202 − = (920 + 1)(920 − 1) = 921.919 = 3.307.919 VËy n = 282133 = 307.919 (Phân tích Fermat mở rộng cho kết nhanh 919 3.307, hay p kq) Phân tích Fermat dùng sở Nhận xét rằng, không tìm nguyên (hay cho l n = m2 √ n −n = √ l2 − n = m số phương) ta tìm lµ sè l, m l2 ≡ m2 (mod n), ta phân tích n Thật vậy, ta cã (l + m)(l − m).n, th× ta cần tính nên (l m) không chia hÕt cho n (l + m, n), (l − m, n) để tìm ước số n Ví dơ: Ph©n tÝch sè n = 1147 Ta cã ⇒ 682 ≡ 62 (mod 1147) (68 − 6)(68 + 6).1147 Ta tÝnh (68 + 6, 1147) = 37, (68 − 6, 1147) = 31 Nh­ vËy 1147 = 37.31 Câu hỏi: Làm để tìm sè 37 vµ 31? Tøc lµ víi 37 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên n nguyên dương làm http://www.Lrc-tnu.edu.vn tìm số b vµ c cho b2 ≡ c2 (mod n)? Y tưởng để giải vấn đề sau T×m nhiỊu sè bi cho b2 i (mod n) tích luỹ thừa nguyên tố nhỏ, đồng thời tích số b2 i đồng dư với số phương modulo n Để thực việc đó, ta đưa vào định nghĩa sau: Định nghĩa Một sở phân tích tập hợp khác nhau, trõ víi n p1 B = {p1 , p2 , } cã thĨ lµ -1 Mét sè nguyên đà cho) thặng dư tuyệt đối bé tích số thuộc số nguyên tố b gọi B b2 (mod n) số (Đối viÕt nh­ B ThuËt to¸n LÊy mét tËp hợp số nguyên tố làm sở phân tÝch B = {p1 , p2 , } LËp biểu đồ tính ( i, li , phân tích, pi √ n + i)2 − n = c2 víi i = 0, 1, (gåm c¸c cét ) råi sau phân tích theo sở đà chọn (trong bảng số nhị phân cột nằm số sở phân tích số mũ phân tích, rút gọn theo modulo 2) Nếu bước ta không phân tích hoàn toàn (tức phân tích có số nguyên tố nằm sở ) việc bỏ qua vµ thùc hiƯn b­íc tiÕp theo Khi nhËn thÊy cã đủ nhiều số phân tích ta chọn tập số có tích số phương (Tập lấy tập lấy theo bảng nhị phân cuối biểu đồ để lọc tập có tổng cột chẵn Tính b2 c2 (mod n) KiÓm tra b ≡ ±c (mod n) không? Nếu sai n = p.q với p = (b − c, n), q = (b + c, n) .Nếu quay bước 1, mở rộng biểu đồ tìm tập khác Ví dụ: n = 3239 Chọn sở gồm số nguyên tố nhỏ h¬n 12; B = {2, 3, 5, 7, 11} ; √ n = √ 3239 = 56.9 = 57.Ta cã biĨu ®å sau: 38 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn i 57 c2 = ( bi √ n + i)2 ph©n tÝch 11 Ghi chó 10 2.5 1 0 (1 mod2 = 1) 58 125 53 0 0 (3 mod2 = 1) 59 242 2.112 0 0 (2 mod2 = 1) 60 361 361 ph©n tÝch không hoàn toàn 61 482 2.241 phân tích không hoµn toµn Ta cã b2 = 572 582 592 = (57.58.59)2 = 1950542 c2 = 22 54 112 = (2.52 11)2 = 5502 DÔ thÊy 57.58.59 (mod n) = 714 52 11 (mod n) = 550 vµ 714 ≡ 550 (mod n) nên ta có kết quả: p = (714 - 550, n) = 41 ⇒ n = 41.79 VËy n = 41.79 NhËn xÐt: √ n + i)2 − n, i = 0, 1, 2, không đem lại kết ta chun sang tÝnh víi ( 2n + i)2 − 2n, √ i = 0, 1, 2, hc lµ : ( 3n + i)2 − 3n, i = 0, 1, 2, v.v NÕu viÖc triển khai tính toán đại lượng ( Ví dụ: Phân tích số n = 216449 Chọn sở gồm số nguyên tố nhỏ 19; n = 465.2 = 466, k ( √ √ B = {2, 3, 5, 7, 11, 13, 17, 19}; 2n = 657.9 = 658 Ta cã b¶ng: r.n + k)2 − r.n 11 13 19 4662 − n 7.101 phân tích không hoàn toàn 4672 n 23 5.41 phân tích không hoàn toàn 4682 n 52 103 phân tích không hoàn toàn 4692 n 23 439 phân tích không hoàn toàn r =1 ph©n tÝch 4702 − n 4451 ph©n tích không hoàn toàn 39 S húa bi Trung tõm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn 6582 − 2n 2.3.11 1 0 0 6592 2n 3.461 phân tích không hoàn toàn 6602 2n 2.7.193 phân tích không hoàn toàn 6612 2n 33 149 phân tích không hoàn toµn r = 6622 − 2n 2.35 11 1 0 Đến ta thấy có hàng phân tích điều kiện: Ta cã r = (øng víi k = 0, 4)tho¶ m·n b2 = 6582 6622 = (658.662)2 = 4355962 c2 = 22 36 112 = (2.33 11)2 = 5942 DÔ thÊy 658.662 (mod n) = 2698 2.33 11 (mod n) = 594 vµ 2698 ≡ 594 (mod n) nên ta có kết quả: p = gcd(2698 -594, n) = 263 ⇒ n = 263.823 VËy n = 263.823 2.3.2 Phân tích sử dụng liên phân số Thuật toán thứ Xuất phát từ ý tưởng phương pháp Fecmat suy dùng sở với n nguyên dương, cần tìm hai số nguyên định lý (1.3.2.1) Chương I, b vµ c cho b2 ≡ c2 (mod n) Theo ta cã: b2 − nqk = (−1)k+1 Qk+1 k Suy b2 ≡ (−1)k+1 Qk+1 (mod n) k Do đó, tìm b2 c2 (mod n) lớn Qk+1 với số chẵn số phương c2 Khi (bk + c)(bk − c) n Nh­ vËy, c¸c ­íc sè chung d1 = (bk + c, n) vµ d2 = (bk c, n) có nhiều khả ước không tầm thường n ( Cũng xảy trường hợp không phân tích n, sè bk + c, bk − c kh«ng nhÊt thiÕt bé n) Ví dụ 1: Phân tích số n = 5513, n = 74.2 = 74 40 Số hóa Trung tâm Học liệu – Đại học Thỏi Nguyờn http://www.Lrc-tnu.edu.vn Bằng cách sử dụng phân số liên tôc, ta cã: Q1 = 37, Suy Q2 = 1, b1 = 297 2972 − 12 = (297 + 1)(297 − 1) ≡ (mod n) Ta tÝnh (297 − 1, n) = 37; (297 + 1, n) = 149 VËy n = 37.149 VÝ dơ 2: Ph©n tÝch số n = 40003 Ta tính được: Như vậy, b3 Q1 = 3, Q2 = 134, Q3 = 253, Q4 = = 32 ≡ 32 (mod n), ta không thu ước không tầm thường Tính toán tiếp, ta được: Q64 = 81, b63 = 15656849285514685583118479673478 Bằng phương pháp đà mô tả tìm ước 367, 109 VËy n = 367.109 ThuËt to¸n thø hai Theo hệ (1.3.2.1) b2 (mod n) lấy theo thặng dư tuyệt đối bé có giá i trị tuyệt đối bé n Nên khả cã nhiỊu bi cho b2 (mod n) i lµ tích luỹ thừa nguyên tố nhỏ, từ ta có thuật toán: Lấy tập số nguyên tố từ đến 29 làm sở phân tích ( Số -1 tham gia để bao số ©m) LËp biĨu ®å tÝnh: TÝnh Ck = [a0 ; a1 , ] = bi qi vµ tính b2 i phân tích theo sở Khi nhận thấy có đủ nhiều số phân tích ta chọn tập số có tích số phương (tập lấy tập lấy theo bảng nhị phân có tổng cột số nhị phân lµ b»ng theo (mod 2)) TÝnh b2 ≡ c2 (mod n) KiÓm tra NÕu b ≡ ±c (mod n) không? b c (mod n) quay lại bước làm tiếp tìm tập khác NÕu b ≡ ±c (mod n) th× n = q.p víi p = (b + c, n); q = (b − c, n) VÝ dơ: Ph©n tÝch sè n = 68779 Ta biểu diễn phân số liên tơc 41 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn √ 68779= [262, 3, 1, 7, 1, 1, 2, 1, 4, 3, 1, 1, 2, 3, 5, 1, 1, 2, ] Liên phân số Bình phương phân tích 262 135 1.3 787 ≡ 358 2.179 1049 ≡ −63 −1.32 81302 ≡ 281 nguyªn tè 9179 ≡ −234 −1.2.32 13 173092 ≡ 157 nguyªn tè 437972 ≡ −322 −1.2.7.23 611062 ≡ 105 3.5.7 [262]=262 [262,3]=787/3 [262,3,1]=1049/4 [262, 1,7]=8130/31 [262, 7,1]=9179/35 [262, 1,1]=17309/66 262, 1,2]=43797/167 [262, 2,1]=61106/233 Dùa vµo thuật toán ta nhân theo vế hàng (1, 3, 8) ta cã: (262.1049.61106)2 ≡ (1.33 5.7)2 TÝnh to¸n trùc tiÕp ta cã 262.1049.61106 (mod 68779) = 945, 1.33 5.7 (mod 68779) = 945 Nh­ vËy ta l¹i quay lại bước Liên phân số Bình phương phân tÝch 288221 ≡ −138 −1.2.3.23 9257692 ≡ 261 32 29 12139902 ≡ −239 nguyªn tè 21397592 ≡ 182 2.7.13 5493508 ≡ −147 −1.3.72 186202832 ≡ 89 nguyªn tè 985949232 ≡ −282 −1.2.3.47 1172152062 ≡ 225 32 52 [262, 1,4]=288221/1099 [262, 4,3]=925769/3530 [262, 3,1]=1213990/4629 [262, 1,1]=2139759/8159 [262, 1,2]=5493508/20947 [262, 2,3]=18620283/71000 262, 3,5]=98594923/375947 [262, 5,1]=117215206/446947 Và đến ta nhân theo vế hàng (1, 3, 5, 7, 8) cũ hàng (1, 4, 5, 8) bảng ta thu ®­ỵc: (262.1049.9179.43797.61106.288221.2139759.5493508.117215206)2 ≡ (22 36 22 73 13.23)2 (mod n) B©y giê (262.1049.9179.43797.61106.288221.2139759.5493508.117215206)2 ≡ (19654) (mod n), (22 36 22 73 13.23) ≡ (59221) (mod n) 42 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn Nh­ vËy ta cã p = gcd(19654 − 59221, n) = 109 từ suy q = n/109 = 631 2.3.3 Phân tích dùng phương pháp Pollard Giả sử ta cần phân tích số nguyên biÕt) cđa n NÕu (p − 1) n vµ p ước nguyên tố (chưa ước nguyên tố lớn thuật toán sau tỏ hữu hiệu Thuật toán Chọn số k cho chia hết cho tất hầu hết số nguyên nhỏ số B Chẳng hạn, k B!, k bội chung B nhỏ tất số từ đến Chọn số a khoảng từ đến (n 2) Chẳng hạn a = a = 3, số nguyên ngẫu nhiên Tính ak (mod n) (bằng thuật toán bình phương liên tiÕp) TÝnh (ak − 1, n) (b»ng thuËt to¸n Euclid) NÕu d = (ak − 1, n) kh«ng phải ước thực n, ta lặp lại trình với số a khác, k khác (hoặc a k khác) Khả thành công thuật toán: Giả sử k chia hết cho số nguyên dương nhỏ ­íc nguyªn tè cđa n cho (p − 1) thừa số nhỏ định lý Fermat, ak (mod p) để ta không tìm ước thực p tích luỹ thừa nguyên tố bé, B Khi k Do B, lµ béi cđa p|(ak − 1, n), (p 1) nên theo nên khả n lµ ak − ≡ (mod n) VÝ dơ 1: Ph©n tÝch sè n = 199423 Chän B = vµ lÊy k = 9! = 362880, a = ta tìm được: 3362880 mod n 96783 (96783 − 1, n) = 217 Tõ ®ã suy 199423 = 217.919 NhËn xÐt: Thùc chÊt (p − 1) phương pháp Pollard, tìm phần tử đơn vÞ 43 Số hóa Trung tâm Học liệu – Đại học Thái Ngun http://www.Lrc-tnu.edu.vn nhãm nh©n víi sè mũ (Z/pZ) , cách nâng lên luỹ thừa số a cho trước k chọn trước Với ước p (của n) cố định, nhóm (Z/pZ) cố định, nên tất nhóm (khi p chạy hết ước n) có bậc chia hết cho số nguyên tố lớn, luỹ thừa với số mũ lớn số nguyên tố, (p 1) phương pháp Pollard không hiệu Ví dụ 2: Giả sử n = 445201 Khi tìm ước nguyên tố phương pháp trên, chọn Thật n B 173 n theo (quá lớn số cỡ nh­ n) = 347.2831, mµ 347 - = 2.173, 1283 - = 2.641 hai số 173, 641 số nguyên tố Ta lập thủ tục sau để tìm ước số hợp số N restart; with (numtheory); pollard := proc (N, B, M) local i, a, b, k, d, ID; k := B!; randomize(); ID:=1; while true if (ID = 1) then a:= 2; elif (ID = 2) then a:=3; else while true a:= rand(); a:= a mod N; if a> and a< N − then d:= gcd(a,N); if(d > 1) then RETURN(d); else break; end if; end if; end do; end if; 44 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.Lrc-tnu.edu.vn b:= a&∧ k mod N; d:= gcd(b − 1, N ) mod N; if d > then RETURN(d) end if; ID:=ID+1; if ID > M then RETURN(1) end if; end do; end; Bây muốn tìm ước số hợp số N, (p 1) phương pháp Pollard, ta chØ cÇn thùc hiƯn lƯnh: pollard (N, B, M); Trong M số bước lặp Ví dơ 3: T×m mét ­íc sè cđa N víi: N = 12233344445555566666677777788888888999999999123456789 1234567891 pollard (N, 11, 3); Ta cã mét ước 23 .Nếu chọn Nếu B < 11 ta chưa tìm ước N B 11 giá trị khác nhau, ta thêm ước khác N (nếu có) Chẳng hạn, chọn Như nhận xét B = 6661 ước 8885797 (p 1) ước nguyên tố lớn, p ước nguyên tố (ch­a biÕt) cđa N, mỈc dï cì cđa N cã thể lớn đến vài trăm chữ số hệ thập 45 Số hóa Trung tâm Học liệu – Đại hc Thỏi Nguyờn http://www.Lrc-tnu.edu.vn Tài liệu tham khảo [Đ] Phạm Huy Điển : Tính toán, lập trình giảng dạy toán học Maple NXB KH KT Hà nội, 2002 [KĐ] Hà Huy Khoái Phạm Huy Điển : tính toán thực hành Số học thuật toán - Cơ sở lý thuyết NXB ĐHQG Hà nội, 2003 [KĐ] Hà Huy Khoái Phạm Huy Điển : học ứng dụng [K02] N Kobliz Mà hoá thông tin - Cơ sở toán NXB ĐHQG Hà nội, 2004 Number theory and cryptography 46 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên Springer, 2002 http://www.Lrc-tnu.edu.vn ...ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC **************** VŨ THỊ THANH HẬU MỘT SỐ ỨNG DỤNG CỦA SỐ HỌC TRONG LÝ THUYẾT MẬT Mà Chuyên ngành : Phương pháp toán sơ cấp Mã số : 60.46.40... tên RSA Hệ mà RSA thách thức lớn nhà thám mà Mục đích luận văn nhằm trình bày sở việc áp dụng lý thuyết số vào mật mÃ, đặc biệt mà hoá RSA số thuật toán phân tích số nguyên sử dụng thám mà Luận... thông tin Cơ sở ứng dụng lại Số học thuật toán, lĩnh vực nghiên cứu thuật toán Số học Có thể nói, mật mà đà có từ thời cổ đại Người áp dụng mật mà cách có hệ thống để đảm bảo bí mật thông tin quân

Ngày đăng: 07/11/2012, 11:03

Từ khóa liên quan

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

Tài liệu liên quan