Danh mục
|
Tổng đài trực tuyến 19006192
|
|
  • Tổng quan
  • Nội dung
  • Tiêu chuẩn liên quan
  • Lược đồ
  • Tải về
Lưu
Đây là tiện ích dành cho tài khoản Tiêu chuẩn hoặc Nâng cao Vui lòng Đăng nhập tài khoản để xem chi tiết.
Theo dõi VB
Đây là tiện ích dành cho tài khoản Tiêu chuẩn hoặc Nâng cao Vui lòng Đăng nhập tài khoản để xem chi tiết.
Ghi chú
Báo lỗi
In

Tiêu chuẩn quốc gia TCVN 14263:2024 Công nghệ thông tin - Kỹ thuật an toàn - Thuật toán mã khối MKV

Số hiệu: TCVN 14263:2024 Loại văn bản: Tiêu chuẩn Việt Nam
Cơ quan ban hành: Bộ Khoa học và Công nghệ Lĩnh vực: Khoa học-Công nghệ , Thông tin-Truyền thông
Ngày ban hành:
Ngày ban hành là ngày, tháng, năm văn bản được thông qua hoặc ký ban hành.
31/12/2024
Hiệu lực:
Đã biết
Tiện ích dành cho tài khoản Tiêu chuẩn hoặc Nâng cao. Vui lòng Đăng nhập tài khoản để xem chi tiết.
Người ký: Đang cập nhật
Tình trạng hiệu lực:
Cho biết trạng thái hiệu lực của văn bản đang tra cứu: Chưa áp dụng, Còn hiệu lực, Hết hiệu lực, Hết hiệu lực 1 phần; Đã sửa đổi, Đính chính hay Không còn phù hợp,...
Đã biết
Tiện ích dành cho tài khoản Tiêu chuẩn hoặc Nâng cao. Vui lòng Đăng nhập tài khoản để xem chi tiết.

TÓM TẮT TIÊU CHUẨN VIỆT NAM TCVN 14263:2024

Nội dung tóm tắt đang được cập nhật, Quý khách vui lòng quay lại sau!

Tải tiêu chuẩn Việt Nam TCVN 14263:2024

Tải văn bản tiếng Việt (.pdf) Tiêu chuẩn Việt Nam TCVN 14263:2024 PDF (Bản có dấu đỏ)

Đây là tiện ích dành cho tài khoản thành viên. Vui lòng Đăng nhập để xem chi tiết. Nếu chưa có tài khoản, Đăng ký tại đây!

Tải văn bản tiếng Việt (.doc) Tiêu chuẩn Việt Nam TCVN 14263:2024 DOC (Bản Word)

Đây là tiện ích dành cho tài khoản thành viên. Vui lòng Đăng nhập để xem chi tiết. Nếu chưa có tài khoản, Đăng ký tại đây!

Tình trạng hiệu lực: Đã biết
bgdocquyen
Hiệu lực: Đã biết
Tình trạng hiệu lực: Đã biết

TIÊU CHUẨN QUỐC GIA

TCVN 14263:2024

CÔNG NGHỆ THÔNG TIN - KỸ THUẬT AN TOÀN - THUẬT TOÁN MÃ KHỐI MKV

Information technology - Security techniques - Block cipher algorithm MKV

 

Mục lục

Lời nói đầu

Lời giới thiệ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à chữ viết tắt

5 Mã khối MKV

5.1 Tổng quan

5.2 Phép mã hóa theo MKV

5.3 Phép giải mã theo MKV

5.4 Các biến đổi cơ sở của trạng thái

5.5 Chu trình tạo khóa của MKV

Phụ lục A (Quy định) Véc tơ kiểm tra cho MKV

Thư mục tài liệu tham khảo

 

Lời nói đầu

TCVN 14263:2024 do Ban Cơ yếu Chính phủ xây dựng, Bộ trưởng Bộ Quốc phòng đề nghị, Bộ Khoa học và Công nghệ thẩm định, công bố.

 

Lời giới thiệu

Nội dung của tiêu chuẩn này được xây dựng dựa trên việc thừa kế nội dung nghiên cứu của nhiệm vụ Khoa học - Công nghệ cấp Ban Cơ yếu Chính phủ, “Nghiên cứu xây dựng chuẩn mã khối sử dụng trong lĩnh vực dân sự”, Viện Khoa học - Công nghệ mật mã/Ban Cơ yếu Chính phủ chủ trì. Thuật toán mã khối MKV có hai phiên bản kích cỡ khối, kích cỡ khối 256-bit với mong muốn đảm bảo độ an toàn cho hậu lượng tử còn 128-bit cho giai đoạn chuyển tiếp. Mỗi phiên bản mã khối đều có ba tùy chọn độ dài khóa với mức an toàn linh hoạt phù hợp cho các nhà làm ứng dụng. Mã khối MKV đã đạt được một số đặc điểm trong thiết kế như sau:

