Mô hình 1 hệ mã hóa 5 thành phần năm 2024
Các thuật toán mã hóa như mã hóa khối (block cipher algorithm) cung cấp cơ chế chuyển đổi thuận nghịch giữa giá trị thực được dùng bởi hệ thống, gọi là bản rõ (plaintext), và giá trị mã hóa, gọi là bản mã (ciphertext). Mã hóa khối (block cipher) là mã hóa thực thi trên từng khối bit có kích thước cố định. Ví dụ, DES mã hóa trên 64 bit dữ liệu đầu vào, AES mã hóa trên 128, 192 hoặc 256 bit dữ liệu đầu vào. Mã hóa khối khác với mã hóa dòng (stream cihper), hay còn gọi là mã hóa luồng. Mã hóa dòng xử lý trên từng bit dữ liệu đầu vào. Mã hóa khóa mã đối xứng (symmetric key) là thuật toán dùng khóa mã hóa và khóa giải mã có mối liên hệ với nhau, có thể dùng khóa này biến đổi thành khóa kia và ngược lại, hoặc hai khóa mã hoàn toàn giống nhau. Trong khi vai trò chính của một thuật toán mã hóa là sử dụng khóa mã bảo mật (secure/secret key) kết hợp với bản rõ để tạo ra bản mã, hoặc ngược lại, kết hợp với bản mã để khôi phục lại bản rõ thì vai trò của “chế độ mã hóa” là quy định cách thức sử dụng của một thuật toán mã hóa. Cùng một thuật toán mã hóa, cách thức sử dụng khác nhau sẽ tạo ra các kết quả mã hóa dữ liệu khác nhau với mức độ bảo mật khác nhau. Tóm lại, quá trình mã hóa dữ liệu gồm 2 phần quan trọng là:
Bạn đọc cần hiểu rõ các ký hiệu trong mục này để có thể đọc hiểu các biểu thức định nghĩa quá trình mã hóa và giải mã. 2.1) Các ký hiệu Tác giả sẽ dùng các ký hiệu sau đây trong bài viết, các ký hiệu này có thể khác các ký hiệu thường thấy trong tài liệu chuẩn nhưng ý nghĩ là tương đương.
2.2) Các chức năng
ECB là chế độ mã hóa từng khối bit độc lập. Với cùng một khóa mã K, mỗi khối plaintext ứng với một giá trị ciphertext cố định và ngược lại. Hình 2: Chế độ mã hóa/giải mã ECB3.1) Quá trình mã hóa ECB Biểu thức định nghĩa: Cj = CIPTHk(Pj) với j=1, 2, 3, …, n Plaintext là đầu vào trực tiếp để thực thi thuật toán mã hóa với khóa mã K để tạo ra ciphertext. 3.2) Quá trình giải mã ECB Biểu thức định nghĩa: Pj = CIPTHINVk(Cj) với j=1, 2, 3, …, n Ciphertext là đầu vào trực tiếp để thực thi thuật toán giải mã với khóa mã K để tạo ra plaintext. 3.3) Nhận xét Ưu điểm:
Nhược điểm:
CBC là chế độ mã hóa chuỗi, kết quả mã hóa của khối dữ liệu trước (ciphertext) sẽ được tổ hợp với khối dữ liệu kế tiếp (plaintext) trước khi thực thi mã hóa. Hình 3: Chế độ mã hóa/giải mã CBC4.1) Quá trình mã hóa CBC Biểu thức định nghĩa: C1 = CIPHk(P1+IV) Cj = CIPHk(Pj+Cj-1) với j=2, 3, …, n Lần mã hóa đầu tiên:
Lần mã hóa sau lần đầu tiên:
4.2) Quá trình giải mã CBC Biểu thức định nghĩa: P1 = CIPHINVk(C1)+IV Pj = CIPHk(Cj)+Cj-1 với j=2, 3, …, n Lần giải mã đầu tiên:
Lần giải mã sau lần đầu tiên:
4.3) Nhận xét Ưu điểm:
Nhược điểm:
CFB là chế độ mã hóa mà ciphertext của lần mã hóa hiện tại sẽ được phản hồi (feedback) đến đầu vào của lần mã hóa tiếp theo. Nghĩa là, ciphertext của lần mã hóa hiện tại sẽ được sử dụng để tính toán ciphertext của lần mã hóa kế tiếp. Mô tả có vẻ giống CBC nhưng quá trình trực hiện lại khác. Hình 4: Chế độ mã hóa/giải mã CFB5.1) Quá trình mã hóa CFB Biểu thức định nghĩa: I1 = IV Ij = LSBb-s(Ij-1) | C Oj = CIPHk(Ij) với j=1, 2, ..., n C Lần mã hóa đầu tiên:
IV là giá trị không cần bảo mật nhưng phải là giá trị không thể dự đoán trước được. IV có độ dài là b bit, bằng độ dài của một khối dữ liệu mà chuẩn mã hóa quy định. s là một số nguyên và 1 ≤ s ≤ b, đây chính là độ dài plaintext và ciphertext cho một lần mã hóa/giải mã. Giá trị của s có thể được tích hợp vào tên gọi của chế độ CFB để chỉ rõ chế độ số lượng bit được hỗ trợ. Ví dụ:
Lần mã hóa sau lần đầu tiên:
5.3) Nhận xét So sánh với chế độ CBC, chế độ CFB có những điểm khác biệt sau đây:
Ưu điểm:
Nhược điểm:
6.1) Quá trình mã hóa OFB Biểu thức định nghĩa: I1 = IV Ij = Oj-1 với j = 2, 3, ..., n Oj = CIPHk(Ij) với j = 1, 2, ..., n Cj = Pj + Oj với j = 1, 2, ..., n-1 C*n = P*n + MSBu(On) Lần mã hóa đầu tiên:
Lần mã hóa sau lần đầu tiên và trước lần cuối cùng:
Lần mã hóa cuối cùng (thứ n):
6.2) Quá trình giải mã OFB Biểu thức định nghĩa: I1 = IV Ij = Oj-1 với j = 2, 3, ..., n Oj = CIPHk(Ij) với j = 1, 2, ..., n Pj = Cj + Oj với j = 1, 2, ..., n-1 P*n = C*n + MSBu(On) Lần giải mã đầu tiên:
Lần giải mã sau lần đầu tiên và trước lần cuối cùng:
Lần giải mã cuối cùng (thứ n):
6.3) Nhận xét Chế độ OFB có những đặc điểm cần chú ý như sau:
Ưu điểm:
Nhược điểm:
CTR là chế độ mã hóa sử dụng một tập các khối ngõ vào, gọi là các counter, để sinh ra một tập các giá trị ngõ ra thông qua một thuật toán mã hóa. Sau đó, giá trị ngõ ra sẽ được XOR với plaintext để tạo ra ciphertext trong quá trình mã hóa, hoặc XOR với ciphertext để tạo ra plaintext trong quá trình giải mã. |