Tiêu chuẩn TCVN 12197:2018 Mã hóa có sử dụng xác thực

  • Thuộc tính
  • Nội dung
  • Tiêu chuẩn liên quan
  • Lược đồ
  • Tải về
Mục lục Đặt mua toàn văn TCVN
Lưu
Theo dõi văn bản

Đây là tiện ích dành cho thành viên đăng ký phần mềm.

Quý khách vui lòng Đăng nhập tài khoản LuatVietnam và đăng ký sử dụng Phần mềm tra cứu văn bản.

Báo lỗi
  • Báo lỗi
  • Gửi liên kết tới Email
  • Chia sẻ:
  • Chế độ xem: Sáng | Tối
  • Thay đổi cỡ chữ:
    17
Ghi chú

Tiêu chuẩn Việt Nam TCVN 12197:2018

Tiêu chuẩn Quốc gia TCVN 12197:2018 ISO/IEC 19772:2009 Công nghệ thông tin-Các kỹ thuật an toàn-Mã hóa có sử dụng xác thực
Số hiệu:TCVN 12197:2018Loạ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
Năm ban hành:2018Hiệu lực:
Người ký:Tình trạng hiệu lực:
Đã biết

Vui lòng đăng nhập tài khoản gói Tiêu chuẩn hoặc Nâng cao để xem Tình trạng hiệu lực. Nếu chưa có tài khoản Quý khách đăng ký tại đây!

Tình trạng hiệu lực: Đã biết
Ghi chú
Ghi chú: Thêm ghi chú cá nhân cho văn bản bạn đang xem.
Hiệu lực: Đã biết
Tình trạng: Đã biết

TIÊU CHUẨN QUỐC GIA

TCVN 12197:2018

ISO/IEC 19772:2009

CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - MÃ HÓA CÓ SỬ DỤNG XÁC THỰC

Information technology - Security techniques - Authenticated encryption

 

Lời nói đầu

TCVN 12197:2018 hoàn toàn tương đương với ISO/IEC 19772:2009.

TCVN 12197:2018 do Học viện Công nghệ Bưu chính Viễn thông biên soạn, Bộ Thông tin và Truyền thông đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố.

 

CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - MÃ HÓA CÓ SỬ DỤNG XÁC THỰC

Information technology - Security techniques - Authenticated encryption.

1  Phạm vi áp dụng

Tiêu chuẩn này quy định cụ thể sáu cơ chế mã hóa có sử dụng xác thực, nghĩa là xác định các cách thức xử lý một chuỗi dữ liệu theo các mục tiêu an toàn:

- Tính bí mật dữ liệu, tức là bảo vệ chống lại truy cập dữ liệu trái phép,

- Tính toàn vẹn dữ liệu, tức là bảo vệ cho phép bên nhận xác minh dữ liệu nhận được không bị sửa đổi,

- Xác thực nguồn gốc dữ liệu, tức là bảo vệ cho phép bên nhận xác minh định danh bên gửi dữ liệu.

Sáu cơ chế được quy định trong tiêu chuẩn này dựa trên thuật toán mã hóa khối, yêu cầu bên gửi và bên nhận dữ liệu được bảo vệ phải chia sẻ khóa bí mật cho mã hóa khối này. Quản lý khóa nằm ngoài phạm vi tiêu chuẩn này; các kỹ thuật quản lý khóa được quy định trong tiêu chuẩn TCVN 7817.

Bốn cơ chế 1, 3, 4 và 6 cho phép dữ liệu được xác thực mà không cần phải mã hóa. Các cơ chế này cho phép một chuỗi dữ liệu đã được bảo vệ được chia thành hai phần: D là chuỗi dữ liệu được mã hóa và được bảo vệ tính toàn vẹn; A là dữ liệu xác thực bổ sung dùng để bảo vệ tính toàn vẹn nhưng không được mã hóa. Trong tất cả các trường hợp, chuỗi A có thể để trống.

CHÚ THÍCH Ví dụ về các loại dữ liệu có thể cần phải được gửi dưới dạng không mã hóa nhưng tính toàn vẹn phải được bảo vệ; bao gồm địa chỉ, số cổng, số thứ tự, số phiên bản giao thức và các trường giao thức mạng khác chỉ ra cách thức bản gốc được kiểm soát, được chuyển tiếp hoặc được xử lý.

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

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

TCVN 11495-1:2016 Công nghệ thông tin - Các kỹ thuật an toàn - Mã xác thực thông điệp (MAC) - Phần 1: Cơ chế sử dụng mã khối.

ISO/IEC 10116:2017 Information technology - Security techniques - Modes of operation for an n-bit block cipher (Công nghệ thông tin - Các kỹ thuật an toàn - Chế độ hoạt động mã khối n-bit).

TCVN 11367-3:2016 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.

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 sau:

3.1

Bản rõ (Plaintext)

Thông tin chưa được mã hóa [ISO/IEC 10116].

3.2

Bản mã (Ciphertext)

Dữ liệu đã được biến đổi để ẩn nội dung thông tin [ISO/IEC 10116].

3.3

Cơ chế mã hóa có sử dụng xác thực (Authenticated encryption mechanism)

Kỹ thuật mã hóa được sử dụng để bảo vệ tính bí mật, đảm bảo nguồn gốc, tính toàn vẹn của dữ liệu, trong đó bao gồm hai quá trình thành phần: thuật toán mã hóa và thuật toán giải mã.

3.4

Giải mã (Decryption)

Đảo ngược hoạt động mã hóa tương ứng [TCVN 11367-1].

3.5

Hệ thống mã hóa (Encryption system)

Kỹ thuật mã hóa được sử dụng để bảo vệ an toàn dữ liệu, bao gồm ba quá trình thành phần: thuật toán mã hóa, thuật toán giải mã và cơ chế tạo khóa [TCVN 11367-1].

3.6

Hệ thống mã hóa đối xứng (Symmetric encryption system)

Hệ thống mã hóa dựa trên các kỹ thuật mã hóa đối xứng sử dụng cùng khóa bí mật cho cả hai thuật toán: mã hóa và giải mã [TCVN 11367-1].

3.7

Khóa (Key)

Chuỗi các ký hiệu điều khiển hoạt động biến đổi mật mã (mã hóa và giải mã) [TCVN 11367-1].

3.8

Khóa bí mật (Secret key)

Khóa được sử dụng với các kỹ thuật mã hóa đối xứng qua một tập hợp các thực thể đã được quy định [TCVN 11367-1].

3.9

Mã hóa (Encryption)

Biến đổi dữ liệu thông qua một thuật toán mã hóa để tạo ra một bản mã, hay là ẩn nội dung thông tin dữ liệu [TCVN 11367-1].

3.10

Mã hóa có sử dụng xác thực (Authenticated encryption)

Biến đổi dữ liệu bằng thuật toán mã hóa để tạo ra bản mã không thể bị truy xuất bởi thực thể trái phép mà không bị phát hiện, tức là nó cung cấp bảo vệ tính bí mật dữ liệu, tính toàn vẹn dữ liệu và xác thực nguồn gốc dữ liệu (Có tính đảo ngược).

3.11

Mã hóa khối (Block cipher)

Hệ mã hóa đối xứng với đặc tính thuật toán mã hóa hoạt động dựa trên một khối bản gốc, tức là một chuỗi các bit có độ dài xác định, để đưa ra một khối bản mã [TCVN 11367-1]

3.12

Mã xác thực thông điệp (MAC) (Message authenticattion code)

Chuỗi các bit được tạo ra qua thuật toán MAC [TCVN 11495-1].

3.13

Phân chia (Partition)

Quá trình chia một chuỗi các bit có độ dài tùy ý thành một chuỗi các khối, trong đó độ dài của mỗi khối là n bit, ngoại trừ khối sau cùng chứa r bit với 0 < r ≤ n.

3.14

Tính toàn vẹn dữ liệu (Data integrity)

Đặc tính dữ liệu không bị sửa đổi hoặc bị xóa bỏ một cách trái phép [TCVN 11495-1].

4  Ký hiệu

A Dữ liệu được xác thực bổ sung.

C Chuỗi dữ liệu được mã hóa có sử dụng xác thực.

D Chuỗi dữ liệu đã được áp dụng một cơ chế mã hóa có sử dụng xác thực.

d Thuật toán giải mã mã khối; dk(Y) biểu diễn kết quả của giải mã mã khối Y n bit bằng cách sử dụng khóa bí mật K.

e Thuật toán mã hóa mã khối; ek(X) biểu diễn kết quả mã hóa mã khối X n bit bằng cách sử dụng khóa bí mật K.

K Khóa mã khối bí mật được chia sẻ giữa bên gửi và bên nhận dữ liệu áp dụng cơ chế mã hóa có sử dụng xác thực.

m Số lượng khối trong bản D đã được chia tách.

n Độ dài khối (tính theo bit) cho một mã khối.

t Độ dài nhãn (tính theo bit).

0i Khối i bit 0.

 1i Khối i bit 1.

Å Phép toán thao tác bit XOR. Thực hiện tính toán (trên từng bit) với hai chuỗi bit có cùng độ dài để tạo ra một chuỗi bit mới có cùng độ dài với hai chuỗi bit ban đầu.

|| Ghép các chuỗi bit, tức là nếu A và B là các khối bit, thì A||B là khối các bit có được qua việc ghép A và B lại theo các thứ tự cụ thể.

# Hàm chuyển đổi số thành một khối a bit; nếu k là một số nguyên (0 ≤ k < 2a) thì #a(k) là khối a bit, khi khối này được xem như là biểu diễn dưới dạng nhị phân với bit trọng số cao nhất ở bên trái, bằng k.

#-1 Hàm chuyển đổi một khối bit thành số; nếu A là một khối bit thì #--1 (A) là một số nguyên không âm mà biểu diễn nhị phân là A. Do đó, nếu A có n bit thì #n(#--1 (A)) = A.

X|s Cắt phía trái khối bit X: Nếu X có độ dài bit lớn hơn hoặc bằng s thì X|s là khối s bit ngoài cùng bên trái của X.

X|s Cắt phía phải khối bit X: Nếu X có độ dài lớn hơn hoặc bằng s thì X|s là khối s bit ngoài cùng bên phải của X.

X <<1 Dịch trái khối bit X đi 1 vị trí: bit tận cùng phía phải của Y=X<<1 sẽ luôn được đặt về 0

X>>1 Dịch phải khối bit X đi 1 vị trí: bit tận cùng phía trái của Y=X>>1 sẽ luôn được đặt về 0

len Hàm đưa một chuỗi bit X tại đầu vào và cho ở đầu ra số lượng các bit trong X.

