Các thuật ngữ chính Trình xác thực
Mã xác thực thông điệp dựa trên mã hóa (CMAC) Mã xác thực thông điệp chuỗi khối với bộ
đếm(CCM)
Tổng kiểm tra mật mã Hàm băm mật mã Thuật toán xác thực dữ liệu(DAA)
Chế độ
Galois/Counter(GMC) HMAC
Khóa mã hóa khóa Chế độ gói khóa Gói khóa
Xác thực thông điệp
Mã xác thực thông điệp(MAC)
Câu hỏi ôn tập
12.1 Xác thực thông điệp giải quyết những loại tấn công nào?
12.2 Hai cấp độ chức năng nào tạo nên cơ chế xác thực thông điệp hoặc chữ ký số?
12.3 Có một số cách tiếp cận nào để tạo ra xác thực thông điệp?
12.4 Khi sử dụng kết hợp mã hóa đối xứng và mã kiểm soát lỗi để xác thực thông điệp, hai chức năng phải được thực hiện theo thứ tự nào?
12.5 Mã xác thực thông điệp là gì?
12.6 Sự khác biệt giữa mã xác thực thông điệp và hàm băm một chiều là gì?
12.7 Giá trị băm có thể được bảo mật theo những cách nào để cung cấp xác thực thông điệp?
12.8 Có cần phải thu hồi khóa bí mật để tấn công thuật toán MAC không?
12.9 Cần những thay đổi nào đối với HMAC để thay thế một hàm băm cơ bản bằng một hàm khác?
Bài tập
12.1 Nếu F là một hàm phát hiện lỗi, thì việc sử dụng bên trong hoặc bên ngoài (Hình 12.2) sẽ cung cấp khả năng phát hiện lỗi. Nếu bất kỳ bit nào của thông điệp được truyền bị thay đổi, điều này sẽ được phản ánh trong sự không khớp của FCS nhận được và FCS được tính toán, cho dù chức năng FCS được thực hiện bên trong hay bên ngoài chức năng mã hóa. Một số mã cũng cung cấp khả năng sửa lỗi.
Tùy thuộc vào bản chất của hàm, nếu một hoặc một số bit nhỏ bị thay đổi trong quá trình truyền, mã sửa lỗi sẽ chứa đủ thông tin dự phòng để xác định bit hoặc các bit bị lỗi và sửa chúng. Rõ ràng, mã sửa lỗi sẽ cung cấp khả năng sửa lỗi khi được sử dụng bên ngoài chức năng mã hóa. Nó cũng sẽ cung cấp khả năng này nếu được sử dụng bên trong chức năng mã hóa?
12.2 Thuật toán xác thực dữ liệu, được mô tả trong Phần 12.6, có thể được định nghĩa là sử dụng chế độ hoạt động xích khối mã hóa (CBC) của DES với vectơ khởi tạo bằng 0 (Hình 12.7). Chứng minh rằng kết quả tương tự có thể thu được bằng cách sử dụng chế độ phản hồi mã hóa.
12.3 Ở đầu Phần 12.6, đã lưu ý rằng với MAC CBC của một thông điệp một khối X, chẳng hạn như T = MAC (K, X), kẻ tấn công ngay lập tức biết MAC CBC cho thông điệp hai khối X || (X ⊕ T) vì đây một lần nữa là T. Giải thích cho tuyên bố này.
12.4 Trong bài toán này, chúng tôi chứng minh rằng đối với CMAC, một biến thể XOR khóa thứ hai sau khi áp dụng mã hóa cuối cùng không hoạt động.
Hãy xem xét trường hợp thông điệp là bội số nguyên của kích thước khối. Sau đó, biến thể có thể được biểu thị là VMAC (K, M) = CBC (K, M) ⊕ K1. Bây giờ giả sử kẻ tấn công có thể yêu cầu MAC của ba thông điệp: thông điệp 0 = 0n, trong đó n là kích thước khối mã hóa; thông điệp 1 = 1n và thông điệp 1 || 0. Kết quả của ba truy vấn này, kẻ tấn công nhận được T0 = CBC (K, 0) ⊕ K1; T1 = CBC (K, 1) ⊕ K1 và T1 = CBC (K, [CBC (K, 1)]) ⊕ K1. Chứng minh rằng kẻ tấn công có thể tính toán MAC chính xác cho thông điệp (chưa được truy vấn)
0 || (T0⊕ T1).
12.5 Trong phần thảo luận về việc tạo khóa phụ trong CMAC, có nói rằng mã khối được áp dụng cho khối gồm toàn bộ các bit 0. Khóa phụ thứ nhất được suy ra từ chuỗi kết quả bằng cách dịch trái một bit và, có điều kiện, bằng XOR một
hằng số phụ thuộc vào kích thước khối. Khóa phụ thứ hai được suy ra theo cách tương tự từ khóa phụ thứ nhất.
a. Những hằng số cần thiết cho kích thước khối 192-bit và 256-bit là gì?
b. Giải thích cách dịch trái và XOR thực hiện kết quả mong muốn.
12.6 Phần 12.7 liệt kê bốn cách tiếp cận chung để cung cấp tính bảo mật và mã hóa thông điệp: H → E, A → E, E → A và E + A.
a. Phương pháp nào trong số các phương pháp trên thực hiện giải mã trước khi xác minh?
b. Phương pháp nào trong số các phương pháp trên thực hiện xác minh trước khi giải mã?
12.7 Tính theo hàm GHASH:
(X1 ∙ Hm) ⊕ (X1 ∙ Hm−1) ⊕ … ⊕ (Xm−1∙ H2) ⊕ (Xm ∙ H)
12.8 Vẽ một hình tương tự như Hình 12.11 hiển thị giải mã xác thực.
12.9 Alice muốn gửi một bit thông tin (đồng ý hoặc không đồng ý) cho Bob thông qua một từ có độ dài 2. Alice và Bob có bốn khóa khả dụng để thực hiện xác thực thông điệp. Bảng sau hiển thị từ 2 bit được gửi cho mỗi thông điệp dưới mỗi khóa:
a. Ma trận trước đó có dạng hữu ích cho Alice. Xây dựng một ma trận có thông tin tương tự nhưng sẽ hữu ích hơn cho Bob.
b. Xác suất mà người khác có thể thành công trong việc giả mạo thành Alice là bao nhiêu?
c. Xác suất mà ai đó có thể thay thế một tin nhắn bị chặn bằng một tin nhắn khác một cách thành công là bao nhiêu?
12.10 Vẽ các hình tương tự như Hình 12.12 và 12.13 cho thuật toán unwrap.
12.11 Xem xét thuật toán gói khóa sau đây:
1. Khởi tạo biến.
A = A6A6A6A6A6A6A6 For i = 1 to n
R(i) = Pi 2.Tính giá trị trung gian.
For j =0 to 5
For i = 1 to n
B = E(K, [A || R(i)]) t = (n × j) + i
A = t ⊕ MSB64(B) R(i) = LSB64 (B) 3.Xuất kết quả.
Co = A For i=1 to n
Ci = R(i)
a. So sánh thuật toán này về mặt chức năng với thuật toán được xác định trong SP 800-38F và mô tả trong Phần 12.8.
b. Viết thuật toán unwrap tương ứng
12.2 The data authentication algorithm, described in Section 12.6, can be defined as using the cipher block chaining (CBC) mode of operation of DES with an initialization vector of zero (Figure 12.7). Show that the same result can be produced using the cipher feedback mode.
The data authentication algorithm that can be defined as using the cipher block chaining (CBC) mode of operation of DES with an initialization vector of zero can also produce the same result using the cipher feedback mode.
What is a cipher block chaining?Cipher Block Chaining (CBC) is a block cipher mode of operation that uses an initialization vector (IV) to randomize the data before encryption. It is referred to as a chained mode since each block is