Về cấu trúc: MKV sử dụng cấu trúc dạng SPN dựa trên lược đồ FLC đạt độ an toàn chứng minh được trong mô hình Luby-Rackoff, được xây dựng trong [3], Bên cạnh đó, mã khối này có cấu trúc FLC-SDS đạt được độ an toàn thực tế trước thám mã vi sai và tuyến tính, xem [4],

Về thành phần mật mã: Mã khối sử dụng hộp thế 8-bit cho khả năng xáo trộn và ma trận MDS cho khả năng khuếch tán cực đại. Các thành phần mật mã này đều có tính chất mật mã tốt và có xem xét đến khả năng tối ưu trong triển khai cài đặt phần mềm/phần cứng, xem [5, 7, 8].

Về chu trình tạo khóa: MKV có chu trình tạo khóa được thiết kế theo lược đồ lặp trong [6], có đảm bảo độ an toàn lý thuyết về cấu trúc và độ an toàn thực tế trước thám mã vi sai khóa quan hệ.

Về kháng lại tấn công thám mã thực tế: Bên cạnh độ an toàn chứng minh được đối với hai thám mã phổ biến nhất là vi sai và tuyến tính, MKV đảm bảo kháng lại thám mã boomerang, thám mã tích phân, thám mã đại số, thám mã vi sai khóa quan hệ, thám mã vi sai không thể, ... Ngoài ra, hiện nay MKV đã được sơ bộ ước lượng tài nguyên cài đặt lượng tử, qua đó thấy rằng chưa kể đến tài nguyên để thực hiện tấn công thì tài nguyên cho chính thuật toán đã rất lớn. Tuy nhiên, việc khảo sát các tấn công lượng tử lên MKV vẫn đang tiếp tục, trước hết là những tấn công lượng tử tổng quát (Grover, Simon, ...), sau đó đến các tấn công có tính đến cấu trúc đặc thù và tham số cụ thể của MKV vẫn đang và sẽ được tiếp tục thực hiện.

Về hiệu năng: đảm bảo khả năng thực thi phù hợp với các ứng dụng thông dụng trong bảo mật thông tin thuộc lĩnh vực dân sự về phần cứng và phần mềm.

 

CÔNG NGHỆ THÔNG TIN - KỸ THUẬT AN TOÀN THUẬT TOÁN MÃ KHỐI MKV

Information technology - Security techniques - Block cipher algorithm MKV

1  Phạm vi áp dụng

Tiêu chuẩn này mô tả mã khối MKV (viết tắt của từ Mã Khối Việt) được áp dụng trong các phương pháp mật mã và bảo mật thông tin, trong đó đảm bảo tính bí mật của thông tin khi truyền, xử lý và lưu trữ thông tin trong các hệ thống thông tin.

2  Tài liệu viện dẫn

Các tài liệu viện dẫn sau là cần thiết cho việc áp dụng tiêu chuẩn này. Đối với tài liệu viện dẫn ghi năm công bố, áp dụng phiên bản được nêu. Đối với tài liệu viện dẫn không ghi năm công bố, áp dụng phiên bản mới nhất, bao gồm các sửa đổi, bổ sung (nếu có).

TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 1: Tổng quan.

3  Thuật ngữ và định nghĩa

Tiêu chuẩn này sử dụng các thuật ngữ và định nghĩa nêu trong TCVN 11367-1:2016 (ISO/IEC 18033-1:2015) và các thuật ngữ và định nghĩa sau:

3.1

Khối (block)

Xâu bít có độ dài xác định.

[NGUỒN: TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), 2.7]

3.2

Mã khối (block cipher)

Hệ mật đối xứng với tính chất là thuật toán mã hóa thao tác trên một khối của bản rõ, nghĩa là trên một xâu bít có độ dài xác định, kết quả cho ra một khối của bản mã.

[NGUỒN:TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), 2.8]

3.4

Bản mã (ciphertext)

Là dữ liệu sau phép biến đổi để giấu nội dung thông tin.

[NGUỒN: TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), 2.10]

3.5

Bản rõ (cleartext, plaintext)

Thông tin chưa được mã hóa.

[NGUỒN: TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), 2.11]

3.6

Giải mã (decipherment, decryption)

Phép toán ngược với phép mã hóa tương ứng.

