Tin tổng hợp
Giới thiệu tóm tắt các nội dung cơ bản của TCVN 11367-4:2016 “Công nghệ thông tin – Các kỹ thuật an toàn – Các thuật toán mật mã – Phần 3: Mã dòng”

Tiêu chuẩn này bao gồm hai hàm đầu ra: hàm đầu ra cộng nhị phân và hàm đầu ra MULTI-S01; năm bộ tạo khóa dòng chuyên dụng: bộ tạo khóa dòng MUGI; bộ tạo khóa dòng SNOW 2.0; bộ tạo khóa dòng Rabbit; bộ tạo khóa dòng Decimv2; bộ tạo khóa dòng Kcipher-2(K2) và quy định hàm đầu ra để kết hợp một khóa dòng với bản rõ; bộ tạo khóa dòng để sinh khóa dòng, và định danh đối tượng được gán cho bộ tạo khóa dòng chuyên dụng phù hợp với tiêu chuẩn ISO/IEC 9834.

Mô hình tổng quát của mã dòng

Mã dòng được quy định trong tiêu chuẩn này và được xác định bởi hai đặc tả của hai quy trình: Bộ tạo khóa dòng đồng bộ hoặc bộ tạo khóa dòng tự đồng bộ. Mã dòng tự đồng bộ khác với mã dòng đồng bộ ở chỗ khóa dòng chỉ phụ thuộc vào bản mã trước, véc tơ khởi tạo và khóa.

Bộ tạo khóa dòng đồng bộ

Bộ tạo khóa dòng đồng bộ là máy trạng thái hữu hạn được định nghĩa như sau:

a) Một hàm khởi tạo, Init, nhận đầu vào khóa K và véc tơ khởi tạo IV và cho đầu ra một trạng thái khởi tạo S_0  cho bộ tạo khóa dòng. Véc tơ khởi tạo cần được lựa chọn để không bao giờ có hai thông báo được mã hóa sử dụng cùng khóa và cùng véc tơ khởi tạo IV.

b) Hàm chuyển trạng thái tiếp theo, Next, nhận đầu vào là trạng thái hiện tại của bộ tạo khóa dòng Si, và đưa ra trạng thái tiếp theo của bộ tạo khóa dòng Si+1.

c) Hàm khóa dòng, Strm, nhận đầu vào là trạng thái của bộ tạo khóa dòng Si, và đưa ra khối khóa dòng Zi.

Khi bộ tạo khóa dòng đồng bộ lần đầu khởi tạo, nó sẽ nhập vào một trạng thái khởi tạo S_0  được xác định bởi:

S_0=Init(IV,K)

Theo nhu cầu bộ tạo khóa dòng đồng bộ sẽ, với i = 0, 1,…

a) Đưa ra khối khóa dòng Z_i=Strm(S_i,K).

b) Cập nhật trạng thái máy S_(i+1)=Next(S_i,K).

Vì vậy, để xác định bộ tạo khóa dòng đồng bộ chỉ cần xác định hàm Init, Next và Strm, bao gồm cả độ dài và bảng chữ cái của khóa, véc tơ khởi tạo, trạng thái và khối đầu ra.

Bộ tạo khóa dòng tự đồng bộ

Việc tạo ra khóa dòng cho mã dòng tự đồng bộ chỉ phụ thuộc vào bản mã trước, khóa và véc tơ khởi tạo. Mô hình tổng quát cho bộ tạo khóa dòng cho mã dòng tự đồng bộ được xác định:

a) Hàm khởi tạo, Init, nhận đầu vào là khóa K và véc tơ khởi tạo IV và đưa ra đầu vào trong cho bộ tạo khóa dòng S và khối bản mã giả r C_(-1), C_(-2),…,C_(-r).

b) Hàm khóa dòng, Strm, nhận đầu vào S và khối bản mã r C_(-1), C_(-2),…,C_(-r)  và đưa ra khối khóa dòng Zi.