mod Nếu a và b > 0 là các số nguyên thì a mod b biểu thị số nguyên c duy nhất sao cho:

i) 0 ≤ c < b

ii) a - c là bội số của b.

5  Yêu cầu

Các cơ chế mã hóa có sử dụng xác thực được mô tả trong tiêu chuẩn này có các yêu cầu sau:

Bên gửi và bên nhận dữ liệu có áp dụng cơ chế mã hóa có sử dụng xác thực phải:

a) thỏa thuận sử dụng một cơ chế cụ thể từ các cơ chế được trình bày trong tiêu chuẩn này.

b) thỏa thuận sử dụng mã khối được sử dụng với cơ chế (sử dụng một trong các mã khối đã được chuẩn hóa trong TCVN 11367-3).

c) chia sẻ khóa bí mật K: là khóa cho một mã khối được chọn trong tất cả các cơ chế mã hóa xác thực ngoại trừ cơ chế 5 và được sử dụng như một dữ liệu đầu vào cho thủ tục khởi tạo khóa trong cơ chế số 5.

Ngoài ra, mỗi cơ chế có các yêu cầu cụ thể được liệt kê ngay từ khi mô tả cơ chế.

6  Cơ chế mã hóa có sử dụng xác thực 1 (OCB 2.0)

6.1  Giới thiệu

Phần này trình bày về cơ chế mã hóa có sử dụng xác thực thường được biết đến với tên OCB 2.0 (Offset Codebook Version 2).

CHÚ THÍCH OCB 2.0 là do Krovetz và Rogaway [8]. OCB 2.0 có độ an toàn được chính minh dựa trên giả thiết rằng các mã khối được sử dụng có các thuộc tính lý tưởng nhất định.

6.2  Ký hiệu riêng

Các ký hiệu và chú giải áp dụng đối với cơ chế này:

B

B1, B2,..., Bw

Khối bit được sử dụng trong định nghĩa hàm J.

Chuỗi các khối bit (mỗi khối n bit, có thể ngoại trừ Bw) được sử dụng trong định nghĩa hàm J.

C1, C2,..., Cm

Chuỗi các khối bit (mỗi khối n bit, có thể không bao hàm Cm) là thành phần đầu ra thu được của quá trình mã hóa có sử dụng xác thực.

D1, D2,..., Dm

Chuỗi các khối bit (mỗi khối n bit, có thể không bao hàm Dm) thu được qua phân chia D.

F

H

J

k

m

 

Khối n bit được sử dụng trong các quá trình mã hóa và giải mã.

Khối n bit được sử dụng trong các quá trình mã hóa và giải mã.

Hàm được sử dụng trong các quá trình mã hóa và giải mã.

Biến được sử dụng trong định nghĩa hàm J.

Số khối n bit trong bản tin sẽ được mã hóa (trong đó khối sau cùng có thể chứa ít hơn n bit) tức bản tin chứa (m-1)n+r bit.

M2

M3

P

r

Hàm được sử dụng trong các quá trình mã hóa và giải mã.

Hàm được sử dụng trong các quá trình mã hóa và giải mã.

Khối n bit được sử dụng trong định nghĩa M2.

Số lượng (0 < r ≤ n) bit trong khối sau cùng của bản tin đã được mã hóa, sau khi nó được phân chia thành các khối n bit, tức là len(D) = (m-1)n+r.

S

T

T

w

Z

Biến khởi tạo (n bit).

Nhãn (t bit), được thêm vào bản tin đã được mã hóa để bảo vệ tính toàn vẹn.

Giá trị nhãn được tính toán lại, sinh ra trong quá trình giải mã.

Biến được sử dụng trong định nghĩa hàm J.

Khối n bit được sử dụng trong các quá trình mã hóa và giải mã.

6.3  Yêu cầu riêng

Trước khi bắt đầu sử dụng cơ chế này, bên gửi và bên nhận dữ liệu có áp dụng cơ chế mã hóa có sử dụng xác thực cần phải thỏa thuận độ dài nhãn t bit, trong đó 0 < t ≤ n.

6.4  Định nghĩa hàm M2

Định nghĩa các thủ tục mã hóa và giải mã yêu cầu định nghĩa hàm M2 nhận khối n bit ở đầu vào và trả về một khối n bit ở đầu ra. Định nghĩa hàm này tùy thuộc vào khối n bit P. Vì n phải tương ứng với độ dài bit mã khối được liệt kê trong TCVN 11367-3, tiêu chuẩn này chỉ xác định P cho n = 64 và n = 128.

a) Nếu n = 64 thì P = 059||11011.

b) Nếu n = 128 thì P = 0120||10000111.

Hàm M2 được định nghĩa như sau. Nếu X là một khối n bit thì:

a) Nếu bit tận cùng bên trái (bit trọng số cao) của X là 0 thì M2(X) = X <<1;

b) Nếu bit tận cùng bên trái (bit trọng số cao) của X là 1 thì M2(X) = [X<<1]ÅP

6.5  Định nghĩa hàm M3

Định nghĩa thủ tục xử lý dữ liệu xác thực bổ sung yêu cầu định nghĩa hàm M3 nhận một khối n bit ở đầu vào và đưa một khối n bit ở đầu ra. Nếu X là một khối n bit thì:

M3(X) = M2(X) Å X

6.6  Định nghĩa hàm J

Hàm J nhận một khối bit B ở đầu vào (trong đó len(B) > 0), đưa một khối J(B) n bit ở đầu ra. Giá trị J(B) được tính toán như sau:

a) Chia B thành chuỗi các khối: B1, B2,..., Bw như sau: B1 chứa n bit đầu tiên của B, B2 chứa n bit tiếp theo, cứ như thế cho đến Bw chứa k bit sau cùng, trong đó 0 < k ≤ n.

Do đó, len[B) = (w-1)n+k.

b) Đặt F = M3,(M3,(ek(0n))).

c) Đặt C0 = 0n

d) Với i = 1, 2,..., w-1, thực hiện 2 bước như sau:

1) Đặt F = M2(F).

2) Đặt Ci = Ci-1 Å ek (Bi Å F)

e) Đặt F = M3(M2(F)).

f) Nếu k<n thì thực hiện 2 bước như sau:

1) Đặt F = M3(F).

2) Đặt Bw = Bw||1||0n-k-1

g) J(B) = eK(Cw-1 Å Bw Å F)

6.7  Thủ tục mã hóa

Bên gửi thực hiện các bước sau để bảo vệ chuỗi dữ liệu D.

a) Lựa chọn biến khởi tạo S n bit. Biến S là riêng biệt đối với mỗi bản tin được bảo vệ, phải sẵn sàng tại bên nhận bản tin. Tuy nhiên, S là không cần thiết khi giá trị này không suy đoán ra được hoặc mang tính bảo mật.

CHÚ THÍCH Giá trị S có thể được tạo ra bằng cách sử dụng một bộ đếm được duy trì bởi bên gửi và gửi đi không cần mã hóa cùng với bản tin đã được bảo vệ.

b) Chia D thành chuỗi các khối: D1, D2,..., Dm. D1 chứa n bit đầu tiên của D, D2 chứa n bit tiếp theo, cứ như thế cho đến Dm chứa r bit cuối cùng, trong đó 0 < r ≤ n. Do đó, len(D) = (m-1)n+r.

c) Đặt F = ek(S)H = 0n.

d) Với i = 1, 2 ..., m-1, thực hiện 3 bước:

1. Đặt F = M2(F).

2. Đặt H = H Å Di

3. Đặt Ci = F Å ek(Di Å F)

e) Đặt F = M2(F).

f) Đặt Z = ek(#n(r) Å F)

g) Đặt Cm = Dm Å Z|r

h) Đặt H = H Å [Dm ||(Z|n-r)]

i) Đặt T= [ek(H Å M3(F))]|t

j) Nếu len(A) > 0, thì đặt T = T Å J(A)|t

Đầu ra của quá trình trên, hay bản mã hóa có sử dụng xác thực của D là chuỗi bit:

C = C1||C2||...||Cm||T

Hay C là một chuỗi (m-1)n+r+t bit, tức là C chứa nhiều hơn D t bit (mặc dù nó phải cần mang thêm n bit biến khởi tạo S và chuỗi A bit dữ liệu đã được xác thực bổ sung có độ dài thay đổi đến bên nhận).

6.8  Thủ tục giải mã

Bên nhận thực hiện các bước sau để giải mã và chứng nhận một chuỗi C đã được mã hóa có sử dụng xác thực.

a) Nếu độ dài của C nhỏ hơn t thì dừng, thông báo là INVALID (không hợp lệ).

b) Đặt m và r là các số nguyên duy nhất xác định sao cho C chứa tổng số (m-1)n+r+t bit, trong đó 0 < r ≤ n. Chia C thành một chuỗi các khối: C1, C2, ..., Cm, T. Đặt C1 chứa n bit đầu tiên của C, C2 chứa n bit tiếp theo, cứ như thế đến khi Cm chứa r bit tiếp theo của C. Cuối cùng đặt T là t bit cuối cùng của C.

c) Đặt F = ek(S)H = 0n

d) Với i = 1, 2..., m-1, thực hiện 3 bước:

1. Đặt F = M2(F).

2. Đặt Di = F Å dk (Ci Å F)

3. Đặt H = H Å Di

e) Đặt F = M2(F).

f) Đặt Z = ek (#n(r) Å F)

g) Đặt Dm = Cm Å Z|r

h) Đặt H = H Å [Dm||(Z|n-r)]

i) Đặt T' = [ek(H Å M3(F))]|t

j) Nếu len(A) > 0 thì đặt T' = T' Å J(A)|t

k) Nếu T = T' thì đầu ra là D và dữ liệu A đã được xác thực bổ sung. Ngược lại đầu ra là INVALID (không hợp lệ).

7  Cơ chế mã hóa có sử dụng xác thực 2 (Key Wrap)

7.1  Giới thiệu

Phần này trình bày về cơ chế mã hóa có sử dụng xác thực thường được biết đến với tên gọi là Key Wrap.

CHÚ THÍCH 1: Lược đồ này được thiết kế cơ bản cho mã hóa có sử dụng xác thực khóa và thông tin đi kèm. Nó được thiết kế để sử dụng với các chuỗi dữ liệu ngắn. Tuy nhiên, lược đồ có thể được sử dụng với các chuỗi dữ liệu có độ dài tùy ý (tối đa lên tới 267 bit), dù không đạt hiệu quả bảo vệ với các bản tin dài.

