TCVN11816-2:2017

Tiêu chuẩn quốc gia TCVN 11816-2:2017 (ISO/IEC 10118-2:2010) về Công nghệ thông tin - Các kỹ thuật an toàn - Hàm băm - Phần 2: Hàm băm sử dụng mã khối N-bit TIÊU CHUẨN VIỆT NAM TCVN 11816-2:2017 ISO/IEC 10118-2:2010 CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - HÀM BĂM - PHẦN 2: HÀM BĂM SỬ DỤNG MÃ KHỐI N-BIT Information technology - Security techniques - Hash-functions - Part 2: Hash-functions using an n-bit block cipher Lời nói đầu TCVN 11816-2:2017 hoàn toàn tương đương với ISO/IEC 10118-2:2010 và đính chính kỹ thuật 1:2011. TCVN 11816-2:2016 do Cục Quản lý mật mã dân sự và Kiểm định s ả n phẩm mật mã b i ên soạn, Ban Cơ yếu Chính phủ đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố. Bộ tiêu chuẩn TCVN 11816 (ISO/IEC 10118) Công nghệ thông tin - Các kỹ thuật an toàn - Hàm băm gồm các tiêu chu ẩ n sau: - TCVN 11816-1:2017 (ISO/IEC 10118-1:2016), Phần 1: Tổng quan . -TCVN 11816-2:2017 (ISO/IEC 10118-2:2010), Phần 2: Hàm băm sử dụng mã khối n-bit. - TCVN 11816-3:2017 (ISO/IEC 10118-3:2004), Phần 3: Hàm băm chuyên dụng. - TCVN 11816-4:2017 (ISO/IEC 10118-4:1998), Phần 4: Hàm băm sử dụng số học đồng dư. CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - HÀM BĂM - PHẦN 2: HÀM BĂM SỬ DỤNG MÃ KHỐI N-BIT Information technology - Security techniques - Hash-functions - Part 2: Hash-functions using an n-bit block cipher 1 Phạm vi áp dụng TCVN 11816-2 đặc tả các hàm băm sử dụng thuật toán mã khối n -bit. Vì vậy tiêu chuẩn đư ợ c áp dụng thích hợp cho các môi trường trong đó một thuật toán đã được cài đặt. Có b ố n hàm băm được đặc tả trong tiêu chuẩn này. Hàm băm th ứ nhất cung cấp mã băm có độ dài nhỏ hơn hoặc bằng n , với n là độ dài của kh ố i dữ liệu được sử dụng trong thuật toán mã khối. Hàm băm thứ 2 cung cấp mã băm có độ dài nhỏ hơn hoặc bằng 2n ; hàm băm thứ 3 cung cấp mã băm có độ dài bằng 2n; và hàm b ă m thứ 4 cung cấp mã băm có độ dài 3n. Tất cả 4 h à m băm được đặc tả trong TCVN 11816-2 đều tuân theo mô hình tổng quát được đặc tả trong TCVN 11816-1. 2 Tài liệu viện dẫn Các tài liệu viện dẫn sau đây là không thể thiếu cho việc áp dụng tiêu chuẩn này . Đối với các t à i liệu có ghi năm công bố thì chỉ áp dụng các phiên bản tài liệu được trích dẫn. Đối với các tài liệu viện dẫn không ghi năm công bố th ì áp dụng phiên bản mới nhất (bao gồm tất cả các sửa đổi bổ sung). TCVN 11816-1: 2017 (ISO/IEC 10118-1:2016), Công nghệ thông tin - Các kỹ thuật an toàn - Hàm băm - Phần 1: Tổng quan. 3 Thuật ngữ và định nghĩa Các thuật ngữ và định nghĩa được đưa ra trong TCVN 11816-1 và các thuật ngữ sau đây được sử dụng. 3.1 Khối (block) Một xâu bit có độ dài xác định. 3.2 Mã khối n -bit ( n -bit block cipher) Mã khối với tính chất là khối bản rõ và khối bản mã có độ dài n bit. [ISO/IEC 18033-3:2005]. 3.3 Hàm vòng (round function) Hàm f (.,.) biến đổ i 2 xâu nhị phân có độ dài L 1 và L 2 thành một xâu nhị phân có độ dài L 2 CHÚ TH Í CH: Hàm vòng được sử dụng trong vòng lặp. 4 Ký hiệu và thuật ngữ viết tắt V ớ i mục đích của tiêu chuẩn này, các k ý hiệu và thuật ngữ viết tắt trong TCVN 11816-1 và các ký hiệu sau được áp dụng. B L Khi n chẵn, xâu bit chứa n /2 bit trái nhất của khối B . Khi n lẻ, xâu bit chứa ( n +1)/2 bit trái nhất của khối B B R Khi n chẵn, xâu bit chứa n /2 bit phải nhất của khối B . Khi n lẻ, xâu bit chứa (n - 1 )/2 bit phải nhất của khối B B x Khi B là một dãy các khối m bit thì B x ( x ≥ 0) đại diện cho khối thứ x của B . E K (P) Thuật toán mã khối n b i t với đầu vào là khóa K và khối bản rõ. Các thuật toán mã khối được đặc tả trong tiêu chuẩn TCVN 11367-3:2016 (ISO/IEC 18033-3) được khuyến cáo sử dụng trong các hàm băm. K Khóa cho thuật toán E u hoặc u' Hàm nhận đầu vào là một khối n bit và đầu ra là một khóa cho thuật toán E. 5 Sử dụng mô hình tổng quát Các hàm băm được đặc tả trong 4 mục tiếp theo cung cấp mã băm H có độ dài L H . Các hàm băm đều tuân thủ theo mô hình tổng quát được đặc tả trong TCVN 11816-1. Với mỗi một hàm băm chỉ cần thiết xác định các tham số dưới đây. - Tham số L 1 , L 2 , L H ; - Phương pháp đệm; - Giá tr ị khởi tạo I V ; - Hàm vòng f ; - Phép biến đ ổ i đầu ra T. 6 Hàm băm 1 6.1 Tổng quan Hàm băm 1 được đặc tả trong TCVN 11816-2 cung cấp mã băm có độ dài L 1 và L 2 trong đó L 1 và L 2 bằng nhau và bằng n . Một số định nghĩa riêng được yêu cầu cho hàm băm 1 được tr ì nh bày dưới đây. CHÚ THÍCH: Hàm băm 1 được mô tả trong [5]. 6.2 Lựa chọn tham số Các tham số L 1 , L 2 và L H của hàm băm 1 được đặc tả trong phần này thỏa mãn L 1 = L 2 = n và L H nhỏ hơn hoặc bằng n . 6.3 Phương pháp đệm Việc lựa chọn phương pháp đệm sử dụng cho hàm băm 1 không thuộc phạm vi của TCVN 11816-2. Cũng như các yêu c ầ u tối thi ể u, phương ph á p đệm đưa ra một tập gồm q khối D 1 , D 2 ,...,D q , trong đó mỗi khối D j có độ dài n và có thể làm đầu vào cho các đầu ra khác nhau. Các ví dụ về các phương pháp đệm được trình bày trong Phụ lục A TCVN 11816-1. 6.4 Giá trị khởi tạo Việc lựa chọn IV dùng cho hàm băm 1 không thuộc phạm vi TCVN 11816-2. IV là một xâu bit có độ dài n và giá trị của IV có thể được thống nhất và c ố định b ở i người sử dụng hàm băm. 6.5 Hàm vòng Phép biến đ ổ i u : Định nghĩa một ánh xạ u từ không gian mã. Hàm vòng f kết hợp khối dữ liệu đệm D j ( L 1 = n bit) với H j- 1 và đầu ra trước đó của hàm vòng ( L 2 = n bit) tạo th à nh Hj . C ần lựa chọn hàm u như một phần của hàm vòng để biến đổi một khối n bit thành một khóa để sử dụng cho thuật toán mã khối E . Việc lựa chọn hàm u đ ể sử dụng cho hàm băm 1 n ằ m ngoài phạm vi TCVN 11816-2. Hàm vòng được xác định như sau: Đặt H 0 = IV f (D j , H j-1 ) = E Kj (D j ) Å D j trong đó K­ j = u(H j-1 ). Hàm vòng được mô tả trong Hình 1. Hình 1: Hàm vòng của hàm băm 1 6.6 Phép biến đổi đầu ra Phép biến đổi đầu ra T đơn giản là phép cắt, v í dụ mã băm H nhận được bằng cách l ấ y các bit L H tr á i nhất của khối đầu ra cuối cùng H q . 7 Hàm băm 2 7.1 Tổng quan Hàm băm 2 được đặc tả trong phần này cung cấp mã băm có độ dài L 1 và L 2 trong đó L 1 bằng n và L 2 bằng 2n . Một số định nghĩa riêng được yêu cầu cho hàm băm 2 đư ợ c trình bày dư ớ i đây. CHÚ TH Í CH 1: Hàm băm 2 được mô tả trong [4] . CHÚ TH Í CH 2: Trong [6] tấn công về mặt lý thuyết lên hàm băm 2 đã được ghi nhận: một t ấ n công va chạm v ớ i n =128 có độ phức tạp 2 124 , 5 , một tấn công tiền ảnh yêu cầu độ phức tạp và không gian đầu vào xấp x ỉ 2 n . Lý do duy nhất để giữ hàm băm 2 trong TCVN 11816-2 là vì đảm bảo tính tương thích với các ứng dụng đã có. 7.2 Lựa chọn tham s ố Các tham số L 1 , L 2 và L H của hàm băm 2 được đặc t ả trong phần này thỏa mãn L 1 = n, L 2 = 2n, và L H nhỏ hơn hoặc bằng 2n . 7.3 Phương pháp đệm Việc lựa chọn phương pháp đệm sử dụng cho hàm băm 2 không thuộc phạm vi của TCVN 11816-2. Cũng như các yêu cầu tối thiểu, phương pháp đệm đưa ra một tập gồm q khối D 1 , D 2 , …, D q , trong đó mỗi khối D j có độ dài n và có thể làm đầu vào cho các đầu ra khác nhau. Các ví dụ về các phương pháp đệm được tr ì nh bày trong Phụ lục A TCVN 11816-1. 7.4 Giá trị khởi tạo Việc lựa chọn IV (độ dà i 2n ) dùng cho hàm băm 2 không thuộc phạm vi TCVN 11816-2. I V là một xâu bit có độ dài 2n và giá trị của IV có th ể được thống nhất và c ố định bởi người sử dụng hàm băm. Tuy nhiên, IV được chọn sao cho u ( I V L ) và u ' ( IV R ) là khác nhau. 7.5 Hàm vòng Hàm vòng f kết hợp khối dữ liệu đệm D j ( L 1 = n bit) v ới H j-1 và đầu ra trước đ ó của hàm vòng ( L 2 = 2n bit) tạo thành H j . C ần lựa chọn ph é p biến đổi u và u’ như một phần của hàm vòng. Các biến đổi này biến đổ i một khối đầu ra thành 2 khối thích hợp độ dà i L K bit làm kh ó a cho thuật toán E . Đặc tả của u và u' nằm ngoài phạm v i TCVN 11816-2 . Tuy nhiên, việc lựa chọn u và u' cũng cần được xem xét vì sự quan trọng của n ó đối với sự an toàn của hàm băm. Đặt và tương ứng bằng IV L và I V R . Hàm vòng được xác định như sau, v ớ i j = 1 đến q . và và và Hàm vòng được mô tả trong H ì nh 2, trong đó X và Y được thay thế tương ứng với và . 7.6 Phép bi ế n đổi đầu ra Nếu L H chẵn thì mã băm sẽ là ghép của L H /2 bit trái nhất của và L H / 2 bit trái nhất của . Nếu L H lẻ mã băm sẽ là ghép của ( L H +1)/2 bit trái nhất của và ( L H -1)/2 bit trái nh ấ t của . Hình 2: Hàm vòng của hàm băm 2 8 Hàm băm 3 8.1 Tổng quan Hàm băm 3 được đặc tả trong phần này cung cấp m ã băm có độ d à i L H , trong đó L H bằng 2 n , với giá trị n chẵn. Một số định nghĩa riêng được yêu cầu cho hàm băm 2 được tr ì nh bày dưới đây. CH Ú THÍCH: Hàm băm 3 được mô tả trong [1]. 8.2 Lựa chọn tham số Các tham số L 1 , L 2 và L H của hàm băm 3 được đặc tả trong phần này thỏa mãn L 1 = 4 n , L 2 = 8 n , và L H = 2 n . 8.3 Phương pháp đệm Phương pháp đệm sử dụng cho hàm băm 3 được đặc tả trong mục A.3 TCVN 11816-1 sao cho r = n . 8.4 Giá trị kh ở i tạo Việc lựa chọn IV dùng cho hàm băm 3 không thuộc phạm vi TCVN 11816-2. IV là một xâu bit có độ dài 8n và giá trị của IV có th ể được thống nhất và cố định bởi người sử dụng hàm băm. 8.5 Hàm vòng Phép biến đổi u : Định nghĩa 8 ánh xạ u 1 , u 2 , ...,u 8 từ không gian mã tới không gian kh ó a, sao cho: u i ( C ) ≠ u j (C) với tất cả i, j từ tập {1,2,..., 8} ,j ≠ i đối với tất cả giá trị của C . Điều trên có th ể đạt được bằng cách cố định các bit khóa ví dụ, có thể cố định 3 bit khóa tới các giá trị 000, 001 ….., 11 1. Các điều kiện khác có thể áp dụng dựa vào các ánh xạ u i , ví dụ đ ể tránh các vấn đề liên quan đến khóa yếu hoặc các thuộc t í nh bù của mã khối. Đặt u j , i = u j , (X j,i ). Hàm f i : Định nghĩa 8 hàm f i như sau: f i ( X , Y ) = E ui ( X ) ( Y ) Å Y , 1 ≤ i ≤ 8. Ánh xạ tuyến tính β : Định nghĩa ánh xạ tuyến tính β nhận đầu vào là một xâu 2n bit X = x 0 ||x 1 ||x 2 ||x 3 và ánh xạ sang một xâu 2n bit Y = y 0 ||y 1 ||y 2 ||y 3 như sau: y 0 := x 0 Å x 3 y 1 := x 0 Å x 1 Å x 3 y 2 := x 1 Å x 2 y 3 := x 2 Å x 3 Trong đó x i và y i là các xâu n/2 bit. Hàm vòng f có 8 khối mã song song, và 8 dãy biến có độ dài n bit H j,1 , H j,2 ,…, H j,8 . Trong mỗi vòng lặp, 4 khối dữ liệu độ dài n bit D j, 1 , D j, 2 , D j, 3 , D j, 4 (độ dài L 1 = 4 n bit) được kết hợp với đầu ra vòng trước đ ó của hàm vòng H j -1,1 , H j -1 , 2 ,…, H j -1 , 8 (độ dài L 2 = 8n bit) để tạo thành H j, 1 , H j, 2 ,…, H j, 8 (độ dài L 2 = 8n bit) Hàm vòng dựa vào một ánh xạ tuy ế n t í nh g 1 nhận đầu vào là 12 xâu độ dài n bit I 1 , I 2 ,…, I 12 và ánh xạ sang 8 xâu độ dài n bit X 1 , X 2 ,…, X 8 và 8 xâu độ dài n bit Y 1 , Y 2 ,…, Y 8 . Á nh xạ của tám xâu phụ có độ dài 2n bit R 0 , R 1 , M 0 , M 1 ,..., M 5 . Ánh xạ g 1 được xác định theo các bước sau đây: i) Đặt H 0,1 , H 0, 2 ..., H 0,8 theo cách sao cho H 0,1 ||...|| H 0,8 = IV . ii) F or i = 0 to 5 do { M i L := I 2 i +1 ; M i R := I 2 i +2 } R 0 := 0 ; R 1 := 0; iii) for i = 1 to 5 do{ B := R 1 Å M i ; R 1 := R 0 Å β ( B ); R 0 := B;} iv) for i = 1 to 8 do { X i := I i ;} for i = 1 to 4 do { Y 4+ i := I 8+ i ;} Hàm vòng có dạng sau (1 ≤ j ≤ q) ( X j ,1 , X j ,2 ,…, X j ,8 , Y j ,1 , Y j ,2 ,…, Y j ,8 ):= g 1 ( H j -1,1 , H j -1,2 ,… H j -1,8 , D j ,1 , D j ,2 , D j ,3 , D j ,4 ); for i = 1 to 8 do { H j,i : = f i (X j,i ,Y j ,i ) ;} Hàm vòng được mô tả trong Hình 3 và ánh xạ g 1 được mô tả trong Hình 4 dưới đây: Hình 3: Hàm vòng của hàm băm 3 Hình 4: Ánh xạ tuyến tính g 1 của hàm băm 3 8.6 Phép biến đổ i đầu ra Sau quá trình xử lý thông báo đệm, chuỗi các biến có giá trị H q ,1 , H q ,2 ,…, H q ,8 . Thực hiện 4 vòng lặp bổ sung với đầu vào: D q +1, i = H q , i ,1 ≤ i ≤ 4 D q +2, i = H q , i +4 ,1 ≤ i ≤ 4 D q +3, i = H q , i ,1 ≤ i ≤ 4 D q +4, i = H q , i +4 , 1 ≤ i ≤ 4. Đầu ra của hàm băm có độ dài L H là ghép của H q +4,1 || H q +4,2 . Phép biến đổi đầu ra yêu cầu 26 lần mã (trong vòng lặp cuối chỉ 2 lần m ã được thực hiện). 9. Hàm băm 4 9.1 Tổng quan Hàm băm 4 được đặc tả trong phần này cung cấp mã băm có độ dài L H , trong đó L H bằng 3 n , với giá trị n chẵn. CHÚ TH Í CH: Hàm băm 4 được mô tả trong [2] . 9.2 Lựa chọn tham số Các tham số L 1 , L 2 và L H của hàm băm 4 được đặc tả trong phần này thỏa mãn L 1 = 3 n , L 2 = 9 n , và L H = 3 n . 9.3 Phương pháp đệm Phương pháp đệm sử dụng cho hàm băm 4 được đặc tả trong mục A.3 TCVN 11816-1, trường hợp r = n. 9.4 Giá trị kh ởi tạo Việc lựa chọn IV dùng cho hàm băm 4 không thuộc phạm vi TCVN 11816-2. IV là một xâu bit có độ dài 9 n và giá trị c ủ a IV có thể được thống nhất và cố định bởi người sử dụng hàm băm. 9.5 Hàm vòng Phép biến đổi u : Định nghĩa 9 ánh xạ u 1 , u 2 , …, u 9 từ không gian mã t ớ i không gian khóa, sao cho: với tất cả i, j thuộc tập {1,2,..., 9}, j ≠ i , u i ( C ) ≠ u j ( C ) ,đối với tất cả giá trị của C Điều trên có thể đạt được bằng cách cố định các bit khóa ví dụ, có thể cố định 4 bit của khóa tới các giá trị 0000, 0001,..., 1000. Các điều kiện khác có thể áp dụng dựa vào các ánh xạ u i , ví dụ để tránh các vấn đề liên quan đến khóa yếu hoặc các thuộc tính bù của mã khối. Hàm f i Định nghĩa 9 hàm f i như sau: f i ( X , Y ) = E ui ( X ) ( Y ),1 ≤ i ≤ 9. Ánh xạ tuyến tính β: Xem 8.1 để biết thêm các định nghĩa liên quan đến hàm băm này. Hàm vòng f có 9 khối mã song song, và 9 dãy biến có độ dài n -bit H j ,1 , H j ,2 ,…, H j ,9 . Trong mỗi vòng lặp, 3 khối dữ liệu độ dài n bit D j ,1 , D j ,2 , D j ,3 (độ dài L 1 = 3 n bit được kết hợp với đầu ra vòng trước đó của hàm vòng H j -1,1 , H j -1,2 ,…, H j -1,9 (độ dài L 2 = 9n bit) đ ể tạo thành H j ,1 , H j ,2 ,…, H j ,9 (độ dài L 2 = 9 n bit). Hàm vòng dựa vào một ánh xạ tuy ế n t í nh g 2 nhận đầu vào là 12 xâu dài n -bit l 1 , l 2 ,…, l 12 và ánh xạ sang 9 xâu độ dài n bit X 1 , X 2 ,…, X 9 và 9 xâu độ dài n bit Y 1 , Y 2 ,…, Y 9 . Ánh xạ sử dụng chín xâu phụ có độ dài 2n bit R 0 , R 1 , R 2 , M 0 , M 1 ,..., M 5 . Ánh xạ g 2 được xác định theo các bước sau đây: i) Đặt H 0,1 ,..., H 0,9 theo cách sao cho H 0,1 ||...|| H 0,9 = IV ii) for i = 0 to 5 do { M i L := I 2 i +1 ; M i R := I 2 i +2 ;} R 0 := 0 ; R 1 := 0 ; R 2 := 0 ; iii) for i = 0 to 5 do { B := R 2 Å M i ; U := β ( B ); R 2 := R 1 Å U ; R 1 := R 0 Å U ; R 0 := B ; } iv) for i = 1 to 9 do { X i := l i ;} for i = 1 to 3 do { Y 6+i := l 9+i ;} Hàm vòng có dạng sau (1 ≤ j ≤ q ) ( X j ,1 , X j ,2 ,…, X j ,9 , Y j ,1 , Y j ,2 ,…, Y j ,9 ):= g 2 ( H j -1,1 , H j -1,2 ,… H j -1,9 , D j ,1 , D j ,2 , D j ,3 ); for i = 1 to 9 do { H j,i : = f i (X j,i ,Y j ,i ) ;} Hàm vòng được mô tả trong Hình 5 và ánh xạ g 2 được mô tả trong Hình 6 dưới đây: H ì nh 5: Hàm vòng của hàm băm 4 9.6 Phép biến đổi đầu ra Sau quá trình xử lý bản thông báo đệm, chuỗi các bi ế n có giá trị H q ,1 , H q ,2 ,…, H q ,9 Thực hiện 4 vòng lặp bổ sung với đầu vào D q +1, i = H q , i , 1≤ i ≤ 3 D q +2, i = H q , i +3 , 1≤ i ≤ 3 D q +3, i = H q , i +6 , 1≤ i ≤ 3 D q +4, i = H q , i , 1≤ i ≤ 3. Đầu ra của hàm băm có độ dài L H là ghép của H q +4,1 || H q +4,2 || H q +4,3 . Phép biến đổi đầu ra yêu cầu 30 lần mã (trong vòng lặp cuối chỉ 3 lần mã được thực hiện). Hình 6: Ánh xạ tuyến tính g 2 của hàm băm 4 PHỤ LỤC A (tham khảo) SỬ DỤNG AES A.1 Tổng quan Phụ lục này trình bày một cách sử dụng thuật toán mã khối AES (TCVN11367-3:2016 (ISO/IEC 18033-3)) kết hợp với các hoạt động của hàm băm đ ược đặc tả trong TCVN 11816-2. Các tham s ố cho AES là n = 128. Độ dài K là 128 bit. A.2 Hàm băm 1 IV = ‘ 52525252525252525252525252525252’ (dạng mã thập lục phân) Phép biến đổi u được chọn theo cách sau: gọi X là biễu diễn nhị phân của xâu 128-bit khi đ ó Y = u(X) = X. CH Ú TH Í CH: Người ta tin rằng việc t ì m được va chạm cho hàm vòng và hàm băm cần tới 2 64 lần mã AES. A.3 Hàm băm 2 IV L = ‘52525252525252525252525252525252’ (dạng mã thập lục phân) IV R = ‘25252525252525252525252525252525’ (dạng mã thập lục phân) Phép biến đổi u được lựa chọn như sau: gọi X = x 1 x 2 … x 128 là biểu diễn nhị phân của một xâu X độ dài 128 bit Khi đó Y = u( X ) là xâu nhận được sau kh i chuyển bit x 1 thành giá trị ‘0 ’. Kết quả là: Y = 0 x 2 x 3 … x 127 x 128 . Phép biển đ ổ i u’ được lựa chọn như sau: Y = u'(X) là xâu nhận được sau khi chuyển bit x 1 thành giá trị ‘1’. Kết quả là: Y = 1 x 2 x 3 … x 127 x 128 . A.4 Hàm băm 3 IV 1 , IV 2 ,..., IV 8 cùng bằng ‘52525252525252525252525252525252’ (dạng mã thập lục phân) Phép biến đổi u 1 , u 2 , … u 8 được chọn như sau: X = x 1 x 2 … x 128 là biểu diễn nhị phân của xâu X độ dài 128 bit. Khi đ ó Y = u i (X) là xâu nhận được sau khi chuyển các bit x 1 , x 2 , x 3 tới giá trị cho trước trong bảng 1 dưới đây. Bảng A.1 - Hàm băm 3: Giá trị của các bit khóa số 1, 2, 3 trong 8 hàm con Hàm con i Hàm con i 1 000 2 001 3 010 4 011 5 100 6 101 7 110 8 111 A.5 Hàm băm 4 IV 1 , IV 2 , ... IV 9 cùng bằng '52525252525252525252525252525252' (dạng mã thập lục phân) Phép biến đổi u 1 , u 2 , … u 9 sẽ được chọn như sau: X = x 1 x 2 … x 128 là biểu diễn nhị phân của xâu X độ dài 128-bit. Khi đó Y = u i ( X ) là xâu nhận được sau kh i chuyển các bit x 1 , x 2 , x 3 , x 4 tới giá trị cho trước trong bảng 2 dưới đây. Bảng A.2 - Hàm băm 4: Giá trị của các bit khóa số 1, 2, 3 và 4 trong 9 hàm con Hàm con i Hàm con i 1 0000 2 0001 3 0010 4 0011 5 0100 6 0101 7 0110 8 0111 9 1000 PHỤ LỤC B (tham khảo) Các ví dụ B.1 Tổng quan Phụ lục B đưa ra ví dụ về việc tính toán mã băm cho tất cả các hàm băm được đặc tả trong các mục từ 6 đến 9 TCVN 11816-2, thuật toán mã khối được đặc tả trong phụ lục A TCVN 11816-2; Việc lựa chọn phương pháp đệm được đặc tả trong phụ lục A TCVN 1 1816-1. Xâu dữ liệu là mã ASCII 7-bit được mô tả trong [3] (Không chẵn lẻ) cho “ Now_is_the_time_for_all_ ” khi đó biểu thị “_” chỉ các khoảng trống trong biểu diễn hệ thập lục phân. ‘ 4e6f77206973207468652074696d6520666f7220616c6c20 ’ B.2 Hàm băm 1 Xem A.2. Phương pháp đệm 1 Phương pháp đệm 2 B.3 Hàm băm 2 Phương pháp đệm 1 Phương pháp đệm 2 B.4 Hàm băm 3 Phương pháp đệm 3 Mã băm '35af124f4845eb47256a959eb84554e03b78dd0c4a1d9bf36c4a4010aa41d8c5’ Phương pháp đệm 3 Mã băm 'cdac9fdaff9e80f1c464af255041b323c8d6aa10e8f147a2dedfd219ae0c2a4c96e3c0f64293b5298b264625901920d1’ PHỤ LỤC C (quy định) Mô Đun ASN.1 Phụ lục này liệt kê mô đun ASN.1 của hàm băm sử dụng mã khối n-bit được đặc tả trong TCVN 11816-2 Thư mục tài liệu tham khảo [1] KNUDSEN, L.R. PRENEEL, B. Hash-functions based on block ciphers and quaternary codes, Advances in Cryptology, Proc. AsiaCrypt’96, LNCS 1163, K. Kim, T. Matsumoto, Eds., Springer-Verlag, 1996, [2] KNUDSEN, L.R. PRENEEL, B. Fast and secure hashing based on codes, Advances in Cryptology, Proc. Crypto’97, LNCS 1294, B. Kaliski, Ed., Springer-Verlag, 1997, pp. 485-498 [3] ISO 646:1991, Information technology - ISO 7-bit coded character set for information interchange [4] COPPERSMITH, D. MATYAS, S.M. PEYRAVIAN, M. Rationale for Bit Fixing in the MDC-2 Algorithm, IBM T.J. Watson Research Center, Yorktown Heights, N.Y., 10598, Research Report RC 21471, May 7 1999 [5] MENEZES ALFRED J., PAUL C. VAN OORSHOT, Scott A. VANSTONE, Handbook of Applied Cryptography . Fifth Printing (August 2001) [6] KNUDSEN, L.R. MENDEL, F. RECHBERGER, C. THOMSEN, S.S. Cryptanalysis of MDC-2, Advances in Cryptology, Proc. Eurocrypt 2009, LNCS 5479, A. Joux, Ed., Springer-Verlag, 2009, pp. 106-120 [7] ISO/IEC 18033-3:2005, Information technology - Security techniques - Encryption algorithms - Part 3: Block ciphers MỤC LỤC Lời nói đầu 1 Phạm vi áp dụng 2 Tài liệu viện dẫn 3 Thuật ngữ và định nghĩa 4 Ký hiệu và thuật ngữ viết t ắ t 5 Sử dụng mô h ì nh tổng quát 6 Hàm băm 1 6.1 T ổ ng quan 6.2 Lựa chọn tham số 6.3 Phương pháp đệm 6.4 Giá trị khởi tạo 6.5 Hàm vòng 6.6 Phép biến đổi đầu ra 7 Hàm băm 2 7.1 Tổng quan 7.2 Lựa chọn tham số 7.3 Phương pháp đệm 7.4 Giá trị khởi tạo 7.5 Hàm vòng 7.6 Phép biến đổi đầu ra 8 Hàm băm 3 8.1 Tổng quan 8.2 Lựa chọn tham s ố 8.3 Phương pháp đệm 8.4 Giá trị khởi tạo 8.5 Hàm vòng 8.6 Phép biển đổi đầu ra 9 Hàm băm 4 9.1 Tổng quan 9.2 Lựa chọn tham số 9.3 Phương pháp đệm 9.4 Giá trị khởi tạo 9.5 Hàm vòng 9.6 Phép biến đổi đầu ra Phụ lục A (Tham khảo) Sử dụng AES Phụ lục B (Tham khảo) Các ví dụ Phụ lục C (Quy định) Mô đun ASN.1 Thư mục tài liệu tham khảo