Mã hoá khoá phi đối xứng antisymetric encryption mã hoá khoá công khai Khi quá trình tin học hóa xã hội đang diễn ra nhanh chóng như hiện nay thì vấn đề đảm bảo an toàn thông tin trở nên quan trọng hơn bao giờ hết. Việc đảm bảo an toàn thông tin đòi hỏi phải kết hợp nhiều biện pháp, công cụ, trong đó mật mã đóng vai trò hết sức quan trọng.
Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 1 MỤC LỤC MỤC LỤC 1 DANH MỤC CÁC TỪ VIẾT TẮT 2 DANH MỤC BẢNG BIỂU 3 DANH MỤC HÌNH VẼ 4 LỜI NÓI ĐẦU 5 Chương 1 MẬT MÃ KHÓA CÔNG KHAI 6 1.1. Mật mã khóa công khai 6 1.1.1. Giới thiệu chung về mật mã khóa công khai 6 1.1.2. Nguyên tắc cấu tạo của mã khóa công khai 7 1.1.3. Phân loại các hệ mật khóa công khai 8 1.2. Các hệ mật mã khóa công khai 9 1.2.1. Hệ mật RSA 10 1.2.2. Hệ mật ElGamal 12 1.2.3. Hệ mật trên các đường cong Elliptic 13 1.2.4. Giải pháp về vấn đề an toàn 14 Chương 2 THƯ VIỆN GMP HỖ TRỢ TÍNH TOÁN VỚI SỐ LỚN 15 2.1. Giới thiệu 15 2.2. Các phép toán trên số nguyên 16 2.3. Hiệu suất 19 2.4. Cài đặt 20 Chương 3 CÀI ĐẶT THUẬT TOÁN RSA SỬ DỤNG THƯ VIỆN GMP 22 3.1. Tạo khóa RSA 22 3.2. Mã hóa bằng RSA 26 3.3. Giải mã bằng RSA 28 3.4. Cài đặt, biên dịch và thực thi 29 3.5. Phân tích thời gian thực hiện 30 3.5.1. RSA 1024 bít 30 3.5.2. RSA với kích cỡ khóa khác nhau 30 KẾT LUẬN 32 TÀI LIỆU THAM KHẢO 33 PHỤ LỤC Error! Bookmark not defined. Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 2 DANH MỤC CÁC TỪ VIẾT TẮT TỪ VIẾT TẮT VIẾT ĐẦY ĐỦ ANSI American National Standards Institute -Viện tiêu chun quốc gia ca M ASCII American Standard Code for Infornation Interchange CBC Cipher Block Chaining DES Data encryption Standard IDEA International Data Encryption Algorithm IEEE Institute of Electrical and Electronic Engineers - Viện k thuật ca k sư điện và điện t IETF Internet Engineering Task Force IMAP Internet Message Access protocol MIME Multipurpose Internet Mail Extensions PCBC Propagating cipher block chaining PGP Pretty Good Privacy PKCS Public Key Cryptography Standard S/ MIME Secure-MIME TLS Transport Layer Security MIT Học viện Công nghệ Massachusetts GCHQ Cơ quan Thông tin chính ph RSA Rivest Shamir Adleman GCD Great Comon Divisor Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 3 DANH MỤC BẢNG BIỂU Bảng 1.1: Các bài toán để so sánh 8 Bảng 3.1: Thời gian mã hóa và giải mã RSA (10.000 ký tự) 30 Bảng 3.2: Thời gian cho các độ dài khóa khác nhau (10.000 ký tự) 30 Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 4 DANH MỤC HÌNH VẼ Hình 1.1: Mô hình mã hóa và giải mã trong mật mã khóa công khai 7 Hình 1.2: Mô hình ký và kiểm tra chữ ký trong mật mã khóa công khai 7 Hình 1.3: Sơ đồ mã hóa và giải mã thông tin dựa trên thuật thoát RSA 11 Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 5 LỜI NÓI ĐẦU Khi quá trình tin học hóa xã hội đang diễn ra nhanh chóng như hiện nay thì vấn đề đảm bảo an toàn thông tin trở nên quan trọng hơn bao giờ hết. Việc đảm bảo an toàn thông tin đòi hỏi phải kết hợp nhiều biện pháp, công cụ, trong đó mật mã đóng vai trò hết sức quan trọng. Thông thường, người ta s dụng mật mã đối xứng để mã hóa dữ liệu, còn khóa để thực hiện việc mã hóa đó lại được trao đổi nhờ mật mã khóa công khai. Vai trò ca mật mã khóa công khai không chỉ dừng lại ở việc trao đổi khóa. Một chức năng rất quan trọng ca mật mã khóa công khai là tạo và kiểm tra chữ ký số. Dù là mật mã đối xứng hay mật mã khóa công khai, độ an toàn là vấn đề đầu tiên cần xem xét khi quyết định s dụng một hệ mật nào đó. Độ an toàn phải được đánh giá căn cứ vào trình độ phát triển ca k thuật thám mã (bao gồm thuật toán thám mã và sức mạnh tính toán ca các thiết bị hỗ trợ) không chỉ ở thời điểm hiện tại mà cả trong tương lai. Theo như bài báo “Factorization of a 768-bit RSA modulus” ngày 18/02/2010 RSA 768 bit đã bị thám thành công hiện trên 80 vi x lí Opteron. Theo bài báo này, RSA 768 bit khó hơn 1000 lần so với RSA 512 bit (bị phá vỡ cách đây một thập kỉ), và RSA 1024 bit khó hơn 1000 lần so với RSA 768 bit. Theo công bố ca bài báo trên (tháng 2/2010), RSA 1024 bit có thể bị phá vỡ bằng sức tính toán tương đương với 1500 năm, dùng một vi x lý Opteron 2,2 GHz. Và cho đến bây giờ theo cách tấn công mới, RSA 1024 bit đã bị bẻ gãy trong 100 giờ [8]. Như thế, muốn tăng độ an toàn thì cần tăng kích thước ca khóa. Qua việc tìm hiểu một số hệ mật khóa công khai, có thể thấy rằng, để cài đặt chúng bằng chương trình, ta cần thực hiện các phép nhân (lũy thừa) modulo với các số hàng trăm, hàng nghìn bít (số lớn). Một vấn đề thực sự khó giải quyết đối với mật mã khóa công khai. Chính vì vậy em đã chọn đề tài bài tập lớn “Mã hoá khoá Phi đối xứng (AntiSymetric Encryption) Mã hoá khoá Công khai”. Nội dung bao gồm: 1. Mật mã khóa công khai 2. Thư viện gmp hỗ trợ tính toán với số lớn 3. Cài đặt thuật toán rsa s dụng thư viện gmp Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 6 Chương 1 MẬT MÃ KHÓA CÔNG KHAI 1.1. Mật mã khóa công khai 1.1.1. Giới thiệu chung về mật mã khóa công khai Vào năm 1976 Diffie và Hellman đã đề xuất ra các ý tưởng cho phép xây dựng các hệ mã hoạt động theo nguyên tắc mới, gắn liền với các bên truyền tin chứ không gắn với các cặp truyền tin. Nguyên tắc hoạt động ca các hệ mã đó là mỗi bên tham gia truyền tin sẽ có hai khóa, một khóa gọi là khóa bí mật (K s ) và một khóa gọi là khóa công khai (K p ). Khóa bí mật là khóa dùng để giải mã và được giữ bí mật, khóa công khai là khóa dùng để sinh mã được công khai hóa để bất cứ ai cũng có thể s dụng khóa này gi tin cho người ch ca hệ mã. Nhờ mật mã khóa công khai ta có thể mã hóa một bức thư hay một tin nhắn thông qua mạng Internet mà không bị lộ thông tin bằng cách mã hóa nó bằng khóa công khai người gi và chỉ người nhận mới có thể biết được thông tin sau khi giải mã bức thư hay tin nhắn đó bằng chính khóa bí mật ca mình. Trong mật mã khóa công khai, việc phân phối khóa trở nên dễ dàng hơn qua các kênh cung cấp khóa công cộng, số lượng khóa hệ thống quản lý cũng sẽ ít hơn. Trong các mạng kết nối với quy mô lớn, mật mã khóa công khai đỏi hỏi ít tham số hơn, do đó ít dữ liệu về khoá hơn, nhờ đó làm tăng tính bảo mật trong mạng. Các dịch vụ mới như chữ ký điện t, thỏa thuận khóa cũng được xây dựng dựa trên mật mã khóa công khai. Các yêu cầu đối với một hệ mật mã khóa công khai bao gồm: ‒ Việc sinh K p , K s phải dễ dàng; ‒ Việc tính E(K p , M) là dễ dàng; ‒ Nếu có C = E(K p , M) và K s thì việc tìm bản rõ cũng là dễ; ‒ Nếu biết K p thì việc dò tìm K s là khó; ‒ Việc khôi phục bản rõ từ bản mã là khó. Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 7 Trong mật mã khóa công khai, khi A muốn truyền tin cho B, A sẽ s dụng khóa K p ca B để mã hóa tin tức và truyền bản mã tới cho B, B sẽ s dụng khóa bí mật ca mình để giải mã và đọc tin (Hình 1.1): Hình 1.1: Mô hình mã hóa và giải mã trong mật mã khóa công khai Khi A muốn ký một văn bản thì A sẽ dùng khóa bí mật K s ca mình để ký, A gi văn bản cho B và B sẽ s dụng khóa công khai ca A để giải mã. Nếu giải mã được thì đó đúng là văn bản đã được A ký. Vì chỉ có A mới có khóa bí mật để mã hóa văn bản này (Hình 1.2): Hình 1.2: Mô hình ký và kiểm tra chữ ký trong mật mã khóa công khai Mật mã công khai thường được s dụng để phân phối khoá bí mật hơn là để mã hoá bản tin. Lý do là mật mã khóa công khai đòi hỏi nhiều tài nguyên tính toán hơn (và do đó chậm hơn) so với mật mã đối xứng. Hệ thống lai ghép s dụng mật mã đối xứng để mã hóa dữ liệu cho phiên truyền thông, và s dụng mật mã khóa công khai để bảo vệ bí mật cho khóa được s dụng trong phiên đó. 1.1.2. Nguyên tắc cấu tạo của mã khóa công khai Các hệ mã khóa công khai được xây đựng dựa trên các hàm một chiều (one-way functions). Hàm một chiều f: X Y làm một hàm mà nếu biết x X, ta có thể dễ dàng tính được y = f(x). Nhưng với y bất kỳ Y việc tìm x X sao cho y = f(x) là khó. Có nghĩa là việc hàm ngược f -1 là khó. Ví dụ, nếu Khóa bí mật (K s ) Khóa công khai (K p ) Plaintext Plaintext B A Mã hóa Giải mã Signed message Khóa công khai (K p ) Khóa bí mật (K s ) Ciphertext Plaintext Plaintext B Mã hóa Giải mã A Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 8 có các số nguyên tố P 1 ,P 2 ,…,P n thì việc tính N = P 1 ∙P 2 ∙…∙P n là dễ, nhưng nếu có N thì việc phân tích ngược lại là một bài toàn khó. Để thuận tiện các hàm một phía được s dụng trong các hệ mã khóa công khai thường được trang bị các ca bẫy (trapdoor) giúp cho việc tìm x thỏa mã y = f(x) là dễ dàng nếu biết được ca bẫy này. Hàm ca bẫy (trapdoor function): là hàm một chiều trong đó việc tính f -1 là rất nhanh khi chúng ta biết được ca bẫy ca hàm. Ví dụ việc tìm nghiệm ca bài toán xếp ba lô 0/1 trong hệ mã xếp ba lô là một hàm một phía (việc mã hóa rất nhanh và dễ dàng nhưng tìm vectơ nghiệm tương ứng là khó) nhưng nếu ta biết ca bẫy (vectơ xếp balô siêu tăng A’) thì bài toán tính f -1 lại rất dễ dàng. Độ an toàn ca các hệ mật khóa công khai được đảm bảo bới các bài toán khó giải. Hiện nay, các bài toán đó là: ‒ Bài toán phân tích thừa số nguyên tố (IFP) ‒ Bài toán tính lôgarít rời rạc (DLP) ‒ Bài toán tính lôgarít rời rạc trên đường cong Elliptic (ECDLP) Nội dung cụ thể ca các bài toán này được trình bày trong Bảng 1.1. Bảng 1.1: Các bài toán để so sánh Bài toán IFP DLP ECDLP Cho N=p.q, trong đó p và q là các số nguyên tố chưa biết. g, p và y=g x mod p, trong đó p là số nguyên tố đã biết P, và Q=kP, P là một điển trên đường cong Elliptic Tìm p và q x k Khóa công khai dựa trên vấn đề đã cho RSA DH/DSA ECDH/ECDSA 1.1.3. Phân loại các hệ mật khóa công khai Ý tưởng về mật mã khóa công khai được Diffie và Heliman đưa ra vào năm 1975. Nhưng việc hiện thực hóa nó thì lại được Rivest, Shamin và Adieman thực hiện đầu năm 1977, khi xây dựng nên hệ mật RSA nổi tiếng. Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 9 Đến nay đã có nhiều hệ mật khóa công khai được công bố, trong đó quan trọng nhất là: ‒ Hệ mật RSA. Độ bảo mật ca hệ RSA dựa trên độ khó ca việc phân tích ra thừa số nguyên tố các số nguyên lớn. ‒ Hệ mật McEliece. Hệ mật này dựa trên lý thuyết mã đại số và vẫn được coi là an toàn. Hệ mật McEliece dựa trên bài toán giải mã cho các mã tuyến tính. ‒ Hệ mật ElGamal. Hệ ElGamal dựa trên tính khó giải ca bài toán Logarit rời rạc trên các trường hữu hạn. ‒ Hệ mật Chor-Rivest. Hệ mật Chor-Rivest cũng được xem như một loại hệ mật xếp ba lô. Tuy nhiên hệ mật này vẫn còn được coi là hệ mật an toàn. ‒ Hệ mật trên các đường cong Elliptic. Các hệ này là biến tướng ca hệ mật khác, chúng làm việc trên các đường cong Elliptic chứ không phải trên các trường hữu hạn. Hệ mật này đảm bảo độ mật với khoá số nhỏ hơn các hệ mật khoá công khai khác. Độ an toàn ca từng hệ mật dựa trên các bài toán khác nhau, nhưng tất cả chúng có một điểm chung, đó là để đảm bảo an toàn thì chúng phải s dụng các số lớn. Đó là những số nguyên có kích thước từ hàng trăm đến hàng nghìn bít trong biểu diễn nhị phân. 1.2. Các hệ mật mã khóa công khai Từ khi ra đời vào những năm 50 ca thế kỷ trước, tốc độ bộ vi x lý ca máy tính đã tăng nhanh chóng: từ hàng trăm KHz ban đầu đến hơn 3 GHz ngày nay. Bên cạnh đó, hiệu năng tính toán bộ ca vi x lý còn được tăng cường bằng các thay đổi trong kiến trúc ca nó, bao gồm việc thiết kế nhiều nhân trong một vi x lý. Có một đặc tính ca bộ vi x lý rất ít thay đổi – đó là độ dài thanh ghi. Những bộ vi x lý thời kỳ đầu có thanh ghi 8 bít thì ngày nay, độ dài thanh ghi trong các vi x lý hiện đại mới là 64 bít (một số vi x lý chuyên dụng có độ dài thanh ghi lớn hơn). Tương ứng với độ dài thanh ghi ca bộ vi x lý, các ngôn ngữ lập trình như C, C++,… cung cấp các kiểu dữ liệu số có độ dài tối đa là 64 bít, tức là ít hơn nhiều so với nhu cầu s dụng trong các hệ mật khóa công khai. Do vậy, các số có độ dài quá 64 bít Mã hoá khoá Phi đối xứng_AntiSymetric Encryption_Mã hoá khoá Công khai Trần Ngọc Sơn 10 trong biểu diễn nhị phân, tức vượt quá khả năng lưu trữ ca kiểu dữ liệu số nguyên chun, được coi là các số lớn. 1.2.1. Hệ mật RSA RSA được Rivest, Shamir và Adleman phát triển, là một thuận toán mật mã hóa khóa công khai. Nó đánh dấu một sự tiến hóa vượt bậc ca lĩnh vực mật mã học trong việc s dụng khóa công khai. RSA đang được s dụng phổ biến trong thương mại điện t và được cho là đảm bảo an toàn với điều kiện độ dài khóa đ lớn. Thuật toán được công bố vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT). Tên ca thuật toán lấy từ ba chữ cái đầu ca tên ba tác giả. Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anh làm việc tại Trung tâm thông tin chính ph (GCHQ: Government Communications Headquarters) thuộc Cục Trinh sát radio hoàng gia (SIGINT: Her Majesty's Government's Signal Intelligence) Anh quốc, đã mô tả một thuật toán tương tự. Với khả năng tính toán tại thời điểm đó thì thuật toán này không khả thi và chưa bao giờ được thực nghiệm. Tuy nhiên, phát minh này chỉ được công bố vào năm 1997 vì được xếp vào loại tuyệt mật. Sơ đồ ca quá trình mã hóa và giải mã thông tin dựa trên thuật thoát RSA được thể hiện trên Hình 1.3. [...]... độ mã và giải mã càng nhanh nhưng độ an toàn giảm Trần Ngọc Sơn 31 Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai KẾT LUẬN Qua bài tập lớn em đã hiểu thêm về các hệ mật khóa công khai và vấn đề an toàn thông tin trong hệ mật khóa công khai là cần tính toán với số lớn Hiểu thêm về việc sử dụng thư viện số lớn GMP trong việc cài đặt thuật toán RSA Biết được vai trò của mật mã. .. hoàn thành tiến trình mã hóa Vậy là đã hoàn thành quá trình mã hóa Khi chạy chương trình ứng dụng chọn tùy chọn 2 để mã hóa Chương trình bắt nhập tên tệp tin cần mã hóa Sau đó là tên tệp tin chứa nội dung bản Trần Ngọc Sơn 27 Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai mã, tệp tin này do chương trình sinh ra Tiếp đến chương trình yêu cầu nhập số ký tự mã hóa cùng một lúc Nội... bản mã ASCII Nhưng mã hóa chỉ một ký tự một thời điểm làm chậm thời gian mã hóa và không bảo mật Vì các số nguyên được mã hóa sẽ chỉ là từ một tập hợp hữu hạn nhỏ (có chứa tối đa số lượng số nguyên bằng với số lượng trong bảng mã ASCII) Vì thế, Người dùng sẽ cần yêu cầu nhập số lượng các ký tự mã hóa cùng một lúc Trần Ngọc Sơn 26 Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai. .. mật) sau đó tính: y a x mod p (1.1) Để mã hóa một thông điệp M (là một số nguyên trên Zp ) thành bản mã C người gửi chọn một số ngẫu nhiên k nhỏ hơn p và tính khóa mã hóa K: K y k mod p (1.2) Sau đó tính cặp bản mã: Trần Ngọc Sơn 12 Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai C1 a k mod p (1.3) C2 K.M mod p (1.4) Và gửi bản mã C = (C 1, C2) đi (chú ý là sau đó phải... đặt một trong những thuật toán mật mã khóa công khai – đó là thuật toán RSA Trần Ngọc Sơn 21 Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai Chương 3 CÀI ĐẶT THUẬT TOÁN RSA SỬ DỤNG THƯ VIỆN GMP Thư viện GMP có mục đích cung cấp thuật toán nhanh nhất cho các ứng dụng cần sự chính xác cao hơn các thư viện cùng hỗ trợ C/C++ bằng cách sử dụng mã hợp ngữ được tối ưu hóa cao Hơn thế... và n được lấy trong tệp tin khóa bí mật Sau đó ánh xạ m trong bảng mã ASCII ta được được bản rõ chính là bản tin gốc ban đầu Trần Ngọc Sơn 28 Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai Khi bấm tùy chọn 3 thì chương trình yêu cầu nhập tên tệp tin cần giải mã: banma Khi ấn enter thì chương trình giải mã bản mã và đưa nội dung của bản rõ vào file có tên là “giaima”, nội dung.. .Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai Chọn p và q Tính n =pq Tính (n) Thông tin m e Chọn 1 e (n) c me mod n Bản mã C d Tính d de 1(mod (n)) m cd mod n Thông tin m Hình 1.3: Sơ đồ mã hóa và giải mã thông tin dựa trên thuật thoát RSA RSA là một thí dụ điển hình về một đề tài toán học trừu... nhất có thể Vì lý do đó, khi cần cài đặt bằng chương trình một thuật toán mật mã khóa công khai, nếu không có đủ kiến thức uyên thâm trong kỹ thuật lập trình thì ta nên sử dụng các thư viện có hỗ trợ thực hiện các phép tính với các số lớn Trần Ngọc Sơn 14 Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai Chương 2 THƯ VIỆN GMP HỖ TRỢ TÍNH TOÁN VỚI SỐ LỚN 2.1 Giới thiệu GMP là... a) Tạo khoá Bước 1: B (người nhận tin) tạo hai số nguyên tố lớn ngẫu nhiên p và q (p≠q) Bước 2: B tính n = p.q và Φ(n) = (p – 1)(q – 1) Bước 3: B chọn một số ngẫu nhiên e (0 < e < Φ (n)) sao cho ƯCLN(b, Φ(n)) =1 Trần Ngọc Sơn 11 Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai Bước 4: B tính d = e–1 (mod m) hay e*d = 1 (mod m) bằng cách dùng thuật toán Euclide Bước 5: B công bố... danh bạ làm khoá công khai (public key), còn d làm khoá bí mật (private key) Bước Bước Bước Bước b) Mã hoá 1: A (người gửi tin) nhận khoá công khai của B 2: A biểu diễn thông tin cần gửi thành số m (0 ≤ m ≤ n – 1) 3: Tính bản mã c = me mod n 4: Gửi c cho B c) Giải mã B giải mã bằng cách tính m = c d mod n Để thám hệ mật RSA, người ta cần phân tích n (là một thành phần của khóa công khai) ra hai . quyết đối với mật mã khóa công khai. Chính vì vậy em đã chọn đề tài bài tập lớn Mã hoá khoá Phi đối xứng (AntiSymetric Encryption) Mã hoá khoá Công khai . Nội dung bao gồm: 1. Mật mã khóa công. ‒ Việc khôi phục bản rõ từ bản mã là khó. Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai Trần Ngọc Sơn 7 Trong mật mã khóa công khai, khi A muốn truyền tin cho. nên hệ mật RSA nổi tiếng. Mã hoá khoá Phi đối xứng_ AntiSymetric Encryption _Mã hoá khoá Công khai Trần Ngọc Sơn 9 Đến nay đã có nhiều hệ mật khóa công khai được công bố, trong đó quan trọng