CHÚ THÍCH 2: Mô hình này được biết đến với tên gọi là AES Key Wrap khi mã khối AES được sử dụng, trong đó AES là chữ viết tắt của Advanced Encryption Standard (Chuẩn mã hóa nâng cao), một thuật toán mã khối được trình bày chi tiết trong TCVN 11367-3. AES Key Wrap cũng được trình bày chi tiết trong [10] và [12].

7.2  Ký hiệu riêng

C0, C1, ..., Cm

Chuỗi (m+1) khối 64 bit thu được như đầu ra quá trình mã hóa có sử dụng xác thực.

D1, D2,... Dm

Chuỗi m khối 64 bit thu được qua việc phân chia D, tức là 64m = len(D).

R1, R2,..., Rm

Chuỗi m khối 64 bit được tính toán trong 1 quá trình mã hóa và giải mã.

Y

Z

Khối 64 bit được sử dụng trong quá trình mã hóa và giải mã.

Khối 128 bit được tính toán trong quá trình mã hóa và giải mã.

7.3  Yêu cầu riêng

Mã khối được sử dụng trong cơ chế này phải là mã khối 128 bit, tức là phải có n=128.

Chuỗi dữ liệu D được bảo vệ bằng cách áp dụng cơ chế này phải chứa ít nhất 128 bit và phải chứa một bội số của 64 bit (tức độ dài của D phải là 64m với một số nguyên m > 1).

7.4  Thủ tục mã hóa

Bên gửi thực hiện theo các bước sau để bảo vệ chuỗi dữ liệu D:

a) Chia D thành một chuỗi m khối 64 bit D1, D2,..., Dm, do đó D1 chứa 64 bit đầu tiên của D, D2 chứa 64 bit tiếp theo của D và cứ thế.

b) Đặt Y là khối 64 bit biểu diễn theo hệ hexa A6A6A6A6A6A6A6A6 hoặc theo hệ nhị phân (10100110 10100110 ....10100110).

c) Với i = 1, 2,..., m

Đặt Ri = Di

d) Với i = 1, 2,... 6m, thực hiện 4 bước:

1. Đặt Z = ek(Y||R1).

2. Đặt Y=Z|64 Å #64(i)

3. Với j = 1, 2,..., m-1:

Đặt Rj = Rj+1

4. Đặt Rm = Z|64

e) Đặt C0 = Y.

f) Với i = 1,2..., m:

đặt Ci = Ri

Đầu ra của quá trình trên hay bản mã hóa có sử dụng xác thực của D là chuỗi bit:

C = C0||C1||...Cm

Hay C là một chuỗi 64(m+1) bit, nghĩa là C chứa nhiều hơn D 64 bit.

7.5  Thủ tục giải mã

Bên nhận thực hiện các bước sau để giải mã và xác nhận một chuỗi C đã được mã hóa có sử dụng xác thực.

a) Nếu len(C) không là một bội số của 64 hoặc nhỏ hơn 192, dừng và thông báo là INVALID (không hợp lệ).

b) Chia C thành chuỗi m+1 khối 64 bit C0, C1, ..., Cm do đó C0 chứa 64 bit đầu của C, C1 chứa 64 bit tiếp theo và cứ thế tiếp tục.

c) Đặt Y = C0

d) Với i = 1, 2,..., m:

Đặt Ri = Ci

e) Với i = 6m, 6m-1, giảm đi 1, thực hiện các bước sau:

1. Đặt Z = dk ([Y Å #64 (i)]||Rm)

2. Đăt Y = Z|64

3. Với j=m, m-1,..., 2:

Đặt Rj = Rj-1

4. Đặt R1 = Z|64

f) Nếu Y = (10100110 10100110 10100110 ... 10100110) thì đầu ra là D = R1||R2||...||Rm. Ngược lại đầu ra là INVALID.

8  Cơ chế mã hóa có sử dụng xác thực 3 (CCM)

8.1  Giới thiệu

Phần này trình bày về cơ chế mã hóa có sử dụng xác thực thường được biết đến với tên gọi là CCM (Counter with CBC-MAC).

CHÚ THÍCH CCM là do Whiting, Housley và Ferguson đề xuất [13]. Phiên bản CCM được trình bày trong tiêu chuẩn này là một trường hợp CCM đặc biệt được định nghĩa trong [11] và [13].

8.2  Ký hiệu riêng

Cơ chế này sử dụng các ký hiệu và chú giải sau:

B

B1, B2,..., Bv

C1, C2,..., Cm

 

Khối bit được sử dụng trong tính toán giá trị nhãn.

Chuỗi các khối bit (mỗi khối n bit) được sử dụng trong tính toán giá trị nhãn.

Chuỗi m khối 128 bit là thành phần đầu ra thu được của quá trình mã hóa có sử dụng xác thực.

D1, D2,..., Dm

F

L

r

Chuỗi m khối 128 bit thu được qua phân chia phần D đã được đệm.

Octet cờ.

Độ dài của D (tính theo octet), không bao gồm phần đệm và độ dài khối D0.

Số lượng octet của D trong khối Dm.

S

T

T'

U

v

w

X

Y

Biến khởi tạo (trong 120-8w bit).

Giá trị nhãn bản mã (trong t bit).

Giá trị nhãn được tính toán lại, sinh ra trong quá trình giải mã.

Giá trị nhãn đã được mã hóa (trong t bit).

Biến được sử dụng trong tính toán giá trị nhãn.

Độ dài trường độ dài bản tin tính theo octet.

Khối 128 bit được tính toán trong quá trình mã hóa và giải mã.

Khối 128 bit được tính toán trong quá trình mã hóa và giải mã.

8.3  Yêu cầu riêng

Trước khi bắt đầu sử dụng cơ chế này, bên gửi và bên nhận dữ liệu có áp dụng cơ chế mã hóa có sử dụng xác thực phải thỏa thuận:

a) t là độ dài nhãn tính theo bit; t phải được chọn từ tập hợp {32, 48, 64, 80, 96, 112, 128}.

b) w là độ dài trường độ dài bản tin tính theo octet; w được chọn từ tập hợp {2, 3, 4, 5, 6, 7, 8}.

CHÚ THÍCH Việc lựa chọn w ảnh hưởng đến độ dài bản tin lớn nhất có thể bảo vệ được. Độ dài bản tin lớn nhất là 28w+3, hay 28w octet.

Mã khối được sử dụng trong cơ chế này phải là mã khối 128 bit, tức mã khối phải có n=128.

Chuỗi dữ liệu D đã được bảo vệ qua áp dụng cơ chế này và chuỗi dữ liệu A được xác thực bổ sung, phải chứa toàn bộ số lượng octet, tức độ dài của chuỗi phải là một bội số của 8 bit (tức là cả hai len(D) và len(A) phải là bội số nguyên của 8).

8.4  Thủ tục mã hóa

Bên gửi thực hiện các bước sau để bảo vệ chuỗi dữ liệu D. Đặt L=len(D)/8, tức L là số lượng octet trong D.

a) Lựa chọn biến khởi tạo S chứa 15-w octet (hay 128-8W bit). Biến S là riêng biệt đối với mỗi bản tin được bảo vệ, phải sẵn sàng tại bên nhận bản tin. Tuy nhiên, S là không cần thiết khi giá trị này không suy đoán ra được hoặc có mang tính bí mật.

CHÚ THÍCH Giá trị S có thể được tạo ra bằng cách sử dụng một bộ đếm được duy trì bởi bên gửi và gửi đi trong bản rõ đi kèm với bản tin đã được bảo vệ.

b) Đệm phải chuỗi dữ liệu D với 16-r octet 0 (tức là các bit 0 giữa 0 - 120) sao cho phần đệm của D chứa một bội số của 128 bit. Sau đó chia phần đệm của D thành chuỗi m khối 128 bit D1, D2, ..., Dm, sao cho D1 chứa 128 bit đầu của D, D2 chứa 128 bit tiếp theo của D và cứ thế tiếp tục.

CHÚ THÍCH Giá trị m phải thỏa mãn 16(m-1) < L < 16m.

c) Nếu len(A)= 0 thì đặt octet cờ F = 02||#3 ((t -16)/16)||#3 (w -1)

d) Nếu len(A)> 0 thì đặt octet cờ F = 0||1||#3 ((t -16)/16)||#3 (w -1)

CHÚ THÍCH Bit trọng số cao (bit trái) của F là một bit ‘dự phòng’, tức là nó được đặt là 0 với phiên bản cơ chế được mô tả chi tiết ở đây, nhưng có thể được sử dụng trong tương lai sau này trong các phiên bản khác của cơ chế (chưa được mô tả). Tiếp đến bit trọng số cao F được đặt về 0 để chỉ thị rằng tất cả dữ liệu đang được bảo vệ bởi cơ chế là đã được mã hóa.

e) Đặt X = ek(F||S||#8w(L))

f) Nếu len(A) > 0 thì thực hiện 6 bước sau:

1. Nếu 0 < len(A) < 65280 thì đặt B = #16 (len(A) / 8)|| A

2. Nếu 65280 ≤ len(A) < 232 thì đặt B = 115||0||#32 len(A) / 8)|| A

3. Nếu 232len(A) < 264 thì đặt B = 116||#64 (len(A) / 8)|| A

4. Chia B thành chuỗi các khối: B1, B2,..., Bv, như vậy: đặt B1 chứa n bit đầu tiên của B, B2 chứa n bit tiếp theo của B và cứ thế tiếp tục, cho đến khi Bv chứa k bit sau cùng, trong đó 0 < k ≤ n; do đó, len(B) = (v-1)n+k;

5. Đệm phải Bv với n-k số 0, tức đặt Bv = Bv||0n-k

6. Với i = 1, 2,..., v:      

Đặt X = ek(X Å Bi)

g) Với i = 1, 2,..., m:

Đặt X = ek(X Å Di)

h) Đặt T = X|t    

CHÚ THÍCH Nhãn bản gốc T tương đương với một MAC đã được tính toán trên chuỗi dữ liệu B1, B2,..., Bv, D1, D2,..., Dm bằng cách sử dụng một phiên bản sửa đổi nhỏ của thuật toán 1 MAC được trình bày chi tiết trong TCVN 11495-1.

i) Đặt cờ octet F = (05|#3(w - 1) và đặt Y = (F||S||08w)

CHÚ THÍCH Hai bit trọng số cao (bit trái) của F là các bit ‘dự phòng’, nghĩa là chúng được đặt về 0 trong bản cơ chế được mô tả ở đây, nhưng có thể được sử dụng trong tương lai trong các phiên bản khác của cơ chế (chưa được mô tả). Ba bit trọng số cao kế tiếp của F được đặt về 0 để đảm bảo rằng octet này là riêng biệt với octet cờ được sử dụng trong bước c ở trên.

i) Đặt U = TÅ[ek(Y)]|t