Để xác định bộ tạo khóa dòng tự đồng bộ chỉ cần thiết xác định số lượng các khối phản hồi r  và hàm Init và hàm Strm.

Một số bộ tạo khóa dòng chuyên dụng:

- Bộ tạo khóa dòng MUGI: MUGI là bộ tạo khóa dòng sử dụng khóa bí mật K 128-bit, véc tơ khởi tạo IV 128-bit và biến trạng thái Si (i≥0) bao gồm 19 khối 64-bit (lưu ý rằng mỗi khối được sử dụng thông qua đặc tả của MUGI cho mỗi khối 64-bit) và đưa ra khối khóa dòng Zi tại mỗi lần lặp của hàm Strm.

- Bộ tạo khóa dòng SNOW 2.0: SNOW 2.0, ký hiệu là SNOW, là bộ tạo khóa dòng sử dụng như là đầu vào khóa bí mật K có độ dài 128 hoặc 256-bit và một véc tơ khởi tạo IV có độ dài 128-bit. Chúng được sử dụng để khởi tạo biến trạng thái Si (i≥0) bao gồm 18 khối n = 32 bit. Thứ tự bit/byte là big-endian, tức là nếu khóa và véc tơ khởi tạo được cho dưới dạng một dãy các bit/byte, bit/byte phần đầu/tận cùng bên trái có trọng số cao nhất của dữ liệu tương ứng. Đối với mỗi lần lặp hàm Strm, 32-bit khóa dòng Zi được tạo coi như đầu ra.

- Bộ tạo khóa dòng Rabbit: Rabbit là bộ tạo khóa dòng sử dụng khóa bí mật K có độ dài 128-bit, véc tơ khởi tạo IV có độ dài 64-bit và biến trạng thái trong S_i  (i≥0) có độ dài 513-bit. Rabbit đưa ra khối khóa dòng Z_i  có độ dài 128-bit tại mỗi lần lặp hàm Strm.

- Bộ tạo khóa dòng Decim^v2: 〖DECIM〗^v2  là bộ tạo khóa dòng trong đó sử dụng khóa bí mật K có độ dài 80-bit và véc tơ khởi tạo IV có độ dài 64-bit. 〖DECIM〗^v2  bao gồm thanh ghi dịch phản hồi tuyến tính A có độ dài tối đa 192-bit, được lọc bởi hàm Boolean LF 14-biến. Trong chế độ tạo khóa dòng, đầu ra của LF được sử dụng để nuôi một khối nén là hàm được gọi là ABSG, mà đầu cuối đi qua một bộ đệm B dài 32-bit để điều chỉnh tốc độ đầu ra khóa dòng.

- Bộ tạo khóa dòng KCipher-2 (K2): KCipher-2 (K2) là bộ tạo khóa dòng trong đó sử dụng đầu vào là khóa bí mật K độ dài 128-bit và véc tơ khởi tạo IV độ dài 128-bit. Khóa bí mật và Véc tơ khởi tạo được sử dụng để khởi tạo biến trạng thái S_(i ) (i≥0) bao gồm 20 khối 32-bit, trong đó S_(i ) biểu diễn trạng thái trong của K2 tại chu kỳ i. Thứ tự bit/byte là big-endian, tức là nếu khóa và véc tơ khởi tạo được cho dưới dạng dãy các bit/byte, Thứ nhất/tận cùng bên trái của bit/byte có trọng số cao nhất của dữ liệu tương ứng. Đối với mỗi lần lặp của hàm Strm, 64-bit khóa dòng Zi được tạo coi như đầu ra.

Các hàm đầu ra, cách tạo các bộ khóa dòng từ mã khối, các ví dụ cụ thể cho mã dòng, các thông tin an toàn và các phép toán trên trường hữu hạn GF(2n) có liên quan tới mã dòng được quy định chi tiết tại TCVN 11367-4:2016.

Ths. Lại Mạnh Tuấn, Cục QLMMDS & KĐSPMM


Thống Kê Truy Cập
Tổng số lượt truy cập: 1050199
Số người đang truy cập: 24