AES-GCM thuộc loại A5 trong bài báo. Trong AES-GCM không hỗ trợ $\texttt{không có AAD}$, ngay cả khi bạn không sử dụng AAD trong quá trình mã hóa, AES-GCM sẽ chuyển đổi nó thành $\texttt{zero-length-AAD}$.
Xem trong NIST Ấn phẩm đặc biệt 800-38d, trang 15;
Thuật toán 4: $GCM-AE_K (IV, P, A)$
â¦
4. Hãy để $u = 128\cdot\lceil\operatorname{len}(C)/128\rceil - \operatorname{len}(C)$ và để cho $v = 128\cdot\lceil\operatorname{len}(A)/128\rceil - \operatorname{len}(A)$.
5. Xác định một khối, $S$, như sau: $$S = \operatorname{GHASH}_H(\mathbf{A \mathbin\| \mathtt 0^v} \mathbin\| C \mathbin\| \mathtt 0^u \mathbin\| \mathbf{[\operatorname{ len}(A)]_{64}} \mathbin\| [\operatorname{len}(C)]_{64}).$$
â¦
Trong Bước 4 và 5, mỗi AAD và bản mã được thêm vào với số lượng tối thiểu là â$\mathtt 0$bit, có thể không có, sao cho độ dài bit của chuỗi kết quả là bội số của kích thước khối (Phần in đậm là của tôi).
$A$ là dữ liệu liên quan, $len(A) = 0$ vì thế, $\mathtt{v} = 0$. Ngay cả trong trường hợp này, chúng tôi có $[\operatorname{len}(A)]_{64}$, mã hóa 64 bit này có độ dài của dữ liệu được liên kết và điều này sẽ luôn cho biết sự tồn tại của AAD, độ dài bằng 0 hay không!.
Nếu kẻ tấn công, xóa dữ liệu được liên kết, để làm cho nó có vẻ như không có độ dài, thì trong quá trình giải mã, người ta phải tạm dừng với thẻ không khớp ( Luôn tạm dừng và dừng quá trình giải mã cùng một lúc).
Một sơ đồ hỗ trợ không có AAD, không được mang thông tin về AAD bị thiếu, nếu không, nó sẽ rơi vào AAD có độ dài bằng không.
Cuối cùng, chúng tôi có thêm khả năng bảo vệ chống lại các hành vi giả mạo với AAD có độ dài bằng 0.