Tiêu chuẩn TCVN 14263:2024 mô tả mã khối MKV

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
...
...
...
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
...
...
...
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ề 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.
...
...
...
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]
...
...
...
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)
...
...
...
[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]
...
...
...
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)
...
...
...
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.
...
...
...
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 A và B
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 A và B;
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;
...
...
...
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;
...
...
...
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;
...
...
...
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;
...
...
...
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
...
...
...
k
R
1.
MKV-128
128
128
7
2.
192
...
...
...
3.
256
9
4.
MKV -256
256
256
7
5.
...
...
...
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 - Khởi 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)
...
...
...
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
...
...
...
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
...
...
...
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
...
...
...
7
8
9
A
B
C
D
E
F
...
...
...
01
11
91
E1
D1
B1
71
61
F1
...
...
...
Cl
51
A1
41
31
81
1
00
10
...
...
...
92
B5
D4
77
66
89
38
AB
4A
...
...
...
5C
2F
FE
2
08
5F
3E
B0
1C
...
...
...
83
DD
E8
F6
47
79
95
2B
AA
...
...
...
3
0F
48
D0
29
A3
1A
F2
BB
...
...
...
CC
E4
3D
57
7E
86
9F
4
0C
...
...
...
F4
1F
5B
90
EE
C5
36
6D
73
...
...
...
BC
A7
49
D2
5
0A
3C
18
85
...
...
...
4D
99
A4
B3
5E
DA
C7
72
FF
...
...
...
26
6
06
76
CF
A8
4E
59
60
...
...
...
DC
9B
32
F5
23
84
ED
BA
7
...
...
...
67
2D
3B
FA
8C
16
70
54
A2
...
...
...
BE
EF
D9
C3
45
8
0E
A9
62
...
...
...
27
BF
34
9C
FD
D5
8E
E6
1B
...
...
...
78
C0
9
03
B2
87
C4
9D
6E
...
...
...
F8
7A
E9
2C
AF
D6
15
50
33
...
...
...
0D
FB
56
EC
3F
75
B8
42
1E
...
...
...
C9
93
80
6A
D7
AD
B
04
E5
...
...
...
7D
82
A6
CA
2E
97
13
6F
DB
...
...
...
30
FC
58
C
0B
8D
9A
46
74
...
...
...
DF
53
CB
B7
F0
6C
AE
E2
35
...
...
...
D
05
94
7B
DE
C6
F3
AC
39
...
...
...
8A
55
20
68
BD
12
E7
E
02
...
...
...
A5
F7
69
EB
5D
8F
22
40
B6
...
...
...
3A
C8
9E
7C
F
09
CE
4C
63
...
...
...
37
25
EA
A0
7F
1D
52
F9
96
...
...
...
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
...
...
...
5
6
7
8
9
A
B
C
D
...
...
...
F
0
10
00
E0
90
B0
D0
60
...
...
...
20
F0
50
C0
40
A0
80
30
1
...
...
...
01
DE
B9
EB
9D
76
67
52
CF
...
...
...
8C
24
FA
A8
43
2
DB
09
E8
...
...
...
A9
F6
5F
84
C5
33
41
2D
9A
...
...
...
B7
1E
3
BD
0E
6A
9F
86
CE
...
...
...
F5
19
D7
EC
73
51
3B
22
A4
...
...
...
E9
0D
A7
8D
BC
7F
C3
2A
31
...
...
...
1B
96
F2
55
64
D8
5
9E
0B
...
...
...
C7
78
DA
A2
3C
BF
65
83
44
...
...
...
E6
59
21
6
66
07
82
F3
2F
...
...
...
17
71
DC
E4
AD
5E
CB
49
95
...
...
...
7
77
06
5C
4A
C4
A5
61
16
...
...
...
2B
98
D2
EF
B3
3D
F9
8
AC
...
...
...
B4
26
6D
53
3E
92
4B
18
D9
...
...
...
75
C1
8A
E7
9
45
02
13
AB
...
...
...
2C
FD
B8
7A
56
C2
69
87
94
...
...
...
3F
A
F8
0C
79
34
57
E2
B5
...
...
...
63
81
2E
1A
D6
AF
CC
9B
B
...
...
...
05
91
58
FE
14
EA
C9
A6
B2
...
...
...
37
4C
DD
7B
85
C
8F
0A
25
...
...
...
93
47
D4
5B
ED
AA
B6
C8
39
...
...
...
F1
62
D
32
04
4F
E1
15
89
...
...
...
AE
F4
7D
5A
BB
68
27
D3
C6
...
...
...
54
03
CD
12
3A
B1
8B
DF
28
...
...
...
F7
E5
A3
6E
46
7C
F
CA
08
...
...
...
D5
42
6B
29
E3
97
FC
74
A1
...
...
...
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
...
...
...
Đố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ó 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 đó 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 4
Vòng 5
Vòng 6
Vòng 7
...
...
...
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 4
Vòng 5
Vòng 6
Vòng 7
...
...
...
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
...
...
...
...
...
...
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
...
...
...
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.
...
...
...
[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.
Nguồn: https://thuvienphapluat.vn/TCVN/Dien-dien-tu/TCVN-14263-2024-Cong-nghe-thong-tin-Ky-thuat-an-toan-Thuat-toan-ma-khoi-MKV-921576.aspx
Bài viết liên quan:
- Tiêu chuẩn TCVN 14241-2:2024 về Giống chó Sông Mã
- Tiêu chuẩn TCVN 14223-2:2024 về Yêu cầu an toàn thiết bị lưu giữ ngoài nhà máy sản xuất, gia công kính phẳng
- Tiêu chuẩn TCVN 14223-3:2024 về Yêu cầu an toàn đối với Máy cắt kính
- Tiêu chuẩn TCVN 14213-1:2024 về Yêu cầu thiết kế thi công Tường Barrette
- Tiêu chuẩn TCVN 14212:2024 Thiết kế, thi công và nghiệm thu đối với móng cần trục tháp
- Tiêu chuẩn TCVN 13954:2024 về Thử nghiệm phản ứng với lửa để xác định tốc độ mất khối lượng của mẫu có bề mặt phẳng
- Tiêu chuẩn TCVN 13522-2:2024 về xác định tính lan truyền lửa tại mức thông lượng nhiệt 25kW/m2
- Tiêu chuẩn TCVN 12197:2024 về Mã hóa có xác thực
- Tiêu chuẩn TCVN 14213-2:2024 về Yêu cầu kỹ thuật thi công tường Barrette
- Tiêu chuẩn TCVN 12783:2019 xác định tổng hàm lượng brom và iot bằng phương pháp phổ phát xạ quang plasma cặp cảm ứng
- Tiêu chuẩn TCVN 8064:2024 về Nhiên liệu điêzen 5 % Este metyl axit béo (DO B5)
- Tiêu chuẩn TCVN 8063:2024 về Xăng không chì pha 5 % Etanol (Xăng E5)
- Tiêu chuẩn TCVN 5740:2023 về Vòi đẩy chữa cháy
- Tiêu chuẩn TCVN 14262:2024 Định lượng Lactobacillus plantarum/Lactobacillus acidophilus bằng kỹ thuật đếm khuẩn lạc
- Tiêu chuẩn TCVN 14203:2024 về yêu cầu đối với mẫu tiêu bản côn trùng
- Tiêu chuẩn TCVN 14223-1:2024 về Thiết bị lưu giữ, xếp dỡ và vận chuyển trong nhà máy
- Tiêu chuẩn TCVN 13957:2024 về Yêu cầu thiết kế, thi công và nghiệm thu đối với Tuy nen kỹ thuật
- Tiêu chuẩn TCVN 9994:2024 về Quy phạm thực hành vệ sinh đối với rau quả tươi
- Tiêu chuẩn TCVN 14190-1:2024 về Khung tiêu chí và phương pháp luận đánh giá an toàn hệ thống sinh trắc học
- Tiêu chuẩn TCVN 14175:2024 về Phương pháp định lượng Bacillus amyloliquefaciens bằng kỹ thuật đếm khuẩn lạc