QCVN
4 : 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
1. 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
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
1.5. Các ký hiệu
2. QUY ĐỊNH KỸ THUẬT
2.1. Quy định chung
2.2. Mã khối
2.2.1. TDEA - Thuật toán mã dữ liệu
bội ba
2.2.2. AES
2.2.3. Camellia
2.3. Chế độ hoạt động của mã khối
2.3.1. Chế độ xích liên kết khối mã
CBC (Cipher Block Chaining)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2.3.3. Chế độ phản hồi đầu ra OFB
(Output Feedback):
2.3.4. Chế độ đếm CTR (Counter)
2.4. Mã dòng
3. QUY ĐỊNH VỀ QUẢN LÝ
4. TRÁCH NHIỆM CỦA TỔ CHỨC, CÁ NHÂN
5. 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 của AES
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
QCVN 4 : 2016/BQP do Cục Quản lý mật
mã dân sự và 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 và Công nghệ thẩm định và được ban hành theo Thông tư số
161/2016/TT-BQP ngày 21 tháng 10 năm 2016 của 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
1. QUY
ĐỊNH CHUNG
1.1. Phạm vi điều chỉnh
Quy chuẩn kỹ thuật quốc gia này quy
định mức giới hạn về đặc tính kỹ thuật mật mã của các thuật toán mã hóa dữ liệu
dùng trong các sản phẩm mật mã dân sự sử dụng trong lĩnh vực ngân hàng.
1.2. Đối tượng áp
dụng
Quy chuẩn này áp dụng đối với các
doanh nghiệp kinh doanh sản phẩm, dịch vụ mật mã dân sự trong lĩnh vực ngân
hàng; các tổ chức tín dụng (trừ quỹ tín dụng nhân dân cơ sở có tài sản dưới 10
tỷ, tổ chức tài chính vi mô) sử dụng sản phẩm, dịch vụ mật mã dân sự.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- 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 bộ sinh số ngẫu nhiên sử dụng bộ sinh bit ngẫu nhiên tất định, NIST
SP 800-90A Rev. 1, Viện tiêu chuẩn và công nghệ quốc gia (Mỹ), tháng 6 năm
2015).
- TCVN 7876:2007 Công nghệ thông tin -
Kỹ thuật mật mã - Thuật toán mã dữ liệu AES.
- 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.
- 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, các từ ngữ dưới
đây được hiểu như 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” và “mật” được quy định tại Pháp lệnh Bảo vệ bí mật nhà
nước ngày 28 tháng 12 năm 2000.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Là những quy tắc, quy ước riêng dùng
để thay đổi hình thức biểu hiện thông tin nhằm bảo đảm bí mật, xác thực, toàn
vẹn của nội dung thông tin.
1.4.3. Mật mã dân sự
Là kỹ thuật mật mã và sản phẩm mật mã
được sử dụng để bảo mật hoặc xác thực đối với 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 sự
Là các tài liệu, trang thiết bị kỹ
thuật và 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) 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.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Phép toá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 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 bit có độ dài xác định, kết quả
cho ra một khối của bản mã.
1.4.9. Mã dòng
Hệ mật đối xứng với tính chất là thuật
toán mã hóa bao gồm tổ hợp một dãy các ký tự của bản rõ với dãy các ký tự của khóa
dòng, mỗi lần một ký tự, sử dụng một hàm khả nghịch.
1.4.10. Khóa
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ã).
1.4.11. Khóa dòng
Dãy các ký tự giả ngẫu nhiên bí mật,
được sử dụng bởi các thuật toán mã hóa và giải mã của mã dòng.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
n
độ dài tính bằng bit của bản rõ/bản
mã đối với 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 của thuật toán AES, bằng
10,12 hoặc 14 để chọn độ dài khóa tương ứng 128, 192, hoặc 256 bit.
Nb
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Å
phép toán logic XOR trên xâu bit,
nghĩa là nếu A và B là hai xâu cùng độ dài thì A Å B là xâu bit bao
gồm các bit là kết quả phép toán logic XOR của A và B
Ä
phép nhân hai đa thức (mỗi đa thức
có bậc bé hơn 4) theo mod x4 + 1
Ù
phép toán logic AND trên xâu bit,
nghĩa là nếu A và B là các xâu bit cùng độ dài, thì A Ù B là xâu
bit được tạo từ phép toán logic AND các bit tương ứng của A và B.
Ú
phép toán logic OR trên xâu bit, tức
nếu A và B là hai xâu bit cùng độ dài, thì A Ú B là xâu
bit gồm các bit là kết quả của phép toán logic OR của A và B.
||
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
•
phép nhân trê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 của x
a mod n
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
(i) 0 ≤ b < n
(ii) (b - a) là bội số nguyên
của n

phép cộng trong số học mô-đun, nghĩa
là nếu A và B là hai xâu t-bit thì A
B được xác định bằng (A + B) mod
2t

