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

(Luận văn) một số thuật toán phân tích số nguyên hiện đại và ứng dụng

34 2 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

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THỊ BÌNH lu an n va to p ie gh tn MỘT SỐ THUẬT TỐN PHÂN TÍCH SỐ NGUN HIỆN ĐẠI d oa nl w VÀ ỨNG DỤNG nf va an lu lm ul z at nh oi LUẬN VĂN THẠC SĨ TOÁN HỌC z m co l gm @ an Lu THÁI NGUYÊN - 2017 n va ac th si ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC NGUYỄN THỊ BÌNH lu MỘT SỐ THUẬT TỐN an n va PHÂN TÍCH SỐ NGUYÊN HIỆN ĐẠI to p ie gh tn VÀ ỨNG DỤNG nl w d oa LUẬN VĂN THẠC SĨ TOÁN HỌC an lu nf va Chuyên ngành: Phương pháp Toán sơ cấp 60 46 01 13 z at nh oi lm ul Mã số: z NGƯỜI HƯỚNG DẪN KHOA HỌC @ m co l gm GS.TSKH HÀ HUY KHOÁI an Lu n va THÁI NGUYÊN - 2017 ac th si Mục lục MỞ ĐẦU Chương Thám mã số thuật tốn phân tích số ngun cổ điển lu Danh sách kí hiệu an n va Thám mã phân tích số nguyên 1.2 Phân tích Fermat 12 Phân tích Pollard p − 17 gh tn to 1.1 p ie 1.3 20 oa nl w Chương Một số thuật tốn đại phân tích số ngun Sự kiểm tra ước 20 2.2 Thuật tốn phân tích ρ Pollard 2.3 Phương pháp phân tích Brent 2.4 Phương pháp phân tích dùng đường cong elliptic 26 2.5 Phương pháp phân tích sàng trường số 28 2.6 Khả phân tích số “chip” chuyên dụng 30 d 2.1 lu nf va an 21 24 z at nh oi lm ul z 32 TÀI LIỆU THAM KHẢO l gm @ KẾT LUẬN VÀ KIẾN NGHỊ 33 m co an Lu n va ac th si Lời cảm ơn Luận văn thực Trường Đại học Khoa học - Đại học Thái Nguyên hoàn thành với hướng dẫn GS.TSKH Hà Huy Khoái (Trường Đại học Thăng Long, Hà Nội) Tác giả xin bày tỏ lòng biết ơn lu an chân thành sâu sắc tới người hướng dẫn khoa học dành nhiều n va công sức hướng dẫn để tác giả hoàn thành luận văn gh tn to Tác giả xin trân trọng cảm ơn Ban Giám hiệu Trường Đại học Khoa học - Đại học Thái Nguyên, Ban Chủ nhiệm Khoa Toán-Tin, giảng viên ie p tham gia giảng dạy, tạo điều kiện tốt để tác giả học tập oa nl w nghiên cứu d Tác giả muốn gửi lời cảm ơn tốt đẹp tới tập thể Lớp B, cao lu suốt trình học tập nf va an học Tốn khóa (2015-2017) động viên giúp đỡ tác giả nhiều lm ul Nhân dịp này, tác giả xin chân thành cảm ơn Sở Giáo dục Đào z at nh oi tạo Hải Phòng, Ban Giám hiệu đồng nghiệp Trường THPT Nguyễn Đức Cảnh, Huyện Kiến Thụy, Thành phố Hải Phòng tạo điều kiện cho tác z giả hoàn thành tốt nhiệm vụ học tập cơng tác gm @ co l Cuối cùng, tác giả muốn dành lời cảm ơn đặc biệt đến bố mẹ đại gia đình ln động viên chia sẻ khó khăn để tác giả hồn m an Lu thành tốt luận văn n va ac th si Danh sách kí hiệu lu an n va vành số nguyên Q trường số hữu tỷ Fp trường có p phần tử K[X] vành đa thức với hệ số trường K dxe trần số x deg P(X) bậc đa thức P(X) ie gh tn to Z modulo p p mod p ước chung lớn P(X) Q(X) hàm số mũ d oa exp(·) nl w gcd(P(X), Q(X)) sàn số N lm ul trường mở rộng trường F z at nh oi F[α] a ước b nf va bNc an a|b ước chung lớn a b lu gcd(a, b) z m co l gm @ an Lu n va ac th si Mở đầu Trước năm 70 kỷ XX, Số học thường xem ngành tốn học t, có ý nghĩa lý thuyết Đối tượng nghiên cứu Số học quy luật tập hợp số nguyên; giả lu an thuyết lớn tồn Số học thường giả thuyết số nguyên tố va n Thậm chí, có nhà tốn học cho rằng, vẻ đẹp số học có nhờ tn to xa rời thực tiễn ie gh p Ngày nay, ứng dụng lớn lao bất ngờ Số học vào mật mã oa nl w cho ta thấy quan niệm hoàn toàn thay đổi Vẻ đẹp Số học d ý nghĩa “thuần tuý” nó, mà lu nf va an ứ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ố học lại làm nên lm ul cách mạng bảo mật thông tin Lý thuyết mật mã Cơ sở z at nh oi ứng dụng Số học thuật tốn, lĩnh vực nghiên cứu thuật toán Số học Trong lĩnh vực Lý thuyết mật mã, mật mã khóa z gm @ công khai dạng mật mã cho phép người sử dụng trao đổi thông tin mật mà khơng cần phải trao đổi khóa chung bí mật trước Điều l m co thực cách sử dụng cặp khóa có quan hệ tốn học an Lu với khóa cơng khai khóa cá nhân (hay khóa bí mật) Cơ sở toán học vấn đề việc phân tích số tự nhiên số vấn đề liên n va ac th si quan đến chúng Luận văn có mục đích tìm hiểu sơ lược sở toán học Lý thuyết mật mã, đồng thời phân tích sâu thuật tốn phân tích số tự nhiên để làm sở tốn học cho ứng dụng Ngoài phần Mở đầu, Kết luận, Tài liệu tham khảo, nội dung luận văn trình bày hai chương: lu • Chương Thám mã số thuật toán cổ điển phân tích số nguyên an n va Trong chương chúng tơi trình bày kiến thức sở thám mã so sánh phát triển cho chương p ie gh tn to sau số thuật tốn cổ điển phân tích số ngun, làm sở w • Chương Một số thuật tốn đại phân tích số ngun Đây nội oa nl dung luận văn Chúng tơi trình bày số thuật tốn d đại phân tích số ngun thuật tốn phân tích Pollard, phân tích lu nf va an dùng đường cong elliptic sàng trường số z at nh oi lm ul Thái Nguyên, ngày 10 tháng năm 2017 Tác giả z m co l gm @ an Lu Nguyễn Thị Bình n va ac th si Chương Thám mã số thuật tốn cổ điển phân tích số nguyên lu an va n 1.1 Thám mã phân tích số nguyên gh tn to p ie Phần em trình bày thám mã Thám mã vấn đề phức tạp w nên luận văn em xin phép đề cập vấn đề đơn giản d oa nl Phần đầu trình bày chúng tơi dựa vào [2] an lu Thám mã (hay phân tích mã - cryptanalysis) việc nghiên cứu nf va phương pháp “phá vỡ” ngụy trang văn (do việc mã hóa tạo z at nh oi lm ul nên) để hiểu nội dung văn Hiện nay, quan điểm thám mã, người ta phân hệ mã thành ba loại: z co l gm @ • Loại bị phá; • Loại chưa nghiên cứu phân tích (vì cịn mới, chưa m an Lu dùng rộng rãi); n va ac th si • Loại nghiên cứu chưa bị phá (RSA, IDEA, hệ mã sử dụng logarit rời rạc, đường cong elliptic, ) Có ba cách thơng dụng việc chuyển hóa văn mã thành văn gốc: • Ăn trộm, hối lộ, mua (với giá cao) để có chìa khóa; • Khai thác tính cẩu thả lỏng lẻo người dùng khóa (ví dụ : có lu an người hay dùng tên người thân để làm mật chìa khóa); n va gh tn to • Phân tích mã (tức thám mã) p ie Bây giờ, ta thảo luận số phương pháp thám mã Thực tế, thám nl w mã phức tạp người ta hệ mật mã sử dụng d oa giả sử người thám mã biết rõ hệ mật mã sử dụng tiến nf va mật an lu hành phân tích mã Mục đích thiết kế hệ mật mã an toàn bảo lm ul Dưới ta liệt kê loại công vào hệ mật mã Mức độ công z at nh oi phụ thuộc vào hiểu biết người thám mã hệ mật mã sử dụng : z @ tin mã hóa m co l gm • Tấn công biết mã (ciphertext-only): người thám mã có tin rõ mã an Lu • Tấn công biết tin rõ (known plaintext): người thám mã có n va ac th si 10 • Tấn công chọn tin rõ (chosen plaintext): người thám mã tạm thời có quyền truy xuất tới mã hóa, người thám mã có khả chọn tin rõ xây dựng mã tương ứng • Tấn công chọn mã (chosen ciphertext): người thám mã tạm thời có quyền truy xuất tới giải mã, có khả chọn mã xây dựng lại tin rõ tương ứng lu Bây ta liệt kê phương pháp thám mã an va n Thám mã tích cực việc thám mã sau tìm cách làm sai lạc to thám mã p ie gh tn liệu truyền, nhận liệu lưu trữ phục vụ mục đích người oa nl w Thám mã thụ động việc thám mã để có thơng tin tin rõ phục vụ mục đích người thám mã d an lu nf va Thám mã affine Trong mật mã affine, bảng chữ thơng lm ul điệp cần mã hóa có kích thước m chuyển thành số tự nhiên từ 0, , m − Sau dùng hàm modulo để mã hóa z at nh oi chuyển thành mã Hàm mã hóa cho ký tự sau: z e(x) = (ax + b) (mod m) gm @ an Lu Giả sử Trudy lấy mã sau đây: m chọn cho a m nguyên tố co l với m kích thước bảng chữ cái, a b khóa mã Giá trị a n va ac th si 20 Chương Một số thuật toán đại phân tích số nguyên lu an va Trong Chương này, chúng tơi thảo luận số thuật tốn n Sự kiểm tra ước oa nl w 2.1 p ie gh tn to đại phân tích số nguyên d Sự kiểm tra ước thuật toán đơn giản để phân tích số nguyên Giả an lu sử s t nhân tử không tầm thường N cho st = N nf va z at nh oi lm ul s ≤ t Để thực thuật toán kiểm tra ước, cách đơn giản kiểm tra √  xem s | N với s = 2, , N Khi nhân tử s tìm thấy t = N/s nhân tử, phép phân tích tìm thấy cho N Ràng buộc s ≤ bNc cung cấp định lí sau đây: z @ m co l gm Định lí 2.1.1 Nếu N có nhân tử không tầm thường s, t với st = N s ≤ t, √ s ≤ N an Lu Chứng minh Do s nhân tử N nên ta có s > N Khi t ≥ s > √ N, n va ac th si 21 st > N, mà điều lại mâu thuẫn với giả thiết st = N Do s ≤ N Thuật toán sau function trialDivision(N) for s from to floor(sqrt(N)) if s divides N then lu return s, N/s an end if n va tn to end for p ie gh end function w Nếu thuật tốn cho hợp số N, đưa cặp nhân tử không tầm d oa nl thường s, t với s ≤ t Phát biểu s | N tương đương với s ≡ (mod N) an lu Thuật tốn phân tích ρ Pollard nf va 2.2 lm ul Phương pháp phân tích ρ Pollard phương pháp xác suất để phân z at nh oi tích hợp số N phép lặp modulo đa thức N Phương pháp công bố J.M Pollard năm 1975 Giả sử xây dựng dãy z xn+1 ≡ xn2 + (mod n) m co l gm @ x0 ≡ (mod n), an Lu Dãy dãy tuần hồn kể từ số Có thể chứng minh độ dài chu trình nhỏ N phương pháp phản chứng: n va ac th si 22 Giả sử độ dài chu trình L lớn N, nhiên ta có N giá trị phân biệt xn chu trình có độ dài L > N, phải tồn hai giá trị xn đồng dư nhau, chúng xác định “các điểm xuất phát” chu trình có độ dài nhỏ N Các lập luận xác suất chứng tỏ thời gian dự kiến để dãy theo mod n rơi vào √ chu trình độ dài dự kiến chu trình tỷ lệ với N, với hầu hết N (xem Weisstein E.W [6]) Các giá trị ban đầu hàm lặp thường dùng khác nhau, hàm f (n) = xn2 + cho thấy làm việc tốt thực tế lu an tốn phân tích số ngun n va tn to Giả sử s t nhân tử không tầm thường N thỏa mãn ie gh st = N s ≤ t Bây giả sử ta tìm số ngun khơng p âm i j với i < j cho xi ≡ x j (mod s) xi 6≡ x j (mod n) Do nl w s | (xi − x j ) s | N, ta có s | gcd(xi − x j , N) Bởi giả thiết s ≥ 2, ta có d oa gcd(xi −x j, N) ≥ Bởi định nghĩa, ta có gcd(xi −x j , N) | N Ngoài ra, ta có nf va an lu N | (xi − x j ) N | gcd(xi − x j , N) Chúng ta có N | gcd(xi − x j , N), gcd(xi − x j , N) > gcd(xi − x j , N) | N Như vậy, gcd(xi − x j , N) lm ul nhân tử không tầm thường N z at nh oi Bây ta phải tìm i, j cho xi ≡ x j (mod s) xi 6≡ x j (mod n) Nhận thấy dãy xn (mod s) tuần hồn với độ dài chu trình z gm @ tỷ lệ với s Pollard đề xuất xn so sánh với x2n , với n = 1, 2, 3, co l Với n, ta kiểm tra xem d(xn − x2n , N) có nhân tử không tầm thường N hay khơng, ta lặp lại q trình nhân tử m an Lu tìm thấy Nếu khơng có nhân tử tìm thấy, thuật tốn khơng chấm n va ac th si 23 dứt Thuật toán function pollardRho(N) # Initial values x(i) and x(2*i) for i = xi := x2i := lu an # Find x(i+1) and x(2*(i+1)) va n xiPrime := xi ^ + tn to x2iPrime := (x2i ^ + 1) ^ + gh p ie # Increment i: change our running values for x(i), x(2*i) d oa nl w xi := xiPrime % N an lu x2i := x2iPrime % N nf va s := gcd(xi - x2i, N) lm ul if s and s N then end if co l gm @ end function z end z at nh oi return s, N/s m a % m tốn tử modulo, cho ta số nguyên không âm nhỏ an Lu cho ab ≡ y (mod m) n va ac th si 24 2.3 Phương pháp phân tích Brent Phương pháp phân tích Brent cải thiện thuật tốn ρ Pollard, công bố R Brent năm 1980 (xem Weisstein E.W [7]) Trong thuật toán ρ Pollard, cố gắng để tìm thấy nhân tử khơng tầm thường s N cách tìm số i, j với i < j cho xi ≡ x j (mod s) xi 6≡ x j (mod n) Dãy xn định nghĩa quan hệ truy hồi lu x0 ≡ (mod N) an n va xn+1 ≡ xn2 + (mod N) tn to gh Pollard gợi ý xn so sánh với x2n n = 1, 2, 3, Brent p ie cải thiện phương pháp Pollard cách so sánh xn với xm , oa nl w m lũy thừa nguyên nhỏ n d Thuật toán nf va an lu function brentFactor(N) lm ul # Initial values x(i) and x(m) for i = xm := z at nh oi xi := z gm @ for i from to infinity # Find x(i) from x(i-1) m an Lu if s and s N then co s := gcd(xi - xm, N) l xi := (xi ^ + 1) % N n va ac th si 25 return s, N/s end if if integralPowerOf2(i) then xm := xi end if end end function lu an hàm integralPowerOf2(z) z lũy thừa nguyên va sai ngược lại Việc triển khai hiệu cho hàm n gh tn to thực cách kiểm tra lũy thừa p ie lũy thừa vượt z oa nl w function integralPowerOf2(z) d pow2 := lu nf va an while pow2 10110 , ước bé có 48 chữ số (chính số hay dùng RSA nay) Các bước chuẩn bị cho thực thuật toán sau lu an • Lấy số tự nhiên d ≈ q log(n) log log(n) √ m = b d nc va n • Khai triển số n theo số m, tn to ≤ < m p ie gh n = md + ad−1 md−1 + · · · + a0 oa nl w • Đa thức tương ứng với khai triển d f (x) = xd + ad−1 xd−1 + · · · + a0 nf va an lu • Lấy α nghiệm đa thức nêu xét trường mở rộng Q[α] lm ul z at nh oi Để cho dễ hình dung quy trình thực thuật tốn, ta xét ví dụ cụ thể phân tích số n = 2501 Ta có d = 2, z j√ k m= 2501 = 50 m co l log(2501) ≈ 1.950217066, log log(2501) gm @ s an Lu Do 2501 = 502 + 1, nên ta có đa thức tương ứng f (x) = x2 + Đa thức n va có nghiệm i ta xem xét trường mở rộng trường Q[i] ac th si 29 Ta để ý vành Z/2510Z phần tử 50 có vai trị giống i, 502 ≡ −1 mod 2501 Điều đưa ta đến việc thiết lập ánh xạ h : Z[i] → Z, từ tập số nguyên đại số Z[i] vào tập số nguyên thông thường, theo công thức h(a + bi) = a + b · 50, ta có đẳng thức sau h(αβ ) ≡ h(α)h(β ) mod 2501 với α, β ∈ Z[i] Nhắc lại ta gọi số nguyên mịn (hay “vụn”) phân tích thành tích số nguyên tố nhỏ Mục tiêu trước mắt lu an tìm số nguyên đại số mịn Z[i], mà ảnh (trong va n phép ánh xạ h) mịn Z (nói chung, việc tìm số gh tn to vơ khó khăn ta hiểu RSA xem p ie có độ an tồn cao) nl w Ta ký hiệu số αi , ta muốn tìm tập d oa chúng, mà ta đánh số α1 , α2 , · · · , αr , cho tích chúng số nf va an lu “chính phương” Z[i] (nghĩa là, α1 α2 · · · αr = β ∈ Z[i]), cịn tích ảnh chúng lại số phương thơng thường, tức lm ul h(α1 )h(α2 ) · · · h(αr ) = t ∈ Z z at nh oi Nếu có số này, ta phân tích số n theo nhận xét sau z Do @ l gm [h(β )]2 = h(β )h(β ) = h(β ) = h(α1 α2 · · · αr ) = h(α1 )h(α2 ) · · · h(αr ) = t m co ˆ ) tˆ nên sau rút gọn h(β ) t theo modulo n ta hai số h(β   ˆ ) ≡ tˆ2 h(β mod n an Lu thoả mãn đẳng thức (2.1) n va ac th si 30 suy   ˆ ) − tˆ h(β ˆ ) + tˆ ≡ h(β (2.2) mod n ˆ ) không đồng dư với ±tˆ theo modulo n, từ đẳng thức ta Nếu h(β suy thừa số vế trái chứa ước số n, hay nói cách khác  ˆ ) − tˆ, n cho ta ước (không tầm thường) số n gcd h(β Tóm lại, tốn trở thành việc tìm số nguyên đại số α1 , α2 , · · · , αr cho biểu thức (2.1) thoả mãn lu an n va 2.6 Khả phân tích số “chip” chuyên dụng tn to p ie gh Như nêu, phương pháp xem hiệu w tốn phân tích số lớn thuật tốn sử dụng sàng trường số Chính oa nl phương pháp mà gần (năm 1999) người ta phân tích hợp d số với độ dài kỷ lục 155 chữ số thập phân (512 bit nhị phân), lu nf va an nhiều tháng rịng với số lượng máy tính khổng lồ Cho nên hệ mã RSA chuẩn mực, với độ dài chìa khoá 1024 bit nhị phân (khoảng 308 chữ lm ul số thập phân), người ta xem an toàn tuyệt đối vòng 15-20 z at nh oi năm z Thế gần (khoảng tháng 2/2003) Adi Shamir (một ba @ l gm đồng tác giả công bố phát minh hệ mã RSA) tuyên bố ơng cộng phịng Tin học Toán ứng dụng Viện nghiên co m cứu khoa học Weizmann (Israel) thiết kế “con chip đặc thù” cho việc an Lu phân tích số thừa số nguyên tố, có sức mạnh phi thường có n va ac th si 31 khả bẻ hệ mã RSA chuẩn Một công cụ “đặc chủng” kiểu biết đến trước đây, hệ thống quang điện tử TWINKLE, sử dụng thành phần đắt tiền khó chế tạo Hệ thống Shamir đồng nghiệp, gọi tắt TWIRL, có nhiều điểm giống với TWINKLE, không chứa thành phần quang học đắt tiền, khó kiếm mà thiết lập dựa công nghệ VLSI (Very large scale integration - Tích hợp quy mơ lớn) phổ biến Về chất hệ thống tích hợp lượng khổng lồ vi xử lý chạy lu an tần số 1GHz n va tn to Cho tới lúc này, “con chip đặc thù” TWIRL nằm sơ đồ, ie gh chưa triển khai thực tế, số đánh giá sơ cho thấy: p để phân tích số có độ dài 512 bit nhị phân (như nói trên) cần nl w máy tính chuyên dụng (thiết lập sở chip TWIRL) trị giá d oa khoảng 10 ngàn USD, làm việc vịng 10 phút Nếu nhớ cơng nf va an lu việc đòi hỏi hàng ngàn máy tính mạnh làm việc nhiều tháng rịng rã, ta thấy sức mạnh chip chuyên dụng Tuy nhiên, lm ul theo đánh giá này, muốn phân tích số có độ dài gấp đơi z at nh oi thế, tức khoảng 1024 bit nhị phân (như chìa khố thơng thường hệ mã RSA chuẩn nay), phải cần tới máy chuyên dụng trị giá z khoảng 10 triệu USD, làm việc liên tục thời gian năm Như vậy, giả gm @ sử theo đà mà tiếp tục được, để bẻ hệ mã RSA với độ l an Lu tỷ USD, làm việc liên tục 52560 năm! m co dài khoá 2048 bit nhị phân phải cần tới máy tính chuyên dụng trị giá 10 n va ac th si 32 Kết luận kiến nghị Luận văn “Một số thuật tốn phân tích số ngun đại ứng dụng” đạt kết sau: lu an Trình bày đại cương thám mã số thuật tốn phân tích số va n ngun cổ điển ie gh tn to Trình bày số thuật tốn phân tích số ngun đại, bao p gồm phân tích ρ Pollard, phân tích Brent, phân tích dùng đường nl w cong elliptic, phân tích sàng trường số, khả phân tích số d oa “chip” chuyên dụng nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si 33 Tài liệu tham khảo Tiếng Việt [1] Hà Huy Khối, Phạm Huy Điển (1997), Nhập mơn Số học thuật toán, lu an NXB Khoa học kỹ thuật n va học Quốc gia Hà Nội p ie gh tn to [2] Hà Huy Khoái, Phạm Huy Điển (2004), Mã hóa thơng tin, NXB Đại d oa nl w Tiếng Anh lu nf va an [3] C Barnes (2004), Integer Factorization Algorithms, Lecture Notes, Department of Physic, Oregon State University lm ul [4] Jr.H.W Lenstra, R Tijdeman (eds) (1983), Computational Methods z at nh oi in Number Theory, Mathematical Centre Tracts, vol 154/155, Mathematisch Centrum, Amsterdam z @ l gm [5] E.W Weisstein, “Pierre de Fermat”, From MathWorld, an on- an Lu com/biography/Fermat.html m co line encyclopedia Available: http://scienceworld.wolfram n va ac th si 34 [6] E.W Weisstein, “Pollard Rho Factorization.” From MathWorld, an online encyclopedia December 28, 2002 Available: http:// mathworld.wolfram.com/PollardRhoFactorizationMethod html [7] E.W Weisstein, “Brent’s Factorization Method.” From MathWorld, an online encyclopedia December 28, 2002 Available: http:// mathworld.wolfram.com/BrentsFactorizationMethod.html lu an [8] E.W Weisstein, “Pollard Rho Factorization.” From MathWorld, va n an online encyclopedia December 28, 2002 Available: http:// to html p ie gh tn mathworld.wolfram.com/Pollardp-1FactorizationMethod d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si

Ngày đăng: 21/07/2023, 09:00

Xem thêm:

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

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

TÀI LIỆU LIÊN QUAN

w