CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ VÀ MÃ KHỐI
1.4.4 Các phương thức hoạt động của mật mã khối
Với bản tin có độ dài vượt quá độ dài của một khối dữ liệu thì phương án mã hóa phải được tính đến. Đó chính là các chế độ hoạt động của mật mã khối. Trong mật mã khối, việc mã hóa chuyển các khối bản rõ thành các khối bản mã và ngược lại.
Hình 1. 8 Các chế độ hoạt động của mã khối (a) Electronic Code Book (ECB).
(b) Cipher Block Chaining (CBC).
(c) Output Feed Back (OFB).
(d) Cipher Feed Back (CFB).
(e) Counter mode (CTR).
Đứng trên quan điểm thực hiện trên phần cứng, chúng ta có thể chia ra làm 2 loại chế độ hoạt động chính:
Chế độ không hồi tiếp: bao gồm Electronic Code Book mode (ECB) và Counter mode (CTR).
Chế độ có hồi tiếp: bao gồm Cipher Block Chaining mode (CBC), Cipher Feedback Mode (CFB), và Output Feedback Mode (OFB).
Như vậy chỉ có ở chế độ không hồi tiếp mới có thể tận dụng hết khả năng thực thi mật mã bằng phần cứng. Xem xét các chế độ làm việc của các sơ đồ mã khối ta có thể nhận thấy một số vấn đề sau:
Chế độ ECB (Chế độ chuyển mã điện tử- Chế độ bảng tra mã điện tử):
là chế độ đơn giản nhất của mã khối, nó thường được sử dụng khi cần truyền an toàn một thông tin riêng (ví dụ, mã hóa khóa). Chế độ này có nhược điểm là mức độ an toàn không cao, vì rằng đối thủ có thể dựng lại các bản mã từ các bản mã gốc. Nhược điểm này không chỉ ảnh hưởng đến độ an toàn mà còn ảnh hưởng đến hiệu quả năng lượng của sơ đồ mã. Nhưng khi hoạt động ở chế độ này, sơ đồ mã có khả năng dùng lỗi chống lại lỗi của bản mã (chỗ các bits bị thay đổi) và lỗi đồng bộ hóa (chỗ các bits có thể được thêm vào hoặc mất đi).
Hình 1. 9 Chế độ mã hóa ECB
(a) Encryption
(b) Decryption
Chế độ CBC (chế độ liên kết khối mã- Chế độ mã móc xích): là chế độ thường được sử dụng nhất của mã khối, nó thường được sử dụng khi truyền các khối dữ liệu hoặc dùng để xác thực.
Khi làm việc ở chế độ này, các sơ đồ mã có nguy cơ bị lộ thông tin do kiểu tấn công “nghịch lý ngày sinh nhật”. Với khả năng chống lại lỗi bản mã thì một bits lỗi truyền sẽ chỉ ảnh hưởng đến việc giải mã của 2 khối tiếp sau.
Chế độ này không có khả năng chống lại lỗi đồng bộ hóa.
Hình 1. 10 Chế độ mã hóa CBC
Chế độ CFB (chế độ phản hồi mã- Chế độ Mã phản hồi): thường được sử dụng khi truyền các dòng dữ liệu hoặc dùng để xác thực. Chế độ này có khả năng khôi phục chống lại lỗi bản mã và có khả năng khôi phục chống lại lỗi đồng bộ hóa sau khi truyền một số lượng nào đó các khối.
(a) Encryption
(b) Decryption
Hình 1. 11 Chế độ mã hóa s-bít CFB
Chế độ OFB (chế độ phản hồi đầu ra- Chế độ mật mã kết quả phản hồi): thường được sử dụng khi truyền dòng dữ liệu trên các kênh có nhiễu.
Với chế độ này lỗi trong một bản mã chỉ ảnh hưởng lên lỗi của bản rõ tương ứng.
(a) Encryption
(b) Decryption
Hình 1. 12 Chế độ mã hóa s-bít OFB
Chế độ CTR (Chế độ mật mã con đếm): chế độ này giống như chế độ CBC, độ bảo mật của chế độ này không tồi hơn chế độ CBC.
Sơ đồ của nó đơn giản, sự móc xích (feedback) giữa các khối đã được loại trừ hoàn toàn, làm cho CTR có những hiệu năng tính toán cao đáng mong ước.
- Có thể xử lý song song dễ dàng vì các khối tính toán hòan tòan độc lập; ngoài ra cũng cho phép tiền xử lý để tính toán trước chuỗi phần tử output của hàm sinh mã (chẳng qua là chuỗi mã hóa của dãy số tự nhiên liên tiếp từ giá trị IV ban đầu).
- Không có sự phụ thuộc lẫn nhau nên có thể dùng vào mã hóa dữ liệu lưu trữ giống như với ECB: cho phép truy nhập ngẫu nhiên (random access) thay vì truy nhập tuần tự như với CBC chẳng hạn.
(a) Encryption
(b) Decryption
Mặc dù có sơn đồ tính toán rất đơn giản, tính an toàn của chế độ này đã được chứng minh đầy đủ bằng công cụ toán học hình thức, trên cơ sở thông qua so sánh với mật mã one-time-pad (đạt bí mật tuyệt đối).
Dựa trên các đánh giá, ta thấy rằng việc mã hóa dữ liệu sẽ chủ yếu dựa trên các chế độ hồi tiếp của mã khối như CBC và CFB. Còn với chế không độ hồi tiếp thường sử dụng chế độ EBC để mã hóa khóa phiên trong quá trình phân phối khóa.
Hình 1. 13 Chế độ mã hóa CTR