ISO/IEC 10116:2017
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
Lời nói đầu
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ố.
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
Tiêu chuẩn này 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. 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.
CHÚ THÍCH 1 Các phương thức bảo vệ tính toàn vẹn dữ liệu sử dụng mã khối được cung cấp trong ISO/IEC 9797-1.
CHÚ THÍCH 2 Các phương pháp cùng bảo vệ tính bí mật và toàn vẹn dữ liệu được cung cấp trong ISO/IEC 19772.
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).
CHÚ THÍCH 3 Các chế độ hoạt động được đặc tả trong tiêu chuẩn này đã được gắn định danh đối tượng theo tiêu chuẩn ISO/IEC 9834. Danh sách các định danh đối tượng được đưa ra trong Phụ lục A. Trong các ứng dụng, trong đó các định danh đối tượng được sử dụng, các định danh đối tượng được quy định trong Phụ lục A được sử dụng ưu tiên hơn bất kỳ định danh đối tượng nào khác mà có thể tồn tại cho chế độ có liên quan.
CHÚ THÍCH 4 Phụ lục B chứa các chú giải thuộc tỉnh của mỗi chế độ và các hướng dẫn an toàn quan trọng.
Những tài liệu được đề cập dưới đây, theo một cách nào đó là một vài phần hoặc là toàn bộ nội dung của nó tạo thành các yêu cầu của tiêu chuẩn này. Đố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 11367-3 (ISO/IEC 18033-3) 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 29192-2, Công nghệ thông tin - Các kỹ thuật an toàn - Mật mã hạng nhẹ - Phần 2: Mã khối.
Với mục đích của tiêu chuẩn này, các thuật ngữ và định nghĩa sau được áp dụng.
3.1
Mã khối (block cipher)
Hệ mật đối xứng với các thuộc tính 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ã.
[Nguồn: TCVN 11367-1:2016 (ISO/IEC 18033-1:2015), 2.8]
3.2
Bản mã (ciphertext)
Dữ liệu đã được biến đổi để giấu thông tin trong đó.
[Nguồn: TCVN 11367-1:2016 (ISO/IEC 18033-1), 2.10]
3.3
Bộ đếm (counter)
Mảng các bit có chiều dài n-bit (trong đó n là kích thước của mã khối) được sử dụng trong Chế độ bộ đếm;
CHÚ THÍCH 1 với đầu vào giá trị được biểu diễn theo nhị phân của một số nguyên, tăng thêm 1 (mô-đun 2n) sau mỗi khối bản rõ được xử lý.
3.4
Đồng bộ hóa mật mã (cryptographic synchronization)
Sự kết hợp của quá trình mã hóa/giải mã.
3.5
Giải mã (decryption)
Phép toán ngược với phép mã hóa tương ứng.
[Nguồn: TCVN 11367-1:2016 (ISO/IEC 18033-1), 2.13]
3.6
Mã hóa (encryption)
Phép biến đổi (khả nghịch) dữ liệu bởi thuật toán mật mã để tạo ra bản mã, tức là giấu nội dung thông tin của dữ liệu.
[Nguồn: TCVN 11367-1:2016 (ISO/IEC 18033-1), 2.15]
3.7
Bộ đệm phản hồi (feedback buffer - FB)
Biến được sử dụng để lưu trữ dữ liệu đầu vào cho quá trình mã hóa.
CHÚ THÍCH 1 Với đầu vào: Tại điểm đầu FB có giá trị của SV.
3.8
Khóa (key)
Dãy các kí tự điều khiển sự vận hành của các thuật toán mật mã (ví dụ, mã hóa và giải mã).
[Nguồn: TCVN 11367-1:2016 (ISO/IEC 18033-1), 2.21]
3.9
Mã khối n bit (n-bit block cipher)
Mã khối với tính chất là các khối của bản rõ và bản mã đều có độ dài n bit.
[Nguồn: TCVN 11367-1:2016 (ISO/IEC 18033-1), 2.23]
3.10
Đệm (Padding)
Các bit bổ sung vào một xâu dữ liệu.
3.11
Bản rõ (plaintext)
Thông tin chưa được mã hóa.
[Nguồn: TCVN 11367-1:2016 (ISO/IEC 18033-1), 2.24]
3.12
Biến khởi tạo (starting variable - SV)
Biến có thể được dẫn xuất từ một số giá trị khởi tạo và được sử dụng để xác định điểm bắt đầu của các chế độ hoạt động.
CHÚ THÍCH 1 với đầu vào: Biến khởi tạo (SV) được sử dụng trong tài liệu này giống với giá trị khởi tạo hoặc véc tơ khởi tạo (IV) được sử dụng trong một vài tiêu chuẩn quốc tế. Nếu biến khởi tạo được gọi đến trong tiêu chuẩn này được dẫn xuất từ một vài giá trị khởi tạo, khi đó nó cần được mô tả trong mọi ứng dụng của các chế độ hoạt động. Một phương pháp để dẫn xuất biến khởi tạo từ giá trị khởi tạo không được định nghĩa trong tiêu chuẩn này.
4 Ký hiệu, chữ viết tắt và chú thích
4.1 Ký hiệu và chữ viết tắt
C |
Khối mã. |
CTR |
Giá trị đếm. |
dK |
Hàm giải mã của mã khối với khóa K. Quan hệ giải mã được xác định như sau: P = dK(C) Trong đó: - P khối bản rõ - C khối bản mã - K khóa |
E |
Biến trung gian. |
eK |
Hàm mã hóa của mã khối với khóa K. Quan hệ mã hóa được xác định như sau: C = eK(P) Trong đó: - P khối bản rõ - C khối bản mã - K khóa |
F |
Biến trung gian. |
FB |
Bộ đệm phản hồi. |
i |
Biến lặp. |
j |
Kích thước của biến bản rõ/bản mã. |
K |
Khóa mã. |
n |
Chiều dài tính bằng bit của khối bản rõ/bản mã của mã khối. |
m |
Số khối bản mã được lưu trữ. |
P |
Khối bản rõ. |
q |
Số lượng các biến bản rõ/bản mã. |
r |
Kích thước của bộ đệm phản hồi. |
SV |
Biến khởi tạo.(xem Mệnh đề 5) |
X |
Khối đầu vào mã khối. |
Y |
Khối đầu ra mã khối. |
| |
Phép ghép các xâu bit. |
(a1, a2, … , am) |
Mảng một chiều của các bit. Ví dụ : A =(a1,a2,...,am) và B =(b1, b2, … , bm) là hai mảng m-bit được đánh số từ 1 đến m. Tất cả các mảng bit được ghi với chỉ số 1 ở vị trí trái nhất. Khi biểu diễn một mảng bit như một số nguyên, bit trái nhất là bit có trọng số cao nhất. |
|
Toán hạng cộng modulo 2, cũng được biết đến như một hàm or, được ký hiệu bởi . Phép toán này áp dụng đối với mảng A và mảng B có cùng độ dài và được xác định như sau: AB = (a1b1, a2b2,…, ambm) |
4.2 Chú thích
a mod n |
Với các số nguyên a và n, a mod n kí hiệu phần dư (không âm) trong phép chia n cho a. Một cách tương đương là nếu b = a mod n thì b là số nguyên duy nhất thỏa mãn các điều kiện sau: - 0 ≤ b < n, và - (b - a) là bội số nguyên của n |
|
~ |
Toán hạng lựa chọn j bit trái nhất của mảng A =(a1,a2,...,am) để sinh ra một mảng j bit được viết như sau: (j ~ A) = (a1,a2,...,aj) Toán hạng lựa chọn j bit phải nhất của mảng A =(a1,a2,...,am) để sinh ra một mảng j bit được viết như sau: (A ~ j) = (am-j+1,am-j+2,…,am) với 1 ≤ j ≤ m |
|
1(t) |
Xâu t-bit với tất cả các bit có giá trị là 1. |
|
St |
Cho trước biến X m bit và biến F t bit với 1 ≤ t ≤ m, kết quả của hàm dịch St(X|F) để tạo ra biến m-bit |
|
St(X|F) = (xt+1,xt+2, ...xm, f1, f2, … , ft) |
(t < m) |
|
St(X|F) = (f1, f2, … , ft) |
(t = m) |
|
Kết quả là dịch các bit của mảng X sang trái t vị trí loại bỏ x1,x, ... , xt và đặt mảng F vào t vị trí phải nhất của X. Khi t = m thì thay thế hoàn toàn X bởi F. |
Với tất cả các chế độ được mô tả, bản mã được lựa chọn từ TCVN 11367-3 (ISO/IEC 18033-3) và/hoặc ISO/IEC 29192-2.
Với chế độ sách mã điện tử giá trị các tham số không được thêm vào mà cần được lựa chọn. Với chế độ hoạt động móc xích khối mã (CBC) (xem điều 7), sẽ phải chọn một tham số m. Đối với chế độ hoạt động phản hồi bản mã (CFB) (xem điều 8), cần phải chọn bộ 3 tham số r, j và k. Đối với chế độ phản hồi đầu ra (OFB) (xem điều 9) và chế độ bộ đếm (CTR) (xem điều 10), cần phải chọn tham số j. Khi một trong những chế độ này được sử dụng, cùng một (nhiều) giá trị tham số tương tự được lựa chọn và được sử dụng bởi tất cả các bên giao tiếp. Các tham số này không cần phải giữ bí mật.
Tất cả các chế độ hoạt động được đặc tả trong tiêu chuẩn này yêu cầu các bên mã hóa và giải mã xâu dữ liệu phải chia sẻ khóa bí mật K sử dụng cho mã khối. Tất cả các chế độ hoạt động ngoài chế độ sách mã điện tử (ECB) cũng yêu cầu các bên chia sẻ một giá trị khởi tạo SV, trong đó độ dài của SV phụ thuộc vào chế độ sử dụng của mã khối. Giá trị của biến khởi tạo thường khác nhau đối với mỗi xâu dữ liệu được mã hóa sử dụng một khóa cụ thể. Cách các khóa và các giá trị khởi tạo được quản lý và phân phối nằm ngoài phạm vi áp dụng của tiêu chuẩn này. Tuy nhiên, hướng dẫn an toàn quan trọng có liên quan đến biến khởi tạo được cung cấp trong Phụ lục B.
Bên mã hóa và tất cả bên giải mã tiềm năng thỏa thuận một phương pháp đệm ngoại trừ thông điệp được mã hóa luôn là bội của các bit độ dài m (m = n trong chế độ ECB và CBC, m = j trong chế độ CFB, OFB và CTR) hoặc ngoại trừ chế độ không yêu cầu đệm. Vì vậy, phương pháp đệm nhận một xâu bit P có độ dài tùy ý làm đầu vào (không rỗng) và đưa ra đầu ra là một chuỗi khối bản rõ m-bit. Ngoại trừ trường hợp độ dài thông điệp rõ được cố định hoặc ngược lại được xác định bởi ứng dụng khi đó phương pháp đệm có tính chất là không có 2 xâu bit khác biệt đầu vào có thể đưa ra cùng một chuỗi khối m-bit, nghĩa là các xâu dữ liệu sau khi được đệm luôn bảo đảm tính duy nhất.
Tiêu chuẩn này khuyến nghị các phương pháp đệm sau: xâu bit P (không rỗng) được đệm phải với một đơn bit 1. Xâu kết quả khi đó được đệm phải với một vài bit 0 (có thể rỗng) là cần thiết để nhận được toàn bộ độ dài của một xâu (theo bit) là một số nguyên dương bội của m.
CHÚ THÍCH Phương pháp đệm này giống với phương pháp đệm 2 trong cả hai tiêu chuẩn ISO/IEC 9797-1 và TCVN 11816-1:2017 (ISO/IEC 10118-1) ngoại trừ việc chỉ xem xét các xâu bit không rỗng.
6 Chế độ sách mã điện tử (ECB)
6.1 Sơ bộ
Chế độ ECB được sử dụng với phương pháp đệm đã thỏa thuận. 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
6.2 Mã hóa
Nếu một phương pháp đệm được sử dụng, khi đó trước hết đệm xâu dữ liệu P để nhận được một dãy q khối bản rõ P1, P2, ..., Pq, mỗi khối có độ dài n-bit. Nếu không chỉ đơn giản là chia xâu dữ liệu P thành một dãy q khối bản rõ P1, P2,..., Pq mỗi khối có độ dài n-bit.
Mã hóa của chế độ ECB như sau:
Ci = eK(Pi) với i = 1,2,…, q
6.3 Giải mã
Giải mã của chế độ ECB như sau:
Pi = dK(Ci) với i = 1,2,…, q
Nếu một phương pháp đệm không được sử dụng, khi đó P bằng với phép ghép của P1, P2,..., Pq. Nếu một phương pháp đệm được sử dụng, áp dụng phép nghịch đảo của phương pháp đệm đã được thỏa thuận với chuỗi q khối bản rõ P1, P2,..., Pq để nhận được xâu bản rõ đã giải mã P.
CHÚ THÍCH Việc loại bỏ đệm duy nhất được đảm bảo do hạn chế trong việc lựa chọn phương pháp đệm được đưa ra trong Điều 5.
7 Chế độ móc xích khối mã (CBC)
7.1 Sơ bộ
Mã hóa và giải mã trong chế độ CBC được xác định trong 7.2 và 7.3 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 mô tả trong 7.4.
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.
CHÚ THÍCH 1 Giá trị của m có thể nhỏ (thông thường m = 1) và hiếm khi vượt quá 1024.
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õ P.
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. Hướng dẫn an toàn cho các giá trị của biến khởi tạo được đề cập trong phụ lục B.
CHÚ THÍCH 2 Nếu m = 1 không có phương pháp đệm được thêm, sau đó chế độ này tương thích với chế độ CBC được mô tả trong ấn bản lần hai của tiêu chuẩn này.
b) Các biến đầu ra là một xâu các bit bản mã C.
7.2 Mã hóa
Nếu một phương pháp đệm được sử dụng, khi đó trước hết đệm xâu dữ liệu P để nhận được một dãy q khối bản rõ P1,P2,…, Pq, mỗi khối có độ dài n-bit. Nếu không chỉ đơn giản là chia xâu dữ liệu P thành một dãy q khối bản rõ P1,P2, ..., Pq mỗi khối có độ dài n-bit.
Mã hóa của chế độ CBC như sau:
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
Tại bất kỳ thời điểm nào trong quá trình tính toán, giá trị của m khối bản mã gần nhất cần được lưu trữ. Ví dụ thường sử dụng “bộ đệm phản hồi” FB (xem hình C.2).
Quá trình này được thể hiện ở bên trái hình C.2.
7.3 Giải mã
Giải mã của chế độ CBC như sau:
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
Tại bất kỳ thời điểm nào trong quá trình tính toán, giá trị của m khối bản mã gần nhất cần được lưu trữ. Ví dụ thường sử dụng "bộ đệm phản hồi" FB (xem hình C.2).
Quá trình này được thể hiện ở bên phải hình C.2.
Nếu một phương pháp đệm không được sử dụng, khi đó P bằng với phép ghép của P1, P2, …, Pq
Nếu một phương pháp đệm được sử dụng, áp dụng phép nghịch đảo của phương pháp đệm đã được thỏa thuận với chuỗi q khối bản rõ P1, P2, …, Pq để nhận được xâu bản rõ đã giải mã P.
CHÚ THÍCH Việc loại bỏ đệm duy nhất được đảm bảo do hạn chế trong việc lựa chọn phương pháp đệm được đưa ra trong Điều 5.
7.4 Vô hiệu hóa việc mở rộng bản mã
7.4.1 Tổng quan
Để tránh việc mở rộng bản mã do đệm có thể thực hiện phương pháp CTS (ciphertext sealing). Với phương pháp này, nếu khối bản rõ cuối cùng là một phần, khi đó một vài bit 0 được thêm vào để hoàn chỉnh nó (nghĩa là phương pháp đệm 1 trong ISO/IEC 9797-1:2011) và kết quả bản rõ được mã như trên. Bất cứ mở rộng nào do đệm bit gây ra đều tránh được vì các bit gần cuối của khối bản mã đều được loại bỏ vì chúng có thể được khôi phục từ bản mã của khối mã cuối cùng.
Trường hợp đặc biệt, nếu m = 1 (không có trung gian) và bản rõ đã được đệm thì p bit phải nhất của khối bản rõ Pq là các bit đệm 0. Khi đó, p bit phải nhất của khối bản rõ gần cuối cùng Cq-1 không được truyền đi nhưng có thể khôi phục như p bit phải nhất của dK(Cq).
CHÚ THÍCH Chế độ CTS không được áp dụng nếu số lượng các bit của bản rõ nhỏ hơn n.
7.4.2 Ba biến thể “ciphertext stealing” của CBC
7.4.2.1 Sơ bộ
Tiêu chuẩn này định nghĩa ba biến thể “ciphertext stealing" (CBC_CS) của chế độ CBC. Cả ba là các biến thể của chế độ mã hóa và giải mã cơ bản CBC được định nghĩa ở trên sử dụng phương pháp đệm 1 trong tiêu chuẩn ISO/IEC 9797-1:2011 [1], Các biến thể CBC_CS này chỉ khác nhau với chế độ CBC cơ bản trong cách hai khối mã Cq-m và Cq được thực hiện sau giải mã và trước mã hóa.
Mặc dù, biến thể CBC_CS có thể được sử dụng khi tham số trung giam m>1 như chú thích trong 7.1, cụ thể, m = 1 trong trường hợp 2 khối bản mã Cq-m và Cq là hai khối bản mã cuối cùng Cq-1 và Cq. Mô tả dưới đây chỉ áp dụng cho trường hợp m = 1 nhưng có thể ngoại suy với trường hợp m > 1.
7.4.2.2 Xử lý sau mã hóa CBC (rút gọn bản mã)
Sau khi mã hóa bản mã C1 | C2| ... |Cq-1|Cq được rút gọn (rút gọn độ dài) bởi số lượng các bit đệm p (0 ≤ p < n). Nếu không đệm (p = 0) khi đó việc rút gọn không xảy ra nhưng trường hợp đặc biệt dưới đây biến thứ ba CBC_CS vẫn sửa đổi bản mã bằng cách hoán đổi hai khối bản mã cuối cùng Cq-1 và Cq
Với tất cả các biến thể CBC_CS xác định, Cq-= (n - p) ~ Cq-1. Ba biến thể CBC_CS được xác định như sau:
- Biến thể CBC_CS thứ nhất, hai khối bản mã cuối cùng Cq-1|Cq được thay thế bởi Cq-|Cq.
- Biến thể CBC_CS thứ hai, hai khối bản mã cuối cùng Cq-1|Cq được thay thế bởi Cq | Cq- chỉ khi bản rõ được đệm (ngược lại sẽ không thay đổi)
- Biến thể CBC_CS thứ ba, hai khối bản mã cuối cùng Cq-1|Cq luôn luôn thay thế bởi Cq | Cq-
7.4.2.3 Tiền xử lý giải mã CBC (khai triển bản mã)
Trước khi giải mã, bản mã rút gọn nhận được được khai triển thành toàn bộ các khối n-bit.
Giả sử số lượng các bit của bản mã nhận được là (q - 1)n + d trong đó 0 ≤ d < n và nếu d > 0 thì giả sử p = n - d (trong trường hợp p ≠ 0).
Nếu q >1 khi đó Cq- = (n - p) ~ Cq-1
- Với biến thể thứ nhất CBC_CS
- Nếu d = 0 thì bản mã nhận được là các khối n bit và tiền xử lý không được yêu cầu.
- Nếu d >0 thì bản mã nhận được không phải là các khối n bit và tiền xử lý được yêu cầu. Trong trường hợp này n + d bit phải nhất của bản mã nhận được được phân tích thành Cq-|Cq trong đó Cq- là một khối d-bit và Cq là một khối n-bit và khối n-bit Cq-1 được tạo thành là Cq-|(dK(Cq) ~ p).
- Với biến thể thứ hai CBC_CS
- Nếu d = 0 thì bản mã nhận được là toàn bộ các khối n bit và tiền xử lý không được yêu cầu.
- Nếu d >0 thì bản mã nhận được không phải là các khối n bit và tiền xử lý được yêu cầu. Trong trường hợp này n + d bit phải nhất của bản mã nhận được được phân tích thành Cq | Cq- trong đó Cq- là một khối d-bit và Cq là một khối n-bit và khối n-bit Cq-1 được tạo thành là Cq-|(dK(Cq) ~ p).
- Với biến thể thứ ba CBC_CS, tiền xử lý luôn được yêu cầu
- Nếu d = 0 thì bản mã nhận được là toàn bộ các khối n bit, 2n bit của bản mã nhận được được phân tích thành Cq | Cq-1. Vì vậy tiền xử lý yêu cầu hai khối phải nhất được hoán đổi.
- Nếu d >0 thì bản mã nhận được không phải là các khối n bit và tiền xử lý được yêu cầu. Trong trường hợp này n + d bit phải nhất của bản mã nhận được được phân tích thành Cq | Cq- trong đó Cq- là một khối d-bit và Cq là một khối n-bit và khối n-bit Cq-1 được tạo thành là Cq-|(dK(Cq) ~ p).
Mã hóa CBC khi mã, bản mã C1|C2| ... |Cq-1| Cq và nếu d >0 thì xóa bỏ p bit đệm phải nhất trong khối bản rõ kết quả.
CHÚ THÍCH NIST/SP 800-38A định nghĩa ba biến giống nhau của “ciphertext stealing” (các biến thể chỉ khác nhau trong trật tự của các bit bản mã)
8 Chế độ phản hồi bản mã (CFB)
8.1 Sơ bộ
Mã hóa và giải mã trong chế độ CFB được xác định trong 8.2 và 8.3 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 sử dụng mô tả trong 8.4.
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
CHÚ THÍCH
a) r - k không bị ràng buộc bởi n bằng bất kỳ cách nào, tức là r - k có thể nhỏ hơn, bằng hoặc lớn hơn n. Hình C.3 chỉ ra trường hợp đặc biệt khi r - k > n.
b) Nếu r = n thì chế độ này tương thích với phiên bản chế độ CFB được mô tả trong ấn bản lần 1 của tiêu chuẩn này.
c) Cận trên r, tức là r ≤ 1024n được chọn vì nó cung cấp một cận trên thực tế dựa trên số lượng bộ vi xử lý phần cứng.
Khuyến cáo trong chế độ CFB cần sử dụng giá trị j và k bằng nhau (xem Điều B.4.1).
Chế độ CFB sẽ được sử dụng với một phương thức đệm đã được thỏa thuận nếu chiều dài tính theo bit của bản rõ không phải là bội số của tham số j.
Số của j-bit khối bản rõ (sau khi thêm nếu một phương thức đệm được sử dụng) là q.
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.
8.2 Mã hóa
Nếu một phương pháp đệm được sử dụng, khi đó trước hết đệm xâu dữ liệu P để nhận được một dãy q khối bản rõ P1, P2, ... , Pq, mỗi khối có độ dài j bit. Nếu không chỉ đơn giản là chia xâu dữ liệu P thành một dãy q khối bản rõ P1, P2, ... , Pq mỗi khối có độ dài j bit.
Bộ đệm phản hồi FB được gán giá trị khởi tạo.
FB1 = SV
Phép 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 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).
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). Quá trình này được thể hiện ở bên trái hình C.3. j bit trái nhất 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 mô-đun 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 dùng k - j bit ở vị trí trái nhất để 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 trái nhất của FB được bỏ đi. n bit trái nhất 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.
8.3 Giải mã
Các biến được sử dụng trong giải mã cũng giống như trong mã hóa.
Bộ đệm phản hồi FB được gán giá trị khởi tạo.
FB1 = SV
Phép giải mã mỗi biến bản mã thực hiện trong 6 bước sau:
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).
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). Quá trình này được thể hiện ở bên phải hình C.3. j bit trái nhất của khối đầu ra Y của mã khối được sử dụng để giải mã j-bit 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 dùng k - j bit ở vị trí trái nhất để 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 trái nhất của FB được bỏ đi. n bit trái nhất mới của FB được sử dụng như là đầu vào tiếp theo X của quá trình giải mã.
Nếu một phương pháp đệm không được sử dụng, khi đó P bằng với phép ghép của P1, P2, ... , Pq.
Nếu một phương pháp đệm được sử dụng, áp dụng phép nghịch đảo của phương pháp đệm đã được thỏa thuận với chuỗi q khối bản rõ P1, P2, ... ,Pq để nhận được xâu bản rõ đã giải mã P.
CHÚ THÍCH Việc loại bỏ đệm duy nhất được đảm bảo do hạn chế trong việc lựa chọn phương pháp đệm được đưa ra trong Điều 5.
8.4 Vô hiệu hóa việc mở rộng bản mã
Sử dụng chế độ CFB có thể tránh được việc mở rộng bản mã trong trường hợp khi bản rõ không phải là toàn bộ các khối có độ dài j bit. Việc áp dụng này, nếu bản rõ không phải là toàn bộ các khối j bit, khi đó bản rõ được đệm với p bit (0 ≤ p < j). Vì vậy, bản rõ trở thành toàn bộ các khối j bit nhưng phần đệm thì không nằm trong bàn mã. giá trị thực tế của các bit đệm không có liên quan nên chúng có thể là các bit 0 nhị phân. Bản rõ được đệm được mã hóa như trên nhưng các bit p cuối cũng của khối bản mã cuối cùng được loại bỏ vì chúng không cần thiết.
Bên giải mã áp dụng cùng một phương pháp đệm để tạo ra bản mã mà tất cả các khối mã có độ dài j bit, giải mã bản mã ở trên và khi đó loại bỏ p bit cuối cùng của bản rõ.
CHÚ THÍCH 1 Có thể xây dựng phương pháp này mà không cần tham chiếu đến đệm bởi các yêu cầu đơn giản mà biến mã cuối cùng Eq được cắt ngắn để là độ dài bit của bàn rõ/mã cuối cùng. Phụ lục B của ấn bản thứ 3 của tiêu chuẩn này chú thích j có thể sửa đổi cho phần cuối cùng của bản rõ. Đệm không được yêu cầu khi một khối bản rõ z bit, z < j được mã bởi phép cộng modulo 2 chỉ với các bit z đầu tiên của biến E tương ứng.
CHÚ THÍCH 2 Nếu phương pháp đệm đã được thỏa thuận trong Điều 5, thì phương pháp này không được sử dụng. Nếu phương pháp đệm không được thỏa thuận thì phương pháp này được sử dụng.
9 Chế độ phản hồi đầu ra (OFB)
9.1 Sơ bộ
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.
Mã hóa và giải mã trong chế độ OFB được xác định trong 9.2 và 9.3 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 sử dụng mô tả trong 9.4.
Số lượng của các khối bản rõ j bit là q (sau khi đệm nếu như phương pháp đệm được sử dụng).
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.
9.2 Mã hóa
Nếu một phương pháp đệm được sử dụng, khi đó trước hết đệm xâu dữ liệu P để nhận được một dãy q khối bản rõ P1, P2, ... , Pq, mỗi khối có độ dài j bit. Nếu không chỉ đơn giản là chia xâu dữ liệu P thành một dãy q khối bản rõ P1, P2, ..., Pq mỗi khối có độ dài j bit.
Khối đầu vào X được gán giá trị khởi tạo
X1 = SV
Phép 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 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).
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). Quá trình này được thể hiện ở bên trái hình C.4. 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 được đưa trở lại thành giá trị tiếp theo của X, đặt là Xi+1. j bit trái nhất của Yi được sử dụng để mã hóa biến đầu vào.
9.3 Giải mã
Các biến được sử dụng trong giải mã cũng giống như trong mã hóa.
Khối đầu vào X được gán giá trị khởi tạo
X1 = SV
Phép 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 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).
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). Quá trình này được thể hiện ở bên phải hình C.4. 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 được đưa trở lại thành giá trị tiếp theo của X, đặt là Xi+1. j bit trái nhất của Yi được sử dụng để giải mã biến đầu vào.
Nếu một phương pháp đệm không được sử dụng, khi đó P bằng với phép ghép của P1, P2, ... , Pq.
Nếu một phương pháp đệm được sử dụng, áp dụng phép nghịch đảo của phương pháp đệm đã được thỏa thuận với chuỗi q khối bản rõ P1, P2, ... , Pq để nhận được xâu bản rõ đã giải mã P.
CHÚ THÍCH Việc loại bỏ đệm duy nhất được đảm bảo do hạn chế trong việc lựa chọn phương pháp đệm được đưa ra trong Điều 5.
9.4 Vô hiệu hóa việc mở rộng bản mã
Sử dụng chế độ OFB có thể tránh được việc mở rộng bản mã trong trường hợp khi bản rõ không phải là toàn bộ các khối có độ dài j bit. Việc áp dụng này, nếu bản rõ không phải là toàn bộ các khối j bit, khi đó bản rõ được đệm với p bit (0 ≤ p < j). Vì vậy, bản rõ trở thành toàn bộ các khối j bit nhưng phần đệm thì không nằm trong bản mã. giá trị thực tế của các bit đệm không có liên quan nên chúng có thể là các bit 0 nhị phân. Bản rõ được đệm được mã hóa như trên nhưng các bit p cuối cũng của khối bản mã cuối cùng được loại bỏ vì chúng không cần thiết.
Bên giải mã áp dụng cùng một phương pháp đệm để tạo ra bản mã mà tất cả các khối mã có độ dài j bit, giải mã bản mã ở trên và khi đó loại bỏ p bit cuối cùng của bản rõ.
CHÚ THÍCH 1 Có thể xây dựng phương pháp này mà không cần tham chiếu đến đệm bởi các yêu cầu đơn giản mà biến mã hóa cuối cùng Eq được cắt ngắn để là độ dài bit của bản rõ/bản mã cuối cùng. Phụ lục B của ấn bản thứ 3 của tiêu chuẩn này chú thích j có thể sửa đổi cho phần cuối cùng của bản rõ. Đệm không được yêu cầu khi một khối bản rõ z bit, z < j được mã bởi phép cộng modulo 2 chỉ với các bit z đầu tiên của biến E tương ứng.
CHÚ THÍCH 2 Nếu phương pháp đệm đã được thỏa thuận trong Điều 5, thì phương pháp này không được sử dụng. Nếu phương pháp đệm không được thỏa thuận thì phương pháp này được sử dụng
10.1 Sơ bộ
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.
Mã hóa và giải mã trong chế độ OFB được xác định trong 10.2 và 10.3 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 sử dụng mô tả trong 10.4.
Số lượng của các khối bản rõ j bit là q (sau khi đệm nếu như phương pháp đệm được sử dụng).
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.
10.2 Mã hóa
Nếu một phương pháp đệm được sử dụng, khi đó trước hết đệm xâu dữ liệu P để nhận được một dãy q khối bản rõ P1, P2, ... , Pq, mỗi khối có độ dài j bit. Nếu không chỉ đơn giản là chia xâu dữ liệu P thành một dãy q khối bản rõ P1, P2, ... , Pq mỗi khối có độ dài j bit.
Bộ đếm CTR được gán giá trị khởi tạo
CTR1 = SV
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 Yi).
c) Ci = Pi Ei (Tạo 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) trên chu kỳ cuối. Quá trình này được thể hiện ở bên trái hình C.5. 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 trái nhất của khối đầu ra Yi được sử dụng để mã hóa giá trị đầu vào. Bộ đếm CTR sau đó được tăng 1 (modulo 2n) để tạo ra giá trị đếm mới.
10.3 Giải mã
Các biến được sử dụng trong giải mã giống như các biến được sử dụng trong mã hóa.
Bộ đếm CTR được gán giá trị khởi tạo
CTR1 = SV
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 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).
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). Quá trình này được thể hiện ở bên phải hình C.5. 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 trái nhất 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.
Nếu một phương pháp đệm không được sử dụng, khi đó P bằng với phép ghép của P1, P2, ... , Pq.
Nếu một phương pháp đệm được sử dụng, áp dụng phép nghịch đảo của phương pháp đệm đã được thỏa thuận với chuỗi q khối bản rõ P1, P2, ... , Pq để nhận được xâu bản rõ đã giải mã P.
CHÚ THÍCH Việc loại bỏ đệm duy nhất được đảm bảo do hạn chế trong việc lựa chọn phương pháp đệm được đưa ra trong Điều 5.
10.4 Vô hiệu hóa việc mở rộng bản mã
Sử dụng chế độ CTR có thể tránh được việc mở rộng bản mã trong trường hợp khi bản rõ không phải là toàn bộ các khối có độ dài j bit. Việc áp dụng này, nếu bản rõ không phải là toàn bộ các khối j bit, khi đó bản rõ được đệm với p bit (0 ≤ p < j). Vì vậy, bản rõ trở thành toàn bộ các khối j bit nhưng phần đệm thì không nằm trong bản mã. giá trị thực tế của các bit đệm không có liên quan nên chúng có thể là các bit 0 nhị phân. Bản rõ được đệm được mã hóa như trên nhưng các bit p cuối cũng của khối bản mã cuối cùng được loại bỏ vì chúng không cần thiết.
Bên giải mã áp dụng cùng một phương pháp đệm để tạo ra bản mã mà tất cả các khối mã có độ dài j bit, giải mã bản mã ở trên và khi đó loại bỏ p bit cuối cùng của bản rõ.
CHÚ THÍCH 1 Có thể xây dựng phương pháp này mà không cần tham chiếu đến đệm bởi các yêu cầu đơn giản mà biến mã cuối cũng Eq được cắt ngắn để là độ dài theo bit của bản rõ/mã cuối cùng. Phụ lục B của ấn bản thứ 3 của tiêu chuẩn này chú thích j có thể sửa đổi cho phần cuối cùng của bản rõ. Đệm không được yêu cầu khi một khối bản rõ z bit, z < j được mã bởi phép cộng modulo 2 chỉ với các bit z đầu tiên của biến E tương ứng.
CHÚ THÍCH 2 Nếu phương pháp đệm đã được thỏa thuận trong Điều 5, thì phương pháp này không được sử dụng. Nếu phương pháp đệm không được thỏa thuận thì phương pháp này được sử dụng
(Quy định)
Phụ lục này liệt kê các định danh đối tượng được gán cho các thuật toán được quy định trong tiêu chuẩn này
(Tham khảo)
Tính chất các chế độ hoạt động và hướng dẫn an toàn quan trọng
B.1 Tổng quan
Như đã mô tả ở trên, các chế độ hoạt động của mã khối này chỉ bảo vệ tính bí mật. Các chứng minh an toàn vẫn đảm bảo cho chế độ CBC, chế độ CFB, chế độ OFB và chế độ CRT. Các chứng minh này giả thiết rằng không thể phân biệt được mã khối từ một hàm giả ngẫu nhiên. Xác suất sai về giả thiết này tăng lên đáng kể khi số lượng các khối được xử lý tăng lên 2n/2 hoặc lớn hơn. Với lý do này, số lượng các khối bản rõ được mã với cùng một khóa có thể không vượt quá 2n/2 (xem trong ISO/IEC 29192-2:2012 Phụ lục D và ISO/IEC JTC 1/SC 27, tài liệu tin cậy số 12 (SC 27 SD12) tại địa chỉ http://www.jtc1sc27.din.de/sbe/SD12.
Để đơn giản hóa các thảo luận trong phụ lục này, Các chế độ trong tiêu chuẩn này được xử lý như hoạt động của chúng trên các khối bit có độ dài phù hợp. Nghĩa là trong phụ lục này, thuật ngữ bản rõ được sử dụng để đề cập đến dữ liệu sẽ được mã hóa sau khi bổ sung đệm cần thiết.
Phương pháp đệm được đặc tả trong Điều 5 được khuyến nghị trong trường hợp khi cần thiết phải đệm. Phương pháp đệm này không chỉ đơn giản để thực hiện mà còn chống lại các tấn công nhất định trong phương pháp mã hóa CBC [10],[11],[12] và [13]. Với mỗi phương pháp đệm nhất định khác, nếu kẻ tấn công có thể thao túng các bản mã thông điệp và có thể phát hiện có hay không một bản mã thông điệp gây ra việc giải mã sai cho thiết bị vì quá trình mã hóa phát hiện xâu dữ liệu sai định dạng khi đó việc dò tìm lặp lại của dạng này có thể được sử dụng để tìm kiếm thông tin về bản rõ. Nếu việc thực hiện của chế độ sử dụng đệm khi đó việc kiểm tra tính xác thực của bản mã trước khi mã có thể chống lại tấn công “hàm tiên tri đệm (padding oracle)" (xem ISO/IEC 19772)
Việc thực hiện tiêu chuẩn này có thể đạt được mã xác thực bằng cách sử dụng cơ chế 5 (Encryp-then MAC) của ISO/IEC 19772:2009 và sử dụng thuật toán MAC của TCVN 11495-1.
B.2 Hoạt động của chế độ sách mã điện tử (ECB)
B.2.1 Các tính chất và hướng dẫn an toàn
Chế độ sách mã điện tử (ECB) có các tính chất như sau:
a) Mã hóa hoặc giải mã một khối có thể được thực hiện độc lập với các khối khác;
b) Việc sắp xếp lại các khối bản mã sẽ dẫn đến việc sắp xếp lại các khối bản rõ tương ứng;
c) Cùng một khối bản rõ luôn luôn tạo ra cùng một khối bản mã (đối với cùng một khóa) do đó, có thể bị tấn công bằng "tấn công từ điển", ở đó một từ điển được xây dựng với các khối bản rõ và các khối bản mã tương ứng.
Dữ liệu nhị phân trao đổi giữa các máy tính hoặc con người có thể chứa các chuỗi lặp lại hoặc các chuỗi được sử dụng thường xuyên. Trong chế độ ECB, các khối bản rõ giống nhau (đối với cùng một khóa) tạo ra các khối bản mã giống hệt nhau.
Với lý do này, chế độ ECB không khuyến cáo cho các thông điệp dài hơn 1 khối. Việc sử dụng ECB có thể chỉ được đặc tả trong các tiêu chuẩn trong tương lai với các mục đích cụ thể với các đặc trưng lặp lại được chấp nhận (ví dụ, nếu các khối đầu vào không bao giờ lặp lại) các khối phải được truy cập riêng biệt hoặc ngẫu nhiên.
B.2.2 Lỗi lan truyền
Trong chế độ ECB, một hoặc nhiều bit lỗi trong một khối bản mã sẽ chỉ ảnh hưởng đến việc giải mã khối đó, các khối bản mã khác không bị ảnh hưởng. Giải mã một khối bản mã với một hoặc nhiều bit lỗi sẽ dẫn đến một xác suất xảy ra 50% lỗi cho mỗi bit bản rõ trong khối bản rõ tương ứng.
B.2.3 Đồng bộ hóa
Nếu các giới hạn khối bị mất trong mã hóa/giải mã (ví dụ do mất hoặc chèn thêm một bit bản mã), sự đồng bộ hóa giữa mã hóa và giải mã sẽ bị mất cho đến khi các giới hạn chính xác của các khối được thiết lập lại. Kết quả của tất cả các giải mã sẽ không chính xác trong khi giới hạn các khối bị mất.
B.3 Hoạt động của chế độ móc xích khối mã
B.3.1 Các tính chất và hướng dẫn an toàn
Các tính chất của chế độ CBC là:
a) Phép móc xích làm cho các khối bản mã phụ thuộc vào các khối bản rõ hiện tại và trước đó Pi-m, Pi-2m< Pi-3m,… và do đó sắp xếp lại các khối bản mã không dẫn đến việc sắp xếp lại các khối bản rõ tướng ứng, do vậy kẻ tấn công không thể thuần túy hoán chuyển các khối bản rõ bằng cách hoán chuyển các khối bản mã.
b) Việc sử dụng các giá trị SV khác nhau sẽ ngăn chặn cùng một bản rõ mã hóa thành cùng một bản mã;
c) Lựa chọn m > 1 cho phép các toán tử mã hóa của mã khối được thực hiện song song. Với việc sử dụng phần cứng xử lý song song, chẳng hạn như một mạch định hướng đường ống, tạo điều kiện cho việc thực thi dữ liệu thông lượng cao;
d) Việc giải mã khối bản mã bất kỳ có thể không cần giải mã các chuỗi bản mã trước đó; có nghĩa là, chế độ này có thuộc tính “truy cập ngẫu nhiên” cho bản mã;
e) Nếu mã khối có thể được mô phỏng bởi hoán vị giả ngẫu nhiên và SV được lựa chọn ngẫu nhiên, chế độ CBC được chứng minh về mặt toán học là an toàn theo nghĩa là mã hóa không có thông tin tính toán về bản rõ, xem viện dẫn [9].
CHÚ THÍCH Có sự hiểu lầm phổ biến rằng chế độ CBC cung cấp tính toàn vẹn dữ liệu - CBC không có tính chất này.
Chế độ CBC tạo ra cùng một bản mã bất cứ khi nào cùng một bản rõ được mã hóa sử dụng cùng khóa và giá trị khởi tạo
Tính an toàn không được đảm bảo nếu không áp dụng một trong những tiến trình tạo SV dưới đây khi có nhiều bản rõ được mã hóa với cùng một khóa
- Tạo SV một cách ngẫu nhiên từ tập hợp của tất cả các xâu n-bit với một nguồn ngẫu nhiên không dự đoán trước được (xem ISO / IEC 18031)
- Thiết lập khối bản rõ đầu tiên là một định danh duy nhất cho mỗi bản rõ ngoài sự kiểm soát của đối phương, chẳng hạn như tăng một bộ đếm và thiết lập SV là một xâu n-bit chỉ chứa các số không.
B.3.2 Lỗi lan truyền
Trong chế độ CBC, một hoặc nhiều bit lỗi trong một khối bản mã sẽ chỉ ảnh hưởng đến việc giải mã 2 khối (Khối xuất hiện lỗi và khối thứ m sau đó), Lỗi trong khối bản rõ thứ i có ảnh hưởng như sau đối với kết quả: khối bản rõ thứ i sẽ có xác suất lỗi 50% cho mỗi bit. Khối bản rõ thứ (i + m) sẽ có một dạng lỗi tương tự như vậy trong khối bản mã thứ i.
B.3.3 Đồng bộ hóa
Nếu các giới hạn khối bị mất trong mã hóa/giải mã (ví dụ do mất hoặc chèn thêm một bit bản mã), sự đồng bộ hóa giữa mã hóa và giải mã sẽ bị mất cho đến khi các giới hạn chính xác của các khối được thiết lập lại. Kết quả của tất cả các giải mã sẽ không chính xác trong khi giới hạn các khối bị mất.
B.4 Hoạt động của chế độ phản hồi bản mã (CFB)
B.4.1 Các tính chất và hướng dẫn an toàn
Các tính chất của chế độ CFB là:
a) Phép móc xích làm cho các khối bản mã phụ thuộc vào các khối bản rõ hiện tại và các khối bản rõ trước đó một số lượng nhất định các biến bản rõ ngay trước đó. Số lượng này phụ thuộc vào việc lựa chọn r, k và j. Do đó, việc sắp xếp lại j bit của các biến bản mã không ảnh hưởng đến việc sắp xếp lại j bit của các biến bản rõ tương ứng, do vậy kẻ tấn công không thể thuần túy hoán chuyển các khối bản rõ bằng cách hoán chuyển các khối bản mã.
b) Sử dụng các giá trị SV khác nhau sẽ ngăn chặn cùng một bản rõ được mã hóa thành cùng một bản mã;
c) Quá trình mã hóa và giải mã trong chế độ CFB chỉ sử dụng hàm mã hóa của mã khối;
d) Độ mạnh của chế độ CFB phụ thuộc vào kích thước của k (đạt cực đại nếu j = k = n) và kích thước tương ứng của j, k, n và r;
CHÚ THÍCH Lựa chọn j < k sẽ làm tăng xác suất xuất hiện các giá trị lặp lại trong các khối đầu vào. Các giá trị lặp lại như vậy sẽ làm rò rỉ quan hệ tuyến tính giữa các bit bản rõ.
e) Sử dụng chế độ này yêu cầu gấp gần n/j lần các mã hóa mã khối so với chế độ ECB, do đó việc lựa chọn giá trị j nhỏ sẽ làm cho quá trình xử lý phức tạp hơn.
f) Lựa chọn r ≥ n + k cho phép thao tác đường ống và liên tục mã khối (giả sử sử dụng phần cứng xử lý song song, ví dụ như một mạch định hướng đường ống); Các các nội dung khởi tạo (SV) của bộ đệm phản hồi sẽ chỉ được thay thế hoàn toàn khi số lượng các khối mã được thực hiện lớn hơn hoặc bằng r/ k; và
g) Chứng minh an toàn cho chế độ CFB được trình bày trong [8].
Chế độ CFB tạo ra cùng một bản mã khi một bản rõ bất kỳ được mã hóa sử dụng cùng một khóa và giá trị khởi tạo.
Tính an toàn sẽ không được đảm bảo nếu SV không phải là ngẫu nhiên cho mỗi một bản rõ nếu nhiều bản rõ được mã với cùng một khóa, chỉ ra từ tập hợp của tất cả các xâu r-bit (xem ISO / IEC 18031)
B.4.2 Lỗi lan truyền
Trong chế độ CFB, các lỗi trong đơn vị j bit bất kỳ của bản mã sẽ ảnh hưởng đến việc giải mã bản mã sau đó cho đến khi các bit lỗi được dịch ra ngoài bộ đệm phản hồi CFB. Một lỗi trong biến bản mã thứ i ảnh hưởng đến kết quả bản rõ như sau: biến bản rõ thứ i có số lỗi bằng với biến bản mã thứ i. Các biến bản rõ sau đó sẽ có xác suất lỗi 50% cho mỗi bit cho đến khi tất các các bit lỗi được dịch ra ngoài bộ đệm phản hồi.
B.4.3 Đồng bộ hóa
Nếu các giới hạn j-bit bị mất trong quá trình mã hóa và giải mã (ví dụ do mất hoặc việc chèn thêm một bit bản mã), việc đồng bộ mật mã sẽ được thiết lập lại cho r bit sau khi thiết lập lại giới hạn j-bit. Nếu một bội j bit bị mất đồng bộ sẽ được thiết lập lại một cách tự động sau r bit. Tương tự, khi j = k = 1, chế độ CFB tự động thiết lập lại đồng bộ mật mã sau khi mất hoặc chèn thêm một số lượng bit bản mã bất kỳ.
B.5 Hoạt động của chế độ phản hồi đầu ra (OFB)
B.5.1 Các tính chất và hướng dẫn an toàn
Các tính chất của chế độ OFB là:
a) Sử dụng các giá trị SV khác nhau sẽ ngăn chặn cùng một bản rõ được mã hóa thành cùng một bản mã bằng cách tạo ra các dòng khóa khác nhau;
b) Quá trình mã hóa và giải mã trong chế độ OFB chỉ sử dụng hàm mã hóa của mã khối;
c) Chế độ OFB không phụ thuộc vào bản rõ để tạo ra dòng khóa được dùng để cộng modulo 2 với bản rõ.
d) Sử dụng chế độ này yêu cầu gấp gần n/j lần các mã hóa mã khối so với chế độ ECB, do đó việc lựa chọn giá trị j nhỏ sẽ làm cho quá trình xử lý phức tạp hơn.
e) Các chứng minh an toàn cho chế độ OFB tương tự như đối với chế độ CTR.
Chế độ OFB tạo ra cùng một bản mã khi cùng một bản rõ được mã hóa sử dụng cùng một khóa và giá trị khởi tạo. Ngoài ra, trong chế độ OFB, dòng khóa giống nhau (chuỗi kết quả trung gian Ei) được tạo ra khi sử dụng cùng một khóa và SV. Tương tự, với các lý do an toàn, một SV cụ thể chỉ được sử dụng một lần cho một khóa cho trước.
Tính an toàn không được đảm bảo nếu không áp dụng một trong những tiến trình tạo SV dưới đây khi có nhiều bản rõ được mã hóa với cùng một khóa
- Tạo SV một cách ngẫu nhiên từ tập hợp của tất cả các xâu n-bit với một nguồn ngẫu nhiên không dự đoán trước được (xem ISO/IEC 18031)
- Thiết lập SV là một định danh duy nhất ngoài sự kiểm soát của đối phương, chẳng hạn như tăng một bộ đếm.
B.5.2 Lỗi lan truyền
Chế độ OFB không lan truyền các lỗi trong kết quả đầu ra của bản rõ. Mỗi bit lỗi trong bản mã chỉ gây ra một bit lỗi trong bản rõ được giải mã.
B.5.3 Đồng bộ hóa
Chế độ OFB không tự đồng bộ. Nếu hai mã hóa và giải mã không đồng bộ, thì hệ thống phải khởi tạo lại. Sự mất đồng bộ này có thể do một số lượng bất kỳ các bit bản mã chèn thêm vào hoặc mất đi.
Mỗi lần khởi tạo lại cần sử dụng một giá trị SV khác nhau từ các giá trị SV đã sử dụng trước đó với cùng một khóa. Lý do là một dòng bit giống nhau sẽ được tạo ra với cùng một bộ tham số giống nhau. Điều này dễ bị tấn công, ví dụ: tấn công bản rõ đã biết, tấn công bản mã đã biết.
B.6 Hoạt động của chế độ bộ đếm (CTR)
B.6.1 Các tính chất và hướng dẫn an toàn
Các tính chất của chế độ bộ đếm là:
a) Sử dụng các giá trị SV khác nhau sẽ ngăn chặn cùng một bản rõ được mã hóa thành cùng một bản mã bằng cách tạo ra các dòng khóa khác nhau:
b) Quá trình mã hóa và giải mã trong Chế độ bộ đếm chỉ sử dụng hàm mã hóa của mã khối;
c) Chế độ bộ đếm không phụ thuộc vào bản rõ để tạo ra dòng khóa được dùng để cộng modulo 2 với bản rõ.
d) Trong chế độ bộ đếm, khối bản mã Ci được giải mã mà không cần giải mã khối bản mã Ci-1; Đây chính là tính chất truy cập ngẫu nhiên;
e) Lựa chọn giá trị j nhỏ yêu cầu gấp gần n/j lần các vòng lặp so với chế độ ECB, do đó sẽ làm cho quá trình xử lý phức tạp hơn; và
f) Cùng với các giả định giống nhau về mã khối trong điều B.2.2, Chế độ bộ đếm cũng được chứng minh là an toàn [9].
Chế độ bộ đếm tạo ra cùng một bản mã khi cùng một bản rõ được mã hóa sử dụng cùng một khóa và giá trị khởi tạo. Ngoài ra, trong Chế độ bộ đếm, dòng khóa giống nhau (chuỗi kết quả trung gian Ei) được tạo ra khi sử dụng cùng một khóa và SV. Tương tự, vì các lý do an toàn, một SV cụ thể chỉ được sử dụng một lần cho một khóa cho trước và các giá trị SV cần được chọn sao cho giá trị CTR trung gian bất kỳ không được sử dụng nhiều hơn một lần đối với khóa cho trước.
Khi có nhiều bản rõ được mã hóa với cùng một khóa, thì chỉ đảm bảo an toàn nếu các SV chỉ được sử dụng một lần và được chọn sao cho bất kỳ giá trị CTR trung gian nào không được sử dụng nhiều hơn 1 lần Tạo SV một cách ngẫu nhiên từ tập hợp của tất cả các xâu n-bit (xem ISO / IEC 18031) cũng đủ bảo đảm an toàn nhưng chỉ trong chừng mực không có va chạm giữa các SV và CTR trung gian
B.6.2 Lỗi lan truyền
Chế độ bộ đếm không lan truyền các lỗi trong kết quả đầu ra của bản rõ. Mỗi bit lỗi trong bản mã chỉ gây ra một bit lỗi trong bản rõ được giải mã.
B.6.3 Đồng bộ hóa
Chế độ bộ đếm không tự đồng bộ. Nếu hai mã hóa và giải mã không đồng bộ, thì hệ thống phải khởi tạo lại. Sự mất đồng bộ này có thể do một số lượng bất kỳ các bit bản mã chèn thêm vào hoặc mất đi.
Mỗi lần khởi tạo lại cần sử dụng một giá trị SV khác nhau từ các giá trị SV đã sử dụng trước đó với cùng một khóa. Lý do là một dòng bit giống nhau sẽ được tạo ra với cùng một bộ tham số giống nhau. Điều này dễ bị tấn công, ví dụ: tấn công bản rõ đã biết, tấn công bản mã đã biết.
Thư mục tài liệu tham khảo
[1] TCVN 11495-1, 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.
[2] ISO/IEC 9834 (all parts), Information technology - Open Systems Interconnection - Procedures for the operation of OSI Registration Authorities.
[3] TCVN 11816-1, Công nghệ thông tin - Các kỹ thuật an toàn - Hàm băm - Phần 1: Tổng quan.
[4] ISO/IEC 18031, Information technology - Security techniques - Random bit generation.
[5] TCVN 11367-1, Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 1: Tổng quan
[6] ISO/IEC 19772, Information technology - Security techniques - Authenticated encryption.
[7] NIST/SP 800-38A, Recommendations for block cipher modes of operation: three variants of ciphertext stealing for CBC mode.
[8] ALKASSAR A., GERALDY A., PFITZMANN B., SADEGHI A.-R. Optimized Self-Synchronizing Mode of Operation. Proceedings of Fast Software Encryption (FSE) 2001, Yokohama, japan, Lecture Notes in Computer Science Vol. 2355, pp. 78-91, Springer-Verlag, Berlin, 2001
[9] BELLARE M., DESAI A., JOKIPII E., ROGAWAY P. A Concrete Treatment of Symmetric Encryption. Proceedings of the 38th Annual Symposium on Foundations of Computer Science, pp. 394-403, IEEE, 1997.
[10] BLACK J., & URTUBIA H. Side-channel attacks on symmetric encryption schemes: the case for authenticated encryption. Proceedings of the 11th USENIX security symposium, San Francisco, CA, USA, August 5-9, 2002, pp. 327-338, 2002.
[11] PATERSON K.G., & YAU A. Padding Oracle Attacks on the ISO CBC Mode Encryption Standard. Topics in Cryptology - CT-RSA 2004, The Cryptographers Track at the RSA Conference 2004, San Francisco, CA, USA, Lecture Notes in Computer Science Vol. 2964, pp. 305-323, Springer-Verlag, Berlin, 2004.
[12] VAUDENAY S. Security flaws induced by CBC padding - applications to SSL, IPSEC, WTLS... . Proceedings of Eurocrypt 2002, Amsterdam, The Netherlands. Vol. 2332, pp. 534-45. SpringerVerlag, Berlin, 2002.
[13] YAU A., PATERSON K.G., MITCHELL C.J. Padding Oracle Attacks on the CBC-mode encryption with random and secret IVs. Proceedings of Fast Software Encryption (FSE) 2005, Paris, France, Lecture Notes in Computer Science. Vol. 3557, pp. 299-319, Springer-Verlag, Berlin, 2005.
MỤC LỤC
Lời nói đầu
1 Phạm vi áp dụng
2 Tài liệu viện dẫn
3 Thuật ngữ và định nghĩa
4 Ký hiệu, chữ viết tắt và chú thích
5 Các yêu cầu
6 Chế độ sách mã điện tử (ECB)
6.1 Sơ bộ
6.2 Mã hóa
6.3 Giải mã
7 Chế độ móc xích khối mã (CBC)
7.1 Sơ bộ
7.2 Mã hóa
7.3 Giải mã
7.4 Vô hiệu hóa việc mở rộng bản mã
8 Chế độ phản hồi bản mã (CFB)
8.1 Sơ bộ
8.2 Mã hóa
8.3 Giải mã
8.4 Vô hiệu hóa việc mở rộng bản mã
9 Chế độ phản hồi đầu ra (OFB)
9.1 Sơ bộ
9.2 Mã hóa
9.3 Giải mã
9.4 Vô hiệu hóa việc mở rộng bản mã
10 Chế độ bộ đếm (CTR)
10.1 Sơ bộ
10.2 Mã hóa
10.3 Giải mã
10.4 Vô hiệu hóa việc mở rộng bản mã
Phụ lục A (Quy định) Định danh đối tượng
Phụ lục B (Tham khảo) Tính chất các chế độ hoạt động và hướng dẫn an toàn quan trọng
Phụ lục C (Tham khảo) Các hình vẽ mô tả các chế độ hoạt động của mã khối
Phụ lục D (Tham khảo) Các ví dụ về các chế độ hoạt động của mã khối
Thư mục tài liệu tham khảo
Ý kiến bạn đọc
Nhấp vào nút tại mỗi ô tìm kiếm.
Màn hình hiện lên như thế này thì bạn bắt đầu nói, hệ thống giới hạn tối đa 10 giây.
Bạn cũng có thể dừng bất kỳ lúc nào để gửi kết quả tìm kiếm ngay bằng cách nhấp vào nút micro đang xoay bên dưới
Để tăng độ chính xác bạn hãy nói không quá nhanh, rõ ràng.