Hệ mật mã khóa công khai

29 0 0
Hệ mật mã khóa công khai

Đ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

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA VIỄN THÔNG I BÁO CÁO TIỂU LUẬN MÔN HỌC: AN NINH MẠNG THƠNG TIN ĐỀ TÀI: HỆ MẬT MÃ KHĨA CƠNG KHAI Bài tập tiểu luận mơn ANM PHÂN CHIA CƠNG VIỆC Sinh Viên Nội dung phụ trách - Đặt vấn đề hệ mật mã khóa cơng khai Ứng dụng mật mã khóa cơng khai cơng nghệ Blockchain - Khái niệm, đặc điểm hệ mật mã khóa cơng khai Ngun lí hoạt động hệ mật mã khóa cơng khai - Mật mã khóa cơng khai RSA Bài tập tiểu luận môn ANM LỜI MỞ ĐẦU Hệ mật mã khóa cơng khai đóng vai trị quan trọng có tính ứng dụng cao, đặc biệt lĩnh vực bảo mật Những nhà phát triển nhiều thời gian để thiết kế mật mã khóa mới, mật mã cũ nhanh chóng bị giải mã kĩ thuật nhờ phát triến nhanh vũ bão công nghệ, công cụ đời Hiểu thuộc tính cách thức hoạt động mật mã khóa cơng khai nói chung việc cần thiết kĩ sư viễn thông công nghệ thông tin để bảo vệ thông tin cá nhân người dùng thời đại liệu xem tài sản chủ chốt Nắm cần thiết đó, nhóm chúng em định chọn đề tài “Hệ mật mã khóa cơng khai” để tìm hiểu đưa khái niệm, vấn đề phổ biến hệ mật mã khóa cơng khai thực tế Mục đích tiểu luận nhằm tìm hiểu nghiên cứu tổng quan hệ mật mã khóa cơng khai Phạm vi nghiên cứu tập chung vào ba phần Thứ định nghĩa, đặc điểm yêu cầu hệ mật mã khóa cơng khai; thứ hai nhóm đưa mật mã khóa cơng khai cụ thể để làm rõ thông tin tổng quan phần thứ nhất, mật mã khóa cơng khai RSA Cuối cùng, ứng dụng mật mã khóa cơng khai RSA ứng dụng trọng Blockchain Phương pháp cách giải vấn đề Hệ mật mã khóa cơng khai: đề tài phổ biến, nhóm em tham khảo tài liệu slide giảng thầy Hoàng Trọng Minh, đồng thời kết hợp giáo trình An ninh mạng viễn thơng số tài liệu khác internet để tổng hợp đưa lí thuyết dễ hiểu hệ mật mã khóa cơng khai, RSA ứng dụng Ứng dụng: phần ứng dụng mật mã khóa cơng khai RSA chủ yếu liên quan đến việc lập trình nên chúng em sử dụng ngơn ngữ lập trình Python để mô ứng dụng mật mã với hệ điều hành mã nguồn mở Ubuntu Bài tập tiểu luận môn ANM MỤC LỤC LỜI MỞ ĐẦU DANH MỤC THUẬT NGỮ VIẾT TẮT DANH MỤC HÌNH ẢNH .6 Tổng quan hệ mật mã khóa cơng khai .7 1.1 Đặt vấn đề .7 1.2 Khái niệm mã khóa cơng khai 1.3 Đặc điểm hệ mật mã khóa cơng khai Nguyên lí hoạt động hệ mật mã khóa cơng khai .10 2.1 Hệ mật mã khóa cơng khai 10 2.2 Mô hình bảo vệ thơng tin mật mã khóa cơng khai .12 2.3 Trao đổi khóa công khai 14 2.4 Các yêu cầu đổi với mật mã hóa cơng khai 16 Mật mã khóa cơng khai RSA 16 3.1 Giới thiệu chung 16 3.2 Mã hóa 18 3.3 Giải mã 18 3.4 Sinh khóa (Key generation) 18 3.5 Sample code 19 3.6 Tính bảo mật 21 3.7 Tốc độ 21 Ứng dụng hệ mật mã khóa cơng khai Blockchain 21 4.1 Đặt vấn đề 21 4.2 Blockchain Bitcoin 22 4.3 Quy trình trao đổi Bitcoin sử dụng hệ mật mã khóa cơng khai 22 4.4 Thực demo Blockchain sử dụng ngôn ngữ lập trình Python 23 4.4.1 Các tính .23 4.4.2 Triển khai đánh giá kết 23 KẾT LUẬN 28 DANH MỤC THAM KHẢO 29 Bài tập tiểu luận môn ANM DANH MỤC THUẬT NGỮ VIẾT TẮT Viết tắt Dạng đầy đủ Ý nghĩa CA Certificate Authority Trung tâm chứng thực CPU Central Processing Unit Bộ xử lý trung tâm DES Data Encryption Standard Tiêu chuẩn mã hóa liệu Elliptic Curve Digital Signature Algorithm Thuật tốn chữ kí số dựa đường cong Elliptic Hypertext Transfer Protocol Giao thức truyền tải siêu văn Massachusetts Institute of Technology Học viện Cơng nghệ Massachusetts Personal Computer Máy tính cá nhân PKC Public Key Cryptography Mật mã hóa cơng khai SKC Symmetric Key Cryptosystems Hệ mật mã khóa đối xứng ECDSA HTTP MIT PC Bài tập tiểu luận môn ANM DANH MỤC HÌNH ẢNH Hình 1: Mật mã hóa đối xứng Hình 2: Minh họa việc mã hóa giải mã hệ mật mã hóa cơng khai .8 Hình 3: Q trình mã hóa giải mã 10 Hình 4: Sơ đồ mã hóa 11 Hình 5: Sơ đồ chứng thực 11 Hình 6: Mơ hình đảm bảo bí mật 12 Hình 7: Mơ hình chứng thực 13 Hình 8: Mơ hình kết hợp .14 Hình 9: Trao đổi khóa người dùng 14 Hình 10: Trao đổi khóa cơng khai dùng CA 15 Hình 11: Các bước mã hóa A B với khóa phiên .16 Hình 12: Bài toán Double-Spending .21 Hình 13: Quá trình xác thực giao dịch Blockchain 23 Hình 14: Mở hai bảng điều khiển Blockchain client Blockchain node 24 Hình 15: Khởi tạo ví cho Alice .24 Hình 16: Khởi tạo ví cho Bob .24 Hình 17: Alice thực giao dịch với Bob 25 Hình 18: Khởi tạo giao dịch thành cơng 26 Hình 19: Giao dịch Alice gửi đến node chuỗi chờ xác thực .26 Hình 20: Giao dịch thêm vào Blockchain 27 Bài tập tiểu luận môn ANM Tổng quan hệ mật mã khóa cơng khai 1.1 Đặt vấn đề Hệ mật mã khóa cơng khai đời phát triển hệ mật mã khóa đối xứng (Symmetric Key Cryptosystems hay SKC) thời cịn nhiều nhược điểm tồn Hình 1: Mật mã hóa đối xứng Đầu tiên, vấn đề quản lí khóa (tạo, lưu trao đổi) khó khăn phức tạp thực sử dụng trao đổi liệu trường có nhiều người sử dụng [5] Giả sử, số người sử dụng n số lượng khóa cần khởi tạo n(n-1)/2 Mỗi người dùng cần phải khởi tạo lưu trữ (n-1) khóa bí mật để trao đổi, gửi thông tin với (n-1) người sử dụng khác mạng Điều đặt nhiều thách thức, khó khăn rủi ro bảo mật lớn giá trị n tăng lớn – đặc biệt thời đại số lượng người, thiết bị sử dụng Internet bùng nổ [1] Kế tiếp, sở mật mã đối xứng, ta thiết lập giải khái niệm chữ ký điện tử (mà thể chức chữ ký tay thực tế) khơng có dịch vụ non-repudiation (khơng thể phủ nhận được) cho giao dịch thương mại điện tử, văn bản, hóa đơn chứng từ gia tăng mạng Trong đó, đặc điểm non-repudiation (khơng thể phủ nhận được) đảm bảo cho trình giao dịch Alice (A) Bob (B) trường hợp bên có chứng để chứng minh trường hợp phía bên chối bỏ giao dịch đó, ví dụ A chối khơng thực giao dịch X với B việc lấy cớ có kẻ mạo nhận A để trao đổi với B Thêm vào đó, hệ mật mã khóa đối xứng, thơng tin riêng tư chia sẻ chung hai bên Alice Bob, Alice làm mà Bob làm ngược lại Giải pháp cho vấn đề phải có thêm thành phần thứ ba hay trung gian giao dịch Alice Bob, tức người có thẩm quyền (trusted authority) mà Alice Bob tin cậy trung thực Người đứng trung gian xử lí trường hợp xảy khúc mắc hay tranh cãi hai bên Bài tập tiểu luận môn ANM gửi nhận Người làm chứng, đánh giá định trường hợp xảy tranh cãi, khúc mắc hai bên gửi, nhận Alice Bob Tuy nhiên công việc người trung gian nặng phải tham gia vào tất giao dịch bên – số lượng lớn, kéo dài dẫn đến tình trạng q tải hay nghẽn cổ chai Từ dẫn đến q trình truyền tin có độ trễ lớn Nhận thức vấn đề trên, nghiên cứu tiếng mình, hai tác giả Diffie Hellman đề xuất ý tưởng hệ mật mã với nguyên tắc riêng biệt, xây dựng xung quanh người sử dụng – cân nhắc xoay quanh cặp người sử dụng toán kênh truyền tin mật truyền thống Và hệ thống gọi “hệ mật mã khóa cơng khai” Bài báo cơng bố mang tiêu đề “New Directions in Cryptography” [2] Whitfield Diffie Martin Hellman năm 1976 làm thay đổi cách hệ mật mã hoạt động Hệ mật mã khóa cơng khai hệ thống mã hóa bất đối xứng, nêu phương pháp trao đổi khóa cơng khai, giải hạn chế mật mã khóa đối xứng đề cập Khác với mã đối xứng, mã hóa khóa bất đối xứng sử dụng cặp khóa: khóa cơng khai (public key) khóa bí mật (private key) Hai khóa xây dựng cho từ khóa, khó có cách sinh khóa cịn lại Một khóa dành để mã hóa, khóa cịn lại dùng để giải mã Chỉ có người sở hữu nắm khóa bí mật khóa cơng khai phổ biến rộng rãi Hình vẽ sau minh họa việc mã hóa giải mã: Hình 2: Minh họa việc mã hóa giải mã hệ mật mã hóa cơng khai 1.2 Khái niệm mã khóa cơng khai Đối với hệ mật mã khóa bí mật u cầu phải có thơng tin trước khóa K A B qua kênh an toàn trước gửi mã Yêu cầu khó đáp ứng A B cách xa gây khó khăn cho triển khai thực tế Ý tưởng hệ mật mã khóa cơng khai tìm hệ mật mã khơng có khả tính tốn để xác định dk biết ek Nếu quy tắc mã ek cơng khai Ưu điểm hệ mật khóa công khai A gửi tin mã hóa Bài tập tiểu luận mơn ANM cho B mà khơng cần thơng tin trước khóa cách dùng luật mã công khai ek B người giải mã cách sử dụng luật giải mã bí mật dk Về ngun tắc, hệ mật khóa cơng khai khơng đảm bảo độ bảo mật tuyệt đối Vì nghiên cứu, kẻ thám mã mã rõ luật mã cơng khai ek tìm rõ x đảm bảo y = ek(x) Khi nghiên cứu hệ mật khóa cơng khai ta cần quan tâm đến khái niệm hàm cửa sổ sập chiều: Hàm mã hóa cơng khai ek B phải hàm dễ tính tốn việc tính hàm ngược lại phải khó khăn (đối với khơng phải B) Đặc tính dễ tính tốn khó tính ngược gọi đặc tính chiều Vì cần thiết ek hàm chiều điều đảm bảo cho dk ln giữ tính bí mật Để xây dựng hệ mật khóa cơng khai việc tìm hàm chiều chưa đủ B phải có cửa sập chứa thơng tin bí mật cho phép dễ dàng tìm ek Vì hàm coi cửa sập chiều trở nên dễ tính ngược biết cửa sập định 1.3 Đặc điểm hệ mật mã khóa cơng khai Mật mã hóa cơng khai dựa dựa sở hàm tốn học khơng phải dựa phép thay đổi chỗ phương pháp mã hóa đối xứng Mật mã hóa cơng khai bất đối xứng, chế hoạt động giải thuật mật mã hóa cơng khai sử dụng hai khóa: khóa bí mật khóa cơng khai Một khóa để mật hóa khoa dùng cho giải mật Chúng có đặc điểm khơng thể tính lại khóa giải mật biết trước giải thuật mật hóa khóa dùng mật hóa Việc sử dụng hai khóa khơng đối xứng giúp q trình mã hóa đảm bảo được: tính tồn vẹn, tính xác thực phân phối khóa Qua đó, mã hóa cơng khai giải hai vấn đề phức tạp nảy sinh mã hóa đối xứng tốn phân phối khóa chữ kí số Bài tập tiểu luận mơn ANM Ngun lí hoạt động hệ mật mã khóa cơng khai 2.1 Hệ mật mã khóa cơng khai Hình 3: Q trình mã hóa giải mã Giải thuật khóa cơng khai gồm thành phần: • Bản rõ: Đây tin liệu đọc đầu vào thuật tốn • Thuật tốn mã hóa: Các thuật tốn mã hóa thực biến đổi khác rõ • Khóa cơng khai bí mật: Đây cặp chìa khóa chọn để khoa sử dụng để mã hóa, khóa sử dụng để giải mã Các phép chuyển đổi xác thực thuật tốn phụ thuộc vào khóa cơng khai riêng mà coi đầu vào • Bản mã: Đây tin tạo đầu thuật tốn, phụ thuộc vào rõ khóa Đối với tin, hai khóa khác tạo hai mã khác • Thuật toán giải mã: Thuật toán chấp nhận mã khóa phù hợp để rõ ban đầu Các thuộc tính quan trọng lược đồ mã hóa cơng khai là: • Các khóa khác sử dụng để mã hóa giải mã Đây thuộc tính đặc trưng đặt lược đồ khác với lược đồ mã hóa đối xứng • Mỗi người nhận sở hữu khóa giải mã nhất, thường gọi khóa bí mật • Người nhận cần xuất khóa mã hóa, gọi khóa cơng khai • Một số đảm bảo tính xác thực khóa cơng khai cần thiết chương trình để tránh bị kẻ thám mã người nhận giả mạo Nói chung, loại hệ thống mật mã liên quan đến bên thứ ba đáng tin cậy xác nhận khóa cơng khai cụ thể thuộc cá nhân tổ chức cụ thể 10 Bài tập tiểu luận mơn ANM Hình 10: Trao đổi khóa cơng khai dùng CA Trong mơ hình này, tổ chức làm nhiệm vụ cấp chứng gọi trung tâm chứng thực( Certificate Authority-CA) Giả sử A muốn người cơng nhận khóa A cần: • A gửi định danh IDA khóa cơng khai KUA đến CA • CA kiểm tra tính hợp lệ A • CA cấp chứng C cho A để xác nhận khóa cơng khai Ku tương ứng với ID Cer kí chứng thực khóa riêng trung tâm để đảm bảo nội dung chứng trung tâm ban hành CA=E(IDA || KUA,KRAuth) • A công khai chứng CA B muốn trao đổi thơng tin với A giải mã khóa CA khóa cơng khai • trung tâm chứng thực để có khóa cơng khai Ku A Đồng nghĩa với việc B tin tưởng CA tin tưởng Ku A Phương pháp 2: Trao đổi khóa bí mật khóa cơng khai So với mật mã hóa đối xứng, q trình mã hóa giải mã sử dụng thuật toán phức tạp nên dẫn đến thời gian mã hóa giải mã lâu Để khắc phục vấn đề mà giữ tính bảo mật, nhà nghiên cứu đề xuất phương án khác: Nhóm 15 Bài tập tiểu luận mơn ANM Hình 11: Các bước mã hóa A B với khóa phiên • A gửi chứng CA cho B • B gửi chứng CB cho A • A tạo khóa phiên KS, mã hóa khóa riêng A, sau mã hóa tiếp khóa cơng khai B gửi tới B B giải mã KS dùng khóa riêng B khóa cơng khai A • A mã hóa liệu với khóa phiên KS B dùng KS để giải mã Ta thấy rằng, KS khóa phiên dùng để mã hóa giải mã A B( phương pháp mã hóa đối xứng) khóa mã hóa khóa cơng khai q trình trao đổi khóa KS hủy bỏ kết thúc phiên Mơ hình ứng dụng rộng rãi ứng dụng sử dụng giao thức Https 2.4 Các yêu cầu đổi với mật mã hóa cơng khai Các thuật tốn mã hóa cơng khai cần đáp ứng điều kiện: • Tính tốn dễ dàng cho phía bên B để tạo cặp khóa (cơng cộng KUb, khóa riêng KRb) • Tính tốn dễ dàng cho người gửi A, biết khóa cơng khai tin mã hóa, M, để tạo mã tương ứng: C = E (KUb, M) • Tính tốn dễ dàng cho người nhận B để giải mã mã cách sử dụng khóa riêng để phục hồi tin gốc: M = D (KRb, C) = D [KRb, E (KUb, M)] • Tính tốn không khả thi kẻ công biết khóa cơng khai, nhằm xác định khóa riêng Mật mã khóa cơng khai RSA 3.1 Giới thiệu chung RSA hệ mật mã khóa cơng khai phổ biến đa thực tế, phát minh Rivest, Shamir & Adleman (1977) Nó chuẩn mật mã bất thành văn PKC, cung cấp đảm bảo tính mật, xác thực chữ kí điện tử RSA sử Nhóm 16 Bài tập tiểu luận môn ANM dụng phổ biến thương mại điện tử cho đảm bảo an toàn với điều kiện độ dài khóa đủ lớn Thuật tốn Ron Rivest, Adi Shamir len Adleman mô tả lần vào năm 1977 Học Viện Công nghệ Massachusetts (MIT) Tên thuật toán lấy từ chữ đầu tên tác giả Trước năm 1973, Clifford Cocks, nhà toán học người Anh làm việc GCHQ, mơ tả thuật tốn tương tự Với khả tín tốn thời điểm thuật tốn khơng khả thi chưa thực nghiệm Tuy nhiên, phát minh cơng bố vào năm 1997 xếp vào loại tuyệt mật RSA thí dụ điển hình đề tài tốn học trừu tượng lại áp dụng tực tiễn vào đời sống thường nhật Khi nghiên cứu số nguyên tố, nghĩ khái niệm số nguyên tố lại hữu dụng vào lĩnh vực truyền thông Cơ sở thuật tốn RSA dựa tính khó tốn phân tích số lớn thừa số ngun tố: khơng tồn thuật toán thời gian đa thức (theo độ dài biểu diễn nhị phân số đó) cho tốn Chẳng hạn, việc phân tích hợp số tích số nguyên tố lớn hàng trăm chữ số hàng ngàn năm tính tốn với máy PC trung bình có CPU khoảng 2Ghz Nguyên lý RSA dựa nhận định tìm số ngun dương lớn e, d n mà: ( 𝑚𝑒 )𝑑 ≡ m (mod n) ∀m Và có biết e, n hay m khó để tìm d Tiếp theo sâu vào công đoạn hệ mã, bao gồm việc mã hóa, giải mã sinh khóa ❖ Chuẩn bị toán học Trước hết, nhắc lại khái niệm toán học cần thiết cho việc tìm hiểu RSA ▪ Số nguyên tố (Prime) Số nguyên tố tập hợp só tự nhiên chia cho chín VD: 2, 3, ,7, 11, 13, 17, 23 ▪ Số nguyên tố (coprime or relatively prime) Với hai số nguyên dương a b Ta kí hiệu gcd(a,b) : Ước chung lớn a b ( Greatest Common Divisior) Ví dụ: gcd(4,6) = 2, gcd(5,6) =1 Hai số a b gọi số nguyên tố gcd(a,b) = Ví dụ: hai số nguyên tố gcd(7,9) = ▪ Khái niệm modulo Với m sô nguyên dương Ta nói hai số nguyên a b đồng dư với modulo m m chia hết cho hiệu a – b (viết m|(a-b)) Nhóm 17 Bài tập tiểu luận mơn ANM Kí hiệu a ≡ b ( mod m ) Như a ≡ b ( mod m ) tồn số nguyên k cho a = b + km Ví dụ: 13 ≡ ( mod 10 ) 13 = + 1*10 ▪ Phi- hàm Euler Phi- Hàm Euler φ(n) có giá trị n số số không vượt n nguyên tố với n Ví dụ: φ(5) = 4, φ(6) = 2, φ(10) = ▪ Một số định lý Định lý Euler: Nếu m số nguyên dương P nguyên tố với m P^ φ(m) = (mod m) 3.2 Mã hóa Giả sử Bob muốn gửi mẫu tin M cho Alice Đầu tiên thông điệp M thành phần nhỏ phần biểu diễn số nguyên m cho ≤ m < n Việc chuyển đổi cần đảm bảo ngẫu nhiên m không nhận giá trị khơng an tồn ( ví dụ số hay số 1) đảm bảo suy M từ m Tiếp theo, Bob tính mã hóa c, sử dụng khóa cơng khai e Alica sau: c ≡ me ( mod n) ∀m Bob gửi c cho Alice Mẫu tin sau mã khóa Bob khơng thể giải từ c thành m 3.3 Giải mã Alice tính lại m từ c dựa vào khóa bí mật d: c d ≡ ( me )d ≡ m ( mod n) Dựa vào m, Alice khơi phục lại mẫu tin ban đầu M 3.4 Sinh khóa (Key generation) Mấu chốt việc sinh khóa RSA tìm số tự nhiên e, d n cho dù có biết e, n hay chí m khơng thể tìm d Cụ thể khóa RSA sinh sau: • Chọn số nguyên tố khác p q • Tính n = p* q Độ dài n (tính theo bit) độ dài khóa Hiện người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bit • Tính 𝛗(𝐧) = 𝛗(𝐩)𝛗(𝐪) = (𝐩 − 𝟏)(𝐪 − 𝟏) = n –(p + q – 1) Trong 𝛗(𝐧) phi hàm Euler 𝛗(𝐧) = số lượng số nguyên dương nhỏ n mà nguyên tố với n • Chọn số nguyên e thỏa mã < e < 𝛗(𝐧) gcd(e, 𝛗(𝐧)) = Nhóm 18 Bài tập tiểu luận mơn ANM • Tính d ≡ 𝐞−𝟏 (mod 𝛗(𝐧)) ❖ Chứng minh Để chứng minh tính đắn thuật tốn sinh khóa trên, ta cần chứng minh ( me )d ≡ m ( mod n) với n = pq Trường hợp gcd(n, m) = Ta có ed ≡ (mod φ(n)) Do e d nguyên dương nên ed = + h φ(n), với h số nguyên không âm h Do ( me )d = m1+hφ(n) = m( mφ(n) ) Theo định lý Euler h eφ(n) ≡ ( mod n) ∀a, n ∶ gcd(a, n) = nên m( mφ(n) ) ≡ m(1)h ≡ m (mod n) Trường hợp gcd (n, m) ≠ Theo định lý phần dư trung hoa (Chinese Remainder Theorem), p,q nguyên tố thì: x ≡ y (mod p ) x ≡ y (mod q) → x ≡ y ( mod pq) Do ta cần chứng minh hai mệnh đề sau: ( me )d ≡ m ( mod p) ( me )d ≡ m ( mod q) Vì gcd (n, m) ≠ → gcd (n, m) = p gcd (n, m) = q Giả sử gcd (n, m) = p ta có: gcd (n, p) = p → m ≡ (mod p) → ( me )d ≡ m ( mod p ) gcd (n, p) = → ( me )d ≡ m ( mod p ) ( chứng minh tương tự trường hợp 1) 3.5 Sample code import random def is_prime(n): return all([(n % j) for j in range(2, int(n ** 0.5) + 1)]) and n > # Sinh số nguyên tố ngẫu nhiên [left, right) mà khác exclude def random_prime(left, right, exclude = -1): p = random.randint(left, right - 1); if is_prime(p) and p != exclude: return p else: return random_prime(left, right - 1, exclude) Nhóm 19 Bài tập tiểu luận mơn ANM # Thuật tốn tìm nghịch đảo modulo # MMI(A, n) = x thỏa mãn (Ax) mod n = MMI = lambda A, n,s=1,t=0,N=0: (n < and t%N or MMI(n, A%n, t, s-A/n*t, N or n),-1)[n

Ngày đăng: 26/02/2023, 15:14

Từ khóa liên quan

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

Tài liệu liên quan