k) Với i = 1, 2,..., m-1, thực hiện 2 bước sau:

1. Đặt Y = (F||S||#8w(i))

2. Đặt Ci = Di Å ei(Y)

l) Đặt Y = (F|S||#8w(m)) và đặt Cm = [DmÅek(Y)]|8r

Đầu ra của quá trình trên, tức bản mã hóa có sử dụng xác thực của D là chuỗi bit:

C = C1||C2||...||Cm-1||Cm||U

Hay C là một chuỗi chứa 8L+t bit, nghĩa là chuỗi C chứa nhiều hơn chuỗi dữ liệu gốc D t bit (mặc dù nó phải cần mang thêm (128-8w) bit biến khởi tạo S và dữ liệu A đã được xác thực bổ sung có độ dài thay đổi đến bên nhận).

8.5  Thủ tục giải mã

Bên nhận thực hiện các bước sau để giải mã và xác nhận chuỗi C đã được mã hóa có sử dụng xác thực.

a) Nếu C không chứa toàn bộ số lượng octet, dừng và đưa ra INVALID (không hợp lệ).

b) Nếu độ dài của C nhỏ hơn (t+8) bit, thì dừng và đưa ra INVALID (không hợp lệ).

c) Đặt m và r là các số nguyên duy nhất sao cho C chứa một tổng 128(m-1)+8r+t bit, trong đó 0 < r ≤ 16. Chia C thành một chuỗi các khối: C1, C2,..., Cm, U. Đặt C1 chứa 128 bit đầu tiên của C, C2 chứa 128 bit tiếp theo của C và cứ tiếp tục như vậy cho đến khi Cm chứa 8r bit tiếp theo của C.

Sau cùng, đặt U là t bit cuối cùng của C.

d) Đặt octet cờ F = (05||#3(w - 1) và đặt Y = (F||S||08w)

e) Đặt T = UÅ[ek(Y)]|t

f) Với i = 1, 2,..., m-1, thực hiện 2 bước sau:

1. Đặt Y = (F||S||#8w(i))

2. Đặt Di=CiÅek(Y)

g) Đặt Y = (F||S||#8w(m)) và đặt Dm=CmÅ[ek(Y)]|8r

h) Đặt D = D1||D1||...||Dm-1||Dm và đặt L = 16m -16 + r.

i) Đệm phải Dm với 128-8r bit 0, tức đặt Dm = Dm||0128-8r

j) Nếu len(A)= 0 thì đặt octet cờ F = 02||#3 ((t - 16) /16)||#3 (w -1)

k) Nếu len(A) > 0 thì đặt octet cờ F = 0||1||#3 ((t - 16) /16)||#3 (w -1)

l) Đặt X = ek(F||S||#8w(L))

m) Nếu len(A)> 0, thì thực hiện 6 bước sau:

1. Nếu 0 < len(A) < 65280 thì đặt B = #16 (len(A) / 8)|| A

2. Nếu 65280 ≤ len(A) < 232 thì đặt B = 115||0||#32 (len(A) / 8)|| A

3. Nếu 232len(A) < 264 thì đặt B = 116||#64 len(A) / 8)|| A

4. Chia B thành một chuỗi các khối: B1, B2,..., Bv, như sau: đặt B1 chứa n bit đầu tiên của B, B2 chứa n bit kế tiếp và cứ thế tiếp tục cho đến khi Bv chứa k bit sau cùng, trong đó 0 < k ≤ n; do đó len(B) = (v-1)n+k;

5. Đệm phải Bv, với n-k số 0, tức đặt Bv = Bv||0n-k

6. Với i = 1, 2,..., v:

Đặt X = ek (X Å Bi)

n) Với i = 1, 2,..., m:

Đặt X = ek(X Å Di)

o) Đặt T' = X|t

p) Nếu T = T’, thì đầu ra D như đã được tính toán trong bước h) và a). Ngược lại đầu ra là INVALID (không hợp lệ).

9  Cơ chế mã hóa có sử dụng xác thực 4 (EAX)

9.1  Giới thiệu

Phần này trình bày về cơ chế mã hóa có sử dụng xác thực thường được biết đến với tên gọi EAX.

CHÚ THÍCH EAX do Bellare, Rogaway và Wagner [3], EAX không phải là một từ viết tắt cụ thể nào.

9.2  Ký hiệu riêng

Với mục tiêu trình bày chi tiết về cơ chế này, các ký hiệu và chú giải sau được áp dụng:

C1, C2,..., Cm

Chuỗi các khối bit (mỗi khối n bit, có thể không bao hàm Cm) là thành phần đầu ra thu được của quá trình mã hóa có sử dụng xác thực.

D1, D2, ..., Dm

Chuỗi các khối bit (mỗi khối n bit, có thể không bao hàm Dm) thu được qua việc phân chia D.

E0, E1, E2

M

S

T

T'

W

Các khối n bit được tính toán trong quá trình mã hóa và giải mã.

Hàm được sử dụng trong quá trình mã hóa và giải mã.

Biến khởi tạo (n bit).

Nhãn (t bit), đính kèm với một bản tin đã được mã hóa để bảo vệ tính toàn vẹn

Giá trị nhãn được tính toán lại, sinh ra trong quá trình giải mã.

Khối n bit được tính toán trong quá trình mã hóa và giải mã.

9.3  Yêu cầu riêng

Trong bất kỳ trường hợp nào sử dụng cơ chế này, bên gửi và bên nhận dữ liệu có áp dụng cơ chế mã hóa có sử dụng xác thực, phải thỏa thuận:

a) t, độ dài nhãn bit, trong đó 0 < t ≤ n.

9.4  Định nghĩa hàm M

Định nghĩa các thủ tục mã hóa và giải mã yêu cầu định nghĩa hàm M nhận một chuỗi bit có độ dài tùy ý và một khóa mã khối ở đầu vào và đưa một khối n bit ở đầu ra. Định nghĩa hàm M như sau.

Nếu X là một chuỗi bit và K là một khóa cho mã khối được lựa chọn, thì Mk(X) bằng một mã xác thực bản tin (chưa bị cắt) được tính toán trên chuỗi X bằng cách sử dụng khóa K qua sử dụng thuật toán MAC 5 trong tiêu chuẩn TCVN 11495-1 (xuất bản lần thứ 4), trong đó mã khối được sử dụng trong thuật toán MAC sẽ giống như thuật toán mã khối được lựa chọn trong quá trình mã hóa có sử dụng xác thực.

CHÚ THÍCH Thuật toán MAC 5 trong tiêu chuẩn TCVN 11495-1 còn được biết đến với tên gọi OMAC.

9.5  Thủ tục mã hóa

Bên gửi thực hiện các bước sau để bảo vệ chuỗi dữ liệu D:

a) Lựa chọn biến khởi tạo S chứa n bit. Biến S là riêng biệt đối với mỗi bản tin được bảo vệ, phải sẵn sàng tại bên nhận bản tin. Tuy nhiên, S là không cần thiết khi giá trị này không suy đoán ra được hoặc có mang tính bí mật.

b) Đặt E0 = Mk(0n||S)

c) Đặt E1 = Mk(0n-1||1||A)

d) Đặt W = E0

e) Chia D thành một chuỗi các khối: D1, D2,..., Dm, như sau: đặt D1 chứa n bit đầu tiên của D, D2 chứa n bit kế tiếp và cứ thế tiếp tục đến khi Dm chứa r bit sau cùng, trong đó 0 < r ≤ n; Do đó len(D) = (m-1)n+r.

f) Với i = 1, 2,..., m-1, thực hiện 2 bước:

1. Đặt Ci = Di Å ek(W)

2. Đặt W = #n(#-1(W) + 1 mod 2n)

g) Đặt Cm = Dm Å [ek(W)]|r

h) Đặt E2 = Mk (0n-2||1||0||C1||C2||...||Cm)

i) Đặt T = [E0 Å E1 Å E2]|t

Đầu ra của quá trình trên, tức là bản mã hóa có sử dụng xác thực của D là chuỗi bit:

C = C1||C2||...||Cm-1||Cm||T

Hay C là một chuỗi (m-1)n+r+t bit, nghĩa là chứa nhiều hơn so với chuỗi dữ liệu gốc D t bit (mặc dù nó phải cần mang n bit biến khởi tạo S và dữ liệu A đã được xác thực bổ sung có độ dài thay đổi đến bên nhận).

9.6  Thủ tục giải mã

Bên nhận thực hiện các bước sau để giải mã và xác nhận một chuỗi C đã được mã hóa có sử dụng xác thực.

a) Nếu độ dài của C nhỏ hơn t, dừng và thông báo INVALID (không hợp lệ).

b) Đặt m và r là các số nguyên duy nhất xác định sao cho C chứa một tổng (m-1)n+r+t bit, trong đó 0 < r ≤ n. Chia C thành một chuỗi các khối: C1, C2, ..., Cm, T. Đặt C1 chứa n bit đầu tiên của C, C2 chứa n bit kế tiếp và cứ như thế cho đến khi Cm chứa r bit kế tiếp của C. Sau cùng, đặt T là t bit cuối cùng của C.

c) Đặt E0 = Mk(0n||S)

d) Đặt E1= Mk(0n-1||1||A)

e) Đặt E2= Mk(0n-2||1||0||C1||C2||...||Cm)

f) Đặt T' =[E0 Å E1 Å E2]|t

g) Nếu T ≠ T', thì dừng và đưa ra INVALID (không hợp lệ).

h) Đặt W=E0

i) Với i = 1, 2,..., m-1, thực hiện 2 bước sau:

1. Đặt Di =Ci Å ek (W).

2. Đặt W = #n(#-1(W) + 1 mod 2n)

j) Đặt Dm = Cm Å [ek (W)]|r

k) Đầu ra là D và A.

10  Cơ chế mã hóa có sử dụng xác thực 5 (Mã hóa sau đó MAC - Encrypt-then-MAC)

10.1  Giới thiệu

Phần này trình bày về cơ chế mã hóa có sử dụng xác thực được tạo nên từ sự kết hợp giữa một cơ chế mã hóa và một lược đồ MAC được xác định. Lược đồ này yêu cầu mã hóa dữ liệu được bảo vệ trước, sau đó tính toán MAC trên kết quả dữ liệu đã được mã hóa.

CHÚ THÍCH Cơ chế Encrypt-then-MAC đã được phân tích bởi Bellare và Namprempre [3], là những người chứng minh sự an toàn của cơ chế này dựa trên giả thiết phương thức mã hóa và kỹ thuật MAC có các đặc tính an toàn nhất định.

10.2  Ký hiệu riêng

Với mục tiêu mô tả cơ chế này, các ký hiệu và chú giải sau được áp dụng:

C'

Chuỗi bit thu được qua việc mã hóa chuỗi dữ liệu D.

δ

Hàm giải mã, tức là một hàm với đầu vào là một khóa mã khối K1, một biến khởi tạo S và một chuỗi dữ liệu đã được mã hóa C' và thông qua sử dụng chế độ hoạt động được chọn lựa, đầu ra là chuỗi dữ liệu đã được giải mã: đầu ra được viết là δk1,S(C') [2].

ε

Hàm mã hóa, tức là hàm với đầu vào là một khóa mã khối K1, một biến khởi tạo S, một chuỗi dữ liệu D và thông qua sử dụng phương thức vận hành được lựa chọn, đầu ra là chuỗi dữ liệu đã được mã hóa: đầu ra được viết là εk1,S (D) [2].

f

Hàm MAC; Nếu X là chuỗi đầu vào và K2 là khóa MAC, thì MAC đầu ra được viết là fk2 (X)

K1

K2

S

T

T'

Khóa bí mật cho mã khối.

Khóa bí mật cho hàm MAC.

Biến khởi tạo (n bit).

Nhãn (t bit), đính kèm với bản tin đã được mã hóa để bảo vệ tính toàn vẹn.

Giá trị nhãn được tính toán lại, sinh ra trong quá trình giải mã.

10.3  Yêu cầu riêng

Trong bất kỳ trường hợp nào sử dụng cơ chế này, bên nhận và bên gửi dữ liệu áp dụng cơ chế mã hóa có sử dụng xác thực, phải thỏa thuận:

a) Phương thức vận hành mã khối từ các phương thức vận hành mã khối được mô tả chi tiết trong tiêu chuẩn ISO/IEC 10116 (Chế độ ECB không được sử dụng).

b) Cơ chế tính toán MAC phải được lựa chọn từ các kỹ thuật được trình bày chi tiết trong tiêu chuẩn TCVN 11495 (giả thiết rằng phương thức được chọn tạo ra nhãn độ dài t bit)

c) Cơ chế để trích xuất một cặp khóa bí mật (K1, K2) từ khóa bí mật K, trong đó K1 là khóa cho mã khối được lựa chọn và K2 là khóa cho cơ chế tính toán MAC được lựa chọn.

CHÚ THÍCH 1 K phải được lựa chọn sao cho số lượng các giá trị có thể có cho K ít nhất phải lớn hơn hoặc bằng số lượng các giá trị có thể có của khóa mã khối và ít nhất cũng phải lớn hơn hoặc bằng số lượng giá trị khóa MAC có thể có.

CHÚ THÍCH 2 Các cơ chế có thể trích xuất (K1, K2) từ khóa bí mật K bao gồm: (a) Đặt K = K1||K2 (trong đó K được lựa chọn với độ dài thích hợp) và (b) K1 và K2 được trích xuất bằng lấy các chuỗi bit (riêng biệt) từ h(K), trong đó h là hàm băm được chọn ra từ các hàm băm được trình bày chi tiết trong tiêu chuẩn ISO/IEC 10118 có độ dài đầu ra phù hợp.

10.4  Thủ tục mã hóa

Bên gửi thực hiện các bước sau để bảo vệ chuỗi dữ liệu D.

a) Lựa chọn biến khởi tạo S thích hợp cho sử dụng với phương thức vận hành mã khối được lựa chọn. Biến S là riêng biệt đối với mỗi bản tin được bảo vệ theo khóa đã cho và phải sẵn sàng tại bên nhận bản tin. Các yêu cầu có thể có đối với S được mô tả chi tiết trong các phần tương ứng của tiêu chuẩn ISO/IEC 10116 và hướng dẫn được đưa ra trong A.7 [2].

CHÚ THÍCH Nếu biến khởi tạo được lựa chọn đồng nhất ngẫu nhiên từ không gian tất cả các biến khởi tạo có thể có (như được khuyến nghị - xem phụ lục A.7) và số lượng các bản tin đã được mã hóa bằng cách sử dụng một khóa duy nhất được bao bọc thích hợp, thì việc sử dụng các biến khởi tạo riêng biệt chiếm áp đảo, tức là biến khởi tạo có thể được coi như là khác biệt về mặt thống kê [2].

b) Đặt C' = εk1,S(D) sử dụng biến khởi tạo S [2].

c) Đặt T = fk2(S||C') [2].

Đầu ra của quá trình trên, tức bản mã hóa có sử dụng xác thực của D là chuỗi bit:

C = C'||T, cùng với biến khởi tạo S [2].

10.5  Thủ tục giải mã

Bên nhận thực hiện các bước sau để giải mã và xác nhận chuỗi C, đi kèm biến khởi tạo S đã được mã hóa có sử dụng xác thực [2].

a) Nếu độ dài của C nhỏ hơn t thì dừng và thông báo là INVALID (không hợp lệ).

b) Đặt T là t bit trọng số bậc cao bên phải của C, đặt C’ bằng C với phần trọng số bậc cao t bit đã bị loại bỏ, tức là C = C’||T

c) Đặt T' = fk2(S||C') [2].

d) Nếu T ≠ T', thì dừng và đưa ra INVALID (không hợp lệ).

e) Đặt D=δk1,S(C'), bằng cách sử dụng biến khởi tạo S [2].

f) Đầu ra là D.

11  Cơ chế mã hóa có sử dụng xác thực 6 (GCM)

11.1  Giới thiệu

Phần này trình bày về cơ chế mã hóa có sử dụng xác thực thường được biết đến với tên gọi GCM (Galois/Counter Mode).

CHÚ THÍCH GCM là do McGrew và Viega đề xuất [9].

11.2  Ký hiệu riêng

C1, C2, ..., Cm

Chuỗi m khối 128 bit (có thể không bao hàm Cm có thể chứa từ 1 đến 128 bit) là thành phần đầu ra thu được của quá trình mã hóa có sử dụng xác thực.

D1, D2, ..., Dm

Chuỗi m khối 128 bit (có thể không bao hàm Dm) thu được qua phân chia D.

G

H

inc

Hàm được sử dụng trong quá trình mã hóa và giải mã (11.5) [2].

Khối 128 bit được sử dụng trong quá trình mã hóa và giải mã.

Hàm nhận một khối 128 bit ở đầu vào và cho ra một khối 128 bit ở đầu ra, trong đó, nếu X là một khối 128 bit:

inc(X) = (X|96)||#32(#-1(X|32) +1 mod232)

r

Số lượng bit trong khối cuối cùng của bản tin được bảo vệ, sau khi nó đã được phân chia thành các khối n bit, tức là bản tin chứa (m-1)n+r bit.

R

S

T

Khối 128 bit được sử dụng trong tính toán phép nhân GF(2128).

Biến khởi tạo (độ dài thay đổi).

Nhãn (t bit), được đính kèm với bản tin đã được mã hóa để bảo vệ tính toàn vẹn.

T'

U, V, W, Z

X0, X1, ..., Xk+l+1

Y0, Y1, ... Ym

{}

Giá trị nhãn được tính toán lại, sinh ra trong quá trình giải mã.

Các khối 128 bit được sử dụng trong xác định tính toán phép nhân GF(2128).

Các khối 128 bit được sử dụng trong tính toán hàm G.

Chuỗi các khối 128 bit được sử dụng trong quá trình mã hóa và giải mã.

Chuỗi bit với độ dài 0.

Phép nhân với trường GF(2128). Đa thức được sử dụng để biểu diễn GF(2128) là 1+ α + α2 + α7 + α128.

11.3  Yêu cầu riêng

Trong bất kỳ trường hợp nào sử dụng cơ chế này, bên gửi và bên nhận dữ liệu có áp dụng cơ chế mã hóa có sử dụng xác thực phải thỏa thuận:

a) Độ dài nhãn t bit, trong đó t phải là một bội số của 8 thỏa mãn 96 ≤ t ≤ 128 (t = 32 và t = 64 cũng được cho phép đối với các ứng dụng đặc biệt).

Mã khối được sử dụng với cơ chế này phải là mã khối 128 bit, tức là mã khối phải có n = 128.

11.4  Định nghĩa về phép nhân

Giả thiết U và V là các khối 128 bit; thì W = U.V được định nghĩa như sau, trong đó W cũng là một khối 128 bit. Lưu ý rằng, trong mô tả bên dưới đây, Vi biểu thị là bit thứ i của V, tức là V = v0||v1||...||v127. Ngoài ra, Z127 biểu thị là bit trọng số lớn nhất bên phải của Z.

a) Đặt R = 11100001||0128

b) Đặt W = 0128

c) Đặt Z = U

d) Với i = 0, 1,..., 127, thực hiện 2 bước sau:

1. Nếu vi = 1 thì đặt W = W Å Z

2. Nếu Z127 = 0 thì đặt Z = Z>>1, ngược lại đặt Z = (Z>>1)ÅR

11.5  Định nghĩa hàm G

Các thủ tục mã hóa và giải mã quyết định hàm G, nhận đầu vào là khối 128 bit và hai chuỗi bit có độ dài tùy ý, cho ra một khối 128 bit ở đầu ra. Đặt H là một khối 128 bit, W và Z là hai chuỗi bit có độ dài tùy ý (có thể trống). Giả thiết rằng k và u là các số nguyên duy nhất sao cho len(W) = 128(k-1)+u và 0 < u ≤ 128; tương tự cũng giả thiết rằng I và v là các số nguyên duy nhất sao cho len(Z) = 128(l-1)+v và 0 < v ≤ 128. Đặt W1, W2, ...., Wk là chuỗi các khối 128 bit (có thể không bao hàm Wk chứa u bit sau cùng của W) thu được qua việc phân chia W; tương tự, đặt Z1, Z2,..., Zl là chuỗi các khối 128 bit (có thể không bao hàm Zl chứa v bit sau cùng của Z) thu được qua việc phân chia Z.

Thì G(H,W,Z) là giá trị Xk+l+1, 128 bit, trong đó Xi là xác định đệ quy với i = 0, 1,..., k+l+1, như sau:

a) Đặt X0 = 0128

b) Đặt Xi = (Xi-1 Å Wi) ● H

c) Đặt Xk = (Xk-1 Å (Wk||0128-u)) ● H

d) Đặt Xi = (Xi-1 Å Zi-k) ● H

e) Đặt Xk+l = (Xk+l-1 Å (Zl||0128-v)) ● H