phép trừ trong số học mô-đun, nghĩa
là nếu A và B là hai xâu t-bit thì A
B được xác định bằng
(A - B)mod 2t
2. QUY
ĐỊNH KỸ THUẬT
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Quy định chi tiết về nguồn ngẫu
nhiên:
Các số ngẫu nhiên được sử dụng cho các
mục đích khác nhau như để sinh các tham số mật mã, các khóa mật mã, các
giá trị ngẫu nhiên dùng một lần và các giá trị thách đố xác thực.
Một số bộ sinh bit ngẫu nhiên tất định
DRBG được chấp thuận để sử dụng theo quy định chung bao gồm: HASH_DRBG,
HMAC_DRBG và CTR_DRBG.
Các bộ sinh bit ngẫu nhiên RBG tuân theo
SP800-90A phiên bản sửa đổi lại năm 2015 để sinh bit ngẫu nhiên cũng được chấp
thuận để sử dụng tiếp.
2.2. Mã
khối
Trong Quy chuẩn này quy định 3 loại mã
khối áp dụng cho việc mã hóa dữ liệu để bảo vệ thông tin trong lĩnh vực ngân
hàng.
Độ dài khối
Tên thuật
toán
Độ dài khóa
quy định áp dụng
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
TDEA
Không nhỏ
hơn 192 bit
128 bit
AES
Không nhỏ
hơn 256 bit
Camellia
Không nhỏ hơn 256
bit
- Quy định về ngưỡng thời gian và độ
an toàn khóa cụ thể:
Độ an toàn
theo bít
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Thời gian
sử dụng quy định
112
3TDEA
Đến cuối
năm 2030
256
AES-256
Từ năm 2030
Camellia-256
2.2.1. TDEA - Thuật toán mã dữ liệu
bội ba
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Phép mã hóa/giải mã
TDEA là phép toán ghép các phép toán mã hóa và giải mã DES. Khóa của TDEA gồm
ba khóa K1,
K2
và K3 là những khóa DES khác nhau (K1 ≠ K2, K2
≠ K3, và 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 được xác định theo thuật ngữ của
phép toán của DES, ở đấy Ek là phép toán mã hóa của DES với
khóa K và Dk là phép giải mã của 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 được xác định như sau:

Phép mã hóa/giải mã DES được mô tả tại
Phụ lục A của Quy chuẩn này.

...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
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 được xác định như sau:

Phép mã hóa/giải mã DES được mô tả tại
Phụ lục A của Quy chuẩn này.

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 được mô tả tại
Điều A.5.
2.2.1.3. Chế độ hoạt động của TDEA
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2.2.1.4. Khóa
Độ dài khóa sử dụng trong mã khối TDEA
được 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ỏ
hơn 192 bit
2.2.1.4.1. Các yêu cầu về khóa
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
a. Phải được giữ bí mật.
b. Được sinh ra sử dụng bộ sinh bit
ngẫu nhiên được quy định trong phần 2.1 của Quy chuẩn này.
c. Là các khóa mật mã khác nhau.
d. Đảm bảo toàn vẹn mà mỗi khóa không
bị thay đổi trái phép kể từ khi được sinh ra, gửi đi hoặc được lưu trữ bởi một thực thể
có thẩm quyền.
e. Được sử dụng theo thứ tự thích hợp
theo quy định bởi chế độ hoạt động riêng biệt.
f. Không sử dụng để mã hóa nhiều hơn 232
khối dữ liệu 64-bit.
g. Không sử dụng các khóa yếu và bán
yếu (Được quy định tại Điều 2.2.1.4.2).
2.2.1.4.2. Khóa yếu
Đối với thuật toán DES có một số khóa
mật mã được coi là yếu khi sử dụng. Việc sử dụng các khóa yếu này ảnh hưởng đến độ an
toàn của thuật toán TDEA. Các khóa yếu không được sử dụng trong thuật toán TDEA
được liệt kê dưới đây (theo định dạng thập lục phân):
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Một số cặp khóa khi mã hóa thì bản rõ và bản
mã là giống hệt nhau và cũng không được sử dụng. Các khóa bán-yếu đó là (theo
định dạng thập lục phân):

Ngoài ra còn 48 khóa sau chỉ tạo ra 4
khóa con khác nhau (thay vì 16 khóa con khác nhau) và cũng không được sử dụng.
Đó là các khóa sau (theo định dạng thập lục phân):


CHÚ THÍCH: Các khóa yếu và khóa bán-yếu được
liệt kê ở trên được biểu diễn với tính lẻ và được chỉ ra trong phần ngoài cùng
bên phải của mỗi byte.
2.2.2. AES
Đối với thuật toán AES, độ dài của
khối đầu vào, khối đầu ra và Trạng thái đều là 128 bit. Như vậy Nb = 4
là số lượng các từ 32 bít (số cột) của Trạng thái.
Trong Quy chuẩn này thuật toán AES, độ
dài k hóa mã K quy định áp dụng là 256 bit. Độ dài khóa được biểu diễn bằng
một số Nk = 8 thể hiện số lượng các từ 32 bit (số cột) của Khóa mã. Số
vòng trong quá trình thực thi thuật toán AES (được ký hiệu là Nr) với
khóa độ dài 256 bit là Nr = 14.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Độ dài khóa
(Nk từ)
Độ dài khối
(Nb từ)
Số vòng
(Nr)
AES-256
8
4
14
Bảng 1: Các tổ hợp
Khóa - Khối - Vòng
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Đối với cả hai Phép mã hóa và 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 nhau
trên byte:
1) Phép thay thế byte sử dụng bảng
thay thế (S-box).
2) Dịch hàng của mảng Trạng thái bằng
các offset khác nhau.
3) Trộn dữ liệu trong mỗi cột của 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 toán AES gồm một dãy các phép
toán được thực hiện trên mảng hai chiều của các byte, được gọi là Trạng thái.
Trạng thái gồm bốn dòng byte, mỗi dòng chứa 4 byte. Trong mảng Trạng thái được
ký hiệu bằng s, mỗi byte riêng biệt có hai chỉ số với số dòng r với
0 ≤ r < 4 và số
cột c, với 0 ≤ c < 4. Trạng thái được ký hiệu là S = (sr,c).
Khi bắt đầu quá trình mã hóa, 16 byte
của Trạng thái được khởi tạo với pi byte bản rõ,
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.

