ใช่ แท็กการรับรองความถูกต้องระบุไว้อย่างครบถ้วนในข้อกำหนดเฉพาะของ GCM ตำแหน่งที่วางนั้นไม่สำคัญ - ตำแหน่งนั้นไม่ส่งผลต่อค่าของบิตของแท็กการรับรองความถูกต้อง
หากอัลกอริทึมอื่นๆ การนำไปใช้งาน แยกการจัดการแท็กการรับรองความถูกต้อง - อย่างที่ควรจะเป็น - ดังนั้นสิ่งนี้ควรนำมาพิจารณาในระหว่างการเข้ารหัสและถอดรหัส
เพื่อให้สอดคล้องกับการใช้งาน Java จำเป็นต้องเพิ่มแท็กต่อท้ายข้อความเข้ารหัสหลังการเข้ารหัส โดยปกติแล้ว เป็นไปได้ที่จะปรับขนาดบัฟเฟอร์อย่างชาญฉลาดหรือใช้งานการสตรีมเพื่อให้ไม่จำเป็นต้องคัดลอกแท็ก
สำหรับการตรวจสอบ อาจจำเป็นต้องดึงข้อมูลจากส่วนท้ายของไซเฟอร์เท็กซ์ มักจะเป็นไปได้ง่ายๆ ระบุว่า ภายในบัฟเฟอร์ที่ถือไซเฟอร์เท็กซ์ ในกรณีนั้น ไม่จำเป็นต้องคัดลอกหรือปรับขนาด.
จำเป็นต้องมีการตกลงตามพารามิเตอร์การกำหนดค่า GCM (ประเภทและขนาด IV/nonce, ขนาดแท็กการรับรองความถูกต้อง) ล่วงหน้า โดยทั้งสองฝ่าย โดยระบุโดยตรงในโปรโตคอล หรือโดยการเลือกชุดพารามิเตอร์การกำหนดค่าที่กำหนดไว้ล่วงหน้าในระหว่างรันไทม์
นั่นหมายความว่าควรทราบขนาดแท็กการตรวจสอบสิทธิ์ล่วงหน้า ดังนั้นจึงควรสามารถค้นหาแท็กการรับรองความถูกต้องได้เมื่อกำหนดขนาดไซเฟอร์เท็กซ์แล้ว แน่นอนว่าไม่มีอะไรขัดขวางคุณในการรวมขนาดไซเฟอร์เท็กซ์ภายในโปรโตคอลเช่นกัน เป็นเรื่องปกติที่จะรวมตัวบ่งชี้ขนาด 32 บิต (โดยปกติจะเป็นค่า endian ขนาดใหญ่ 32 บิตที่ไม่ได้ลงนาม) ในส่วนหัวของโปรโตคอลของคุณ ด้วยวิธีนี้ทำให้สามารถค้นหาแท็กการรับรองความถูกต้องได้โดยไม่ต้องมีข้อความเข้ารหัส/ข้อความธรรมดาทั้งหมดภายในหน่วยความจำระบบ โดยถือว่าการใช้งานไม่จำเป็นต้องให้ผู้ใช้ทำการเข้ารหัส/ถอดรหัสทั้งหมดในครั้งเดียว
เห็นได้ชัดว่าทั้งสองฝ่ายจำเป็นต้องใช้ข้อมูลตรวจสอบความถูกต้องเพิ่มเติม (AAD) ที่เหมือนกันสำหรับแท็กในการตรวจสอบ
โดยปกติแล้ว ขอแนะนำให้เก็บแท็กการรับรองความถูกต้องไว้ที่ขนาดสูงสุด 128 บิต (ขนาดบล็อกของอัลกอริทึม AES และขนาดของฟิลด์ Galois ของ GHASH) การใช้งาน Oracle Java ตั้งค่าเริ่มต้นเป็นขนาดนั้น ดังนั้นในกรณีดังกล่าว 16 ไบต์สุดท้ายของไซเฟอร์เท็กซ์ (ขยาย) ประกอบเป็นแท็กการตรวจสอบสิทธิ์