ฟังก์ชันสุ่มเทียม (PRF)

ฟังก์ชัน Pseudo-Random Function (PRF) ดั้งเดิมทำให้คุณสามารถสร้างเอาต์พุตแบบสุ่มที่มีความยาวได้เองและคงที่สำหรับอินพุตที่ระบุ

เนื่องจาก Tink ทำงานบนคีย์เซ็ต ค่าพื้นฐานนี้จึงแสดงชุด PRF ที่สอดคล้องกันแทนที่จะเป็น PRF รายการเดียว PRF จะได้รับการจัดทำดัชนีด้วยรหัสคีย์ 32 บิต ซึ่งจะใช้ในการหมุนเวียนคีย์ที่ใช้ในการปกปิดข้อมูลบางส่วนโดยไม่สูญเสียการเชื่อมโยงก่อนหน้านี้

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

  • กำหนด: การคำนวณ PRF สำหรับอินพุตหนึ่งๆ จะให้เอาต์พุตเดียวกันเสมอ
  • การสุ่ม: เอาต์พุตของ PRF จะแยกแยะจากไบต์แบบสุ่มไม่ได้

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

เราขอแนะนำให้ใช้ HMAC_SHA256_PRF สำหรับการใช้งานส่วนใหญ่ แต่ก็ยังมีตัวเลือกอื่นๆ เช่นกัน

โดยทั่วไปแล้ว เงื่อนไขต่อไปนี้เป็นจริง

  • HMAC_SHA512_PRF อาจเร็วขึ้นหรือไม่ ขึ้นอยู่กับขนาดอินพุตของคุณและข้อมูลเฉพาะของฮาร์ดแวร์ที่คุณใช้
  • HMAC_SHA512_PRF เป็นโหมดที่เข้มงวดที่สุดที่ใช้กับข้อความได้ไม่จำกัดจำนวน
  • AES_CMAC_PRF คือความเร็วสูงสุดในระบบที่รองรับการเร่งฮาร์ดแวร์ AES-NI

รับประกันความปลอดภัยเพียงเล็กน้อย

  • หากไม่มีความรู้เรื่องคีย์ PRF ก็ไม่อาจแยกแยะจากฟังก์ชันแบบสุ่มได้
  • การรักษาความปลอดภัยแบบ 128 บิตเป็นอย่างน้อย และในสถานการณ์ที่มีผู้ใช้หลายคน (เมื่อผู้โจมตีไม่ได้กำหนดเป้าหมายคีย์ใดคีย์หนึ่ง แต่ระบุคีย์ใดๆ จากชุดคีย์สูงสุด 232 คีย์)
  • มีเอาต์พุตอย่างน้อย 16 ไบต์

ตัวอย่าง Use Case

กรณีการใช้งานของ PRF ได้แก่ การปกปิดข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้ (PII) ฟังก์ชันแฮชเชิงกำหนด และการสร้างรหัสย่อยที่ไม่อนุญาตให้เชื่อมโยงกับชุดข้อมูลต้นฉบับโดยไม่ทราบคีย์

แม้ว่า PRF จะใช้เพื่อพิสูจน์ความถูกต้องของข้อความได้ แต่ขอแนะนำให้ใช้พื้นฐานของ MAC สำหรับกรณีการใช้งานนั้น เนื่องจากระบบรองรับการยืนยันและหลีกเลี่ยงปัญหาด้านความปลอดภัยที่มักเกิดขึ้นระหว่างการยืนยันและมีการรองรับการหมุนเวียนคีย์โดยอัตโนมัติ และยังทำให้ใช้อัลกอริทึม แบบไม่กำหนดได้ด้วย