...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Sau khi cộng khóa vòng ban đầu, Trạng
thái được biến đổi bằng cách thực thi hàm vòng Nr lần, với vòng cuối
khác một ít với Nr - 1 vòng đầu. Nội dung cuối cùng của Trạng thái chính
là bản mã đầu ra.
Phép mã hóa đầy đủ có thể được mô tả
như sau:
(1) S =
AddRoundKey(P,W0)
(2) For i = 1 to Nr - 1
S
= SubBytes (S)
S
= ShiftRows(S)
S =
MixColumns(S)
S
= AddRoundKey(S, Wi)
(3) S = SubBytes (S),S =
ShiftRows(S)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các phép biến đổi riêng biệt SubBytes(), ShiftRows(), MixColumns(), AddRoundkey() xử lí Trạng thái
và được mô tả tại Phụ lục B. Tất cả Nr vòng đều giống nhau, trừ vòng
cuối cùng không chứa phép biến đổi MixColumns(). Trong phép
toán ở trên, mảng Wi chứa các khóa vòng
được mô tả tại Điều 2.2.2.2.
2.2.2.1.2. Phép giải mã AES
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. 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 ngược như sau.
Phép giải mã đầy đủ có thể mô tả như
sau:
(1) S =
AddRoundKey (C,WNr)
(2) for i = Nr - 1 down to 1
S =
ShiftRows-1(S)
S
= SubBytes-1(S)
S
= AddRoundKey(S,Wi)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
(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 hiện
xử lí Trạng thái. Tất cả Nr vòng đều 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 hiện xử
lí Trạng thái và được mô tả tại Phụ lục B. Tất cả Nr vòng đều giống
nhau, trừ vòng cuối không chứa
phép biến đổi MixColumns-1(). Việc tính
các khóa vòng Wi được mô tả
tại Điều 2.2.2.2.
2.2.2.1.3. Quy định về S-Box và S-Box
nghịch đảo trong AES
a) S-Box

Bảng 2:
S-Box: các giá trị thay thế cho byte {xy} (theo dạng thập lục phân)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Bảng 3: S-Box
nghịch: thay thế các giá trị theo byte {xy} (dạng thập lục phân)
2.2.2.2. Chu trình khóa
Thuật toán AES nhận khóa mật mã K và
thực hiện thủ tục mở rộng khóa để tạo ra lược đồ khóa. Việc mở rộng khóa
tạo ra tổng cộng 4(Nr + 1) từ:
Thuật toán đòi hỏi tập khởi đầu gồm 4
từ, và mỗi vòng Nr vòng đòi hỏi 4 từ dữ liệu khóa. Lược đồ khóa nhận
được là một mảng tuyến tính gồm các từ 4-byte, ký hiệu là wj, với j nằm
trong khoảng 0 ≤
j <
4(Nr + 1).
Phép mở rộng khóa đầy đủ cho AES-256
có thể được mô tả
như sau:

Trong phép toán trên K0
và K1 biểu thị hai
nửa của khóa mật mã K 256-bit.
2.2.2.3. Chế độ hoạt động của AES
Các chế độ hoạt động của AES được quy
định tại Mục 2.3 của Quy chuẩn này.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Độ dài khóa sử dụng trong mã khối AES
được 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ỏ
hơn 256 bit
2.2.3. Camellia
Trong Quy chuẩn này thuật toán mã đối
xứng Camellia xử lí các khối 128 bit, sử dụng khóa mật mã độ dài không nhỏ hơn 256
bit.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2.2.3.1.1. Phép mã hóa Camellia
Quá trình mã hóa với khóa 256-bit làm
việc trên 24 vòng, được chỉ ra trên Hình 4. Phép biến đổi khối 128 bit P vào
khối 128-bit C được định nghĩa như sau (L và R là các biến
độ dài 64 bit, kw, k và kl là các 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
Quá trình giải mã cho khóa 256 bit
được chỉ ra trên Hình 5, và là như nhau trong phép mã hóa, chỉ khác là vị trí
và thứ tự các khóa vòng được đảo lại.
Phép giải mã được xác định như sau:

...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hình 5: Thủ
tục giải mã Camellia cho 256 bit
2.2.3.1.3. F-hàm
F-hàm được chỉ ra trên Hình 8. F-hàm
bao gồm phép toán cộng bit XOR, tiếp đó áp dụng tám S-box song song kích thước
8x8 bit, tiếp theo
tầng khuếch tán (P-hàm). xj,yj,zj,z’j là các biến,
mỗi biến 8 bit; các biến Li, ki, L’i là các biến
64 bit. Đầu vào 64 bit Li trước hết được cộng XOR với khóa
vòng 64-bit ki, sau đó được chia thành 8 đoạn 8-bit yj
như sau:
y1 || y2
|| y3 || y4 || y5 || y6 || y7
|| y8 || = LiÅki
ở đây,
Li = x1
|| x2 || x3 || x4 || x5 || x6
|| x7 || x8
Mỗi yj sau
đó được đi qua S-box kích thước 8x8 bit st để đưa ra 8 phân
đoạn độ dài 8 bit zj, ở đây

8 phân đoạn 8 bit zj được
tác động bởi P-hàm, là lớp khuếch tán cho ra 8 phân đoạn 8-bit z’j,
trong đó
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hình 6: F-hàm
P-hàm có thể được biểu diễn cách khác,
dưới dạng véc tơ ma trận như sau:

ở đây:

Sau đó đầu ra 64-bit của F-hàm L'i
được thiết lập bằng cách ghép các biến 8-bit z'j:


2.2.3.2. Chu trình khóa
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
K = KL || KR
Lược đồ tạo khóa sử dụng F-hàm của
mô-đun mã hóa, và là giống nhau cho cả phép mã hóa và giải mã. Khóa K được
mã bằng các phương tiện của F-hàm, sử dụng các hằng của lược đồ tạo khóa, ở đây
các hằng Σi, được xác
định như những giá trị liên tục biểu diễn trong hệ Hexa của căn bậc hai số
nguyên tố thứ i. Tiếp đó các
khóa vòng được tạo, một phần từ những giá trị được dịch vòng của khóa K (K = KL II KR) và phần còn
lại từ các giá trị được dịch vòng của các khóa “được mã hóa” KA và KB (ở đây KA, KB có độ dài
128 bit).

Hình 7: Phần
chính của lược đồ khóa
Đối với khóa 256-bit, đầu ra của phần
chính của lược đồ tạo khóa là khóa con 128 bit KA và khóa con
128-bit KB. Lược đồ tạo
khóa bao gồm ba phép toán 2-vòng. Mỗi phép toán 2 vòng được “khóa hóa” bằng một
cặp hằng Σi.
Đầu vào 128-bit của phép toán 2-vòng
thứ nhất nằm bên trái của Hình 9 là KLÅKR và phép toán
này được “khóa hóa” bởi hai hằng 64-bit Σ1 và Σ2. Tiếp đó đầu
ra 128-bit từ phép toán 2-vòng thứ nhất được cộng bit XOR với KL
trước khi là đầu vào của phép toán 2-vòng thứ hai ở bên trái Hình 9. Phép toán
2-vòng thứ hai này được “khóa hóa” bởi các hằng 64 bit là Σ3 và Σ4.
Đầu ra 128-bit của phép toán 2-vòng thứ hai là KA, sau đó KA lại được XOR
với khóa con 128-bit KR trước khi kết quả
thu được làm đầu vào của phép toán 2-vòng thứ ba được chỉ ra ở phía phải của
Hình 9. Phép toán 2-vòng thứ ba này được “khóa hóa” bởi hai hằng 64 bit là Σ5
và Σ6. Đầu ra 128 bit của phép toán 2-vòng thứ ba này là KB.
Phép toán lập lược đồ tạo khóa đầy đủ
được mô tả như sau (Ka, KA và KB có độ dài
128 bit):
(1) Ka = 2RoundFeistel(KLÅKR, Σ1,Σ2)
(2) KA =
2RoundFeistel(KaÅKL, Σ3,Σ4)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
ở đây đầu vào 128-bit cho
2RoundFeistel được tách thành hai phần 64-bit L0 || R0, đầu ra
128-bit từ 2RoundFeistel cũng được tách thành hai phần 64 bit L2
|| R2 và cả hai
đầu vào “khóa vòng” 64-bit của 2RoundFeistel là Σi và Σi+1.
2RoundFeistel được mô tả như sau:
(1) với j = 0,1:
Lj+1 = F(Lj,
Σi+j)ÅRj
Rj+1 = Rj
Các hằng của lược đồ khóa 64-bit được
xác định trên Bảng 4

Bảng 4: Các
hằng trong lược đồ khóa
Cuối cùng, các khóa vòng 64-bit, k,
kw,và kl được dẫn xuất từ các khóa con 128-bit, KL,
KR, KA và KB.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Bảng 5: Khóa
vòng cho khóa bí mật 256 bit
2.2.3.3. Chế độ hoạt động của Camellia
Các chế độ hoạt động của Camellia được
quy định tại Mục 2.3 của Quy chuẩn này.
2.2.3.4. Khóa
Độ dài khóa sử dụng trong mã khối
Camellia được quy định
Độ dài khối
Tên thuật
toán
Độ dài khóa
quy định áp dụng
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Camellia
Không nhỏ
hơn 256 bit
2.3. Chế
độ hoạt động của mã khối
Mục này của Quy chuẩn sử dụng một số
ký hiệu sau:
C
Khối bản mã
CTR
Giá trị đếm
i
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
j
Kích thước của biến bản rõ/bản mã
K
Khóa mật mã
n
Độ dài khối bản mã/bản rõ đối với
một mã khối
m
Số khối bản mã được lưu trữ
P
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
q
Số các biến bản rõ/bản mã
r
Kích thước bộ đệm phản hồi
SV
Biến khởi đầu
X
Khối đầu vào mã khối
Y
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2.3.1. Chế độ xích liên kết
khối mã CBC (Cipher Block Chaining)
Chế độ CBC được xác định bởi một tham
số xen kẽ m > 0, số khối bản mã phải được lưu trữ trong khi xử lý
trong chế độ này. Giá trị của m cần nhỏ (thông thường m = 1) và lớn nhất
là 1024.
a) Các biến được sử dụng trong chế độ CBC:
1) Dãy q khối bản rõ có độ dài n bit P1,
P2, …, Pq.
2) Khóa bí mật K.
3) Dãy các biến khởi đầu có độ dài n bit
SV1, SV, ...,SVm.
b) Các biến đầu ra là dãy q biến bản mã
có độ dài n bit C1, C2,..., Cq
2.3.1.1. Phép mã hóa
Phép mã hóa của chế độ CBC như sau:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Nếu q > m, các khối
bản rõ theo sau được mã hóa như sau:
Ci = eK(Pi ÅCi-m),m + 1 ≤ i
≤ q
CHÚ THÍCH: Tại bất kỳ thời điểm nào
trong quá trình tính toán, giá trị của khối bản mã m gần nhất cần
được lưu trữ.
2.3.1.2. Phép giải mã
Phép giải mã của chế độ CBC như sau:
Pi = dK(Ci) Å SVi, 1 ≤ i ≤ min(m, q)
Nếu q >m, các khối bản rõ
theo sau được mã hóa như sau:
Pi = dK(Ci)
Å Ci-m, m+ 1 ≤ i ≤ q

