Chế độ hoạt động của mật mã khối
Trong chương này, chúng ta sẽ thảo luận về các phương thức hoạt động khác nhau của mật mã khối. Đây là các quy tắc thủ tục cho mật mã khối chung. Điều thú vị là các chế độ khác nhau dẫn đến việc đạt được các thuộc tính khác nhau, điều này làm tăng thêm tính bảo mật của mật mã khối bên dưới.
Mật mã khối xử lý các khối dữ liệu có kích thước cố định. Thông thường, kích thước của một tin nhắn lớn hơn kích thước khối. Do đó, thông điệp dài được chia thành một loạt các khối thông báo tuần tự và mật mã hoạt động trên các khối này tại một thời điểm.
Chế độ Sổ mã điện tử (ECB)
Chế độ này là cách đơn giản nhất để xử lý một loạt các khối thông báo được liệt kê tuần tự.
Hoạt động
Người dùng lấy khối bản rõ đầu tiên và mã hóa nó bằng khóa để tạo ra khối bản mã đầu tiên.
Sau đó, anh ta lấy khối văn bản rõ thứ hai và thực hiện theo cùng một quy trình với cùng một khóa, v.v.
Chế độ ECB là deterministic, nghĩa là, nếu khối văn bản rõ P1, P2,…, Pm được mã hóa hai lần dưới cùng một khóa, thì các khối bản mã đầu ra sẽ giống nhau.
Trên thực tế, về mặt kỹ thuật, đối với một khóa nhất định, chúng ta có thể tạo một sổ mã các bản mã cho tất cả các khối bản rõ có thể có. Sau đó, mã hóa sẽ chỉ yêu cầu tìm kiếm bản rõ được yêu cầu và chọn bản mã tương ứng. Do đó, hoạt động tương tự như việc gán các từ mã trong một sổ mã và do đó có tên chính thức - Chế độ hoạt động của Sổ mã điện tử (ECB). Nó được minh họa như sau:
Phân tích Chế độ ECB
Trong thực tế, bất kỳ dữ liệu ứng dụng nào thường có một phần thông tin có thể đoán được. Ví dụ, có thể đoán được mức lương. Một bản mã từ ECB có thể cho phép kẻ tấn công đoán bản rõ bằng cách thử-và-sai nếu thông báo bản rõ nằm trong khoảng có thể dự đoán được.
Ví dụ: nếu một bản mã từ chế độ ECB được biết là mã hóa một con số tiền lương, thì một số lượng nhỏ thử nghiệm sẽ cho phép kẻ tấn công khôi phục con số đó. Nói chung, chúng tôi không muốn sử dụng mật mã xác định và do đó chế độ ECB không nên được sử dụng trong hầu hết các ứng dụng.
Chế độ chuỗi khối mật mã (CBC)
Chế độ hoạt động của CBC cung cấp sự phụ thuộc của thông báo để tạo ra bản mã và làm cho hệ thống không xác định.
Hoạt động
Hoạt động của chế độ CBC được mô tả trong hình minh họa sau đây. Các bước như sau:
Tải vectơ khởi tạo n-bit (IV) vào thanh ghi trên cùng.
XOR khối văn bản rõ n-bit với giá trị dữ liệu trong thanh ghi hàng đầu.
Mã hóa kết quả của phép toán XOR với mật mã khối cơ bản bằng khóa K.
Nạp khối bản mã vào thanh ghi cao nhất và tiếp tục hoạt động cho đến khi tất cả các khối bản rõ được xử lý.
Để giải mã, dữ liệu IV được XOR với khối bản mã đầu tiên được giải mã. Khối bản mã đầu tiên cũng được đưa vào để đăng ký thay thế IV để giải mã khối bản mã tiếp theo.
Phân tích Chế độ CBC
Trong chế độ CBC, khối văn bản rõ hiện tại được thêm vào khối bản mã trước đó, và sau đó kết quả được mã hóa bằng khóa. Do đó, giải mã là quá trình ngược lại, bao gồm việc giải mã bản mã hiện tại và sau đó thêm khối bản mã trước đó vào kết quả.
Lợi thế của CBC so với ECB là việc thay đổi IV dẫn đến các bản mã khác nhau cho thông điệp giống hệt nhau. Mặt hạn chế, lỗi trong quá trình truyền được lan truyền đến một số khối khác trong quá trình giải mã do hiệu ứng chuỗi.
Điều đáng nói là chế độ CBC tạo cơ sở cho một cơ chế xác thực nguồn gốc dữ liệu nổi tiếng. Do đó, nó có một lợi thế cho những ứng dụng yêu cầu cả mã hóa đối xứng và xác thực nguồn gốc dữ liệu.
Chế độ phản hồi mật mã (CFB)
Trong chế độ này, mỗi khối bản mã được 'đưa trở lại' vào quá trình mã hóa để mã hóa khối bản rõ tiếp theo.
Hoạt động
Hoạt động của chế độ CFB được mô tả trong hình minh họa sau. Ví dụ, trong hệ thống hiện tại, một khối thông báo có các bit kích thước 's' trong đó 1 <s <n. Chế độ CFB yêu cầu một vectơ khởi tạo (IV) làm khối đầu vào n bit ngẫu nhiên ban đầu. IV không cần phải bí mật. Các bước hoạt động là -
Nạp IV vào thanh ghi trên cùng.
Mã hóa giá trị dữ liệu trong thanh ghi cao nhất với mật mã khối bên dưới bằng khóa K.
Chỉ lấy 's' số bit quan trọng nhất (bit trái) của đầu ra của quá trình mã hóa và XOR chúng với khối thông báo văn bản rõ bit 's' để tạo khối bản mã.
Nạp khối bản mã vào thanh ghi trên cùng bằng cách chuyển dữ liệu đã có sẵn sang bên trái và tiếp tục thao tác cho đến khi tất cả các khối bản rõ được xử lý.
Về cơ bản, khối bản mã trước đó được mã hóa bằng khóa, và sau đó kết quả được XOR thành khối bản rõ hiện tại.
Các bước tương tự được thực hiện để giải mã. IV được quyết định trước được tải ban đầu khi bắt đầu giải mã.
Phân tích Chế độ CFB
Chế độ CFB khác nhiều so với chế độ ECB, bản mã tương ứng với một khối bản rõ nhất định không chỉ phụ thuộc vào khối bản rõ đó và khóa, mà còn vào khối bản mã trước đó. Nói cách khác, khối bản mã phụ thuộc vào thông điệp.
CFB có một tính năng rất lạ. Trong chế độ này, người dùng giải mã bản mã chỉ sử dụng quy trình mã hóa của mật mã khối. Thuật toán giải mã của mật mã khối cơ bản không bao giờ được sử dụng.
Rõ ràng, chế độ CFB đang chuyển đổi mật mã khối thành một loại mật mã dòng. Thuật toán mã hóa được sử dụng như một trình tạo luồng khóa để tạo ra luồng khóa được đặt trong thanh ghi dưới cùng. Luồng khóa này sau đó được XOR với bản rõ như trong trường hợp mật mã luồng.
Bằng cách chuyển đổi mật mã khối thành mật mã dòng, chế độ CFB cung cấp một số đặc tính ưu việt của mật mã dòng trong khi vẫn giữ lại các đặc tính ưu việt của mật mã khối.
Mặt khác, lỗi truyền được lan truyền do thay đổi các khối.
Chế độ phản hồi đầu ra (OFB)
Nó liên quan đến việc cung cấp các khối đầu ra liên tiếp từ mật mã khối bên dưới trở lại nó. Các khối phản hồi này cung cấp chuỗi bit để cấp nguồn cho thuật toán mã hóa hoạt động như bộ tạo luồng khóa như trong trường hợp chế độ CFB.
Luồng khóa được tạo là XOR-ed với các khối bản rõ. Chế độ OFB yêu cầu IV là khối đầu vào n bit ngẫu nhiên ban đầu. IV không cần phải bí mật.
Hoạt động được mô tả trong hình minh họa sau:
Chế độ bộ đếm (CTR)
Nó có thể được coi là một phiên bản dựa trên phản hồi của chế độ CFB mà không có phản hồi. Trong chế độ này, cả người gửi và người nhận đều cần truy cập vào một bộ đếm đáng tin cậy, bộ đếm này sẽ tính toán một giá trị được chia sẻ mới mỗi khi một khối bản mã được trao đổi. Bộ đếm dùng chung này không nhất thiết phải có giá trị bí mật, nhưng thách thức là cả hai bên phải giữ bộ đếm được đồng bộ hóa.
Hoạt động
Cả mã hóa và giải mã trong chế độ CTR được mô tả trong hình minh họa sau. Các bước trong hoạt động là -
Nạp giá trị bộ đếm ban đầu trong thanh ghi trên cùng là giống nhau cho cả người gửi và người nhận. Nó đóng vai trò giống như IV trong chế độ CFB (và CBC).
Mã hóa nội dung của bộ đếm bằng khóa và đặt kết quả vào thanh ghi dưới cùng.
Lấy khối văn bản rõ đầu tiên P1 và XOR khối này vào nội dung của thanh ghi phía dưới. Kết quả của điều này là C1. Gửi C1 cho người nhận và cập nhật bộ đếm. Bản cập nhật bộ đếm thay thế phản hồi bản mã trong chế độ CFB.
Tiếp tục theo cách này cho đến khi khối văn bản rõ cuối cùng được mã hóa.
Quá trình giải mã là quá trình ngược lại. Khối bản mã được XOR với đầu ra là nội dung được mã hóa của giá trị bộ đếm. Sau khi giải mã, bộ đếm khối bản mã được cập nhật như trong trường hợp mã hóa.
Phân tích Chế độ Bộ đếm
Nó không phụ thuộc vào thông điệp và do đó khối bản mã không phụ thuộc vào các khối bản rõ trước đó.
Giống như chế độ CFB, chế độ CTR không liên quan đến quá trình giải mã của mật mã khối. Điều này là do chế độ CTR thực sự đang sử dụng mật mã khối để tạo luồng khóa, được mã hóa bằng hàm XOR. Nói cách khác, chế độ CTR cũng chuyển đổi mật mã khối thành mật mã luồng.
Nhược điểm nghiêm trọng của chế độ CTR là nó yêu cầu một bộ đếm đồng bộ ở người gửi và người nhận. Mất đồng bộ dẫn đến khôi phục bản rõ không chính xác.
Tuy nhiên, chế độ CTR có gần như tất cả các ưu điểm của chế độ CFB. Ngoài ra, nó hoàn toàn không lan truyền lỗi truyền.