[NGUỒN: TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), 2.13]

3.7

Thuật toán giải mã (decipherment algorithm, decryption algorithm)

Quá trình biến đổi bản mã thành bản rõ.

[NGUỒN: TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), 2.14]

3.8

Mã hóa (encipherment, encryption)

Phép biến đổi (khả nghịch) dữ liệu bởi thuật toán mật mã để tạo ra bản mã, tức là giấu nội dung thông tin của dữ liệu.

[NGUỒN: TCVN 11367-1:2016(ISO/IEC 18033-1:2015), 2.15]

3.9

Thuật toán mã hóa (encipherment algorithm, encryption algorithm)

Quá trình biến đổi bản rõ thành bản mã.

[NGUỒN: TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), 2.16]

3.10

Khóa (key)

Dãy các kí tự điều khiển sự vận hành của các thuật toán mật mã (ví dụ, phép mã hóa, giải mã).

[NGUỒN: TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), 2.21]

3.11

Khóa vòng (round key)

Dãy các kí tự được tính từ khóa (key) và điều khiển một biến đổi cho một vòng của mã khối.

3.12

Chu trình tạo khóa (key schedule)

Quá trình tính toán các khóa vòng từ khóa.

3.13

Véc tơ kiểm tra (test vector)

Tập hợp các đầu vào và đầu ra tương ứng của thuật toán mật mã, được sử dụng để kiểm tra tính đúng đắn của thuật toán.

3.14

Hộp thế n-bit (n-bit S-box)

Biến đổi phi tuyến thay thế một xâu bít n-bit thành một xâu bít n-bit, cụ thể với mỗi đầu vào n-bit được ánh xạ thành một giá trị đầu ra n-bit tương ứng.

4  Ký hiệu và chữ viết tắt

Tiêu chuẩn này sử dụng các ký hiệu và chữ viết tắt sau:

0x

Tiền tố của các số được biểu diễn dưới dạng thập lục phân (hex);

Trường hữu hạn chỉ có hai phần tử 0, 1, tức là  = {0,1};

Trường hữu hạn với đa thức sinh nguyên thủy x8  x5  x3  x  1 trên ;

Vn

Tập hợp xâu có độ dài n-bit;

Phép toán logic XOR trên xâu bít, nghĩa là nếu AB là hai xâu cùng độ dài thì A  B là xâu bít bao gồm các bít là kết quả phép toán logic XOR của AB;

x || y

Chuỗi kết quả của việc nối xâu y vào xâu x;

{0,l}d

Xâu gồm d bít nhị phân;

-

Phép phủ định của một xâu;

<r>w

Dạng biểu diễn w-bit của số nguyên r;

l

Kích cỡ khối của mã khối, l ϵ {128,256};

k

Độ dài khoá của mã khối, k ϵ {128,192,256,384,512};

R

Số vòng của mã khối, R ϵ {7,8,9}

w

Kích cỡ của trạng thái con;

t

Số lượng các byte trong trạng thái con;

Biểu diễn tương ứng trạng thái l-bít, trạng thái con w-bit và một byte trong trạng thái con của phép mã hoá và giải mã của MKV;

Biểu diễn tương ứng trạng thái 2l-bit, trạng thái con w-bit và một byte trong trạng thái con trong chu trình tạo khóa của MKV;

s

Biến đổi thay thế từng byte trong trạng thái, còn được gọi là hộp thế;

SubCells (invSubCells)

Biến đổi trên trạng thái mã hoá (giải mã), dựa trên biến đổi s trên từng byte;

MixWords (invMixWords)

Biến đổi trên trạng thái mã hoá (giải mã), dựa trên biến đổi tuyến tính trên từng trạng thái con;

XWords

Biến đổi giữa các trạng thái con;

Fl, (invFl)

Hàm vòng (nghịch đảo của hàm vòng) cho phiên bản có kích thước khối l;

UpdateKSl

Biến đổi cập nhật trạng thái khoá của chu trình tạo khoá;

P

Bản rõ l-bit, đầu vào của quá trình mã hoá và đầu ra của quá trình giải mã;

X ← P

Quy tắc khởi tạo trạng thái X từ các byte bản rõ P;

C

Bản mã l-bít, đầu vào của quá trình giải mã và đầu ra của quá trình mã hoá;

Kmaster

Khoá k-bit cho MKV;

K  Kmaster

Quy tắc khởi tạo trạng thái K từ khoá Kmaster;

SWAP (K0,K1)

Phép biến đổi tráo đổi giá trị của hai trạng thái K0, K1 với nhau;

Ki