...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Hình 9: Chế
độ xích liên kết khối mã
- Biến khởi đầu SV được sinh
ngẫu nhiên, giữ bí mật và thông báo cho nhau.
- Yêu cầu về đệm (padding)
+ Nếu độ dài bản rõ không phải là bội
số của n thì yêu cầu sử dụng phương pháp đệm (padding) sau để bổ sung
bản rõ sao cho độ dài của bản rõ là bội số của n:
Thêm một bit 1 vào cuối bản rõ, tiếp
sau là các bít 0 (có thể không cần) để được bản rõ có độ dài là bội số của n.
Đây chính là phương pháp đệm 2 trong tiêu chuẩn ISO/IEC 9797-1 hoặc ISO/IEC
10118-1
2.3.2. Chế độ phản hồi mã
CFB (Cipher FeedBack)
Chế độ CFB được xác định bởi 3 tham
số:
- Kích thước của bộ đệm phản hồi, r,
trong đó n ≤ r ≤ 1024n và r < qn
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
- Kích thước của biến bản rõ, j,
trong đó 1 ≤
j ≤
k
Trong Quy chuẩn này thì giá trị của
j và k
bằng
nhau.
Các biến được sử dụng trong chế độ
CFB:
a) Các biến đầu vào
1) Dãy q biến bả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 quả trung gian:
1) Dãy q khối đầu vào của mã khối độ dài
n bit X1,X2,...,Xq.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
3) Dãy q biến độ dài j bit E1,E2,...,Eq.
4) Dãy q - 1 biến phản hồi độ dài k
bit F1,F2,...,Fq-1.
5) dãy q nội dung bộ đệm phản hồi độ dài
r bit FB1,FB2,...,FBq.
c) Các biến đầu ra là dãy q biến bả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 được gán giá
trị khởi đầu.
FB1 = SV
Phép toán mã hóa mỗi biến bản rõ thực
hiện trong 6 bước sau:
a) Xi = n~FBi (Lựa chọn
n bit tận cùng bên trái của FB).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
c) Ei = j~Yi (Lựa chọn
j bit tận cùng bên trái của Yi).
d) Ci = Pi
Å Ei (Tạo biến bả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 trên FB).
Các bước trên lặp với biến đếm i
= 1,2,…,q, trong vòng
lặp cuối dừng lại tại bước (d). j bit tận cùng bên trái của khối đầu ra Y
của mã khối được sử dụng để mã hóa j-bit biến bản rõ theo phép cộng modulo
2. Các bit còn lại của Y được bỏ đi. Các bit biến bản rõ/bản mã có chỉ
số từ 1 đến j.
Biến bản mã được tăng thêm bằng cách
đặt k - j bit trong vị trí bit tận cùng bên trái của mình để tạo
biến phản hồi F độ dài k-bit. Sau đó các bit của bộ đệm phản hồi FB
được dịch trái đi k vị trí và F được thêm vào vị trí k tận cùng bên
phải để tạo ra giá trị mới của bộ đệm phản hồi FB. Trong phép toán dịch,
k
bit
tận cùng bên trái của FB được bỏ đi. n bit tận cùng bên trái mới
của FB được sử dụng như là đầu vào tiếp theo của X trong quá
trình mã hóa.
2.3.2.2. Phép giải mã
Bộ đệm phản hồi FB được gán giá
trị khởi đầu.
FB1
= SV
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
a) Xi = n~FBi (Lựa chọn
n bit tận cùng bên trái của FB).
b) Yi = eK(Xi) (Sử dụng mã
khối).
c) Ei = j~Yi (Lựa chọn
j bit tận cùng bên trái của Yi).
d) Pi = Ci Å Ei (Tạo biến
bả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 trên FB).
Các bước trên lặp với biến đếm i = 1,2,…,q, trong vòng
lặp cuối dừng lại tại bước (d). j bit tận cùng bên trái của khối đầu ra
Y của mã khối được sử dụng để giải mã biến bản mã theo phép cộng modulo 2.
Các bit còn lại của Y được bỏ đi. Các bit biến bản rõ/bản mã có chỉ số
từ 1 đến j.
Biến bản mã được tăng thêm bằng cách
đặt k - j bit trong vị trí bit tận cùng bên trái của mình để tạo
biến phản hồi F độ dài k-bit. Sau đó các bit của bộ đệm phản hồi FB
được dịch trái đi k vị trí và F được thêm vào vị trí k tận cùng bên
phải để tạo ra giá trị mới của bộ đệm phản hồi FB. Trong phép toán dịch,
k
bit
tận cùng bên trái của FB được bỏ đi. n bit tận cùng bên trái mới
của FB được sử dụng như là đầu vào tiếp theo của X trong quá
trình mã hóa.

...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2.3.3. Chế độ phản hồi đầu
ra OFB (Output Feedback):
Chế độ OFB được xác định bằng một tham
số j là kích thước biến bản rõ với 1 ≤ j ≤ n.
Các biến được sử dụng trong chế độ OFB
là:
a) Các biến đầu vào:
1) Dãy q biến bả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 quả trung gian:
1) Dãy q khối đầu vào của mã khối độ dài
n bit X1, X2,..., Xq.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
3) Dãy q biến độ dài j bit E1,
E2,..., Eq.
c) Các biến đầu ra là dãy q biến bản mã
độ dài j bit C1, C2,..., Cq.
2.3.3.1. Phép mã hóa
Khối đầu vào X được gán giá trị khởi
đầu
X1
= SV
Phép toán mã hóa mỗi biến bản rõ thực
hiện trong 4 bước sau:
a) Yi = ek(Xi)
(Sử
dụng mã khối).
b) Ei = j~Yi (Chọn j bit
tận cùng bên trái).
c) Ci = Pi
Å Ei (Tạo biến bản
mã).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các bước trên lặp với biến đếm i
= 1,2,…,q, trong vòng
lặp cuối dừng lại tại bước (c). Các biến bản mã và bản rõ có các bit với chỉ số từ 1 đến j.
Kết quả của mỗi lần sử dụng mã khối là
Yi và được đưa
trở lại thành giá trị tiếp theo của X, đặt là Xi+1. j bit
tận cùng bên trái của Yi được 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 được gán giá trị khởi
đầu
X1 = SV
Phép toán giải mã mỗi biến bản mã thực
hiện trong 4 bước sau:
a) Yi = ek(Xi)
(Sử
dụng mã khối).
b) Ei = j~Yi (Chọn j bit
tận cùng bên trái).
c) Ci = Pi
Å Ei (Tạo biến bản
mã).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các bước trên lặp với biến đếm i
= 1,2,…,q, trong vòng
lặp cuối dừng lại tại bước (c). Các biến bản mã và bản rõ có các bit với chỉ số
từ 1 đến j.
Kết quả của mỗi lần sử dụng mã khối là
Yi và được đưa
trở lại thành giá trị tiếp theo của X, đặt là Xi+1. j bit
tận cùng bên trái của Yi được sử dụng để giải
mã biến đầu vào.