f) Đặt Xk+l+1 = (Xk+1 Å [#64len(W))||#64len(Z))]) ● H

1 ≤ i ≤ k-1 (bước này bỏ qua nếu k ≤ 1)

(bước này bỏ qua nếu k = 0)

k+1 ≤ i ≤ k+l-1 (bước này bỏ qua nếu I ≤ 1)

(bước này bỏ qua nếu I = 0)

 

11.6  Thủ tục mã hóa

Bên gửi thực hiện các bước sau để bảo vệ chuỗi dữ liệu D và đảm bảo tính toàn vẹn của chuỗi dữ liệu đã được xác thực bổ sung A.

a) Lựa chọn biến khởi tạo S có độ dài tùy ý. Giá trị biến S phải là riêng biệt đối với mỗi bản tin được bảo vệ và phải sẵn sàng tại bên nhận bản tin. Tuy nhiên, S là không cần thiết khi giá trị này không suy đoán ra được hoặc có mang tính bí mật.

CHÚ THÍCH Giá trị S có thể được tạo ra bằng cách sử dụng một bộ đếm được duy trì bởi bên gửi và gửi đi trong một bản gốc đính kèm với bản tin đã được bảo vệ.

b) Chia tách D thành một chuỗi các khối 128 bit: D1, D2,..., Dm. Đặt D1 chứa 128 bit đầu tiên của D, D2 chứa 128 bit kế tiếp và cứ thế tiếp tục cho đến khi Dm chứa r bit sau cùng của D, trong đó 0 < r ≤ 128. Do đó, D chứa tổng số (m-1)n+r bit.

c) Đặt H = ek(0128)

d) Nếu len(S) = 96 thì đặt Y0 = S||031||1. Ngược lại đặt Y0 =G(H,{},S)

e) Với i = 1, 2,..., m-1, thực hiện 2 bước:

1. Đặt Yi = inc(Yi-1)

2. Đặt Ci = Di Å ek(Yi)

f) Đặt Ym = inc(Ym-1)

g) Đặt Cm = Dm Å (ek(Ym))|t

h) Đặt T = (G(H, A, C1||C2||...||Cm-1||Cm) Å ek(Y0)|t [2].

Đầu ra của quá trình trên, tức bản mã hóa có sử dụng xác thực của D là chuỗi bit:

C = C1||C2||...||Cm-1||Cm||T

Hay C là một chuỗi (m-1)n+r+t, nghĩa là chuỗi C chứa nhiều hơn so với chuỗi dữ liệu gốc D t bit (mặc dù nó phải cần mang thêm n bit biến khởi tạo S và dữ liệu A đã được xác thực bổ sung có độ dài thay đổi đến bên nhận).

11.7  Thủ tục giải mã

Bên nhận thực hiện các bước sau để giải mã và xác nhận một chuỗi C đã được mã hóa có sử dụng xác thực và xác nhận dữ liệu A đã được xác thực bổ sung.

a) Nếu độ dài của C nhỏ hơn t thì dừng và đưa ra INVALID (không hợp lệ)..

b) Đặt m và r là các số nguyên duy nhất xác định sao cho C chứa một tổng (m-1)n+r+t bit, trong đó 0 < r ≤ n. Chia C thành một chuỗi các khối: C1, C2, …, Cm, T. Đặt C1 chứa n bit đầu tiên của C, C2 chứa n bit kế tiếp và cứ như thế cho đến khi Cm chứa r bit tiếp theo của C. Cuối cùng, đặt T là t bit cuối cùng của C.

c) Đặt H = ek(0128)

d) Nếu len(S) = 96 thì đặt Y0 = S||031||1. Ngược lại đặt Y0 =G(H,{},S)

e) Đặt T' = (G(H, A, C1||C2||...||Cm-1||Cm) Å ek(Y0)|t [2].

f) Đặt T' = [E0 Å E1 Å E2]|t

g) Nếu T ≠ T', dừng và đưa ra INVALID (không hợp lệ).

h) Với i = 1, 2,..., m-1, thực hiện 2 bước sau:

1. Đặt Yi = inc(Yi-1)

2. Đặt Di = Ci Å ek (Yi)

i) Đặt Ym = inc(Ym-1)

j) Đặt Dm = Cm Å (ek(Ym))|t

k) Đầu ra là D và dữ liệu đã được xác thực bổ sung A.

 

Phụ lục A

(Tham khảo)

Hướng dẫn sử dụng các cơ chế

A.1. Giới thiệu

Mục đích của phụ lục này là nhằm cung cấp hướng dẫn sử dụng các cơ chế đã được định nghĩa trong tiêu chuẩn. Việc sử dụng mỗi cơ chế đòi hỏi cần lựa chọn các tham số cụ thể cho mỗi cơ chế, lựa chọn các tham số đánh giá khuyến nghị được đưa ra trong các phần tử A.3 đến A.8. Phần còn lại là các khuyến nghị liên quan đến các yêu cầu áp dụng tất cả các cơ chế trong tiêu chuẩn này (điều 5).

Tất cả các cơ chế yêu cầu lựa chọn một mã khối từ tập hợp các mã khối đã được tiêu chuẩn hóa trong TCVN 11367-3. Độ dài khối n của mã khối nhỏ nhất là 64, khuyến nghị có thể sử dụng mã khối với n = 128. Việc sử dụng mã khối với n = 128 là yêu cầu bắt buộc đối với các cơ chế 2, 3 và 6.

Tất cả các cơ chế cũng yêu cầu bên gửi và bên nhận dữ liệu đã được bảo vệ phải chia sẻ một khóa bí mật K. Khóa bí mật này chỉ được hai bên biết và có thể có thêm bên thứ ba có sự tin tưởng của cả bên gửi và bên nhận. Có nhiều phương thức để thiết lập khóa bí mật này; tuy nhiên, khuyến nghị nên sử dụng cơ chế thiết lập khóa được trình bày chi tiết trong tiêu chuẩn ISO/IEC 11770-2 hoặc tiêu chuẩn ISO/IEC 11770-3.

Cả sáu cơ chế yêu cầu chọn lựa một độ dài nhãn. Việc lựa chọn tham số này ảnh hưởng đến mức độ đảm bảo được cung cấp để bên nhận đánh giá tính toàn vẹn và nguồn gốc của bản tin được bảo vệ. Các tùy chọn khác được trình bày trong phần Phụ lục C của TCVN 11495-1.

A.2  Lựa chọn cơ chế

Tất cả các cơ chế được trình bày trong tiêu chuẩn này được tin tưởng sẽ cung cấp mức độ bảo mật cao. Tuy nhiên, một số cơ chế phù hợp hơn những cái khác trong các ứng dụng cụ thể. Việc chọn lựa cơ chế sử dụng như thế nào, cụ thể được đưa ra trong Bảng A.2 và danh sách liệt kê dưới đây cần được chú ý xem xét.

Bảng A.1 - Thuộc tính các cơ chế

Cơ chế

1

2

3

4

5

6

Số lần thực hiện mã khối được yêu cầu để mã hóa bản tin q bit

q/n

12[q/n]

2q/n

2q/n

Phụ thuộc vào cơ chế mã hóa và MAC sử dụng

q/n

Yêu cầu cấp phép

Không

Không

Không

Phụ thuộc vào cơ chế mã hóa và MAC sử dụng

Không

Thiết kế sử dụng với các bản tin ngắn

Không

Không

Không

Không

Không

Độ dài bản tin phải được nhận diện trước khi bắt đầu mã hóa

Không

Không

Không

Không

Không

Yêu cầu giá trị khởi đầu

Không

Trước đây đã được chuẩn hóa

Không

Không

Không

a) Cơ chế 3 và 4 là các phương thức kết hợp mã hóa mã khối theo mô hình CTR (ISO/IEC 10116) với một mã xác thực bản tin.

b) Cơ chế 5 cung cấp một phương thức kết hợp các phương thức đã được chuẩn hóa nhằm mã hóa và tính toán MAC. Nếu việc thực hiện các hàm là thực sự sẵn sàng, thì cơ chế 5 có thể có một số ưu điểm trong thực thi.

c) Cơ chế 6 thích hợp cho các thực thi phần cứng lưu lượng lớn, vì nó có thể thực hiện mà không làm dừng kênh liên lạc.

A.3  Cơ chế 1 (OCB 2.0)

Cơ chế này yêu cầu sự lựa chọn tham số độ dài nhãn t (t ≤ n). Việc chọn lựa độ dài nhãn t phụ thuộc vào môi trường sử dụng cơ chế này; tuy nhiên, trừ khi vì nguyên nhân bắt buộc nào đó phải chọn lựa độ dài nhãn khác, còn lại khuyến nghị nên chọn lựa độ dài nhãn t thỏa mãn t ≥ 64.

A.4  Cơ chế 2 (Key Wrap)

Cơ chế này yêu cầu phải sử dụng mã khối có n = 128. Bắt buộc phải sử dụng một trong các mã khối được trình bày chi tiết trong tiêu chuẩn TCVN 11367-3 (điều 5).

A.5  Cơ chế 3 (CCM)

Cơ chế này yêu cầu phải sử dụng mã khối có n = 128. Bắt buộc phải sử dụng một trong các mã khối được trình bày chi tiết trong tiêu chuẩn TCVN 11367-3 (điều 5).

Cơ chế này yêu cầu sự lựa chọn tham số độ dài nhãn t (từ tập hợp {32, 48, 64, 80, 96, 112, 128}). Việc chọn lựa độ dài nhãn t phụ thuộc vào môi trường sử dụng cơ chế này; tuy nhiên, trừ khi vì một số nguyên nhân bắt buộc nào đó mà phải chọn lựa độ dài nhãn khác, còn lại khuyến nghị nên chọn lựa độ dài nhãn t thỏa mãn t ≥ 64.

Cơ chế này yêu cầu sự lựa chọn độ dài trường bản tin w (tính theo octet) (từ tập hợp {2, 3, 4, 5, 6, 7, 8}). Việc chọn lựa độ dài octet của trường độ dài bản tin w cũng phụ thuộc vào môi trường sử dụng cơ chế này. Việc chọn lựa w không ảnh hưởng đến mức an toàn mà cơ chế cung cấp. Giá trị w càng lớn càng cho phép độ dài bản tin dài hơn, mặc dù chúng cũng làm giảm đi độ dài phần còn lại của biến khởi tạo. Tuy nhiên, ngay cả khi w được chọn bằng giá trị lớn nhất có thể, tức là w = 8, 56 bit của biến khởi tạo S có thể được lựa chọn để đảm bảo rằng một biến khởi tạo S khác được sử dụng cho mỗi bản tin, phải đủ cho phần lớn, nếu không đủ cho tất cả, các ứng dụng thiết thực. Với phần lớn các ứng dụng có giá trị w = 4, tức là cho một độ dài bản tin lớn nhất 232 ≈ 4 x 109 octet, như vậy là đủ.

A.6  Cơ chế 4 (EAX)

