Hidden vector encryption

Hidden vector encryption (HVE) is a form of predicate encryption in which ciphertexts are labeled with an attribute vector and secret keys correspond to conjunctive pattern predicates . A key for pattern decrypts a ciphertext for attribute if and only if matches at every non-wildcard position: . The same framework supports subset queries and range queries (via bit decomposition). The primary motivation is fine-grained access control over encrypted databases and conjunctive keyword search.

Syntax

An HVE scheme is a tuple of efficient algorithms with respect to alphabet , vector length , 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 pattern 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 matches : for all , either (wildcard) or .

Properties

Correctness

An HVE scheme is -correct if for all , , with matching , and ,

over and randomness of and .

Payload-Hiding Security

In the payload-hiding game (analogous to IND-CPA), the attribute vector is public and the adversary tries to distinguish the encrypted payload. The adversary may query keys for patterns, subject to the constraint that no queried pattern matches the challenge attribute vector.

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{ph}}_{\mathsf{HVE},\calA}(\secpar)$}
\begin{algorithmic}
\State $(\pp, \msk) \gets \Setup(1^\secpar, \Sigma, n)$; $b \getsr \bits$
\State $\calO_{\mathrm{key}}(v) := \KeyGen(\msk, v)$
\State $(x^*, m_0, m_1, \stA) \gets \calA^{\calO_{\mathrm{key}}}(1^\secpar, \pp)$
\Comment{$\calA$ may not have queried $\calO_{\mathrm{key}}(v)$ for $v$ matching $x^*$}
\State $c^* \gets \Enc(\pp, x^*, m_b)$
\State $b' \gets \calA^{\calO_{\mathrm{key}}}(c^*, \stA)$
\Comment{$\calA$ may not query $\calO_{\mathrm{key}}(v)$ for $v$ matching $x^*$}
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}

An HVE scheme is payload-hiding if for all efficient admissible ,

is negligible.

Attribute-Hiding Security

The stronger attribute-hiding notion requires that a ciphertext hide not only the payload but also the attribute vector itself. The adversary submits two ciphertext candidates and and receives an encryption of one. Admissibility requires that for every key queried, the predicate outcome is the same on both: the pattern matches if and only if it matches .

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{ah}}_{\mathsf{HVE},\calA}(\secpar)$}
\begin{algorithmic}
\State $(\pp, \msk) \gets \Setup(1^\secpar, \Sigma, 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$: $v$ matches $x_0$ iff $v$ matches $x_1$}
\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 HVE scheme is attribute-hiding if for all efficient admissible ,

is negligible. Attribute-hiding strictly implies payload-hiding (take and ).

Variations

Subset and range queries

The BW07 paper also formalizes subset predicates (is for some set ?) and range predicates (is ?) within the same framework via encodings into inner products. Range predicates are handled by a bit decomposition of and , reducing the range check to a conjunction over single-bit comparisons.

Other results

  • HVE is generalized by IPPE: a conjunctive pattern predicate over can be encoded as an inner product over with an appropriate alphabet embedding
  • BW07 introduced HVE and gave constructions for conjunctive, subset, and range queries, proved attribute-hiding under the decisional bilinear Diffie-Hellman and decisional linear assumptions — BW07