Hình 11: Chế
độ phản hồi đầu ra OFB
2.3.4. Chế độ đếm CTR
(Counter)
Chế độ CTR được xác định bằng một tham
số j trong đó 1 ≤ j ≤ n.
Các biến được sử dụng trong chế độ CTR
là:
a) Các biến đầu vào:
1) Dãy q biến bản rõ độ dài j bit
P1,
P2, …, Pq, mỗi biến có độ dài j bit.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
3) Biến khởi đầu SV có độ dài
n bit.
b) Các kết quả trung gian:
1) Dãy q khối đầu vào của mã khối độ dài
n bit CTR1,CTR2,...,CTRq.
2) Dãy q khối đầu ra của 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 ra là dãy q biến bản mã
độ dài j bit C1,C2,...,Cq.
2.3.4.1. Phép mã hóa
CTR được gán giá trị
khởi đầu
CTR1 = SV
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
a) Yi = eK(CTRi) (Sử dụng mã
khối).
b) Ei = j~Yi (Chọn j bit
tận cùng bên trái của Yi).
c) Ci = Pi
Å Ei (Tạo ra biến bản mã).
d) CTRi+1 = (CTRi
+ 1)mod 2n (Tạo ra giá trị đếm mới CTR).
Các bước trên lặp với biến đếm i
= 1,2,…,q, trong vòng
lặp cuối dừng lại tại bước (c). Các biến bản mã và bản rõ có các bit có chỉ số
từ 1 đến j.
Giá trị đếm được mã hóa để đưa ra khối
đầu ra Yi và j bit
tận cùng bên trái của khối đầu ra Yi được sử dụng
để mã hóa giá trị đầu vào. CTR sau đó được tăng 1 (modulo 2n)
để tạo ra giá trị đếm mới.
2.3.4.2. Phép giải mã
CTR được gán giá trị
khởi đầu
CTR1 = SV
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
a) Yi = eK(CTRi) (Sử dụng mã
khối).
b) Ei = j~Yi (Chọn j bit
tận cùng bên trái của Yi).
c) Pi = Ci Å Ei (Tạo biến
bản rõ).
d) CTRi+1 = (CTRi
+ 1)mod 2n (Tạo ra giá trị đếm mới CTR).
Các bước trên lặp với biến đếm i
= 1,2,…,q, trong vòng
lặp cuối dừng lại tại bước (c). Các biến bản mã và bản rõ có các bit có chỉ số
từ 1 đến j.
Giá trị đếm được mã hóa để đưa ra khối
đầu ra Yi và j bit
tận cùng bên trái của khối đầu ra Yi được sử dụng
để mã hóa giá trị đầu vào. CTR sau đó được tăng 1 (modulo 2n) để tạo ra
giá trị đếm mới.