Cơ chế này yêu cầu sự lựa chọn tham số độ dài nhãn t (t ≤ n). Việc chọn lựa độ dài nhãn t phụ thuộc vào môi trường sử dụng cơ chế này; tuy nhiên, trừ khi vì một số nguyên nhân bắt buộc nào đó mà phải chọn lựa độ dài nhãn khác, còn lại khuyến nghị nên chọn lựa độ dài nhãn t thỏa mãn t ≥ 64.

A.7  Cơ chế 5 (Encrypt-then-MAC)

Cơ chế này yêu cầu sự chọn lựa phương thức vận hành và cơ chế tính toán MAC. Độ an toàn được cung cấp qua kết quả lược đồ mã hóa có sử dụng xác thực phụ thuộc vào mức độ an toàn của hai yêu cầu trên.

Bất kể phương thức mã hóa nào được lựa chọn, sử dụng biến khởi tạo nào được lựa chọn đồng nhất ngẫu nhiên từ tập hợp biến khởi tạo có thể được khuyến nghị. Nếu không tuân theo khuyến nghị này thì kết quả của Bellare và Namprempre (tham chiếu theo ghi chú trong 10.1) sẽ không được áp dụng. Hơn nữa, trong một số trường hợp có thể có các cuộc tấn công. Trong kết nối đó cần lưu ý rằng, đối với chế độ CBC, phụ lục B.2.1 của bộ ISO/IEC 10116 đưa ra “khuyến nghị lựa chọn ngẫu nhiên biến khởi tạo đồng nhất về mặt thống kê” [2].

Việc chọn lựa kỹ thuật MAC phải xem xét đến bối cảnh sử dụng kỹ thuật mã hóa có sử dụng xác thực, cần phải chú ý theo các khuyến nghị được đưa ra trong tiêu chuẩn TCVN 11495. Đặc biệt, nếu lựa chọn một mã khối dựa trên MAC từ TCVN 11495-1, thì: (a) thuật toán MAC 1 chỉ được sử dụng nếu độ dài bản tin là cố định; (b) Cơ chế đệm 1 chỉ được sử dụng nếu độ dài bản tin là cố định [2].

A.8  Cơ chế 6 (GCM)

Cơ chế này yêu cầu phải sử dụng mã khối có n = 128. Bắt buộc phải sử dụng một trong các mã khối có đặc tính này được trình bày chi tiết trong tiêu chuẩn TCVN 11367-3 (điều 5).

Độ dài biến khởi tạo có thể thay đổi, S, phải được lựa chọn sao cho 1 ≤ len(S) ≤ 264. Yêu cầu biến khởi tạo không bao giờ được tái sử dụng lại trong toàn bộ vòng đời của khóa là rất quan trọng đối với sự an toàn của cơ chế này.

Độ dài nhãn t phải được lựa chọn ra sao cho t là một bội số của 8 thỏa mãn 96 ≤ t ≤ 128 (t = 32 và t = 64 cũng được cho phép với các ứng dụng đặc biệt, mặc dù các tùy chọn này chỉ nên được sử dụng cực kỳ thận trọng - hướng dẫn chi tiết về sử dụng các độ dài nhãn đó được đưa ra trong phần Phụ lục C của [8]).

Chuỗi dữ liệu D phải thỏa mãn điều kiện sau thì mới áp dụng cơ chế mã hóa có sử dụng xác thực này:

len(D) ≤ 239 - 256

và chuỗi dữ liệu đã được xác thực bổ sung phải thỏa mãn len(A) ≤ 264. Tổng số các khối dữ liệu và các khối dữ liệu đã được xác thực bổ sung khi áp dụng GCM với một khóa K được ấn định phải ở mức tối đa 264. Ngoài ra, tổng số viện dẫn thủ tục mã hóa đối với bất kỳ khóa nào được đưa ra phải ở mức tối đa 232, trừ khi len(S) = 96 đối với mọi trường hợp sử dụng khóa đó.

 

Phụ lục B

(Tham khảo)

Ví dụ

B.1  Giới thiệu

Phụ lục bao hàm các ví dụ về vận hành các cơ chế được trình bày chi tiết trong tiêu chuẩn này.

B.2  Cơ chế 1 (OCB 2.0)

Cho 5 ví dụ về bộ ba: bản tin (D), bản mã (C) và nhãn (T) được tạo ra bằng cách sử dụng mã khối AES, trong mỗi trường hợp sử dụng t = 128. Tất cả các ví dụ dưới đều được biểu diễn theo hệ hexa. Khóa K và biến khởi tạo S được sử dụng trong 5 ví dụ là:

K: 000102030405060708090A0B0C0D0E0F

S: 000102030405060708090A0B0C0D0E0F

 

D1: 0001020304050607

C1: C636B3A868F429BB

T1: A45F5FDEA5C088D1D7C8BE37CABC8C5C

 

D2: 000102030405060708090A0B0C0D0E0F

C2: 52E48F5D19FE2D9869F0C4A4B3D2BE57

T2: F7EE49AE7AA5B5E6645DB6B3966136F9

 

D3: 000102030405060708090A0B0C0D0E0F

1011121314151617

C3: F75D6BC8B4DC8D66B836A2B08B32A636

CC579E145D323BEB

T3: A1A50F822819D6E0A216784AC24AC84C

 

D4: 000102030405060708090A0B0C0D0E0F

101112131415161718191A1B1C1D1E1F

C4: F75D6BC8B4DC8D66B836A2B08B32A636

CEC3C555037571709DA25E1BB0421A27

T4: 09CA6C73F0B5C6C5FD587122D75F2AA3

D5: 000102030405060708090A0B0C0D0E0F

101112131415161718191A1B1C1D1E1F

2021222324252627

C5: F75D6BC8B4DC8D66B836A2B08B32A636

9F1CD3C5228D79FD6C267F5F6AA7B231

C7DFB9D59951AE9C

T5: 9DB0CDF880F73E3E10D4EB3217766688

B.3  Cơ chế 2 (Key Wrap)

Ví dụ về vận hành cơ chế này với mã khối AES được đưa ra trong tiêu chuẩn IETF RFC 3394[12].

B.4. Cơ chế 3 (CCM)

Sáu ví dụ về bộ ba bản tin (Di), bản mã (Ci) và nhãn (Ti) được tạo ra bằng cách sử dụng mã khối AES, trong mỗi trường hợp sử dụng t = 128 và w = 2 (và vì vậy S phải chứa 104 bit). Tất cả các ví dụ đều được biểu diễn theo ký hiệu hệ hexa. Khóa K và biến khởi tạo S được sử dụng trong 6 ví dụ:

K: 000102030405060708090A0B0C0D0E0F

S: 000102030405060708090A0B0C0D0E0F

 

D1: Chuỗi trống (tức là m = 0)

C1: Chuỗi trống

T1: 1CE10D3EFFD4CADBE2E44B58D60AB9EC

 

D2: 0001020304050607

C2: 29D878D1A3BE857B

T2: 9E1F336E2D9058EE57BF181EDF49395B

 

D3: 000102030405060708090A0B0C0D0E0F

C3: 29D878D1A3BE857B6FB8C8EA5950A778

T3: BD55E38C169E77135C2AE42309004C04

 

D4: 000102030405060708090A0B0C0D0E0F

1011121314151617

C4: 29D878D1A3BE857B6FB8C8EA5950A778

331FBF2CCF33986F

T4: 7E72C073D72CB70D1129C56FA0794573

 

D5: 000102030405060708090A0B0C0D0E0F

101112131415161718191A1B1C1D1E1F

C5: 29D878D1A3BE857B6FB8C8EA5950A778

331FBF2CCF33986F35E8CF121DCB30BC

T5: EF07F23F26E1DC3BEEFF83B18A9E2687

 

D6: 000102030405060708090A0B0C0D0E0F

101112131415161718191A1B1C1D1E1F

2021222324252627

C6: 29D878D1A3BE857B6FB8C8EA5950A778

331FBF2CCF33986F35E8CF121DCB30BC

5C87F59B057A40E9

T6: A0FA15E39A14811AE5AC0E7353C2BAB6

CHÚ THÍCH Các ví dụ khác về vận hành cơ chế này với mã khối AES được đưa ra trong IETF RFC 3610[13]

B.5  Cơ chế 4 (EAX)

Sáu ví dụ về bộ ba: bản tin (Di), bản mã (Ci) và nhãn (Ti) được tạo ra bằng cách sử dụng mã khối AES, trong mỗi trường hợp sử dụng t = 128. Tất cả các ví dụ dưới đều được biểu diễn theo ký hiệu hệ hexa. Khóa K và biến khởi tạo S được sử dụng trong 6 ví dụ :

K: 000102030405060708090A0B0C0D0E0F

S: 000102030405060708090A0B0C

 

D1: Chuỗi trống (tức là L = 0)

C1: Chuỗi trống

T1: 54C92FE45510D6B3B0D46EAC2FEE8E63

 

D2: 0001020304050607

C2: 1635B68B570CFC85

T2: 2734A0447531C02916CF8B9A494C3AD1

 

D3: 000102030405060708090A0B0C0D0E0F

C3: 1635B68B570CFC85529E39AC913910D7

T3: C7C5C394B685B08B3F00DCD81256F0D0

 

D4: 000102030405060708090A0B0C0D0E0F

1011121314151617

C4: 1635B68B570CFC85529E39AC913910D7

F3111631623867F1

T4: BB85D5BEEA595F573A9B4733D3E04887

 

D5: 000102030405060708090A0B0C0D0E0F

101112131415161718191A1B1C1D1E1F

C5: 1635B68B570CFC85529E39AC913910D7

F3111631623867F134E6E441904FD504

T5: C80A98AAFDFF79C23FB4D775A71C29D0

 

D6: 000102030405060708090A0B0C0D0E0F

101112131415161718191A1B1C1D1E1F

2021222324252627

C6: 1635B68B570CFC85529E39AC913910D7

F3111631623867F134E6E441904FD504

F5746D6BF189815F

T6: 1A6F75C612B703E25E47260BABCCB06E

CHÚ THÍCH Các ví dụ khác về vận hành cơ chế này với mã khối AES được đưa ra trong [3]

B.6  Cơ chế 5 (Encrypt-then-MAC)

Tham khảo trong tiêu chuẩn TCVN 11495 và ISO/IEC 10116.

B.7  Cơ chế 6 (GCM)

Hai ví dụ tiếp theo về bộ ba: bản tin (Di), bản mã (Ci) và nhãn (Ti) được tạo ra bằng cách sử dụng mã khối AES, trong mỗi trường hợp sử dụng t = 128 và dữ liệu xác thực bổ sung bao hàm chuỗi trống. Tất cả các ví dụ dưới đều được biểu diễn theo ký hiệu hệ hexa. Khóa K và biến khởi tạo S được sử dụng trong 2 ví dụ:

