Inner-product predicate encryption
Inner-product predicate encryption (IPPE) is a form of predicate encryption in which keys and ciphertexts are each associated with vectors over . A key for vector can decrypt a ciphertext for vector if and only if . IPPE achieves full attribute-hiding: a ciphertext hides both the encrypted payload and the attribute vector . It subsumes HVE and, via inner-product encodings, supports disjunctions, CNF/DNF formulas, and polynomial evaluation—making it the practical ceiling before full predicate encryption.
Syntax
An IPPE scheme is a tuple of efficient algorithms with respect to prime , dimension , message space , and ciphertext space :
- is a randomized algorithm that outputs public parameters and master secret key ,
- is a (possibly randomized) algorithm that takes and a predicate vector , outputting a secret key ,
- is a randomized algorithm that takes , an attribute vector , and , outputting ,
- is a deterministic algorithm that takes and , outputting or .
Decryption succeeds if and only if .
Properties
Correctness
An IPPE scheme is -correct if for all , with , and ,
over and randomness of and .
Full Attribute-Hiding Security
In the full attribute-hiding game, the adversary submits two ciphertext candidates and and receives an encryption of one of them. Admissibility requires that every queried key vector is consistent with both candidates: .
\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{ah}}_{\mathsf{IPPE},\calA}(\secpar)$}
\begin{algorithmic}
\State $(\pp, \msk) \gets \Setup(1^\secpar, p, n)$; $b \getsr \bits$
\State $\calO_{\mathrm{key}}(v) := \KeyGen(\msk, v)$
\State $((x_0, m_0), (x_1, m_1), \stA) \gets \calA^{\calO_{\mathrm{key}}}(1^\secpar, \pp)$
\Comment{For all queried $v$: $\langle v, x_0 \rangle = 0$ iff $\langle v, x_1 \rangle = 0$ (mod $p$)}
\State $c^* \gets \Enc(\pp, x_b, m_b)$
\State $b' \gets \calA^{\calO_{\mathrm{key}}}(c^*, \stA)$
\Comment{Same admissibility constraint holds throughout}
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}
An IPPE scheme is attribute-hiding if for all efficient admissible ,
is negligible.
Variations
Payload-only hiding
Dropping the attribute-hiding requirement yields a simpler payload-hiding variant: the adversary commits to a single and submits two messages, with the constraint that no queried satisfies .
Zero inner product vs. non-zero
Some formulations flip the predicate: decryption succeeds when . This is equivalent up to a simple transformation (append a constant coordinate) and is sometimes more natural for access control.
Other results
- IPPE generalizes HVE: a conjunctive pattern predicate over can be encoded as an inner-product predicate by choosing an alphabet embedding into
- IPPE is incomparable to KP-ABE and CP-ABE: IPPE achieves full attribute-hiding but only captures inner-product predicates, while KP/CP-ABE supports arbitrary monotone Boolean formulas but leaks the access policy
- KSW08 introduced IPPE and showed that inner products encode disjunctions, polynomial equations, and CNF/DNF formulas; the scheme is proved attribute-hiding under the decisional linear assumption — KSW08