Hình 12: Chế
độ đếm CTR
2.4. Mã
dòng
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
3. QUY
ĐỊNH VỀ QUẢN LÝ
3.1. Các mức giới hạn của đặc tính kỹ
thuật mật mã và yêu cầu quản lý của các thuật toán mật mã để mã hóa dữ liệu nêu
tại Quy chuẩn này là các chỉ tiêu chất lượng phục vụ được quản lý theo quy định
về quản lý chất lượng sản phẩm, dịch vụ mật mã dân sự được quy định tại Luật An
toà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ã được cơ quan quản lý nhà nước có thẩm quyền tiến hành định
kỳ hàng năm hoặc đột xuất.
4. 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 cơ sở có tài sản dưới 10 tỷ, tổ chức tài chính vi mô) sử dụng sản
phẩm, dịch vụ mật mã dân sự có trách nhiệm đảm bảo tuân thủ Quy chuẩn này và
chịu sự kiểm tra của cơ 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 sự cho các tổ chức tín dụng (trừ quỹ tín dụng nhân dân cơ sở có
tài sản dưới 10 tỷ, tổ chức tài chính vi mô) có trách nhiệm thực hiện công bố
hợp quy sản phẩm, dịch vụ mật mã dân sự phù hợp với Quy chuẩn này. Việc công bố
hợp quy thực hiện theo Thông tư số 28/2012/TT-BKHCN ngày 12 tháng 12 năm 2012
của Bộ Khoa học và Công nghệ.
4.3. Cục Quản lý mật mã dân sự và 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 hiện quản lý, hướng dẫn và kiểm tra việc công bố hợp quy.
5. TỔ
CHỨC THỰC HIỆN
5.1. Cục Quản lý mật mã dân sự và 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ã của thuật toán mã hóa dữ liệu theo Quy chuẩn này.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
PHỤ LỤC A
(Quy định)
Mô tả DES
A.1. Mở đầu
Thuật toán DES là mã khối đối xứng có
thể xử lí các khối dữ liệu 64 bit, sử dụng khóa bí mật độ dài 64 bit. Mỗi bit
thứ tám của khóa mật mã thường được sử dụng để kiểm tra tính chẵn lẻ và được bỏ
qua.
A.2. Phép mã hóa DES
Phép mã hóa được chỉ ra trên Hình A.1
Bản rõ 64-bit trước hết được biến đổi
qua hoán vị ban đầu IP. Sau đó khối được chia thành hai nửa L0
và R0, mỗi nửa gồm 32 bit. Tiếp đó thực hiện 16 vòng
biến đổi giống nhau được gọi là hàm f, trong đó dữ liệu được kết hợp với
khóa. Trong mỗi vòng, nửa phải là đầu vào của hàm f được khóa
hóa, hàm này nhận đầu vào 32 bit và khóa con 48 bit Ki và cho đầu
ra 32-bit. Đầu ra này tiếp đó được XOR với nửa trái để tạo ra nửa trái mới đã
được biến đổi. Tại phần cuối của mỗi vòng, trừ vòng cuối cùng, hai nửa trái và
phải đổi chỗ cho nhau để tạo ra Li và Ri
tương ứng. Sau khi thực hiện vòng cuối cùng, hai nửa trái và phải được ghép lại
với nhau và khối 64-bit nhận được lại được biến đổi qua phép hoán vị cuối IP-1 là hoán vị
nghịch đảo của hoán vị ban đầu IP. Đầu ra là bản mã 64 bit.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
(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ã cũng giống như phép mã
hóa. Sự khác nhau chỉ ở chỗ, các khóa con Ki được sử dụng
theo thứ tự ngược lại.
A.4. Các hàm DES
A.4.1. Phép hoán vị ban
đầu IP
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

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 được chỉ ra
trên Bảng A.2, nhận đầu vào 64-bit và cho đầu ra 64- bit. Đầu ra của Thuật toán
nhận bit thứ 40 của khối đầu ra trước đó làm bit thứ nhất, bit thứ 8 làm bit
thứ hai.v.v và bit thứ 25 của khối đầu ra trước đó làm bit cuối cùng.

Bảng A.2 - Hoán vị
nghịch đảo IP-1
A.4.3. Hàm f
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hàm f nhận đầu vào 32
bit R
và
mở rộng thành R' có độ dài 48-bit bằng cách sử dụng phép hoán vị mở rộng
E. Sau đó 48-bit R' được XOR với khóa con 48-bit K,
thu được dữ liệu 48- bit, dữ liệu này được viết thành 8 khối, mỗi khối 6-bit, bằng
cách chọn các bit đầu vào của nó theo một thứ tự được qui định trên bảng. Các
hàm được chọn duy nhất đó được gọi là các S - box, S1, S2,…,S8 nhận đầu vào
là các khối 6-bit ri và cho đầu
ra là các khối 4-bit Si(ri). Hàm hoán vị
P cho đầu ra 32-bit R'''' từ đầu vào 32-bit R'''' bằng cách
hoán vị các bit của khối đầu vào. R'''' là đầu ra của hàm f.
Hàm f do đó được xác
định như sau (P và C là dữ liệu, Ki là khóa )

Hình A.2 - Tính
f(R,K)
A.4.4. Hoán vị mở rộng E
Hoán vị mở rộng E được
chỉ ra trên Bảng A.3. Hoán vị E nhận đầu vào 32- bit và cho đầu
ra 48-bit. Ba bit đầu tiên của E là các bit ở các vị trí 32, 1 và
2, hai bit cuối ở các vị trí 32 và 1.

Bảng A.3 -
Hoán vị mở rộng E
A.4.5. Hoán vị P
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Bảng A.4 -
Hoán vị P
A.4.6. S-box
S-box được chỉ ra trên Bảng A.5. Mỗi
S-box có 6- bit đầu vào và 4-bit đầu ra.
Nếu S1 là hàm
được xác định trên bảng và B là khối 6-bit, thì S1(B) được xác
định như sau: các bit đầu tiên và cuối cùng của B được biểu diễn
theo cơ số 2 là một số nằm trong khoảng từ 0 đến 3. Giả sử số đó là i.
Bốn bit giữa của B được biểu diễn theo cơ số 2 là số nằm trong
khoảng từ 0 đến 15. Giả sử số đó là j. Trên bảng đó là số nằm trên hàng
thứ i và cột thứ j.
Đó là số nằm trong khoảng từ 0 đến 15, và được biểu diễn duy nhất bởi khối
4-bit. Khối này là đầu ra S1(B) của S1 ứng với đầu
vào B. Ví dụ, với đầu vào 011011, hàng được biểu diễn bởi 01 là
hàng 1, cột được xác định bởi 1101 là cột 13. Nằm trên giao của hàng 1 và cột 13 là số 5, do
đó đầu ra là 0101.


Bảng A.5 -
Các S-box
A.5. Lược đồ tạo khóa
DES
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Trong đó Kn,
với 1 ≤ n ≤ 16 là khối
48-bit trong bước (2) của thuật toán. Bởi vậy để mô tả KS chỉ cần
mô tả việc tính toán của Kn từ KEY với n = 1, 2...,
16. Việc tính toán này được mô tả trên Hình A.3. Do đó để xác định đầy đủ KS,
chỉ cần mô tả hai lựa chọn hoán vị, cũng giống như lược đồ chuyển dịch sang
trái. Một bit trong byte 8-bit của KEY có thể được khởi động để phát hiện lỗi
trong tạo khóa, phân phối và lưu trữ
khóa. Các bit 8,16,..., 64 được sử dụng để bảo đảm là mỗi byte có tính chất lẻ.
Lựa chọn hoán vị 1 được xác định bởi Bảng A.6

Bảng A.6 -
Hoán vị khóa PC-1
Bảng trên được chia thành hai phần,
phần thứ nhất xác định cách chọn các bit trong C0, phần thứ hai
xác định cách chọn các bit trong D0. Các bit của KEY
được đánh số từ 1 đến 64. Các bit trong C0 tương ứng là
57, 49, 41,..., 44 và 36 của KEY, còn các bit trong D0 là các bit
63, 55, 47,..,12 và 4 của KEY. Với C0 và D0
đã xác định, có thể xác định được Cn và Dn
từ Cn-1 và Dn-1, tương ứng
với n = 1, 2,..., 16. Điều này đạt được bằng cách tuân thủ vào lược đồ
phép dịch sang trái các khối riêng lẻ sau:
Số lần lặp
1
2
3
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5
6
7
8
Số lần dịch trái
1
1
2
2
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2
2
2
Số lần lặp
9
10
11
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
13
14
15
16
Số lần dịch trái
1
2
2
2
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2
2
1
Bảng A.7 - Số các bit
khóa được dịch chuyển của mỗi vòng
Ví dụ, C3 và D3 thu được từ C2 và D2
tương ứng bằng hai dịch chuyển sang trái, và C16 và D16
thu được từ C15 và D15 tương ứng
bằng một lần dịch sang trái. Trong tất cả các trường hợp, việc dịch một lần
sang trái được hiểu là dịch các bit sang trái một vị trí sao cho sau một lần
dịch các bit ở 28 vị trí là các bit trước đó ở vị trí 2, 3,..., 28, 1. Việc
chọn hoán vị 2 được xác định trên Bảng A.8

Bảng A.8 -
Hoán vị nén PC-2
Bởi vậy bit thứ nhất của Kn
là bit thứ 14
của CnDn, bit thứ hai là bit thứ 17.v.v, bit thứ 47
là bit thứ 29, bit thứ 48 là bit thứ 32.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hình A.3 -
Tính toán lược đồ khóa
PHỤ LỤC B
(Quy định)
Các phép biến đổi của AES
B.1. Các phép biến đổi
AES
B.1.1. Các phép biến
đổi xác định cho AES
Thuật toán AES sử dụng các phép biến
đổi SubBytes(), SubBytes-1()
ShiftRows(), ShiftRows-1(), MixColumns(), MixColumns-1(), AddRoundKey(), được mô tả
dưới đây.
B.1.2. Phép biến đổi SubBytes()
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Hình B.1 minh họa tác động của phép
biến đổi SubBytes() lên bảng
Trạng thái

Hình B.1: SubBytes() áp dụng
S-box cho từng byte của Trạng thái.
S-box được sử dụng trong phép biến đổi
SubBytes() và được
trình bày theo hệ Hexa trên Bảng B.1

Bảng B.1: Các
S-box của AES
Ví dụ, nếu s1,1 = {53} thì giá trị thay
thế là giá trị nằm trên giao của hàng có chỉ số ‘5’ và cột có chỉ số ‘3’ của
Bảng 5, điều này cho kết quả là s’1,1 có giá trị {ed}.
B.1.3. Phép biến đổi SubBytes-1()
SubBytes-1() là phép biến
đổi nghịch đảo của phép biến đổi SubBytes(), trong đó S-box
nghịch đảo được áp dụng cho từng byte của Trạng thái. Điều này đạt được bằng
cách áp dụng phép biến đổi nghịch đảo được mô tả tại Điều 5.2.4.2
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Bảng B.2: S-box
nghịch đảo AES
B.1.4. Phép biến đổi ShiftRows()
Trong phép biến đổi ShiftRows(), các byte ở
ba dòng cuối của Trạng thái được dịch vòng lên một số lượng bytes khác nhau
(offsets). Hàng thứ nhất, hàng 0 được giữ nguyên (không dịch chuyển).
Cụ thể, phép biến đổi ShiftRows() được thực
hiện như sau:
S'r,c = Sr (c+r)mod4 với 0 <
r < 4, và 0 ≤ c < 4, ở đây r là số thứ tự của hàng.
Theo đó các byte dịch sẽ chuyển sang
trái (nghĩa là các giá trị thấp hơn của c trong một
hàng cho trước), trong khi các byte phía trái ngoài cùng dịch vòng sang các vị
trí phía phải ngoài cùng của hàng (tức là những giá trị cao hơn của c trong hàng
cho trước).
Hình B.2 mô tả phép biến đổi ShiftRows(), trong đó
các byte được dịch vòng sang trái.
B.1.5. Phép biến đổi ShiftRows-1()
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Cụ thể, phép biến đổi ShiftRows-1() được thực
hiện như sau:
Sr,(c+r)mod4 = S'r,c với 0 <
r < 4, và 0 ≤ c < 4.
Hình B.3. mô tả phép biến đổi ShiftRows-1()

Hình B.2: ShiftRows() dịch vòng ba
dòng cuối của Trạng thái

Hình B.3: ShiftRows-1() dịch vòng ba
dòng cuối của Trạng thái.
B.1.6. Phép biến đổi MixColumns()
Phép biến đổi MixColumns() thao tác
trên Trạng thái, thay mỗi cột bằng cột khác. Các cột của Trạng thái được xem
như những đa thức trên trường GF(28) và được nhân modulo x4 + 1 với đa
thức cố định a(x) cho trước, a(x) = {03}x3 +
{01}x2 + {01}x + {02}. Phép nhân này có thể viết dưới
dạng phép nhân ma trận:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Kết quả của phép nhân trên là bốn byte
trong cột được thay thế như sau:

Toán tử Å trong các biểu thức
trên biểu thì
phép
cộng trong trường GF(28), với phép cộng bit XOR. Phép nhân
được thực hiện theo modulo của đa thức bất khả qui của trường. Trong trường hợp
thuật toán AES đó là đa thức x9 + x4 + x3 +
x + 1.
Hình B.4 mô tả phép biến đổi MixColumns().

Hình B.4 - MixColumns() thao tác
trên Trạng thái, thay cột bằng cột khác
B.1.7. Phép biến đổi MixColumns-1()
MixColumns-1() là phép biến
đổi nghịch đảo của phép biến đổi MixColumns(). MixColumns-1() thao tác
trên Trạng thái, thay mỗi cột bằng cột 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 GF(28):

...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

B.1.8. Phép biến đổi AddRoundKey()
Trong phép biến đổi AddRoundKey(), khóa vòng
được cộng vào Trạng thái bằng phép cộng bit đơn giản XOR. Mỗi khóa vòng gồm bốn
từ (128 bit) lấy từ lược đồ khóa (được mô tả tại 5.2.5). Bốn từ này được cộng
vào cột Trạng thái như sau:

ở đây, 0 ≤ c < 4 và W(4*i+c) là các từ
của lược đồ khóa thứ c của khóa vòng thứ i Wi = [w(4*i),w(4*i+1),w(4*i+2),w(4*i+3)] và i là giá trị
thuộc khoảng 0 ≤
i ≤ Nr. Trong phép
mã hóa, phép cộng khóa vòng ban
đầu xảy ra khi i = 0, trước ứng dụng thứ nhất của hàm vòng. Việc áp dụng
phép biến đổi AddRoundKey() cho Nr vòng
của phép mã hóa xảy ra khi 1 ≤ i ≤ Nr.
Hoạt động của phép biến đổi AddRoundKey(), được minh
họa trên Hình B.5. Địa chỉ byte trong các từ của lược đồ khóa được mô tả trong
Điều 2.2.2.2.

Hình B.5: AddRoundKey() cộng bit XOR
từng cột của Trạng thái với mỗi từ lấy từ lược đồ khóa