QCVN6:2016/BQP

Quy chuẩn kỹ thuật quốc gia QCVN 6:2016/BQP về Quản lý khóa sử dụng trong lĩnh vực ngân hàng QCVN 6 : 2016/BQP QUY CHUẨN KỸ THUẬT QUỐC GIA VỀ QUẢN LÝ KHÓA SỬ DỤNG TRONG LĨNH VỰC NGÂN HÀNG National technical regulation on key management used in ba n king MỤC LỤC Lời nói đầu 1. QUY ĐỊNH CHUNG 1.1. Phạm vi điều chỉnh 1.2. Đối tượng áp dụng 1.3. Tài liệu viện dẫn 1.4. Giải thích từ ngữ 1.5. Các ký hiệu 2. QUY ĐỊNH KỸ THUẬT 2.1. Các yêu cầu đối với giao thức thỏa thuận và vận chuyển khóa 2.2. Giao thức thỏa thuận khóa sử dụng kỹ thuật mật mã phi đối xứng trên trường hữu hạn 2.3. Giao thức thỏa thuận khóa sử dụng mật mã trên đường cong elliptic 2.3.1. Giao thức DH 2.3.2. Thỏa thuận khóa MQV 2.4. Hàm dẫn xuất khóa KDF 2.4.1. Hàm dẫn khóa 1 2.4.2. Hàm dẫn xuất khóa 2 2.5. Giao thức vận chuyển khóa bí mật 2.6. Giao thức vận chuyển khóa công khai 2.6.1. Giao thức vận chuyển khóa công khai không sử dụng bên thứ ba tin cậy 2.6.2. Giao thức vận chuyển khóa công khai sử dụng bên thứ ba tin cậy 2.7. Quy định kỹ thuật cho các tham số 2.7.1. Quy định về nguồn ngẫu nhiên 2.7.2. Quy định đối với tham số RSA 2.7.3. Hệ mật dựa trên Logarit rời rạc DL 2.7.4. Hệ mật ECC 2.7.5. Độ an toàn theo bit quy đổi giữa RSA, DL và ECC 3. QUY ĐỊNH V Ề QUẢN LÝ 4. TRÁCH NHIỆM CỦA T Ổ CHỨC, CÁ NHÂN 5. T Ổ CHỨC THỰC HIỆN Lời nói đầu QCVN 6 : 2016/BQP do Cục Quản lý mật mã dân sự và Kiểm định sản phẩm mật mã - Ban Cơ yếu Chính phủ biên soạn, Ban Cơ yếu Chính phủ trình duyệt, Bộ Khoa học và Công nghệ thẩm định và được ban hành theo Thông tư số 161/2016/TT-BQP ngày 21 tháng 10 năm 2016 của Bộ trưởng Bộ Quốc phòng. QUY CHUẨN KỸ THUẬT QUỐC GIA VỀ QUẢN LÝ KHÓA SỬ DỤNG TRONG LĨNH VỰC NGÂN HÀNG National technical regulation on key management used in banking 1. QUY ĐỊNH CHUNG 1.1. Phạm vi điều chỉnh Quy chuẩn kỹ thuật quốc gia này quy định các yêu cầu về quản lý khóa mật mã sử dụng kỹ thuật mật mã phi đối xứng để bảo mật dữ liệu trong lĩnh vực ngân hàng bao gồm: Sinh khóa bí mật dùng để liên lạc giữa hai thực thể bằng cơ chế thỏa thuận khóa và dẫn xuất khóa, sử dụng kỹ thuật mật mã phi đối xứng; sinh khóa bí mật cho một thực thể bởi thực thể khác bằng cơ chế truyền khóa sử dụng mật mã phi đối xứng; vận chuyển khóa công khai của một thực thể đến một thực thể khác bằng đường truyền có bảo vệ; quy định về quản lý sử dụng khóa mật mã an toàn. Quy định về tạo khóa, đăng ký khóa, thu hồi, cài đặt, khôi phục và các vấn đề thuộc quản lý khóa khác không thuộc phạm v i điều chỉnh của quy chuẩn này. 1.2. Đối tượng áp dụng Quy chuẩn này áp dụng đối với các doanh nghiệp kinh doanh sản phẩm, dịch vụ mật mã dân sự trong lĩnh vực ngân hàng; các tổ chức tín dụng (trừ quỹ tín dụng nhân dân cơ sở có tài sản dưới 10 tỷ, tổ chức tài chính vi mô) sử dụng sản phẩm, dịch vụ mật mã dân sự. 1.3. Tài liệu viện dẫn - TCVN 7817-3:2007 (ISO/IEC 11770-3:1999) Công nghệ thông tin - Kỹ thuật mật mã - Quản lý khóa - Phần 3: Các cơ chế sử dụng kỹ thuật phi đối xứng. - ISO/IEC 11770-3:2015 In f ormation technology - Security techniques - Key management - Part 3: Mechanisms using asymmetric techniques. - Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography, SP 800-56A Revision 2, National Institute of Standards and Technology, May 2013. - Recommendation for Random Number Generation Using Deterministic Random Bit Generators , NIST SP 800-90A Rev. 1, National Institute of Standards and Technology, June 2015. (Khuyến cáo cho bộ sinh số ngẫu nhiên sử dụng bộ sinh bit ngẫu nhiên tất đ ị nh , NIST SP 80 0 -90A Rev. 1, Viện tiêu chuẩn và công nghệ quốc gia (Mỹ), tháng 6 năm 2015). 1.4. Giải thích từ ngữ Trong Quy chuẩn này, các từ ngữ dưới đây được hiểu như sau: 1.4.1. Thông tin không thuộc phạm vi bí mật nhà nước Là thông tin không thuộc nội dung tin “tuyệt mật”, “tối mật” và “mật” được quy định tại Pháp lệnh Bảo vệ bí mật nhà nước ngày 28 tháng 12 năm 2000. 1.4.2. Mật mã Là những quy tắc, qu y ước riêng dùng để thay đổi hình thức biểu hiện thông tin nhằm bảo đảm bí mật, xác thực, toàn vẹn của nội dung thông tin. 1.4.3. Mật mã dân sự Là kỹ thuật mật mã và sản phẩm mật mã được sử dụng để bảo mật hoặc xác thực đối với thông tin không thuộc phạm vi bí mật nhà nước. 1.4.4. Sản phẩm mật mã dân sự Là các tài liệu, trang thiết bị kỹ thuật và nghiệp vụ mật mã để bảo vệ thông ti n không thuộc phạm vi bí mật nhà nước. 1.4.5. Kỹ thuật mật mã Là phương pháp, phương tiện có ứng dụng mật mã để bảo vệ thông tin. 1.4.6. Mã hóa Phép biến đ ổ i (khả nghịch) dữ liệu bởi thuật toán mật mã để tạo ra bản mã, tức là giấu nội dung thông tin của dữ liệu. 1.4.7. Giải mã Phép toán ngược với phép mã hóa tương ứng. 1.4.8. Mã phi đ ố i xứng Hệ thống dựa trên kỹ thuật mật mã phi đối xứng, trong đó phép biến đổi công khai được sử dụng để mã hóa, phép biến đ ổ i bí mật được sử dụng để giải mã. 1.4.9. Kỹ thuật mật mã phi đối xứng Kỹ thuật mật mã phi đối xứng sử dụng hai phép biến đổi liên quan đến nhau, phép biến đổi công khai (được xác định bởi khóa công khai) và phép biến đổi bí mật (được xác định bởi khóa riêng). Cả hai phép biến đổi này có tính chất là cho biết phép biến đổi công khai, về mặt tính toán không thể có khả năng xác định được phép biến đổi bí mật. 1.4.10. Thẻ khóa Thông điệp quản lý khóa được gửi từ một thực thể tới một thực thể khác trong quá trình thực hiện một cơ chế quản lý khóa. 1.4.11. Vận chuyển khóa Tiến trình truyền một khóa từ một thực thể đến một thực thể khác với bảo vệ thích hợp. 1.4.12. Xác thực thực thể lẫn nhau Sự xác thực giữa hai thực thể đảm bảo về định danh của mỗi thực thể. 1.4.13. Xác thực khóa từ thực thể A đến thực thể B Đảm bảo cho B rằng chỉ có A là thực thể sở hữu khóa đúng. 1.4.14. Xác thực khóa hai chiều Đảm bảo xác thực khóa từ A đến B và từ B đến A . 1.4.15. Xác nhận khóa từ A đến B Đảm bảo cho thực thể B là thực thể A sở hữu khóa đúng. 1.4.16. Xác nhận khóa hai chiều Đảm bảo xác nhận khóa từ A đến B và từ B đến A. 1.4.17. Thiết lập khóa Quá trình đảm bảo sự khả dụng một khóa bí mật dùng chung cho một hoặc nhiều thực thể. Thiết lập khóa bao gồm thỏa thuận khóa và vận chuyển khóa. 1.4.18. Thoả thuậ n khóa Tiến trình kiến tạo một khóa bí mật dùng chung giữa hai thực thể theo cách mà không có bên nào có thể định trước giá trị cho khóa 1.5. Các k ý hiệu ID A , ID B Định danh của các thực thể A và B Cert x Chứng chỉ khóa công khai của thực thể X F(h,g) Hàm thỏa thuận khóa HASH Hàm băm DH Diffie-Hellman MQV Menezes-Qu-vanstone K Khóa bí mật cho hệ mật đối xứng K AB Khóa bí mật chia sẻ giữa hai thực thể A và B KT Ai Thông báo thỏa thuận khóa được gửi bởi thực thể A sau giai đoạn xử lý i r Số ngẫu nhiên được sinh trong quá trình thực hiện của một lược đồ. H Tập các phần tử có thể của r S x Hàm tạo chữ ký sử dụng khóa riêng của thực thể X V x Hàm kiểm tra chữ ký của thực thể X || Phép nối hai phần tử dữ liệu với nhau é x ù Số nguyên nhỏ nhất lớn hơn hoặc bằng số thực x len(x) Độ dài số nguyên x tính bằng bit nlen Độ dài modulo n tính theo bit (n, e) Khóa công khai theo RSA (n, d) Khóa riêng theo RSA L Độ dài số nguyên tố p trong bài toán logarit rời rạc N Độ dài số nguyên tố q trong bài toán logarit rời rạc q Ước nguyên tố của p - 1 #(E) Cấp hay lực lượng của đường cong elliptic E m Bậc của điểm sinh G X(P) Hoành độ x của điểm P trên đường cong elliptic E h Các đồng thừa số được tính theo công thức h = #E/m l Thừa số phụ trong phép nhân đồng thừa số l = h -1 mod m p (P) Phép biến đổi điểm P trên đường cong E thành số nguyên 2. QUY ĐỊNH KỸ THUẬT 2.1. Các yêu cầu đối với giao thức thỏa thuận và vận chuyển khóa Điều này quy định các giao thức thiết lập khóa bí mật dùng để mã dữ liệu được trao đổi giữa hai thực thể A và B , vận chuyển khóa bí mật từ thực thể A sang thực thể B , vận chuyển khóa công khai của thực thể A sang thực thể B . Để thực hiện giao thức, mỗi thực thể X đảm bảo các điều kiện sau: - Sở hữu cặp khóa để ký và kiểm tra chữ ký (S X , V X ) được cơ quan thẩm quyền cấp dưới dạng chứng thư số Cert x . - Sử dụng một cặp khóa công khai để mã hóa (E X ,D X ) được quy định tại Điều 2.7 của Quy chuẩn này. - Sử dụng chung với thực thể thứ hai hàm thỏa thuận khóa F là một trong hai hàm được xác định tại Điều 2.2.2, một hàm dẫn xuất khóa KDF được quy định tại Điều 2.4 của Quy chuẩn này và một hàm kiểm tra mật mã dưới dạng hàm băm được quy định tại Điều 2.2 của QCVN 5 : 2016/BQP Quy chuẩn kỹ thuật quốc gia về Chữ ký số sử dụng trong lĩnh vực ngân hàng. - Mỗi thực thể được tiếp cận các khóa công khai của thực thể kia theo cơ chế vận chuyển khóa công khai tại Điều 2.6. 2.2. Giao thức thỏa thuận khóa sử dụng kỹ thuật mật mã phi đối xứng trên trường hữu hạn Thỏa thuận khóa bí mật giữa hai thực thể A và B được thực hiện qua 5 bước: Bước 1-4. Hai bên th ỏa thuận bí mật chia sẻ K AB . Bước 5. Hai bên sử dụng hàm dẫn xuất khóa KDF được quy định tại Điều 2.4 để thiết lập khóa bí mật chung K . Lược đồ thỏa thuận khóa bí mật chia sẻ K AB được thể hiện trên Hình 1. 2.2.1. Giao thức Bước 1. Kiến thiết thẻ khóa (A1): Thực thể A sinh một giá trị ngẫu nhiên và bí mật r A thuộc H, tính F(r A ,g), kiến thiết thẻ khóa KT A1 và gửi tới thực thể B : KT A1 = F(r A ,g ) || Text 1 Bước 2. Xử lý thẻ khóa và Kiến thiết khóa (B1): Thực thể B sinh một giá trị ngẫu nhiên và bí mật r B thuộc H , tiếp đ ó tính F(r B , g), rồi tính khóa bí mật dùng chung: K AB = F(r B ,F(r A ,g)) Tiếp theo, thực thể B tạo thẻ khóa KT B1 được ký như sau: KT B1 = S B (D B 1 ) || (DB 1 ) || Text3 trong đó DB 1 = F(r B ,g) || F ( r A ,g) || I D A || Text2 và gửi ngược trở lại cho thực thể A. Hình 1: Giao thức thỏa thuận khóa bí mật chia sẻ K AB Bước 3. Xử lý thẻ khóa (A2): Thực thể A kiểm tra chữ ký của thực thể B trên thẻ khóa KT B1 bằng cách sử dụng khóa kiểm tra công khai của B , kiểm tra định danh phân biệt của A và giá trị F(r A ,g) đã được gửi ở Bước 1 (A1) . Nếu quá trình kiểm tra thành công thì thực thể A sẽ tính khóa bí mật dùng chung là: K AB = F(r A ,F(r B ,g)) Thực thể A lại sử dụng khóa bí mật dùng chung K AB để kiểm tra giá trị kiểm tra mật mã ( DB 1 ). Sau đó thực thể A tạo thẻ khóa KT A2 được ký như sau: KT A2 = S A (DB 2 ) || (DB 2 ) || Text 5 trong đó DB 2 = F(r A ,g) || F(r B ,g) || I D B || Text 4 và gửi thẻ này tới thực thể B . Bước 4. Xử lý thẻ khóa (B2): Thực thể B kiểm tra chữ ký của thực thể A trên thẻ khóa KT A2 sử dụng khóa kiểm tra công khai của A , sau đó kiểm tra định danh phân biệt của B và kiểm tra các giá trị F(r A ,g) , v à F(r B ,g) , xem có phù hợp với các giá trị được trao đổi ở các bước trước hay không. Nếu quá trình kiểm tra thành công thì thực thể B sẽ kiểm tra giá trị kiểm tra mật mã ( DB 2 ) bằng cách tính: K AB = F(r A , , F(r B ,g) ) Bước 5. Thực thể A và thực thể B tính khóa bí mật chung K Các thực thể A và B sử dụng hàm dẫn xuất khóa tại Điều 2.4 để tính khóa K = KDF(K AB , Otherlnput) Trong đó Other I nput chứa các định danh I D A , ID B của A,B và các thông tin khác do A và B thỏa thuận. CHÚ THÍCH: Các trường Text 1 , Text2, Text3, Text 4 , Text 5 là những trường dữ liệu chứa chứng thư số của A và B , và có thể một số thông tin khác như tem thời gian, định danh phiên liên lạc, v . v ..) 2.2.2. Hàm thỏa thuận khóa 2.2.2.1. Hàm thỏa thuận khóa DH Cho trường hữu hạn nguyên tố F p , ký hiệu tập H = {1, ..., p - 2}; g là phần tử sinh thuộc hàm thỏa thuận khóa Diffie-Hellman ( DH ) được xác định theo công thức: F(h,g) = g h ,h Î H CHÚ THÍCH: Với hàm thỏa thuận DH thì thẻ khóa KT A1 có dạng : 2.2.2.2. Hàm thỏa thuận khóa MQV - (a, A ); (b, B) là cặp khóa phi đối xứng tĩnh của A và B , A = g a , B = g b - (x,X),( y ,Y) là cặp khóa phi đối xứng tức thời của A và B , X = g x ,Y = g y , d = 2 l + ( X mod 2 l ), e = 2 l + ( Y mod 2 l ), l = | p | / 2, l độ dài p tính bằng bit, F(x, g) = (YB e ) x+da = ( XA d ) y +eb 2.3. Giao thức thỏa thuận khóa sử dụng mật mã trên đường cong elliptic 2.3.1. Giao thức DH Bước 1. Kiến thiết thẻ khóa (A1) Thực thể A chọn ngẫu nhiên và bí mật số r A thuộc khoảng {2, … , m - 2}, tính r A G , kiến thiết thẻ khóa KT A1 = r A G và gửi cho B . Bước 2. Xử lí thẻ khóa và kiến thiết thẻ khóa (B1) Thực thể B kiểm tra thẻ khóa KT A1 có phải là điểm nằm trên đường cong Elliptic hay không (kiểm tra theo tiêu chuẩn ISO/IEC 15946-1). Thực thể B chọn ngẫu nhiên và bí mật r B thuộc khoảng {2, …, m- 2}, tính r B G , tính bí mật chia sẻ K AB = (r B l)(hKT A1 ), kiến thiết thẻ được ký hiệu KT B1 : KT B1 = S B ( DB 1 ) || ( DB 1 ) với DB 1 = r B G || KT A1 || I D A || Text 1 và gửi cho A . Bước 3. Xử lí thẻ khóa (A2) Thực thể A kiểm tra chữ ký của B trên thẻ khóa KT B1 sử dụng khóa kiểm tra công khai của B . Nếu sử dụng lược đồ chữ ký có khôi phục bản rõ th ì việc kiểm tra bao gồm cả việc khôi phục khối dữ liệu DB 1 từ chữ ký và kiểm tra liệu định danh phân biệt của A và giá trị r A G có chứa trong DB 1 không. Nếu sử dụng chữ ký có đính kèm bản rõ thì việc kiểm tra bao gồm cả việc thiết kế lại khối dữ liệu DB 1 sử dụng giá trị trong KT A1 , định danh phân biệt của A , giá trị nhận được r B G và kiểm tra chữ ký trên khối dữ liệu này. Tiếp đó thực thể A kiểm tra, liệu giá trị r B G nhận được từ KT B1 có phải là điểm trên đường cong elliptic hay không (kiểm tra theo tiêu chuẩn ISO/IEC 15946-1). Nếu đúng thì A tính khóa chia sẻ K AB = ( r A . l )( h.r B G ). Sử dụng K AB , thực thể A kiểm tra ( DB 1 ). Tiếp đó A thiết kế thẻ khóa có ký hiệu KT A2 = S A (DB 2 ) || (DB 2 ) ở đây DB 2 = r A G || r B G || B || Text2 (DB 2 = r A G || r B G || ID B || Text2) và gửi cho B. Bước 4. Xử lí thẻ khóa (B2) Thực thể B kiểm tra chữ ký của A trên thẻ khóa KT A2 bằng cách sử dụng khóa kiểm tra công khai của A . Nếu sử dụng sơ đồ chữ ký có khôi phục bản rõ thì điều này bao gồm cả việc khôi phục khối dữ liệu DB 2 từ chữ ký và kiểm tra định danh phân biệt của B , các giá trị r A G và r B G có chứa trong khối này không. Nếu sử dụng chữ ký có đính kèm bản rõ thì việc kiểm tra bao gồm cả việc thiết kế lại khối dữ liệu DB 2 sử dụng các giá trị trong KT A1 và KT B1 , định danh phân biệt của B và kiểm tra chữ ký trên khối dữ liệu này. Nếu việc kiểm tra thành công thì thực thể B kiểm tra ( DB 2 ) sử dụng khóa chia sẻ K AB = ( r B l ) ( hKT A1 ). Bước 5. Thiết lập khóa bí mật K Thực thể A và B sử dụng hàm dẫn xuất khóa KDF tại Điều 2.4 để thiết lập khóa bí mật. K = KDF(K AB ,Other I nput). 2.3.2. Thỏa thuận khóa MQV Bước 1. Thiết kế thẻ khóa (A1) Thực thể A chọn ngẫu nhiên và bí mật số r A thuộc khoảng { 2,…, m - 2} tính r A G và kiến thiết thẻ khóa KT A1 = r A G và gửi cho thực thể B . Bước 2. Kiến thiết thẻ khóa (B1) Thực thể B kiểm tra thẻ KT A1 có phải là điểm trên đường cong elliptic (kiểm tra theo tiêu chuẩn ISO/IEC 15946-1:2016). Thực thể B chọn ngẫu nhiên và bí mật số r B thuộc khoảng {2,...,m - 2} , tính r B G , thiết kế thẻ khóa KT B1 = r B G , tiếp đó tính khóa bí mật chia sẻ K AB : K AB = ((r B + n ( KT B1 )d B ). l )(h. ( KT A1 + p (KT A1 )P A )) Tiếp đ ó B tính K = KDF ( K AB ) và gửi (2, KT A1 , KT B1 ) gửi MAC K (2, KT A1 , KT B1 ) cho A cùng với thẻ khóa KT B1 . Bước 3. Kiến thiết thẻ khóa (A2) Thực thể A tính khóa bí mật chia sẻ : K AB = (( r A + p ( KT A1 ) d A ). l )( h .( KT B1 + p ( KT B1 ) P B )) và kiểm tra MAC K (2, KT A1 , KT B1 ) Tiếp đó A tính MAC K (3, KT A1 , KT B1 ) và gửi cho B . Bước 4. Kiểm tra (B2) Thực thể B tính MAC K (3, KT A1 , KT B1 ) và kiểm tra thực thể A . 2.4. Hàm dẫn xuất khóa KDF 2.4.1 Hàm dẫn khóa 1 Dạng thức của KDF KDF ( Z, Otherlnput ) trong đó Otherlnput là keydatalen và OtherInfo (các đại lượng này được giải thích về sau). Các giá trị cố định: hashlen : số nguyên chỉ độ dài đầu ra (theo bit) của hàm băm được sử dụng để dẫn xuất ra các khối của dữ liệu khóa bí mật. max_hash_inputlen : số nguyên có giá trị là độ dài lớn nhất (theo bit) của (các) chuỗi bit đầu vào của hàm băm. Các hàm bổ trợ: H: là hàm băm được chấp thuận là hàm băm được quy định tại QCVN 5 : 2016/BQP Quy chuẩn kỹ thuật quốc gia về Chữ ký số sử dụng trong lĩnh vực ngân hàng. Đầu vào: Z: Chuỗi byte bí mật chia sẻ trước. keydatalen : số nguyên chỉ độ dài (theo bit) của dữ liệu khóa bí mật được sinh ra; keydatalen cần nhỏ hơn hoặc bằng Hashlen x (2 32 - 1) OtherInfo : Chuỗi bit sau: AlgorithmlD || PartyAInfo || PartyBInfo || SuppPubInfo || SuppPrivInfo} trong đó các trường con được định nghĩa như sau: - AlgorithmID : Chuỗi bit chỉ ra cách thức phân tách dữ liệu khóa đã được dẫn xuất ra và dữ liệu khóa được dẫn xuất sẽ được sử dụng cho những thuật toán nào. Ví dụ, Algorith I D có thể chỉ ra rằng các bit 1-80 được dùng là 80-bit khóa cho HMAC và các bit 81-208 được dùng là 128-bit khóa cho AES. - PartyAInfo : Một chuỗi bit chứa các thông tin công khai được yêu cầu bởi ứng dụng sử dụng hàm KDF được đóng góp bởi bên A trong quá trình dẫn xuất khóa, ở mức tối thiểu, PartyA I n f o chứa I D A là định danh bên A . Xem chú ý phần dưới. - PartyB I n f o : Một chuỗi bit chứa các thông tin công khai được yêu cầu bởi ứng dụng sử dụng hàm KDF được đóng góp bởi bên B trong quá trình dẫn xuất khóa, ở mức tối thiểu, PartyVInfo chứa I D B là định danh bên B . Xem chú ý phần dưới. - (Tùy chọn) SuppPubInfo : Một chuỗi bit chứa các thông tin công khai bổ sung cả hai bên cùng biết (mutual-kno w n) - (Tùy chọn) SuppPriv I nfo : Một chuỗi bit chứa thông tin bí mật bổ sung cả hai bên cùng biết (mutual-kno w n) (Ví dụ, một khóa bí mật đối xứng chia sẻ trước được truyền thông qua một kênh riêng biệt) Thuật toán: 1. Tính reps = é keydatalen/hashlen ù . 2. Nếu ( reps > 2 32 - 1) thì ABORT: chỉ thị lỗi và dừng. 3. Khởi tạo bộ đếm chuỗi bit 32-bit big-endian counter bằng 00000001 16 . 4. Nếu counter || Z || Other I nfo có độ dài lớn hơn max_hash _i nputlen thì chỉ thị lỗi và dừng lại. 5. Vòng lặp với i = 1 đến reps , thực hiện : 5.1. Tính Hash i = H( counter || Z || Other I nfo ). 5.2. Tăng counter lên 1 ( modulo 2 32 ), xử lý nó dưới dạng số nguyên không âm 32-bit. 6. Lấy Hash là Hash reps nếu ( keydatalen / hashlen ) là số nguyên, ngược lại lấy số lượng ( keydatalen mod hashlen ) bit bên trái của đoạn dữ liệu Hash reps . 7. Lấy DerivedKeyingMaterial = Hash 1 || Hash 2 ||... . || Hash rep s - 1 || Hhash Đầu ra : Chuỗi bit DerivedKeyingMaterial có độ dài keydatalen bit (hoặc thông báo lỗi). Thuật toán KDF tạo ra dữ liệu khóa có độ dài lớn nhất là hashlen x (2 32 - 1). Bất kỳ lời gọi hàm KDF nào trong trường hợp sử dụng giá trị keydatalen lớn hơn hashlen x (2 32 - 1) sẽ dẫn tới chỉ thị lỗi và dừng mà không cho ra DerivedKeyingMaterial . Bất kỳ lời gọi hàm KDF nào dùng để băm một chuỗi bit có độ dài lớn hơn max_hash_inputlen cũng sẽ dẫn tới thông báo lỗi và dừng mà không xuất ra DerivedKeyingMaterial . Chú ý: a) I D A và ID B sẽ được biểu diễn trong OtherInfo là hai đơn vị thông tin riêng rẽ. b) Bên A sẽ là bên khởi tạo và bên B có thể là bên trả lời của giao thức sử dụng lược đồ thỏa thuận khóa được dùng để xác định khóa bí mật chia sẻ trước Z . 2.4.2. Hàm dẫn xuất khóa 2 Ký hiệu hashlen chỉ độ dài đầu ra của hàm hash được chọn và maxhashlen là độ dài đầu vào cực đại của hàm hash. Đầu vào Đầu vào của hàm dẫn xuất khóa là - Z Xâu bit là bí mật chia sẻ. CHÚ THÍCH: Giao thức thỏa thuận khóa sử dụng mật mã trên đường cong elliptic dẫn xuất ra khóa bí mật chia sẻ K AB hoặc dưới dạng một điểm trên đường cong elliptic hoặc dưới dạng ghép hai điểm. Trong trường hợp thứ nhất, để có được khóa mật chia sẻ Z làm đầu vào cho hàm dẫn xuất khóa thì phải áp dụng hàm p để chuyển điểm trên đường cong elliptic thành số nguyên và từ đó chuyển sang xâu bit. Trong trường hợp thứ hai áp dụng hàm p cho cả hai điểm để được hai số nguyên z 1 , z 2 ; hai số nguyên này sau đó được biến đổi thành các xâu bít và được ghép lại với nhau. - Keydatalen số nguyên biểu thị độ dài tính bằng bit của dữ liệu khóa được tạo ra, nhỏ hơn đại lượng hashlen x (2 32 - 1) - (T ùy chọn) Xâu bit Shared I n f or gồm một dữ liệu nào đó được hai thực thể dùng chung nhằm chia sẻ bí mật Z . Thuật toán Hàm dẫn xuất khóa được tính như sau: 1. Khởi động bộ đếm 32-bit 00000001 (Hệ thập lục) 2. Vòng lặp với i = 1 đến j = [ keydatalen/hashlen ] thực hiện: - Tính Hash i = H(Z || counter || Sharedln f o ) 3. Tăng giá trị bộ đếm 4. Tăng i 5. Giả sử HHash j biểu thị HHash j khi Keydata l en/hashlen là số nguyên và biểu thị ( Keydatalen (h ashlen x (j - 1))) bit bên trái nhất của Hash i trong trường hợp ngược lại 6. Đặt Keydata = Hash 1 || Hash 2 || … || Has h j -1 || HHash j Đầu ra Là dữ liệu khóa ở dạng xâu bit có độ dài bằng keydatalen . CHÚ THÍCH: Lưu ý là hàm dẫn xuất khóa tạo ra dữ liệu khóa có độ dài nhỏ hơn hashlen x (2 32 - 1) bit. Bất kì lược đồ nào gọi hàm dẫn xuất khóa cho xâu bít lớn hơn hoặc bằng hashlen x (2 32 - 1) bit sẽ cho ra thông báo “lỗi” và dừng lại. Tương tự, tất cả hàm dẫn xuất khóa được gọi ra không băm các xâu bít có độ dài lớn hơn maxhashlen . Bất kì lược đồ nào gọi hàm dẫn xuất khóa băm các xâu bít có độ dài lớn hơn maxhashlen đều cho ra thông báo “lỗi” và dừng lại. 2.5. Giao thức vận chuyển khóa bí mật Điều này trình bày giao thức vận chuyển khóa bí mật, một khóa được truyền từ thực thể A sang thực thể B và một khóa được truyền từ thực thể B sang thực thể A . Bước 1. Kiến thiết thẻ khóa (A1): Thực thể A tạo ra một thẻ khóa KT A1 bao gồm một số ngẫu nhiên r A và một trường dữ liệu tùy chọn Text 1 rồi gửi nó cho thực thể B : KT A1 = r A || Text 1 Bước 2. Mã khóa khối khóa (B1.1): Thực thể B có một khóa K B và muốn gửi một cách an toàn cho thực thể A . Trước hết B tạo ra khối dữ liệu khóa bao gồm định danh riêng biệt của bên gửi B , khóa K B và trường dữ liệu tùy chọn Text2 . Thực thể B mã hóa khối dữ liệu khóa này bằng phép mã công khai E A của A , thu được khối mã: BE 1 = E A ( ID B || K B || Text2 ) Bước 3. Kiến thiết thẻ khóa (B1.2): Thực thể B tạo ra một khối thẻ khóa bao gồm định danh riêng biệt của bên nhận A , một số ngẫu nhiên r A nhận được ở bước 1, một số ngẫu nhiên mới r B (tùy chọn) do B tạo ra, khối đã mã BE 1 và một trường dữ liệu tùy chọn Text3 . Tiếp đó , B tiến hành ký khối dữ liệu thẻ bằng phép ký bí mật của mình và gửi kết quả cho A : KT B1 = S B ( r B || r A || I D A || BE 1 || Text3 ) || Text 4 Bước 4. Kiểm tra thẻ khóa (A2.1): Thực thể A sử dụng phép kiểm tra công khai của bên gửi V B để kiểm tra chữ ký số của thẻ khóa nhận được KT B1 . Tiếp đó A kiểm tra định danh riêng biệt A và kiểm tra giá trị nhận được r A xem có khớp với số ngẫu nhiên nhận được ở Bước 1 (A1) hay không. Bước 5. Giải mã khối khóa (A2.2): Thực thể A tiến hành giải mã khối BE 1 bằng phép giải mã bí mật D A của mình. Tiếp đó, A kiểm tra định danh riêng biệt của bên gửi B . Nếu tất cả lần kiểm tra đều thành công thì A chấp nhận khóa K B . Bước 6. Mã khóa khối khóa (A2.3): Thực thể A có một khóa K A muốn gửi cho B một cách an toàn. Trước hết, A tạo ra khối dữ liệu khóa bao gồm định danh riêng biệt của bên gửi A , khóa K A và trường dữ liệu tùy chọn Text 5 . Tiếp đến, A mã hóa khối dữ liệu khóa này bằng phép mã công khai E B của B để được khối mã: BE 2 = E B ( ID A || K A || Text 5 ) Bước 7. Kiến thiết thẻ khóa (A2.4): Thực thể A tạo ra một khối thẻ khóa bao gồm định danh riêng biệt của bên nhận B , một số ngẫu nhiên r A do A tạo ra bước 1 (A1), một số ngẫu nhiên mới r B do B tạo ra ở (B1.2), khối đã mã BE 2 và một trường dữ liệu tùy chọn Text6 . Tiếp đ ó , A tiến hành ký khối dữ liệu thẻ bằng phép ký bí mật của mình và gửi kết quả cho B : KT A2 = S A ( r A || r B || ID B || BE 2 || Text 6 ) || Text 7 Bước 8. Kiểm tra thẻ khóa (B2.1) Thực thể B sử dụng phép kiểm tra công khai của bên gửi V A để kiểm tra chữ ký số của thẻ khóa nhận được KT A2 . Tiếp đó B kiểm tra định danh riêng biệt B của mình và kiểm tra giá trị nhận được r B xem có khớp với số ngẫu nhiên ở Bước 3 (B1.2) hay không. Ngoài ra, B cũng kiểm tra giá trị ngẫu nhiên nhận được r A xem có khớp với số ngẫu nhiên ở Bước 1 (A1) hay không. Hình 2 - Cơ chế vận chuyển khóa bí mật Bước 9. Giải mã khối khóa (B2.2): Thực thể B tiến hành giải mã khối BE 2 bằng phép giải mã bí mật D B của mình. Tiếp đó, B kiểm tra định danh riêng biệt của bên gửi A . Nếu tất cả phép kiểm tra đều thành công thì B chấp nhận khóa K A . CHÚ THÍCH: Trong tình huống chỉ có một bên gửi khóa bí mật cho bên kia, chẳng hạn thực thể B muốn chuyển khóa bí mật K B cho A, thì chỉ cần thực hiện giao thức trên từ bước 1 đến bước 5. 2.6. Giao thức vận chuyển khóa công khai Điều này trình bày hai giao thức truyền thông tin khóa công khai từ một thực thể A đến một thực thể B. Giao thức thứ nhất (giao thứ 2.6.1) không sử dụng bên thứ ba tin cậy, theo giao thức này để kiểm tra tính toàn vẹn và nguồn gốc của thông tin khóa công khai, hai thực thể sử dụng một hàm băm được quy định tại QCVN 5 : 2016/BQP. Giao thức thứ hai (giao thức 2.6.2) giả thiết là chứng thư khóa công khai hợp lệ Cert A của A được cấp bởi bên thứ ba tin cậy là Tổ chức chứng thực và cấp chứng chỉ khóa công khai CA, theo giao thức này thực thể B có thể truy cập vào bản sao có xác thực của phép kiểm tra khóa công khai của tổ chức này. 2.6.1. Giao thức vận chuyển khóa công khai không sử dụng bên thứ ba tin cậy Giao thức gồm bốn bước và được minh họa trên Hình 3. Hình 3: Cơ chế vận chuyển khóa công khai Bước 1. Kiến thiết thẻ khóa (A1): A tạo ra một thẻ khóa KT A1 bao gồm thông tin khóa công khai của A và gửi đến cho B : KT A1 = PK I A || Text 1 Bước 2. Tiếp nhận thẻ khóa (B1): B tiếp nhận được thẻ khóa, trích lấy thông tin khóa công khai PK I A . Hoặc B sẽ thực hiện kiểm tra khóa kiểm tra của A hoặc sẽ lưu trữ nó ở nơi tránh được giả mạo phục vụ để cho lần kiểm tra sau hoặc sẽ sử dụng. Bước 3. Kiến tạo thẻ kiểm tra (A2): A tính toán giá trị kiểm tra hash ( PK I A ) đối với thông tin khóa công khai của mình và gửi giá trị kiểm tra này cùng với các định danh tùy chọn riêng biệt của A và B rồi gửi đến thực thể B sử dụng một kênh truyền có xác thực và độc lập thứ hai (ví dụ kênh truyền điện báo hoặc đường truyền thư đăng ký trước). KT A2 = A || B || hash ( PK I A ) || Text2 Bước 4. Kiểm tra thẻ khóa (B2): Dựa vào thông tin thẻ khóa nhận được KT A2 , B có thể tùy chọn kiểm tra định danh riêng biệt của A và B , tính toán ra giá trị kiểm tra trên thông tin khóa công khai của A nhận được từ thẻ khóa KT A1 và so sánh với giá trị kiểm tra nhận được từ thẻ khóa KT A2 . Nếu kết quả kiểm tra thành công thì B lấy khóa công khai của A đưa lên danh sách các khóa đang hoạt động (danh sách này được bảo vệ chống lại sự giả mạo). 2.6.2. Giao thức vận chuyển khóa công khai sử dụng bên thứ ba tin cậy Giao thức gồm hai bước và được minh h ọa trên Hình 4. Hình 4 - Cơ chế vận chuyển khóa công khai 2 Bước 1. Kiến thiết thẻ khóa (A1): Thực thể A tạo ra một thẻ khóa KT A bao gồm ch ứ ng chỉ khóa công khai của A và gửi nó cho B: KT A = Cert A || Text Bước 2. Kiểm tra chứng chỉ (B1): Dựa trên thông tin nhận được về chứng chỉ khóa công khai, B sử dụng phép kiểm tra công khai V CA của CA để kiểm tra tính xác thực của thông tin khóa công khai và kiểm tra cả tính hợp lệ đối với khóa công khai của A . 2.7. Quy định kỹ thuật cho các tham số 2.7.1. Quy định về nguồn ngẫu nhiên Các số ngẫu nhiên được sử dụng cho các mục đích khác nhau như để sinh các tham số mật mã, các khóa mật mã, các giá trị ngẫu nhiên dùng một lần và các giá trị thách đố xác thực. Một số bộ sinh bit ngẫu nhiên tất định DRBG được chấp thuận để sử dụng theo quy định chung bao gồm: HASH_DRBG, HMAC_DRBG và CTR_DRBG. Các bộ sinh bit ngẫu nhiên RBG tuân theo SP800-90A phiên bản sửa đổi lại năm 2015 để sinh bit ngẫu nhiên cũng được chấp thuận để sử dụng tiếp. 2.7.2. Quy định đối với tham số RSA 2.7.2.1. Các yêu cầu chung 1. Số mũ công khai e cần phải được chọn với các ràng buộc sau: a) Số mũ công khai e cần được chọn trước khi tạo số mũ bí mật d ; b) Số mũ công khai e cần phải là số nguyên dương lẻ sao cho 65 , 537 ≤ e <> n l e n-2security_strength Với nlen là độ dài của modulo n theo bit. Chú ý rằng e có thể là giá trị bất kỳ thỏa mãn ràng buộc 1(b); p và q sẽ được chọn (trong mục 2) sao cho e là nguyên tố cùng nhau với cả ( p - 1) và ( q - 1). 2. Hai số nguyên tố p và q được tạo ngẫu nhiên và giữ bí mật cần phải được chọn với các ràng buộc sau: a) ( p - 1) và ( q - 1) cần phải là nguyên tố cùng nhau với số mũ công khai e ; b) Mỗi một trong bốn số ( p + 1), ( p - 1) và ( q + 1), ( q - 1) cần phải có các nhân t ử nguyên tố lớn hơn 2 security-stren g th+20 ; c) Nhân tử nguyên tố bí mật p, q cần phải được chọn ngẫu nhiên từ các số nguyên tố thỏa mãn ( )(2 ( nlen/ 2)-1 ) ≤ q < p="" ≤=""> ( nlen /2 ) - 1); d) | p - q | > 2 ( n l e n /2-100) . 3. Số mũ bí mật d cần phải được lựa chọn sau khi tạo p và q với các ràng buộc: a) Số mũ d cần phải lớn hơn 2 ( n l en /2) , và b) d = e - 1 mod ( LCM (( p - 1), ( q - 1))) (Chi tiết về hàm tạo các tham số RSA có thể tham khảo trong tài liệu FIPS 186-4: Digital Signature Standard). 2.7.2.2. Quy định ngưỡng giá trị cho tham số theo thời hạn sử dụng Thời hạn Quy định RSA 2020 | p | = 1536 2030 | p | = 2048 Sau 2030 | p | = 3072 2.7.3. Hệ mật dựa trên Logarit rời rạc DL Tham số của hệ mật dựa trên bài toán Logarit rời rạc trên trường hữu hạn F p là bộ: (p ,q,g), tron g đó p là đặc số của trường F p , q là bậc của nhóm F*(p) và là ước của p - 1 thỏa mãn các điều kiện sau: - p, q là số nguyên tố - Độ dài của p , q được cho dưới bảng sau: Năm Độ dài p Độ dài q Đến 2020 | p | = 1536 || q|| = 192 Đến 2030 | p | = 2048 || q|| = 224 Sau năm 2030 | p | = 3072 || q|| = 256 2.7.4. Hệ mật ECC 2.7.4.1 Quy định về các khóa Kiểm tra tính hợp lệ của các tham số miền (p, SEED, a, b, G, n, h) như sau: Xâu SEED dùng để sinh ngẫu nhiên đường cong Elliptic xác định trên trường F p với p là số nguyên tố lẻ. Trước khi sử dụng một bộ tham số miền, tính hợp lệ của nó phải được kiểm tra theo thuật toán dưới đây: 1. Kiểm tra p là một số nguyên tố lẻ. 2. Kiểm tra a, b, x G , y G là các phần tử của trường F p . 3. Kiểm tra rằng a và b được dẫn xuất tương ứng từ SEED . 4. Kiểm tra (4 a 3 + 27 b 2 ) khác 0 và j ( E ) ≠ 0; 1728 trong F p 5. Kiểm tra trong F p . 6. Kiểm tra n là nguyên tố và n > 4 . 7. Kiểm tra nG = O E . 8. Kiểm tra đường cong có thuộc danh sách các đường cong yếu: a. Thỏa mãn điều kiện MOV, (chú ý rằng một đường cong thỏa mãn điều kiện MOV sẽ không phải là đường cong siêu biến). b. Kiểm tra đường cong không kì dị, nghĩa là # E ≠ p . Nếu bất kỳ sự kiểm tra nào ở trên thất bại thì tham số miền phải được xem là không hợp lệ. Điều kiện MOV được hiểu là không có giá trị k nguyên dương nào 0 k <> B để cho p k - 1 chia hết cho n . Trên thực hành hiện nay | p | = 224 bit thì người ta xét với B = 15 là đủ vì khi đó | p k | = 3360 > 2048. Các hệ số a,b của đường cong được sinh ngẫu nhiên trên F p từ đầu vào SEED và có thể kiểm tra được. Khóa bí mật d phải được sinh ngẫu nhiên trong khoảng [1, n - 1 ]. Đường cong Elliptic xác định trên trường hữu hạn F p với tối thiểu | p | = 224 bit và được xác định cụ thể như sau: Độ dài bit của n Độ dài bit của p 224 - 255 | p | = 224 256 - 383 | p | = 256 384 - 511 | p | = 384 ≥ 512 | p | = 521 Đại lượng Co f actor được định nghĩa và ký hiệu là h = #E(F p )/n tuân theo bảng dưới đây: Độ dài bit của n Giá trị h cực đại cho phép 224 - 255 2 14 256 - 383 2 16 384 - 511 2 24 ≥ 512 2 32 2.7.5. Độ an toàn theo bit quy đổi giữa RSA, DL và ECC Độ an toàn ECC RSA DL 112 224 2048 2048 128 256 3072 3072 192 384 7680 7680 256 512 15360 15360 3. QUY ĐỊNH VỀ QUẢN LÝ 3.1. Các mức giới hạn của đặc tính kỹ thuật mật mã và yêu cầu quản lý khóa mật mã nêu tại Quy chuẩn này là các chỉ tiêu chất lượng phục vụ được quản lý theo quy định về quản lý chất lượng sản phẩm, dịch vụ mật mã dân sự được quy định tại Luật An toàn thông tin mạng ngày 19 tháng 11 năm 2015. 3.2. Hoạt động kiểm tra chất lượng sản phẩm mật mã được cơ quan quản lý nhà nước có thẩm quyền tiến hành định kỳ hàng năm hoặc đột xuất. 3.3. Quản lý sử dụng khóa mật mã: - Các loại khóa mật mã phải được lập thành danh mục với việc mô tả chi tiết mục đích sử dụng, thời hạn sử dụng. - Đảm bảo sử dụng khóa đúng mục đích được quy định (chẳng hạn khóa dùng để mã các khóa khác không được sử dụng để mã hóa dữ liệu), không sử dụng khóa đã hết hạn sử dụng hoặc hủy khóa trước thời hạn đảm bảo khả năng giải mã khi dữ liệu hết thời hạn bảo mật. Không cung cấp khóa cho người nhận không có thẩm quyền. - Khóa mật mã phải được bảo vệ chống lại các mối nguy cơ như bị lộ (ngoại trừ các khóa công khai), sửa đổi, phá hủy và tái sử dụng. Việc bảo vệ phải thực hiện suốt cả vòng đời của khóa. Mục tiêu bảo vệ phải phù hợp với từng loại khóa. Đối với khóa công khai cần đảm bảo tính toàn vẹn và tính khả dụng, đối với khóa bí mật phải đảm bảo đầy đủ cả ba tính chất: bí mật, toàn vẹn và khả dụng. Bảo vệ khóa phải kết hợp đồng bộ các giải pháp bằng kỹ thuật mật mã, phương tiện vật lý và phương tiện tổ chức để tạo ra một vùng an toàn để cất giữ khóa, sử dụng khóa và thực thi thuật toán mật mã: + Khóa phải được lưu trữ trong một thiết bị lưu trữ an toàn tách biệt (được gọi là vật mang khóa như HSM, thẻ Token hay thẻ thông minh) để đảm bảo khóa được lưu trữ và tương tác với các thuật toán mật mã an toàn. Trong trường hợp vật mang khóa là mô-đun an toàn phần cứng HSM, yêu cầu an toàn tối thiểu mức 3, trường hợp vật mang khóa là thẻ Token hay thẻ thông minh, yêu cầu an toàn tối thiểu mức 2 (mức an toàn được quy định tại TCVN 11295:2016 (ISO/IEC 19790:2012) Công nghệ thông tin - Các kỹ thuật an toàn - Yêu cầu an toàn cho mô-đun mật mã). + Trường hợp khóa lưu trữ ở dạng mềm cần sử dụng kỹ thuật mật mã để bảo vệ (Tuân thủ theo các quy định tại QCVN 4 : 2016/BQP và QCVN 5 : 2016/BQP). + Trường hợp hệ thống khóa được tổ chức theo cấu trúc phân cấp, các khóa cùng tầng chỉ được dùng để bảo vệ khóa ở tầng kế tiếp. Khóa chủ, tức khóa ở tầng cao nhất, phải được bảo vệ bằng cách chia ra nhiều thành phần và mỗi thành phần được bảo vệ riêng. Biện pháp này nhằm chống nguy cơ khóa bị lộ từ bên trong nội bộ. - Việc hủy khóa phải đảm bảo hủy bỏ được tất cả các bản ghi khóa, bao gồm cả các bản sao dự phòng, sao cho không thể khôi phục được bất kì thông tin khóa nào dù bằng bất kì phương tiện nào. Đồng thời không để bất kì khóa nào bị hủy bỏ trước thời hạn nhằm đảm bảo khả năng giải mã khi dữ liệu hết thời hạn bảo mật. - Nếu khóa bị tổn thương hoặc bị nghi ngờ tổn thương hoặc có sự thay đổi chủ sở hữu thì phải thực hiện thu hồi khóa để vô hiệu hóa nguy cơ bị lộ hoặc mất an toàn. - Thiết bị lưu trữ khóa phải được quản lý bởi người sử dụng. Người sử dụng có trách nhiệm bảo quản khóa ở vị trí an toàn, chống tiếp cận trái phép, chống sao chép hoặc bị đánh cắp. Không cung cấp khóa cho người không có thẩm quyền. 4. TRÁCH NHIỆM CỦA TỔ CHỨC, CÁ NHÂN 4.1. Các tổ chức tín dụng (trừ quỹ tín dụng nhân dân cơ sở có tài sản dưới 10 tỷ, tổ chức tài chính vi mô) sử dụng sản phẩm, dịch vụ mật mã dân sự có trách nhiệm đảm bảo tuân thủ Quy chuẩn này và chịu sự kiểm tra của cơ quan quản lý nhà nước theo quy định. 4.2. Doanh nghiệp cung cấp sản phẩm, dịch vụ mật mã dân sự cho các tổ chức tín dụng (trừ quỹ tín dụng nhân dân cơ sở có tài sản dưới 10 tỷ, tổ chức tài chính vi mô) có trách nhiệm thực hiện công bố hợp quy sản phẩm, dịch vụ mật mã dân sự phù hợp với Quy chuẩn này. Việc công bố hợp quy thực hiện theo Thông tư số 28/2012/TT-BKHCN ngày 12 tháng 12 năm 2012 của Bộ Khoa học và Công nghệ. 4.3. Cục Quản lý mật mã dân sự và Kiểm định sản phẩm mật mã - Ban Cơ yếu Chính phủ có trách nhiệm tiếp nhận đăng ký công bố hợp quy, thực hiện quản lý, hướng dẫn và kiểm tra việc công bố hợp qu y . 5. TỔ CHỨC THỰC HIỆN 5.1. Cục Quản lý mật mã dân sự và Kiểm định sản phẩm mật mã - Ban Cơ yếu Chính phủ có trách nhiệm hướng dẫn, tổ chức triển khai quản lý kỹ thuật mật mã của Quản lý khóa theo Quy chuẩn này. 5.2. Trong trường hợp các quy định nêu tại Quy chuẩn kỹ thuật quốc gia này có sự thay đổi, bổ sung hoặc được thay thế thì thực hiện theo quy định tại văn bản mới./.