Garbled RAM

A garbled RAM scheme garbles a database , a RAM program and an input so that evaluating the garbled program, with random access to the garbled database, yields and reveals nothing else, the access pattern included, at a cost polylogarithmic in per step of .

Syntax

A garbled RAM scheme is a tuple of efficient algorithms :

  • , a randomized function garbling a database into a garbled database and a secret .
  • , a randomized function garbling a RAM program with running time under , outputting a garbled program and an input key .
  • , a randomized function garbling an input .
  • , a function with random access to , outputting .

The scheme is efficient if and , and run in time for a program with running time . Without this requirement, unrolling into a circuit of size and garbling it would be an instance — folklore.

Properties

Correctness

A garbled RAM scheme is -correct if for all , all databases , programs with running time and inputs ,

over the coins of , and . When , we say is perfectly correct.

Security

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{gram}}_{\Pi,\calA,\Sim}(\secpar)$}
\begin{algorithmic}
\State $(D, P, t, x, \stA) \gets \calA(1^\secpar)$; $b \getsr \bits$
\Comment{$P^D(x)$ halts within $t$ steps}
\State $(\tilde{D}_0, s) \gets \GData(1^\secpar, D)$
\State $(\tilde{P}_0, s_{\mathrm{in}}) \gets \GProg(1^\secpar, 1^{\log |D|}, 1^t, P, s)$; $\tilde{x}_0 \gets \GInput(1^\secpar, x, s_{\mathrm{in}})$
\State $(\tilde{D}_1, \tilde{P}_1, \tilde{x}_1) \gets \Sim(1^\secpar, |D|, |P|, |x|, t, P^D(x))$
\State $b' \gets \calA(\stA, \tilde{D}_b, \tilde{P}_b, \tilde{x}_b)$
\Return $[b' = b]$
\end{algorithmic}
\end{algorithm}

A garbled RAM scheme is secure if it is -correct and there is an efficient such that for all efficient ,

is negligible. The simulator sees only , , , and the output, so the garbling also hides the access pattern of ; this is the full security of LO13 and GHL+14.

Variations

Persistent database

Several RAM programs, garbled one after another, run in sequence on one garbled database, each seeing the database the previous ones left — GLOS15, GLO15.

Other results

  • Garbled RAM with overhead exists if IBE does (IBE ⇒ garbled RAM) — GHL+14.
  • Garbled RAM with polylogarithmic overhead and a persistent database exists if one-way functions do, using them only as a black box (OWF ⇒ garbled RAM (black-box)) — GLO15; a construction using them in a non-black-box way came first — GLOS15.

Participates in

Produces Garbled RAM