Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
1,53 MB
Nội dung
QCVN : 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 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ữ định nghĩa 1.5 Các ký hiệu QUY ĐỊNH KỸ THUẬT 2.1 Quy định chung 2.2 Mã khối 2.2.1 TDEA - Thuật toán mã liệu bội ba 2.2.2 AES 2.2.3 Camellia 2.3 Chế độ hoạt động 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 OFB (Output Feedback): 2.3.4 Chế độ đếm CTR (Counter) 2.4 Mã dòng QUY ĐỊNH VỀ QUẢN LÝ TRÁCH NHIỆM CỦA TỔ CHỨC, CÁ NHÂN 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 AES Lời nói đầu QCVN : 2016/BQP Cục Quản lý mật mã dân 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 Cơng nghệ thẩm định ban hành theo Thông tư số 161/2016/TT-BQP ngày 21 tháng 10 năm 2016 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 QUY ĐỊNH CHUNG 1.1 Phạm vi điều chỉnh Quy chuẩn kỹ thuật quốc gia quy định mức giới hạn đặc tính kỹ thuật mật mã thuật tốn mã hóa liệu dùng sản phẩm mật mã dân sử dụng lĩnh vực ngân hàng 1.2 Đối tượng áp dụng Quy chuẩn áp dụng doanh nghiệp kinh doanh sản phẩm, dịch vụ mật mã dân lĩnh vực ngân hàng; tổ chức tín dụng (trừ quỹ tín dụng nhân dân sở có tài sản 10 tỷ, tổ chức tài vi mơ) sử dụng sản phẩm, dịch vụ mật mã dân 1.3 Tài liệu viện dẫn - 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 sinh số ngẫu nhiên sử dụng sinh bit ngẫu nhiên tất định, NIST SP 800-90A Rev 1, Viện tiêu chuẩn công nghệ quốc gia (Mỹ), tháng năm 2015) - TCVN 7876:2007 Công nghệ thông tin - Kỹ thuật mật mã - Thuật toán mã liệu AES - TCVN 11367-3:2016 (ISO/IEC 18033-3:2010) Công nghệ thông tin - Các kỹ thuật an tồn - Thuật tốn mật mã - Phần 3: Mã khối - ISO/IEC 10116:2006 Information technology - Security techniques - Modes of operation for an n-bit block cipher - ISO/IEC 9797-1:2011 Information technology - Security techniques - Message Authentication Codes (MACs) - Part 1: Mechanisms using a block cipher 1.4 Giải thích từ ngữ Trong Quy chuẩn này, từ ngữ hiểu 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” “mật” quy định 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à quy tắc, quy ước riêng dùng để thay đổi hình thức biểu thơng tin nhằm bảo đảm bí mật, xác thực, tồn vẹn nội dung thơng tin 1.4.3 Mật mã dân Là kỹ thuật mật mã sản phẩm mật mã sử dụng để bảo mật xác thực 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 Là tài liệu, trang thiết bị kỹ thuật nghiệp vụ mật mã để bảo vệ thông tin 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) liệu thuật toán mật mã để tạo mã, tức giấu nội dung thông tin liệu 1.4.7 Giải mã Phép tốn ngược với phép mã hóa tương ứng 1.4.8 Mã khối Hệ mật đối xứng với tính chất thuật tốn mã hóa thao tác khối rõ, nghĩa xâu bit có độ dài xác định, kết cho khối mã 1.4.9 Mã dòng Hệ mật đối xứng với tính chất thuật tốn mã hóa bao gồm tổ hợp dãy ký tự rõ với dãy ký tự khóa dịng, lần ký tự, sử dụng hàm khả nghịch 1.4.10 Khóa Dãy ký tự điều khiển vận hành thuật tốn mật mã (ví dụ, phép mã hóa, giải mã) 1.4.11 Khóa dịng Dãy ký tự giả ngẫu nhiên bí mật, sử dụng thuật tốn mã hóa giải mã mã dịng 1.5 Các ký hiệu n độ dài tính bit rõ/bản mã mã khối Ek hàm mã hóa với khóa K Dk hàm giải mã với khóa K Nr số vịng thuật tốn AES, 10,12 14 để chọn độ dài khóa tương ứng 128, 192, 256 bit Nb Số cột (các từ 32 bit) tạo nên Trạng thái ⊕ phép toán logic XOR xâu bit, nghĩa A B hai xâu độ dài A ⊕ B xâu bit bao gồm bit kết phép toán logic XOR A B ⊗ phép nhân hai đa thức (mỗi đa thức có bậc bé 4) theo mod x4 + ∧ phép toán logic AND xâu bit, nghĩa A B xâu bit độ dài, A ∧B xâu bit tạo từ phép toán logic AND bit tương ứng A B ∨ phép toán logic OR xâu bit, tức A B hai xâu bit độ dài, A ∨B xâu bit gồm bit kết phép toán logic OR A B || phép ghép xâu bit • phép nhân trường hữu hạn phép dịch vòng sang trái i bit phép dịch vòng sang phải i bit phép bù bit x a mod n với số nguyên a n, a mod n ký hiệu số dư (không âm) phép chia a cho n Một cách tương đương, b = a mod n b số nguyên thỏa mãn điều kiện sau: (i) ≤ b < n (ii) (b - a) bội số nguyên n phép cộng số học mô-đun, nghĩa A B hai xâu t-bit A xác định (A + B) mod 2t phép trừ số học mô-đun, nghĩa A B hai xâu t-bit A định (A - B)mod 2t B B xác QUY ĐỊNH KỸ THUẬT 2.1 Quy định chung - Quy định chi tiết nguồn ngẫu nhiên: Các số ngẫu nhiên sử dụng cho mục đích khác để sinh tham số mật mã, khóa mật mã, giá trị ngẫu nhiên dùng lần giá trị thách đố xác thực Một số sinh bit ngẫu nhiên tất định DRBG chấp thuận để sử dụng theo quy định chung bao gồm: HASH_DRBG, HMAC_DRBG CTR_DRBG Các sinh bit ngẫu nhiên RBG tuân theo SP800-90A phiên sửa đổi lại năm 2015 để sinh bit ngẫu nhiên chấp thuận để sử dụng tiếp 2.2 Mã khối Trong Quy chuẩn quy định loại mã khối áp dụng cho việc mã hóa liệu để bảo vệ thông tin lĩnh vực ngân hàng Độ dài khối 64 bit 128 bit Tên thuật toán Độ dài khóa quy định áp dụng TDEA Khơng nhỏ 192 bit AES Không nhỏ 256 bit Camellia Không nhỏ 256 bit - Quy định ngưỡng thời gian độ an tồn khóa cụ thể: Độ an tồn theo bít 112 256 Thuật tốn mã khối 3TDEA AES-256 Camellia-256 Thời gian sử dụng quy định Đến cuối năm 2030 Từ năm 2030 2.2.1 TDEA - Thuật toán mã liệu bội ba Trong Quy chuẩn thuật toán mã liệu bội ba (TDEA-Triple Data Encryption Algorithm) xử lý khối liệu 64 bit, sử dụng khóa mật mã có độ dài khơng nhỏ 192 bit Phép mã hóa/giải mã TDEA phép tốn ghép phép tốn mã hóa giải mã DES Khóa TDEA gồm ba khóa K1, K2 K3 khóa DES khác (K1 ≠ K2, K2 ≠ K3, K3 ≠ K1) 2.2.1.1 Phép mã hóa/giải mã TDEA 2.2.1.1.1 Các định nghĩa mã hóa /giải mã TDEA xác định theo thuật ngữ phép toán DES, Ek phép tốn mã hóa DES với khóa K Dk phép giải mã DES với khóa K 2.2.1.1.2 Phép mã hóa Phép biến đổi khối P có độ dài 64 bit thành khối C có độ dài 64 bit xác định sau: Phép mã hóa/giải mã DES mơ tả Phụ lục A Quy chuẩn Hình 1: Sơ đồ phép mã hóa TDEA 2.2.1.1.3 Phép giải mã TDEA Phép biến đổi khối C có độ dài 64 bit thành khối P có độ dài 64 bit xác định sau: Phép mã hóa/giải mã DES mô tả Phụ lục A Quy chuẩn Hình 2: Sơ đồ phép giải mã TDEA 2.2.1.2 Chu trình khóa Phần lược đồ khóa DES mô tả Điều A.5 2.2.1.3 Chế độ hoạt động TDEA Các chế độ hoạt động TDEA quy định Mục 2.3 Quy chuẩn 2.2.1.4 Khóa Độ dài khóa sử dụng mã khối TDEA quy định: Độ dài khối Tên thuật toán Độ dài khóa quy định áp dụng 64 bit TDEA Khơng nhỏ 192 bit 2.2.1.4.1 Các yêu cầu khóa Đối với chế độ hoạt động mã khối TDEA, khóa mật mã (K1, K2 K3) xác định khóa cho hệ mật TDEA cần: a Phải giữ bí mật b Được sinh sử dụng sinh bit ngẫu nhiên quy định phần 2.1 Quy chuẩn c Là khóa mật mã khác d Đảm bảo tồn vẹn mà khóa không bị thay đổi trái phép kể từ sinh ra, gửi lưu trữ thực thể có thẩm quyền e Được sử dụng theo thứ tự thích hợp theo quy định chế độ hoạt động riêng biệt f Không sử dụng để mã hóa nhiều 232 khối liệu 64-bit g Khơng sử dụng khóa yếu bán yếu (Được quy định Điều 2.2.1.4.2) 2.2.1.4.2 Khóa yếu Đối với thuật tốn DES có số khóa mật mã coi yếu sử dụng Việc sử dụng khóa yếu ảnh hưởng đến độ an toàn thuật tốn TDEA Các khóa yếu khơng sử dụng thuật toán TDEA liệt kê (theo định dạng thập lục phân): Một số cặp khóa mã hóa rõ mã giống hệt khơng sử dụng Các khóa bán-yếu (theo định dạng thập lục phân): Ngồi cịn 48 khóa sau tạo khóa khác (thay 16 khóa khác nhau) khơng sử dụng Đó khóa sau (theo định dạng thập lục phân): CHÚ THÍCH: Các khóa yếu khóa bán-yếu liệt kê biểu diễn với tính lẻ phần bên phải byte 2.2.2 AES Đối với thuật toán AES, độ dài khối đầu vào, khối đầu Trạng thái 128 bit Như Nb = số lượng từ 32 bít (số cột) Trạng thái Trong Quy chuẩn thuật tốn AES, độ dài k hóa mã K quy định áp dụng 256 bit Độ dài khóa biểu diễn số Nk = thể số lượng từ 32 bit (số cột) Khóa mã Số vịng q trình thực thi thuật tốn AES (được ký hiệu Nr) với khóa độ dài 256 bit Nr = 14 Quy chuẩn quy định cụ thể giá trị phép dùng cho độ dài khóa (Nk), kích cỡ khối (Nb) số lượng vòng lặp (Nr) Bảng Độ dài khóa (Nk từ) Độ dài khối (Nb từ) Số vòng (Nr) 14 AES-256 Bảng 1: Các tổ hợp Khóa - Khối - Vịng 2.2.2.1 Phép mã hóa/giải mã AES Đối với hai Phép mã hóa Phép giải mã, thuật toán AES sử dụng hàm vòng bao gồm bốn phép biến đổi khác byte: 1) Phép thay byte sử dụng bảng thay (S-box) 2) Dịch hàng mảng Trạng thái offset khác 3) Trộn liệu cột mảng Trạng thái 4) Bổ sung khóa vịng vào Trạng thái 2.2.2.1.1 Phép mã hóa AES Thuật tốn AES gồm dãy phép toán thực mảng hai chiều byte, gọi Trạng thái Trạng thái gồm bốn dòng byte, dòng chứa byte Trong mảng Trạng thái ký hiệu s, byte riêng biệt có hai số với số dòng r với ≤ r < số cột c, với ≤ c < Trạng thái ký hiệu S = (sr,c) Khi bắt đầu q trình mã hóa, 16 byte Trạng thái khởi tạo với pi byte rõ, tính từ xuống từ trái sang phải minh họa Hình Hình 3: Khởi đầu Trạng thái Sau cộng khóa vịng ban đầu, Trạng thái biến đổi cách thực thi hàm vòng Nr lần, với vịng cuối khác với Nr - vòng đầu Nội dung cuối Trạng thái mã đầu Phép mã hóa đầy đủ mơ tả sau: (1) S = AddRoundKey(P,W0) (2) For i = to Nr - S = SubBytes (S) S = ShiftRows(S) S = MixColumns(S) S = AddRoundKey(S, Wi) (3) S = SubBytes (S),S = ShiftRows(S) (4) C = AddRoundKey (S, WNr) Các phép biến đổi riêng biệt SubBytes(), ShiftRows(), MixColumns(), AddRoundkey() xử lí Trạng thái mơ tả Phụ lục B Tất Nr vòng giống nhau, trừ vòng cuối không chứa phép biến đổi MixColumns() Trong phép tốn trên, mảng Wi chứa khóa vịng mô tả Điều 2.2.2.2 2.2.2.1.2 Phép giải mã AES Tất phép biến đổi sử dụng phép mã hóa khả nghịch Khi thực thi phép giải mã, dãy phép biến đổi sử dụng phép mã hóa trì, thay phép biến đổi ngược sau Phép giải mã đầy đủ mơ tả sau: (1) S = AddRoundKey (C,WNr) (2) for i = Nr - down to S = ShiftRows-1(S) S = SubBytes-1(S) S = AddRoundKey(S,Wi) S = MixColumns-1(S) (3) S = ShiftRows-1(S) S = SubBytes-1(S) (4) P = AddRoundKey(S, W0) Các phép biến đổi SubBytes-1(),ShiftRows-1(),MixColumns-1() thực xử lí Trạng thái Tất Nr vịng giống nhau, trừ vịng cuối khơng chứa phép biến đổi MixColumns-1() Các phép biến đổi SubBytes-1(),ShiftRows-1(),MixColumns-1() thực xử lí Trạng thái mơ tả Phụ lục B Tất Nr vòng giống nhau, trừ vịng cuối khơng chứa phép biến đổi MixColumns-1() Việc tính khóa vịng Wi mơ tả Điều 2.2.2.2 2.2.2.1.3 Quy định S-Box S-Box nghịch đảo AES a) S-Box Bảng 2: S-Box: giá trị thay cho byte {xy} (theo dạng thập lục phân) b) S-Box nghịch đảo Bảng 3: S-Box nghịch: thay giá trị theo byte {xy} (dạng thập lục phân) 2.2.2.2 Chu trình khóa Thuật tốn AES nhận khóa mật mã K thực thủ tục mở rộng khóa để tạo lược đồ khóa Việc mở rộng khóa tạo tổng cộng 4(Nr + 1) từ: Thuật tốn địi hỏi tập khởi đầu gồm từ, vòng Nr vòng đòi hỏi từ liệu khóa Lược đồ khóa nhận mảng tuyến tính gồm từ 4-byte, ký hiệu wj, với j nằm khoảng ≤ j < 4(Nr + 1) Phép mở rộng khóa đầy đủ cho AES-256 mơ tả sau: Trong phép tốn K0 K1 biểu thị hai nửa khóa mật mã K 256-bit 2.2.2.3 Chế độ hoạt động AES Các chế độ hoạt động AES quy định Mục 2.3 Quy chuẩn 2.2.2.4 Khóa Độ dài khóa sử dụng mã khối AES quy định Độ dài khối Tên thuật toán Độ dài khóa quy định áp dụng 128 bit AES Khơng nhỏ 256 bit 2.2.3 Camellia Trong Quy chuẩn thuật tốn mã đối xứng Camellia xử lí khối 128 bit, sử dụng khóa mật mã độ dài khơng nhỏ 256 bit 2.2.3.1 Phép mã hóa/giải mã Camellia 2.2.3.1.1 Phép mã hóa Camellia Q trình mã hóa với khóa 256-bit làm việc 24 vòng, Hình Phép biến đổi khối 128 bit P vào khối 128-bit C định nghĩa sau (L R biến độ dài 64 bit, kw, k kl khóa vịng 64 bit): Hình 4: Thủ tục mã hóa Camellia cho khóa 256 bit 2.2.3.1.2 Phép giải mã Camellia Q trình giải mã cho khóa 256 bit Hình 5, phép mã hóa, khác vị trí thứ tự khóa vịng đảo lại Phép giải mã xác định sau: Hình 9: Chế độ xích liên kết khối mã - Biến khởi đầu SV sinh ngẫu nhiên, giữ bí mật thông báo cho - Yêu cầu đệm (padding) + Nếu độ dài rõ bội số n yêu cầu sử dụng phương pháp đệm (padding) sau để bổ sung rõ cho độ dài rõ bội số n: Thêm bit vào cuối rõ, tiếp sau bít (có thể khơng cần) để rõ có độ dài bội số n Đây phương pháp đệm tiêu chuẩn ISO/IEC 9797-1 ISO/IEC 10118-1 2.3.2 Chế độ phản hồi mã CFB (Cipher FeedBack) Chế độ CFB xác định tham số: - Kích thước đệm phản hồi, r, n ≤ r ≤ 1024n r < qn - Kích thước biến phản hồi, k, ≤ K ≤ n - Kích thước biến rõ, j, ≤ j ≤ k Trong Quy chuẩn giá trị j k Các biến sử dụng chế độ CFB: a) Các biến đầu vào 1) Dãy q biến rõ độ dài j bit P1, P2, …, Pq 2) Khóa bí mật K 3) Biến khởi đầu độ dài r bit b) Các kết trung gian: 1) Dãy q khối đầu vào mã khối độ dài n bit X1,X2, ,Xq 2) Dãy q khối đầu mã khối độ dài n bit Y1,Y2, ,Yq 3) Dãy q biến độ dài j bit E1,E2, ,Eq 4) Dãy q - biến phản hồi độ dài k bit F1,F2, ,Fq-1 5) dãy q nội dung đệm phản hồi độ dài r bit FB1,FB2, ,FBq c) Các biến đầu dãy q biến mã độ dài j bit C1,C2, ,Cq 2.3.2.1 Phép mã hóa Bộ đệm phản hồi FB gán giá trị khởi đầu FB1 = SV Phép toán mã hóa biến rõ thực bước sau: a) Xi = n~FBi (Lựa chọn n bit tận bên trái FB) b) Yi = eK(Xi) (Sử dụng mã khối) c) Ei = j~Yi (Lựa chọn j bit tận bên trái Yi) d) Ci = Pi ⊕ Ei (Tạo biến mã) e) Fi = I(k - j)|Ci (Tạo biến phản hồi) f) FBi+1 = Sk(FBi|Fi) (Hàm dịch chuyển FB) Các bước lặp với biến đếm i = 1,2,…,q, vòng lặp cuối dừng lại bước (d) j bit tận bên trái khối đầu Y mã khối sử dụng để mã hóa j-bit biến rõ theo phép cộng modulo Các bit lại Y bỏ Các bit biến rõ/bản mã có số từ đến j Biến mã tăng thêm cách đặt k - j bit vị trí bit tận bên trái để tạo biến phản hồi F độ dài k-bit Sau bit đệm phản hồi FB dịch trái k vị trí F thêm vào vị trí k tận bên phải để tạo giá trị đệm phản hồi FB Trong phép toán dịch, k bit tận bên trái FB bỏ n bit tận bên trái FB sử dụng đầu vào X q trình mã hóa 2.3.2.2 Phép giải mã Bộ đệm phản hồi FB gán giá trị khởi đầu FB1 = SV Phép toán giải mã biến mã thực bước sau: a) Xi = n~FBi (Lựa chọn n bit tận bên trái FB) b) Yi = eK(Xi) (Sử dụng mã khối) c) Ei = j~Yi (Lựa chọn j bit tận bên trái Yi) d) Pi = Ci ⊕ Ei (Tạo biến rõ) e) Fi = l(k - j)|Ci (Tạo biến phản hồi) f) FBi+1 = Sk(FBi|Fi) (Hàm dịch chuyển FB) Các bước lặp với biến đếm i = 1,2,…,q, vòng lặp cuối dừng lại bước (d) j bit tận bên trái khối đầu Y mã khối sử dụng để giải mã biến mã theo phép cộng modulo Các bit lại Y bỏ Các bit biến rõ/bản mã có số từ đến j Biến mã tăng thêm cách đặt k - j bit vị trí bit tận bên trái để tạo biến phản hồi F độ dài k-bit Sau bit đệm phản hồi FB dịch trái k vị trí F thêm vào vị trí k tận bên phải để tạo giá trị đệm phản hồi FB Trong phép toán dịch, k bit tận bên trái FB bỏ n bit tận bên trái FB sử dụng đầu vào X q trình mã hóa Hình 10: Chế độ phản hồi mã CFB 2.3.3 Chế độ phản hồi đầu OFB (Output Feedback): Chế độ OFB xác định tham số j kích thước biến rõ với ≤ j ≤ n Các biến sử dụng chế độ OFB là: a) Các biến đầu vào: 1) Dãy q biến rõ độ dài j bit P1, P2, Pq 2) Khóa bí mật K 3) Biến khởi đầu độ dài n bit b) Các kết trung gian: 1) Dãy q khối đầu vào mã khối độ dài n bit X1, X2, , Xq 2) Dãy q khối đầu mã khối độ dài n bit Y1, Y2, , Yq 3) Dãy q biến độ dài j bit E1, E2, , Eq c) Các biến đầu dãy q biến mã độ dài j bit C1, C2, , Cq 2.3.3.1 Phép mã hóa Khối đầu vào X gán giá trị khởi đầu X1 = SV Phép tốn mã hóa biến rõ thực bước sau: a) Yi = ek(Xi) (Sử dụng mã khối) b) Ei = j~Yi (Chọn j bit tận bên trái) c) Ci = Pi ⊕ Ei (Tạo biến mã) d) Xi+1 = Yi (Phép toán phản hồi) Các bước lặp với biến đếm i = 1,2,…,q, vòng lặp cuối dừng lại bước (c) Các biến mã rõ có bit với số từ đến j Kết lần sử dụng mã khối Yi đưa trở lại thành giá trị X, đặt Xi+1 j bit tận bên trái Yi sử dụng để mã hóa biến đầu vào 2.3.3.2 Phép giải mã Khối đầu vào X gán giá trị khởi đầu X1 = SV Phép toán giải mã biến mã thực bước sau: a) Yi = ek(Xi) (Sử dụng mã khối) b) Ei = j~Yi (Chọn j bit tận bên trái) c) Ci = Pi ⊕ Ei (Tạo biến mã) d) Xi+1 = Yi (Phép toán phản hồi) Các bước lặp với biến đếm i = 1,2,…,q, vòng lặp cuối dừng lại bước (c) Các biến mã rõ có bit với số từ đến j Kết lần sử dụng mã khối Yi đưa trở lại thành giá trị X, đặt Xi+1 j bit tận bên trái Yi sử dụng để giải mã biến đầu vào Hình 11: Chế độ phản hồi đầu OFB 2.3.4 Chế độ đếm CTR (Counter) Chế độ CTR xác định tham số j ≤ j ≤ n Các biến sử dụng chế độ CTR là: a) Các biến đầu vào: 1) Dãy q biến rõ độ dài j bit P1, P2, …, Pq, biến có độ dài j bit 2) Khóa bí mật K 3) Biến khởi đầu SV có độ dài n bit b) Các kết trung gian: 1) Dãy q khối đầu vào mã khối độ dài n bit CTR1,CTR2, ,CTRq 2) Dãy q khối đầu mã khối độ dài n bit Y1,Y2, ,Yq 3) Dãy q biến độ dài j bit E1,E2, ,Eq c) Các biến đầu dãy q biến mã độ dài j bit C1,C2, ,Cq 2.3.4.1 Phép mã hóa CTR gán giá trị khởi đầu CTR1 = SV Các phép tốn để mã hóa biến rõ theo bước sau: a) Yi = eK(CTRi) (Sử dụng mã khối) b) Ei = j~Yi (Chọn j bit tận bên trái Yi) c) Ci = Pi ⊕ Ei (Tạo biến mã) d) CTRi+1 = (CTRi + 1)mod 2n (Tạo giá trị đếm CTR) Các bước lặp với biến đếm i = 1,2,…,q, vòng lặp cuối dừng lại bước (c) Các biến mã rõ có bit có số từ đến j Giá trị đếm mã hóa để đưa khối đầu Yi j bit tận bên trái khối đầu Yi sử dụng để mã hóa giá trị đầu vào CTR sau tăng (modulo 2n) để tạo giá trị đếm 2.3.4.2 Phép giải mã CTR gán giá trị khởi đầu CTR1 = SV Các phép toán để giải mã biến rõ theo bước sau: a) Yi = eK(CTRi) (Sử dụng mã khối) b) Ei = j~Yi (Chọn j bit tận bên trái Yi) c) Pi = Ci ⊕ Ei (Tạo biến rõ) d) CTRi+1 = (CTRi + 1)mod 2n (Tạo giá trị đếm CTR) Các bước lặp với biến đếm i = 1,2,…,q, vòng lặp cuối dừng lại bước (c) Các biến mã rõ có bit có số từ đến j Giá trị đếm mã hóa để đưa khối đầu Yi j bit tận bên trái khối đầu Yi sử dụng để mã hóa giá trị đầu vào CTR sau tăng (modulo 2n) để tạo giá trị đếm Hình 12: Chế độ đếm CTR 2.4 Mã dòng Mã dòng mã thực biến đổi bit liệu rõ sang mã sử dụng khóa độ dài k bit Quy chuẩn quy định sử dụng mã khối quy định Mục 2.2 sử dụng chế độ CFB, OFB CTR để thực chức mã dòng QUY ĐỊNH VỀ QUẢN LÝ 3.1 Các mức giới hạn đặc tính kỹ thuật mật mã yêu cầu quản lý thuật toán mật mã để mã hóa liệu nêu Quy chuẩn tiêu chất lượng phục vụ quản lý theo quy định quản lý chất lượng sản phẩm, dịch vụ mật mã dân quy định Luật An tồ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ã quan quản lý nhà nước có thẩm quyền tiến hành định kỳ hàng năm đột xuất 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 sở có tài sản 10 tỷ, tổ chức tài vi mơ) sử dụng sản phẩm, dịch vụ mật mã dân có trách nhiệm đảm bảo tuân thủ Quy chuẩn chịu kiểm tra 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 cho tổ chức tín dụng (trừ quỹ tín dụng nhân dân sở có tài sản 10 tỷ, tổ chức tài vi mơ) có trách nhiệm thực cơng bố hợp quy sản phẩm, dịch vụ mật mã dân phù hợp với Quy chuẩn Việc công bố hợp quy thực theo Thông tư số 28/2012/TT-BKHCN ngày 12 tháng 12 năm 2012 Bộ Khoa học Công nghệ 4.3 Cục Quản lý mật mã dân 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 quản lý, hướng dẫn kiểm tra việc công bố hợp quy TỔ CHỨC THỰC HIỆN 5.1 Cục Quản lý mật mã dân 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ã thuật tốn mã hóa liệu theo Quy chuẩn 5.2 Trong trường hợp quy định nêu Quy chuẩn kỹ thuật quốc gia có thay đổi, bổ sung thay thực theo quy định văn mới./ PHỤ LỤC A (Quy định) Mơ tả DES A.1 Mở đầu Thuật tốn DES mã khối đối xứng xử lí khối liệu 64 bit, sử dụng khóa bí mật độ dài 64 bit Mỗi bit thứ tám khóa mật mã thường sử dụng để kiểm tra tính chẵn lẻ bỏ qua A.2 Phép mã hóa DES Phép mã hóa Hình A.1 Bản rõ 64-bit trước hết biến đổi qua hoán vị ban đầu IP Sau khối chia thành hai nửa L0 R0, nửa gồm 32 bit Tiếp thực 16 vịng biến đổi giống gọi hàm f, liệu kết hợp với khóa Trong vịng, nửa phải đầu vào hàm f khóa hóa, hàm nhận đầu vào 32 bit khóa 48 bit Ki cho đầu 32-bit Đầu tiếp XOR với nửa trái để tạo nửa trái biến đổi Tại phần cuối vòng, trừ vòng cuối cùng, hai nửa trái phải đổi chỗ cho để tạo Li Ri tương ứng Sau thực vòng cuối cùng, hai nửa trái phải ghép lại với khối 64-bit nhận lại biến đổi qua phép hoán vị cuối IP-1 hoán vị nghịch đảo hoán vị ban đầu IP Đầu mã 64 bit Phép mã hóa xác định sau (P C liệu, Ki 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ã giống phép mã hóa Sự khác chỗ, khóa Ki sử dụng theo thứ tự ngược lại A.4 Các hàm DES A.4.1 Phép hốn vị ban đầu IP Phép hóa vị ban đầu IP Bảng A.1 Hoán vị nhận đầu vào 64-bit cho đầu 64bit, theo bit thứ hốn vị thành bit thứ 58, bit thứ hai thành bit thứ 50.v.v, bit cuối thành bit thứ 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 Bảng A.2, nhận đầu vào 64-bit cho đầu 64- bit Đầu Thuật toán nhận bit thứ 40 khối đầu trước làm bit thứ nhất, bit thứ làm bit thứ hai.v.v bit thứ 25 khối đầu trước làm bit cuối Bảng A.2 - Hoán vị nghịch đảo IP-1 A.4.3 Hàm f Hàm f Hình A.2 Hàm f nhận đầu vào 32 bit R mở rộng thành R' có độ dài 48-bit cách sử dụng phép hốn vị mở rộng E Sau 48-bit R' XOR với khóa 48-bit K, thu liệu 48- bit, liệu viết thành khối, khối 6-bit, cách chọn bit đầu vào theo thứ tự qui định bảng Các hàm chọn gọi S - box, S1, S2,…,S8 nhận đầu