คุณคิดว่ารูปแบบการรักษาการเข้ารหัส (FPE) มีข้อ จำกัด ใด ๆ เกี่ยวกับบล็อกรหัสทั่วไปอื่น ๆ หรือไม่?
ที่จริงแล้ว เราสามารถดูโครงร่าง FPE ในลักษณะทั่วไปของการเข้ารหัสแบบบล็อกทั่วไปได้ ท้ายที่สุดแล้ว การเข้ารหัสแบบบล็อกทั่วไปจะถูกกำหนดเป็นขนาดบล็อกเฉพาะ ด้วย FPE เราสามารถใช้ขนาดบล็อกใดก็ได้ที่เราสะดวก (เช่น ข้อความทั้งหมด)
FPE มีการใช้งานที่หลากหลายเพื่อเป็นพื้นที่การวิจัยในอนาคตหรือไม่?
ฉันเชื่ออย่างนั้น ข้อดีอย่างหนึ่งเกี่ยวกับ FPE (ด้วยการปรับแต่ง โครงร่าง FPE ส่วนใหญ่อนุญาตให้มีได้) คือการสร้างโครงร่าง AEAD ที่ทนต่อการใช้งานในทางที่ผิดได้ง่าย:
หากต้องการเข้ารหัส คุณต้องใช้ข้อความ $M$, และผนวก $k$ ศูนย์และ $\ell$ บิตสุ่ม (หรือไม่มีเลย ตัวถอดรหัสจะกู้คืนบิตเหล่านี้และเพื่อให้สามารถใช้เป็นหมายเลขลำดับได้หากจำเป็น) เข้ารหัสด้วยรูปแบบ FPE โดยใช้ AAD เป็นการปรับแต่ง
ในการถอดรหัส คุณถอดรหัสด้วยรูปแบบ FPE โดยใช้ AAD เป็นการปรับแต่ง แยกวิเคราะห์ผลลัพธ์และตรวจสอบว่า $k$ เลขศูนย์ปรากฏขึ้นที่ส่วนท้าย
ควรชัดเจนว่านี่เป็นโครงร่าง AAD ที่ปลอดภัย (สมมติว่าโครงร่าง FPE นั้นปลอดภัย) นอกจากนี้:
หากผู้ส่งใช้การสุ่มที่ไม่ดี $\ell$ บิตสุ่ม มันกลายเป็นแผนกำหนดที่ฝ่ายตรงข้ามสามารถระบุได้ว่าข้อความเดียวกันถูกส่งสองครั้งหรือไม่ แต่ไม่สามารถระบุอะไรนอกเหนือจากนั้น
หากผู้รับลืมตรวจสอบ $k$ เลขศูนย์ แล้วสิ่งนี้จะกลายเป็นแผนการที่อ่านไม่ออกโดยที่ฝ่ายตรงข้ามสามารถเปลี่ยนข้อความที่ถอดรหัสเป็นบางอย่างแบบสุ่ม แต่ไม่สามารถทำอะไรนอกเหนือจากนั้นได้ ซึ่งตรงกันข้ามกับรูปแบบ AEAD หลายๆ แบบ ซึ่งถ้าตัวถอดรหัสลืมตรวจสอบแท็ก การเข้ารหัสก็จะเปลี่ยนแปลงได้ (โดยหลักแล้ว AAD จะถูกละเว้น)
แล้วถ้ามันวิเศษมาก ข้อเสียคืออะไร? สิ่งสำคัญประการหนึ่งคือประสิทธิภาพ - รูปแบบ FPE ในปัจจุบันค่อนข้างช้า ดังนั้นจึงไม่ได้ใช้การออกแบบที่ตรงไปตรงมานี้ รูปแบบ FPE ที่มีประสิทธิภาพดีกว่า (แต่ยังคงปลอดภัย) จะทำให้สิ่งนี้น่าสนใจยิ่งขึ้น
ข้อเสียเปรียบที่ชัดเจนอีกประการหนึ่งคือ FPE ไม่สามารถดำเนินการในลักษณะ "ผ่านครั้งเดียว" (โดยที่เราประมวลผลข้อความเป็นส่วนๆ) สิ่งนี้สะดวกเมื่อเราต้องจัดการกับข้อความขนาดใหญ่ อย่างไรก็ตาม ควรเห็นได้ชัดว่าความสามารถในการทำการเข้ารหัสที่ทนต่อการใช้งานในทางที่ผิด (โดยที่ไม่มีการรั่วไหลของเอนโทรปีที่ไม่มีการรั่วไหลเฉพาะในกรณีที่ข้อความเหมือนกัน) เข้ากันไม่ได้กับการเข้ารหัสแบบ one-pass และความสามารถในการถอดรหัสที่ทนต่อการใช้งานในทางที่ผิด (โดยที่ลืม ตรวจสอบ การตรวจสอบความสมบูรณ์ อนุญาตให้ผู้โจมตีที่ใช้งานสุ่มข้อความธรรมดาเท่านั้น) เข้ากันไม่ได้กับการถอดรหัสแบบผ่านเดียว