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

การเข้ารหัสที่ตรวจสอบสิทธิ์แล้วด้วยข้อมูลที่เกี่ยวข้อง (AEAD) คือวิธีพื้นฐานที่ใช้กันมากที่สุดสำหรับการเข้ารหัสข้อมูลและเหมาะสำหรับความต้องการส่วนใหญ่

AEAD มีพร็อพเพอร์ตี้ต่อไปนี้

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

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

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

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

แม้ว่าเราจะแนะนำให้ใช้ AES128_GCM สำหรับการใช้งานส่วนใหญ่ แต่ก็มีคีย์หลายประเภทเพื่อตอบสนองความต้องการที่แตกต่างกัน (สำหรับการรักษาความปลอดภัย 256 บิต ให้แทนที่ AES128 ด้วย AES256 ด้านล่าง) โดยทั่วไป

  • AES128_CTR_HMAC_SHA256 พร้อมเวกเตอร์การเริ่มต้น (IV) ขนาด 16 ไบต์เป็นโหมดที่มีขอบเขตเหมาะสมที่สุด
  • AES128_EAX ประหยัดกว่าเล็กน้อยและเร็วกว่า AES128_CTR_HMAC_SHA256 เล็กน้อย
  • AES128_GCM มักเป็นโหมดที่ทำงานได้เร็วที่สุด โดยมีขีดจำกัดจำนวนข้อความและขนาดข้อความที่เข้มงวดที่สุด เมื่อเกินขีดจำกัดของข้อความธรรมดาและข้อมูลที่เกี่ยวข้อง (ด้านล่าง) แล้ว AES128_GCM จะล้มเหลวและทําให้เนื้อหาหลักรั่วไหล
  • AES128_GCM_SIV เร็วพอๆ กับ AES128_GCM โดยมีขอบเขตที่ดีมากสำหรับข้อความจำนวนมาก แต่อยู่ในระดับที่น้อยกว่าเล็กน้อย หากต้องการใช้โปรแกรมนี้ใน Java คุณต้องติดตั้ง Conscrypt
  • XChaCha20Poly1305 จำกัดจำนวนข้อความและขนาดข้อความมากกว่า AES128_GCM แต่เมื่อล้มเหลว (แทบจะไม่เกิดขึ้นเลย) ก็อาจทำให้เนื้อหาสำคัญรั่วไหลด้วย ซึ่งไม่ใช่การเร่งฮาร์ดแวร์ จึงอาจช้ากว่าโหมด AES ในสถานการณ์ที่มีการเร่งฮาร์ดแวร์

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

ข้อเสนอการติดตั้งใช้งาน AEAD มีดังนี้

  • การรักษาความปลอดภัยของ CCA2
  • ระดับการตรวจสอบสิทธิ์อย่างน้อย 80 บิต
  • ความสามารถในการเข้ารหัสข้อความอย่างน้อย 232 ข้อความในขนาดรวม 250 ไบต์ ไม่มีการโจมตีที่มีข้อความธรรมดาที่เลือกไว้หรือข้อความเข้ารหัสที่เลือกไม่เกิน 232 รายการมีโอกาสประสบความสำเร็จสูงกว่า 2-32

ตัวอย่าง Use Case

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