คุณไม่สามารถตรวจสอบได้อย่างน่าเชื่อถือว่าข้อมูลมีคำนำหน้าแบบสุ่มหรือไม่ สำหรับคีย์เดียวกัน ข้อมูลโดยทั่วไปจะไม่ล้มเหลวในการยกเลิกการแพด สิ่งที่คุณต้องทำคือใช้โปรโตคอลอื่น
ตัวอย่างเช่น คุณสามารถมีเวทมนตร์แบบสุ่มขนาด 16 ไบต์เต็มหน้าไฟล์ที่เข้ารหัสใหม่ (แน่นอนว่าสร้างครั้งเดียว) จากนั้นหมายเลขเวอร์ชันและข้อมูลอื่นๆ รวมถึง IV แบบสุ่ม ข้อความเข้ารหัส และ HMAC เหนือส่วนหัวและข้อมูลรวมถึง IV. ด้วยวิธีนี้คุณสามารถตรวจจับได้ว่าใช้การเข้ารหัสที่ถูกต้อง (เนื่องจากการสร้างเวทมนตร์นั้นโดยบังเอิญมีโอกาสเป็น 1 ใน $2^{128}$) เพียงแค่ทำการเปรียบเทียบ คุณยังได้ปกป้องไฟล์ของคุณเพื่อความสมบูรณ์และความถูกต้องโดยใช้ HMAC (นี่เป็นทางเลือกและไม่จำเป็นอย่างยิ่งสำหรับการรักษาความลับ - แต่แนะนำเป็นอย่างยิ่ง)
นั่นจะเป็น:
MAGIC (16 ไบต์) | รุ่น | IV (16 ไบต์) | ข้อความไซเฟอร์เท็กซ์ | แท็ก
โดยที่ TAG คือแท็กการตรวจสอบสิทธิ์ที่สร้างขึ้นโดยใช้ HMAC แทนทุกอย่างก่อนหน้านี้
แน่นอนว่ามีคนจำนวนมากที่เขียนโปรโตคอลแบบนี้แล้วเช่นกัน ดังนั้นคุณอาจต้องการดูรูปแบบคอนเทนเนอร์ เช่น CMS (ซึ่งมักจะขึ้นอยู่กับการเข้ารหัสคีย์สาธารณะ / ใบรับรอง) หรือแม้กระทั่ง NaCL