Có, thẻ xác thực được chỉ định đầy đủ trong thông số kỹ thuật của GCM. Mặt khác, nó được đặt ở đâu không quan trọng - vị trí không ảnh hưởng đến giá trị của các bit của thẻ xác thực.
Nếu thuật toán khác thực hiện tách biệt việc xử lý thẻ xác thực - vì nó có thể nên như vậy - thì điều này cần được xem xét trong quá trình mã hóa và giải mã.
Để tuân thủ việc triển khai Java, cần phải gắn thẻ vào bản mã sau khi mã hóa. Thông thường, có thể định cỡ bộ đệm một cách thông minh hoặc sử dụng triển khai phát trực tuyến để không cần sao chép thẻ.
Để xác minh, có thể phải trích xuất nó từ phần đuôi của bản mã. Thông thường có thể đơn giản chỉ ra nó mặc dù trong bộ đệm giữ bản mã; trong trường hợp đó không cần sao chép hoặc thay đổi kích thước.
Các tham số cấu hình GCM (loại và kích thước IV/nonce, kích thước thẻ xác thực) phải được thỏa thuận trước bởi cả hai bên, bằng cách chỉ định chúng trực tiếp trong giao thức hoặc bằng cách chọn một bộ tham số cấu hình được xác định trước trong thời gian chạy.
Điều đó có nghĩa là kích thước thẻ xác thực phải được biết trước. Vì vậy, có thể tìm thấy thẻ xác thực khi kích thước bản mã đã được thiết lập. Tất nhiên, không có gì ngăn cản bạn đưa kích thước bản mã vào giao thức; chẳng hạn, bạn có thể bao gồm chỉ báo kích thước 32 bit (thường là giá trị cuối lớn 32 bit không dấu) trong tiêu đề của giao thức của bạn. Bằng cách đó, có thể tìm thấy thẻ xác thực mà không cần có toàn bộ bản mã/bản rõ trong bộ nhớ hệ thống - giả sử rằng việc triển khai không yêu cầu người dùng thực hiện mã hóa/giải mã tất cả cùng một lúc.
Rõ ràng là cả hai bên cũng cần sử dụng cùng một dữ liệu xác thực bổ sung (AAD) cho thẻ để xác minh.
Thông thường nên giữ thẻ xác thực ở kích thước tối đa 128 bit (kích thước khối của thuật toán AES và kích thước của trường Galois của GHASH). Việc triển khai Oracle Java không mặc định ở kích thước đó. Vì vậy, trong trường hợp đó, 16 byte cuối cùng của bản mã (mở rộng) tạo thành thẻ xác thực.