

CÁC CHẾ ĐỘ HOẠT ĐỘNG CỦA MÃ KHỐI
(TCVN 12213:2018 (ISO/IEC 10116)
Công nghệ thông tin – Các kỹ thuật an toàn – Chế độ hoạt động của mã khối n-bit
Information technology -- Security techniques -- Modes of operation for an n-bit block cipher
TCVN 12213 : 2018 hoàn toàn tương đương với ISO/IEC 10116 : 2017.
TCVN 12213: 2018 do Cục Quản lý mật mã dân sự và Kiểm định sản phẩm mật mã biên soạn, Ban Cơ yếu Chính phủ đề 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ố.
Tiêu chuẩn này quy định các chế độ hoạt động và đưa ra các khuyến nghị để lựa chọn giá trị của các tham số (thích hợp); thiết lập 05 chế độ hoạt động cho các ứng dụng của mã khối n-bit (ví dụ như bảo vệ dữ liệu trên đường truyền, hoặc dữ liệu lưu trữ). Các chế độ được xác định này chỉ cung cấp tính bí mật dữ liệu, còn việc bảo vệ tính toàn vẹn dữ liệu không thuộc phạm vi của tiêu chuẩn này. Ngoài ra hầu hết các chế độ không bảo vệ tính bí mật của thông tin chiều dài thông báo. Tất cả các chế độ hoạt động của mã khối n-bit được quy định trong tiêu chuẩn này đều phải tuân theo các yêu cầu được đưa ra tại Điều 5, TCVN 11213:2018.
Chế độ sách mã điện tử ECB
Đây là chế độ đơn giản nhất trong 5 chế độ hoạt động của mã khối. Chế độ này được sử dụng với phương pháp đệm đã được thỏa thuận từ trước. Nếu độ dài bit của khối bản rõ có thể không là bội của khối mã khối độ dài n.
Các biến được sử dụng bởi chế độ mã hóa ECB là:
a) Các biến đầu vào
1) Một xâu các bit bản rõ P.
2) Khóa K.
b) Các biến đầu ra là xâu các bit mã C
Mã hóa:
Ci =eK(Pi) với i=1,2,…,q.
Giải mã:
Pi =dK(Ci) với i=1,2,…,q.
Minh họa hoạt động mã hóa và giải mã của ECB
Chế độ móc xích khối mã (CBC)
Mã hóa và giải mã trong chế độ CBC sử dụng phương pháp đệm đã được thỏa thuận, nếu độ dài bit của bản rõ có thể không phải là bội của khối mã khối độ dài n. Nếu không có phương pháp đệm nào được thỏa thuận khi đó bản rõ là toàn bộ số lượng của các khối hoàn chỉnh trừ khi nó được thỏa thuận dùng phương pháp cụ thể. Chế độ CBC được xác định bởi một tham số trung gian m>0, số lượng các tiến trình mã hóa độc lập có thể được thực hiện song song.
Các biến được sử dụng cho việc mã hóa bởi chế độ CBC:
a) Các biến đầu vào
1) Một xâu các bit bản rõ P1,P2,…,Pq.
2) Khóa K.
3) Dãy m giá trị khởi tạo có độ dài n bit SV1,SV,…,SVm mỗi biến n-bit.
b) Các biến đầu ra là một xâu các bit bản mã C.
Mã hóa
Ci = eK(Pi⊕SVi), 1≤i≤min(m,q)
Nếu q>m, các dãy con khối bản rõ theo sau được mã hóa như sau:
Ci=eK(Pi⊕Ci-m), m+1≤i≤q
Giải mã
Pi=dK(Ci)⊕SVi, 1≤i≤min(m,q)
Nếu q>m, các dãy con khối bản mã theo sau được mã hóa như sau:
Pi=dK(Ci)⊕Ci-m, m+1≤i≤q
Quá trình mã hóa và giải mã được minh họa như sau:
1 Mã hóa
2 Giải mã
3 Thuật toán mã hóa
4 Thuật toán giải mã
a) Với m =1
b) Với m ≠1
trong đó:
1 - Thuật toán mã hóa
2 - Thuật toán giải mã
3 - Mã hóa
4 - Giải mã
Chế độ phản hồi bản mã (CFB)
Mã hóa và giải mã trong chế độ CFB sử dụng phương pháp đệm đã được thỏa thuận. Nếu độ dài bit của bản rõ có thể không phải là bội của tham số j. Nếu không có phương pháp đệm nào được thỏa thuận khi đó bản rõ là toàn bộ số lượng của các khối j bit trừ phương pháp đã được quy định.
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
- Kích thước của biến phản hồi, k, trong đó 1 ≤ k ≤ n
- Kích thước của biến bản rõ, j, trong đó 1 ≤ j ≤ k
Các biến được sử dụng trong chế độ CFB:
a) Các biến đầu vào
1) Một xâu các bit bản rõ P .
2) Khóa K.
3) Giá trị khởi tạo SV độ dài r bit. Tham khảo phụ lục B các hướng dẫn an toàn liên quan đến giá trị của SV.
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.
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.
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à xâu bit bản mã C.
Mã hóa
a) Xi=n~FBi (Lựa chọn n bit trái nhất của FB).
b) Yi=eK(Xi) (Sử dụng mã khối).
c) Ei=j~Yi (Lựa chọn j bit trái nhất 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).
Giải mã
a) Xi=n~FBi (Lựa chọn n bit trái nhất của FB).
b) Yi=eK(Xi) (Sử dụng mã khối).
c) Ei=j~Yi (Lựa chọn j bit trái nhất của Yi).
d) Pi=Ci⊕Ei (Tạo biến bản rõ).
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).
Minh họa
trong đó:
1 - Mã hóa
2 - Giải mã
3 - Thuật toán mã hóa
Hình C.3 - Chế độ phản hồi bản mã (CFB)
Chế độ phản hồi đầu ra (OFB)
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ế độ mã hóa của OFB là:
a) Các biến đầu vào
1) Một xâu các bit bản rõ P .
2) Một Khóa K.
3) Giá trị khởi tạo SV độ dài n bit. Tham khảo phụ lục B các hướng dẫn an toàn liên quan đến giá trị của SV.
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.
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à xâu bit bản mã C.
Mã hóa
Phép mã hóa thực hiện theo 4 bước sau:
a) Yi=eK(Xi) (Sử dụng mã khối).
b) Ei=j~Yi (Chọn j bit trái nhất).
c) Ci=Pi⊕Ei (Tạo biến bản mã).
d) Xi+1=Yi (Phép phản hồi).
Giải mã
Phép giải mã thực hiện theo 4 bước sau:
a) Yi=eK(Xi) (Sử dụng mã khối).
b) Ei=j~Yj (Chọn j bit trái nhất).
c) Pi=Ci⊕Ei (Tạo biến bản mã).
d) Xi+1=Yi (Phép phản hồi).
Minh họa
trong đó:
1 - Mã hóa
2 - Giải mã
3 - Thuật toán mã hóa
Hình C.4 - Chế độ phản hồi đầu ra (OFB)
Chế độ bộ đếm (CTR)
Chế độ CTR được xác định bằng một tham số j, kích thước biến bản rõ, 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) Một xâu các bit bản rõ P .
2) Một Khóa K.
3) Giá trị khởi tạo SV độ dài n bit. Tham khảo phụ lục B các hướng dẫn an toàn liên quan đến giá trị của SV.
b) Các kết quả trung gian:
1) Dãy q khối đầu vào của mã khối có độ dài n bit CTR1, CTR2,…, CTRq.
2) Dãy q khối đầu ra của mã khối có độ dài n bit Y1,Y2,…,Yq.
3) Dãy q biến có độ dài j bit E1,E2,…,Eq.
c) Các biến đầu ra tức là một dãy q biến bản mã C1, C2,…,Cq, mỗi biến có độ dài j bit.
Mã hóa
Các phép toán để mã hóa mỗi biến bản rõ theo 4 bước sau:
a) Yi=eK(CTRi) (Sử dụng mã khối).
b) Ei=j~Yi (Chọn j bit trái nhất 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)
Giải mã
Các phép toán để giải mã mỗi biến bản rõ theo 4 bước sau:
a) Yi=eK(CTRi) (Sử dụng mã khối).
b) Ei=j~Yi (Chọn j bit trái nhất của Yi).
c) Pi=Ci⊕Ei (Tạo ra biến bản rõ).
d) CTRi+1=(CTRi+1) mod 2n (Tạo ra giá trị đếm mới CTR).
Minh họa
trong đó:
1 - Mã hóa
2 - Giải mã
3 - Thuật toán mã hóa
Hình C.5 - Chế độ bộ đếm (CTR)
TS. Hồ Văn Hương, Cục QLMMDS & KĐSPMM