Oblivious Programmable PRF

Summary

An Oblivious Programmable PRF (OPPRF) is an extension of an OPRF where the sender can "program" the PRF output on a set of chosen points. In a standard OPRF, the receiver learns \(F(k,q)\) for queries \(q\) without learning \(k\), and the sender learns nothing about \(q\). In an OPPRF, the sender additionally specifies a set of points \(\mathcal{P} = \{(a_i, t_i)\}\) such that \(F(k, a_i) = t_i\), while the PRF still outputs pseudorandom values on all non-programmed inputs.

Formal Definition

The OPPRF ideal functionality \(\mathcal{F}^{m_1,m_2}_{\mathsf{opprf}}\) is parameterized by:

  • \(m_1\): upper bound on the number of programmable points
  • \(m_2\): upper bound on the number of receiver queries

The protocol proceeds as follows:

  1. Sender sends programmed points \(\mathcal{P} := \{(a_1,t_1), \ldots, (a_{m_1},t_{m_1})\}\) with distinct keys \(a_i\).
  2. Receiver sends \(m_2\) distinct queries \((q_1,\ldots,q_{m_2})\).
  3. The functionality runs \(k \leftarrow \mathsf{KeyGen}(\kappa, \mathcal{P})\).
  4. Output \(k\) to Sender, \(\{F(k,q_1), \ldots, F(k,q_{m_2})\}\) to Receiver.

If \(q_j = a_i\) for some \(i\), then \(F(k,q_j) = t_i\). Otherwise, \(F(k,q_j)\) is pseudorandom.

Relationship to OKVS

An Oblivious Key Value Store can be viewed as a non-interactive version of an OPPRF that can also be sent in the clear [1]. While an OPPRF requires interaction between sender and receiver, an OKVS encodes programmed key-value pairs into a data structure \(S\) that the receiver can decode locally. A polynomial is the most compact form of an OKVS.

Construction from OPRF + Polynomial (Kolesnikov et al.)

The original construction from [2] builds an OPPRF from an OPRF and polynomial interpolation:

  1. Sender holds programmed points \(\mathcal{P} = \{(a_i, t_i)\}_{i \in [m_1]}\). Receiver holds queries \(Y = \{y_j\}_{j \in [m_2]}\).
  2. Sender and receiver run an OPRF: the receiver obtains \(\{F(k, y_j)\}\) for each \(y_j \in Y\), and the sender obtains key \(k\).
  3. Sender interpolates a polynomial \(P\) of degree \(m_1 - 1\) over the points \(\{(a_i,\ t_i \oplus F(k, a_i))\}_{i \in [m_1]}\). That is, \(P(a_i) = t_i \oplus F(k, a_i)\) for all \(i\).
  4. Sender sends \(P\) to the receiver.
  5. Receiver computes \(\mathsf{out}_j = F(k, y_j) \oplus P(y_j)\) for each query \(y_j\).

If \(y_j = a_i\) for some \(i\), then \(P(y_j) = t_i \oplus F(k, a_i)\), so \(\mathsf{out}_j = F(k, a_i) \oplus t_i \oplus F(k, a_i) = t_i\). Otherwise, \(P(y_j)\) is an unrelated field element and \(\mathsf{out}_j\) is pseudorandom (since \(F(k, y_j)\) is pseudorandom and independent of \(P(y_j)\)).

The polynomial can be replaced by any Oblivious Key Value Store encoding, which is how modern constructions work: the sender encodes \(\{(a_i,\ t_i \oplus F(k, a_i))\}\) into an OKVS structure \(T\) instead of a polynomial, and the receiver decodes \(\mathsf{Decode}(T, y_j)\) in place of evaluating \(P(y_j)\).

Applications

OPPRFs are primarily used in multi-party private set intersection (PSI) protocols. The sender programs the PRF on its set elements with specific values, and the receiver evaluates on its own set. Matching elements yield the programmed values, while non-matching elements produce pseudorandom outputs, enabling set intersection without revealing non-intersecting elements.

Notes

  • First introduced by [2] as part of their multi-party PSI protocol using symmetric-key techniques.
  • The key difference from an OPRF is the programmability: the sender controls the output on specific points rather than the PRF being fully random.
  • Server-aided variants exist (e.g., [3]) where a helper party assists in the protocol, allowing the OPPRF to be constructed using a non-shuffled server-aided OPRF combined with an OKVS encoding.
  • In practice, interactive OPPRFs have been largely superseded by Oblivious Key Value Store-based constructions. The state of the art uses OKVS combined with subfield VOLE [4], though these approaches demand large bandwidths [1]. Near-optimal OKVS constructions are given by [5].

References

[1] Jelle Vos, Mauro Conti, and Zekeriya Erkin. 2024. “SoK: Collusion-resistant Multi-party Private Set Intersections in the Semi-honest Model.” https://ieeexplore.ieee.org/abstract/document/10646669?casa_token=SC9GM3SMrZcAAAAA:GWpdE0SfvbK5E4vPnmP-wCRLV2udPyeerw8Xtuqv5KZMjhaPDKjIuVt0Ih03_U1kCiqb1sEtKd4v.
[2] Vladimir Kolesnikov, Naor Matania, Benny Pinkas, Mike Rosulek, and Ni Trieu. 2017. “Practical Multi-party Private Set Intersection from Symmetric-Key Techniques.” https://dl.acm.org/doi/10.1145/3133956.3134065.
[3] Jiahui Gao, Ni Trieu, and Avishay Yanai. 2024. “Multiparty Private Set Intersection Cardinality and Its Applications.” https://petsymposium.org/popets/2024/popets-2024-0041.php.
[4] Srinivasan Raghuraman, and Peter Rindal. 2022. “Blazing Fast PSI from Improved OKVS and Subfield VOLE.” https://dl.acm.org/doi/10.1145/3548606.3560658.
[5] Alexander Bienstock, Sarvar Patel, Joon Young Seo, and Kevin Yeo. 2023. “Near-Optimal Oblivious Key-Value Stores for Efficient PSI, PSU and Volume-Hiding Multi-Maps.” https://eprint.iacr.org/2023/903.