การเข้ารหัสที่ตรวจสอบสิทธิ์เชิงกำหนดพร้อมข้อมูลที่เกี่ยวข้อง (defineistic AEAD)

Primitive การเข้ารหัสที่ผ่านการตรวจสอบสิทธิ์แบบดีเทอร์มินิสติกพร้อมข้อมูลที่เชื่อมโยง (Deterministic AEAD) ให้การเข้ารหัสที่มีพร็อพเพอร์ตี้ดีเทอร์มินิสติก นั่นคือการเข้ารหัสข้อมูลเดียวกันจะให้ข้อความที่เข้ารหัสเดียวกันเสมอ การเข้ารหัสประเภทนี้มีประโยชน์สำหรับการรวมคีย์หรือสำหรับบางรูปแบบในการค้นหาข้อมูลที่เข้ารหัส (ดูข้อมูลเพิ่มเติมได้ที่ RFC 5297, Section 1.3) เนื่องจากคุณสมบัติที่แน่นอน การใช้งาน Primitive นี้ อาจทำให้สูญเสียความลับได้ เนื่องจากผู้โจมตีเพียงแค่ต้องค้นหา ข้อความที่เข้ารหัสสำหรับข้อความที่กำหนดเพื่อระบุอินสแตนซ์อื่นๆ ของข้อความนั้น

AEAD ที่กำหนดได้มีคุณสมบัติดังนี้

  • Secrecy: ไม่ทราบข้อมูลใดๆ เกี่ยวกับข้อความธรรมดา ยกเว้นความยาวและความเท่ากันของข้อความธรรมดาที่ซ้ำกัน
  • ความถูกต้อง: ไม่สามารถเปลี่ยนแปลงข้อความธรรมดาที่เข้ารหัส ซึ่งอยู่ภายใต้ข้อความที่เข้ารหัสโดยไม่ถูกตรวจพบ
  • สมมาตร: การเข้ารหัสข้อความธรรมดาและการถอดรหัสข้อความที่เข้ารหัสจะ ดำเนินการด้วยคีย์เดียวกัน
  • แน่นอน: ตราบใดที่ไม่ได้เปลี่ยนคีย์หลัก การเข้ารหัสข้อความธรรมดาสองครั้งด้วยพารามิเตอร์เดียวกันจะส่งผลให้ได้ข้อความที่เข้ารหัสเดียวกัน

ข้อมูลที่เกี่ยวข้อง

คุณใช้ AEAD ที่กำหนดได้เพื่อเชื่อมโยงข้อความที่เข้ารหัสกับข้อมูลที่เชื่อมโยงที่เฉพาะเจาะจง สมมติว่าคุณมีฐานข้อมูลที่มีฟิลด์ user-id และ encrypted-medical-history ในสถานการณ์นี้ สามารถใช้ user-id เป็น ข้อมูลที่เชื่อมโยงเมื่อเข้ารหัส encrypted-medical-history ซึ่งจะป้องกันไม่ให้ ผู้โจมตีย้ายประวัติทางการแพทย์จากผู้ใช้รายหนึ่งไปยังอีกรายหนึ่ง

ข้อมูลที่เชื่อมโยงเป็นข้อมูลที่ไม่บังคับ หากระบุไว้ การถอดรหัสจะสำเร็จก็ต่อเมื่อมีการส่งข้อมูลที่เชื่อมโยงเดียวกันไปยังทั้งการเรียกใช้ฟังก์ชันเข้ารหัสและถอดรหัส

เลือกประเภทคีย์

เราขอแนะนำให้ใช้คีย์ประเภท AES256_SIV สำหรับ Use Case ทั้งหมด

การรับประกันด้านความปลอดภัย

  • ระดับการตรวจสอบสิทธิ์อย่างน้อย 80 บิต
  • ข้อความธรรมดาและข้อมูลที่เกี่ยวข้องมีความยาวเท่าใดก็ได้ (ภายในช่วง 0..232 ไบต์)
  • ระดับความปลอดภัย 128 บิตต่อการโจมตีเพื่อกู้คืนคีย์ และยังใช้ในการโจมตีแบบหลายผู้ใช้ที่มีคีย์สูงสุด 232 คีย์ ซึ่งหมายความว่าหากผู้ไม่ประสงค์ดีได้รับข้อความที่เข้ารหัส 232 ข้อความซึ่งเข้ารหัสภายใต้คีย์ 232 คีย์เดียวกัน ผู้ไม่ประสงค์ดีจะต้องทำการคำนวณ 2128 ครั้งเพื่อรับคีย์เพียงคีย์เดียว
  • ความสามารถในการเข้ารหัสข้อความ 238 อย่างปลอดภัย โดยแต่ละข้อความต้องมีความยาวน้อยกว่า 1 MB

ตัวอย่างกรณีการใช้งาน

ดูฉันต้องการเข้ารหัสข้อมูลแบบกำหนดและ ฉันต้องการเชื่อมโยงข้อความที่เข้ารหัสกับบริบทของข้อความ