YuITC/Vietnamese-Legal-Documents huggingface dataset:
Các bit còn lại của Y được bỏ đi. Các bit biến bản rõ/bản mã có chỉ số từ 1 đến j. Biến bản mã được tăng thêm bằng cách đặt k - j bit trong vị trí bit tận cùng bên trái của mình để tạo biến phản hồi F độ dài k-bit. Sau đó các bit của bộ đệm phản hồi FB được dịch trái đi k vị trí và F được thêm vào vị trí k tận cùng bên phải để tạo ra giá trị mới của bộ đệm phản hồi FB. Trong phép toán dịch, k bit tận cùng bên trái của FB được bỏ đi. n bit tận cùng bên trái mới của FB được sử dụng như là đầu vào tiếp theo của X trong quá trình mã hóa. Hình 10: Chế độ phản hồi mã CFB
2.1.1. Quy định kỹ thuật 2.1.1.1. Quy định chung: Quá trình chữ ký số Sử dụng Ghi chú Tạo chữ ký số Độ an toàn ≥ 112 bit: DSA: |p| ≥ 2048 và |q| ≥ 224 RSA: |n| ≥ 2048 EC: |n| ≥ 224 Xác thực chữ ký số Độ an toàn ≥ 112 bit: DSA: |p| ≥ 2048 và |q| ≥ 224 RSA: |n| ≥ 2048 EC: |n| ≥ 224 2.1.1.2. Quy định chi tiết 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.1.2. Chữ ký số RSA-PSS 2.1.2.1. Các yêu cầu chung 2.1.2.2. Quy định chi tiết về các khóa RSA 2.1.2.3. Tạo chữ ký số RSASSA - PSS - SIGN(K, M) Đầu vào: K khóa bí mật RSA của người ký M thông điệp sẽ được ký, là một chuỗi octet Đầu ra: S chữ ký, chuỗi octet có độ dài k, với k là độ dài của modulo RSA theo octet Thông báo lỗi: “văn bản quá dài”, “lỗi định dạng” Các bước: 2.1.2.4. Xác thực chữ ký số RSASSA - PSS - VERlFY((n, e), M, s) Đầu vào: (n, e) khóa công khai RSA của người ký M thông điệp mà chữ ký của nó cần được kiểm tra, là chuỗi octet S chữ ký được kiểm tra, chuỗi octet có độ dài k, với k là độ dài theo octet của số n, modulo RSA Đầu ra: “chữ ký hợp lệ” hoặc “chữ ký không hợp lệ” Các bước: 2.1.3. Chữ ký số ECDSA 2.1.3.1.
Quy định chi tiết về các khóa ECDSA: 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 Fp 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: 2.1.3.2. Tạo chữ ký số Thuật toán Chữ ký số Đường cong Elliptic (ECDSA) thực hiện việc sinh chữ ký của thông báo m, làm việc như sau: Sinh chữ ký ECDSA Đầu vào: Các tham số miền (E,P), khóa bí mật d, thông báo m. Đầu ra: Chữ ký (r, s). 2.1.3.3. Xác thực chữ ký số Để kiểm tra chữ ký số (r,s) của thông báo m, người kiểm tra tính các bước sau (Q = dP - ký hiệu khóa công khai): Kiểm tra chữ ký ECDSA Đầu vào: Các tham số miền (E,P), khóa công khai Q, thông báo m, chữ ký (r,s) Đầu ra: Chấp nhận hoặc bác bỏ chữ ký. 2.1.4. Chữ ký số DSA 2.1.4.1. Quy định chi tiết về các khóa DSA: 2.1.4.2. Tạo chữ ký số Chọn N là độ dài bit của q,min(N, outlen) biểu thị số nguyên dương nhỏ nhất N và outlen là độ dài bit của khối đầu ra hàm băm. Chữ ký của một thông điệp M bao gồm cặp số r và s được tính toán như sau: r = (gk mod p) mod q. z = các bit tận cùng bên trái min(N, outlen) của Hash(M). s = (k-1(z + xr))mod q. Khi tính s, xâu z thu được từ hàm Hash(M) sẽ được biến đổi sang một số nguyên. Chú ý r có thể được tính bất cứ khi nào nếu biết k, p, q và g. Ví dụ: bất cứ khi nào các tham số miền p, q và g được biết, và k được tính toán trước thì r cũng có thể được tính trước vì thông tin của thông báo được ký không yêu cầu các tính toán của r. Việc tính trước giá trị k, k-1 và r sẽ được bảo vệ một cách tương tự như khóa riêng x tới khi tính toán xong s. Giá trị của r và s sẽ được kiểm tra để xác định xem r = 0 hay s = 0. Nếu một trong hai r = 0 hoặc s = 0 thì một giá trị mới của k sẽ được sinh ra và chữ ký sẽ được tính toán lại. Nếu chữ ký số được sinh ra đúng đắn, thì rất hiếm khi xảy ra r = 0 hoặc s = 0. Chữ ký (r,s) có thể được truyền đi cùng thông điệp để xác thực. 2.1.4.3. Xác thực chữ ký số Gọi M', r’ và s’ là các phiên bản tương ứng đã nhận được của M, r và s; gọi y là khóa công khai của người ký; gọi N là độ dài bit của q, và min(N, outlen) biểu thị số nguyên dương nhỏ nhất n và outlen, ở đây outlen là độ dài bit của khối đầu ra hàm băm. Tiến trình xác thực chữ ký được thực hiện như sau: 2.1.5.
Chữ ký số RSASSA-PKCS1-v1_5 2.1.5.1. Các yêu cầu chung 2.1.5.2. Quy định chi tiết về các khóa RSA 2.1.5.3 Tạo chữ ký số RSASSA - PKCS1 - V1_5 - SIGN (K,M) Đầu vào: K khóa bí mật RSA của người ký M thông báo được ký theo xâu bộ 8 Đầu ra: S Chữ ký, một xâu bộ 8 của độ dài k trong đó k là độ dài theo bộ 8 của RSA modulo n Các lỗi “Thông báo quá dài”; “Modulo RSA quá ngắn” Các bước thực hiện: 2.1.5.4. Xác thực chữ ký số RSASSA - PKCS1 - V1-5 - VERIFY ((n,e),M,S) Đầu vào: (n, e) khóa công khai RSA của người ký M thông báo (chữ ký số) cần xác thực theo xâu bộ 8 S Chữ ký cần xác thực là xâu bộ 8 độ dài k trong đó k là độ dài theo 8 bộ của RSA modulo n Đầu ra: “Chữ ký hợp lệ” hoặc “chữ ký không hợp lệ” Các lỗi: “Thông điệp quá dài”; “Modulo RSA quá ngắn” Các bước thực hiện:
1. Số mũ công khai e cần phải được chọn với các ràng buộc sau: 1. Kiểm tra p là một số nguyên tố lẻ. 1. Số mũ công khai e cần phải được chọn với các ràng buộc sau: 1. Kiểm tra p là một số nguyên tố lẻ.
a) Số mũ công khai e cần được chọn trước khi tạo số mũ bí mật d; 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 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). b) Số mũ công khai e cần phải là số nguyên dương lẻ sao cho 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: 2. Kiểm tra a, b, xG, yG là các phần tử của trường Fp. 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: 2. Kiểm tra a, b, xG, yG là các phần tử của trường Fp.
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; 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 2security-strength+20; 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 2security-strength+20;
d) |p - q| > 2(nlen/2-100). d) |p - q| > 2(nlen/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: 3. Kiểm tra rằng a và b được dẫn xuất tương ứng từ SEED. 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: 3. Kiểm tra rằng a và b được dẫn xuất tương ứng từ SEED.
a) Số mũ d cần phải lớn hơn 2(nlen/2), và a) Số mũ d cần phải lớn hơn 2(nlen/2), và
b) d = e-1mod(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). b) d = e-1mod(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).
4. Kiểm tra (4a3 + 27b2) khác 0 và j(E) ≠ 0; 1728 trong Fp 4. Kiểm tra (4a3 + 27b2) khác 0 và j(E) ≠ 0; 1728 trong Fp
5. Kiểm tra trong Fp. 5. Kiểm tra trong Fp.
6. Kiểm tra n là nguyên tố và n > 4. 6. Kiểm tra n là nguyên tố và n > 4.
7. Kiểm tra nG = OE. 7. Kiểm tra nG = OE.
a) IDA và IDB sẽ được biểu diễn trong OtherInfo là hai đơn vị thông tin riêng rẽ. a) IDA và IDB 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. 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.
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ệ. Các hệ số a,b của đường cong được sinh ngẫu nhiên trên Fp 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 Fp 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 Cofactor được định nghĩa và ký hiệu là h = #E(Fp)/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 214 256 - 383 216 384 - 511 224 ≥ 512 232 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ệ. Các hệ số a,b của đường cong được sinh ngẫu nhiên trên Fp 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 Fp 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 Cofactor được định nghĩa và ký hiệu là h = #E(Fp)/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 214 256 - 383 216 384 - 511 224 ≥ 512 232
9. Trả về (r,s)
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.
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 (232 - 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ụ, AlgorithID 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, PartyAInfo chứa IDA là định danh bên A. Xem chú ý phần dưới. - PartyBInfo: 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 IDB 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-known) - (Tùy chọn) SuppPrivInfo: Một chuỗi bit chứa thông tin bí mật bổ sung cả hai bên cùng biết (mutual-known) (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: 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ẻ KAB 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 z1,z2; 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 (232 - 1) - (Tùy chọn) Xâu bit SharedInfor 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:
5.1. Tính Hashi = H(counter||Z||OtherInfo ). 5.1. Tính Hashi = H(counter||Z||OtherInfo ).
5.2. Tăng counter lên 1 (modulo 232), xử lý nó dưới dạng số nguyên không âm 32-bit. 5.2. Tăng counter lên 1 (modulo 232), xử lý nó dưới dạng số nguyên không âm 32-bit.
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 KTA1 bao gồm thông tin khóa công khai của A và gửi đến cho B: KTA1 = PKIA || Text1 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 PKIA. 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(PKIA) đố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). KTA2 = A || B || hash(PKIA) || Text2 Bước 4. Kiểm tra thẻ khóa (B2): Dựa vào thông tin thẻ khóa nhận được KTA2, 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 KTA1 và so sánh với giá trị kiểm tra nhận được từ thẻ khóa KTA2. 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 KTA bao gồm chứng chỉ khóa công khai của A và gửi nó cho B: KTA = CertA || 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 VCA 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.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 KTA1 bao gồm thông tin khóa công khai của A và gửi đến cho B: KTA1 = PKIA || Text1 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 PKIA.
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(PKIA) đố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). KTA2 = A || B || hash(PKIA) || Text2 Bước 4. Kiểm tra thẻ khóa (B2): Dựa vào thông tin thẻ khóa nhận được KTA2, 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 KTA1 và so sánh với giá trị kiểm tra nhận được từ thẻ khóa KTA2. 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 KTA bao gồm chứng chỉ khóa công khai của A và gửi nó cho B: KTA = CertA || 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 VCA 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.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 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 Fp là bộ: (p,q,g), trong đó p là đặc số của trường Fp, 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 Fp 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: 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 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 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.
Điều 3. Trưởng ban Ban Cơ yếu Chính phủ, Thủ trưởng các cơ quan, đơn vị, tổ chức và cá nhân có liên quan chịu trách nhiệm thi hành Thông tư này./. Điều 3. QUY ĐỊNH VỀ QUẢN LÝ Điều 3. QUY ĐỊNH VỀ QUẢN LÝ Điều 3. QUY ĐỊNH VỀ QUẢN LÝ Điều 3. QUY ĐỊNH VỀ QUẢN LÝ. Nơi nhận: - Chính phủ (để báo cáo); - Thủ tướng Chính phủ (để báo cáo); - Các Bộ, cơ quan ngang Bộ, cơ quan thuộc Chính phủ; - UBND các tỉnh, thành phố trực thuộc Trung ương; - Thủ trưởng BQP, CN TCCT; - Ban Cơ yếu Chính phủ; - Cục Tiêu chuẩn - Đo lường - Chất lượng/BQP; - Cục Kiểm tra văn bản QPPL Bộ Tư pháp; - Công báo, Cổng TTĐTCP; - Cổng TTĐTBQP; - Vụ Pháp chế/BQP; - Lưu: VT, BCY; HT110. BỘ TRƯỞNG Đại tướng Ngô Xuân Lịch QCVN 4 : 2016/BQP QUY CHUẨN KỸ THUẬT QUỐC GIA VỀ MÃ HÓA DỮ LIỆU SỬ DỤNG TRONG LĨNH VỰC NGÂN HÀNG National technical regulation on data encryption used in banking 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. Thuật ngữ và định nghĩa
1.5. Các ký hiệu
2. QUY ĐỊNH KỸ THUẬT
2.1. Quy định chung
2.2. Mã khối 2.2.1. TDEA - Thuật toán mã dữ liệu bội ba 2.2.2. AES 2.2.3. Camellia
2.3. Chế độ hoạt động của mã khối 2.3.1. Chế độ xích liên kết khối mã CBC (Cipher Block Chaining) 2.3.2. Chế độ phản hồi mã CFB (Cipher FeedBack) 2.3.3. Chế độ phản hồi đầu ra OFB (Output Feedback): 2.3.4. Chế độ đếm CTR (Counter)
2.4. Mã dòng
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 Phụ lục A (Quy định): Mô tả DES Phụ lục B (Quy định): Các phép biến đổi của AES Lời nói đầu QCVN 4 : 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Ề MÃ HÓA DỮ LIỆU SỬ DỤNG TRONG LĨNH VỰC NGÂN HÀNG National technical regulation on data encryption used in banking
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ý của các thuật toán mật mã để mã hóa dữ liệu 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.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ý của chữ ký số 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.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.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, dịch vụ 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.2. Hoạt động kiểm tra chất lượng sản phẩm, dịch vụ 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.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.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.
Một số quy định về ngưỡng thời gian và độ an toàn khóa cụ thể: - Quy định nghiệp vụ chung đối với độ an toàn khóa mật mã: Độ an toàn theo bit Thời hạn sử dụng quy định 96 Đến cuối năm 2020 112 Đến cuối năm 2030 ≥ 128 Từ năm 2030 - Thời hạn sử dụng được quy định chi tiết đối với độ an toàn khóa mật mã khóa công khai tính theo bit: Thời hạn Quy định RSA DSA ECDSA (Độ dài p) 2020 |p| = 1536 |p| = 1536, |q| = 192 192 - 224 2030 |p| = 2048 |p| = 2048, |q| = 224 224 - 255 Sau 2030 |p| = 3072 |p| = 3072, |q| = 256 256 - Các hàm băm tương ứng theo Độ an toàn bit: Hàm băm Độ an toàn SHA-224 112 SHA-256 128 SHA-512 256 SHA-384 192 WHIRLPOOL 256 - Độ an toàn theo bit quy đổi giữa RSA, DSA và ECDSA như sau: Độ an toàn ECDSA RSA DSA 112 224 2048 2048 128 256 3072 3072 192 384 7680 7680 256 512 15360 15360 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. 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.
Điều 5. TỔ CHỨC THỰC HIỆN Điều 5. TỔ CHỨC THỰC HIỆN Điều 5. TỔ CHỨC THỰC HIỆN Điều 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 thuật toán mã hóa dữ liệu theo Quy chuẩn này. 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 Chữ ký số theo Quy chuẩn này. 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.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./. PHỤ LỤC A (Quy định) Mô tả DES A.1. Mở đầu Thuật toán DES là mã khối đối xứng có thể xử lí các khối dữ liệu 64 bit, sử dụng khóa bí mật độ dài 64 bit. Mỗi bit thứ tám của khóa mật mã thường được sử dụng để kiểm tra tính chẵn lẻ và được bỏ qua. A.2. Phép mã hóa DES Phép mã hóa được chỉ ra trên Hình A.1 Bản rõ 64-bit trước hết được biến đổi qua hoán vị ban đầu IP. Sau đó khối được chia thành hai nửa L0 và R0, mỗi nửa gồm 32 bit. Tiếp đó thực hiện 16 vòng biến đổi giống nhau được gọi là hàm f, trong đó dữ liệu được kết hợp với khóa. Trong mỗi vòng, nửa phải là đầu vào của hàm f được khóa hóa, hàm này nhận đầu vào 32 bit và khóa con 48 bit Ki và cho đầu ra 32-bit. Đầu ra này tiếp đó được XOR với nửa trái để tạo ra nửa trái mới đã được biến đổi. Tại phần cuối của mỗi vòng, trừ vòng cuối cùng, hai nửa trái và phải đổi chỗ cho nhau để tạo ra Li và Ri tương ứng. Sau khi thực hiện vòng cuối cùng, hai nửa trái và phải được ghép lại với nhau và khối 64-bit nhận được lại được biến đổi qua phép hoán vị cuối IP-1 là hoán vị nghịch đảo của hoán vị ban đầu IP. Đầu ra là bản mã 64 bit. Phép mã hóa được xác định như sau (P và C là dữ liệu, Ki là khóa). (1) IP(P) = L0 || R0 (2) Với i = 1,2…,16: Li = Ri-1 Ri = Li-1 Åf(Ri-1,Ki) (3) C = IP-1(R16 || L16) A.3. Phép giải mã DES Phép giải mã cũng giống như phép mã hóa. Sự khác nhau chỉ ở chỗ, các khóa con Ki được sử dụng theo thứ tự ngược lại. A.4. Các hàm DES A.4.1.
Phép hoán vị ban đầu IP Phép hóa vị ban đầu IP được chỉ ra tại Bảng A.1. Hoán vị này nhận đầu vào 64-bit và cho đầu ra 64-bit, theo đó bit thứ nhất được hoán vị thành bit thứ 58, bit thứ hai thành bit thứ 50.v.v, bit cuối cùng thành bit thứ 7. Bảng A.1 - Hoán vị khởi tạo Hình A.1 - Thủ tục mã hóa A.4.2. Hoán vị nghịch đảo IP-1 Hoán vị nghịch đảo IP-1 được chỉ ra trên Bảng A.2, nhận đầu vào 64-bit và cho đầu ra 64- bit. Đầu ra của Thuật toán nhận bit thứ 40 của khối đầu ra trước đó làm bit thứ nhất, bit thứ 8 làm bit thứ hai.v.v và bit thứ 25 của khối đầu ra trước đó làm bit cuối cùng. Bảng A.2 - Hoán vị nghịch đảo IP-1 A.4.3. Hàm f Hàm f được chỉ ra trên Hình A.2 Hàm f nhận đầu vào 32 bit R và mở rộng thành R' có độ dài 48-bit bằng cách sử dụng phép hoán vị mở rộng E. Sau đó 48-bit R' được XOR với khóa con 48-bit K, thu được dữ liệu 48- bit, dữ liệu này được viết thành 8 khối, mỗi khối 6-bit, bằng cách chọn các bit đầu vào của nó theo một thứ tự được qui định trên bảng. Các hàm được chọn duy nhất đó được gọi là các S - box, S1, S2,…,S8 nhận đầu vào là các khối 6-bit ri và cho đầu ra là các khối 4-bit Si(ri). Hàm hoán vị P cho đầu ra 32-bit R'''' từ đầu vào 32-bit R'''' bằng cách hoán vị các bit của khối đầu vào. R'''' là đầu ra của hàm f. Hàm f do đó được xác định như sau (P và C là dữ liệu, Ki là khóa ) Hình A.2 - Tính f(R,K) A.4.4. Hoán vị mở rộng E Hoán vị mở rộng E được chỉ ra trên Bảng A.3. Hoán vị E nhận đầu vào 32- bit và cho đầu ra 48-bit. Ba bit đầu tiên của E là các bit ở các vị trí 32, 1 và 2, hai bit cuối ở các vị trí 32 và 1. Bảng A.3 - Hoán vị mở rộng E A.4.5. Hoán vị P Hoán vị P được chỉ ra trên Bảng A.4. Hoán vị P nhận đầu vào 32-bit và cho đầu ra 32-bit. Đầu ra P(L) của hàm P được xác định bởi Bảng A.4, thu được từ đầu vào L bằng cách lấy bit thứ 16 của L làm bit thứ nhất của P(L), bit thứ bảy làm bit thứ hai của P(L),v.v và bit thứ 25 của L làm bit thứ 32 của P(L). Bảng A.4 - Hoán vị P A.4.6. S-box S-box được chỉ ra trên Bảng A.5. Mỗi S-box có 6- bit đầu vào và 4-bit đầu ra.
Nếu S1 là hàm được xác định trên bảng và B là khối 6-bit, thì S1(B) được xác định như sau: các bit đầu tiên và cuối cùng của B được biểu diễn theo cơ số 2 là một số nằm trong khoảng từ 0 đến 3. Giả sử số đó là i. Bốn bit giữa của B được biểu diễn theo cơ số 2 là số nằm trong khoảng từ 0 đến 15. Giả sử số đó là j. Trên bảng đó là số nằm trên hàng thứ i và cột thứ j. Đó là số nằm trong khoảng từ 0 đến 15, và được biểu diễn duy nhất bởi khối 4-bit. Khối này là đầu ra S1(B) của S1 ứng với đầu vào B. Ví dụ, với đầu vào 011011, hàng được biểu diễn bởi 01 là hàng 1, cột được xác định bởi 1101 là cột 13. Nằm trên giao của hàng 1 và cột 13 là số 5, do đó đầu ra là 0101. Bảng A.5 - Các S-box A.5. Lược đồ tạo khóa DES Phần lược đồ khóa DES được chỉ ra trên Hình A.3. Lược đồ này nhận khóa 64-bit khóa KEY và cho ra 16 khóa con 48-bit K1, K2,……, K16. Trong đó Kn, với 1 ≤ n ≤ 16 là khối 48-bit trong bước (2) của thuật toán. Bởi vậy để mô tả KS chỉ cần mô tả việc tính toán của Kn từ KEY với n = 1, 2..., 16. Việc tính toán này được mô tả trên Hình A.3. Do đó để xác định đầy đủ KS, chỉ cần mô tả hai lựa chọn hoán vị, cũng giống như lược đồ chuyển dịch sang trái. Một bit trong byte 8-bit của KEY có thể được khởi động để phát hiện lỗi trong tạo khóa, phân phối và lưu trữ khóa. Các bit 8,16,..., 64 được sử dụng để bảo đảm là mỗi byte có tính chất lẻ. Lựa chọn hoán vị 1 được xác định bởi Bảng A.6 Bảng A.6 - Hoán vị khóa PC-1 Bảng trên được chia thành hai phần, phần thứ nhất xác định cách chọn các bit trong C0, phần thứ hai xác định cách chọn các bit trong D0. Các bit của KEY được đánh số từ 1 đến 64. Các bit trong C0 tương ứng là 57, 49, 41,..., 44 và 36 của KEY, còn các bit trong D0 là các bit 63, 55, 47,..,12 và 4 của KEY. Với C0 và D0 đã xác định, có thể xác định được Cn và Dn từ Cn-1 và Dn-1, tương ứng với n = 1, 2,..., 16.
Điều này đạt được bằng cách tuân thủ vào lược đồ phép dịch sang trái các khối riêng lẻ sau: Số lần lặp 1 2 3 4 5 6 7 8 Số lần dịch trái 1 1 2 2 2 2 2 2 Số lần lặp 9 10 11 12 13 14 15 16 Số lần dịch trái 1 2 2 2 2 2 2 1 Bảng A.7 - Số các bit khóa được dịch chuyển của mỗi vòng Ví dụ, C3 và D3 thu được từ C2 và D2 tương ứng bằng hai dịch chuyển sang trái, và C16 và D16 thu được từ C15 và D15 tương ứng bằng một lần dịch sang trái. Trong tất cả các trường hợp, việc dịch một lần sang trái được hiểu là dịch các bit sang trái một vị trí sao cho sau một lần dịch các bit ở 28 vị trí là các bit trước đó ở vị trí 2, 3,..., 28, 1. Việc chọn hoán vị 2 được xác định trên Bảng A.8 Bảng A.8 - Hoán vị nén PC-2 Bởi vậy bit thứ nhất của Kn là bit thứ 14 của CnDn, bit thứ hai là bit thứ 17.v.v, bit thứ 47 là bit thứ 29, bit thứ 48 là bit thứ 32. Hình A.3 - Tính toán lược đồ khóa PHỤ LỤC B (Quy định) Các phép biến đổi của AES B.1. Các phép biến đổi AES B.1.1. Các phép biến đổi xác định cho AES Thuật toán AES sử dụng các phép biến đổi SubBytes(), SubBytes-1() ShiftRows(), ShiftRows-1(), MixColumns(), MixColumns-1(), AddRoundKey(), được mô tả dưới đây. B.1.2. Phép biến đổi SubBytes() Phép biến đổi SubBytes() thực hiện thay thế mỗi byte Trạng thái si,j bởi giá trị mới s'ij, bằng cách sử dụng bảng thay thế (S-box) khả nghịch. Hình B.1 minh họa tác động của phép biến đổi SubBytes() lên bảng Trạng thái Hình B.1: SubBytes() áp dụng S-box cho từng byte của Trạng thái. S-box được sử dụng trong phép biến đổi SubBytes() và được trình bày theo hệ Hexa trên Bảng B.1 Bảng B.1: Các S-box của AES Ví dụ, nếu s1,1 = {53} thì giá trị thay thế là giá trị nằm trên giao của hàng có chỉ số ‘5’ và cột có chỉ số ‘3’ của Bảng 5, điều này cho kết quả là s’1,1 có giá trị {ed}. B.1.3. Phép biến đổi SubBytes-1() SubBytes-1() là phép biến đổi nghịch đảo của phép biến đổi SubBytes(), trong đó S-box nghịch đảo được áp dụng cho từng byte của Trạng thái. Điều này đạt được bằng cách áp dụng phép biến đổi nghịch đảo được mô tả tại Điều 5.2.4.2 S-box nghịch đảo được sử dụng trong phép biến đổi SubBytes-1() được mô tả trong Bảng B.2. Bảng B.2: S-box nghịch đảo AES B.1.4. Phép biến đổi ShiftRows() Trong phép biến đổi ShiftRows(), các byte ở ba dòng cuối của Trạng thái được dịch vòng lên một số lượng bytes khác nhau (offsets).
Hàng thứ nhất, hàng 0 được giữ nguyên (không dịch chuyển). Cụ thể, phép biến đổi ShiftRows() được thực hiện như sau: Theo đó các byte dịch sẽ chuyển sang trái (nghĩa là các giá trị thấp hơn của c trong một hàng cho trước), trong khi các byte phía trái ngoài cùng dịch vòng sang các vị trí phía phải ngoài cùng của hàng (tức là những giá trị cao hơn của c trong hàng cho trước). Hình B.2 mô tả phép biến đổi ShiftRows(), trong đó các byte được dịch vòng sang trái. B.1.5. Phép biến đổi ShiftRows-1() ShiftRows-1() là phép nghịch đảo của phép biến đổi ShiftRows(). Các bytes trong ba dòng cuối của Trạng thái được dịch vòng lên một số lượng bytes khác nhau. Dòng thứ nhất, dòng 0 không dịch chuyển. Ba dòng dưới cùng được dịch vòng lên 4 - r bytes, ở đây r là số thứ tự vòng. Cụ thể, phép biến đổi ShiftRows-1() được thực hiện như sau: Hình B.3. mô tả phép biến đổi ShiftRows-1() Hình B.2: ShiftRows() dịch vòng ba dòng cuối của Trạng thái Hình B.3: ShiftRows-1() dịch vòng ba dòng cuối của Trạng thái. B.1.6. Phép biến đổi MixColumns() Phép biến đổi MixColumns() thao tác trên Trạng thái, thay mỗi cột bằng cột khác. Các cột của Trạng thái được xem như những đa thức trên trường GF(28) và được nhân modulo x4 + 1 với đa thức cố định a(x) cho trước, a(x) = {03}x3 + {01}x2 + {01}x + {02}. Phép nhân này có thể viết dưới dạng phép nhân ma trận: Kết quả của phép nhân trên là bốn byte trong cột được thay thế như sau: Toán tử Å trong các biểu thức trên biểu thì phép cộng trong trường GF(28), với phép cộng bit XOR. Phép nhân được thực hiện theo modulo của đa thức bất khả qui của trường. Trong trường hợp thuật toán AES đó là đa thức x9 + x4 + x3 + x + 1. Hình B.4 mô tả phép biến đổi MixColumns(). Hình B.4 - MixColumns() thao tác trên Trạng thái, thay cột bằng cột khác B.1.7. Phép biến đổi MixColumns-1() MixColumns-1() là phép biến đổi nghịch đảo của phép biến đổi MixColumns(). MixColumns-1() thao tác trên Trạng thái, thay mỗi cột bằng cột khác. Phép biến đổi này có thể biểu diễn dưới dạng phép nhân ma trận, ở đấy mỗi byte được coi như một phần tử của trường hữu hạn GF(28): Kết quả của phép nhân là bốn byte trong mỗi cột được thay thế như sau: B.1.8. Phép biến đổi AddRoundKey() Trong phép biến đổi AddRoundKey(), khóa vòng được cộng vào Trạng thái bằng phép cộng bit đơn giản XOR. Mỗi khóa vòng gồm bốn từ (128 bit) lấy từ lược đồ khóa (được mô tả tại 5.2.5). Bốn từ này được cộng vào cột Trạng thái như sau: Hoạt động của phép biến đổi AddRoundKey(), được minh họa trên Hình B.5. Địa chỉ byte trong các từ của lược đồ khóa được mô tả trong Điều 2.2.2.2.
Hình B.5: AddRoundKey() cộng bit XOR từng cột của Trạng thái với mỗi từ lấy từ lược đồ khó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 National technical regulation on digital signature used in banking MỤC LỤC Lời nói đầu 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./. 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 banking MỤC LỤC Lời nói đầu 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./. 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./.
1. QUY ĐỊNH CHUNG 1. QUY ĐỊNH CHUNG
1.1. Phạm vi điều chỉnh 1.1. Phạm vi điều chỉnh
1.2. Đối tượng áp dụng 1.2. Đối tượng áp dụng
1.3. Tài liệu viện dẫn 1.3. Tài liệu viện dẫn
1.4. Giải thích từ ngữ 1.4. Giải thích từ ngữ
1.5. Các ký hiệu 1.5. Các ký hiệu
2. QUY ĐỊNH KỸ THUẬT 2. QUY ĐỊNH KỸ THUẬT
2.1. Chữ ký số 2.1.1. Quy định kỹ thuật 2.1.2. Chữ ký số RSA-PSS 2.1.3. Chữ ký số ECDSA 2.1.4. Chữ ký số DSA 2.1.5. Chữ ký số RSASSA-PKCS1-v1_5 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. Hàm băm 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
3. QUY ĐỊNH VỀ QUẢN LÝ 3. QUY ĐỊNH VỀ QUẢN LÝ
4. TRÁCH NHIỆM CỦA TỔ CHỨC, CÁ NHÂN 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 5 : 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Ề CHỮ KÝ SỐ SỬ DỤNG TRONG LĨNH VỰC NGÂN HÀNG National technical regulation on digital signature used in banking 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
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
Khoản 1. Đánh giá sự phù hợp về chất lượng của thép do tổ chức đánh giá sự phù hợp được chỉ định thực hiện:
a) Trường hợp tổ chức, cá nhân nhập khẩu lựa chọn phương thức đánh giá sự phù hợp theo lô hàng nhập khẩu: Việc đánh giá sự phù hợp của lô hàng được thực hiện theo phương thức 7 (Thử nghiệm, đánh giá lô sản phẩm, hàng hoá) quy định tại Thông tư số 28/2012/TT-BKHCN ngày 12 tháng 12 năm 2012 của Bộ trưởng Bộ Khoa học và Công nghệ quy định về công bố hợp chuẩn, công bố hợp quy và phương thức đánh giá sự phù hợp với tiêu chuẩn, quy chuẩn kỹ thuật và do tổ chức chứng nhận, tổ chức giám định được chỉ định thực hiện. Chi phí cho hoạt động đánh giá sự phù hợp của lô hàng nhập khẩu được thực hiện theo quy định tại Khoản 15 Điều 12 Luật Chất lượng sản phẩm, hàng hóa.
b) Trường hợp tổ chức, cá nhân nhập khẩu lựa chọn theo phương thức đánh giá sự phù hợp tại nước xuất khẩu: Việc đánh giá sự phù hợp của sản phẩm thép được thực hiện theo phương thức 5 (Thử nghiệm mẫu điển hình và đánh giá quá trình sản xuất; giám sát thông qua thử nghiệm mẫu lấy tại nơi sản xuất hoặc trên thị trường kết hợp với đánh giá quá trình sản xuất) quy định tại Thông tư số 28/2012/TT-BKHCN ngày 12 tháng 12 năm 2012 của Bộ trưởng Bộ Khoa học và Công nghệ quy định về công bố hợp chuẩn, công bố hợp quy và phương thức đánh giá sự phù hợp với tiêu chuẩn, quy chuẩn kỹ thuật và do tổ chức chứng nhận được chỉ định thực hiện, cụ thể: - Tiếp nhận và kiểm tra hồ sơ, lập kế hoạch, chương trình đánh giá và tổ chức thực hiện việc đánh giá trên cơ sở hợp đồng ký kết với tổ chức, cá nhân đăng ký và báo cáo Bộ Công Thương, Bộ Khoa học và Công nghệ. Sau khi nhận được báo cáo của tổ chức chứng nhận, trong trường hợp cần thiết, Bộ Công Thương, Bộ Khoa học và Công nghệ sẽ cử thành viên giám sát hoạt động đánh giá chứng nhận tại nước xuất khẩu của tổ chức chứng nhận. Chi phí cho các thành viên giám sát này do tổ chức chứng nhận bảo đảm, mức chi quy định tại Thông tư số 102/2012/TT-BTC ngày 21 tháng 6 năm 2012 của Bộ trưởng Bộ Tài chính quy định chế độ công tác phí cho cán bộ, công chức nhà nước đi công tác ngắn hạn ở nước ngoài do ngân sách nhà nước bảo đảm kinh phí. - Thực hiện đánh giá hệ thống quản lý chất lượng, lấy mẫu điển hình tại nơi sản xuất theo quy định, gửi thử nghiệm mẫu điển hình và đánh giá sự phù hợp của mẫu thử nghiệm. Nếu kết quả đánh giá hệ thống quản lý chất lượng và kết quả thử nghiệm mẫu điển hình đạt yêu cầu, tổ chức chứng nhận cấp Giấy chứng nhận có thời hạn hiệu lực 03 năm cho tổ chức, cá nhân. - Kết thúc quá trình đánh giá, tổ chức chứng nhận có trách nhiệm lưu giữ hồ sơ đánh giá và báo cáo kết quả về Bộ Công Thương, Bộ Khoa học và Công nghệ. - Trong thời gian hiệu lực của Giấy chứng nhận đã cấp, tổ chức chứng nhận phải thực hiện việc đánh giá giám sát thông qua việc thử nghiệm mẫu lấy tại nơi sản xuất hoặc lấy trên thị trường (tại cửa khẩu nhập khẩu) kết hợp với đánh giá quá trình sản xuất tại nơi sản xuất với tần suất không quá 12 tháng/lần.
Khoản 3. Quy định về kiểm tra giảm
a) Đối với hình thức 1 quy định tại Điểm a Khoản 1 Điều này: - Căn cứ vào Thông báo chấp thuận áp dụng hình thức kiểm tra giảm (sau đây viết tắt là Thông báo) của Bộ Công Thương, tổ chức, cá nhân nhập khẩu thép và tổ chức chứng nhận, tổ chức giám định được chỉ định có tên trong Thông báo tiến hành kiểm tra giảm đối với các lô thép nhập khẩu. Chi phí thực hiện hoạt động đánh giá sự phù hợp của lô thép nhập khẩu theo hình thức kiểm tra giảm do tổ chức, cá nhân nhập khẩu thép chi trả theo quy định tại Khoản 15 Điều 12; Khoản 2 Điều 19 của Luật Chất lượng sản phẩm, hàng hóa. Việc lấy mẫu kiểm tra giảm thực hiện theo Mục 3.1.22 của Tiêu chuẩn quốc gia TCVN 7790-1:2007 Quy trình lấy mẫu để kiểm tra định tính - Phần 1: Chương trình lấy mẫu được xác định theo giới hạn chấp nhận (AQ ) để kiểm tra từng lô. - Trong quá trình kiểm tra giảm, nếu lô hàng không bảo đảm chất lượng thì tổ chức chứng nhận, tổ chức giám định phải tiến hành đánh giá sự phù hợp của lô thép nhập khẩu theo trình tự, thủ tục quy định tại Điều 10 của Thông tư liên tịch này, đồng thời gửi báo cáo về Bộ Công Thương để xem xét xử lý hủy bỏ hiệu lực áp dụng hình thức kiểm tra giảm. - Không áp dụng hình thức kiểm tra giảm đối với nh ng lô hàng nhập khẩu trong thời hạn hiệu lực được áp dụng hình thức kiểm tra giảm khi có sự gia tăng đột biến về khối lượng hoặc số lượng (gấp 1,5 lần bình quân của 03 lô hàng nhập khẩu liên tiếp khi lập hồ sơ đăng ký áp dụng hình thức kiểm tra giảm).
b) Đối với hình thức 2 quy định tại Điểm b Khoản 1 Điều này: - Căn cứ vào Thông báo chấp thuận áp dụng hình thức kiểm tra giảm (sau đây viết tắt là Thông báo) của Bộ Công Thương, tổ chức, cá nhân nhập khẩu thép và tổ chức chứng nhận, tổ chức giám định được chỉ định có tên trong Thông báo tiến hành kiểm tra hồ sơ đối với các lô thép nhập khẩu. - Trong thời hạn hiệu lực của Thông báo, tổ chức chứng nhận, tổ chức giám định được chỉ định có tên trong Thông báo phải thực hiện đánh giá giám sát với tần suất không quá 06 tháng/lần. Chi phí thực hiện đánh giá giám sát do tổ chức, cá nhân nhập khẩu thép chi trả theo quy định tại Khoản 15 Điều 12; Khoản 2 Điều 19 của Luật Chất lượng sản phẩm, hàng hóa. - Trong quá trình thực hiện nếu kết quả kiểm tra hồ sơ và thực tế lô thép nhập khẩu có sự khác biệt (không phù hợp) thì tổ chức chứng nhận, tổ chức giám định được chỉ định phải tiến hành đánh giá sự phù hợp của lô thép nhập khẩu theo trình tự, thủ tục quy định tại Điều 10 của Thông tư liên tịch này, đồng thời gửi Báo cáo về Bộ Công Thương để xem xét xử lý hủy bỏ hiệu lực áp dụng hình thức kiểm tra giảm. - Trong quá trình thực hiện đánh giá giám sát, nếu lô thép nhập khẩu có kết quả đánh giá về chất lượng không phù hợp với tiêu chuẩn công bố áp dụng thì tổ chức chứng nhận, tổ chức giám định được chỉ định phải tiến hành đánh giá sự phù hợp của lô thép nhập khẩu theo trình tự, thủ tục quy định tại Điều 10 của Thông tư liên tịch này, đồng thời gửi báo cáo về Bộ Công Thương để xem xét xử lý hủy bỏ hiệu lực áp dụng hình thức kiểm tra giảm.