Khoá vòng 2l-bit, được biểu diễn thành hai phần l-bit như sau  trong đó  ϵ Vl;

Kpost

Khoá xoá trắng l-bít;

MKV-l/k

Phiên bản mã khối với kích cỡ khối l và độ dài khoá k;

5  Mã khối MKV

5.1  Tổng quan

Mã khối này xử lý khối dữ liệu có kích cỡ 128-bit hoặc 256-bit, được kí hiệu MKV-l/k với l biểu thị kích thước khối và k biểu thị độ dài khóa. Trong đó, đối với kích cỡ khối 128-bit có ba phiên bản khóa có độ dài 128-bit, 192-bit và 256-bit có số vòng tương ứng là 7, 8, 9 (kí hiệu chung là MKV-128); còn kích cỡ khối 256-bit có ba phiên bản khóa có độ dài 256-bit, 384-bit, 512-bit có số vòng tương ứng là 7, 8, 9 (kí hiệu chung là MKV-256). Khi đó, chúng ta có tổng cộng 6 phiên bản với kích thước khối/độ dài khóa/số vòng khác nhau được mô tả trong Bảng 1.

Bảng 1 - Các phiên bản trong MKV

STT

Phiên bản

l

k

R

1.

MKV-128

128

128

7

2.

192

8

3.

256

9

4.

MKV -256

256

256

7

5.

384

8

6.

512

9

Đối với cả hai phép mã hóa và giải mã, thuật toán MKV sử dụng hàm vòng bao gồm bốn phép biến đổi khác nhau trên byte: 1) phép thay thế byte sử dụng bảng thay thế, 2) cập nhật dữ liệu độc lập trong mỗi trạng thái con của mảng Trạng thái, 3) cập nhật dữ liệu trong mỗi trạng thái con của mảng Trạng thái bằng cách cộng các trạng thái con với nhau để nhận giá trị cho trạng thái tiếp theo, 4) Cộng XOR khóa vòng vào Trạng thái. Các phép biến đổi này (và các phép nghịch đảo của chúng) được mô tả trong Điều 5.4.

Phép mã hóa và giải mã được mô tả tương ứng trong Điều 5.2 và 5.3, chu trình tạo khóa tương ứng được mô tả trong Điều 5.5

5.2  Phép mã hóa theo MKV

Thuật toán MKV bao gồm một dãy các phép biến đi cơ bản trên xâu bit X có độ dài Z-bit, xâu này được gọi là trạng thái bên trong của mã khối. Trạng thái X này được chia thành bốn xâu w-bit x0,x1,x2,x3, được gọi là trạng thái con, như sau X = x°||x1||x2||x3, trong đó w = 32 đối với MKV-128 còn w = 64 đối với MKV-256. Mỗi trạng thái con xi (0 ≤ i < 4) được biểu diễn dưới dạng byte như sau xi =  ϵ V8 với mọi 0 ≤ i < 4,0 j < t; trong đó t = 4 đối với MKV-128 còn t = 8 đối với MKV-256. Do đó, trạng thái này có th được biểu diễn dưới dạng mảng kích thước t × 4 với mỗi phần tử có giá trị một byte. Mỗi cột của mảng trạng thái chính là biểu diễn một trạng thái con của X. Cụ thể, trạng thái được biểu diễn trong Hình 1. Để biểu diễn ngắn gọn cho trạng thái mã hóa và giải mã của hai phiên bản này, trong chuẩn dùng dạng tổng quát trong Hình 2.

Đ mã hóa một bản rõ l-bit P = P0 || P1 || …|| P4W-1 trong đó Pi là các byte, đầu tiên mảng Trạng thái được khởi tạo với các byte bản rõ, với quy tắc tính từ trên xuống dưới và từ trái sang phải và được minh họa trên Hình 3, kí hiệu là X P.

Hình 1 - Mô tả trạng thái cho quá trình mã hóa và giải mã của hai phiên bản MKV-256 (a) và MKV-128 (b)

Hình 2 - Mô tả tổng quát cho trạng thái mã hóa và giải mã của MKV

Hình 3 - Khi tạo Trạng thái mã hoá

Tiếp theo, quá trình mã hóa của mã khối MKV thực hiện R lần lặp hàm vòng kết hợp cộng xóa trắng sau khi thực hiện lặp các hàm vòng; quá trình này sử dụng R khóa vòng có độ dài 2l=bit, Ki ϵ V2l(0 ≤ i < R), và một khóa làm trắng Kpost ϵ Vl được sinh bởi chu trình tạo khóa từ khóa Kmaster, được mô tả trong Điều 5.5, Kết quả trạng thái đầu ra chính là bản mã C.

