ฟังก์ชัน 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 สำหรับกรณีการใช้งานนั้น เนื่องจากระบบรองรับการยืนยันและหลีกเลี่ยงปัญหาด้านความปลอดภัยที่มักเกิดขึ้นระหว่างการยืนยันและมีการรองรับการหมุนเวียนคีย์โดยอัตโนมัติ และยังทำให้ใช้อัลกอริทึม แบบไม่กำหนดได้ด้วย