สมมติว่าผู้ส่งมีสตริง $x_1, \ldots, x_n$, แต่ละความยาว $\ell$.
ผู้รับมีทางเลือก $y \in \{1, \ldots, n\}$ และต้องการเรียนรู้ (เท่านั้น) $x_y$.
โปรโตคอลสามารถดำเนินการได้ดังนี้:
- ตัวรับสัญญาณสร้างคีย์ $k$ สำหรับโครงร่างการเข้ารหัสแบบโฮโมมอร์ฟิกแบบคีย์สมมาตร
- รับ ส่ง $c = \textsf{Enc}(k,y)$.
- ผู้ส่งจินตนาการถึงวงจรบูลีน $f$ สำหรับฟังก์ชั่น $y \mapsto x_y$ -- วงจรนี้มีทั้งหมดของ $x_i$ คุณค่าในตัว
- ผู้ส่งใช้คุณลักษณะการประเมินแบบโฮโมมอร์ฟิคเพื่อคำนวณในเครื่อง $c' = \textsf{Enc}(k,f(y))$.
- ผู้ส่งส่ง $c'$.
- ตัวรับถอดรหัสเพื่อรับ $f(y) = x_y$.
ข้อความเข้ารหัสเพียงสองรายการ (แต่ละรายการเข้ารหัสไฟล์ $\ell$-บิตสตริง) ถูกส่ง ดังนั้นสิ่งนี้อาจมีค่าใช้จ่าย $O(\kappa)+2\ell$ บิตสำหรับโครงร่าง FHE ที่เหมาะสม
หมายเหตุ: คุณต้องมีรูปแบบการเข้ารหัสที่เป็นวงจรส่วนตัว เช่น $c'$ ควรเปิดเผยไม่เกิน $ฉ(ย)$แม้กระทั่งกับผู้ถือกุญแจ
โปรโตคอลนี้ปลอดภัยต่อศัตรูกึ่งไม่จริงใจ แต่ก็มีวิธีที่จะขยายไปสู่ความปลอดภัยที่เป็นอันตรายได้เช่นกัน