Phép mã hóa có thể được mô tả đầy đủ như sau:

(1)

X ← P

 

(2)

Với i = 0

đến R - 1 thực hiện

 

(2.1) X =

 

(2.2) X =

SubCells(X)

 

(2.3) X =

MixWords(X)

 

(2.4) X =

 

(2.5) X =

SubCells(X)

 

(2.6) X =

XWords(X)

(3)

C = X  Kpost

Các phép biến đổi cơ bản SubCells( ), MixWords( ),XWords( ) xử lí trạng thái và được mô tả trong Điều 5.4.

5.3  Phép giải mã theo MKV

Tất c các phép biến đổi sử dụng trong các phép mã hóa đều khả nghịch, trong đó có XWords( ) là tự khả nghịch. Khi thực thi phép giải mã, dãy các phép biến đổi được sử dụng trong phép mã hóa vẫn được duy trì, nhưng thay bằng các phép biến đổi nghịch đảo như sau. Đ giải mã một bản mã l-bit C thành một bản rõ l-bit P, quá trình giải mã của mã khối MKV-l lặp lại R lần nghịch đảo hàm vòng cũng sử dụng R khóa vòng Ki ϵ V2l(0 ≤ i < R) và khóa làm trắng Kpost ϵ Vl giống như quá trình mã hóa. Khi bắt đầu, mảng Trạng thái được khởi tạo giá trị từ các byte bản mã C theo quy tắc như phép mã hóa.

Phép giải mã có thể mô tả đầy đủ như sau:

(1)

X ← P

(2)

X = X  Kpost

(3)

Với i = 0 đến R - 1 thực hiện

 

(3.1) X = XWords(X)

 

(3.2) X = invSubCells(X)

 

(3.3) X =

 

(3.4) X = invMixWords(X)

 

(3.5) X = invSubCells(X)

 

(3.6) X =

(3)

C = X  Kpost

(4)

P = X

Các phép biến đổi invSubCells( ), invMixWords( ) thực hiện xử lí trạng thái và được mô tả tại Điều 5.4.

Hình 4 - Mô tả quá trình mã hóa qua các biến đổi trạng thái

Hình 5 - Mô tả quá trình giải mã qua các biến đổi trạng thái

5.4  Các biến đổi cơ sở của trạng thái

Thuật toán MKV sử dụng các phép biến đổi SubCells( ), invSubCells( ), MixWords( ), invMixWords( ), XWords( ), được mô tả dưới đây.

5.4.1  Biến đổi SubCells

Biến đổi SubCells xử lý trên toàn bộ trạng thái X ϵ Vl bằng cách áp dụng hộp thế 8 bit s vào từng byte , tác động này được minh họa trong Hình 6. Hộp thế s được trình bày trong Bảng 2.

Chú thích: các giá trị của các bảng này được biểu diễn dưới dạng thập lục phân (hex), trong đó giá trị đầu ra của hộp thể là giá trị được xác định tại vị trí giao nhau giữa cột được xác định bởi 4-bit trọng số thấp và hàng được xác định bởi 4-bit trọng số cao của đầu vào. Ví dụ, s(0x24) = 0x1C và s-1(0x82) = 0xB4.

Hình 6 - Mô tả phép biến đổi SubCells

Bảng 2 - Biểu diễn dạng tra bảng của hộp thế s

 

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

01

11

91

E1

D1

B1

71

61

F1

21

Cl

51

A1

41

31

81

1

00

10

E3

92

B5

D4

77

66

89

38

AB

4A

CD

5C

2F

FE

2

08

5F

3E

B0

1C

C2

83

DD

E8

F6

47

79

95

2B

AA

64

3

0F

48

D0

29

A3

1A

F2

BB

65

CC

E4

3D

57

7E

86

9F

4

0C

2A

F4

1F

5B

90

EE

C5

36

6D

73

88

BC

A7

49

D2

5

0A

3C

18

85

E0

4D

99

A4

B3

5E

DA

C7

72

FF

6B

26

6

06

76

CF

A8

4E

59

60

17

DC

9B

32

F5

23

84

ED

BA

7

07

67

2D

3B

FA

8C

16

70

54

A2

98

BE

EF

D9

C3

45

8

0E

A9

62

5A

27

BF

34

9C

FD

D5

8E

E6

1B

43

78

C0

9

03

B2

87

C4

9D

6E

4B

F8

7A

E9

2C

AF

D6

15

50

33

A

0D

FB

56

EC

3F

75

B8

42

1E

24

C9

93