K: 00000000000000000000000000000000

S: 000000000000000000000000

 

D1: Chuỗi trống (tức là L = 0)

C1: Chuỗi trống

T1: 58e2fccefa7e3061367f1d57a4e7455a

 

D2: 00000000000000000000000000000000

C2: 0388dace60b6a392f328c2b971b2fe78

T2: ab6e47d42cec13bdf53a67b21257bddf

CHÚ THÍCH Các ví dụ khác về vận hành cơ chế này với mã khối AES được đưa ra trong phần tham khảo [9].

 

Phụ lục C

(Quy định)

Mô đun ASN.1

C.1  Định nghĩa định dạng

AuthenticatedEncryption {

iso(1) standard(0) authenticated-encryption(19772) asn1-module(0)

authenticated-encryption-mechanisms(0) }

DEFINITIONS EXPLICIT TAGS ::= BEGIN

-- IMPORTS None; --

OID ::= OBJECT IDENTIFIER

AuthenticatedEncryptionMechanism ALGORITHM ::= {

ae-mechanism1 |

ae-mechanism2 |

ae-mechanism3 |

ae-mechanism4 |

ae-mechanism5 |

ae-mechanism6

}

-- Synonyms --

is19772 OID ::= {iso(1) standard(0) authenticated-encryption(19772) }

mechanism OID ::= { is19772 mechanisms(1) }

ae-mechanism1 OID ::= { mechanism 1 }

ae-mechanism2 OID ::= { mechanism 2 }

ae-mechanism3 OID ::= { mechanism 3 }

ae-mechanism4 OID ::= { mechanism 4 }

ae-mechanism5 OID ::= { mechanism 5 }

ae-mechanism6 OID ::= { mechanism 6 }

END -- AuthenticatedEncryption --

C.2  Sử dụng nhận diện đối tượng tiếp sau

Mỗi một cơ chế xác thực được trình bày trong tiêu chuẩn này sử dụng thuật toán mã khối, trong trường hợp sử dụng cơ chế mã hóa có sử dụng xác thực 5, sử dụng mô hình vận hành tương tự và sử dụng thuật toán MAC. Ngoài ra, bộ nhận diện đối tượng cơ chế mã hóa có sử dụng xác thực phải đi kèm với một trong các bộ nhận diện thuật toán cơ chế mã hóa mã khối được trình bày chi tiết trong tiêu chuẩn TCVN 11367-3 và một số tham số tương đương. Đối với trường hợp cơ chế 5, có thể cũng phải cung cấp bộ nhận diện thuật toán cho lựa chọn mô hình vận hành mã khối (từ ISO/IEC 10116) và thuật toán MAC.

 

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

[1] ISO/IEC 19772:2009 Information technology - Security techniques - Authenticated encryption (Công nghệ thông tin - Các kỹ thuật an toàn - Mã hóa có sử dụng xác thực)

[2] ISO/IEC 19772:2009/Corrigendum 1(2014): Information technology - Security techniques - Authenticated encryption (ISO/IEC 19772:2009/Bản đính chính 1(2014): Công nghệ thông tin - Các kỹ thuật an toàn - Mã hóa có sử dụng xác thực)

[3] M. Bellare và C. Namprempre, 'Mã hóa có sử dụng xác thực: Mối tương quan giữa các khái niệm và các phân tích mô hình kết hợp chung'. Trong: T. Okamoto (ed.), Cải tiến về mã hóa - ASIACRYPT 2000, Hội thảo quốc tế lần thứ 6 về lý thuyết và ứng dụng Mật mã học và An toàn thông tin, Kyoto, Nhật Bản, từ 03 đến 07 tháng 12 năm 2000, Báo cáo chuyên đề. Các chú thích diễn giải trong tài liệu Khoa học máy tính 1976, Springer-Verlag (2000) Trang. 531-545 (M. Bellare and C. Namprempre, 'Authenticated encryption: Relations among notions and analysis of the generic composition paradigm'. In: T. Okamoto (ed.), Advances in Cryptology - ASIACRYPT 2000, 6th International Conference on the Theory and Application of Cryptology and Information Security, Kyoto, Japan, December 3-7, 2000, Proceedings. Lecture Notes in Computer Science 1976, Springer-Verlag (2000) pp. 531-545)

[4] M. Bellare, P. Rogaway và D. Wagner, 'Mô hình vận hành EAX'. Trong: B. K. Roy, W. Meier (eds.): Phần mềm mã hóa nhanh, Hội thảo quốc tế lần thứ 11, FSE 2004, Delhi, Ấn Độ, từ 05 - 07 tháng Hai, 2004, Tài liệu sửa đổi. Các chú thích diễn giải trong tài liệu Khoa học máy tính 3017, Springer-Verlag (2004) Trang. 389-407 (M. Bellare, P. Rogaway and D. Wagner, 'The EAX mode of operation'. In: B. K. Roy, W. Meier (eds.): Fast Software Encryption, 11th International Workshop, FSE 2004, Delhi, India, February 5-7, 2004, Revised Papers. Lecture Notes in Computer Science 3017, Springer-Verlag (2004) pp.389-407 TCVN 9801-3:2014/ ISO/IEC 27033-3:2010 Công nghệ thông tin - Kỹ thuật an toàn - An toàn mạng - Phần 3: Các kịch bản kết nối mạng tham chiếu - Nguy cơ, kỹ thuật thiết kế và các vấn đề kiểm soát

[5] TCVN 11816 (tất cả các phần) Công nghệ thông tin - Các kỹ thuật an toàn - Hàm băm

[6] TCVN 7817 (tất cả các phần) Công nghệ thông tin - Kỹ thuật an ninh - Quản lý khóa

[7] TCVN 7816 (tất cả các phần) Công nghệ thông tin - Kỹ thuật mật mã - Thuật toán mã hóa dữ liệu AES

[8] T. Krovetz và P. Rogaway, Thuật toán mã hóa có sử dụng xác thực OCB, Dự thảo IETF draft-krovetz-ocb-00.txt, Tháng 3 năm 2005(2) (T. Krovetz and P. Rogaway, The OCB Authenticated-Encryption Algorithm, IETF draft draft-krovetz-ocb-00.txt, March 2005(2))

[9] Viện Tiêu chuẩn và Công nghệ Quốc gia, Tài liệu chi tiết kỹ thuật NIST 800-38D: Khuyến nghị về mô hình vận hành mã khối: Mô hình Galois/Counter (GCM) và GMAC. Tháng 11 năm 2007 (National Institute of Standards and Technology, NIST Special Publication 800-38D: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC. November 2007)

[10] Viện Tiêu chuẩn và Công nghệ Quốc gia, Đặc tả chi tiết khóa Wrap AES. NIST, tháng 11 năm 2001 (National Institute of Standards and Technology, AES Key Wrap Specification. NIST, November 2001)

[11] Viện Tiêu chuẩn và Công nghệ Quốc gia, Tài liệu chi tiết kỹ thuật NIST 800-38C: Khuyến nghị về mô hình vận hành mã khối: Mô hình CCM cho xác thực và bảo mật. Tháng 5 năm 2004 (National Institute of Standards and Technology, NIST Special Publication 800-38C: Recommendation for Block Cipher Modes of Operation: The CCM Mode For Authentication and Confidentiality. May 2004)

[12] J. Schaad và R. Housley, RFC 3394: Chuẩn mã hóa tiên tiến (AES): Thuật toán khóa Wrap. IETF, tháng 9 năm 2002 (J. Schaad and R. Housley, RFC 3394: Advanced Encryption Standard (AES): Key Wrap Algorithm. IETF, September 2002)

[13] D. Whiting, R. Housley và N. Ferguson, RFC 3610: Bộ đếm với CBC-MAC (CCM). IETF, tháng 9 năm 2003 (D. Whiting, R. Housley and N. Ferguson, RFC 3610: Counter with CBC-MAC (CCM). IETF, September 2003)

[14] TCVN 11495 (Tất cả các phần) Công nghệ thông tin - Các kỹ thuật an toàn - Mã xác thực thông điệp (MAC).

 

MỤC LỤC

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

5  Yêu cầu

6  Cơ chế mã hóa có sử dụng xác thực 1 (OCB 2.0)

6.1  Giới thiệu

6.2  Ký hiệu riêng

6.3  Yêu cầu riêng

6.4  Định nghĩa hàm M2

6.5  Định nghĩa hàm M3

6.6  Định nghĩa hàm J

6.7  Thủ tục mã hóa

6.8  Thủ tục giải mã

7  Cơ chế mã hóa có sử dụng xác thực 2 (Key Wrap)

7.1  Giới thiệu

7.2  Ký hiệu riêng

7.3  Yêu cầu riêng

7.4  Thủ tục mã hóa

7.5  Thủ tục giải mã

8  Cơ chế mã hóa có sử dụng xác thực 3 (CCM)

8.1  Giới thiệu

8.2  Ký hiệu riêng

8.3  Yêu cầu riêng

8.4  Thủ tục mã hóa

8.5  Thủ tục giải mã

9  Cơ chế mã hóa có sử dụng xác thực 4 (EAX)

9.1  Giới thiệu

9.2  Ký hiệu riêng

9.3  Yêu cầu riêng

9.4  Định nghĩa hàm M

9.5  Thủ tục giải mã

9.6  Thủ tục giải mã

10  Cơ chế mã hóa có sử dụng xác thực 5 (Mã hóa sau đó lấy MAC - Encrypt-then-MAC)

10.1  Giới thiệu

10.2  Ký hiệu riêng

10.3  Yêu cầu riêng

10.4  Thủ tục mã hóa

10.5  Thủ tục giải mã

11  Cơ chế mã hóa có sử dụng xác thực 6 (GCM)

11.1  Giới thiệu

11.2  Ký hiệu riêng

11.3  Yêu cầu riêng

11.4  Định nghĩa về phép nhân

11.5  Định nghĩa hàm G

11.6  Thủ tục mã hóa

11.7  Thủ tục giải mã

Phụ lục A  (Tham khảo) Hướng dẫn sử dụng các cơ chế

Phụ lục B  (Tham khảo) Ví dụ

Phụ lục C  (Quy định) Mô đun ASN.1

Tài liệu tham khảo

Click Tải về để xem toàn văn Tiêu chuẩn Việt Nam nói trên.

Để được giải đáp thắc mắc, vui lòng gọi

19006192

Theo dõi LuatVietnam trên YouTube

TẠI ĐÂY

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

×
Vui lòng đợi