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

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

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

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

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

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

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

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

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

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

ตัวอย่าง Use Case

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