80

6A

D7

AD

B

04

E5

B9

7D

82

A6

CA

2E

97

13

6F

DB

44

30

FC

58

C

0B

8D

9A

46

74

28

DF

53

CB

B7

F0

6C

AE

E2

35

19

D

05

94

7B

DE

C6

F3

AC

39

4F

8A

55

20

68

BD

12

E7

E

02

D3

A5

F7

69

EB

5D

8F

22

40

B6

14

3A

C8

9E

7C

F

09

CE

4C

63

D8

37

25

EA

A0

7F

1D

52

F9

96

B4

8B

5.4.2  Biến đổi invSubCells

Biến đổi invSubCells( ) là biến đổi nghịch đảo của biến đổi SubCells( ), trong đó áp dụng hộp thế nghịch đảo s-1 của s trong từng byte dữ liệu của trạng thái giải mã. Hộp thế s-1 được sử dụng trong phép biến đổi này được mô tả trong Bảng 3.

Bảng 3 - Biểu diễn dạng tra bảng của hộp thế s-1

 

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

10

00

E0

90

B0

D0

60

70

20

F0

50

C0

40

A0

80

30

1

11

01

DE

B9

EB

9D

76

67

52

CF

35

8C

24

FA

A8

43

2

DB

09

E8

6C

A9

F6

5F

84

C5

33

41

2D

9A

72

B7

1E

3

BD

0E

6A

9F

86

CE

48

F5

19

D7

EC

73

51

3B

22

A4

4

E9

0D

A7

8D

BC

7F

C3

2A

31

4E

1B

96

F2

55

64

D8

5

9E

0B

FB

C7

78

DA

A2

3C

BF

65

83

44

1D

E6

59

21

6

66

07

82

F3

2F

38

17

71

DC

E4

AD

5E

CB

49

95

BA

7

77

06

5C

4A

C4

A5

61

16

8E

2B

98

D2

EF

B3

3D

F9

8

AC

0F

B4

26

6D

53

3E

92

4B

18

D9

FF

75

C1

8A

E7

9

45

02

13

AB

D1

2C

FD

B8

7A

56

C2

69

87

94

EE

3F

A

F8

0C

79

34

57

E2

B5

4D

63

81

2E

1A

D6

AF

CC

9B

B

23

05

91

58

FE

14

EA

C9

A6

B2

6F

37

4C

DD

7B

85

C

8F

0A

25

7E

93

47

D4

5B

ED

AA

B6

C8

39

1C

F1

62

D

32

04

4F

E1

15

89

9C

AE

F4

7D

5A

BB

68

27

D3

C6

E

54

03

CD

12

3A

B1

8B

DF

28

99

F7

E5

A3

6E

46

7C

F

CA

08

36

D5

42

6B

29

E3

97

FC

74

A1

BE

88

1F

5D

5.4.3. Biến đổi MixWords

Với mỗi trạng thái đầu vào X = x0 || x1 || x2 || x3, phép biến đổi MixWords cập nhật từng trạng thái con xi qua một biến đổi tuyến tính dựa trên ma trận có kích thước t × t trên trường , được minh họa trong Hình 7. Cụ thể, các giá trị byte trong từng xâu yi (0 ≤ i < 4) của đầu ra Y = y0 || y1 || y2 || y3 được xác định thông qua véc tơ cột  tạo bởi phép nhân ma trận M =  với véc tơ cột  xác định từ đầu vào xi như sau:

với các byte  được coi là các phần tử trên trường  với mọi 0 ≤ j, i', j' < t.

Chú thích: các phép toán được thực hiện trên trường  đã được lựa chọn.

Đối với MKV-128, MixWords sử dụng ma trận 4 × 4 trên  tương ứng như sau:

Kết quả của phép nhân là mỗi trạng thái con xi(0 ≤ i < 4) được thay thế như sau:

Đối với MKV-256, MixWords sử dụng ma trận 8 × 8 trên  tương ứng như sau:

Kết quả của phép nhân là mỗi trạng thái con xi(0 ≤ i < 4) được thay thế như sau:

Hình 7 - Mô tả phép biến đổi MixWords

5.4.4  Biến đổi invMixWords

Biến đổi invMixWords là biến đổi nghịch đảo của biến đổi MixWords, thao tác trên Trạng thái, thay mỗi trạng thái con này bằng trạng thái con 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  đã lựa chọn.

Đối với MKV-128, invMixWords sử dụng ma trận 4 × 4 trên  tương ứng như sau:

Kết quả của phép nhân là mỗi trạng thái con xi (0 ≤ i < 4) được thay thế như sau:

Đối với MKV-256, invMixWords sử dụng ma trận 8 × 8 trên  tương ứng như sau:

Kết quả của phép nhân là mỗi trạng thái con xi (0 ≤ i < 4) được thay thế như sau:

5.4.5. Biến đổi XWords

Biến đổi này cập nhật trạng thái đầu vào X = x0 ||x1 || x2 || x3 bằng cách cộng XOR các trạng thái con với nhau để nhận giá trị cho trạng thái tiếp theo Y = y0 || y1 || y2 || y3 được xác định như sau (xem mô tả trong Hình 8):

Biến đổi này có tính chất tự nghịch đảo, các trạng thái con xi cũng nhận được từ các trạng thái yi như sau:

Hình 8 - Mô tả phép biển đổi XWords

5.5  Chu trình tạo khóa của MKV

Hình 9 - Minh họa cho trạng thái khóa của MKV-l

Trong chu trình tạo khóa, các khóa vòng được lấy ra từ các trạng thái của chu trình tạo khóa có độ dài 2l bít, gấp đối với trạng thái trong phép mã hóa và giải mã trong Điều 5.2 và 5.3. Khi đó, trạng thái oc sẽ được xử lý thành 8 xâu w-bit  như sau:

trong đó  là các xâu w-bit được chia thành t byte có dạng  ϵ VB với mọi 0 ≤ i < 8,0 ≤ j < t. Trạng thái này biểu diễn thành một mảng kích thước t × 8 với các phần tử có giá trị byte, được mô tả bởi Hình 9. Trong đó, mỗi trạng thái  cũng sẽ được biểu diễn thành hai trạng thái con có kích thước l-bit là  = sao cho .

Chu trình tạo khóa của MKV thực hiện cập nhật đối với trạng thái khóa có kích cỡ 2l-bit K = K0 || K1 ϵ V2l đ lấy ra khóa của vòng từ khóa Kmaster. Đầu tiên, trạng thái khóa ban đầu có giá trị Kint sẽ được khởi tạo từ khóa Kmaster đối với trường hợp khóa 2l-bit và từ khóa được bổ sung đối với trường hợp còn lại như sau:

kí hiệu bước khởi tạo này là . Tiếp theo, các khóa vòng  = 0,1,..., R - 1 và  được nhận từ (2R + 1) xâu l-bit RK, được sinh ra trong quá trình cập nhật trạng thái khóa gồm các biến đi cơ bản SubCells, MixWords, XWords trong Điều 5.4 trên các trạng thái con K0,K1 kết hợp với phép cộng XOR hằng số vòng có giá trị l bít phụ thuộc vào các chỉ số vòng i và phép biến đổi tráo đổi giá trị của hai trạng thái con được kí hiệu là SWAP (K0, K1). Thực hiện R lần cập nhật trạng thái khóa K, ta có các giá trị RK0,RK1, ...,RK2R (xem minh họa Hình 10). Khi đó, các khóa  cho phép mã hóa và giải mã trong Điều 5.2 và 5.3 sẽ được xác định thông qua các xâu l-bít RK0, RK1,...,RK2R.

Chu trình tạo khóa có thể được mô tả đầy đủ như sau:

Hình 10 - Quá trình cập nhật trạng thái khóa để lấy ra các giá trị RK2i+1, RK2i+2

 

Phụ lục A

(Quy định)

Véc tơ kiểm tra cho MKV

A.1  Phiên bản kích cỡ khối 128-bit

A.1.1  Trường hợp khóa 128-bit:

Trạng thái 128-bit cập nhật qua các vòng:

Vòng 1

Vòng 2

Vòng 3

Vòng 4

Vòng 5

Vòng 6

Vòng 7

A.1.2  Trường hợp khóa 192-bit

Khóa vòng nhận được qua chu trình tạo khóa:

Trạng thái 128-bit cập nhật qua các vòng:

Vòng 1

Vòng 2

Vòng 3

Vòng 4

Vòng 5

Vòng 6

Vòng 7

Vòng 8

A.1.3. Trường hợp khóa 256-bit

Khóa vòng nhận được qua chu trình tạo khóa:

Trạng thái 128-bit cập nhật qua các vòng:

Vòng 1

Vòng 2

Vòng 3

Vòng 4

Vòng 5

Vòng 6

Vòng 7

Vòng 8

Vòng 9

A.2. Phiên bản kích cỡ khối 256-bit

A.2.1. Trường hợp khóa 256-bit

Khóa vòng nhận được qua chu trình tạo khóa:

Trạng thái 256-bit cập nhật qua các vòng:

Vòng 1

Vòng 2

Vòng 3

Vòng 4

Vòng 5

Vòng 6

Vòng 7

A.2.2  Trường hợp khóa 384-bit

Khóa vòng nhận được qua chu trình tạo khóa:

Trạng thái 256-bit cập nhật qua các vòng:

Vòng 1

Vòng 2

Vòng 3

Vòng 4

Vòng 5

Vòng 6

Vòng 7

Vòng 8

A.2.3. Trường hợp khóa 512-bit

Khóa vòng nhận được qua chu trình tạo khóa:

Trạng thái 256-bit cập nhật qua các vòng:

Vòng 1

Vòng 2

Vòng 3

Vòng 4

Vòng 5

Vòng 6

Vòng 7

Vòng 8

Vòng 9

 

Thư mục tài liệu tham khảo

[1] TCVN 11367-3:2016 (ISO/IEC 18033-3:2010) Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 3: Mã khối

[2] Cuong Nguyen, Anh Nguyen, Phong Trieu, Long Nguyen, and Lai Tran. Analysis of a new practically secure SPN-based scheme in the Luby-Rackoff model, in The 9th International Conference on Future Data and Security Engineering. 2022. Springer.

[3] Cuong Nguyen, Nam Tran, and Long Nguyen. FLC: A New Secure and Efficient SPN-Based Scheme for Block Ciphers, in 2022 9th NAFOSTED Conference on Information and Computer Science (NICS). 2022. IEEE.

[4] Tran Sy Nam, Nguyen Van Long, and Nguyen Bui Cuong. An Optimized Bit-Slice Implementation of Secure 8-Bit Sbox Based on Butterfly structure, in 2023 15th International Conference on Knowledge and Systems Engineering (KSE). 2023. IEEE.

[5] Bui Cuong Nguyen and Tuan Anh Nguyen, Evaluating pseudorandomness and superpseudorandomness of the iterative scheme to build SPN block cipher. Journal of Science and Technology on Information security, 2.CS (06) 2017, pp.40-49.

[6] Trần Sỹ Nam, Nguyễn Văn Long, and Nguyễn Bùi Cương, Xây dựng tầng tuyến tính có cài đặt hiệu quả cho mã khối 128-bit có cấu trúc FLC, Hội thảo nghiên cứu ứng dụng mật mã và an toàn thông tin, Học viện Kỹ thuật mật mã, Hà nội, năm 2022.

[7] Tran Sy Nam, Nguyen Van Long, and Nguyen Bui Cuong, Đề xuất tầng tuyến tính và đánh giá khả năng cài đặt trong xây dựng mã khối 256-bit có cấu trúc FLC. Tạp chí Khoa học và Công nghệ trong lĩnh vực An toàn thông tin, 2(16) 2023, 31-38. https://doi.ora/10.54654/isj.v1i16.920.

 

Bạn chưa Đăng nhập thành viên.

Đây là tiện ích dành cho tài khoản thành viên. Vui lòng Đăng nhập để xem chi tiết. Nếu chưa có tài khoản, vui lòng Đăng ký tại đây!

* Lưu ý: Để đọc được văn bản tải trên Luatvietnam.vn, bạn cần cài phần mềm đọc file DOC, DOCX và phần mềm đọc file PDF.

Văn bản liên quan Tiêu chuẩn Việt Nam TCVN 14263:2024

01

Quyết định 3480/QĐ-BKHCN của Bộ Khoa học và Công nghệ về việc công bố Tiêu chuẩn quốc gia - Công nghệ thông tin – Kỹ thuật an toàn – Thuật toán mã khối MKV

02

Tiêu chuẩn Quốc gia TCVN 11367-1:2016 ISO/IEC 18033-1:2015 Công nghệ thông tin-Các kỹ thuật an toàn-Thuật toán mật mã-Phần 1: Tổng quan

03

Tiêu chuẩn Quốc gia TCVN 11367-3:2016 ISO/IEC 18033-3:2010 Công nghệ thông tin-Các kỹ thuật an toàn-Thuật toán mật mã-Phần 3: Mã khối

văn bản cùng lĩnh vực

văn bản mới nhất

Chú thích màu chỉ dẫn
Chú thích màu chỉ dẫn:
Các nội dung của VB này được VB khác thay đổi, hướng dẫn sẽ được làm nổi bật bằng các màu sắc:
Sửa đổi, bổ sung, đính chính
Thay thế
Hướng dẫn
Bãi bỏ
Bãi bỏ cụm từ
Bình luận
Click vào nội dung được bôi màu để xem chi tiết.
×